diff options
Diffstat (limited to 'Modules')
89 files changed, 21875 insertions, 14344 deletions
diff --git a/Modules/Setup.dist b/Modules/Setup.dist index f45de5c..8ea2b5e 100644 --- a/Modules/Setup.dist +++ b/Modules/Setup.dist @@ -113,7 +113,7 @@ _sre _sre.c # Fredrik Lundh's new regular expressions _codecs _codecsmodule.c # access to the builtin codecs and codec registry _weakref _weakref.c # weak references _functools _functoolsmodule.c # Tools for working with functions and callable objects -operator operator.c # operator.add() and similar goodies +_operator _operator.c # operator.add() and similar goodies _collections _collectionsmodule.c # Container types itertools itertoolsmodule.c # Functions creating iterators for efficient looping diff --git a/Modules/_collectionsmodule.c b/Modules/_collectionsmodule.c index 34a1a90..a23f714 100644 --- a/Modules/_collectionsmodule.c +++ b/Modules/_collectionsmodule.c @@ -3,13 +3,13 @@ /* collections module implementation of a deque() datatype Written and maintained by Raymond D. Hettinger <python@rcn.com> - Copyright (c) 2004 Python Software Foundation. + Copyright (c) 2004-2013 Python Software Foundation. All rights reserved. */ /* The block length may be set to any number over 1. Larger numbers * reduce the number of calls to the memory allocator but take more - * memory. Ideally, BLOCKLEN should be set with an eye to the + * memory. Ideally, (BLOCKLEN+2) should be set to a multiple of the * length of a cache line. */ @@ -71,7 +71,7 @@ newblock(block *leftlink, block *rightlink, Py_ssize_t len) { return NULL; } if (numfreeblocks) { - numfreeblocks -= 1; + numfreeblocks--; b = freeblocks[numfreeblocks]; } else { b = PyMem_Malloc(sizeof(block)); diff --git a/Modules/_csv.c b/Modules/_csv.c index 48a5cf8..22ac266 100644 --- a/Modules/_csv.c +++ b/Modules/_csv.c @@ -51,7 +51,7 @@ static struct PyModuleDef _csvmodule; typedef enum { START_RECORD, START_FIELD, ESCAPED_CHAR, IN_FIELD, IN_QUOTED_FIELD, ESCAPE_IN_QUOTED_FIELD, QUOTE_IN_QUOTED_FIELD, - EAT_CRNL + EAT_CRNL,AFTER_ESCAPED_CRNL } ParserState; typedef enum { @@ -644,6 +644,12 @@ parse_process_char(ReaderObj *self, Py_UCS4 c) break; case ESCAPED_CHAR: + if (c == '\n' || c=='\r') { + if (parse_add_char(self, c) < 0) + return -1; + self->state = AFTER_ESCAPED_CRNL; + break; + } if (c == '\0') c = '\n'; if (parse_add_char(self, c) < 0) @@ -651,6 +657,11 @@ parse_process_char(ReaderObj *self, Py_UCS4 c) self->state = IN_FIELD; break; + case AFTER_ESCAPED_CRNL: + if (c == '\0') + break; + /*fallthru*/ + case IN_FIELD: /* in unquoted field */ if (c == '\n' || c == '\r' || c == '\0') { diff --git a/Modules/_ctypes/callproc.c b/Modules/_ctypes/callproc.c index f5d8f52..d985783 100644 --- a/Modules/_ctypes/callproc.c +++ b/Modules/_ctypes/callproc.c @@ -257,18 +257,18 @@ static void SetException(DWORD code, EXCEPTION_RECORD *pr) to a virtual address for which it does not have the appropriate access. */ if (pr->ExceptionInformation[0] == 0) - PyErr_Format(PyExc_WindowsError, + PyErr_Format(PyExc_OSError, "exception: access violation reading %p", pr->ExceptionInformation[1]); else - PyErr_Format(PyExc_WindowsError, + PyErr_Format(PyExc_OSError, "exception: access violation writing %p", pr->ExceptionInformation[1]); break; case EXCEPTION_BREAKPOINT: /* A breakpoint was encountered. */ - PyErr_SetString(PyExc_WindowsError, + PyErr_SetString(PyExc_OSError, "exception: breakpoint encountered"); break; @@ -278,14 +278,14 @@ static void SetException(DWORD code, EXCEPTION_RECORD *pr) alignment. For example, 16-bit values must be aligned on 2-byte boundaries, 32-bit values on 4-byte boundaries, and so on. */ - PyErr_SetString(PyExc_WindowsError, + PyErr_SetString(PyExc_OSError, "exception: datatype misalignment"); break; case EXCEPTION_SINGLE_STEP: /* A trace trap or other single-instruction mechanism signaled that one instruction has been executed. */ - PyErr_SetString(PyExc_WindowsError, + PyErr_SetString(PyExc_OSError, "exception: single step"); break; @@ -293,7 +293,7 @@ static void SetException(DWORD code, EXCEPTION_RECORD *pr) /* The thread attempted to access an array element that is out of bounds, and the underlying hardware supports bounds checking. */ - PyErr_SetString(PyExc_WindowsError, + PyErr_SetString(PyExc_OSError, "exception: array bounds exceeded"); break; @@ -302,28 +302,28 @@ static void SetException(DWORD code, EXCEPTION_RECORD *pr) is denormal. A denormal value is one that is too small to represent as a standard floating-point value. */ - PyErr_SetString(PyExc_WindowsError, + PyErr_SetString(PyExc_OSError, "exception: floating-point operand denormal"); break; case EXCEPTION_FLT_DIVIDE_BY_ZERO: /* The thread attempted to divide a floating-point value by a floating-point divisor of zero. */ - PyErr_SetString(PyExc_WindowsError, + PyErr_SetString(PyExc_OSError, "exception: float divide by zero"); break; case EXCEPTION_FLT_INEXACT_RESULT: /* The result of a floating-point operation cannot be represented exactly as a decimal fraction. */ - PyErr_SetString(PyExc_WindowsError, + PyErr_SetString(PyExc_OSError, "exception: float inexact"); break; case EXCEPTION_FLT_INVALID_OPERATION: /* This exception represents any floating-point exception not included in this list. */ - PyErr_SetString(PyExc_WindowsError, + PyErr_SetString(PyExc_OSError, "exception: float invalid operation"); break; @@ -331,21 +331,21 @@ static void SetException(DWORD code, EXCEPTION_RECORD *pr) /* The exponent of a floating-point operation is greater than the magnitude allowed by the corresponding type. */ - PyErr_SetString(PyExc_WindowsError, + PyErr_SetString(PyExc_OSError, "exception: float overflow"); break; case EXCEPTION_FLT_STACK_CHECK: /* The stack overflowed or underflowed as the result of a floating-point operation. */ - PyErr_SetString(PyExc_WindowsError, + PyErr_SetString(PyExc_OSError, "exception: stack over/underflow"); break; case EXCEPTION_STACK_OVERFLOW: /* The stack overflowed or underflowed as the result of a floating-point operation. */ - PyErr_SetString(PyExc_WindowsError, + PyErr_SetString(PyExc_OSError, "exception: stack overflow"); break; @@ -353,21 +353,21 @@ static void SetException(DWORD code, EXCEPTION_RECORD *pr) /* The exponent of a floating-point operation is less than the magnitude allowed by the corresponding type. */ - PyErr_SetString(PyExc_WindowsError, + PyErr_SetString(PyExc_OSError, "exception: float underflow"); break; case EXCEPTION_INT_DIVIDE_BY_ZERO: /* The thread attempted to divide an integer value by an integer divisor of zero. */ - PyErr_SetString(PyExc_WindowsError, + PyErr_SetString(PyExc_OSError, "exception: integer divide by zero"); break; case EXCEPTION_INT_OVERFLOW: /* The result of an integer operation caused a carry out of the most significant bit of the result. */ - PyErr_SetString(PyExc_WindowsError, + PyErr_SetString(PyExc_OSError, "exception: integer overflow"); break; @@ -375,14 +375,14 @@ static void SetException(DWORD code, EXCEPTION_RECORD *pr) /* The thread attempted to execute an instruction whose operation is not allowed in the current machine mode. */ - PyErr_SetString(PyExc_WindowsError, + PyErr_SetString(PyExc_OSError, "exception: priviledged instruction"); break; case EXCEPTION_NONCONTINUABLE_EXCEPTION: /* The thread attempted to continue execution after a noncontinuable exception occurred. */ - PyErr_SetString(PyExc_WindowsError, + PyErr_SetString(PyExc_OSError, "exception: nocontinuable"); break; @@ -1101,9 +1101,7 @@ PyObject *_ctypes_callproc(PPROC pProc, if (argtypes && argtype_count > i) { PyObject *v; converter = PyTuple_GET_ITEM(argtypes, i); - v = PyObject_CallFunctionObjArgs(converter, - arg, - NULL); + v = PyObject_CallFunctionObjArgs(converter, arg, NULL); if (v == NULL) { _ctypes_extend_error(PyExc_ArgError, "argument %d: ", i+1); goto cleanup; @@ -1268,62 +1266,6 @@ static PyObject *free_library(PyObject *self, PyObject *args) return Py_None; } -/* obsolete, should be removed */ -/* Only used by sample code (in samples\Windows\COM.py) */ -static PyObject * -call_commethod(PyObject *self, PyObject *args) -{ - IUnknown *pIunk; - int index; - PyObject *arguments; - PPROC *lpVtbl; - PyObject *result; - CDataObject *pcom; - PyObject *argtypes = NULL; - - if (!PyArg_ParseTuple(args, - "OiO!|O!", - &pcom, &index, - &PyTuple_Type, &arguments, - &PyTuple_Type, &argtypes)) - return NULL; - - if (argtypes && (PyTuple_GET_SIZE(arguments) != PyTuple_GET_SIZE(argtypes))) { - PyErr_Format(PyExc_TypeError, - "Method takes %d arguments (%d given)", - PyTuple_GET_SIZE(argtypes), PyTuple_GET_SIZE(arguments)); - return NULL; - } - - if (!CDataObject_Check(pcom) || (pcom->b_size != sizeof(void *))) { - PyErr_Format(PyExc_TypeError, - "COM Pointer expected instead of %s instance", - Py_TYPE(pcom)->tp_name); - return NULL; - } - - if ((*(void **)(pcom->b_ptr)) == NULL) { - PyErr_SetString(PyExc_ValueError, - "The COM 'this' pointer is NULL"); - return NULL; - } - - pIunk = (IUnknown *)(*(void **)(pcom->b_ptr)); - lpVtbl = (PPROC *)(pIunk->lpVtbl); - - result = _ctypes_callproc(lpVtbl[index], - arguments, -#ifdef MS_WIN32 - pIunk, - NULL, -#endif - FUNCFLAG_HRESULT, /* flags */ - argtypes, /* self->argtypes */ - NULL, /* self->restype */ - NULL); /* checker */ - return result; -} - static char copy_com_pointer_doc[] = "CopyComPointer(src, dst) -> HRESULT value\n"; @@ -1485,9 +1427,9 @@ call_cdeclfunction(PyObject *self, PyObject *args) NULL, #endif FUNCFLAG_CDECL, /* flags */ - NULL, /* self->argtypes */ - NULL, /* self->restype */ - NULL); /* checker */ + NULL, /* self->argtypes */ + NULL, /* self->restype */ + NULL); /* checker */ return result; } @@ -1818,7 +1760,6 @@ PyMethodDef _ctypes_module_methods[] = { {"FormatError", format_error, METH_VARARGS, format_error_doc}, {"LoadLibrary", load_library, METH_VARARGS, load_library_doc}, {"FreeLibrary", free_library, METH_VARARGS, free_library_doc}, - {"call_commethod", call_commethod, METH_VARARGS }, {"_check_HRESULT", check_hresult, METH_VARARGS}, #else {"dlopen", py_dl_open, METH_VARARGS, diff --git a/Modules/_dbmmodule.c b/Modules/_dbmmodule.c index 327b873..1ce85f5 100644 --- a/Modules/_dbmmodule.c +++ b/Modules/_dbmmodule.c @@ -14,11 +14,7 @@ */ #if defined(HAVE_NDBM_H) #include <ndbm.h> -#if defined(PYOS_OS2) && !defined(PYCC_GCC) -static char *which_dbm = "ndbm"; -#else static char *which_dbm = "GNU gdbm"; /* EMX port of GDBM */ -#endif #elif defined(HAVE_GDBM_NDBM_H) #include <gdbm/ndbm.h> static char *which_dbm = "GNU gdbm"; diff --git a/Modules/_elementtree.c b/Modules/_elementtree.c index 86fdd2f..f5b0914 100644 --- a/Modules/_elementtree.c +++ b/Modules/_elementtree.c @@ -1,63 +1,22 @@ -/* - * ElementTree - * $Id: _elementtree.c 3473 2009-01-11 22:53:55Z fredrik $ - * - * elementtree accelerator - * - * History: - * 1999-06-20 fl created (as part of sgmlop) - * 2001-05-29 fl effdom edition - * 2003-02-27 fl elementtree edition (alpha) - * 2004-06-03 fl updates for elementtree 1.2 - * 2005-01-05 fl major optimization effort - * 2005-01-11 fl first public release (cElementTree 0.8) - * 2005-01-12 fl split element object into base and extras - * 2005-01-13 fl use tagged pointers for tail/text (cElementTree 0.9) - * 2005-01-17 fl added treebuilder close method - * 2005-01-17 fl fixed crash in getchildren - * 2005-01-18 fl removed observer api, added iterparse (cElementTree 0.9.3) - * 2005-01-23 fl revised iterparse api; added namespace event support (0.9.8) - * 2005-01-26 fl added VERSION module property (cElementTree 1.0) - * 2005-01-28 fl added remove method (1.0.1) - * 2005-03-01 fl added iselement function; fixed makeelement aliasing (1.0.2) - * 2005-03-13 fl export Comment and ProcessingInstruction/PI helpers - * 2005-03-26 fl added Comment and PI support to XMLParser - * 2005-03-27 fl event optimizations; complain about bogus events - * 2005-08-08 fl fixed read error handling in parse - * 2005-08-11 fl added runtime test for copy workaround (1.0.3) - * 2005-12-13 fl added expat_capi support (for xml.etree) (1.0.4) - * 2005-12-16 fl added support for non-standard encodings - * 2006-03-08 fl fixed a couple of potential null-refs and leaks - * 2006-03-12 fl merge in 2.5 ssize_t changes - * 2007-08-25 fl call custom builder's close method from XMLParser - * 2007-08-31 fl added iter, extend from ET 1.3 - * 2007-09-01 fl fixed ParseError exception, setslice source type, etc - * 2007-09-03 fl fixed handling of negative insert indexes - * 2007-09-04 fl added itertext from ET 1.3 - * 2007-09-06 fl added position attribute to ParseError exception - * 2008-06-06 fl delay error reporting in iterparse (from Hrvoje Niksic) +/*-------------------------------------------------------------------- + * Licensed to PSF under a Contributor Agreement. + * See http://www.python.org/psf/license for licensing details. * + * _elementtree - C accelerator for xml.etree.ElementTree * Copyright (c) 1999-2009 by Secret Labs AB. All rights reserved. * Copyright (c) 1999-2009 by Fredrik Lundh. * * info@pythonware.com * http://www.pythonware.com + *-------------------------------------------------------------------- */ -/* Licensed to PSF under a Contributor Agreement. */ -/* See http://www.python.org/psf/license for licensing details. */ - #include "Python.h" #include "structmember.h" -#define VERSION "1.0.6" - /* -------------------------------------------------------------------- */ /* configuration */ -/* Leave defined to include the expat-based XMLParser type */ -#define USE_EXPAT - /* An element can hold this many children without extra memory allocations. */ #define STATIC_CHILDREN 4 @@ -340,6 +299,7 @@ get_attrib_from_keywords(PyObject *kwds) Py_DECREF(attrib_str); + /* attrib can be NULL if PyDict_New failed */ if (attrib) PyDict_Update(attrib, kwds); return attrib; @@ -2685,8 +2645,6 @@ static PyTypeObject TreeBuilder_Type = { /* ==================================================================== */ /* the expat interface */ -#if defined(USE_EXPAT) - #include "expat.h" #include "pyexpat.h" static struct PyExpat_CAPI *expat_capi; @@ -3644,8 +3602,6 @@ static PyTypeObject XMLParser_Type = { 0, /* tp_free */ }; -#endif - /* ==================================================================== */ /* python module interface */ @@ -3677,10 +3633,8 @@ PyInit__elementtree(void) return NULL; if (PyType_Ready(&Element_Type) < 0) return NULL; -#if defined(USE_EXPAT) if (PyType_Ready(&XMLParser_Type) < 0) return NULL; -#endif m = PyModule_Create(&_elementtreemodule); if (!m) @@ -3723,10 +3677,8 @@ PyInit__elementtree(void) Py_INCREF((PyObject *)&TreeBuilder_Type); PyModule_AddObject(m, "TreeBuilder", (PyObject *)&TreeBuilder_Type); -#if defined(USE_EXPAT) Py_INCREF((PyObject *)&XMLParser_Type); PyModule_AddObject(m, "XMLParser", (PyObject *)&XMLParser_Type); -#endif return m; } diff --git a/Modules/_freeze_importlib.c b/Modules/_freeze_importlib.c index 65b29e1..0435a8a 100644 --- a/Modules/_freeze_importlib.c +++ b/Modules/_freeze_importlib.c @@ -17,7 +17,7 @@ of frozen modules instead, left deliberately blank so as to avoid unintentional import of a stale version of _frozen_importlib. */ -static struct _frozen _PyImport_FrozenModules[] = { +const static struct _frozen _PyImport_FrozenModules[] = { {0, 0, 0} /* sentinel */ }; @@ -25,7 +25,7 @@ static struct _frozen _PyImport_FrozenModules[] = { /* On Windows, this links with the regular pythonXY.dll, so this variable comes from frozen.obj. In the Makefile, frozen.o is not linked into this executable, so we define the variable here. */ -struct _frozen *PyImport_FrozenModules; +const struct _frozen *PyImport_FrozenModules; #endif const char header[] = "/* Auto-generated by Modules/_freeze_importlib.c */"; @@ -105,7 +105,7 @@ main(int argc, char *argv[]) return 1; } fprintf(outfile, "%s\n", header); - fprintf(outfile, "unsigned char _Py_M__importlib[] = {\n"); + fprintf(outfile, "const unsigned char _Py_M__importlib[] = {\n"); for (n = 0; n < data_size; n += 16) { size_t i, end = Py_MIN(n + 16, data_size); fprintf(outfile, " "); diff --git a/Modules/_hashopenssl.c b/Modules/_hashopenssl.c index 3ab1c0c..c8db5ed 100644 --- a/Modules/_hashopenssl.c +++ b/Modules/_hashopenssl.c @@ -17,24 +17,6 @@ #include "structmember.h" #include "hashlib.h" -#ifdef WITH_THREAD -#include "pythread.h" - #define ENTER_HASHLIB(obj) \ - if ((obj)->lock) { \ - if (!PyThread_acquire_lock((obj)->lock, 0)) { \ - Py_BEGIN_ALLOW_THREADS \ - PyThread_acquire_lock((obj)->lock, 1); \ - Py_END_ALLOW_THREADS \ - } \ - } - #define LEAVE_HASHLIB(obj) \ - if ((obj)->lock) { \ - PyThread_release_lock((obj)->lock); \ - } -#else - #define ENTER_HASHLIB(obj) - #define LEAVE_HASHLIB(obj) -#endif /* EVP is the preferred interface to hashing in OpenSSL */ #include <openssl/evp.h> @@ -43,10 +25,6 @@ #define MUNCH_SIZE INT_MAX -/* TODO(gps): We should probably make this a module or EVPobject attribute - * to allow the user to optimize based on the platform they're using. */ -#define HASHLIB_GIL_MINSIZE 2048 - #ifndef HASH_OBJ_CONSTRUCTOR #define HASH_OBJ_CONSTRUCTOR 0 #endif diff --git a/Modules/_io/bufferedio.c b/Modules/_io/bufferedio.c index 2b39f66..943aacb 100644 --- a/Modules/_io/bufferedio.c +++ b/Modules/_io/bufferedio.c @@ -519,6 +519,11 @@ buffered_close(buffered *self, PyObject *args) res = PyObject_CallMethodObjArgs(self->raw, _PyIO_str_close, NULL); + if (self->buffer) { + PyMem_Free(self->buffer); + self->buffer = NULL; + } + if (exc != NULL) { if (res != NULL) { Py_CLEAR(res); diff --git a/Modules/_io/fileio.c b/Modules/_io/fileio.c index 8c1fabe..fd7c1fc 100644 --- a/Modules/_io/fileio.c +++ b/Modules/_io/fileio.c @@ -391,12 +391,7 @@ fileio_init(PyObject *oself, PyObject *args, PyObject *kwds) fd_is_own = 1; if (self->fd < 0) { -#ifdef MS_WINDOWS - if (widename != NULL) - PyErr_SetFromErrnoWithFilenameObject(PyExc_IOError, nameobj); - else -#endif - PyErr_SetFromErrnoWithFilename(PyExc_IOError, name); + PyErr_SetFromErrnoWithFilenameObject(PyExc_OSError, nameobj); goto error; } } diff --git a/Modules/_io/textio.c b/Modules/_io/textio.c index cff9c6e..8bd9ba1 100644 --- a/Modules/_io/textio.c +++ b/Modules/_io/textio.c @@ -757,7 +757,7 @@ utf16_encode(textio *self, PyObject *text) { if (!self->encoding_start_of_stream) { /* Skip the BOM and use native byte ordering */ -#if defined(WORDS_BIGENDIAN) +#if PY_BIG_ENDIAN return utf16be_encode(self, text); #else return utf16le_encode(self, text); @@ -786,7 +786,7 @@ utf32_encode(textio *self, PyObject *text) { if (!self->encoding_start_of_stream) { /* Skip the BOM and use native byte ordering */ -#if defined(WORDS_BIGENDIAN) +#if PY_BIG_ENDIAN return utf32be_encode(self, text); #else return utf32le_encode(self, text); @@ -1936,10 +1936,7 @@ typedef struct { #define COOKIE_BUF_LEN (sizeof(Py_off_t) + 3 * sizeof(int) + sizeof(char)) -#if defined(WORDS_BIGENDIAN) - -# define IS_LITTLE_ENDIAN 0 - +#if PY_BIG_ENDIAN /* We want the least significant byte of start_pos to also be the least significant byte of the cookie, which means that in big-endian mode we must copy the fields in reverse order. */ @@ -1951,9 +1948,6 @@ typedef struct { # define OFF_NEED_EOF 0 #else - -# define IS_LITTLE_ENDIAN 1 - /* Little-endian mode: the least significant byte of start_pos will naturally end up the least significant byte of the cookie. */ @@ -1974,7 +1968,7 @@ textiowrapper_parse_cookie(cookie_type *cookie, PyObject *cookieObj) return -1; if (_PyLong_AsByteArray(cookieLong, buffer, sizeof(buffer), - IS_LITTLE_ENDIAN, 0) < 0) { + PY_LITTLE_ENDIAN, 0) < 0) { Py_DECREF(cookieLong); return -1; } @@ -2000,9 +1994,9 @@ textiowrapper_build_cookie(cookie_type *cookie) memcpy(buffer + OFF_CHARS_TO_SKIP, &cookie->chars_to_skip, sizeof(cookie->chars_to_skip)); memcpy(buffer + OFF_NEED_EOF, &cookie->need_eof, sizeof(cookie->need_eof)); - return _PyLong_FromByteArray(buffer, sizeof(buffer), IS_LITTLE_ENDIAN, 0); + return _PyLong_FromByteArray(buffer, sizeof(buffer), + PY_LITTLE_ENDIAN, 0); } -#undef IS_LITTLE_ENDIAN static int _textiowrapper_decoder_setstate(textio *self, cookie_type *cookie) diff --git a/Modules/_json.c b/Modules/_json.c index db45c28..2e1659e 100644 --- a/Modules/_json.c +++ b/Modules/_json.c @@ -2,20 +2,6 @@ #include "structmember.h" #include "accu.h" -#if PY_VERSION_HEX < 0x02060000 && !defined(Py_TYPE) -#define Py_TYPE(ob) (((PyObject*)(ob))->ob_type) -#endif -#if PY_VERSION_HEX < 0x02050000 && !defined(PY_SSIZE_T_MIN) -typedef int Py_ssize_t; -#define PY_SSIZE_T_MAX INT_MAX -#define PY_SSIZE_T_MIN INT_MIN -#define PyInt_FromSsize_t PyInt_FromLong -#define PyInt_AsSsize_t PyInt_AsLong -#endif -#ifndef Py_IS_FINITE -#define Py_IS_FINITE(X) (!Py_IS_INFINITY(X) && !Py_IS_NAN(X)) -#endif - #ifdef __GNUC__ #define UNUSED __attribute__((__unused__)) #else @@ -129,33 +115,12 @@ static void raise_errmsg(char *msg, PyObject *s, Py_ssize_t end); static PyObject * encoder_encode_string(PyEncoderObject *s, PyObject *obj); -static int -_convertPyInt_AsSsize_t(PyObject *o, Py_ssize_t *size_ptr); -static PyObject * -_convertPyInt_FromSsize_t(Py_ssize_t *size_ptr); static PyObject * encoder_encode_float(PyEncoderObject *s, PyObject *obj); #define S_CHAR(c) (c >= ' ' && c <= '~' && c != '\\' && c != '"') #define IS_WHITESPACE(c) (((c) == ' ') || ((c) == '\t') || ((c) == '\n') || ((c) == '\r')) -static int -_convertPyInt_AsSsize_t(PyObject *o, Py_ssize_t *size_ptr) -{ - /* PyObject to Py_ssize_t converter */ - *size_ptr = PyLong_AsSsize_t(o); - if (*size_ptr == -1 && PyErr_Occurred()) - return 0; - return 1; -} - -static PyObject * -_convertPyInt_FromSsize_t(Py_ssize_t *size_ptr) -{ - /* Py_ssize_t to PyObject converter */ - return PyLong_FromSsize_t(*size_ptr); -} - static Py_ssize_t ascii_escape_unichar(Py_UCS4 c, unsigned char *output, Py_ssize_t chars) { @@ -174,14 +139,13 @@ ascii_escape_unichar(Py_UCS4 c, unsigned char *output, Py_ssize_t chars) default: if (c >= 0x10000) { /* UTF-16 surrogate pair */ - Py_UCS4 v = c - 0x10000; - c = 0xd800 | ((v >> 10) & 0x3ff); + Py_UCS4 v = Py_UNICODE_HIGH_SURROGATE(c); output[chars++] = 'u'; - output[chars++] = Py_hexdigits[(c >> 12) & 0xf]; - output[chars++] = Py_hexdigits[(c >> 8) & 0xf]; - output[chars++] = Py_hexdigits[(c >> 4) & 0xf]; - output[chars++] = Py_hexdigits[(c ) & 0xf]; - c = 0xdc00 | (v & 0x3ff); + output[chars++] = Py_hexdigits[(v >> 12) & 0xf]; + output[chars++] = Py_hexdigits[(v >> 8) & 0xf]; + output[chars++] = Py_hexdigits[(v >> 4) & 0xf]; + output[chars++] = Py_hexdigits[(v ) & 0xf]; + c = Py_UNICODE_LOW_SURROGATE(c); output[chars++] = '\\'; } output[chars++] = 'u'; @@ -268,13 +232,23 @@ raise_errmsg(char *msg, PyObject *s, Py_ssize_t end) if (errmsg_fn == NULL) return; } - pymsg = PyObject_CallFunction(errmsg_fn, "(zOO&)", msg, s, _convertPyInt_FromSsize_t, &end); + pymsg = PyObject_CallFunction(errmsg_fn, "(zOn)", msg, s, end); if (pymsg) { PyErr_SetObject(PyExc_ValueError, pymsg); Py_DECREF(pymsg); } } +static void +raise_stop_iteration(Py_ssize_t idx) +{ + PyObject *value = PyLong_FromSsize_t(idx); + if (value != NULL) { + PyErr_SetObject(PyExc_StopIteration, value); + Py_DECREF(value); + } +} + static PyObject * _build_rval_index_tuple(PyObject *rval, Py_ssize_t idx) { /* return (rval, idx) tuple, stealing reference to rval */ @@ -344,7 +318,7 @@ scanstring_unicode(PyObject *pystr, Py_ssize_t end, int strict, Py_ssize_t *next buf = PyUnicode_DATA(pystr); kind = PyUnicode_KIND(pystr); - if (end < 0 || len <= end) { + if (end < 0 || len < end) { PyErr_SetString(PyExc_ValueError, "end is out of bounds"); goto bail; } @@ -433,7 +407,7 @@ scanstring_unicode(PyObject *pystr, Py_ssize_t end, int strict, Py_ssize_t *next } } /* Surrogate pair */ - if ((c & 0xfc00) == 0xd800) { + if (Py_UNICODE_IS_HIGH_SURROGATE(c)) { Py_UCS4 c2 = 0; if (end + 6 >= len) { raise_errmsg("Unpaired high surrogate", pystr, end - 5); @@ -464,13 +438,13 @@ scanstring_unicode(PyObject *pystr, Py_ssize_t end, int strict, Py_ssize_t *next goto bail; } } - if ((c2 & 0xfc00) != 0xdc00) { + if (!Py_UNICODE_IS_LOW_SURROGATE(c2)) { raise_errmsg("Unpaired high surrogate", pystr, end - 5); goto bail; } - c = 0x10000 + (((c - 0xd800) << 10) | (c2 - 0xdc00)); + c = Py_UNICODE_JOIN_SURROGATES(c, c2); } - else if ((c & 0xfc00) == 0xdc00) { + else if (Py_UNICODE_IS_LOW_SURROGATE(c)) { raise_errmsg("Unpaired low surrogate", pystr, end - 5); goto bail; } @@ -527,7 +501,7 @@ py_scanstring(PyObject* self UNUSED, PyObject *args) Py_ssize_t end; Py_ssize_t next_end = -1; int strict = 1; - if (!PyArg_ParseTuple(args, "OO&|i:scanstring", &pystr, _convertPyInt_AsSsize_t, &end, &strict)) { + if (!PyArg_ParseTuple(args, "On|i:scanstring", &pystr, &end, &strict)) { return NULL; } if (PyUnicode_Check(pystr)) { @@ -642,12 +616,12 @@ _parse_object_unicode(PyScannerObject *s, PyObject *pystr, Py_ssize_t idx, Py_ss while (idx <= end_idx && IS_WHITESPACE(PyUnicode_READ(kind,str, idx))) idx++; /* only loop if the object is non-empty */ - if (idx <= end_idx && PyUnicode_READ(kind, str, idx) != '}') { - while (idx <= end_idx) { + if (idx > end_idx || PyUnicode_READ(kind, str, idx) != '}') { + while (1) { PyObject *memokey; /* read key */ - if (PyUnicode_READ(kind, str, idx) != '"') { + if (idx > end_idx || PyUnicode_READ(kind, str, idx) != '"') { raise_errmsg("Expecting property name enclosed in double quotes", pystr, idx); goto bail; } @@ -704,11 +678,9 @@ _parse_object_unicode(PyScannerObject *s, PyObject *pystr, Py_ssize_t idx, Py_ss while (idx <= end_idx && IS_WHITESPACE(PyUnicode_READ(kind, str, idx))) idx++; /* bail if the object is closed or we didn't get the , delimiter */ - if (idx > end_idx) break; - if (PyUnicode_READ(kind, str, idx) == '}') { + if (idx <= end_idx && PyUnicode_READ(kind, str, idx) == '}') break; - } - else if (PyUnicode_READ(kind, str, idx) != ',') { + if (idx > end_idx || PyUnicode_READ(kind, str, idx) != ',') { raise_errmsg("Expecting ',' delimiter", pystr, idx); goto bail; } @@ -719,12 +691,6 @@ _parse_object_unicode(PyScannerObject *s, PyObject *pystr, Py_ssize_t idx, Py_ss } } - /* verify that idx < end_idx, str[idx] should be '}' */ - if (idx > end_idx || PyUnicode_READ(kind, str, idx) != '}') { - raise_errmsg("Expecting object", pystr, end_idx); - goto bail; - } - *next_idx_ptr = idx + 1; if (has_pairs_hook) { @@ -776,8 +742,8 @@ _parse_array_unicode(PyScannerObject *s, PyObject *pystr, Py_ssize_t idx, Py_ssi while (idx <= end_idx && IS_WHITESPACE(PyUnicode_READ(kind, str, idx))) idx++; /* only loop if the array is non-empty */ - if (idx <= end_idx && PyUnicode_READ(kind, str, idx) != ']') { - while (idx <= end_idx) { + if (idx > end_idx || PyUnicode_READ(kind, str, idx) != ']') { + while (1) { /* read any JSON term */ val = scan_once_unicode(s, pystr, idx, &next_idx); @@ -794,11 +760,9 @@ _parse_array_unicode(PyScannerObject *s, PyObject *pystr, Py_ssize_t idx, Py_ssi while (idx <= end_idx && IS_WHITESPACE(PyUnicode_READ(kind, str, idx))) idx++; /* bail if the array is closed or we didn't get the , delimiter */ - if (idx > end_idx) break; - if (PyUnicode_READ(kind, str, idx) == ']') { + if (idx <= end_idx && PyUnicode_READ(kind, str, idx) == ']') break; - } - else if (PyUnicode_READ(kind, str, idx) != ',') { + if (idx > end_idx || PyUnicode_READ(kind, str, idx) != ',') { raise_errmsg("Expecting ',' delimiter", pystr, idx); goto bail; } @@ -811,7 +775,7 @@ _parse_array_unicode(PyScannerObject *s, PyObject *pystr, Py_ssize_t idx, Py_ssi /* verify that idx < end_idx, PyUnicode_READ(kind, str, idx) should be ']' */ if (idx > end_idx || PyUnicode_READ(kind, str, idx) != ']') { - raise_errmsg("Expecting object", pystr, end_idx); + raise_errmsg("Expecting value", pystr, end_idx); goto bail; } *next_idx_ptr = idx + 1; @@ -879,7 +843,7 @@ _match_number_unicode(PyScannerObject *s, PyObject *pystr, Py_ssize_t start, Py_ if (PyUnicode_READ(kind, str, idx) == '-') { idx++; if (idx > end_idx) { - PyErr_SetNone(PyExc_StopIteration); + raise_stop_iteration(start); return NULL; } } @@ -895,7 +859,7 @@ _match_number_unicode(PyScannerObject *s, PyObject *pystr, Py_ssize_t start, Py_ } /* no integer digits, error */ else { - PyErr_SetNone(PyExc_StopIteration); + raise_stop_iteration(start); return NULL; } @@ -988,7 +952,7 @@ scan_once_unicode(PyScannerObject *s, PyObject *pystr, Py_ssize_t idx, Py_ssize_ length = PyUnicode_GET_LENGTH(pystr); if (idx >= length) { - PyErr_SetNone(PyExc_StopIteration); + raise_stop_iteration(idx); return NULL; } @@ -1090,7 +1054,7 @@ scanner_call(PyObject *self, PyObject *args, PyObject *kwds) PyScannerObject *s; assert(PyScanner_Check(self)); s = (PyScannerObject *)self; - if (!PyArg_ParseTupleAndKeywords(args, kwds, "OO&:scan_once", kwlist, &pystr, _convertPyInt_AsSsize_t, &idx)) + if (!PyArg_ParseTupleAndKeywords(args, kwds, "On:scan_once", kwlist, &pystr, &idx)) return NULL; if (PyUnicode_Check(pystr)) { @@ -1291,8 +1255,8 @@ encoder_call(PyObject *self, PyObject *args, PyObject *kwds) assert(PyEncoder_Check(self)); s = (PyEncoderObject *)self; - if (!PyArg_ParseTupleAndKeywords(args, kwds, "OO&:_iterencode", kwlist, - &obj, _convertPyInt_AsSsize_t, &indent_level)) + if (!PyArg_ParseTupleAndKeywords(args, kwds, "On:_iterencode", kwlist, + &obj, &indent_level)) return NULL; if (_PyAccu_Init(&acc)) return NULL; diff --git a/Modules/_lsprof.c b/Modules/_lsprof.c index b0a226b..5657f2f 100644 --- a/Modules/_lsprof.c +++ b/Modules/_lsprof.c @@ -36,12 +36,8 @@ hpTimerUnit(void) #error "This module requires gettimeofday() on non-Windows platforms!" #endif -#if (defined(PYOS_OS2) && defined(PYCC_GCC)) -#include <sys/time.h> -#else #include <sys/resource.h> #include <sys/times.h> -#endif static PY_LONG_LONG hpTimer(void) diff --git a/Modules/_multiprocessing/multiprocessing.c b/Modules/_multiprocessing/multiprocessing.c index eb05c62..a77c3b3 100644 --- a/Modules/_multiprocessing/multiprocessing.c +++ b/Modules/_multiprocessing/multiprocessing.c @@ -10,25 +10,23 @@ #include "multiprocessing.h" -PyObject *ProcessError, *BufferTooShort; - /* * Function which raises exceptions based on error codes */ PyObject * -mp_SetError(PyObject *Type, int num) +_PyMp_SetError(PyObject *Type, int num) { switch (num) { #ifdef MS_WINDOWS case MP_STANDARD_ERROR: if (Type == NULL) - Type = PyExc_WindowsError; + Type = PyExc_OSError; PyErr_SetExcFromWindowsErr(Type, 0); break; case MP_SOCKET_ERROR: if (Type == NULL) - Type = PyExc_WindowsError; + Type = PyExc_OSError; PyErr_SetExcFromWindowsErr(Type, WSAGetLastError()); break; #else /* !MS_WINDOWS */ @@ -159,19 +157,12 @@ PyInit__multiprocessing(void) if (!module) return NULL; - /* Get copy of BufferTooShort */ - temp = PyImport_ImportModule("multiprocessing"); - if (!temp) - return NULL; - BufferTooShort = PyObject_GetAttrString(temp, "BufferTooShort"); - Py_XDECREF(temp); - #if defined(MS_WINDOWS) || \ (defined(HAVE_SEM_OPEN) && !defined(POSIX_SEMAPHORES_NOT_ENABLED)) - /* Add SemLock type to module */ - if (PyType_Ready(&SemLockType) < 0) + /* Add _PyMp_SemLock type to module */ + if (PyType_Ready(&_PyMp_SemLockType) < 0) return NULL; - Py_INCREF(&SemLockType); + Py_INCREF(&_PyMp_SemLockType); { PyObject *py_sem_value_max; /* Some systems define SEM_VALUE_MAX as an unsigned value that @@ -182,10 +173,10 @@ PyInit__multiprocessing(void) py_sem_value_max = PyLong_FromLong(SEM_VALUE_MAX); if (py_sem_value_max == NULL) return NULL; - PyDict_SetItemString(SemLockType.tp_dict, "SEM_VALUE_MAX", + PyDict_SetItemString(_PyMp_SemLockType.tp_dict, "SEM_VALUE_MAX", py_sem_value_max); } - PyModule_AddObject(module, "SemLock", (PyObject*)&SemLockType); + PyModule_AddObject(module, "SemLock", (PyObject*)&_PyMp_SemLockType); #endif /* Add configuration macros */ diff --git a/Modules/_multiprocessing/multiprocessing.h b/Modules/_multiprocessing/multiprocessing.h index e3de9ba..0759a80 100644 --- a/Modules/_multiprocessing/multiprocessing.h +++ b/Modules/_multiprocessing/multiprocessing.h @@ -91,15 +91,13 @@ #define MP_SOCKET_ERROR (-1002) #define MP_EXCEPTION_HAS_BEEN_SET (-1003) -PyObject *mp_SetError(PyObject *Type, int num); +PyObject *_PyMp_SetError(PyObject *Type, int num); /* * Externs - not all will really exist on all platforms */ -extern PyObject *BufferTooShort; -extern PyTypeObject SemLockType; -extern PyTypeObject PipeConnectionType; +extern PyTypeObject _PyMp_SemLockType; /* * Miscellaneous diff --git a/Modules/_multiprocessing/semaphore.c b/Modules/_multiprocessing/semaphore.c index 2c2b020..dcf3b42 100644 --- a/Modules/_multiprocessing/semaphore.c +++ b/Modules/_multiprocessing/semaphore.c @@ -43,7 +43,7 @@ _GetSemaphoreValue(HANDLE handle, long *value) { long previous; - switch (WaitForSingleObject(handle, 0)) { + switch (WaitForSingleObjectEx(handle, 0, FALSE)) { case WAIT_OBJECT_0: if (!ReleaseSemaphore(handle, 1, &previous)) return MP_STANDARD_ERROR; @@ -99,7 +99,7 @@ semlock_acquire(SemLockObject *self, PyObject *args, PyObject *kwds) } /* check whether we can acquire without releasing the GIL and blocking */ - if (WaitForSingleObject(self->handle, 0) == WAIT_OBJECT_0) { + if (WaitForSingleObjectEx(self->handle, 0, FALSE) == WAIT_OBJECT_0) { self->last_tid = GetCurrentThreadId(); ++self->count; Py_RETURN_TRUE; @@ -118,7 +118,7 @@ semlock_acquire(SemLockObject *self, PyObject *args, PyObject *kwds) Py_BEGIN_ALLOW_THREADS if (sigint_event != NULL) ResetEvent(sigint_event); - res = WaitForMultipleObjects(nhandles, handles, FALSE, full_msecs); + res = WaitForMultipleObjectsEx(nhandles, handles, FALSE, full_msecs, FALSE); Py_END_ALLOW_THREADS /* handle result */ @@ -200,7 +200,7 @@ semlock_release(SemLockObject *self, PyObject *args) #ifndef HAVE_SEM_TIMEDWAIT # define sem_timedwait(sem,deadline) sem_timedwait_save(sem,deadline,_save) -int +static int sem_timedwait_save(sem_t *sem, struct timespec *deadline, PyThreadState *_save) { int res; @@ -451,7 +451,7 @@ semlock_new(PyTypeObject *type, PyObject *args, PyObject *kwds) failure: if (handle != SEM_FAILED) SEM_CLOSE(handle); - mp_SetError(NULL, MP_STANDARD_ERROR); + _PyMp_SetError(NULL, MP_STANDARD_ERROR); return NULL; } @@ -498,7 +498,7 @@ semlock_getvalue(SemLockObject *self) #else int sval; if (SEM_GETVALUE(self->handle, &sval) < 0) - return mp_SetError(NULL, MP_STANDARD_ERROR); + return _PyMp_SetError(NULL, MP_STANDARD_ERROR); /* some posix implementations use negative numbers to indicate the number of waiting threads */ if (sval < 0) @@ -514,16 +514,16 @@ semlock_iszero(SemLockObject *self) if (sem_trywait(self->handle) < 0) { if (errno == EAGAIN) Py_RETURN_TRUE; - return mp_SetError(NULL, MP_STANDARD_ERROR); + return _PyMp_SetError(NULL, MP_STANDARD_ERROR); } else { if (sem_post(self->handle) < 0) - return mp_SetError(NULL, MP_STANDARD_ERROR); + return _PyMp_SetError(NULL, MP_STANDARD_ERROR); Py_RETURN_FALSE; } #else int sval; if (SEM_GETVALUE(self->handle, &sval) < 0) - return mp_SetError(NULL, MP_STANDARD_ERROR); + return _PyMp_SetError(NULL, MP_STANDARD_ERROR); return PyBool_FromLong((long)sval == 0); #endif } @@ -581,7 +581,7 @@ static PyMemberDef semlock_members[] = { * Semaphore type */ -PyTypeObject SemLockType = { +PyTypeObject _PyMp_SemLockType = { PyVarObject_HEAD_INIT(NULL, 0) /* tp_name */ "_multiprocessing.SemLock", /* tp_basicsize */ sizeof(SemLockObject), diff --git a/Modules/operator.c b/Modules/_operator.c index 5156b6b..e8bef04 100644 --- a/Modules/operator.c +++ b/Modules/_operator.c @@ -208,6 +208,31 @@ _tscmp(const unsigned char *a, const unsigned char *b, return (result == 0); } +PyDoc_STRVAR(length_hint__doc__, +"length_hint(obj, default=0) -> int\n" +"Return an estimate of the number of items in obj.\n" +"This is useful for presizing containers when building from an\n" +"iterable.\n" +"\n" +"If the object supports len(), the result will be\n" +"exact. Otherwise, it may over- or under-estimate by an\n" +"arbitrary amount. The result will be an integer >= 0."); + +static PyObject *length_hint(PyObject *self, PyObject *args) +{ + PyObject *obj; + Py_ssize_t defaultvalue = 0, res; + if (!PyArg_ParseTuple(args, "O|n:length_hint", &obj, &defaultvalue)) { + return NULL; + } + res = PyObject_LengthHint(obj, defaultvalue); + if (res == -1 && PyErr_Occurred()) { + return NULL; + } + return PyLong_FromSsize_t(res); +} + + PyDoc_STRVAR(compare_digest__doc__, "compare_digest(a, b) -> bool\n" "\n" @@ -297,17 +322,15 @@ compare_digest(PyObject *self, PyObject *args) /* operator methods **********************************************************/ #define spam1(OP,DOC) {#OP, OP, METH_VARARGS, PyDoc_STR(DOC)}, -#define spam2(OP,ALTOP,DOC) {#OP, op_##OP, METH_VARARGS, PyDoc_STR(DOC)}, \ - {#ALTOP, op_##OP, METH_VARARGS, PyDoc_STR(DOC)}, +#define spam2(OP,DOC) {#OP, op_##OP, METH_VARARGS, PyDoc_STR(DOC)}, #define spam1o(OP,DOC) {#OP, OP, METH_O, PyDoc_STR(DOC)}, -#define spam2o(OP,ALTOP,DOC) {#OP, op_##OP, METH_O, PyDoc_STR(DOC)}, \ - {#ALTOP, op_##OP, METH_O, PyDoc_STR(DOC)}, +#define spam2o(OP,DOC) {#OP, op_##OP, METH_O, PyDoc_STR(DOC)}, static struct PyMethodDef operator_methods[] = { spam1o(truth, "truth(a) -- Return True if a is true, False otherwise.") -spam2(contains,__contains__, +spam2(contains, "contains(a, b) -- Same as b in a (note reversed operands).") spam1(indexOf, "indexOf(a, b) -- Return the first index of b in a.") @@ -316,56 +339,58 @@ spam1(countOf, spam1(is_, "is_(a, b) -- Same as a is b.") spam1(is_not, "is_not(a, b) -- Same as a is not b.") -spam2o(index, __index__, "index(a) -- Same as a.__index__()") -spam2(add,__add__, "add(a, b) -- Same as a + b.") -spam2(sub,__sub__, "sub(a, b) -- Same as a - b.") -spam2(mul,__mul__, "mul(a, b) -- Same as a * b.") -spam2(floordiv,__floordiv__, "floordiv(a, b) -- Same as a // b.") -spam2(truediv,__truediv__, "truediv(a, b) -- Same as a / b.") -spam2(mod,__mod__, "mod(a, b) -- Same as a % b.") -spam2o(neg,__neg__, "neg(a) -- Same as -a.") -spam2o(pos,__pos__, "pos(a) -- Same as +a.") -spam2o(abs,__abs__, "abs(a) -- Same as abs(a).") -spam2o(inv,__inv__, "inv(a) -- Same as ~a.") -spam2o(invert,__invert__, "invert(a) -- Same as ~a.") -spam2(lshift,__lshift__, "lshift(a, b) -- Same as a << b.") -spam2(rshift,__rshift__, "rshift(a, b) -- Same as a >> b.") -spam2o(not_,__not__, "not_(a) -- Same as not a.") -spam2(and_,__and__, "and_(a, b) -- Same as a & b.") -spam2(xor,__xor__, "xor(a, b) -- Same as a ^ b.") -spam2(or_,__or__, "or_(a, b) -- Same as a | b.") -spam2(iadd,__iadd__, "a = iadd(a, b) -- Same as a += b.") -spam2(isub,__isub__, "a = isub(a, b) -- Same as a -= b.") -spam2(imul,__imul__, "a = imul(a, b) -- Same as a *= b.") -spam2(ifloordiv,__ifloordiv__, "a = ifloordiv(a, b) -- Same as a //= b.") -spam2(itruediv,__itruediv__, "a = itruediv(a, b) -- Same as a /= b") -spam2(imod,__imod__, "a = imod(a, b) -- Same as a %= b.") -spam2(ilshift,__ilshift__, "a = ilshift(a, b) -- Same as a <<= b.") -spam2(irshift,__irshift__, "a = irshift(a, b) -- Same as a >>= b.") -spam2(iand,__iand__, "a = iand(a, b) -- Same as a &= b.") -spam2(ixor,__ixor__, "a = ixor(a, b) -- Same as a ^= b.") -spam2(ior,__ior__, "a = ior(a, b) -- Same as a |= b.") -spam2(concat,__concat__, +spam2o(index, "index(a) -- Same as a.__index__()") +spam2(add, "add(a, b) -- Same as a + b.") +spam2(sub, "sub(a, b) -- Same as a - b.") +spam2(mul, "mul(a, b) -- Same as a * b.") +spam2(floordiv, "floordiv(a, b) -- Same as a // b.") +spam2(truediv, "truediv(a, b) -- Same as a / b.") +spam2(mod, "mod(a, b) -- Same as a % b.") +spam2o(neg, "neg(a) -- Same as -a.") +spam2o(pos, "pos(a) -- Same as +a.") +spam2o(abs, "abs(a) -- Same as abs(a).") +spam2o(inv, "inv(a) -- Same as ~a.") +spam2o(invert, "invert(a) -- Same as ~a.") +spam2(lshift, "lshift(a, b) -- Same as a << b.") +spam2(rshift, "rshift(a, b) -- Same as a >> b.") +spam2o(not_, "not_(a) -- Same as not a.") +spam2(and_, "and_(a, b) -- Same as a & b.") +spam2(xor, "xor(a, b) -- Same as a ^ b.") +spam2(or_, "or_(a, b) -- Same as a | b.") +spam2(iadd, "a = iadd(a, b) -- Same as a += b.") +spam2(isub, "a = isub(a, b) -- Same as a -= b.") +spam2(imul, "a = imul(a, b) -- Same as a *= b.") +spam2(ifloordiv, "a = ifloordiv(a, b) -- Same as a //= b.") +spam2(itruediv, "a = itruediv(a, b) -- Same as a /= b") +spam2(imod, "a = imod(a, b) -- Same as a %= b.") +spam2(ilshift, "a = ilshift(a, b) -- Same as a <<= b.") +spam2(irshift, "a = irshift(a, b) -- Same as a >>= b.") +spam2(iand, "a = iand(a, b) -- Same as a &= b.") +spam2(ixor, "a = ixor(a, b) -- Same as a ^= b.") +spam2(ior, "a = ior(a, b) -- Same as a |= b.") +spam2(concat, "concat(a, b) -- Same as a + b, for a and b sequences.") -spam2(iconcat,__iconcat__, +spam2(iconcat, "a = iconcat(a, b) -- Same as a += b, for a and b sequences.") -spam2(getitem,__getitem__, +spam2(getitem, "getitem(a, b) -- Same as a[b].") -spam2(setitem,__setitem__, +spam2(setitem, "setitem(a, b, c) -- Same as a[b] = c.") -spam2(delitem,__delitem__, +spam2(delitem, "delitem(a, b) -- Same as del a[b].") -spam2(pow,__pow__, "pow(a, b) -- Same as a ** b.") -spam2(ipow,__ipow__, "a = ipow(a, b) -- Same as a **= b.") -spam2(lt,__lt__, "lt(a, b) -- Same as a<b.") -spam2(le,__le__, "le(a, b) -- Same as a<=b.") -spam2(eq,__eq__, "eq(a, b) -- Same as a==b.") -spam2(ne,__ne__, "ne(a, b) -- Same as a!=b.") -spam2(gt,__gt__, "gt(a, b) -- Same as a>b.") -spam2(ge,__ge__, "ge(a, b) -- Same as a>=b.") +spam2(pow, "pow(a, b) -- Same as a ** b.") +spam2(ipow, "a = ipow(a, b) -- Same as a **= b.") +spam2(lt, "lt(a, b) -- Same as a<b.") +spam2(le, "le(a, b) -- Same as a<=b.") +spam2(eq, "eq(a, b) -- Same as a==b.") +spam2(ne, "ne(a, b) -- Same as a!=b.") +spam2(gt, "gt(a, b) -- Same as a>b.") +spam2(ge, "ge(a, b) -- Same as a>=b.") {"_compare_digest", (PyCFunction)compare_digest, METH_VARARGS, compare_digest__doc__}, + {"length_hint", (PyCFunction)length_hint, METH_VARARGS, + length_hint__doc__}, {NULL, NULL} /* sentinel */ }; @@ -892,12 +917,12 @@ static PyTypeObject methodcaller_type = { }; -/* Initialization function for the module (*must* be called PyInit_operator) */ +/* Initialization function for the module (*must* be called PyInit__operator) */ static struct PyModuleDef operatormodule = { PyModuleDef_HEAD_INIT, - "operator", + "_operator", operator_doc, -1, operator_methods, @@ -908,7 +933,7 @@ static struct PyModuleDef operatormodule = { }; PyMODINIT_FUNC -PyInit_operator(void) +PyInit__operator(void) { PyObject *m; diff --git a/Modules/_pickle.c b/Modules/_pickle.c index a8d6684..443fbe2 100644 --- a/Modules/_pickle.c +++ b/Modules/_pickle.c @@ -1873,63 +1873,97 @@ done: } static int -save_unicode(PicklerObject *self, PyObject *obj) +write_utf8(PicklerObject *self, char *data, Py_ssize_t size) { - Py_ssize_t size; - PyObject *encoded = NULL; + char pdata[5]; - if (self->bin) { - char pdata[5]; +#if SIZEOF_SIZE_T > 4 + if (size > 0xffffffffUL) { + /* string too large */ + PyErr_SetString(PyExc_OverflowError, + "cannot serialize a string larger than 4GiB"); + return -1; + } +#endif - encoded = PyUnicode_AsEncodedString(obj, "utf-8", "surrogatepass"); - if (encoded == NULL) - goto error; + pdata[0] = BINUNICODE; + pdata[1] = (unsigned char)(size & 0xff); + pdata[2] = (unsigned char)((size >> 8) & 0xff); + pdata[3] = (unsigned char)((size >> 16) & 0xff); + pdata[4] = (unsigned char)((size >> 24) & 0xff); - size = PyBytes_GET_SIZE(encoded); - if (size > 0xffffffffL) { - PyErr_SetString(PyExc_OverflowError, - "cannot serialize a string larger than 4 GiB"); - goto error; /* string too large */ - } + if (_Pickler_Write(self, pdata, sizeof(pdata)) < 0) + return -1; - pdata[0] = BINUNICODE; - pdata[1] = (unsigned char)(size & 0xff); - pdata[2] = (unsigned char)((size >> 8) & 0xff); - pdata[3] = (unsigned char)((size >> 16) & 0xff); - pdata[4] = (unsigned char)((size >> 24) & 0xff); + if (_Pickler_Write(self, data, size) < 0) + return -1; - if (_Pickler_Write(self, pdata, 5) < 0) - goto error; + return 0; +} - if (_Pickler_Write(self, PyBytes_AS_STRING(encoded), size) < 0) - goto error; +static int +write_unicode_binary(PicklerObject *self, PyObject *obj) +{ + PyObject *encoded = NULL; + Py_ssize_t size; + char *data; + int r; + + if (PyUnicode_READY(obj)) + return -1; + + data = PyUnicode_AsUTF8AndSize(obj, &size); + if (data != NULL) + return write_utf8(self, data, size); + + /* Issue #8383: for strings with lone surrogates, fallback on the + "surrogatepass" error handler. */ + PyErr_Clear(); + encoded = PyUnicode_AsEncodedString(obj, "utf-8", "surrogatepass"); + if (encoded == NULL) + return -1; + + r = write_utf8(self, PyBytes_AS_STRING(encoded), + PyBytes_GET_SIZE(encoded)); + Py_DECREF(encoded); + return r; +} + +static int +save_unicode(PicklerObject *self, PyObject *obj) +{ + if (self->bin) { + if (write_unicode_binary(self, obj) < 0) + return -1; } else { + PyObject *encoded; + Py_ssize_t size; const char unicode_op = UNICODE; encoded = raw_unicode_escape(obj); if (encoded == NULL) - goto error; + return -1; - if (_Pickler_Write(self, &unicode_op, 1) < 0) - goto error; + if (_Pickler_Write(self, &unicode_op, 1) < 0) { + Py_DECREF(encoded); + return -1; + } size = PyBytes_GET_SIZE(encoded); - if (_Pickler_Write(self, PyBytes_AS_STRING(encoded), size) < 0) - goto error; + if (_Pickler_Write(self, PyBytes_AS_STRING(encoded), size) < 0) { + Py_DECREF(encoded); + return -1; + } + Py_DECREF(encoded); if (_Pickler_Write(self, "\n", 1) < 0) - goto error; + return -1; } if (memo_put(self, obj) < 0) - goto error; + return -1; - Py_DECREF(encoded); return 0; - - error: - Py_XDECREF(encoded); - return -1; } /* A helper for save_tuple. Push the len elements in tuple t on the stack. */ @@ -4171,36 +4205,23 @@ load_string(UnpicklerObject *self) if ((len = _Unpickler_Readline(self, &s)) < 0) return -1; - if (len < 2) - return bad_readline(); - if ((s = strdup(s)) == NULL) { - PyErr_NoMemory(); - return -1; - } - + /* Strip the newline */ + len--; /* Strip outermost quotes */ - while (len > 0 && s[len - 1] <= ' ') - len--; - if (len > 1 && s[0] == '"' && s[len - 1] == '"') { - s[len - 1] = '\0'; - p = s + 1; - len -= 2; - } - else if (len > 1 && s[0] == '\'' && s[len - 1] == '\'') { - s[len - 1] = '\0'; + if (len >= 2 && s[0] == s[len - 1] && (s[0] == '\'' || s[0] == '"')) { p = s + 1; len -= 2; } else { - free(s); - PyErr_SetString(PyExc_ValueError, "insecure string pickle"); + PyErr_SetString(UnpicklingError, + "the STRING opcode argument must be quoted"); return -1; } + assert(len >= 0); /* Use the PyBytes API to decode the string, since that is what is used to encode, and then coerce the result to Unicode. */ bytes = PyBytes_DecodeEscape(p, len, NULL, 0, NULL); - free(s); if (bytes == NULL) return -1; str = PyUnicode_FromEncodedObject(bytes, self->encoding, self->errors); @@ -4226,8 +4247,7 @@ load_binbytes(UnpicklerObject *self) if (x < 0) { PyErr_Format(PyExc_OverflowError, "BINBYTES exceeds system's maximum size of %zd bytes", - PY_SSIZE_T_MAX - ); + PY_SSIZE_T_MAX); return -1; } @@ -4351,8 +4371,7 @@ load_binunicode(UnpicklerObject *self) if (size < 0) { PyErr_Format(PyExc_OverflowError, "BINUNICODE exceeds system's maximum size of %zd bytes", - PY_SSIZE_T_MAX - ); + PY_SSIZE_T_MAX); return -1; } diff --git a/Modules/_posixsubprocess.c b/Modules/_posixsubprocess.c index 07d7096..c4a6b7b 100644 --- a/Modules/_posixsubprocess.c +++ b/Modules/_posixsubprocess.c @@ -491,7 +491,7 @@ error: /* We can't call strerror(saved_errno). It is not async signal safe. * The parent process will look the error message up. */ } else { - unused = write(errpipe_write, "RuntimeError:0:", 15); + unused = write(errpipe_write, "SubprocessError:0:", 18); unused = write(errpipe_write, err_msg, strlen(err_msg)); } if (unused) return; /* silly? yes! avoids gcc compiler warning. */ diff --git a/Modules/_randommodule.c b/Modules/_randommodule.c index 6540ab9..a729817 100644 --- a/Modules/_randommodule.c +++ b/Modules/_randommodule.c @@ -168,9 +168,9 @@ init_genrand(RandomObject *self, unsigned long s) /* init_key is the array for initializing keys */ /* key_length is its length */ static PyObject * -init_by_array(RandomObject *self, unsigned long init_key[], unsigned long key_length) +init_by_array(RandomObject *self, unsigned long init_key[], size_t key_length) { - unsigned int i, j, k; /* was signed in the original code. RDH 12/16/2002 */ + size_t i, j, k; /* was signed in the original code. RDH 12/16/2002 */ unsigned long *mt; mt = self->state; @@ -207,14 +207,11 @@ static PyObject * random_seed(RandomObject *self, PyObject *args) { PyObject *result = NULL; /* guilty until proved innocent */ - PyObject *masklower = NULL; - PyObject *thirtytwo = NULL; PyObject *n = NULL; - unsigned long *new_key, *key = NULL; - unsigned long keymax; /* # of allocated slots in key */ - unsigned long keyused; /* # of used slots in key */ - int err; - + unsigned long *key = NULL; + unsigned char *key_as_bytes = NULL; + size_t bits, keyused, i; + int res; PyObject *arg = NULL; if (!PyArg_UnpackTuple(args, "seed", 0, 1, &arg)) @@ -243,69 +240,43 @@ random_seed(RandomObject *self, PyObject *args) if (n == NULL) goto Done; - /* Now split n into 32-bit chunks, from the right. Each piece is - * stored into key, which has a capacity of keymax chunks, of which - * keyused are filled. Alas, the repeated shifting makes this a - * quadratic-time algorithm; we'd really like to use - * _PyLong_AsByteArray here, but then we'd have to break into the - * long representation to figure out how big an array was needed - * in advance. - */ - keymax = 8; /* arbitrary; grows later if needed */ - keyused = 0; - key = (unsigned long *)PyMem_Malloc(keymax * sizeof(*key)); - if (key == NULL) + /* Now split n into 32-bit chunks, from the right. */ + bits = _PyLong_NumBits(n); + if (bits == (size_t)-1 && PyErr_Occurred()) goto Done; - masklower = PyLong_FromUnsignedLong(0xffffffffU); - if (masklower == NULL) + /* Figure out how many 32-bit chunks this gives us. */ + keyused = bits == 0 ? 1 : (bits - 1) / 32 + 1; + + /* Convert seed to byte sequence. */ + key_as_bytes = (unsigned char *)PyMem_Malloc((size_t)4 * keyused); + if (key_as_bytes == NULL) goto Done; - thirtytwo = PyLong_FromLong(32L); - if (thirtytwo == NULL) + res = _PyLong_AsByteArray((PyLongObject *)n, + key_as_bytes, keyused * 4, + 1, /* little-endian */ + 0); /* unsigned */ + if (res == -1) { + PyMem_Free(key_as_bytes); goto Done; - while ((err=PyObject_IsTrue(n))) { - PyObject *newn; - PyObject *pychunk; - unsigned long chunk; - - if (err == -1) - goto Done; - pychunk = PyNumber_And(n, masklower); - if (pychunk == NULL) - goto Done; - chunk = PyLong_AsUnsignedLong(pychunk); - Py_DECREF(pychunk); - if (chunk == (unsigned long)-1 && PyErr_Occurred()) - goto Done; - newn = PyNumber_Rshift(n, thirtytwo); - if (newn == NULL) - goto Done; - Py_DECREF(n); - n = newn; - if (keyused >= keymax) { - unsigned long bigger = keymax << 1; - if ((bigger >> 1) != keymax || - bigger > PY_SSIZE_T_MAX / sizeof(*key)) { - PyErr_NoMemory(); - goto Done; - } - new_key = (unsigned long *)PyMem_Realloc(key, - bigger * sizeof(*key)); - if (new_key == NULL) - goto Done; - key = new_key; - keymax = bigger; - } - assert(keyused < keymax); - key[keyused++] = chunk; } - if (keyused == 0) - key[keyused++] = 0UL; + /* Fill array of unsigned longs from byte sequence. */ + key = (unsigned long *)PyMem_Malloc(sizeof(unsigned long) * keyused); + if (key == NULL) { + PyMem_Free(key_as_bytes); + goto Done; + } + for (i = 0; i < keyused; i++) { + key[i] = + ((unsigned long)key_as_bytes[4*i + 0] << 0) + + ((unsigned long)key_as_bytes[4*i + 1] << 8) + + ((unsigned long)key_as_bytes[4*i + 2] << 16) + + ((unsigned long)key_as_bytes[4*i + 3] << 24); + } + PyMem_Free(key_as_bytes); result = init_by_array(self, key, keyused); Done: - Py_XDECREF(masklower); - Py_XDECREF(thirtytwo); Py_XDECREF(n); PyMem_Free(key); return result; @@ -389,6 +360,9 @@ random_getrandbits(RandomObject *self, PyObject *args) return NULL; } + if (k <= 32) /* Fast path */ + return PyLong_FromUnsignedLong(genrand_int32(self) >> (32 - k)); + bytes = ((k - 1) / 32 + 1) * 4; bytearray = (unsigned char *)PyMem_Malloc(bytes); if (bytearray == NULL) { diff --git a/Modules/_sha3/cleanup.py b/Modules/_sha3/cleanup.py new file mode 100755 index 0000000..aabcb04 --- /dev/null +++ b/Modules/_sha3/cleanup.py @@ -0,0 +1,49 @@ +#!/usr/bin/env python +# Copyright (C) 2012 Christian Heimes (christian@python.org) +# Licensed to PSF under a Contributor Agreement. +# +# cleanup Keccak sources + +import os +import re + +CPP1 = re.compile("^//(.*)") +CPP2 = re.compile("\ //(.*)") + +STATICS = ("void ", "int ", "HashReturn ", "const UINT64 ", "UINT16 ") + +HERE = os.path.dirname(os.path.abspath(__file__)) +KECCAK = os.path.join(HERE, "keccak") + +def getfiles(): + for name in os.listdir(KECCAK): + name = os.path.join(KECCAK, name) + if os.path.isfile(name): + yield name + +def cleanup(f): + buf = [] + for line in f: + # mark all functions and global data as static + if line.startswith(STATICS): + buf.append("static " + line) + continue + # remove UINT64 typedef, we have our own + if line.startswith("typedef unsigned long long int"): + buf.append("/* %s */\n" % line.strip()) + continue + # remove #include "brg_endian.h" + if "brg_endian.h" in line: + buf.append("/* %s */\n" % line.strip()) + continue + # transform C++ comments into ANSI C comments + line = CPP1.sub(r"/* \1 */", line) + line = CPP2.sub(r" /* \1 */", line) + buf.append(line) + return "".join(buf) + +for name in getfiles(): + with open(name) as f: + res = cleanup(f) + with open(name, "w") as f: + f.write(res) diff --git a/Modules/_sha3/keccak/KeccakF-1600-32-rvk.macros b/Modules/_sha3/keccak/KeccakF-1600-32-rvk.macros new file mode 100644 index 0000000..c0c9029 --- /dev/null +++ b/Modules/_sha3/keccak/KeccakF-1600-32-rvk.macros @@ -0,0 +1,555 @@ +/* +The Keccak sponge function, designed by Guido Bertoni, Joan Daemen, +Michaël Peeters and Gilles Van Assche. For more information, feedback or +questions, please refer to our website: http://keccak.noekeon.org/ + +Implementation by Ronny Van Keer, +hereby denoted as "the implementer". + +To the extent possible under law, the implementer has waived all copyright +and related or neighboring rights to the source code in this file. +http://creativecommons.org/publicdomain/zero/1.0/ +*/ + +static const UINT32 KeccakF1600RoundConstants_int2[2*24] = +{ + 0x00000001UL, 0x00000000UL, + 0x00000000UL, 0x00000089UL, + 0x00000000UL, 0x8000008bUL, + 0x00000000UL, 0x80008080UL, + 0x00000001UL, 0x0000008bUL, + 0x00000001UL, 0x00008000UL, + 0x00000001UL, 0x80008088UL, + 0x00000001UL, 0x80000082UL, + 0x00000000UL, 0x0000000bUL, + 0x00000000UL, 0x0000000aUL, + 0x00000001UL, 0x00008082UL, + 0x00000000UL, 0x00008003UL, + 0x00000001UL, 0x0000808bUL, + 0x00000001UL, 0x8000000bUL, + 0x00000001UL, 0x8000008aUL, + 0x00000001UL, 0x80000081UL, + 0x00000000UL, 0x80000081UL, + 0x00000000UL, 0x80000008UL, + 0x00000000UL, 0x00000083UL, + 0x00000000UL, 0x80008003UL, + 0x00000001UL, 0x80008088UL, + 0x00000000UL, 0x80000088UL, + 0x00000001UL, 0x00008000UL, + 0x00000000UL, 0x80008082UL +}; + +#undef rounds + +#define rounds \ +{ \ + UINT32 Da0, De0, Di0, Do0, Du0; \ + UINT32 Da1, De1, Di1, Do1, Du1; \ + UINT32 Ba, Be, Bi, Bo, Bu; \ + UINT32 Aba0, Abe0, Abi0, Abo0, Abu0; \ + UINT32 Aba1, Abe1, Abi1, Abo1, Abu1; \ + UINT32 Aga0, Age0, Agi0, Ago0, Agu0; \ + UINT32 Aga1, Age1, Agi1, Ago1, Agu1; \ + UINT32 Aka0, Ake0, Aki0, Ako0, Aku0; \ + UINT32 Aka1, Ake1, Aki1, Ako1, Aku1; \ + UINT32 Ama0, Ame0, Ami0, Amo0, Amu0; \ + UINT32 Ama1, Ame1, Ami1, Amo1, Amu1; \ + UINT32 Asa0, Ase0, Asi0, Aso0, Asu0; \ + UINT32 Asa1, Ase1, Asi1, Aso1, Asu1; \ + UINT32 Cw, Cx, Cy, Cz; \ + UINT32 Eba0, Ebe0, Ebi0, Ebo0, Ebu0; \ + UINT32 Eba1, Ebe1, Ebi1, Ebo1, Ebu1; \ + UINT32 Ega0, Ege0, Egi0, Ego0, Egu0; \ + UINT32 Ega1, Ege1, Egi1, Ego1, Egu1; \ + UINT32 Eka0, Eke0, Eki0, Eko0, Eku0; \ + UINT32 Eka1, Eke1, Eki1, Eko1, Eku1; \ + UINT32 Ema0, Eme0, Emi0, Emo0, Emu0; \ + UINT32 Ema1, Eme1, Emi1, Emo1, Emu1; \ + UINT32 Esa0, Ese0, Esi0, Eso0, Esu0; \ + UINT32 Esa1, Ese1, Esi1, Eso1, Esu1; \ + const UINT32 * pRoundConstants = KeccakF1600RoundConstants_int2; \ + UINT32 i; \ +\ + copyFromState(A, state) \ +\ + for( i = 12; i != 0; --i ) { \ + Cx = Abu0^Agu0^Aku0^Amu0^Asu0; \ + Du1 = Abe1^Age1^Ake1^Ame1^Ase1; \ + Da0 = Cx^ROL32(Du1, 1); \ + Cz = Abu1^Agu1^Aku1^Amu1^Asu1; \ + Du0 = Abe0^Age0^Ake0^Ame0^Ase0; \ + Da1 = Cz^Du0; \ +\ + Cw = Abi0^Agi0^Aki0^Ami0^Asi0; \ + Do0 = Cw^ROL32(Cz, 1); \ + Cy = Abi1^Agi1^Aki1^Ami1^Asi1; \ + Do1 = Cy^Cx; \ +\ + Cx = Aba0^Aga0^Aka0^Ama0^Asa0; \ + De0 = Cx^ROL32(Cy, 1); \ + Cz = Aba1^Aga1^Aka1^Ama1^Asa1; \ + De1 = Cz^Cw; \ +\ + Cy = Abo1^Ago1^Ako1^Amo1^Aso1; \ + Di0 = Du0^ROL32(Cy, 1); \ + Cw = Abo0^Ago0^Ako0^Amo0^Aso0; \ + Di1 = Du1^Cw; \ +\ + Du0 = Cw^ROL32(Cz, 1); \ + Du1 = Cy^Cx; \ +\ + Aba0 ^= Da0; \ + Ba = Aba0; \ + Age0 ^= De0; \ + Be = ROL32(Age0, 22); \ + Aki1 ^= Di1; \ + Bi = ROL32(Aki1, 22); \ + Amo1 ^= Do1; \ + Bo = ROL32(Amo1, 11); \ + Asu0 ^= Du0; \ + Bu = ROL32(Asu0, 7); \ + Eba0 = Ba ^((~Be)& Bi ) ^ *(pRoundConstants++); \ + Ebe0 = Be ^((~Bi)& Bo ); \ + Ebi0 = Bi ^((~Bo)& Bu ); \ + Ebo0 = Bo ^((~Bu)& Ba ); \ + Ebu0 = Bu ^((~Ba)& Be ); \ +\ + Abo0 ^= Do0; \ + Ba = ROL32(Abo0, 14); \ + Agu0 ^= Du0; \ + Be = ROL32(Agu0, 10); \ + Aka1 ^= Da1; \ + Bi = ROL32(Aka1, 2); \ + Ame1 ^= De1; \ + Bo = ROL32(Ame1, 23); \ + Asi1 ^= Di1; \ + Bu = ROL32(Asi1, 31); \ + Ega0 = Ba ^((~Be)& Bi ); \ + Ege0 = Be ^((~Bi)& Bo ); \ + Egi0 = Bi ^((~Bo)& Bu ); \ + Ego0 = Bo ^((~Bu)& Ba ); \ + Egu0 = Bu ^((~Ba)& Be ); \ +\ + Abe1 ^= De1; \ + Ba = ROL32(Abe1, 1); \ + Agi0 ^= Di0; \ + Be = ROL32(Agi0, 3); \ + Ako1 ^= Do1; \ + Bi = ROL32(Ako1, 13); \ + Amu0 ^= Du0; \ + Bo = ROL32(Amu0, 4); \ + Asa0 ^= Da0; \ + Bu = ROL32(Asa0, 9); \ + Eka0 = Ba ^((~Be)& Bi ); \ + Eke0 = Be ^((~Bi)& Bo ); \ + Eki0 = Bi ^((~Bo)& Bu ); \ + Eko0 = Bo ^((~Bu)& Ba ); \ + Eku0 = Bu ^((~Ba)& Be ); \ +\ + Abu1 ^= Du1; \ + Ba = ROL32(Abu1, 14); \ + Aga0 ^= Da0; \ + Be = ROL32(Aga0, 18); \ + Ake0 ^= De0; \ + Bi = ROL32(Ake0, 5); \ + Ami1 ^= Di1; \ + Bo = ROL32(Ami1, 8); \ + Aso0 ^= Do0; \ + Bu = ROL32(Aso0, 28); \ + Ema0 = Ba ^((~Be)& Bi ); \ + Eme0 = Be ^((~Bi)& Bo ); \ + Emi0 = Bi ^((~Bo)& Bu ); \ + Emo0 = Bo ^((~Bu)& Ba ); \ + Emu0 = Bu ^((~Ba)& Be ); \ +\ + Abi0 ^= Di0; \ + Ba = ROL32(Abi0, 31); \ + Ago1 ^= Do1; \ + Be = ROL32(Ago1, 28); \ + Aku1 ^= Du1; \ + Bi = ROL32(Aku1, 20); \ + Ama1 ^= Da1; \ + Bo = ROL32(Ama1, 21); \ + Ase0 ^= De0; \ + Bu = ROL32(Ase0, 1); \ + Esa0 = Ba ^((~Be)& Bi ); \ + Ese0 = Be ^((~Bi)& Bo ); \ + Esi0 = Bi ^((~Bo)& Bu ); \ + Eso0 = Bo ^((~Bu)& Ba ); \ + Esu0 = Bu ^((~Ba)& Be ); \ +\ + Aba1 ^= Da1; \ + Ba = Aba1; \ + Age1 ^= De1; \ + Be = ROL32(Age1, 22); \ + Aki0 ^= Di0; \ + Bi = ROL32(Aki0, 21); \ + Amo0 ^= Do0; \ + Bo = ROL32(Amo0, 10); \ + Asu1 ^= Du1; \ + Bu = ROL32(Asu1, 7); \ + Eba1 = Ba ^((~Be)& Bi ); \ + Eba1 ^= *(pRoundConstants++); \ + Ebe1 = Be ^((~Bi)& Bo ); \ + Ebi1 = Bi ^((~Bo)& Bu ); \ + Ebo1 = Bo ^((~Bu)& Ba ); \ + Ebu1 = Bu ^((~Ba)& Be ); \ +\ + Abo1 ^= Do1; \ + Ba = ROL32(Abo1, 14); \ + Agu1 ^= Du1; \ + Be = ROL32(Agu1, 10); \ + Aka0 ^= Da0; \ + Bi = ROL32(Aka0, 1); \ + Ame0 ^= De0; \ + Bo = ROL32(Ame0, 22); \ + Asi0 ^= Di0; \ + Bu = ROL32(Asi0, 30); \ + Ega1 = Ba ^((~Be)& Bi ); \ + Ege1 = Be ^((~Bi)& Bo ); \ + Egi1 = Bi ^((~Bo)& Bu ); \ + Ego1 = Bo ^((~Bu)& Ba ); \ + Egu1 = Bu ^((~Ba)& Be ); \ +\ + Abe0 ^= De0; \ + Ba = Abe0; \ + Agi1 ^= Di1; \ + Be = ROL32(Agi1, 3); \ + Ako0 ^= Do0; \ + Bi = ROL32(Ako0, 12); \ + Amu1 ^= Du1; \ + Bo = ROL32(Amu1, 4); \ + Asa1 ^= Da1; \ + Bu = ROL32(Asa1, 9); \ + Eka1 = Ba ^((~Be)& Bi ); \ + Eke1 = Be ^((~Bi)& Bo ); \ + Eki1 = Bi ^((~Bo)& Bu ); \ + Eko1 = Bo ^((~Bu)& Ba ); \ + Eku1 = Bu ^((~Ba)& Be ); \ +\ + Abu0 ^= Du0; \ + Ba = ROL32(Abu0, 13); \ + Aga1 ^= Da1; \ + Be = ROL32(Aga1, 18); \ + Ake1 ^= De1; \ + Bi = ROL32(Ake1, 5); \ + Ami0 ^= Di0; \ + Bo = ROL32(Ami0, 7); \ + Aso1 ^= Do1; \ + Bu = ROL32(Aso1, 28); \ + Ema1 = Ba ^((~Be)& Bi ); \ + Eme1 = Be ^((~Bi)& Bo ); \ + Emi1 = Bi ^((~Bo)& Bu ); \ + Emo1 = Bo ^((~Bu)& Ba ); \ + Emu1 = Bu ^((~Ba)& Be ); \ +\ + Abi1 ^= Di1; \ + Ba = ROL32(Abi1, 31); \ + Ago0 ^= Do0; \ + Be = ROL32(Ago0, 27); \ + Aku0 ^= Du0; \ + Bi = ROL32(Aku0, 19); \ + Ama0 ^= Da0; \ + Bo = ROL32(Ama0, 20); \ + Ase1 ^= De1; \ + Bu = ROL32(Ase1, 1); \ + Esa1 = Ba ^((~Be)& Bi ); \ + Ese1 = Be ^((~Bi)& Bo ); \ + Esi1 = Bi ^((~Bo)& Bu ); \ + Eso1 = Bo ^((~Bu)& Ba ); \ + Esu1 = Bu ^((~Ba)& Be ); \ +\ + Cx = Ebu0^Egu0^Eku0^Emu0^Esu0; \ + Du1 = Ebe1^Ege1^Eke1^Eme1^Ese1; \ + Da0 = Cx^ROL32(Du1, 1); \ + Cz = Ebu1^Egu1^Eku1^Emu1^Esu1; \ + Du0 = Ebe0^Ege0^Eke0^Eme0^Ese0; \ + Da1 = Cz^Du0; \ +\ + Cw = Ebi0^Egi0^Eki0^Emi0^Esi0; \ + Do0 = Cw^ROL32(Cz, 1); \ + Cy = Ebi1^Egi1^Eki1^Emi1^Esi1; \ + Do1 = Cy^Cx; \ +\ + Cx = Eba0^Ega0^Eka0^Ema0^Esa0; \ + De0 = Cx^ROL32(Cy, 1); \ + Cz = Eba1^Ega1^Eka1^Ema1^Esa1; \ + De1 = Cz^Cw; \ +\ + Cy = Ebo1^Ego1^Eko1^Emo1^Eso1; \ + Di0 = Du0^ROL32(Cy, 1); \ + Cw = Ebo0^Ego0^Eko0^Emo0^Eso0; \ + Di1 = Du1^Cw; \ +\ + Du0 = Cw^ROL32(Cz, 1); \ + Du1 = Cy^Cx; \ +\ + Eba0 ^= Da0; \ + Ba = Eba0; \ + Ege0 ^= De0; \ + Be = ROL32(Ege0, 22); \ + Eki1 ^= Di1; \ + Bi = ROL32(Eki1, 22); \ + Emo1 ^= Do1; \ + Bo = ROL32(Emo1, 11); \ + Esu0 ^= Du0; \ + Bu = ROL32(Esu0, 7); \ + Aba0 = Ba ^((~Be)& Bi ); \ + Aba0 ^= *(pRoundConstants++); \ + Abe0 = Be ^((~Bi)& Bo ); \ + Abi0 = Bi ^((~Bo)& Bu ); \ + Abo0 = Bo ^((~Bu)& Ba ); \ + Abu0 = Bu ^((~Ba)& Be ); \ +\ + Ebo0 ^= Do0; \ + Ba = ROL32(Ebo0, 14); \ + Egu0 ^= Du0; \ + Be = ROL32(Egu0, 10); \ + Eka1 ^= Da1; \ + Bi = ROL32(Eka1, 2); \ + Eme1 ^= De1; \ + Bo = ROL32(Eme1, 23); \ + Esi1 ^= Di1; \ + Bu = ROL32(Esi1, 31); \ + Aga0 = Ba ^((~Be)& Bi ); \ + Age0 = Be ^((~Bi)& Bo ); \ + Agi0 = Bi ^((~Bo)& Bu ); \ + Ago0 = Bo ^((~Bu)& Ba ); \ + Agu0 = Bu ^((~Ba)& Be ); \ +\ + Ebe1 ^= De1; \ + Ba = ROL32(Ebe1, 1); \ + Egi0 ^= Di0; \ + Be = ROL32(Egi0, 3); \ + Eko1 ^= Do1; \ + Bi = ROL32(Eko1, 13); \ + Emu0 ^= Du0; \ + Bo = ROL32(Emu0, 4); \ + Esa0 ^= Da0; \ + Bu = ROL32(Esa0, 9); \ + Aka0 = Ba ^((~Be)& Bi ); \ + Ake0 = Be ^((~Bi)& Bo ); \ + Aki0 = Bi ^((~Bo)& Bu ); \ + Ako0 = Bo ^((~Bu)& Ba ); \ + Aku0 = Bu ^((~Ba)& Be ); \ +\ + Ebu1 ^= Du1; \ + Ba = ROL32(Ebu1, 14); \ + Ega0 ^= Da0; \ + Be = ROL32(Ega0, 18); \ + Eke0 ^= De0; \ + Bi = ROL32(Eke0, 5); \ + Emi1 ^= Di1; \ + Bo = ROL32(Emi1, 8); \ + Eso0 ^= Do0; \ + Bu = ROL32(Eso0, 28); \ + Ama0 = Ba ^((~Be)& Bi ); \ + Ame0 = Be ^((~Bi)& Bo ); \ + Ami0 = Bi ^((~Bo)& Bu ); \ + Amo0 = Bo ^((~Bu)& Ba ); \ + Amu0 = Bu ^((~Ba)& Be ); \ +\ + Ebi0 ^= Di0; \ + Ba = ROL32(Ebi0, 31); \ + Ego1 ^= Do1; \ + Be = ROL32(Ego1, 28); \ + Eku1 ^= Du1; \ + Bi = ROL32(Eku1, 20); \ + Ema1 ^= Da1; \ + Bo = ROL32(Ema1, 21); \ + Ese0 ^= De0; \ + Bu = ROL32(Ese0, 1); \ + Asa0 = Ba ^((~Be)& Bi ); \ + Ase0 = Be ^((~Bi)& Bo ); \ + Asi0 = Bi ^((~Bo)& Bu ); \ + Aso0 = Bo ^((~Bu)& Ba ); \ + Asu0 = Bu ^((~Ba)& Be ); \ +\ + Eba1 ^= Da1; \ + Ba = Eba1; \ + Ege1 ^= De1; \ + Be = ROL32(Ege1, 22); \ + Eki0 ^= Di0; \ + Bi = ROL32(Eki0, 21); \ + Emo0 ^= Do0; \ + Bo = ROL32(Emo0, 10); \ + Esu1 ^= Du1; \ + Bu = ROL32(Esu1, 7); \ + Aba1 = Ba ^((~Be)& Bi ); \ + Aba1 ^= *(pRoundConstants++); \ + Abe1 = Be ^((~Bi)& Bo ); \ + Abi1 = Bi ^((~Bo)& Bu ); \ + Abo1 = Bo ^((~Bu)& Ba ); \ + Abu1 = Bu ^((~Ba)& Be ); \ +\ + Ebo1 ^= Do1; \ + Ba = ROL32(Ebo1, 14); \ + Egu1 ^= Du1; \ + Be = ROL32(Egu1, 10); \ + Eka0 ^= Da0; \ + Bi = ROL32(Eka0, 1); \ + Eme0 ^= De0; \ + Bo = ROL32(Eme0, 22); \ + Esi0 ^= Di0; \ + Bu = ROL32(Esi0, 30); \ + Aga1 = Ba ^((~Be)& Bi ); \ + Age1 = Be ^((~Bi)& Bo ); \ + Agi1 = Bi ^((~Bo)& Bu ); \ + Ago1 = Bo ^((~Bu)& Ba ); \ + Agu1 = Bu ^((~Ba)& Be ); \ +\ + Ebe0 ^= De0; \ + Ba = Ebe0; \ + Egi1 ^= Di1; \ + Be = ROL32(Egi1, 3); \ + Eko0 ^= Do0; \ + Bi = ROL32(Eko0, 12); \ + Emu1 ^= Du1; \ + Bo = ROL32(Emu1, 4); \ + Esa1 ^= Da1; \ + Bu = ROL32(Esa1, 9); \ + Aka1 = Ba ^((~Be)& Bi ); \ + Ake1 = Be ^((~Bi)& Bo ); \ + Aki1 = Bi ^((~Bo)& Bu ); \ + Ako1 = Bo ^((~Bu)& Ba ); \ + Aku1 = Bu ^((~Ba)& Be ); \ +\ + Ebu0 ^= Du0; \ + Ba = ROL32(Ebu0, 13); \ + Ega1 ^= Da1; \ + Be = ROL32(Ega1, 18); \ + Eke1 ^= De1; \ + Bi = ROL32(Eke1, 5); \ + Emi0 ^= Di0; \ + Bo = ROL32(Emi0, 7); \ + Eso1 ^= Do1; \ + Bu = ROL32(Eso1, 28); \ + Ama1 = Ba ^((~Be)& Bi ); \ + Ame1 = Be ^((~Bi)& Bo ); \ + Ami1 = Bi ^((~Bo)& Bu ); \ + Amo1 = Bo ^((~Bu)& Ba ); \ + Amu1 = Bu ^((~Ba)& Be ); \ +\ + Ebi1 ^= Di1; \ + Ba = ROL32(Ebi1, 31); \ + Ego0 ^= Do0; \ + Be = ROL32(Ego0, 27); \ + Eku0 ^= Du0; \ + Bi = ROL32(Eku0, 19); \ + Ema0 ^= Da0; \ + Bo = ROL32(Ema0, 20); \ + Ese1 ^= De1; \ + Bu = ROL32(Ese1, 1); \ + Asa1 = Ba ^((~Be)& Bi ); \ + Ase1 = Be ^((~Bi)& Bo ); \ + Asi1 = Bi ^((~Bo)& Bu ); \ + Aso1 = Bo ^((~Bu)& Ba ); \ + Asu1 = Bu ^((~Ba)& Be ); \ + } \ + copyToState(state, A) \ +} + +#define copyFromState(X, state) \ + X##ba0 = state[ 0]; \ + X##ba1 = state[ 1]; \ + X##be0 = state[ 2]; \ + X##be1 = state[ 3]; \ + X##bi0 = state[ 4]; \ + X##bi1 = state[ 5]; \ + X##bo0 = state[ 6]; \ + X##bo1 = state[ 7]; \ + X##bu0 = state[ 8]; \ + X##bu1 = state[ 9]; \ + X##ga0 = state[10]; \ + X##ga1 = state[11]; \ + X##ge0 = state[12]; \ + X##ge1 = state[13]; \ + X##gi0 = state[14]; \ + X##gi1 = state[15]; \ + X##go0 = state[16]; \ + X##go1 = state[17]; \ + X##gu0 = state[18]; \ + X##gu1 = state[19]; \ + X##ka0 = state[20]; \ + X##ka1 = state[21]; \ + X##ke0 = state[22]; \ + X##ke1 = state[23]; \ + X##ki0 = state[24]; \ + X##ki1 = state[25]; \ + X##ko0 = state[26]; \ + X##ko1 = state[27]; \ + X##ku0 = state[28]; \ + X##ku1 = state[29]; \ + X##ma0 = state[30]; \ + X##ma1 = state[31]; \ + X##me0 = state[32]; \ + X##me1 = state[33]; \ + X##mi0 = state[34]; \ + X##mi1 = state[35]; \ + X##mo0 = state[36]; \ + X##mo1 = state[37]; \ + X##mu0 = state[38]; \ + X##mu1 = state[39]; \ + X##sa0 = state[40]; \ + X##sa1 = state[41]; \ + X##se0 = state[42]; \ + X##se1 = state[43]; \ + X##si0 = state[44]; \ + X##si1 = state[45]; \ + X##so0 = state[46]; \ + X##so1 = state[47]; \ + X##su0 = state[48]; \ + X##su1 = state[49]; \ + +#define copyToState(state, X) \ + state[ 0] = X##ba0; \ + state[ 1] = X##ba1; \ + state[ 2] = X##be0; \ + state[ 3] = X##be1; \ + state[ 4] = X##bi0; \ + state[ 5] = X##bi1; \ + state[ 6] = X##bo0; \ + state[ 7] = X##bo1; \ + state[ 8] = X##bu0; \ + state[ 9] = X##bu1; \ + state[10] = X##ga0; \ + state[11] = X##ga1; \ + state[12] = X##ge0; \ + state[13] = X##ge1; \ + state[14] = X##gi0; \ + state[15] = X##gi1; \ + state[16] = X##go0; \ + state[17] = X##go1; \ + state[18] = X##gu0; \ + state[19] = X##gu1; \ + state[20] = X##ka0; \ + state[21] = X##ka1; \ + state[22] = X##ke0; \ + state[23] = X##ke1; \ + state[24] = X##ki0; \ + state[25] = X##ki1; \ + state[26] = X##ko0; \ + state[27] = X##ko1; \ + state[28] = X##ku0; \ + state[29] = X##ku1; \ + state[30] = X##ma0; \ + state[31] = X##ma1; \ + state[32] = X##me0; \ + state[33] = X##me1; \ + state[34] = X##mi0; \ + state[35] = X##mi1; \ + state[36] = X##mo0; \ + state[37] = X##mo1; \ + state[38] = X##mu0; \ + state[39] = X##mu1; \ + state[40] = X##sa0; \ + state[41] = X##sa1; \ + state[42] = X##se0; \ + state[43] = X##se1; \ + state[44] = X##si0; \ + state[45] = X##si1; \ + state[46] = X##so0; \ + state[47] = X##so1; \ + state[48] = X##su0; \ + state[49] = X##su1; \ + diff --git a/Modules/_sha3/keccak/KeccakF-1600-32-s1.macros b/Modules/_sha3/keccak/KeccakF-1600-32-s1.macros new file mode 100644 index 0000000..373d61d --- /dev/null +++ b/Modules/_sha3/keccak/KeccakF-1600-32-s1.macros @@ -0,0 +1,1187 @@ +/* +Code automatically generated by KeccakTools! + +The Keccak sponge function, designed by Guido Bertoni, Joan Daemen, +Michaël Peeters and Gilles Van Assche. For more information, feedback or +questions, please refer to our website: http://keccak.noekeon.org/ + +Implementation by the designers, +hereby denoted as "the implementer". + +To the extent possible under law, the implementer has waived all copyright +and related or neighboring rights to the source code in this file. +http://creativecommons.org/publicdomain/zero/1.0/ +*/ + +#define declareABCDE \ + UINT32 Aba0, Abe0, Abi0, Abo0, Abu0; \ + UINT32 Aba1, Abe1, Abi1, Abo1, Abu1; \ + UINT32 Aga0, Age0, Agi0, Ago0, Agu0; \ + UINT32 Aga1, Age1, Agi1, Ago1, Agu1; \ + UINT32 Aka0, Ake0, Aki0, Ako0, Aku0; \ + UINT32 Aka1, Ake1, Aki1, Ako1, Aku1; \ + UINT32 Ama0, Ame0, Ami0, Amo0, Amu0; \ + UINT32 Ama1, Ame1, Ami1, Amo1, Amu1; \ + UINT32 Asa0, Ase0, Asi0, Aso0, Asu0; \ + UINT32 Asa1, Ase1, Asi1, Aso1, Asu1; \ + UINT32 Bba0, Bbe0, Bbi0, Bbo0, Bbu0; \ + UINT32 Bba1, Bbe1, Bbi1, Bbo1, Bbu1; \ + UINT32 Bga0, Bge0, Bgi0, Bgo0, Bgu0; \ + UINT32 Bga1, Bge1, Bgi1, Bgo1, Bgu1; \ + UINT32 Bka0, Bke0, Bki0, Bko0, Bku0; \ + UINT32 Bka1, Bke1, Bki1, Bko1, Bku1; \ + UINT32 Bma0, Bme0, Bmi0, Bmo0, Bmu0; \ + UINT32 Bma1, Bme1, Bmi1, Bmo1, Bmu1; \ + UINT32 Bsa0, Bse0, Bsi0, Bso0, Bsu0; \ + UINT32 Bsa1, Bse1, Bsi1, Bso1, Bsu1; \ + UINT32 Ca0, Ce0, Ci0, Co0, Cu0; \ + UINT32 Ca1, Ce1, Ci1, Co1, Cu1; \ + UINT32 Da0, De0, Di0, Do0, Du0; \ + UINT32 Da1, De1, Di1, Do1, Du1; \ + UINT32 Eba0, Ebe0, Ebi0, Ebo0, Ebu0; \ + UINT32 Eba1, Ebe1, Ebi1, Ebo1, Ebu1; \ + UINT32 Ega0, Ege0, Egi0, Ego0, Egu0; \ + UINT32 Ega1, Ege1, Egi1, Ego1, Egu1; \ + UINT32 Eka0, Eke0, Eki0, Eko0, Eku0; \ + UINT32 Eka1, Eke1, Eki1, Eko1, Eku1; \ + UINT32 Ema0, Eme0, Emi0, Emo0, Emu0; \ + UINT32 Ema1, Eme1, Emi1, Emo1, Emu1; \ + UINT32 Esa0, Ese0, Esi0, Eso0, Esu0; \ + UINT32 Esa1, Ese1, Esi1, Eso1, Esu1; \ + +#define prepareTheta \ + Ca0 = Aba0^Aga0^Aka0^Ama0^Asa0; \ + Ca1 = Aba1^Aga1^Aka1^Ama1^Asa1; \ + Ce0 = Abe0^Age0^Ake0^Ame0^Ase0; \ + Ce1 = Abe1^Age1^Ake1^Ame1^Ase1; \ + Ci0 = Abi0^Agi0^Aki0^Ami0^Asi0; \ + Ci1 = Abi1^Agi1^Aki1^Ami1^Asi1; \ + Co0 = Abo0^Ago0^Ako0^Amo0^Aso0; \ + Co1 = Abo1^Ago1^Ako1^Amo1^Aso1; \ + Cu0 = Abu0^Agu0^Aku0^Amu0^Asu0; \ + Cu1 = Abu1^Agu1^Aku1^Amu1^Asu1; \ + +#ifdef UseBebigokimisa +/* --- Code for round, with prepare-theta (lane complementing pattern 'bebigokimisa') */ +/* --- using factor 2 interleaving, 64-bit lanes mapped to 32-bit words */ +#define thetaRhoPiChiIotaPrepareTheta(i, A, E) \ + Da0 = Cu0^ROL32(Ce1, 1); \ + Da1 = Cu1^Ce0; \ + De0 = Ca0^ROL32(Ci1, 1); \ + De1 = Ca1^Ci0; \ + Di0 = Ce0^ROL32(Co1, 1); \ + Di1 = Ce1^Co0; \ + Do0 = Ci0^ROL32(Cu1, 1); \ + Do1 = Ci1^Cu0; \ + Du0 = Co0^ROL32(Ca1, 1); \ + Du1 = Co1^Ca0; \ +\ + A##ba0 ^= Da0; \ + Bba0 = A##ba0; \ + A##ge0 ^= De0; \ + Bbe0 = ROL32(A##ge0, 22); \ + A##ki1 ^= Di1; \ + Bbi0 = ROL32(A##ki1, 22); \ + A##mo1 ^= Do1; \ + Bbo0 = ROL32(A##mo1, 11); \ + A##su0 ^= Du0; \ + Bbu0 = ROL32(A##su0, 7); \ + E##ba0 = Bba0 ^( Bbe0 | Bbi0 ); \ + E##ba0 ^= KeccakF1600RoundConstants_int2_0[i]; \ + Ca0 = E##ba0; \ + E##be0 = Bbe0 ^((~Bbi0)| Bbo0 ); \ + Ce0 = E##be0; \ + E##bi0 = Bbi0 ^( Bbo0 & Bbu0 ); \ + Ci0 = E##bi0; \ + E##bo0 = Bbo0 ^( Bbu0 | Bba0 ); \ + Co0 = E##bo0; \ + E##bu0 = Bbu0 ^( Bba0 & Bbe0 ); \ + Cu0 = E##bu0; \ +\ + A##ba1 ^= Da1; \ + Bba1 = A##ba1; \ + A##ge1 ^= De1; \ + Bbe1 = ROL32(A##ge1, 22); \ + A##ki0 ^= Di0; \ + Bbi1 = ROL32(A##ki0, 21); \ + A##mo0 ^= Do0; \ + Bbo1 = ROL32(A##mo0, 10); \ + A##su1 ^= Du1; \ + Bbu1 = ROL32(A##su1, 7); \ + E##ba1 = Bba1 ^( Bbe1 | Bbi1 ); \ + E##ba1 ^= KeccakF1600RoundConstants_int2_1[i]; \ + Ca1 = E##ba1; \ + E##be1 = Bbe1 ^((~Bbi1)| Bbo1 ); \ + Ce1 = E##be1; \ + E##bi1 = Bbi1 ^( Bbo1 & Bbu1 ); \ + Ci1 = E##bi1; \ + E##bo1 = Bbo1 ^( Bbu1 | Bba1 ); \ + Co1 = E##bo1; \ + E##bu1 = Bbu1 ^( Bba1 & Bbe1 ); \ + Cu1 = E##bu1; \ +\ + A##bo0 ^= Do0; \ + Bga0 = ROL32(A##bo0, 14); \ + A##gu0 ^= Du0; \ + Bge0 = ROL32(A##gu0, 10); \ + A##ka1 ^= Da1; \ + Bgi0 = ROL32(A##ka1, 2); \ + A##me1 ^= De1; \ + Bgo0 = ROL32(A##me1, 23); \ + A##si1 ^= Di1; \ + Bgu0 = ROL32(A##si1, 31); \ + E##ga0 = Bga0 ^( Bge0 | Bgi0 ); \ + Ca0 ^= E##ga0; \ + E##ge0 = Bge0 ^( Bgi0 & Bgo0 ); \ + Ce0 ^= E##ge0; \ + E##gi0 = Bgi0 ^( Bgo0 |(~Bgu0)); \ + Ci0 ^= E##gi0; \ + E##go0 = Bgo0 ^( Bgu0 | Bga0 ); \ + Co0 ^= E##go0; \ + E##gu0 = Bgu0 ^( Bga0 & Bge0 ); \ + Cu0 ^= E##gu0; \ +\ + A##bo1 ^= Do1; \ + Bga1 = ROL32(A##bo1, 14); \ + A##gu1 ^= Du1; \ + Bge1 = ROL32(A##gu1, 10); \ + A##ka0 ^= Da0; \ + Bgi1 = ROL32(A##ka0, 1); \ + A##me0 ^= De0; \ + Bgo1 = ROL32(A##me0, 22); \ + A##si0 ^= Di0; \ + Bgu1 = ROL32(A##si0, 30); \ + E##ga1 = Bga1 ^( Bge1 | Bgi1 ); \ + Ca1 ^= E##ga1; \ + E##ge1 = Bge1 ^( Bgi1 & Bgo1 ); \ + Ce1 ^= E##ge1; \ + E##gi1 = Bgi1 ^( Bgo1 |(~Bgu1)); \ + Ci1 ^= E##gi1; \ + E##go1 = Bgo1 ^( Bgu1 | Bga1 ); \ + Co1 ^= E##go1; \ + E##gu1 = Bgu1 ^( Bga1 & Bge1 ); \ + Cu1 ^= E##gu1; \ +\ + A##be1 ^= De1; \ + Bka0 = ROL32(A##be1, 1); \ + A##gi0 ^= Di0; \ + Bke0 = ROL32(A##gi0, 3); \ + A##ko1 ^= Do1; \ + Bki0 = ROL32(A##ko1, 13); \ + A##mu0 ^= Du0; \ + Bko0 = ROL32(A##mu0, 4); \ + A##sa0 ^= Da0; \ + Bku0 = ROL32(A##sa0, 9); \ + E##ka0 = Bka0 ^( Bke0 | Bki0 ); \ + Ca0 ^= E##ka0; \ + E##ke0 = Bke0 ^( Bki0 & Bko0 ); \ + Ce0 ^= E##ke0; \ + E##ki0 = Bki0 ^((~Bko0)& Bku0 ); \ + Ci0 ^= E##ki0; \ + E##ko0 = (~Bko0)^( Bku0 | Bka0 ); \ + Co0 ^= E##ko0; \ + E##ku0 = Bku0 ^( Bka0 & Bke0 ); \ + Cu0 ^= E##ku0; \ +\ + A##be0 ^= De0; \ + Bka1 = A##be0; \ + A##gi1 ^= Di1; \ + Bke1 = ROL32(A##gi1, 3); \ + A##ko0 ^= Do0; \ + Bki1 = ROL32(A##ko0, 12); \ + A##mu1 ^= Du1; \ + Bko1 = ROL32(A##mu1, 4); \ + A##sa1 ^= Da1; \ + Bku1 = ROL32(A##sa1, 9); \ + E##ka1 = Bka1 ^( Bke1 | Bki1 ); \ + Ca1 ^= E##ka1; \ + E##ke1 = Bke1 ^( Bki1 & Bko1 ); \ + Ce1 ^= E##ke1; \ + E##ki1 = Bki1 ^((~Bko1)& Bku1 ); \ + Ci1 ^= E##ki1; \ + E##ko1 = (~Bko1)^( Bku1 | Bka1 ); \ + Co1 ^= E##ko1; \ + E##ku1 = Bku1 ^( Bka1 & Bke1 ); \ + Cu1 ^= E##ku1; \ +\ + A##bu1 ^= Du1; \ + Bma0 = ROL32(A##bu1, 14); \ + A##ga0 ^= Da0; \ + Bme0 = ROL32(A##ga0, 18); \ + A##ke0 ^= De0; \ + Bmi0 = ROL32(A##ke0, 5); \ + A##mi1 ^= Di1; \ + Bmo0 = ROL32(A##mi1, 8); \ + A##so0 ^= Do0; \ + Bmu0 = ROL32(A##so0, 28); \ + E##ma0 = Bma0 ^( Bme0 & Bmi0 ); \ + Ca0 ^= E##ma0; \ + E##me0 = Bme0 ^( Bmi0 | Bmo0 ); \ + Ce0 ^= E##me0; \ + E##mi0 = Bmi0 ^((~Bmo0)| Bmu0 ); \ + Ci0 ^= E##mi0; \ + E##mo0 = (~Bmo0)^( Bmu0 & Bma0 ); \ + Co0 ^= E##mo0; \ + E##mu0 = Bmu0 ^( Bma0 | Bme0 ); \ + Cu0 ^= E##mu0; \ +\ + A##bu0 ^= Du0; \ + Bma1 = ROL32(A##bu0, 13); \ + A##ga1 ^= Da1; \ + Bme1 = ROL32(A##ga1, 18); \ + A##ke1 ^= De1; \ + Bmi1 = ROL32(A##ke1, 5); \ + A##mi0 ^= Di0; \ + Bmo1 = ROL32(A##mi0, 7); \ + A##so1 ^= Do1; \ + Bmu1 = ROL32(A##so1, 28); \ + E##ma1 = Bma1 ^( Bme1 & Bmi1 ); \ + Ca1 ^= E##ma1; \ + E##me1 = Bme1 ^( Bmi1 | Bmo1 ); \ + Ce1 ^= E##me1; \ + E##mi1 = Bmi1 ^((~Bmo1)| Bmu1 ); \ + Ci1 ^= E##mi1; \ + E##mo1 = (~Bmo1)^( Bmu1 & Bma1 ); \ + Co1 ^= E##mo1; \ + E##mu1 = Bmu1 ^( Bma1 | Bme1 ); \ + Cu1 ^= E##mu1; \ +\ + A##bi0 ^= Di0; \ + Bsa0 = ROL32(A##bi0, 31); \ + A##go1 ^= Do1; \ + Bse0 = ROL32(A##go1, 28); \ + A##ku1 ^= Du1; \ + Bsi0 = ROL32(A##ku1, 20); \ + A##ma1 ^= Da1; \ + Bso0 = ROL32(A##ma1, 21); \ + A##se0 ^= De0; \ + Bsu0 = ROL32(A##se0, 1); \ + E##sa0 = Bsa0 ^((~Bse0)& Bsi0 ); \ + Ca0 ^= E##sa0; \ + E##se0 = (~Bse0)^( Bsi0 | Bso0 ); \ + Ce0 ^= E##se0; \ + E##si0 = Bsi0 ^( Bso0 & Bsu0 ); \ + Ci0 ^= E##si0; \ + E##so0 = Bso0 ^( Bsu0 | Bsa0 ); \ + Co0 ^= E##so0; \ + E##su0 = Bsu0 ^( Bsa0 & Bse0 ); \ + Cu0 ^= E##su0; \ +\ + A##bi1 ^= Di1; \ + Bsa1 = ROL32(A##bi1, 31); \ + A##go0 ^= Do0; \ + Bse1 = ROL32(A##go0, 27); \ + A##ku0 ^= Du0; \ + Bsi1 = ROL32(A##ku0, 19); \ + A##ma0 ^= Da0; \ + Bso1 = ROL32(A##ma0, 20); \ + A##se1 ^= De1; \ + Bsu1 = ROL32(A##se1, 1); \ + E##sa1 = Bsa1 ^((~Bse1)& Bsi1 ); \ + Ca1 ^= E##sa1; \ + E##se1 = (~Bse1)^( Bsi1 | Bso1 ); \ + Ce1 ^= E##se1; \ + E##si1 = Bsi1 ^( Bso1 & Bsu1 ); \ + Ci1 ^= E##si1; \ + E##so1 = Bso1 ^( Bsu1 | Bsa1 ); \ + Co1 ^= E##so1; \ + E##su1 = Bsu1 ^( Bsa1 & Bse1 ); \ + Cu1 ^= E##su1; \ +\ + +/* --- Code for round (lane complementing pattern 'bebigokimisa') */ +/* --- using factor 2 interleaving, 64-bit lanes mapped to 32-bit words */ +#define thetaRhoPiChiIota(i, A, E) \ + Da0 = Cu0^ROL32(Ce1, 1); \ + Da1 = Cu1^Ce0; \ + De0 = Ca0^ROL32(Ci1, 1); \ + De1 = Ca1^Ci0; \ + Di0 = Ce0^ROL32(Co1, 1); \ + Di1 = Ce1^Co0; \ + Do0 = Ci0^ROL32(Cu1, 1); \ + Do1 = Ci1^Cu0; \ + Du0 = Co0^ROL32(Ca1, 1); \ + Du1 = Co1^Ca0; \ +\ + A##ba0 ^= Da0; \ + Bba0 = A##ba0; \ + A##ge0 ^= De0; \ + Bbe0 = ROL32(A##ge0, 22); \ + A##ki1 ^= Di1; \ + Bbi0 = ROL32(A##ki1, 22); \ + A##mo1 ^= Do1; \ + Bbo0 = ROL32(A##mo1, 11); \ + A##su0 ^= Du0; \ + Bbu0 = ROL32(A##su0, 7); \ + E##ba0 = Bba0 ^( Bbe0 | Bbi0 ); \ + E##ba0 ^= KeccakF1600RoundConstants_int2_0[i]; \ + E##be0 = Bbe0 ^((~Bbi0)| Bbo0 ); \ + E##bi0 = Bbi0 ^( Bbo0 & Bbu0 ); \ + E##bo0 = Bbo0 ^( Bbu0 | Bba0 ); \ + E##bu0 = Bbu0 ^( Bba0 & Bbe0 ); \ +\ + A##ba1 ^= Da1; \ + Bba1 = A##ba1; \ + A##ge1 ^= De1; \ + Bbe1 = ROL32(A##ge1, 22); \ + A##ki0 ^= Di0; \ + Bbi1 = ROL32(A##ki0, 21); \ + A##mo0 ^= Do0; \ + Bbo1 = ROL32(A##mo0, 10); \ + A##su1 ^= Du1; \ + Bbu1 = ROL32(A##su1, 7); \ + E##ba1 = Bba1 ^( Bbe1 | Bbi1 ); \ + E##ba1 ^= KeccakF1600RoundConstants_int2_1[i]; \ + E##be1 = Bbe1 ^((~Bbi1)| Bbo1 ); \ + E##bi1 = Bbi1 ^( Bbo1 & Bbu1 ); \ + E##bo1 = Bbo1 ^( Bbu1 | Bba1 ); \ + E##bu1 = Bbu1 ^( Bba1 & Bbe1 ); \ +\ + A##bo0 ^= Do0; \ + Bga0 = ROL32(A##bo0, 14); \ + A##gu0 ^= Du0; \ + Bge0 = ROL32(A##gu0, 10); \ + A##ka1 ^= Da1; \ + Bgi0 = ROL32(A##ka1, 2); \ + A##me1 ^= De1; \ + Bgo0 = ROL32(A##me1, 23); \ + A##si1 ^= Di1; \ + Bgu0 = ROL32(A##si1, 31); \ + E##ga0 = Bga0 ^( Bge0 | Bgi0 ); \ + E##ge0 = Bge0 ^( Bgi0 & Bgo0 ); \ + E##gi0 = Bgi0 ^( Bgo0 |(~Bgu0)); \ + E##go0 = Bgo0 ^( Bgu0 | Bga0 ); \ + E##gu0 = Bgu0 ^( Bga0 & Bge0 ); \ +\ + A##bo1 ^= Do1; \ + Bga1 = ROL32(A##bo1, 14); \ + A##gu1 ^= Du1; \ + Bge1 = ROL32(A##gu1, 10); \ + A##ka0 ^= Da0; \ + Bgi1 = ROL32(A##ka0, 1); \ + A##me0 ^= De0; \ + Bgo1 = ROL32(A##me0, 22); \ + A##si0 ^= Di0; \ + Bgu1 = ROL32(A##si0, 30); \ + E##ga1 = Bga1 ^( Bge1 | Bgi1 ); \ + E##ge1 = Bge1 ^( Bgi1 & Bgo1 ); \ + E##gi1 = Bgi1 ^( Bgo1 |(~Bgu1)); \ + E##go1 = Bgo1 ^( Bgu1 | Bga1 ); \ + E##gu1 = Bgu1 ^( Bga1 & Bge1 ); \ +\ + A##be1 ^= De1; \ + Bka0 = ROL32(A##be1, 1); \ + A##gi0 ^= Di0; \ + Bke0 = ROL32(A##gi0, 3); \ + A##ko1 ^= Do1; \ + Bki0 = ROL32(A##ko1, 13); \ + A##mu0 ^= Du0; \ + Bko0 = ROL32(A##mu0, 4); \ + A##sa0 ^= Da0; \ + Bku0 = ROL32(A##sa0, 9); \ + E##ka0 = Bka0 ^( Bke0 | Bki0 ); \ + E##ke0 = Bke0 ^( Bki0 & Bko0 ); \ + E##ki0 = Bki0 ^((~Bko0)& Bku0 ); \ + E##ko0 = (~Bko0)^( Bku0 | Bka0 ); \ + E##ku0 = Bku0 ^( Bka0 & Bke0 ); \ +\ + A##be0 ^= De0; \ + Bka1 = A##be0; \ + A##gi1 ^= Di1; \ + Bke1 = ROL32(A##gi1, 3); \ + A##ko0 ^= Do0; \ + Bki1 = ROL32(A##ko0, 12); \ + A##mu1 ^= Du1; \ + Bko1 = ROL32(A##mu1, 4); \ + A##sa1 ^= Da1; \ + Bku1 = ROL32(A##sa1, 9); \ + E##ka1 = Bka1 ^( Bke1 | Bki1 ); \ + E##ke1 = Bke1 ^( Bki1 & Bko1 ); \ + E##ki1 = Bki1 ^((~Bko1)& Bku1 ); \ + E##ko1 = (~Bko1)^( Bku1 | Bka1 ); \ + E##ku1 = Bku1 ^( Bka1 & Bke1 ); \ +\ + A##bu1 ^= Du1; \ + Bma0 = ROL32(A##bu1, 14); \ + A##ga0 ^= Da0; \ + Bme0 = ROL32(A##ga0, 18); \ + A##ke0 ^= De0; \ + Bmi0 = ROL32(A##ke0, 5); \ + A##mi1 ^= Di1; \ + Bmo0 = ROL32(A##mi1, 8); \ + A##so0 ^= Do0; \ + Bmu0 = ROL32(A##so0, 28); \ + E##ma0 = Bma0 ^( Bme0 & Bmi0 ); \ + E##me0 = Bme0 ^( Bmi0 | Bmo0 ); \ + E##mi0 = Bmi0 ^((~Bmo0)| Bmu0 ); \ + E##mo0 = (~Bmo0)^( Bmu0 & Bma0 ); \ + E##mu0 = Bmu0 ^( Bma0 | Bme0 ); \ +\ + A##bu0 ^= Du0; \ + Bma1 = ROL32(A##bu0, 13); \ + A##ga1 ^= Da1; \ + Bme1 = ROL32(A##ga1, 18); \ + A##ke1 ^= De1; \ + Bmi1 = ROL32(A##ke1, 5); \ + A##mi0 ^= Di0; \ + Bmo1 = ROL32(A##mi0, 7); \ + A##so1 ^= Do1; \ + Bmu1 = ROL32(A##so1, 28); \ + E##ma1 = Bma1 ^( Bme1 & Bmi1 ); \ + E##me1 = Bme1 ^( Bmi1 | Bmo1 ); \ + E##mi1 = Bmi1 ^((~Bmo1)| Bmu1 ); \ + E##mo1 = (~Bmo1)^( Bmu1 & Bma1 ); \ + E##mu1 = Bmu1 ^( Bma1 | Bme1 ); \ +\ + A##bi0 ^= Di0; \ + Bsa0 = ROL32(A##bi0, 31); \ + A##go1 ^= Do1; \ + Bse0 = ROL32(A##go1, 28); \ + A##ku1 ^= Du1; \ + Bsi0 = ROL32(A##ku1, 20); \ + A##ma1 ^= Da1; \ + Bso0 = ROL32(A##ma1, 21); \ + A##se0 ^= De0; \ + Bsu0 = ROL32(A##se0, 1); \ + E##sa0 = Bsa0 ^((~Bse0)& Bsi0 ); \ + E##se0 = (~Bse0)^( Bsi0 | Bso0 ); \ + E##si0 = Bsi0 ^( Bso0 & Bsu0 ); \ + E##so0 = Bso0 ^( Bsu0 | Bsa0 ); \ + E##su0 = Bsu0 ^( Bsa0 & Bse0 ); \ +\ + A##bi1 ^= Di1; \ + Bsa1 = ROL32(A##bi1, 31); \ + A##go0 ^= Do0; \ + Bse1 = ROL32(A##go0, 27); \ + A##ku0 ^= Du0; \ + Bsi1 = ROL32(A##ku0, 19); \ + A##ma0 ^= Da0; \ + Bso1 = ROL32(A##ma0, 20); \ + A##se1 ^= De1; \ + Bsu1 = ROL32(A##se1, 1); \ + E##sa1 = Bsa1 ^((~Bse1)& Bsi1 ); \ + E##se1 = (~Bse1)^( Bsi1 | Bso1 ); \ + E##si1 = Bsi1 ^( Bso1 & Bsu1 ); \ + E##so1 = Bso1 ^( Bsu1 | Bsa1 ); \ + E##su1 = Bsu1 ^( Bsa1 & Bse1 ); \ +\ + +#else /* UseBebigokimisa */ +/* --- Code for round, with prepare-theta */ +/* --- using factor 2 interleaving, 64-bit lanes mapped to 32-bit words */ +#define thetaRhoPiChiIotaPrepareTheta(i, A, E) \ + Da0 = Cu0^ROL32(Ce1, 1); \ + Da1 = Cu1^Ce0; \ + De0 = Ca0^ROL32(Ci1, 1); \ + De1 = Ca1^Ci0; \ + Di0 = Ce0^ROL32(Co1, 1); \ + Di1 = Ce1^Co0; \ + Do0 = Ci0^ROL32(Cu1, 1); \ + Do1 = Ci1^Cu0; \ + Du0 = Co0^ROL32(Ca1, 1); \ + Du1 = Co1^Ca0; \ +\ + A##ba0 ^= Da0; \ + Bba0 = A##ba0; \ + A##ge0 ^= De0; \ + Bbe0 = ROL32(A##ge0, 22); \ + A##ki1 ^= Di1; \ + Bbi0 = ROL32(A##ki1, 22); \ + A##mo1 ^= Do1; \ + Bbo0 = ROL32(A##mo1, 11); \ + A##su0 ^= Du0; \ + Bbu0 = ROL32(A##su0, 7); \ + E##ba0 = Bba0 ^((~Bbe0)& Bbi0 ); \ + E##ba0 ^= KeccakF1600RoundConstants_int2_0[i]; \ + Ca0 = E##ba0; \ + E##be0 = Bbe0 ^((~Bbi0)& Bbo0 ); \ + Ce0 = E##be0; \ + E##bi0 = Bbi0 ^((~Bbo0)& Bbu0 ); \ + Ci0 = E##bi0; \ + E##bo0 = Bbo0 ^((~Bbu0)& Bba0 ); \ + Co0 = E##bo0; \ + E##bu0 = Bbu0 ^((~Bba0)& Bbe0 ); \ + Cu0 = E##bu0; \ +\ + A##ba1 ^= Da1; \ + Bba1 = A##ba1; \ + A##ge1 ^= De1; \ + Bbe1 = ROL32(A##ge1, 22); \ + A##ki0 ^= Di0; \ + Bbi1 = ROL32(A##ki0, 21); \ + A##mo0 ^= Do0; \ + Bbo1 = ROL32(A##mo0, 10); \ + A##su1 ^= Du1; \ + Bbu1 = ROL32(A##su1, 7); \ + E##ba1 = Bba1 ^((~Bbe1)& Bbi1 ); \ + E##ba1 ^= KeccakF1600RoundConstants_int2_1[i]; \ + Ca1 = E##ba1; \ + E##be1 = Bbe1 ^((~Bbi1)& Bbo1 ); \ + Ce1 = E##be1; \ + E##bi1 = Bbi1 ^((~Bbo1)& Bbu1 ); \ + Ci1 = E##bi1; \ + E##bo1 = Bbo1 ^((~Bbu1)& Bba1 ); \ + Co1 = E##bo1; \ + E##bu1 = Bbu1 ^((~Bba1)& Bbe1 ); \ + Cu1 = E##bu1; \ +\ + A##bo0 ^= Do0; \ + Bga0 = ROL32(A##bo0, 14); \ + A##gu0 ^= Du0; \ + Bge0 = ROL32(A##gu0, 10); \ + A##ka1 ^= Da1; \ + Bgi0 = ROL32(A##ka1, 2); \ + A##me1 ^= De1; \ + Bgo0 = ROL32(A##me1, 23); \ + A##si1 ^= Di1; \ + Bgu0 = ROL32(A##si1, 31); \ + E##ga0 = Bga0 ^((~Bge0)& Bgi0 ); \ + Ca0 ^= E##ga0; \ + E##ge0 = Bge0 ^((~Bgi0)& Bgo0 ); \ + Ce0 ^= E##ge0; \ + E##gi0 = Bgi0 ^((~Bgo0)& Bgu0 ); \ + Ci0 ^= E##gi0; \ + E##go0 = Bgo0 ^((~Bgu0)& Bga0 ); \ + Co0 ^= E##go0; \ + E##gu0 = Bgu0 ^((~Bga0)& Bge0 ); \ + Cu0 ^= E##gu0; \ +\ + A##bo1 ^= Do1; \ + Bga1 = ROL32(A##bo1, 14); \ + A##gu1 ^= Du1; \ + Bge1 = ROL32(A##gu1, 10); \ + A##ka0 ^= Da0; \ + Bgi1 = ROL32(A##ka0, 1); \ + A##me0 ^= De0; \ + Bgo1 = ROL32(A##me0, 22); \ + A##si0 ^= Di0; \ + Bgu1 = ROL32(A##si0, 30); \ + E##ga1 = Bga1 ^((~Bge1)& Bgi1 ); \ + Ca1 ^= E##ga1; \ + E##ge1 = Bge1 ^((~Bgi1)& Bgo1 ); \ + Ce1 ^= E##ge1; \ + E##gi1 = Bgi1 ^((~Bgo1)& Bgu1 ); \ + Ci1 ^= E##gi1; \ + E##go1 = Bgo1 ^((~Bgu1)& Bga1 ); \ + Co1 ^= E##go1; \ + E##gu1 = Bgu1 ^((~Bga1)& Bge1 ); \ + Cu1 ^= E##gu1; \ +\ + A##be1 ^= De1; \ + Bka0 = ROL32(A##be1, 1); \ + A##gi0 ^= Di0; \ + Bke0 = ROL32(A##gi0, 3); \ + A##ko1 ^= Do1; \ + Bki0 = ROL32(A##ko1, 13); \ + A##mu0 ^= Du0; \ + Bko0 = ROL32(A##mu0, 4); \ + A##sa0 ^= Da0; \ + Bku0 = ROL32(A##sa0, 9); \ + E##ka0 = Bka0 ^((~Bke0)& Bki0 ); \ + Ca0 ^= E##ka0; \ + E##ke0 = Bke0 ^((~Bki0)& Bko0 ); \ + Ce0 ^= E##ke0; \ + E##ki0 = Bki0 ^((~Bko0)& Bku0 ); \ + Ci0 ^= E##ki0; \ + E##ko0 = Bko0 ^((~Bku0)& Bka0 ); \ + Co0 ^= E##ko0; \ + E##ku0 = Bku0 ^((~Bka0)& Bke0 ); \ + Cu0 ^= E##ku0; \ +\ + A##be0 ^= De0; \ + Bka1 = A##be0; \ + A##gi1 ^= Di1; \ + Bke1 = ROL32(A##gi1, 3); \ + A##ko0 ^= Do0; \ + Bki1 = ROL32(A##ko0, 12); \ + A##mu1 ^= Du1; \ + Bko1 = ROL32(A##mu1, 4); \ + A##sa1 ^= Da1; \ + Bku1 = ROL32(A##sa1, 9); \ + E##ka1 = Bka1 ^((~Bke1)& Bki1 ); \ + Ca1 ^= E##ka1; \ + E##ke1 = Bke1 ^((~Bki1)& Bko1 ); \ + Ce1 ^= E##ke1; \ + E##ki1 = Bki1 ^((~Bko1)& Bku1 ); \ + Ci1 ^= E##ki1; \ + E##ko1 = Bko1 ^((~Bku1)& Bka1 ); \ + Co1 ^= E##ko1; \ + E##ku1 = Bku1 ^((~Bka1)& Bke1 ); \ + Cu1 ^= E##ku1; \ +\ + A##bu1 ^= Du1; \ + Bma0 = ROL32(A##bu1, 14); \ + A##ga0 ^= Da0; \ + Bme0 = ROL32(A##ga0, 18); \ + A##ke0 ^= De0; \ + Bmi0 = ROL32(A##ke0, 5); \ + A##mi1 ^= Di1; \ + Bmo0 = ROL32(A##mi1, 8); \ + A##so0 ^= Do0; \ + Bmu0 = ROL32(A##so0, 28); \ + E##ma0 = Bma0 ^((~Bme0)& Bmi0 ); \ + Ca0 ^= E##ma0; \ + E##me0 = Bme0 ^((~Bmi0)& Bmo0 ); \ + Ce0 ^= E##me0; \ + E##mi0 = Bmi0 ^((~Bmo0)& Bmu0 ); \ + Ci0 ^= E##mi0; \ + E##mo0 = Bmo0 ^((~Bmu0)& Bma0 ); \ + Co0 ^= E##mo0; \ + E##mu0 = Bmu0 ^((~Bma0)& Bme0 ); \ + Cu0 ^= E##mu0; \ +\ + A##bu0 ^= Du0; \ + Bma1 = ROL32(A##bu0, 13); \ + A##ga1 ^= Da1; \ + Bme1 = ROL32(A##ga1, 18); \ + A##ke1 ^= De1; \ + Bmi1 = ROL32(A##ke1, 5); \ + A##mi0 ^= Di0; \ + Bmo1 = ROL32(A##mi0, 7); \ + A##so1 ^= Do1; \ + Bmu1 = ROL32(A##so1, 28); \ + E##ma1 = Bma1 ^((~Bme1)& Bmi1 ); \ + Ca1 ^= E##ma1; \ + E##me1 = Bme1 ^((~Bmi1)& Bmo1 ); \ + Ce1 ^= E##me1; \ + E##mi1 = Bmi1 ^((~Bmo1)& Bmu1 ); \ + Ci1 ^= E##mi1; \ + E##mo1 = Bmo1 ^((~Bmu1)& Bma1 ); \ + Co1 ^= E##mo1; \ + E##mu1 = Bmu1 ^((~Bma1)& Bme1 ); \ + Cu1 ^= E##mu1; \ +\ + A##bi0 ^= Di0; \ + Bsa0 = ROL32(A##bi0, 31); \ + A##go1 ^= Do1; \ + Bse0 = ROL32(A##go1, 28); \ + A##ku1 ^= Du1; \ + Bsi0 = ROL32(A##ku1, 20); \ + A##ma1 ^= Da1; \ + Bso0 = ROL32(A##ma1, 21); \ + A##se0 ^= De0; \ + Bsu0 = ROL32(A##se0, 1); \ + E##sa0 = Bsa0 ^((~Bse0)& Bsi0 ); \ + Ca0 ^= E##sa0; \ + E##se0 = Bse0 ^((~Bsi0)& Bso0 ); \ + Ce0 ^= E##se0; \ + E##si0 = Bsi0 ^((~Bso0)& Bsu0 ); \ + Ci0 ^= E##si0; \ + E##so0 = Bso0 ^((~Bsu0)& Bsa0 ); \ + Co0 ^= E##so0; \ + E##su0 = Bsu0 ^((~Bsa0)& Bse0 ); \ + Cu0 ^= E##su0; \ +\ + A##bi1 ^= Di1; \ + Bsa1 = ROL32(A##bi1, 31); \ + A##go0 ^= Do0; \ + Bse1 = ROL32(A##go0, 27); \ + A##ku0 ^= Du0; \ + Bsi1 = ROL32(A##ku0, 19); \ + A##ma0 ^= Da0; \ + Bso1 = ROL32(A##ma0, 20); \ + A##se1 ^= De1; \ + Bsu1 = ROL32(A##se1, 1); \ + E##sa1 = Bsa1 ^((~Bse1)& Bsi1 ); \ + Ca1 ^= E##sa1; \ + E##se1 = Bse1 ^((~Bsi1)& Bso1 ); \ + Ce1 ^= E##se1; \ + E##si1 = Bsi1 ^((~Bso1)& Bsu1 ); \ + Ci1 ^= E##si1; \ + E##so1 = Bso1 ^((~Bsu1)& Bsa1 ); \ + Co1 ^= E##so1; \ + E##su1 = Bsu1 ^((~Bsa1)& Bse1 ); \ + Cu1 ^= E##su1; \ +\ + +/* --- Code for round */ +/* --- using factor 2 interleaving, 64-bit lanes mapped to 32-bit words */ +#define thetaRhoPiChiIota(i, A, E) \ + Da0 = Cu0^ROL32(Ce1, 1); \ + Da1 = Cu1^Ce0; \ + De0 = Ca0^ROL32(Ci1, 1); \ + De1 = Ca1^Ci0; \ + Di0 = Ce0^ROL32(Co1, 1); \ + Di1 = Ce1^Co0; \ + Do0 = Ci0^ROL32(Cu1, 1); \ + Do1 = Ci1^Cu0; \ + Du0 = Co0^ROL32(Ca1, 1); \ + Du1 = Co1^Ca0; \ +\ + A##ba0 ^= Da0; \ + Bba0 = A##ba0; \ + A##ge0 ^= De0; \ + Bbe0 = ROL32(A##ge0, 22); \ + A##ki1 ^= Di1; \ + Bbi0 = ROL32(A##ki1, 22); \ + A##mo1 ^= Do1; \ + Bbo0 = ROL32(A##mo1, 11); \ + A##su0 ^= Du0; \ + Bbu0 = ROL32(A##su0, 7); \ + E##ba0 = Bba0 ^((~Bbe0)& Bbi0 ); \ + E##ba0 ^= KeccakF1600RoundConstants_int2_0[i]; \ + E##be0 = Bbe0 ^((~Bbi0)& Bbo0 ); \ + E##bi0 = Bbi0 ^((~Bbo0)& Bbu0 ); \ + E##bo0 = Bbo0 ^((~Bbu0)& Bba0 ); \ + E##bu0 = Bbu0 ^((~Bba0)& Bbe0 ); \ +\ + A##ba1 ^= Da1; \ + Bba1 = A##ba1; \ + A##ge1 ^= De1; \ + Bbe1 = ROL32(A##ge1, 22); \ + A##ki0 ^= Di0; \ + Bbi1 = ROL32(A##ki0, 21); \ + A##mo0 ^= Do0; \ + Bbo1 = ROL32(A##mo0, 10); \ + A##su1 ^= Du1; \ + Bbu1 = ROL32(A##su1, 7); \ + E##ba1 = Bba1 ^((~Bbe1)& Bbi1 ); \ + E##ba1 ^= KeccakF1600RoundConstants_int2_1[i]; \ + E##be1 = Bbe1 ^((~Bbi1)& Bbo1 ); \ + E##bi1 = Bbi1 ^((~Bbo1)& Bbu1 ); \ + E##bo1 = Bbo1 ^((~Bbu1)& Bba1 ); \ + E##bu1 = Bbu1 ^((~Bba1)& Bbe1 ); \ +\ + A##bo0 ^= Do0; \ + Bga0 = ROL32(A##bo0, 14); \ + A##gu0 ^= Du0; \ + Bge0 = ROL32(A##gu0, 10); \ + A##ka1 ^= Da1; \ + Bgi0 = ROL32(A##ka1, 2); \ + A##me1 ^= De1; \ + Bgo0 = ROL32(A##me1, 23); \ + A##si1 ^= Di1; \ + Bgu0 = ROL32(A##si1, 31); \ + E##ga0 = Bga0 ^((~Bge0)& Bgi0 ); \ + E##ge0 = Bge0 ^((~Bgi0)& Bgo0 ); \ + E##gi0 = Bgi0 ^((~Bgo0)& Bgu0 ); \ + E##go0 = Bgo0 ^((~Bgu0)& Bga0 ); \ + E##gu0 = Bgu0 ^((~Bga0)& Bge0 ); \ +\ + A##bo1 ^= Do1; \ + Bga1 = ROL32(A##bo1, 14); \ + A##gu1 ^= Du1; \ + Bge1 = ROL32(A##gu1, 10); \ + A##ka0 ^= Da0; \ + Bgi1 = ROL32(A##ka0, 1); \ + A##me0 ^= De0; \ + Bgo1 = ROL32(A##me0, 22); \ + A##si0 ^= Di0; \ + Bgu1 = ROL32(A##si0, 30); \ + E##ga1 = Bga1 ^((~Bge1)& Bgi1 ); \ + E##ge1 = Bge1 ^((~Bgi1)& Bgo1 ); \ + E##gi1 = Bgi1 ^((~Bgo1)& Bgu1 ); \ + E##go1 = Bgo1 ^((~Bgu1)& Bga1 ); \ + E##gu1 = Bgu1 ^((~Bga1)& Bge1 ); \ +\ + A##be1 ^= De1; \ + Bka0 = ROL32(A##be1, 1); \ + A##gi0 ^= Di0; \ + Bke0 = ROL32(A##gi0, 3); \ + A##ko1 ^= Do1; \ + Bki0 = ROL32(A##ko1, 13); \ + A##mu0 ^= Du0; \ + Bko0 = ROL32(A##mu0, 4); \ + A##sa0 ^= Da0; \ + Bku0 = ROL32(A##sa0, 9); \ + E##ka0 = Bka0 ^((~Bke0)& Bki0 ); \ + E##ke0 = Bke0 ^((~Bki0)& Bko0 ); \ + E##ki0 = Bki0 ^((~Bko0)& Bku0 ); \ + E##ko0 = Bko0 ^((~Bku0)& Bka0 ); \ + E##ku0 = Bku0 ^((~Bka0)& Bke0 ); \ +\ + A##be0 ^= De0; \ + Bka1 = A##be0; \ + A##gi1 ^= Di1; \ + Bke1 = ROL32(A##gi1, 3); \ + A##ko0 ^= Do0; \ + Bki1 = ROL32(A##ko0, 12); \ + A##mu1 ^= Du1; \ + Bko1 = ROL32(A##mu1, 4); \ + A##sa1 ^= Da1; \ + Bku1 = ROL32(A##sa1, 9); \ + E##ka1 = Bka1 ^((~Bke1)& Bki1 ); \ + E##ke1 = Bke1 ^((~Bki1)& Bko1 ); \ + E##ki1 = Bki1 ^((~Bko1)& Bku1 ); \ + E##ko1 = Bko1 ^((~Bku1)& Bka1 ); \ + E##ku1 = Bku1 ^((~Bka1)& Bke1 ); \ +\ + A##bu1 ^= Du1; \ + Bma0 = ROL32(A##bu1, 14); \ + A##ga0 ^= Da0; \ + Bme0 = ROL32(A##ga0, 18); \ + A##ke0 ^= De0; \ + Bmi0 = ROL32(A##ke0, 5); \ + A##mi1 ^= Di1; \ + Bmo0 = ROL32(A##mi1, 8); \ + A##so0 ^= Do0; \ + Bmu0 = ROL32(A##so0, 28); \ + E##ma0 = Bma0 ^((~Bme0)& Bmi0 ); \ + E##me0 = Bme0 ^((~Bmi0)& Bmo0 ); \ + E##mi0 = Bmi0 ^((~Bmo0)& Bmu0 ); \ + E##mo0 = Bmo0 ^((~Bmu0)& Bma0 ); \ + E##mu0 = Bmu0 ^((~Bma0)& Bme0 ); \ +\ + A##bu0 ^= Du0; \ + Bma1 = ROL32(A##bu0, 13); \ + A##ga1 ^= Da1; \ + Bme1 = ROL32(A##ga1, 18); \ + A##ke1 ^= De1; \ + Bmi1 = ROL32(A##ke1, 5); \ + A##mi0 ^= Di0; \ + Bmo1 = ROL32(A##mi0, 7); \ + A##so1 ^= Do1; \ + Bmu1 = ROL32(A##so1, 28); \ + E##ma1 = Bma1 ^((~Bme1)& Bmi1 ); \ + E##me1 = Bme1 ^((~Bmi1)& Bmo1 ); \ + E##mi1 = Bmi1 ^((~Bmo1)& Bmu1 ); \ + E##mo1 = Bmo1 ^((~Bmu1)& Bma1 ); \ + E##mu1 = Bmu1 ^((~Bma1)& Bme1 ); \ +\ + A##bi0 ^= Di0; \ + Bsa0 = ROL32(A##bi0, 31); \ + A##go1 ^= Do1; \ + Bse0 = ROL32(A##go1, 28); \ + A##ku1 ^= Du1; \ + Bsi0 = ROL32(A##ku1, 20); \ + A##ma1 ^= Da1; \ + Bso0 = ROL32(A##ma1, 21); \ + A##se0 ^= De0; \ + Bsu0 = ROL32(A##se0, 1); \ + E##sa0 = Bsa0 ^((~Bse0)& Bsi0 ); \ + E##se0 = Bse0 ^((~Bsi0)& Bso0 ); \ + E##si0 = Bsi0 ^((~Bso0)& Bsu0 ); \ + E##so0 = Bso0 ^((~Bsu0)& Bsa0 ); \ + E##su0 = Bsu0 ^((~Bsa0)& Bse0 ); \ +\ + A##bi1 ^= Di1; \ + Bsa1 = ROL32(A##bi1, 31); \ + A##go0 ^= Do0; \ + Bse1 = ROL32(A##go0, 27); \ + A##ku0 ^= Du0; \ + Bsi1 = ROL32(A##ku0, 19); \ + A##ma0 ^= Da0; \ + Bso1 = ROL32(A##ma0, 20); \ + A##se1 ^= De1; \ + Bsu1 = ROL32(A##se1, 1); \ + E##sa1 = Bsa1 ^((~Bse1)& Bsi1 ); \ + E##se1 = Bse1 ^((~Bsi1)& Bso1 ); \ + E##si1 = Bsi1 ^((~Bso1)& Bsu1 ); \ + E##so1 = Bso1 ^((~Bsu1)& Bsa1 ); \ + E##su1 = Bsu1 ^((~Bsa1)& Bse1 ); \ +\ + +#endif /* UseBebigokimisa */ + +const UINT32 KeccakF1600RoundConstants_int2_0[24] = { + 0x00000001UL, + 0x00000000UL, + 0x00000000UL, + 0x00000000UL, + 0x00000001UL, + 0x00000001UL, + 0x00000001UL, + 0x00000001UL, + 0x00000000UL, + 0x00000000UL, + 0x00000001UL, + 0x00000000UL, + 0x00000001UL, + 0x00000001UL, + 0x00000001UL, + 0x00000001UL, + 0x00000000UL, + 0x00000000UL, + 0x00000000UL, + 0x00000000UL, + 0x00000001UL, + 0x00000000UL, + 0x00000001UL, + 0x00000000UL }; + +const UINT32 KeccakF1600RoundConstants_int2_1[24] = { + 0x00000000UL, + 0x00000089UL, + 0x8000008bUL, + 0x80008080UL, + 0x0000008bUL, + 0x00008000UL, + 0x80008088UL, + 0x80000082UL, + 0x0000000bUL, + 0x0000000aUL, + 0x00008082UL, + 0x00008003UL, + 0x0000808bUL, + 0x8000000bUL, + 0x8000008aUL, + 0x80000081UL, + 0x80000081UL, + 0x80000008UL, + 0x00000083UL, + 0x80008003UL, + 0x80008088UL, + 0x80000088UL, + 0x00008000UL, + 0x80008082UL }; + +#define copyFromStateAndXor1024bits(X, state, input) \ + X##ba0 = state[ 0]^input[ 0]; \ + X##ba1 = state[ 1]^input[ 1]; \ + X##be0 = state[ 2]^input[ 2]; \ + X##be1 = state[ 3]^input[ 3]; \ + X##bi0 = state[ 4]^input[ 4]; \ + X##bi1 = state[ 5]^input[ 5]; \ + X##bo0 = state[ 6]^input[ 6]; \ + X##bo1 = state[ 7]^input[ 7]; \ + X##bu0 = state[ 8]^input[ 8]; \ + X##bu1 = state[ 9]^input[ 9]; \ + X##ga0 = state[10]^input[10]; \ + X##ga1 = state[11]^input[11]; \ + X##ge0 = state[12]^input[12]; \ + X##ge1 = state[13]^input[13]; \ + X##gi0 = state[14]^input[14]; \ + X##gi1 = state[15]^input[15]; \ + X##go0 = state[16]^input[16]; \ + X##go1 = state[17]^input[17]; \ + X##gu0 = state[18]^input[18]; \ + X##gu1 = state[19]^input[19]; \ + X##ka0 = state[20]^input[20]; \ + X##ka1 = state[21]^input[21]; \ + X##ke0 = state[22]^input[22]; \ + X##ke1 = state[23]^input[23]; \ + X##ki0 = state[24]^input[24]; \ + X##ki1 = state[25]^input[25]; \ + X##ko0 = state[26]^input[26]; \ + X##ko1 = state[27]^input[27]; \ + X##ku0 = state[28]^input[28]; \ + X##ku1 = state[29]^input[29]; \ + X##ma0 = state[30]^input[30]; \ + X##ma1 = state[31]^input[31]; \ + X##me0 = state[32]; \ + X##me1 = state[33]; \ + X##mi0 = state[34]; \ + X##mi1 = state[35]; \ + X##mo0 = state[36]; \ + X##mo1 = state[37]; \ + X##mu0 = state[38]; \ + X##mu1 = state[39]; \ + X##sa0 = state[40]; \ + X##sa1 = state[41]; \ + X##se0 = state[42]; \ + X##se1 = state[43]; \ + X##si0 = state[44]; \ + X##si1 = state[45]; \ + X##so0 = state[46]; \ + X##so1 = state[47]; \ + X##su0 = state[48]; \ + X##su1 = state[49]; \ + +#define copyFromStateAndXor1088bits(X, state, input) \ + X##ba0 = state[ 0]^input[ 0]; \ + X##ba1 = state[ 1]^input[ 1]; \ + X##be0 = state[ 2]^input[ 2]; \ + X##be1 = state[ 3]^input[ 3]; \ + X##bi0 = state[ 4]^input[ 4]; \ + X##bi1 = state[ 5]^input[ 5]; \ + X##bo0 = state[ 6]^input[ 6]; \ + X##bo1 = state[ 7]^input[ 7]; \ + X##bu0 = state[ 8]^input[ 8]; \ + X##bu1 = state[ 9]^input[ 9]; \ + X##ga0 = state[10]^input[10]; \ + X##ga1 = state[11]^input[11]; \ + X##ge0 = state[12]^input[12]; \ + X##ge1 = state[13]^input[13]; \ + X##gi0 = state[14]^input[14]; \ + X##gi1 = state[15]^input[15]; \ + X##go0 = state[16]^input[16]; \ + X##go1 = state[17]^input[17]; \ + X##gu0 = state[18]^input[18]; \ + X##gu1 = state[19]^input[19]; \ + X##ka0 = state[20]^input[20]; \ + X##ka1 = state[21]^input[21]; \ + X##ke0 = state[22]^input[22]; \ + X##ke1 = state[23]^input[23]; \ + X##ki0 = state[24]^input[24]; \ + X##ki1 = state[25]^input[25]; \ + X##ko0 = state[26]^input[26]; \ + X##ko1 = state[27]^input[27]; \ + X##ku0 = state[28]^input[28]; \ + X##ku1 = state[29]^input[29]; \ + X##ma0 = state[30]^input[30]; \ + X##ma1 = state[31]^input[31]; \ + X##me0 = state[32]^input[32]; \ + X##me1 = state[33]^input[33]; \ + X##mi0 = state[34]; \ + X##mi1 = state[35]; \ + X##mo0 = state[36]; \ + X##mo1 = state[37]; \ + X##mu0 = state[38]; \ + X##mu1 = state[39]; \ + X##sa0 = state[40]; \ + X##sa1 = state[41]; \ + X##se0 = state[42]; \ + X##se1 = state[43]; \ + X##si0 = state[44]; \ + X##si1 = state[45]; \ + X##so0 = state[46]; \ + X##so1 = state[47]; \ + X##su0 = state[48]; \ + X##su1 = state[49]; \ + +#define copyFromState(X, state) \ + X##ba0 = state[ 0]; \ + X##ba1 = state[ 1]; \ + X##be0 = state[ 2]; \ + X##be1 = state[ 3]; \ + X##bi0 = state[ 4]; \ + X##bi1 = state[ 5]; \ + X##bo0 = state[ 6]; \ + X##bo1 = state[ 7]; \ + X##bu0 = state[ 8]; \ + X##bu1 = state[ 9]; \ + X##ga0 = state[10]; \ + X##ga1 = state[11]; \ + X##ge0 = state[12]; \ + X##ge1 = state[13]; \ + X##gi0 = state[14]; \ + X##gi1 = state[15]; \ + X##go0 = state[16]; \ + X##go1 = state[17]; \ + X##gu0 = state[18]; \ + X##gu1 = state[19]; \ + X##ka0 = state[20]; \ + X##ka1 = state[21]; \ + X##ke0 = state[22]; \ + X##ke1 = state[23]; \ + X##ki0 = state[24]; \ + X##ki1 = state[25]; \ + X##ko0 = state[26]; \ + X##ko1 = state[27]; \ + X##ku0 = state[28]; \ + X##ku1 = state[29]; \ + X##ma0 = state[30]; \ + X##ma1 = state[31]; \ + X##me0 = state[32]; \ + X##me1 = state[33]; \ + X##mi0 = state[34]; \ + X##mi1 = state[35]; \ + X##mo0 = state[36]; \ + X##mo1 = state[37]; \ + X##mu0 = state[38]; \ + X##mu1 = state[39]; \ + X##sa0 = state[40]; \ + X##sa1 = state[41]; \ + X##se0 = state[42]; \ + X##se1 = state[43]; \ + X##si0 = state[44]; \ + X##si1 = state[45]; \ + X##so0 = state[46]; \ + X##so1 = state[47]; \ + X##su0 = state[48]; \ + X##su1 = state[49]; \ + +#define copyToState(state, X) \ + state[ 0] = X##ba0; \ + state[ 1] = X##ba1; \ + state[ 2] = X##be0; \ + state[ 3] = X##be1; \ + state[ 4] = X##bi0; \ + state[ 5] = X##bi1; \ + state[ 6] = X##bo0; \ + state[ 7] = X##bo1; \ + state[ 8] = X##bu0; \ + state[ 9] = X##bu1; \ + state[10] = X##ga0; \ + state[11] = X##ga1; \ + state[12] = X##ge0; \ + state[13] = X##ge1; \ + state[14] = X##gi0; \ + state[15] = X##gi1; \ + state[16] = X##go0; \ + state[17] = X##go1; \ + state[18] = X##gu0; \ + state[19] = X##gu1; \ + state[20] = X##ka0; \ + state[21] = X##ka1; \ + state[22] = X##ke0; \ + state[23] = X##ke1; \ + state[24] = X##ki0; \ + state[25] = X##ki1; \ + state[26] = X##ko0; \ + state[27] = X##ko1; \ + state[28] = X##ku0; \ + state[29] = X##ku1; \ + state[30] = X##ma0; \ + state[31] = X##ma1; \ + state[32] = X##me0; \ + state[33] = X##me1; \ + state[34] = X##mi0; \ + state[35] = X##mi1; \ + state[36] = X##mo0; \ + state[37] = X##mo1; \ + state[38] = X##mu0; \ + state[39] = X##mu1; \ + state[40] = X##sa0; \ + state[41] = X##sa1; \ + state[42] = X##se0; \ + state[43] = X##se1; \ + state[44] = X##si0; \ + state[45] = X##si1; \ + state[46] = X##so0; \ + state[47] = X##so1; \ + state[48] = X##su0; \ + state[49] = X##su1; \ + +#define copyStateVariables(X, Y) \ + X##ba0 = Y##ba0; \ + X##ba1 = Y##ba1; \ + X##be0 = Y##be0; \ + X##be1 = Y##be1; \ + X##bi0 = Y##bi0; \ + X##bi1 = Y##bi1; \ + X##bo0 = Y##bo0; \ + X##bo1 = Y##bo1; \ + X##bu0 = Y##bu0; \ + X##bu1 = Y##bu1; \ + X##ga0 = Y##ga0; \ + X##ga1 = Y##ga1; \ + X##ge0 = Y##ge0; \ + X##ge1 = Y##ge1; \ + X##gi0 = Y##gi0; \ + X##gi1 = Y##gi1; \ + X##go0 = Y##go0; \ + X##go1 = Y##go1; \ + X##gu0 = Y##gu0; \ + X##gu1 = Y##gu1; \ + X##ka0 = Y##ka0; \ + X##ka1 = Y##ka1; \ + X##ke0 = Y##ke0; \ + X##ke1 = Y##ke1; \ + X##ki0 = Y##ki0; \ + X##ki1 = Y##ki1; \ + X##ko0 = Y##ko0; \ + X##ko1 = Y##ko1; \ + X##ku0 = Y##ku0; \ + X##ku1 = Y##ku1; \ + X##ma0 = Y##ma0; \ + X##ma1 = Y##ma1; \ + X##me0 = Y##me0; \ + X##me1 = Y##me1; \ + X##mi0 = Y##mi0; \ + X##mi1 = Y##mi1; \ + X##mo0 = Y##mo0; \ + X##mo1 = Y##mo1; \ + X##mu0 = Y##mu0; \ + X##mu1 = Y##mu1; \ + X##sa0 = Y##sa0; \ + X##sa1 = Y##sa1; \ + X##se0 = Y##se0; \ + X##se1 = Y##se1; \ + X##si0 = Y##si0; \ + X##si1 = Y##si1; \ + X##so0 = Y##so0; \ + X##so1 = Y##so1; \ + X##su0 = Y##su0; \ + X##su1 = Y##su1; \ + diff --git a/Modules/_sha3/keccak/KeccakF-1600-32-s2.macros b/Modules/_sha3/keccak/KeccakF-1600-32-s2.macros new file mode 100644 index 0000000..fa11762 --- /dev/null +++ b/Modules/_sha3/keccak/KeccakF-1600-32-s2.macros @@ -0,0 +1,1187 @@ +/* +Code automatically generated by KeccakTools! + +The Keccak sponge function, designed by Guido Bertoni, Joan Daemen, +Michaël Peeters and Gilles Van Assche. For more information, feedback or +questions, please refer to our website: http://keccak.noekeon.org/ + +Implementation by the designers, +hereby denoted as "the implementer". + +To the extent possible under law, the implementer has waived all copyright +and related or neighboring rights to the source code in this file. +http://creativecommons.org/publicdomain/zero/1.0/ +*/ + +#define declareABCDE \ + UINT32 Aba0, Abe0, Abi0, Abo0, Abu0; \ + UINT32 Aba1, Abe1, Abi1, Abo1, Abu1; \ + UINT32 Aga0, Age0, Agi0, Ago0, Agu0; \ + UINT32 Aga1, Age1, Agi1, Ago1, Agu1; \ + UINT32 Aka0, Ake0, Aki0, Ako0, Aku0; \ + UINT32 Aka1, Ake1, Aki1, Ako1, Aku1; \ + UINT32 Ama0, Ame0, Ami0, Amo0, Amu0; \ + UINT32 Ama1, Ame1, Ami1, Amo1, Amu1; \ + UINT32 Asa0, Ase0, Asi0, Aso0, Asu0; \ + UINT32 Asa1, Ase1, Asi1, Aso1, Asu1; \ + UINT32 Bba0, Bbe0, Bbi0, Bbo0, Bbu0; \ + UINT32 Bba1, Bbe1, Bbi1, Bbo1, Bbu1; \ + UINT32 Bga0, Bge0, Bgi0, Bgo0, Bgu0; \ + UINT32 Bga1, Bge1, Bgi1, Bgo1, Bgu1; \ + UINT32 Bka0, Bke0, Bki0, Bko0, Bku0; \ + UINT32 Bka1, Bke1, Bki1, Bko1, Bku1; \ + UINT32 Bma0, Bme0, Bmi0, Bmo0, Bmu0; \ + UINT32 Bma1, Bme1, Bmi1, Bmo1, Bmu1; \ + UINT32 Bsa0, Bse0, Bsi0, Bso0, Bsu0; \ + UINT32 Bsa1, Bse1, Bsi1, Bso1, Bsu1; \ + UINT32 Ca0, Ce0, Ci0, Co0, Cu0; \ + UINT32 Ca1, Ce1, Ci1, Co1, Cu1; \ + UINT32 Da0, De0, Di0, Do0, Du0; \ + UINT32 Da1, De1, Di1, Do1, Du1; \ + UINT32 Eba0, Ebe0, Ebi0, Ebo0, Ebu0; \ + UINT32 Eba1, Ebe1, Ebi1, Ebo1, Ebu1; \ + UINT32 Ega0, Ege0, Egi0, Ego0, Egu0; \ + UINT32 Ega1, Ege1, Egi1, Ego1, Egu1; \ + UINT32 Eka0, Eke0, Eki0, Eko0, Eku0; \ + UINT32 Eka1, Eke1, Eki1, Eko1, Eku1; \ + UINT32 Ema0, Eme0, Emi0, Emo0, Emu0; \ + UINT32 Ema1, Eme1, Emi1, Emo1, Emu1; \ + UINT32 Esa0, Ese0, Esi0, Eso0, Esu0; \ + UINT32 Esa1, Ese1, Esi1, Eso1, Esu1; \ + +#define prepareTheta \ + Ca0 = Aba0^Aga0^Aka0^Ama0^Asa0; \ + Ca1 = Aba1^Aga1^Aka1^Ama1^Asa1; \ + Ce0 = Abe0^Age0^Ake0^Ame0^Ase0; \ + Ce1 = Abe1^Age1^Ake1^Ame1^Ase1; \ + Ci0 = Abi0^Agi0^Aki0^Ami0^Asi0; \ + Ci1 = Abi1^Agi1^Aki1^Ami1^Asi1; \ + Co0 = Abo0^Ago0^Ako0^Amo0^Aso0; \ + Co1 = Abo1^Ago1^Ako1^Amo1^Aso1; \ + Cu0 = Abu0^Agu0^Aku0^Amu0^Asu0; \ + Cu1 = Abu1^Agu1^Aku1^Amu1^Asu1; \ + +#ifdef UseBebigokimisa +/* --- Code for round, with prepare-theta (lane complementing pattern 'bebigokimisa') */ +/* --- using factor 2 interleaving, 64-bit lanes mapped to 32-bit words */ +#define thetaRhoPiChiIotaPrepareTheta(i, A, E) \ + Da0 = Cu0^ROL32(Ce1, 1); \ + Da1 = Cu1^Ce0; \ + De0 = Ca0^ROL32(Ci1, 1); \ + De1 = Ca1^Ci0; \ + Di0 = Ce0^ROL32(Co1, 1); \ + Di1 = Ce1^Co0; \ + Do0 = Ci0^ROL32(Cu1, 1); \ + Do1 = Ci1^Cu0; \ + Du0 = Co0^ROL32(Ca1, 1); \ + Du1 = Co1^Ca0; \ +\ + A##ba0 ^= Da0; \ + Bba0 = A##ba0; \ + A##ge0 ^= De0; \ + Bbe0 = ROL32(A##ge0, 22); \ + A##ki1 ^= Di1; \ + Bbi0 = ROL32(A##ki1, 22); \ + E##ba0 = Bba0 ^( Bbe0 | Bbi0 ); \ + E##ba0 ^= KeccakF1600RoundConstants_int2_0[i]; \ + Ca0 = E##ba0; \ + A##mo1 ^= Do1; \ + Bbo0 = ROL32(A##mo1, 11); \ + E##be0 = Bbe0 ^((~Bbi0)| Bbo0 ); \ + Ce0 = E##be0; \ + A##su0 ^= Du0; \ + Bbu0 = ROL32(A##su0, 7); \ + E##bi0 = Bbi0 ^( Bbo0 & Bbu0 ); \ + Ci0 = E##bi0; \ + E##bo0 = Bbo0 ^( Bbu0 | Bba0 ); \ + Co0 = E##bo0; \ + E##bu0 = Bbu0 ^( Bba0 & Bbe0 ); \ + Cu0 = E##bu0; \ +\ + A##ba1 ^= Da1; \ + Bba1 = A##ba1; \ + A##ge1 ^= De1; \ + Bbe1 = ROL32(A##ge1, 22); \ + A##ki0 ^= Di0; \ + Bbi1 = ROL32(A##ki0, 21); \ + E##ba1 = Bba1 ^( Bbe1 | Bbi1 ); \ + E##ba1 ^= KeccakF1600RoundConstants_int2_1[i]; \ + Ca1 = E##ba1; \ + A##mo0 ^= Do0; \ + Bbo1 = ROL32(A##mo0, 10); \ + E##be1 = Bbe1 ^((~Bbi1)| Bbo1 ); \ + Ce1 = E##be1; \ + A##su1 ^= Du1; \ + Bbu1 = ROL32(A##su1, 7); \ + E##bi1 = Bbi1 ^( Bbo1 & Bbu1 ); \ + Ci1 = E##bi1; \ + E##bo1 = Bbo1 ^( Bbu1 | Bba1 ); \ + Co1 = E##bo1; \ + E##bu1 = Bbu1 ^( Bba1 & Bbe1 ); \ + Cu1 = E##bu1; \ +\ + A##bo0 ^= Do0; \ + Bga0 = ROL32(A##bo0, 14); \ + A##gu0 ^= Du0; \ + Bge0 = ROL32(A##gu0, 10); \ + A##ka1 ^= Da1; \ + Bgi0 = ROL32(A##ka1, 2); \ + E##ga0 = Bga0 ^( Bge0 | Bgi0 ); \ + Ca0 ^= E##ga0; \ + A##me1 ^= De1; \ + Bgo0 = ROL32(A##me1, 23); \ + E##ge0 = Bge0 ^( Bgi0 & Bgo0 ); \ + Ce0 ^= E##ge0; \ + A##si1 ^= Di1; \ + Bgu0 = ROL32(A##si1, 31); \ + E##gi0 = Bgi0 ^( Bgo0 |(~Bgu0)); \ + Ci0 ^= E##gi0; \ + E##go0 = Bgo0 ^( Bgu0 | Bga0 ); \ + Co0 ^= E##go0; \ + E##gu0 = Bgu0 ^( Bga0 & Bge0 ); \ + Cu0 ^= E##gu0; \ +\ + A##bo1 ^= Do1; \ + Bga1 = ROL32(A##bo1, 14); \ + A##gu1 ^= Du1; \ + Bge1 = ROL32(A##gu1, 10); \ + A##ka0 ^= Da0; \ + Bgi1 = ROL32(A##ka0, 1); \ + E##ga1 = Bga1 ^( Bge1 | Bgi1 ); \ + Ca1 ^= E##ga1; \ + A##me0 ^= De0; \ + Bgo1 = ROL32(A##me0, 22); \ + E##ge1 = Bge1 ^( Bgi1 & Bgo1 ); \ + Ce1 ^= E##ge1; \ + A##si0 ^= Di0; \ + Bgu1 = ROL32(A##si0, 30); \ + E##gi1 = Bgi1 ^( Bgo1 |(~Bgu1)); \ + Ci1 ^= E##gi1; \ + E##go1 = Bgo1 ^( Bgu1 | Bga1 ); \ + Co1 ^= E##go1; \ + E##gu1 = Bgu1 ^( Bga1 & Bge1 ); \ + Cu1 ^= E##gu1; \ +\ + A##be1 ^= De1; \ + Bka0 = ROL32(A##be1, 1); \ + A##gi0 ^= Di0; \ + Bke0 = ROL32(A##gi0, 3); \ + A##ko1 ^= Do1; \ + Bki0 = ROL32(A##ko1, 13); \ + E##ka0 = Bka0 ^( Bke0 | Bki0 ); \ + Ca0 ^= E##ka0; \ + A##mu0 ^= Du0; \ + Bko0 = ROL32(A##mu0, 4); \ + E##ke0 = Bke0 ^( Bki0 & Bko0 ); \ + Ce0 ^= E##ke0; \ + A##sa0 ^= Da0; \ + Bku0 = ROL32(A##sa0, 9); \ + E##ki0 = Bki0 ^((~Bko0)& Bku0 ); \ + Ci0 ^= E##ki0; \ + E##ko0 = (~Bko0)^( Bku0 | Bka0 ); \ + Co0 ^= E##ko0; \ + E##ku0 = Bku0 ^( Bka0 & Bke0 ); \ + Cu0 ^= E##ku0; \ +\ + A##be0 ^= De0; \ + Bka1 = A##be0; \ + A##gi1 ^= Di1; \ + Bke1 = ROL32(A##gi1, 3); \ + A##ko0 ^= Do0; \ + Bki1 = ROL32(A##ko0, 12); \ + E##ka1 = Bka1 ^( Bke1 | Bki1 ); \ + Ca1 ^= E##ka1; \ + A##mu1 ^= Du1; \ + Bko1 = ROL32(A##mu1, 4); \ + E##ke1 = Bke1 ^( Bki1 & Bko1 ); \ + Ce1 ^= E##ke1; \ + A##sa1 ^= Da1; \ + Bku1 = ROL32(A##sa1, 9); \ + E##ki1 = Bki1 ^((~Bko1)& Bku1 ); \ + Ci1 ^= E##ki1; \ + E##ko1 = (~Bko1)^( Bku1 | Bka1 ); \ + Co1 ^= E##ko1; \ + E##ku1 = Bku1 ^( Bka1 & Bke1 ); \ + Cu1 ^= E##ku1; \ +\ + A##bu1 ^= Du1; \ + Bma0 = ROL32(A##bu1, 14); \ + A##ga0 ^= Da0; \ + Bme0 = ROL32(A##ga0, 18); \ + A##ke0 ^= De0; \ + Bmi0 = ROL32(A##ke0, 5); \ + E##ma0 = Bma0 ^( Bme0 & Bmi0 ); \ + Ca0 ^= E##ma0; \ + A##mi1 ^= Di1; \ + Bmo0 = ROL32(A##mi1, 8); \ + E##me0 = Bme0 ^( Bmi0 | Bmo0 ); \ + Ce0 ^= E##me0; \ + A##so0 ^= Do0; \ + Bmu0 = ROL32(A##so0, 28); \ + E##mi0 = Bmi0 ^((~Bmo0)| Bmu0 ); \ + Ci0 ^= E##mi0; \ + E##mo0 = (~Bmo0)^( Bmu0 & Bma0 ); \ + Co0 ^= E##mo0; \ + E##mu0 = Bmu0 ^( Bma0 | Bme0 ); \ + Cu0 ^= E##mu0; \ +\ + A##bu0 ^= Du0; \ + Bma1 = ROL32(A##bu0, 13); \ + A##ga1 ^= Da1; \ + Bme1 = ROL32(A##ga1, 18); \ + A##ke1 ^= De1; \ + Bmi1 = ROL32(A##ke1, 5); \ + E##ma1 = Bma1 ^( Bme1 & Bmi1 ); \ + Ca1 ^= E##ma1; \ + A##mi0 ^= Di0; \ + Bmo1 = ROL32(A##mi0, 7); \ + E##me1 = Bme1 ^( Bmi1 | Bmo1 ); \ + Ce1 ^= E##me1; \ + A##so1 ^= Do1; \ + Bmu1 = ROL32(A##so1, 28); \ + E##mi1 = Bmi1 ^((~Bmo1)| Bmu1 ); \ + Ci1 ^= E##mi1; \ + E##mo1 = (~Bmo1)^( Bmu1 & Bma1 ); \ + Co1 ^= E##mo1; \ + E##mu1 = Bmu1 ^( Bma1 | Bme1 ); \ + Cu1 ^= E##mu1; \ +\ + A##bi0 ^= Di0; \ + Bsa0 = ROL32(A##bi0, 31); \ + A##go1 ^= Do1; \ + Bse0 = ROL32(A##go1, 28); \ + A##ku1 ^= Du1; \ + Bsi0 = ROL32(A##ku1, 20); \ + E##sa0 = Bsa0 ^((~Bse0)& Bsi0 ); \ + Ca0 ^= E##sa0; \ + A##ma1 ^= Da1; \ + Bso0 = ROL32(A##ma1, 21); \ + E##se0 = (~Bse0)^( Bsi0 | Bso0 ); \ + Ce0 ^= E##se0; \ + A##se0 ^= De0; \ + Bsu0 = ROL32(A##se0, 1); \ + E##si0 = Bsi0 ^( Bso0 & Bsu0 ); \ + Ci0 ^= E##si0; \ + E##so0 = Bso0 ^( Bsu0 | Bsa0 ); \ + Co0 ^= E##so0; \ + E##su0 = Bsu0 ^( Bsa0 & Bse0 ); \ + Cu0 ^= E##su0; \ +\ + A##bi1 ^= Di1; \ + Bsa1 = ROL32(A##bi1, 31); \ + A##go0 ^= Do0; \ + Bse1 = ROL32(A##go0, 27); \ + A##ku0 ^= Du0; \ + Bsi1 = ROL32(A##ku0, 19); \ + E##sa1 = Bsa1 ^((~Bse1)& Bsi1 ); \ + Ca1 ^= E##sa1; \ + A##ma0 ^= Da0; \ + Bso1 = ROL32(A##ma0, 20); \ + E##se1 = (~Bse1)^( Bsi1 | Bso1 ); \ + Ce1 ^= E##se1; \ + A##se1 ^= De1; \ + Bsu1 = ROL32(A##se1, 1); \ + E##si1 = Bsi1 ^( Bso1 & Bsu1 ); \ + Ci1 ^= E##si1; \ + E##so1 = Bso1 ^( Bsu1 | Bsa1 ); \ + Co1 ^= E##so1; \ + E##su1 = Bsu1 ^( Bsa1 & Bse1 ); \ + Cu1 ^= E##su1; \ +\ + +/* --- Code for round (lane complementing pattern 'bebigokimisa') */ +/* --- using factor 2 interleaving, 64-bit lanes mapped to 32-bit words */ +#define thetaRhoPiChiIota(i, A, E) \ + Da0 = Cu0^ROL32(Ce1, 1); \ + Da1 = Cu1^Ce0; \ + De0 = Ca0^ROL32(Ci1, 1); \ + De1 = Ca1^Ci0; \ + Di0 = Ce0^ROL32(Co1, 1); \ + Di1 = Ce1^Co0; \ + Do0 = Ci0^ROL32(Cu1, 1); \ + Do1 = Ci1^Cu0; \ + Du0 = Co0^ROL32(Ca1, 1); \ + Du1 = Co1^Ca0; \ +\ + A##ba0 ^= Da0; \ + Bba0 = A##ba0; \ + A##ge0 ^= De0; \ + Bbe0 = ROL32(A##ge0, 22); \ + A##ki1 ^= Di1; \ + Bbi0 = ROL32(A##ki1, 22); \ + E##ba0 = Bba0 ^( Bbe0 | Bbi0 ); \ + E##ba0 ^= KeccakF1600RoundConstants_int2_0[i]; \ + A##mo1 ^= Do1; \ + Bbo0 = ROL32(A##mo1, 11); \ + E##be0 = Bbe0 ^((~Bbi0)| Bbo0 ); \ + A##su0 ^= Du0; \ + Bbu0 = ROL32(A##su0, 7); \ + E##bi0 = Bbi0 ^( Bbo0 & Bbu0 ); \ + E##bo0 = Bbo0 ^( Bbu0 | Bba0 ); \ + E##bu0 = Bbu0 ^( Bba0 & Bbe0 ); \ +\ + A##ba1 ^= Da1; \ + Bba1 = A##ba1; \ + A##ge1 ^= De1; \ + Bbe1 = ROL32(A##ge1, 22); \ + A##ki0 ^= Di0; \ + Bbi1 = ROL32(A##ki0, 21); \ + E##ba1 = Bba1 ^( Bbe1 | Bbi1 ); \ + E##ba1 ^= KeccakF1600RoundConstants_int2_1[i]; \ + A##mo0 ^= Do0; \ + Bbo1 = ROL32(A##mo0, 10); \ + E##be1 = Bbe1 ^((~Bbi1)| Bbo1 ); \ + A##su1 ^= Du1; \ + Bbu1 = ROL32(A##su1, 7); \ + E##bi1 = Bbi1 ^( Bbo1 & Bbu1 ); \ + E##bo1 = Bbo1 ^( Bbu1 | Bba1 ); \ + E##bu1 = Bbu1 ^( Bba1 & Bbe1 ); \ +\ + A##bo0 ^= Do0; \ + Bga0 = ROL32(A##bo0, 14); \ + A##gu0 ^= Du0; \ + Bge0 = ROL32(A##gu0, 10); \ + A##ka1 ^= Da1; \ + Bgi0 = ROL32(A##ka1, 2); \ + E##ga0 = Bga0 ^( Bge0 | Bgi0 ); \ + A##me1 ^= De1; \ + Bgo0 = ROL32(A##me1, 23); \ + E##ge0 = Bge0 ^( Bgi0 & Bgo0 ); \ + A##si1 ^= Di1; \ + Bgu0 = ROL32(A##si1, 31); \ + E##gi0 = Bgi0 ^( Bgo0 |(~Bgu0)); \ + E##go0 = Bgo0 ^( Bgu0 | Bga0 ); \ + E##gu0 = Bgu0 ^( Bga0 & Bge0 ); \ +\ + A##bo1 ^= Do1; \ + Bga1 = ROL32(A##bo1, 14); \ + A##gu1 ^= Du1; \ + Bge1 = ROL32(A##gu1, 10); \ + A##ka0 ^= Da0; \ + Bgi1 = ROL32(A##ka0, 1); \ + E##ga1 = Bga1 ^( Bge1 | Bgi1 ); \ + A##me0 ^= De0; \ + Bgo1 = ROL32(A##me0, 22); \ + E##ge1 = Bge1 ^( Bgi1 & Bgo1 ); \ + A##si0 ^= Di0; \ + Bgu1 = ROL32(A##si0, 30); \ + E##gi1 = Bgi1 ^( Bgo1 |(~Bgu1)); \ + E##go1 = Bgo1 ^( Bgu1 | Bga1 ); \ + E##gu1 = Bgu1 ^( Bga1 & Bge1 ); \ +\ + A##be1 ^= De1; \ + Bka0 = ROL32(A##be1, 1); \ + A##gi0 ^= Di0; \ + Bke0 = ROL32(A##gi0, 3); \ + A##ko1 ^= Do1; \ + Bki0 = ROL32(A##ko1, 13); \ + E##ka0 = Bka0 ^( Bke0 | Bki0 ); \ + A##mu0 ^= Du0; \ + Bko0 = ROL32(A##mu0, 4); \ + E##ke0 = Bke0 ^( Bki0 & Bko0 ); \ + A##sa0 ^= Da0; \ + Bku0 = ROL32(A##sa0, 9); \ + E##ki0 = Bki0 ^((~Bko0)& Bku0 ); \ + E##ko0 = (~Bko0)^( Bku0 | Bka0 ); \ + E##ku0 = Bku0 ^( Bka0 & Bke0 ); \ +\ + A##be0 ^= De0; \ + Bka1 = A##be0; \ + A##gi1 ^= Di1; \ + Bke1 = ROL32(A##gi1, 3); \ + A##ko0 ^= Do0; \ + Bki1 = ROL32(A##ko0, 12); \ + E##ka1 = Bka1 ^( Bke1 | Bki1 ); \ + A##mu1 ^= Du1; \ + Bko1 = ROL32(A##mu1, 4); \ + E##ke1 = Bke1 ^( Bki1 & Bko1 ); \ + A##sa1 ^= Da1; \ + Bku1 = ROL32(A##sa1, 9); \ + E##ki1 = Bki1 ^((~Bko1)& Bku1 ); \ + E##ko1 = (~Bko1)^( Bku1 | Bka1 ); \ + E##ku1 = Bku1 ^( Bka1 & Bke1 ); \ +\ + A##bu1 ^= Du1; \ + Bma0 = ROL32(A##bu1, 14); \ + A##ga0 ^= Da0; \ + Bme0 = ROL32(A##ga0, 18); \ + A##ke0 ^= De0; \ + Bmi0 = ROL32(A##ke0, 5); \ + E##ma0 = Bma0 ^( Bme0 & Bmi0 ); \ + A##mi1 ^= Di1; \ + Bmo0 = ROL32(A##mi1, 8); \ + E##me0 = Bme0 ^( Bmi0 | Bmo0 ); \ + A##so0 ^= Do0; \ + Bmu0 = ROL32(A##so0, 28); \ + E##mi0 = Bmi0 ^((~Bmo0)| Bmu0 ); \ + E##mo0 = (~Bmo0)^( Bmu0 & Bma0 ); \ + E##mu0 = Bmu0 ^( Bma0 | Bme0 ); \ +\ + A##bu0 ^= Du0; \ + Bma1 = ROL32(A##bu0, 13); \ + A##ga1 ^= Da1; \ + Bme1 = ROL32(A##ga1, 18); \ + A##ke1 ^= De1; \ + Bmi1 = ROL32(A##ke1, 5); \ + E##ma1 = Bma1 ^( Bme1 & Bmi1 ); \ + A##mi0 ^= Di0; \ + Bmo1 = ROL32(A##mi0, 7); \ + E##me1 = Bme1 ^( Bmi1 | Bmo1 ); \ + A##so1 ^= Do1; \ + Bmu1 = ROL32(A##so1, 28); \ + E##mi1 = Bmi1 ^((~Bmo1)| Bmu1 ); \ + E##mo1 = (~Bmo1)^( Bmu1 & Bma1 ); \ + E##mu1 = Bmu1 ^( Bma1 | Bme1 ); \ +\ + A##bi0 ^= Di0; \ + Bsa0 = ROL32(A##bi0, 31); \ + A##go1 ^= Do1; \ + Bse0 = ROL32(A##go1, 28); \ + A##ku1 ^= Du1; \ + Bsi0 = ROL32(A##ku1, 20); \ + E##sa0 = Bsa0 ^((~Bse0)& Bsi0 ); \ + A##ma1 ^= Da1; \ + Bso0 = ROL32(A##ma1, 21); \ + E##se0 = (~Bse0)^( Bsi0 | Bso0 ); \ + A##se0 ^= De0; \ + Bsu0 = ROL32(A##se0, 1); \ + E##si0 = Bsi0 ^( Bso0 & Bsu0 ); \ + E##so0 = Bso0 ^( Bsu0 | Bsa0 ); \ + E##su0 = Bsu0 ^( Bsa0 & Bse0 ); \ +\ + A##bi1 ^= Di1; \ + Bsa1 = ROL32(A##bi1, 31); \ + A##go0 ^= Do0; \ + Bse1 = ROL32(A##go0, 27); \ + A##ku0 ^= Du0; \ + Bsi1 = ROL32(A##ku0, 19); \ + E##sa1 = Bsa1 ^((~Bse1)& Bsi1 ); \ + A##ma0 ^= Da0; \ + Bso1 = ROL32(A##ma0, 20); \ + E##se1 = (~Bse1)^( Bsi1 | Bso1 ); \ + A##se1 ^= De1; \ + Bsu1 = ROL32(A##se1, 1); \ + E##si1 = Bsi1 ^( Bso1 & Bsu1 ); \ + E##so1 = Bso1 ^( Bsu1 | Bsa1 ); \ + E##su1 = Bsu1 ^( Bsa1 & Bse1 ); \ +\ + +#else /* UseBebigokimisa */ +/* --- Code for round, with prepare-theta */ +/* --- using factor 2 interleaving, 64-bit lanes mapped to 32-bit words */ +#define thetaRhoPiChiIotaPrepareTheta(i, A, E) \ + Da0 = Cu0^ROL32(Ce1, 1); \ + Da1 = Cu1^Ce0; \ + De0 = Ca0^ROL32(Ci1, 1); \ + De1 = Ca1^Ci0; \ + Di0 = Ce0^ROL32(Co1, 1); \ + Di1 = Ce1^Co0; \ + Do0 = Ci0^ROL32(Cu1, 1); \ + Do1 = Ci1^Cu0; \ + Du0 = Co0^ROL32(Ca1, 1); \ + Du1 = Co1^Ca0; \ +\ + A##ba0 ^= Da0; \ + Bba0 = A##ba0; \ + A##ge0 ^= De0; \ + Bbe0 = ROL32(A##ge0, 22); \ + A##ki1 ^= Di1; \ + Bbi0 = ROL32(A##ki1, 22); \ + E##ba0 = Bba0 ^((~Bbe0)& Bbi0 ); \ + E##ba0 ^= KeccakF1600RoundConstants_int2_0[i]; \ + Ca0 = E##ba0; \ + A##mo1 ^= Do1; \ + Bbo0 = ROL32(A##mo1, 11); \ + E##be0 = Bbe0 ^((~Bbi0)& Bbo0 ); \ + Ce0 = E##be0; \ + A##su0 ^= Du0; \ + Bbu0 = ROL32(A##su0, 7); \ + E##bi0 = Bbi0 ^((~Bbo0)& Bbu0 ); \ + Ci0 = E##bi0; \ + E##bo0 = Bbo0 ^((~Bbu0)& Bba0 ); \ + Co0 = E##bo0; \ + E##bu0 = Bbu0 ^((~Bba0)& Bbe0 ); \ + Cu0 = E##bu0; \ +\ + A##ba1 ^= Da1; \ + Bba1 = A##ba1; \ + A##ge1 ^= De1; \ + Bbe1 = ROL32(A##ge1, 22); \ + A##ki0 ^= Di0; \ + Bbi1 = ROL32(A##ki0, 21); \ + E##ba1 = Bba1 ^((~Bbe1)& Bbi1 ); \ + E##ba1 ^= KeccakF1600RoundConstants_int2_1[i]; \ + Ca1 = E##ba1; \ + A##mo0 ^= Do0; \ + Bbo1 = ROL32(A##mo0, 10); \ + E##be1 = Bbe1 ^((~Bbi1)& Bbo1 ); \ + Ce1 = E##be1; \ + A##su1 ^= Du1; \ + Bbu1 = ROL32(A##su1, 7); \ + E##bi1 = Bbi1 ^((~Bbo1)& Bbu1 ); \ + Ci1 = E##bi1; \ + E##bo1 = Bbo1 ^((~Bbu1)& Bba1 ); \ + Co1 = E##bo1; \ + E##bu1 = Bbu1 ^((~Bba1)& Bbe1 ); \ + Cu1 = E##bu1; \ +\ + A##bo0 ^= Do0; \ + Bga0 = ROL32(A##bo0, 14); \ + A##gu0 ^= Du0; \ + Bge0 = ROL32(A##gu0, 10); \ + A##ka1 ^= Da1; \ + Bgi0 = ROL32(A##ka1, 2); \ + E##ga0 = Bga0 ^((~Bge0)& Bgi0 ); \ + Ca0 ^= E##ga0; \ + A##me1 ^= De1; \ + Bgo0 = ROL32(A##me1, 23); \ + E##ge0 = Bge0 ^((~Bgi0)& Bgo0 ); \ + Ce0 ^= E##ge0; \ + A##si1 ^= Di1; \ + Bgu0 = ROL32(A##si1, 31); \ + E##gi0 = Bgi0 ^((~Bgo0)& Bgu0 ); \ + Ci0 ^= E##gi0; \ + E##go0 = Bgo0 ^((~Bgu0)& Bga0 ); \ + Co0 ^= E##go0; \ + E##gu0 = Bgu0 ^((~Bga0)& Bge0 ); \ + Cu0 ^= E##gu0; \ +\ + A##bo1 ^= Do1; \ + Bga1 = ROL32(A##bo1, 14); \ + A##gu1 ^= Du1; \ + Bge1 = ROL32(A##gu1, 10); \ + A##ka0 ^= Da0; \ + Bgi1 = ROL32(A##ka0, 1); \ + E##ga1 = Bga1 ^((~Bge1)& Bgi1 ); \ + Ca1 ^= E##ga1; \ + A##me0 ^= De0; \ + Bgo1 = ROL32(A##me0, 22); \ + E##ge1 = Bge1 ^((~Bgi1)& Bgo1 ); \ + Ce1 ^= E##ge1; \ + A##si0 ^= Di0; \ + Bgu1 = ROL32(A##si0, 30); \ + E##gi1 = Bgi1 ^((~Bgo1)& Bgu1 ); \ + Ci1 ^= E##gi1; \ + E##go1 = Bgo1 ^((~Bgu1)& Bga1 ); \ + Co1 ^= E##go1; \ + E##gu1 = Bgu1 ^((~Bga1)& Bge1 ); \ + Cu1 ^= E##gu1; \ +\ + A##be1 ^= De1; \ + Bka0 = ROL32(A##be1, 1); \ + A##gi0 ^= Di0; \ + Bke0 = ROL32(A##gi0, 3); \ + A##ko1 ^= Do1; \ + Bki0 = ROL32(A##ko1, 13); \ + E##ka0 = Bka0 ^((~Bke0)& Bki0 ); \ + Ca0 ^= E##ka0; \ + A##mu0 ^= Du0; \ + Bko0 = ROL32(A##mu0, 4); \ + E##ke0 = Bke0 ^((~Bki0)& Bko0 ); \ + Ce0 ^= E##ke0; \ + A##sa0 ^= Da0; \ + Bku0 = ROL32(A##sa0, 9); \ + E##ki0 = Bki0 ^((~Bko0)& Bku0 ); \ + Ci0 ^= E##ki0; \ + E##ko0 = Bko0 ^((~Bku0)& Bka0 ); \ + Co0 ^= E##ko0; \ + E##ku0 = Bku0 ^((~Bka0)& Bke0 ); \ + Cu0 ^= E##ku0; \ +\ + A##be0 ^= De0; \ + Bka1 = A##be0; \ + A##gi1 ^= Di1; \ + Bke1 = ROL32(A##gi1, 3); \ + A##ko0 ^= Do0; \ + Bki1 = ROL32(A##ko0, 12); \ + E##ka1 = Bka1 ^((~Bke1)& Bki1 ); \ + Ca1 ^= E##ka1; \ + A##mu1 ^= Du1; \ + Bko1 = ROL32(A##mu1, 4); \ + E##ke1 = Bke1 ^((~Bki1)& Bko1 ); \ + Ce1 ^= E##ke1; \ + A##sa1 ^= Da1; \ + Bku1 = ROL32(A##sa1, 9); \ + E##ki1 = Bki1 ^((~Bko1)& Bku1 ); \ + Ci1 ^= E##ki1; \ + E##ko1 = Bko1 ^((~Bku1)& Bka1 ); \ + Co1 ^= E##ko1; \ + E##ku1 = Bku1 ^((~Bka1)& Bke1 ); \ + Cu1 ^= E##ku1; \ +\ + A##bu1 ^= Du1; \ + Bma0 = ROL32(A##bu1, 14); \ + A##ga0 ^= Da0; \ + Bme0 = ROL32(A##ga0, 18); \ + A##ke0 ^= De0; \ + Bmi0 = ROL32(A##ke0, 5); \ + E##ma0 = Bma0 ^((~Bme0)& Bmi0 ); \ + Ca0 ^= E##ma0; \ + A##mi1 ^= Di1; \ + Bmo0 = ROL32(A##mi1, 8); \ + E##me0 = Bme0 ^((~Bmi0)& Bmo0 ); \ + Ce0 ^= E##me0; \ + A##so0 ^= Do0; \ + Bmu0 = ROL32(A##so0, 28); \ + E##mi0 = Bmi0 ^((~Bmo0)& Bmu0 ); \ + Ci0 ^= E##mi0; \ + E##mo0 = Bmo0 ^((~Bmu0)& Bma0 ); \ + Co0 ^= E##mo0; \ + E##mu0 = Bmu0 ^((~Bma0)& Bme0 ); \ + Cu0 ^= E##mu0; \ +\ + A##bu0 ^= Du0; \ + Bma1 = ROL32(A##bu0, 13); \ + A##ga1 ^= Da1; \ + Bme1 = ROL32(A##ga1, 18); \ + A##ke1 ^= De1; \ + Bmi1 = ROL32(A##ke1, 5); \ + E##ma1 = Bma1 ^((~Bme1)& Bmi1 ); \ + Ca1 ^= E##ma1; \ + A##mi0 ^= Di0; \ + Bmo1 = ROL32(A##mi0, 7); \ + E##me1 = Bme1 ^((~Bmi1)& Bmo1 ); \ + Ce1 ^= E##me1; \ + A##so1 ^= Do1; \ + Bmu1 = ROL32(A##so1, 28); \ + E##mi1 = Bmi1 ^((~Bmo1)& Bmu1 ); \ + Ci1 ^= E##mi1; \ + E##mo1 = Bmo1 ^((~Bmu1)& Bma1 ); \ + Co1 ^= E##mo1; \ + E##mu1 = Bmu1 ^((~Bma1)& Bme1 ); \ + Cu1 ^= E##mu1; \ +\ + A##bi0 ^= Di0; \ + Bsa0 = ROL32(A##bi0, 31); \ + A##go1 ^= Do1; \ + Bse0 = ROL32(A##go1, 28); \ + A##ku1 ^= Du1; \ + Bsi0 = ROL32(A##ku1, 20); \ + E##sa0 = Bsa0 ^((~Bse0)& Bsi0 ); \ + Ca0 ^= E##sa0; \ + A##ma1 ^= Da1; \ + Bso0 = ROL32(A##ma1, 21); \ + E##se0 = Bse0 ^((~Bsi0)& Bso0 ); \ + Ce0 ^= E##se0; \ + A##se0 ^= De0; \ + Bsu0 = ROL32(A##se0, 1); \ + E##si0 = Bsi0 ^((~Bso0)& Bsu0 ); \ + Ci0 ^= E##si0; \ + E##so0 = Bso0 ^((~Bsu0)& Bsa0 ); \ + Co0 ^= E##so0; \ + E##su0 = Bsu0 ^((~Bsa0)& Bse0 ); \ + Cu0 ^= E##su0; \ +\ + A##bi1 ^= Di1; \ + Bsa1 = ROL32(A##bi1, 31); \ + A##go0 ^= Do0; \ + Bse1 = ROL32(A##go0, 27); \ + A##ku0 ^= Du0; \ + Bsi1 = ROL32(A##ku0, 19); \ + E##sa1 = Bsa1 ^((~Bse1)& Bsi1 ); \ + Ca1 ^= E##sa1; \ + A##ma0 ^= Da0; \ + Bso1 = ROL32(A##ma0, 20); \ + E##se1 = Bse1 ^((~Bsi1)& Bso1 ); \ + Ce1 ^= E##se1; \ + A##se1 ^= De1; \ + Bsu1 = ROL32(A##se1, 1); \ + E##si1 = Bsi1 ^((~Bso1)& Bsu1 ); \ + Ci1 ^= E##si1; \ + E##so1 = Bso1 ^((~Bsu1)& Bsa1 ); \ + Co1 ^= E##so1; \ + E##su1 = Bsu1 ^((~Bsa1)& Bse1 ); \ + Cu1 ^= E##su1; \ +\ + +/* --- Code for round */ +/* --- using factor 2 interleaving, 64-bit lanes mapped to 32-bit words */ +#define thetaRhoPiChiIota(i, A, E) \ + Da0 = Cu0^ROL32(Ce1, 1); \ + Da1 = Cu1^Ce0; \ + De0 = Ca0^ROL32(Ci1, 1); \ + De1 = Ca1^Ci0; \ + Di0 = Ce0^ROL32(Co1, 1); \ + Di1 = Ce1^Co0; \ + Do0 = Ci0^ROL32(Cu1, 1); \ + Do1 = Ci1^Cu0; \ + Du0 = Co0^ROL32(Ca1, 1); \ + Du1 = Co1^Ca0; \ +\ + A##ba0 ^= Da0; \ + Bba0 = A##ba0; \ + A##ge0 ^= De0; \ + Bbe0 = ROL32(A##ge0, 22); \ + A##ki1 ^= Di1; \ + Bbi0 = ROL32(A##ki1, 22); \ + E##ba0 = Bba0 ^((~Bbe0)& Bbi0 ); \ + E##ba0 ^= KeccakF1600RoundConstants_int2_0[i]; \ + A##mo1 ^= Do1; \ + Bbo0 = ROL32(A##mo1, 11); \ + E##be0 = Bbe0 ^((~Bbi0)& Bbo0 ); \ + A##su0 ^= Du0; \ + Bbu0 = ROL32(A##su0, 7); \ + E##bi0 = Bbi0 ^((~Bbo0)& Bbu0 ); \ + E##bo0 = Bbo0 ^((~Bbu0)& Bba0 ); \ + E##bu0 = Bbu0 ^((~Bba0)& Bbe0 ); \ +\ + A##ba1 ^= Da1; \ + Bba1 = A##ba1; \ + A##ge1 ^= De1; \ + Bbe1 = ROL32(A##ge1, 22); \ + A##ki0 ^= Di0; \ + Bbi1 = ROL32(A##ki0, 21); \ + E##ba1 = Bba1 ^((~Bbe1)& Bbi1 ); \ + E##ba1 ^= KeccakF1600RoundConstants_int2_1[i]; \ + A##mo0 ^= Do0; \ + Bbo1 = ROL32(A##mo0, 10); \ + E##be1 = Bbe1 ^((~Bbi1)& Bbo1 ); \ + A##su1 ^= Du1; \ + Bbu1 = ROL32(A##su1, 7); \ + E##bi1 = Bbi1 ^((~Bbo1)& Bbu1 ); \ + E##bo1 = Bbo1 ^((~Bbu1)& Bba1 ); \ + E##bu1 = Bbu1 ^((~Bba1)& Bbe1 ); \ +\ + A##bo0 ^= Do0; \ + Bga0 = ROL32(A##bo0, 14); \ + A##gu0 ^= Du0; \ + Bge0 = ROL32(A##gu0, 10); \ + A##ka1 ^= Da1; \ + Bgi0 = ROL32(A##ka1, 2); \ + E##ga0 = Bga0 ^((~Bge0)& Bgi0 ); \ + A##me1 ^= De1; \ + Bgo0 = ROL32(A##me1, 23); \ + E##ge0 = Bge0 ^((~Bgi0)& Bgo0 ); \ + A##si1 ^= Di1; \ + Bgu0 = ROL32(A##si1, 31); \ + E##gi0 = Bgi0 ^((~Bgo0)& Bgu0 ); \ + E##go0 = Bgo0 ^((~Bgu0)& Bga0 ); \ + E##gu0 = Bgu0 ^((~Bga0)& Bge0 ); \ +\ + A##bo1 ^= Do1; \ + Bga1 = ROL32(A##bo1, 14); \ + A##gu1 ^= Du1; \ + Bge1 = ROL32(A##gu1, 10); \ + A##ka0 ^= Da0; \ + Bgi1 = ROL32(A##ka0, 1); \ + E##ga1 = Bga1 ^((~Bge1)& Bgi1 ); \ + A##me0 ^= De0; \ + Bgo1 = ROL32(A##me0, 22); \ + E##ge1 = Bge1 ^((~Bgi1)& Bgo1 ); \ + A##si0 ^= Di0; \ + Bgu1 = ROL32(A##si0, 30); \ + E##gi1 = Bgi1 ^((~Bgo1)& Bgu1 ); \ + E##go1 = Bgo1 ^((~Bgu1)& Bga1 ); \ + E##gu1 = Bgu1 ^((~Bga1)& Bge1 ); \ +\ + A##be1 ^= De1; \ + Bka0 = ROL32(A##be1, 1); \ + A##gi0 ^= Di0; \ + Bke0 = ROL32(A##gi0, 3); \ + A##ko1 ^= Do1; \ + Bki0 = ROL32(A##ko1, 13); \ + E##ka0 = Bka0 ^((~Bke0)& Bki0 ); \ + A##mu0 ^= Du0; \ + Bko0 = ROL32(A##mu0, 4); \ + E##ke0 = Bke0 ^((~Bki0)& Bko0 ); \ + A##sa0 ^= Da0; \ + Bku0 = ROL32(A##sa0, 9); \ + E##ki0 = Bki0 ^((~Bko0)& Bku0 ); \ + E##ko0 = Bko0 ^((~Bku0)& Bka0 ); \ + E##ku0 = Bku0 ^((~Bka0)& Bke0 ); \ +\ + A##be0 ^= De0; \ + Bka1 = A##be0; \ + A##gi1 ^= Di1; \ + Bke1 = ROL32(A##gi1, 3); \ + A##ko0 ^= Do0; \ + Bki1 = ROL32(A##ko0, 12); \ + E##ka1 = Bka1 ^((~Bke1)& Bki1 ); \ + A##mu1 ^= Du1; \ + Bko1 = ROL32(A##mu1, 4); \ + E##ke1 = Bke1 ^((~Bki1)& Bko1 ); \ + A##sa1 ^= Da1; \ + Bku1 = ROL32(A##sa1, 9); \ + E##ki1 = Bki1 ^((~Bko1)& Bku1 ); \ + E##ko1 = Bko1 ^((~Bku1)& Bka1 ); \ + E##ku1 = Bku1 ^((~Bka1)& Bke1 ); \ +\ + A##bu1 ^= Du1; \ + Bma0 = ROL32(A##bu1, 14); \ + A##ga0 ^= Da0; \ + Bme0 = ROL32(A##ga0, 18); \ + A##ke0 ^= De0; \ + Bmi0 = ROL32(A##ke0, 5); \ + E##ma0 = Bma0 ^((~Bme0)& Bmi0 ); \ + A##mi1 ^= Di1; \ + Bmo0 = ROL32(A##mi1, 8); \ + E##me0 = Bme0 ^((~Bmi0)& Bmo0 ); \ + A##so0 ^= Do0; \ + Bmu0 = ROL32(A##so0, 28); \ + E##mi0 = Bmi0 ^((~Bmo0)& Bmu0 ); \ + E##mo0 = Bmo0 ^((~Bmu0)& Bma0 ); \ + E##mu0 = Bmu0 ^((~Bma0)& Bme0 ); \ +\ + A##bu0 ^= Du0; \ + Bma1 = ROL32(A##bu0, 13); \ + A##ga1 ^= Da1; \ + Bme1 = ROL32(A##ga1, 18); \ + A##ke1 ^= De1; \ + Bmi1 = ROL32(A##ke1, 5); \ + E##ma1 = Bma1 ^((~Bme1)& Bmi1 ); \ + A##mi0 ^= Di0; \ + Bmo1 = ROL32(A##mi0, 7); \ + E##me1 = Bme1 ^((~Bmi1)& Bmo1 ); \ + A##so1 ^= Do1; \ + Bmu1 = ROL32(A##so1, 28); \ + E##mi1 = Bmi1 ^((~Bmo1)& Bmu1 ); \ + E##mo1 = Bmo1 ^((~Bmu1)& Bma1 ); \ + E##mu1 = Bmu1 ^((~Bma1)& Bme1 ); \ +\ + A##bi0 ^= Di0; \ + Bsa0 = ROL32(A##bi0, 31); \ + A##go1 ^= Do1; \ + Bse0 = ROL32(A##go1, 28); \ + A##ku1 ^= Du1; \ + Bsi0 = ROL32(A##ku1, 20); \ + E##sa0 = Bsa0 ^((~Bse0)& Bsi0 ); \ + A##ma1 ^= Da1; \ + Bso0 = ROL32(A##ma1, 21); \ + E##se0 = Bse0 ^((~Bsi0)& Bso0 ); \ + A##se0 ^= De0; \ + Bsu0 = ROL32(A##se0, 1); \ + E##si0 = Bsi0 ^((~Bso0)& Bsu0 ); \ + E##so0 = Bso0 ^((~Bsu0)& Bsa0 ); \ + E##su0 = Bsu0 ^((~Bsa0)& Bse0 ); \ +\ + A##bi1 ^= Di1; \ + Bsa1 = ROL32(A##bi1, 31); \ + A##go0 ^= Do0; \ + Bse1 = ROL32(A##go0, 27); \ + A##ku0 ^= Du0; \ + Bsi1 = ROL32(A##ku0, 19); \ + E##sa1 = Bsa1 ^((~Bse1)& Bsi1 ); \ + A##ma0 ^= Da0; \ + Bso1 = ROL32(A##ma0, 20); \ + E##se1 = Bse1 ^((~Bsi1)& Bso1 ); \ + A##se1 ^= De1; \ + Bsu1 = ROL32(A##se1, 1); \ + E##si1 = Bsi1 ^((~Bso1)& Bsu1 ); \ + E##so1 = Bso1 ^((~Bsu1)& Bsa1 ); \ + E##su1 = Bsu1 ^((~Bsa1)& Bse1 ); \ +\ + +#endif /* UseBebigokimisa */ + +const UINT32 KeccakF1600RoundConstants_int2_0[24] = { + 0x00000001UL, + 0x00000000UL, + 0x00000000UL, + 0x00000000UL, + 0x00000001UL, + 0x00000001UL, + 0x00000001UL, + 0x00000001UL, + 0x00000000UL, + 0x00000000UL, + 0x00000001UL, + 0x00000000UL, + 0x00000001UL, + 0x00000001UL, + 0x00000001UL, + 0x00000001UL, + 0x00000000UL, + 0x00000000UL, + 0x00000000UL, + 0x00000000UL, + 0x00000001UL, + 0x00000000UL, + 0x00000001UL, + 0x00000000UL }; + +const UINT32 KeccakF1600RoundConstants_int2_1[24] = { + 0x00000000UL, + 0x00000089UL, + 0x8000008bUL, + 0x80008080UL, + 0x0000008bUL, + 0x00008000UL, + 0x80008088UL, + 0x80000082UL, + 0x0000000bUL, + 0x0000000aUL, + 0x00008082UL, + 0x00008003UL, + 0x0000808bUL, + 0x8000000bUL, + 0x8000008aUL, + 0x80000081UL, + 0x80000081UL, + 0x80000008UL, + 0x00000083UL, + 0x80008003UL, + 0x80008088UL, + 0x80000088UL, + 0x00008000UL, + 0x80008082UL }; + +#define copyFromStateAndXor1024bits(X, state, input) \ + X##ba0 = state[ 0]^input[ 0]; \ + X##ba1 = state[ 1]^input[ 1]; \ + X##be0 = state[ 2]^input[ 2]; \ + X##be1 = state[ 3]^input[ 3]; \ + X##bi0 = state[ 4]^input[ 4]; \ + X##bi1 = state[ 5]^input[ 5]; \ + X##bo0 = state[ 6]^input[ 6]; \ + X##bo1 = state[ 7]^input[ 7]; \ + X##bu0 = state[ 8]^input[ 8]; \ + X##bu1 = state[ 9]^input[ 9]; \ + X##ga0 = state[10]^input[10]; \ + X##ga1 = state[11]^input[11]; \ + X##ge0 = state[12]^input[12]; \ + X##ge1 = state[13]^input[13]; \ + X##gi0 = state[14]^input[14]; \ + X##gi1 = state[15]^input[15]; \ + X##go0 = state[16]^input[16]; \ + X##go1 = state[17]^input[17]; \ + X##gu0 = state[18]^input[18]; \ + X##gu1 = state[19]^input[19]; \ + X##ka0 = state[20]^input[20]; \ + X##ka1 = state[21]^input[21]; \ + X##ke0 = state[22]^input[22]; \ + X##ke1 = state[23]^input[23]; \ + X##ki0 = state[24]^input[24]; \ + X##ki1 = state[25]^input[25]; \ + X##ko0 = state[26]^input[26]; \ + X##ko1 = state[27]^input[27]; \ + X##ku0 = state[28]^input[28]; \ + X##ku1 = state[29]^input[29]; \ + X##ma0 = state[30]^input[30]; \ + X##ma1 = state[31]^input[31]; \ + X##me0 = state[32]; \ + X##me1 = state[33]; \ + X##mi0 = state[34]; \ + X##mi1 = state[35]; \ + X##mo0 = state[36]; \ + X##mo1 = state[37]; \ + X##mu0 = state[38]; \ + X##mu1 = state[39]; \ + X##sa0 = state[40]; \ + X##sa1 = state[41]; \ + X##se0 = state[42]; \ + X##se1 = state[43]; \ + X##si0 = state[44]; \ + X##si1 = state[45]; \ + X##so0 = state[46]; \ + X##so1 = state[47]; \ + X##su0 = state[48]; \ + X##su1 = state[49]; \ + +#define copyFromStateAndXor1088bits(X, state, input) \ + X##ba0 = state[ 0]^input[ 0]; \ + X##ba1 = state[ 1]^input[ 1]; \ + X##be0 = state[ 2]^input[ 2]; \ + X##be1 = state[ 3]^input[ 3]; \ + X##bi0 = state[ 4]^input[ 4]; \ + X##bi1 = state[ 5]^input[ 5]; \ + X##bo0 = state[ 6]^input[ 6]; \ + X##bo1 = state[ 7]^input[ 7]; \ + X##bu0 = state[ 8]^input[ 8]; \ + X##bu1 = state[ 9]^input[ 9]; \ + X##ga0 = state[10]^input[10]; \ + X##ga1 = state[11]^input[11]; \ + X##ge0 = state[12]^input[12]; \ + X##ge1 = state[13]^input[13]; \ + X##gi0 = state[14]^input[14]; \ + X##gi1 = state[15]^input[15]; \ + X##go0 = state[16]^input[16]; \ + X##go1 = state[17]^input[17]; \ + X##gu0 = state[18]^input[18]; \ + X##gu1 = state[19]^input[19]; \ + X##ka0 = state[20]^input[20]; \ + X##ka1 = state[21]^input[21]; \ + X##ke0 = state[22]^input[22]; \ + X##ke1 = state[23]^input[23]; \ + X##ki0 = state[24]^input[24]; \ + X##ki1 = state[25]^input[25]; \ + X##ko0 = state[26]^input[26]; \ + X##ko1 = state[27]^input[27]; \ + X##ku0 = state[28]^input[28]; \ + X##ku1 = state[29]^input[29]; \ + X##ma0 = state[30]^input[30]; \ + X##ma1 = state[31]^input[31]; \ + X##me0 = state[32]^input[32]; \ + X##me1 = state[33]^input[33]; \ + X##mi0 = state[34]; \ + X##mi1 = state[35]; \ + X##mo0 = state[36]; \ + X##mo1 = state[37]; \ + X##mu0 = state[38]; \ + X##mu1 = state[39]; \ + X##sa0 = state[40]; \ + X##sa1 = state[41]; \ + X##se0 = state[42]; \ + X##se1 = state[43]; \ + X##si0 = state[44]; \ + X##si1 = state[45]; \ + X##so0 = state[46]; \ + X##so1 = state[47]; \ + X##su0 = state[48]; \ + X##su1 = state[49]; \ + +#define copyFromState(X, state) \ + X##ba0 = state[ 0]; \ + X##ba1 = state[ 1]; \ + X##be0 = state[ 2]; \ + X##be1 = state[ 3]; \ + X##bi0 = state[ 4]; \ + X##bi1 = state[ 5]; \ + X##bo0 = state[ 6]; \ + X##bo1 = state[ 7]; \ + X##bu0 = state[ 8]; \ + X##bu1 = state[ 9]; \ + X##ga0 = state[10]; \ + X##ga1 = state[11]; \ + X##ge0 = state[12]; \ + X##ge1 = state[13]; \ + X##gi0 = state[14]; \ + X##gi1 = state[15]; \ + X##go0 = state[16]; \ + X##go1 = state[17]; \ + X##gu0 = state[18]; \ + X##gu1 = state[19]; \ + X##ka0 = state[20]; \ + X##ka1 = state[21]; \ + X##ke0 = state[22]; \ + X##ke1 = state[23]; \ + X##ki0 = state[24]; \ + X##ki1 = state[25]; \ + X##ko0 = state[26]; \ + X##ko1 = state[27]; \ + X##ku0 = state[28]; \ + X##ku1 = state[29]; \ + X##ma0 = state[30]; \ + X##ma1 = state[31]; \ + X##me0 = state[32]; \ + X##me1 = state[33]; \ + X##mi0 = state[34]; \ + X##mi1 = state[35]; \ + X##mo0 = state[36]; \ + X##mo1 = state[37]; \ + X##mu0 = state[38]; \ + X##mu1 = state[39]; \ + X##sa0 = state[40]; \ + X##sa1 = state[41]; \ + X##se0 = state[42]; \ + X##se1 = state[43]; \ + X##si0 = state[44]; \ + X##si1 = state[45]; \ + X##so0 = state[46]; \ + X##so1 = state[47]; \ + X##su0 = state[48]; \ + X##su1 = state[49]; \ + +#define copyToState(state, X) \ + state[ 0] = X##ba0; \ + state[ 1] = X##ba1; \ + state[ 2] = X##be0; \ + state[ 3] = X##be1; \ + state[ 4] = X##bi0; \ + state[ 5] = X##bi1; \ + state[ 6] = X##bo0; \ + state[ 7] = X##bo1; \ + state[ 8] = X##bu0; \ + state[ 9] = X##bu1; \ + state[10] = X##ga0; \ + state[11] = X##ga1; \ + state[12] = X##ge0; \ + state[13] = X##ge1; \ + state[14] = X##gi0; \ + state[15] = X##gi1; \ + state[16] = X##go0; \ + state[17] = X##go1; \ + state[18] = X##gu0; \ + state[19] = X##gu1; \ + state[20] = X##ka0; \ + state[21] = X##ka1; \ + state[22] = X##ke0; \ + state[23] = X##ke1; \ + state[24] = X##ki0; \ + state[25] = X##ki1; \ + state[26] = X##ko0; \ + state[27] = X##ko1; \ + state[28] = X##ku0; \ + state[29] = X##ku1; \ + state[30] = X##ma0; \ + state[31] = X##ma1; \ + state[32] = X##me0; \ + state[33] = X##me1; \ + state[34] = X##mi0; \ + state[35] = X##mi1; \ + state[36] = X##mo0; \ + state[37] = X##mo1; \ + state[38] = X##mu0; \ + state[39] = X##mu1; \ + state[40] = X##sa0; \ + state[41] = X##sa1; \ + state[42] = X##se0; \ + state[43] = X##se1; \ + state[44] = X##si0; \ + state[45] = X##si1; \ + state[46] = X##so0; \ + state[47] = X##so1; \ + state[48] = X##su0; \ + state[49] = X##su1; \ + +#define copyStateVariables(X, Y) \ + X##ba0 = Y##ba0; \ + X##ba1 = Y##ba1; \ + X##be0 = Y##be0; \ + X##be1 = Y##be1; \ + X##bi0 = Y##bi0; \ + X##bi1 = Y##bi1; \ + X##bo0 = Y##bo0; \ + X##bo1 = Y##bo1; \ + X##bu0 = Y##bu0; \ + X##bu1 = Y##bu1; \ + X##ga0 = Y##ga0; \ + X##ga1 = Y##ga1; \ + X##ge0 = Y##ge0; \ + X##ge1 = Y##ge1; \ + X##gi0 = Y##gi0; \ + X##gi1 = Y##gi1; \ + X##go0 = Y##go0; \ + X##go1 = Y##go1; \ + X##gu0 = Y##gu0; \ + X##gu1 = Y##gu1; \ + X##ka0 = Y##ka0; \ + X##ka1 = Y##ka1; \ + X##ke0 = Y##ke0; \ + X##ke1 = Y##ke1; \ + X##ki0 = Y##ki0; \ + X##ki1 = Y##ki1; \ + X##ko0 = Y##ko0; \ + X##ko1 = Y##ko1; \ + X##ku0 = Y##ku0; \ + X##ku1 = Y##ku1; \ + X##ma0 = Y##ma0; \ + X##ma1 = Y##ma1; \ + X##me0 = Y##me0; \ + X##me1 = Y##me1; \ + X##mi0 = Y##mi0; \ + X##mi1 = Y##mi1; \ + X##mo0 = Y##mo0; \ + X##mo1 = Y##mo1; \ + X##mu0 = Y##mu0; \ + X##mu1 = Y##mu1; \ + X##sa0 = Y##sa0; \ + X##sa1 = Y##sa1; \ + X##se0 = Y##se0; \ + X##se1 = Y##se1; \ + X##si0 = Y##si0; \ + X##si1 = Y##si1; \ + X##so0 = Y##so0; \ + X##so1 = Y##so1; \ + X##su0 = Y##su0; \ + X##su1 = Y##su1; \ + diff --git a/Modules/_sha3/keccak/KeccakF-1600-32.macros b/Modules/_sha3/keccak/KeccakF-1600-32.macros new file mode 100644 index 0000000..9ade600 --- /dev/null +++ b/Modules/_sha3/keccak/KeccakF-1600-32.macros @@ -0,0 +1,26 @@ +/* +The Keccak sponge function, designed by Guido Bertoni, Joan Daemen, +Michaël Peeters and Gilles Van Assche. For more information, feedback or +questions, please refer to our website: http://keccak.noekeon.org/ + +Implementation by the designers, +hereby denoted as "the implementer". + +To the extent possible under law, the implementer has waived all copyright +and related or neighboring rights to the source code in this file. +http://creativecommons.org/publicdomain/zero/1.0/ +*/ + +#ifdef UseSchedule + #if (UseSchedule == 1) + #include "KeccakF-1600-32-s1.macros" + #elif (UseSchedule == 2) + #include "KeccakF-1600-32-s2.macros" + #elif (UseSchedule == 3) + #include "KeccakF-1600-32-rvk.macros" + #else + #error "This schedule is not supported." + #endif +#else + #include "KeccakF-1600-32-s1.macros" +#endif diff --git a/Modules/_sha3/keccak/KeccakF-1600-64.macros b/Modules/_sha3/keccak/KeccakF-1600-64.macros new file mode 100644 index 0000000..dc0f789 --- /dev/null +++ b/Modules/_sha3/keccak/KeccakF-1600-64.macros @@ -0,0 +1,728 @@ +/* +Code automatically generated by KeccakTools! + +The Keccak sponge function, designed by Guido Bertoni, Joan Daemen, +Michaël Peeters and Gilles Van Assche. For more information, feedback or +questions, please refer to our website: http://keccak.noekeon.org/ + +Implementation by the designers, +hereby denoted as "the implementer". + +To the extent possible under law, the implementer has waived all copyright +and related or neighboring rights to the source code in this file. +http://creativecommons.org/publicdomain/zero/1.0/ +*/ + +#define declareABCDE \ + UINT64 Aba, Abe, Abi, Abo, Abu; \ + UINT64 Aga, Age, Agi, Ago, Agu; \ + UINT64 Aka, Ake, Aki, Ako, Aku; \ + UINT64 Ama, Ame, Ami, Amo, Amu; \ + UINT64 Asa, Ase, Asi, Aso, Asu; \ + UINT64 Bba, Bbe, Bbi, Bbo, Bbu; \ + UINT64 Bga, Bge, Bgi, Bgo, Bgu; \ + UINT64 Bka, Bke, Bki, Bko, Bku; \ + UINT64 Bma, Bme, Bmi, Bmo, Bmu; \ + UINT64 Bsa, Bse, Bsi, Bso, Bsu; \ + UINT64 Ca, Ce, Ci, Co, Cu; \ + UINT64 Da, De, Di, Do, Du; \ + UINT64 Eba, Ebe, Ebi, Ebo, Ebu; \ + UINT64 Ega, Ege, Egi, Ego, Egu; \ + UINT64 Eka, Eke, Eki, Eko, Eku; \ + UINT64 Ema, Eme, Emi, Emo, Emu; \ + UINT64 Esa, Ese, Esi, Eso, Esu; \ + +#define prepareTheta \ + Ca = Aba^Aga^Aka^Ama^Asa; \ + Ce = Abe^Age^Ake^Ame^Ase; \ + Ci = Abi^Agi^Aki^Ami^Asi; \ + Co = Abo^Ago^Ako^Amo^Aso; \ + Cu = Abu^Agu^Aku^Amu^Asu; \ + +#ifdef UseBebigokimisa +/* --- Code for round, with prepare-theta (lane complementing pattern 'bebigokimisa') */ +/* --- 64-bit lanes mapped to 64-bit words */ +#define thetaRhoPiChiIotaPrepareTheta(i, A, E) \ + Da = Cu^ROL64(Ce, 1); \ + De = Ca^ROL64(Ci, 1); \ + Di = Ce^ROL64(Co, 1); \ + Do = Ci^ROL64(Cu, 1); \ + Du = Co^ROL64(Ca, 1); \ +\ + A##ba ^= Da; \ + Bba = A##ba; \ + A##ge ^= De; \ + Bbe = ROL64(A##ge, 44); \ + A##ki ^= Di; \ + Bbi = ROL64(A##ki, 43); \ + A##mo ^= Do; \ + Bbo = ROL64(A##mo, 21); \ + A##su ^= Du; \ + Bbu = ROL64(A##su, 14); \ + E##ba = Bba ^( Bbe | Bbi ); \ + E##ba ^= KeccakF1600RoundConstants[i]; \ + Ca = E##ba; \ + E##be = Bbe ^((~Bbi)| Bbo ); \ + Ce = E##be; \ + E##bi = Bbi ^( Bbo & Bbu ); \ + Ci = E##bi; \ + E##bo = Bbo ^( Bbu | Bba ); \ + Co = E##bo; \ + E##bu = Bbu ^( Bba & Bbe ); \ + Cu = E##bu; \ +\ + A##bo ^= Do; \ + Bga = ROL64(A##bo, 28); \ + A##gu ^= Du; \ + Bge = ROL64(A##gu, 20); \ + A##ka ^= Da; \ + Bgi = ROL64(A##ka, 3); \ + A##me ^= De; \ + Bgo = ROL64(A##me, 45); \ + A##si ^= Di; \ + Bgu = ROL64(A##si, 61); \ + E##ga = Bga ^( Bge | Bgi ); \ + Ca ^= E##ga; \ + E##ge = Bge ^( Bgi & Bgo ); \ + Ce ^= E##ge; \ + E##gi = Bgi ^( Bgo |(~Bgu)); \ + Ci ^= E##gi; \ + E##go = Bgo ^( Bgu | Bga ); \ + Co ^= E##go; \ + E##gu = Bgu ^( Bga & Bge ); \ + Cu ^= E##gu; \ +\ + A##be ^= De; \ + Bka = ROL64(A##be, 1); \ + A##gi ^= Di; \ + Bke = ROL64(A##gi, 6); \ + A##ko ^= Do; \ + Bki = ROL64(A##ko, 25); \ + A##mu ^= Du; \ + Bko = ROL64(A##mu, 8); \ + A##sa ^= Da; \ + Bku = ROL64(A##sa, 18); \ + E##ka = Bka ^( Bke | Bki ); \ + Ca ^= E##ka; \ + E##ke = Bke ^( Bki & Bko ); \ + Ce ^= E##ke; \ + E##ki = Bki ^((~Bko)& Bku ); \ + Ci ^= E##ki; \ + E##ko = (~Bko)^( Bku | Bka ); \ + Co ^= E##ko; \ + E##ku = Bku ^( Bka & Bke ); \ + Cu ^= E##ku; \ +\ + A##bu ^= Du; \ + Bma = ROL64(A##bu, 27); \ + A##ga ^= Da; \ + Bme = ROL64(A##ga, 36); \ + A##ke ^= De; \ + Bmi = ROL64(A##ke, 10); \ + A##mi ^= Di; \ + Bmo = ROL64(A##mi, 15); \ + A##so ^= Do; \ + Bmu = ROL64(A##so, 56); \ + E##ma = Bma ^( Bme & Bmi ); \ + Ca ^= E##ma; \ + E##me = Bme ^( Bmi | Bmo ); \ + Ce ^= E##me; \ + E##mi = Bmi ^((~Bmo)| Bmu ); \ + Ci ^= E##mi; \ + E##mo = (~Bmo)^( Bmu & Bma ); \ + Co ^= E##mo; \ + E##mu = Bmu ^( Bma | Bme ); \ + Cu ^= E##mu; \ +\ + A##bi ^= Di; \ + Bsa = ROL64(A##bi, 62); \ + A##go ^= Do; \ + Bse = ROL64(A##go, 55); \ + A##ku ^= Du; \ + Bsi = ROL64(A##ku, 39); \ + A##ma ^= Da; \ + Bso = ROL64(A##ma, 41); \ + A##se ^= De; \ + Bsu = ROL64(A##se, 2); \ + E##sa = Bsa ^((~Bse)& Bsi ); \ + Ca ^= E##sa; \ + E##se = (~Bse)^( Bsi | Bso ); \ + Ce ^= E##se; \ + E##si = Bsi ^( Bso & Bsu ); \ + Ci ^= E##si; \ + E##so = Bso ^( Bsu | Bsa ); \ + Co ^= E##so; \ + E##su = Bsu ^( Bsa & Bse ); \ + Cu ^= E##su; \ +\ + +/* --- Code for round (lane complementing pattern 'bebigokimisa') */ +/* --- 64-bit lanes mapped to 64-bit words */ +#define thetaRhoPiChiIota(i, A, E) \ + Da = Cu^ROL64(Ce, 1); \ + De = Ca^ROL64(Ci, 1); \ + Di = Ce^ROL64(Co, 1); \ + Do = Ci^ROL64(Cu, 1); \ + Du = Co^ROL64(Ca, 1); \ +\ + A##ba ^= Da; \ + Bba = A##ba; \ + A##ge ^= De; \ + Bbe = ROL64(A##ge, 44); \ + A##ki ^= Di; \ + Bbi = ROL64(A##ki, 43); \ + A##mo ^= Do; \ + Bbo = ROL64(A##mo, 21); \ + A##su ^= Du; \ + Bbu = ROL64(A##su, 14); \ + E##ba = Bba ^( Bbe | Bbi ); \ + E##ba ^= KeccakF1600RoundConstants[i]; \ + E##be = Bbe ^((~Bbi)| Bbo ); \ + E##bi = Bbi ^( Bbo & Bbu ); \ + E##bo = Bbo ^( Bbu | Bba ); \ + E##bu = Bbu ^( Bba & Bbe ); \ +\ + A##bo ^= Do; \ + Bga = ROL64(A##bo, 28); \ + A##gu ^= Du; \ + Bge = ROL64(A##gu, 20); \ + A##ka ^= Da; \ + Bgi = ROL64(A##ka, 3); \ + A##me ^= De; \ + Bgo = ROL64(A##me, 45); \ + A##si ^= Di; \ + Bgu = ROL64(A##si, 61); \ + E##ga = Bga ^( Bge | Bgi ); \ + E##ge = Bge ^( Bgi & Bgo ); \ + E##gi = Bgi ^( Bgo |(~Bgu)); \ + E##go = Bgo ^( Bgu | Bga ); \ + E##gu = Bgu ^( Bga & Bge ); \ +\ + A##be ^= De; \ + Bka = ROL64(A##be, 1); \ + A##gi ^= Di; \ + Bke = ROL64(A##gi, 6); \ + A##ko ^= Do; \ + Bki = ROL64(A##ko, 25); \ + A##mu ^= Du; \ + Bko = ROL64(A##mu, 8); \ + A##sa ^= Da; \ + Bku = ROL64(A##sa, 18); \ + E##ka = Bka ^( Bke | Bki ); \ + E##ke = Bke ^( Bki & Bko ); \ + E##ki = Bki ^((~Bko)& Bku ); \ + E##ko = (~Bko)^( Bku | Bka ); \ + E##ku = Bku ^( Bka & Bke ); \ +\ + A##bu ^= Du; \ + Bma = ROL64(A##bu, 27); \ + A##ga ^= Da; \ + Bme = ROL64(A##ga, 36); \ + A##ke ^= De; \ + Bmi = ROL64(A##ke, 10); \ + A##mi ^= Di; \ + Bmo = ROL64(A##mi, 15); \ + A##so ^= Do; \ + Bmu = ROL64(A##so, 56); \ + E##ma = Bma ^( Bme & Bmi ); \ + E##me = Bme ^( Bmi | Bmo ); \ + E##mi = Bmi ^((~Bmo)| Bmu ); \ + E##mo = (~Bmo)^( Bmu & Bma ); \ + E##mu = Bmu ^( Bma | Bme ); \ +\ + A##bi ^= Di; \ + Bsa = ROL64(A##bi, 62); \ + A##go ^= Do; \ + Bse = ROL64(A##go, 55); \ + A##ku ^= Du; \ + Bsi = ROL64(A##ku, 39); \ + A##ma ^= Da; \ + Bso = ROL64(A##ma, 41); \ + A##se ^= De; \ + Bsu = ROL64(A##se, 2); \ + E##sa = Bsa ^((~Bse)& Bsi ); \ + E##se = (~Bse)^( Bsi | Bso ); \ + E##si = Bsi ^( Bso & Bsu ); \ + E##so = Bso ^( Bsu | Bsa ); \ + E##su = Bsu ^( Bsa & Bse ); \ +\ + +#else /* UseBebigokimisa */ +/* --- Code for round, with prepare-theta */ +/* --- 64-bit lanes mapped to 64-bit words */ +#define thetaRhoPiChiIotaPrepareTheta(i, A, E) \ + Da = Cu^ROL64(Ce, 1); \ + De = Ca^ROL64(Ci, 1); \ + Di = Ce^ROL64(Co, 1); \ + Do = Ci^ROL64(Cu, 1); \ + Du = Co^ROL64(Ca, 1); \ +\ + A##ba ^= Da; \ + Bba = A##ba; \ + A##ge ^= De; \ + Bbe = ROL64(A##ge, 44); \ + A##ki ^= Di; \ + Bbi = ROL64(A##ki, 43); \ + A##mo ^= Do; \ + Bbo = ROL64(A##mo, 21); \ + A##su ^= Du; \ + Bbu = ROL64(A##su, 14); \ + E##ba = Bba ^((~Bbe)& Bbi ); \ + E##ba ^= KeccakF1600RoundConstants[i]; \ + Ca = E##ba; \ + E##be = Bbe ^((~Bbi)& Bbo ); \ + Ce = E##be; \ + E##bi = Bbi ^((~Bbo)& Bbu ); \ + Ci = E##bi; \ + E##bo = Bbo ^((~Bbu)& Bba ); \ + Co = E##bo; \ + E##bu = Bbu ^((~Bba)& Bbe ); \ + Cu = E##bu; \ +\ + A##bo ^= Do; \ + Bga = ROL64(A##bo, 28); \ + A##gu ^= Du; \ + Bge = ROL64(A##gu, 20); \ + A##ka ^= Da; \ + Bgi = ROL64(A##ka, 3); \ + A##me ^= De; \ + Bgo = ROL64(A##me, 45); \ + A##si ^= Di; \ + Bgu = ROL64(A##si, 61); \ + E##ga = Bga ^((~Bge)& Bgi ); \ + Ca ^= E##ga; \ + E##ge = Bge ^((~Bgi)& Bgo ); \ + Ce ^= E##ge; \ + E##gi = Bgi ^((~Bgo)& Bgu ); \ + Ci ^= E##gi; \ + E##go = Bgo ^((~Bgu)& Bga ); \ + Co ^= E##go; \ + E##gu = Bgu ^((~Bga)& Bge ); \ + Cu ^= E##gu; \ +\ + A##be ^= De; \ + Bka = ROL64(A##be, 1); \ + A##gi ^= Di; \ + Bke = ROL64(A##gi, 6); \ + A##ko ^= Do; \ + Bki = ROL64(A##ko, 25); \ + A##mu ^= Du; \ + Bko = ROL64(A##mu, 8); \ + A##sa ^= Da; \ + Bku = ROL64(A##sa, 18); \ + E##ka = Bka ^((~Bke)& Bki ); \ + Ca ^= E##ka; \ + E##ke = Bke ^((~Bki)& Bko ); \ + Ce ^= E##ke; \ + E##ki = Bki ^((~Bko)& Bku ); \ + Ci ^= E##ki; \ + E##ko = Bko ^((~Bku)& Bka ); \ + Co ^= E##ko; \ + E##ku = Bku ^((~Bka)& Bke ); \ + Cu ^= E##ku; \ +\ + A##bu ^= Du; \ + Bma = ROL64(A##bu, 27); \ + A##ga ^= Da; \ + Bme = ROL64(A##ga, 36); \ + A##ke ^= De; \ + Bmi = ROL64(A##ke, 10); \ + A##mi ^= Di; \ + Bmo = ROL64(A##mi, 15); \ + A##so ^= Do; \ + Bmu = ROL64(A##so, 56); \ + E##ma = Bma ^((~Bme)& Bmi ); \ + Ca ^= E##ma; \ + E##me = Bme ^((~Bmi)& Bmo ); \ + Ce ^= E##me; \ + E##mi = Bmi ^((~Bmo)& Bmu ); \ + Ci ^= E##mi; \ + E##mo = Bmo ^((~Bmu)& Bma ); \ + Co ^= E##mo; \ + E##mu = Bmu ^((~Bma)& Bme ); \ + Cu ^= E##mu; \ +\ + A##bi ^= Di; \ + Bsa = ROL64(A##bi, 62); \ + A##go ^= Do; \ + Bse = ROL64(A##go, 55); \ + A##ku ^= Du; \ + Bsi = ROL64(A##ku, 39); \ + A##ma ^= Da; \ + Bso = ROL64(A##ma, 41); \ + A##se ^= De; \ + Bsu = ROL64(A##se, 2); \ + E##sa = Bsa ^((~Bse)& Bsi ); \ + Ca ^= E##sa; \ + E##se = Bse ^((~Bsi)& Bso ); \ + Ce ^= E##se; \ + E##si = Bsi ^((~Bso)& Bsu ); \ + Ci ^= E##si; \ + E##so = Bso ^((~Bsu)& Bsa ); \ + Co ^= E##so; \ + E##su = Bsu ^((~Bsa)& Bse ); \ + Cu ^= E##su; \ +\ + +/* --- Code for round */ +/* --- 64-bit lanes mapped to 64-bit words */ +#define thetaRhoPiChiIota(i, A, E) \ + Da = Cu^ROL64(Ce, 1); \ + De = Ca^ROL64(Ci, 1); \ + Di = Ce^ROL64(Co, 1); \ + Do = Ci^ROL64(Cu, 1); \ + Du = Co^ROL64(Ca, 1); \ +\ + A##ba ^= Da; \ + Bba = A##ba; \ + A##ge ^= De; \ + Bbe = ROL64(A##ge, 44); \ + A##ki ^= Di; \ + Bbi = ROL64(A##ki, 43); \ + A##mo ^= Do; \ + Bbo = ROL64(A##mo, 21); \ + A##su ^= Du; \ + Bbu = ROL64(A##su, 14); \ + E##ba = Bba ^((~Bbe)& Bbi ); \ + E##ba ^= KeccakF1600RoundConstants[i]; \ + E##be = Bbe ^((~Bbi)& Bbo ); \ + E##bi = Bbi ^((~Bbo)& Bbu ); \ + E##bo = Bbo ^((~Bbu)& Bba ); \ + E##bu = Bbu ^((~Bba)& Bbe ); \ +\ + A##bo ^= Do; \ + Bga = ROL64(A##bo, 28); \ + A##gu ^= Du; \ + Bge = ROL64(A##gu, 20); \ + A##ka ^= Da; \ + Bgi = ROL64(A##ka, 3); \ + A##me ^= De; \ + Bgo = ROL64(A##me, 45); \ + A##si ^= Di; \ + Bgu = ROL64(A##si, 61); \ + E##ga = Bga ^((~Bge)& Bgi ); \ + E##ge = Bge ^((~Bgi)& Bgo ); \ + E##gi = Bgi ^((~Bgo)& Bgu ); \ + E##go = Bgo ^((~Bgu)& Bga ); \ + E##gu = Bgu ^((~Bga)& Bge ); \ +\ + A##be ^= De; \ + Bka = ROL64(A##be, 1); \ + A##gi ^= Di; \ + Bke = ROL64(A##gi, 6); \ + A##ko ^= Do; \ + Bki = ROL64(A##ko, 25); \ + A##mu ^= Du; \ + Bko = ROL64(A##mu, 8); \ + A##sa ^= Da; \ + Bku = ROL64(A##sa, 18); \ + E##ka = Bka ^((~Bke)& Bki ); \ + E##ke = Bke ^((~Bki)& Bko ); \ + E##ki = Bki ^((~Bko)& Bku ); \ + E##ko = Bko ^((~Bku)& Bka ); \ + E##ku = Bku ^((~Bka)& Bke ); \ +\ + A##bu ^= Du; \ + Bma = ROL64(A##bu, 27); \ + A##ga ^= Da; \ + Bme = ROL64(A##ga, 36); \ + A##ke ^= De; \ + Bmi = ROL64(A##ke, 10); \ + A##mi ^= Di; \ + Bmo = ROL64(A##mi, 15); \ + A##so ^= Do; \ + Bmu = ROL64(A##so, 56); \ + E##ma = Bma ^((~Bme)& Bmi ); \ + E##me = Bme ^((~Bmi)& Bmo ); \ + E##mi = Bmi ^((~Bmo)& Bmu ); \ + E##mo = Bmo ^((~Bmu)& Bma ); \ + E##mu = Bmu ^((~Bma)& Bme ); \ +\ + A##bi ^= Di; \ + Bsa = ROL64(A##bi, 62); \ + A##go ^= Do; \ + Bse = ROL64(A##go, 55); \ + A##ku ^= Du; \ + Bsi = ROL64(A##ku, 39); \ + A##ma ^= Da; \ + Bso = ROL64(A##ma, 41); \ + A##se ^= De; \ + Bsu = ROL64(A##se, 2); \ + E##sa = Bsa ^((~Bse)& Bsi ); \ + E##se = Bse ^((~Bsi)& Bso ); \ + E##si = Bsi ^((~Bso)& Bsu ); \ + E##so = Bso ^((~Bsu)& Bsa ); \ + E##su = Bsu ^((~Bsa)& Bse ); \ +\ + +#endif /* UseBebigokimisa */ + +static const UINT64 KeccakF1600RoundConstants[24] = { + 0x0000000000000001ULL, + 0x0000000000008082ULL, + 0x800000000000808aULL, + 0x8000000080008000ULL, + 0x000000000000808bULL, + 0x0000000080000001ULL, + 0x8000000080008081ULL, + 0x8000000000008009ULL, + 0x000000000000008aULL, + 0x0000000000000088ULL, + 0x0000000080008009ULL, + 0x000000008000000aULL, + 0x000000008000808bULL, + 0x800000000000008bULL, + 0x8000000000008089ULL, + 0x8000000000008003ULL, + 0x8000000000008002ULL, + 0x8000000000000080ULL, + 0x000000000000800aULL, + 0x800000008000000aULL, + 0x8000000080008081ULL, + 0x8000000000008080ULL, + 0x0000000080000001ULL, + 0x8000000080008008ULL }; + +#define copyFromStateAndXor576bits(X, state, input) \ + X##ba = state[ 0]^input[ 0]; \ + X##be = state[ 1]^input[ 1]; \ + X##bi = state[ 2]^input[ 2]; \ + X##bo = state[ 3]^input[ 3]; \ + X##bu = state[ 4]^input[ 4]; \ + X##ga = state[ 5]^input[ 5]; \ + X##ge = state[ 6]^input[ 6]; \ + X##gi = state[ 7]^input[ 7]; \ + X##go = state[ 8]^input[ 8]; \ + X##gu = state[ 9]; \ + X##ka = state[10]; \ + X##ke = state[11]; \ + X##ki = state[12]; \ + X##ko = state[13]; \ + X##ku = state[14]; \ + X##ma = state[15]; \ + X##me = state[16]; \ + X##mi = state[17]; \ + X##mo = state[18]; \ + X##mu = state[19]; \ + X##sa = state[20]; \ + X##se = state[21]; \ + X##si = state[22]; \ + X##so = state[23]; \ + X##su = state[24]; \ + +#define copyFromStateAndXor832bits(X, state, input) \ + X##ba = state[ 0]^input[ 0]; \ + X##be = state[ 1]^input[ 1]; \ + X##bi = state[ 2]^input[ 2]; \ + X##bo = state[ 3]^input[ 3]; \ + X##bu = state[ 4]^input[ 4]; \ + X##ga = state[ 5]^input[ 5]; \ + X##ge = state[ 6]^input[ 6]; \ + X##gi = state[ 7]^input[ 7]; \ + X##go = state[ 8]^input[ 8]; \ + X##gu = state[ 9]^input[ 9]; \ + X##ka = state[10]^input[10]; \ + X##ke = state[11]^input[11]; \ + X##ki = state[12]^input[12]; \ + X##ko = state[13]; \ + X##ku = state[14]; \ + X##ma = state[15]; \ + X##me = state[16]; \ + X##mi = state[17]; \ + X##mo = state[18]; \ + X##mu = state[19]; \ + X##sa = state[20]; \ + X##se = state[21]; \ + X##si = state[22]; \ + X##so = state[23]; \ + X##su = state[24]; \ + +#define copyFromStateAndXor1024bits(X, state, input) \ + X##ba = state[ 0]^input[ 0]; \ + X##be = state[ 1]^input[ 1]; \ + X##bi = state[ 2]^input[ 2]; \ + X##bo = state[ 3]^input[ 3]; \ + X##bu = state[ 4]^input[ 4]; \ + X##ga = state[ 5]^input[ 5]; \ + X##ge = state[ 6]^input[ 6]; \ + X##gi = state[ 7]^input[ 7]; \ + X##go = state[ 8]^input[ 8]; \ + X##gu = state[ 9]^input[ 9]; \ + X##ka = state[10]^input[10]; \ + X##ke = state[11]^input[11]; \ + X##ki = state[12]^input[12]; \ + X##ko = state[13]^input[13]; \ + X##ku = state[14]^input[14]; \ + X##ma = state[15]^input[15]; \ + X##me = state[16]; \ + X##mi = state[17]; \ + X##mo = state[18]; \ + X##mu = state[19]; \ + X##sa = state[20]; \ + X##se = state[21]; \ + X##si = state[22]; \ + X##so = state[23]; \ + X##su = state[24]; \ + +#define copyFromStateAndXor1088bits(X, state, input) \ + X##ba = state[ 0]^input[ 0]; \ + X##be = state[ 1]^input[ 1]; \ + X##bi = state[ 2]^input[ 2]; \ + X##bo = state[ 3]^input[ 3]; \ + X##bu = state[ 4]^input[ 4]; \ + X##ga = state[ 5]^input[ 5]; \ + X##ge = state[ 6]^input[ 6]; \ + X##gi = state[ 7]^input[ 7]; \ + X##go = state[ 8]^input[ 8]; \ + X##gu = state[ 9]^input[ 9]; \ + X##ka = state[10]^input[10]; \ + X##ke = state[11]^input[11]; \ + X##ki = state[12]^input[12]; \ + X##ko = state[13]^input[13]; \ + X##ku = state[14]^input[14]; \ + X##ma = state[15]^input[15]; \ + X##me = state[16]^input[16]; \ + X##mi = state[17]; \ + X##mo = state[18]; \ + X##mu = state[19]; \ + X##sa = state[20]; \ + X##se = state[21]; \ + X##si = state[22]; \ + X##so = state[23]; \ + X##su = state[24]; \ + +#define copyFromStateAndXor1152bits(X, state, input) \ + X##ba = state[ 0]^input[ 0]; \ + X##be = state[ 1]^input[ 1]; \ + X##bi = state[ 2]^input[ 2]; \ + X##bo = state[ 3]^input[ 3]; \ + X##bu = state[ 4]^input[ 4]; \ + X##ga = state[ 5]^input[ 5]; \ + X##ge = state[ 6]^input[ 6]; \ + X##gi = state[ 7]^input[ 7]; \ + X##go = state[ 8]^input[ 8]; \ + X##gu = state[ 9]^input[ 9]; \ + X##ka = state[10]^input[10]; \ + X##ke = state[11]^input[11]; \ + X##ki = state[12]^input[12]; \ + X##ko = state[13]^input[13]; \ + X##ku = state[14]^input[14]; \ + X##ma = state[15]^input[15]; \ + X##me = state[16]^input[16]; \ + X##mi = state[17]^input[17]; \ + X##mo = state[18]; \ + X##mu = state[19]; \ + X##sa = state[20]; \ + X##se = state[21]; \ + X##si = state[22]; \ + X##so = state[23]; \ + X##su = state[24]; \ + +#define copyFromStateAndXor1344bits(X, state, input) \ + X##ba = state[ 0]^input[ 0]; \ + X##be = state[ 1]^input[ 1]; \ + X##bi = state[ 2]^input[ 2]; \ + X##bo = state[ 3]^input[ 3]; \ + X##bu = state[ 4]^input[ 4]; \ + X##ga = state[ 5]^input[ 5]; \ + X##ge = state[ 6]^input[ 6]; \ + X##gi = state[ 7]^input[ 7]; \ + X##go = state[ 8]^input[ 8]; \ + X##gu = state[ 9]^input[ 9]; \ + X##ka = state[10]^input[10]; \ + X##ke = state[11]^input[11]; \ + X##ki = state[12]^input[12]; \ + X##ko = state[13]^input[13]; \ + X##ku = state[14]^input[14]; \ + X##ma = state[15]^input[15]; \ + X##me = state[16]^input[16]; \ + X##mi = state[17]^input[17]; \ + X##mo = state[18]^input[18]; \ + X##mu = state[19]^input[19]; \ + X##sa = state[20]^input[20]; \ + X##se = state[21]; \ + X##si = state[22]; \ + X##so = state[23]; \ + X##su = state[24]; \ + +#define copyFromState(X, state) \ + X##ba = state[ 0]; \ + X##be = state[ 1]; \ + X##bi = state[ 2]; \ + X##bo = state[ 3]; \ + X##bu = state[ 4]; \ + X##ga = state[ 5]; \ + X##ge = state[ 6]; \ + X##gi = state[ 7]; \ + X##go = state[ 8]; \ + X##gu = state[ 9]; \ + X##ka = state[10]; \ + X##ke = state[11]; \ + X##ki = state[12]; \ + X##ko = state[13]; \ + X##ku = state[14]; \ + X##ma = state[15]; \ + X##me = state[16]; \ + X##mi = state[17]; \ + X##mo = state[18]; \ + X##mu = state[19]; \ + X##sa = state[20]; \ + X##se = state[21]; \ + X##si = state[22]; \ + X##so = state[23]; \ + X##su = state[24]; \ + +#define copyToState(state, X) \ + state[ 0] = X##ba; \ + state[ 1] = X##be; \ + state[ 2] = X##bi; \ + state[ 3] = X##bo; \ + state[ 4] = X##bu; \ + state[ 5] = X##ga; \ + state[ 6] = X##ge; \ + state[ 7] = X##gi; \ + state[ 8] = X##go; \ + state[ 9] = X##gu; \ + state[10] = X##ka; \ + state[11] = X##ke; \ + state[12] = X##ki; \ + state[13] = X##ko; \ + state[14] = X##ku; \ + state[15] = X##ma; \ + state[16] = X##me; \ + state[17] = X##mi; \ + state[18] = X##mo; \ + state[19] = X##mu; \ + state[20] = X##sa; \ + state[21] = X##se; \ + state[22] = X##si; \ + state[23] = X##so; \ + state[24] = X##su; \ + +#define copyStateVariables(X, Y) \ + X##ba = Y##ba; \ + X##be = Y##be; \ + X##bi = Y##bi; \ + X##bo = Y##bo; \ + X##bu = Y##bu; \ + X##ga = Y##ga; \ + X##ge = Y##ge; \ + X##gi = Y##gi; \ + X##go = Y##go; \ + X##gu = Y##gu; \ + X##ka = Y##ka; \ + X##ke = Y##ke; \ + X##ki = Y##ki; \ + X##ko = Y##ko; \ + X##ku = Y##ku; \ + X##ma = Y##ma; \ + X##me = Y##me; \ + X##mi = Y##mi; \ + X##mo = Y##mo; \ + X##mu = Y##mu; \ + X##sa = Y##sa; \ + X##se = Y##se; \ + X##si = Y##si; \ + X##so = Y##so; \ + X##su = Y##su; \ + diff --git a/Modules/_sha3/keccak/KeccakF-1600-int-set.h b/Modules/_sha3/keccak/KeccakF-1600-int-set.h new file mode 100644 index 0000000..0ed1d80 --- /dev/null +++ b/Modules/_sha3/keccak/KeccakF-1600-int-set.h @@ -0,0 +1,6 @@ +#define ProvideFast576 +#define ProvideFast832 +#define ProvideFast1024 +#define ProvideFast1088 +#define ProvideFast1152 +#define ProvideFast1344 diff --git a/Modules/_sha3/keccak/KeccakF-1600-interface.h b/Modules/_sha3/keccak/KeccakF-1600-interface.h new file mode 100644 index 0000000..ce2710e --- /dev/null +++ b/Modules/_sha3/keccak/KeccakF-1600-interface.h @@ -0,0 +1,46 @@ +/* +The Keccak sponge function, designed by Guido Bertoni, Joan Daemen, +Michaël Peeters and Gilles Van Assche. For more information, feedback or +questions, please refer to our website: http://keccak.noekeon.org/ + +Implementation by the designers, +hereby denoted as "the implementer". + +To the extent possible under law, the implementer has waived all copyright +and related or neighboring rights to the source code in this file. +http://creativecommons.org/publicdomain/zero/1.0/ +*/ + +#ifndef _KeccakPermutationInterface_h_ +#define _KeccakPermutationInterface_h_ + +#include "KeccakF-1600-int-set.h" + +static void KeccakInitialize( void ); +static void KeccakInitializeState(unsigned char *state); +static void KeccakPermutation(unsigned char *state); +#ifdef ProvideFast576 +static void KeccakAbsorb576bits(unsigned char *state, const unsigned char *data); +#endif +#ifdef ProvideFast832 +static void KeccakAbsorb832bits(unsigned char *state, const unsigned char *data); +#endif +#ifdef ProvideFast1024 +static void KeccakAbsorb1024bits(unsigned char *state, const unsigned char *data); +#endif +#ifdef ProvideFast1088 +static void KeccakAbsorb1088bits(unsigned char *state, const unsigned char *data); +#endif +#ifdef ProvideFast1152 +static void KeccakAbsorb1152bits(unsigned char *state, const unsigned char *data); +#endif +#ifdef ProvideFast1344 +static void KeccakAbsorb1344bits(unsigned char *state, const unsigned char *data); +#endif +static void KeccakAbsorb(unsigned char *state, const unsigned char *data, unsigned int laneCount); +#ifdef ProvideFast1024 +static void KeccakExtract1024bits(const unsigned char *state, unsigned char *data); +#endif +static void KeccakExtract(const unsigned char *state, unsigned char *data, unsigned int laneCount); + +#endif diff --git a/Modules/_sha3/keccak/KeccakF-1600-opt32-settings.h b/Modules/_sha3/keccak/KeccakF-1600-opt32-settings.h new file mode 100644 index 0000000..615c782 --- /dev/null +++ b/Modules/_sha3/keccak/KeccakF-1600-opt32-settings.h @@ -0,0 +1,6 @@ +/* +#define Unrolling 2 +#define UseBebigokimisa +#define UseInterleaveTables +#define UseSchedule 3 +*/ diff --git a/Modules/_sha3/keccak/KeccakF-1600-opt32.c b/Modules/_sha3/keccak/KeccakF-1600-opt32.c new file mode 100644 index 0000000..dba6d59 --- /dev/null +++ b/Modules/_sha3/keccak/KeccakF-1600-opt32.c @@ -0,0 +1,524 @@ +/* +The Keccak sponge function, designed by Guido Bertoni, Joan Daemen, +Michaël Peeters and Gilles Van Assche. For more information, feedback or +questions, please refer to our website: http://keccak.noekeon.org/ + +Implementation by the designers, +hereby denoted as "the implementer". + +To the extent possible under law, the implementer has waived all copyright +and related or neighboring rights to the source code in this file. +http://creativecommons.org/publicdomain/zero/1.0/ +*/ + +#include <string.h> +/* #include "brg_endian.h" */ +#include "KeccakF-1600-opt32-settings.h" +#include "KeccakF-1600-interface.h" + +typedef unsigned char UINT8; +typedef unsigned short UINT16; +typedef unsigned int UINT32; +/* typedef unsigned long long int UINT64; */ + +#ifdef UseInterleaveTables +static int interleaveTablesBuilt = 0; +static UINT16 interleaveTable[65536]; +static UINT16 deinterleaveTable[65536]; + +static void buildInterleaveTables() +{ + UINT32 i, j; + UINT16 x; + + if (!interleaveTablesBuilt) { + for(i=0; i<65536; i++) { + x = 0; + for(j=0; j<16; j++) { + if (i & (1 << j)) + x |= (1 << (j/2 + 8*(j%2))); + } + interleaveTable[i] = x; + deinterleaveTable[x] = (UINT16)i; + } + interleaveTablesBuilt = 1; + } +} + +#if (PLATFORM_BYTE_ORDER == IS_LITTLE_ENDIAN) + +#define xor2bytesIntoInterleavedWords(even, odd, source, j) \ + i##j = interleaveTable[((const UINT16*)source)[j]]; \ + ((UINT8*)even)[j] ^= i##j & 0xFF; \ + ((UINT8*)odd)[j] ^= i##j >> 8; + +#define setInterleavedWordsInto2bytes(dest, even, odd, j) \ + d##j = deinterleaveTable[((even >> (j*8)) & 0xFF) ^ (((odd >> (j*8)) & 0xFF) << 8)]; \ + ((UINT16*)dest)[j] = d##j; + +#else /* (PLATFORM_BYTE_ORDER == IS_BIG_ENDIAN) */ + +#define xor2bytesIntoInterleavedWords(even, odd, source, j) \ + i##j = interleaveTable[source[2*j] ^ ((UINT16)source[2*j+1] << 8)]; \ + *even ^= (i##j & 0xFF) << (j*8); \ + *odd ^= ((i##j >> 8) & 0xFF) << (j*8); + +#define setInterleavedWordsInto2bytes(dest, even, odd, j) \ + d##j = deinterleaveTable[((even >> (j*8)) & 0xFF) ^ (((odd >> (j*8)) & 0xFF) << 8)]; \ + dest[2*j] = d##j & 0xFF; \ + dest[2*j+1] = d##j >> 8; + +#endif /* Endianness */ + +static void xor8bytesIntoInterleavedWords(UINT32 *even, UINT32 *odd, const UINT8* source) +{ + UINT16 i0, i1, i2, i3; + + xor2bytesIntoInterleavedWords(even, odd, source, 0) + xor2bytesIntoInterleavedWords(even, odd, source, 1) + xor2bytesIntoInterleavedWords(even, odd, source, 2) + xor2bytesIntoInterleavedWords(even, odd, source, 3) +} + +#define xorLanesIntoState(laneCount, state, input) \ + { \ + int i; \ + for(i=0; i<(laneCount); i++) \ + xor8bytesIntoInterleavedWords(state+i*2, state+i*2+1, input+i*8); \ + } + +static void setInterleavedWordsInto8bytes(UINT8* dest, UINT32 even, UINT32 odd) +{ + UINT16 d0, d1, d2, d3; + + setInterleavedWordsInto2bytes(dest, even, odd, 0) + setInterleavedWordsInto2bytes(dest, even, odd, 1) + setInterleavedWordsInto2bytes(dest, even, odd, 2) + setInterleavedWordsInto2bytes(dest, even, odd, 3) +} + +#define extractLanes(laneCount, state, data) \ + { \ + int i; \ + for(i=0; i<(laneCount); i++) \ + setInterleavedWordsInto8bytes(data+i*8, ((UINT32*)state)[i*2], ((UINT32*)state)[i*2+1]); \ + } + +#else /* No interleaving tables */ + +#if (PLATFORM_BYTE_ORDER == IS_LITTLE_ENDIAN) + +/* Credit: Henry S. Warren, Hacker's Delight, Addison-Wesley, 2002 */ +#define xorInterleavedLE(rateInLanes, state, input) \ + { \ + const UINT32 * pI = (const UINT32 *)input; \ + UINT32 * pS = state; \ + UINT32 t, x0, x1; \ + int i; \ + for (i = (rateInLanes)-1; i >= 0; --i) \ + { \ + x0 = *(pI++); \ + t = (x0 ^ (x0 >> 1)) & 0x22222222UL; x0 = x0 ^ t ^ (t << 1); \ + t = (x0 ^ (x0 >> 2)) & 0x0C0C0C0CUL; x0 = x0 ^ t ^ (t << 2); \ + t = (x0 ^ (x0 >> 4)) & 0x00F000F0UL; x0 = x0 ^ t ^ (t << 4); \ + t = (x0 ^ (x0 >> 8)) & 0x0000FF00UL; x0 = x0 ^ t ^ (t << 8); \ + x1 = *(pI++); \ + t = (x1 ^ (x1 >> 1)) & 0x22222222UL; x1 = x1 ^ t ^ (t << 1); \ + t = (x1 ^ (x1 >> 2)) & 0x0C0C0C0CUL; x1 = x1 ^ t ^ (t << 2); \ + t = (x1 ^ (x1 >> 4)) & 0x00F000F0UL; x1 = x1 ^ t ^ (t << 4); \ + t = (x1 ^ (x1 >> 8)) & 0x0000FF00UL; x1 = x1 ^ t ^ (t << 8); \ + *(pS++) ^= (UINT16)x0 | (x1 << 16); \ + *(pS++) ^= (x0 >> 16) | (x1 & 0xFFFF0000); \ + } \ + } + +#define xorLanesIntoState(laneCount, state, input) \ + xorInterleavedLE(laneCount, state, input) + +#else /* (PLATFORM_BYTE_ORDER == IS_BIG_ENDIAN) */ + +/* Credit: Henry S. Warren, Hacker's Delight, Addison-Wesley, 2002 */ +UINT64 toInterleaving(UINT64 x) +{ + UINT64 t; + + t = (x ^ (x >> 1)) & 0x2222222222222222ULL; x = x ^ t ^ (t << 1); + t = (x ^ (x >> 2)) & 0x0C0C0C0C0C0C0C0CULL; x = x ^ t ^ (t << 2); + t = (x ^ (x >> 4)) & 0x00F000F000F000F0ULL; x = x ^ t ^ (t << 4); + t = (x ^ (x >> 8)) & 0x0000FF000000FF00ULL; x = x ^ t ^ (t << 8); + t = (x ^ (x >> 16)) & 0x00000000FFFF0000ULL; x = x ^ t ^ (t << 16); + + return x; +} + +static void xor8bytesIntoInterleavedWords(UINT32* evenAndOdd, const UINT8* source) +{ + /* This can be optimized */ + UINT64 sourceWord = + (UINT64)source[0] + ^ (((UINT64)source[1]) << 8) + ^ (((UINT64)source[2]) << 16) + ^ (((UINT64)source[3]) << 24) + ^ (((UINT64)source[4]) << 32) + ^ (((UINT64)source[5]) << 40) + ^ (((UINT64)source[6]) << 48) + ^ (((UINT64)source[7]) << 56); + UINT64 evenAndOddWord = toInterleaving(sourceWord); + evenAndOdd[0] ^= (UINT32)evenAndOddWord; + evenAndOdd[1] ^= (UINT32)(evenAndOddWord >> 32); +} + +#define xorLanesIntoState(laneCount, state, input) \ + { \ + int i; \ + for(i=0; i<(laneCount); i++) \ + xor8bytesIntoInterleavedWords(state+i*2, input+i*8); \ + } + +#endif /* Endianness */ + +/* Credit: Henry S. Warren, Hacker's Delight, Addison-Wesley, 2002 */ +UINT64 fromInterleaving(UINT64 x) +{ + UINT64 t; + + t = (x ^ (x >> 16)) & 0x00000000FFFF0000ULL; x = x ^ t ^ (t << 16); + t = (x ^ (x >> 8)) & 0x0000FF000000FF00ULL; x = x ^ t ^ (t << 8); + t = (x ^ (x >> 4)) & 0x00F000F000F000F0ULL; x = x ^ t ^ (t << 4); + t = (x ^ (x >> 2)) & 0x0C0C0C0C0C0C0C0CULL; x = x ^ t ^ (t << 2); + t = (x ^ (x >> 1)) & 0x2222222222222222ULL; x = x ^ t ^ (t << 1); + + return x; +} + +static void setInterleavedWordsInto8bytes(UINT8* dest, UINT32* evenAndOdd) +{ +#if (PLATFORM_BYTE_ORDER == IS_LITTLE_ENDIAN) + ((UINT64*)dest)[0] = fromInterleaving(*(UINT64*)evenAndOdd); +#else /* (PLATFORM_BYTE_ORDER == IS_BIG_ENDIAN) */ + /* This can be optimized */ + UINT64 evenAndOddWord = (UINT64)evenAndOdd[0] ^ ((UINT64)evenAndOdd[1] << 32); + UINT64 destWord = fromInterleaving(evenAndOddWord); + dest[0] = destWord & 0xFF; + dest[1] = (destWord >> 8) & 0xFF; + dest[2] = (destWord >> 16) & 0xFF; + dest[3] = (destWord >> 24) & 0xFF; + dest[4] = (destWord >> 32) & 0xFF; + dest[5] = (destWord >> 40) & 0xFF; + dest[6] = (destWord >> 48) & 0xFF; + dest[7] = (destWord >> 56) & 0xFF; +#endif /* Endianness */ +} + +#define extractLanes(laneCount, state, data) \ + { \ + int i; \ + for(i=0; i<(laneCount); i++) \ + setInterleavedWordsInto8bytes(data+i*8, (UINT32*)state+i*2); \ + } + +#endif /* With or without interleaving tables */ + +#if defined(_MSC_VER) +#define ROL32(a, offset) _rotl(a, offset) +#elif (defined (__arm__) && defined(__ARMCC_VERSION)) +#define ROL32(a, offset) __ror(a, 32-(offset)) +#else +#define ROL32(a, offset) ((((UINT32)a) << (offset)) ^ (((UINT32)a) >> (32-(offset)))) +#endif + +#include "KeccakF-1600-unrolling.macros" +#include "KeccakF-1600-32.macros" + +#if (UseSchedule == 3) + +#ifdef UseBebigokimisa +#error "No lane complementing with schedule 3." +#endif + +#if (Unrolling != 2) +#error "Only unrolling 2 is supported by schedule 3." +#endif + +static void KeccakPermutationOnWords(UINT32 *state) +{ + rounds +} + +static void KeccakPermutationOnWordsAfterXoring(UINT32 *state, const UINT8 *input, unsigned int laneCount) +{ + xorLanesIntoState(laneCount, state, input) + rounds +} + +#ifdef ProvideFast576 +static void KeccakPermutationOnWordsAfterXoring576bits(UINT32 *state, const UINT8 *input) +{ + xorLanesIntoState(9, state, input) + rounds +} +#endif + +#ifdef ProvideFast832 +static void KeccakPermutationOnWordsAfterXoring832bits(UINT32 *state, const UINT8 *input) +{ + xorLanesIntoState(13, state, input) + rounds +} +#endif + +#ifdef ProvideFast1024 +static void KeccakPermutationOnWordsAfterXoring1024bits(UINT32 *state, const UINT8 *input) +{ + xorLanesIntoState(16, state, input) + rounds +} +#endif + +#ifdef ProvideFast1088 +static void KeccakPermutationOnWordsAfterXoring1088bits(UINT32 *state, const UINT8 *input) +{ + xorLanesIntoState(17, state, input) + rounds +} +#endif + +#ifdef ProvideFast1152 +static void KeccakPermutationOnWordsAfterXoring1152bits(UINT32 *state, const UINT8 *input) +{ + xorLanesIntoState(18, state, input) + rounds +} +#endif + +#ifdef ProvideFast1344 +static void KeccakPermutationOnWordsAfterXoring1344bits(UINT32 *state, const UINT8 *input) +{ + xorLanesIntoState(21, state, input) + rounds +} +#endif + +#else /* (Schedule != 3) */ + +static void KeccakPermutationOnWords(UINT32 *state) +{ + declareABCDE +#if (Unrolling != 24) + unsigned int i; +#endif + + copyFromState(A, state) + rounds +} + +static void KeccakPermutationOnWordsAfterXoring(UINT32 *state, const UINT8 *input, unsigned int laneCount) +{ + declareABCDE + unsigned int i; + + xorLanesIntoState(laneCount, state, input) + copyFromState(A, state) + rounds +} + +#ifdef ProvideFast576 +static void KeccakPermutationOnWordsAfterXoring576bits(UINT32 *state, const UINT8 *input) +{ + declareABCDE + unsigned int i; + + xorLanesIntoState(9, state, input) + copyFromState(A, state) + rounds +} +#endif + +#ifdef ProvideFast832 +static void KeccakPermutationOnWordsAfterXoring832bits(UINT32 *state, const UINT8 *input) +{ + declareABCDE + unsigned int i; + + xorLanesIntoState(13, state, input) + copyFromState(A, state) + rounds +} +#endif + +#ifdef ProvideFast1024 +static void KeccakPermutationOnWordsAfterXoring1024bits(UINT32 *state, const UINT8 *input) +{ + declareABCDE + unsigned int i; + + xorLanesIntoState(16, state, input) + copyFromState(A, state) + rounds +} +#endif + +#ifdef ProvideFast1088 +static void KeccakPermutationOnWordsAfterXoring1088bits(UINT32 *state, const UINT8 *input) +{ + declareABCDE + unsigned int i; + + xorLanesIntoState(17, state, input) + copyFromState(A, state) + rounds +} +#endif + +#ifdef ProvideFast1152 +static void KeccakPermutationOnWordsAfterXoring1152bits(UINT32 *state, const UINT8 *input) +{ + declareABCDE + unsigned int i; + + xorLanesIntoState(18, state, input) + copyFromState(A, state) + rounds +} +#endif + +#ifdef ProvideFast1344 +static void KeccakPermutationOnWordsAfterXoring1344bits(UINT32 *state, const UINT8 *input) +{ + declareABCDE + unsigned int i; + + xorLanesIntoState(21, state, input) + copyFromState(A, state) + rounds +} +#endif + +#endif + +static void KeccakInitialize() +{ +#ifdef UseInterleaveTables + buildInterleaveTables(); +#endif +} + +static void KeccakInitializeState(unsigned char *state) +{ + memset(state, 0, 200); +#ifdef UseBebigokimisa + ((UINT32*)state)[ 2] = ~(UINT32)0; + ((UINT32*)state)[ 3] = ~(UINT32)0; + ((UINT32*)state)[ 4] = ~(UINT32)0; + ((UINT32*)state)[ 5] = ~(UINT32)0; + ((UINT32*)state)[16] = ~(UINT32)0; + ((UINT32*)state)[17] = ~(UINT32)0; + ((UINT32*)state)[24] = ~(UINT32)0; + ((UINT32*)state)[25] = ~(UINT32)0; + ((UINT32*)state)[34] = ~(UINT32)0; + ((UINT32*)state)[35] = ~(UINT32)0; + ((UINT32*)state)[40] = ~(UINT32)0; + ((UINT32*)state)[41] = ~(UINT32)0; +#endif +} + +static void KeccakPermutation(unsigned char *state) +{ + /* We assume the state is always stored as interleaved 32-bit words */ + KeccakPermutationOnWords((UINT32*)state); +} + +#ifdef ProvideFast576 +static void KeccakAbsorb576bits(unsigned char *state, const unsigned char *data) +{ + KeccakPermutationOnWordsAfterXoring576bits((UINT32*)state, data); +} +#endif + +#ifdef ProvideFast832 +static void KeccakAbsorb832bits(unsigned char *state, const unsigned char *data) +{ + KeccakPermutationOnWordsAfterXoring832bits((UINT32*)state, data); +} +#endif + +#ifdef ProvideFast1024 +static void KeccakAbsorb1024bits(unsigned char *state, const unsigned char *data) +{ + KeccakPermutationOnWordsAfterXoring1024bits((UINT32*)state, data); +} +#endif + +#ifdef ProvideFast1088 +static void KeccakAbsorb1088bits(unsigned char *state, const unsigned char *data) +{ + KeccakPermutationOnWordsAfterXoring1088bits((UINT32*)state, data); +} +#endif + +#ifdef ProvideFast1152 +static void KeccakAbsorb1152bits(unsigned char *state, const unsigned char *data) +{ + KeccakPermutationOnWordsAfterXoring1152bits((UINT32*)state, data); +} +#endif + +#ifdef ProvideFast1344 +static void KeccakAbsorb1344bits(unsigned char *state, const unsigned char *data) +{ + KeccakPermutationOnWordsAfterXoring1344bits((UINT32*)state, data); +} +#endif + +static void KeccakAbsorb(unsigned char *state, const unsigned char *data, unsigned int laneCount) +{ + KeccakPermutationOnWordsAfterXoring((UINT32*)state, data, laneCount); +} + +#ifdef ProvideFast1024 +static void KeccakExtract1024bits(const unsigned char *state, unsigned char *data) +{ + extractLanes(16, state, data) +#ifdef UseBebigokimisa + ((UINT32*)data)[ 2] = ~((UINT32*)data)[ 2]; + ((UINT32*)data)[ 3] = ~((UINT32*)data)[ 3]; + ((UINT32*)data)[ 4] = ~((UINT32*)data)[ 4]; + ((UINT32*)data)[ 5] = ~((UINT32*)data)[ 5]; + ((UINT32*)data)[16] = ~((UINT32*)data)[16]; + ((UINT32*)data)[17] = ~((UINT32*)data)[17]; + ((UINT32*)data)[24] = ~((UINT32*)data)[24]; + ((UINT32*)data)[25] = ~((UINT32*)data)[25]; +#endif +} +#endif + +static void KeccakExtract(const unsigned char *state, unsigned char *data, unsigned int laneCount) +{ + extractLanes(laneCount, state, data) +#ifdef UseBebigokimisa + if (laneCount > 1) { + ((UINT32*)data)[ 2] = ~((UINT32*)data)[ 2]; + ((UINT32*)data)[ 3] = ~((UINT32*)data)[ 3]; + if (laneCount > 2) { + ((UINT32*)data)[ 4] = ~((UINT32*)data)[ 4]; + ((UINT32*)data)[ 5] = ~((UINT32*)data)[ 5]; + if (laneCount > 8) { + ((UINT32*)data)[16] = ~((UINT32*)data)[16]; + ((UINT32*)data)[17] = ~((UINT32*)data)[17]; + if (laneCount > 12) { + ((UINT32*)data)[24] = ~((UINT32*)data)[24]; + ((UINT32*)data)[25] = ~((UINT32*)data)[25]; + if (laneCount > 17) { + ((UINT32*)data)[34] = ~((UINT32*)data)[34]; + ((UINT32*)data)[35] = ~((UINT32*)data)[35]; + if (laneCount > 20) { + ((UINT32*)data)[40] = ~((UINT32*)data)[40]; + ((UINT32*)data)[41] = ~((UINT32*)data)[41]; + } + } + } + } + } + } +#endif +} diff --git a/Modules/_sha3/keccak/KeccakF-1600-opt64-settings.h b/Modules/_sha3/keccak/KeccakF-1600-opt64-settings.h new file mode 100644 index 0000000..df83e63 --- /dev/null +++ b/Modules/_sha3/keccak/KeccakF-1600-opt64-settings.h @@ -0,0 +1,9 @@ +/* +#define Unrolling 24 +#define UseBebigokimisa +#define UseSSE +#define UseOnlySIMD64 +#define UseMMX +#define UseSHLD +#define UseXOP +*/ diff --git a/Modules/_sha3/keccak/KeccakF-1600-opt64.c b/Modules/_sha3/keccak/KeccakF-1600-opt64.c new file mode 100644 index 0000000..f19b18b --- /dev/null +++ b/Modules/_sha3/keccak/KeccakF-1600-opt64.c @@ -0,0 +1,510 @@ +/* +The Keccak sponge function, designed by Guido Bertoni, Joan Daemen, +Michaël Peeters and Gilles Van Assche. For more information, feedback or +questions, please refer to our website: http://keccak.noekeon.org/ + +Implementation by the designers, +hereby denoted as "the implementer". + +To the extent possible under law, the implementer has waived all copyright +and related or neighboring rights to the source code in this file. +http://creativecommons.org/publicdomain/zero/1.0/ +*/ + +#include <string.h> +/* #include "brg_endian.h" */ +#include "KeccakF-1600-opt64-settings.h" +#include "KeccakF-1600-interface.h" + +typedef unsigned char UINT8; +/* typedef unsigned long long int UINT64; */ + +#if defined(__GNUC__) +#define ALIGN __attribute__ ((aligned(32))) +#elif defined(_MSC_VER) +#define ALIGN __declspec(align(32)) +#else +#define ALIGN +#endif + +#if defined(UseSSE) + #include <x86intrin.h> + typedef __m128i V64; + typedef __m128i V128; + typedef union { + V128 v128; + UINT64 v64[2]; + } V6464; + + #define ANDnu64(a, b) _mm_andnot_si128(a, b) + #define LOAD64(a) _mm_loadl_epi64((const V64 *)&(a)) + #define CONST64(a) _mm_loadl_epi64((const V64 *)&(a)) + #define ROL64(a, o) _mm_or_si128(_mm_slli_epi64(a, o), _mm_srli_epi64(a, 64-(o))) + #define STORE64(a, b) _mm_storel_epi64((V64 *)&(a), b) + #define XOR64(a, b) _mm_xor_si128(a, b) + #define XOReq64(a, b) a = _mm_xor_si128(a, b) + #define SHUFFLEBYTES128(a, b) _mm_shuffle_epi8(a, b) + + #define ANDnu128(a, b) _mm_andnot_si128(a, b) + #define LOAD6464(a, b) _mm_set_epi64((__m64)(a), (__m64)(b)) + #define CONST128(a) _mm_load_si128((const V128 *)&(a)) + #define LOAD128(a) _mm_load_si128((const V128 *)&(a)) + #define LOAD128u(a) _mm_loadu_si128((const V128 *)&(a)) + #define ROL64in128(a, o) _mm_or_si128(_mm_slli_epi64(a, o), _mm_srli_epi64(a, 64-(o))) + #define STORE128(a, b) _mm_store_si128((V128 *)&(a), b) + #define XOR128(a, b) _mm_xor_si128(a, b) + #define XOReq128(a, b) a = _mm_xor_si128(a, b) + #define GET64LOLO(a, b) _mm_unpacklo_epi64(a, b) + #define GET64HIHI(a, b) _mm_unpackhi_epi64(a, b) + #define COPY64HI2LO(a) _mm_shuffle_epi32(a, 0xEE) + #define COPY64LO2HI(a) _mm_shuffle_epi32(a, 0x44) + #define ZERO128() _mm_setzero_si128() + + #ifdef UseOnlySIMD64 + #include "KeccakF-1600-simd64.macros" + #else +ALIGN const UINT64 rho8_56[2] = {0x0605040302010007, 0x080F0E0D0C0B0A09}; + #include "KeccakF-1600-simd128.macros" + #endif + + #ifdef UseBebigokimisa + #error "UseBebigokimisa cannot be used in combination with UseSSE" + #endif +#elif defined(UseXOP) + #include <x86intrin.h> + typedef __m128i V64; + typedef __m128i V128; + + #define LOAD64(a) _mm_loadl_epi64((const V64 *)&(a)) + #define CONST64(a) _mm_loadl_epi64((const V64 *)&(a)) + #define STORE64(a, b) _mm_storel_epi64((V64 *)&(a), b) + #define XOR64(a, b) _mm_xor_si128(a, b) + #define XOReq64(a, b) a = _mm_xor_si128(a, b) + + #define ANDnu128(a, b) _mm_andnot_si128(a, b) + #define LOAD6464(a, b) _mm_set_epi64((__m64)(a), (__m64)(b)) + #define CONST128(a) _mm_load_si128((const V128 *)&(a)) + #define LOAD128(a) _mm_load_si128((const V128 *)&(a)) + #define LOAD128u(a) _mm_loadu_si128((const V128 *)&(a)) + #define STORE128(a, b) _mm_store_si128((V128 *)&(a), b) + #define XOR128(a, b) _mm_xor_si128(a, b) + #define XOReq128(a, b) a = _mm_xor_si128(a, b) + #define ZERO128() _mm_setzero_si128() + + #define SWAP64(a) _mm_shuffle_epi32(a, 0x4E) + #define GET64LOLO(a, b) _mm_unpacklo_epi64(a, b) + #define GET64HIHI(a, b) _mm_unpackhi_epi64(a, b) + #define GET64LOHI(a, b) ((__m128i)_mm_blend_pd((__m128d)a, (__m128d)b, 2)) + #define GET64HILO(a, b) SWAP64(GET64LOHI(b, a)) + #define COPY64HI2LO(a) _mm_shuffle_epi32(a, 0xEE) + #define COPY64LO2HI(a) _mm_shuffle_epi32(a, 0x44) + + #define ROL6464same(a, o) _mm_roti_epi64(a, o) + #define ROL6464(a, r1, r2) _mm_rot_epi64(a, CONST128( rot_##r1##_##r2 )) +ALIGN const UINT64 rot_0_20[2] = { 0, 20}; +ALIGN const UINT64 rot_44_3[2] = {44, 3}; +ALIGN const UINT64 rot_43_45[2] = {43, 45}; +ALIGN const UINT64 rot_21_61[2] = {21, 61}; +ALIGN const UINT64 rot_14_28[2] = {14, 28}; +ALIGN const UINT64 rot_1_36[2] = { 1, 36}; +ALIGN const UINT64 rot_6_10[2] = { 6, 10}; +ALIGN const UINT64 rot_25_15[2] = {25, 15}; +ALIGN const UINT64 rot_8_56[2] = { 8, 56}; +ALIGN const UINT64 rot_18_27[2] = {18, 27}; +ALIGN const UINT64 rot_62_55[2] = {62, 55}; +ALIGN const UINT64 rot_39_41[2] = {39, 41}; + +#if defined(UseSimulatedXOP) + /* For debugging purposes, when XOP is not available */ + #undef ROL6464 + #undef ROL6464same + #define ROL6464same(a, o) _mm_or_si128(_mm_slli_epi64(a, o), _mm_srli_epi64(a, 64-(o))) + V128 ROL6464(V128 a, int r0, int r1) + { + V128 a0 = ROL64(a, r0); + V128 a1 = COPY64HI2LO(ROL64(a, r1)); + return GET64LOLO(a0, a1); + } +#endif + + #include "KeccakF-1600-xop.macros" + + #ifdef UseBebigokimisa + #error "UseBebigokimisa cannot be used in combination with UseXOP" + #endif +#elif defined(UseMMX) + #include <mmintrin.h> + typedef __m64 V64; + #define ANDnu64(a, b) _mm_andnot_si64(a, b) + + #if (defined(_MSC_VER) || defined (__INTEL_COMPILER)) + #define LOAD64(a) *(V64*)&(a) + #define CONST64(a) *(V64*)&(a) + #define STORE64(a, b) *(V64*)&(a) = b + #else + #define LOAD64(a) (V64)a + #define CONST64(a) (V64)a + #define STORE64(a, b) a = (UINT64)b + #endif + #define ROL64(a, o) _mm_or_si64(_mm_slli_si64(a, o), _mm_srli_si64(a, 64-(o))) + #define XOR64(a, b) _mm_xor_si64(a, b) + #define XOReq64(a, b) a = _mm_xor_si64(a, b) + + #include "KeccakF-1600-simd64.macros" + + #ifdef UseBebigokimisa + #error "UseBebigokimisa cannot be used in combination with UseMMX" + #endif +#else + #if defined(_MSC_VER) + #define ROL64(a, offset) _rotl64(a, offset) + #elif defined(UseSHLD) + #define ROL64(x,N) ({ \ + register UINT64 __out; \ + register UINT64 __in = x; \ + __asm__ ("shld %2,%0,%0" : "=r"(__out) : "0"(__in), "i"(N)); \ + __out; \ + }) + #else + #define ROL64(a, offset) ((((UINT64)a) << offset) ^ (((UINT64)a) >> (64-offset))) + #endif + + #include "KeccakF-1600-64.macros" +#endif + +#include "KeccakF-1600-unrolling.macros" + +static void KeccakPermutationOnWords(UINT64 *state) +{ + declareABCDE +#if (Unrolling != 24) + unsigned int i; +#endif + + copyFromState(A, state) + rounds +#if defined(UseMMX) + _mm_empty(); +#endif +} + +static void KeccakPermutationOnWordsAfterXoring(UINT64 *state, const UINT64 *input, unsigned int laneCount) +{ + declareABCDE +#if (Unrolling != 24) + unsigned int i; +#endif + unsigned int j; + + for(j=0; j<laneCount; j++) + state[j] ^= input[j]; + copyFromState(A, state) + rounds +#if defined(UseMMX) + _mm_empty(); +#endif +} + +#ifdef ProvideFast576 +static void KeccakPermutationOnWordsAfterXoring576bits(UINT64 *state, const UINT64 *input) +{ + declareABCDE +#if (Unrolling != 24) + unsigned int i; +#endif + + copyFromStateAndXor576bits(A, state, input) + rounds +#if defined(UseMMX) + _mm_empty(); +#endif +} +#endif + +#ifdef ProvideFast832 +static void KeccakPermutationOnWordsAfterXoring832bits(UINT64 *state, const UINT64 *input) +{ + declareABCDE +#if (Unrolling != 24) + unsigned int i; +#endif + + copyFromStateAndXor832bits(A, state, input) + rounds +#if defined(UseMMX) + _mm_empty(); +#endif +} +#endif + +#ifdef ProvideFast1024 +static void KeccakPermutationOnWordsAfterXoring1024bits(UINT64 *state, const UINT64 *input) +{ + declareABCDE +#if (Unrolling != 24) + unsigned int i; +#endif + + copyFromStateAndXor1024bits(A, state, input) + rounds +#if defined(UseMMX) + _mm_empty(); +#endif +} +#endif + +#ifdef ProvideFast1088 +static void KeccakPermutationOnWordsAfterXoring1088bits(UINT64 *state, const UINT64 *input) +{ + declareABCDE +#if (Unrolling != 24) + unsigned int i; +#endif + + copyFromStateAndXor1088bits(A, state, input) + rounds +#if defined(UseMMX) + _mm_empty(); +#endif +} +#endif + +#ifdef ProvideFast1152 +static void KeccakPermutationOnWordsAfterXoring1152bits(UINT64 *state, const UINT64 *input) +{ + declareABCDE +#if (Unrolling != 24) + unsigned int i; +#endif + + copyFromStateAndXor1152bits(A, state, input) + rounds +#if defined(UseMMX) + _mm_empty(); +#endif +} +#endif + +#ifdef ProvideFast1344 +static void KeccakPermutationOnWordsAfterXoring1344bits(UINT64 *state, const UINT64 *input) +{ + declareABCDE +#if (Unrolling != 24) + unsigned int i; +#endif + + copyFromStateAndXor1344bits(A, state, input) + rounds +#if defined(UseMMX) + _mm_empty(); +#endif +} +#endif + +static void KeccakInitialize() +{ +} + +static void KeccakInitializeState(unsigned char *state) +{ + memset(state, 0, 200); +#ifdef UseBebigokimisa + ((UINT64*)state)[ 1] = ~(UINT64)0; + ((UINT64*)state)[ 2] = ~(UINT64)0; + ((UINT64*)state)[ 8] = ~(UINT64)0; + ((UINT64*)state)[12] = ~(UINT64)0; + ((UINT64*)state)[17] = ~(UINT64)0; + ((UINT64*)state)[20] = ~(UINT64)0; +#endif +} + +static void KeccakPermutation(unsigned char *state) +{ + /* We assume the state is always stored as words */ + KeccakPermutationOnWords((UINT64*)state); +} + +#if (PLATFORM_BYTE_ORDER == IS_BIG_ENDIAN) +static void fromBytesToWord(UINT64 *word, const UINT8 *bytes) +{ + unsigned int i; + + *word = 0; + for(i=0; i<(64/8); i++) + *word |= (UINT64)(bytes[i]) << (8*i); +} +#endif + + +#ifdef ProvideFast576 +static void KeccakAbsorb576bits(unsigned char *state, const unsigned char *data) +{ +#if (PLATFORM_BYTE_ORDER == IS_LITTLE_ENDIAN) + KeccakPermutationOnWordsAfterXoring576bits((UINT64*)state, (const UINT64*)data); +#else + UINT64 dataAsWords[9]; + unsigned int i; + + for(i=0; i<9; i++) + fromBytesToWord(dataAsWords+i, data+(i*8)); + KeccakPermutationOnWordsAfterXoring576bits((UINT64*)state, dataAsWords); +#endif +} +#endif + +#ifdef ProvideFast832 +static void KeccakAbsorb832bits(unsigned char *state, const unsigned char *data) +{ +#if (PLATFORM_BYTE_ORDER == IS_LITTLE_ENDIAN) + KeccakPermutationOnWordsAfterXoring832bits((UINT64*)state, (const UINT64*)data); +#else + UINT64 dataAsWords[13]; + unsigned int i; + + for(i=0; i<13; i++) + fromBytesToWord(dataAsWords+i, data+(i*8)); + KeccakPermutationOnWordsAfterXoring832bits((UINT64*)state, dataAsWords); +#endif +} +#endif + +#ifdef ProvideFast1024 +static void KeccakAbsorb1024bits(unsigned char *state, const unsigned char *data) +{ +#if (PLATFORM_BYTE_ORDER == IS_LITTLE_ENDIAN) + KeccakPermutationOnWordsAfterXoring1024bits((UINT64*)state, (const UINT64*)data); +#else + UINT64 dataAsWords[16]; + unsigned int i; + + for(i=0; i<16; i++) + fromBytesToWord(dataAsWords+i, data+(i*8)); + KeccakPermutationOnWordsAfterXoring1024bits((UINT64*)state, dataAsWords); +#endif +} +#endif + +#ifdef ProvideFast1088 +static void KeccakAbsorb1088bits(unsigned char *state, const unsigned char *data) +{ +#if (PLATFORM_BYTE_ORDER == IS_LITTLE_ENDIAN) + KeccakPermutationOnWordsAfterXoring1088bits((UINT64*)state, (const UINT64*)data); +#else + UINT64 dataAsWords[17]; + unsigned int i; + + for(i=0; i<17; i++) + fromBytesToWord(dataAsWords+i, data+(i*8)); + KeccakPermutationOnWordsAfterXoring1088bits((UINT64*)state, dataAsWords); +#endif +} +#endif + +#ifdef ProvideFast1152 +static void KeccakAbsorb1152bits(unsigned char *state, const unsigned char *data) +{ +#if (PLATFORM_BYTE_ORDER == IS_LITTLE_ENDIAN) + KeccakPermutationOnWordsAfterXoring1152bits((UINT64*)state, (const UINT64*)data); +#else + UINT64 dataAsWords[18]; + unsigned int i; + + for(i=0; i<18; i++) + fromBytesToWord(dataAsWords+i, data+(i*8)); + KeccakPermutationOnWordsAfterXoring1152bits((UINT64*)state, dataAsWords); +#endif +} +#endif + +#ifdef ProvideFast1344 +static void KeccakAbsorb1344bits(unsigned char *state, const unsigned char *data) +{ +#if (PLATFORM_BYTE_ORDER == IS_LITTLE_ENDIAN) + KeccakPermutationOnWordsAfterXoring1344bits((UINT64*)state, (const UINT64*)data); +#else + UINT64 dataAsWords[21]; + unsigned int i; + + for(i=0; i<21; i++) + fromBytesToWord(dataAsWords+i, data+(i*8)); + KeccakPermutationOnWordsAfterXoring1344bits((UINT64*)state, dataAsWords); +#endif +} +#endif + +static void KeccakAbsorb(unsigned char *state, const unsigned char *data, unsigned int laneCount) +{ +#if (PLATFORM_BYTE_ORDER == IS_LITTLE_ENDIAN) + KeccakPermutationOnWordsAfterXoring((UINT64*)state, (const UINT64*)data, laneCount); +#else + UINT64 dataAsWords[25]; + unsigned int i; + + for(i=0; i<laneCount; i++) + fromBytesToWord(dataAsWords+i, data+(i*8)); + KeccakPermutationOnWordsAfterXoring((UINT64*)state, dataAsWords, laneCount); +#endif +} + +#if (PLATFORM_BYTE_ORDER == IS_BIG_ENDIAN) +static void fromWordToBytes(UINT8 *bytes, const UINT64 word) +{ + unsigned int i; + + for(i=0; i<(64/8); i++) + bytes[i] = (word >> (8*i)) & 0xFF; +} +#endif + + +#ifdef ProvideFast1024 +static void KeccakExtract1024bits(const unsigned char *state, unsigned char *data) +{ +#if (PLATFORM_BYTE_ORDER == IS_LITTLE_ENDIAN) + memcpy(data, state, 128); +#else + unsigned int i; + + for(i=0; i<16; i++) + fromWordToBytes(data+(i*8), ((const UINT64*)state)[i]); +#endif +#ifdef UseBebigokimisa + ((UINT64*)data)[ 1] = ~((UINT64*)data)[ 1]; + ((UINT64*)data)[ 2] = ~((UINT64*)data)[ 2]; + ((UINT64*)data)[ 8] = ~((UINT64*)data)[ 8]; + ((UINT64*)data)[12] = ~((UINT64*)data)[12]; +#endif +} +#endif + +static void KeccakExtract(const unsigned char *state, unsigned char *data, unsigned int laneCount) +{ +#if (PLATFORM_BYTE_ORDER == IS_LITTLE_ENDIAN) + memcpy(data, state, laneCount*8); +#else + unsigned int i; + + for(i=0; i<laneCount; i++) + fromWordToBytes(data+(i*8), ((const UINT64*)state)[i]); +#endif +#ifdef UseBebigokimisa + if (laneCount > 1) { + ((UINT64*)data)[ 1] = ~((UINT64*)data)[ 1]; + if (laneCount > 2) { + ((UINT64*)data)[ 2] = ~((UINT64*)data)[ 2]; + if (laneCount > 8) { + ((UINT64*)data)[ 8] = ~((UINT64*)data)[ 8]; + if (laneCount > 12) { + ((UINT64*)data)[12] = ~((UINT64*)data)[12]; + if (laneCount > 17) { + ((UINT64*)data)[17] = ~((UINT64*)data)[17]; + if (laneCount > 20) { + ((UINT64*)data)[20] = ~((UINT64*)data)[20]; + } + } + } + } + } + } +#endif +} diff --git a/Modules/_sha3/keccak/KeccakF-1600-simd128.macros b/Modules/_sha3/keccak/KeccakF-1600-simd128.macros new file mode 100644 index 0000000..98e47f5 --- /dev/null +++ b/Modules/_sha3/keccak/KeccakF-1600-simd128.macros @@ -0,0 +1,651 @@ +/* +The Keccak sponge function, designed by Guido Bertoni, Joan Daemen, +Michaël Peeters and Gilles Van Assche. For more information, feedback or +questions, please refer to our website: http://keccak.noekeon.org/ + +Implementation by the designers, +hereby denoted as "the implementer". + +To the extent possible under law, the implementer has waived all copyright +and related or neighboring rights to the source code in this file. +http://creativecommons.org/publicdomain/zero/1.0/ +*/ + +#define declareABCDE \ + V6464 Abage, Abegi, Abigo, Abogu, Abuga; \ + V6464 Akame, Akemi, Akimo, Akomu, Akuma; \ + V6464 Abae, Abio, Agae, Agio, Akae, Akio, Amae, Amio, Asae, Asio; \ + V64 Aba, Abe, Abi, Abo, Abu; \ + V64 Aga, Age, Agi, Ago, Agu; \ + V64 Aka, Ake, Aki, Ako, Aku; \ + V64 Ama, Ame, Ami, Amo, Amu; \ + V64 Asa, Ase, Asi, Aso, Asu; \ + V128 Bbage, Bbegi, Bbigo, Bbogu, Bbuga; \ + V128 Bkame, Bkemi, Bkimo, Bkomu, Bkuma; \ + V64 Bba, Bbe, Bbi, Bbo, Bbu; \ + V64 Bga, Bge, Bgi, Bgo, Bgu; \ + V64 Bka, Bke, Bki, Bko, Bku; \ + V64 Bma, Bme, Bmi, Bmo, Bmu; \ + V64 Bsa, Bse, Bsi, Bso, Bsu; \ + V128 Cae, Cei, Cio, Cou, Cua, Dei, Dou; \ + V64 Ca, Ce, Ci, Co, Cu; \ + V64 Da, De, Di, Do, Du; \ + V6464 Ebage, Ebegi, Ebigo, Ebogu, Ebuga; \ + V6464 Ekame, Ekemi, Ekimo, Ekomu, Ekuma; \ + V64 Eba, Ebe, Ebi, Ebo, Ebu; \ + V64 Ega, Ege, Egi, Ego, Egu; \ + V64 Eka, Eke, Eki, Eko, Eku; \ + V64 Ema, Eme, Emi, Emo, Emu; \ + V64 Esa, Ese, Esi, Eso, Esu; \ + V128 Zero; + +#define prepareTheta + +#define computeD \ + Cua = GET64LOLO(Cu, Cae); \ + Dei = XOR128(Cae, ROL64in128(Cio, 1)); \ + Dou = XOR128(Cio, ROL64in128(Cua, 1)); \ + Da = XOR64(Cu, ROL64in128(COPY64HI2LO(Cae), 1)); \ + De = Dei; \ + Di = COPY64HI2LO(Dei); \ + Do = Dou; \ + Du = COPY64HI2LO(Dou); + +/* --- Theta Rho Pi Chi Iota Prepare-theta */ +/* --- 64-bit lanes mapped to 64-bit and 128-bit words */ +#define thetaRhoPiChiIotaPrepareTheta(i, A, E) \ + computeD \ + \ + A##ba = LOAD64(A##bage.v64[0]); \ + XOReq64(A##ba, Da); \ + Bba = A##ba; \ + XOReq64(A##gu, Du); \ + Bge = ROL64(A##gu, 20); \ + Bbage = GET64LOLO(Bba, Bge); \ + A##ge = LOAD64(A##bage.v64[1]); \ + XOReq64(A##ge, De); \ + Bbe = ROL64(A##ge, 44); \ + A##ka = LOAD64(A##kame.v64[0]); \ + XOReq64(A##ka, Da); \ + Bgi = ROL64(A##ka, 3); \ + Bbegi = GET64LOLO(Bbe, Bgi); \ + XOReq64(A##ki, Di); \ + Bbi = ROL64(A##ki, 43); \ + A##me = LOAD64(A##kame.v64[1]); \ + XOReq64(A##me, De); \ + Bgo = ROL64(A##me, 45); \ + Bbigo = GET64LOLO(Bbi, Bgo); \ + E##bage.v128 = XOR128(Bbage, ANDnu128(Bbegi, Bbigo)); \ + XOReq128(E##bage.v128, CONST64(KeccakF1600RoundConstants[i])); \ + Cae = E##bage.v128; \ + XOReq64(A##mo, Do); \ + Bbo = ROL64(A##mo, 21); \ + XOReq64(A##si, Di); \ + Bgu = ROL64(A##si, 61); \ + Bbogu = GET64LOLO(Bbo, Bgu); \ + E##begi.v128 = XOR128(Bbegi, ANDnu128(Bbigo, Bbogu)); \ + Cei = E##begi.v128; \ + XOReq64(A##su, Du); \ + Bbu = ROL64(A##su, 14); \ + XOReq64(A##bo, Do); \ + Bga = ROL64(A##bo, 28); \ + Bbuga = GET64LOLO(Bbu, Bga); \ + E##bigo.v128 = XOR128(Bbigo, ANDnu128(Bbogu, Bbuga)); \ + E##bi = E##bigo.v128; \ + E##go = GET64HIHI(E##bigo.v128, E##bigo.v128); \ + Cio = E##bigo.v128; \ + E##bogu.v128 = XOR128(Bbogu, ANDnu128(Bbuga, Bbage)); \ + E##bo = E##bogu.v128; \ + E##gu = GET64HIHI(E##bogu.v128, E##bogu.v128); \ + Cou = E##bogu.v128; \ + E##buga.v128 = XOR128(Bbuga, ANDnu128(Bbage, Bbegi)); \ + E##bu = E##buga.v128; \ + E##ga = GET64HIHI(E##buga.v128, E##buga.v128); \ + Cua = E##buga.v128; \ +\ + A##be = LOAD64(A##begi.v64[0]); \ + XOReq64(A##be, De); \ + Bka = ROL64(A##be, 1); \ + XOReq64(A##ga, Da); \ + Bme = ROL64(A##ga, 36); \ + Bkame = GET64LOLO(Bka, Bme); \ + A##gi = LOAD64(A##begi.v64[1]); \ + XOReq64(A##gi, Di); \ + Bke = ROL64(A##gi, 6); \ + A##ke = LOAD64(A##kemi.v64[0]); \ + XOReq64(A##ke, De); \ + Bmi = ROL64(A##ke, 10); \ + Bkemi = GET64LOLO(Bke, Bmi); \ + XOReq64(A##ko, Do); \ + Bki = ROL64(A##ko, 25); \ + A##mi = LOAD64(A##kemi.v64[1]); \ + XOReq64(A##mi, Di); \ + Bmo = ROL64(A##mi, 15); \ + Bkimo = GET64LOLO(Bki, Bmo); \ + E##kame.v128 = XOR128(Bkame, ANDnu128(Bkemi, Bkimo)); \ + XOReq128(Cae, E##kame.v128); \ + Bkomu = GET64LOLO(XOR64(A##mu, Du), XOR64(A##so, Do)); \ + Bkomu = SHUFFLEBYTES128(Bkomu, CONST128(rho8_56)); \ + E##kemi.v128 = XOR128(Bkemi, ANDnu128(Bkimo, Bkomu)); \ + XOReq128(Cei, E##kemi.v128); \ + XOReq64(A##sa, Da); \ + Bku = ROL64(A##sa, 18); \ + XOReq64(A##bu, Du); \ + Bma = ROL64(A##bu, 27); \ + Bkuma = GET64LOLO(Bku, Bma); \ + E##kimo.v128 = XOR128(Bkimo, ANDnu128(Bkomu, Bkuma)); \ + E##ki = E##kimo.v128; \ + E##mo = GET64HIHI(E##kimo.v128, E##kimo.v128); \ + XOReq128(Cio, E##kimo.v128); \ + E##komu.v128 = XOR128(Bkomu, ANDnu128(Bkuma, Bkame)); \ + E##ko = E##komu.v128; \ + E##mu = GET64HIHI(E##komu.v128, E##komu.v128); \ + XOReq128(Cou, E##komu.v128); \ + E##kuma.v128 = XOR128(Bkuma, ANDnu128(Bkame, Bkemi)); \ + E##ku = E##kuma.v128; \ + E##ma = GET64HIHI(E##kuma.v128, E##kuma.v128); \ + XOReq128(Cua, E##kuma.v128); \ +\ + XOReq64(A##bi, Di); \ + Bsa = ROL64(A##bi, 62); \ + XOReq64(A##go, Do); \ + Bse = ROL64(A##go, 55); \ + XOReq64(A##ku, Du); \ + Bsi = ROL64(A##ku, 39); \ + E##sa = XOR64(Bsa, ANDnu64(Bse, Bsi)); \ + Ca = E##sa; \ + XOReq64(A##ma, Da); \ + Bso = ROL64(A##ma, 41); \ + E##se = XOR64(Bse, ANDnu64(Bsi, Bso)); \ + Ce = E##se; \ + XOReq128(Cae, GET64LOLO(Ca, Ce)); \ + XOReq64(A##se, De); \ + Bsu = ROL64(A##se, 2); \ + E##si = XOR64(Bsi, ANDnu64(Bso, Bsu)); \ + Ci = E##si; \ + E##so = XOR64(Bso, ANDnu64(Bsu, Bsa)); \ + Co = E##so; \ + XOReq128(Cio, GET64LOLO(Ci, Co)); \ + E##su = XOR64(Bsu, ANDnu64(Bsa, Bse)); \ + Cu = E##su; \ +\ + Zero = ZERO128(); \ + XOReq128(Cae, GET64HIHI(Cua, Zero)); \ + XOReq128(Cae, GET64LOLO(Zero, Cei)); \ + XOReq128(Cio, GET64HIHI(Cei, Zero)); \ + XOReq128(Cio, GET64LOLO(Zero, Cou)); \ + XOReq128(Cua, GET64HIHI(Cou, Zero)); \ + XOReq64(Cu, Cua); \ + +/* --- Theta Rho Pi Chi Iota */ +/* --- 64-bit lanes mapped to 64-bit and 128-bit words */ +#define thetaRhoPiChiIota(i, A, E) thetaRhoPiChiIotaPrepareTheta(i, A, E) + +static const UINT64 KeccakF1600RoundConstants[24] = { + 0x0000000000000001ULL, + 0x0000000000008082ULL, + 0x800000000000808aULL, + 0x8000000080008000ULL, + 0x000000000000808bULL, + 0x0000000080000001ULL, + 0x8000000080008081ULL, + 0x8000000000008009ULL, + 0x000000000000008aULL, + 0x0000000000000088ULL, + 0x0000000080008009ULL, + 0x000000008000000aULL, + 0x000000008000808bULL, + 0x800000000000008bULL, + 0x8000000000008089ULL, + 0x8000000000008003ULL, + 0x8000000000008002ULL, + 0x8000000000000080ULL, + 0x000000000000800aULL, + 0x800000008000000aULL, + 0x8000000080008081ULL, + 0x8000000000008080ULL, + 0x0000000080000001ULL, + 0x8000000080008008ULL }; + +#define copyFromStateAndXor576bits(X, state, input) \ + X##bae.v128 = XOR128(LOAD128(state[ 0]), LOAD128u(input[ 0])); \ + X##ba = X##bae.v128; \ + X##be = GET64HIHI(X##bae.v128, X##bae.v128); \ + Cae = X##bae.v128; \ + X##bio.v128 = XOR128(LOAD128(state[ 2]), LOAD128u(input[ 2])); \ + X##bi = X##bio.v128; \ + X##bo = GET64HIHI(X##bio.v128, X##bio.v128); \ + Cio = X##bio.v128; \ + X##bu = XOR64(LOAD64(state[ 4]), LOAD64(input[ 4])); \ + Cu = X##bu; \ + X##gae.v128 = XOR128(LOAD128u(state[ 5]), LOAD128u(input[ 5])); \ + X##ga = X##gae.v128; \ + X##ge = GET64HIHI(X##gae.v128, X##gae.v128); \ + X##bage.v128 = GET64LOLO(X##ba, X##ge); \ + XOReq128(Cae, X##gae.v128); \ + X##gio.v128 = XOR128(LOAD128u(state[ 7]), LOAD128u(input[ 7])); \ + X##gi = X##gio.v128; \ + X##begi.v128 = GET64LOLO(X##be, X##gi); \ + X##go = GET64HIHI(X##gio.v128, X##gio.v128); \ + XOReq128(Cio, X##gio.v128); \ + X##gu = LOAD64(state[ 9]); \ + XOReq64(Cu, X##gu); \ + X##kae.v128 = LOAD128(state[10]); \ + X##ka = X##kae.v128; \ + X##ke = GET64HIHI(X##kae.v128, X##kae.v128); \ + XOReq128(Cae, X##kae.v128); \ + X##kio.v128 = LOAD128(state[12]); \ + X##ki = X##kio.v128; \ + X##ko = GET64HIHI(X##kio.v128, X##kio.v128); \ + XOReq128(Cio, X##kio.v128); \ + X##ku = LOAD64(state[14]); \ + XOReq64(Cu, X##ku); \ + X##mae.v128 = LOAD128u(state[15]); \ + X##ma = X##mae.v128; \ + X##me = GET64HIHI(X##mae.v128, X##mae.v128); \ + X##kame.v128 = GET64LOLO(X##ka, X##me); \ + XOReq128(Cae, X##mae.v128); \ + X##mio.v128 = LOAD128u(state[17]); \ + X##mi = X##mio.v128; \ + X##kemi.v128 = GET64LOLO(X##ke, X##mi); \ + X##mo = GET64HIHI(X##mio.v128, X##mio.v128); \ + XOReq128(Cio, X##mio.v128); \ + X##mu = LOAD64(state[19]); \ + XOReq64(Cu, X##mu); \ + X##sae.v128 = LOAD128(state[20]); \ + X##sa = X##sae.v128; \ + X##se = GET64HIHI(X##sae.v128, X##sae.v128); \ + XOReq128(Cae, X##sae.v128); \ + X##sio.v128 = LOAD128(state[22]); \ + X##si = X##sio.v128; \ + X##so = GET64HIHI(X##sio.v128, X##sio.v128); \ + XOReq128(Cio, X##sio.v128); \ + X##su = LOAD64(state[24]); \ + XOReq64(Cu, X##su); \ + +#define copyFromStateAndXor832bits(X, state, input) \ + X##bae.v128 = XOR128(LOAD128(state[ 0]), LOAD128u(input[ 0])); \ + X##ba = X##bae.v128; \ + X##be = GET64HIHI(X##bae.v128, X##bae.v128); \ + Cae = X##bae.v128; \ + X##bio.v128 = XOR128(LOAD128(state[ 2]), LOAD128u(input[ 2])); \ + X##bi = X##bio.v128; \ + X##bo = GET64HIHI(X##bio.v128, X##bio.v128); \ + Cio = X##bio.v128; \ + X##bu = XOR64(LOAD64(state[ 4]), LOAD64(input[ 4])); \ + Cu = X##bu; \ + X##gae.v128 = XOR128(LOAD128u(state[ 5]), LOAD128u(input[ 5])); \ + X##ga = X##gae.v128; \ + X##ge = GET64HIHI(X##gae.v128, X##gae.v128); \ + X##bage.v128 = GET64LOLO(X##ba, X##ge); \ + XOReq128(Cae, X##gae.v128); \ + X##gio.v128 = XOR128(LOAD128u(state[ 7]), LOAD128u(input[ 7])); \ + X##gi = X##gio.v128; \ + X##begi.v128 = GET64LOLO(X##be, X##gi); \ + X##go = GET64HIHI(X##gio.v128, X##gio.v128); \ + XOReq128(Cio, X##gio.v128); \ + X##gu = XOR64(LOAD64(state[ 9]), LOAD64(input[ 9])); \ + XOReq64(Cu, X##gu); \ + X##kae.v128 = XOR128(LOAD128(state[10]), LOAD128u(input[10])); \ + X##ka = X##kae.v128; \ + X##ke = GET64HIHI(X##kae.v128, X##kae.v128); \ + XOReq128(Cae, X##kae.v128); \ + X##kio.v128 = XOR128(LOAD128(state[12]), LOAD64(input[12])); \ + X##ki = X##kio.v128; \ + X##ko = GET64HIHI(X##kio.v128, X##kio.v128); \ + XOReq128(Cio, X##kio.v128); \ + X##ku = LOAD64(state[14]); \ + XOReq64(Cu, X##ku); \ + X##mae.v128 = LOAD128u(state[15]); \ + X##ma = X##mae.v128; \ + X##me = GET64HIHI(X##mae.v128, X##mae.v128); \ + X##kame.v128 = GET64LOLO(X##ka, X##me); \ + XOReq128(Cae, X##mae.v128); \ + X##mio.v128 = LOAD128u(state[17]); \ + X##mi = X##mio.v128; \ + X##kemi.v128 = GET64LOLO(X##ke, X##mi); \ + X##mo = GET64HIHI(X##mio.v128, X##mio.v128); \ + XOReq128(Cio, X##mio.v128); \ + X##mu = LOAD64(state[19]); \ + XOReq64(Cu, X##mu); \ + X##sae.v128 = LOAD128(state[20]); \ + X##sa = X##sae.v128; \ + X##se = GET64HIHI(X##sae.v128, X##sae.v128); \ + XOReq128(Cae, X##sae.v128); \ + X##sio.v128 = LOAD128(state[22]); \ + X##si = X##sio.v128; \ + X##so = GET64HIHI(X##sio.v128, X##sio.v128); \ + XOReq128(Cio, X##sio.v128); \ + X##su = LOAD64(state[24]); \ + XOReq64(Cu, X##su); \ + +#define copyFromStateAndXor1024bits(X, state, input) \ + X##bae.v128 = XOR128(LOAD128(state[ 0]), LOAD128u(input[ 0])); \ + X##ba = X##bae.v128; \ + X##be = GET64HIHI(X##bae.v128, X##bae.v128); \ + Cae = X##bae.v128; \ + X##bio.v128 = XOR128(LOAD128(state[ 2]), LOAD128u(input[ 2])); \ + X##bi = X##bio.v128; \ + X##bo = GET64HIHI(X##bio.v128, X##bio.v128); \ + Cio = X##bio.v128; \ + X##bu = XOR64(LOAD64(state[ 4]), LOAD64(input[ 4])); \ + Cu = X##bu; \ + X##gae.v128 = XOR128(LOAD128u(state[ 5]), LOAD128u(input[ 5])); \ + X##ga = X##gae.v128; \ + X##ge = GET64HIHI(X##gae.v128, X##gae.v128); \ + X##bage.v128 = GET64LOLO(X##ba, X##ge); \ + XOReq128(Cae, X##gae.v128); \ + X##gio.v128 = XOR128(LOAD128u(state[ 7]), LOAD128u(input[ 7])); \ + X##gi = X##gio.v128; \ + X##begi.v128 = GET64LOLO(X##be, X##gi); \ + X##go = GET64HIHI(X##gio.v128, X##gio.v128); \ + XOReq128(Cio, X##gio.v128); \ + X##gu = XOR64(LOAD64(state[ 9]), LOAD64(input[ 9])); \ + XOReq64(Cu, X##gu); \ + X##kae.v128 = XOR128(LOAD128(state[10]), LOAD128u(input[10])); \ + X##ka = X##kae.v128; \ + X##ke = GET64HIHI(X##kae.v128, X##kae.v128); \ + XOReq128(Cae, X##kae.v128); \ + X##kio.v128 = XOR128(LOAD128(state[12]), LOAD128u(input[12])); \ + X##ki = X##kio.v128; \ + X##ko = GET64HIHI(X##kio.v128, X##kio.v128); \ + XOReq128(Cio, X##kio.v128); \ + X##ku = XOR64(LOAD64(state[14]), LOAD64(input[14])); \ + XOReq64(Cu, X##ku); \ + X##mae.v128 = XOR128(LOAD128u(state[15]), LOAD64(input[15])); \ + X##ma = X##mae.v128; \ + X##me = GET64HIHI(X##mae.v128, X##mae.v128); \ + X##kame.v128 = GET64LOLO(X##ka, X##me); \ + XOReq128(Cae, X##mae.v128); \ + X##mio.v128 = LOAD128u(state[17]); \ + X##mi = X##mio.v128; \ + X##kemi.v128 = GET64LOLO(X##ke, X##mi); \ + X##mo = GET64HIHI(X##mio.v128, X##mio.v128); \ + XOReq128(Cio, X##mio.v128); \ + X##mu = LOAD64(state[19]); \ + XOReq64(Cu, X##mu); \ + X##sae.v128 = LOAD128(state[20]); \ + X##sa = X##sae.v128; \ + X##se = GET64HIHI(X##sae.v128, X##sae.v128); \ + XOReq128(Cae, X##sae.v128); \ + X##sio.v128 = LOAD128(state[22]); \ + X##si = X##sio.v128; \ + X##so = GET64HIHI(X##sio.v128, X##sio.v128); \ + XOReq128(Cio, X##sio.v128); \ + X##su = LOAD64(state[24]); \ + XOReq64(Cu, X##su); \ + +#define copyFromStateAndXor1088bits(X, state, input) \ + X##bae.v128 = XOR128(LOAD128(state[ 0]), LOAD128u(input[ 0])); \ + X##ba = X##bae.v128; \ + X##be = GET64HIHI(X##bae.v128, X##bae.v128); \ + Cae = X##bae.v128; \ + X##bio.v128 = XOR128(LOAD128(state[ 2]), LOAD128u(input[ 2])); \ + X##bi = X##bio.v128; \ + X##bo = GET64HIHI(X##bio.v128, X##bio.v128); \ + Cio = X##bio.v128; \ + X##bu = XOR64(LOAD64(state[ 4]), LOAD64(input[ 4])); \ + Cu = X##bu; \ + X##gae.v128 = XOR128(LOAD128u(state[ 5]), LOAD128u(input[ 5])); \ + X##ga = X##gae.v128; \ + X##ge = GET64HIHI(X##gae.v128, X##gae.v128); \ + X##bage.v128 = GET64LOLO(X##ba, X##ge); \ + XOReq128(Cae, X##gae.v128); \ + X##gio.v128 = XOR128(LOAD128u(state[ 7]), LOAD128u(input[ 7])); \ + X##gi = X##gio.v128; \ + X##begi.v128 = GET64LOLO(X##be, X##gi); \ + X##go = GET64HIHI(X##gio.v128, X##gio.v128); \ + XOReq128(Cio, X##gio.v128); \ + X##gu = XOR64(LOAD64(state[ 9]), LOAD64(input[ 9])); \ + XOReq64(Cu, X##gu); \ + X##kae.v128 = XOR128(LOAD128(state[10]), LOAD128u(input[10])); \ + X##ka = X##kae.v128; \ + X##ke = GET64HIHI(X##kae.v128, X##kae.v128); \ + XOReq128(Cae, X##kae.v128); \ + X##kio.v128 = XOR128(LOAD128(state[12]), LOAD128u(input[12])); \ + X##ki = X##kio.v128; \ + X##ko = GET64HIHI(X##kio.v128, X##kio.v128); \ + XOReq128(Cio, X##kio.v128); \ + X##ku = XOR64(LOAD64(state[14]), LOAD64(input[14])); \ + XOReq64(Cu, X##ku); \ + X##mae.v128 = XOR128(LOAD128u(state[15]), LOAD128u(input[15])); \ + X##ma = X##mae.v128; \ + X##me = GET64HIHI(X##mae.v128, X##mae.v128); \ + X##kame.v128 = GET64LOLO(X##ka, X##me); \ + XOReq128(Cae, X##mae.v128); \ + X##mio.v128 = LOAD128u(state[17]); \ + X##mi = X##mio.v128; \ + X##kemi.v128 = GET64LOLO(X##ke, X##mi); \ + X##mo = GET64HIHI(X##mio.v128, X##mio.v128); \ + XOReq128(Cio, X##mio.v128); \ + X##mu = LOAD64(state[19]); \ + XOReq64(Cu, X##mu); \ + X##sae.v128 = LOAD128(state[20]); \ + X##sa = X##sae.v128; \ + X##se = GET64HIHI(X##sae.v128, X##sae.v128); \ + XOReq128(Cae, X##sae.v128); \ + X##sio.v128 = LOAD128(state[22]); \ + X##si = X##sio.v128; \ + X##so = GET64HIHI(X##sio.v128, X##sio.v128); \ + XOReq128(Cio, X##sio.v128); \ + X##su = LOAD64(state[24]); \ + XOReq64(Cu, X##su); \ + +#define copyFromStateAndXor1152bits(X, state, input) \ + X##bae.v128 = XOR128(LOAD128(state[ 0]), LOAD128u(input[ 0])); \ + X##ba = X##bae.v128; \ + X##be = GET64HIHI(X##bae.v128, X##bae.v128); \ + Cae = X##bae.v128; \ + X##bio.v128 = XOR128(LOAD128(state[ 2]), LOAD128u(input[ 2])); \ + X##bi = X##bio.v128; \ + X##bo = GET64HIHI(X##bio.v128, X##bio.v128); \ + Cio = X##bio.v128; \ + X##bu = XOR64(LOAD64(state[ 4]), LOAD64(input[ 4])); \ + Cu = X##bu; \ + X##gae.v128 = XOR128(LOAD128u(state[ 5]), LOAD128u(input[ 5])); \ + X##ga = X##gae.v128; \ + X##ge = GET64HIHI(X##gae.v128, X##gae.v128); \ + X##bage.v128 = GET64LOLO(X##ba, X##ge); \ + XOReq128(Cae, X##gae.v128); \ + X##gio.v128 = XOR128(LOAD128u(state[ 7]), LOAD128u(input[ 7])); \ + X##gi = X##gio.v128; \ + X##begi.v128 = GET64LOLO(X##be, X##gi); \ + X##go = GET64HIHI(X##gio.v128, X##gio.v128); \ + XOReq128(Cio, X##gio.v128); \ + X##gu = XOR64(LOAD64(state[ 9]), LOAD64(input[ 9])); \ + XOReq64(Cu, X##gu); \ + X##kae.v128 = XOR128(LOAD128(state[10]), LOAD128u(input[10])); \ + X##ka = X##kae.v128; \ + X##ke = GET64HIHI(X##kae.v128, X##kae.v128); \ + XOReq128(Cae, X##kae.v128); \ + X##kio.v128 = XOR128(LOAD128(state[12]), LOAD128u(input[12])); \ + X##ki = X##kio.v128; \ + X##ko = GET64HIHI(X##kio.v128, X##kio.v128); \ + XOReq128(Cio, X##kio.v128); \ + X##ku = XOR64(LOAD64(state[14]), LOAD64(input[14])); \ + XOReq64(Cu, X##ku); \ + X##mae.v128 = XOR128(LOAD128u(state[15]), LOAD128u(input[15])); \ + X##ma = X##mae.v128; \ + X##me = GET64HIHI(X##mae.v128, X##mae.v128); \ + X##kame.v128 = GET64LOLO(X##ka, X##me); \ + XOReq128(Cae, X##mae.v128); \ + X##mio.v128 = XOR128(LOAD128u(state[17]), LOAD64(input[17])); \ + X##mi = X##mio.v128; \ + X##kemi.v128 = GET64LOLO(X##ke, X##mi); \ + X##mo = GET64HIHI(X##mio.v128, X##mio.v128); \ + XOReq128(Cio, X##mio.v128); \ + X##mu = LOAD64(state[19]); \ + XOReq64(Cu, X##mu); \ + X##sae.v128 = LOAD128(state[20]); \ + X##sa = X##sae.v128; \ + X##se = GET64HIHI(X##sae.v128, X##sae.v128); \ + XOReq128(Cae, X##sae.v128); \ + X##sio.v128 = LOAD128(state[22]); \ + X##si = X##sio.v128; \ + X##so = GET64HIHI(X##sio.v128, X##sio.v128); \ + XOReq128(Cio, X##sio.v128); \ + X##su = LOAD64(state[24]); \ + XOReq64(Cu, X##su); \ + +#define copyFromStateAndXor1344bits(X, state, input) \ + X##bae.v128 = XOR128(LOAD128(state[ 0]), LOAD128u(input[ 0])); \ + X##ba = X##bae.v128; \ + X##be = GET64HIHI(X##bae.v128, X##bae.v128); \ + Cae = X##bae.v128; \ + X##bio.v128 = XOR128(LOAD128(state[ 2]), LOAD128u(input[ 2])); \ + X##bi = X##bio.v128; \ + X##bo = GET64HIHI(X##bio.v128, X##bio.v128); \ + Cio = X##bio.v128; \ + X##bu = XOR64(LOAD64(state[ 4]), LOAD64(input[ 4])); \ + Cu = X##bu; \ + X##gae.v128 = XOR128(LOAD128u(state[ 5]), LOAD128u(input[ 5])); \ + X##ga = X##gae.v128; \ + X##ge = GET64HIHI(X##gae.v128, X##gae.v128); \ + X##bage.v128 = GET64LOLO(X##ba, X##ge); \ + XOReq128(Cae, X##gae.v128); \ + X##gio.v128 = XOR128(LOAD128u(state[ 7]), LOAD128u(input[ 7])); \ + X##gi = X##gio.v128; \ + X##begi.v128 = GET64LOLO(X##be, X##gi); \ + X##go = GET64HIHI(X##gio.v128, X##gio.v128); \ + XOReq128(Cio, X##gio.v128); \ + X##gu = XOR64(LOAD64(state[ 9]), LOAD64(input[ 9])); \ + XOReq64(Cu, X##gu); \ + X##kae.v128 = XOR128(LOAD128(state[10]), LOAD128u(input[10])); \ + X##ka = X##kae.v128; \ + X##ke = GET64HIHI(X##kae.v128, X##kae.v128); \ + XOReq128(Cae, X##kae.v128); \ + X##kio.v128 = XOR128(LOAD128(state[12]), LOAD128u(input[12])); \ + X##ki = X##kio.v128; \ + X##ko = GET64HIHI(X##kio.v128, X##kio.v128); \ + XOReq128(Cio, X##kio.v128); \ + X##ku = XOR64(LOAD64(state[14]), LOAD64(input[14])); \ + XOReq64(Cu, X##ku); \ + X##mae.v128 = XOR128(LOAD128u(state[15]), LOAD128u(input[15])); \ + X##ma = X##mae.v128; \ + X##me = GET64HIHI(X##mae.v128, X##mae.v128); \ + X##kame.v128 = GET64LOLO(X##ka, X##me); \ + XOReq128(Cae, X##mae.v128); \ + X##mio.v128 = XOR128(LOAD128u(state[17]), LOAD128u(input[17])); \ + X##mi = X##mio.v128; \ + X##kemi.v128 = GET64LOLO(X##ke, X##mi); \ + X##mo = GET64HIHI(X##mio.v128, X##mio.v128); \ + XOReq128(Cio, X##mio.v128); \ + X##mu = XOR64(LOAD64(state[19]), LOAD64(input[19])); \ + XOReq64(Cu, X##mu); \ + X##sae.v128 = XOR128(LOAD128(state[20]), LOAD64(input[20])); \ + X##sa = X##sae.v128; \ + X##se = GET64HIHI(X##sae.v128, X##sae.v128); \ + XOReq128(Cae, X##sae.v128); \ + X##sio.v128 = LOAD128(state[22]); \ + X##si = X##sio.v128; \ + X##so = GET64HIHI(X##sio.v128, X##sio.v128); \ + XOReq128(Cio, X##sio.v128); \ + X##su = LOAD64(state[24]); \ + XOReq64(Cu, X##su); \ + +#define copyFromState(X, state) \ + X##bae.v128 = LOAD128(state[ 0]); \ + X##ba = X##bae.v128; \ + X##be = GET64HIHI(X##bae.v128, X##bae.v128); \ + Cae = X##bae.v128; \ + X##bio.v128 = LOAD128(state[ 2]); \ + X##bi = X##bio.v128; \ + X##bo = GET64HIHI(X##bio.v128, X##bio.v128); \ + Cio = X##bio.v128; \ + X##bu = LOAD64(state[ 4]); \ + Cu = X##bu; \ + X##gae.v128 = LOAD128u(state[ 5]); \ + X##ga = X##gae.v128; \ + X##ge = GET64HIHI(X##gae.v128, X##gae.v128); \ + X##bage.v128 = GET64LOLO(X##ba, X##ge); \ + XOReq128(Cae, X##gae.v128); \ + X##gio.v128 = LOAD128u(state[ 7]); \ + X##gi = X##gio.v128; \ + X##begi.v128 = GET64LOLO(X##be, X##gi); \ + X##go = GET64HIHI(X##gio.v128, X##gio.v128); \ + XOReq128(Cio, X##gio.v128); \ + X##gu = LOAD64(state[ 9]); \ + XOReq64(Cu, X##gu); \ + X##kae.v128 = LOAD128(state[10]); \ + X##ka = X##kae.v128; \ + X##ke = GET64HIHI(X##kae.v128, X##kae.v128); \ + XOReq128(Cae, X##kae.v128); \ + X##kio.v128 = LOAD128(state[12]); \ + X##ki = X##kio.v128; \ + X##ko = GET64HIHI(X##kio.v128, X##kio.v128); \ + XOReq128(Cio, X##kio.v128); \ + X##ku = LOAD64(state[14]); \ + XOReq64(Cu, X##ku); \ + X##mae.v128 = LOAD128u(state[15]); \ + X##ma = X##mae.v128; \ + X##me = GET64HIHI(X##mae.v128, X##mae.v128); \ + X##kame.v128 = GET64LOLO(X##ka, X##me); \ + XOReq128(Cae, X##mae.v128); \ + X##mio.v128 = LOAD128u(state[17]); \ + X##mi = X##mio.v128; \ + X##kemi.v128 = GET64LOLO(X##ke, X##mi); \ + X##mo = GET64HIHI(X##mio.v128, X##mio.v128); \ + XOReq128(Cio, X##mio.v128); \ + X##mu = LOAD64(state[19]); \ + XOReq64(Cu, X##mu); \ + X##sae.v128 = LOAD128(state[20]); \ + X##sa = X##sae.v128; \ + X##se = GET64HIHI(X##sae.v128, X##sae.v128); \ + XOReq128(Cae, X##sae.v128); \ + X##sio.v128 = LOAD128(state[22]); \ + X##si = X##sio.v128; \ + X##so = GET64HIHI(X##sio.v128, X##sio.v128); \ + XOReq128(Cio, X##sio.v128); \ + X##su = LOAD64(state[24]); \ + XOReq64(Cu, X##su); \ + +#define copyToState(state, X) \ + state[ 0] = A##bage.v64[0]; \ + state[ 1] = A##begi.v64[0]; \ + STORE64(state[ 2], X##bi); \ + STORE64(state[ 3], X##bo); \ + STORE64(state[ 4], X##bu); \ + STORE64(state[ 5], X##ga); \ + state[ 6] = A##bage.v64[1]; \ + state[ 7] = A##begi.v64[1]; \ + STORE64(state[ 8], X##go); \ + STORE64(state[ 9], X##gu); \ + state[10] = X##kame.v64[0]; \ + state[11] = X##kemi.v64[0]; \ + STORE64(state[12], X##ki); \ + STORE64(state[13], X##ko); \ + STORE64(state[14], X##ku); \ + STORE64(state[15], X##ma); \ + state[16] = X##kame.v64[1]; \ + state[17] = X##kemi.v64[1]; \ + STORE64(state[18], X##mo); \ + STORE64(state[19], X##mu); \ + STORE64(state[20], X##sa); \ + STORE64(state[21], X##se); \ + STORE64(state[22], X##si); \ + STORE64(state[23], X##so); \ + STORE64(state[24], X##su); \ + +#define copyStateVariables(X, Y) \ + X##bage = Y##bage; \ + X##begi = Y##begi; \ + X##bi = Y##bi; \ + X##bo = Y##bo; \ + X##bu = Y##bu; \ + X##ga = Y##ga; \ + X##go = Y##go; \ + X##gu = Y##gu; \ + X##kame = Y##kame; \ + X##kemi = Y##kemi; \ + X##ki = Y##ki; \ + X##ko = Y##ko; \ + X##ku = Y##ku; \ + X##ma = Y##ma; \ + X##mo = Y##mo; \ + X##mu = Y##mu; \ + X##sa = Y##sa; \ + X##se = Y##se; \ + X##si = Y##si; \ + X##so = Y##so; \ + X##su = Y##su; \ + diff --git a/Modules/_sha3/keccak/KeccakF-1600-simd64.macros b/Modules/_sha3/keccak/KeccakF-1600-simd64.macros new file mode 100644 index 0000000..06a30e2 --- /dev/null +++ b/Modules/_sha3/keccak/KeccakF-1600-simd64.macros @@ -0,0 +1,517 @@ +/* +Code automatically generated by KeccakTools! + +The Keccak sponge function, designed by Guido Bertoni, Joan Daemen, +Michaël Peeters and Gilles Van Assche. For more information, feedback or +questions, please refer to our website: http://keccak.noekeon.org/ + +Implementation by the designers, +hereby denoted as "the implementer". + +To the extent possible under law, the implementer has waived all copyright +and related or neighboring rights to the source code in this file. +http://creativecommons.org/publicdomain/zero/1.0/ +*/ + +#define declareABCDE \ + V64 Aba, Abe, Abi, Abo, Abu; \ + V64 Aga, Age, Agi, Ago, Agu; \ + V64 Aka, Ake, Aki, Ako, Aku; \ + V64 Ama, Ame, Ami, Amo, Amu; \ + V64 Asa, Ase, Asi, Aso, Asu; \ + V64 Bba, Bbe, Bbi, Bbo, Bbu; \ + V64 Bga, Bge, Bgi, Bgo, Bgu; \ + V64 Bka, Bke, Bki, Bko, Bku; \ + V64 Bma, Bme, Bmi, Bmo, Bmu; \ + V64 Bsa, Bse, Bsi, Bso, Bsu; \ + V64 Ca, Ce, Ci, Co, Cu; \ + V64 Da, De, Di, Do, Du; \ + V64 Eba, Ebe, Ebi, Ebo, Ebu; \ + V64 Ega, Ege, Egi, Ego, Egu; \ + V64 Eka, Eke, Eki, Eko, Eku; \ + V64 Ema, Eme, Emi, Emo, Emu; \ + V64 Esa, Ese, Esi, Eso, Esu; \ + +#define prepareTheta \ + Ca = XOR64(Aba, XOR64(Aga, XOR64(Aka, XOR64(Ama, Asa)))); \ + Ce = XOR64(Abe, XOR64(Age, XOR64(Ake, XOR64(Ame, Ase)))); \ + Ci = XOR64(Abi, XOR64(Agi, XOR64(Aki, XOR64(Ami, Asi)))); \ + Co = XOR64(Abo, XOR64(Ago, XOR64(Ako, XOR64(Amo, Aso)))); \ + Cu = XOR64(Abu, XOR64(Agu, XOR64(Aku, XOR64(Amu, Asu)))); \ + +/* --- Code for round, with prepare-theta */ +/* --- 64-bit lanes mapped to 64-bit words */ +#define thetaRhoPiChiIotaPrepareTheta(i, A, E) \ + Da = XOR64(Cu, ROL64(Ce, 1)); \ + De = XOR64(Ca, ROL64(Ci, 1)); \ + Di = XOR64(Ce, ROL64(Co, 1)); \ + Do = XOR64(Ci, ROL64(Cu, 1)); \ + Du = XOR64(Co, ROL64(Ca, 1)); \ +\ + XOReq64(A##ba, Da); \ + Bba = A##ba; \ + XOReq64(A##ge, De); \ + Bbe = ROL64(A##ge, 44); \ + XOReq64(A##ki, Di); \ + Bbi = ROL64(A##ki, 43); \ + E##ba = XOR64(Bba, ANDnu64(Bbe, Bbi)); \ + XOReq64(E##ba, CONST64(KeccakF1600RoundConstants[i])); \ + Ca = E##ba; \ + XOReq64(A##mo, Do); \ + Bbo = ROL64(A##mo, 21); \ + E##be = XOR64(Bbe, ANDnu64(Bbi, Bbo)); \ + Ce = E##be; \ + XOReq64(A##su, Du); \ + Bbu = ROL64(A##su, 14); \ + E##bi = XOR64(Bbi, ANDnu64(Bbo, Bbu)); \ + Ci = E##bi; \ + E##bo = XOR64(Bbo, ANDnu64(Bbu, Bba)); \ + Co = E##bo; \ + E##bu = XOR64(Bbu, ANDnu64(Bba, Bbe)); \ + Cu = E##bu; \ +\ + XOReq64(A##bo, Do); \ + Bga = ROL64(A##bo, 28); \ + XOReq64(A##gu, Du); \ + Bge = ROL64(A##gu, 20); \ + XOReq64(A##ka, Da); \ + Bgi = ROL64(A##ka, 3); \ + E##ga = XOR64(Bga, ANDnu64(Bge, Bgi)); \ + XOReq64(Ca, E##ga); \ + XOReq64(A##me, De); \ + Bgo = ROL64(A##me, 45); \ + E##ge = XOR64(Bge, ANDnu64(Bgi, Bgo)); \ + XOReq64(Ce, E##ge); \ + XOReq64(A##si, Di); \ + Bgu = ROL64(A##si, 61); \ + E##gi = XOR64(Bgi, ANDnu64(Bgo, Bgu)); \ + XOReq64(Ci, E##gi); \ + E##go = XOR64(Bgo, ANDnu64(Bgu, Bga)); \ + XOReq64(Co, E##go); \ + E##gu = XOR64(Bgu, ANDnu64(Bga, Bge)); \ + XOReq64(Cu, E##gu); \ +\ + XOReq64(A##be, De); \ + Bka = ROL64(A##be, 1); \ + XOReq64(A##gi, Di); \ + Bke = ROL64(A##gi, 6); \ + XOReq64(A##ko, Do); \ + Bki = ROL64(A##ko, 25); \ + E##ka = XOR64(Bka, ANDnu64(Bke, Bki)); \ + XOReq64(Ca, E##ka); \ + XOReq64(A##mu, Du); \ + Bko = ROL64(A##mu, 8); \ + E##ke = XOR64(Bke, ANDnu64(Bki, Bko)); \ + XOReq64(Ce, E##ke); \ + XOReq64(A##sa, Da); \ + Bku = ROL64(A##sa, 18); \ + E##ki = XOR64(Bki, ANDnu64(Bko, Bku)); \ + XOReq64(Ci, E##ki); \ + E##ko = XOR64(Bko, ANDnu64(Bku, Bka)); \ + XOReq64(Co, E##ko); \ + E##ku = XOR64(Bku, ANDnu64(Bka, Bke)); \ + XOReq64(Cu, E##ku); \ +\ + XOReq64(A##bu, Du); \ + Bma = ROL64(A##bu, 27); \ + XOReq64(A##ga, Da); \ + Bme = ROL64(A##ga, 36); \ + XOReq64(A##ke, De); \ + Bmi = ROL64(A##ke, 10); \ + E##ma = XOR64(Bma, ANDnu64(Bme, Bmi)); \ + XOReq64(Ca, E##ma); \ + XOReq64(A##mi, Di); \ + Bmo = ROL64(A##mi, 15); \ + E##me = XOR64(Bme, ANDnu64(Bmi, Bmo)); \ + XOReq64(Ce, E##me); \ + XOReq64(A##so, Do); \ + Bmu = ROL64(A##so, 56); \ + E##mi = XOR64(Bmi, ANDnu64(Bmo, Bmu)); \ + XOReq64(Ci, E##mi); \ + E##mo = XOR64(Bmo, ANDnu64(Bmu, Bma)); \ + XOReq64(Co, E##mo); \ + E##mu = XOR64(Bmu, ANDnu64(Bma, Bme)); \ + XOReq64(Cu, E##mu); \ +\ + XOReq64(A##bi, Di); \ + Bsa = ROL64(A##bi, 62); \ + XOReq64(A##go, Do); \ + Bse = ROL64(A##go, 55); \ + XOReq64(A##ku, Du); \ + Bsi = ROL64(A##ku, 39); \ + E##sa = XOR64(Bsa, ANDnu64(Bse, Bsi)); \ + XOReq64(Ca, E##sa); \ + XOReq64(A##ma, Da); \ + Bso = ROL64(A##ma, 41); \ + E##se = XOR64(Bse, ANDnu64(Bsi, Bso)); \ + XOReq64(Ce, E##se); \ + XOReq64(A##se, De); \ + Bsu = ROL64(A##se, 2); \ + E##si = XOR64(Bsi, ANDnu64(Bso, Bsu)); \ + XOReq64(Ci, E##si); \ + E##so = XOR64(Bso, ANDnu64(Bsu, Bsa)); \ + XOReq64(Co, E##so); \ + E##su = XOR64(Bsu, ANDnu64(Bsa, Bse)); \ + XOReq64(Cu, E##su); \ +\ + +/* --- Code for round */ +/* --- 64-bit lanes mapped to 64-bit words */ +#define thetaRhoPiChiIota(i, A, E) \ + Da = XOR64(Cu, ROL64(Ce, 1)); \ + De = XOR64(Ca, ROL64(Ci, 1)); \ + Di = XOR64(Ce, ROL64(Co, 1)); \ + Do = XOR64(Ci, ROL64(Cu, 1)); \ + Du = XOR64(Co, ROL64(Ca, 1)); \ +\ + XOReq64(A##ba, Da); \ + Bba = A##ba; \ + XOReq64(A##ge, De); \ + Bbe = ROL64(A##ge, 44); \ + XOReq64(A##ki, Di); \ + Bbi = ROL64(A##ki, 43); \ + E##ba = XOR64(Bba, ANDnu64(Bbe, Bbi)); \ + XOReq64(E##ba, CONST64(KeccakF1600RoundConstants[i])); \ + XOReq64(A##mo, Do); \ + Bbo = ROL64(A##mo, 21); \ + E##be = XOR64(Bbe, ANDnu64(Bbi, Bbo)); \ + XOReq64(A##su, Du); \ + Bbu = ROL64(A##su, 14); \ + E##bi = XOR64(Bbi, ANDnu64(Bbo, Bbu)); \ + E##bo = XOR64(Bbo, ANDnu64(Bbu, Bba)); \ + E##bu = XOR64(Bbu, ANDnu64(Bba, Bbe)); \ +\ + XOReq64(A##bo, Do); \ + Bga = ROL64(A##bo, 28); \ + XOReq64(A##gu, Du); \ + Bge = ROL64(A##gu, 20); \ + XOReq64(A##ka, Da); \ + Bgi = ROL64(A##ka, 3); \ + E##ga = XOR64(Bga, ANDnu64(Bge, Bgi)); \ + XOReq64(A##me, De); \ + Bgo = ROL64(A##me, 45); \ + E##ge = XOR64(Bge, ANDnu64(Bgi, Bgo)); \ + XOReq64(A##si, Di); \ + Bgu = ROL64(A##si, 61); \ + E##gi = XOR64(Bgi, ANDnu64(Bgo, Bgu)); \ + E##go = XOR64(Bgo, ANDnu64(Bgu, Bga)); \ + E##gu = XOR64(Bgu, ANDnu64(Bga, Bge)); \ +\ + XOReq64(A##be, De); \ + Bka = ROL64(A##be, 1); \ + XOReq64(A##gi, Di); \ + Bke = ROL64(A##gi, 6); \ + XOReq64(A##ko, Do); \ + Bki = ROL64(A##ko, 25); \ + E##ka = XOR64(Bka, ANDnu64(Bke, Bki)); \ + XOReq64(A##mu, Du); \ + Bko = ROL64(A##mu, 8); \ + E##ke = XOR64(Bke, ANDnu64(Bki, Bko)); \ + XOReq64(A##sa, Da); \ + Bku = ROL64(A##sa, 18); \ + E##ki = XOR64(Bki, ANDnu64(Bko, Bku)); \ + E##ko = XOR64(Bko, ANDnu64(Bku, Bka)); \ + E##ku = XOR64(Bku, ANDnu64(Bka, Bke)); \ +\ + XOReq64(A##bu, Du); \ + Bma = ROL64(A##bu, 27); \ + XOReq64(A##ga, Da); \ + Bme = ROL64(A##ga, 36); \ + XOReq64(A##ke, De); \ + Bmi = ROL64(A##ke, 10); \ + E##ma = XOR64(Bma, ANDnu64(Bme, Bmi)); \ + XOReq64(A##mi, Di); \ + Bmo = ROL64(A##mi, 15); \ + E##me = XOR64(Bme, ANDnu64(Bmi, Bmo)); \ + XOReq64(A##so, Do); \ + Bmu = ROL64(A##so, 56); \ + E##mi = XOR64(Bmi, ANDnu64(Bmo, Bmu)); \ + E##mo = XOR64(Bmo, ANDnu64(Bmu, Bma)); \ + E##mu = XOR64(Bmu, ANDnu64(Bma, Bme)); \ +\ + XOReq64(A##bi, Di); \ + Bsa = ROL64(A##bi, 62); \ + XOReq64(A##go, Do); \ + Bse = ROL64(A##go, 55); \ + XOReq64(A##ku, Du); \ + Bsi = ROL64(A##ku, 39); \ + E##sa = XOR64(Bsa, ANDnu64(Bse, Bsi)); \ + XOReq64(A##ma, Da); \ + Bso = ROL64(A##ma, 41); \ + E##se = XOR64(Bse, ANDnu64(Bsi, Bso)); \ + XOReq64(A##se, De); \ + Bsu = ROL64(A##se, 2); \ + E##si = XOR64(Bsi, ANDnu64(Bso, Bsu)); \ + E##so = XOR64(Bso, ANDnu64(Bsu, Bsa)); \ + E##su = XOR64(Bsu, ANDnu64(Bsa, Bse)); \ +\ + +static const UINT64 KeccakF1600RoundConstants[24] = { + 0x0000000000000001ULL, + 0x0000000000008082ULL, + 0x800000000000808aULL, + 0x8000000080008000ULL, + 0x000000000000808bULL, + 0x0000000080000001ULL, + 0x8000000080008081ULL, + 0x8000000000008009ULL, + 0x000000000000008aULL, + 0x0000000000000088ULL, + 0x0000000080008009ULL, + 0x000000008000000aULL, + 0x000000008000808bULL, + 0x800000000000008bULL, + 0x8000000000008089ULL, + 0x8000000000008003ULL, + 0x8000000000008002ULL, + 0x8000000000000080ULL, + 0x000000000000800aULL, + 0x800000008000000aULL, + 0x8000000080008081ULL, + 0x8000000000008080ULL, + 0x0000000080000001ULL, + 0x8000000080008008ULL }; + +#define copyFromStateAndXor576bits(X, state, input) \ + X##ba = XOR64(LOAD64(state[ 0]), LOAD64(input[ 0])); \ + X##be = XOR64(LOAD64(state[ 1]), LOAD64(input[ 1])); \ + X##bi = XOR64(LOAD64(state[ 2]), LOAD64(input[ 2])); \ + X##bo = XOR64(LOAD64(state[ 3]), LOAD64(input[ 3])); \ + X##bu = XOR64(LOAD64(state[ 4]), LOAD64(input[ 4])); \ + X##ga = XOR64(LOAD64(state[ 5]), LOAD64(input[ 5])); \ + X##ge = XOR64(LOAD64(state[ 6]), LOAD64(input[ 6])); \ + X##gi = XOR64(LOAD64(state[ 7]), LOAD64(input[ 7])); \ + X##go = XOR64(LOAD64(state[ 8]), LOAD64(input[ 8])); \ + X##gu = LOAD64(state[ 9]); \ + X##ka = LOAD64(state[10]); \ + X##ke = LOAD64(state[11]); \ + X##ki = LOAD64(state[12]); \ + X##ko = LOAD64(state[13]); \ + X##ku = LOAD64(state[14]); \ + X##ma = LOAD64(state[15]); \ + X##me = LOAD64(state[16]); \ + X##mi = LOAD64(state[17]); \ + X##mo = LOAD64(state[18]); \ + X##mu = LOAD64(state[19]); \ + X##sa = LOAD64(state[20]); \ + X##se = LOAD64(state[21]); \ + X##si = LOAD64(state[22]); \ + X##so = LOAD64(state[23]); \ + X##su = LOAD64(state[24]); \ + +#define copyFromStateAndXor832bits(X, state, input) \ + X##ba = XOR64(LOAD64(state[ 0]), LOAD64(input[ 0])); \ + X##be = XOR64(LOAD64(state[ 1]), LOAD64(input[ 1])); \ + X##bi = XOR64(LOAD64(state[ 2]), LOAD64(input[ 2])); \ + X##bo = XOR64(LOAD64(state[ 3]), LOAD64(input[ 3])); \ + X##bu = XOR64(LOAD64(state[ 4]), LOAD64(input[ 4])); \ + X##ga = XOR64(LOAD64(state[ 5]), LOAD64(input[ 5])); \ + X##ge = XOR64(LOAD64(state[ 6]), LOAD64(input[ 6])); \ + X##gi = XOR64(LOAD64(state[ 7]), LOAD64(input[ 7])); \ + X##go = XOR64(LOAD64(state[ 8]), LOAD64(input[ 8])); \ + X##gu = XOR64(LOAD64(state[ 9]), LOAD64(input[ 9])); \ + X##ka = XOR64(LOAD64(state[10]), LOAD64(input[10])); \ + X##ke = XOR64(LOAD64(state[11]), LOAD64(input[11])); \ + X##ki = XOR64(LOAD64(state[12]), LOAD64(input[12])); \ + X##ko = LOAD64(state[13]); \ + X##ku = LOAD64(state[14]); \ + X##ma = LOAD64(state[15]); \ + X##me = LOAD64(state[16]); \ + X##mi = LOAD64(state[17]); \ + X##mo = LOAD64(state[18]); \ + X##mu = LOAD64(state[19]); \ + X##sa = LOAD64(state[20]); \ + X##se = LOAD64(state[21]); \ + X##si = LOAD64(state[22]); \ + X##so = LOAD64(state[23]); \ + X##su = LOAD64(state[24]); \ + +#define copyFromStateAndXor1024bits(X, state, input) \ + X##ba = XOR64(LOAD64(state[ 0]), LOAD64(input[ 0])); \ + X##be = XOR64(LOAD64(state[ 1]), LOAD64(input[ 1])); \ + X##bi = XOR64(LOAD64(state[ 2]), LOAD64(input[ 2])); \ + X##bo = XOR64(LOAD64(state[ 3]), LOAD64(input[ 3])); \ + X##bu = XOR64(LOAD64(state[ 4]), LOAD64(input[ 4])); \ + X##ga = XOR64(LOAD64(state[ 5]), LOAD64(input[ 5])); \ + X##ge = XOR64(LOAD64(state[ 6]), LOAD64(input[ 6])); \ + X##gi = XOR64(LOAD64(state[ 7]), LOAD64(input[ 7])); \ + X##go = XOR64(LOAD64(state[ 8]), LOAD64(input[ 8])); \ + X##gu = XOR64(LOAD64(state[ 9]), LOAD64(input[ 9])); \ + X##ka = XOR64(LOAD64(state[10]), LOAD64(input[10])); \ + X##ke = XOR64(LOAD64(state[11]), LOAD64(input[11])); \ + X##ki = XOR64(LOAD64(state[12]), LOAD64(input[12])); \ + X##ko = XOR64(LOAD64(state[13]), LOAD64(input[13])); \ + X##ku = XOR64(LOAD64(state[14]), LOAD64(input[14])); \ + X##ma = XOR64(LOAD64(state[15]), LOAD64(input[15])); \ + X##me = LOAD64(state[16]); \ + X##mi = LOAD64(state[17]); \ + X##mo = LOAD64(state[18]); \ + X##mu = LOAD64(state[19]); \ + X##sa = LOAD64(state[20]); \ + X##se = LOAD64(state[21]); \ + X##si = LOAD64(state[22]); \ + X##so = LOAD64(state[23]); \ + X##su = LOAD64(state[24]); \ + +#define copyFromStateAndXor1088bits(X, state, input) \ + X##ba = XOR64(LOAD64(state[ 0]), LOAD64(input[ 0])); \ + X##be = XOR64(LOAD64(state[ 1]), LOAD64(input[ 1])); \ + X##bi = XOR64(LOAD64(state[ 2]), LOAD64(input[ 2])); \ + X##bo = XOR64(LOAD64(state[ 3]), LOAD64(input[ 3])); \ + X##bu = XOR64(LOAD64(state[ 4]), LOAD64(input[ 4])); \ + X##ga = XOR64(LOAD64(state[ 5]), LOAD64(input[ 5])); \ + X##ge = XOR64(LOAD64(state[ 6]), LOAD64(input[ 6])); \ + X##gi = XOR64(LOAD64(state[ 7]), LOAD64(input[ 7])); \ + X##go = XOR64(LOAD64(state[ 8]), LOAD64(input[ 8])); \ + X##gu = XOR64(LOAD64(state[ 9]), LOAD64(input[ 9])); \ + X##ka = XOR64(LOAD64(state[10]), LOAD64(input[10])); \ + X##ke = XOR64(LOAD64(state[11]), LOAD64(input[11])); \ + X##ki = XOR64(LOAD64(state[12]), LOAD64(input[12])); \ + X##ko = XOR64(LOAD64(state[13]), LOAD64(input[13])); \ + X##ku = XOR64(LOAD64(state[14]), LOAD64(input[14])); \ + X##ma = XOR64(LOAD64(state[15]), LOAD64(input[15])); \ + X##me = XOR64(LOAD64(state[16]), LOAD64(input[16])); \ + X##mi = LOAD64(state[17]); \ + X##mo = LOAD64(state[18]); \ + X##mu = LOAD64(state[19]); \ + X##sa = LOAD64(state[20]); \ + X##se = LOAD64(state[21]); \ + X##si = LOAD64(state[22]); \ + X##so = LOAD64(state[23]); \ + X##su = LOAD64(state[24]); \ + +#define copyFromStateAndXor1152bits(X, state, input) \ + X##ba = XOR64(LOAD64(state[ 0]), LOAD64(input[ 0])); \ + X##be = XOR64(LOAD64(state[ 1]), LOAD64(input[ 1])); \ + X##bi = XOR64(LOAD64(state[ 2]), LOAD64(input[ 2])); \ + X##bo = XOR64(LOAD64(state[ 3]), LOAD64(input[ 3])); \ + X##bu = XOR64(LOAD64(state[ 4]), LOAD64(input[ 4])); \ + X##ga = XOR64(LOAD64(state[ 5]), LOAD64(input[ 5])); \ + X##ge = XOR64(LOAD64(state[ 6]), LOAD64(input[ 6])); \ + X##gi = XOR64(LOAD64(state[ 7]), LOAD64(input[ 7])); \ + X##go = XOR64(LOAD64(state[ 8]), LOAD64(input[ 8])); \ + X##gu = XOR64(LOAD64(state[ 9]), LOAD64(input[ 9])); \ + X##ka = XOR64(LOAD64(state[10]), LOAD64(input[10])); \ + X##ke = XOR64(LOAD64(state[11]), LOAD64(input[11])); \ + X##ki = XOR64(LOAD64(state[12]), LOAD64(input[12])); \ + X##ko = XOR64(LOAD64(state[13]), LOAD64(input[13])); \ + X##ku = XOR64(LOAD64(state[14]), LOAD64(input[14])); \ + X##ma = XOR64(LOAD64(state[15]), LOAD64(input[15])); \ + X##me = XOR64(LOAD64(state[16]), LOAD64(input[16])); \ + X##mi = XOR64(LOAD64(state[17]), LOAD64(input[17])); \ + X##mo = LOAD64(state[18]); \ + X##mu = LOAD64(state[19]); \ + X##sa = LOAD64(state[20]); \ + X##se = LOAD64(state[21]); \ + X##si = LOAD64(state[22]); \ + X##so = LOAD64(state[23]); \ + X##su = LOAD64(state[24]); \ + +#define copyFromStateAndXor1344bits(X, state, input) \ + X##ba = XOR64(LOAD64(state[ 0]), LOAD64(input[ 0])); \ + X##be = XOR64(LOAD64(state[ 1]), LOAD64(input[ 1])); \ + X##bi = XOR64(LOAD64(state[ 2]), LOAD64(input[ 2])); \ + X##bo = XOR64(LOAD64(state[ 3]), LOAD64(input[ 3])); \ + X##bu = XOR64(LOAD64(state[ 4]), LOAD64(input[ 4])); \ + X##ga = XOR64(LOAD64(state[ 5]), LOAD64(input[ 5])); \ + X##ge = XOR64(LOAD64(state[ 6]), LOAD64(input[ 6])); \ + X##gi = XOR64(LOAD64(state[ 7]), LOAD64(input[ 7])); \ + X##go = XOR64(LOAD64(state[ 8]), LOAD64(input[ 8])); \ + X##gu = XOR64(LOAD64(state[ 9]), LOAD64(input[ 9])); \ + X##ka = XOR64(LOAD64(state[10]), LOAD64(input[10])); \ + X##ke = XOR64(LOAD64(state[11]), LOAD64(input[11])); \ + X##ki = XOR64(LOAD64(state[12]), LOAD64(input[12])); \ + X##ko = XOR64(LOAD64(state[13]), LOAD64(input[13])); \ + X##ku = XOR64(LOAD64(state[14]), LOAD64(input[14])); \ + X##ma = XOR64(LOAD64(state[15]), LOAD64(input[15])); \ + X##me = XOR64(LOAD64(state[16]), LOAD64(input[16])); \ + X##mi = XOR64(LOAD64(state[17]), LOAD64(input[17])); \ + X##mo = XOR64(LOAD64(state[18]), LOAD64(input[18])); \ + X##mu = XOR64(LOAD64(state[19]), LOAD64(input[19])); \ + X##sa = XOR64(LOAD64(state[20]), LOAD64(input[20])); \ + X##se = LOAD64(state[21]); \ + X##si = LOAD64(state[22]); \ + X##so = LOAD64(state[23]); \ + X##su = LOAD64(state[24]); \ + +#define copyFromState(X, state) \ + X##ba = LOAD64(state[ 0]); \ + X##be = LOAD64(state[ 1]); \ + X##bi = LOAD64(state[ 2]); \ + X##bo = LOAD64(state[ 3]); \ + X##bu = LOAD64(state[ 4]); \ + X##ga = LOAD64(state[ 5]); \ + X##ge = LOAD64(state[ 6]); \ + X##gi = LOAD64(state[ 7]); \ + X##go = LOAD64(state[ 8]); \ + X##gu = LOAD64(state[ 9]); \ + X##ka = LOAD64(state[10]); \ + X##ke = LOAD64(state[11]); \ + X##ki = LOAD64(state[12]); \ + X##ko = LOAD64(state[13]); \ + X##ku = LOAD64(state[14]); \ + X##ma = LOAD64(state[15]); \ + X##me = LOAD64(state[16]); \ + X##mi = LOAD64(state[17]); \ + X##mo = LOAD64(state[18]); \ + X##mu = LOAD64(state[19]); \ + X##sa = LOAD64(state[20]); \ + X##se = LOAD64(state[21]); \ + X##si = LOAD64(state[22]); \ + X##so = LOAD64(state[23]); \ + X##su = LOAD64(state[24]); \ + +#define copyToState(state, X) \ + STORE64(state[ 0], X##ba); \ + STORE64(state[ 1], X##be); \ + STORE64(state[ 2], X##bi); \ + STORE64(state[ 3], X##bo); \ + STORE64(state[ 4], X##bu); \ + STORE64(state[ 5], X##ga); \ + STORE64(state[ 6], X##ge); \ + STORE64(state[ 7], X##gi); \ + STORE64(state[ 8], X##go); \ + STORE64(state[ 9], X##gu); \ + STORE64(state[10], X##ka); \ + STORE64(state[11], X##ke); \ + STORE64(state[12], X##ki); \ + STORE64(state[13], X##ko); \ + STORE64(state[14], X##ku); \ + STORE64(state[15], X##ma); \ + STORE64(state[16], X##me); \ + STORE64(state[17], X##mi); \ + STORE64(state[18], X##mo); \ + STORE64(state[19], X##mu); \ + STORE64(state[20], X##sa); \ + STORE64(state[21], X##se); \ + STORE64(state[22], X##si); \ + STORE64(state[23], X##so); \ + STORE64(state[24], X##su); \ + +#define copyStateVariables(X, Y) \ + X##ba = Y##ba; \ + X##be = Y##be; \ + X##bi = Y##bi; \ + X##bo = Y##bo; \ + X##bu = Y##bu; \ + X##ga = Y##ga; \ + X##ge = Y##ge; \ + X##gi = Y##gi; \ + X##go = Y##go; \ + X##gu = Y##gu; \ + X##ka = Y##ka; \ + X##ke = Y##ke; \ + X##ki = Y##ki; \ + X##ko = Y##ko; \ + X##ku = Y##ku; \ + X##ma = Y##ma; \ + X##me = Y##me; \ + X##mi = Y##mi; \ + X##mo = Y##mo; \ + X##mu = Y##mu; \ + X##sa = Y##sa; \ + X##se = Y##se; \ + X##si = Y##si; \ + X##so = Y##so; \ + X##su = Y##su; \ + diff --git a/Modules/_sha3/keccak/KeccakF-1600-unrolling.macros b/Modules/_sha3/keccak/KeccakF-1600-unrolling.macros new file mode 100644 index 0000000..83c694c --- /dev/null +++ b/Modules/_sha3/keccak/KeccakF-1600-unrolling.macros @@ -0,0 +1,124 @@ +/* +The Keccak sponge function, designed by Guido Bertoni, Joan Daemen, +Michaël Peeters and Gilles Van Assche. For more information, feedback or +questions, please refer to our website: http://keccak.noekeon.org/ + +Implementation by the designers, +hereby denoted as "the implementer". + +To the extent possible under law, the implementer has waived all copyright +and related or neighboring rights to the source code in this file. +http://creativecommons.org/publicdomain/zero/1.0/ +*/ + +#if (Unrolling == 24) +#define rounds \ + prepareTheta \ + thetaRhoPiChiIotaPrepareTheta( 0, A, E) \ + thetaRhoPiChiIotaPrepareTheta( 1, E, A) \ + thetaRhoPiChiIotaPrepareTheta( 2, A, E) \ + thetaRhoPiChiIotaPrepareTheta( 3, E, A) \ + thetaRhoPiChiIotaPrepareTheta( 4, A, E) \ + thetaRhoPiChiIotaPrepareTheta( 5, E, A) \ + thetaRhoPiChiIotaPrepareTheta( 6, A, E) \ + thetaRhoPiChiIotaPrepareTheta( 7, E, A) \ + thetaRhoPiChiIotaPrepareTheta( 8, A, E) \ + thetaRhoPiChiIotaPrepareTheta( 9, E, A) \ + thetaRhoPiChiIotaPrepareTheta(10, A, E) \ + thetaRhoPiChiIotaPrepareTheta(11, E, A) \ + thetaRhoPiChiIotaPrepareTheta(12, A, E) \ + thetaRhoPiChiIotaPrepareTheta(13, E, A) \ + thetaRhoPiChiIotaPrepareTheta(14, A, E) \ + thetaRhoPiChiIotaPrepareTheta(15, E, A) \ + thetaRhoPiChiIotaPrepareTheta(16, A, E) \ + thetaRhoPiChiIotaPrepareTheta(17, E, A) \ + thetaRhoPiChiIotaPrepareTheta(18, A, E) \ + thetaRhoPiChiIotaPrepareTheta(19, E, A) \ + thetaRhoPiChiIotaPrepareTheta(20, A, E) \ + thetaRhoPiChiIotaPrepareTheta(21, E, A) \ + thetaRhoPiChiIotaPrepareTheta(22, A, E) \ + thetaRhoPiChiIota(23, E, A) \ + copyToState(state, A) +#elif (Unrolling == 12) +#define rounds \ + prepareTheta \ + for(i=0; i<24; i+=12) { \ + thetaRhoPiChiIotaPrepareTheta(i , A, E) \ + thetaRhoPiChiIotaPrepareTheta(i+ 1, E, A) \ + thetaRhoPiChiIotaPrepareTheta(i+ 2, A, E) \ + thetaRhoPiChiIotaPrepareTheta(i+ 3, E, A) \ + thetaRhoPiChiIotaPrepareTheta(i+ 4, A, E) \ + thetaRhoPiChiIotaPrepareTheta(i+ 5, E, A) \ + thetaRhoPiChiIotaPrepareTheta(i+ 6, A, E) \ + thetaRhoPiChiIotaPrepareTheta(i+ 7, E, A) \ + thetaRhoPiChiIotaPrepareTheta(i+ 8, A, E) \ + thetaRhoPiChiIotaPrepareTheta(i+ 9, E, A) \ + thetaRhoPiChiIotaPrepareTheta(i+10, A, E) \ + thetaRhoPiChiIotaPrepareTheta(i+11, E, A) \ + } \ + copyToState(state, A) +#elif (Unrolling == 8) +#define rounds \ + prepareTheta \ + for(i=0; i<24; i+=8) { \ + thetaRhoPiChiIotaPrepareTheta(i , A, E) \ + thetaRhoPiChiIotaPrepareTheta(i+1, E, A) \ + thetaRhoPiChiIotaPrepareTheta(i+2, A, E) \ + thetaRhoPiChiIotaPrepareTheta(i+3, E, A) \ + thetaRhoPiChiIotaPrepareTheta(i+4, A, E) \ + thetaRhoPiChiIotaPrepareTheta(i+5, E, A) \ + thetaRhoPiChiIotaPrepareTheta(i+6, A, E) \ + thetaRhoPiChiIotaPrepareTheta(i+7, E, A) \ + } \ + copyToState(state, A) +#elif (Unrolling == 6) +#define rounds \ + prepareTheta \ + for(i=0; i<24; i+=6) { \ + thetaRhoPiChiIotaPrepareTheta(i , A, E) \ + thetaRhoPiChiIotaPrepareTheta(i+1, E, A) \ + thetaRhoPiChiIotaPrepareTheta(i+2, A, E) \ + thetaRhoPiChiIotaPrepareTheta(i+3, E, A) \ + thetaRhoPiChiIotaPrepareTheta(i+4, A, E) \ + thetaRhoPiChiIotaPrepareTheta(i+5, E, A) \ + } \ + copyToState(state, A) +#elif (Unrolling == 4) +#define rounds \ + prepareTheta \ + for(i=0; i<24; i+=4) { \ + thetaRhoPiChiIotaPrepareTheta(i , A, E) \ + thetaRhoPiChiIotaPrepareTheta(i+1, E, A) \ + thetaRhoPiChiIotaPrepareTheta(i+2, A, E) \ + thetaRhoPiChiIotaPrepareTheta(i+3, E, A) \ + } \ + copyToState(state, A) +#elif (Unrolling == 3) +#define rounds \ + prepareTheta \ + for(i=0; i<24; i+=3) { \ + thetaRhoPiChiIotaPrepareTheta(i , A, E) \ + thetaRhoPiChiIotaPrepareTheta(i+1, E, A) \ + thetaRhoPiChiIotaPrepareTheta(i+2, A, E) \ + copyStateVariables(A, E) \ + } \ + copyToState(state, A) +#elif (Unrolling == 2) +#define rounds \ + prepareTheta \ + for(i=0; i<24; i+=2) { \ + thetaRhoPiChiIotaPrepareTheta(i , A, E) \ + thetaRhoPiChiIotaPrepareTheta(i+1, E, A) \ + } \ + copyToState(state, A) +#elif (Unrolling == 1) +#define rounds \ + prepareTheta \ + for(i=0; i<24; i++) { \ + thetaRhoPiChiIotaPrepareTheta(i , A, E) \ + copyStateVariables(A, E) \ + } \ + copyToState(state, A) +#else +#error "Unrolling is not correctly specified!" +#endif diff --git a/Modules/_sha3/keccak/KeccakF-1600-xop.macros b/Modules/_sha3/keccak/KeccakF-1600-xop.macros new file mode 100644 index 0000000..823c946 --- /dev/null +++ b/Modules/_sha3/keccak/KeccakF-1600-xop.macros @@ -0,0 +1,573 @@ +/* +The Keccak sponge function, designed by Guido Bertoni, Joan Daemen, +Michaël Peeters and Gilles Van Assche. For more information, feedback or +questions, please refer to our website: http://keccak.noekeon.org/ + +Implementation by the designers, +hereby denoted as "the implementer". + +To the extent possible under law, the implementer has waived all copyright +and related or neighboring rights to the source code in this file. +http://creativecommons.org/publicdomain/zero/1.0/ +*/ + +#define declareABCDE \ + V128 Abage, Abegi, Abigo, Abogu, Abuga; \ + V128 Akame, Akemi, Akimo, Akomu, Akuma; \ + V128 Abae, Abio, Agae, Agio, Akae, Akio, Amae, Amio; \ + V64 Aba, Abe, Abi, Abo, Abu; \ + V64 Aga, Age, Agi, Ago, Agu; \ + V64 Aka, Ake, Aki, Ako, Aku; \ + V64 Ama, Ame, Ami, Amo, Amu; \ + V128 Asase, Asiso; \ + V64 Asu; \ + V128 Bbage, Bbegi, Bbigo, Bbogu, Bbuga; \ + V128 Bkame, Bkemi, Bkimo, Bkomu, Bkuma; \ + V128 Bsase, Bsesi, Bsiso, Bsosu, Bsusa; \ + V128 Cae, Cei, Cio, Cou, Cua; \ + V128 Dau, Dea, Die, Doi, Duo; \ + V128 Dua, Dae, Dei, Dio, Dou; \ + V128 Ebage, Ebegi, Ebigo, Ebogu, Ebuga; \ + V128 Ekame, Ekemi, Ekimo, Ekomu, Ekuma; \ + V128 Esase, Esiso; \ + V64 Esu; \ + V128 Zero; + +#define prepareTheta + +#define computeD \ + Cua = GET64LOLO(Cua, Cae); \ + Dei = XOR128(Cae, ROL6464same(Cio, 1)); \ + Dou = XOR128(Cio, ROL6464same(Cua, 1)); \ + Cei = GET64HILO(Cae, Cio); \ + Dae = XOR128(Cua, ROL6464same(Cei, 1)); \ + Dau = GET64LOHI(Dae, Dou); \ + Dea = SWAP64(Dae); \ + Die = SWAP64(Dei); \ + Doi = GET64LOLO(Dou, Die); \ + Duo = SWAP64(Dou); + +/* --- Theta Rho Pi Chi Iota Prepare-theta */ +/* --- 64-bit lanes mapped to 64-bit and 128-bit words */ +#define thetaRhoPiChiIotaPrepareTheta(i, A, E) \ + computeD \ + \ + Bbage = XOR128(GET64LOHI(A##bage, A##bogu), Dau); \ + Bbage = ROL6464(Bbage, 0, 20); \ + Bbegi = XOR128(GET64HILO(A##bage, A##kame), Dea); \ + Bbegi = ROL6464(Bbegi, 44, 3); \ + Bbigo = XOR128(GET64LOHI(A##kimo, A##kame), Die); \ + Bbigo = ROL6464(Bbigo, 43, 45); \ + E##bage = XOR128(Bbage, ANDnu128(Bbegi, Bbigo)); \ + XOReq128(E##bage, CONST64(KeccakF1600RoundConstants[i])); \ + Cae = E##bage; \ + Bbogu = XOR128(GET64HILO(A##kimo, A##siso), Doi); \ + Bbogu = ROL6464(Bbogu, 21, 61); \ + E##begi = XOR128(Bbegi, ANDnu128(Bbigo, Bbogu)); \ + Cei = E##begi; \ + Bbuga = XOR128(GET64LOLO(A##su, A##bogu), Duo); \ + Bbuga = ROL6464(Bbuga, 14, 28); \ + E##bigo = XOR128(Bbigo, ANDnu128(Bbogu, Bbuga)); \ + Cio = E##bigo; \ + E##bogu = XOR128(Bbogu, ANDnu128(Bbuga, Bbage)); \ + Cou = E##bogu; \ + E##buga = XOR128(Bbuga, ANDnu128(Bbage, Bbegi)); \ + Cua = E##buga; \ +\ + Bkame = XOR128(GET64LOHI(A##begi, A##buga), Dea); \ + Bkame = ROL6464(Bkame, 1, 36); \ + Bkemi = XOR128(GET64HILO(A##begi, A##kemi), Die); \ + Bkemi = ROL6464(Bkemi, 6, 10); \ + Bkimo = XOR128(GET64LOHI(A##komu, A##kemi), Doi); \ + Bkimo = ROL6464(Bkimo, 25, 15); \ + E##kame = XOR128(Bkame, ANDnu128(Bkemi, Bkimo)); \ + XOReq128(Cae, E##kame); \ + Bkomu = XOR128(GET64HIHI(A##komu, A##siso), Duo); \ + Bkomu = ROL6464(Bkomu, 8, 56); \ + E##kemi = XOR128(Bkemi, ANDnu128(Bkimo, Bkomu)); \ + XOReq128(Cei, E##kemi); \ + Bkuma = XOR128(GET64LOLO(A##sase, A##buga), Dau); \ + Bkuma = ROL6464(Bkuma, 18, 27); \ + E##kimo = XOR128(Bkimo, ANDnu128(Bkomu, Bkuma)); \ + XOReq128(Cio, E##kimo); \ + E##komu = XOR128(Bkomu, ANDnu128(Bkuma, Bkame)); \ + XOReq128(Cou, E##komu); \ + E##kuma = XOR128(Bkuma, ANDnu128(Bkame, Bkemi)); \ + XOReq128(Cua, E##kuma); \ +\ + Bsase = XOR128(A##bigo, SWAP64(Doi)); \ + Bsase = ROL6464(Bsase, 62, 55); \ + Bsiso = XOR128(A##kuma, SWAP64(Dau)); \ + Bsiso = ROL6464(Bsiso, 39, 41); \ + Bsusa = XOR64(COPY64HI2LO(A##sase), Dei); \ + Bsusa = ROL6464same(Bsusa, 2); \ + Bsusa = GET64LOLO(Bsusa, Bsase); \ + Bsesi = GET64HILO(Bsase, Bsiso); \ + Bsosu = GET64HILO(Bsiso, Bsusa); \ + E##sase = XOR128(Bsase, ANDnu128(Bsesi, Bsiso)); \ + XOReq128(Cae, E##sase); \ + E##siso = XOR128(Bsiso, ANDnu128(Bsosu, Bsusa)); \ + XOReq128(Cio, E##siso); \ + E##su = GET64LOLO(XOR128(Bsusa, ANDnu128(Bsase, Bsesi)), Zero); \ + XOReq128(Cua, E##su); \ +\ + Zero = ZERO128(); \ + XOReq128(Cae, GET64HIHI(Cua, Zero)); \ + XOReq128(Cae, GET64LOLO(Zero, Cei)); \ + XOReq128(Cio, GET64HIHI(Cei, Zero)); \ + XOReq128(Cio, GET64LOLO(Zero, Cou)); \ + XOReq128(Cua, GET64HIHI(Cou, Zero)); \ + +/* --- Theta Rho Pi Chi Iota */ +/* --- 64-bit lanes mapped to 64-bit and 128-bit words */ +#define thetaRhoPiChiIota(i, A, E) thetaRhoPiChiIotaPrepareTheta(i, A, E) + +static const UINT64 KeccakF1600RoundConstants[24] = { + 0x0000000000000001ULL, + 0x0000000000008082ULL, + 0x800000000000808aULL, + 0x8000000080008000ULL, + 0x000000000000808bULL, + 0x0000000080000001ULL, + 0x8000000080008081ULL, + 0x8000000000008009ULL, + 0x000000000000008aULL, + 0x0000000000000088ULL, + 0x0000000080008009ULL, + 0x000000008000000aULL, + 0x000000008000808bULL, + 0x800000000000008bULL, + 0x8000000000008089ULL, + 0x8000000000008003ULL, + 0x8000000000008002ULL, + 0x8000000000000080ULL, + 0x000000000000800aULL, + 0x800000008000000aULL, + 0x8000000080008081ULL, + 0x8000000000008080ULL, + 0x0000000080000001ULL, + 0x8000000080008008ULL }; + +#define copyFromStateAndXor576bits(X, state, input) \ + X##bae = XOR128(LOAD128(state[ 0]), LOAD128u(input[ 0])); \ + X##ba = X##bae; \ + X##be = GET64HIHI(X##bae, X##bae); \ + Cae = X##bae; \ + X##bio = XOR128(LOAD128(state[ 2]), LOAD128u(input[ 2])); \ + X##bi = X##bio; \ + X##bo = GET64HIHI(X##bio, X##bio); \ + Cio = X##bio; \ + X##bu = XOR64(LOAD64(state[ 4]), LOAD64(input[ 4])); \ + Cua = X##bu; \ + X##gae = XOR128(LOAD128u(state[ 5]), LOAD128u(input[ 5])); \ + X##ga = X##gae; \ + X##buga = GET64LOLO(X##bu, X##ga); \ + X##ge = GET64HIHI(X##gae, X##gae); \ + X##bage = GET64LOLO(X##ba, X##ge); \ + XOReq128(Cae, X##gae); \ + X##gio = XOR128(LOAD128u(state[ 7]), LOAD128u(input[ 7])); \ + X##gi = X##gio; \ + X##begi = GET64LOLO(X##be, X##gi); \ + X##go = GET64HIHI(X##gio, X##gio); \ + X##bigo = GET64LOLO(X##bi, X##go); \ + XOReq128(Cio, X##gio); \ + X##gu = LOAD64(state[ 9]); \ + X##bogu = GET64LOLO(X##bo, X##gu); \ + XOReq64(Cua, X##gu); \ + X##kae = LOAD128(state[10]); \ + X##ka = X##kae; \ + X##ke = GET64HIHI(X##kae, X##kae); \ + XOReq128(Cae, X##kae); \ + X##kio = LOAD128(state[12]); \ + X##ki = X##kio; \ + X##ko = GET64HIHI(X##kio, X##kio); \ + XOReq128(Cio, X##kio); \ + X##kuma = LOAD128(state[14]); \ + XOReq64(Cua, X##kuma); \ + X##me = LOAD64(state[16]); \ + X##kame = GET64LOLO(X##ka, X##me); \ + XOReq128(Cae, GET64HIHI(X##kuma, X##kame)); \ + X##mio = LOAD128u(state[17]); \ + X##mi = X##mio; \ + X##kemi = GET64LOLO(X##ke, X##mi); \ + X##mo = GET64HIHI(X##mio, X##mio); \ + X##kimo = GET64LOLO(X##ki, X##mo); \ + XOReq128(Cio, X##mio); \ + X##mu = LOAD64(state[19]); \ + X##komu = GET64LOLO(X##ko, X##mu); \ + XOReq64(Cua, X##mu); \ + X##sase = LOAD128(state[20]); \ + XOReq128(Cae, X##sase); \ + X##siso = LOAD128(state[22]); \ + XOReq128(Cio, X##siso); \ + X##su = LOAD64(state[24]); \ + XOReq64(Cua, X##su); \ + +#define copyFromStateAndXor832bits(X, state, input) \ + X##bae = XOR128(LOAD128(state[ 0]), LOAD128u(input[ 0])); \ + X##ba = X##bae; \ + X##be = GET64HIHI(X##bae, X##bae); \ + Cae = X##bae; \ + X##bio = XOR128(LOAD128(state[ 2]), LOAD128u(input[ 2])); \ + X##bi = X##bio; \ + X##bo = GET64HIHI(X##bio, X##bio); \ + Cio = X##bio; \ + X##bu = XOR64(LOAD64(state[ 4]), LOAD64(input[ 4])); \ + Cua = X##bu; \ + X##gae = XOR128(LOAD128u(state[ 5]), LOAD128u(input[ 5])); \ + X##ga = X##gae; \ + X##buga = GET64LOLO(X##bu, X##ga); \ + X##ge = GET64HIHI(X##gae, X##gae); \ + X##bage = GET64LOLO(X##ba, X##ge); \ + XOReq128(Cae, X##gae); \ + X##gio = XOR128(LOAD128u(state[ 7]), LOAD128u(input[ 7])); \ + X##gi = X##gio; \ + X##begi = GET64LOLO(X##be, X##gi); \ + X##go = GET64HIHI(X##gio, X##gio); \ + X##bigo = GET64LOLO(X##bi, X##go); \ + XOReq128(Cio, X##gio); \ + X##gu = XOR64(LOAD64(state[ 9]), LOAD64(input[ 9])); \ + X##bogu = GET64LOLO(X##bo, X##gu); \ + XOReq64(Cua, X##gu); \ + X##kae = XOR128(LOAD128(state[10]), LOAD128u(input[10])); \ + X##ka = X##kae; \ + X##ke = GET64HIHI(X##kae, X##kae); \ + XOReq128(Cae, X##kae); \ + X##kio = XOR128(LOAD128(state[12]), LOAD64(input[12])); \ + X##ki = X##kio; \ + X##ko = GET64HIHI(X##kio, X##kio); \ + XOReq128(Cio, X##kio); \ + X##kuma = LOAD128(state[14]); \ + XOReq64(Cua, X##kuma); \ + X##me = LOAD64(state[16]); \ + X##kame = GET64LOLO(X##ka, X##me); \ + XOReq128(Cae, GET64HIHI(X##kuma, X##kame)); \ + X##mio = LOAD128u(state[17]); \ + X##mi = X##mio; \ + X##kemi = GET64LOLO(X##ke, X##mi); \ + X##mo = GET64HIHI(X##mio, X##mio); \ + X##kimo = GET64LOLO(X##ki, X##mo); \ + XOReq128(Cio, X##mio); \ + X##mu = LOAD64(state[19]); \ + X##komu = GET64LOLO(X##ko, X##mu); \ + XOReq64(Cua, X##mu); \ + X##sase = LOAD128(state[20]); \ + XOReq128(Cae, X##sase); \ + X##siso = LOAD128(state[22]); \ + XOReq128(Cio, X##siso); \ + X##su = LOAD64(state[24]); \ + XOReq64(Cua, X##su); \ + +#define copyFromStateAndXor1024bits(X, state, input) \ + X##bae = XOR128(LOAD128(state[ 0]), LOAD128u(input[ 0])); \ + X##ba = X##bae; \ + X##be = GET64HIHI(X##bae, X##bae); \ + Cae = X##bae; \ + X##bio = XOR128(LOAD128(state[ 2]), LOAD128u(input[ 2])); \ + X##bi = X##bio; \ + X##bo = GET64HIHI(X##bio, X##bio); \ + Cio = X##bio; \ + X##bu = XOR64(LOAD64(state[ 4]), LOAD64(input[ 4])); \ + Cua = X##bu; \ + X##gae = XOR128(LOAD128u(state[ 5]), LOAD128u(input[ 5])); \ + X##ga = X##gae; \ + X##buga = GET64LOLO(X##bu, X##ga); \ + X##ge = GET64HIHI(X##gae, X##gae); \ + X##bage = GET64LOLO(X##ba, X##ge); \ + XOReq128(Cae, X##gae); \ + X##gio = XOR128(LOAD128u(state[ 7]), LOAD128u(input[ 7])); \ + X##gi = X##gio; \ + X##begi = GET64LOLO(X##be, X##gi); \ + X##go = GET64HIHI(X##gio, X##gio); \ + X##bigo = GET64LOLO(X##bi, X##go); \ + XOReq128(Cio, X##gio); \ + X##gu = XOR64(LOAD64(state[ 9]), LOAD64(input[ 9])); \ + X##bogu = GET64LOLO(X##bo, X##gu); \ + XOReq64(Cua, X##gu); \ + X##kae = XOR128(LOAD128(state[10]), LOAD128u(input[10])); \ + X##ka = X##kae; \ + X##ke = GET64HIHI(X##kae, X##kae); \ + XOReq128(Cae, X##kae); \ + X##kio = XOR128(LOAD128(state[12]), LOAD128u(input[12])); \ + X##ki = X##kio; \ + X##ko = GET64HIHI(X##kio, X##kio); \ + XOReq128(Cio, X##kio); \ + X##kuma = XOR128(LOAD128(state[14]), LOAD128(input[14])); \ + XOReq64(Cua, X##kuma); \ + X##me = LOAD64(state[16]); \ + X##kame = GET64LOLO(X##ka, X##me); \ + XOReq128(Cae, GET64HIHI(X##kuma, X##kame)); \ + X##mio = LOAD128u(state[17]); \ + X##mi = X##mio; \ + X##kemi = GET64LOLO(X##ke, X##mi); \ + X##mo = GET64HIHI(X##mio, X##mio); \ + X##kimo = GET64LOLO(X##ki, X##mo); \ + XOReq128(Cio, X##mio); \ + X##mu = LOAD64(state[19]); \ + X##komu = GET64LOLO(X##ko, X##mu); \ + XOReq64(Cua, X##mu); \ + X##sase = LOAD128(state[20]); \ + XOReq128(Cae, X##sase); \ + X##siso = LOAD128(state[22]); \ + XOReq128(Cio, X##siso); \ + X##su = LOAD64(state[24]); \ + XOReq64(Cua, X##su); \ + +#define copyFromStateAndXor1088bits(X, state, input) \ + X##bae = XOR128(LOAD128(state[ 0]), LOAD128u(input[ 0])); \ + X##ba = X##bae; \ + X##be = GET64HIHI(X##bae, X##bae); \ + Cae = X##bae; \ + X##bio = XOR128(LOAD128(state[ 2]), LOAD128u(input[ 2])); \ + X##bi = X##bio; \ + X##bo = GET64HIHI(X##bio, X##bio); \ + Cio = X##bio; \ + X##bu = XOR64(LOAD64(state[ 4]), LOAD64(input[ 4])); \ + Cua = X##bu; \ + X##gae = XOR128(LOAD128u(state[ 5]), LOAD128u(input[ 5])); \ + X##ga = X##gae; \ + X##buga = GET64LOLO(X##bu, X##ga); \ + X##ge = GET64HIHI(X##gae, X##gae); \ + X##bage = GET64LOLO(X##ba, X##ge); \ + XOReq128(Cae, X##gae); \ + X##gio = XOR128(LOAD128u(state[ 7]), LOAD128u(input[ 7])); \ + X##gi = X##gio; \ + X##begi = GET64LOLO(X##be, X##gi); \ + X##go = GET64HIHI(X##gio, X##gio); \ + X##bigo = GET64LOLO(X##bi, X##go); \ + XOReq128(Cio, X##gio); \ + X##gu = XOR64(LOAD64(state[ 9]), LOAD64(input[ 9])); \ + X##bogu = GET64LOLO(X##bo, X##gu); \ + XOReq64(Cua, X##gu); \ + X##kae = XOR128(LOAD128(state[10]), LOAD128u(input[10])); \ + X##ka = X##kae; \ + X##ke = GET64HIHI(X##kae, X##kae); \ + XOReq128(Cae, X##kae); \ + X##kio = XOR128(LOAD128(state[12]), LOAD128u(input[12])); \ + X##ki = X##kio; \ + X##ko = GET64HIHI(X##kio, X##kio); \ + XOReq128(Cio, X##kio); \ + X##kuma = XOR128(LOAD128(state[14]), LOAD128(input[14])); \ + XOReq64(Cua, X##kuma); \ + X##me = XOR64(LOAD64(state[16]), LOAD64(input[16])); \ + X##kame = GET64LOLO(X##ka, X##me); \ + XOReq128(Cae, GET64HIHI(X##kuma, X##kame)); \ + X##mio = LOAD128u(state[17]); \ + X##mi = X##mio; \ + X##kemi = GET64LOLO(X##ke, X##mi); \ + X##mo = GET64HIHI(X##mio, X##mio); \ + X##kimo = GET64LOLO(X##ki, X##mo); \ + XOReq128(Cio, X##mio); \ + X##mu = LOAD64(state[19]); \ + X##komu = GET64LOLO(X##ko, X##mu); \ + XOReq64(Cua, X##mu); \ + X##sase = LOAD128(state[20]); \ + XOReq128(Cae, X##sase); \ + X##siso = LOAD128(state[22]); \ + XOReq128(Cio, X##siso); \ + X##su = LOAD64(state[24]); \ + XOReq64(Cua, X##su); \ + +#define copyFromStateAndXor1152bits(X, state, input) \ + X##bae = XOR128(LOAD128(state[ 0]), LOAD128u(input[ 0])); \ + X##ba = X##bae; \ + X##be = GET64HIHI(X##bae, X##bae); \ + Cae = X##bae; \ + X##bio = XOR128(LOAD128(state[ 2]), LOAD128u(input[ 2])); \ + X##bi = X##bio; \ + X##bo = GET64HIHI(X##bio, X##bio); \ + Cio = X##bio; \ + X##bu = XOR64(LOAD64(state[ 4]), LOAD64(input[ 4])); \ + Cua = X##bu; \ + X##gae = XOR128(LOAD128u(state[ 5]), LOAD128u(input[ 5])); \ + X##ga = X##gae; \ + X##buga = GET64LOLO(X##bu, X##ga); \ + X##ge = GET64HIHI(X##gae, X##gae); \ + X##bage = GET64LOLO(X##ba, X##ge); \ + XOReq128(Cae, X##gae); \ + X##gio = XOR128(LOAD128u(state[ 7]), LOAD128u(input[ 7])); \ + X##gi = X##gio; \ + X##begi = GET64LOLO(X##be, X##gi); \ + X##go = GET64HIHI(X##gio, X##gio); \ + X##bigo = GET64LOLO(X##bi, X##go); \ + XOReq128(Cio, X##gio); \ + X##gu = XOR64(LOAD64(state[ 9]), LOAD64(input[ 9])); \ + X##bogu = GET64LOLO(X##bo, X##gu); \ + XOReq64(Cua, X##gu); \ + X##kae = XOR128(LOAD128(state[10]), LOAD128u(input[10])); \ + X##ka = X##kae; \ + X##ke = GET64HIHI(X##kae, X##kae); \ + XOReq128(Cae, X##kae); \ + X##kio = XOR128(LOAD128(state[12]), LOAD128u(input[12])); \ + X##ki = X##kio; \ + X##ko = GET64HIHI(X##kio, X##kio); \ + XOReq128(Cio, X##kio); \ + X##kuma = XOR128(LOAD128(state[14]), LOAD128(input[14])); \ + XOReq64(Cua, X##kuma); \ + X##me = XOR64(LOAD64(state[16]), LOAD64(input[16])); \ + X##kame = GET64LOLO(X##ka, X##me); \ + XOReq128(Cae, GET64HIHI(X##kuma, X##kame)); \ + X##mio = XOR128(LOAD128u(state[17]), LOAD64(input[17])); \ + X##mi = X##mio; \ + X##kemi = GET64LOLO(X##ke, X##mi); \ + X##mo = GET64HIHI(X##mio, X##mio); \ + X##kimo = GET64LOLO(X##ki, X##mo); \ + XOReq128(Cio, X##mio); \ + X##mu = LOAD64(state[19]); \ + X##komu = GET64LOLO(X##ko, X##mu); \ + XOReq64(Cua, X##mu); \ + X##sase = LOAD128(state[20]); \ + XOReq128(Cae, X##sase); \ + X##siso = LOAD128(state[22]); \ + XOReq128(Cio, X##siso); \ + X##su = LOAD64(state[24]); \ + XOReq64(Cua, X##su); \ + +#define copyFromStateAndXor1344bits(X, state, input) \ + X##bae = XOR128(LOAD128(state[ 0]), LOAD128u(input[ 0])); \ + X##ba = X##bae; \ + X##be = GET64HIHI(X##bae, X##bae); \ + Cae = X##bae; \ + X##bio = XOR128(LOAD128(state[ 2]), LOAD128u(input[ 2])); \ + X##bi = X##bio; \ + X##bo = GET64HIHI(X##bio, X##bio); \ + Cio = X##bio; \ + X##bu = XOR64(LOAD64(state[ 4]), LOAD64(input[ 4])); \ + Cua = X##bu; \ + X##gae = XOR128(LOAD128u(state[ 5]), LOAD128u(input[ 5])); \ + X##ga = X##gae; \ + X##buga = GET64LOLO(X##bu, X##ga); \ + X##ge = GET64HIHI(X##gae, X##gae); \ + X##bage = GET64LOLO(X##ba, X##ge); \ + XOReq128(Cae, X##gae); \ + X##gio = XOR128(LOAD128u(state[ 7]), LOAD128u(input[ 7])); \ + X##gi = X##gio; \ + X##begi = GET64LOLO(X##be, X##gi); \ + X##go = GET64HIHI(X##gio, X##gio); \ + X##bigo = GET64LOLO(X##bi, X##go); \ + XOReq128(Cio, X##gio); \ + X##gu = XOR64(LOAD64(state[ 9]), LOAD64(input[ 9])); \ + X##bogu = GET64LOLO(X##bo, X##gu); \ + XOReq64(Cua, X##gu); \ + X##kae = XOR128(LOAD128(state[10]), LOAD128u(input[10])); \ + X##ka = X##kae; \ + X##ke = GET64HIHI(X##kae, X##kae); \ + XOReq128(Cae, X##kae); \ + X##kio = XOR128(LOAD128(state[12]), LOAD128u(input[12])); \ + X##ki = X##kio; \ + X##ko = GET64HIHI(X##kio, X##kio); \ + XOReq128(Cio, X##kio); \ + X##kuma = XOR128(LOAD128(state[14]), LOAD128(input[14])); \ + XOReq64(Cua, X##kuma); \ + X##me = XOR64(LOAD64(state[16]), LOAD64(input[16])); \ + X##kame = GET64LOLO(X##ka, X##me); \ + XOReq128(Cae, GET64HIHI(X##kuma, X##kame)); \ + X##mio = XOR128(LOAD128u(state[17]), LOAD128u(input[17])); \ + X##mi = X##mio; \ + X##kemi = GET64LOLO(X##ke, X##mi); \ + X##mo = GET64HIHI(X##mio, X##mio); \ + X##kimo = GET64LOLO(X##ki, X##mo); \ + XOReq128(Cio, X##mio); \ + X##mu = XOR64(LOAD64(state[19]), LOAD64(input[19])); \ + X##komu = GET64LOLO(X##ko, X##mu); \ + XOReq64(Cua, X##mu); \ + X##sase = XOR128(LOAD128(state[20]), LOAD64(input[20])); \ + XOReq128(Cae, X##sase); \ + X##siso = LOAD128(state[22]); \ + XOReq128(Cio, X##siso); \ + X##su = LOAD64(state[24]); \ + XOReq64(Cua, X##su); \ + +#define copyFromState(X, state) \ + X##bae = LOAD128(state[ 0]); \ + X##ba = X##bae; \ + X##be = GET64HIHI(X##bae, X##bae); \ + Cae = X##bae; \ + X##bio = LOAD128(state[ 2]); \ + X##bi = X##bio; \ + X##bo = GET64HIHI(X##bio, X##bio); \ + Cio = X##bio; \ + X##bu = LOAD64(state[ 4]); \ + Cua = X##bu; \ + X##gae = LOAD128u(state[ 5]); \ + X##ga = X##gae; \ + X##buga = GET64LOLO(X##bu, X##ga); \ + X##ge = GET64HIHI(X##gae, X##gae); \ + X##bage = GET64LOLO(X##ba, X##ge); \ + XOReq128(Cae, X##gae); \ + X##gio = LOAD128u(state[ 7]); \ + X##gi = X##gio; \ + X##begi = GET64LOLO(X##be, X##gi); \ + X##go = GET64HIHI(X##gio, X##gio); \ + X##bigo = GET64LOLO(X##bi, X##go); \ + XOReq128(Cio, X##gio); \ + X##gu = LOAD64(state[ 9]); \ + X##bogu = GET64LOLO(X##bo, X##gu); \ + XOReq64(Cua, X##gu); \ + X##kae = LOAD128(state[10]); \ + X##ka = X##kae; \ + X##ke = GET64HIHI(X##kae, X##kae); \ + XOReq128(Cae, X##kae); \ + X##kio = LOAD128(state[12]); \ + X##ki = X##kio; \ + X##ko = GET64HIHI(X##kio, X##kio); \ + XOReq128(Cio, X##kio); \ + X##kuma = LOAD128(state[14]); \ + XOReq64(Cua, X##kuma); \ + X##me = LOAD64(state[16]); \ + X##kame = GET64LOLO(X##ka, X##me); \ + XOReq128(Cae, GET64HIHI(X##kuma, X##kame)); \ + X##mio = LOAD128u(state[17]); \ + X##mi = X##mio; \ + X##kemi = GET64LOLO(X##ke, X##mi); \ + X##mo = GET64HIHI(X##mio, X##mio); \ + X##kimo = GET64LOLO(X##ki, X##mo); \ + XOReq128(Cio, X##mio); \ + X##mu = LOAD64(state[19]); \ + X##komu = GET64LOLO(X##ko, X##mu); \ + XOReq64(Cua, X##mu); \ + X##sase = LOAD128(state[20]); \ + XOReq128(Cae, X##sase); \ + X##siso = LOAD128(state[22]); \ + XOReq128(Cio, X##siso); \ + X##su = LOAD64(state[24]); \ + XOReq64(Cua, X##su); \ + +#define copyToState(state, X) \ + STORE64(state[ 0], X##bage); \ + STORE64(state[ 1], X##begi); \ + STORE64(state[ 2], X##bigo); \ + STORE64(state[ 3], X##bogu); \ + STORE128(state[ 4], X##buga); \ + STORE64(state[ 6], COPY64HI2LO(X##bage)); \ + STORE64(state[ 7], COPY64HI2LO(X##begi)); \ + STORE64(state[ 8], COPY64HI2LO(X##bigo)); \ + STORE64(state[ 9], COPY64HI2LO(X##bogu)); \ + STORE64(state[10], X##kame); \ + STORE64(state[11], X##kemi); \ + STORE64(state[12], X##kimo); \ + STORE64(state[13], X##komu); \ + STORE128(state[14], X##kuma); \ + STORE64(state[16], COPY64HI2LO(X##kame)); \ + STORE64(state[17], COPY64HI2LO(X##kemi)); \ + STORE64(state[18], COPY64HI2LO(X##kimo)); \ + STORE64(state[19], COPY64HI2LO(X##komu)); \ + STORE128(state[20], X##sase); \ + STORE128(state[22], X##siso); \ + STORE64(state[24], X##su); \ + +#define copyStateVariables(X, Y) \ + X##bage = Y##bage; \ + X##begi = Y##begi; \ + X##bigo = Y##bigo; \ + X##bogu = Y##bogu; \ + X##buga = Y##buga; \ + X##kame = Y##kame; \ + X##kemi = Y##kemi; \ + X##kimo = Y##kimo; \ + X##komu = Y##komu; \ + X##kuma = Y##kuma; \ + X##sase = Y##sase; \ + X##siso = Y##siso; \ + X##su = Y##su; \ + diff --git a/Modules/_sha3/keccak/KeccakNISTInterface.c b/Modules/_sha3/keccak/KeccakNISTInterface.c new file mode 100644 index 0000000..e94082b --- /dev/null +++ b/Modules/_sha3/keccak/KeccakNISTInterface.c @@ -0,0 +1,83 @@ +/* +The Keccak sponge function, designed by Guido Bertoni, Joan Daemen, +Michaël Peeters and Gilles Van Assche. For more information, feedback or +questions, please refer to our website: http://keccak.noekeon.org/ + +Implementation by the designers, +hereby denoted as "the implementer". + +To the extent possible under law, the implementer has waived all copyright +and related or neighboring rights to the source code in this file. +http://creativecommons.org/publicdomain/zero/1.0/ +*/ + +#include <string.h> +#include "KeccakNISTInterface.h" +#include "KeccakF-1600-interface.h" + +static HashReturn Init(hashState *state, int hashbitlen) +{ + switch(hashbitlen) { + case 0: /* Default parameters, arbitrary length output */ + InitSponge((spongeState*)state, 1024, 576); + break; + case 224: + InitSponge((spongeState*)state, 1152, 448); + break; + case 256: + InitSponge((spongeState*)state, 1088, 512); + break; + case 384: + InitSponge((spongeState*)state, 832, 768); + break; + case 512: + InitSponge((spongeState*)state, 576, 1024); + break; + default: + return BAD_HASHLEN; + } + state->fixedOutputLength = hashbitlen; + return SUCCESS; +} + +static HashReturn Update(hashState *state, const BitSequence *data, DataLength databitlen) +{ + if ((databitlen % 8) == 0) + return Absorb((spongeState*)state, data, databitlen); + else { + HashReturn ret = Absorb((spongeState*)state, data, databitlen - (databitlen % 8)); + if (ret == SUCCESS) { + unsigned char lastByte; + /* Align the last partial byte to the least significant bits */ + lastByte = data[databitlen/8] >> (8 - (databitlen % 8)); + return Absorb((spongeState*)state, &lastByte, databitlen % 8); + } + else + return ret; + } +} + +static HashReturn Final(hashState *state, BitSequence *hashval) +{ + return Squeeze(state, hashval, state->fixedOutputLength); +} + +/* +static HashReturn Hash(int hashbitlen, const BitSequence *data, DataLength databitlen, BitSequence *hashval) +{ + hashState state; + HashReturn result; + + if ((hashbitlen != 224) && (hashbitlen != 256) && (hashbitlen != 384) && (hashbitlen != 512)) + return BAD_HASHLEN; * Only the four fixed output lengths available through this API * + result = Init(&state, hashbitlen); + if (result != SUCCESS) + return result; + result = Update(&state, data, databitlen); + if (result != SUCCESS) + return result; + result = Final(&state, hashval); + return result; +} +*/ + diff --git a/Modules/_sha3/keccak/KeccakNISTInterface.h b/Modules/_sha3/keccak/KeccakNISTInterface.h new file mode 100644 index 0000000..244431b --- /dev/null +++ b/Modules/_sha3/keccak/KeccakNISTInterface.h @@ -0,0 +1,72 @@ +/* +The Keccak sponge function, designed by Guido Bertoni, Joan Daemen, +Michaël Peeters and Gilles Van Assche. For more information, feedback or +questions, please refer to our website: http://keccak.noekeon.org/ + +Implementation by the designers, +hereby denoted as "the implementer". + +To the extent possible under law, the implementer has waived all copyright +and related or neighboring rights to the source code in this file. +http://creativecommons.org/publicdomain/zero/1.0/ +*/ + +#ifndef _KeccakNISTInterface_h_ +#define _KeccakNISTInterface_h_ + +#include "KeccakSponge.h" + +typedef unsigned char BitSequence; +typedef unsigned long long DataLength; +typedef enum { SUCCESS = 0, FAIL = 1, BAD_HASHLEN = 2 } HashReturn; + +typedef spongeState hashState; + +/** + * Function to initialize the state of the Keccak[r, c] sponge function. + * The rate r and capacity c values are determined from @a hashbitlen. + * @param state Pointer to the state of the sponge function to be initialized. + * @param hashbitlen The desired number of output bits, + * or 0 for Keccak[] with default parameters + * and arbitrarily-long output. + * @pre The value of hashbitlen must be one of 0, 224, 256, 384 and 512. + * @return SUCCESS if successful, BAD_HASHLEN if the value of hashbitlen is incorrect. + */ +static HashReturn Init(hashState *state, int hashbitlen); +/** + * Function to give input data for the sponge function to absorb. + * @param state Pointer to the state of the sponge function initialized by Init(). + * @param data Pointer to the input data. + * When @a databitLen is not a multiple of 8, the last bits of data must be + * in the most significant bits of the last byte. + * @param databitLen The number of input bits provided in the input data. + * @pre In the previous call to Absorb(), databitLen was a multiple of 8. + * @return SUCCESS if successful, FAIL otherwise. + */ +static HashReturn Update(hashState *state, const BitSequence *data, DataLength databitlen); +/** + * Function to squeeze output data from the sponge function. + * If @a hashbitlen was not 0 in the call to Init(), the number of output bits is equal to @a hashbitlen. + * If @a hashbitlen was 0 in the call to Init(), the output bits must be extracted using the Squeeze() function. + * @param state Pointer to the state of the sponge function initialized by Init(). + * @param hashval Pointer to the buffer where to store the output data. + * @return SUCCESS if successful, FAIL otherwise. + */ +static HashReturn Final(hashState *state, BitSequence *hashval); +/** + * Function to compute a hash using the Keccak[r, c] sponge function. + * The rate r and capacity c values are determined from @a hashbitlen. + * @param hashbitlen The desired number of output bits. + * @param data Pointer to the input data. + * When @a databitLen is not a multiple of 8, the last bits of data must be + * in the most significant bits of the last byte. + * @param databitLen The number of input bits provided in the input data. + * @param hashval Pointer to the buffer where to store the output data. + * @pre The value of hashbitlen must be one of 224, 256, 384 and 512. + * @return SUCCESS if successful, BAD_HASHLEN if the value of hashbitlen is incorrect. + */ +/* +static HashReturn Hash(int hashbitlen, const BitSequence *data, DataLength databitlen, BitSequence *hashval); +*/ + +#endif diff --git a/Modules/_sha3/keccak/KeccakSponge.c b/Modules/_sha3/keccak/KeccakSponge.c new file mode 100644 index 0000000..1ca6bf0 --- /dev/null +++ b/Modules/_sha3/keccak/KeccakSponge.c @@ -0,0 +1,266 @@ +/* +The Keccak sponge function, designed by Guido Bertoni, Joan Daemen, +Michaël Peeters and Gilles Van Assche. For more information, feedback or +questions, please refer to our website: http://keccak.noekeon.org/ + +Implementation by the designers, +hereby denoted as "the implementer". + +To the extent possible under law, the implementer has waived all copyright +and related or neighboring rights to the source code in this file. +http://creativecommons.org/publicdomain/zero/1.0/ +*/ + +#include <string.h> +#include "KeccakSponge.h" +#include "KeccakF-1600-interface.h" +#ifdef KeccakReference +#include "displayIntermediateValues.h" +#endif + +static int InitSponge(spongeState *state, unsigned int rate, unsigned int capacity) +{ + if (rate+capacity != 1600) + return 1; + if ((rate <= 0) || (rate >= 1600) || ((rate % 64) != 0)) + return 1; + KeccakInitialize(); + state->rate = rate; + state->capacity = capacity; + state->fixedOutputLength = 0; + KeccakInitializeState(state->state); + memset(state->dataQueue, 0, KeccakMaximumRateInBytes); + state->bitsInQueue = 0; + state->squeezing = 0; + state->bitsAvailableForSqueezing = 0; + + return 0; +} + +static void AbsorbQueue(spongeState *state) +{ + /* state->bitsInQueue is assumed to be equal to state->rate */ + #ifdef KeccakReference + displayBytes(1, "Block to be absorbed", state->dataQueue, state->rate/8); + #endif +#ifdef ProvideFast576 + if (state->rate == 576) + KeccakAbsorb576bits(state->state, state->dataQueue); + else +#endif +#ifdef ProvideFast832 + if (state->rate == 832) + KeccakAbsorb832bits(state->state, state->dataQueue); + else +#endif +#ifdef ProvideFast1024 + if (state->rate == 1024) + KeccakAbsorb1024bits(state->state, state->dataQueue); + else +#endif +#ifdef ProvideFast1088 + if (state->rate == 1088) + KeccakAbsorb1088bits(state->state, state->dataQueue); + else +#endif +#ifdef ProvideFast1152 + if (state->rate == 1152) + KeccakAbsorb1152bits(state->state, state->dataQueue); + else +#endif +#ifdef ProvideFast1344 + if (state->rate == 1344) + KeccakAbsorb1344bits(state->state, state->dataQueue); + else +#endif + KeccakAbsorb(state->state, state->dataQueue, state->rate/64); + state->bitsInQueue = 0; +} + +static int Absorb(spongeState *state, const unsigned char *data, unsigned long long databitlen) +{ + unsigned long long i, j, wholeBlocks; + unsigned int partialBlock, partialByte; + const unsigned char *curData; + + if ((state->bitsInQueue % 8) != 0) + return 1; /* Only the last call may contain a partial byte */ + if (state->squeezing) + return 1; /* Too late for additional input */ + + i = 0; + while(i < databitlen) { + if ((state->bitsInQueue == 0) && (databitlen >= state->rate) && (i <= (databitlen-state->rate))) { + wholeBlocks = (databitlen-i)/state->rate; + curData = data+i/8; +#ifdef ProvideFast576 + if (state->rate == 576) { + for(j=0; j<wholeBlocks; j++, curData+=576/8) { + #ifdef KeccakReference + displayBytes(1, "Block to be absorbed", curData, state->rate/8); + #endif + KeccakAbsorb576bits(state->state, curData); + } + } + else +#endif +#ifdef ProvideFast832 + if (state->rate == 832) { + for(j=0; j<wholeBlocks; j++, curData+=832/8) { + #ifdef KeccakReference + displayBytes(1, "Block to be absorbed", curData, state->rate/8); + #endif + KeccakAbsorb832bits(state->state, curData); + } + } + else +#endif +#ifdef ProvideFast1024 + if (state->rate == 1024) { + for(j=0; j<wholeBlocks; j++, curData+=1024/8) { + #ifdef KeccakReference + displayBytes(1, "Block to be absorbed", curData, state->rate/8); + #endif + KeccakAbsorb1024bits(state->state, curData); + } + } + else +#endif +#ifdef ProvideFast1088 + if (state->rate == 1088) { + for(j=0; j<wholeBlocks; j++, curData+=1088/8) { + #ifdef KeccakReference + displayBytes(1, "Block to be absorbed", curData, state->rate/8); + #endif + KeccakAbsorb1088bits(state->state, curData); + } + } + else +#endif +#ifdef ProvideFast1152 + if (state->rate == 1152) { + for(j=0; j<wholeBlocks; j++, curData+=1152/8) { + #ifdef KeccakReference + displayBytes(1, "Block to be absorbed", curData, state->rate/8); + #endif + KeccakAbsorb1152bits(state->state, curData); + } + } + else +#endif +#ifdef ProvideFast1344 + if (state->rate == 1344) { + for(j=0; j<wholeBlocks; j++, curData+=1344/8) { + #ifdef KeccakReference + displayBytes(1, "Block to be absorbed", curData, state->rate/8); + #endif + KeccakAbsorb1344bits(state->state, curData); + } + } + else +#endif + { + for(j=0; j<wholeBlocks; j++, curData+=state->rate/8) { + #ifdef KeccakReference + displayBytes(1, "Block to be absorbed", curData, state->rate/8); + #endif + KeccakAbsorb(state->state, curData, state->rate/64); + } + } + i += wholeBlocks*state->rate; + } + else { + partialBlock = (unsigned int)(databitlen - i); + if (partialBlock+state->bitsInQueue > state->rate) + partialBlock = state->rate-state->bitsInQueue; + partialByte = partialBlock % 8; + partialBlock -= partialByte; + memcpy(state->dataQueue+state->bitsInQueue/8, data+i/8, partialBlock/8); + state->bitsInQueue += partialBlock; + i += partialBlock; + if (state->bitsInQueue == state->rate) + AbsorbQueue(state); + if (partialByte > 0) { + unsigned char mask = (1 << partialByte)-1; + state->dataQueue[state->bitsInQueue/8] = data[i/8] & mask; + state->bitsInQueue += partialByte; + i += partialByte; + } + } + } + return 0; +} + +static void PadAndSwitchToSqueezingPhase(spongeState *state) +{ + /* Note: the bits are numbered from 0=LSB to 7=MSB */ + if (state->bitsInQueue + 1 == state->rate) { + state->dataQueue[state->bitsInQueue/8 ] |= 1 << (state->bitsInQueue % 8); + AbsorbQueue(state); + memset(state->dataQueue, 0, state->rate/8); + } + else { + memset(state->dataQueue + (state->bitsInQueue+7)/8, 0, state->rate/8 - (state->bitsInQueue+7)/8); + state->dataQueue[state->bitsInQueue/8 ] |= 1 << (state->bitsInQueue % 8); + } + state->dataQueue[(state->rate-1)/8] |= 1 << ((state->rate-1) % 8); + AbsorbQueue(state); + + #ifdef KeccakReference + displayText(1, "--- Switching to squeezing phase ---"); + #endif +#ifdef ProvideFast1024 + if (state->rate == 1024) { + KeccakExtract1024bits(state->state, state->dataQueue); + state->bitsAvailableForSqueezing = 1024; + } + else +#endif + { + KeccakExtract(state->state, state->dataQueue, state->rate/64); + state->bitsAvailableForSqueezing = state->rate; + } + #ifdef KeccakReference + displayBytes(1, "Block available for squeezing", state->dataQueue, state->bitsAvailableForSqueezing/8); + #endif + state->squeezing = 1; +} + +static int Squeeze(spongeState *state, unsigned char *output, unsigned long long outputLength) +{ + unsigned long long i; + unsigned int partialBlock; + + if (!state->squeezing) + PadAndSwitchToSqueezingPhase(state); + if ((outputLength % 8) != 0) + return 1; /* Only multiple of 8 bits are allowed, truncation can be done at user level */ + + i = 0; + while(i < outputLength) { + if (state->bitsAvailableForSqueezing == 0) { + KeccakPermutation(state->state); +#ifdef ProvideFast1024 + if (state->rate == 1024) { + KeccakExtract1024bits(state->state, state->dataQueue); + state->bitsAvailableForSqueezing = 1024; + } + else +#endif + { + KeccakExtract(state->state, state->dataQueue, state->rate/64); + state->bitsAvailableForSqueezing = state->rate; + } + #ifdef KeccakReference + displayBytes(1, "Block available for squeezing", state->dataQueue, state->bitsAvailableForSqueezing/8); + #endif + } + partialBlock = state->bitsAvailableForSqueezing; + if ((unsigned long long)partialBlock > outputLength - i) + partialBlock = (unsigned int)(outputLength - i); + memcpy(output+i/8, state->dataQueue+(state->rate-state->bitsAvailableForSqueezing)/8, partialBlock/8); + state->bitsAvailableForSqueezing -= partialBlock; + i += partialBlock; + } + return 0; +} diff --git a/Modules/_sha3/keccak/KeccakSponge.h b/Modules/_sha3/keccak/KeccakSponge.h new file mode 100644 index 0000000..a545cac --- /dev/null +++ b/Modules/_sha3/keccak/KeccakSponge.h @@ -0,0 +1,76 @@ +/* +The Keccak sponge function, designed by Guido Bertoni, Joan Daemen, +Michaël Peeters and Gilles Van Assche. For more information, feedback or +questions, please refer to our website: http://keccak.noekeon.org/ + +Implementation by the designers, +hereby denoted as "the implementer". + +To the extent possible under law, the implementer has waived all copyright +and related or neighboring rights to the source code in this file. +http://creativecommons.org/publicdomain/zero/1.0/ +*/ + +#ifndef _KeccakSponge_h_ +#define _KeccakSponge_h_ + +#define KeccakPermutationSize 1600 +#define KeccakPermutationSizeInBytes (KeccakPermutationSize/8) +#define KeccakMaximumRate 1536 +#define KeccakMaximumRateInBytes (KeccakMaximumRate/8) + +#if defined(__GNUC__) +#define ALIGN __attribute__ ((aligned(32))) +#elif defined(_MSC_VER) +#define ALIGN __declspec(align(32)) +#else +#define ALIGN +#endif + +ALIGN typedef struct spongeStateStruct { + ALIGN unsigned char state[KeccakPermutationSizeInBytes]; + ALIGN unsigned char dataQueue[KeccakMaximumRateInBytes]; + unsigned int rate; + unsigned int capacity; + unsigned int bitsInQueue; + unsigned int fixedOutputLength; + int squeezing; + unsigned int bitsAvailableForSqueezing; +} spongeState; + +/** + * Function to initialize the state of the Keccak[r, c] sponge function. + * The sponge function is set to the absorbing phase. + * @param state Pointer to the state of the sponge function to be initialized. + * @param rate The value of the rate r. + * @param capacity The value of the capacity c. + * @pre One must have r+c=1600 and the rate a multiple of 64 bits in this implementation. + * @return Zero if successful, 1 otherwise. + */ +static int InitSponge(spongeState *state, unsigned int rate, unsigned int capacity); +/** + * Function to give input data for the sponge function to absorb. + * @param state Pointer to the state of the sponge function initialized by InitSponge(). + * @param data Pointer to the input data. + * When @a databitLen is not a multiple of 8, the last bits of data must be + * in the least significant bits of the last byte. + * @param databitLen The number of input bits provided in the input data. + * @pre In the previous call to Absorb(), databitLen was a multiple of 8. + * @pre The sponge function must be in the absorbing phase, + * i.e., Squeeze() must not have been called before. + * @return Zero if successful, 1 otherwise. + */ +static int Absorb(spongeState *state, const unsigned char *data, unsigned long long databitlen); +/** + * Function to squeeze output data from the sponge function. + * If the sponge function was in the absorbing phase, this function + * switches it to the squeezing phase. + * @param state Pointer to the state of the sponge function initialized by InitSponge(). + * @param output Pointer to the buffer where to store the output data. + * @param outputLength The number of output bits desired. + * It must be a multiple of 8. + * @return Zero if successful, 1 otherwise. + */ +static int Squeeze(spongeState *state, unsigned char *output, unsigned long long outputLength); + +#endif diff --git a/Modules/_sha3/keccak/brg_endian.h b/Modules/_sha3/keccak/brg_endian.h new file mode 100755 index 0000000..7226eb3 --- /dev/null +++ b/Modules/_sha3/keccak/brg_endian.h @@ -0,0 +1,142 @@ +/* + --------------------------------------------------------------------------- + Copyright (c) 1998-2008, Brian Gladman, Worcester, UK. All rights reserved. + + LICENSE TERMS + + The redistribution and use of this software (with or without changes) + is allowed without the payment of fees or royalties provided that: + + 1. source code distributions include the above copyright notice, this + list of conditions and the following disclaimer; + + 2. binary distributions include the above copyright notice, this list + of conditions and the following disclaimer in their documentation; + + 3. the name of the copyright holder is not used to endorse products + built using this software without specific written permission. + + DISCLAIMER + + This software is provided 'as is' with no explicit or implied warranties + in respect of its properties, including, but not limited to, correctness + and/or fitness for purpose. + --------------------------------------------------------------------------- + Issue Date: 20/12/2007 + Changes for ARM 9/9/2010 +*/ + +#ifndef _BRG_ENDIAN_H +#define _BRG_ENDIAN_H + +#define IS_BIG_ENDIAN 4321 /* byte 0 is most significant (mc68k) */ +#define IS_LITTLE_ENDIAN 1234 /* byte 0 is least significant (i386) */ + +#if 0 +/* Include files where endian defines and byteswap functions may reside */ +#if defined( __sun ) +# include <sys/isa_defs.h> +#elif defined( __FreeBSD__ ) || defined( __OpenBSD__ ) || defined( __NetBSD__ ) +# include <sys/endian.h> +#elif defined( BSD ) && ( BSD >= 199103 ) || defined( __APPLE__ ) || \ + defined( __CYGWIN32__ ) || defined( __DJGPP__ ) || defined( __osf__ ) +# include <machine/endian.h> +#elif defined( __linux__ ) || defined( __GNUC__ ) || defined( __GNU_LIBRARY__ ) +# if !defined( __MINGW32__ ) && !defined( _AIX ) +# include <endian.h> +# if !defined( __BEOS__ ) +# include <byteswap.h> +# endif +# endif +#endif +#endif + +/* Now attempt to set the define for platform byte order using any */ +/* of the four forms SYMBOL, _SYMBOL, __SYMBOL & __SYMBOL__, which */ +/* seem to encompass most endian symbol definitions */ + +#if defined( BIG_ENDIAN ) && defined( LITTLE_ENDIAN ) +# if defined( BYTE_ORDER ) && BYTE_ORDER == BIG_ENDIAN +# define PLATFORM_BYTE_ORDER IS_BIG_ENDIAN +# elif defined( BYTE_ORDER ) && BYTE_ORDER == LITTLE_ENDIAN +# define PLATFORM_BYTE_ORDER IS_LITTLE_ENDIAN +# endif +#elif defined( BIG_ENDIAN ) +# define PLATFORM_BYTE_ORDER IS_BIG_ENDIAN +#elif defined( LITTLE_ENDIAN ) +# define PLATFORM_BYTE_ORDER IS_LITTLE_ENDIAN +#endif + +#if defined( _BIG_ENDIAN ) && defined( _LITTLE_ENDIAN ) +# if defined( _BYTE_ORDER ) && _BYTE_ORDER == _BIG_ENDIAN +# define PLATFORM_BYTE_ORDER IS_BIG_ENDIAN +# elif defined( _BYTE_ORDER ) && _BYTE_ORDER == _LITTLE_ENDIAN +# define PLATFORM_BYTE_ORDER IS_LITTLE_ENDIAN +# endif +#elif defined( _BIG_ENDIAN ) +# define PLATFORM_BYTE_ORDER IS_BIG_ENDIAN +#elif defined( _LITTLE_ENDIAN ) +# define PLATFORM_BYTE_ORDER IS_LITTLE_ENDIAN +#endif + +#if defined( __BIG_ENDIAN ) && defined( __LITTLE_ENDIAN ) +# if defined( __BYTE_ORDER ) && __BYTE_ORDER == __BIG_ENDIAN +# define PLATFORM_BYTE_ORDER IS_BIG_ENDIAN +# elif defined( __BYTE_ORDER ) && __BYTE_ORDER == __LITTLE_ENDIAN +# define PLATFORM_BYTE_ORDER IS_LITTLE_ENDIAN +# endif +#elif defined( __BIG_ENDIAN ) +# define PLATFORM_BYTE_ORDER IS_BIG_ENDIAN +#elif defined( __LITTLE_ENDIAN ) +# define PLATFORM_BYTE_ORDER IS_LITTLE_ENDIAN +#endif + +#if defined( __BIG_ENDIAN__ ) && defined( __LITTLE_ENDIAN__ ) +# if defined( __BYTE_ORDER__ ) && __BYTE_ORDER__ == __BIG_ENDIAN__ +# define PLATFORM_BYTE_ORDER IS_BIG_ENDIAN +# elif defined( __BYTE_ORDER__ ) && __BYTE_ORDER__ == __LITTLE_ENDIAN__ +# define PLATFORM_BYTE_ORDER IS_LITTLE_ENDIAN +# endif +#elif defined( __BIG_ENDIAN__ ) +# define PLATFORM_BYTE_ORDER IS_BIG_ENDIAN +#elif defined( __LITTLE_ENDIAN__ ) +# define PLATFORM_BYTE_ORDER IS_LITTLE_ENDIAN +#endif + +/* if the platform byte order could not be determined, then try to */ +/* set this define using common machine defines */ +#if !defined(PLATFORM_BYTE_ORDER) + +#if defined( __alpha__ ) || defined( __alpha ) || defined( i386 ) || \ + defined( __i386__ ) || defined( _M_I86 ) || defined( _M_IX86 ) || \ + defined( __OS2__ ) || defined( sun386 ) || defined( __TURBOC__ ) || \ + defined( vax ) || defined( vms ) || defined( VMS ) || \ + defined( __VMS ) || defined( _M_X64 ) +# define PLATFORM_BYTE_ORDER IS_LITTLE_ENDIAN + +#elif defined( AMIGA ) || defined( applec ) || defined( __AS400__ ) || \ + defined( _CRAY ) || defined( __hppa ) || defined( __hp9000 ) || \ + defined( ibm370 ) || defined( mc68000 ) || defined( m68k ) || \ + defined( __MRC__ ) || defined( __MVS__ ) || defined( __MWERKS__ ) || \ + defined( sparc ) || defined( __sparc) || defined( SYMANTEC_C ) || \ + defined( __VOS__ ) || defined( __TIGCC__ ) || defined( __TANDEM ) || \ + defined( THINK_C ) || defined( __VMCMS__ ) || defined( _AIX ) +# define PLATFORM_BYTE_ORDER IS_BIG_ENDIAN + +#elif defined(__arm__) +# ifdef __BIG_ENDIAN +# define PLATFORM_BYTE_ORDER IS_BIG_ENDIAN +# else +# define PLATFORM_BYTE_ORDER IS_LITTLE_ENDIAN +# endif +#elif 1 /* **** EDIT HERE IF NECESSARY **** */ +# define PLATFORM_BYTE_ORDER IS_LITTLE_ENDIAN +#elif 0 /* **** EDIT HERE IF NECESSARY **** */ +# define PLATFORM_BYTE_ORDER IS_BIG_ENDIAN +#else +# error Please edit lines 132 or 134 in brg_endian.h to set the platform byte order +#endif + +#endif + +#endif diff --git a/Modules/_ctypes/libffi/testsuite/libffi.call/a.out b/Modules/_sha3/keccak/crypto_hash.h index e69de29..e69de29 100644 --- a/Modules/_ctypes/libffi/testsuite/libffi.call/a.out +++ b/Modules/_sha3/keccak/crypto_hash.h diff --git a/Modules/_sha3/sha3module.c b/Modules/_sha3/sha3module.c new file mode 100644 index 0000000..32cd85a --- /dev/null +++ b/Modules/_sha3/sha3module.c @@ -0,0 +1,585 @@ +/* SHA3 module + * + * This module provides an interface to the SHA3 algorithm + * + * See below for information about the original code this module was + * based upon. Additional work performed by: + * + * Andrew Kuchling (amk@amk.ca) + * Greg Stein (gstein@lyra.org) + * Trevor Perrin (trevp@trevp.net) + * Gregory P. Smith (greg@krypto.org) + * + * Copyright (C) 2012 Christian Heimes (christian@python.org) + * Licensed to PSF under a Contributor Agreement. + * + */ + +#include "Python.h" +#include "../hashlib.h" + +/* ************************************************************************** + * SHA-3 (Keccak) + * + * The code is based on KeccakReferenceAndOptimized-3.2.zip from 29 May 2012. + * + * The reference implementation is altered in this points: + * - C++ comments are converted to ANSI C comments. + * - All functions and globals are declared static. + * - The typedef for UINT64 is commented out. + * - KeccakF-1600-opt[32|64]-settings.h are commented out + * - Some unused functions are commented out to silence compiler warnings. + * + * In order to avoid name clashes with other software I have to declare all + * Keccak functions and global data as static. The C code is directly + * included into this file in order to access the static functions. + * + * Keccak can be tuned with several paramenters. I try to explain all options + * as far as I understand them. The reference implementation also contains + * assembler code for ARM platforms (NEON instructions). + * + * Common + * ====== + * + * Options: + * UseBebigokimisa, Unrolling + * + * - Unrolling: loop unrolling (24, 12, 8, 6, 4, 3, 2, 1) + * - UseBebigokimisa: lane complementing + * + * 64bit platforms + * =============== + * + * Additional options: + * UseSSE, UseOnlySIMD64, UseMMX, UseXOP, UseSHLD + * + * Optimized instructions (disabled by default): + * - UseSSE: use Stream SIMD extensions + * o UseOnlySIMD64: limit to 64bit instructions, otherwise 128bit + * o w/o UseOnlySIMD64: requires compiler agument -mssse3 or -mtune + * - UseMMX: use 64bit MMX instructions + * - UseXOP: use AMD's eXtended Operations (128bit SSE extension) + * + * Other: + * - Unrolling: default 24 + * - UseBebigokimisa: default 1 + * + * When neither UseSSE, UseMMX nor UseXOP is configured, ROL64 (rotate left + * 64) is implemented as: + * - Windows: _rotl64() + * - UseSHLD: use shld (shift left) asm optimization + * - otherwise: shift and xor + * + * UseBebigokimisa can't be used in combination with UseSSE, UseMMX or + * UseXOP. UseOnlySIMD64 has no effect unless UseSSE is specified. + * + * Tests have shown that UseSSE + UseOnlySIMD64 is about three to four + * times SLOWER than UseBebigokimisa. UseSSE and UseMMX are about two times + * slower. (tested by CH and AP) + * + * 32bit platforms + * =============== + * + * Additional options: + * UseInterleaveTables, UseSchedule + * + * - Unrolling: default 2 + * - UseBebigokimisa: default n/a + * - UseSchedule: ???, (1, 2, 3; default 3) + * - UseInterleaveTables: use two 64k lookup tables for (de)interleaving + * default: n/a + * + * schedules: + * - 3: no UseBebigokimisa, Unrolling must be 2 + * - 2 + 1: ??? + * + * *************************************************************************/ + +#ifdef __sparc + /* opt64 uses un-aligned memory access that causes a BUS error with msg + * 'invalid address alignment' on SPARC. */ + #define KeccakOpt 32 +#elif SIZEOF_VOID_P == 8 && defined(PY_UINT64_T) + /* opt64 works only for 64bit platforms with unsigned int64 */ + #define KeccakOpt 64 +#else + /* opt32 is used for the remaining 32 and 64bit platforms */ + #define KeccakOpt 32 +#endif + +#if KeccakOpt == 64 && defined(PY_UINT64_T) + /* 64bit platforms with unsigned int64 */ + #define Unrolling 24 + #define UseBebigokimisa + typedef PY_UINT64_T UINT64; +#elif KeccakOpt == 32 && defined(PY_UINT64_T) + /* 32bit platforms with unsigned int64 */ + #define Unrolling 2 + #define UseSchedule 3 + typedef PY_UINT64_T UINT64; +#else + /* 32 or 64bit platforms without unsigned int64 */ + #define Unrolling 2 + #define UseSchedule 3 + #define UseInterleaveTables +#endif + +/* replacement for brg_endian.h */ +#define IS_BIG_ENDIAN 4321 +#define IS_LITTLE_ENDIAN 1234 +#if PY_BIG_ENDIAN +# define PLATFORM_BYTE_ORDER IS_BIG_ENDIAN +#else +# define PLATFORM_BYTE_ORDER IS_LITTLE_ENDIAN +#endif + +/* inline all Keccak dependencies */ +#include "keccak/KeccakNISTInterface.h" +#include "keccak/KeccakNISTInterface.c" +#include "keccak/KeccakSponge.c" +#if KeccakOpt == 64 + #include "keccak/KeccakF-1600-opt64.c" +#elif KeccakOpt == 32 + #include "keccak/KeccakF-1600-opt32.c" +#endif + +/* #define SHA3_BLOCKSIZE 200 // 1600 bits */ +#define SHA3_MAX_DIGESTSIZE 64 /* 512 bits */ +#define SHA3_state hashState +#define SHA3_init Init +#define SHA3_process Update +#define SHA3_done Final +#define SHA3_copystate(dest, src) memcpy(&(dest), &(src), sizeof(SHA3_state)) +#define SHA3_clearstate(state) memset(&(state), 0, sizeof(SHA3_state)) + +/* The structure for storing SHA3 info */ + +typedef struct { + PyObject_HEAD + int hashbitlen; + SHA3_state hash_state; +#ifdef WITH_THREAD + PyThread_type_lock lock; +#endif + +} SHA3object; + +static PyTypeObject SHA3type; + + +static SHA3object * +newSHA3object(int hashbitlen) +{ + SHA3object *newobj; + + /* check hashbitlen */ + switch(hashbitlen) { + /* supported hash length */ + case 224: + break; + case 256: + break; + case 384: + break; + case 512: + break; + case 0: + /* arbitrarily-long output isn't supported by this module */ + default: + /* everything else is an error */ + PyErr_SetString(PyExc_ValueError, + "hashbitlen must be one of 224, 256, 384 or 512."); + return NULL; + } + newobj = (SHA3object *)PyObject_New(SHA3object, &SHA3type); + if (newobj == NULL) { + return NULL; + } + newobj->hashbitlen = hashbitlen; +#ifdef WITH_THREAD + newobj->lock = NULL; +#endif + return newobj; +} + + +/* Internal methods for a hash object */ + +static void +SHA3_dealloc(SHA3object *self) +{ + SHA3_clearstate(self->hash_state); +#ifdef WITH_THREAD + if (self->lock) { + PyThread_free_lock(self->lock); + } +#endif + PyObject_Del(self); +} + + +/* External methods for a hash object */ + +PyDoc_STRVAR(SHA3_copy__doc__, "Return a copy of the hash object."); + +static PyObject * +SHA3_copy(SHA3object *self, PyObject *unused) +{ + SHA3object *newobj; + + if ((newobj = newSHA3object(self->hashbitlen)) == NULL) { + return NULL; + } + ENTER_HASHLIB(self); + SHA3_copystate(newobj->hash_state, self->hash_state); + LEAVE_HASHLIB(self); + return (PyObject *)newobj; +} + + +PyDoc_STRVAR(SHA3_digest__doc__, +"Return the digest value as a string of binary data."); + +static PyObject * +SHA3_digest(SHA3object *self, PyObject *unused) +{ + unsigned char digest[SHA3_MAX_DIGESTSIZE]; + SHA3_state temp; + HashReturn res; + + ENTER_HASHLIB(self); + SHA3_copystate(temp, self->hash_state); + LEAVE_HASHLIB(self); + res = SHA3_done(&temp, digest); + SHA3_clearstate(temp); + if (res != SUCCESS) { + PyErr_SetString(PyExc_RuntimeError, "internal error in SHA3 Final()"); + return NULL; + } + return PyBytes_FromStringAndSize((const char *)digest, + self->hashbitlen / 8); +} + + +PyDoc_STRVAR(SHA3_hexdigest__doc__, +"Return the digest value as a string of hexadecimal digits."); + +static PyObject * +SHA3_hexdigest(SHA3object *self, PyObject *unused) +{ + unsigned char digest[SHA3_MAX_DIGESTSIZE]; + SHA3_state temp; + HashReturn res; + PyObject *retval; + Py_UCS1 *hex_digest; + int digestlen, i, j; + + /* Get the raw (binary) digest value */ + ENTER_HASHLIB(self); + SHA3_copystate(temp, self->hash_state); + LEAVE_HASHLIB(self); + res = SHA3_done(&temp, digest); + SHA3_clearstate(temp); + if (res != SUCCESS) { + PyErr_SetString(PyExc_RuntimeError, "internal error in SHA3 Final()"); + return NULL; + } + + /* Create a new string */ + digestlen = self->hashbitlen / 8; + retval = PyUnicode_New(digestlen * 2, 127); + if (!retval) + return NULL; + hex_digest = PyUnicode_1BYTE_DATA(retval); + + /* Make hex version of the digest */ + for(i=j=0; i < digestlen; i++) { + unsigned char c; + c = (digest[i] >> 4) & 0xf; + hex_digest[j++] = Py_hexdigits[c]; + c = (digest[i] & 0xf); + hex_digest[j++] = Py_hexdigits[c]; + } +#ifdef Py_DEBUG + assert(_PyUnicode_CheckConsistency(retval, 1)); +#endif + return retval; +} + +PyDoc_STRVAR(SHA3_update__doc__, +"Update this hash object's state with the provided string."); + +static PyObject * +SHA3_update(SHA3object *self, PyObject *args) +{ + PyObject *obj; + Py_buffer buf; + HashReturn res; + + if (!PyArg_ParseTuple(args, "O:update", &obj)) + return NULL; + + GET_BUFFER_VIEW_OR_ERROUT(obj, &buf); + + /* add new data, the function takes the length in bits not bytes */ +#ifdef WITH_THREADS + if (self->lock == NULL && buf.len >= HASHLIB_GIL_MINSIZE) { + self->lock = PyThread_allocate_lock(); + } + /* Once a lock exists all code paths must be synchronized. We have to + * release the GIL even for small buffers as acquiring the lock may take + * an unlimited amount of time when another thread updates this object + * with lots of data. */ + if (self->lock) { + Py_BEGIN_ALLOW_THREADS + PyThread_acquire_lock(self->lock, 1); + res = SHA3_process(&self->hash_state, buf.buf, buf.len * 8); + PyThread_release_lock(self->lock); + Py_END_ALLOW_THREADS + } + else { + res = SHA3_process(&self->hash_state, buf.buf, buf.len * 8); + } +#else + res = SHA3_process(&self->hash_state, buf.buf, buf.len * 8); +#endif + LEAVE_HASHLIB(self); + + if (res != SUCCESS) { + PyBuffer_Release(&buf); + PyErr_SetString(PyExc_RuntimeError, + "internal error in SHA3 Update()"); + return NULL; + } + + PyBuffer_Release(&buf); + Py_INCREF(Py_None); + return Py_None; +} + +static PyMethodDef SHA3_methods[] = { + {"copy", (PyCFunction)SHA3_copy, METH_NOARGS, + SHA3_copy__doc__}, + {"digest", (PyCFunction)SHA3_digest, METH_NOARGS, + SHA3_digest__doc__}, + {"hexdigest", (PyCFunction)SHA3_hexdigest, METH_NOARGS, + SHA3_hexdigest__doc__}, + {"update", (PyCFunction)SHA3_update, METH_VARARGS, + SHA3_update__doc__}, + {NULL, NULL} /* sentinel */ +}; + +static PyObject * +SHA3_get_block_size(SHA3object *self, void *closure) +{ + /* HMAC-SHA3 hasn't been specified yet and no official test vectors are + * available. Thus block_size returns NotImplemented to prevent people + * from using SHA3 with the hmac module. + */ + Py_RETURN_NOTIMPLEMENTED; +} + +static PyObject * +SHA3_get_name(SHA3object *self, void *closure) +{ + return PyUnicode_FromFormat("sha3_%i", self->hashbitlen); +} + +static PyObject * +SHA3_get_digest_size(SHA3object *self, void *closure) +{ + return PyLong_FromLong(self->hashbitlen / 8); +} + + +static PyGetSetDef SHA3_getseters[] = { + {"block_size", (getter)SHA3_get_block_size, NULL, NULL, NULL}, + {"name", (getter)SHA3_get_name, NULL, NULL, NULL}, + {"digest_size", (getter)SHA3_get_digest_size, NULL, NULL, NULL}, + {NULL} /* Sentinel */ +}; + +static PyTypeObject SHA3type = { + PyVarObject_HEAD_INIT(NULL, 0) + "_sha3.SHA3", /* tp_name */ + sizeof(SHA3object), /* tp_size */ + 0, /* tp_itemsize */ + /* methods */ + (destructor)SHA3_dealloc, /* tp_dealloc */ + 0, /* tp_print */ + 0, /* tp_getattr */ + 0, /* tp_setattr */ + 0, /* tp_reserved */ + 0, /* tp_repr */ + 0, /* tp_as_number */ + 0, /* tp_as_sequence */ + 0, /* tp_as_mapping */ + 0, /* tp_hash */ + 0, /* tp_call */ + 0, /* tp_str */ + 0, /* tp_getattro */ + 0, /* tp_setattro */ + 0, /* tp_as_buffer */ + Py_TPFLAGS_DEFAULT, /* tp_flags */ + 0, /* tp_doc */ + 0, /* tp_traverse */ + 0, /* tp_clear */ + 0, /* tp_richcompare */ + 0, /* tp_weaklistoffset */ + 0, /* tp_iter */ + 0, /* tp_iternext */ + SHA3_methods, /* tp_methods */ + NULL, /* tp_members */ + SHA3_getseters, /* tp_getset */ +}; + + +/* constructor helper */ +static PyObject * +SHA3_factory(PyObject *args, PyObject *kwdict, const char *fmt, + int hashbitlen) +{ + SHA3object *newobj = NULL; + static char *kwlist[] = {"string", NULL}; + PyObject *data_obj = NULL; + Py_buffer buf; + HashReturn res; + + if (!PyArg_ParseTupleAndKeywords(args, kwdict, fmt, kwlist, + &data_obj)) { + return NULL; + } + + if (data_obj) + GET_BUFFER_VIEW_OR_ERROUT(data_obj, &buf); + + if ((newobj = newSHA3object(hashbitlen)) == NULL) { + goto error; + } + + if (SHA3_init(&newobj->hash_state, hashbitlen) != SUCCESS) { + PyErr_SetString(PyExc_RuntimeError, + "internal error in SHA3 Update()"); + goto error; + } + + if (data_obj) { +#ifdef WITH_THREADS + if (buf.len >= HASHLIB_GIL_MINSIZE) { + /* invariant: New objects can't be accessed by other code yet, + * thus it's safe to release the GIL without locking the object. + */ + Py_BEGIN_ALLOW_THREADS + res = SHA3_process(&newobj->hash_state, buf.buf, buf.len * 8); + Py_END_ALLOW_THREADS + } + else { + res = SHA3_process(&newobj->hash_state, buf.buf, buf.len * 8); + } +#else + res = SHA3_process(&newobj->hash_state, buf.buf, buf.len * 8); +#endif + if (res != SUCCESS) { + PyErr_SetString(PyExc_RuntimeError, + "internal error in SHA3 Update()"); + goto error; + } + PyBuffer_Release(&buf); + } + + return (PyObject *)newobj; + + error: + if (newobj) { + SHA3_dealloc(newobj); + } + if (data_obj) { + PyBuffer_Release(&buf); + } + return NULL; + +} + +PyDoc_STRVAR(sha3_224__doc__, +"sha3_224([string]) -> SHA3 object\n\ +\n\ +Return a new SHA3 hash object with a hashbit length of 28 bytes."); + +static PyObject * +sha3_224(PyObject *self, PyObject *args, PyObject *kwdict) +{ + return SHA3_factory(args, kwdict, "|O:sha3_224", 224); +} + + +PyDoc_STRVAR(sha3_256__doc__, +"sha3_256([string]) -> SHA3 object\n\ +\n\ +Return a new SHA3 hash object with a hashbit length of 32 bytes."); + +static PyObject * +sha3_256(PyObject *self, PyObject *args, PyObject *kwdict) +{ + return SHA3_factory(args, kwdict, "|O:sha3_256", 256); +} + +PyDoc_STRVAR(sha3_384__doc__, +"sha3_384([string]) -> SHA3 object\n\ +\n\ +Return a new SHA3 hash object with a hashbit length of 48 bytes."); + +static PyObject * +sha3_384(PyObject *self, PyObject *args, PyObject *kwdict) +{ + return SHA3_factory(args, kwdict, "|O:sha3_384", 384); +} + +PyDoc_STRVAR(sha3_512__doc__, +"sha3_512([string]) -> SHA3 object\n\ +\n\ +Return a new SHA3 hash object with a hashbit length of 64 bytes."); + +static PyObject * +sha3_512(PyObject *self, PyObject *args, PyObject *kwdict) +{ + return SHA3_factory(args, kwdict, "|O:sha3_512", 512); +} + + +/* List of functions exported by this module */ +static struct PyMethodDef SHA3_functions[] = { + {"sha3_224", (PyCFunction)sha3_224, METH_VARARGS|METH_KEYWORDS, + sha3_224__doc__}, + {"sha3_256", (PyCFunction)sha3_256, METH_VARARGS|METH_KEYWORDS, + sha3_256__doc__}, + {"sha3_384", (PyCFunction)sha3_384, METH_VARARGS|METH_KEYWORDS, + sha3_384__doc__}, + {"sha3_512", (PyCFunction)sha3_512, METH_VARARGS|METH_KEYWORDS, + sha3_512__doc__}, + {NULL, NULL} /* Sentinel */ +}; + + +/* Initialize this module. */ +static struct PyModuleDef _SHA3module = { + PyModuleDef_HEAD_INIT, + "_sha3", + NULL, + -1, + SHA3_functions, + NULL, + NULL, + NULL, + NULL +}; + +PyMODINIT_FUNC +PyInit__sha3(void) +{ + Py_TYPE(&SHA3type) = &PyType_Type; + if (PyType_Ready(&SHA3type) < 0) { + return NULL; + } + + return PyModule_Create(&_SHA3module); +} diff --git a/Modules/_sqlite/connection.c b/Modules/_sqlite/connection.c index 28bd647..04bcdf2 100644 --- a/Modules/_sqlite/connection.c +++ b/Modules/_sqlite/connection.c @@ -60,7 +60,11 @@ static void _sqlite3_result_error(sqlite3_context* ctx, const char* errmsg, int int pysqlite_connection_init(pysqlite_Connection* self, PyObject* args, PyObject* kwargs) { - static char *kwlist[] = {"database", "timeout", "detect_types", "isolation_level", "check_same_thread", "factory", "cached_statements", NULL, NULL}; + static char *kwlist[] = { + "database", "timeout", "detect_types", "isolation_level", + "check_same_thread", "factory", "cached_statements", "uri", + NULL + }; char* database; int detect_types = 0; @@ -68,11 +72,14 @@ int pysqlite_connection_init(pysqlite_Connection* self, PyObject* args, PyObject PyObject* factory = NULL; int check_same_thread = 1; int cached_statements = 100; + int uri = 0; double timeout = 5.0; int rc; - if (!PyArg_ParseTupleAndKeywords(args, kwargs, "s|diOiOi", kwlist, - &database, &timeout, &detect_types, &isolation_level, &check_same_thread, &factory, &cached_statements)) + if (!PyArg_ParseTupleAndKeywords(args, kwargs, "s|diOiOip", kwlist, + &database, &timeout, &detect_types, + &isolation_level, &check_same_thread, + &factory, &cached_statements, &uri)) { return -1; } @@ -91,8 +98,19 @@ int pysqlite_connection_init(pysqlite_Connection* self, PyObject* args, PyObject Py_INCREF(&PyUnicode_Type); self->text_factory = (PyObject*)&PyUnicode_Type; +#ifdef SQLITE_OPEN_URI + Py_BEGIN_ALLOW_THREADS + rc = sqlite3_open_v2(database, &self->db, + SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE | + (uri ? SQLITE_OPEN_URI : 0), NULL); +#else + if (uri) { + PyErr_SetString(pysqlite_NotSupportedError, "URIs not supported"); + return -1; + } Py_BEGIN_ALLOW_THREADS rc = sqlite3_open(database, &self->db); +#endif Py_END_ALLOW_THREADS if (rc != SQLITE_OK) { diff --git a/Modules/_sqlite/module.c b/Modules/_sqlite/module.c index bea6d6a..7a7e860 100644 --- a/Modules/_sqlite/module.c +++ b/Modules/_sqlite/module.c @@ -50,19 +50,26 @@ static PyObject* module_connect(PyObject* self, PyObject* args, PyObject* * C-level, so this code is redundant with the one in connection_init in * connection.c and must always be copied from there ... */ - static char *kwlist[] = {"database", "timeout", "detect_types", "isolation_level", "check_same_thread", "factory", "cached_statements", NULL, NULL}; + static char *kwlist[] = { + "database", "timeout", "detect_types", "isolation_level", + "check_same_thread", "factory", "cached_statements", "uri", + NULL + }; char* database; int detect_types = 0; PyObject* isolation_level; PyObject* factory = NULL; int check_same_thread = 1; int cached_statements; + int uri = 0; double timeout = 5.0; PyObject* result; - if (!PyArg_ParseTupleAndKeywords(args, kwargs, "s|diOiOi", kwlist, - &database, &timeout, &detect_types, &isolation_level, &check_same_thread, &factory, &cached_statements)) + if (!PyArg_ParseTupleAndKeywords(args, kwargs, "s|diOiOip", kwlist, + &database, &timeout, &detect_types, + &isolation_level, &check_same_thread, + &factory, &cached_statements, &uri)) { return NULL; } @@ -77,7 +84,8 @@ static PyObject* module_connect(PyObject* self, PyObject* args, PyObject* } PyDoc_STRVAR(module_connect_doc, -"connect(database[, timeout, isolation_level, detect_types, factory])\n\ +"connect(database[, timeout, detect_types, isolation_level,\n\ + check_same_thread, factory, cached_statements, uri])\n\ \n\ Opens a connection to the SQLite database file *database*. You can use\n\ \":memory:\" to open a database connection to a database that resides in\n\ diff --git a/Modules/_sre.c b/Modules/_sre.c index 19571fb..9b49951 100644 --- a/Modules/_sre.c +++ b/Modules/_sre.c @@ -1871,7 +1871,7 @@ static PyObject* pattern_match(PatternObject* self, PyObject* args, PyObject* kw) { SRE_STATE state; - int status; + Py_ssize_t status; PyObject* string; Py_ssize_t start = 0; @@ -2040,7 +2040,7 @@ pattern_findall(PatternObject* self, PyObject* args, PyObject* kw) { SRE_STATE state; PyObject* list; - int status; + Py_ssize_t status; Py_ssize_t i, b, e; PyObject* string; @@ -2166,7 +2166,7 @@ pattern_split(PatternObject* self, PyObject* args, PyObject* kw) SRE_STATE state; PyObject* list; PyObject* item; - int status; + Py_ssize_t status; Py_ssize_t n; Py_ssize_t i; void* last; @@ -2282,7 +2282,7 @@ pattern_subx(PatternObject* self, PyObject* ptemplate, PyObject* string, PyObject* args; PyObject* match; void* ptr; - int status; + Py_ssize_t status; Py_ssize_t n; Py_ssize_t i, b, e; int logical_charsize, charsize; @@ -2301,7 +2301,7 @@ pattern_subx(PatternObject* self, PyObject* ptemplate, PyObject* string, ptr = getstring(ptemplate, &n, &logical_charsize, &charsize, &view); b = charsize; if (ptr) { - literal = sre_literal_template(b, ptr, n); + literal = sre_literal_template(charsize, ptr, n); } else { PyErr_Clear(); literal = 0; @@ -3767,7 +3767,7 @@ scanner_match(ScannerObject* self, PyObject *unused) { SRE_STATE* state = &self->state; PyObject* match; - int status; + Py_ssize_t status; state_reset(state); @@ -3798,7 +3798,7 @@ scanner_search(ScannerObject* self, PyObject *unused) { SRE_STATE* state = &self->state; PyObject* match; - int status; + Py_ssize_t status; state_reset(state); diff --git a/Modules/_ssl.c b/Modules/_ssl.c index abb48b9..c6493ba 100644 --- a/Modules/_ssl.c +++ b/Modules/_ssl.c @@ -40,6 +40,70 @@ #endif +/* Include symbols from _socket module */ +#include "socketmodule.h" + +static PySocketModule_APIObject PySocketModule; + +#if defined(HAVE_POLL_H) +#include <poll.h> +#elif defined(HAVE_SYS_POLL_H) +#include <sys/poll.h> +#endif + +/* Include OpenSSL header files */ +#include "openssl/rsa.h" +#include "openssl/crypto.h" +#include "openssl/x509.h" +#include "openssl/x509v3.h" +#include "openssl/pem.h" +#include "openssl/ssl.h" +#include "openssl/err.h" +#include "openssl/rand.h" + +/* SSL error object */ +static PyObject *PySSLErrorObject; +static PyObject *PySSLZeroReturnErrorObject; +static PyObject *PySSLWantReadErrorObject; +static PyObject *PySSLWantWriteErrorObject; +static PyObject *PySSLSyscallErrorObject; +static PyObject *PySSLEOFErrorObject; + +/* Error mappings */ +static PyObject *err_codes_to_names; +static PyObject *err_names_to_codes; +static PyObject *lib_codes_to_names; + +struct py_ssl_error_code { + const char *mnemonic; + int library, reason; +}; +struct py_ssl_library_code { + const char *library; + int code; +}; + +/* Include generated data (error codes) */ +#include "_ssl_data.h" + +/* Openssl comes with TLSv1.1 and TLSv1.2 between 1.0.0h and 1.0.1 + http://www.openssl.org/news/changelog.html + */ +#if OPENSSL_VERSION_NUMBER >= 0x10001000L +# define HAVE_TLSv1_2 1 +#else +# define HAVE_TLSv1_2 0 +#endif + +/* SNI support (client- and server-side) appeared in OpenSSL 1.0.0. + * This includes the SSL_set_SSL_CTX() function. + */ +#ifdef SSL_CTRL_SET_TLSEXT_HOSTNAME +# define HAVE_SNI 1 +#else +# define HAVE_SNI 0 +#endif + enum py_ssl_error { /* these mirror ssl.h */ PY_SSL_ERROR_NONE, @@ -73,55 +137,14 @@ enum py_ssl_version { #endif PY_SSL_VERSION_SSL3=1, PY_SSL_VERSION_SSL23, +#if HAVE_TLSv1_2 + PY_SSL_VERSION_TLS1, + PY_SSL_VERSION_TLS1_1, + PY_SSL_VERSION_TLS1_2 +#else PY_SSL_VERSION_TLS1 -}; - -struct py_ssl_error_code { - const char *mnemonic; - int library, reason; -}; - -struct py_ssl_library_code { - const char *library; - int code; -}; - -/* Include symbols from _socket module */ -#include "socketmodule.h" - -static PySocketModule_APIObject PySocketModule; - -#if defined(HAVE_POLL_H) -#include <poll.h> -#elif defined(HAVE_SYS_POLL_H) -#include <sys/poll.h> #endif - -/* Include OpenSSL header files */ -#include "openssl/rsa.h" -#include "openssl/crypto.h" -#include "openssl/x509.h" -#include "openssl/x509v3.h" -#include "openssl/pem.h" -#include "openssl/ssl.h" -#include "openssl/err.h" -#include "openssl/rand.h" - -/* Include generated data (error codes) */ -#include "_ssl_data.h" - -/* SSL error object */ -static PyObject *PySSLErrorObject; -static PyObject *PySSLZeroReturnErrorObject; -static PyObject *PySSLWantReadErrorObject; -static PyObject *PySSLWantWriteErrorObject; -static PyObject *PySSLSyscallErrorObject; -static PyObject *PySSLEOFErrorObject; - -/* Error mappings */ -static PyObject *err_codes_to_names; -static PyObject *err_names_to_codes; -static PyObject *lib_codes_to_names; +}; #ifdef WITH_THREAD @@ -181,12 +204,16 @@ typedef struct { char *npn_protocols; int npn_protocols_len; #endif +#ifndef OPENSSL_NO_TLSEXT + PyObject *set_hostname; +#endif } PySSLContext; typedef struct { PyObject_HEAD PyObject *Socket; /* weakref to socket on which we're layered */ SSL *ssl; + PySSLContext *ctx; /* weakref to SSL context */ X509 *peer_cert; int shutdown_seen_zero; enum py_ssl_server_or_client socket_type; @@ -437,11 +464,12 @@ _setSSLError (char *errstr, int errcode, char *filename, int lineno) { */ static PySSLSocket * -newPySSLSocket(SSL_CTX *ctx, PySocketSockObject *sock, +newPySSLSocket(PySSLContext *sslctx, PySocketSockObject *sock, enum py_ssl_server_or_client socket_type, char *server_hostname) { PySSLSocket *self; + SSL_CTX *ctx = sslctx->ctx; self = PyObject_New(PySSLSocket, &PySSLSocket_Type); if (self == NULL) @@ -450,6 +478,8 @@ newPySSLSocket(SSL_CTX *ctx, PySocketSockObject *sock, self->peer_cert = NULL; self->ssl = NULL; self->Socket = NULL; + self->ctx = sslctx; + Py_INCREF(sslctx); /* Make sure the SSL error state is initialized */ (void) ERR_get_state(); @@ -458,12 +488,13 @@ newPySSLSocket(SSL_CTX *ctx, PySocketSockObject *sock, PySSL_BEGIN_ALLOW_THREADS self->ssl = SSL_new(ctx); PySSL_END_ALLOW_THREADS + SSL_set_app_data(self->ssl,self); SSL_set_fd(self->ssl, sock->sock_fd); #ifdef SSL_MODE_AUTO_RETRY SSL_set_mode(self->ssl, SSL_MODE_AUTO_RETRY); #endif -#ifdef SSL_CTRL_SET_TLSEXT_HOSTNAME +#if HAVE_SNI if (server_hostname != NULL) SSL_set_tlsext_host_name(self->ssl, server_hostname); #endif @@ -1164,6 +1195,43 @@ static PyObject *PySSL_compression(PySSLSocket *self) { #endif } +static PySSLContext *PySSL_get_context(PySSLSocket *self, void *closure) { + Py_INCREF(self->ctx); + return self->ctx; +} + +static int PySSL_set_context(PySSLSocket *self, PyObject *value, + void *closure) { + + if (PyObject_TypeCheck(value, &PySSLContext_Type)) { +#if !HAVE_SNI + PyErr_SetString(PyExc_NotImplementedError, "setting a socket's " + "context is not supported by your OpenSSL library"); + return -1; +#else + Py_INCREF(value); + Py_DECREF(self->ctx); + self->ctx = (PySSLContext *) value; + SSL_set_SSL_CTX(self->ssl, self->ctx->ctx); +#endif + } else { + PyErr_SetString(PyExc_TypeError, "The value must be a SSLContext"); + return -1; + } + + return 0; +} + +PyDoc_STRVAR(PySSL_set_context_doc, +"_setter_context(ctx)\n\ +\ +This changes the context associated with the SSLSocket. This is typically\n\ +used from within a callback function set by the set_servername_callback\n\ +on the SSLContext to change the certificate information associated with the\n\ +SSLSocket before the cryptographic exchange handshake messages\n"); + + + static void PySSL_dealloc(PySSLSocket *self) { if (self->peer_cert) /* Possible not to have one? */ @@ -1171,6 +1239,7 @@ static void PySSL_dealloc(PySSLSocket *self) if (self->ssl) SSL_free(self->ssl); Py_XDECREF(self->Socket); + Py_XDECREF(self->ctx); PyObject_Del(self); } @@ -1606,6 +1675,12 @@ If the TLS handshake is not yet complete, None is returned"); #endif /* HAVE_OPENSSL_FINISHED */ +static PyGetSetDef ssl_getsetlist[] = { + {"context", (getter) PySSL_get_context, + (setter) PySSL_set_context, PySSL_set_context_doc}, + {NULL}, /* sentinel */ +}; + static PyMethodDef PySSLMethods[] = { {"do_handshake", (PyCFunction)PySSL_SSLdo_handshake, METH_NOARGS}, {"write", (PyCFunction)PySSL_SSLwrite, METH_VARARGS, @@ -1660,6 +1735,8 @@ static PyTypeObject PySSLSocket_Type = { 0, /*tp_iter*/ 0, /*tp_iternext*/ PySSLMethods, /*tp_methods*/ + 0, /*tp_members*/ + ssl_getsetlist, /*tp_getset*/ }; @@ -1683,6 +1760,12 @@ context_new(PyTypeObject *type, PyObject *args, PyObject *kwds) PySSL_BEGIN_ALLOW_THREADS if (proto_version == PY_SSL_VERSION_TLS1) ctx = SSL_CTX_new(TLSv1_method()); +#if HAVE_TLSv1_2 + else if (proto_version == PY_SSL_VERSION_TLS1_1) + ctx = SSL_CTX_new(TLSv1_1_method()); + else if (proto_version == PY_SSL_VERSION_TLS1_2) + ctx = SSL_CTX_new(TLSv1_2_method()); +#endif else if (proto_version == PY_SSL_VERSION_SSL3) ctx = SSL_CTX_new(SSLv3_method()); #ifndef OPENSSL_NO_SSL2 @@ -1716,6 +1799,9 @@ context_new(PyTypeObject *type, PyObject *args, PyObject *kwds) #ifdef OPENSSL_NPN_NEGOTIATED self->npn_protocols = NULL; #endif +#ifndef OPENSSL_NO_TLSEXT + self->set_hostname = NULL; +#endif /* Defaults */ SSL_CTX_set_verify(self->ctx, SSL_VERIFY_NONE, NULL); SSL_CTX_set_options(self->ctx, @@ -1729,9 +1815,28 @@ context_new(PyTypeObject *type, PyObject *args, PyObject *kwds) return (PyObject *)self; } +static int +context_traverse(PySSLContext *self, visitproc visit, void *arg) +{ +#ifndef OPENSSL_NO_TLSEXT + Py_VISIT(self->set_hostname); +#endif + return 0; +} + +static int +context_clear(PySSLContext *self) +{ +#ifndef OPENSSL_NO_TLSEXT + Py_CLEAR(self->set_hostname); +#endif + return 0; +} + static void context_dealloc(PySSLContext *self) { + context_clear(self); SSL_CTX_free(self->ctx); #ifdef OPENSSL_NPN_NEGOTIATED PyMem_Free(self->npn_protocols); @@ -2216,7 +2321,7 @@ context_wrap_socket(PySSLContext *self, PyObject *args, PyObject *kwds) &sock, &server_side, "idna", &hostname)) return NULL; -#ifndef SSL_CTRL_SET_TLSEXT_HOSTNAME +#if !HAVE_SNI PyMem_Free(hostname); PyErr_SetString(PyExc_ValueError, "server_hostname is not supported " "by your OpenSSL library"); @@ -2224,7 +2329,7 @@ context_wrap_socket(PySSLContext *self, PyObject *args, PyObject *kwds) #endif } - res = (PyObject *) newPySSLSocket(self->ctx, sock, server_side, + res = (PyObject *) newPySSLSocket(self, sock, server_side, hostname); if (hostname != NULL) PyMem_Free(hostname); @@ -2309,6 +2414,144 @@ set_ecdh_curve(PySSLContext *self, PyObject *name) } #endif +#if HAVE_SNI && !defined(OPENSSL_NO_TLSEXT) +static int +_servername_callback(SSL *s, int *al, void *args) +{ + int ret; + PySSLContext *ssl_ctx = (PySSLContext *) args; + PySSLSocket *ssl; + PyObject *servername_o; + PyObject *servername_idna; + PyObject *result; + /* The high-level ssl.SSLSocket object */ + PyObject *ssl_socket; + const char *servername = SSL_get_servername(s, TLSEXT_NAMETYPE_host_name); +#ifdef WITH_THREAD + PyGILState_STATE gstate = PyGILState_Ensure(); +#endif + + if (ssl_ctx->set_hostname == NULL) { + /* remove race condition in this the call back while if removing the + * callback is in progress */ +#ifdef WITH_THREAD + PyGILState_Release(gstate); +#endif + return SSL_TLSEXT_ERR_OK; + } + + ssl = SSL_get_app_data(s); + assert(PySSLSocket_Check(ssl)); + ssl_socket = PyWeakref_GetObject(ssl->Socket); + Py_INCREF(ssl_socket); + if (ssl_socket == Py_None) { + goto error; + } + + if (servername == NULL) { + result = PyObject_CallFunctionObjArgs(ssl_ctx->set_hostname, ssl_socket, + Py_None, ssl_ctx, NULL); + } + else { + servername_o = PyBytes_FromString(servername); + if (servername_o == NULL) { + PyErr_WriteUnraisable((PyObject *) ssl_ctx); + goto error; + } + servername_idna = PyUnicode_FromEncodedObject(servername_o, "idna", NULL); + if (servername_idna == NULL) { + PyErr_WriteUnraisable(servername_o); + Py_DECREF(servername_o); + goto error; + } + Py_DECREF(servername_o); + result = PyObject_CallFunctionObjArgs(ssl_ctx->set_hostname, ssl_socket, + servername_idna, ssl_ctx, NULL); + Py_DECREF(servername_idna); + } + Py_DECREF(ssl_socket); + + if (result == NULL) { + PyErr_WriteUnraisable(ssl_ctx->set_hostname); + *al = SSL_AD_HANDSHAKE_FAILURE; + ret = SSL_TLSEXT_ERR_ALERT_FATAL; + } + else { + if (result != Py_None) { + *al = (int) PyLong_AsLong(result); + if (PyErr_Occurred()) { + PyErr_WriteUnraisable(result); + *al = SSL_AD_INTERNAL_ERROR; + } + ret = SSL_TLSEXT_ERR_ALERT_FATAL; + } + else { + ret = SSL_TLSEXT_ERR_OK; + } + Py_DECREF(result); + } + +#ifdef WITH_THREAD + PyGILState_Release(gstate); +#endif + return ret; + +error: + Py_DECREF(ssl_socket); + *al = SSL_AD_INTERNAL_ERROR; + ret = SSL_TLSEXT_ERR_ALERT_FATAL; +#ifdef WITH_THREAD + PyGILState_Release(gstate); +#endif + return ret; +} +#endif + +PyDoc_STRVAR(PySSL_set_servername_callback_doc, +"set_servername_callback(method)\n\ +\n\ +This sets a callback that will be called when a server name is provided by\n\ +the SSL/TLS client in the SNI extension.\n\ +\n\ +If the argument is None then the callback is disabled. The method is called\n\ +with the SSLSocket, the server name as a string, and the SSLContext object.\n\ +See RFC 6066 for details of the SNI extension."); + +static PyObject * +set_servername_callback(PySSLContext *self, PyObject *args) +{ +#if HAVE_SNI && !defined(OPENSSL_NO_TLSEXT) + PyObject *cb; + + if (!PyArg_ParseTuple(args, "O", &cb)) + return NULL; + + Py_CLEAR(self->set_hostname); + if (cb == Py_None) { + SSL_CTX_set_tlsext_servername_callback(self->ctx, NULL); + } + else { + if (!PyCallable_Check(cb)) { + SSL_CTX_set_tlsext_servername_callback(self->ctx, NULL); + PyErr_SetString(PyExc_TypeError, + "not a callable object"); + return NULL; + } + Py_INCREF(cb); + self->set_hostname = cb; + SSL_CTX_set_tlsext_servername_callback(self->ctx, _servername_callback); + SSL_CTX_set_tlsext_servername_arg(self->ctx, self); + } + Py_RETURN_NONE; +#else + PyErr_SetString(PyExc_NotImplementedError, + "The TLS extension servername callback, " + "SSL_CTX_set_tlsext_servername_callback, " + "is not in the current OpenSSL library."); + return NULL; +#endif +} + static PyGetSetDef context_getsetlist[] = { {"options", (getter) get_options, (setter) set_options, NULL}, @@ -2338,6 +2581,8 @@ static struct PyMethodDef context_methods[] = { {"set_ecdh_curve", (PyCFunction) set_ecdh_curve, METH_O, NULL}, #endif + {"set_servername_callback", (PyCFunction) set_servername_callback, + METH_VARARGS, PySSL_set_servername_callback_doc}, {NULL, NULL} /* sentinel */ }; @@ -2361,10 +2606,10 @@ static PyTypeObject PySSLContext_Type = { 0, /*tp_getattro*/ 0, /*tp_setattro*/ 0, /*tp_as_buffer*/ - Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, /*tp_flags*/ + Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE | Py_TPFLAGS_HAVE_GC, /*tp_flags*/ 0, /*tp_doc*/ - 0, /*tp_traverse*/ - 0, /*tp_clear*/ + (traverseproc) context_traverse, /*tp_traverse*/ + (inquiry) context_clear, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ @@ -2744,6 +2989,57 @@ PyInit__ssl(void) PyModule_AddIntConstant(m, "CERT_REQUIRED", PY_SSL_CERT_REQUIRED); + /* Alert Descriptions from ssl.h */ + /* note RESERVED constants no longer intended for use have been removed */ + /* http://www.iana.org/assignments/tls-parameters/tls-parameters.xml#tls-parameters-6 */ + +#define ADD_AD_CONSTANT(s) \ + PyModule_AddIntConstant(m, "ALERT_DESCRIPTION_"#s, \ + SSL_AD_##s) + + ADD_AD_CONSTANT(CLOSE_NOTIFY); + ADD_AD_CONSTANT(UNEXPECTED_MESSAGE); + ADD_AD_CONSTANT(BAD_RECORD_MAC); + ADD_AD_CONSTANT(RECORD_OVERFLOW); + ADD_AD_CONSTANT(DECOMPRESSION_FAILURE); + ADD_AD_CONSTANT(HANDSHAKE_FAILURE); + ADD_AD_CONSTANT(BAD_CERTIFICATE); + ADD_AD_CONSTANT(UNSUPPORTED_CERTIFICATE); + ADD_AD_CONSTANT(CERTIFICATE_REVOKED); + ADD_AD_CONSTANT(CERTIFICATE_EXPIRED); + ADD_AD_CONSTANT(CERTIFICATE_UNKNOWN); + ADD_AD_CONSTANT(ILLEGAL_PARAMETER); + ADD_AD_CONSTANT(UNKNOWN_CA); + ADD_AD_CONSTANT(ACCESS_DENIED); + ADD_AD_CONSTANT(DECODE_ERROR); + ADD_AD_CONSTANT(DECRYPT_ERROR); + ADD_AD_CONSTANT(PROTOCOL_VERSION); + ADD_AD_CONSTANT(INSUFFICIENT_SECURITY); + ADD_AD_CONSTANT(INTERNAL_ERROR); + ADD_AD_CONSTANT(USER_CANCELLED); + ADD_AD_CONSTANT(NO_RENEGOTIATION); + /* Not all constants are in old OpenSSL versions */ +#ifdef SSL_AD_UNSUPPORTED_EXTENSION + ADD_AD_CONSTANT(UNSUPPORTED_EXTENSION); +#endif +#ifdef SSL_AD_CERTIFICATE_UNOBTAINABLE + ADD_AD_CONSTANT(CERTIFICATE_UNOBTAINABLE); +#endif +#ifdef SSL_AD_UNRECOGNIZED_NAME + ADD_AD_CONSTANT(UNRECOGNIZED_NAME); +#endif +#ifdef SSL_AD_BAD_CERTIFICATE_STATUS_RESPONSE + ADD_AD_CONSTANT(BAD_CERTIFICATE_STATUS_RESPONSE); +#endif +#ifdef SSL_AD_BAD_CERTIFICATE_HASH_VALUE + ADD_AD_CONSTANT(BAD_CERTIFICATE_HASH_VALUE); +#endif +#ifdef SSL_AD_UNKNOWN_PSK_IDENTITY + ADD_AD_CONSTANT(UNKNOWN_PSK_IDENTITY); +#endif + +#undef ADD_AD_CONSTANT + /* protocol versions */ #ifndef OPENSSL_NO_SSL2 PyModule_AddIntConstant(m, "PROTOCOL_SSLv2", @@ -2755,6 +3051,12 @@ PyInit__ssl(void) PY_SSL_VERSION_SSL23); PyModule_AddIntConstant(m, "PROTOCOL_TLSv1", PY_SSL_VERSION_TLS1); +#if HAVE_TLSv1_2 + PyModule_AddIntConstant(m, "PROTOCOL_TLSv1_1", + PY_SSL_VERSION_TLS1_1); + PyModule_AddIntConstant(m, "PROTOCOL_TLSv1_2", + PY_SSL_VERSION_TLS1_2); +#endif /* protocol options */ PyModule_AddIntConstant(m, "OP_ALL", @@ -2762,6 +3064,10 @@ PyInit__ssl(void) PyModule_AddIntConstant(m, "OP_NO_SSLv2", SSL_OP_NO_SSLv2); PyModule_AddIntConstant(m, "OP_NO_SSLv3", SSL_OP_NO_SSLv3); PyModule_AddIntConstant(m, "OP_NO_TLSv1", SSL_OP_NO_TLSv1); +#if HAVE_TLSv1_2 + PyModule_AddIntConstant(m, "OP_NO_TLSv1_1", SSL_OP_NO_TLSv1_1); + PyModule_AddIntConstant(m, "OP_NO_TLSv1_2", SSL_OP_NO_TLSv1_2); +#endif PyModule_AddIntConstant(m, "OP_CIPHER_SERVER_PREFERENCE", SSL_OP_CIPHER_SERVER_PREFERENCE); PyModule_AddIntConstant(m, "OP_SINGLE_DH_USE", SSL_OP_SINGLE_DH_USE); @@ -2773,7 +3079,7 @@ PyInit__ssl(void) SSL_OP_NO_COMPRESSION); #endif -#ifdef SSL_CTRL_SET_TLSEXT_HOSTNAME +#if HAVE_SNI r = Py_True; #else r = Py_False; diff --git a/Modules/_struct.c b/Modules/_struct.c index 2848614..2dec4ed 100644 --- a/Modules/_struct.c +++ b/Modules/_struct.c @@ -1199,12 +1199,11 @@ whichtable(char **pfmt) case '!': /* Network byte order is big-endian */ return bigendian_table; case '=': { /* Host byte order -- different from native in alignment! */ - int n = 1; - char *p = (char *) &n; - if (*p == 1) - return lilendian_table; - else - return bigendian_table; +#if PY_LITTLE_ENDIAN + return lilendian_table; +#else + return bigendian_table; +#endif } default: --*pfmt; /* Back out of pointer increment */ @@ -1248,6 +1247,9 @@ align(Py_ssize_t size, char c, const formatdef *e) return size; } +/* + * Struct object implementation. + */ /* calculate the size of a format string */ @@ -1557,6 +1559,142 @@ s_unpack_from(PyObject *self, PyObject *args, PyObject *kwds) } +/* Unpack iterator type */ + +typedef struct { + PyObject_HEAD + PyStructObject *so; + Py_buffer buf; + Py_ssize_t index; +} unpackiterobject; + +static void +unpackiter_dealloc(unpackiterobject *self) +{ + Py_XDECREF(self->so); + PyBuffer_Release(&self->buf); + PyObject_GC_Del(self); +} + +static int +unpackiter_traverse(unpackiterobject *self, visitproc visit, void *arg) +{ + Py_VISIT(self->so); + Py_VISIT(self->buf.obj); + return 0; +} + +static PyObject * +unpackiter_len(unpackiterobject *self) +{ + Py_ssize_t len; + if (self->so == NULL) + len = 0; + else + len = (self->buf.len - self->index) / self->so->s_size; + return PyLong_FromSsize_t(len); +} + +static PyMethodDef unpackiter_methods[] = { + {"__length_hint__", (PyCFunction) unpackiter_len, METH_NOARGS, NULL}, + {NULL, NULL} /* sentinel */ +}; + +static PyObject * +unpackiter_iternext(unpackiterobject *self) +{ + PyObject *result; + if (self->so == NULL) + return NULL; + if (self->index >= self->buf.len) { + /* Iterator exhausted */ + Py_CLEAR(self->so); + PyBuffer_Release(&self->buf); + return NULL; + } + assert(self->index + self->so->s_size <= self->buf.len); + result = s_unpack_internal(self->so, + (char*) self->buf.buf + self->index); + self->index += self->so->s_size; + return result; +} + +PyTypeObject unpackiter_type = { + PyVarObject_HEAD_INIT(&PyType_Type, 0) + "unpack_iterator", /* tp_name */ + sizeof(unpackiterobject), /* tp_basicsize */ + 0, /* tp_itemsize */ + (destructor)unpackiter_dealloc, /* tp_dealloc */ + 0, /* tp_print */ + 0, /* tp_getattr */ + 0, /* tp_setattr */ + 0, /* tp_reserved */ + 0, /* tp_repr */ + 0, /* tp_as_number */ + 0, /* tp_as_sequence */ + 0, /* tp_as_mapping */ + 0, /* tp_hash */ + 0, /* tp_call */ + 0, /* tp_str */ + PyObject_GenericGetAttr, /* tp_getattro */ + 0, /* tp_setattro */ + 0, /* tp_as_buffer */ + Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC, /* tp_flags */ + 0, /* tp_doc */ + (traverseproc)unpackiter_traverse, /* tp_traverse */ + 0, /* tp_clear */ + 0, /* tp_richcompare */ + 0, /* tp_weaklistoffset */ + PyObject_SelfIter, /* tp_iter */ + (iternextfunc)unpackiter_iternext, /* tp_iternext */ + unpackiter_methods /* tp_methods */ +}; + +PyDoc_STRVAR(s_iter_unpack__doc__, +"S.iter_unpack(buffer) -> iterator(v1, v2, ...)\n\ +\n\ +Return an iterator yielding tuples unpacked from the given bytes\n\ +source, like a repeated invocation of unpack_from(). Requires\n\ +that the bytes length be a multiple of the struct size."); + +static PyObject * +s_iter_unpack(PyObject *_so, PyObject *input) +{ + PyStructObject *so = (PyStructObject *) _so; + unpackiterobject *self; + + assert(PyStruct_Check(_so)); + assert(so->s_codes != NULL); + + if (so->s_size == 0) { + PyErr_Format(StructError, + "cannot iteratively unpack with a struct of length 0"); + return NULL; + } + + self = (unpackiterobject *) PyType_GenericAlloc(&unpackiter_type, 0); + if (self == NULL) + return NULL; + + if (PyObject_GetBuffer(input, &self->buf, PyBUF_SIMPLE) < 0) { + Py_DECREF(self); + return NULL; + } + if (self->buf.len % so->s_size != 0) { + PyErr_Format(StructError, + "iterative unpacking requires a bytes length " + "multiple of %zd", + so->s_size); + Py_DECREF(self); + return NULL; + } + Py_INCREF(so); + self->so = so; + self->index = 0; + return (PyObject *) self; +} + + /* * Guts of the pack function. * @@ -1777,6 +1915,7 @@ s_sizeof(PyStructObject *self, void *unused) /* List of functions */ static struct PyMethodDef s_methods[] = { + {"iter_unpack", s_iter_unpack, METH_O, s_iter_unpack__doc__}, {"pack", s_pack, METH_VARARGS, s_pack__doc__}, {"pack_into", s_pack_into, METH_VARARGS, s_pack_into__doc__}, {"unpack", s_unpack, METH_O, s_unpack__doc__}, @@ -2026,9 +2165,34 @@ unpack_from(PyObject *self, PyObject *args, PyObject *kwds) return result; } +PyDoc_STRVAR(iter_unpack_doc, +"iter_unpack(fmt, buffer) -> iterator(v1, v2, ...)\n\ +\n\ +Return an iterator yielding tuples unpacked from the given bytes\n\ +source according to the format string, like a repeated invocation of\n\ +unpack_from(). Requires that the bytes length be a multiple of the\n\ +format struct size."); + +static PyObject * +iter_unpack(PyObject *self, PyObject *args) +{ + PyObject *s_object, *fmt, *input, *result; + + if (!PyArg_ParseTuple(args, "OO:iter_unpack", &fmt, &input)) + return NULL; + + s_object = cache_struct(fmt); + if (s_object == NULL) + return NULL; + result = s_iter_unpack(s_object, input); + Py_DECREF(s_object); + return result; +} + static struct PyMethodDef module_functions[] = { {"_clearcache", (PyCFunction)clearcache, METH_NOARGS, clearcache_doc}, {"calcsize", calcsize, METH_O, calcsize_doc}, + {"iter_unpack", iter_unpack, METH_VARARGS, iter_unpack_doc}, {"pack", pack, METH_VARARGS, pack_doc}, {"pack_into", pack_into, METH_VARARGS, pack_into_doc}, {"unpack", unpack, METH_VARARGS, unpack_doc}, @@ -2098,13 +2262,13 @@ PyInit__struct(void) /* Check endian and swap in faster functions */ { - int one = 1; formatdef *native = native_table; formatdef *other, *ptr; - if ((int)*(unsigned char*)&one) - other = lilendian_table; - else - other = bigendian_table; +#if PY_LITTLE_ENDIAN + other = lilendian_table; +#else + other = bigendian_table; +#endif /* Scan through the native table, find a matching entry in the endian table and swap in the native implementations whenever possible diff --git a/Modules/_testcapimodule.c b/Modules/_testcapimodule.c index 2f43813..9a14fa2 100644 --- a/Modules/_testcapimodule.c +++ b/Modules/_testcapimodule.c @@ -1418,6 +1418,20 @@ test_widechar(PyObject *self) else return raiseTestError("test_widechar", "PyUnicode_FromUnicode(L\"\\U00110000\", 1) didn't fail"); + + wide = PyUnicode_FromUnicode(NULL, 1); + if (wide == NULL) + return NULL; + PyUnicode_AS_UNICODE(wide)[0] = invalid[0]; + if (_PyUnicode_Ready(wide) < 0) { + Py_DECREF(wide); + PyErr_Clear(); + } + else { + Py_DECREF(wide); + return raiseTestError("test_widechar", + "PyUnicode_Ready() didn't fail"); + } #endif Py_RETURN_NONE; diff --git a/Modules/_testimportmultiple.c b/Modules/_testimportmultiple.c new file mode 100644 index 0000000..1caeb66 --- /dev/null +++ b/Modules/_testimportmultiple.c @@ -0,0 +1,57 @@ +/* + * C extensions module to test importing multiple modules from one compiled + * file (issue16421). This file defines 3 modules (_testimportmodule, + * foo, bar), only the first one is called the same as the compiled file. + */ +#include<Python.h> + +static struct PyModuleDef _testimportmultiple = { + PyModuleDef_HEAD_INIT, + "_testimportmultiple", + "_testimportmultiple doc", + -1, + NULL, + NULL, + NULL, + NULL, + NULL +}; + +PyMODINIT_FUNC PyInit__testimportmultiple(void) +{ + return PyModule_Create(&_testimportmultiple); +} + +static struct PyModuleDef _foomodule = { + PyModuleDef_HEAD_INIT, + "_testimportmultiple_foo", + "_testimportmultiple_foo doc", + -1, + NULL, + NULL, + NULL, + NULL, + NULL +}; + +PyMODINIT_FUNC PyInit__testimportmultiple_foo(void) +{ + return PyModule_Create(&_foomodule); +} + +static struct PyModuleDef _barmodule = { + PyModuleDef_HEAD_INIT, + "_testimportmultiple_bar", + "_testimportmultiple_bar doc", + -1, + NULL, + NULL, + NULL, + NULL, + NULL +}; + +PyMODINIT_FUNC PyInit__testimportmultiple_bar(void){ + return PyModule_Create(&_barmodule); +} + diff --git a/Modules/_threadmodule.c b/Modules/_threadmodule.c index d1dc61d..cbb2901 100644 --- a/Modules/_threadmodule.c +++ b/Modules/_threadmodule.c @@ -741,7 +741,7 @@ local_new(PyTypeObject *type, PyObject *args, PyObject *kw) wr = PyWeakref_NewRef((PyObject *) self, NULL); if (wr == NULL) goto err; - self->wr_callback = PyCFunction_New(&wr_callback_def, wr); + self->wr_callback = PyCFunction_NewEx(&wr_callback_def, wr, NULL); Py_DECREF(wr); if (self->wr_callback == NULL) goto err; diff --git a/Modules/_tkinter.c b/Modules/_tkinter.c index d18c7f0..eb14827 100644 --- a/Modules/_tkinter.c +++ b/Modules/_tkinter.c @@ -125,52 +125,60 @@ Copyright (C) 1994 Steen Lumholt. /* The threading situation is complicated. Tcl is not thread-safe, except when configured with --enable-threads. - So we need to use a lock around all uses of Tcl. Previously, the Python - interpreter lock was used for this. However, this causes problems when - other Python threads need to run while Tcl is blocked waiting for events. - - To solve this problem, a separate lock for Tcl is introduced. Holding it - is incompatible with holding Python's interpreter lock. The following four - macros manipulate both locks together. - - ENTER_TCL and LEAVE_TCL are brackets, just like Py_BEGIN_ALLOW_THREADS and - Py_END_ALLOW_THREADS. They should be used whenever a call into Tcl is made - that could call an event handler, or otherwise affect the state of a Tcl - interpreter. These assume that the surrounding code has the Python - interpreter lock; inside the brackets, the Python interpreter lock has been - released and the lock for Tcl has been acquired. - - Sometimes, it is necessary to have both the Python lock and the Tcl lock. - (For example, when transferring data from the Tcl interpreter result to a - Python string object.) This can be done by using different macros to close - the ENTER_TCL block: ENTER_OVERLAP reacquires the Python lock (and restores - the thread state) but doesn't release the Tcl lock; LEAVE_OVERLAP_TCL - releases the Tcl lock. + + So we need to use a lock around all uses of Tcl. Previously, the + Python interpreter lock was used for this. However, this causes + problems when other Python threads need to run while Tcl is blocked + waiting for events. + + To solve this problem, a separate lock for Tcl is introduced. + Holding it is incompatible with holding Python's interpreter lock. + The following four macros manipulate both locks together. + + ENTER_TCL and LEAVE_TCL are brackets, just like + Py_BEGIN_ALLOW_THREADS and Py_END_ALLOW_THREADS. They should be + used whenever a call into Tcl is made that could call an event + handler, or otherwise affect the state of a Tcl interpreter. These + assume that the surrounding code has the Python interpreter lock; + inside the brackets, the Python interpreter lock has been released + and the lock for Tcl has been acquired. + + Sometimes, it is necessary to have both the Python lock and the Tcl + lock. (For example, when transferring data from the Tcl + interpreter result to a Python string object.) This can be done by + using different macros to close the ENTER_TCL block: ENTER_OVERLAP + reacquires the Python lock (and restores the thread state) but + doesn't release the Tcl lock; LEAVE_OVERLAP_TCL releases the Tcl + lock. By contrast, ENTER_PYTHON and LEAVE_PYTHON are used in Tcl event - handlers when the handler needs to use Python. Such event handlers are - entered while the lock for Tcl is held; the event handler presumably needs - to use Python. ENTER_PYTHON releases the lock for Tcl and acquires - the Python interpreter lock, restoring the appropriate thread state, and - LEAVE_PYTHON releases the Python interpreter lock and re-acquires the lock - for Tcl. It is okay for ENTER_TCL/LEAVE_TCL pairs to be contained inside - the code between ENTER_PYTHON and LEAVE_PYTHON. - - These locks expand to several statements and brackets; they should not be - used in branches of if statements and the like. - - If Tcl is threaded, this approach won't work anymore. The Tcl interpreter is - only valid in the thread that created it, and all Tk activity must happen in this - thread, also. That means that the mainloop must be invoked in the thread that - created the interpreter. Invoking commands from other threads is possible; - _tkinter will queue an event for the interpreter thread, which will then - execute the command and pass back the result. If the main thread is not in the - mainloop, and invoking commands causes an exception; if the main loop is running - but not processing events, the command invocation will block. - - In addition, for a threaded Tcl, a single global tcl_tstate won't be sufficient - anymore, since multiple Tcl interpreters may simultaneously dispatch in different - threads. So we use the Tcl TLS API. + handlers when the handler needs to use Python. Such event handlers + are entered while the lock for Tcl is held; the event handler + presumably needs to use Python. ENTER_PYTHON releases the lock for + Tcl and acquires the Python interpreter lock, restoring the + appropriate thread state, and LEAVE_PYTHON releases the Python + interpreter lock and re-acquires the lock for Tcl. It is okay for + ENTER_TCL/LEAVE_TCL pairs to be contained inside the code between + ENTER_PYTHON and LEAVE_PYTHON. + + These locks expand to several statements and brackets; they should + not be used in branches of if statements and the like. + + If Tcl is threaded, this approach won't work anymore. The Tcl + interpreter is only valid in the thread that created it, and all Tk + activity must happen in this thread, also. That means that the + mainloop must be invoked in the thread that created the + interpreter. Invoking commands from other threads is possible; + _tkinter will queue an event for the interpreter thread, which will + then execute the command and pass back the result. If the main + thread is not in the mainloop, and invoking commands causes an + exception; if the main loop is running but not processing events, + the command invocation will block. + + In addition, for a threaded Tcl, a single global tcl_tstate won't + be sufficient anymore, since multiple Tcl interpreters may + simultaneously dispatch in different threads. So we use the Tcl TLS + API. */ @@ -179,7 +187,8 @@ static PyThread_type_lock tcl_lock = 0; #ifdef TCL_THREADS static Tcl_ThreadDataKey state_key; typedef PyThreadState *ThreadSpecificData; -#define tcl_tstate (*(PyThreadState**)Tcl_GetThreadData(&state_key, sizeof(PyThreadState*))) +#define tcl_tstate \ + (*(PyThreadState**)Tcl_GetThreadData(&state_key, sizeof(PyThreadState*))) #else static PyThreadState *tcl_tstate = NULL; #endif @@ -189,7 +198,8 @@ static PyThreadState *tcl_tstate = NULL; if(tcl_lock)PyThread_acquire_lock(tcl_lock, 1); tcl_tstate = tstate; #define LEAVE_TCL \ - tcl_tstate = NULL; if(tcl_lock)PyThread_release_lock(tcl_lock); Py_END_ALLOW_THREADS} + tcl_tstate = NULL; \ + if(tcl_lock)PyThread_release_lock(tcl_lock); Py_END_ALLOW_THREADS} #define ENTER_OVERLAP \ Py_END_ALLOW_THREADS @@ -199,7 +209,8 @@ static PyThreadState *tcl_tstate = NULL; #define ENTER_PYTHON \ { PyThreadState *tstate = tcl_tstate; tcl_tstate = NULL; \ - if(tcl_lock)PyThread_release_lock(tcl_lock); PyEval_RestoreThread((tstate)); } + if(tcl_lock) \ + PyThread_release_lock(tcl_lock); PyEval_RestoreThread((tstate)); } #define LEAVE_PYTHON \ { PyThreadState *tstate = PyEval_SaveThread(); \ @@ -208,7 +219,8 @@ static PyThreadState *tcl_tstate = NULL; #define CHECK_TCL_APPARTMENT \ if (((TkappObject *)self)->threaded && \ ((TkappObject *)self)->thread_id != Tcl_GetCurrentThread()) { \ - PyErr_SetString(PyExc_RuntimeError, "Calling Tcl from different appartment"); \ + PyErr_SetString(PyExc_RuntimeError, \ + "Calling Tcl from different appartment"); \ return 0; \ } @@ -230,7 +242,7 @@ static PyThreadState *tcl_tstate = NULL; /**** Tkapp Object Declaration ****/ -static PyTypeObject Tkapp_Type; +static PyObject *Tkapp_Type; typedef struct { PyObject_HEAD @@ -250,7 +262,6 @@ typedef struct { Tcl_ObjType *StringType; } TkappObject; -#define Tkapp_Check(v) (Py_TYPE(v) == &Tkapp_Type) #define Tkapp_Interp(v) (((TkappObject *) (v))->interp) #define Tkapp_Result(v) Tcl_GetStringResult(Tkapp_Interp(v)) @@ -323,115 +334,9 @@ WaitForMainloop(TkappObject* self) #endif /* WITH_THREAD */ -static char * -AsString(PyObject *value, PyObject *tmp) -{ - if (PyBytes_Check(value)) - return PyBytes_AsString(value); - else if (PyUnicode_Check(value)) { - PyObject *v = PyUnicode_AsUTF8String(value); - if (v == NULL) - return NULL; - if (PyList_Append(tmp, v) != 0) { - Py_DECREF(v); - return NULL; - } - Py_DECREF(v); - return PyBytes_AsString(v); - } - else { - PyObject *v = PyObject_Str(value); - if (v == NULL) - return NULL; - if (PyList_Append(tmp, v) != 0) { - Py_DECREF(v); - return NULL; - } - Py_DECREF(v); - return PyBytes_AsString(v); - } -} - - #define ARGSZ 64 -static char * -Merge(PyObject *args) -{ - PyObject *tmp = NULL; - char *argvStore[ARGSZ]; - char **argv = NULL; - int fvStore[ARGSZ]; - int *fv = NULL; - int argc = 0, fvc = 0, i; - char *res = NULL; - - if (!(tmp = PyList_New(0))) - return NULL; - - argv = argvStore; - fv = fvStore; - - if (args == NULL) - argc = 0; - - else if (!PyTuple_Check(args)) { - argc = 1; - fv[0] = 0; - if (!(argv[0] = AsString(args, tmp))) - goto finally; - } - else { - argc = PyTuple_Size(args); - - if (argc > ARGSZ) { - argv = (char **)ckalloc(argc * sizeof(char *)); - fv = (int *)ckalloc(argc * sizeof(int)); - if (argv == NULL || fv == NULL) { - PyErr_NoMemory(); - goto finally; - } - } - - for (i = 0; i < argc; i++) { - PyObject *v = PyTuple_GetItem(args, i); - if (PyTuple_Check(v)) { - fv[i] = 1; - if (!(argv[i] = Merge(v))) - goto finally; - fvc++; - } - else if (v == Py_None) { - argc = i; - break; - } - else { - fv[i] = 0; - if (!(argv[i] = AsString(v, tmp))) - goto finally; - fvc++; - } - } - } - res = Tcl_Merge(argc, argv); - if (res == NULL) - PyErr_SetString(Tkinter_TclError, "merge failed"); - - finally: - for (i = 0; i < fvc; i++) - if (fv[i]) { - ckfree(argv[i]); - } - if (argv != argvStore) - ckfree(FREECAST argv); - if (fv != fvStore) - ckfree(FREECAST fv); - - Py_DECREF(tmp); - return res; -} - static PyObject * @@ -442,8 +347,7 @@ Split(char *list) PyObject *v; if (list == NULL) { - Py_INCREF(Py_None); - return Py_None; + Py_RETURN_NONE; } if (Tcl_SplitList((Tcl_Interp *)NULL, list, &argc, &argv) != TCL_OK) { @@ -475,9 +379,9 @@ Split(char *list) return v; } -/* In some cases, Tcl will still return strings that are supposed to be - lists. SplitObj walks through a nested tuple, finding string objects that - need to be split. */ +/* In some cases, Tcl will still return strings that are supposed to + be lists. SplitObj walks through a nested tuple, finding string + objects that need to be split. */ static PyObject * SplitObj(PyObject *arg) @@ -594,7 +498,7 @@ Tkapp_New(char *screenName, char *className, TkappObject *v; char *argv0; - v = PyObject_New(TkappObject, &Tkapp_Type); + v = PyObject_New(TkappObject, (PyTypeObject *) Tkapp_Type); if (v == NULL) return NULL; @@ -607,7 +511,8 @@ Tkapp_New(char *screenName, char *className, #ifndef TCL_THREADS if (v->threaded) { - PyErr_SetString(PyExc_RuntimeError, "Tcl is threaded but _tkinter is not"); + PyErr_SetString(PyExc_RuntimeError, + "Tcl is threaded but _tkinter is not"); Py_DECREF(v); return 0; } @@ -744,14 +649,14 @@ typedef struct { PyObject *string; /* This cannot cause cycles. */ } PyTclObject; -static PyTypeObject PyTclObject_Type; -#define PyTclObject_Check(v) ((v)->ob_type == &PyTclObject_Type) +static PyObject *PyTclObject_Type; +#define PyTclObject_Check(v) ((v)->ob_type == (PyTypeObject *) PyTclObject_Type) static PyObject * newPyTclObject(Tcl_Obj *arg) { PyTclObject *self; - self = PyObject_New(PyTclObject, &PyTclObject_Type); + self = PyObject_New(PyTclObject, (PyTypeObject *) PyTclObject_Type); if (self == NULL) return NULL; Tcl_IncrRefCount(arg); @@ -885,50 +790,25 @@ static PyGetSetDef PyTclObject_getsetlist[] = { {0}, }; -static PyTypeObject PyTclObject_Type = { - PyVarObject_HEAD_INIT(NULL, 0) - "_tkinter.Tcl_Obj", /*tp_name*/ - sizeof(PyTclObject), /*tp_basicsize*/ - 0, /*tp_itemsize*/ - /* methods */ - (destructor)PyTclObject_dealloc,/*tp_dealloc*/ - 0, /*tp_print*/ - 0, /*tp_getattr*/ - 0, /*tp_setattr*/ - 0, /*tp_reserved*/ - (reprfunc)PyTclObject_repr, /*tp_repr*/ - 0, /*tp_as_number*/ - 0, /*tp_as_sequence*/ - 0, /*tp_as_mapping*/ - 0, /*tp_hash*/ - 0, /*tp_call*/ - (reprfunc)PyTclObject_str, /*tp_str*/ - PyObject_GenericGetAttr, /*tp_getattro*/ - 0, /*tp_setattro*/ - 0, /*tp_as_buffer*/ - Py_TPFLAGS_DEFAULT, /*tp_flags*/ - 0, /*tp_doc*/ - 0, /*tp_traverse*/ - 0, /*tp_clear*/ - PyTclObject_richcompare, /*tp_richcompare*/ - 0, /*tp_weaklistoffset*/ - 0, /*tp_iter*/ - 0, /*tp_iternext*/ - 0, /*tp_methods*/ - 0, /*tp_members*/ - PyTclObject_getsetlist, /*tp_getset*/ - 0, /*tp_base*/ - 0, /*tp_dict*/ - 0, /*tp_descr_get*/ - 0, /*tp_descr_set*/ - 0, /*tp_dictoffset*/ - 0, /*tp_init*/ - 0, /*tp_alloc*/ - 0, /*tp_new*/ - 0, /*tp_free*/ - 0, /*tp_is_gc*/ +static PyType_Slot PyTclObject_Type_slots[] = { + {Py_tp_dealloc, (destructor)PyTclObject_dealloc}, + {Py_tp_repr, (reprfunc)PyTclObject_repr}, + {Py_tp_str, (reprfunc)PyTclObject_str}, + {Py_tp_getattro, PyObject_GenericGetAttr}, + {Py_tp_richcompare, PyTclObject_richcompare}, + {Py_tp_getset, PyTclObject_getsetlist}, + {0, 0} +}; + +static PyType_Spec PyTclObject_Type_spec = { + "_tkinter.Tcl_Obj", + sizeof(PyTclObject), + 0, + Py_TPFLAGS_DEFAULT, + PyTclObject_Type_slots, }; + static Tcl_Obj* AsObj(PyObject *value) { @@ -1332,42 +1212,6 @@ Tkapp_Call(PyObject *selfptr, PyObject *args) static PyObject * -Tkapp_GlobalCall(PyObject *self, PyObject *args) -{ - /* Could do the same here as for Tkapp_Call(), but this is not used - much, so I can't be bothered. Unfortunately Tcl doesn't export a - way for the user to do what all its Global* variants do (save and - reset the scope pointer, call the local version, restore the saved - scope pointer). */ - - char *cmd; - PyObject *res = NULL; - - if (PyErr_WarnEx(PyExc_DeprecationWarning, - "globalcall is deprecated and will be removed in 3.4", - 1) < 0) - return 0; - - CHECK_TCL_APPARTMENT; - - cmd = Merge(args); - if (cmd) { - int err; - ENTER_TCL - err = Tcl_GlobalEval(Tkapp_Interp(self), cmd); - ENTER_OVERLAP - if (err == TCL_ERROR) - res = Tkinter_Error(self); - else - res = PyUnicode_FromString(Tkapp_Result(self)); - LEAVE_OVERLAP_TCL - ckfree(cmd); - } - - return res; -} - -static PyObject * Tkapp_Eval(PyObject *self, PyObject *args) { char *script; @@ -1391,34 +1235,6 @@ Tkapp_Eval(PyObject *self, PyObject *args) } static PyObject * -Tkapp_GlobalEval(PyObject *self, PyObject *args) -{ - char *script; - PyObject *res = NULL; - int err; - - if (PyErr_WarnEx(PyExc_DeprecationWarning, - "globaleval is deprecated and will be removed in 3.4", - 1) < 0) - return 0; - - if (!PyArg_ParseTuple(args, "s:globaleval", &script)) - return NULL; - - CHECK_TCL_APPARTMENT; - - ENTER_TCL - err = Tcl_GlobalEval(Tkapp_Interp(self), script); - ENTER_OVERLAP - if (err == TCL_ERROR) - res = Tkinter_Error(self); - else - res = PyUnicode_FromString(Tkapp_Result(self)); - LEAVE_OVERLAP_TCL - return res; -} - -static PyObject * Tkapp_EvalFile(PyObject *self, PyObject *args) { char *fileName; @@ -1478,8 +1294,7 @@ Tkapp_AddErrorInfo(PyObject *self, PyObject *args) Tcl_AddErrorInfo(Tkapp_Interp(self), msg); LEAVE_TCL - Py_INCREF(Py_None); - return Py_None; + Py_RETURN_NONE; } @@ -1677,7 +1492,8 @@ GetVar(PyObject *self, PyObject *args, int flags) tres = Tcl_GetVar2Ex(Tkapp_Interp(self), name1, name2, flags); ENTER_OVERLAP if (tres == NULL) { - PyErr_SetString(Tkinter_TclError, Tcl_GetStringResult(Tkapp_Interp(self))); + PyErr_SetString(Tkinter_TclError, + Tcl_GetStringResult(Tkapp_Interp(self))); } else { if (((TkappObject*)self)->wantobjects) { res = FromObj(self, tres); @@ -1736,7 +1552,8 @@ Tkapp_UnsetVar(PyObject *self, PyObject *args) static PyObject * Tkapp_GlobalUnsetVar(PyObject *self, PyObject *args) { - return var_invoke(UnsetVar, self, args, TCL_LEAVE_ERR_MSG | TCL_GLOBAL_ONLY); + return var_invoke(UnsetVar, self, args, + TCL_LEAVE_ERR_MSG | TCL_GLOBAL_ONLY); } @@ -1961,27 +1778,6 @@ Tkapp_Split(PyObject *self, PyObject *args) return v; } -static PyObject * -Tkapp_Merge(PyObject *self, PyObject *args) -{ - char *s; - PyObject *res = NULL; - - if (PyErr_WarnEx(PyExc_DeprecationWarning, - "merge is deprecated and will be removed in 3.4", - 1) < 0) - return 0; - - s = Merge(args); - - if (s) { - res = PyUnicode_FromString(s); - ckfree(s); - } - - return res; -} - /** Tcl Command **/ @@ -2167,8 +1963,7 @@ Tkapp_CreateCommand(PyObject *selfptr, PyObject *args) return NULL; } - Py_INCREF(Py_None); - return Py_None; + Py_RETURN_NONE; } @@ -2209,8 +2004,7 @@ Tkapp_DeleteCommand(PyObject *selfptr, PyObject *args) PyErr_SetString(Tkinter_TclError, "can't delete Tcl command"); return NULL; } - Py_INCREF(Py_None); - return Py_None; + Py_RETURN_NONE; } @@ -2314,8 +2108,7 @@ Tkapp_CreateFileHandler(PyObject *self, PyObject *args) ENTER_TCL Tcl_CreateFileHandler(tfile, mask, FileHandler, (ClientData) data); LEAVE_TCL - Py_INCREF(Py_None); - return Py_None; + Py_RETURN_NONE; } static PyObject * @@ -2339,15 +2132,14 @@ Tkapp_DeleteFileHandler(PyObject *self, PyObject *args) ENTER_TCL Tcl_DeleteFileHandler(tfile); LEAVE_TCL - Py_INCREF(Py_None); - return Py_None; + Py_RETURN_NONE; } #endif /* HAVE_CREATEFILEHANDLER */ /**** Tktt Object (timer token) ****/ -static PyTypeObject Tktt_Type; +static PyObject *Tktt_Type; typedef struct { PyObject_HEAD @@ -2372,8 +2164,7 @@ Tktt_DeleteTimerHandler(PyObject *self, PyObject *args) Py_DECREF(func); Py_DECREF(v); /* See Tktt_New() */ } - Py_INCREF(Py_None); - return Py_None; + Py_RETURN_NONE; } static PyMethodDef Tktt_methods[] = @@ -2387,7 +2178,7 @@ Tktt_New(PyObject *func) { TkttObject *v; - v = PyObject_New(TkttObject, &Tktt_Type); + v = PyObject_New(TkttObject, (PyTypeObject *) Tktt_Type); if (v == NULL) return NULL; @@ -2420,38 +2211,20 @@ Tktt_Repr(PyObject *self) v->func == NULL ? ", handler deleted" : ""); } -static PyTypeObject Tktt_Type = -{ - PyVarObject_HEAD_INIT(NULL, 0) - "tktimertoken", /*tp_name */ - sizeof(TkttObject), /*tp_basicsize */ - 0, /*tp_itemsize */ - Tktt_Dealloc, /*tp_dealloc */ - 0, /*tp_print */ - 0, /*tp_getattr */ - 0, /*tp_setattr */ - 0, /*tp_reserved */ - Tktt_Repr, /*tp_repr */ - 0, /*tp_as_number */ - 0, /*tp_as_sequence */ - 0, /*tp_as_mapping */ - 0, /*tp_hash */ - 0, /*tp_call*/ - 0, /*tp_str*/ - 0, /*tp_getattro*/ - 0, /*tp_setattro*/ - 0, /*tp_as_buffer*/ - Py_TPFLAGS_DEFAULT, /*tp_flags*/ - 0, /*tp_doc*/ - 0, /*tp_traverse*/ - 0, /*tp_clear*/ - 0, /*tp_richcompare*/ - 0, /*tp_weaklistoffset*/ - 0, /*tp_iter*/ - 0, /*tp_iternext*/ - Tktt_methods, /*tp_methods*/ +static PyType_Slot Tktt_Type_slots[] = { + {Py_tp_dealloc, Tktt_Dealloc}, + {Py_tp_repr, Tktt_Repr}, + {Py_tp_methods, Tktt_methods}, + {0, 0} }; +static PyType_Spec Tktt_Type_spec = { + "tktimertoken", + sizeof(TkttObject), + 0, + Py_TPFLAGS_DEFAULT, + Tktt_Type_slots, +}; /** Timer Handler **/ @@ -2573,8 +2346,7 @@ Tkapp_MainLoop(PyObject *selfptr, PyObject *args) excInCmd = valInCmd = trbInCmd = NULL; return NULL; } - Py_INCREF(Py_None); - return Py_None; + Py_RETURN_NONE; } static PyObject * @@ -2600,8 +2372,7 @@ Tkapp_Quit(PyObject *self, PyObject *args) return NULL; quitMainLoop = 1; - Py_INCREF(Py_None); - return Py_None; + Py_RETURN_NONE; } static PyObject * @@ -2651,15 +2422,15 @@ Tkapp_TkInit(PyObject *self, PyObject *args) } if (_tk_exists == NULL || strcmp(_tk_exists, "1") != 0) { if (Tk_Init(interp) == TCL_ERROR) { - PyErr_SetString(Tkinter_TclError, Tcl_GetStringResult(Tkapp_Interp(self))); + PyErr_SetString(Tkinter_TclError, + Tcl_GetStringResult(Tkapp_Interp(self))); #ifdef TKINTER_PROTECT_LOADTK tk_load_failed = 1; #endif return NULL; } } - Py_INCREF(Py_None); - return Py_None; + Py_RETURN_NONE; } static PyObject * @@ -2673,8 +2444,7 @@ Tkapp_WantObjects(PyObject *self, PyObject *args) return PyBool_FromLong(((TkappObject*)self)->wantobjects); ((TkappObject*)self)->wantobjects = wantobjects; - Py_INCREF(Py_None); - return Py_None; + Py_RETURN_NONE; } static PyObject * @@ -2683,8 +2453,7 @@ Tkapp_WillDispatch(PyObject *self, PyObject *args) ((TkappObject*)self)->dispatching = 1; - Py_INCREF(Py_None); - return Py_None; + Py_RETURN_NONE; } @@ -2695,9 +2464,7 @@ static PyMethodDef Tkapp_methods[] = {"willdispatch", Tkapp_WillDispatch, METH_NOARGS}, {"wantobjects", Tkapp_WantObjects, METH_VARARGS}, {"call", Tkapp_Call, METH_VARARGS}, - {"globalcall", Tkapp_GlobalCall, METH_VARARGS}, {"eval", Tkapp_Eval, METH_VARARGS}, - {"globaleval", Tkapp_GlobalEval, METH_VARARGS}, {"evalfile", Tkapp_EvalFile, METH_VARARGS}, {"record", Tkapp_Record, METH_VARARGS}, {"adderrorinfo", Tkapp_AddErrorInfo, METH_VARARGS}, @@ -2716,7 +2483,6 @@ static PyMethodDef Tkapp_methods[] = {"exprboolean", Tkapp_ExprBoolean, METH_VARARGS}, {"splitlist", Tkapp_SplitList, METH_VARARGS}, {"split", Tkapp_Split, METH_VARARGS}, - {"merge", Tkapp_Merge, METH_VARARGS}, {"createcommand", Tkapp_CreateCommand, METH_VARARGS}, {"deletecommand", Tkapp_DeleteCommand, METH_VARARGS}, #ifdef HAVE_CREATEFILEHANDLER @@ -2747,36 +2513,19 @@ Tkapp_Dealloc(PyObject *self) DisableEventHook(); } -static PyTypeObject Tkapp_Type = -{ - PyVarObject_HEAD_INIT(NULL, 0) - "tkapp", /*tp_name */ - sizeof(TkappObject), /*tp_basicsize */ - 0, /*tp_itemsize */ - Tkapp_Dealloc, /*tp_dealloc */ - 0, /*tp_print */ - 0, /*tp_getattr */ - 0, /*tp_setattr */ - 0, /*tp_reserved */ - 0, /*tp_repr */ - 0, /*tp_as_number */ - 0, /*tp_as_sequence */ - 0, /*tp_as_mapping */ - 0, /*tp_hash */ - 0, /*tp_call*/ - 0, /*tp_str*/ - 0, /*tp_getattro*/ - 0, /*tp_setattro*/ - 0, /*tp_as_buffer*/ - Py_TPFLAGS_DEFAULT, /*tp_flags*/ - 0, /*tp_doc*/ - 0, /*tp_traverse*/ - 0, /*tp_clear*/ - 0, /*tp_richcompare*/ - 0, /*tp_weaklistoffset*/ - 0, /*tp_iter*/ - 0, /*tp_iternext*/ - Tkapp_methods, /*tp_methods*/ +static PyType_Slot Tkapp_Type_slots[] = { + {Py_tp_dealloc, Tkapp_Dealloc}, + {Py_tp_methods, Tkapp_methods}, + {0, 0} +}; + + +static PyType_Spec Tkapp_Type_spec = { + "tkapp", + sizeof(TkappObject), + 0, + Py_TPFLAGS_DEFAULT, + Tkapp_Type_slots, }; @@ -2916,7 +2665,7 @@ Tkinter_Create(PyObject *self, PyObject *args) return NULL; return (PyObject *) Tkapp_New(screenName, className, - interactive, wantobjects, wantTk, + interactive, wantobjects, wantTk, sync, use); } @@ -2932,8 +2681,7 @@ Tkinter_setbusywaitinterval(PyObject *self, PyObject *args) return NULL; } Tkinter_busywaitinterval = new_val; - Py_INCREF(Py_None); - return Py_None; + Py_RETURN_NONE; } static char setbusywaitinterval_doc[] = @@ -3066,27 +2814,6 @@ DisableEventHook(void) } -/* all errors will be checked in one fell swoop in init_tkinter() */ -static void -ins_long(PyObject *d, char *name, long val) -{ - PyObject *v = PyLong_FromLong(val); - if (v) { - PyDict_SetItemString(d, name, v); - Py_DECREF(v); - } -} -static void -ins_string(PyObject *d, char *name, char *val) -{ - PyObject *v = PyUnicode_FromString(val); - if (v) { - PyDict_SetItemString(d, name, v); - Py_DECREF(v); - } -} - - static struct PyModuleDef _tkintermodule = { PyModuleDef_HEAD_INIT, "_tkinter", @@ -3102,45 +2829,111 @@ static struct PyModuleDef _tkintermodule = { PyMODINIT_FUNC PyInit__tkinter(void) { - PyObject *m, *d, *uexe, *cexe; - - if (PyType_Ready(&Tkapp_Type) < 0) - return NULL; + PyObject *m, *uexe, *cexe, *o; #ifdef WITH_THREAD tcl_lock = PyThread_allocate_lock(); + if (tcl_lock == NULL) + return NULL; #endif m = PyModule_Create(&_tkintermodule); if (m == NULL) return NULL; - d = PyModule_GetDict(m); - Tkinter_TclError = PyErr_NewException("_tkinter.TclError", NULL, NULL); - PyDict_SetItemString(d, "TclError", Tkinter_TclError); + o = PyErr_NewException("_tkinter.TclError", NULL, NULL); + if (o == NULL) { + Py_DECREF(m); + return NULL; + } + Py_INCREF(o); + if (PyModule_AddObject(m, "TclError", o)) { + Py_DECREF(o); + Py_DECREF(m); + return NULL; + } + Tkinter_TclError = o; - ins_long(d, "READABLE", TCL_READABLE); - ins_long(d, "WRITABLE", TCL_WRITABLE); - ins_long(d, "EXCEPTION", TCL_EXCEPTION); - ins_long(d, "WINDOW_EVENTS", TCL_WINDOW_EVENTS); - ins_long(d, "FILE_EVENTS", TCL_FILE_EVENTS); - ins_long(d, "TIMER_EVENTS", TCL_TIMER_EVENTS); - ins_long(d, "IDLE_EVENTS", TCL_IDLE_EVENTS); - ins_long(d, "ALL_EVENTS", TCL_ALL_EVENTS); - ins_long(d, "DONT_WAIT", TCL_DONT_WAIT); - ins_string(d, "TK_VERSION", TK_VERSION); - ins_string(d, "TCL_VERSION", TCL_VERSION); + if (PyModule_AddIntConstant(m, "READABLE", TCL_READABLE)) { + Py_DECREF(m); + return NULL; + } + if (PyModule_AddIntConstant(m, "WRITABLE", TCL_WRITABLE)) { + Py_DECREF(m); + return NULL; + } + if (PyModule_AddIntConstant(m, "EXCEPTION", TCL_EXCEPTION)) { + Py_DECREF(m); + return NULL; + } + if (PyModule_AddIntConstant(m, "WINDOW_EVENTS", TCL_WINDOW_EVENTS)) { + Py_DECREF(m); + return NULL; + } + if (PyModule_AddIntConstant(m, "FILE_EVENTS", TCL_FILE_EVENTS)) { + Py_DECREF(m); + return NULL; + } + if (PyModule_AddIntConstant(m, "TIMER_EVENTS", TCL_TIMER_EVENTS)) { + Py_DECREF(m); + return NULL; + } + if (PyModule_AddIntConstant(m, "IDLE_EVENTS", TCL_IDLE_EVENTS)) { + Py_DECREF(m); + return NULL; + } + if (PyModule_AddIntConstant(m, "ALL_EVENTS", TCL_ALL_EVENTS)) { + Py_DECREF(m); + return NULL; + } + if (PyModule_AddIntConstant(m, "DONT_WAIT", TCL_DONT_WAIT)) { + Py_DECREF(m); + return NULL; + } + if (PyModule_AddStringConstant(m, "TK_VERSION", TK_VERSION)) { + Py_DECREF(m); + return NULL; + } + if (PyModule_AddStringConstant(m, "TCL_VERSION", TCL_VERSION)) { + Py_DECREF(m); + return NULL; + } - PyDict_SetItemString(d, "TkappType", (PyObject *)&Tkapp_Type); + o = PyType_FromSpec(&Tkapp_Type_spec); + if (o == NULL) { + Py_DECREF(m); + return NULL; + } + if (PyModule_AddObject(m, "TkappType", o)) { + Py_DECREF(o); + Py_DECREF(m); + return NULL; + } + Tkapp_Type = o; - if (PyType_Ready(&Tktt_Type) < 0) { + o = PyType_FromSpec(&Tktt_Type_spec); + if (o == NULL) { + Py_DECREF(m); + return NULL; + } + if (PyModule_AddObject(m, "TkttType", o)) { + Py_DECREF(o); Py_DECREF(m); return NULL; } - PyDict_SetItemString(d, "TkttType", (PyObject *)&Tktt_Type); + Tktt_Type = o; - Py_TYPE(&PyTclObject_Type) = &PyType_Type; - PyDict_SetItemString(d, "Tcl_Obj", (PyObject *)&PyTclObject_Type); + o = PyType_FromSpec(&PyTclObject_Type_spec); + if (o == NULL) { + Py_DECREF(m); + return NULL; + } + if (PyModule_AddObject(m, "Tcl_Obj", o)) { + Py_DECREF(o); + Py_DECREF(m); + return NULL; + } + PyTclObject_Type = o; #ifdef TK_AQUA /* Tk_MacOSXSetupTkNotifier must be called before Tcl's subsystems diff --git a/Modules/arraymodule.c b/Modules/arraymodule.c index 96c9e5b..1c75989 100644 --- a/Modules/arraymodule.c +++ b/Modules/arraymodule.c @@ -1664,11 +1664,8 @@ static const struct mformatdescr { static enum machine_format_code typecode_to_mformat_code(char typecode) { -#ifdef WORDS_BIGENDIAN - const int is_big_endian = 1; -#else - const int is_big_endian = 0; -#endif + const int is_big_endian = PY_BIG_ENDIAN; + size_t intsize; int is_signed; diff --git a/Modules/audioop.c b/Modules/audioop.c index 7e40bbd..4f2b25f 100644 --- a/Modules/audioop.c +++ b/Modules/audioop.c @@ -37,7 +37,7 @@ fbound(double val, double minval, double maxval) val = maxval; else if (val < minval + 1) val = minval; - return val; + return (int)val; } diff --git a/Modules/cjkcodecs/_codecs_cn.c b/Modules/cjkcodecs/_codecs_cn.c index 9e9e96c..285da1e 100644 --- a/Modules/cjkcodecs/_codecs_cn.c +++ b/Modules/cjkcodecs/_codecs_cn.c @@ -23,12 +23,12 @@ * A844 undefined U+2015 HORIZONTAL BAR */ -#define GBK_DECODE(dc1, dc2, assi) \ - if ((dc1) == 0xa1 && (dc2) == 0xaa) (assi) = 0x2014; \ - else if ((dc1) == 0xa8 && (dc2) == 0x44) (assi) = 0x2015; \ - else if ((dc1) == 0xa1 && (dc2) == 0xa4) (assi) = 0x00b7; \ - else TRYMAP_DEC(gb2312, assi, dc1 ^ 0x80, dc2 ^ 0x80); \ - else TRYMAP_DEC(gbkext, assi, dc1, dc2); +#define GBK_DECODE(dc1, dc2, writer) \ + if ((dc1) == 0xa1 && (dc2) == 0xaa) OUTCHAR(0x2014); \ + else if ((dc1) == 0xa8 && (dc2) == 0x44) OUTCHAR(0x2015); \ + else if ((dc1) == 0xa1 && (dc2) == 0xa4) OUTCHAR(0x00b7); \ + else TRYMAP_DEC(gb2312, writer, dc1 ^ 0x80, dc2 ^ 0x80); \ + else TRYMAP_DEC(gbkext, writer, dc1, dc2); #define GBK_ENCODE(code, assi) \ if ((code) == 0x2014) (assi) = 0xa1aa; \ @@ -42,16 +42,18 @@ ENCODER(gb2312) { - while (inleft > 0) { - Py_UNICODE c = IN1; + while (*inpos < inlen) { + Py_UCS4 c = INCHAR1; DBCHAR code; if (c < 0x80) { - WRITE1((unsigned char)c) - NEXT(1, 1) + WRITEBYTE1((unsigned char)c) + NEXT(1, 1); continue; } - UCS4INVALID(c) + + if (c > 0xFFFF) + return 1; REQUIRE_OUTBUF(2) TRYMAP_ENC(gbcommon, code, c); @@ -60,9 +62,9 @@ ENCODER(gb2312) if (code & 0x8000) /* MSB set: GBK */ return 1; - OUT1((code >> 8) | 0x80) - OUT2((code & 0xFF) | 0x80) - NEXT(1, 2) + OUTBYTE1((code >> 8) | 0x80) + OUTBYTE2((code & 0xFF) | 0x80) + NEXT(1, 2); } return 0; @@ -73,17 +75,15 @@ DECODER(gb2312) while (inleft > 0) { unsigned char c = **inbuf; - REQUIRE_OUTBUF(1) - if (c < 0x80) { - OUT1(c) - NEXT(1, 1) + OUTCHAR(c); + NEXT_IN(1); continue; } REQUIRE_INBUF(2) - TRYMAP_DEC(gb2312, **outbuf, c ^ 0x80, IN2 ^ 0x80) { - NEXT(2, 1) + TRYMAP_DEC(gb2312, writer, c ^ 0x80, INBYTE2 ^ 0x80) { + NEXT_IN(2); } else return 1; } @@ -98,28 +98,30 @@ DECODER(gb2312) ENCODER(gbk) { - while (inleft > 0) { - Py_UNICODE c = IN1; + while (*inpos < inlen) { + Py_UCS4 c = INCHAR1; DBCHAR code; if (c < 0x80) { - WRITE1((unsigned char)c) - NEXT(1, 1) + WRITEBYTE1((unsigned char)c) + NEXT(1, 1); continue; } - UCS4INVALID(c) + + if (c > 0xFFFF) + return 1; REQUIRE_OUTBUF(2) GBK_ENCODE(c, code) else return 1; - OUT1((code >> 8) | 0x80) + OUTBYTE1((code >> 8) | 0x80) if (code & 0x8000) - OUT2((code & 0xFF)) /* MSB set: GBK */ + OUTBYTE2((code & 0xFF)) /* MSB set: GBK */ else - OUT2((code & 0xFF) | 0x80) /* MSB unset: GB2312 */ - NEXT(1, 2) + OUTBYTE2((code & 0xFF) | 0x80) /* MSB unset: GB2312 */ + NEXT(1, 2); } return 0; @@ -128,22 +130,20 @@ ENCODER(gbk) DECODER(gbk) { while (inleft > 0) { - unsigned char c = IN1; - - REQUIRE_OUTBUF(1) + unsigned char c = INBYTE1; if (c < 0x80) { - OUT1(c) - NEXT(1, 1) + OUTCHAR(c); + NEXT_IN(1); continue; } REQUIRE_INBUF(2) - GBK_DECODE(c, IN2, **outbuf) + GBK_DECODE(c, INBYTE2, writer) else return 1; - NEXT(2, 1) + NEXT_IN(2); } return 0; @@ -156,41 +156,31 @@ DECODER(gbk) ENCODER(gb18030) { - while (inleft > 0) { - ucs4_t c = IN1; + while (*inpos < inlen) { + Py_UCS4 c = INCHAR1; DBCHAR code; if (c < 0x80) { - WRITE1(c) - NEXT(1, 1) + WRITEBYTE1(c) + NEXT(1, 1); continue; } - DECODE_SURROGATE(c) - if (c > 0x10FFFF) -#if Py_UNICODE_SIZE == 2 - return 2; /* surrogates pair */ -#else - return 1; -#endif - else if (c >= 0x10000) { - ucs4_t tc = c - 0x10000; + if (c >= 0x10000) { + Py_UCS4 tc = c - 0x10000; + assert (c <= 0x10FFFF); REQUIRE_OUTBUF(4) - OUT4((unsigned char)(tc % 10) + 0x30) + OUTBYTE4((unsigned char)(tc % 10) + 0x30) tc /= 10; - OUT3((unsigned char)(tc % 126) + 0x81) + OUTBYTE3((unsigned char)(tc % 126) + 0x81) tc /= 126; - OUT2((unsigned char)(tc % 10) + 0x30) + OUTBYTE2((unsigned char)(tc % 10) + 0x30) tc /= 10; - OUT1((unsigned char)(tc + 0x90)) + OUTBYTE1((unsigned char)(tc + 0x90)) -#if Py_UNICODE_SIZE == 2 - NEXT(2, 4) /* surrogates pair */ -#else - NEXT(1, 4) -#endif + NEXT(1, 4); continue; } @@ -208,20 +198,20 @@ ENCODER(gb18030) utrrange++) if (utrrange->first <= c && c <= utrrange->last) { - Py_UNICODE tc; + Py_UCS4 tc; tc = c - utrrange->first + utrrange->base; - OUT4((unsigned char)(tc % 10) + 0x30) + OUTBYTE4((unsigned char)(tc % 10) + 0x30) tc /= 10; - OUT3((unsigned char)(tc % 126) + 0x81) + OUTBYTE3((unsigned char)(tc % 126) + 0x81) tc /= 126; - OUT2((unsigned char)(tc % 10) + 0x30) + OUTBYTE2((unsigned char)(tc % 10) + 0x30) tc /= 10; - OUT1((unsigned char)tc + 0x81) + OUTBYTE1((unsigned char)tc + 0x81) - NEXT(1, 4) + NEXT(1, 4); break; } @@ -230,13 +220,13 @@ ENCODER(gb18030) continue; } - OUT1((code >> 8) | 0x80) + OUTBYTE1((code >> 8) | 0x80) if (code & 0x8000) - OUT2((code & 0xFF)) /* MSB set: GBK or GB18030ext */ + OUTBYTE2((code & 0xFF)) /* MSB set: GBK or GB18030ext */ else - OUT2((code & 0xFF) | 0x80) /* MSB unset: GB2312 */ + OUTBYTE2((code & 0xFF) | 0x80) /* MSB unset: GB2312 */ - NEXT(1, 2) + NEXT(1, 2); } return 0; @@ -245,61 +235,59 @@ ENCODER(gb18030) DECODER(gb18030) { while (inleft > 0) { - unsigned char c = IN1, c2; - - REQUIRE_OUTBUF(1) + unsigned char c = INBYTE1, c2; if (c < 0x80) { - OUT1(c) - NEXT(1, 1) + OUTCHAR(c); + NEXT_IN(1); continue; } REQUIRE_INBUF(2) - c2 = IN2; + c2 = INBYTE2; if (c2 >= 0x30 && c2 <= 0x39) { /* 4 bytes seq */ const struct _gb18030_to_unibmp_ranges *utr; unsigned char c3, c4; - ucs4_t lseq; + Py_UCS4 lseq; REQUIRE_INBUF(4) - c3 = IN3; - c4 = IN4; + c3 = INBYTE3; + c4 = INBYTE4; if (c < 0x81 || c3 < 0x81 || c4 < 0x30 || c4 > 0x39) return 1; c -= 0x81; c2 -= 0x30; c3 -= 0x81; c4 -= 0x30; if (c < 4) { /* U+0080 - U+FFFF */ - lseq = ((ucs4_t)c * 10 + c2) * 1260 + - (ucs4_t)c3 * 10 + c4; + lseq = ((Py_UCS4)c * 10 + c2) * 1260 + + (Py_UCS4)c3 * 10 + c4; if (lseq < 39420) { for (utr = gb18030_to_unibmp_ranges; lseq >= (utr + 1)->base; utr++) ; - OUT1(utr->first - utr->base + lseq) - NEXT(4, 1) + OUTCHAR(utr->first - utr->base + lseq); + NEXT_IN(4); continue; } } else if (c >= 15) { /* U+10000 - U+10FFFF */ - lseq = 0x10000 + (((ucs4_t)c-15) * 10 + c2) - * 1260 + (ucs4_t)c3 * 10 + c4; + lseq = 0x10000 + (((Py_UCS4)c-15) * 10 + c2) + * 1260 + (Py_UCS4)c3 * 10 + c4; if (lseq <= 0x10FFFF) { - WRITEUCS4(lseq); - NEXT_IN(4) + OUTCHAR(lseq); + NEXT_IN(4); continue; } } return 1; } - GBK_DECODE(c, c2, **outbuf) - else TRYMAP_DEC(gb18030ext, **outbuf, c, c2); + GBK_DECODE(c, c2, writer) + else TRYMAP_DEC(gb18030ext, writer, c, c2); else return 1; - NEXT(2, 1) + NEXT_IN(2); } return 0; @@ -319,33 +307,34 @@ ENCODER_INIT(hz) ENCODER_RESET(hz) { if (state->i != 0) { - WRITE2('~', '}') + WRITEBYTE2('~', '}') state->i = 0; - NEXT_OUT(2) + NEXT_OUT(2); } return 0; } ENCODER(hz) { - while (inleft > 0) { - Py_UNICODE c = IN1; + while (*inpos < inlen) { + Py_UCS4 c = INCHAR1; DBCHAR code; if (c < 0x80) { if (state->i == 0) { - WRITE1((unsigned char)c) - NEXT(1, 1) + WRITEBYTE1((unsigned char)c) + NEXT(1, 1); } else { - WRITE3('~', '}', (unsigned char)c) - NEXT(1, 3) + WRITEBYTE3('~', '}', (unsigned char)c) + NEXT(1, 3); state->i = 0; } continue; } - UCS4INVALID(c) + if (c > 0xFFFF) + return 1; TRYMAP_ENC(gbcommon, code, c); else return 1; @@ -354,13 +343,13 @@ ENCODER(hz) return 1; if (state->i == 0) { - WRITE4('~', '{', code >> 8, code & 0xff) - NEXT(1, 4) + WRITEBYTE4('~', '{', code >> 8, code & 0xff) + NEXT(1, 4); state->i = 1; } else { - WRITE2(code >> 8, code & 0xff) - NEXT(1, 2) + WRITEBYTE2(code >> 8, code & 0xff) + NEXT(1, 2); } } @@ -382,15 +371,15 @@ DECODER_RESET(hz) DECODER(hz) { while (inleft > 0) { - unsigned char c = IN1; + unsigned char c = INBYTE1; if (c == '~') { - unsigned char c2 = IN2; + unsigned char c2 = INBYTE2; REQUIRE_INBUF(2) if (c2 == '~') { - WRITE1('~') - NEXT(2, 1) + OUTCHAR('~'); + NEXT_IN(2); continue; } else if (c2 == '{' && state->i == 0) @@ -401,7 +390,7 @@ DECODER(hz) ; /* line-continuation */ else return 1; - NEXT(2, 0); + NEXT_IN(2); continue; } @@ -409,14 +398,13 @@ DECODER(hz) return 1; if (state->i == 0) { /* ASCII mode */ - WRITE1(c) - NEXT(1, 1) + OUTCHAR(c); + NEXT_IN(1); } else { /* GB mode */ REQUIRE_INBUF(2) - REQUIRE_OUTBUF(1) - TRYMAP_DEC(gb2312, **outbuf, c, IN2) { - NEXT(2, 1) + TRYMAP_DEC(gb2312, writer, c, INBYTE2) { + NEXT_IN(2); } else return 1; diff --git a/Modules/cjkcodecs/_codecs_hk.c b/Modules/cjkcodecs/_codecs_hk.c index d3ad04b..fe5f597 100644 --- a/Modules/cjkcodecs/_codecs_hk.c +++ b/Modules/cjkcodecs/_codecs_hk.c @@ -38,35 +38,39 @@ static const DBCHAR big5hkscs_pairenc_table[4] = {0x8862, 0x8864, 0x88a3, 0x88a5 ENCODER(big5hkscs) { - while (inleft > 0) { - ucs4_t c = **inbuf; + while (*inpos < inlen) { + Py_UCS4 c = INCHAR1; DBCHAR code; Py_ssize_t insize; if (c < 0x80) { REQUIRE_OUTBUF(1) **outbuf = (unsigned char)c; - NEXT(1, 1) + NEXT(1, 1); continue; } - DECODE_SURROGATE(c) - insize = GET_INSIZE(c); - + insize = 1; REQUIRE_OUTBUF(2) if (c < 0x10000) { TRYMAP_ENC(big5hkscs_bmp, code, c) { if (code == MULTIC) { - if (inleft >= 2 && + Py_UCS4 c2; + if (inlen - *inpos >= 2) + c2 = INCHAR2; + else + c2 = 0; + + if (inlen - *inpos >= 2 && ((c & 0xffdf) == 0x00ca) && - (((*inbuf)[1] & 0xfff7) == 0x0304)) { + ((c2 & 0xfff7) == 0x0304)) { code = big5hkscs_pairenc_table[ ((c >> 4) | - ((*inbuf)[1] >> 3)) & 3]; + (c2 >> 3)) & 3]; insize = 2; } - else if (inleft < 2 && + else if (inlen - *inpos < 2 && !(flags & MBENC_FLUSH)) return MBERR_TOOFEW; else { @@ -89,9 +93,9 @@ ENCODER(big5hkscs) else return insize; - OUT1(code >> 8) - OUT2(code & 0xFF) - NEXT(insize, 2) + OUTBYTE1(code >> 8) + OUTBYTE2(code & 0xFF) + NEXT(insize, 2); } return 0; @@ -102,33 +106,31 @@ ENCODER(big5hkscs) DECODER(big5hkscs) { while (inleft > 0) { - unsigned char c = IN1; - ucs4_t decoded; - - REQUIRE_OUTBUF(1) + unsigned char c = INBYTE1; + Py_UCS4 decoded; if (c < 0x80) { - OUT1(c) - NEXT(1, 1) + OUTCHAR(c); + NEXT_IN(1); continue; } REQUIRE_INBUF(2) - if (0xc6 > c || c > 0xc8 || (c < 0xc7 && IN2 < 0xa1)) { - TRYMAP_DEC(big5, **outbuf, c, IN2) { - NEXT(2, 1) + if (0xc6 > c || c > 0xc8 || (c < 0xc7 && INBYTE2 < 0xa1)) { + TRYMAP_DEC(big5, writer, c, INBYTE2) { + NEXT_IN(2); continue; } } - TRYMAP_DEC(big5hkscs, decoded, c, IN2) + TRYMAP_DEC_CHAR(big5hkscs, decoded, c, INBYTE2) { - int s = BH2S(c, IN2); + int s = BH2S(c, INBYTE2); const unsigned char *hintbase; assert(0x87 <= c && c <= 0xfe); - assert(0x40 <= IN2 && IN2 <= 0xfe); + assert(0x40 <= INBYTE2 && INBYTE2 <= 0xfe); if (BH2S(0x87, 0x40) <= s && s <= BH2S(0xa0, 0xfe)) { hintbase = big5hkscs_phint_0; @@ -146,25 +148,25 @@ DECODER(big5hkscs) return MBERR_INTERNAL; if (hintbase[s >> 3] & (1 << (s & 7))) { - WRITEUCS4(decoded | 0x20000) - NEXT_IN(2) + OUTCHAR(decoded | 0x20000); + NEXT_IN(2); } else { - OUT1(decoded) - NEXT(2, 1) + OUTCHAR(decoded); + NEXT_IN(2); } continue; } - switch ((c << 8) | IN2) { - case 0x8862: WRITE2(0x00ca, 0x0304); break; - case 0x8864: WRITE2(0x00ca, 0x030c); break; - case 0x88a3: WRITE2(0x00ea, 0x0304); break; - case 0x88a5: WRITE2(0x00ea, 0x030c); break; + switch ((c << 8) | INBYTE2) { + case 0x8862: OUTCHAR2(0x00ca, 0x0304); break; + case 0x8864: OUTCHAR2(0x00ca, 0x030c); break; + case 0x88a3: OUTCHAR2(0x00ea, 0x0304); break; + case 0x88a5: OUTCHAR2(0x00ea, 0x030c); break; default: return 1; } - NEXT(2, 2) /* all decoded codepoints are pairs, above. */ + NEXT_IN(2); /* all decoded codepoints are pairs, above. */ } return 0; diff --git a/Modules/cjkcodecs/_codecs_iso2022.c b/Modules/cjkcodecs/_codecs_iso2022.c index cbc1542..bb63835 100644 --- a/Modules/cjkcodecs/_codecs_iso2022.c +++ b/Modules/cjkcodecs/_codecs_iso2022.c @@ -102,8 +102,8 @@ /*-*- internal data structures -*-*/ typedef int (*iso2022_init_func)(void); -typedef ucs4_t (*iso2022_decode_func)(const unsigned char *data); -typedef DBCHAR (*iso2022_encode_func)(const ucs4_t *data, Py_ssize_t *length); +typedef Py_UCS4 (*iso2022_decode_func)(const unsigned char *data); +typedef DBCHAR (*iso2022_encode_func)(const Py_UCS4 *data, Py_ssize_t *length); struct iso2022_designation { unsigned char mark; @@ -141,13 +141,13 @@ ENCODER_INIT(iso2022) ENCODER_RESET(iso2022) { if (STATE_GETFLAG(F_SHIFTED)) { - WRITE1(SI) - NEXT_OUT(1) + WRITEBYTE1(SI) + NEXT_OUT(1); STATE_CLEARFLAG(F_SHIFTED) } if (STATE_G0 != CHARSET_ASCII) { - WRITE3(ESC, '(', 'B') - NEXT_OUT(3) + WRITEBYTE3(ESC, '(', 'B') + NEXT_OUT(3); STATE_SETG0(CHARSET_ASCII) } return 0; @@ -155,30 +155,29 @@ ENCODER_RESET(iso2022) ENCODER(iso2022) { - while (inleft > 0) { + while (*inpos < inlen) { const struct iso2022_designation *dsg; DBCHAR encoded; - ucs4_t c = **inbuf; + Py_UCS4 c = INCHAR1; Py_ssize_t insize; if (c < 0x80) { if (STATE_G0 != CHARSET_ASCII) { - WRITE3(ESC, '(', 'B') + WRITEBYTE3(ESC, '(', 'B') STATE_SETG0(CHARSET_ASCII) - NEXT_OUT(3) + NEXT_OUT(3); } if (STATE_GETFLAG(F_SHIFTED)) { - WRITE1(SI) + WRITEBYTE1(SI) STATE_CLEARFLAG(F_SHIFTED) - NEXT_OUT(1) + NEXT_OUT(1); } - WRITE1((unsigned char)c) - NEXT(1, 1) + WRITEBYTE1((unsigned char)c) + NEXT(1, 1); continue; } - DECODE_SURROGATE(c) - insize = GET_INSIZE(c); + insize = 1; encoded = MAP_UNMAPPABLE; for (dsg = CONFIG_DESIGNATIONS; dsg->mark; dsg++) { @@ -187,24 +186,14 @@ ENCODER(iso2022) if (encoded == MAP_MULTIPLE_AVAIL) { /* this implementation won't work for pair * of non-bmp characters. */ - if (inleft < 2) { + if (inlen - *inpos < 2) { if (!(flags & MBENC_FLUSH)) return MBERR_TOOFEW; length = -1; } else length = 2; -#if Py_UNICODE_SIZE == 2 - if (length == 2) { - ucs4_t u4in[2]; - u4in[0] = (ucs4_t)IN1; - u4in[1] = (ucs4_t)IN2; - encoded = dsg->encoder(u4in, &length); - } else - encoded = dsg->encoder(&c, &length); -#else encoded = dsg->encoder(&c, &length); -#endif if (encoded != MAP_UNMAPPABLE) { insize = length; break; @@ -221,47 +210,47 @@ ENCODER(iso2022) switch (dsg->plane) { case 0: /* G0 */ if (STATE_GETFLAG(F_SHIFTED)) { - WRITE1(SI) + WRITEBYTE1(SI) STATE_CLEARFLAG(F_SHIFTED) - NEXT_OUT(1) + NEXT_OUT(1); } if (STATE_G0 != dsg->mark) { if (dsg->width == 1) { - WRITE3(ESC, '(', ESCMARK(dsg->mark)) + WRITEBYTE3(ESC, '(', ESCMARK(dsg->mark)) STATE_SETG0(dsg->mark) - NEXT_OUT(3) + NEXT_OUT(3); } else if (dsg->mark == CHARSET_JISX0208) { - WRITE3(ESC, '$', ESCMARK(dsg->mark)) + WRITEBYTE3(ESC, '$', ESCMARK(dsg->mark)) STATE_SETG0(dsg->mark) - NEXT_OUT(3) + NEXT_OUT(3); } else { - WRITE4(ESC, '$', '(', + WRITEBYTE4(ESC, '$', '(', ESCMARK(dsg->mark)) STATE_SETG0(dsg->mark) - NEXT_OUT(4) + NEXT_OUT(4); } } break; case 1: /* G1 */ if (STATE_G1 != dsg->mark) { if (dsg->width == 1) { - WRITE3(ESC, ')', ESCMARK(dsg->mark)) + WRITEBYTE3(ESC, ')', ESCMARK(dsg->mark)) STATE_SETG1(dsg->mark) - NEXT_OUT(3) + NEXT_OUT(3); } else { - WRITE4(ESC, '$', ')', + WRITEBYTE4(ESC, '$', ')', ESCMARK(dsg->mark)) STATE_SETG1(dsg->mark) - NEXT_OUT(4) + NEXT_OUT(4); } } if (!STATE_GETFLAG(F_SHIFTED)) { - WRITE1(SO) + WRITEBYTE1(SO) STATE_SETFLAG(F_SHIFTED) - NEXT_OUT(1) + NEXT_OUT(1); } break; default: /* G2 and G3 is not supported: no encoding in @@ -270,14 +259,14 @@ ENCODER(iso2022) } if (dsg->width == 1) { - WRITE1((unsigned char)encoded) - NEXT_OUT(1) + WRITEBYTE1((unsigned char)encoded) + NEXT_OUT(1); } else { - WRITE2(encoded >> 8, encoded & 0xff) - NEXT_OUT(2) + WRITEBYTE2(encoded >> 8, encoded & 0xff) + NEXT_OUT(2); } - NEXT_IN(insize) + NEXT_INCHAR(insize); } return 0; @@ -323,26 +312,26 @@ iso2022processesc(const void *config, MultibyteCodec_State *state, switch (esclen) { case 3: - if (IN2 == '$') { - charset = IN3 | CHARSET_DBCS; + if (INBYTE2 == '$') { + charset = INBYTE3 | CHARSET_DBCS; designation = 0; } else { - charset = IN3; - if (IN2 == '(') designation = 0; - else if (IN2 == ')') designation = 1; - else if (CONFIG_ISSET(USE_G2) && IN2 == '.') + charset = INBYTE3; + if (INBYTE2 == '(') designation = 0; + else if (INBYTE2 == ')') designation = 1; + else if (CONFIG_ISSET(USE_G2) && INBYTE2 == '.') designation = 2; else return 3; } break; case 4: - if (IN2 != '$') + if (INBYTE2 != '$') return 4; - charset = IN4 | CHARSET_DBCS; - if (IN3 == '(') designation = 0; - else if (IN3 == ')') designation = 1; + charset = INBYTE4 | CHARSET_DBCS; + if (INBYTE3 == '(') designation = 0; + else if (INBYTE3 == ')') designation = 1; else return 4; break; case 6: /* designation with prefix */ @@ -376,45 +365,43 @@ iso2022processesc(const void *config, MultibyteCodec_State *state, return 0; } -#define ISO8859_7_DECODE(c, assi) \ - if ((c) < 0xa0) (assi) = (c); \ - else if ((c) < 0xc0 && (0x288f3bc9L & (1L << ((c)-0xa0)))) \ - (assi) = (c); \ - else if ((c) >= 0xb4 && (c) <= 0xfe && ((c) >= 0xd4 || \ - (0xbffffd77L & (1L << ((c)-0xb4))))) \ - (assi) = 0x02d0 + (c); \ - else if ((c) == 0xa1) (assi) = 0x2018; \ - else if ((c) == 0xa2) (assi) = 0x2019; \ - else if ((c) == 0xaf) (assi) = 0x2015; +#define ISO8859_7_DECODE(c, writer) \ + if ((c) < 0xa0) OUTCHAR(c); \ + else if ((c) < 0xc0 && (0x288f3bc9L & (1L << ((c)-0xa0)))) \ + OUTCHAR(c); \ + else if ((c) >= 0xb4 && (c) <= 0xfe && ((c) >= 0xd4 || \ + (0xbffffd77L & (1L << ((c)-0xb4))))) \ + OUTCHAR(0x02d0 + (c)); \ + else if ((c) == 0xa1) OUTCHAR(0x2018); \ + else if ((c) == 0xa2) OUTCHAR(0x2019); \ + else if ((c) == 0xaf) OUTCHAR(0x2015); static Py_ssize_t iso2022processg2(const void *config, MultibyteCodec_State *state, const unsigned char **inbuf, Py_ssize_t *inleft, - Py_UNICODE **outbuf, Py_ssize_t *outleft) + _PyUnicodeWriter *writer) { /* not written to use encoder, decoder functions because only few * encodings use G2 designations in CJKCodecs */ if (STATE_G2 == CHARSET_ISO8859_1) { - if (IN3 < 0x80) - OUT1(IN3 + 0x80) + if (INBYTE3 < 0x80) + OUTCHAR(INBYTE3 + 0x80); else return 3; } else if (STATE_G2 == CHARSET_ISO8859_7) { - ISO8859_7_DECODE(IN3 ^ 0x80, **outbuf) + ISO8859_7_DECODE(INBYTE3 ^ 0x80, writer) else return 3; } else if (STATE_G2 == CHARSET_ASCII) { - if (IN3 & 0x80) return 3; - else **outbuf = IN3; + if (INBYTE3 & 0x80) return 3; + else OUTCHAR(INBYTE3); } else return MBERR_INTERNAL; (*inbuf) += 3; *inleft -= 3; - (*outbuf) += 1; - *outleft -= 1; return 0; } @@ -423,14 +410,14 @@ DECODER(iso2022) const struct iso2022_designation *dsgcache = NULL; while (inleft > 0) { - unsigned char c = IN1; + unsigned char c = INBYTE1; Py_ssize_t err; if (STATE_GETFLAG(F_ESCTHROUGHOUT)) { /* ESC throughout mode: * for non-iso2022 escape sequences */ - WRITE1(c) /* assume as ISO-8859-1 */ - NEXT(1, 1) + OUTCHAR(c); /* assume as ISO-8859-1 */ + NEXT_IN(1); if (IS_ESCEND(c)) { STATE_CLEARFLAG(F_ESCTHROUGHOUT) } @@ -440,41 +427,41 @@ DECODER(iso2022) switch (c) { case ESC: REQUIRE_INBUF(2) - if (IS_ISO2022ESC(IN2)) { + if (IS_ISO2022ESC(INBYTE2)) { err = iso2022processesc(config, state, inbuf, &inleft); if (err != 0) return err; } - else if (CONFIG_ISSET(USE_G2) && IN2 == 'N') {/* SS2 */ + else if (CONFIG_ISSET(USE_G2) && INBYTE2 == 'N') {/* SS2 */ REQUIRE_INBUF(3) err = iso2022processg2(config, state, - inbuf, &inleft, outbuf, &outleft); + inbuf, &inleft, writer); if (err != 0) return err; } else { - WRITE1(ESC) + OUTCHAR(ESC); STATE_SETFLAG(F_ESCTHROUGHOUT) - NEXT(1, 1) + NEXT_IN(1); } break; case SI: if (CONFIG_ISSET(NO_SHIFT)) goto bypass; STATE_CLEARFLAG(F_SHIFTED) - NEXT_IN(1) + NEXT_IN(1); break; case SO: if (CONFIG_ISSET(NO_SHIFT)) goto bypass; STATE_SETFLAG(F_SHIFTED) - NEXT_IN(1) + NEXT_IN(1); break; case LF: STATE_CLEARFLAG(F_SHIFTED) - WRITE1(LF) - NEXT(1, 1) + OUTCHAR(LF); + NEXT_IN(1); break; default: if (c < 0x20) /* C0 */ @@ -484,7 +471,7 @@ DECODER(iso2022) else { const struct iso2022_designation *dsg; unsigned char charset; - ucs4_t decoded; + Py_UCS4 decoded; if (STATE_GETFLAG(F_SHIFTED)) charset = STATE_G1; @@ -492,8 +479,8 @@ DECODER(iso2022) charset = STATE_G0; if (charset == CHARSET_ASCII) { -bypass: WRITE1(c) - NEXT(1, 1) +bypass: OUTCHAR(c); + NEXT_IN(1); break; } @@ -518,17 +505,15 @@ bypass: WRITE1(c) return dsg->width; if (decoded < 0x10000) { - WRITE1(decoded) - NEXT_OUT(1) + OUTCHAR(decoded); } else if (decoded < 0x30000) { - WRITEUCS4(decoded) + OUTCHAR(decoded); } else { /* JIS X 0213 pairs */ - WRITE2(decoded >> 16, decoded & 0xffff) - NEXT_OUT(2) + OUTCHAR2(decoded >> 16, decoded & 0xffff); } - NEXT_IN(dsg->width) + NEXT_IN(dsg->width); } break; } @@ -577,18 +562,18 @@ ksx1001_init(void) return 0; } -static ucs4_t +static Py_UCS4 ksx1001_decoder(const unsigned char *data) { - ucs4_t u; - TRYMAP_DEC(ksx1001, u, data[0], data[1]) + Py_UCS4 u; + TRYMAP_DEC_CHAR(ksx1001, u, data[0], data[1]) return u; else return MAP_UNMAPPABLE; } static DBCHAR -ksx1001_encoder(const ucs4_t *data, Py_ssize_t *length) +ksx1001_encoder(const Py_UCS4 *data, Py_ssize_t *length) { DBCHAR coded; assert(*length == 1); @@ -613,20 +598,20 @@ jisx0208_init(void) return 0; } -static ucs4_t +static Py_UCS4 jisx0208_decoder(const unsigned char *data) { - ucs4_t u; + Py_UCS4 u; if (data[0] == 0x21 && data[1] == 0x40) /* F/W REVERSE SOLIDUS */ return 0xff3c; - else TRYMAP_DEC(jisx0208, u, data[0], data[1]) + else TRYMAP_DEC_CHAR(jisx0208, u, data[0], data[1]) return u; else return MAP_UNMAPPABLE; } static DBCHAR -jisx0208_encoder(const ucs4_t *data, Py_ssize_t *length) +jisx0208_encoder(const Py_UCS4 *data, Py_ssize_t *length) { DBCHAR coded; assert(*length == 1); @@ -654,18 +639,18 @@ jisx0212_init(void) return 0; } -static ucs4_t +static Py_UCS4 jisx0212_decoder(const unsigned char *data) { - ucs4_t u; - TRYMAP_DEC(jisx0212, u, data[0], data[1]) + Py_UCS4 u; + TRYMAP_DEC_CHAR(jisx0212, u, data[0], data[1]) return u; else return MAP_UNMAPPABLE; } static DBCHAR -jisx0212_encoder(const ucs4_t *data, Py_ssize_t *length) +jisx0212_encoder(const Py_UCS4 *data, Py_ssize_t *length) { DBCHAR coded; assert(*length == 1); @@ -705,30 +690,30 @@ jisx0213_init(void) } #define config ((void *)2000) -static ucs4_t +static Py_UCS4 jisx0213_2000_1_decoder(const unsigned char *data) { - ucs4_t u; + Py_UCS4 u; EMULATE_JISX0213_2000_DECODE_PLANE1(u, data[0], data[1]) else if (data[0] == 0x21 && data[1] == 0x40) /* F/W REVERSE SOLIDUS */ return 0xff3c; - else TRYMAP_DEC(jisx0208, u, data[0], data[1]); - else TRYMAP_DEC(jisx0213_1_bmp, u, data[0], data[1]); - else TRYMAP_DEC(jisx0213_1_emp, u, data[0], data[1]) + else TRYMAP_DEC_CHAR(jisx0208, u, data[0], data[1]); + else TRYMAP_DEC_CHAR(jisx0213_1_bmp, u, data[0], data[1]); + else TRYMAP_DEC_CHAR(jisx0213_1_emp, u, data[0], data[1]) u |= 0x20000; - else TRYMAP_DEC(jisx0213_pair, u, data[0], data[1]); + else TRYMAP_DEC_CHAR(jisx0213_pair, u, data[0], data[1]); else return MAP_UNMAPPABLE; return u; } -static ucs4_t +static Py_UCS4 jisx0213_2000_2_decoder(const unsigned char *data) { - ucs4_t u; - EMULATE_JISX0213_2000_DECODE_PLANE2(u, data[0], data[1]) - TRYMAP_DEC(jisx0213_2_bmp, u, data[0], data[1]); - else TRYMAP_DEC(jisx0213_2_emp, u, data[0], data[1]) + Py_UCS4 u; + EMULATE_JISX0213_2000_DECODE_PLANE2_CHAR(u, data[0], data[1]) + TRYMAP_DEC_CHAR(jisx0213_2_bmp, u, data[0], data[1]); + else TRYMAP_DEC_CHAR(jisx0213_2_emp, u, data[0], data[1]) u |= 0x20000; else return MAP_UNMAPPABLE; @@ -736,28 +721,28 @@ jisx0213_2000_2_decoder(const unsigned char *data) } #undef config -static ucs4_t +static Py_UCS4 jisx0213_2004_1_decoder(const unsigned char *data) { - ucs4_t u; + Py_UCS4 u; if (data[0] == 0x21 && data[1] == 0x40) /* F/W REVERSE SOLIDUS */ return 0xff3c; - else TRYMAP_DEC(jisx0208, u, data[0], data[1]); - else TRYMAP_DEC(jisx0213_1_bmp, u, data[0], data[1]); - else TRYMAP_DEC(jisx0213_1_emp, u, data[0], data[1]) + else TRYMAP_DEC_CHAR(jisx0208, u, data[0], data[1]); + else TRYMAP_DEC_CHAR(jisx0213_1_bmp, u, data[0], data[1]); + else TRYMAP_DEC_CHAR(jisx0213_1_emp, u, data[0], data[1]) u |= 0x20000; - else TRYMAP_DEC(jisx0213_pair, u, data[0], data[1]); + else TRYMAP_DEC_CHAR(jisx0213_pair, u, data[0], data[1]); else return MAP_UNMAPPABLE; return u; } -static ucs4_t +static Py_UCS4 jisx0213_2004_2_decoder(const unsigned char *data) { - ucs4_t u; - TRYMAP_DEC(jisx0213_2_bmp, u, data[0], data[1]); - else TRYMAP_DEC(jisx0213_2_emp, u, data[0], data[1]) + Py_UCS4 u; + TRYMAP_DEC_CHAR(jisx0213_2_bmp, u, data[0], data[1]); + else TRYMAP_DEC_CHAR(jisx0213_2_emp, u, data[0], data[1]) u |= 0x20000; else return MAP_UNMAPPABLE; @@ -765,7 +750,7 @@ jisx0213_2004_2_decoder(const unsigned char *data) } static DBCHAR -jisx0213_encoder(const ucs4_t *data, Py_ssize_t *length, void *config) +jisx0213_encoder(const Py_UCS4 *data, Py_ssize_t *length, void *config) { DBCHAR coded; @@ -819,7 +804,7 @@ jisx0213_encoder(const ucs4_t *data, Py_ssize_t *length, void *config) } static DBCHAR -jisx0213_2000_1_encoder(const ucs4_t *data, Py_ssize_t *length) +jisx0213_2000_1_encoder(const Py_UCS4 *data, Py_ssize_t *length) { DBCHAR coded = jisx0213_encoder(data, length, (void *)2000); if (coded == MAP_UNMAPPABLE || coded == MAP_MULTIPLE_AVAIL) @@ -831,7 +816,7 @@ jisx0213_2000_1_encoder(const ucs4_t *data, Py_ssize_t *length) } static DBCHAR -jisx0213_2000_1_encoder_paironly(const ucs4_t *data, Py_ssize_t *length) +jisx0213_2000_1_encoder_paironly(const Py_UCS4 *data, Py_ssize_t *length) { DBCHAR coded; Py_ssize_t ilength = *length; @@ -854,7 +839,7 @@ jisx0213_2000_1_encoder_paironly(const ucs4_t *data, Py_ssize_t *length) } static DBCHAR -jisx0213_2000_2_encoder(const ucs4_t *data, Py_ssize_t *length) +jisx0213_2000_2_encoder(const Py_UCS4 *data, Py_ssize_t *length) { DBCHAR coded = jisx0213_encoder(data, length, (void *)2000); if (coded == MAP_UNMAPPABLE || coded == MAP_MULTIPLE_AVAIL) @@ -866,7 +851,7 @@ jisx0213_2000_2_encoder(const ucs4_t *data, Py_ssize_t *length) } static DBCHAR -jisx0213_2004_1_encoder(const ucs4_t *data, Py_ssize_t *length) +jisx0213_2004_1_encoder(const Py_UCS4 *data, Py_ssize_t *length) { DBCHAR coded = jisx0213_encoder(data, length, NULL); if (coded == MAP_UNMAPPABLE || coded == MAP_MULTIPLE_AVAIL) @@ -878,7 +863,7 @@ jisx0213_2004_1_encoder(const ucs4_t *data, Py_ssize_t *length) } static DBCHAR -jisx0213_2004_1_encoder_paironly(const ucs4_t *data, Py_ssize_t *length) +jisx0213_2004_1_encoder_paironly(const Py_UCS4 *data, Py_ssize_t *length) { DBCHAR coded; Py_ssize_t ilength = *length; @@ -901,7 +886,7 @@ jisx0213_2004_1_encoder_paironly(const ucs4_t *data, Py_ssize_t *length) } static DBCHAR -jisx0213_2004_2_encoder(const ucs4_t *data, Py_ssize_t *length) +jisx0213_2004_2_encoder(const Py_UCS4 *data, Py_ssize_t *length) { DBCHAR coded = jisx0213_encoder(data, length, NULL); if (coded == MAP_UNMAPPABLE || coded == MAP_MULTIPLE_AVAIL) @@ -912,17 +897,17 @@ jisx0213_2004_2_encoder(const ucs4_t *data, Py_ssize_t *length) return MAP_UNMAPPABLE; } -static ucs4_t +static Py_UCS4 jisx0201_r_decoder(const unsigned char *data) { - ucs4_t u; - JISX0201_R_DECODE(*data, u) + Py_UCS4 u; + JISX0201_R_DECODE_CHAR(*data, u) else return MAP_UNMAPPABLE; return u; } static DBCHAR -jisx0201_r_encoder(const ucs4_t *data, Py_ssize_t *length) +jisx0201_r_encoder(const Py_UCS4 *data, Py_ssize_t *length) { DBCHAR coded; JISX0201_R_ENCODE(*data, coded) @@ -930,17 +915,17 @@ jisx0201_r_encoder(const ucs4_t *data, Py_ssize_t *length) return coded; } -static ucs4_t +static Py_UCS4 jisx0201_k_decoder(const unsigned char *data) { - ucs4_t u; - JISX0201_K_DECODE(*data ^ 0x80, u) + Py_UCS4 u; + JISX0201_K_DECODE_CHAR(*data ^ 0x80, u) else return MAP_UNMAPPABLE; return u; } static DBCHAR -jisx0201_k_encoder(const ucs4_t *data, Py_ssize_t *length) +jisx0201_k_encoder(const Py_UCS4 *data, Py_ssize_t *length) { DBCHAR coded; JISX0201_K_ENCODE(*data, coded) @@ -961,18 +946,18 @@ gb2312_init(void) return 0; } -static ucs4_t +static Py_UCS4 gb2312_decoder(const unsigned char *data) { - ucs4_t u; - TRYMAP_DEC(gb2312, u, data[0], data[1]) + Py_UCS4 u; + TRYMAP_DEC_CHAR(gb2312, u, data[0], data[1]) return u; else return MAP_UNMAPPABLE; } static DBCHAR -gb2312_encoder(const ucs4_t *data, Py_ssize_t *length) +gb2312_encoder(const Py_UCS4 *data, Py_ssize_t *length) { DBCHAR coded; assert(*length == 1); @@ -986,14 +971,14 @@ gb2312_encoder(const ucs4_t *data, Py_ssize_t *length) } -static ucs4_t +static Py_UCS4 dummy_decoder(const unsigned char *data) { return MAP_UNMAPPABLE; } static DBCHAR -dummy_encoder(const ucs4_t *data, Py_ssize_t *length) +dummy_encoder(const Py_UCS4 *data, Py_ssize_t *length) { return MAP_UNMAPPABLE; } diff --git a/Modules/cjkcodecs/_codecs_jp.c b/Modules/cjkcodecs/_codecs_jp.c index a500696..7ab318b 100644 --- a/Modules/cjkcodecs/_codecs_jp.c +++ b/Modules/cjkcodecs/_codecs_jp.c @@ -19,38 +19,39 @@ ENCODER(cp932) { - while (inleft > 0) { - Py_UNICODE c = IN1; + while (*inpos < inlen) { + Py_UCS4 c = INCHAR1; DBCHAR code; unsigned char c1, c2; if (c <= 0x80) { - WRITE1((unsigned char)c) - NEXT(1, 1) + WRITEBYTE1((unsigned char)c) + NEXT(1, 1); continue; } else if (c >= 0xff61 && c <= 0xff9f) { - WRITE1(c - 0xfec0) - NEXT(1, 1) + WRITEBYTE1(c - 0xfec0) + NEXT(1, 1); continue; } else if (c >= 0xf8f0 && c <= 0xf8f3) { /* Windows compatibility */ REQUIRE_OUTBUF(1) if (c == 0xf8f0) - OUT1(0xa0) + OUTBYTE1(0xa0) else - OUT1(c - 0xfef1 + 0xfd) - NEXT(1, 1) + OUTBYTE1(c - 0xfef1 + 0xfd) + NEXT(1, 1); continue; } - UCS4INVALID(c) + if (c > 0xFFFF) + return 1; REQUIRE_OUTBUF(2) TRYMAP_ENC(cp932ext, code, c) { - OUT1(code >> 8) - OUT2(code & 0xff) + OUTBYTE1(code >> 8) + OUTBYTE2(code & 0xff) } else TRYMAP_ENC(jisxcommon, code, c) { if (code & 0x8000) /* MSB set: JIS X 0212 */ @@ -61,20 +62,20 @@ ENCODER(cp932) c2 = code & 0xff; c2 = (((c1 - 0x21) & 1) ? 0x5e : 0) + (c2 - 0x21); c1 = (c1 - 0x21) >> 1; - OUT1(c1 < 0x1f ? c1 + 0x81 : c1 + 0xc1) - OUT2(c2 < 0x3f ? c2 + 0x40 : c2 + 0x41) + OUTBYTE1(c1 < 0x1f ? c1 + 0x81 : c1 + 0xc1) + OUTBYTE2(c2 < 0x3f ? c2 + 0x40 : c2 + 0x41) } else if (c >= 0xe000 && c < 0xe758) { /* User-defined area */ - c1 = (Py_UNICODE)(c - 0xe000) / 188; - c2 = (Py_UNICODE)(c - 0xe000) % 188; - OUT1(c1 + 0xf0) - OUT2(c2 < 0x3f ? c2 + 0x40 : c2 + 0x41) + c1 = (Py_UCS4)(c - 0xe000) / 188; + c2 = (Py_UCS4)(c - 0xe000) % 188; + OUTBYTE1(c1 + 0xf0) + OUTBYTE2(c2 < 0x3f ? c2 + 0x40 : c2 + 0x41) } else return 1; - NEXT(1, 2) + NEXT(1, 2); } return 0; @@ -83,33 +84,32 @@ ENCODER(cp932) DECODER(cp932) { while (inleft > 0) { - unsigned char c = IN1, c2; + unsigned char c = INBYTE1, c2; - REQUIRE_OUTBUF(1) if (c <= 0x80) { - OUT1(c) - NEXT(1, 1) + OUTCHAR(c); + NEXT_IN(1); continue; } else if (c >= 0xa0 && c <= 0xdf) { if (c == 0xa0) - OUT1(0xf8f0) /* half-width katakana */ + OUTCHAR(0xf8f0); /* half-width katakana */ else - OUT1(0xfec0 + c) - NEXT(1, 1) + OUTCHAR(0xfec0 + c); + NEXT_IN(1); continue; } else if (c >= 0xfd/* && c <= 0xff*/) { /* Windows compatibility */ - OUT1(0xf8f1 - 0xfd + c) - NEXT(1, 1) + OUTCHAR(0xf8f1 - 0xfd + c); + NEXT_IN(1); continue; } REQUIRE_INBUF(2) - c2 = IN2; + c2 = INBYTE2; - TRYMAP_DEC(cp932ext, **outbuf, c, c2); + TRYMAP_DEC(cp932ext, writer, c, c2); else if ((c >= 0x81 && c <= 0x9f) || (c >= 0xe0 && c <= 0xea)){ if (c2 < 0x40 || (c2 > 0x7e && c2 < 0x80) || c2 > 0xfc) return 1; @@ -119,21 +119,21 @@ DECODER(cp932) c = (2 * c + (c2 < 0x5e ? 0 : 1) + 0x21); c2 = (c2 < 0x5e ? c2 : c2 - 0x5e) + 0x21; - TRYMAP_DEC(jisx0208, **outbuf, c, c2); + TRYMAP_DEC(jisx0208, writer, c, c2); else return 1; } else if (c >= 0xf0 && c <= 0xf9) { if ((c2 >= 0x40 && c2 <= 0x7e) || (c2 >= 0x80 && c2 <= 0xfc)) - OUT1(0xe000 + 188 * (c - 0xf0) + - (c2 < 0x80 ? c2 - 0x40 : c2 - 0x41)) + OUTCHAR(0xe000 + 188 * (c - 0xf0) + + (c2 < 0x80 ? c2 - 0x40 : c2 - 0x41)); else return 1; } else return 1; - NEXT(2, 1) + NEXT_IN(2); } return 0; @@ -146,25 +146,24 @@ DECODER(cp932) ENCODER(euc_jis_2004) { - while (inleft > 0) { - ucs4_t c = IN1; + while (*inpos < inlen) { + Py_UCS4 c = INCHAR1; DBCHAR code; Py_ssize_t insize; if (c < 0x80) { - WRITE1(c) - NEXT(1, 1) + WRITEBYTE1(c) + NEXT(1, 1); continue; } - DECODE_SURROGATE(c) - insize = GET_INSIZE(c); + insize = 1; if (c <= 0xFFFF) { EMULATE_JISX0213_2000_ENCODE_BMP(code, c) else TRYMAP_ENC(jisx0213_bmp, code, c) { if (code == MULTIC) { - if (inleft < 2) { + if (inlen - *inpos < 2) { if (flags & MBENC_FLUSH) { code = find_pairencmap( (ucs2_t)c, 0, @@ -177,8 +176,9 @@ ENCODER(euc_jis_2004) return MBERR_TOOFEW; } else { + Py_UCS4 c2 = INCHAR2; code = find_pairencmap( - (ucs2_t)c, (*inbuf)[1], + (ucs2_t)c, c2, jisx0213_pair_encmap, JISX0213_ENCPAIRS); if (code == DBCINV) { @@ -196,8 +196,8 @@ ENCODER(euc_jis_2004) else TRYMAP_ENC(jisxcommon, code, c); else if (c >= 0xff61 && c <= 0xff9f) { /* JIS X 0201 half-width katakana */ - WRITE2(0x8e, c - 0xfec0) - NEXT(1, 2) + WRITEBYTE2(0x8e, c - 0xfec0) + NEXT(1, 2); continue; } else if (c == 0xff3c) @@ -219,12 +219,12 @@ ENCODER(euc_jis_2004) if (code & 0x8000) { /* Codeset 2 */ - WRITE3(0x8f, code >> 8, (code & 0xFF) | 0x80) - NEXT(insize, 3) + WRITEBYTE3(0x8f, code >> 8, (code & 0xFF) | 0x80) + NEXT(insize, 3); } else { /* Codeset 1 */ - WRITE2((code >> 8) | 0x80, (code & 0xFF) | 0x80) - NEXT(insize, 2) + WRITEBYTE2((code >> 8) | 0x80, (code & 0xFF) | 0x80) + NEXT(insize, 2); } } @@ -234,14 +234,12 @@ ENCODER(euc_jis_2004) DECODER(euc_jis_2004) { while (inleft > 0) { - unsigned char c = IN1; - ucs4_t code; - - REQUIRE_OUTBUF(1) + unsigned char c = INBYTE1; + Py_UCS4 code; if (c < 0x80) { - OUT1(c) - NEXT(1, 1) + OUTCHAR(c); + NEXT_IN(1); continue; } @@ -250,10 +248,10 @@ DECODER(euc_jis_2004) unsigned char c2; REQUIRE_INBUF(2) - c2 = IN2; + c2 = INBYTE2; if (c2 >= 0xa1 && c2 <= 0xdf) { - OUT1(0xfec0 + c2) - NEXT(2, 1) + OUTCHAR(0xfec0 + c2); + NEXT_IN(2); } else return 1; @@ -262,46 +260,46 @@ DECODER(euc_jis_2004) unsigned char c2, c3; REQUIRE_INBUF(3) - c2 = IN2 ^ 0x80; - c3 = IN3 ^ 0x80; + c2 = INBYTE2 ^ 0x80; + c3 = INBYTE3 ^ 0x80; /* JIS X 0213 Plane 2 or JIS X 0212 (see NOTES) */ - EMULATE_JISX0213_2000_DECODE_PLANE2(**outbuf, c2, c3) - else TRYMAP_DEC(jisx0213_2_bmp, **outbuf, c2, c3) ; - else TRYMAP_DEC(jisx0213_2_emp, code, c2, c3) { - WRITEUCS4(EMPBASE | code) - NEXT_IN(3) + EMULATE_JISX0213_2000_DECODE_PLANE2(writer, c2, c3) + else TRYMAP_DEC(jisx0213_2_bmp, writer, c2, c3) ; + else TRYMAP_DEC_CHAR(jisx0213_2_emp, code, c2, c3) { + OUTCHAR(EMPBASE | code); + NEXT_IN(3); continue; } - else TRYMAP_DEC(jisx0212, **outbuf, c2, c3) ; + else TRYMAP_DEC(jisx0212, writer, c2, c3) ; else return 1; - NEXT(3, 1) + NEXT_IN(3); } else { unsigned char c2; REQUIRE_INBUF(2) c ^= 0x80; - c2 = IN2 ^ 0x80; + c2 = INBYTE2 ^ 0x80; /* JIS X 0213 Plane 1 */ - EMULATE_JISX0213_2000_DECODE_PLANE1(**outbuf, c, c2) - else if (c == 0x21 && c2 == 0x40) **outbuf = 0xff3c; - else if (c == 0x22 && c2 == 0x32) **outbuf = 0xff5e; - else TRYMAP_DEC(jisx0208, **outbuf, c, c2); - else TRYMAP_DEC(jisx0213_1_bmp, **outbuf, c, c2); - else TRYMAP_DEC(jisx0213_1_emp, code, c, c2) { - WRITEUCS4(EMPBASE | code) - NEXT_IN(2) + EMULATE_JISX0213_2000_DECODE_PLANE1(writer, c, c2) + else if (c == 0x21 && c2 == 0x40) OUTCHAR(0xff3c); + else if (c == 0x22 && c2 == 0x32) OUTCHAR(0xff5e); + else TRYMAP_DEC(jisx0208, writer, c, c2); + else TRYMAP_DEC(jisx0213_1_bmp, writer, c, c2); + else TRYMAP_DEC_CHAR(jisx0213_1_emp, code, c, c2) { + OUTCHAR(EMPBASE | code); + NEXT_IN(2); continue; } - else TRYMAP_DEC(jisx0213_pair, code, c, c2) { - WRITE2(code >> 16, code & 0xffff) - NEXT(2, 2) + else TRYMAP_DEC_CHAR(jisx0213_pair, code, c, c2) { + OUTCHAR2(code >> 16, code & 0xffff); + NEXT_IN(2); continue; } else return 1; - NEXT(2, 1) + NEXT_IN(2); } } @@ -315,35 +313,36 @@ DECODER(euc_jis_2004) ENCODER(euc_jp) { - while (inleft > 0) { - Py_UNICODE c = IN1; + while (*inpos < inlen) { + Py_UCS4 c = INCHAR1; DBCHAR code; if (c < 0x80) { - WRITE1((unsigned char)c) - NEXT(1, 1) + WRITEBYTE1((unsigned char)c) + NEXT(1, 1); continue; } - UCS4INVALID(c) + if (c > 0xFFFF) + return 1; TRYMAP_ENC(jisxcommon, code, c); else if (c >= 0xff61 && c <= 0xff9f) { /* JIS X 0201 half-width katakana */ - WRITE2(0x8e, c - 0xfec0) - NEXT(1, 2) + WRITEBYTE2(0x8e, c - 0xfec0) + NEXT(1, 2); continue; } #ifndef STRICT_BUILD else if (c == 0xff3c) /* FULL-WIDTH REVERSE SOLIDUS */ code = 0x2140; else if (c == 0xa5) { /* YEN SIGN */ - WRITE1(0x5c); - NEXT(1, 1) + WRITEBYTE1(0x5c); + NEXT(1, 1); continue; } else if (c == 0x203e) { /* OVERLINE */ - WRITE1(0x7e); - NEXT(1, 1) + WRITEBYTE1(0x7e); + NEXT(1, 1); continue; } #endif @@ -352,12 +351,12 @@ ENCODER(euc_jp) if (code & 0x8000) { /* JIS X 0212 */ - WRITE3(0x8f, code >> 8, (code & 0xFF) | 0x80) - NEXT(1, 3) + WRITEBYTE3(0x8f, code >> 8, (code & 0xFF) | 0x80) + NEXT(1, 3); } else { /* JIS X 0208 */ - WRITE2((code >> 8) | 0x80, (code & 0xFF) | 0x80) - NEXT(1, 2) + WRITEBYTE2((code >> 8) | 0x80, (code & 0xFF) | 0x80) + NEXT(1, 2); } } @@ -367,13 +366,11 @@ ENCODER(euc_jp) DECODER(euc_jp) { while (inleft > 0) { - unsigned char c = IN1; - - REQUIRE_OUTBUF(1) + unsigned char c = INBYTE1; if (c < 0x80) { - OUT1(c) - NEXT(1, 1) + OUTCHAR(c); + NEXT_IN(1); continue; } @@ -382,10 +379,10 @@ DECODER(euc_jp) unsigned char c2; REQUIRE_INBUF(2) - c2 = IN2; + c2 = INBYTE2; if (c2 >= 0xa1 && c2 <= 0xdf) { - OUT1(0xfec0 + c2) - NEXT(2, 1) + OUTCHAR(0xfec0 + c2); + NEXT_IN(2); } else return 1; @@ -394,11 +391,11 @@ DECODER(euc_jp) unsigned char c2, c3; REQUIRE_INBUF(3) - c2 = IN2; - c3 = IN3; + c2 = INBYTE2; + c3 = INBYTE3; /* JIS X 0212 */ - TRYMAP_DEC(jisx0212, **outbuf, c2 ^ 0x80, c3 ^ 0x80) { - NEXT(3, 1) + TRYMAP_DEC(jisx0212, writer, c2 ^ 0x80, c3 ^ 0x80) { + NEXT_IN(3); } else return 1; @@ -407,18 +404,18 @@ DECODER(euc_jp) unsigned char c2; REQUIRE_INBUF(2) - c2 = IN2; + c2 = INBYTE2; /* JIS X 0208 */ #ifndef STRICT_BUILD if (c == 0xa1 && c2 == 0xc0) /* FULL-WIDTH REVERSE SOLIDUS */ - **outbuf = 0xff3c; + OUTCHAR(0xff3c); else #endif - TRYMAP_DEC(jisx0208, **outbuf, + TRYMAP_DEC(jisx0208, writer, c ^ 0x80, c2 ^ 0x80) ; else return 1; - NEXT(2, 1) + NEXT_IN(2); } } @@ -432,8 +429,8 @@ DECODER(euc_jp) ENCODER(shift_jis) { - while (inleft > 0) { - Py_UNICODE c = IN1; + while (*inpos < inlen) { + Py_UCS4 c = INCHAR1; DBCHAR code; unsigned char c1, c2; @@ -445,14 +442,16 @@ ENCODER(shift_jis) else if (c == 0x203e) code = 0x7e; /* OVERLINE */ #endif else JISX0201_K_ENCODE(c, code) - else UCS4INVALID(c) - else code = NOCHAR; + else if (c > 0xFFFF) + return 1; + else + code = NOCHAR; if (code < 0x80 || (code >= 0xa1 && code <= 0xdf)) { REQUIRE_OUTBUF(1) - OUT1((unsigned char)code) - NEXT(1, 1) + OUTBYTE1((unsigned char)code) + NEXT(1, 1); continue; } @@ -475,9 +474,9 @@ ENCODER(shift_jis) c2 = code & 0xff; c2 = (((c1 - 0x21) & 1) ? 0x5e : 0) + (c2 - 0x21); c1 = (c1 - 0x21) >> 1; - OUT1(c1 < 0x1f ? c1 + 0x81 : c1 + 0xc1) - OUT2(c2 < 0x3f ? c2 + 0x40 : c2 + 0x41) - NEXT(1, 2) + OUTBYTE1(c1 < 0x1f ? c1 + 0x81 : c1 + 0xc1) + OUTBYTE2(c2 < 0x3f ? c2 + 0x40 : c2 + 0x41) + NEXT(1, 2); } return 0; @@ -486,21 +485,19 @@ ENCODER(shift_jis) DECODER(shift_jis) { while (inleft > 0) { - unsigned char c = IN1; - - REQUIRE_OUTBUF(1) + unsigned char c = INBYTE1; #ifdef STRICT_BUILD - JISX0201_R_DECODE(c, **outbuf) + JISX0201_R_DECODE(c, writer) #else - if (c < 0x80) **outbuf = c; + if (c < 0x80) OUTCHAR(c); #endif - else JISX0201_K_DECODE(c, **outbuf) + else JISX0201_K_DECODE(c, writer) else if ((c >= 0x81 && c <= 0x9f) || (c >= 0xe0 && c <= 0xea)){ unsigned char c1, c2; REQUIRE_INBUF(2) - c2 = IN2; + c2 = INBYTE2; if (c2 < 0x40 || (c2 > 0x7e && c2 < 0x80) || c2 > 0xfc) return 1; @@ -512,13 +509,13 @@ DECODER(shift_jis) #ifndef STRICT_BUILD if (c1 == 0x21 && c2 == 0x40) { /* FULL-WIDTH REVERSE SOLIDUS */ - OUT1(0xff3c) - NEXT(2, 1) + OUTCHAR(0xff3c); + NEXT_IN(2); continue; } #endif - TRYMAP_DEC(jisx0208, **outbuf, c1, c2) { - NEXT(2, 1) + TRYMAP_DEC(jisx0208, writer, c1, c2) { + NEXT_IN(2); continue; } else @@ -527,7 +524,7 @@ DECODER(shift_jis) else return 1; - NEXT(1, 1) /* JIS X 0201 */ + NEXT_IN(1); /* JIS X 0201 */ } return 0; @@ -540,30 +537,29 @@ DECODER(shift_jis) ENCODER(shift_jis_2004) { - while (inleft > 0) { - ucs4_t c = IN1; + while (*inpos < inlen) { + Py_UCS4 c = INCHAR1; DBCHAR code = NOCHAR; int c1, c2; Py_ssize_t insize; JISX0201_ENCODE(c, code) - else DECODE_SURROGATE(c) if (code < 0x80 || (code >= 0xa1 && code <= 0xdf)) { - WRITE1((unsigned char)code) - NEXT(1, 1) + WRITEBYTE1((unsigned char)code) + NEXT(1, 1); continue; } REQUIRE_OUTBUF(2) - insize = GET_INSIZE(c); + insize = 1; if (code == NOCHAR) { if (c <= 0xffff) { EMULATE_JISX0213_2000_ENCODE_BMP(code, c) else TRYMAP_ENC(jisx0213_bmp, code, c) { if (code == MULTIC) { - if (inleft < 2) { + if (inlen - *inpos < 2) { if (flags & MBENC_FLUSH) { code = find_pairencmap ((ucs2_t)c, 0, @@ -576,8 +572,9 @@ ENCODER(shift_jis_2004) return MBERR_TOOFEW; } else { + Py_UCS4 ch2 = INCHAR2; code = find_pairencmap( - (ucs2_t)c, IN2, + (ucs2_t)c, ch2, jisx0213_pair_encmap, JISX0213_ENCPAIRS); if (code == DBCINV) { @@ -622,10 +619,10 @@ ENCODER(shift_jis_2004) if (c1 & 1) c2 += 0x5e; c1 >>= 1; - OUT1(c1 + (c1 < 0x1f ? 0x81 : 0xc1)) - OUT2(c2 + (c2 < 0x3f ? 0x40 : 0x41)) + OUTBYTE1(c1 + (c1 < 0x1f ? 0x81 : 0xc1)) + OUTBYTE2(c2 + (c2 < 0x3f ? 0x40 : 0x41)) - NEXT(insize, 2) + NEXT(insize, 2); } return 0; @@ -634,16 +631,15 @@ ENCODER(shift_jis_2004) DECODER(shift_jis_2004) { while (inleft > 0) { - unsigned char c = IN1; + unsigned char c = INBYTE1; - REQUIRE_OUTBUF(1) - JISX0201_DECODE(c, **outbuf) + JISX0201_DECODE(c, writer) else if ((c >= 0x81 && c <= 0x9f) || (c >= 0xe0 && c <= 0xfc)){ unsigned char c1, c2; - ucs4_t code; + Py_UCS4 code; REQUIRE_INBUF(2) - c2 = IN2; + c2 = INBYTE2; if (c2 < 0x40 || (c2 > 0x7e && c2 < 0x80) || c2 > 0xfc) return 1; @@ -654,50 +650,47 @@ DECODER(shift_jis_2004) if (c1 < 0x5e) { /* Plane 1 */ c1 += 0x21; - EMULATE_JISX0213_2000_DECODE_PLANE1(**outbuf, + EMULATE_JISX0213_2000_DECODE_PLANE1(writer, c1, c2) - else TRYMAP_DEC(jisx0208, **outbuf, c1, c2) { - NEXT_OUT(1) + else TRYMAP_DEC(jisx0208, writer, c1, c2) { } - else TRYMAP_DEC(jisx0213_1_bmp, **outbuf, + else TRYMAP_DEC(jisx0213_1_bmp, writer, c1, c2) { - NEXT_OUT(1) } - else TRYMAP_DEC(jisx0213_1_emp, code, c1, c2) { - WRITEUCS4(EMPBASE | code) + else TRYMAP_DEC_CHAR(jisx0213_1_emp, code, c1, c2) { + OUTCHAR(EMPBASE | code); } - else TRYMAP_DEC(jisx0213_pair, code, c1, c2) { - WRITE2(code >> 16, code & 0xffff) - NEXT_OUT(2) + else TRYMAP_DEC_CHAR(jisx0213_pair, code, c1, c2) { + OUTCHAR2(code >> 16, code & 0xffff); } else return 1; - NEXT_IN(2) + NEXT_IN(2); } else { /* Plane 2 */ if (c1 >= 0x67) c1 += 0x07; else if (c1 >= 0x63 || c1 == 0x5f) c1 -= 0x37; else c1 -= 0x3d; - EMULATE_JISX0213_2000_DECODE_PLANE2(**outbuf, + EMULATE_JISX0213_2000_DECODE_PLANE2(writer, c1, c2) - else TRYMAP_DEC(jisx0213_2_bmp, **outbuf, - c1, c2) ; - else TRYMAP_DEC(jisx0213_2_emp, code, c1, c2) { - WRITEUCS4(EMPBASE | code) - NEXT_IN(2) + else TRYMAP_DEC(jisx0213_2_bmp, writer, + c1, c2) { + } else TRYMAP_DEC_CHAR(jisx0213_2_emp, code, c1, c2) { + OUTCHAR(EMPBASE | code); + NEXT_IN(2); continue; } else return 1; - NEXT(2, 1) + NEXT_IN(2); } continue; } else return 1; - NEXT(1, 1) /* JIS X 0201 */ + NEXT_IN(1); /* JIS X 0201 */ } return 0; diff --git a/Modules/cjkcodecs/_codecs_kr.c b/Modules/cjkcodecs/_codecs_kr.c index f5697dd..0c2309d 100644 --- a/Modules/cjkcodecs/_codecs_kr.c +++ b/Modules/cjkcodecs/_codecs_kr.c @@ -33,16 +33,18 @@ static const unsigned char u2cgk_jongseong[28] = { ENCODER(euc_kr) { - while (inleft > 0) { - Py_UNICODE c = IN1; + while (*inpos < inlen) { + Py_UCS4 c = INCHAR1; DBCHAR code; if (c < 0x80) { - WRITE1((unsigned char)c) - NEXT(1, 1) + WRITEBYTE1((unsigned char)c) + NEXT(1, 1); continue; } - UCS4INVALID(c) + + if (c > 0xFFFF) + return 1; REQUIRE_OUTBUF(2) TRYMAP_ENC(cp949, code, c); @@ -50,9 +52,9 @@ ENCODER(euc_kr) if ((code & 0x8000) == 0) { /* KS X 1001 coded character */ - OUT1((code >> 8) | 0x80) - OUT2((code & 0xFF) | 0x80) - NEXT(1, 2) + OUTBYTE1((code >> 8) | 0x80) + OUTBYTE2((code & 0xFF) | 0x80) + NEXT(1, 2); } else { /* Mapping is found in CP949 extension, * but we encode it in KS X 1001:1998 Annex 3, @@ -61,23 +63,23 @@ ENCODER(euc_kr) REQUIRE_OUTBUF(8) /* syllable composition precedence */ - OUT1(EUCKR_JAMO_FIRSTBYTE) - OUT2(EUCKR_JAMO_FILLER) + OUTBYTE1(EUCKR_JAMO_FIRSTBYTE) + OUTBYTE2(EUCKR_JAMO_FILLER) /* All codepoints in CP949 extension are in unicode * Hangul Syllable area. */ assert(0xac00 <= c && c <= 0xd7a3); c -= 0xac00; - OUT3(EUCKR_JAMO_FIRSTBYTE) - OUT4(u2cgk_choseong[c / 588]) - NEXT_OUT(4) + OUTBYTE3(EUCKR_JAMO_FIRSTBYTE) + OUTBYTE4(u2cgk_choseong[c / 588]) + NEXT_OUT(4); - OUT1(EUCKR_JAMO_FIRSTBYTE) - OUT2(u2cgk_jungseong[(c / 28) % 21]) - OUT3(EUCKR_JAMO_FIRSTBYTE) - OUT4(u2cgk_jongseong[c % 28]) - NEXT(1, 4) + OUTBYTE1(EUCKR_JAMO_FIRSTBYTE) + OUTBYTE2(u2cgk_jungseong[(c / 28) % 21]) + OUTBYTE3(EUCKR_JAMO_FIRSTBYTE) + OUTBYTE4(u2cgk_jongseong[c % 28]) + NEXT(1, 4); } } @@ -102,20 +104,18 @@ static const unsigned char cgk2u_jongseong[] = { /* [A1, BE] */ DECODER(euc_kr) { while (inleft > 0) { - unsigned char c = IN1; - - REQUIRE_OUTBUF(1) + unsigned char c = INBYTE1; if (c < 0x80) { - OUT1(c) - NEXT(1, 1) + OUTCHAR(c); + NEXT_IN(1); continue; } REQUIRE_INBUF(2) if (c == EUCKR_JAMO_FIRSTBYTE && - IN2 == EUCKR_JAMO_FILLER) { + INBYTE2 == EUCKR_JAMO_FILLER) { /* KS X 1001:1998 Annex 3 make-up sequence */ DBCHAR cho, jung, jong; @@ -145,11 +145,11 @@ DECODER(euc_kr) if (cho == NONE || jung == NONE || jong == NONE) return 1; - OUT1(0xac00 + cho*588 + jung*28 + jong); - NEXT(8, 1) + OUTCHAR(0xac00 + cho*588 + jung*28 + jong); + NEXT_IN(8); } - else TRYMAP_DEC(ksx1001, **outbuf, c ^ 0x80, IN2 ^ 0x80) { - NEXT(2, 1) + else TRYMAP_DEC(ksx1001, writer, c ^ 0x80, INBYTE2 ^ 0x80) { + NEXT_IN(2); } else return 1; @@ -166,27 +166,29 @@ DECODER(euc_kr) ENCODER(cp949) { - while (inleft > 0) { - Py_UNICODE c = IN1; + while (*inpos < inlen) { + Py_UCS4 c = INCHAR1; DBCHAR code; if (c < 0x80) { - WRITE1((unsigned char)c) - NEXT(1, 1) + WRITEBYTE1((unsigned char)c) + NEXT(1, 1); continue; } - UCS4INVALID(c) + + if (c > 0xFFFF) + return 1; REQUIRE_OUTBUF(2) TRYMAP_ENC(cp949, code, c); else return 1; - OUT1((code >> 8) | 0x80) + OUTBYTE1((code >> 8) | 0x80) if (code & 0x8000) - OUT2(code & 0xFF) /* MSB set: CP949 */ + OUTBYTE2(code & 0xFF) /* MSB set: CP949 */ else - OUT2((code & 0xFF) | 0x80) /* MSB unset: ks x 1001 */ - NEXT(1, 2) + OUTBYTE2((code & 0xFF) | 0x80) /* MSB unset: ks x 1001 */ + NEXT(1, 2); } return 0; @@ -195,22 +197,20 @@ ENCODER(cp949) DECODER(cp949) { while (inleft > 0) { - unsigned char c = IN1; - - REQUIRE_OUTBUF(1) + unsigned char c = INBYTE1; if (c < 0x80) { - OUT1(c) - NEXT(1, 1) + OUTCHAR(c); + NEXT_IN(1); continue; } REQUIRE_INBUF(2) - TRYMAP_DEC(ksx1001, **outbuf, c ^ 0x80, IN2 ^ 0x80); - else TRYMAP_DEC(cp949ext, **outbuf, c, IN2); + TRYMAP_DEC(ksx1001, writer, c ^ 0x80, INBYTE2 ^ 0x80); + else TRYMAP_DEC(cp949ext, writer, c, INBYTE2); else return 1; - NEXT(2, 1) + NEXT_IN(2); } return 0; @@ -250,16 +250,18 @@ static const DBCHAR u2johabjamo[] = { ENCODER(johab) { - while (inleft > 0) { - Py_UNICODE c = IN1; + while (*inpos < inlen) { + Py_UCS4 c = INCHAR1; DBCHAR code; if (c < 0x80) { - WRITE1((unsigned char)c) - NEXT(1, 1) + WRITEBYTE1((unsigned char)c) + NEXT(1, 1); continue; } - UCS4INVALID(c) + + if (c > 0xFFFF) + return 1; REQUIRE_OUTBUF(2) @@ -285,9 +287,9 @@ ENCODER(johab) t1 = (c1 < 0x4a ? (c1 - 0x21 + 0x1b2) : (c1 - 0x21 + 0x197)); t2 = ((t1 & 1) ? 0x5e : 0) + (c2 - 0x21); - OUT1(t1 >> 1) - OUT2(t2 < 0x4e ? t2 + 0x31 : t2 + 0x43) - NEXT(1, 2) + OUTBYTE1(t1 >> 1) + OUTBYTE2(t2 < 0x4e ? t2 + 0x31 : t2 + 0x43) + NEXT(1, 2); continue; } else @@ -296,9 +298,9 @@ ENCODER(johab) else return 1; - OUT1(code >> 8) - OUT2(code & 0xff) - NEXT(1, 2) + OUTBYTE1(code >> 8) + OUTBYTE2(code & 0xff) + NEXT(1, 2); } return 0; @@ -348,18 +350,16 @@ static const unsigned char johabjamo_jongseong[32] = { DECODER(johab) { while (inleft > 0) { - unsigned char c = IN1, c2; - - REQUIRE_OUTBUF(1) + unsigned char c = INBYTE1, c2; if (c < 0x80) { - OUT1(c) - NEXT(1, 1) + OUTCHAR(c); + NEXT_IN(1); continue; } REQUIRE_INBUF(2) - c2 = IN2; + c2 = INBYTE2; if (c < 0xd8) { /* johab hangul */ @@ -381,33 +381,33 @@ DECODER(johab) if (i_cho == FILL) { if (i_jung == FILL) { if (i_jong == FILL) - OUT1(0x3000) + OUTCHAR(0x3000); else - OUT1(0x3100 | - johabjamo_jongseong[c_jong]) + OUTCHAR(0x3100 | + johabjamo_jongseong[c_jong]); } else { if (i_jong == FILL) - OUT1(0x3100 | - johabjamo_jungseong[c_jung]) + OUTCHAR(0x3100 | + johabjamo_jungseong[c_jung]); else return 1; } } else { if (i_jung == FILL) { if (i_jong == FILL) - OUT1(0x3100 | - johabjamo_choseong[c_cho]) + OUTCHAR(0x3100 | + johabjamo_choseong[c_cho]); else return 1; } else - OUT1(0xac00 + - i_cho * 588 + - i_jung * 28 + - (i_jong == FILL ? 0 : i_jong)) + OUTCHAR(0xac00 + + i_cho * 588 + + i_jung * 28 + + (i_jong == FILL ? 0 : i_jong)); } - NEXT(2, 1) + NEXT_IN(2); } else { /* KS X 1001 except hangul jamos and syllables */ if (c == 0xdf || c > 0xf9 || @@ -424,9 +424,9 @@ DECODER(johab) t1 = t1 + (t2 < 0x5e ? 0 : 1) + 0x21; t2 = (t2 < 0x5e ? t2 : t2 - 0x5e) + 0x21; - TRYMAP_DEC(ksx1001, **outbuf, t1, t2); + TRYMAP_DEC(ksx1001, writer, t1, t2); else return 1; - NEXT(2, 1) + NEXT_IN(2); } } } diff --git a/Modules/cjkcodecs/_codecs_tw.c b/Modules/cjkcodecs/_codecs_tw.c index 916298d..80e0b81 100644 --- a/Modules/cjkcodecs/_codecs_tw.c +++ b/Modules/cjkcodecs/_codecs_tw.c @@ -13,26 +13,28 @@ ENCODER(big5) { - while (inleft > 0) { - Py_UNICODE c = **inbuf; + while (*inpos < inlen) { + Py_UCS4 c = INCHAR1; DBCHAR code; if (c < 0x80) { REQUIRE_OUTBUF(1) **outbuf = (unsigned char)c; - NEXT(1, 1) + NEXT(1, 1); continue; } - UCS4INVALID(c) + + if (c > 0xFFFF) + return 1; REQUIRE_OUTBUF(2) TRYMAP_ENC(big5, code, c); else return 1; - OUT1(code >> 8) - OUT2(code & 0xFF) - NEXT(1, 2) + OUTBYTE1(code >> 8) + OUTBYTE2(code & 0xFF) + NEXT(1, 2); } return 0; @@ -41,19 +43,17 @@ ENCODER(big5) DECODER(big5) { while (inleft > 0) { - unsigned char c = IN1; - - REQUIRE_OUTBUF(1) + unsigned char c = INBYTE1; if (c < 0x80) { - OUT1(c) - NEXT(1, 1) + OUTCHAR(c); + NEXT_IN(1); continue; } REQUIRE_INBUF(2) - TRYMAP_DEC(big5, **outbuf, c, IN2) { - NEXT(2, 1) + TRYMAP_DEC(big5, writer, c, INBYTE2) { + NEXT_IN(2); } else return 1; } @@ -68,25 +68,27 @@ DECODER(big5) ENCODER(cp950) { - while (inleft > 0) { - Py_UNICODE c = IN1; + while (*inpos < inlen) { + Py_UCS4 c = INCHAR1; DBCHAR code; if (c < 0x80) { - WRITE1((unsigned char)c) - NEXT(1, 1) + WRITEBYTE1((unsigned char)c) + NEXT(1, 1); continue; } - UCS4INVALID(c) + + if (c > 0xFFFF) + return 1; REQUIRE_OUTBUF(2) TRYMAP_ENC(cp950ext, code, c); else TRYMAP_ENC(big5, code, c); else return 1; - OUT1(code >> 8) - OUT2(code & 0xFF) - NEXT(1, 2) + OUTBYTE1(code >> 8) + OUTBYTE2(code & 0xFF) + NEXT(1, 2); } return 0; @@ -95,23 +97,21 @@ ENCODER(cp950) DECODER(cp950) { while (inleft > 0) { - unsigned char c = IN1; - - REQUIRE_OUTBUF(1) + unsigned char c = INBYTE1; if (c < 0x80) { - OUT1(c) - NEXT(1, 1) + OUTCHAR(c); + NEXT_IN(1); continue; } REQUIRE_INBUF(2) - TRYMAP_DEC(cp950ext, **outbuf, c, IN2); - else TRYMAP_DEC(big5, **outbuf, c, IN2); + TRYMAP_DEC(cp950ext, writer, c, INBYTE2); + else TRYMAP_DEC(big5, writer, c, INBYTE2); else return 1; - NEXT(2, 1) + NEXT_IN(2); } return 0; diff --git a/Modules/cjkcodecs/alg_jisx0201.h b/Modules/cjkcodecs/alg_jisx0201.h index 0bc7db5..98c63e6 100644 --- a/Modules/cjkcodecs/alg_jisx0201.h +++ b/Modules/cjkcodecs/alg_jisx0201.h @@ -10,15 +10,24 @@ JISX0201_R_ENCODE(c, assi) \ else JISX0201_K_ENCODE(c, assi) -#define JISX0201_R_DECODE(c, assi) \ +#define JISX0201_R_DECODE_CHAR(c, assi) \ if ((c) < 0x5c) (assi) = (c); \ else if ((c) == 0x5c) (assi) = 0x00a5; \ else if ((c) < 0x7e) (assi) = (c); \ else if ((c) == 0x7e) (assi) = 0x203e; \ else if ((c) == 0x7f) (assi) = 0x7f; -#define JISX0201_K_DECODE(c, assi) \ +#define JISX0201_R_DECODE(c, writer) \ + if ((c) < 0x5c) OUTCHAR(c); \ + else if ((c) == 0x5c) OUTCHAR(0x00a5); \ + else if ((c) < 0x7e) OUTCHAR(c); \ + else if ((c) == 0x7e) OUTCHAR(0x203e); \ + else if ((c) == 0x7f) OUTCHAR(0x7f); +#define JISX0201_K_DECODE(c, writer) \ if ((c) >= 0xa1 && (c) <= 0xdf) \ - (assi) = 0xfec0 + (c); -#define JISX0201_DECODE(c, assi) \ - JISX0201_R_DECODE(c, assi) \ - else JISX0201_K_DECODE(c, assi) + OUTCHAR(0xfec0 + (c)); +#define JISX0201_K_DECODE_CHAR(c, assi) \ + if ((c) >= 0xa1 && (c) <= 0xdf) \ + (assi) = 0xfec0 + (c); +#define JISX0201_DECODE(c, writer) \ + JISX0201_R_DECODE(c, writer) \ + else JISX0201_K_DECODE(c, writer) diff --git a/Modules/cjkcodecs/cjkcodecs.h b/Modules/cjkcodecs/cjkcodecs.h index ab0682a..18cc02f 100644 --- a/Modules/cjkcodecs/cjkcodecs.h +++ b/Modules/cjkcodecs/cjkcodecs.h @@ -33,7 +33,7 @@ struct dbcs_index { typedef struct dbcs_index decode_map; struct widedbcs_index { - const ucs4_t *map; + const Py_UCS4 *map; unsigned char bottom, top; }; typedef struct widedbcs_index widedecode_map; @@ -56,7 +56,7 @@ struct dbcs_map { }; struct pair_encodemap { - ucs4_t uniseq; + Py_UCS4 uniseq; DBCHAR code; }; @@ -72,7 +72,8 @@ static const struct dbcs_map *mapping_list; #define ENCODER(encoding) \ static Py_ssize_t encoding##_encode( \ MultibyteCodec_State *state, const void *config, \ - const Py_UNICODE **inbuf, Py_ssize_t inleft, \ + int kind, void *data, \ + Py_ssize_t *inpos, Py_ssize_t inlen, \ unsigned char **outbuf, Py_ssize_t outleft, int flags) #define ENCODER_RESET(encoding) \ static Py_ssize_t encoding##_encode_reset( \ @@ -86,28 +87,30 @@ static const struct dbcs_map *mapping_list; static Py_ssize_t encoding##_decode( \ MultibyteCodec_State *state, const void *config, \ const unsigned char **inbuf, Py_ssize_t inleft, \ - Py_UNICODE **outbuf, Py_ssize_t outleft) + _PyUnicodeWriter *writer) #define DECODER_RESET(encoding) \ static Py_ssize_t encoding##_decode_reset( \ MultibyteCodec_State *state, const void *config) -#if Py_UNICODE_SIZE == 4 -#define UCS4INVALID(code) \ - if ((code) > 0xFFFF) \ - return 1; -#else -#define UCS4INVALID(code) \ - if (0) ; -#endif - #define NEXT_IN(i) \ - (*inbuf) += (i); \ - (inleft) -= (i); + do { \ + (*inbuf) += (i); \ + (inleft) -= (i); \ + } while (0) +#define NEXT_INCHAR(i) \ + do { \ + (*inpos) += (i); \ + } while (0) #define NEXT_OUT(o) \ - (*outbuf) += (o); \ - (outleft) -= (o); + do { \ + (*outbuf) += (o); \ + (outleft) -= (o); \ + } while (0) #define NEXT(i, o) \ - NEXT_IN(i) NEXT_OUT(o) + do { \ + NEXT_INCHAR(i); \ + NEXT_OUT(o); \ + } while (0) #define REQUIRE_INBUF(n) \ if (inleft < (n)) \ @@ -116,48 +119,55 @@ static const struct dbcs_map *mapping_list; if (outleft < (n)) \ return MBERR_TOOSMALL; -#define IN1 ((*inbuf)[0]) -#define IN2 ((*inbuf)[1]) -#define IN3 ((*inbuf)[2]) -#define IN4 ((*inbuf)[3]) - -#define OUT1(c) ((*outbuf)[0]) = (c); -#define OUT2(c) ((*outbuf)[1]) = (c); -#define OUT3(c) ((*outbuf)[2]) = (c); -#define OUT4(c) ((*outbuf)[3]) = (c); - -#define WRITE1(c1) \ +#define INBYTE1 ((*inbuf)[0]) +#define INBYTE2 ((*inbuf)[1]) +#define INBYTE3 ((*inbuf)[2]) +#define INBYTE4 ((*inbuf)[3]) + +#define INCHAR1 PyUnicode_READ(kind, data, *inpos) +#define INCHAR2 PyUnicode_READ(kind, data, *inpos + 1) + +#define OUTCHAR(c) \ + do { \ + if (_PyUnicodeWriter_WriteChar(writer, (c)) < 0) \ + return MBERR_TOOSMALL; \ + } while (0) + +#define OUTCHAR2(c1, c2) \ + do { \ + Py_UCS4 _c1 = (c1); \ + Py_UCS4 _c2 = (c2); \ + if (_PyUnicodeWriter_Prepare(writer, 2, Py_MAX(_c1, c2)) < 0) \ + return MBERR_TOOSMALL; \ + PyUnicode_WRITE(writer->kind, writer->data, writer->pos, _c1); \ + PyUnicode_WRITE(writer->kind, writer->data, writer->pos + 1, _c2); \ + writer->pos += 2; \ + } while (0) + +#define OUTBYTE1(c) ((*outbuf)[0]) = (c); +#define OUTBYTE2(c) ((*outbuf)[1]) = (c); +#define OUTBYTE3(c) ((*outbuf)[2]) = (c); +#define OUTBYTE4(c) ((*outbuf)[3]) = (c); + +#define WRITEBYTE1(c1) \ REQUIRE_OUTBUF(1) \ (*outbuf)[0] = (c1); -#define WRITE2(c1, c2) \ +#define WRITEBYTE2(c1, c2) \ REQUIRE_OUTBUF(2) \ (*outbuf)[0] = (c1); \ (*outbuf)[1] = (c2); -#define WRITE3(c1, c2, c3) \ +#define WRITEBYTE3(c1, c2, c3) \ REQUIRE_OUTBUF(3) \ (*outbuf)[0] = (c1); \ (*outbuf)[1] = (c2); \ (*outbuf)[2] = (c3); -#define WRITE4(c1, c2, c3, c4) \ +#define WRITEBYTE4(c1, c2, c3, c4) \ REQUIRE_OUTBUF(4) \ (*outbuf)[0] = (c1); \ (*outbuf)[1] = (c2); \ (*outbuf)[2] = (c3); \ (*outbuf)[3] = (c4); -#if Py_UNICODE_SIZE == 2 -# define WRITEUCS4(c) \ - REQUIRE_OUTBUF(2) \ - (*outbuf)[0] = 0xd800 + (((c) - 0x10000) >> 10); \ - (*outbuf)[1] = 0xdc00 + (((c) - 0x10000) & 0x3ff); \ - NEXT_OUT(2) -#else -# define WRITEUCS4(c) \ - REQUIRE_OUTBUF(1) \ - **outbuf = (Py_UNICODE)(c); \ - NEXT_OUT(1) -#endif - #define _TRYMAP_ENC(m, assi, val) \ ((m)->map != NULL && (val) >= (m)->bottom && \ (val)<= (m)->top && ((assi) = (m)->map[(val) - \ @@ -167,39 +177,41 @@ static const struct dbcs_map *mapping_list; #define TRYMAP_ENC(charset, assi, uni) \ if TRYMAP_ENC_COND(charset, assi, uni) -#define _TRYMAP_DEC(m, assi, val) \ - ((m)->map != NULL && (val) >= (m)->bottom && \ - (val)<= (m)->top && ((assi) = (m)->map[(val) - \ - (m)->bottom]) != UNIINV) -#define TRYMAP_DEC(charset, assi, c1, c2) \ - if _TRYMAP_DEC(&charset##_decmap[c1], assi, c2) +Py_LOCAL_INLINE(int) +_TRYMAP_DEC_WRITE(_PyUnicodeWriter *writer, Py_UCS4 c) +{ + if (c == UNIINV || _PyUnicodeWriter_WriteChar(writer, c) < 0) + return UNIINV; + else + return c; +} -#define _TRYMAP_ENC_MPLANE(m, assplane, asshi, asslo, val) \ - ((m)->map != NULL && (val) >= (m)->bottom && \ - (val)<= (m)->top && \ - ((assplane) = (m)->map[((val) - (m)->bottom)*3]) != 0 && \ +#define _TRYMAP_DEC(m, writer, val) \ + ((m)->map != NULL && \ + (val) >= (m)->bottom && \ + (val)<= (m)->top && \ + _TRYMAP_DEC_WRITE(writer, (m)->map[(val) - (m)->bottom]) != UNIINV) +#define _TRYMAP_DEC_CHAR(m, assi, val) \ + ((m)->map != NULL && \ + (val) >= (m)->bottom && \ + (val)<= (m)->top && \ + ((assi) = (m)->map[(val) - (m)->bottom]) != UNIINV) +#define TRYMAP_DEC(charset, writer, c1, c2) \ + if _TRYMAP_DEC(&charset##_decmap[c1], writer, c2) +#define TRYMAP_DEC_CHAR(charset, assi, c1, c2) \ + if _TRYMAP_DEC_CHAR(&charset##_decmap[c1], assi, c2) + +#define _TRYMAP_ENC_MPLANE(m, assplane, asshi, asslo, val) \ + ((m)->map != NULL && (val) >= (m)->bottom && \ + (val)<= (m)->top && \ + ((assplane) = (m)->map[((val) - (m)->bottom)*3]) != 0 && \ (((asshi) = (m)->map[((val) - (m)->bottom)*3 + 1]), 1) && \ (((asslo) = (m)->map[((val) - (m)->bottom)*3 + 2]), 1)) #define TRYMAP_ENC_MPLANE(charset, assplane, asshi, asslo, uni) \ if _TRYMAP_ENC_MPLANE(&charset##_encmap[(uni) >> 8], \ assplane, asshi, asslo, (uni) & 0xff) -#define TRYMAP_DEC_MPLANE(charset, assi, plane, c1, c2) \ - if _TRYMAP_DEC(&charset##_decmap[plane][c1], assi, c2) - -#if Py_UNICODE_SIZE == 2 -#define DECODE_SURROGATE(c) \ - if (c >> 10 == 0xd800 >> 10) { /* high surrogate */ \ - REQUIRE_INBUF(2) \ - if (IN2 >> 10 == 0xdc00 >> 10) { /* low surrogate */ \ - c = 0x10000 + ((ucs4_t)(c - 0xd800) << 10) + \ - ((ucs4_t)(IN2) - 0xdc00); \ - } \ - } -#define GET_INSIZE(c) ((c) > 0xffff ? 2 : 1) -#else -#define DECODE_SURROGATE(c) {;} -#define GET_INSIZE(c) 1 -#endif +#define TRYMAP_DEC_MPLANE(charset, writer, plane, c1, c2) \ + if _TRYMAP_DEC(&charset##_decmap[plane][c1], writer, c2) #define BEGIN_MAPPINGS_LIST static const struct dbcs_map _mapping_list[] = { #define MAPPING_ENCONLY(enc) {#enc, (void*)enc##_encmap, NULL}, @@ -324,7 +336,7 @@ find_pairencmap(ucs2_t body, ucs2_t modifier, const struct pair_encodemap *haystack, int haystacksize) { int pos, min, max; - ucs4_t value = body << 16 | modifier; + Py_UCS4 value = body << 16 | modifier; min = 0; max = haystacksize; diff --git a/Modules/cjkcodecs/emu_jisx0213_2000.h b/Modules/cjkcodecs/emu_jisx0213_2000.h index 4227fb2..877337e 100644 --- a/Modules/cjkcodecs/emu_jisx0213_2000.h +++ b/Modules/cjkcodecs/emu_jisx0213_2000.h @@ -38,6 +38,9 @@ ((c1) == 0x7E && (c2) == 0x7E))) \ return EMULATE_JISX0213_2000_DECODE_INVALID; -#define EMULATE_JISX0213_2000_DECODE_PLANE2(assi, c1, c2) \ +#define EMULATE_JISX0213_2000_DECODE_PLANE2(writer, c1, c2) \ + if (config == (void *)2000 && (c1) == 0x7D && (c2) == 0x3B) \ + OUTCHAR(0x9B1D); +#define EMULATE_JISX0213_2000_DECODE_PLANE2_CHAR(assi, c1, c2) \ if (config == (void *)2000 && (c1) == 0x7D && (c2) == 0x3B) \ (assi) = 0x9B1D; diff --git a/Modules/cjkcodecs/mappings_cn.h b/Modules/cjkcodecs/mappings_cn.h index a6dcebf..1f8c299 100644 --- a/Modules/cjkcodecs/mappings_cn.h +++ b/Modules/cjkcodecs/mappings_cn.h @@ -4049,7 +4049,7 @@ __gb18030ext_encmap+3126,0,100},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0 static const struct _gb18030_to_unibmp_ranges { - Py_UNICODE first, last; + Py_UCS4 first, last; DBCHAR base; } gb18030_to_unibmp_ranges[] = { {128,163,0},{165,166,36},{169,175,38},{178,182,45},{184,214,50},{216,223,81},{ diff --git a/Modules/cjkcodecs/mappings_jisx0213_pair.h b/Modules/cjkcodecs/mappings_jisx0213_pair.h index eda8e9e..729e4bc 100644 --- a/Modules/cjkcodecs/mappings_jisx0213_pair.h +++ b/Modules/cjkcodecs/mappings_jisx0213_pair.h @@ -3,7 +3,7 @@ static const struct widedbcs_index *jisx0213_pair_decmap; static const struct pair_encodemap *jisx0213_pair_encmap; #else -static const ucs4_t __jisx0213_pair_decmap[49] = { +static const Py_UCS4 __jisx0213_pair_decmap[49] = { 810234010,810365082,810496154,810627226,810758298,816525466,816656538, 816787610,816918682,817049754,817574042,818163866,818426010,838283418, 15074048,U,U,U,39060224,39060225,42730240,42730241,39387904,39387905,39453440, diff --git a/Modules/cjkcodecs/multibytecodec.c b/Modules/cjkcodecs/multibytecodec.c index c032cdb..33bd779 100644 --- a/Modules/cjkcodecs/multibytecodec.c +++ b/Modules/cjkcodecs/multibytecodec.c @@ -10,15 +10,16 @@ #include "multibytecodec.h" typedef struct { - const Py_UNICODE *inbuf, *inbuf_top, *inbuf_end; + PyObject *inobj; + Py_ssize_t inpos, inlen; unsigned char *outbuf, *outbuf_end; PyObject *excobj, *outobj; } MultibyteEncodeBuffer; typedef struct { const unsigned char *inbuf, *inbuf_top, *inbuf_end; - Py_UNICODE *outbuf, *outbuf_end; - PyObject *excobj, *outobj; + PyObject *excobj; + _PyUnicodeWriter writer; } MultibyteDecodeBuffer; PyDoc_STRVAR(MultibyteCodec_Encode__doc__, @@ -45,7 +46,7 @@ static char *incrementalkwarglist[] = {"input", "final", NULL}; static char *streamkwarglist[] = {"stream", "errors", NULL}; static PyObject *multibytecodec_encode(MultibyteCodec *, - MultibyteCodec_State *, const Py_UNICODE **, Py_ssize_t, + MultibyteCodec_State *, PyObject *, Py_ssize_t *, PyObject *, int); #define MBENC_RESET MBENC_MAX<<1 /* reset after an encoding session */ @@ -197,29 +198,6 @@ expand_encodebuffer(MultibyteEncodeBuffer *buf, Py_ssize_t esize) goto errorexit; \ } -static int -expand_decodebuffer(MultibyteDecodeBuffer *buf, Py_ssize_t esize) -{ - Py_ssize_t orgpos, orgsize; - - orgpos = (Py_ssize_t)(buf->outbuf - PyUnicode_AS_UNICODE(buf->outobj)); - orgsize = PyUnicode_GET_SIZE(buf->outobj); - if (PyUnicode_Resize(&buf->outobj, orgsize + ( - esize < (orgsize >> 1) ? (orgsize >> 1) | 1 : esize)) == -1) - return -1; - - buf->outbuf = PyUnicode_AS_UNICODE(buf->outobj) + orgpos; - buf->outbuf_end = PyUnicode_AS_UNICODE(buf->outobj) - + PyUnicode_GET_SIZE(buf->outobj); - - return 0; -} -#define REQUIRE_DECODEBUFFER(buf, s) { \ - if ((s) < 1 || (buf)->outbuf + (s) > (buf)->outbuf_end) \ - if (expand_decodebuffer(buf, s) == -1) \ - goto errorexit; \ -} - /** * MultibyteCodec object @@ -247,7 +225,7 @@ multibytecodec_encerror(MultibyteCodec *codec, return 0; /* retry it */ case MBERR_TOOFEW: reason = "incomplete multibyte sequence"; - esize = (Py_ssize_t)(buf->inbuf_end - buf->inbuf); + esize = (Py_ssize_t)buf->inpos; break; case MBERR_INTERNAL: PyErr_SetString(PyExc_RuntimeError, @@ -261,14 +239,24 @@ multibytecodec_encerror(MultibyteCodec *codec, } if (errors == ERROR_REPLACE) { - const Py_UNICODE replchar = '?', *inbuf = &replchar; + PyObject *replchar; Py_ssize_t r; + Py_ssize_t inpos; + int kind; + void *data; + replchar = PyUnicode_FromOrdinal('?'); + if (replchar == NULL) + goto errorexit; + kind = PyUnicode_KIND(replchar); + data = PyUnicode_DATA(replchar); + + inpos = 0; for (;;) { - Py_ssize_t outleft; + Py_ssize_t outleft = (Py_ssize_t)(buf->outbuf_end - buf->outbuf); - outleft = (Py_ssize_t)(buf->outbuf_end - buf->outbuf); - r = codec->encode(state, codec->config, &inbuf, 1, + r = codec->encode(state, codec->config, + kind, data, &inpos, 1, &buf->outbuf, outleft, 0); if (r == MBERR_TOOSMALL) { REQUIRE_ENCODEBUFFER(buf, -1); @@ -278,25 +266,27 @@ multibytecodec_encerror(MultibyteCodec *codec, break; } + Py_DECREF(replchar); + if (r != 0) { REQUIRE_ENCODEBUFFER(buf, 1); *buf->outbuf++ = '?'; } } if (errors == ERROR_IGNORE || errors == ERROR_REPLACE) { - buf->inbuf += esize; + buf->inpos += esize; return 0; } - start = (Py_ssize_t)(buf->inbuf - buf->inbuf_top); + start = (Py_ssize_t)buf->inpos; end = start + esize; /* use cached exception object if available */ if (buf->excobj == NULL) { - buf->excobj = PyUnicodeEncodeError_Create(codec->encoding, - buf->inbuf_top, - buf->inbuf_end - buf->inbuf_top, - start, end, reason); + buf->excobj = PyObject_CallFunction(PyExc_UnicodeEncodeError, + "sOnns", + codec->encoding, buf->inobj, + start, end, reason); if (buf->excobj == NULL) goto errorexit; } @@ -325,10 +315,10 @@ multibytecodec_encerror(MultibyteCodec *codec, } if (PyUnicode_Check(tobj)) { - const Py_UNICODE *uraw = PyUnicode_AS_UNICODE(tobj); + Py_ssize_t inpos; - retstr = multibytecodec_encode(codec, state, &uraw, - PyUnicode_GET_SIZE(tobj), ERROR_STRICT, + retstr = multibytecodec_encode(codec, state, tobj, + &inpos, ERROR_STRICT, MBENC_FLUSH); if (retstr == NULL) goto errorexit; @@ -347,15 +337,15 @@ multibytecodec_encerror(MultibyteCodec *codec, newpos = PyLong_AsSsize_t(PyTuple_GET_ITEM(retobj, 1)); if (newpos < 0 && !PyErr_Occurred()) - newpos += (Py_ssize_t)(buf->inbuf_end - buf->inbuf_top); - if (newpos < 0 || buf->inbuf_top + newpos > buf->inbuf_end) { + newpos += (Py_ssize_t)buf->inlen; + if (newpos < 0 || newpos > buf->inlen) { PyErr_Clear(); PyErr_Format(PyExc_IndexError, "position %zd from error handler out of bounds", newpos); goto errorexit; } - buf->inbuf = buf->inbuf_top + newpos; + buf->inpos = newpos; Py_DECREF(retobj); Py_DECREF(retstr); @@ -374,7 +364,7 @@ multibytecodec_decerror(MultibyteCodec *codec, PyObject *errors, Py_ssize_t e) { PyObject *retobj = NULL, *retuni = NULL; - Py_ssize_t retunisize, newpos; + Py_ssize_t newpos; const char *reason; Py_ssize_t esize, start, end; @@ -385,7 +375,6 @@ multibytecodec_decerror(MultibyteCodec *codec, else { switch (e) { case MBERR_TOOSMALL: - REQUIRE_DECODEBUFFER(buf, -1); return 0; /* retry it */ case MBERR_TOOFEW: reason = "incomplete multibyte sequence"; @@ -403,8 +392,9 @@ multibytecodec_decerror(MultibyteCodec *codec, } if (errors == ERROR_REPLACE) { - REQUIRE_DECODEBUFFER(buf, 1); - *buf->outbuf++ = Py_UNICODE_REPLACEMENT_CHARACTER; + if (_PyUnicodeWriter_WriteChar(&buf->writer, + Py_UNICODE_REPLACEMENT_CHARACTER) < 0) + goto errorexit; } if (errors == ERROR_IGNORE || errors == ERROR_REPLACE) { buf->inbuf += esize; @@ -447,15 +437,8 @@ multibytecodec_decerror(MultibyteCodec *codec, goto errorexit; } - if (PyUnicode_AsUnicode(retuni) == NULL) + if (_PyUnicodeWriter_WriteStr(&buf->writer, retuni) < 0) goto errorexit; - retunisize = PyUnicode_GET_SIZE(retuni); - if (retunisize > 0) { - REQUIRE_DECODEBUFFER(buf, retunisize); - memcpy((char *)buf->outbuf, PyUnicode_AS_UNICODE(retuni), - retunisize * Py_UNICODE_SIZE); - buf->outbuf += retunisize; - } newpos = PyLong_AsSsize_t(PyTuple_GET_ITEM(retobj, 1)); if (newpos < 0 && !PyErr_Occurred()) @@ -479,19 +462,29 @@ errorexit: static PyObject * multibytecodec_encode(MultibyteCodec *codec, MultibyteCodec_State *state, - const Py_UNICODE **data, Py_ssize_t datalen, + PyObject *text, Py_ssize_t *inpos_t, PyObject *errors, int flags) { MultibyteEncodeBuffer buf; Py_ssize_t finalsize, r = 0; + Py_ssize_t datalen; + int kind; + void *data; + + if (PyUnicode_READY(text) < 0) + return NULL; + datalen = PyUnicode_GET_LENGTH(text); if (datalen == 0 && !(flags & MBENC_RESET)) return PyBytes_FromStringAndSize(NULL, 0); buf.excobj = NULL; buf.outobj = NULL; - buf.inbuf = buf.inbuf_top = *data; - buf.inbuf_end = buf.inbuf_top + datalen; + buf.inobj = text; /* borrowed reference */ + buf.inpos = 0; + buf.inlen = datalen; + kind = PyUnicode_KIND(buf.inobj); + data = PyUnicode_DATA(buf.inobj); if (datalen > (PY_SSIZE_T_MAX - 16) / 2) { PyErr_NoMemory(); @@ -504,14 +497,14 @@ multibytecodec_encode(MultibyteCodec *codec, buf.outbuf = (unsigned char *)PyBytes_AS_STRING(buf.outobj); buf.outbuf_end = buf.outbuf + PyBytes_GET_SIZE(buf.outobj); - while (buf.inbuf < buf.inbuf_end) { - Py_ssize_t inleft, outleft; - + while (buf.inpos < buf.inlen) { /* we don't reuse inleft and outleft here. * error callbacks can relocate the cursor anywhere on buffer*/ - inleft = (Py_ssize_t)(buf.inbuf_end - buf.inbuf); - outleft = (Py_ssize_t)(buf.outbuf_end - buf.outbuf); - r = codec->encode(state, codec->config, &buf.inbuf, inleft, + Py_ssize_t outleft = (Py_ssize_t)(buf.outbuf_end - buf.outbuf); + + r = codec->encode(state, codec->config, + kind, data, + &buf.inpos, buf.inlen, &buf.outbuf, outleft, flags); if ((r == 0) || (r == MBERR_TOOFEW && !(flags & MBENC_FLUSH))) break; @@ -542,7 +535,8 @@ multibytecodec_encode(MultibyteCodec *codec, if (_PyBytes_Resize(&buf.outobj, finalsize) == -1) goto errorexit; - *data = buf.inbuf; + if (inpos_t) + *inpos_t = buf.inpos; Py_XDECREF(buf.excobj); return buf.outobj; @@ -557,7 +551,6 @@ MultibyteCodec_Encode(MultibyteCodecObject *self, PyObject *args, PyObject *kwargs) { MultibyteCodec_State state; - Py_UNICODE *data; PyObject *errorcb, *r, *arg, *ucvt; const char *errors = NULL; Py_ssize_t datalen; @@ -580,11 +573,11 @@ MultibyteCodec_Encode(MultibyteCodecObject *self, } } - data = PyUnicode_AsUnicodeAndSize(arg, &datalen); - if (data == NULL) { + if (PyUnicode_READY(arg) < 0) { Py_XDECREF(ucvt); return NULL; } + datalen = PyUnicode_GET_LENGTH(arg); errorcb = internal_error_callback(errors); if (errorcb == NULL) { @@ -596,7 +589,7 @@ MultibyteCodec_Encode(MultibyteCodecObject *self, self->codec->encinit(&state, self->codec->config) != 0) goto errorexit; r = multibytecodec_encode(self->codec, &state, - (const Py_UNICODE **)&data, datalen, errorcb, + arg, NULL, errorcb, MBENC_FLUSH | MBENC_RESET); if (r == NULL) goto errorexit; @@ -617,10 +610,10 @@ MultibyteCodec_Decode(MultibyteCodecObject *self, { MultibyteCodec_State state; MultibyteDecodeBuffer buf; - PyObject *errorcb; + PyObject *errorcb, *res; Py_buffer pdata; const char *data, *errors = NULL; - Py_ssize_t datalen, finalsize; + Py_ssize_t datalen; if (!PyArg_ParseTupleAndKeywords(args, kwargs, "y*|z:decode", codeckwarglist, &pdata, &errors)) @@ -640,29 +633,23 @@ MultibyteCodec_Decode(MultibyteCodecObject *self, return make_tuple(PyUnicode_New(0, 0), 0); } + _PyUnicodeWriter_Init(&buf.writer); + buf.writer.min_length = datalen; buf.excobj = NULL; buf.inbuf = buf.inbuf_top = (unsigned char *)data; buf.inbuf_end = buf.inbuf_top + datalen; - buf.outobj = PyUnicode_FromUnicode(NULL, datalen); - if (buf.outobj == NULL) - goto errorexit; - buf.outbuf = PyUnicode_AS_UNICODE(buf.outobj); - if (buf.outbuf == NULL) - goto errorexit; - buf.outbuf_end = buf.outbuf + PyUnicode_GET_SIZE(buf.outobj); if (self->codec->decinit != NULL && self->codec->decinit(&state, self->codec->config) != 0) goto errorexit; while (buf.inbuf < buf.inbuf_end) { - Py_ssize_t inleft, outleft, r; + Py_ssize_t inleft, r; inleft = (Py_ssize_t)(buf.inbuf_end - buf.inbuf); - outleft = (Py_ssize_t)(buf.outbuf_end - buf.outbuf); r = self->codec->decode(&state, self->codec->config, - &buf.inbuf, inleft, &buf.outbuf, outleft); + &buf.inbuf, inleft, &buf.writer); if (r == 0) break; else if (multibytecodec_decerror(self->codec, &state, @@ -670,23 +657,20 @@ MultibyteCodec_Decode(MultibyteCodecObject *self, goto errorexit; } - finalsize = (Py_ssize_t)(buf.outbuf - - PyUnicode_AS_UNICODE(buf.outobj)); - - if (finalsize != PyUnicode_GET_SIZE(buf.outobj)) - if (PyUnicode_Resize(&buf.outobj, finalsize) == -1) - goto errorexit; + res = _PyUnicodeWriter_Finish(&buf.writer); + if (res == NULL) + goto errorexit; PyBuffer_Release(&pdata); Py_XDECREF(buf.excobj); ERROR_DECREF(errorcb); - return make_tuple(buf.outobj, datalen); + return make_tuple(res, datalen); errorexit: PyBuffer_Release(&pdata); ERROR_DECREF(errorcb); Py_XDECREF(buf.excobj); - Py_XDECREF(buf.outobj); + _PyUnicodeWriter_Dealloc(&buf.writer); return NULL; } @@ -752,9 +736,9 @@ encoder_encode_stateful(MultibyteStatefulEncoderContext *ctx, PyObject *unistr, int final) { PyObject *ucvt, *r = NULL; - Py_UNICODE *inbuf, *inbuf_end, *inbuf_tmp = NULL; - Py_ssize_t datalen, origpending; - wchar_t *data; + PyObject *inbuf = NULL; + Py_ssize_t inpos, datalen; + PyObject *origpending = NULL; if (PyUnicode_Check(unistr)) ucvt = NULL; @@ -770,69 +754,66 @@ encoder_encode_stateful(MultibyteStatefulEncoderContext *ctx, } } - data = PyUnicode_AsUnicodeAndSize(unistr, &datalen); - if (data == NULL) - goto errorexit; - origpending = ctx->pendingsize; + if (ctx->pending) { + PyObject *inbuf_tmp; - if (origpending > 0) { - if (datalen > PY_SSIZE_T_MAX - ctx->pendingsize) { - PyErr_NoMemory(); - /* inbuf_tmp == NULL */ - goto errorexit; - } - inbuf_tmp = PyMem_New(Py_UNICODE, datalen + ctx->pendingsize); + Py_INCREF(ctx->pending); + origpending = ctx->pending; + + Py_INCREF(ctx->pending); + inbuf_tmp = ctx->pending; + PyUnicode_Append(&inbuf_tmp, unistr); if (inbuf_tmp == NULL) goto errorexit; - memcpy(inbuf_tmp, ctx->pending, - Py_UNICODE_SIZE * ctx->pendingsize); - memcpy(inbuf_tmp + ctx->pendingsize, - PyUnicode_AS_UNICODE(unistr), - Py_UNICODE_SIZE * datalen); - datalen += ctx->pendingsize; - ctx->pendingsize = 0; + Py_CLEAR(ctx->pending); inbuf = inbuf_tmp; } - else - inbuf = (Py_UNICODE *)PyUnicode_AS_UNICODE(unistr); + else { + origpending = NULL; - inbuf_end = inbuf + datalen; + Py_INCREF(unistr); + inbuf = unistr; + } + if (PyUnicode_READY(inbuf) < 0) + goto errorexit; + inpos = 0; + datalen = PyUnicode_GET_LENGTH(inbuf); r = multibytecodec_encode(ctx->codec, &ctx->state, - (const Py_UNICODE **)&inbuf, datalen, - ctx->errors, final ? MBENC_FLUSH | MBENC_RESET : 0); + inbuf, &inpos, + ctx->errors, final ? MBENC_FLUSH | MBENC_RESET : 0); if (r == NULL) { /* recover the original pending buffer */ - if (origpending > 0) - memcpy(ctx->pending, inbuf_tmp, - Py_UNICODE_SIZE * origpending); - ctx->pendingsize = origpending; + Py_CLEAR(ctx->pending); + ctx->pending = origpending; + origpending = NULL; goto errorexit; } + Py_XDECREF(origpending); - if (inbuf < inbuf_end) { - ctx->pendingsize = (Py_ssize_t)(inbuf_end - inbuf); - if (ctx->pendingsize > MAXENCPENDING) { + if (inpos < datalen) { + if (datalen - inpos > MAXENCPENDING) { /* normal codecs can't reach here */ - ctx->pendingsize = 0; PyErr_SetString(PyExc_UnicodeError, "pending buffer overflow"); goto errorexit; } - memcpy(ctx->pending, inbuf, - ctx->pendingsize * Py_UNICODE_SIZE); + ctx->pending = PyUnicode_Substring(inbuf, inpos, datalen); + if (ctx->pending == NULL) { + /* normal codecs can't reach here */ + goto errorexit; + } } - if (inbuf_tmp != NULL) - PyMem_Del(inbuf_tmp); + Py_DECREF(inbuf); Py_XDECREF(ucvt); return r; errorexit: - if (inbuf_tmp != NULL) - PyMem_Del(inbuf_tmp); Py_XDECREF(r); Py_XDECREF(ucvt); + Py_XDECREF(origpending); + Py_XDECREF(inbuf); return NULL; } @@ -859,17 +840,7 @@ decoder_prepare_buffer(MultibyteDecodeBuffer *buf, const char *data, { buf->inbuf = buf->inbuf_top = (const unsigned char *)data; buf->inbuf_end = buf->inbuf_top + size; - if (buf->outobj == NULL) { /* only if outobj is not allocated yet */ - buf->outobj = PyUnicode_FromUnicode(NULL, size); - if (buf->outobj == NULL) - return -1; - buf->outbuf = PyUnicode_AsUnicode(buf->outobj); - if (buf->outbuf == NULL) - return -1; - buf->outbuf_end = buf->outbuf + - PyUnicode_GET_SIZE(buf->outobj); - } - + buf->writer.min_length += size; return 0; } @@ -878,14 +849,13 @@ decoder_feed_buffer(MultibyteStatefulDecoderContext *ctx, MultibyteDecodeBuffer *buf) { while (buf->inbuf < buf->inbuf_end) { - Py_ssize_t inleft, outleft; + Py_ssize_t inleft; Py_ssize_t r; inleft = (Py_ssize_t)(buf->inbuf_end - buf->inbuf); - outleft = (Py_ssize_t)(buf->outbuf_end - buf->outbuf); r = ctx->codec->decode(&ctx->state, ctx->codec->config, - &buf->inbuf, inleft, &buf->outbuf, outleft); + &buf->inbuf, inleft, &buf->writer); if (r == 0 || r == MBERR_TOOFEW) break; else if (multibytecodec_decerror(ctx->codec, &ctx->state, @@ -927,7 +897,7 @@ mbiencoder_reset(MultibyteIncrementalEncoderObject *self) if (r != 0) return NULL; } - self->pendingsize = 0; + Py_CLEAR(self->pending); Py_RETURN_NONE; } @@ -963,7 +933,7 @@ mbiencoder_new(PyTypeObject *type, PyObject *args, PyObject *kwds) } self->codec = ((MultibyteCodecObject *)codec)->codec; - self->pendingsize = 0; + self->pending = NULL; self->errors = internal_error_callback(errors); if (self->errors == NULL) goto errorexit; @@ -1058,8 +1028,9 @@ mbidecoder_decode(MultibyteIncrementalDecoderObject *self, MultibyteDecodeBuffer buf; char *data, *wdata = NULL; Py_buffer pdata; - Py_ssize_t wsize, finalsize = 0, size, origpending; + Py_ssize_t wsize, size, origpending; int final = 0; + PyObject *res; if (!PyArg_ParseTupleAndKeywords(args, kwargs, "y*|i:decode", incrementalkwarglist, &pdata, &final)) @@ -1067,7 +1038,8 @@ mbidecoder_decode(MultibyteIncrementalDecoderObject *self, data = pdata.buf; size = pdata.len; - buf.outobj = buf.excobj = NULL; + _PyUnicodeWriter_Init(&buf.writer); + buf.excobj = NULL; origpending = self->pendingsize; if (self->pendingsize == 0) { @@ -1109,23 +1081,22 @@ mbidecoder_decode(MultibyteIncrementalDecoderObject *self, goto errorexit; } - finalsize = (Py_ssize_t)(buf.outbuf - PyUnicode_AS_UNICODE(buf.outobj)); - if (finalsize != PyUnicode_GET_SIZE(buf.outobj)) - if (PyUnicode_Resize(&buf.outobj, finalsize) == -1) - goto errorexit; + res = _PyUnicodeWriter_Finish(&buf.writer); + if (res == NULL) + goto errorexit; PyBuffer_Release(&pdata); if (wdata != data) PyMem_Del(wdata); Py_XDECREF(buf.excobj); - return buf.outobj; + return res; errorexit: PyBuffer_Release(&pdata); if (wdata != NULL && wdata != data) PyMem_Del(wdata); Py_XDECREF(buf.excobj); - Py_XDECREF(buf.outobj); + _PyUnicodeWriter_Dealloc(&buf.writer); return NULL; } @@ -1265,13 +1236,14 @@ mbstreamreader_iread(MultibyteStreamReaderObject *self, const char *method, Py_ssize_t sizehint) { MultibyteDecodeBuffer buf; - PyObject *cres; - Py_ssize_t rsize, finalsize = 0; + PyObject *cres, *res; + Py_ssize_t rsize; if (sizehint == 0) return PyUnicode_New(0, 0); - buf.outobj = buf.excobj = NULL; + _PyUnicodeWriter_Init(&buf.writer); + buf.excobj = NULL; cres = NULL; for (;;) { @@ -1340,29 +1312,27 @@ mbstreamreader_iread(MultibyteStreamReaderObject *self, goto errorexit; } - finalsize = (Py_ssize_t)(buf.outbuf - - PyUnicode_AS_UNICODE(buf.outobj)); Py_DECREF(cres); cres = NULL; - if (sizehint < 0 || finalsize != 0 || rsize == 0) + if (sizehint < 0 || buf.writer.pos != 0 || rsize == 0) break; sizehint = 1; /* read 1 more byte and retry */ } - if (finalsize != PyUnicode_GET_SIZE(buf.outobj)) - if (PyUnicode_Resize(&buf.outobj, finalsize) == -1) - goto errorexit; + res = _PyUnicodeWriter_Finish(&buf.writer); + if (res == NULL) + goto errorexit; Py_XDECREF(cres); Py_XDECREF(buf.excobj); - return buf.outobj; + return res; errorexit: Py_XDECREF(cres); Py_XDECREF(buf.excobj); - Py_XDECREF(buf.outobj); + _PyUnicodeWriter_Dealloc(&buf.writer); return NULL; } @@ -1649,18 +1619,16 @@ mbstreamwriter_writelines(MultibyteStreamWriterObject *self, PyObject *lines) static PyObject * mbstreamwriter_reset(MultibyteStreamWriterObject *self) { - const Py_UNICODE *pending; PyObject *pwrt; - pending = self->pending; pwrt = multibytecodec_encode(self->codec, &self->state, - &pending, self->pendingsize, self->errors, + self->pending, NULL, self->errors, MBENC_FLUSH | MBENC_RESET); /* some pending buffer can be truncated when UnicodeEncodeError is * raised on 'strict' mode. but, 'reset' method is designed to * reset the pending buffer or states so failed string sequence * ought to be missed */ - self->pendingsize = 0; + Py_CLEAR(self->pending); if (pwrt == NULL) return NULL; @@ -1706,7 +1674,7 @@ mbstreamwriter_new(PyTypeObject *type, PyObject *args, PyObject *kwds) self->codec = ((MultibyteCodecObject *)codec)->codec; self->stream = stream; Py_INCREF(stream); - self->pendingsize = 0; + self->pending = NULL; self->errors = internal_error_callback(errors); if (self->errors == NULL) goto errorexit; diff --git a/Modules/cjkcodecs/multibytecodec.h b/Modules/cjkcodecs/multibytecodec.h index 1b6ef55..3050aeb 100644 --- a/Modules/cjkcodecs/multibytecodec.h +++ b/Modules/cjkcodecs/multibytecodec.h @@ -10,12 +10,6 @@ extern "C" { #endif -#ifdef uint32_t -typedef uint32_t ucs4_t; -#else -typedef unsigned int ucs4_t; -#endif - #ifdef uint16_t typedef uint16_t ucs2_t, DBCHAR; #else @@ -27,13 +21,14 @@ typedef union { int i; unsigned char c[8]; ucs2_t u2[4]; - ucs4_t u4[2]; + Py_UCS4 u4[2]; } MultibyteCodec_State; typedef int (*mbcodec_init)(const void *config); typedef Py_ssize_t (*mbencode_func)(MultibyteCodec_State *state, const void *config, - const Py_UNICODE **inbuf, Py_ssize_t inleft, + int kind, void *data, + Py_ssize_t *inpos, Py_ssize_t inlen, unsigned char **outbuf, Py_ssize_t outleft, int flags); typedef int (*mbencodeinit_func)(MultibyteCodec_State *state, @@ -44,7 +39,7 @@ typedef Py_ssize_t (*mbencodereset_func)(MultibyteCodec_State *state, typedef Py_ssize_t (*mbdecode_func)(MultibyteCodec_State *state, const void *config, const unsigned char **inbuf, Py_ssize_t inleft, - Py_UNICODE **outbuf, Py_ssize_t outleft); + _PyUnicodeWriter *writer); typedef int (*mbdecodeinit_func)(MultibyteCodec_State *state, const void *config); typedef Py_ssize_t (*mbdecodereset_func)(MultibyteCodec_State *state, @@ -81,8 +76,7 @@ typedef struct { #define MAXENCPENDING 2 #define _MultibyteStatefulEncoder_HEAD \ _MultibyteStatefulCodec_HEAD \ - Py_UNICODE pending[MAXENCPENDING]; \ - Py_ssize_t pendingsize; + PyObject *pending; typedef struct { _MultibyteStatefulEncoder_HEAD } MultibyteStatefulEncoderContext; diff --git a/Modules/faulthandler.c b/Modules/faulthandler.c index 7e363f0..f49993d 100644 --- a/Modules/faulthandler.c +++ b/Modules/faulthandler.c @@ -22,7 +22,9 @@ # define FAULTHANDLER_USER #endif -#define PUTS(fd, str) write(fd, str, strlen(str)) +/* cast size_t to int because write() takes an int on Windows + (anyway, the length is smaller than 30 characters) */ +#define PUTS(fd, str) write(fd, str, (int)strlen(str)) #ifdef HAVE_SIGACTION typedef struct sigaction _Py_sighandler_t; @@ -79,9 +81,6 @@ typedef struct { static user_signal_t *user_signals; /* the following macros come from Python: Modules/signalmodule.c */ -#if defined(PYOS_OS2) && !defined(PYCC_GCC) -#define NSIG 12 -#endif #ifndef NSIG # if defined(_NSIG) # define NSIG _NSIG /* For BSD/SysV */ @@ -448,7 +447,7 @@ faulthandler_thread(void *unused) /* get the thread holding the GIL, NULL if no thread hold the GIL */ current = _Py_atomic_load_relaxed(&_PyThreadState_Current); - write(thread.fd, thread.header, thread.header_len); + write(thread.fd, thread.header, (int)thread.header_len); errmsg = _Py_DumpTracebackThreads(thread.fd, thread.interp, current); ok = (errmsg == NULL); diff --git a/Modules/fcntlmodule.c b/Modules/fcntlmodule.c index 6b7e3fc..bc2c181 100644 --- a/Modules/fcntlmodule.c +++ b/Modules/fcntlmodule.c @@ -325,11 +325,6 @@ fcntl_lockf(PyObject *self, PyObject *args) &lenobj, &startobj, &whence)) return NULL; -#if defined(PYOS_OS2) && defined(PYCC_GCC) - PyErr_SetString(PyExc_NotImplementedError, - "lockf not supported on OS/2 (EMX)"); - return NULL; -#else #ifndef LOCK_SH #define LOCK_SH 1 /* shared lock */ #define LOCK_EX 2 /* exclusive lock */ @@ -383,7 +378,6 @@ fcntl_lockf(PyObject *self, PyObject *args) } Py_INCREF(Py_None); return Py_None; -#endif /* defined(PYOS_OS2) && defined(PYCC_GCC) */ } PyDoc_STRVAR(lockf_doc, @@ -467,6 +461,9 @@ all_ins(PyObject* d) #ifdef F_DUPFD if (ins(d, "F_DUPFD", (long)F_DUPFD)) return -1; #endif +#ifdef F_DUPFD_CLOEXEC + if (ins(d, "F_DUPFD_CLOEXEC", (long)F_DUPFD_CLOEXEC)) return -1; +#endif #ifdef F_GETFD if (ins(d, "F_GETFD", (long)F_GETFD)) return -1; #endif diff --git a/Modules/gcmodule.c b/Modules/gcmodule.c index f782dd0..49251cd 100644 --- a/Modules/gcmodule.c +++ b/Modules/gcmodule.c @@ -168,6 +168,18 @@ static Py_ssize_t long_lived_pending = 0; static int debug; static PyObject *tmod = NULL; +/* Running stats per generation */ +struct gc_generation_stats { + /* total number of collections */ + Py_ssize_t collections; + /* total number of collected objects */ + Py_ssize_t collected; + /* total number of uncollectable objects (put into gc.garbage) */ + Py_ssize_t uncollectable; +}; + +static struct gc_generation_stats generation_stats[NUM_GENERATIONS]; + /*-------------------------------------------------------------------------- gc_refs values. @@ -512,10 +524,7 @@ untrack_dicts(PyGC_Head *head) static int has_finalizer(PyObject *op) { - if (PyGen_CheckExact(op)) - return PyGen_NeedsFinalizing((PyGenObject *)op); - else - return op->ob_type->tp_del != NULL; + return op->ob_type->tp_del != NULL; } /* Move the objects in unreachable with __del__ methods into `finalizers`. @@ -852,6 +861,7 @@ collect(int generation, Py_ssize_t *n_collected, Py_ssize_t *n_uncollectable) PyGC_Head finalizers; /* objects with, & reachable from, __del__ */ PyGC_Head *gc; double t1 = 0.0; + struct gc_generation_stats *stats = &generation_stats[generation]; if (debug & DEBUG_STATS) { PySys_WriteStderr("gc: collecting generation %d...\n", @@ -993,10 +1003,14 @@ collect(int generation, Py_ssize_t *n_collected, Py_ssize_t *n_uncollectable) Py_FatalError("unexpected exception during garbage collection"); } + /* Update stats */ if (n_collected) *n_collected = m; if (n_uncollectable) *n_uncollectable = n; + stats->collections++; + stats->collected += m; + stats->uncollectable += n; return n+m; } @@ -1343,6 +1357,52 @@ gc_get_objects(PyObject *self, PyObject *noargs) return result; } +PyDoc_STRVAR(gc_get_stats__doc__, +"get_stats() -> [...]\n" +"\n" +"Return a list of dictionaries containing per-generation statistics.\n"); + +static PyObject * +gc_get_stats(PyObject *self, PyObject *noargs) +{ + int i; + PyObject *result; + struct gc_generation_stats stats[NUM_GENERATIONS], *st; + + /* To get consistent values despite allocations while constructing + the result list, we use a snapshot of the running stats. */ + for (i = 0; i < NUM_GENERATIONS; i++) { + stats[i] = generation_stats[i]; + } + + result = PyList_New(0); + if (result == NULL) + return NULL; + + for (i = 0; i < NUM_GENERATIONS; i++) { + PyObject *dict; + st = &stats[i]; + dict = Py_BuildValue("{snsnsn}", + "collections", st->collections, + "collected", st->collected, + "uncollectable", st->uncollectable + ); + if (dict == NULL) + goto error; + if (PyList_Append(result, dict)) { + Py_DECREF(dict); + goto error; + } + Py_DECREF(dict); + } + return result; + +error: + Py_XDECREF(result); + return NULL; +} + + PyDoc_STRVAR(gc_is_tracked__doc__, "is_tracked(obj) -> bool\n" "\n" @@ -1393,6 +1453,7 @@ static PyMethodDef GcMethods[] = { {"collect", (PyCFunction)gc_collect, METH_VARARGS | METH_KEYWORDS, gc_collect__doc__}, {"get_objects", gc_get_objects,METH_NOARGS, gc_get_objects__doc__}, + {"get_stats", gc_get_stats, METH_NOARGS, gc_get_stats__doc__}, {"is_tracked", gc_is_tracked, METH_O, gc_is_tracked__doc__}, {"get_referrers", gc_get_referrers, METH_VARARGS, gc_get_referrers__doc__}, @@ -1480,8 +1541,9 @@ PyGC_Collect(void) return n; } + void -_PyGC_Fini(void) +_PyGC_DumpShutdownStats(void) { if (!(debug & DEBUG_SAVEALL) && garbage != NULL && PyList_GET_SIZE(garbage) > 0) { @@ -1492,8 +1554,12 @@ _PyGC_Fini(void) else message = "gc: %zd uncollectable objects at " \ "shutdown; use gc.set_debug(gc.DEBUG_UNCOLLECTABLE) to list them"; - if (PyErr_WarnFormat(PyExc_ResourceWarning, 0, message, - PyList_GET_SIZE(garbage)) < 0) + /* PyErr_WarnFormat does too many things and we are at shutdown, + the warnings module's dependencies (e.g. linecache) may be gone + already. */ + if (PyErr_WarnExplicitFormat(PyExc_ResourceWarning, "gc", 0, + "gc", NULL, message, + PyList_GET_SIZE(garbage))) PyErr_WriteUnraisable(NULL); if (debug & DEBUG_UNCOLLECTABLE) { PyObject *repr = NULL, *bytes = NULL; @@ -1502,7 +1568,7 @@ _PyGC_Fini(void) PyErr_WriteUnraisable(garbage); else { PySys_WriteStderr( - " %s\n", + " %s\n", PyBytes_AS_STRING(bytes) ); } @@ -1510,6 +1576,11 @@ _PyGC_Fini(void) Py_XDECREF(bytes); } } +} + +void +_PyGC_Fini(void) +{ Py_CLEAR(callbacks); } diff --git a/Modules/getpath.c b/Modules/getpath.c index b98c520..be164df 100644 --- a/Modules/getpath.c +++ b/Modules/getpath.c @@ -699,13 +699,11 @@ calculate_path(void) */ bufsz = 0; - if (_rtpypath) { + if (_rtpypath && _rtpypath[0] != '\0') { size_t rtpypath_len; rtpypath = _Py_char2wchar(_rtpypath, &rtpypath_len); if (rtpypath != NULL) bufsz += rtpypath_len + 1; - else - _rtpypath = NULL; } defpath = _pythonpath; diff --git a/Modules/hashlib.h b/Modules/hashlib.h index db39cea..7cb6ee5 100644 --- a/Modules/hashlib.h +++ b/Modules/hashlib.h @@ -26,3 +26,36 @@ return NULL; \ } \ } while(0); + +/* + * Helper code to synchronize access to the hash object when the GIL is + * released around a CPU consuming hashlib operation. All code paths that + * access a mutable part of obj must be enclosed in a ENTER_HASHLIB / + * LEAVE_HASHLIB block or explicitly acquire and release the lock inside + * a PY_BEGIN / END_ALLOW_THREADS block if they wish to release the GIL for + * an operation. + */ + +#ifdef WITH_THREAD +#include "pythread.h" + #define ENTER_HASHLIB(obj) \ + if ((obj)->lock) { \ + if (!PyThread_acquire_lock((obj)->lock, 0)) { \ + Py_BEGIN_ALLOW_THREADS \ + PyThread_acquire_lock((obj)->lock, 1); \ + Py_END_ALLOW_THREADS \ + } \ + } + #define LEAVE_HASHLIB(obj) \ + if ((obj)->lock) { \ + PyThread_release_lock((obj)->lock); \ + } +#else + #define ENTER_HASHLIB(obj) + #define LEAVE_HASHLIB(obj) +#endif + +/* TODO(gps): We should probably make this a module or EVPobject attribute + * to allow the user to optimize based on the platform they're using. */ +#define HASHLIB_GIL_MINSIZE 2048 + diff --git a/Modules/main.c b/Modules/main.c index 4d2e03a..2daefb8 100644 --- a/Modules/main.c +++ b/Modules/main.c @@ -22,15 +22,11 @@ #include <crtdbg.h> #endif -#if (defined(PYOS_OS2) && !defined(PYCC_GCC)) || defined(MS_WINDOWS) +#if defined(MS_WINDOWS) #define PYTHONHOMEHELP "<prefix>\\lib" #else -#if defined(PYOS_OS2) && defined(PYCC_GCC) -#define PYTHONHOMEHELP "<prefix>/Lib" -#else #define PYTHONHOMEHELP "<prefix>/pythonX.X" #endif -#endif #include "pygetopt.h" @@ -164,6 +160,32 @@ static void RunStartupFile(PyCompilerFlags *cf) } } +static void RunInteractiveHook(void) +{ + PyObject *sys, *hook, *result; + sys = PyImport_ImportModule("sys"); + if (sys == NULL) + goto error; + hook = PyObject_GetAttrString(sys, "__interactivehook__"); + Py_DECREF(sys); + if (hook == NULL) + PyErr_Clear(); + else { + result = PyObject_CallObject(hook, NULL); + Py_DECREF(hook); + if (result == NULL) + goto error; + else + Py_DECREF(result); + } + return; + +error: + PySys_WriteStderr("Failed calling sys.__interactivehook__\n"); + PyErr_Print(); + PyErr_Clear(); +} + static int RunModule(wchar_t *modname, int set_argv0) { @@ -171,17 +193,20 @@ static int RunModule(wchar_t *modname, int set_argv0) runpy = PyImport_ImportModule("runpy"); if (runpy == NULL) { fprintf(stderr, "Could not import runpy module\n"); + PyErr_Print(); return -1; } runmodule = PyObject_GetAttrString(runpy, "_run_module_as_main"); if (runmodule == NULL) { fprintf(stderr, "Could not access runpy._run_module_as_main\n"); + PyErr_Print(); Py_DECREF(runpy); return -1; } module = PyUnicode_FromWideChar(modname, wcslen(modname)); if (module == NULL) { fprintf(stderr, "Could not convert module name to unicode\n"); + PyErr_Print(); Py_DECREF(runpy); Py_DECREF(runmodule); return -1; @@ -190,6 +215,7 @@ static int RunModule(wchar_t *modname, int set_argv0) if (runargs == NULL) { fprintf(stderr, "Could not create arguments for runpy._run_module_as_main\n"); + PyErr_Print(); Py_DECREF(runpy); Py_DECREF(runmodule); Py_DECREF(module); @@ -690,6 +716,7 @@ Py_Main(int argc, wchar_t **argv) if (filename == NULL && stdin_is_interactive) { Py_InspectFlag = 0; /* do exit on SystemExit */ RunStartupFile(&cf); + RunInteractiveHook(); } /* XXX */ @@ -755,6 +782,7 @@ Py_Main(int argc, wchar_t **argv) if (Py_InspectFlag && stdin_is_interactive && (filename != NULL || command != NULL || module != NULL)) { Py_InspectFlag = 0; + RunInteractiveHook(); /* XXX */ sts = PyRun_AnyFileFlags(stdin, "<stdin>", &cf) != 0; } diff --git a/Modules/md5module.c b/Modules/md5module.c index 12e187c..6e15a20 100644 --- a/Modules/md5module.c +++ b/Modules/md5module.c @@ -246,7 +246,7 @@ md5_process(struct md5_state *md5, const unsigned char *in, Py_ssize_t inlen) } else { n = MIN(inlen, (Py_ssize_t)(MD5_BLOCKSIZE - md5->curlen)); memcpy(md5->buf + md5->curlen, in, (size_t)n); - md5->curlen += n; + md5->curlen += (MD5_INT32)n; in += n; inlen -= n; if (md5->curlen == MD5_BLOCKSIZE) { diff --git a/Modules/posixmodule.c b/Modules/posixmodule.c index 3e5e580..8e84392 100644 --- a/Modules/posixmodule.c +++ b/Modules/posixmodule.c @@ -1,15 +1,12 @@ /* POSIX module implementation */ -/* This file is also used for Windows NT/MS-Win and OS/2. In that case the - module actually calls itself 'nt' or 'os2', not 'posix', and a few +/* This file is also used for Windows NT/MS-Win. In that case the + module actually calls itself 'nt', not 'posix', and a few functions are either unimplemented or implemented differently. The source assumes that for Windows NT, the macro 'MS_WINDOWS' is defined independent of the compiler used. Different compilers define their own feature - test macro, e.g. '__BORLANDC__' or '_MSC_VER'. For OS/2, the compiler - independent macro PYOS_OS2 should be defined. On OS/2 the default - compiler is assumed to be IBM's VisualAge C++ (VACPP). PYCC_GCC is used - as the compiler specific macro for the EMX port of gcc to OS/2. */ + test macro, e.g. '__BORLANDC__' or '_MSC_VER'. */ #ifdef __APPLE__ /* @@ -46,22 +43,6 @@ disguised Unix interface). Refer to the library manual and\n\ corresponding Unix manual entries for more information on calls."); -#if defined(PYOS_OS2) -#error "PEP 11: OS/2 is now unsupported, code will be removed in Python 3.4" -#define INCL_DOS -#define INCL_DOSERRORS -#define INCL_DOSPROCESS -#define INCL_NOPMAPI -#include <os2.h> -#if defined(PYCC_GCC) -#include <ctype.h> -#include <io.h> -#include <stdio.h> -#include <process.h> -#endif -#include "osdefs.h" -#endif - #ifdef HAVE_SYS_UIO_H #include <sys/uio.h> #endif @@ -146,17 +127,10 @@ corresponding Unix manual entries for more information on calls."); /* Various compilers have only certain posix functions */ /* XXX Gosh I wish these were all moved into pyconfig.h */ -#if defined(PYCC_VACPP) && defined(PYOS_OS2) -#include <process.h> -#else #if defined(__WATCOMC__) && !defined(__QNX__) /* Watcom compiler */ #define HAVE_GETCWD 1 #define HAVE_OPENDIR 1 #define HAVE_SYSTEM 1 -#if defined(__OS2__) -#define HAVE_EXECV 1 -#define HAVE_WAIT 1 -#endif #include <process.h> #else #ifdef __BORLANDC__ /* Borland compiler */ @@ -179,8 +153,8 @@ corresponding Unix manual entries for more information on calls."); #define HAVE_FSYNC 1 #define fsync _commit #else -#if defined(PYOS_OS2) && defined(PYCC_GCC) || defined(__VMS) -/* Everything needed is defined in PC/os2emx/pyconfig.h or vms/pyconfig.h */ +#if defined(__VMS) +/* Everything needed is defined in vms/pyconfig.h */ #else /* all other compilers */ /* Unix functions that the configure script doesn't check for */ #define HAVE_EXECV 1 @@ -200,11 +174,10 @@ corresponding Unix manual entries for more information on calls."); #define HAVE_SYSTEM 1 #define HAVE_WAIT 1 #define HAVE_TTYNAME 1 -#endif /* PYOS_OS2 && PYCC_GCC && __VMS */ +#endif /* __VMS */ #endif /* _MSC_VER */ #endif /* __BORLANDC__ */ #endif /* ! __WATCOMC__ || __QNX__ */ -#endif /* ! __IBMC__ */ @@ -335,10 +308,6 @@ static int win32_can_symlink = 0; #endif #endif /* _MSC_VER */ -#if defined(PYCC_VACPP) && defined(PYOS_OS2) -#include <io.h> -#endif /* OS2 */ - #ifndef MAXPATHLEN #if defined(PATH_MAX) && PATH_MAX > 1024 #define MAXPATHLEN PATH_MAX @@ -678,8 +647,8 @@ dir_fd_converter(PyObject *o, void *p) * path_cleanup(). However it is safe to do so.) */ typedef struct { - char *function_name; - char *argument_name; + const char *function_name; + const char *argument_name; int nullable; int allow_fd; wchar_t *wide; @@ -1105,10 +1074,6 @@ convertenviron(void) #else char **e; #endif -#if defined(PYOS_OS2) - APIRET rc; - char buffer[1024]; /* OS/2 Provides a Documented Max of 1024 Chars */ -#endif d = PyDict_New(); if (d == NULL) @@ -1177,20 +1142,6 @@ convertenviron(void) Py_DECREF(v); } #endif -#if defined(PYOS_OS2) - rc = DosQueryExtLIBPATH(buffer, BEGIN_LIBPATH); - if (rc == NO_ERROR) { /* (not a type, envname is NOT 'BEGIN_LIBPATH') */ - PyObject *v = PyBytes_FromString(buffer); - PyDict_SetItemString(d, "BEGINLIBPATH", v); - Py_DECREF(v); - } - rc = DosQueryExtLIBPATH(buffer, END_LIBPATH); - if (rc == NO_ERROR) { /* (not a typo, envname is NOT 'END_LIBPATH') */ - PyObject *v = PyBytes_FromString(buffer); - PyDict_SetItemString(d, "ENDLIBPATH", v); - Py_DECREF(v); - } -#endif return d; } @@ -1201,25 +1152,6 @@ posix_error(void) { return PyErr_SetFromErrno(PyExc_OSError); } -static PyObject * -posix_error_with_filename(char* name) -{ - return PyErr_SetFromErrnoWithFilename(PyExc_OSError, name); -} - - -static PyObject * -posix_error_with_allocated_filename(PyObject* name) -{ - PyObject *name_str, *rc; - name_str = PyUnicode_DecodeFSDefaultAndSize(PyBytes_AsString(name), - PyBytes_GET_SIZE(name)); - Py_DECREF(name); - rc = PyErr_SetFromErrnoWithFilenameObject(PyExc_OSError, - name_str); - Py_XDECREF(name_str); - return rc; -} #ifdef MS_WINDOWS static PyObject * @@ -1238,24 +1170,13 @@ win32_error(char* function, const char* filename) } static PyObject * -win32_error_unicode(char* function, wchar_t* filename) -{ - /* XXX - see win32_error for comments on 'function' */ - errno = GetLastError(); - if (filename) - return PyErr_SetFromWindowsErrWithUnicodeFilename(errno, filename); - else - return PyErr_SetFromWindowsErr(errno); -} - -static PyObject * win32_error_object(char* function, PyObject* filename) { /* XXX - see win32_error for comments on 'function' */ errno = GetLastError(); if (filename) return PyErr_SetExcFromWindowsErrWithFilenameObject( - PyExc_WindowsError, + PyExc_OSError, errno, filename); else @@ -1264,109 +1185,17 @@ win32_error_object(char* function, PyObject* filename) #endif /* MS_WINDOWS */ -/* - * Some functions return Win32 errors, others only ever use posix_error - * (this is for backwards compatibility with exceptions) - */ static PyObject * -path_posix_error(char *function_name, path_t *path) -{ - if (path->narrow) - return posix_error_with_filename(path->narrow); - return posix_error(); -} - -static PyObject * -path_error(char *function_name, path_t *path) +path_error(path_t *path) { #ifdef MS_WINDOWS - if (path->narrow) - return win32_error(function_name, path->narrow); - if (path->wide) - return win32_error_unicode(function_name, path->wide); - return win32_error(function_name, NULL); + return PyErr_SetExcFromWindowsErrWithFilenameObject(PyExc_OSError, + 0, path->object); #else - return path_posix_error(function_name, path); + return PyErr_SetFromErrnoWithFilenameObject(PyExc_OSError, path->object); #endif } -#if defined(PYOS_OS2) -/********************************************************************** - * Helper Function to Trim and Format OS/2 Messages - **********************************************************************/ -static void -os2_formatmsg(char *msgbuf, int msglen, char *reason) -{ - msgbuf[msglen] = '\0'; /* OS/2 Doesn't Guarantee a Terminator */ - - if (strlen(msgbuf) > 0) { /* If Non-Empty Msg, Trim CRLF */ - char *lastc = &msgbuf[ strlen(msgbuf)-1 ]; - - while (lastc > msgbuf && Py_ISSPACE(Py_CHARMASK(*lastc))) - *lastc-- = '\0'; /* Trim Trailing Whitespace (CRLF) */ - } - - /* Add Optional Reason Text */ - if (reason) { - strcat(msgbuf, " : "); - strcat(msgbuf, reason); - } -} - -/********************************************************************** - * Decode an OS/2 Operating System Error Code - * - * A convenience function to lookup an OS/2 error code and return a - * text message we can use to raise a Python exception. - * - * Notes: - * The messages for errors returned from the OS/2 kernel reside in - * the file OSO001.MSG in the \OS2 directory hierarchy. - * - **********************************************************************/ -static char * -os2_strerror(char *msgbuf, int msgbuflen, int errorcode, char *reason) -{ - APIRET rc; - ULONG msglen; - - /* Retrieve Kernel-Related Error Message from OSO001.MSG File */ - Py_BEGIN_ALLOW_THREADS - rc = DosGetMessage(NULL, 0, msgbuf, msgbuflen, - errorcode, "oso001.msg", &msglen); - Py_END_ALLOW_THREADS - - if (rc == NO_ERROR) - os2_formatmsg(msgbuf, msglen, reason); - else - PyOS_snprintf(msgbuf, msgbuflen, - "unknown OS error #%d", errorcode); - - return msgbuf; -} - -/* Set an OS/2-specific error and return NULL. OS/2 kernel - errors are not in a global variable e.g. 'errno' nor are - they congruent with posix error numbers. */ - -static PyObject * -os2_error(int code) -{ - char text[1024]; - PyObject *v; - - os2_strerror(text, sizeof(text), code, ""); - - v = Py_BuildValue("(is)", code, text); - if (v != NULL) { - PyErr_SetObject(PyExc_OSError, v); - Py_DECREF(v); - } - return NULL; /* Signal to Python that an Exception is Pending */ -} - -#endif /* OS2 */ - /* POSIX generic methods */ static PyObject * @@ -1389,65 +1218,31 @@ posix_fildes(PyObject *fdobj, int (*func)(int)) } static PyObject * -posix_1str(PyObject *args, char *format, int (*func)(const char*)) +posix_1str(const char *func_name, PyObject *args, char *format, + int (*func)(const char*)) { - PyObject *opath1 = NULL; - char *path1; + path_t path; int res; + memset(&path, 0, sizeof(path)); + path.function_name = func_name; if (!PyArg_ParseTuple(args, format, - PyUnicode_FSConverter, &opath1)) + path_converter, &path)) return NULL; - path1 = PyBytes_AsString(opath1); Py_BEGIN_ALLOW_THREADS - res = (*func)(path1); + res = (*func)(path.narrow); Py_END_ALLOW_THREADS - if (res < 0) - return posix_error_with_allocated_filename(opath1); - Py_DECREF(opath1); + if (res < 0) { + path_error(&path); + path_cleanup(&path); + return NULL; + } + path_cleanup(&path); Py_INCREF(Py_None); return Py_None; } #ifdef MS_WINDOWS -static PyObject* -win32_1str(PyObject* args, char* func, - char* format, BOOL (__stdcall *funcA)(LPCSTR), - char* wformat, BOOL (__stdcall *funcW)(LPWSTR)) -{ - PyObject *uni; - const char *ansi; - BOOL result; - - if (PyArg_ParseTuple(args, wformat, &uni)) - { - wchar_t *wstr = PyUnicode_AsUnicode(uni); - if (wstr == NULL) - return NULL; - Py_BEGIN_ALLOW_THREADS - result = funcW(wstr); - Py_END_ALLOW_THREADS - if (!result) - return win32_error_object(func, uni); - Py_INCREF(Py_None); - return Py_None; - } - PyErr_Clear(); - - if (!PyArg_ParseTuple(args, format, &ansi)) - return NULL; - if (win32_warn_bytes_api()) - return NULL; - Py_BEGIN_ALLOW_THREADS - result = funcA(ansi); - Py_END_ALLOW_THREADS - if (!result) - return win32_error(func, ansi); - Py_INCREF(Py_None); - return Py_None; - -} - /* This is a reimplementation of the C library's chdir function, but one that produces Win32 errors instead of DOS error codes. chdir is essentially a wrapper around SetCurrentDirectory; however, @@ -1524,13 +1319,13 @@ win32_wchdir(LPCWSTR path) #define HAVE_STAT_NSEC 1 struct win32_stat{ - int st_dev; + unsigned long st_dev; __int64 st_ino; unsigned short st_mode; int st_nlink; int st_uid; int st_gid; - int st_rdev; + unsigned long st_rdev; __int64 st_size; time_t st_atime; int st_atime_nsec; @@ -1589,6 +1384,8 @@ attribute_data_to_stat(BY_HANDLE_FILE_INFORMATION *info, ULONG reparse_tag, stru memset(result, 0, sizeof(*result)); result->st_mode = attributes_to_mode(info->dwFileAttributes); result->st_size = (((__int64)info->nFileSizeHigh)<<32) + info->nFileSizeLow; + result->st_dev = info->dwVolumeSerialNumber; + result->st_rdev = result->st_dev; FILE_TIME_to_time_t_nsec(&info->ftCreationTime, &result->st_ctime, &result->st_ctime_nsec); FILE_TIME_to_time_t_nsec(&info->ftLastWriteTime, &result->st_mtime, &result->st_mtime_nsec); FILE_TIME_to_time_t_nsec(&info->ftLastAccessTime, &result->st_atime, &result->st_atime_nsec); @@ -1651,7 +1448,7 @@ attributes_from_dir_w(LPCWSTR pszFile, BY_HANDLE_FILE_INFORMATION *info, ULONG * } /* Grab GetFinalPathNameByHandle dynamically from kernel32 */ -static int has_GetFinalPathNameByHandle = 0; +static int has_GetFinalPathNameByHandle = -1; static DWORD (CALLBACK *Py_GetFinalPathNameByHandleW)(HANDLE, LPWSTR, DWORD, DWORD); static int @@ -1662,7 +1459,7 @@ check_GetFinalPathNameByHandle() DWORD); /* only recheck */ - if (!has_GetFinalPathNameByHandle) + if (-1 == has_GetFinalPathNameByHandle) { hKernel32 = GetModuleHandleW(L"KERNEL32"); *(FARPROC*)&Py_GetFinalPathNameByHandleA = GetProcAddress(hKernel32, @@ -2289,7 +2086,9 @@ _pystat_fromstructstat(STRUCT_STAT *st) #else PyStructSequence_SET_ITEM(v, 1, PyLong_FromLong((long)st->st_ino)); #endif -#if defined(HAVE_LONG_LONG) && !defined(MS_WINDOWS) +#ifdef MS_WINDOWS + PyStructSequence_SET_ITEM(v, 2, PyLong_FromUnsignedLong(st->st_dev)); +#elif defined(HAVE_LONG_LONG) PyStructSequence_SET_ITEM(v, 2, PyLong_FromLongLong((PY_LONG_LONG)st->st_dev)); #else @@ -2424,8 +2223,9 @@ posix_do_stat(char *function_name, path_t *path, result = STAT(path->narrow, &st); Py_END_ALLOW_THREADS - if (result != 0) - return path_error("stat", path); + if (result != 0) { + return path_error(path); + } return _pystat_fromstructstat(&st); } @@ -2456,6 +2256,7 @@ posix_stat(PyObject *self, PyObject *args, PyObject *kwargs) PyObject *return_value; memset(&path, 0, sizeof(path)); + path.function_name = "stat"; path.allow_fd = 1; if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&|$O&p:stat", keywords, path_converter, &path, @@ -2486,6 +2287,7 @@ posix_lstat(PyObject *self, PyObject *args, PyObject *kwargs) PyObject *return_value; memset(&path, 0, sizeof(path)); + path.function_name = "lstat"; if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&|$O&:lstat", keywords, path_converter, &path, #ifdef HAVE_FSTATAT @@ -2694,6 +2496,7 @@ posix_chdir(PyObject *self, PyObject *args, PyObject *kwargs) static char *keywords[] = {"path", NULL}; memset(&path, 0, sizeof(path)); + path.function_name = "chdir"; #ifdef HAVE_FCHDIR path.allow_fd = 1; #endif @@ -2709,8 +2512,6 @@ posix_chdir(PyObject *self, PyObject *args, PyObject *kwargs) else result = win32_chdir(path.narrow); result = !result; /* on unix, success = 0, on windows, success = !0 */ -#elif defined(PYOS_OS2) && defined(PYCC_GCC) - result = _chdir2(path.narrow); #else #ifdef HAVE_FCHDIR if (path.fd != -1) @@ -2722,7 +2523,7 @@ posix_chdir(PyObject *self, PyObject *args, PyObject *kwargs) Py_END_ALLOW_THREADS if (result) { - return_value = path_error("chdir", &path); + return_value = path_error(&path); goto exit; } @@ -2786,6 +2587,7 @@ posix_chmod(PyObject *self, PyObject *args, PyObject *kwargs) #endif memset(&path, 0, sizeof(path)); + path.function_name = "chmod"; #ifdef HAVE_FCHMOD path.allow_fd = 1; #endif @@ -2826,7 +2628,7 @@ posix_chmod(PyObject *self, PyObject *args, PyObject *kwargs) Py_END_ALLOW_THREADS if (!result) { - return_value = win32_error_object("chmod", path.object); + return_value = path_error(&path); goto exit; } #else /* MS_WINDOWS */ @@ -2880,7 +2682,7 @@ posix_chmod(PyObject *self, PyObject *args, PyObject *kwargs) } else #endif - return_value = path_error("chmod", &path); + return_value = path_error(&path); goto exit; } #endif @@ -2924,20 +2726,23 @@ Equivalent to chmod(path, mode, follow_symlinks=False)."); static PyObject * posix_lchmod(PyObject *self, PyObject *args) { - PyObject *opath; - char *path; + path_t path; int i; int res; - if (!PyArg_ParseTuple(args, "O&i:lchmod", PyUnicode_FSConverter, - &opath, &i)) + memset(&path, 0, sizeof(path)); + path.function_name = "lchmod"; + if (!PyArg_ParseTuple(args, "O&i:lchmod", + path_converter, &path, &i)) return NULL; - path = PyBytes_AsString(opath); Py_BEGIN_ALLOW_THREADS - res = lchmod(path, i); + res = lchmod(path.narrow, i); Py_END_ALLOW_THREADS - if (res < 0) - return posix_error_with_allocated_filename(opath); - Py_DECREF(opath); + if (res < 0) { + path_error(&path); + path_cleanup(&path); + return NULL; + } + path_cleanup(&path); Py_RETURN_NONE; } #endif /* HAVE_LCHMOD */ @@ -2965,6 +2770,7 @@ posix_chflags(PyObject *self, PyObject *args, PyObject *kwargs) static char *keywords[] = {"path", "flags", "follow_symlinks", NULL}; memset(&path, 0, sizeof(path)); + path.function_name = "chflags"; if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&k|$i:chflags", keywords, path_converter, &path, &flags, &follow_symlinks)) @@ -2985,7 +2791,7 @@ posix_chflags(PyObject *self, PyObject *args, PyObject *kwargs) Py_END_ALLOW_THREADS if (result) { - return_value = path_posix_error("chflags", &path); + return_value = path_error(&path); goto exit; } @@ -3008,22 +2814,24 @@ Equivalent to chflags(path, flags, follow_symlinks=False)."); static PyObject * posix_lchflags(PyObject *self, PyObject *args) { - PyObject *opath; - char *path; + path_t path; unsigned long flags; int res; + memset(&path, 0, sizeof(path)); + path.function_name = "lchflags"; if (!PyArg_ParseTuple(args, "O&k:lchflags", - PyUnicode_FSConverter, &opath, &flags)) + path_converter, &path, &flags)) return NULL; - path = PyBytes_AsString(opath); Py_BEGIN_ALLOW_THREADS - res = lchflags(path, flags); + res = lchflags(path.narrow, flags); Py_END_ALLOW_THREADS - if (res < 0) - return posix_error_with_allocated_filename(opath); - Py_DECREF(opath); - Py_INCREF(Py_None); - return Py_None; + if (res < 0) { + path_error(&path); + path_cleanup(&path); + return NULL; + } + path_cleanup(&path); + Py_RETURN_NONE; } #endif /* HAVE_LCHFLAGS */ @@ -3035,7 +2843,7 @@ Change root directory to path."); static PyObject * posix_chroot(PyObject *self, PyObject *args) { - return posix_1str(args, "O&:chroot", chroot); + return posix_1str("chroot", args, "O&:chroot", chroot); } #endif @@ -3117,6 +2925,7 @@ posix_chown(PyObject *self, PyObject *args, PyObject *kwargs) "follow_symlinks", NULL}; memset(&path, 0, sizeof(path)); + path.function_name = "chown"; #ifdef HAVE_FCHOWN path.allow_fd = 1; #endif @@ -3174,7 +2983,7 @@ posix_chown(PyObject *self, PyObject *args, PyObject *kwargs) Py_END_ALLOW_THREADS if (result) { - return_value = path_posix_error("chown", &path); + return_value = path_error(&path); goto exit; } @@ -3223,23 +3032,26 @@ Equivalent to os.chown(path, uid, gid, follow_symlinks=False)."); static PyObject * posix_lchown(PyObject *self, PyObject *args) { - PyObject *opath; - char *path; + path_t path; uid_t uid; gid_t gid; int res; + memset(&path, 0, sizeof(path)); + path.function_name = "lchown"; if (!PyArg_ParseTuple(args, "O&O&O&:lchown", - PyUnicode_FSConverter, &opath, + path_converter, &path, _Py_Uid_Converter, &uid, _Py_Gid_Converter, &gid)) return NULL; - path = PyBytes_AsString(opath); Py_BEGIN_ALLOW_THREADS - res = lchown(path, uid, gid); + res = lchown(path.narrow, uid, gid); Py_END_ALLOW_THREADS - if (res < 0) - return posix_error_with_allocated_filename(opath); - Py_DECREF(opath); + if (res < 0) { + path_error(&path); + path_cleanup(&path); + return NULL; + } + path_cleanup(&path); Py_INCREF(Py_None); return Py_None; } @@ -3275,11 +3087,13 @@ posix_getcwd(int use_bytes) return NULL; } if (!len) { - if (wbuf2 != wbuf) free(wbuf2); - return win32_error("getcwdu", NULL); + if (wbuf2 != wbuf) + free(wbuf2); + return PyErr_SetFromWindowsErr(0); } resobj = PyUnicode_FromWideChar(wbuf2, len); - if (wbuf2 != wbuf) free(wbuf2); + if (wbuf2 != wbuf) + free(wbuf2); return resobj; } @@ -3288,11 +3102,7 @@ posix_getcwd(int use_bytes) #endif Py_BEGIN_ALLOW_THREADS -#if defined(PYOS_OS2) && defined(PYCC_GCC) - res = _getcwd2(buf, sizeof buf); -#else res = getcwd(buf, sizeof buf); -#endif Py_END_ALLOW_THREADS if (res == NULL) return posix_error(); @@ -3359,6 +3169,8 @@ posix_link(PyObject *self, PyObject *args, PyObject *kwargs) memset(&src, 0, sizeof(src)); memset(&dst, 0, sizeof(dst)); + src.function_name = "link"; + dst.function_name = "link"; if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&O&|O&O&p:link", keywords, path_converter, &src, path_converter, &dst, @@ -3389,7 +3201,7 @@ posix_link(PyObject *self, PyObject *args, PyObject *kwargs) Py_END_ALLOW_THREADS if (!result) { - return_value = win32_error_object("link", dst.object); + return_value = path_error(&src); goto exit; } #else @@ -3407,7 +3219,7 @@ posix_link(PyObject *self, PyObject *args, PyObject *kwargs) Py_END_ALLOW_THREADS if (result) { - return_value = path_error("link", &dst); + return_value = path_error(&src); goto exit; } #endif @@ -3437,15 +3249,11 @@ On some platforms, path may also be specified as an open file descriptor;\n\ the file descriptor must refer to a directory.\n\ If this functionality is unavailable, using it raises NotImplementedError."); +#if defined(MS_WINDOWS) && !defined(HAVE_OPENDIR) static PyObject * -posix_listdir(PyObject *self, PyObject *args, PyObject *kwargs) +_listdir_windows_no_opendir(path_t *path, PyObject *list) { - path_t path; - PyObject *list = NULL; static char *keywords[] = {"path", NULL}; - int fd = -1; - -#if defined(MS_WINDOWS) && !defined(HAVE_OPENDIR) PyObject *v; HANDLE hFindFile = INVALID_HANDLE_VALUE; BOOL result; @@ -3456,48 +3264,17 @@ posix_listdir(PyObject *self, PyObject *args, PyObject *kwargs) Py_ssize_t len = sizeof(namebuf)-5; PyObject *po = NULL; wchar_t *wnamebuf = NULL; -#elif defined(PYOS_OS2) -#ifndef MAX_PATH -#define MAX_PATH CCHMAXPATH -#endif - char *pt; - PyObject *v; - char namebuf[MAX_PATH+5]; - HDIR hdir = 1; - ULONG srchcnt = 1; - FILEFINDBUF3 ep; - APIRET rc; -#else - PyObject *v; - DIR *dirp = NULL; - struct dirent *ep; - int return_str; /* if false, return bytes */ -#endif - - memset(&path, 0, sizeof(path)); - path.nullable = 1; -#ifdef HAVE_FDOPENDIR - path.allow_fd = 1; - path.fd = -1; -#endif - if (!PyArg_ParseTupleAndKeywords(args, kwargs, "|O&:listdir", keywords, - path_converter, &path - )) - return NULL; - /* XXX Should redo this putting the (now four) versions of opendir - in separate files instead of having them all here... */ -#if defined(MS_WINDOWS) && !defined(HAVE_OPENDIR) - if (!path.narrow) { + if (!path->narrow) { WIN32_FIND_DATAW wFileData; wchar_t *po_wchars; - if (!path.wide) { /* Default arg: "." */ + if (!path->wide) { /* Default arg: "." */ po_wchars = L"."; len = 1; } else { - po_wchars = path.wide; - len = wcslen(path.wide); + po_wchars = path->wide; + len = wcslen(path->wide); } /* The +5 is so we can append "\\*.*\0" */ wnamebuf = malloc((len + 5) * sizeof(wchar_t)); @@ -3523,8 +3300,7 @@ posix_listdir(PyObject *self, PyObject *args, PyObject *kwargs) if (error == ERROR_FILE_NOT_FOUND) goto exit; Py_DECREF(list); - list = NULL; - win32_error_unicode("FindFirstFileW", wnamebuf); + list = path_error(path); goto exit; } do { @@ -3553,15 +3329,15 @@ posix_listdir(PyObject *self, PyObject *args, PyObject *kwargs) it got to the end of the directory. */ if (!result && GetLastError() != ERROR_NO_MORE_FILES) { Py_DECREF(list); - list = win32_error_unicode("FindNextFileW", wnamebuf); + list = path_error(path); goto exit; } } while (result == TRUE); goto exit; } - strcpy(namebuf, path.narrow); - len = path.length; + strcpy(namebuf, path->narrow); + len = path->length; if (len > 0) { char ch = namebuf[len-1]; if (ch != SEP && ch != ALTSEP && ch != ':') @@ -3580,7 +3356,7 @@ posix_listdir(PyObject *self, PyObject *args, PyObject *kwargs) if (error == ERROR_FILE_NOT_FOUND) goto exit; Py_DECREF(list); - list = win32_error("FindFirstFile", namebuf); + list = path_error(path); goto exit; } do { @@ -3608,7 +3384,7 @@ posix_listdir(PyObject *self, PyObject *args, PyObject *kwargs) it got to the end of the directory. */ if (!result && GetLastError() != ERROR_NO_MORE_FILES) { Py_DECREF(list); - list = win32_error("FindNextFile", namebuf); + list = path_error(path); goto exit; } } while (result == TRUE); @@ -3618,86 +3394,34 @@ exit: if (FindClose(hFindFile) == FALSE) { if (list != NULL) { Py_DECREF(list); - list = win32_error_object("FindClose", path.object); + list = path_error(path); } } } if (wnamebuf) free(wnamebuf); - path_cleanup(&path); return list; +} /* end of _listdir_windows_no_opendir */ -#elif defined(PYOS_OS2) - if (path.length >= MAX_PATH) { - PyErr_SetString(PyExc_ValueError, "path too long"); - goto exit; - } - strcpy(namebuf, path.narrow); - for (pt = namebuf; *pt; pt++) - if (*pt == ALTSEP) - *pt = SEP; - if (namebuf[len-1] != SEP) - namebuf[len++] = SEP; - strcpy(namebuf + len, "*.*"); - - if ((list = PyList_New(0)) == NULL) { - goto exit; - } - - rc = DosFindFirst(namebuf, /* Wildcard Pattern to Match */ - &hdir, /* Handle to Use While Search Directory */ - FILE_READONLY | FILE_HIDDEN | FILE_SYSTEM | FILE_DIRECTORY, - &ep, sizeof(ep), /* Structure to Receive Directory Entry */ - &srchcnt, /* Max and Actual Count of Entries Per Iteration */ - FIL_STANDARD); /* Format of Entry (EAs or Not) */ - - if (rc != NO_ERROR) { - errno = ENOENT; - Py_DECREF(list); - list = posix_error_with_filename(path.narrow); - goto exit; - } - - if (srchcnt > 0) { /* If Directory is NOT Totally Empty, */ - do { - if (ep.achName[0] == '.' - && (ep.achName[1] == '\0' || (ep.achName[1] == '.' && ep.achName[2] == '\0'))) - continue; /* Skip Over "." and ".." Names */ - - strcpy(namebuf, ep.achName); - - /* Leave Case of Name Alone -- In Native Form */ - /* (Removed Forced Lowercasing Code) */ - - v = PyBytes_FromString(namebuf); - if (v == NULL) { - Py_DECREF(list); - list = NULL; - break; - } - if (PyList_Append(list, v) != 0) { - Py_DECREF(v); - Py_DECREF(list); - list = NULL; - break; - } - Py_DECREF(v); - } while (DosFindNext(hdir, &ep, sizeof(ep), &srchcnt) == NO_ERROR && srchcnt > 0); - } +#else /* thus POSIX, ie: not (MS_WINDOWS and not HAVE_OPENDIR) */ -exit: - path_cleanup(&path); +static PyObject * +_posix_listdir(path_t *path, PyObject *list) +{ + int fd = -1; - return list; -#else + PyObject *v; + DIR *dirp = NULL; + struct dirent *ep; + int return_str; /* if false, return bytes */ errno = 0; #ifdef HAVE_FDOPENDIR - if (path.fd != -1) { + if (path->fd != -1) { /* closedir() closes the FD, so we duplicate it */ Py_BEGIN_ALLOW_THREADS - fd = dup(path.fd); + fd = dup(path->fd); Py_END_ALLOW_THREADS if (fd == -1) { @@ -3715,10 +3439,10 @@ exit: #endif { char *name; - if (path.narrow) { - name = path.narrow; + if (path->narrow) { + name = path->narrow; /* only return bytes if they specified a bytes object */ - return_str = !(PyBytes_Check(path.object)); + return_str = !(PyBytes_Check(path->object)); } else { name = "."; @@ -3731,7 +3455,7 @@ exit: } if (dirp == NULL) { - list = path_error("listdir", &path); + list = path_error(path); goto exit; } if ((list = PyList_New(0)) == NULL) { @@ -3747,7 +3471,7 @@ exit: break; } else { Py_DECREF(list); - list = path_error("listdir", &path); + list = path_error(path); goto exit; } } @@ -3780,12 +3504,39 @@ exit: Py_END_ALLOW_THREADS } - path_cleanup(&path); - return list; +} /* end of _posix_listdir */ +#endif /* which OS */ -#endif /* which OS */ -} /* end of posix_listdir */ +static PyObject * +posix_listdir(PyObject *self, PyObject *args, PyObject *kwargs) +{ + path_t path; + PyObject *list = NULL; + static char *keywords[] = {"path", NULL}; + PyObject *return_value; + + memset(&path, 0, sizeof(path)); + path.function_name = "listdir"; + path.nullable = 1; +#ifdef HAVE_FDOPENDIR + path.allow_fd = 1; + path.fd = -1; +#endif + + if (!PyArg_ParseTupleAndKeywords(args, kwargs, "|O&:listdir", keywords, + path_converter, &path)) { + return NULL; + } + +#if defined(MS_WINDOWS) && !defined(HAVE_OPENDIR) + return_value = _listdir_windows_no_opendir(&path, list); +#else + return_value = _posix_listdir(&path, list); +#endif + path_cleanup(&path); + return return_value; +} #ifdef MS_WINDOWS /* A helper function for abspath on win32 */ @@ -3911,31 +3662,6 @@ posix__getfinalpathname(PyObject *self, PyObject *args) } /* end of posix__getfinalpathname */ -static PyObject * -posix__getfileinformation(PyObject *self, PyObject *args) -{ - HANDLE hFile; - BY_HANDLE_FILE_INFORMATION info; - int fd; - - if (!PyArg_ParseTuple(args, "i:_getfileinformation", &fd)) - return NULL; - - if (!_PyVerify_fd(fd)) - return posix_error(); - - hFile = (HANDLE)_get_osfhandle(fd); - if (hFile == INVALID_HANDLE_VALUE) - return posix_error(); - - if (!GetFileInformationByHandle(hFile, &info)) - return win32_error("_getfileinformation", NULL); - - return Py_BuildValue("iii", info.dwVolumeSerialNumber, - info.nFileIndexHigh, - info.nFileIndexLow); -} - PyDoc_STRVAR(posix__isdir__doc__, "Return true if the pathname refers to an existing directory."); @@ -3998,6 +3724,7 @@ posix_mkdir(PyObject *self, PyObject *args, PyObject *kwargs) int result; memset(&path, 0, sizeof(path)); + path.function_name = "mkdir"; if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&|i$O&:mkdir", keywords, path_converter, &path, &mode, #ifdef HAVE_MKDIRAT @@ -4017,7 +3744,7 @@ posix_mkdir(PyObject *self, PyObject *args, PyObject *kwargs) Py_END_ALLOW_THREADS if (!result) { - return_value = win32_error_object("mkdir", path.object); + return_value = path_error(&path); goto exit; } #else @@ -4034,7 +3761,7 @@ posix_mkdir(PyObject *self, PyObject *args, PyObject *kwargs) #endif Py_END_ALLOW_THREADS if (result < 0) { - return_value = path_error("mkdir", &path); + return_value = path_error(&path); goto exit; } #endif @@ -4152,6 +3879,8 @@ internal_rename(PyObject *args, PyObject *kwargs, int is_replace) memset(&src, 0, sizeof(src)); memset(&dst, 0, sizeof(dst)); + src.function_name = function_name; + dst.function_name = function_name; strcpy(format, "O&O&|$O&O&:"); strcat(format, function_name); if (!PyArg_ParseTupleAndKeywords(args, kwargs, format, keywords, @@ -4185,7 +3914,7 @@ internal_rename(PyObject *args, PyObject *kwargs, int is_replace) Py_END_ALLOW_THREADS if (!result) { - return_value = win32_error_object(function_name, dst.object); + return_value = path_error(&src); goto exit; } @@ -4200,7 +3929,7 @@ internal_rename(PyObject *args, PyObject *kwargs, int is_replace) Py_END_ALLOW_THREADS if (result) { - return_value = path_error(function_name, &dst); + return_value = path_error(&src); goto exit; } #endif @@ -4264,6 +3993,7 @@ posix_rmdir(PyObject *self, PyObject *args, PyObject *kwargs) PyObject *return_value = NULL; memset(&path, 0, sizeof(path)); + path.function_name = "rmdir"; if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&|$O&:rmdir", keywords, path_converter, &path, #ifdef HAVE_UNLINKAT @@ -4292,7 +4022,7 @@ posix_rmdir(PyObject *self, PyObject *args, PyObject *kwargs) Py_END_ALLOW_THREADS if (result) { - return_value = path_error("rmdir", &path); + return_value = path_error(&path); goto exit; } @@ -4420,6 +4150,7 @@ posix_unlink(PyObject *self, PyObject *args, PyObject *kwargs) PyObject *return_value = NULL; memset(&path, 0, sizeof(path)); + path.function_name = "unlink"; if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&|$O&:unlink", keywords, path_converter, &path, #ifdef HAVE_UNLINKAT @@ -4448,7 +4179,7 @@ posix_unlink(PyObject *self, PyObject *args, PyObject *kwargs) Py_END_ALLOW_THREADS if (result) { - return_value = path_error("unlink", &path); + return_value = path_error(&path); goto exit; } @@ -4751,6 +4482,7 @@ posix_utime(PyObject *self, PyObject *args, PyObject *kwargs) PyObject *return_value = NULL; memset(&path, 0, sizeof(path)); + path.function_name = "utime"; #if UTIME_HAVE_FD path.allow_fd = 1; #endif @@ -4845,7 +4577,7 @@ posix_utime(PyObject *self, PyObject *args, PyObject *kwargs) FILE_FLAG_BACKUP_SEMANTICS, NULL); Py_END_ALLOW_THREADS if (hFile == INVALID_HANDLE_VALUE) { - win32_error_object("utime", path.object); + path_error(&path); goto exit; } @@ -4854,7 +4586,7 @@ posix_utime(PyObject *self, PyObject *args, PyObject *kwargs) GetSystemTime(&now); if (!SystemTimeToFileTime(&now, &mtime) || !SystemTimeToFileTime(&now, &atime)) { - win32_error("utime", NULL); + PyErr_SetFromWindowsErr(0); goto exit; } } @@ -4867,7 +4599,7 @@ posix_utime(PyObject *self, PyObject *args, PyObject *kwargs) as that may confuse the user into believing that something is wrong with the file, when it also could be the time stamp that gives a problem. */ - win32_error("utime", NULL); + PyErr_SetFromWindowsErr(0); goto exit; } #else /* MS_WINDOWS */ @@ -5001,10 +4733,6 @@ parse_envlist(PyObject* env, Py_ssize_t *envc_ptr) goto error; } -#if defined(PYOS_OS2) - /* Omit Pseudo-Env Vars that Would Confuse Programs if Passed On */ - if (stricmp(k, "BEGINLIBPATH") != 0 && stricmp(k, "ENDLIBPATH") != 0) { -#endif k = PyBytes_AsString(key2); v = PyBytes_AsString(val2); len = PyBytes_GET_SIZE(key2) + PyBytes_GET_SIZE(val2) + 2; @@ -5020,9 +4748,6 @@ parse_envlist(PyObject* env, Py_ssize_t *envc_ptr) envlist[envc++] = p; Py_DECREF(key2); Py_DECREF(val2); -#if defined(PYOS_OS2) - } -#endif } Py_DECREF(vals); Py_DECREF(keys); @@ -5148,6 +4873,7 @@ posix_execve(PyObject *self, PyObject *args, PyObject *kwargs) like posix.environ. */ memset(&path, 0, sizeof(path)); + path.function_name = "execve"; #ifdef HAVE_FEXECVE path.allow_fd = 1; #endif @@ -5187,7 +4913,7 @@ posix_execve(PyObject *self, PyObject *args, PyObject *kwargs) /* If we get here it's definitely an error */ - path_posix_error("execve", &path); + path_error(&path); while (--envc >= 0) PyMem_DEL(envlist[envc]); @@ -5263,18 +4989,12 @@ posix_spawnv(PyObject *self, PyObject *args) } argvlist[argc] = NULL; -#if defined(PYOS_OS2) && defined(PYCC_GCC) - Py_BEGIN_ALLOW_THREADS - spawnval = spawnv(mode, path, argvlist); - Py_END_ALLOW_THREADS -#else if (mode == _OLD_P_OVERLAY) mode = _P_OVERLAY; Py_BEGIN_ALLOW_THREADS spawnval = _spawnv(mode, path, argvlist); Py_END_ALLOW_THREADS -#endif free_string_array(argvlist, argc); Py_DECREF(opath); @@ -5362,18 +5082,12 @@ posix_spawnve(PyObject *self, PyObject *args) if (envlist == NULL) goto fail_1; -#if defined(PYOS_OS2) && defined(PYCC_GCC) - Py_BEGIN_ALLOW_THREADS - spawnval = spawnve(mode, path, argvlist, envlist); - Py_END_ALLOW_THREADS -#else if (mode == _OLD_P_OVERLAY) mode = _P_OVERLAY; Py_BEGIN_ALLOW_THREADS spawnval = _spawnve(mode, path, argvlist, envlist); Py_END_ALLOW_THREADS -#endif if (spawnval == -1) (void) posix_error(); @@ -5394,183 +5108,6 @@ posix_spawnve(PyObject *self, PyObject *args) return res; } -/* OS/2 supports spawnvp & spawnvpe natively */ -#if defined(PYOS_OS2) -PyDoc_STRVAR(posix_spawnvp__doc__, -"spawnvp(mode, file, args)\n\n\ -Execute the program 'file' in a new process, using the environment\n\ -search path to find the file.\n\ -\n\ - mode: mode of process creation\n\ - file: executable file name\n\ - args: tuple or list of strings"); - -static PyObject * -posix_spawnvp(PyObject *self, PyObject *args) -{ - PyObject *opath; - char *path; - PyObject *argv; - char **argvlist; - int mode, i, argc; - Py_intptr_t spawnval; - PyObject *(*getitem)(PyObject *, Py_ssize_t); - - /* spawnvp has three arguments: (mode, path, argv), where - argv is a list or tuple of strings. */ - - if (!PyArg_ParseTuple(args, "iO&O:spawnvp", &mode, - PyUnicode_FSConverter, - &opath, &argv)) - return NULL; - path = PyBytes_AsString(opath); - if (PyList_Check(argv)) { - argc = PyList_Size(argv); - getitem = PyList_GetItem; - } - else if (PyTuple_Check(argv)) { - argc = PyTuple_Size(argv); - getitem = PyTuple_GetItem; - } - else { - PyErr_SetString(PyExc_TypeError, - "spawnvp() arg 2 must be a tuple or list"); - Py_DECREF(opath); - return NULL; - } - - argvlist = PyMem_NEW(char *, argc+1); - if (argvlist == NULL) { - Py_DECREF(opath); - return PyErr_NoMemory(); - } - for (i = 0; i < argc; i++) { - if (!fsconvert_strdup((*getitem)(argv, i), - &argvlist[i])) { - free_string_array(argvlist, i); - PyErr_SetString( - PyExc_TypeError, - "spawnvp() arg 2 must contain only strings"); - Py_DECREF(opath); - return NULL; - } - } - argvlist[argc] = NULL; - - Py_BEGIN_ALLOW_THREADS -#if defined(PYCC_GCC) - spawnval = spawnvp(mode, path, argvlist); -#else - spawnval = _spawnvp(mode, path, argvlist); -#endif - Py_END_ALLOW_THREADS - - free_string_array(argvlist, argc); - Py_DECREF(opath); - - if (spawnval == -1) - return posix_error(); - else - return Py_BuildValue("l", (long) spawnval); -} - - -PyDoc_STRVAR(posix_spawnvpe__doc__, -"spawnvpe(mode, file, args, env)\n\n\ -Execute the program 'file' in a new process, using the environment\n\ -search path to find the file.\n\ -\n\ - mode: mode of process creation\n\ - file: executable file name\n\ - args: tuple or list of arguments\n\ - env: dictionary of strings mapping to strings"); - -static PyObject * -posix_spawnvpe(PyObject *self, PyObject *args) -{ - PyObject *opath; - char *path; - PyObject *argv, *env; - char **argvlist; - char **envlist; - PyObject *res=NULL; - int mode; - Py_ssize_t argc, i, envc; - Py_intptr_t spawnval; - PyObject *(*getitem)(PyObject *, Py_ssize_t); - int lastarg = 0; - - /* spawnvpe has four arguments: (mode, path, argv, env), where - argv is a list or tuple of strings and env is a dictionary - like posix.environ. */ - - if (!PyArg_ParseTuple(args, "ietOO:spawnvpe", &mode, - PyUnicode_FSConverter, - &opath, &argv, &env)) - return NULL; - path = PyBytes_AsString(opath); - if (PyList_Check(argv)) { - argc = PyList_Size(argv); - getitem = PyList_GetItem; - } - else if (PyTuple_Check(argv)) { - argc = PyTuple_Size(argv); - getitem = PyTuple_GetItem; - } - else { - PyErr_SetString(PyExc_TypeError, - "spawnvpe() arg 2 must be a tuple or list"); - goto fail_0; - } - if (!PyMapping_Check(env)) { - PyErr_SetString(PyExc_TypeError, - "spawnvpe() arg 3 must be a mapping object"); - goto fail_0; - } - - argvlist = PyMem_NEW(char *, argc+1); - if (argvlist == NULL) { - PyErr_NoMemory(); - goto fail_0; - } - for (i = 0; i < argc; i++) { - if (!fsconvert_strdup((*getitem)(argv, i), - &argvlist[i])) - { - lastarg = i; - goto fail_1; - } - } - lastarg = argc; - argvlist[argc] = NULL; - - envlist = parse_envlist(env, &envc); - if (envlist == NULL) - goto fail_1; - - Py_BEGIN_ALLOW_THREADS -#if defined(PYCC_GCC) - spawnval = spawnvpe(mode, path, argvlist, envlist); -#else - spawnval = _spawnvpe(mode, path, argvlist, envlist); -#endif - Py_END_ALLOW_THREADS - - if (spawnval == -1) - (void) posix_error(); - else - res = Py_BuildValue("l", (long) spawnval); - - while (--envc >= 0) - PyMem_DEL(envlist[envc]); - PyMem_DEL(envlist); - fail_1: - free_string_array(argvlist, lastarg); - fail_0: - Py_DECREF(opath); - return res; -} -#endif /* PYOS_OS2 */ #endif /* HAVE_SPAWNV */ @@ -6590,23 +6127,8 @@ posix_kill(PyObject *self, PyObject *args) int sig; if (!PyArg_ParseTuple(args, _Py_PARSE_PID "i:kill", &pid, &sig)) return NULL; -#if defined(PYOS_OS2) && !defined(PYCC_GCC) - if (sig == XCPT_SIGNAL_INTR || sig == XCPT_SIGNAL_BREAK) { - APIRET rc; - if ((rc = DosSendSignalException(pid, sig)) != NO_ERROR) - return os2_error(rc); - - } else if (sig == XCPT_SIGNAL_KILLPROC) { - APIRET rc; - if ((rc = DosKillProcess(DKP_PROCESS, pid)) != NO_ERROR) - return os2_error(rc); - - } else - return NULL; /* Unrecognized Signal Requested */ -#else if (kill(pid, sig) == -1) return posix_error(); -#endif Py_INCREF(Py_None); return Py_None; } @@ -7129,6 +6651,7 @@ posix_readlink(PyObject *self, PyObject *args, PyObject *kwargs) static char *keywords[] = {"path", "dir_fd", NULL}; memset(&path, 0, sizeof(path)); + path.function_name = "readlink"; if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&|$O&:readlink", keywords, path_converter, &path, #ifdef HAVE_READLINKAT @@ -7149,7 +6672,7 @@ posix_readlink(PyObject *self, PyObject *args, PyObject *kwargs) Py_END_ALLOW_THREADS if (length < 0) { - return_value = path_posix_error("readlink", &path); + return_value = path_error(&path); goto exit; } @@ -7219,8 +6742,10 @@ posix_symlink(PyObject *self, PyObject *args, PyObject *kwargs) #endif memset(&src, 0, sizeof(src)); + src.function_name = "symlink"; src.argument_name = "src"; memset(&dst, 0, sizeof(dst)); + dst.function_name = "symlink"; dst.argument_name = "dst"; #ifdef MS_WINDOWS @@ -7266,7 +6791,7 @@ posix_symlink(PyObject *self, PyObject *args, PyObject *kwargs) Py_END_ALLOW_THREADS if (!result) { - return_value = win32_error_object("symlink", src.object); + return_value = path_error(&src); goto exit; } @@ -7282,7 +6807,7 @@ posix_symlink(PyObject *self, PyObject *args, PyObject *kwargs) Py_END_ALLOW_THREADS if (result) { - return_value = path_error("symlink", &dst); + return_value = path_error(&src); goto exit; } #endif @@ -7444,31 +6969,7 @@ Return an object containing floating point numbers indicating process\n\ times. The object behaves like a named tuple with these fields:\n\ (utime, stime, cutime, cstime, elapsed_time)"); -#if defined(PYCC_VACPP) && defined(PYOS_OS2) -static long -system_uptime(void) -{ - ULONG value = 0; - - Py_BEGIN_ALLOW_THREADS - DosQuerySysInfo(QSV_MS_COUNT, QSV_MS_COUNT, &value, sizeof(value)); - Py_END_ALLOW_THREADS - - return value; -} - -static PyObject * -posix_times(PyObject *self, PyObject *noargs) -{ - /* Currently Only Uptime is Provided -- Others Later */ - return build_times_result( - (double)0 /* t.tms_utime / HZ */, - (double)0 /* t.tms_stime / HZ */, - (double)0 /* t.tms_cutime / HZ */, - (double)0 /* t.tms_cstime / HZ */, - (double)system_uptime() / 1000); -} -#elif defined(MS_WINDOWS) +#if defined(MS_WINDOWS) static PyObject * posix_times(PyObject *self, PyObject *noargs) { @@ -7490,7 +6991,7 @@ posix_times(PyObject *self, PyObject *noargs) (double)0, (double)0); } -#else /* Neither Windows nor OS/2 */ +#else /* Not Windows */ #define NEED_TICKS_PER_SECOND static long ticks_per_second = -1; static PyObject * @@ -7631,6 +7132,7 @@ posix_open(PyObject *self, PyObject *args, PyObject *kwargs) static char *keywords[] = {"path", "flags", "mode", "dir_fd", NULL}; memset(&path, 0, sizeof(path)); + path.function_name = "open"; if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&i|i$O&:open", keywords, path_converter, &path, &flags, &mode, @@ -7657,13 +7159,7 @@ posix_open(PyObject *self, PyObject *args, PyObject *kwargs) Py_END_ALLOW_THREADS if (fd == -1) { -#ifdef MS_WINDOWS - /* force use of posix_error here for exact backwards compatibility */ - if (path.wide) - return_value = posix_error(); - else -#endif - return_value = path_error("open", &path); + PyErr_SetFromErrnoWithFilenameObject(PyExc_OSError, path.object); goto exit; } @@ -8201,7 +7697,7 @@ posix_fstat(PyObject *self, PyObject *args) Py_END_ALLOW_THREADS if (res != 0) { #ifdef MS_WINDOWS - return win32_error("fstat", NULL); + return PyErr_SetFromWindowsErr(0); #else return posix_error(); #endif @@ -8234,16 +7730,6 @@ Create a pipe."); static PyObject * posix_pipe(PyObject *self, PyObject *noargs) { -#if defined(PYOS_OS2) - HFILE read, write; - APIRET rc; - - rc = DosCreatePipe( &read, &write, 4096); - if (rc != NO_ERROR) - return os2_error(rc); - - return Py_BuildValue("(ii)", read, write); -#else #if !defined(MS_WINDOWS) int fds[2]; int res; @@ -8257,12 +7743,11 @@ posix_pipe(PyObject *self, PyObject *noargs) BOOL ok; ok = CreatePipe(&read, &write, NULL, 0); if (!ok) - return win32_error("CreatePipe", NULL); + return PyErr_SetFromWindowsErr(0); read_fd = _open_osfhandle((Py_intptr_t)read, 0); write_fd = _open_osfhandle((Py_intptr_t)write, 1); return Py_BuildValue("(ii)", read_fd, write_fd); #endif /* MS_WINDOWS */ -#endif } #endif /* HAVE_PIPE */ @@ -8561,6 +8046,7 @@ posix_truncate(PyObject *self, PyObject *args, PyObject *kwargs) static char *keywords[] = {"path", "length", NULL}; memset(&path, 0, sizeof(path)); + path.function_name = "truncate"; #ifdef HAVE_FTRUNCATE path.allow_fd = 1; #endif @@ -8578,7 +8064,7 @@ posix_truncate(PyObject *self, PyObject *args, PyObject *kwargs) res = truncate(path.narrow, length); Py_END_ALLOW_THREADS if (res < 0) - result = path_posix_error("truncate", &path); + result = path_error(&path); else { Py_INCREF(Py_None); result = Py_None; @@ -9050,6 +8536,7 @@ posix_statvfs(PyObject *self, PyObject *args, PyObject *kwargs) struct statvfs st; memset(&path, 0, sizeof(path)); + path.function_name = "statvfs"; #ifdef HAVE_FSTATVFS path.allow_fd = 1; #endif @@ -9076,7 +8563,7 @@ posix_statvfs(PyObject *self, PyObject *args, PyObject *kwargs) Py_END_ALLOW_THREADS if (result) { - return_value = path_posix_error("statvfs", &path); + return_value = path_error(&path); goto exit; } @@ -9313,6 +8800,7 @@ posix_pathconf(PyObject *self, PyObject *args, PyObject *kwargs) static char *keywords[] = {"path", "name", NULL}; memset(&path, 0, sizeof(path)); + path.function_name = "pathconf"; #ifdef HAVE_FPATHCONF path.allow_fd = 1; #endif @@ -9333,7 +8821,7 @@ posix_pathconf(PyObject *self, PyObject *args, PyObject *kwargs) /* could be a path or name problem */ posix_error(); else - result = path_posix_error("pathconf", &path); + result = path_error(&path); } else result = PyLong_FromLong(limit); @@ -10392,6 +9880,8 @@ posix_getxattr(PyObject *self, PyObject *args, PyObject *kwargs) memset(&path, 0, sizeof(path)); memset(&attribute, 0, sizeof(attribute)); + path.function_name = "getxattr"; + attribute.function_name = "getxattr"; path.allow_fd = 1; if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&O&|$p:getxattr", keywords, path_converter, &path, @@ -10408,7 +9898,7 @@ posix_getxattr(PyObject *self, PyObject *args, PyObject *kwargs) static Py_ssize_t buffer_sizes[] = {128, XATTR_SIZE_MAX, 0}; Py_ssize_t buffer_size = buffer_sizes[i]; if (!buffer_size) { - path_error("getxattr", &path); + path_error(&path); goto exit; } buffer = PyBytes_FromStringAndSize(NULL, buffer_size); @@ -10430,7 +9920,7 @@ posix_getxattr(PyObject *self, PyObject *args, PyObject *kwargs) buffer = NULL; if (errno == ERANGE) continue; - path_error("getxattr", &path); + path_error(&path); goto exit; } @@ -10469,6 +9959,7 @@ posix_setxattr(PyObject *self, PyObject *args, PyObject *kwargs) "flags", "follow_symlinks", NULL}; memset(&path, 0, sizeof(path)); + path.function_name = "setxattr"; path.allow_fd = 1; memset(&attribute, 0, sizeof(attribute)); memset(&value, 0, sizeof(value)); @@ -10496,7 +9987,7 @@ posix_setxattr(PyObject *self, PyObject *args, PyObject *kwargs) Py_END_ALLOW_THREADS; if (result) { - return_value = path_error("setxattr", &path); + return_value = path_error(&path); goto exit; } @@ -10530,7 +10021,9 @@ posix_removexattr(PyObject *self, PyObject *args, PyObject *kwargs) static char *keywords[] = {"path", "attribute", "follow_symlinks", NULL}; memset(&path, 0, sizeof(path)); + path.function_name = "removexattr"; memset(&attribute, 0, sizeof(attribute)); + attribute.function_name = "removexattr"; path.allow_fd = 1; if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&O&|$p:removexattr", keywords, @@ -10552,7 +10045,7 @@ posix_removexattr(PyObject *self, PyObject *args, PyObject *kwargs) Py_END_ALLOW_THREADS; if (result) { - return_value = path_error("removexattr", &path); + return_value = path_error(&path); goto exit; } @@ -10588,6 +10081,7 @@ posix_listxattr(PyObject *self, PyObject *args, PyObject *kwargs) static char *keywords[] = {"path", "follow_symlinks", NULL}; memset(&path, 0, sizeof(path)); + path.function_name = "listxattr"; path.allow_fd = 1; path.fd = -1; if (!PyArg_ParseTupleAndKeywords(args, kwargs, "|O&$p:listxattr", keywords, @@ -10606,7 +10100,7 @@ posix_listxattr(PyObject *self, PyObject *args, PyObject *kwargs) Py_ssize_t buffer_size = buffer_sizes[i]; if (!buffer_size) { /* ERANGE */ - path_error("listxattr", &path); + path_error(&path); break; } buffer = PyMem_MALLOC(buffer_size); @@ -10629,7 +10123,7 @@ posix_listxattr(PyObject *self, PyObject *args, PyObject *kwargs) PyMem_FREE(buffer); continue; } - path_error("listxattr", &path); + path_error(&path); break; } @@ -10937,10 +10431,6 @@ static PyMethodDef posix_methods[] = { #ifdef HAVE_SPAWNV {"spawnv", posix_spawnv, METH_VARARGS, posix_spawnv__doc__}, {"spawnve", posix_spawnve, METH_VARARGS, posix_spawnve__doc__}, -#if defined(PYOS_OS2) - {"spawnvp", posix_spawnvp, METH_VARARGS, posix_spawnvp__doc__}, - {"spawnvpe", posix_spawnvpe, METH_VARARGS, posix_spawnvpe__doc__}, -#endif /* PYOS_OS2 */ #endif /* HAVE_SPAWNV */ #ifdef HAVE_FORK1 {"fork1", posix_fork1, METH_NOARGS, posix_fork1__doc__}, @@ -11219,7 +10709,6 @@ static PyMethodDef posix_methods[] = { #ifdef MS_WINDOWS {"_getfullpathname", posix__getfullpathname, METH_VARARGS, NULL}, {"_getfinalpathname", posix__getfinalpathname, METH_VARARGS, NULL}, - {"_getfileinformation", posix__getfileinformation, METH_VARARGS, NULL}, {"_isdir", posix__isdir, METH_VARARGS, posix__isdir__doc__}, {"_getdiskusage", win32__getdiskusage, METH_VARARGS, win32__getdiskusage__doc__}, #endif @@ -11267,59 +10756,6 @@ ins(PyObject *module, char *symbol, long value) return PyModule_AddIntConstant(module, symbol, value); } -#if defined(PYOS_OS2) -/* Insert Platform-Specific Constant Values (Strings & Numbers) of Common Use */ -static int insertvalues(PyObject *module) -{ - APIRET rc; - ULONG values[QSV_MAX+1]; - PyObject *v; - char *ver, tmp[50]; - - Py_BEGIN_ALLOW_THREADS - rc = DosQuerySysInfo(1L, QSV_MAX, &values[1], sizeof(ULONG) * QSV_MAX); - Py_END_ALLOW_THREADS - - if (rc != NO_ERROR) { - os2_error(rc); - return -1; - } - - if (ins(module, "meminstalled", values[QSV_TOTPHYSMEM])) return -1; - if (ins(module, "memkernel", values[QSV_TOTRESMEM])) return -1; - if (ins(module, "memvirtual", values[QSV_TOTAVAILMEM])) return -1; - if (ins(module, "maxpathlen", values[QSV_MAX_PATH_LENGTH])) return -1; - if (ins(module, "maxnamelen", values[QSV_MAX_COMP_LENGTH])) return -1; - if (ins(module, "revision", values[QSV_VERSION_REVISION])) return -1; - if (ins(module, "timeslice", values[QSV_MIN_SLICE])) return -1; - - switch (values[QSV_VERSION_MINOR]) { - case 0: ver = "2.00"; break; - case 10: ver = "2.10"; break; - case 11: ver = "2.11"; break; - case 30: ver = "3.00"; break; - case 40: ver = "4.00"; break; - case 50: ver = "5.00"; break; - default: - PyOS_snprintf(tmp, sizeof(tmp), - "%d-%d", values[QSV_VERSION_MAJOR], - values[QSV_VERSION_MINOR]); - ver = &tmp[0]; - } - - /* Add Indicator of the Version of the Operating System */ - if (PyModule_AddStringConstant(module, "version", tmp) < 0) - return -1; - - /* Add Indicator of Which Drive was Used to Boot the System */ - tmp[0] = 'A' + values[QSV_BOOT_DRIVE] - 1; - tmp[1] = ':'; - tmp[2] = '\0'; - - return PyModule_AddStringConstant(module, "bootdrive", tmp); -} -#endif - #if defined(HAVE_SYMLINK) && defined(MS_WINDOWS) static int enable_symlink() @@ -11442,6 +10878,9 @@ all_ins(PyObject *d) #ifdef O_SEARCH if (ins(d, "O_SEARCH", (long)O_SEARCH)) return -1; #endif +#ifdef O_PATH + if (ins(d, "O_PATH", (long)O_PATH)) return -1; +#endif #ifdef O_TTY_INIT if (ins(d, "O_TTY_INIT", (long)O_TTY_INIT)) return -1; #endif @@ -11654,35 +11093,12 @@ all_ins(PyObject *d) #endif #ifdef HAVE_SPAWNV -#if defined(PYOS_OS2) && defined(PYCC_GCC) - if (ins(d, "P_WAIT", (long)P_WAIT)) return -1; - if (ins(d, "P_NOWAIT", (long)P_NOWAIT)) return -1; - if (ins(d, "P_OVERLAY", (long)P_OVERLAY)) return -1; - if (ins(d, "P_DEBUG", (long)P_DEBUG)) return -1; - if (ins(d, "P_SESSION", (long)P_SESSION)) return -1; - if (ins(d, "P_DETACH", (long)P_DETACH)) return -1; - if (ins(d, "P_PM", (long)P_PM)) return -1; - if (ins(d, "P_DEFAULT", (long)P_DEFAULT)) return -1; - if (ins(d, "P_MINIMIZE", (long)P_MINIMIZE)) return -1; - if (ins(d, "P_MAXIMIZE", (long)P_MAXIMIZE)) return -1; - if (ins(d, "P_FULLSCREEN", (long)P_FULLSCREEN)) return -1; - if (ins(d, "P_WINDOWED", (long)P_WINDOWED)) return -1; - if (ins(d, "P_FOREGROUND", (long)P_FOREGROUND)) return -1; - if (ins(d, "P_BACKGROUND", (long)P_BACKGROUND)) return -1; - if (ins(d, "P_NOCLOSE", (long)P_NOCLOSE)) return -1; - if (ins(d, "P_NOSESSION", (long)P_NOSESSION)) return -1; - if (ins(d, "P_QUOTE", (long)P_QUOTE)) return -1; - if (ins(d, "P_TILDE", (long)P_TILDE)) return -1; - if (ins(d, "P_UNRELATED", (long)P_UNRELATED)) return -1; - if (ins(d, "P_DEBUGDESC", (long)P_DEBUGDESC)) return -1; -#else if (ins(d, "P_WAIT", (long)_P_WAIT)) return -1; if (ins(d, "P_NOWAIT", (long)_P_NOWAIT)) return -1; if (ins(d, "P_OVERLAY", (long)_OLD_P_OVERLAY)) return -1; if (ins(d, "P_NOWAITO", (long)_P_NOWAITO)) return -1; if (ins(d, "P_DETACH", (long)_P_DETACH)) return -1; #endif -#endif #ifdef HAVE_SCHED_H if (ins(d, "SCHED_OTHER", (long)SCHED_OTHER)) return -1; @@ -11742,9 +11158,6 @@ all_ins(PyObject *d) if (PyModule_AddIntMacro(d, RTLD_DEEPBIND)) return -1; #endif -#if defined(PYOS_OS2) - if (insertvalues(d)) return -1; -#endif return 0; } @@ -11753,10 +11166,6 @@ all_ins(PyObject *d) #define INITFUNC PyInit_nt #define MODNAME "nt" -#elif defined(PYOS_OS2) -#define INITFUNC PyInit_os2 -#define MODNAME "os2" - #else #define INITFUNC PyInit_posix #define MODNAME "posix" diff --git a/Modules/pwdmodule.c b/Modules/pwdmodule.c index 285fd9c..d4ef733 100644 --- a/Modules/pwdmodule.c +++ b/Modules/pwdmodule.c @@ -168,12 +168,8 @@ pwd_getpwall(PyObject *self) struct passwd *p; if ((d = PyList_New(0)) == NULL) return NULL; -#if defined(PYOS_OS2) && defined(PYCC_GCC) - if ((p = getpwuid(0)) != NULL) { -#else setpwent(); while ((p = getpwent()) != NULL) { -#endif PyObject *v = mkpwent(p); if (v == NULL || PyList_Append(d, v) != 0) { Py_XDECREF(v); diff --git a/Modules/readline.c b/Modules/readline.c index 71c2423..5a14b59 100644 --- a/Modules/readline.c +++ b/Modules/readline.c @@ -913,10 +913,6 @@ setup_readline(void) using_history(); rl_readline_name = "python"; -#if defined(PYOS_OS2) && defined(PYCC_GCC) - /* Allow $if term= in .inputrc to work */ - rl_terminal_name = getenv("TERM"); -#endif /* Force rebind of TAB to insert-tab */ rl_bind_key('\t', rl_insert); /* Bind both ESC-TAB and ESC-ESC to the completion function */ diff --git a/Modules/selectmodule.c b/Modules/selectmodule.c index 2ca2d41..10d043b 100644 --- a/Modules/selectmodule.c +++ b/Modules/selectmodule.c @@ -47,11 +47,6 @@ extern void bzero(void *, int); #include <sys/types.h> #endif -#if defined(PYOS_OS2) && !defined(PYCC_GCC) -#include <sys/time.h> -#include <utils.h> -#endif - #ifdef MS_WINDOWS # define WIN32_LEAN_AND_MEAN # include <winsock.h> @@ -1403,6 +1398,24 @@ Wait for events on the epoll file descriptor for a maximum time of timeout\n\ in seconds (as float). -1 makes poll wait indefinitely.\n\ Up to maxevents are returned to the caller."); +static PyObject * +pyepoll_enter(pyEpoll_Object *self, PyObject *args) +{ + if (self->epfd < 0) + return pyepoll_err_closed(); + + Py_INCREF(self); + return (PyObject *)self; +} + +static PyObject * +pyepoll_exit(PyObject *self, PyObject *args) +{ + _Py_IDENTIFIER(close); + + return _PyObject_CallMethodId(self, &PyId_close, NULL); +} + static PyMethodDef pyepoll_methods[] = { {"fromfd", (PyCFunction)pyepoll_fromfd, METH_VARARGS | METH_CLASS, pyepoll_fromfd_doc}, @@ -1418,6 +1431,10 @@ static PyMethodDef pyepoll_methods[] = { METH_VARARGS | METH_KEYWORDS, pyepoll_unregister_doc}, {"poll", (PyCFunction)pyepoll_poll, METH_VARARGS | METH_KEYWORDS, pyepoll_poll_doc}, + {"__enter__", (PyCFunction)pyepoll_enter, METH_NOARGS, + NULL}, + {"__exit__", (PyCFunction)pyepoll_exit, METH_VARARGS, + NULL}, {NULL, NULL}, }; diff --git a/Modules/sha1module.c b/Modules/sha1module.c index f824bb3..d39f192 100644 --- a/Modules/sha1module.c +++ b/Modules/sha1module.c @@ -222,7 +222,7 @@ sha1_process(struct sha1_state *sha1, } else { n = MIN(inlen, (Py_ssize_t)(SHA1_BLOCKSIZE - sha1->curlen)); memcpy(sha1->buf + sha1->curlen, in, (size_t)n); - sha1->curlen += n; + sha1->curlen += (SHA1_INT32)n; in += n; inlen -= n; if (sha1->curlen == SHA1_BLOCKSIZE) { diff --git a/Modules/sha256module.c b/Modules/sha256module.c index 9f6b416..767bfac 100644 --- a/Modules/sha256module.c +++ b/Modules/sha256module.c @@ -21,13 +21,6 @@ #include "hashlib.h" -/* Endianness testing and definitions */ -#define TestEndianness(variable) {int i=1; variable=PCT_BIG_ENDIAN;\ - if (*((char*)&i)==1) variable=PCT_LITTLE_ENDIAN;} - -#define PCT_LITTLE_ENDIAN 1 -#define PCT_BIG_ENDIAN 0 - /* Some useful types */ typedef unsigned char SHA_BYTE; @@ -50,7 +43,6 @@ typedef struct { SHA_INT32 digest[8]; /* Message digest */ SHA_INT32 count_lo, count_hi; /* 64-bit bit count */ SHA_BYTE data[SHA_BLOCKSIZE]; /* SHA data buffer */ - int Endianness; int local; /* unprocessed amount in data */ int digestsize; } SHAobject; @@ -58,13 +50,11 @@ typedef struct { /* When run on a little-endian CPU we need to perform byte reversal on an array of longwords. */ -static void longReverse(SHA_INT32 *buffer, int byteCount, int Endianness) +#if PY_LITTLE_ENDIAN +static void longReverse(SHA_INT32 *buffer, int byteCount) { SHA_INT32 value; - if ( Endianness == PCT_BIG_ENDIAN ) - return; - byteCount /= sizeof(*buffer); while (byteCount--) { value = *buffer; @@ -73,10 +63,10 @@ static void longReverse(SHA_INT32 *buffer, int byteCount, int Endianness) *buffer++ = ( value << 16 ) | ( value >> 16 ); } } +#endif static void SHAcopy(SHAobject *src, SHAobject *dest) { - dest->Endianness = src->Endianness; dest->local = src->local; dest->digestsize = src->digestsize; dest->count_lo = src->count_lo; @@ -131,7 +121,9 @@ sha_transform(SHAobject *sha_info) SHA_INT32 S[8], W[64], t0, t1; memcpy(W, sha_info->data, sizeof(sha_info->data)); - longReverse(W, (int)sizeof(sha_info->data), sha_info->Endianness); +#if PY_LITTLE_ENDIAN + longReverse(W, (int)sizeof(sha_info->data)); +#endif for (i = 16; i < 64; ++i) { W[i] = Gamma1(W[i - 2]) + W[i - 7] + Gamma0(W[i - 15]) + W[i - 16]; @@ -228,7 +220,6 @@ sha_transform(SHAobject *sha_info) static void sha_init(SHAobject *sha_info) { - TestEndianness(sha_info->Endianness) sha_info->digest[0] = 0x6A09E667L; sha_info->digest[1] = 0xBB67AE85L; sha_info->digest[2] = 0x3C6EF372L; @@ -246,7 +237,6 @@ sha_init(SHAobject *sha_info) static void sha224_init(SHAobject *sha_info) { - TestEndianness(sha_info->Endianness) sha_info->digest[0] = 0xc1059ed8L; sha_info->digest[1] = 0x367cd507L; sha_info->digest[2] = 0x3070dd17L; @@ -284,7 +274,7 @@ sha_update(SHAobject *sha_info, SHA_BYTE *buffer, Py_ssize_t count) memcpy(((SHA_BYTE *) sha_info->data) + sha_info->local, buffer, i); count -= i; buffer += i; - sha_info->local += i; + sha_info->local += (int)i; if (sha_info->local == SHA_BLOCKSIZE) { sha_transform(sha_info); } @@ -299,7 +289,7 @@ sha_update(SHAobject *sha_info, SHA_BYTE *buffer, Py_ssize_t count) sha_transform(sha_info); } memcpy(sha_info->data, buffer, count); - sha_info->local = count; + sha_info->local = (int)count; } /* finish computing the SHA digest */ diff --git a/Modules/sha512module.c b/Modules/sha512module.c index 5536fd5..66c2c49 100644 --- a/Modules/sha512module.c +++ b/Modules/sha512module.c @@ -22,13 +22,6 @@ #ifdef PY_LONG_LONG /* If no PY_LONG_LONG, don't compile anything! */ -/* Endianness testing and definitions */ -#define TestEndianness(variable) {int i=1; variable=PCT_BIG_ENDIAN;\ - if (*((char*)&i)==1) variable=PCT_LITTLE_ENDIAN;} - -#define PCT_LITTLE_ENDIAN 1 -#define PCT_BIG_ENDIAN 0 - /* Some useful types */ typedef unsigned char SHA_BYTE; @@ -52,7 +45,6 @@ typedef struct { SHA_INT64 digest[8]; /* Message digest */ SHA_INT32 count_lo, count_hi; /* 64-bit bit count */ SHA_BYTE data[SHA_BLOCKSIZE]; /* SHA data buffer */ - int Endianness; int local; /* unprocessed amount in data */ int digestsize; } SHAobject; @@ -60,13 +52,11 @@ typedef struct { /* When run on a little-endian CPU we need to perform byte reversal on an array of longwords. */ -static void longReverse(SHA_INT64 *buffer, int byteCount, int Endianness) +#if PY_LITTLE_ENDIAN +static void longReverse(SHA_INT64 *buffer, int byteCount) { SHA_INT64 value; - if ( Endianness == PCT_BIG_ENDIAN ) - return; - byteCount /= sizeof(*buffer); while (byteCount--) { value = *buffer; @@ -83,10 +73,10 @@ static void longReverse(SHA_INT64 *buffer, int byteCount, int Endianness) buffer++; } } +#endif static void SHAcopy(SHAobject *src, SHAobject *dest) { - dest->Endianness = src->Endianness; dest->local = src->local; dest->digestsize = src->digestsize; dest->count_lo = src->count_lo; @@ -141,7 +131,9 @@ sha512_transform(SHAobject *sha_info) SHA_INT64 S[8], W[80], t0, t1; memcpy(W, sha_info->data, sizeof(sha_info->data)); - longReverse(W, (int)sizeof(sha_info->data), sha_info->Endianness); +#if PY_LITTLE_ENDIAN + longReverse(W, (int)sizeof(sha_info->data)); +#endif for (i = 16; i < 80; ++i) { W[i] = Gamma1(W[i - 2]) + W[i - 7] + Gamma0(W[i - 15]) + W[i - 16]; @@ -254,7 +246,6 @@ sha512_transform(SHAobject *sha_info) static void sha512_init(SHAobject *sha_info) { - TestEndianness(sha_info->Endianness) sha_info->digest[0] = Py_ULL(0x6a09e667f3bcc908); sha_info->digest[1] = Py_ULL(0xbb67ae8584caa73b); sha_info->digest[2] = Py_ULL(0x3c6ef372fe94f82b); @@ -272,7 +263,6 @@ sha512_init(SHAobject *sha_info) static void sha384_init(SHAobject *sha_info) { - TestEndianness(sha_info->Endianness) sha_info->digest[0] = Py_ULL(0xcbbb9d5dc1059ed8); sha_info->digest[1] = Py_ULL(0x629a292a367cd507); sha_info->digest[2] = Py_ULL(0x9159015a3070dd17); @@ -310,7 +300,7 @@ sha512_update(SHAobject *sha_info, SHA_BYTE *buffer, Py_ssize_t count) memcpy(((SHA_BYTE *) sha_info->data) + sha_info->local, buffer, i); count -= i; buffer += i; - sha_info->local += i; + sha_info->local += (int)i; if (sha_info->local == SHA_BLOCKSIZE) { sha512_transform(sha_info); } @@ -325,7 +315,7 @@ sha512_update(SHAobject *sha_info, SHA_BYTE *buffer, Py_ssize_t count) sha512_transform(sha_info); } memcpy(sha_info->data, buffer, count); - sha_info->local = count; + sha_info->local = (int)count; } /* finish computing the SHA digest */ diff --git a/Modules/signalmodule.c b/Modules/signalmodule.c index fbe1bb7..122530b 100644 --- a/Modules/signalmodule.c +++ b/Modules/signalmodule.c @@ -9,7 +9,7 @@ #endif #ifdef MS_WINDOWS -#include <Windows.h> +#include <windows.h> #ifdef HAVE_PROCESS_H #include <process.h> #endif @@ -37,11 +37,6 @@ #define SIG_ERR ((PyOS_sighandler_t)(-1)) #endif -#if defined(PYOS_OS2) && !defined(PYCC_GCC) -#define NSIG 12 -#include <process.h> -#endif - #ifndef NSIG # if defined(_NSIG) # define NSIG _NSIG /* For BSD/SysV */ diff --git a/Modules/socketmodule.c b/Modules/socketmodule.c index a6f8c5a..3262999 100644 --- a/Modules/socketmodule.c +++ b/Modules/socketmodule.c @@ -15,7 +15,7 @@ Limitations: Module interface: -- socket.error: exception raised for socket specific errors +- socket.error: exception raised for socket specific errors, alias for OSError - socket.gaierror: exception raised for getaddrinfo/getnameinfo errors, a subclass of socket.error - socket.herror: exception raised for gethostby* errors, @@ -223,13 +223,6 @@ if_indextoname(index) -- return the corresponding interface name\n\ #endif -#if defined(PYOS_OS2) -# define INCL_DOS -# define INCL_DOSERRORS -# define INCL_NOPMAPI -# include <os2.h> -#endif - #if defined(__sgi) && _COMPILER_VERSION>700 && !_SGIAPI /* make sure that the reentrant (gethostbyaddr_r etc) functions are declared correctly if compiling with @@ -286,12 +279,7 @@ if_indextoname(index) -- return the corresponding interface name\n\ # include <unistd.h> /* Headers needed for inet_ntoa() and inet_addr() */ -# if defined(PYOS_OS2) && defined(PYCC_VACPP) -# include <netdb.h> -typedef size_t socklen_t; -# else # include <arpa/inet.h> -# endif # include <fcntl.h> @@ -395,11 +383,6 @@ dup_socket(SOCKET handle) #define snprintf _snprintf #endif -#if defined(PYOS_OS2) && !defined(PYCC_GCC) -#define SOCKETCLOSE soclose -#define NO_DUP /* Sockets are Not Actual File Handles under OS/2 */ -#endif - #ifndef SOCKETCLOSE #define SOCKETCLOSE close #endif @@ -534,42 +517,6 @@ set_error(void) return PyErr_SetExcFromWindowsErr(PyExc_OSError, err_no); #endif -#if defined(PYOS_OS2) && !defined(PYCC_GCC) - if (sock_errno() != NO_ERROR) { - APIRET rc; - ULONG msglen; - char outbuf[100]; - int myerrorcode = sock_errno(); - - /* Retrieve socket-related error message from MPTN.MSG file */ - rc = DosGetMessage(NULL, 0, outbuf, sizeof(outbuf), - myerrorcode - SOCBASEERR + 26, - "mptn.msg", - &msglen); - if (rc == NO_ERROR) { - PyObject *v; - - /* OS/2 doesn't guarantee a terminator */ - outbuf[msglen] = '\0'; - if (strlen(outbuf) > 0) { - /* If non-empty msg, trim CRLF */ - char *lastc = &outbuf[ strlen(outbuf)-1 ]; - while (lastc > outbuf && - Py_ISSPACE(Py_CHARMASK(*lastc))) { - /* Trim trailing whitespace (CRLF) */ - *lastc-- = '\0'; - } - } - v = Py_BuildValue("(is)", myerrorcode, outbuf); - if (v != NULL) { - PyErr_SetObject(PyExc_OSError, v); - Py_DECREF(v); - } - return NULL; - } - } -#endif - return PyErr_SetFromErrno(PyExc_OSError); } @@ -658,20 +605,17 @@ internal_setblocking(PySocketSockObject *s, int block) Py_BEGIN_ALLOW_THREADS #ifndef MS_WINDOWS -#if defined(PYOS_OS2) && !defined(PYCC_GCC) - block = !block; - ioctl(s->sock_fd, FIONBIO, (caddr_t)&block, sizeof(block)); -#elif defined(__VMS) +#if defined(__VMS) block = !block; ioctl(s->sock_fd, FIONBIO, (unsigned int *)&block); -#else /* !PYOS_OS2 && !__VMS */ +#else /* !__VMS */ delay_flag = fcntl(s->sock_fd, F_GETFL, 0); if (block) delay_flag &= (~O_NONBLOCK); else delay_flag |= O_NONBLOCK; fcntl(s->sock_fd, F_SETFL, delay_flag); -#endif /* !PYOS_OS2 */ +#endif /* !__VMS */ #else /* MS_WINDOWS */ block = !block; ioctlsocket(s->sock_fd, FIONBIO, (u_long*)&block); @@ -1329,11 +1273,7 @@ getsockaddrarg(PySocketSockObject *s, PyObject *args, } addr->sun_family = s->sock_family; memcpy(addr->sun_path, path, len); -#if defined(PYOS_OS2) - *len_ret = sizeof(*addr); -#else *len_ret = len + offsetof(struct sockaddr_un, sun_path); -#endif retval = 1; unix_out: Py_DECREF(args); @@ -1658,6 +1598,8 @@ getsockaddrarg(PySocketSockObject *s, PyObject *args, case AF_CAN: switch (s->sock_proto) { case CAN_RAW: + /* fall-through */ + case CAN_BCM: { struct sockaddr_can *addr; PyObject *interfaceName; @@ -2820,13 +2762,8 @@ sock_recvfrom_guts(PySocketSockObject *s, char* cbuf, Py_ssize_t len, int flags, timeout = internal_select_ex(s, 0, interval); if (!timeout) { #ifndef MS_WINDOWS -#if defined(PYOS_OS2) && !defined(PYCC_GCC) - n = recvfrom(s->sock_fd, cbuf, len, flags, - SAS2SA(&addrbuf), &addrlen); -#else n = recvfrom(s->sock_fd, cbuf, len, flags, (void *) &addrbuf, &addrlen); -#endif #else n = recvfrom(s->sock_fd, cbuf, len, flags, SAS2SA(&addrbuf), &addrlen); @@ -5509,32 +5446,6 @@ os_init(void) #endif /* MS_WINDOWS */ -#ifdef PYOS_OS2 -#define OS_INIT_DEFINED - -/* Additional initialization for OS/2 */ - -static int -os_init(void) -{ -#ifndef PYCC_GCC - int rc = sock_init(); - - if (rc == 0) { - return 1; /* Success */ - } - - PyErr_Format(PyExc_ImportError, "OS/2 TCP/IP Error# %d", sock_errno()); - - return 0; /* Failure */ -#else - /* No need to initialize sockets with GCC/EMX */ - return 1; /* Success */ -#endif -} - -#endif /* PYOS_OS2 */ - #ifndef OS_INIT_DEFINED static int @@ -6062,6 +5973,9 @@ PyInit__socket(void) #ifdef MSG_MCAST PyModule_AddIntConstant(m, "MSG_MCAST", MSG_MCAST); #endif +#ifdef MSG_FASTOPEN + PyModule_AddIntConstant(m, "MSG_FASTOPEN", MSG_FASTOPEN); +#endif /* Protocol level and numbers, usable for [gs]etsockopt */ #ifdef SOL_SOCKET @@ -6119,6 +6033,21 @@ PyInit__socket(void) PyModule_AddIntConstant(m, "CAN_RAW_LOOPBACK", CAN_RAW_LOOPBACK); PyModule_AddIntConstant(m, "CAN_RAW_RECV_OWN_MSGS", CAN_RAW_RECV_OWN_MSGS); #endif +#ifdef HAVE_LINUX_CAN_BCM_H + PyModule_AddIntConstant(m, "CAN_BCM", CAN_BCM); + PyModule_AddIntConstant(m, "CAN_BCM_TX_SETUP", TX_SETUP); + PyModule_AddIntConstant(m, "CAN_BCM_TX_DELETE", TX_DELETE); + PyModule_AddIntConstant(m, "CAN_BCM_TX_READ", TX_READ); + PyModule_AddIntConstant(m, "CAN_BCM_TX_SEND", TX_SEND); + PyModule_AddIntConstant(m, "CAN_BCM_RX_SETUP", RX_SETUP); + PyModule_AddIntConstant(m, "CAN_BCM_RX_DELETE", RX_DELETE); + PyModule_AddIntConstant(m, "CAN_BCM_RX_READ", RX_READ); + PyModule_AddIntConstant(m, "CAN_BCM_TX_STATUS", TX_STATUS); + PyModule_AddIntConstant(m, "CAN_BCM_TX_EXPIRED", TX_EXPIRED); + PyModule_AddIntConstant(m, "CAN_BCM_RX_STATUS", RX_STATUS); + PyModule_AddIntConstant(m, "CAN_BCM_RX_TIMEOUT", RX_TIMEOUT); + PyModule_AddIntConstant(m, "CAN_BCM_RX_CHANGED", RX_CHANGED); +#endif #ifdef SOL_RDS PyModule_AddIntConstant(m, "SOL_RDS", SOL_RDS); #endif @@ -6492,7 +6421,9 @@ PyInit__socket(void) #ifdef TCP_QUICKACK PyModule_AddIntConstant(m, "TCP_QUICKACK", TCP_QUICKACK); #endif - +#ifdef TCP_FASTOPEN + PyModule_AddIntConstant(m, "TCP_FASTOPEN", TCP_FASTOPEN); +#endif /* IPX options */ #ifdef IPX_TYPE diff --git a/Modules/socketmodule.h b/Modules/socketmodule.h index 0435878..b83f9af 100644 --- a/Modules/socketmodule.h +++ b/Modules/socketmodule.h @@ -8,7 +8,7 @@ # include <sys/socket.h> # endif # include <netinet/in.h> -# if !(defined(__CYGWIN__) || (defined(PYOS_OS2) && defined(PYCC_VACPP))) +# if !defined(__CYGWIN__) # include <netinet/tcp.h> # endif @@ -80,6 +80,10 @@ typedef int socklen_t; #include <linux/can/raw.h> #endif +#ifdef HAVE_LINUX_CAN_BCM_H +#include <linux/can/bcm.h> +#endif + #ifdef HAVE_SYS_SYS_DOMAIN_H #include <sys/sys_domain.h> #endif diff --git a/Modules/timemodule.c b/Modules/timemodule.c index 5a0f378..429215f 100644 --- a/Modules/timemodule.c +++ b/Modules/timemodule.c @@ -37,16 +37,6 @@ #endif /* MS_WINDOWS */ #endif /* !__WATCOMC__ || __QNX__ */ -#if defined(PYOS_OS2) -#define INCL_DOS -#define INCL_ERRORS -#include <os2.h> -#endif - -#if defined(PYCC_VACPP) -#include <sys/time.h> -#endif - #if defined(__APPLE__) #include <mach/mach_time.h> #endif @@ -543,6 +533,26 @@ checktm(struct tm* buf) /* wcsftime() doesn't format correctly time zones, see issue #10653 */ # undef HAVE_WCSFTIME #endif +#define STRFTIME_FORMAT_CODES \ +"Commonly used format codes:\n\ +\n\ +%Y Year with century as a decimal number.\n\ +%m Month as a decimal number [01,12].\n\ +%d Day of the month as a decimal number [01,31].\n\ +%H Hour (24-hour clock) as a decimal number [00,23].\n\ +%M Minute as a decimal number [00,59].\n\ +%S Second as a decimal number [00,61].\n\ +%z Time zone offset from UTC.\n\ +%a Locale's abbreviated weekday name.\n\ +%A Locale's full weekday name.\n\ +%b Locale's abbreviated month name.\n\ +%B Locale's full month name.\n\ +%c Locale's appropriate date and time representation.\n\ +%I Hour (12-hour clock) as a decimal number [01,12].\n\ +%p Locale's equivalent of either AM or PM.\n\ +\n\ +Other codes may be available on your platform. See documentation for\n\ +the C library strftime function.\n" #ifdef HAVE_STRFTIME #ifdef HAVE_WCSFTIME @@ -687,13 +697,13 @@ time_strftime(PyObject *self, PyObject *args) #undef time_char #undef format_time - PyDoc_STRVAR(strftime_doc, "strftime(format[, tuple]) -> string\n\ \n\ Convert a time tuple to a string according to a format specification.\n\ See the library reference manual for formatting codes. When the time tuple\n\ -is not present, current time as returned by localtime() is used."); +is not present, current time as returned by localtime() is used.\n\ +\n" STRFTIME_FORMAT_CODES); #endif /* HAVE_STRFTIME */ static PyObject * @@ -716,7 +726,9 @@ PyDoc_STRVAR(strptime_doc, "strptime(string, format) -> struct_time\n\ \n\ Parse a string to a time tuple according to a format specification.\n\ -See the library reference manual for formatting codes (same as strftime())."); +See the library reference manual for formatting codes (same as\n\ +strftime()).\n\ +\n" STRFTIME_FORMAT_CODES); static PyObject * _asctime(struct tm *timeptr) @@ -1266,19 +1278,11 @@ PyInit_timezone(PyObject *m) { #if defined(HAVE_TZNAME) && !defined(__GLIBC__) && !defined(__CYGWIN__) PyObject *otz0, *otz1; tzset(); -#ifdef PYOS_OS2 - PyModule_AddIntConstant(m, "timezone", _timezone); -#else /* !PYOS_OS2 */ PyModule_AddIntConstant(m, "timezone", timezone); -#endif /* PYOS_OS2 */ #ifdef HAVE_ALTZONE PyModule_AddIntConstant(m, "altzone", altzone); #else -#ifdef PYOS_OS2 - PyModule_AddIntConstant(m, "altzone", _timezone-3600); -#else /* !PYOS_OS2 */ PyModule_AddIntConstant(m, "altzone", timezone-3600); -#endif /* PYOS_OS2 */ #endif PyModule_AddIntConstant(m, "daylight", daylight); otz0 = PyUnicode_DecodeLocale(tzname[0], "surrogateescape"); @@ -1574,7 +1578,7 @@ floatsleep(double secs) DWORD rc; HANDLE hInterruptEvent = _PyOS_SigintEvent(); ResetEvent(hInterruptEvent); - rc = WaitForSingleObject(hInterruptEvent, ul_millis); + rc = WaitForSingleObjectEx(hInterruptEvent, ul_millis, FALSE); if (rc == WAIT_OBJECT_0) { Py_BLOCK_THREADS errno = EINTR; @@ -1584,15 +1588,6 @@ floatsleep(double secs) } Py_END_ALLOW_THREADS } -#elif defined(PYOS_OS2) - /* This Sleep *IS* Interruptable by Exceptions */ - Py_BEGIN_ALLOW_THREADS - if (DosSleep(secs * 1000) != NO_ERROR) { - Py_BLOCK_THREADS - PyErr_SetFromErrno(PyExc_IOError); - return -1; - } - Py_END_ALLOW_THREADS #else /* XXX Can't interrupt this sleep */ Py_BEGIN_ALLOW_THREADS diff --git a/Modules/unicodedata_db.h b/Modules/unicodedata_db.h index 5d5dca8..93a09cd 100644 --- a/Modules/unicodedata_db.h +++ b/Modules/unicodedata_db.h @@ -1,6 +1,6 @@ /* this file was generated by Tools/unicode/makeunicodedata.py 3.2 */ -#define UNIDATA_VERSION "6.1.0" +#define UNIDATA_VERSION "6.2.0" /* a list of unique database records */ const _PyUnicode_DatabaseRecord _PyUnicode_Database_Records[] = { {0, 0, 0, 0, 0, 0}, @@ -1444,41 +1444,40 @@ static unsigned short index2[] = { 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 170, 170, 170, 170, 170, 171, 171, 171, 171, 171, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, 48, 48, 48, 48, 48, 48, 48, 48, + 171, 171, 171, 171, 171, 171, 171, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 170, 170, 170, 170, 170, 170, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 0, 48, 48, 48, 48, 0, 0, 48, 48, 48, 48, 48, 48, 48, 0, 48, 0, 48, - 48, 48, 48, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, + 48, 48, 48, 48, 0, 0, 48, 48, 48, 48, 48, 48, 48, 0, 48, 0, 48, 48, 48, + 48, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 48, 48, 48, 48, 0, 0, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 0, 48, 48, 48, 48, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 48, 48, 48, 48, 0, 0, - 48, 48, 48, 48, 48, 48, 48, 0, 48, 0, 48, 48, 48, 48, 0, 0, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 48, 48, 48, 48, 0, 0, 48, 48, + 48, 48, 48, 48, 48, 0, 48, 0, 48, 48, 48, 48, 0, 0, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 48, - 48, 48, 48, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 48, 48, 48, + 48, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, - 81, 81, 81, 83, 83, 83, 83, 83, 83, 83, 83, 83, 148, 148, 148, 148, 148, - 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, - 148, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 0, 0, 0, 0, 0, 0, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 81, 81, + 81, 83, 83, 83, 83, 83, 83, 83, 83, 83, 148, 148, 148, 148, 148, 148, + 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 0, + 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 84, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, @@ -1498,15 +1497,16 @@ static unsigned short index2[] = { 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 83, 83, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 172, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 163, 164, 0, - 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 83, 83, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 172, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 163, 164, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 83, 83, 83, 173, 173, 173, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 83, 83, 83, 173, 173, 173, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 48, 48, 48, 48, 135, 135, 142, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 135, 135, 142, 83, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, @@ -1645,15 +1645,15 @@ static unsigned short index2[] = { 211, 211, 212, 213, 214, 215, 210, 34, 34, 34, 34, 210, 210, 210, 210, 210, 211, 211, 212, 213, 214, 0, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 0, 0, 0, 85, 85, 85, 85, 85, 85, 85, 85, 216, 217, 85, 85, - 23, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 81, 81, 175, 175, 81, 81, - 81, 81, 175, 175, 175, 81, 81, 82, 82, 82, 82, 81, 82, 82, 82, 175, 175, - 81, 86, 81, 175, 175, 86, 86, 86, 86, 81, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 218, 218, 49, 219, 26, 219, 218, 49, 26, 219, 35, 49, 49, - 49, 35, 35, 49, 49, 49, 46, 26, 49, 219, 26, 78, 49, 49, 49, 49, 49, 26, - 26, 218, 219, 219, 26, 49, 26, 220, 26, 49, 26, 183, 220, 49, 49, 221, - 35, 49, 49, 44, 49, 35, 156, 156, 156, 156, 35, 26, 218, 35, 35, 49, 49, - 222, 78, 78, 78, 78, 49, 35, 35, 35, 35, 26, 78, 26, 26, 47, 80, 223, + 23, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 81, 81, 175, 175, 81, + 81, 81, 81, 175, 175, 175, 81, 81, 82, 82, 82, 82, 81, 82, 82, 82, 175, + 175, 81, 86, 81, 175, 175, 86, 86, 86, 86, 81, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 218, 218, 49, 219, 26, 219, 218, 49, 26, 219, 35, 49, + 49, 49, 35, 35, 49, 49, 49, 46, 26, 49, 219, 26, 78, 49, 49, 49, 49, 49, + 26, 26, 218, 219, 219, 26, 49, 26, 220, 26, 49, 26, 183, 220, 49, 49, + 221, 35, 49, 49, 44, 49, 35, 156, 156, 156, 156, 35, 26, 218, 35, 35, 49, + 49, 222, 78, 78, 78, 78, 49, 35, 35, 35, 35, 26, 78, 26, 26, 47, 80, 223, 223, 223, 37, 37, 223, 223, 223, 223, 223, 223, 37, 37, 37, 37, 223, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 225, 225, 225, 225, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 225, 225, 225, @@ -2072,12 +2072,11 @@ static unsigned short index2[] = { 257, 257, 257, 257, 257, 257, 257, 257, 257, 257, 257, 257, 257, 257, 257, 257, 257, 257, 257, 257, 257, 257, 257, 257, 257, 257, 257, 257, 257, 257, 257, 257, 257, 257, 257, 257, 257, 257, 257, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, - 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 0, 0, 0, 0, - 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, - 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, - 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, - 170, 170, 170, 170, 170, 170, 170, 0, 0, 0, 0, 268, 268, 268, 268, 268, + 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 0, 0, 0, 0, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, @@ -2086,7 +2085,7 @@ static unsigned short index2[] = { 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, - 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 269, 269, 269, + 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, @@ -2095,7 +2094,8 @@ static unsigned short index2[] = { 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, - 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 270, + 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 270, 270, + 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, @@ -2105,14 +2105,13 @@ static unsigned short index2[] = { 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, + 170, 170, 270, 170, 270, 170, 170, 270, 270, 270, 270, 270, 270, 270, + 270, 270, 270, 170, 270, 170, 270, 170, 170, 270, 270, 170, 170, 170, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, - 270, 170, 170, 270, 170, 270, 170, 170, 270, 270, 270, 270, 270, 270, - 270, 270, 270, 270, 170, 270, 170, 270, 170, 170, 270, 270, 170, 170, - 170, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, - 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 0, 0, + 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 0, 0, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, @@ -2120,22 +2119,22 @@ static unsigned short index2[] = { 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, - 270, 270, 270, 270, 270, 270, 270, 270, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 270, 270, 270, 270, 270, 270, 270, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 35, 35, 35, 35, 35, 35, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 35, 35, 35, 35, 35, 0, 0, 0, 0, 0, 271, 272, 271, 273, 273, 273, 273, - 273, 273, 273, 273, 273, 211, 271, 271, 271, 271, 271, 271, 271, 271, - 271, 271, 271, 271, 271, 0, 271, 271, 271, 271, 271, 0, 271, 0, 271, 271, - 0, 271, 271, 0, 271, 271, 271, 271, 271, 271, 271, 271, 271, 273, 130, + 0, 35, 35, 35, 35, 35, 35, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, + 35, 35, 35, 35, 0, 0, 0, 0, 0, 271, 272, 271, 273, 273, 273, 273, 273, + 273, 273, 273, 273, 211, 271, 271, 271, 271, 271, 271, 271, 271, 271, + 271, 271, 271, 271, 0, 271, 271, 271, 271, 271, 0, 271, 0, 271, 271, 0, + 271, 271, 0, 271, 271, 271, 271, 271, 271, 271, 271, 271, 273, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, - 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 274, - 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, - 274, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 130, 130, 130, + 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 274, 274, + 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, @@ -2152,26 +2151,26 @@ static unsigned short index2[] = { 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, - 130, 130, 130, 130, 130, 130, 130, 130, 195, 275, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, + 130, 130, 130, 130, 130, 130, 195, 275, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, - 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 0, 0, 130, + 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 0, 0, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, - 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 130, 130, 130, 130, 130, 130, 130, 130, - 130, 130, 130, 130, 276, 26, 0, 0, 71, 71, 71, 71, 71, 71, 71, 71, 71, - 71, 71, 71, 71, 71, 71, 71, 277, 277, 277, 277, 277, 277, 277, 278, 279, - 277, 0, 0, 0, 0, 0, 0, 81, 81, 81, 81, 81, 81, 81, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 277, 280, 280, 281, 281, 278, 279, 278, 279, 278, 279, 278, 279, - 278, 279, 278, 279, 278, 279, 278, 279, 243, 243, 278, 279, 277, 277, - 277, 277, 281, 281, 281, 282, 277, 282, 0, 277, 282, 277, 277, 280, 283, - 284, 283, 284, 283, 284, 285, 277, 277, 286, 287, 288, 288, 289, 0, 277, - 290, 285, 277, 0, 0, 0, 0, 130, 130, 130, 117, 130, 0, 130, 130, 130, + 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, + 130, 130, 276, 26, 0, 0, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, + 71, 71, 71, 71, 277, 277, 277, 277, 277, 277, 277, 278, 279, 277, 0, 0, + 0, 0, 0, 0, 81, 81, 81, 81, 81, 81, 81, 0, 0, 0, 0, 0, 0, 0, 0, 0, 277, + 280, 280, 281, 281, 278, 279, 278, 279, 278, 279, 278, 279, 278, 279, + 278, 279, 278, 279, 278, 279, 243, 243, 278, 279, 277, 277, 277, 277, + 281, 281, 281, 282, 277, 282, 0, 277, 282, 277, 277, 280, 283, 284, 283, + 284, 283, 284, 285, 277, 277, 286, 287, 288, 288, 289, 0, 277, 290, 285, + 277, 0, 0, 0, 0, 130, 130, 130, 117, 130, 0, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, @@ -2181,296 +2180,289 @@ static unsigned short index2[] = { 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, - 130, 130, 130, 130, 130, 130, 0, 0, 187, 0, 291, 291, 292, 293, 292, 291, - 291, 294, 295, 291, 296, 297, 298, 297, 297, 299, 299, 299, 299, 299, - 299, 299, 299, 299, 299, 297, 291, 300, 301, 300, 291, 291, 302, 302, + 130, 130, 130, 130, 0, 0, 187, 0, 291, 291, 292, 293, 292, 291, 291, 294, + 295, 291, 296, 297, 298, 297, 297, 299, 299, 299, 299, 299, 299, 299, + 299, 299, 299, 297, 291, 300, 301, 300, 291, 291, 302, 302, 302, 302, 302, 302, 302, 302, 302, 302, 302, 302, 302, 302, 302, 302, 302, 302, - 302, 302, 302, 302, 302, 302, 302, 302, 302, 302, 294, 291, 295, 303, - 304, 303, 305, 305, 305, 305, 305, 305, 305, 305, 305, 305, 305, 305, + 302, 302, 302, 302, 302, 302, 302, 302, 294, 291, 295, 303, 304, 303, 305, 305, 305, 305, 305, 305, 305, 305, 305, 305, 305, 305, 305, 305, - 294, 301, 295, 301, 294, 295, 306, 307, 308, 306, 306, 309, 309, 309, - 309, 309, 309, 309, 309, 309, 309, 310, 309, 309, 309, 309, 309, 309, - 309, 309, 309, 309, 309, 309, 309, 309, 309, 309, 309, 309, 309, 309, + 305, 305, 305, 305, 305, 305, 305, 305, 305, 305, 305, 305, 294, 301, + 295, 301, 294, 295, 306, 307, 308, 306, 306, 309, 309, 309, 309, 309, + 309, 309, 309, 309, 309, 310, 309, 309, 309, 309, 309, 309, 309, 309, 309, 309, 309, 309, 309, 309, 309, 309, 309, 309, 309, 309, 309, 309, - 309, 309, 309, 309, 309, 309, 309, 309, 309, 309, 309, 310, 310, 309, 309, 309, 309, 309, 309, 309, 309, 309, 309, 309, 309, 309, 309, 309, + 309, 309, 309, 309, 309, 309, 309, 309, 309, 310, 310, 309, 309, 309, 309, 309, 309, 309, 309, 309, 309, 309, 309, 309, 309, 309, 309, 309, - 309, 309, 0, 0, 0, 309, 309, 309, 309, 309, 309, 0, 0, 309, 309, 309, - 309, 309, 309, 0, 0, 309, 309, 309, 309, 309, 309, 0, 0, 309, 309, 309, - 0, 0, 0, 293, 293, 301, 303, 311, 293, 293, 0, 312, 313, 313, 313, 313, - 312, 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 314, 314, 314, 26, 30, 0, 0, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 48, 48, 48, 48, 48, 48, + 309, 309, 309, 309, 309, 309, 309, 309, 309, 309, 309, 309, 309, 309, 0, + 0, 0, 309, 309, 309, 309, 309, 309, 0, 0, 309, 309, 309, 309, 309, 309, + 0, 0, 309, 309, 309, 309, 309, 309, 0, 0, 309, 309, 309, 0, 0, 0, 293, + 293, 301, 303, 311, 293, 293, 0, 312, 313, 313, 313, 313, 312, 312, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 314, 314, 314, 26, 30, 0, 0, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 0, 48, 48, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 0, 48, 48, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 0, 0, 0, 0, 0, 83, 138, 83, 0, 0, 0, 0, 148, 148, - 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, + 48, 0, 0, 0, 0, 0, 83, 138, 83, 0, 0, 0, 0, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, - 148, 0, 0, 0, 80, 80, 80, 80, 80, 80, 80, 80, 80, 315, 315, 315, 315, + 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 0, 0, 0, 80, 80, + 80, 80, 80, 80, 80, 80, 80, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, - 315, 315, 315, 315, 315, 315, 315, 153, 153, 153, 153, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 153, 0, 0, 0, 0, 0, - 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 0, 0, 0, 0, 0, 0, 0, 0, + 315, 315, 153, 153, 153, 153, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 153, 0, 0, 0, 0, 0, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 80, 80, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, - 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, - 80, 80, 80, 80, 80, 80, 86, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 86, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 148, 148, 148, 148, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 173, 48, 48, 48, 48, 48, 48, 48, 48, 173, 0, 0, + 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 0, 148, 148, 148, 148, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 173, 48, + 48, 48, 48, 48, 48, 48, 48, 173, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 83, 48, 48, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 0, 83, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 0, - 0, 48, 48, 48, 48, 48, 48, 48, 48, 83, 173, 173, 173, 173, 173, 0, 0, 0, + 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, + 48, 83, 173, 173, 173, 173, 173, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 44, 44, 44, 44, 44, 44, + 0, 0, 0, 0, 0, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, - 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 47, 47, 47, + 44, 44, 44, 44, 44, 44, 44, 44, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, - 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, - 47, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 0, 0, 144, 144, 144, 144, 144, 144, 144, 144, - 144, 144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 107, 107, 107, 107, - 107, 107, 0, 0, 107, 0, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 107, 107, 107, 107, 107, 107, 0, 0, 107, 0, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, - 107, 107, 107, 107, 107, 107, 0, 107, 107, 0, 0, 0, 107, 0, 0, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, - 107, 107, 107, 107, 107, 107, 107, 0, 104, 316, 316, 316, 316, 316, 316, - 316, 316, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 107, 107, 107, 107, 107, 107, 107, 107, + 107, 0, 107, 107, 0, 0, 0, 107, 0, 0, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, - 316, 316, 316, 316, 316, 316, 0, 0, 0, 138, 107, 107, 107, 107, 107, 107, + 107, 107, 0, 104, 316, 316, 316, 316, 316, 316, 316, 316, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, + 107, 107, 107, 107, 107, 107, 107, 107, 107, 316, 316, 316, 316, 316, + 316, 0, 0, 0, 138, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, - 107, 107, 107, 107, 107, 107, 0, 0, 0, 0, 0, 104, 0, 0, 0, 0, 0, 0, 0, 0, + 107, 0, 0, 0, 0, 0, 104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, - 107, 107, 107, 107, 0, 0, 0, 0, 0, 0, 107, 107, 0, 0, 0, 0, 0, 0, 0, 0, + 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 0, + 0, 0, 0, 0, 0, 107, 107, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 107, 135, 135, 135, 0, 135, 135, 0, 0, 0, 0, 0, - 135, 86, 135, 81, 107, 107, 107, 107, 0, 107, 107, 107, 0, 107, 107, 107, + 107, 135, 135, 135, 0, 135, 135, 0, 0, 0, 0, 0, 135, 86, 135, 81, 107, + 107, 107, 107, 0, 107, 107, 107, 0, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, - 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 0, 0, 0, 0, 81, 175, - 86, 0, 0, 0, 0, 142, 316, 316, 316, 316, 316, 316, 316, 316, 0, 0, 0, 0, - 0, 0, 0, 0, 104, 104, 104, 104, 104, 104, 104, 104, 104, 0, 0, 0, 0, 0, - 0, 0, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, + 107, 107, 107, 107, 107, 107, 0, 0, 0, 0, 81, 175, 86, 0, 0, 0, 0, 142, + 316, 316, 316, 316, 316, 316, 316, 316, 0, 0, 0, 0, 0, 0, 0, 0, 104, 104, + 104, 104, 104, 104, 104, 104, 104, 0, 0, 0, 0, 0, 0, 0, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, - 107, 107, 316, 316, 104, 107, 107, 107, 107, 107, 107, 107, 107, 107, + 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 316, 316, + 104, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, + 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 0, 0, 0, + 138, 138, 138, 138, 138, 138, 138, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, - 107, 107, 107, 0, 0, 0, 138, 138, 138, 138, 138, 138, 138, 107, 107, 107, + 107, 0, 0, 316, 316, 316, 316, 316, 316, 316, 316, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, - 107, 107, 107, 107, 107, 0, 0, 316, 316, 316, 316, 316, 316, 316, 316, + 107, 0, 0, 0, 0, 0, 316, 316, 316, 316, 316, 316, 316, 316, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, - 107, 107, 107, 107, 107, 0, 0, 0, 0, 0, 316, 316, 316, 316, 316, 316, - 316, 316, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, - 107, 107, 107, 107, 107, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 107, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 317, 317, 317, 317, 317, + 0, 0, 0, 0, 0, 0, 0, 0, 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, - 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, 0, 139, 135, - 139, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 317, 317, 317, 317, 317, 317, 317, 0, 139, 135, 139, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, - 142, 83, 83, 83, 83, 83, 83, 83, 0, 0, 0, 0, 153, 153, 153, 153, 153, - 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, - 153, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 135, 135, 139, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 140, 48, - 140, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 140, 48, 48, - 48, 48, 139, 139, 139, 135, 135, 135, 135, 139, 139, 142, 141, 83, 83, - 188, 83, 83, 83, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 0, 0, 0, 0, 0, 0, 0, 144, 144, 144, 144, 144, 144, - 144, 144, 144, 144, 0, 0, 0, 0, 0, 0, 81, 81, 81, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 135, 135, 135, 135, 135, + 135, 135, 135, 135, 135, 135, 135, 135, 135, 142, 83, 83, 83, 83, 83, 83, + 83, 0, 0, 0, 0, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, + 153, 153, 153, 153, 153, 153, 153, 153, 153, 144, 144, 144, 144, 144, + 144, 144, 144, 144, 144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 135, 135, 139, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 140, 48, 140, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 140, 48, 48, 48, 48, 139, 139, 139, 135, + 135, 135, 135, 139, 139, 142, 141, 83, 83, 188, 83, 83, 83, 83, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 0, 0, + 0, 0, 0, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 0, 0, 0, 0, 0, + 0, 81, 81, 81, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 149, 135, 135, 135, 135, - 139, 135, 150, 150, 135, 135, 135, 142, 142, 0, 144, 144, 144, 144, 144, - 144, 144, 144, 144, 144, 83, 83, 83, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 48, 48, 48, 48, 149, 135, 135, 135, 135, 139, 135, 150, 150, 135, 135, + 135, 142, 142, 0, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 83, + 83, 83, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 135, 135, 139, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 135, 135, 139, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 139, 139, - 139, 135, 135, 135, 135, 135, 135, 135, 135, 135, 139, 174, 48, 48, 48, - 48, 83, 83, 83, 83, 0, 0, 0, 0, 0, 0, 0, 144, 144, 144, 144, 144, 144, - 144, 144, 144, 144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 139, 139, 139, 135, 135, 135, + 135, 135, 135, 135, 135, 135, 139, 174, 48, 48, 48, 48, 83, 83, 83, 83, + 0, 0, 0, 0, 0, 0, 0, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 135, 139, 135, 139, 139, 135, 135, 135, 135, 135, 135, - 174, 145, 0, 0, 0, 0, 0, 0, 0, 0, 144, 144, 144, 144, 144, 144, 144, 144, - 144, 144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 135, + 139, 135, 139, 139, 135, 135, 135, 135, 135, 135, 174, 145, 0, 0, 0, 0, + 0, 0, 0, 0, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 48, 48, 48, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, - 173, 173, 173, 173, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 83, 83, - 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 83, 83, 83, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 0, 0, 0, 0, 0, + 48, 48, 48, 48, 48, 48, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, + 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, - 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, + 48, 48, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, - 139, 139, 139, 139, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 135, - 135, 135, 135, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 0, 0, + 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 135, 135, 135, 135, 53, 53, 53, + 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 170, - 170, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 170, 170, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 80, + 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, + 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, + 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, + 80, 80, 80, 80, 80, 80, 80, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, - 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, + 0, 0, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, - 80, 80, 80, 80, 80, 80, 80, 0, 0, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, + 318, 318, 318, 318, 318, 318, 318, 319, 319, 175, 175, 175, 80, 80, 80, + 320, 319, 319, 319, 319, 319, 187, 187, 187, 187, 187, 187, 187, 187, 86, + 86, 86, 86, 86, 86, 86, 86, 80, 80, 81, 81, 81, 81, 81, 86, 86, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, - 80, 80, 80, 80, 80, 80, 80, 318, 318, 318, 318, 318, 318, 318, 319, 319, - 175, 175, 175, 80, 80, 80, 320, 319, 319, 319, 319, 319, 187, 187, 187, - 187, 187, 187, 187, 187, 86, 86, 86, 86, 86, 86, 86, 86, 80, 80, 81, 81, - 81, 81, 81, 86, 86, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, - 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 81, - 81, 81, 81, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 318, 318, - 318, 318, 318, 318, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, - 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 81, 81, 81, 81, 80, 80, 80, 80, + 80, 80, 80, 80, 80, 80, 80, 80, 80, 318, 318, 318, 318, 318, 318, 80, 80, + 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, + 80, 80, 80, 80, 80, 80, 80, 80, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 81, - 81, 81, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 81, 81, 81, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 26, 26, 26, 26, 26, 26, 26, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 148, 148, 148, - 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, - 148, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 49, 49, 49, 49, 49, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 148, 148, 148, 148, 148, 148, 148, 148, 148, + 148, 148, 148, 148, 148, 148, 148, 148, 148, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, + 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 35, 35, 35, 35, 35, 35, + 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, + 35, 35, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, + 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 35, 35, 35, 35, 35, 35, 35, 0, + 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, - 49, 49, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, - 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 49, 49, 49, 49, 49, 49, 49, 49, + 49, 49, 49, 49, 49, 49, 49, 49, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, + 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 49, 0, + 49, 49, 0, 0, 49, 0, 0, 49, 49, 0, 0, 49, 49, 49, 49, 0, 49, 49, 49, 49, + 49, 49, 49, 49, 35, 35, 35, 35, 0, 35, 0, 35, 35, 35, 35, 35, 35, 35, 0, + 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, - 35, 35, 35, 35, 35, 35, 35, 0, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, - 35, 35, 35, 35, 35, 35, 35, 35, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, - 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 35, 35, + 49, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, + 35, 35, 35, 35, 35, 35, 35, 35, 35, 49, 49, 0, 49, 49, 49, 49, 0, 0, 49, + 49, 49, 49, 49, 49, 49, 49, 0, 49, 49, 49, 49, 49, 49, 49, 0, 35, 35, 35, + 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, + 35, 35, 35, 35, 35, 49, 49, 0, 49, 49, 49, 49, 0, 49, 49, 49, 49, 49, 0, + 49, 0, 0, 0, 49, 49, 49, 49, 49, 49, 49, 0, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, - 35, 35, 35, 35, 35, 35, 49, 0, 49, 49, 0, 0, 49, 0, 0, 49, 49, 0, 0, 49, - 49, 49, 49, 0, 49, 49, 49, 49, 49, 49, 49, 49, 35, 35, 35, 35, 0, 35, 0, - 35, 35, 35, 35, 35, 35, 35, 0, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 49, - 49, 0, 49, 49, 49, 49, 0, 0, 49, 49, 49, 49, 49, 49, 49, 49, 0, 49, 49, - 49, 49, 49, 49, 49, 0, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, - 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 49, 49, 0, 49, - 49, 49, 49, 0, 49, 49, 49, 49, 49, 0, 49, 0, 0, 0, 49, 49, 49, 49, 49, - 49, 49, 0, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, + 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, + 49, 49, 49, 49, 49, 49, 49, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, + 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 49, 49, 49, + 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, + 49, 49, 49, 49, 49, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, + 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 49, 49, 49, 49, 49, + 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, + 49, 49, 49, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, - 35, 35, 35, 35, 35, 35, 35, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, - 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 35, 35, 35, - 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, - 35, 35, 35, 35, 35, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, - 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 35, 35, 35, 35, 35, - 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, - 35, 35, 35, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, - 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 35, 35, 35, 35, 35, 35, 35, - 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, - 35, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, - 49, 49, 49, 49, 49, 49, 49, 49, 49, 35, 35, 35, 35, 35, 35, 35, 35, 35, - 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, - 35, 0, 0, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, - 49, 49, 49, 49, 49, 49, 49, 49, 49, 321, 35, 35, 35, 35, 35, 35, 35, 35, - 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 222, - 35, 35, 35, 35, 35, 35, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, - 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 321, 35, 35, 35, 35, - 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, - 35, 35, 35, 222, 35, 35, 35, 35, 35, 35, 49, 49, 49, 49, 49, 49, 49, 49, + 35, 35, 35, 35, 35, 35, 35, 35, 35, 0, 0, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 321, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 222, 35, 35, 35, 35, 35, 35, 49, 49, 49, 49, @@ -2480,78 +2472,84 @@ static unsigned short index2[] = { 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 321, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 222, 35, 35, - 35, 35, 35, 35, 49, 35, 0, 0, 322, 322, 322, 322, 322, 322, 322, 322, + 35, 35, 35, 35, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, + 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 321, 35, 35, 35, 35, 35, 35, + 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, + 35, 222, 35, 35, 35, 35, 35, 35, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, + 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 321, 35, 35, + 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, + 35, 35, 35, 35, 35, 222, 35, 35, 35, 35, 35, 35, 49, 35, 0, 0, 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, - 130, 130, 130, 130, 0, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, + 322, 322, 322, 322, 322, 322, 130, 130, 130, 130, 0, 130, 130, 130, 130, + 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, + 130, 130, 130, 130, 130, 130, 130, 130, 130, 0, 130, 130, 0, 130, 0, 0, + 130, 0, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 0, 130, 130, + 130, 130, 0, 130, 0, 130, 0, 0, 0, 0, 0, 0, 130, 0, 0, 0, 0, 130, 0, 130, + 0, 130, 0, 130, 130, 130, 0, 130, 130, 0, 130, 0, 0, 130, 0, 130, 0, 130, + 0, 130, 0, 130, 0, 130, 130, 0, 130, 0, 0, 130, 130, 130, 130, 0, 130, + 130, 130, 130, 130, 130, 130, 0, 130, 130, 130, 130, 0, 130, 130, 130, + 130, 0, 130, 0, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 0, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, - 130, 130, 130, 0, 130, 130, 0, 130, 0, 0, 130, 0, 130, 130, 130, 130, - 130, 130, 130, 130, 130, 130, 0, 130, 130, 130, 130, 0, 130, 0, 130, 0, - 0, 0, 0, 0, 0, 130, 0, 0, 0, 0, 130, 0, 130, 0, 130, 0, 130, 130, 130, 0, - 130, 130, 0, 130, 0, 0, 130, 0, 130, 0, 130, 0, 130, 0, 130, 0, 130, 130, - 0, 130, 0, 0, 130, 130, 130, 130, 0, 130, 130, 130, 130, 130, 130, 130, - 0, 130, 130, 130, 130, 0, 130, 130, 130, 130, 0, 130, 0, 130, 130, 130, - 130, 130, 130, 130, 130, 130, 130, 0, 130, 130, 130, 130, 130, 130, 130, - 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 0, 0, 0, 0, 0, 130, - 130, 130, 0, 130, 130, 130, 130, 130, 0, 130, 130, 130, 130, 130, 130, - 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 78, 78, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 26, 26, 26, 26, 26, 26, 26, + 130, 130, 0, 0, 0, 0, 0, 130, 130, 130, 0, 130, 130, 130, 130, 130, 0, + 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, + 130, 130, 130, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 78, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 0, 0, 0, 0, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, - 0, 0, 0, 0, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, - 26, 0, 0, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 0, 0, - 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 0, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 0, 0, 0, 0, 0, 237, 237, + 26, 26, 26, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 0, 0, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 0, 0, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 0, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 0, 0, 0, 0, 0, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, + 237, 237, 237, 237, 237, 237, 323, 0, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, - 323, 0, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, - 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, - 237, 237, 237, 237, 237, 324, 324, 324, 324, 324, 324, 324, 324, 324, + 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 324, 324, 324, + 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, + 324, 324, 324, 324, 324, 324, 324, 324, 324, 218, 218, 0, 0, 0, 0, 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, - 324, 324, 324, 218, 218, 0, 0, 0, 0, 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, - 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, 237, 324, 324, - 324, 324, 324, 324, 324, 324, 324, 324, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 324, 324, 324, 237, 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 80, 80, 80, 80, 80, - 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, - 80, 80, 264, 264, 264, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 264, 264, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, + 80, 80, 80, 80, 80, 80, 80, 80, 80, 264, 264, 264, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, - 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 0, 0, 0, - 0, 0, 264, 264, 264, 264, 264, 264, 264, 264, 264, 0, 0, 0, 0, 0, 0, 0, - 264, 264, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 264, 264, 264, 264, 0, 0, 0, 0, 0, 264, 264, 264, 264, 264, 264, 264, + 264, 264, 0, 0, 0, 0, 0, 0, 0, 264, 264, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 26, 26, 26, 26, 26, 0, 26, 26, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 26, + 26, 26, 26, 26, 0, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 0, 0, 0, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 0, 0, 0, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 0, 26, 26, 26, 26, 26, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 0, + 26, 26, 26, 26, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 0, 26, 0, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 0, 26, 0, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, @@ -2561,76 +2559,76 @@ static unsigned short index2[] = { 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, - 0, 26, 26, 26, 26, 0, 0, 0, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 0, 26, 26, 26, 26, 0, 0, 0, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 0, 0, 26, 26, - 26, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 0, 0, 26, 26, 26, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 0, 0, - 0, 0, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 0, 0, 0, 0, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, - 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 170, 170, - 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, - 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, - 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, - 170, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 170, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, - 170, 170, 170, 170, 170, 170, 170, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, - 170, 170, 170, 170, 170, 170, 170, 170, 170, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 270, 270, 270, 270, - 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, - 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, + 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, + 270, 270, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 187, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, + 0, 0, 0, 0, 0, 0, 187, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, - 187, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, + 187, 187, 187, 187, 187, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, @@ -2643,8 +2641,9 @@ static unsigned short index2[] = { 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, - 71, 71, 71, 71, 71, 71, 71, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, + 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, + 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, @@ -2652,8 +2651,7 @@ static unsigned short index2[] = { 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, - 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 0, - 0, + 269, 269, 269, 269, 0, 0, }; /* decomposition data */ @@ -5863,7 +5861,7 @@ static unsigned char changes_3_2_0_data[] = { 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 4, 0, 0, 37, 38, 39, 40, 41, 42, 1, 1, 0, 0, 0, 4, 36, 8, 6, 7, 37, 38, 39, 40, 41, 42, 1, 1, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, diff --git a/Modules/unicodename_db.h b/Modules/unicodename_db.h index 3838882..084f011 100644 --- a/Modules/unicodename_db.h +++ b/Modules/unicodename_db.h @@ -65,9 +65,9 @@ static unsigned char lexicon[] = { 76, 85, 197, 83, 72, 65, 82, 65, 68, 193, 83, 73, 78, 72, 65, 76, 193, 75, 65, 128, 82, 85, 78, 73, 195, 83, 65, 85, 82, 65, 83, 72, 84, 82, 193, 84, 69, 84, 82, 65, 71, 82, 65, 205, 68, 69, 83, 69, 82, 69, 212, - 84, 73, 76, 68, 69, 128, 71, 85, 82, 77, 85, 75, 72, 201, 77, 65, 128, - 77, 65, 89, 69, 203, 77, 69, 69, 84, 69, 201, 78, 79, 84, 65, 84, 73, 79, - 206, 83, 89, 82, 73, 65, 195, 70, 73, 86, 69, 128, 80, 65, 128, 89, 65, + 83, 89, 82, 73, 65, 195, 84, 73, 76, 68, 69, 128, 71, 85, 82, 77, 85, 75, + 72, 201, 77, 65, 128, 77, 65, 89, 69, 203, 77, 69, 69, 84, 69, 201, 78, + 79, 84, 65, 84, 73, 79, 206, 70, 73, 86, 69, 128, 80, 65, 128, 89, 65, 128, 76, 73, 71, 72, 212, 83, 73, 88, 128, 69, 73, 71, 72, 84, 128, 76, 69, 80, 67, 72, 193, 78, 65, 128, 83, 69, 86, 69, 78, 128, 76, 79, 78, 199, 78, 73, 78, 69, 128, 84, 85, 82, 75, 73, 195, 72, 65, 77, 90, 193, @@ -525,79 +525,79 @@ static unsigned char lexicon[] = { 84, 85, 84, 84, 89, 128, 84, 85, 84, 69, 89, 65, 83, 65, 84, 128, 84, 85, 84, 128, 84, 85, 82, 88, 128, 84, 85, 82, 85, 128, 84, 85, 82, 84, 76, 69, 128, 84, 85, 82, 79, 50, 128, 84, 85, 82, 78, 83, 84, 73, 76, 69, - 128, 84, 85, 82, 78, 69, 196, 84, 85, 82, 206, 84, 85, 82, 66, 65, 78, - 128, 84, 85, 82, 128, 84, 85, 80, 128, 84, 85, 79, 88, 128, 84, 85, 79, - 84, 128, 84, 85, 79, 80, 128, 84, 85, 79, 128, 84, 85, 78, 78, 89, 128, - 84, 85, 77, 69, 84, 69, 83, 128, 84, 85, 77, 65, 69, 128, 84, 85, 77, - 128, 84, 85, 76, 73, 80, 128, 84, 85, 75, 87, 69, 78, 84, 73, 83, 128, - 84, 85, 75, 128, 84, 85, 71, 82, 73, 203, 84, 85, 71, 50, 128, 84, 85, - 71, 178, 84, 85, 65, 82, 69, 199, 84, 85, 65, 69, 80, 128, 84, 85, 65, - 69, 128, 84, 213, 84, 84, 85, 85, 128, 84, 84, 85, 68, 68, 65, 71, 128, - 84, 84, 85, 68, 68, 65, 65, 71, 128, 84, 84, 85, 128, 84, 84, 84, 72, 65, - 128, 84, 84, 84, 65, 128, 84, 84, 83, 85, 128, 84, 84, 83, 79, 128, 84, - 84, 83, 73, 128, 84, 84, 83, 69, 69, 128, 84, 84, 83, 69, 128, 84, 84, - 83, 65, 128, 84, 84, 79, 79, 128, 84, 84, 73, 73, 128, 84, 84, 73, 128, - 84, 84, 72, 87, 69, 128, 84, 84, 72, 85, 128, 84, 84, 72, 79, 79, 128, - 84, 84, 72, 79, 128, 84, 84, 72, 73, 128, 84, 84, 72, 69, 69, 128, 84, - 84, 72, 69, 128, 84, 84, 72, 65, 65, 128, 84, 84, 72, 128, 84, 84, 69, - 72, 69, 72, 128, 84, 84, 69, 72, 69, 200, 84, 84, 69, 72, 128, 84, 84, - 69, 200, 84, 84, 69, 69, 128, 84, 84, 65, 89, 65, 78, 78, 65, 128, 84, - 84, 65, 85, 128, 84, 84, 65, 73, 128, 84, 84, 65, 65, 128, 84, 84, 50, - 128, 84, 83, 87, 69, 128, 84, 83, 87, 65, 128, 84, 83, 86, 128, 84, 83, - 83, 69, 128, 84, 83, 83, 65, 128, 84, 83, 72, 85, 71, 83, 128, 84, 83, - 72, 79, 79, 75, 128, 84, 83, 72, 79, 79, 203, 84, 83, 72, 69, 83, 128, - 84, 83, 72, 69, 71, 128, 84, 83, 72, 69, 199, 84, 83, 72, 69, 128, 84, - 83, 72, 65, 128, 84, 83, 69, 82, 69, 128, 84, 83, 65, 68, 73, 128, 84, - 83, 65, 68, 201, 84, 83, 65, 65, 68, 73, 89, 128, 84, 83, 65, 65, 128, - 84, 83, 193, 84, 82, 89, 66, 76, 73, 79, 206, 84, 82, 85, 84, 72, 128, - 84, 82, 85, 78, 75, 128, 84, 82, 85, 78, 67, 65, 84, 69, 196, 84, 82, 85, - 77, 80, 69, 84, 128, 84, 82, 85, 69, 128, 84, 82, 85, 67, 75, 128, 84, - 82, 79, 80, 73, 67, 65, 204, 84, 82, 79, 80, 72, 89, 128, 84, 82, 79, 77, - 73, 75, 79, 83, 89, 78, 65, 71, 77, 65, 128, 84, 82, 79, 77, 73, 75, 79, - 80, 83, 73, 70, 73, 83, 84, 79, 78, 128, 84, 82, 79, 77, 73, 75, 79, 80, - 65, 82, 65, 75, 65, 76, 69, 83, 77, 65, 128, 84, 82, 79, 77, 73, 75, 79, - 78, 128, 84, 82, 79, 77, 73, 75, 79, 206, 84, 82, 79, 77, 73, 75, 79, 76, - 89, 71, 73, 83, 77, 65, 128, 84, 82, 79, 76, 76, 69, 89, 66, 85, 83, 128, - 84, 82, 79, 75, 85, 84, 65, 83, 84, 201, 84, 82, 79, 69, 90, 69, 78, 73, - 65, 206, 84, 82, 73, 85, 77, 80, 72, 128, 84, 82, 73, 84, 79, 211, 84, - 82, 73, 84, 73, 77, 79, 82, 73, 79, 78, 128, 84, 82, 73, 83, 73, 77, 79, - 85, 128, 84, 82, 73, 83, 69, 77, 69, 128, 84, 82, 73, 80, 79, 68, 128, - 84, 82, 73, 80, 76, 73, 128, 84, 82, 73, 80, 76, 197, 84, 82, 73, 79, - 206, 84, 82, 73, 73, 83, 65, 80, 128, 84, 82, 73, 71, 82, 65, 77, 77, 79, - 211, 84, 82, 73, 71, 82, 65, 205, 84, 82, 73, 71, 79, 82, 71, 79, 78, - 128, 84, 82, 73, 70, 79, 78, 73, 65, 83, 128, 84, 82, 73, 70, 79, 76, 73, - 65, 84, 197, 84, 82, 73, 68, 69, 78, 84, 128, 84, 82, 73, 68, 69, 78, - 212, 84, 82, 73, 67, 79, 76, 79, 78, 128, 84, 82, 73, 65, 78, 71, 85, 76, - 65, 210, 84, 82, 73, 65, 78, 71, 76, 69, 45, 82, 79, 85, 78, 196, 84, 82, - 73, 65, 78, 71, 76, 69, 45, 72, 69, 65, 68, 69, 196, 84, 82, 73, 65, 78, - 71, 76, 69, 128, 84, 82, 73, 65, 78, 71, 76, 197, 84, 82, 73, 65, 128, - 84, 82, 73, 128, 84, 82, 69, 83, 73, 76, 76, 79, 128, 84, 82, 69, 78, 68, - 128, 84, 82, 69, 78, 196, 84, 82, 69, 77, 79, 76, 79, 45, 51, 128, 84, - 82, 69, 77, 79, 76, 79, 45, 50, 128, 84, 82, 69, 77, 79, 76, 79, 45, 49, - 128, 84, 82, 69, 69, 128, 84, 82, 69, 197, 84, 82, 69, 65, 68, 73, 78, - 71, 128, 84, 82, 65, 89, 128, 84, 82, 65, 80, 69, 90, 73, 85, 77, 128, - 84, 82, 65, 78, 83, 86, 69, 82, 83, 65, 204, 84, 82, 65, 78, 83, 80, 79, - 83, 73, 84, 73, 79, 206, 84, 82, 65, 78, 83, 77, 73, 212, 84, 82, 65, 78, - 83, 77, 73, 83, 83, 73, 79, 78, 128, 84, 82, 65, 78, 83, 77, 73, 83, 83, - 73, 79, 206, 84, 82, 65, 77, 87, 65, 89, 128, 84, 82, 65, 77, 128, 84, - 82, 65, 205, 84, 82, 65, 73, 78, 128, 84, 82, 65, 73, 206, 84, 82, 65, - 73, 76, 73, 78, 199, 84, 82, 65, 70, 70, 73, 67, 128, 84, 82, 65, 70, 70, - 73, 195, 84, 82, 65, 68, 197, 84, 82, 65, 67, 84, 79, 82, 128, 84, 82, - 65, 67, 75, 128, 84, 82, 128, 84, 79, 88, 128, 84, 79, 87, 69, 82, 128, - 84, 79, 85, 82, 78, 79, 73, 211, 84, 79, 84, 65, 204, 84, 79, 84, 128, - 84, 79, 82, 84, 79, 73, 83, 197, 84, 79, 82, 67, 85, 76, 85, 83, 128, 84, - 79, 82, 67, 85, 76, 85, 211, 84, 79, 82, 67, 72, 128, 84, 79, 81, 128, - 84, 79, 80, 66, 65, 82, 128, 84, 79, 80, 45, 76, 73, 71, 72, 84, 69, 196, - 84, 79, 80, 128, 84, 79, 208, 84, 79, 79, 84, 72, 128, 84, 79, 79, 78, - 128, 84, 79, 78, 79, 83, 128, 84, 79, 78, 71, 85, 69, 128, 84, 79, 78, - 71, 85, 197, 84, 79, 78, 71, 128, 84, 79, 78, 69, 45, 56, 128, 84, 79, - 78, 69, 45, 55, 128, 84, 79, 78, 69, 45, 54, 128, 84, 79, 78, 69, 45, 53, - 128, 84, 79, 78, 69, 45, 52, 128, 84, 79, 78, 69, 45, 51, 128, 84, 79, - 78, 69, 45, 50, 128, 84, 79, 78, 69, 45, 49, 128, 84, 79, 78, 69, 128, - 84, 79, 78, 65, 204, 84, 79, 77, 80, 73, 128, 84, 79, 77, 65, 84, 79, - 128, 84, 79, 76, 79, 78, 71, 128, 84, 79, 75, 89, 207, 84, 79, 73, 76, - 69, 84, 128, 84, 79, 71, 69, 84, 72, 69, 82, 128, 84, 79, 68, 207, 84, - 79, 65, 78, 68, 65, 75, 72, 73, 65, 84, 128, 84, 79, 65, 128, 84, 78, + 128, 84, 85, 82, 78, 69, 196, 84, 85, 82, 206, 84, 85, 82, 75, 73, 83, + 200, 84, 85, 82, 66, 65, 78, 128, 84, 85, 82, 128, 84, 85, 80, 128, 84, + 85, 79, 88, 128, 84, 85, 79, 84, 128, 84, 85, 79, 80, 128, 84, 85, 79, + 128, 84, 85, 78, 78, 89, 128, 84, 85, 77, 69, 84, 69, 83, 128, 84, 85, + 77, 65, 69, 128, 84, 85, 77, 128, 84, 85, 76, 73, 80, 128, 84, 85, 75, + 87, 69, 78, 84, 73, 83, 128, 84, 85, 75, 128, 84, 85, 71, 82, 73, 203, + 84, 85, 71, 50, 128, 84, 85, 71, 178, 84, 85, 65, 82, 69, 199, 84, 85, + 65, 69, 80, 128, 84, 85, 65, 69, 128, 84, 213, 84, 84, 85, 85, 128, 84, + 84, 85, 68, 68, 65, 71, 128, 84, 84, 85, 68, 68, 65, 65, 71, 128, 84, 84, + 85, 128, 84, 84, 84, 72, 65, 128, 84, 84, 84, 65, 128, 84, 84, 83, 85, + 128, 84, 84, 83, 79, 128, 84, 84, 83, 73, 128, 84, 84, 83, 69, 69, 128, + 84, 84, 83, 69, 128, 84, 84, 83, 65, 128, 84, 84, 79, 79, 128, 84, 84, + 73, 73, 128, 84, 84, 73, 128, 84, 84, 72, 87, 69, 128, 84, 84, 72, 85, + 128, 84, 84, 72, 79, 79, 128, 84, 84, 72, 79, 128, 84, 84, 72, 73, 128, + 84, 84, 72, 69, 69, 128, 84, 84, 72, 69, 128, 84, 84, 72, 65, 65, 128, + 84, 84, 72, 128, 84, 84, 69, 72, 69, 72, 128, 84, 84, 69, 72, 69, 200, + 84, 84, 69, 72, 128, 84, 84, 69, 200, 84, 84, 69, 69, 128, 84, 84, 65, + 89, 65, 78, 78, 65, 128, 84, 84, 65, 85, 128, 84, 84, 65, 73, 128, 84, + 84, 65, 65, 128, 84, 84, 50, 128, 84, 83, 87, 69, 128, 84, 83, 87, 65, + 128, 84, 83, 86, 128, 84, 83, 83, 69, 128, 84, 83, 83, 65, 128, 84, 83, + 72, 85, 71, 83, 128, 84, 83, 72, 79, 79, 75, 128, 84, 83, 72, 79, 79, + 203, 84, 83, 72, 69, 83, 128, 84, 83, 72, 69, 71, 128, 84, 83, 72, 69, + 199, 84, 83, 72, 69, 128, 84, 83, 72, 65, 128, 84, 83, 69, 82, 69, 128, + 84, 83, 65, 68, 73, 128, 84, 83, 65, 68, 201, 84, 83, 65, 65, 68, 73, 89, + 128, 84, 83, 65, 65, 128, 84, 83, 193, 84, 82, 89, 66, 76, 73, 79, 206, + 84, 82, 85, 84, 72, 128, 84, 82, 85, 78, 75, 128, 84, 82, 85, 78, 67, 65, + 84, 69, 196, 84, 82, 85, 77, 80, 69, 84, 128, 84, 82, 85, 69, 128, 84, + 82, 85, 67, 75, 128, 84, 82, 79, 80, 73, 67, 65, 204, 84, 82, 79, 80, 72, + 89, 128, 84, 82, 79, 77, 73, 75, 79, 83, 89, 78, 65, 71, 77, 65, 128, 84, + 82, 79, 77, 73, 75, 79, 80, 83, 73, 70, 73, 83, 84, 79, 78, 128, 84, 82, + 79, 77, 73, 75, 79, 80, 65, 82, 65, 75, 65, 76, 69, 83, 77, 65, 128, 84, + 82, 79, 77, 73, 75, 79, 78, 128, 84, 82, 79, 77, 73, 75, 79, 206, 84, 82, + 79, 77, 73, 75, 79, 76, 89, 71, 73, 83, 77, 65, 128, 84, 82, 79, 76, 76, + 69, 89, 66, 85, 83, 128, 84, 82, 79, 75, 85, 84, 65, 83, 84, 201, 84, 82, + 79, 69, 90, 69, 78, 73, 65, 206, 84, 82, 73, 85, 77, 80, 72, 128, 84, 82, + 73, 84, 79, 211, 84, 82, 73, 84, 73, 77, 79, 82, 73, 79, 78, 128, 84, 82, + 73, 83, 73, 77, 79, 85, 128, 84, 82, 73, 83, 69, 77, 69, 128, 84, 82, 73, + 80, 79, 68, 128, 84, 82, 73, 80, 76, 73, 128, 84, 82, 73, 80, 76, 197, + 84, 82, 73, 79, 206, 84, 82, 73, 73, 83, 65, 80, 128, 84, 82, 73, 71, 82, + 65, 77, 77, 79, 211, 84, 82, 73, 71, 82, 65, 205, 84, 82, 73, 71, 79, 82, + 71, 79, 78, 128, 84, 82, 73, 70, 79, 78, 73, 65, 83, 128, 84, 82, 73, 70, + 79, 76, 73, 65, 84, 197, 84, 82, 73, 68, 69, 78, 84, 128, 84, 82, 73, 68, + 69, 78, 212, 84, 82, 73, 67, 79, 76, 79, 78, 128, 84, 82, 73, 65, 78, 71, + 85, 76, 65, 210, 84, 82, 73, 65, 78, 71, 76, 69, 45, 82, 79, 85, 78, 196, + 84, 82, 73, 65, 78, 71, 76, 69, 45, 72, 69, 65, 68, 69, 196, 84, 82, 73, + 65, 78, 71, 76, 69, 128, 84, 82, 73, 65, 78, 71, 76, 197, 84, 82, 73, 65, + 128, 84, 82, 73, 128, 84, 82, 69, 83, 73, 76, 76, 79, 128, 84, 82, 69, + 78, 68, 128, 84, 82, 69, 78, 196, 84, 82, 69, 77, 79, 76, 79, 45, 51, + 128, 84, 82, 69, 77, 79, 76, 79, 45, 50, 128, 84, 82, 69, 77, 79, 76, 79, + 45, 49, 128, 84, 82, 69, 69, 128, 84, 82, 69, 197, 84, 82, 69, 65, 68, + 73, 78, 71, 128, 84, 82, 65, 89, 128, 84, 82, 65, 80, 69, 90, 73, 85, 77, + 128, 84, 82, 65, 78, 83, 86, 69, 82, 83, 65, 204, 84, 82, 65, 78, 83, 80, + 79, 83, 73, 84, 73, 79, 206, 84, 82, 65, 78, 83, 77, 73, 212, 84, 82, 65, + 78, 83, 77, 73, 83, 83, 73, 79, 78, 128, 84, 82, 65, 78, 83, 77, 73, 83, + 83, 73, 79, 206, 84, 82, 65, 77, 87, 65, 89, 128, 84, 82, 65, 77, 128, + 84, 82, 65, 205, 84, 82, 65, 73, 78, 128, 84, 82, 65, 73, 206, 84, 82, + 65, 73, 76, 73, 78, 199, 84, 82, 65, 70, 70, 73, 67, 128, 84, 82, 65, 70, + 70, 73, 195, 84, 82, 65, 68, 197, 84, 82, 65, 67, 84, 79, 82, 128, 84, + 82, 65, 67, 75, 128, 84, 82, 128, 84, 79, 88, 128, 84, 79, 87, 69, 82, + 128, 84, 79, 85, 82, 78, 79, 73, 211, 84, 79, 84, 65, 204, 84, 79, 84, + 128, 84, 79, 82, 84, 79, 73, 83, 197, 84, 79, 82, 67, 85, 76, 85, 83, + 128, 84, 79, 82, 67, 85, 76, 85, 211, 84, 79, 82, 67, 72, 128, 84, 79, + 81, 128, 84, 79, 80, 66, 65, 82, 128, 84, 79, 80, 45, 76, 73, 71, 72, 84, + 69, 196, 84, 79, 80, 128, 84, 79, 208, 84, 79, 79, 84, 72, 128, 84, 79, + 79, 78, 128, 84, 79, 78, 79, 83, 128, 84, 79, 78, 71, 85, 69, 128, 84, + 79, 78, 71, 85, 197, 84, 79, 78, 71, 128, 84, 79, 78, 69, 45, 56, 128, + 84, 79, 78, 69, 45, 55, 128, 84, 79, 78, 69, 45, 54, 128, 84, 79, 78, 69, + 45, 53, 128, 84, 79, 78, 69, 45, 52, 128, 84, 79, 78, 69, 45, 51, 128, + 84, 79, 78, 69, 45, 50, 128, 84, 79, 78, 69, 45, 49, 128, 84, 79, 78, 69, + 128, 84, 79, 78, 65, 204, 84, 79, 77, 80, 73, 128, 84, 79, 77, 65, 84, + 79, 128, 84, 79, 76, 79, 78, 71, 128, 84, 79, 75, 89, 207, 84, 79, 73, + 76, 69, 84, 128, 84, 79, 71, 69, 84, 72, 69, 82, 128, 84, 79, 68, 207, + 84, 79, 65, 78, 68, 65, 75, 72, 73, 65, 84, 128, 84, 79, 65, 128, 84, 78, 128, 84, 76, 86, 128, 84, 76, 85, 128, 84, 76, 79, 128, 84, 76, 73, 128, 84, 76, 72, 89, 65, 128, 84, 76, 72, 87, 69, 128, 84, 76, 72, 85, 128, 84, 76, 72, 79, 79, 128, 84, 76, 72, 79, 128, 84, 76, 72, 73, 128, 84, @@ -4635,7 +4635,7 @@ static unsigned int lexicon_offset[] = { 557, 850, 860, 867, 873, 879, 886, 894, 898, 749, 906, 915, 503, 923, 928, 934, 17, 943, 948, 951, 955, 959, 966, 969, 976, 980, 988, 992, 1000, 1004, 1007, 1014, 1021, 192, 1024, 1029, 1039, 1048, 1055, 1061, - 1069, 1072, 1077, 1083, 1091, 1097, 1102, 1105, 1108, 111, 1113, 1117, + 1067, 1075, 1078, 1083, 1089, 1097, 1102, 1105, 1108, 111, 1113, 1117, 1123, 1129, 1132, 1138, 1142, 1147, 1153, 1158, 1168, 1172, 1175, 1178, 1187, 1191, 1194, 1199, 1204, 1210, 1215, 1220, 1225, 1229, 1234, 1240, 1245, 1250, 1254, 1260, 1265, 1270, 1275, 1279, 1284, 1289, 1294, 1300, @@ -4755,7373 +4755,7374 @@ static unsigned int lexicon_offset[] = { 8645, 8649, 8653, 8658, 8665, 8676, 8684, 8694, 8700, 8707, 8712, 8716, 8727, 8740, 8751, 8764, 8775, 8787, 8799, 8811, 8824, 8837, 8844, 8850, 8864, 8871, 8877, 8881, 8886, 8890, 8897, 8905, 8909, 8915, 8919, 8925, - 8935, 8939, 8944, 8949, 8956, 8962, 8972, 7909, 8978, 8982, 8989, 768, - 8993, 8997, 9002, 9007, 9012, 9016, 9022, 9030, 9036, 9040, 9046, 9056, - 9060, 9066, 9071, 9075, 9081, 9087, 2161, 9092, 9094, 9099, 9107, 9116, - 9120, 9126, 9131, 9136, 9141, 9146, 9152, 9157, 9162, 4006, 9167, 9172, - 9176, 9182, 9187, 9193, 9198, 9203, 9209, 9214, 9121, 9220, 9224, 9231, - 9237, 9242, 9246, 6183, 9251, 9260, 9265, 9270, 8218, 8225, 9275, 2853, - 9279, 9284, 9289, 9132, 9293, 9298, 9137, 9142, 9303, 9310, 9317, 9323, - 9329, 9335, 9340, 9345, 9350, 9147, 9153, 9356, 9362, 9367, 9375, 9158, - 9380, 990, 9383, 9391, 9397, 9403, 9412, 9420, 9425, 9431, 9439, 9446, - 9461, 9478, 9497, 9506, 9514, 9529, 9540, 9550, 9560, 9568, 9574, 9586, - 9595, 9603, 9610, 9617, 9623, 9628, 9636, 9646, 9653, 9663, 9673, 9683, - 9691, 9698, 9707, 9717, 9731, 9746, 9755, 9763, 9768, 9772, 9781, 9787, - 9792, 9802, 9812, 9822, 9827, 9831, 9840, 9845, 9855, 9866, 9879, 9887, - 9900, 9912, 9920, 9925, 9929, 9935, 9940, 9948, 9956, 9963, 9968, 9976, - 9982, 9985, 9989, 9995, 10003, 10008, 10012, 10020, 10029, 10037, 10043, - 10047, 10054, 10065, 10069, 10072, 10078, 9163, 10083, 10089, 10096, - 10102, 10107, 10114, 10121, 10128, 10135, 10142, 10149, 10156, 10163, - 10168, 9474, 10173, 10179, 10186, 10193, 10198, 10205, 10214, 10218, - 10230, 8256, 10234, 10237, 10241, 10245, 10249, 10253, 10259, 10265, - 10270, 10276, 10281, 10286, 10292, 10297, 10302, 8952, 10307, 10311, - 10315, 10319, 10324, 10329, 10337, 10343, 10347, 10351, 10358, 10363, - 10371, 10376, 10380, 10383, 10389, 10396, 10400, 10403, 10408, 10412, - 4045, 10418, 10427, 36, 10435, 10441, 10446, 8967, 10451, 10456, 10460, - 10463, 10478, 10497, 10509, 10522, 10535, 10548, 10562, 10575, 10590, - 10597, 9168, 10603, 10617, 10622, 10628, 10633, 10641, 10646, 8040, - 10651, 10654, 10661, 10666, 10670, 2858, 998, 10676, 10680, 10686, 10692, - 10697, 10703, 10708, 9177, 10714, 10720, 10725, 10730, 10738, 10744, - 10757, 10765, 10772, 9183, 10778, 10786, 10794, 10801, 10814, 10826, - 10836, 10844, 10851, 10858, 10867, 10876, 10884, 10891, 10896, 10902, - 9188, 10907, 10913, 9194, 10918, 10921, 10928, 10934, 10947, 8669, 10958, - 10964, 10973, 10981, 10988, 10994, 11000, 11005, 11009, 11014, 10470, - 11020, 9199, 11027, 11032, 11039, 11045, 11051, 11056, 11064, 11072, - 11079, 11083, 11097, 11107, 11112, 11116, 11127, 11133, 11138, 11143, - 9204, 9210, 11147, 11150, 11155, 11167, 11174, 11179, 11183, 11188, - 11192, 11199, 11205, 9215, 9122, 11212, 2863, 8, 11219, 11224, 11228, - 11234, 11242, 11252, 11257, 11262, 11269, 11276, 11280, 11291, 11301, - 11310, 11322, 11327, 11331, 11339, 11353, 11357, 11360, 11368, 11375, - 11383, 11387, 11398, 11402, 11409, 11414, 11418, 11424, 11429, 11433, - 11439, 11444, 11455, 11459, 11462, 11468, 11473, 11479, 11485, 11492, - 11503, 11513, 11523, 11532, 11539, 11548, 9225, 9232, 9238, 9243, 11554, - 11560, 9247, 11566, 11569, 11576, 11581, 11596, 11612, 11627, 11635, - 11641, 11646, 838, 420, 11651, 11659, 11666, 11672, 11677, 11682, 9252, - 11684, 11688, 11693, 11697, 11707, 11712, 11716, 11725, 11729, 11732, - 9261, 11739, 11742, 11750, 11757, 11765, 11769, 11776, 11785, 11788, - 11792, 11796, 11802, 11806, 11810, 11814, 11820, 11830, 11834, 11842, - 11846, 11853, 11857, 11862, 11866, 11873, 11879, 11887, 11893, 11898, - 11908, 11913, 11918, 11922, 11930, 3905, 11938, 11943, 9266, 11947, - 11951, 11954, 11962, 11969, 11973, 5991, 11977, 11982, 11986, 11997, - 12007, 12012, 12018, 12022, 12025, 12033, 12038, 12043, 12050, 12055, - 9271, 12060, 12064, 12071, 1722, 6145, 12076, 12081, 12086, 12091, 12097, - 12102, 12108, 12113, 12118, 12123, 12128, 12133, 12138, 12143, 12148, - 12153, 12158, 12163, 12168, 12173, 12178, 12183, 12188, 12194, 12199, - 12204, 12209, 12214, 12219, 12225, 12230, 12235, 12241, 12246, 12252, - 12257, 12263, 12268, 12273, 12278, 12283, 12289, 12294, 12299, 12304, - 737, 139, 12312, 12316, 12321, 12326, 12330, 12334, 12338, 12343, 12347, - 12352, 12356, 12359, 12363, 12367, 12373, 12378, 12388, 12394, 12402, - 12406, 12410, 12417, 12425, 12434, 12445, 12452, 12459, 12463, 12472, - 12481, 12489, 12498, 12507, 12516, 12525, 12535, 12545, 12555, 12565, - 12575, 12584, 12594, 12604, 12614, 12624, 12634, 12644, 12654, 12663, - 12673, 12683, 12693, 12703, 12713, 12723, 12732, 12742, 12752, 12762, - 12772, 12782, 12792, 12802, 12812, 12822, 12831, 12841, 12851, 12861, - 12871, 12881, 12891, 12901, 12911, 12921, 12931, 12940, 1256, 12946, - 12949, 12953, 12958, 12965, 12971, 12976, 12980, 12985, 12994, 13002, - 13007, 13011, 13015, 13021, 13026, 13032, 9280, 13037, 13042, 13051, - 9285, 13056, 13059, 13065, 13073, 9290, 13080, 13084, 13088, 13092, - 13102, 13108, 13114, 13119, 13128, 13136, 13143, 13150, 13155, 13162, - 13167, 13171, 13174, 13185, 13195, 13204, 13212, 13223, 13235, 13245, - 13250, 13254, 13259, 13264, 13268, 13274, 13282, 13289, 13300, 13305, - 13315, 13319, 13322, 13329, 13339, 13348, 13355, 13359, 13366, 13372, - 13377, 13382, 13386, 13395, 13400, 13406, 13410, 13415, 13419, 13428, - 13436, 13444, 13451, 13459, 13471, 13482, 13492, 13499, 13505, 13514, - 13525, 13534, 13546, 13558, 13570, 13580, 13589, 13598, 13606, 13613, - 13622, 13630, 13634, 13640, 13646, 13651, 7753, 13655, 13657, 13661, - 13666, 13672, 13681, 13685, 13693, 13700, 13709, 13718, 13727, 13736, - 13745, 13754, 13763, 13772, 13782, 13792, 13801, 13807, 13814, 13821, - 13827, 13841, 13848, 13856, 13865, 13871, 13880, 13889, 13900, 13910, - 13918, 13925, 13933, 13942, 13955, 13963, 13970, 13983, 13989, 13995, - 14005, 14014, 14023, 14028, 14032, 14038, 14044, 14051, 8966, 14056, - 14061, 14068, 14073, 12369, 14078, 14086, 14092, 14097, 14105, 14113, - 14120, 14128, 14134, 14142, 14150, 14156, 14161, 14167, 14174, 14180, - 14185, 14189, 14200, 14208, 14214, 14219, 14228, 14234, 14239, 14248, - 14262, 3853, 14266, 14271, 14276, 14282, 14287, 14292, 14296, 14301, - 14306, 14311, 7752, 14316, 14321, 14326, 14331, 14336, 14340, 14345, - 14350, 14355, 14360, 14366, 14372, 14377, 14381, 14386, 14391, 14396, - 9294, 14401, 14406, 14411, 14416, 14421, 14438, 14456, 14468, 14481, - 14498, 14514, 14531, 14541, 14560, 14571, 14582, 14593, 14604, 14616, - 14627, 14638, 14655, 14666, 14677, 14682, 9299, 14687, 14691, 2381, - 14695, 14698, 14704, 14712, 14720, 14725, 14733, 14741, 14748, 14753, - 14759, 14766, 14774, 14781, 14793, 14801, 14806, 11590, 14812, 14821, - 14830, 14838, 14845, 14851, 14859, 14866, 14872, 14879, 14885, 14894, - 14902, 14912, 14919, 14925, 14933, 14939, 14947, 14954, 14967, 14974, - 14983, 14992, 15001, 15009, 15019, 15026, 15031, 3560, 15038, 15043, - 1372, 15047, 14317, 15051, 15057, 15061, 15069, 15081, 15086, 15093, - 15099, 15104, 15111, 14322, 15115, 15119, 15123, 14327, 15127, 14332, - 15131, 15138, 15143, 15147, 15154, 15158, 15166, 15173, 15177, 15184, - 15201, 15210, 15214, 15217, 15225, 15231, 15236, 3638, 15240, 15242, - 15250, 15257, 15267, 15279, 15284, 15290, 15295, 15299, 15305, 15310, - 15316, 15319, 15326, 15334, 15341, 15347, 15353, 15358, 15365, 15371, - 15376, 15383, 15387, 15393, 15397, 15404, 15410, 15416, 15424, 15430, - 15435, 15441, 15449, 15457, 15463, 15469, 15474, 15481, 15486, 15490, - 15496, 15501, 15508, 15513, 15519, 15522, 15528, 15534, 15537, 15541, - 15553, 15559, 15564, 15571, 15577, 15583, 15594, 15604, 15613, 15621, - 15628, 15639, 15649, 15659, 15667, 15670, 14346, 15675, 15680, 14351, - 14486, 15688, 15701, 15716, 15727, 14503, 15745, 15758, 15771, 15782, - 10485, 15793, 15806, 15825, 15836, 15847, 15858, 2649, 15871, 15875, - 15883, 15898, 15913, 15924, 15931, 15937, 15945, 15949, 15955, 15958, - 15968, 15976, 15983, 15991, 16001, 16006, 16013, 16018, 16025, 16036, - 16046, 16052, 16057, 16062, 14356, 16066, 16072, 16078, 16083, 16088, - 16093, 16097, 14361, 14367, 16101, 14373, 16106, 16114, 16123, 16130, - 9143, 16134, 16136, 16141, 16146, 16152, 16157, 16162, 16167, 16172, - 16176, 16182, 16188, 16193, 16199, 16204, 16209, 16215, 16220, 16225, - 16230, 16235, 16241, 16246, 16251, 16257, 16263, 16268, 16273, 16280, - 16286, 16297, 16304, 16309, 16313, 16317, 16320, 16328, 16333, 16340, - 16347, 16353, 16358, 16363, 16370, 16380, 16385, 16392, 16398, 16408, - 16418, 16432, 16446, 16460, 16474, 16489, 16504, 16521, 16539, 16552, - 16558, 16563, 16568, 16572, 16577, 16585, 16591, 16596, 16601, 16605, - 16610, 16614, 16619, 16623, 16634, 16640, 16645, 16650, 16657, 16662, - 16666, 16671, 16676, 16682, 16689, 16695, 16700, 16704, 16710, 16715, - 16720, 16724, 16730, 16735, 16740, 16747, 16752, 13104, 16756, 16761, - 16765, 16770, 16776, 16782, 16789, 16799, 16807, 16814, 16819, 16823, - 16832, 16840, 16847, 16854, 16860, 16866, 16871, 16876, 16882, 16887, - 16893, 16898, 16904, 16910, 16917, 16923, 16928, 16933, 9341, 16942, - 16945, 16951, 16956, 16961, 16971, 16978, 16984, 16989, 16994, 17000, - 17005, 17011, 17016, 17022, 17028, 17033, 17041, 17048, 17053, 17058, - 17064, 17069, 17073, 17082, 17093, 17100, 17105, 17113, 17119, 17126, - 17132, 17137, 17141, 17147, 17152, 17157, 17162, 1440, 7777, 2877, 17166, - 17170, 17174, 17178, 17182, 17186, 17189, 17196, 17204, 14387, 17211, - 17221, 17229, 17236, 17244, 17254, 17263, 17276, 17281, 17286, 17294, - 17301, 13200, 13209, 17308, 17318, 17333, 17339, 17346, 17353, 17359, - 17367, 17377, 17387, 14392, 17396, 17402, 17408, 17416, 17424, 17429, - 17438, 17446, 17458, 17468, 17478, 17488, 17497, 17509, 17519, 17529, - 17540, 17545, 17557, 17569, 17581, 17593, 17605, 17617, 17629, 17641, - 17653, 17665, 17676, 17688, 17700, 17712, 17724, 17736, 17748, 17760, - 17772, 17784, 17796, 17807, 17819, 17831, 17843, 17855, 17867, 17879, - 17891, 17903, 17915, 17927, 17938, 17950, 17962, 17974, 17986, 17998, - 18010, 18022, 18034, 18046, 18058, 18069, 18081, 18093, 18105, 18117, - 18129, 18141, 18153, 18165, 18177, 18189, 18200, 18212, 18224, 18236, - 18248, 18260, 18272, 18284, 18296, 18308, 18320, 18331, 18343, 18355, - 18367, 18379, 18391, 18403, 18415, 18427, 18439, 18451, 18462, 18474, - 18486, 18498, 18510, 18523, 18536, 18549, 18562, 18575, 18588, 18601, - 18613, 18626, 18639, 18652, 18665, 18678, 18691, 18704, 18717, 18730, - 18743, 18755, 18768, 18781, 18794, 18807, 18820, 18833, 18846, 18859, - 18872, 18885, 18897, 18910, 18923, 18936, 18949, 18962, 18975, 18988, - 19001, 19014, 19027, 19039, 19052, 19065, 19078, 19091, 19104, 19117, - 19130, 19143, 19156, 19169, 19181, 19194, 19207, 19220, 19233, 19246, - 19259, 19272, 19285, 19298, 19311, 19323, 19334, 19347, 19360, 19373, - 19386, 19399, 19412, 19425, 19438, 19451, 19464, 19476, 19489, 19502, - 19515, 19528, 19541, 19554, 19567, 19580, 19593, 19606, 19618, 19631, - 19644, 19657, 19670, 19683, 19696, 19709, 19722, 19735, 19748, 19760, - 19773, 19786, 19799, 19812, 19825, 19838, 19851, 19864, 19877, 19890, - 19902, 19915, 19928, 19941, 19954, 19967, 19980, 19993, 20006, 20019, - 20032, 20044, 20057, 20070, 20083, 20096, 20109, 20122, 20135, 20148, - 20161, 20174, 20186, 20199, 20212, 20225, 20238, 20251, 20264, 20277, - 20290, 20303, 20316, 20328, 20341, 20354, 20367, 20380, 20393, 20406, - 20419, 20432, 20445, 20458, 20470, 20483, 20496, 20509, 20522, 20535, - 20548, 20561, 20574, 20587, 20600, 20612, 20625, 20638, 20651, 20664, - 20677, 20690, 20703, 20716, 20729, 20742, 20754, 20765, 20773, 20781, - 20788, 20794, 20798, 20804, 20810, 20818, 20824, 20829, 20833, 20842, - 9148, 20853, 20860, 20868, 20875, 20882, 10941, 20889, 20898, 20903, - 20908, 7805, 20915, 20920, 20923, 20928, 20936, 20943, 20950, 20957, - 20963, 20972, 20981, 20987, 20996, 21000, 21006, 21011, 21021, 21028, - 21034, 21042, 21048, 21055, 21065, 21074, 21078, 21085, 21089, 21094, - 21100, 21108, 21112, 21122, 14402, 21131, 21137, 21141, 21150, 14407, - 21156, 21163, 21174, 21182, 21191, 21199, 8931, 21207, 21212, 21218, - 21223, 21227, 21231, 21235, 9632, 21240, 21248, 21255, 21264, 21271, - 21278, 10871, 21285, 21291, 21295, 21301, 21308, 21314, 21322, 21328, - 21335, 21341, 21347, 21356, 21360, 21368, 21377, 21384, 21389, 21393, - 21404, 21409, 21414, 21419, 21432, 7995, 21436, 21442, 21450, 21454, - 21461, 21470, 21475, 14678, 21483, 21487, 21499, 21504, 21508, 21511, - 21517, 21523, 21528, 21532, 21535, 21546, 21551, 9376, 21558, 21563, - 9381, 21568, 21573, 21578, 21583, 21588, 21593, 21598, 21603, 21608, - 21613, 21618, 21623, 21629, 21634, 21639, 21644, 21649, 21654, 21659, - 21664, 21669, 21674, 21680, 21686, 21691, 21696, 21701, 21706, 21711, - 21716, 21721, 21726, 21731, 21737, 21742, 21747, 21752, 21758, 21764, - 21769, 21774, 21779, 21784, 21789, 21794, 21799, 21804, 21810, 21815, - 21820, 21825, 21830, 21836, 21841, 21846, 21850, 1368, 129, 21858, 21862, - 21866, 21870, 21875, 21879, 13110, 12469, 21883, 21888, 21892, 21897, - 21901, 21906, 21910, 21916, 21921, 21925, 21929, 21937, 21941, 21945, - 21950, 21955, 21959, 21965, 21970, 21974, 21979, 21984, 21988, 21995, - 22002, 22009, 22013, 22017, 22022, 22026, 22029, 22035, 22048, 22053, - 22062, 22067, 9421, 22072, 22075, 2712, 2717, 22079, 22085, 22091, 7209, - 22096, 22101, 22106, 22112, 22117, 13896, 22122, 22127, 22132, 22137, - 22143, 22148, 22153, 22159, 22164, 22168, 22173, 22178, 22183, 22188, - 22192, 22197, 22201, 22206, 22211, 22216, 22221, 22225, 22230, 22234, - 22239, 22244, 22249, 22254, 2886, 22169, 22258, 22266, 22273, 9726, - 22285, 22293, 22174, 22300, 22305, 22313, 22179, 22318, 22323, 22331, - 22336, 22184, 22341, 22346, 22350, 22356, 22364, 22367, 22374, 22378, - 22382, 22388, 22395, 22400, 8958, 1727, 1732, 22404, 22410, 22416, 22421, - 22425, 22429, 22433, 22437, 22441, 22445, 22449, 22452, 22458, 22465, - 22473, 22479, 22485, 22490, 22495, 22499, 13816, 13823, 22504, 22516, - 22519, 22526, 16349, 22533, 22541, 22552, 22561, 22574, 22584, 22598, - 22610, 22624, 22636, 22646, 22658, 22664, 22679, 22703, 22721, 22740, - 22753, 22767, 22785, 22801, 22818, 22836, 22847, 22866, 22883, 22903, - 22921, 22933, 22947, 22961, 22973, 22990, 23009, 23027, 23039, 23057, - 23076, 14546, 23089, 23109, 23121, 10516, 23133, 23138, 23143, 23148, - 23154, 23159, 23163, 23170, 2398, 23174, 23180, 23184, 23187, 23191, - 23199, 23205, 22202, 23209, 23218, 23229, 23235, 23241, 23250, 23258, - 23265, 23270, 23274, 23281, 23287, 23296, 23304, 23311, 23321, 23330, - 23340, 23345, 23354, 23363, 23374, 23385, 3963, 23395, 23399, 23409, - 23417, 23427, 23438, 23443, 23453, 23461, 23468, 23474, 23481, 23486, - 22212, 23490, 23499, 23503, 23506, 23511, 23518, 23527, 23535, 23543, - 23553, 23562, 23568, 23574, 22217, 22222, 23578, 23588, 23598, 23608, - 23616, 23623, 23633, 23641, 23649, 23655, 23663, 930, 23672, 14737, 542, - 23686, 23695, 23703, 23714, 23725, 23735, 23744, 23756, 23765, 23774, - 23780, 23789, 23798, 23808, 23816, 23824, 9353, 23830, 23833, 23837, - 23842, 23847, 9841, 22235, 22240, 23855, 23861, 23867, 23872, 23877, - 23881, 23889, 23895, 23901, 23905, 3525, 23913, 23918, 23923, 23927, - 23931, 9921, 23938, 23946, 23960, 23967, 23973, 9930, 9936, 23981, 23989, - 23996, 24001, 24006, 22245, 24012, 24023, 24027, 24032, 2601, 24037, - 24048, 24054, 24059, 24063, 24067, 24070, 24077, 24084, 24091, 24097, - 24101, 22250, 24106, 24110, 24114, 1037, 24119, 24124, 24129, 24134, - 24139, 24144, 24149, 24154, 24159, 24164, 24169, 24174, 24179, 24184, - 24190, 24195, 24200, 24205, 24210, 24215, 24220, 24226, 24231, 24236, - 24241, 24246, 24251, 24256, 24261, 24267, 24273, 24278, 24284, 24289, - 24294, 5, 24300, 24304, 24308, 24312, 24317, 24321, 24325, 24329, 24333, - 24338, 24342, 24347, 24351, 24354, 24358, 24363, 24367, 24372, 24376, - 24380, 24384, 24389, 24393, 24397, 24407, 24412, 24416, 24420, 24425, - 24430, 24439, 24444, 24449, 24453, 24457, 24470, 24482, 24491, 24500, - 24506, 24511, 24515, 24519, 24529, 24538, 24546, 24552, 24557, 24561, - 24568, 24578, 24587, 24595, 24603, 24610, 24618, 24627, 24636, 24644, - 24649, 24653, 24657, 24660, 24662, 24666, 24670, 24675, 24680, 24684, - 24688, 24691, 24695, 24698, 24702, 24705, 24708, 24712, 24718, 24722, - 24726, 24730, 24735, 24740, 24745, 24749, 24752, 24757, 24763, 24768, - 24774, 24779, 24783, 24787, 24791, 24796, 24800, 24805, 24809, 24813, - 24820, 24824, 24827, 24831, 24837, 24843, 24847, 24851, 24856, 24863, - 24869, 24873, 24882, 24886, 24890, 24893, 24899, 24904, 24910, 1489, - 1791, 24915, 24920, 24925, 24930, 24935, 24940, 24945, 2148, 2194, 24950, - 24953, 24957, 24961, 24966, 24970, 24974, 24977, 24982, 24987, 24991, - 24994, 24999, 25003, 25008, 25012, 14749, 25017, 25020, 25023, 25027, - 25032, 25036, 25049, 25053, 25056, 25064, 25073, 25080, 25085, 25091, - 25097, 25105, 25112, 25119, 25123, 25127, 25131, 25136, 25141, 25145, - 25153, 25158, 25170, 25181, 25186, 25190, 25194, 25200, 25205, 25210, - 25214, 25218, 25221, 25227, 7915, 2316, 25231, 25236, 25252, 9468, 25272, - 25281, 25297, 25301, 25304, 25310, 25320, 25326, 25335, 25350, 25362, - 25373, 25381, 25390, 25396, 25405, 25415, 25426, 25437, 25446, 25453, - 25462, 25470, 25477, 25485, 25492, 25499, 25512, 25519, 25525, 25530, - 25539, 25545, 25550, 25558, 25565, 23419, 25577, 25589, 25603, 25611, - 25618, 25630, 25639, 25648, 25656, 25664, 25672, 25679, 25688, 25696, - 25706, 25715, 25725, 25734, 25743, 25751, 25756, 25760, 25763, 25767, - 25771, 25775, 25779, 25783, 25789, 25795, 25803, 14794, 25810, 25815, - 25822, 25828, 25835, 14802, 25842, 25845, 25857, 25865, 25871, 25876, - 25880, 9871, 25891, 25901, 25910, 25917, 25921, 14807, 25924, 25931, - 25935, 25941, 25944, 25951, 25957, 25964, 25970, 25974, 25979, 25983, - 25992, 25999, 26005, 7956, 26012, 26020, 26027, 26033, 26038, 26044, - 26050, 26058, 26062, 26065, 26067, 25768, 26076, 26082, 26092, 26097, - 26104, 26110, 26115, 26120, 26125, 26129, 26134, 26141, 26150, 26154, - 26161, 26170, 26176, 26181, 26187, 26192, 26199, 26210, 26215, 26219, - 26229, 26235, 26239, 26244, 26254, 26263, 26267, 26274, 26282, 26289, - 26295, 26300, 26308, 26315, 26327, 26336, 26340, 13046, 26348, 26358, - 26362, 25060, 26373, 26378, 26382, 26389, 26396, 21961, 25693, 26401, - 26405, 26408, 22853, 26413, 26427, 26443, 26461, 26480, 26497, 26515, - 22872, 26532, 26552, 22889, 26564, 26576, 15732, 26588, 22909, 26602, - 26614, 10529, 26628, 26633, 26638, 26643, 26649, 26655, 26661, 26665, - 26672, 26677, 26687, 26693, 10176, 26699, 26701, 26706, 26714, 26718, - 26137, 26724, 26731, 11517, 11527, 26738, 26748, 26753, 26757, 26760, - 26766, 26774, 26786, 26796, 26812, 26825, 26839, 15750, 26853, 26860, - 26864, 26867, 26872, 26876, 26883, 26890, 26900, 26905, 26910, 26915, - 26923, 26931, 26940, 26945, 9565, 26949, 26952, 26955, 26960, 26967, - 26972, 26988, 26996, 27004, 9416, 27012, 27017, 27021, 27027, 27033, - 27036, 27042, 27054, 27062, 27069, 27075, 27082, 27093, 27107, 27120, - 27129, 27138, 27150, 27161, 27171, 27180, 27189, 27197, 27208, 7938, - 27215, 27221, 27226, 27232, 27239, 27249, 27259, 27268, 27274, 27281, - 27286, 27293, 27301, 27309, 27321, 6246, 27328, 27337, 27345, 27351, - 27357, 27362, 27366, 27369, 27375, 27382, 27387, 27392, 27396, 27408, - 27419, 27428, 27436, 14934, 27441, 27447, 27453, 11510, 8635, 27458, - 27462, 27465, 27468, 27474, 27482, 27490, 27494, 27498, 27503, 27506, - 27515, 27519, 27527, 27538, 27542, 27548, 27554, 27558, 27564, 27572, - 27594, 27618, 27625, 27632, 27638, 27646, 27652, 27657, 27668, 27686, - 27693, 27701, 27705, 27714, 27727, 27735, 27747, 27758, 27768, 27782, - 27791, 27799, 27811, 9485, 27822, 27833, 27845, 27855, 27864, 27869, - 27873, 27881, 27891, 27896, 27900, 27903, 27906, 27914, 27922, 27931, - 27941, 27950, 27956, 27970, 2663, 27992, 28003, 28012, 28022, 28034, - 28043, 28052, 28062, 28070, 28078, 28087, 28092, 28103, 28108, 28119, - 28123, 28133, 28142, 28150, 28160, 28170, 28178, 28187, 28194, 28202, - 28209, 28218, 28222, 28230, 28237, 28245, 28252, 28263, 28278, 28285, - 28291, 28301, 28310, 28316, 28320, 28327, 28331, 14018, 28337, 28341, - 28346, 28353, 28357, 28361, 28369, 28377, 28383, 28392, 28399, 28404, - 28409, 28419, 23488, 28423, 28426, 28431, 28436, 28441, 28446, 28451, - 28456, 28461, 28466, 28472, 28477, 28482, 28488, 1218, 704, 28493, 28502, - 2364, 28509, 28514, 28518, 28524, 1267, 546, 318, 28529, 28538, 28546, - 28555, 28563, 28574, 28583, 28591, 28595, 28598, 28606, 28614, 28619, - 14762, 28625, 28631, 28637, 5872, 28642, 28646, 28652, 28656, 28663, - 1455, 28669, 28676, 9572, 28680, 28690, 28698, 28704, 28713, 28721, - 28727, 28735, 28742, 11103, 28748, 28755, 28760, 28767, 1496, 2147, - 28773, 28779, 28786, 28797, 28808, 28816, 28823, 28833, 28842, 28850, - 28859, 28866, 28873, 28886, 28897, 1272, 28916, 28921, 28929, 3575, - 28933, 28938, 28942, 1459, 24689, 28952, 28956, 28961, 28965, 3493, - 28971, 28979, 28986, 28997, 29005, 29013, 3576, 279, 29018, 29026, 29034, - 29041, 29047, 29052, 2216, 29059, 29065, 25975, 26205, 29071, 106, 29075, - 29079, 29085, 615, 9321, 29090, 29097, 29103, 2327, 29107, 29111, 15174, - 29114, 29119, 29126, 29132, 29137, 29145, 29152, 29158, 22338, 29162, - 29166, 3646, 16612, 29170, 29175, 29178, 29186, 29194, 29199, 29202, - 29209, 29219, 29231, 29236, 29240, 29248, 29255, 29261, 29268, 29275, - 29278, 29282, 29286, 1463, 29296, 29298, 29303, 29309, 29315, 29320, - 29325, 29330, 29335, 29340, 29345, 29350, 29355, 29360, 29365, 29370, - 29375, 29380, 29385, 29391, 29397, 29403, 29409, 29414, 29419, 29424, - 29430, 29435, 29440, 29445, 29451, 29456, 29462, 29467, 29472, 29477, - 29482, 29488, 29493, 29499, 29504, 29509, 29514, 29519, 29525, 29530, - 29536, 29541, 29546, 29551, 29556, 29561, 29566, 29571, 29576, 29581, - 29587, 29593, 29599, 29604, 29609, 29614, 29619, 29625, 29631, 29637, - 29643, 29649, 29655, 29660, 29666, 29671, 29676, 29681, 29686, 29692, - 2443, 29697, 2450, 2457, 2754, 29702, 2463, 2473, 29708, 29712, 29717, - 29722, 29728, 29733, 29738, 29742, 29747, 29753, 29758, 29763, 29768, - 29774, 29779, 29783, 29787, 29792, 29797, 29802, 29807, 29812, 29818, - 29824, 29829, 29833, 29838, 29844, 29848, 29853, 29858, 29863, 29868, - 29872, 29875, 29880, 29885, 29890, 29895, 29900, 29906, 29912, 29917, - 29922, 29926, 29931, 29936, 29941, 29946, 29951, 29955, 29960, 29965, - 29970, 29974, 29978, 29982, 29987, 29995, 30000, 30006, 30012, 30018, - 30023, 30027, 30030, 30035, 30040, 30044, 30049, 30053, 30058, 30062, - 30065, 30070, 17289, 30075, 30080, 30085, 30093, 21267, 28673, 9019, - 30098, 30103, 30107, 30112, 30116, 30120, 30125, 30129, 30132, 30135, - 30139, 30144, 30148, 30156, 30160, 30163, 30168, 30172, 30176, 30181, - 30186, 30190, 30196, 30201, 30206, 30213, 30220, 30224, 30227, 30233, - 30242, 30249, 30257, 30264, 30268, 30273, 30277, 30281, 30287, 30293, - 30297, 30303, 30308, 30313, 30320, 30326, 30332, 30338, 30344, 30351, - 30357, 30363, 30369, 30375, 30381, 30387, 30393, 30400, 30406, 30413, - 30419, 30425, 30431, 30437, 30443, 30449, 30455, 30461, 30467, 11411, - 30473, 30478, 30483, 30486, 30494, 30499, 30508, 30514, 30519, 30524, - 30529, 30533, 30538, 30543, 30548, 30553, 30558, 30565, 30572, 30578, - 30584, 30589, 16290, 30596, 30602, 30609, 30615, 30621, 30626, 30634, - 30639, 16069, 30643, 30648, 30653, 30659, 30664, 30669, 30673, 30678, - 30683, 30689, 30694, 30699, 30703, 30708, 30713, 30717, 30722, 30727, - 30732, 30736, 30741, 30746, 30751, 30755, 30759, 15280, 30763, 30772, - 30778, 30784, 30793, 30801, 30810, 30818, 30823, 30827, 30834, 30840, - 30844, 30847, 30852, 30861, 30869, 30874, 1495, 30880, 30883, 30887, - 22411, 22417, 30893, 30897, 30908, 30919, 30930, 30942, 30949, 30956, - 30961, 30965, 5909, 755, 21266, 30973, 30978, 30982, 30987, 30991, 30997, - 31002, 31008, 31013, 31019, 31024, 31030, 31035, 31041, 31047, 31053, - 31058, 31014, 31020, 31062, 31067, 31073, 31078, 31084, 31089, 31095, - 31100, 31025, 10414, 31104, 31036, 31042, 31048, 2831, 3423, 31110, - 31113, 31119, 31125, 31131, 31138, 31144, 31150, 31156, 31162, 31168, - 31174, 31180, 31186, 31192, 31198, 31204, 31210, 31217, 31223, 31229, - 31235, 31241, 31247, 31250, 31255, 31258, 31265, 31273, 31278, 31283, - 31289, 31294, 31299, 31303, 31308, 31314, 31319, 31325, 31330, 31336, - 31341, 31347, 31353, 31357, 31362, 31367, 31372, 31377, 31381, 31386, - 31391, 31396, 31402, 31408, 31414, 31420, 31425, 31429, 31432, 31438, - 31444, 31453, 31461, 31468, 31473, 31477, 31481, 31486, 15133, 31491, - 31499, 31505, 3683, 1377, 31510, 31514, 8005, 31520, 31526, 31533, 8014, - 31537, 31543, 31550, 31556, 31565, 31573, 31585, 31589, 31596, 31602, - 31606, 31609, 31618, 31626, 31015, 31631, 31641, 31651, 31661, 31667, - 31672, 31682, 31687, 31700, 31714, 31725, 31737, 31749, 31763, 31776, - 31788, 31800, 14587, 31814, 31819, 31824, 31828, 31832, 31836, 1780, - 27159, 31840, 31845, 31063, 31850, 31853, 31858, 31863, 31868, 31874, - 31880, 10091, 31885, 31892, 15684, 31898, 31903, 31908, 31912, 31917, - 31922, 31068, 31927, 31932, 31937, 31943, 31074, 31948, 31951, 31958, - 31966, 31972, 31978, 31984, 31995, 32000, 32007, 32014, 32021, 32029, - 32038, 32047, 32053, 32059, 32067, 31079, 32072, 32078, 32084, 31085, - 32089, 32094, 32102, 32110, 32116, 32123, 32129, 32136, 32143, 32149, - 32157, 32167, 32174, 32179, 32185, 32190, 32195, 32202, 32211, 32219, - 32224, 32230, 32237, 32245, 32251, 32256, 32262, 32271, 27936, 32278, - 32282, 32287, 32296, 32301, 32306, 32311, 12398, 32319, 32324, 32329, - 32334, 32338, 32343, 32348, 32355, 32360, 32365, 32370, 31090, 21203, - 32376, 2519, 244, 32379, 32382, 32386, 32390, 32400, 32408, 32412, 32419, - 32426, 32430, 32433, 32439, 32447, 32455, 32459, 32463, 32466, 32473, - 32477, 32481, 32488, 32496, 31026, 32503, 32511, 10151, 660, 308, 32523, - 32528, 32533, 32539, 32544, 32549, 3704, 32554, 32557, 32562, 32567, - 32572, 32577, 32582, 32589, 22512, 32594, 32599, 32604, 32609, 32614, - 32620, 32625, 32631, 31261, 32637, 32642, 32648, 32654, 32664, 32669, - 32674, 32678, 32683, 32688, 32693, 32698, 32711, 32716, 22289, 16692, - 3710, 32720, 32725, 32730, 32736, 32741, 32746, 32750, 32755, 32760, - 32766, 32771, 32776, 1382, 32780, 32785, 32790, 32795, 32799, 32804, - 32809, 32814, 32820, 32826, 32831, 32835, 32839, 32844, 32849, 32854, - 32858, 32866, 32870, 32876, 32880, 32887, 16485, 31037, 32893, 32900, - 32908, 32915, 32921, 32934, 32946, 32952, 32956, 2773, 32960, 32964, - 32468, 32973, 32984, 32989, 32994, 32999, 33003, 33008, 22422, 33012, - 33016, 33021, 31043, 21287, 33025, 33030, 33036, 33041, 33045, 33049, - 33052, 33056, 33062, 33073, 33085, 31049, 33090, 33093, 33097, 347, - 33102, 33107, 33112, 33117, 33122, 33127, 33133, 33138, 33143, 33149, - 33154, 33160, 33165, 33171, 33176, 33181, 33186, 33191, 33196, 33201, - 33206, 33211, 33217, 33222, 33227, 33232, 33237, 33242, 33247, 33252, - 33258, 33264, 33269, 33274, 33279, 33284, 33289, 33294, 33299, 33304, - 33309, 33314, 33319, 33324, 33329, 33334, 33339, 33344, 33349, 33354, - 33360, 313, 26, 33365, 33369, 33373, 33381, 33385, 33389, 33392, 33395, - 33397, 33402, 33406, 33411, 33415, 33420, 33424, 33429, 33433, 33436, - 33438, 33442, 33447, 33451, 33462, 33465, 33467, 33471, 33483, 33492, - 33496, 33500, 33506, 33511, 33520, 33526, 33531, 33536, 33540, 33545, - 33552, 33557, 33563, 33568, 33572, 33579, 25701, 25711, 33583, 33588, - 33593, 33598, 33605, 33609, 33616, 8113, 33622, 33631, 33639, 33654, - 33668, 33676, 33687, 33696, 33701, 7227, 33711, 33716, 33721, 33725, - 33728, 33732, 33737, 33741, 33748, 33753, 33758, 8912, 33768, 33770, - 33773, 33777, 33783, 33787, 33792, 33797, 33803, 33808, 33814, 33819, - 33829, 33838, 33846, 33851, 33857, 33862, 33869, 33873, 33881, 33888, - 33901, 33909, 33913, 33923, 33928, 33932, 33940, 33948, 33952, 33961, - 33967, 33972, 33980, 33990, 33999, 34008, 34017, 34028, 34036, 34047, - 34056, 34063, 34069, 34074, 34085, 34090, 34094, 34097, 34101, 34109, - 34115, 34123, 34130, 34136, 34141, 34147, 2418, 34151, 34153, 34158, - 34163, 34168, 34171, 34173, 34177, 34180, 34187, 34191, 9884, 34195, - 34201, 34211, 34216, 34222, 34226, 34231, 34244, 26087, 34250, 34259, - 17462, 34266, 34275, 31647, 34283, 34288, 34292, 34300, 34307, 34312, - 34316, 34321, 34325, 34333, 34339, 34345, 34350, 34354, 34357, 34362, - 34375, 34391, 22979, 34408, 34420, 34437, 34449, 34463, 22996, 23015, - 34475, 34487, 2680, 34501, 34506, 34511, 34516, 34520, 34527, 34539, - 34545, 34548, 34559, 34570, 34575, 32064, 695, 34579, 34583, 34587, - 34590, 34595, 34600, 34606, 34611, 34616, 34622, 34628, 34633, 34637, - 34642, 34647, 34652, 34656, 34659, 34665, 34670, 34675, 34680, 34684, - 34689, 34695, 34703, 26320, 34708, 34713, 34720, 34726, 34732, 34737, - 34745, 22521, 34752, 34757, 34762, 34767, 34771, 34774, 34779, 34783, - 34787, 34794, 34800, 34806, 34812, 34819, 34824, 34830, 33943, 34834, - 34838, 34843, 34856, 34861, 34867, 34875, 34882, 34890, 34900, 34906, - 34912, 34918, 34922, 34931, 34939, 34946, 34951, 34956, 10437, 34961, - 34969, 34976, 34982, 34992, 34997, 35003, 35011, 3608, 35018, 35025, - 3614, 35029, 35034, 35045, 35052, 35058, 35067, 35071, 4015, 35074, - 35081, 35087, 35093, 35101, 35111, 29042, 35118, 35126, 35131, 35137, - 35142, 25947, 35148, 35155, 35161, 35170, 23660, 35177, 35182, 35186, - 35194, 35202, 9600, 5895, 35209, 35213, 35215, 35219, 35224, 35226, - 35232, 35237, 35242, 35249, 32585, 35255, 35260, 35264, 35269, 35273, - 35282, 35286, 35292, 35299, 35305, 35312, 35317, 35326, 35331, 35335, - 35340, 35347, 35355, 35363, 35368, 21343, 35372, 35375, 35379, 35383, - 35387, 35390, 35392, 35400, 35404, 35411, 35415, 35419, 35427, 35434, - 35444, 35448, 35452, 35460, 35468, 35474, 35479, 35488, 13350, 35494, - 35503, 35508, 35515, 35523, 35531, 35539, 35546, 35553, 35560, 35567, - 35574, 35579, 35585, 35602, 35610, 35620, 35628, 35635, 407, 35639, - 35645, 35649, 35654, 33692, 35660, 35663, 35667, 35675, 3619, 35683, - 35689, 35695, 35704, 35714, 35721, 35727, 3625, 3631, 35736, 35743, - 35751, 35756, 35760, 35767, 35775, 35782, 35788, 35797, 35807, 35813, - 35821, 35830, 35837, 35845, 35852, 22019, 35856, 35863, 35869, 35879, - 35888, 35899, 35903, 35913, 35919, 35926, 35934, 35943, 35952, 35962, - 35973, 35980, 35985, 35992, 3029, 36000, 36006, 36011, 36017, 36023, - 36028, 36041, 36054, 36067, 36074, 36080, 36088, 36096, 36101, 36105, - 1469, 36109, 36114, 36119, 36124, 36129, 36135, 36140, 36145, 36150, - 36155, 36160, 36165, 36170, 36176, 36182, 36187, 36192, 36198, 36203, - 36208, 36213, 36219, 36224, 36229, 36234, 36239, 36245, 36250, 36255, - 36261, 36266, 36271, 36276, 36281, 36286, 36292, 36297, 36303, 36308, - 36314, 36319, 36324, 36329, 36335, 36341, 36347, 36353, 36359, 36365, - 36371, 36377, 36382, 36387, 36393, 36398, 36403, 36408, 36413, 36418, - 36423, 36428, 36434, 36439, 36444, 36450, 36456, 101, 36461, 36463, - 36467, 36471, 36475, 36480, 36484, 9521, 36488, 36494, 1741, 6280, 36500, - 36503, 36508, 36512, 36517, 36521, 36525, 36530, 10238, 36534, 36538, - 36542, 36546, 15372, 36551, 36555, 36560, 36565, 36570, 36574, 36581, - 26111, 36587, 36590, 36594, 36599, 36605, 36609, 36617, 36623, 36628, - 36632, 36638, 36642, 36646, 3462, 3467, 29234, 36649, 36653, 36657, - 36661, 36669, 36676, 36680, 36687, 36692, 317, 36697, 36701, 36707, - 36719, 36725, 36731, 36735, 36741, 36750, 36754, 36758, 36763, 36769, - 36774, 36778, 36783, 36787, 36791, 36798, 36804, 36809, 36824, 36839, - 36854, 36870, 36888, 10188, 36902, 36909, 36913, 36916, 36925, 36930, - 36934, 36942, 33894, 36950, 36954, 36964, 36975, 29204, 36988, 36992, - 37001, 37009, 9778, 14900, 37013, 22434, 37016, 30152, 37021, 9777, - 37026, 37032, 37037, 37043, 37048, 37054, 37059, 37065, 37070, 37076, - 37082, 37088, 37093, 37049, 37055, 37060, 37066, 37071, 37077, 37083, - 8126, 3874, 37097, 37105, 37109, 37112, 37116, 37121, 37126, 37132, - 37138, 37143, 37147, 25959, 37151, 37155, 37161, 37165, 9042, 37174, - 37181, 37185, 11868, 37192, 37198, 37203, 37210, 37217, 37224, 28550, - 8049, 37231, 37238, 37245, 37251, 37256, 37263, 37274, 37280, 37285, - 37290, 37295, 37302, 37050, 37306, 37316, 37327, 37333, 37338, 37343, - 37348, 37353, 37358, 37362, 37366, 37372, 37380, 2319, 865, 10254, 10266, - 10271, 10277, 37389, 10282, 10287, 10293, 37394, 37404, 37408, 10298, - 37413, 16890, 37416, 37421, 37425, 37430, 37435, 37442, 37449, 37453, - 37456, 37464, 10201, 37471, 37474, 37480, 37490, 5929, 37499, 37503, - 37511, 37515, 37525, 37531, 37542, 37548, 37554, 37559, 37565, 37571, - 37577, 37582, 37585, 37592, 37598, 37603, 37610, 37617, 37621, 37631, - 37644, 37653, 37662, 37673, 37686, 37697, 37706, 37717, 37722, 37731, - 37736, 10303, 37742, 37749, 37757, 37762, 37766, 37773, 37780, 3829, 16, - 37784, 37789, 16744, 37793, 37796, 37799, 28056, 37803, 28559, 37811, - 37815, 37819, 37822, 37828, 37072, 37834, 37842, 37848, 37855, 28039, - 37859, 28233, 37863, 37872, 37878, 37884, 37889, 37893, 37899, 37903, - 37911, 37919, 26177, 37925, 37932, 37938, 37943, 37948, 37952, 37958, - 37963, 37969, 4056, 791, 37976, 37980, 37983, 15262, 37995, 35826, 38006, - 38009, 38016, 38020, 38026, 38030, 38036, 38041, 38047, 38052, 38057, - 38061, 38065, 38070, 38075, 38085, 38091, 38104, 38110, 38116, 38123, - 38128, 38134, 38139, 16630, 1472, 1019, 31193, 31199, 38144, 31205, - 31218, 31224, 31230, 38150, 31236, 31242, 38156, 38162, 22, 38170, 38177, - 38181, 38185, 38193, 31953, 38197, 38201, 38208, 38213, 38217, 38222, - 38228, 38233, 38239, 38244, 38248, 38252, 38256, 38261, 38265, 38270, - 38274, 38281, 38286, 38290, 38295, 38299, 38304, 38308, 38313, 38319, - 15482, 15487, 38324, 38328, 38331, 38335, 21170, 38340, 38344, 38350, - 38357, 38362, 38372, 38377, 38385, 38389, 38392, 31968, 38396, 4109, - 38401, 38406, 38410, 38415, 38419, 38424, 13368, 38435, 38439, 38442, - 38447, 38451, 38455, 38458, 38462, 8145, 13384, 38465, 38468, 38474, - 38479, 38485, 38490, 38496, 38501, 38507, 38512, 38518, 38524, 38530, - 38535, 38539, 38543, 38552, 38568, 38584, 38594, 27946, 38601, 38605, - 38610, 38615, 38619, 38623, 35947, 38629, 38634, 38638, 38645, 38650, - 38654, 38658, 26979, 38664, 21438, 38669, 38676, 38684, 38690, 38697, - 38705, 38711, 38715, 38721, 38729, 38733, 38742, 9502, 38750, 38754, - 38762, 38769, 38774, 38779, 38783, 38786, 38790, 38793, 38797, 38804, - 38809, 38815, 26398, 31256, 38819, 38826, 38832, 38838, 38843, 38846, - 38848, 38855, 38862, 38868, 38872, 38875, 38879, 38883, 38887, 38892, - 38896, 38900, 38903, 38907, 38921, 23045, 38940, 38953, 38966, 38979, - 23063, 38994, 10490, 39009, 39015, 39019, 39023, 39030, 39035, 39039, - 39046, 39052, 39057, 39063, 39073, 39085, 39096, 39101, 39108, 39112, - 39116, 39119, 15878, 3677, 39127, 15509, 39140, 39147, 39151, 39155, - 39160, 39165, 39171, 39175, 39179, 39182, 7742, 15520, 39187, 39191, - 39197, 39206, 39211, 39218, 35803, 39224, 39229, 39233, 39238, 39245, - 39249, 39252, 39256, 39261, 14552, 39268, 39275, 1066, 39279, 39284, - 39289, 39295, 39300, 39305, 39309, 39319, 39324, 39330, 39335, 39341, - 39346, 39352, 39362, 39367, 39372, 39376, 7229, 7241, 39381, 39384, - 39391, 39397, 34059, 34066, 39406, 39410, 32016, 39418, 39429, 39437, - 35995, 39444, 39449, 39454, 39465, 39472, 39483, 32040, 21444, 39491, - 735, 39496, 39502, 28030, 39508, 39513, 39523, 39532, 39539, 39545, - 39549, 39552, 39559, 39565, 39572, 39578, 39588, 39596, 39602, 39608, - 39613, 39617, 39624, 39630, 39637, 38888, 535, 13805, 39643, 39648, - 39651, 39657, 39665, 1396, 39670, 39674, 39679, 39686, 39692, 39696, - 39700, 39705, 39714, 39721, 39731, 39737, 28074, 39754, 39763, 39771, - 39777, 39782, 39789, 39795, 39803, 39812, 39820, 39824, 39829, 39837, - 32049, 39843, 39862, 15811, 39876, 39892, 39906, 39912, 39917, 39922, - 39927, 39933, 32055, 39938, 39945, 39950, 39954, 345, 2936, 39961, 39966, - 39971, 27305, 39792, 39975, 39980, 39988, 39992, 39995, 40001, 40007, - 40011, 28129, 40014, 40019, 40023, 40026, 40031, 40035, 40040, 40045, - 40049, 40054, 40058, 40062, 21166, 21177, 40066, 40071, 40077, 26936, - 40082, 40086, 21253, 16059, 40089, 40094, 40099, 40104, 40109, 40114, - 40119, 40124, 447, 43, 31274, 31279, 31284, 31290, 31295, 31300, 40129, - 31304, 40133, 40137, 40141, 31309, 31315, 40155, 31326, 31331, 40163, - 40168, 31337, 40173, 40178, 40183, 40188, 40194, 40200, 40206, 31354, - 40219, 40225, 31358, 40229, 31363, 40234, 31368, 31373, 40237, 40242, - 40246, 30923, 40252, 13592, 40259, 40264, 31378, 40268, 40273, 40278, - 40283, 40287, 40292, 40297, 40303, 40308, 40313, 40319, 40325, 40330, - 40334, 40339, 40344, 40349, 40353, 40358, 40363, 40368, 40374, 40380, - 40386, 40391, 40395, 40400, 40404, 31382, 31387, 31392, 40408, 40412, - 40416, 31397, 31403, 31409, 31421, 40428, 25996, 40432, 40436, 40441, - 40446, 40451, 40456, 40460, 40464, 40474, 40479, 40484, 40488, 40492, - 40495, 40503, 31469, 40508, 1479, 40514, 40522, 40531, 40535, 40539, - 40547, 40553, 40561, 40577, 40581, 40585, 40590, 40605, 31506, 1749, - 12048, 40609, 1378, 40621, 40622, 40630, 40637, 40642, 40649, 40654, - 9372, 1114, 10325, 40661, 40666, 40669, 40672, 40681, 1286, 40686, 39036, - 40693, 40698, 22486, 2557, 40702, 10734, 40712, 40718, 2337, 2347, 40727, - 40736, 40746, 40757, 3293, 34212, 10377, 3807, 16668, 1291, 40762, 40770, - 40777, 40782, 40786, 40790, 23858, 10404, 40798, 40807, 40816, 40824, - 40831, 40842, 40847, 40860, 40873, 40885, 40897, 40909, 40922, 40933, - 40944, 40954, 40962, 40970, 40982, 40994, 41005, 41014, 41022, 41029, - 41041, 41048, 41057, 41064, 41077, 41082, 41092, 41097, 41103, 41108, - 37182, 41112, 41119, 41123, 41130, 41138, 2518, 41145, 41156, 41166, - 41175, 41183, 41193, 41201, 41211, 41220, 41225, 41231, 41237, 3709, - 41248, 41258, 41267, 41276, 41286, 41294, 41303, 41308, 41313, 41318, - 1705, 37, 41326, 41334, 41345, 41356, 16343, 41366, 41370, 41377, 41383, - 41388, 41392, 41403, 41413, 41422, 41433, 16717, 16722, 41438, 41447, - 41452, 41462, 41467, 41475, 41483, 41490, 41496, 7078, 228, 41500, 41506, - 41511, 41514, 2117, 39152, 41522, 41526, 41529, 1512, 41535, 13967, 1296, - 41540, 41553, 41567, 2643, 41585, 41597, 41609, 2657, 2674, 41623, 41636, - 2689, 41650, 41662, 2704, 41676, 1302, 1308, 1314, 10652, 41681, 41686, - 41691, 41695, 41710, 41725, 41740, 41755, 41770, 41785, 41800, 41815, - 41830, 41845, 41860, 41875, 41890, 41905, 41920, 41935, 41950, 41965, - 41980, 41995, 42010, 42025, 42040, 42055, 42070, 42085, 42100, 42115, - 42130, 42145, 42160, 42175, 42190, 42205, 42220, 42235, 42250, 42265, - 42280, 42295, 42310, 42325, 42340, 42355, 42370, 42385, 42400, 42415, - 42430, 42445, 42460, 42475, 42490, 42505, 42520, 42535, 42550, 42565, - 42580, 42595, 42610, 42625, 42640, 42655, 42670, 42685, 42700, 42715, - 42730, 42745, 42760, 42775, 42790, 42805, 42820, 42835, 42850, 42865, - 42880, 42895, 42910, 42925, 42940, 42955, 42970, 42985, 43000, 43015, - 43030, 43045, 43060, 43075, 43090, 43105, 43120, 43135, 43150, 43165, - 43180, 43195, 43210, 43225, 43240, 43255, 43270, 43285, 43300, 43315, - 43330, 43345, 43360, 43375, 43390, 43405, 43420, 43435, 43450, 43465, - 43480, 43495, 43510, 43525, 43540, 43555, 43570, 43585, 43600, 43615, - 43630, 43645, 43660, 43675, 43690, 43705, 43720, 43735, 43750, 43765, - 43780, 43795, 43810, 43825, 43840, 43855, 43870, 43885, 43900, 43915, - 43930, 43945, 43960, 43975, 43990, 44005, 44020, 44035, 44050, 44065, - 44080, 44095, 44110, 44125, 44140, 44155, 44170, 44185, 44200, 44215, - 44230, 44245, 44260, 44275, 44290, 44305, 44320, 44335, 44350, 44365, - 44380, 44395, 44410, 44425, 44440, 44455, 44470, 44485, 44500, 44515, - 44530, 44545, 44560, 44575, 44590, 44605, 44620, 44635, 44650, 44665, - 44680, 44695, 44710, 44725, 44740, 44755, 44770, 44785, 44800, 44815, - 44830, 44845, 44860, 44875, 44890, 44905, 44920, 44935, 44950, 44965, - 44980, 44995, 45010, 45025, 45040, 45055, 45070, 45085, 45100, 45115, - 45130, 45145, 45160, 45175, 45190, 45205, 45220, 45235, 45250, 45265, - 45280, 45295, 45310, 45325, 45340, 45355, 45370, 45385, 45400, 45415, - 45430, 45445, 45460, 45475, 45490, 45505, 45520, 45535, 45550, 45565, - 45580, 45595, 45610, 45625, 45640, 45655, 45670, 45685, 45700, 45715, - 45730, 45745, 45760, 45775, 45790, 45805, 45820, 45835, 45850, 45865, - 45880, 45895, 45910, 45925, 45940, 45955, 45970, 45985, 46000, 46015, - 46030, 46045, 46060, 46075, 46090, 46105, 46120, 46135, 46150, 46165, - 46180, 46195, 46210, 46225, 46240, 46255, 46270, 46285, 46300, 46315, - 46330, 46345, 46360, 46375, 46390, 46405, 46420, 46435, 46450, 46465, - 46480, 46495, 46510, 46525, 46540, 46555, 46570, 46585, 46600, 46615, - 46630, 46645, 46660, 46675, 46690, 46705, 46720, 46735, 46750, 46765, - 46780, 46795, 46810, 46825, 46840, 46855, 46870, 46885, 46900, 46915, - 46930, 46945, 46960, 46975, 46990, 47005, 47020, 47035, 47050, 47065, - 47080, 47095, 47110, 47125, 47140, 47155, 47170, 47185, 47200, 47215, - 47230, 47245, 47260, 47275, 47290, 47305, 47320, 47335, 47350, 47365, - 47380, 47395, 47410, 47425, 47440, 47455, 47470, 47485, 47500, 47515, - 47530, 47545, 47560, 47575, 47590, 47605, 47620, 47635, 47650, 47665, - 47680, 47695, 47710, 47725, 47740, 47755, 47770, 47785, 47800, 47815, - 47830, 47845, 47860, 47875, 47890, 47905, 47920, 47935, 47950, 47965, - 47980, 47995, 48010, 48025, 48040, 48055, 48070, 48085, 48100, 48115, - 48130, 48145, 48160, 48175, 48190, 48205, 48220, 48235, 48250, 48265, - 48280, 48295, 48310, 48325, 48340, 48355, 48370, 48385, 48400, 48415, - 48430, 48445, 48460, 48475, 48490, 48505, 48520, 48535, 48550, 48565, - 48580, 48595, 48610, 48625, 48640, 48655, 48670, 48685, 48700, 48715, - 48730, 48745, 48760, 48775, 48790, 48805, 48820, 48835, 48850, 48865, - 48880, 48895, 48910, 48925, 48940, 48955, 48970, 48985, 49000, 49015, - 49030, 49045, 49060, 49075, 49090, 49105, 49120, 49135, 49150, 49165, - 49180, 49195, 49210, 49225, 49240, 49255, 49270, 49285, 49300, 49315, - 49330, 49345, 49360, 49375, 49390, 49405, 49420, 49435, 49450, 49465, - 49480, 49495, 49511, 49527, 49543, 49559, 49575, 49591, 49607, 49623, - 49639, 49655, 49671, 49687, 49703, 49719, 49735, 49751, 49767, 49783, - 49799, 49815, 49831, 49847, 49863, 49879, 49895, 49911, 49927, 49943, - 49959, 49975, 49991, 50007, 50023, 50039, 50055, 50071, 50087, 50103, - 50119, 50135, 50151, 50167, 50183, 50199, 50215, 50231, 50247, 50263, - 50279, 50295, 50311, 50327, 50343, 50359, 50375, 50391, 50407, 50423, - 50439, 50455, 50471, 50487, 50503, 50519, 50535, 50551, 50567, 50583, - 50599, 50615, 50631, 50647, 50663, 50679, 50695, 50711, 50727, 50743, - 50759, 50775, 50791, 50807, 50823, 50839, 50855, 50871, 50887, 50903, - 50919, 50935, 50951, 50967, 50983, 50999, 51015, 51031, 51047, 51063, - 51079, 51095, 51111, 51127, 51143, 51159, 51175, 51191, 51207, 51223, - 51239, 51255, 51271, 51287, 51303, 51319, 51335, 51351, 51367, 51383, - 51399, 51415, 51431, 51447, 51463, 51479, 51495, 51511, 51527, 51543, - 51559, 51575, 51591, 51607, 51623, 51639, 51655, 51671, 51687, 51703, - 51719, 51735, 51751, 51767, 51783, 51799, 51815, 51831, 51847, 51863, - 51879, 51895, 51911, 51927, 51943, 51959, 51975, 51991, 52007, 52023, - 52039, 52055, 52071, 52087, 52103, 52119, 52135, 52151, 52167, 52183, - 52199, 52215, 52231, 52247, 52263, 52279, 52295, 52311, 52327, 52343, - 52359, 52375, 52391, 52407, 52423, 52439, 52455, 52471, 52487, 52503, - 52519, 52535, 52551, 52567, 52583, 52599, 52615, 52631, 52647, 52663, - 52679, 52695, 52711, 52727, 52743, 52759, 52775, 52791, 52807, 52823, - 52839, 52855, 52871, 52887, 52903, 52919, 52935, 52951, 52967, 52983, - 52999, 53015, 53031, 53047, 53063, 53079, 53095, 53111, 53127, 53143, - 53159, 53175, 53191, 53207, 53223, 53239, 53255, 53271, 53287, 53303, - 53319, 53335, 53351, 53367, 53383, 53399, 53415, 53431, 53447, 53463, - 53479, 53495, 53511, 53527, 53543, 53559, 53575, 53591, 53607, 53623, - 53639, 53655, 53671, 53687, 53703, 53719, 53735, 53751, 53767, 53783, - 53799, 53815, 53831, 53847, 53863, 53879, 53895, 53911, 53927, 53943, - 53959, 53975, 53991, 54007, 54023, 54039, 54055, 54071, 54087, 54103, - 54119, 54135, 54151, 54167, 54183, 54199, 54215, 54231, 54247, 54263, - 54279, 54295, 54311, 54327, 54343, 54359, 54375, 54391, 54407, 54423, - 54439, 54455, 54471, 54487, 54503, 54519, 54535, 54551, 54567, 54583, - 54599, 54615, 54631, 54647, 54663, 54679, 54695, 54711, 54727, 54743, - 54759, 54775, 54791, 54807, 54823, 54839, 54855, 54871, 54887, 54903, - 54919, 54935, 54951, 54967, 54983, 54999, 55015, 55031, 55047, 55063, - 55079, 55095, 55111, 55127, 55143, 55159, 55175, 55191, 55207, 55223, - 55239, 55255, 55271, 55287, 55303, 55319, 55335, 55351, 55367, 55383, - 55399, 55415, 55431, 55447, 55463, 55479, 55495, 55511, 55527, 55543, - 55559, 55575, 55591, 55607, 55623, 55639, 55655, 55671, 55687, 55703, - 55719, 55735, 55751, 55767, 55783, 55799, 55815, 55831, 55847, 55863, - 55879, 55895, 55911, 55927, 55943, 55959, 55975, 55991, 56007, 56023, - 56039, 56055, 56071, 56087, 56103, 56119, 56135, 56151, 56167, 56183, - 56199, 56215, 56231, 56247, 56263, 56279, 56295, 56311, 56327, 56343, - 56359, 56375, 56391, 56407, 56423, 56439, 56455, 56471, 56487, 56503, - 56519, 56535, 56551, 56567, 56583, 56599, 56615, 56631, 56647, 56663, - 56679, 56695, 56711, 56727, 56743, 56759, 56775, 56791, 56807, 56823, - 56839, 56855, 56871, 56887, 56903, 56919, 56935, 56951, 56967, 56983, - 56999, 57015, 57031, 57047, 57063, 57079, 57095, 57111, 57127, 57143, - 57159, 57175, 57191, 57207, 57223, 57239, 57255, 57271, 57287, 57303, - 57319, 57335, 57351, 57367, 57383, 57399, 57415, 57431, 57447, 57463, - 57479, 57495, 57511, 57527, 57543, 57559, 57575, 57591, 57607, 57623, - 57639, 57655, 57671, 57687, 57703, 57719, 57735, 57751, 57767, 57783, - 57799, 57815, 57831, 57847, 57863, 57879, 57895, 57911, 57927, 57943, - 57959, 57975, 57991, 58007, 58023, 58039, 58055, 58071, 58087, 58103, - 58119, 58135, 58151, 58167, 58182, 16749, 58191, 58197, 58203, 58213, - 58221, 14881, 15432, 9953, 58234, 1520, 58242, 3761, 27415, 7183, 58248, - 58253, 58258, 58263, 58268, 58274, 58279, 58285, 58290, 58296, 58301, - 58306, 58311, 58316, 58322, 58327, 58332, 58337, 58342, 58347, 58352, - 58357, 58363, 58368, 58374, 58381, 2561, 58386, 58392, 8526, 58396, - 58401, 58408, 58416, 40, 58420, 58426, 58431, 58436, 58440, 58445, 58449, - 58453, 10677, 58457, 58467, 58480, 58491, 58504, 58511, 58517, 58522, - 58528, 58534, 58540, 58545, 58550, 58555, 58560, 58564, 58569, 58574, - 58579, 58585, 58591, 58597, 58602, 58606, 58611, 58616, 58620, 58625, - 58630, 58635, 58639, 10693, 10704, 10709, 1563, 58643, 1568, 58649, - 16226, 58652, 58658, 1599, 58664, 1605, 1611, 10739, 58669, 58677, 58684, - 58688, 58694, 58699, 30952, 58704, 58711, 58716, 58720, 58724, 1616, - 16318, 58733, 58737, 16329, 1120, 58741, 58748, 58753, 58757, 16354, - 1620, 37321, 58760, 58765, 58775, 58784, 58789, 58793, 58799, 1625, - 39230, 58804, 58813, 58819, 58824, 10897, 10903, 58830, 58842, 58859, - 58876, 58893, 58910, 58927, 58944, 58961, 58978, 58995, 59012, 59029, - 59046, 59063, 59080, 59097, 59114, 59131, 59148, 59165, 59182, 59199, - 59216, 59233, 59250, 59267, 59284, 59301, 59318, 59335, 59352, 59369, - 59386, 59403, 59420, 59437, 59454, 59471, 59488, 59505, 59522, 59539, - 59556, 59573, 59590, 59607, 59624, 59641, 59658, 59675, 59686, 59691, - 1630, 59695, 59701, 59706, 59711, 9319, 1635, 59717, 59726, 27710, 59731, - 59742, 59752, 59757, 59764, 59770, 59775, 59780, 16606, 59784, 10914, - 1640, 10919, 59790, 59795, 59801, 59806, 59811, 59816, 59821, 59826, - 59831, 59836, 59842, 59848, 59854, 59859, 59863, 59868, 59873, 59877, - 59882, 59887, 59892, 59896, 59901, 59907, 59912, 59917, 59921, 59926, - 59931, 59937, 59942, 59947, 59953, 59959, 59964, 59968, 59973, 59978, - 59983, 59987, 59992, 59997, 60002, 60008, 60014, 60019, 60023, 60027, - 60032, 60037, 60042, 29108, 60046, 60051, 60056, 60062, 60067, 60072, - 60076, 60081, 60086, 60092, 60097, 60102, 60108, 60114, 60119, 60123, - 60128, 60133, 60137, 60142, 60147, 60152, 60158, 60164, 60169, 60173, - 60178, 60183, 60187, 60192, 60197, 60202, 60206, 60209, 31614, 60214, - 60222, 16672, 3663, 11010, 60228, 60238, 60253, 11015, 60264, 60269, - 60280, 60292, 60304, 60316, 2695, 60328, 60333, 60345, 60349, 60355, - 60361, 60366, 1652, 1067, 60375, 60380, 39280, 60384, 60388, 60393, - 60397, 16757, 60402, 60405, 60413, 60421, 1656, 11040, 11046, 1661, - 60429, 60436, 60441, 60450, 60460, 60467, 60472, 60477, 1666, 60484, - 60489, 16872, 60493, 60498, 60505, 60511, 60515, 60526, 60536, 16894, - 9227, 9234, 1671, 60543, 60549, 60557, 60564, 60570, 60577, 60589, 60595, - 60600, 60612, 60623, 60632, 60642, 3740, 30788, 30797, 16934, 1676, 1680, - 60650, 60661, 60666, 1683, 60674, 60679, 16985, 60691, 60697, 60702, - 60710, 1688, 60715, 60720, 60728, 60736, 60743, 60752, 60760, 60769, - 1693, 60773, 1698, 60778, 60785, 17059, 60793, 60799, 60804, 60812, - 60819, 60827, 22557, 60832, 11175, 60841, 60847, 60854, 60861, 60867, - 60877, 60883, 60888, 60899, 60904, 60912, 11184, 11189, 60920, 60926, - 60934, 3805, 17101, 39368, 60939, 60945, 60950, 60958, 60965, 12029, - 60970, 60976, 1709, 60981, 60984, 1127, 60990, 60995, 61000, 61006, - 61011, 61016, 61021, 61026, 61031, 61036, 1718, 9, 61042, 61046, 61051, - 61055, 61059, 61063, 31854, 61068, 61073, 61078, 61082, 61085, 61089, - 61093, 61098, 61102, 61107, 61111, 34591, 34596, 34601, 61114, 61121, - 61127, 39089, 61137, 34607, 32112, 31869, 31875, 34623, 31881, 61142, - 61147, 32145, 61151, 61154, 61158, 61165, 61168, 61173, 61177, 61181, - 61184, 61194, 61206, 61213, 61219, 61226, 33548, 61229, 8543, 877, 61232, - 61236, 61241, 3690, 61245, 61248, 13625, 61255, 61262, 61275, 61283, - 61292, 61301, 61306, 61316, 61329, 61341, 61348, 61353, 61362, 61375, - 36035, 61393, 61398, 61405, 61411, 652, 61416, 61424, 61431, 27254, 627, - 61437, 61443, 61453, 61459, 61464, 31899, 6003, 31913, 61468, 61478, - 61483, 61493, 61508, 61514, 61520, 31923, 61525, 31069, 61529, 61534, - 61539, 61543, 61548, 16937, 61555, 61560, 61564, 6044, 31949, 61568, - 61574, 312, 61584, 61591, 61598, 61603, 61612, 58769, 61618, 61626, - 61630, 61634, 61638, 61642, 61647, 61651, 61657, 61665, 61670, 61675, - 61679, 61684, 61688, 61692, 61698, 61704, 61709, 61713, 32073, 61718, - 32079, 32085, 61723, 61729, 61736, 61741, 61745, 31086, 16599, 61748, - 61752, 61757, 61764, 61770, 61774, 61779, 38799, 61785, 61789, 61793, - 61798, 61804, 61810, 61822, 61831, 61841, 61847, 61854, 61859, 61864, - 61868, 61871, 61877, 61884, 61889, 61894, 61901, 61908, 61914, 61919, - 61924, 61932, 32090, 2423, 61937, 61942, 61948, 61953, 61959, 61964, - 61969, 61974, 61980, 32111, 61985, 61991, 61997, 62003, 32175, 62008, - 62013, 62018, 32186, 62023, 62028, 62033, 62039, 62045, 32191, 62050, - 62055, 62060, 32246, 32252, 62065, 62070, 32257, 62075, 27937, 32279, - 32283, 62080, 62056, 62084, 62092, 62098, 62106, 62113, 62119, 62129, - 62135, 62142, 10624, 32297, 62148, 62161, 62170, 62176, 62185, 62191, - 23495, 62198, 62205, 62215, 32247, 62218, 62225, 62230, 62234, 62238, - 62243, 6120, 62247, 62252, 62257, 34685, 34690, 62261, 34704, 62266, - 34709, 62271, 62277, 34721, 34727, 34733, 62282, 62288, 22522, 62299, - 62302, 62314, 62322, 32320, 62326, 62335, 62345, 62354, 32330, 62359, - 62366, 62375, 62381, 62389, 62396, 6095, 4397, 62401, 32258, 62407, - 62410, 62416, 62423, 62428, 62433, 23405, 62437, 62443, 62449, 62454, - 62459, 62463, 62469, 62475, 33458, 863, 35698, 36619, 36625, 32366, - 62480, 62484, 62488, 62491, 62504, 62510, 62514, 62517, 62522, 33761, - 62526, 31091, 21274, 62532, 6024, 6032, 9068, 62535, 62540, 62545, 62550, - 62555, 62560, 62565, 62570, 62575, 62580, 62586, 62591, 62596, 62602, - 62607, 62612, 62617, 62622, 62627, 62632, 62638, 62643, 62649, 62654, - 62659, 62664, 62669, 62674, 62679, 62684, 62689, 62694, 62699, 62705, - 62710, 62715, 62720, 62725, 62730, 62735, 62741, 62746, 62751, 62756, - 62761, 62766, 62771, 62776, 62781, 62786, 62792, 62797, 62802, 62807, - 62812, 62818, 62824, 62829, 62835, 62840, 62845, 62850, 62855, 62860, - 1513, 245, 62865, 62869, 62873, 62877, 25116, 62881, 62885, 62890, 62894, - 62899, 62903, 62908, 62913, 62918, 62922, 62926, 62931, 62935, 13362, - 62940, 62944, 62951, 62961, 15193, 62970, 62979, 62983, 62988, 62993, - 62997, 24907, 3019, 63001, 17350, 63007, 63016, 63024, 63030, 63042, - 63054, 63058, 63063, 63067, 63073, 63079, 63084, 63094, 63104, 63110, - 63115, 63119, 63124, 63130, 63139, 63148, 63156, 15547, 63160, 63169, - 63177, 63189, 63200, 63211, 63220, 63224, 63233, 63243, 63251, 63257, - 63262, 63268, 63273, 98, 30900, 63284, 26249, 26259, 63290, 63297, 63303, - 63307, 63317, 63328, 63336, 63345, 63350, 63355, 63359, 17304, 63367, - 63371, 63377, 63387, 63394, 63400, 34784, 63406, 63408, 63411, 63415, - 63425, 63431, 63438, 13308, 63445, 63451, 63460, 63469, 63475, 63481, - 63487, 63492, 63499, 63506, 63512, 63525, 63534, 63543, 63548, 63552, - 63558, 63565, 63572, 63579, 63586, 63593, 63598, 63602, 63606, 63609, - 63619, 63623, 63635, 63644, 63648, 63653, 63657, 63663, 63668, 63675, - 63684, 63692, 63700, 63705, 63709, 63714, 63719, 63729, 63737, 63742, - 63746, 63750, 63756, 63768, 63776, 63786, 63793, 63799, 63804, 63808, - 63812, 63816, 63825, 63834, 63843, 63849, 63855, 63861, 63866, 63873, - 63879, 63887, 63894, 12456, 63900, 63906, 63910, 14231, 63914, 63919, - 63929, 63938, 63944, 63950, 63958, 63965, 63969, 63973, 63979, 63987, - 63994, 64000, 64011, 64015, 64019, 64023, 64026, 64032, 64037, 64041, - 64045, 64054, 64062, 64069, 64075, 64082, 24029, 38841, 64087, 64095, - 64099, 64103, 64106, 64114, 64121, 64127, 64136, 64144, 64150, 64155, - 64159, 64164, 64168, 64172, 64177, 64186, 64190, 64197, 64204, 64210, - 64218, 64224, 64235, 64243, 64249, 22652, 64258, 64265, 64272, 64279, - 64286, 64293, 41870, 13146, 64300, 64307, 64312, 34820, 6217, 64318, - 64323, 64328, 64334, 64340, 64346, 64351, 64356, 64361, 64366, 64372, - 64377, 64383, 64388, 64394, 64399, 64404, 64409, 64414, 64419, 64424, - 64429, 64435, 64440, 64446, 64451, 64456, 64461, 64466, 64471, 64476, - 64482, 64487, 64492, 64497, 64502, 64507, 64512, 64517, 64522, 64527, - 64532, 64538, 64543, 64548, 64553, 64558, 64563, 64568, 64573, 64578, - 64584, 64589, 64594, 64599, 64604, 64609, 64614, 64619, 64624, 64629, - 64634, 64639, 64644, 64650, 1834, 224, 37417, 64655, 64658, 64663, 64667, - 64670, 64675, 63696, 64686, 64696, 64703, 64719, 64728, 64738, 64748, - 64756, 64770, 64778, 64782, 64785, 64792, 64798, 64809, 64821, 64832, - 64841, 64848, 1297, 23294, 64858, 2590, 64862, 64871, 1133, 17277, 38054, - 64879, 64887, 64901, 64914, 64918, 64923, 64928, 64933, 64939, 64945, - 64950, 8535, 64955, 64959, 64967, 11041, 64972, 64978, 64987, 1721, - 11053, 736, 64991, 65000, 65010, 27013, 65019, 65025, 16849, 65031, - 65035, 3964, 11384, 65041, 65048, 60656, 65052, 65056, 3988, 189, 14146, - 65062, 65074, 65078, 65084, 27730, 65088, 11372, 2730, 4, 65093, 65103, - 65109, 65120, 65127, 65133, 65139, 65147, 65154, 65160, 65170, 65180, - 65190, 23482, 1309, 65199, 65203, 65207, 65213, 65217, 2753, 2759, 8532, - 2264, 65221, 65225, 65234, 65242, 65253, 65261, 65269, 65275, 65280, - 65291, 65302, 65310, 65316, 9687, 65321, 65329, 65333, 65337, 65341, - 65353, 28115, 65360, 65370, 65376, 65382, 9789, 65392, 65403, 65413, - 65422, 65426, 65433, 1135, 1170, 65443, 65448, 65456, 65464, 65475, - 65482, 65496, 14075, 393, 65506, 65510, 65518, 65527, 65535, 65541, - 65555, 65562, 65568, 65577, 65584, 65594, 65602, 3812, 156, 65610, 65621, - 65625, 65637, 27928, 161, 65643, 65648, 65652, 65659, 65665, 65673, - 65680, 8818, 65687, 65696, 65704, 3878, 65717, 8199, 65721, 2798, 450, - 65726, 65739, 65744, 1833, 668, 65748, 3895, 65756, 65762, 65766, 931, - 65776, 65785, 65790, 14915, 14922, 45232, 65794, 3822, 13034, 65802, - 65809, 23538, 65813, 65820, 65826, 65831, 65836, 14935, 372, 65841, - 65853, 65859, 65867, 2810, 1753, 65875, 65877, 65882, 65887, 65892, - 65898, 65903, 65908, 65913, 65918, 65923, 65928, 65934, 65939, 65944, - 65949, 65954, 65959, 65964, 65969, 65974, 65980, 65985, 65990, 65995, - 66001, 66006, 66012, 66017, 66022, 66027, 66032, 66037, 66042, 66047, - 66053, 66058, 66064, 66069, 66074, 66079, 66084, 66089, 66094, 66099, - 66104, 66110, 66115, 66120, 66125, 66129, 66133, 66138, 66142, 66147, - 66152, 66158, 66163, 66167, 66172, 66176, 66179, 66181, 66185, 66188, - 66193, 66197, 66201, 66205, 66209, 66218, 66222, 32524, 66225, 32529, - 66232, 66237, 32534, 66246, 66255, 32540, 66260, 32545, 66269, 66274, - 11571, 66278, 66283, 66288, 32550, 66292, 40196, 66296, 66299, 66303, - 8211, 66309, 66314, 66318, 3705, 32555, 66321, 66325, 66328, 66333, - 66337, 66343, 66351, 66364, 66373, 66379, 66384, 66390, 66394, 66400, - 66408, 66413, 66417, 66424, 66430, 66438, 66447, 66455, 32558, 66462, - 66472, 66481, 66494, 66499, 66504, 66513, 66519, 66526, 66537, 66549, - 66556, 66565, 66574, 66583, 66590, 66596, 66603, 66611, 66618, 66626, - 66635, 66643, 66650, 66658, 66667, 66675, 66684, 66694, 66703, 66711, - 66718, 66726, 66735, 66743, 66752, 66762, 66771, 66779, 66788, 66798, - 66807, 66817, 66828, 66838, 66847, 66855, 66862, 66870, 66879, 66887, - 66896, 66906, 66915, 66923, 66932, 66942, 66951, 66961, 66972, 66982, - 66991, 66999, 67008, 67018, 67027, 67037, 67048, 67058, 67067, 67077, - 67088, 67098, 67109, 67121, 67132, 67142, 67151, 67159, 67166, 67174, - 67183, 67191, 67200, 67210, 67219, 67227, 67236, 67246, 67255, 67265, - 67276, 67286, 67295, 67303, 67312, 67322, 67331, 67341, 67352, 67362, - 67371, 67381, 67392, 67402, 67413, 67425, 67436, 67446, 67455, 67463, - 67472, 67482, 67491, 67501, 67512, 67522, 67531, 67541, 67552, 67562, - 67573, 67585, 67596, 67606, 67615, 67625, 67636, 67646, 67657, 67669, - 67680, 67690, 67701, 67713, 67724, 67736, 67749, 67761, 67772, 67782, - 67791, 67799, 67806, 67814, 67823, 67831, 67840, 67850, 67859, 67867, - 67876, 67886, 67895, 67905, 67916, 67926, 67935, 67943, 67952, 67962, - 67971, 67981, 67992, 68002, 68011, 68021, 68032, 68042, 68053, 68065, - 68076, 68086, 68095, 68103, 68112, 68122, 68131, 68141, 68152, 68162, - 68171, 68181, 68192, 68202, 68213, 68225, 68236, 68246, 68255, 68265, - 68276, 68286, 68297, 68309, 68320, 68330, 68341, 68353, 68364, 68376, - 68389, 68401, 68412, 68422, 68431, 68439, 68448, 68458, 68467, 68477, - 68488, 68498, 68507, 68517, 68528, 68538, 68549, 68561, 68572, 68582, - 68591, 68601, 68612, 68622, 68633, 68645, 68656, 68666, 68677, 68689, - 68700, 68712, 68725, 68737, 68748, 68758, 68767, 68777, 68788, 68798, - 68809, 68821, 68832, 68842, 68853, 68865, 68876, 68888, 68901, 68913, - 68924, 68934, 68945, 68957, 68968, 68980, 68993, 69005, 69016, 69028, - 69041, 69053, 69066, 69080, 69093, 69105, 69116, 69126, 69135, 69143, - 69150, 69155, 8058, 69162, 32568, 69167, 69172, 32573, 69178, 20916, - 32578, 69183, 69189, 69197, 69203, 69209, 69216, 69223, 69228, 69232, - 69235, 69239, 69248, 69254, 69266, 69277, 69281, 3081, 8033, 69286, - 69289, 69291, 69295, 69299, 69303, 69309, 69314, 25927, 69319, 69323, - 69326, 69331, 69335, 69342, 69348, 69352, 6170, 69356, 32595, 69361, - 69368, 69377, 69385, 69396, 69404, 69412, 69419, 69426, 69432, 69443, - 32600, 69448, 69459, 69471, 69479, 69490, 69499, 69510, 69515, 69523, - 2556, 69528, 34270, 69541, 69545, 69557, 69565, 69570, 69578, 17472, - 69589, 69595, 69602, 69610, 69616, 32610, 69621, 3914, 58217, 69628, - 69631, 69639, 69652, 69665, 69678, 69691, 69698, 69709, 69718, 41687, - 41692, 69723, 69727, 69735, 69742, 69751, 69759, 69765, 69774, 69782, - 69790, 69794, 69803, 69812, 69822, 69835, 69848, 69858, 32615, 69864, - 69871, 69877, 32621, 69882, 69885, 69889, 69897, 69906, 41425, 69914, - 69923, 69931, 69938, 69946, 69956, 69965, 69974, 69983, 69991, 70002, - 70012, 9359, 21554, 70021, 70026, 70031, 70035, 70039, 70044, 70050, - 70055, 70060, 70066, 70071, 70076, 21519, 70081, 70088, 70096, 70104, - 70109, 70116, 70123, 70128, 70132, 70136, 70144, 70152, 32638, 70158, - 70164, 70176, 70182, 70186, 70193, 70198, 70209, 70219, 70229, 70241, - 70247, 70257, 70267, 32665, 70276, 70285, 70291, 70303, 70314, 70321, - 70326, 70330, 70338, 70344, 70349, 70354, 70361, 70369, 70381, 70391, - 70400, 70409, 70416, 34132, 23834, 70422, 70427, 70431, 70435, 70440, - 70446, 70457, 70470, 70475, 70482, 32670, 70487, 70499, 70508, 70518, - 70529, 70542, 70549, 70558, 70567, 70575, 70580, 70586, 1058, 70591, - 70596, 70601, 70606, 70612, 70617, 70622, 70628, 70634, 70639, 70643, - 70648, 70653, 70658, 58729, 70663, 70668, 70673, 70678, 70684, 70690, - 70695, 70699, 70704, 70709, 70714, 70720, 70725, 70731, 70736, 70741, - 70746, 70751, 70755, 70761, 70766, 70775, 70780, 70785, 70790, 70795, - 70799, 70806, 70812, 17122, 17129, 70817, 70821, 70825, 70829, 70833, - 45487, 70837, 70767, 70839, 70849, 32679, 70852, 70861, 70867, 6143, - 32684, 70871, 70877, 70882, 70888, 70893, 70897, 70904, 70909, 70919, - 70928, 70932, 70938, 70944, 70950, 70954, 70962, 70969, 70977, 70985, - 32689, 70992, 70995, 71002, 71008, 71013, 71017, 71023, 71030, 71035, - 71039, 71048, 71056, 71062, 71067, 32694, 71074, 71081, 71087, 71092, - 71098, 71105, 71111, 21281, 27438, 71117, 71122, 71128, 71140, 70800, - 70807, 21457, 71150, 71155, 71162, 71168, 71175, 71181, 71192, 71197, - 9103, 71205, 71208, 71214, 71218, 71222, 71225, 71231, 32443, 6194, 964, - 13412, 71238, 71244, 71250, 71256, 71262, 71268, 71274, 71280, 71286, - 71291, 71296, 71301, 71306, 71311, 71316, 71321, 71326, 71331, 71336, - 71341, 71346, 71351, 71357, 71362, 71367, 71373, 71378, 71383, 71389, - 71395, 71401, 71407, 71413, 71419, 71425, 71431, 71437, 71442, 71447, - 71453, 71458, 71463, 71469, 71474, 71479, 71484, 71489, 71494, 71499, - 71504, 71509, 71514, 71519, 71524, 71529, 71535, 71540, 71545, 71550, - 71556, 71561, 71566, 71571, 71576, 71582, 71587, 71592, 71597, 71602, - 71607, 71612, 71617, 71622, 71627, 71632, 71637, 71642, 71647, 71652, - 71657, 71662, 71667, 71672, 71677, 71683, 71688, 71693, 71698, 71703, - 71708, 71713, 71718, 1864, 142, 71723, 71727, 71731, 71736, 71744, 71748, - 71755, 71763, 71767, 71780, 71788, 71792, 71795, 71800, 71804, 71809, - 71813, 71821, 71825, 20924, 71830, 71834, 60930, 71838, 71841, 71849, - 71857, 71865, 71870, 71877, 71883, 71889, 71894, 71901, 71906, 71914, - 64906, 71921, 71926, 71931, 71935, 11638, 71939, 71944, 71949, 71953, - 71956, 71962, 71966, 71976, 71985, 71988, 71992, 71999, 72012, 72018, - 72026, 72037, 72048, 72059, 72070, 72079, 72085, 72094, 72102, 72112, - 72125, 72132, 72143, 72149, 72154, 72159, 72165, 72171, 72181, 72190, - 70489, 72198, 72204, 72212, 72218, 72226, 72229, 72233, 72237, 72240, - 72246, 72252, 72260, 72272, 72284, 72291, 72295, 72306, 72314, 72321, - 72333, 72341, 72349, 72356, 72362, 72372, 72381, 72386, 72396, 72405, - 40751, 72412, 72416, 72421, 72429, 72436, 72442, 72446, 72456, 72467, - 72475, 72482, 72494, 72506, 72515, 69531, 72522, 72533, 72547, 72555, - 72565, 72572, 72580, 72592, 72601, 72609, 72619, 72630, 72642, 72651, - 72661, 72668, 72677, 72692, 72700, 72710, 72719, 72727, 72740, 72755, - 72759, 72768, 72780, 72791, 72802, 72813, 72823, 72834, 72842, 72848, - 72858, 72866, 72872, 29007, 72877, 72883, 72888, 72895, 9701, 17492, - 72901, 72910, 72915, 72919, 72926, 72932, 72937, 72942, 72950, 72958, - 72962, 72965, 72968, 72970, 72977, 72983, 72994, 72999, 73003, 73010, - 73016, 73021, 73029, 65405, 65415, 73035, 73042, 73052, 10611, 73059, - 73064, 29203, 73073, 73078, 73085, 73095, 73103, 73111, 73120, 73126, - 73132, 73139, 73146, 73151, 73155, 73163, 73168, 73173, 73181, 73188, - 73193, 73199, 73202, 73206, 73215, 71775, 73224, 73228, 73234, 73245, - 73255, 17501, 73266, 73274, 17513, 73281, 73285, 73294, 27324, 73301, - 73305, 73310, 73327, 73339, 10569, 73351, 73356, 73361, 73366, 20997, - 73370, 73375, 73380, 73386, 73391, 5846, 21001, 73396, 73401, 73407, - 73414, 73419, 73424, 73430, 73436, 73442, 73447, 73453, 73457, 73471, - 73479, 73487, 73493, 73498, 73505, 73515, 73524, 73529, 73534, 73542, - 73547, 73553, 73558, 73567, 59786, 73572, 73575, 73593, 73612, 73625, - 73639, 73655, 73662, 73669, 73675, 73682, 73687, 73693, 73699, 73707, - 73713, 73718, 73723, 73739, 10582, 73753, 73760, 73768, 73774, 73778, - 73781, 73786, 73791, 73798, 73803, 73812, 73817, 73823, 73832, 73841, - 73846, 73850, 73858, 73867, 11667, 73876, 73884, 73889, 73895, 11678, - 73900, 73903, 73908, 73918, 73927, 73932, 73938, 73943, 73951, 73958, - 73969, 73979, 73984, 64834, 73989, 73995, 74000, 74007, 74016, 74024, - 74030, 74036, 74043, 74049, 74053, 16947, 3055, 74058, 74062, 74066, - 74072, 74081, 74087, 74094, 74098, 74119, 74141, 74157, 74174, 74193, - 74202, 74212, 74219, 74226, 27211, 74232, 74236, 74244, 74256, 74262, - 74270, 74274, 74282, 74289, 74293, 74299, 74305, 74310, 3563, 41887, - 74316, 74320, 74324, 74328, 74333, 74338, 74343, 74349, 74355, 74361, - 74368, 74374, 74381, 74387, 74393, 74398, 74404, 74409, 74413, 74418, - 74422, 74427, 41902, 74431, 74436, 74444, 74448, 74453, 74460, 74469, - 74475, 74479, 74486, 74490, 74493, 74500, 74509, 74514, 74518, 74526, - 74535, 74539, 74547, 74553, 74558, 74563, 74569, 74575, 74580, 74584, - 74590, 74595, 74599, 74603, 74606, 74611, 74619, 74629, 74634, 39387, - 74642, 74654, 74658, 74664, 74676, 74687, 74694, 74700, 74707, 74719, - 74726, 74732, 21075, 74736, 74742, 74749, 74755, 74761, 74766, 74771, - 74776, 74785, 7033, 74790, 16413, 74796, 74800, 74804, 74808, 74816, - 74825, 74829, 74836, 74845, 74858, 74864, 74423, 30067, 74869, 74871, - 74876, 74881, 74886, 74891, 74896, 74901, 74906, 74911, 74916, 74921, - 74926, 74931, 74936, 74941, 74947, 74952, 74957, 74962, 74967, 74972, - 74977, 74982, 74987, 74993, 74999, 75005, 75010, 75015, 75027, 75032, - 1870, 49, 75037, 75042, 32721, 75046, 32726, 32731, 32737, 32742, 75050, - 32747, 22070, 75072, 75076, 75080, 75085, 75089, 32751, 75093, 75101, - 32756, 75108, 75111, 75116, 75120, 9536, 75129, 32761, 21932, 75132, - 75136, 1428, 75141, 32772, 75144, 75149, 25720, 25730, 35233, 75154, - 75159, 75164, 75169, 75175, 75180, 75189, 75194, 75201, 75207, 75212, - 75217, 75222, 75232, 75241, 75246, 75254, 75258, 75266, 32586, 37288, - 75273, 75279, 75284, 75289, 12009, 75294, 75300, 75305, 75312, 75318, - 75323, 75331, 75341, 75351, 75357, 75362, 75368, 17523, 75375, 36048, - 75388, 75393, 75399, 30968, 75412, 75418, 75422, 75431, 75438, 75444, - 75452, 75461, 75468, 75474, 75477, 75481, 25861, 75485, 75492, 75498, - 75506, 75511, 23977, 75517, 75520, 75528, 75536, 75550, 75557, 75563, - 75570, 75576, 32786, 75580, 75587, 75595, 75603, 75609, 32791, 75617, - 75623, 75628, 75638, 75644, 75653, 30805, 34691, 75661, 75666, 75671, - 75675, 75680, 75684, 75692, 14907, 39400, 75697, 75702, 32796, 62232, - 75706, 75711, 75715, 75724, 75732, 75738, 75743, 75749, 75756, 75762, - 75767, 75772, 75781, 75793, 75808, 33058, 75814, 16532, 32800, 75818, - 75825, 24087, 75831, 75838, 75847, 75854, 75863, 75869, 75874, 75882, - 75888, 32810, 75893, 75902, 74682, 75911, 75918, 75924, 75930, 75940, - 75948, 75955, 75959, 32815, 75962, 32821, 32827, 75967, 75975, 75983, - 75993, 76002, 76010, 76017, 76027, 32832, 76031, 76033, 76037, 76042, - 76046, 76050, 76056, 76061, 76065, 76076, 76081, 76086, 3060, 76090, - 76097, 76101, 76110, 76118, 76125, 76130, 76135, 62278, 76139, 76142, - 76148, 76156, 76162, 76166, 76171, 76178, 76183, 76189, 34722, 76194, - 76197, 76202, 76206, 76211, 76216, 76220, 76228, 76232, 25739, 25748, - 76238, 76244, 76250, 76255, 76259, 76262, 76272, 76281, 76286, 76292, - 76299, 76305, 76309, 76317, 76322, 34728, 76326, 76334, 76340, 76347, - 76352, 76356, 76361, 58403, 34734, 76367, 76372, 76376, 76381, 76386, - 76391, 76395, 76400, 76405, 76411, 76416, 76421, 76427, 76433, 76438, - 76442, 76447, 76452, 76457, 76461, 24086, 76466, 76471, 76477, 76483, - 76489, 76494, 76498, 76503, 76508, 76513, 76517, 76522, 76527, 76532, - 76537, 76541, 32840, 76549, 76553, 76561, 76569, 76580, 76585, 76589, - 22384, 76594, 76600, 76610, 76617, 76622, 76631, 76636, 76640, 76645, - 76653, 76661, 76668, 65068, 76674, 76682, 76689, 76700, 76706, 76710, - 76716, 32850, 76719, 76726, 76734, 76739, 39591, 76743, 76748, 76755, - 76760, 8985, 76764, 76772, 76779, 76786, 76792, 76806, 63340, 76814, - 76820, 76824, 76827, 76835, 76842, 76847, 76860, 76867, 76871, 76878, - 76883, 60823, 76888, 76891, 76898, 76904, 76908, 76916, 76925, 76935, - 76945, 76954, 76962, 76973, 76978, 76982, 76987, 76991, 35364, 76999, - 21344, 35373, 77004, 77009, 77014, 77019, 77024, 77029, 77034, 77038, - 77043, 77048, 77053, 77058, 77063, 77068, 77072, 77077, 77082, 77086, - 77090, 77094, 77098, 77103, 77108, 77112, 77117, 77121, 77125, 77130, - 77135, 77140, 77145, 77149, 77154, 77159, 77163, 77168, 77173, 77178, - 77183, 77188, 77193, 77198, 77203, 77208, 77213, 77218, 77223, 77228, - 77233, 77238, 77243, 77248, 77253, 77258, 77263, 77267, 77272, 77277, - 77282, 77287, 77292, 77297, 77302, 77307, 77312, 77317, 77322, 77326, - 77331, 77335, 77340, 77345, 77350, 77355, 77360, 77365, 77370, 77375, - 77380, 77384, 77388, 77393, 77398, 77402, 77407, 77412, 77416, 77421, - 77426, 77431, 77436, 77440, 77445, 77450, 77454, 77459, 77463, 77467, - 77471, 77475, 77480, 77484, 77488, 77492, 77496, 77500, 77504, 77508, - 77512, 77516, 77521, 77526, 77531, 77536, 77541, 77546, 77551, 77556, - 77561, 77566, 77570, 77574, 77578, 77582, 77586, 77590, 77595, 77599, - 77604, 77608, 77613, 77618, 77622, 77626, 77631, 77635, 77639, 77643, - 77647, 77651, 77655, 77659, 77663, 77667, 77671, 77675, 77679, 77683, - 77687, 77692, 77697, 77701, 77705, 77709, 77713, 77717, 77721, 77726, - 77730, 77734, 77738, 77742, 77746, 77750, 77755, 77759, 77764, 77768, - 77772, 77776, 77780, 77784, 77788, 77792, 77796, 77800, 77804, 77808, - 77813, 77817, 77821, 77825, 77829, 77833, 77837, 77841, 77845, 77849, - 77853, 77857, 77862, 77866, 77870, 77875, 77880, 77884, 77888, 77892, - 77896, 77900, 77904, 77908, 77912, 77917, 77921, 77926, 77930, 77935, - 77939, 77944, 77948, 77954, 77959, 77963, 77968, 77972, 77977, 77981, - 77986, 77990, 77995, 1521, 77999, 2824, 1759, 1764, 78003, 78007, 2828, - 78011, 1397, 78016, 1342, 78020, 2840, 78024, 78031, 78038, 78052, 2844, - 7131, 78061, 78069, 78076, 78087, 78096, 78103, 78115, 78128, 78141, - 78152, 78157, 78164, 78176, 78180, 2848, 11740, 78190, 78195, 78204, - 78214, 2852, 78219, 78223, 78228, 78235, 78241, 78249, 78261, 1347, - 13035, 78271, 78275, 78281, 78295, 78307, 78319, 78329, 78338, 78347, - 78356, 78364, 78375, 78383, 4051, 78393, 78404, 78413, 78419, 78434, - 78441, 78447, 35489, 78452, 2876, 13039, 78456, 78463, 8930, 78472, 2881, - 32336, 78478, 60572, 78485, 78491, 78502, 78508, 78515, 78521, 78529, - 78536, 78542, 78552, 78561, 78572, 78579, 78585, 78595, 78603, 78609, - 78624, 78630, 78635, 78642, 78645, 78651, 78658, 78664, 78672, 78681, - 78689, 78695, 78704, 41427, 78718, 78723, 78729, 14744, 78734, 78747, - 78756, 78764, 78771, 78775, 78779, 78782, 78789, 78796, 78804, 78812, - 78821, 78829, 14671, 78837, 78842, 78846, 78858, 78865, 78874, 748, - 78884, 78893, 78904, 2897, 78908, 78912, 78918, 78931, 78943, 78953, - 78962, 78974, 26352, 78985, 78993, 79002, 79013, 79024, 79034, 79044, - 79053, 79061, 11305, 79068, 79072, 79075, 79080, 79085, 79089, 79095, - 1352, 11811, 79102, 79113, 79122, 79130, 79139, 79147, 79163, 79174, - 79183, 79191, 79203, 79214, 79230, 79240, 79261, 79274, 79282, 79289, - 14855, 79302, 79307, 79313, 5908, 79319, 79322, 79329, 79339, 8176, - 79346, 79351, 79356, 79361, 79369, 79378, 79386, 9749, 9758, 79391, - 79402, 79407, 79413, 2913, 2918, 79419, 10872, 79425, 79432, 79439, - 79452, 2251, 68, 79457, 79462, 79472, 79478, 79487, 79495, 79505, 79509, - 79514, 79518, 79530, 2941, 79538, 79546, 79551, 79562, 79573, 79582, - 79587, 79593, 79598, 79608, 79618, 79623, 79629, 79634, 79643, 21397, - 79647, 4128, 20, 79652, 79661, 79668, 79675, 79681, 79687, 864, 79692, - 79697, 60900, 79702, 79707, 79713, 79719, 79727, 79732, 79739, 79745, - 79750, 38001, 41321, 79756, 2945, 32, 79766, 79779, 79784, 79792, 79797, - 79803, 2967, 28289, 79808, 79816, 79823, 79828, 58645, 61903, 79837, - 79841, 1704, 1813, 79846, 79851, 79858, 1817, 247, 79865, 79871, 2989, - 79876, 79881, 79888, 1821, 79893, 79899, 79904, 79916, 6119, 79926, 1828, - 79932, 79937, 79944, 79951, 79966, 79973, 79984, 79992, 2618, 79996, - 80008, 80013, 80017, 80023, 28114, 2256, 80027, 80038, 80042, 80046, - 80052, 80056, 80065, 80069, 80080, 80084, 2302, 32165, 80088, 80098, - 3080, 9364, 80106, 80111, 80115, 80124, 80131, 80137, 3050, 17139, 80141, - 80154, 80172, 80177, 80185, 80193, 80203, 9978, 13147, 80215, 80228, - 80235, 80242, 80258, 80265, 80271, 1095, 80278, 80285, 80295, 80304, - 80316, 42291, 80324, 3064, 12023, 80327, 80335, 80339, 78231, 3068, - 80343, 21178, 12039, 3756, 80347, 3074, 80351, 80361, 80367, 80373, - 80379, 80385, 80391, 80397, 80403, 80409, 80415, 80421, 80427, 80433, - 80439, 80445, 80451, 80457, 80463, 80469, 80475, 80481, 80487, 80493, - 80499, 80505, 80511, 80518, 80525, 80531, 80537, 80543, 80549, 80555, - 80561, 1357, 16049, 12061, 80567, 80572, 80577, 80582, 80587, 80592, - 80597, 80602, 80607, 80612, 80617, 80622, 80627, 80632, 80637, 80642, - 80647, 80652, 80657, 80662, 80667, 80672, 80677, 80682, 80687, 80692, - 80698, 80703, 80708, 80714, 80719, 80725, 80730, 80735, 80741, 80746, - 80751, 80756, 80761, 80766, 80771, 80776, 80781, 80362, 80368, 80374, - 80380, 80386, 80392, 80398, 80404, 80410, 80416, 80422, 80428, 80434, - 80440, 80446, 80787, 80452, 80458, 80464, 80793, 80470, 80476, 80482, - 80488, 80494, 80500, 80506, 80526, 80799, 80805, 80532, 80811, 80538, - 80544, 80550, 80556, 80562, 3091, 3096, 80817, 80822, 80825, 80831, - 80837, 80844, 80849, 80854, 2307, + 8935, 8939, 8944, 8949, 8956, 8962, 8972, 7909, 8978, 8982, 8989, 8996, + 768, 9000, 9004, 9009, 9014, 9019, 9023, 9029, 9037, 9043, 9047, 9053, + 9063, 9067, 9073, 9078, 9082, 9088, 9094, 2161, 9099, 9101, 9106, 9114, + 9123, 9127, 9133, 9138, 9143, 9148, 9153, 9159, 9164, 9169, 4006, 9174, + 9179, 9183, 9189, 9194, 9200, 9205, 9210, 9216, 9221, 9128, 9227, 9231, + 9238, 9244, 9249, 9253, 6183, 9258, 9267, 9272, 9277, 8218, 8225, 9282, + 2853, 9286, 9291, 9296, 9139, 9300, 9305, 9144, 9149, 9310, 9317, 9324, + 9330, 9336, 9342, 9347, 9352, 9357, 9154, 9160, 9363, 9369, 9374, 9382, + 9165, 9387, 990, 9390, 9398, 9404, 9410, 9419, 9427, 9432, 9438, 9446, + 9453, 9468, 9485, 9504, 9513, 9521, 9536, 9547, 9557, 9567, 9575, 9581, + 9593, 9602, 9610, 9617, 9624, 9630, 9635, 9643, 9653, 9660, 9670, 9680, + 9690, 9698, 9705, 9714, 9724, 9738, 9753, 9762, 9770, 9775, 9779, 9788, + 9794, 9799, 9809, 9819, 9829, 9834, 9838, 9847, 9852, 9862, 9873, 9886, + 9894, 9907, 9919, 9927, 9932, 9936, 9942, 9947, 9955, 9963, 9970, 9975, + 9983, 9989, 9992, 9996, 10002, 10010, 10015, 10019, 10027, 10036, 10044, + 10050, 10054, 10061, 10072, 10076, 10079, 10085, 9170, 10090, 10096, + 10103, 10109, 10114, 10121, 10128, 10135, 10142, 10149, 10156, 10163, + 10170, 10175, 9481, 10180, 10186, 10193, 10200, 10205, 10212, 10221, + 10225, 10237, 8256, 10241, 10244, 10248, 10252, 10256, 10260, 10266, + 10272, 10277, 10283, 10288, 10293, 10299, 10304, 10309, 8952, 10314, + 10318, 10322, 10326, 10331, 10336, 10344, 10350, 10354, 10358, 10365, + 10370, 10378, 10383, 10387, 10390, 10396, 10403, 10407, 10410, 10415, + 10419, 4045, 10425, 10434, 36, 10442, 10448, 10453, 8967, 10458, 10463, + 10467, 10470, 10485, 10504, 10516, 10529, 10542, 10555, 10569, 10582, + 10597, 10604, 9175, 10610, 10624, 10629, 10635, 10640, 10648, 10653, + 8040, 10658, 10661, 10668, 10673, 10677, 2858, 998, 10683, 10687, 10693, + 10699, 10704, 10710, 10715, 9184, 10721, 10727, 10732, 10737, 10745, + 10751, 10764, 10772, 10779, 9190, 10785, 10793, 10801, 10808, 10821, + 10833, 10843, 10851, 10858, 10865, 10874, 10883, 10891, 10898, 10903, + 10909, 9195, 10914, 10920, 9201, 10925, 10928, 10935, 10941, 10954, 8669, + 10965, 10971, 10980, 10988, 10995, 11001, 11007, 11012, 11016, 11021, + 10477, 11027, 9206, 11034, 11039, 11046, 11052, 11058, 11063, 11071, + 11079, 11086, 11090, 11104, 11114, 11119, 11123, 11134, 11140, 11145, + 11150, 9211, 9217, 11154, 11157, 11162, 11174, 11181, 11186, 11190, + 11195, 11199, 11206, 11212, 9222, 9129, 11219, 2863, 8, 11226, 11231, + 11235, 11241, 11249, 11259, 11264, 11269, 11276, 11283, 11287, 11298, + 11308, 11317, 11329, 11334, 11338, 11346, 11360, 11364, 11367, 11375, + 11382, 11390, 11394, 11405, 11409, 11416, 11421, 11425, 11431, 11436, + 11440, 11446, 11451, 11462, 11466, 11469, 11475, 11480, 11486, 11492, + 11499, 11510, 11520, 11530, 11539, 11546, 11555, 9232, 9239, 9245, 9250, + 11561, 11567, 9254, 11573, 11576, 11583, 11588, 11603, 11619, 11634, + 11642, 11648, 11653, 838, 420, 11658, 11666, 11673, 11679, 11684, 11689, + 9259, 11691, 11695, 11700, 11704, 11714, 11719, 11723, 11732, 11736, + 11739, 9268, 11746, 11749, 11757, 11764, 11772, 11776, 11783, 11792, + 11795, 11799, 11803, 11809, 11813, 11817, 11821, 11827, 11837, 11841, + 11849, 11853, 11860, 11864, 11869, 11873, 11880, 11886, 11894, 11900, + 11905, 11915, 11920, 11925, 11929, 11937, 3905, 11945, 11950, 9273, + 11954, 11958, 11961, 11969, 11976, 11980, 5991, 11984, 11989, 11993, + 12004, 12014, 12019, 12025, 12029, 12032, 12040, 12045, 12050, 12057, + 12062, 9278, 12067, 12071, 12078, 1722, 6145, 12083, 12088, 12093, 12098, + 12104, 12109, 12115, 12120, 12125, 12130, 12135, 12140, 12145, 12150, + 12155, 12160, 12165, 12170, 12175, 12180, 12185, 12190, 12195, 12201, + 12206, 12211, 12216, 12221, 12226, 12232, 12237, 12242, 12248, 12253, + 12259, 12264, 12270, 12275, 12280, 12285, 12290, 12296, 12301, 12306, + 12311, 737, 139, 12319, 12323, 12328, 12333, 12337, 12341, 12345, 12350, + 12354, 12359, 12363, 12366, 12370, 12374, 12380, 12385, 12395, 12401, + 12409, 12413, 12417, 12424, 12432, 12441, 12452, 12459, 12466, 12470, + 12479, 12488, 12496, 12505, 12514, 12523, 12532, 12542, 12552, 12562, + 12572, 12582, 12591, 12601, 12611, 12621, 12631, 12641, 12651, 12661, + 12670, 12680, 12690, 12700, 12710, 12720, 12730, 12739, 12749, 12759, + 12769, 12779, 12789, 12799, 12809, 12819, 12829, 12838, 12848, 12858, + 12868, 12878, 12888, 12898, 12908, 12918, 12928, 12938, 12947, 1256, + 12953, 12956, 12960, 12965, 12972, 12978, 12983, 12987, 12992, 13001, + 13009, 13014, 13018, 13022, 13028, 13033, 13039, 9287, 13044, 13049, + 13058, 9292, 13063, 13066, 13072, 13080, 9297, 13087, 13091, 13095, + 13099, 13109, 13115, 13121, 13126, 13135, 13143, 13150, 13157, 13162, + 13169, 13174, 13178, 13181, 13192, 13202, 13211, 13219, 13230, 13242, + 13252, 13257, 13261, 13266, 13271, 13275, 13281, 13289, 13296, 13307, + 13312, 13322, 13326, 13329, 13336, 13346, 13355, 13362, 13366, 13373, + 13379, 13384, 13389, 13393, 13402, 13407, 13413, 13417, 13422, 13426, + 13435, 13443, 13451, 13458, 13466, 13478, 13489, 13499, 13506, 13512, + 13521, 13532, 13541, 13553, 13565, 13577, 13587, 13596, 13605, 13613, + 13620, 13629, 13637, 13641, 13647, 13653, 13658, 7753, 13662, 13664, + 13668, 13673, 13679, 13688, 13692, 13700, 13707, 13716, 13725, 13734, + 13743, 13752, 13761, 13770, 13779, 13789, 13799, 13808, 13814, 13821, + 13828, 13834, 13848, 13855, 13863, 13872, 13878, 13887, 13896, 13907, + 13917, 13925, 13932, 13940, 13949, 13962, 13970, 13977, 13990, 13996, + 14002, 14012, 14021, 14030, 14035, 14039, 14045, 14051, 14058, 8966, + 14063, 14068, 14075, 14080, 12376, 14085, 14093, 14099, 14104, 14112, + 14120, 14127, 14135, 14141, 14149, 14157, 14163, 14168, 14174, 14181, + 14187, 14192, 14196, 14207, 14215, 14221, 14226, 14235, 14241, 14246, + 14255, 14269, 3853, 14273, 14278, 14283, 14289, 14294, 14299, 14303, + 14308, 14313, 14318, 7752, 14323, 14328, 14333, 14338, 14343, 14347, + 14352, 14357, 14362, 14367, 14373, 14379, 14384, 14388, 14393, 14398, + 14403, 9301, 14408, 14413, 14418, 14423, 14428, 14445, 14463, 14475, + 14488, 14505, 14521, 14538, 14548, 14567, 14578, 14589, 14600, 14611, + 14623, 14634, 14645, 14662, 14673, 14684, 14689, 9306, 14694, 14698, + 2381, 14702, 14705, 14711, 14719, 14727, 14732, 14740, 14748, 14755, + 14760, 14766, 14773, 14781, 14788, 14800, 14808, 14813, 11597, 14819, + 14828, 14837, 14845, 14852, 14858, 14866, 14873, 14879, 14886, 14892, + 14901, 14909, 14919, 14926, 14932, 14940, 14946, 14954, 14961, 14974, + 14981, 14990, 14999, 15008, 15016, 15026, 15033, 15038, 3560, 15045, + 15050, 1372, 15054, 14324, 15058, 15064, 15068, 15076, 15088, 15093, + 15100, 15106, 15111, 15118, 14329, 15122, 15126, 15130, 14334, 15134, + 14339, 15138, 15145, 15150, 15154, 15161, 15165, 15173, 15180, 15184, + 15191, 15208, 15217, 15221, 15224, 15232, 15238, 15243, 3638, 15247, + 15249, 15257, 15264, 15274, 15286, 15291, 15297, 15302, 15306, 15312, + 15317, 15323, 15326, 15333, 15341, 15348, 15354, 15360, 15365, 15372, + 15378, 15383, 15390, 15394, 15400, 15404, 15411, 15417, 15423, 15431, + 15437, 15442, 15448, 15456, 15464, 15470, 15476, 15481, 15488, 15493, + 15497, 15503, 15508, 15515, 15520, 15526, 15529, 15535, 15541, 15544, + 15548, 15560, 15566, 15571, 15578, 15584, 15590, 15601, 15611, 15620, + 15628, 15635, 15646, 15656, 15666, 15674, 15677, 14353, 15682, 15687, + 14358, 14493, 15695, 15708, 15723, 15734, 14510, 15752, 15765, 15778, + 15789, 10492, 15800, 15813, 15832, 15843, 15854, 15865, 2649, 15878, + 15882, 15890, 15905, 15920, 15931, 15938, 15944, 15952, 15956, 15962, + 15965, 15975, 15983, 15990, 15998, 16008, 16013, 16020, 16025, 16032, + 16043, 16053, 16059, 16064, 16069, 14363, 16073, 16079, 16085, 16090, + 16095, 16100, 16104, 14368, 14374, 16108, 14380, 16113, 16121, 16130, + 16137, 9150, 16141, 16143, 16148, 16153, 16159, 16164, 16169, 16174, + 16179, 16183, 16189, 16195, 16200, 16206, 16211, 16216, 16222, 16227, + 16232, 16237, 16242, 16248, 16253, 16258, 16264, 16270, 16275, 16280, + 16287, 16293, 16304, 16311, 16316, 16320, 16324, 16327, 16335, 16340, + 16347, 16354, 16360, 16365, 16370, 16377, 16387, 16392, 16399, 16405, + 16415, 16425, 16439, 16453, 16467, 16481, 16496, 16511, 16528, 16546, + 16559, 16565, 16570, 16575, 16579, 16584, 16592, 16598, 16603, 16608, + 16612, 16617, 16621, 16626, 16630, 16641, 16647, 16652, 16657, 16664, + 16669, 16673, 16678, 16683, 16689, 16696, 16702, 16707, 16711, 16717, + 16722, 16727, 16731, 16737, 16742, 16747, 16754, 16759, 13111, 16763, + 16768, 16772, 16777, 16783, 16789, 16796, 16806, 16814, 16821, 16826, + 16830, 16839, 16847, 16854, 16861, 16867, 16873, 16878, 16883, 16889, + 16894, 16900, 16905, 16911, 16917, 16924, 16930, 16935, 16940, 9348, + 16949, 16952, 16958, 16963, 16968, 16978, 16985, 16991, 16996, 17001, + 17007, 17012, 17018, 17023, 17029, 17035, 17040, 17048, 17055, 17060, + 17065, 17071, 17076, 17080, 17089, 17100, 17107, 17112, 17120, 17126, + 17133, 17139, 17144, 17148, 17154, 17159, 17164, 17169, 1440, 7777, 2877, + 17173, 17177, 17181, 17185, 17189, 17193, 17196, 17203, 17211, 14394, + 17218, 17228, 17236, 17243, 17251, 17261, 17270, 17283, 17288, 17293, + 17301, 17308, 13207, 13216, 17315, 17325, 17340, 17346, 17353, 17360, + 17366, 17374, 17384, 17394, 14399, 17403, 17409, 17415, 17423, 17431, + 17436, 17445, 17453, 17465, 17475, 17485, 17495, 17504, 17516, 17526, + 17536, 17547, 17552, 17564, 17576, 17588, 17600, 17612, 17624, 17636, + 17648, 17660, 17672, 17683, 17695, 17707, 17719, 17731, 17743, 17755, + 17767, 17779, 17791, 17803, 17814, 17826, 17838, 17850, 17862, 17874, + 17886, 17898, 17910, 17922, 17934, 17945, 17957, 17969, 17981, 17993, + 18005, 18017, 18029, 18041, 18053, 18065, 18076, 18088, 18100, 18112, + 18124, 18136, 18148, 18160, 18172, 18184, 18196, 18207, 18219, 18231, + 18243, 18255, 18267, 18279, 18291, 18303, 18315, 18327, 18338, 18350, + 18362, 18374, 18386, 18398, 18410, 18422, 18434, 18446, 18458, 18469, + 18481, 18493, 18505, 18517, 18530, 18543, 18556, 18569, 18582, 18595, + 18608, 18620, 18633, 18646, 18659, 18672, 18685, 18698, 18711, 18724, + 18737, 18750, 18762, 18775, 18788, 18801, 18814, 18827, 18840, 18853, + 18866, 18879, 18892, 18904, 18917, 18930, 18943, 18956, 18969, 18982, + 18995, 19008, 19021, 19034, 19046, 19059, 19072, 19085, 19098, 19111, + 19124, 19137, 19150, 19163, 19176, 19188, 19201, 19214, 19227, 19240, + 19253, 19266, 19279, 19292, 19305, 19318, 19330, 19341, 19354, 19367, + 19380, 19393, 19406, 19419, 19432, 19445, 19458, 19471, 19483, 19496, + 19509, 19522, 19535, 19548, 19561, 19574, 19587, 19600, 19613, 19625, + 19638, 19651, 19664, 19677, 19690, 19703, 19716, 19729, 19742, 19755, + 19767, 19780, 19793, 19806, 19819, 19832, 19845, 19858, 19871, 19884, + 19897, 19909, 19922, 19935, 19948, 19961, 19974, 19987, 20000, 20013, + 20026, 20039, 20051, 20064, 20077, 20090, 20103, 20116, 20129, 20142, + 20155, 20168, 20181, 20193, 20206, 20219, 20232, 20245, 20258, 20271, + 20284, 20297, 20310, 20323, 20335, 20348, 20361, 20374, 20387, 20400, + 20413, 20426, 20439, 20452, 20465, 20477, 20490, 20503, 20516, 20529, + 20542, 20555, 20568, 20581, 20594, 20607, 20619, 20632, 20645, 20658, + 20671, 20684, 20697, 20710, 20723, 20736, 20749, 20761, 20772, 20780, + 20788, 20795, 20801, 20805, 20811, 20817, 20825, 20831, 20836, 20840, + 20849, 9155, 20860, 20867, 20875, 20882, 20889, 10948, 20896, 20905, + 20910, 20915, 7805, 20922, 20927, 20930, 20935, 20943, 20950, 20957, + 20964, 20970, 20979, 20988, 20994, 21003, 21007, 21013, 21018, 21028, + 21035, 21041, 21049, 21055, 21062, 21072, 21081, 21085, 21092, 21096, + 21101, 21107, 21115, 21119, 21129, 14409, 21138, 21144, 21148, 21157, + 14414, 21163, 21170, 21181, 21189, 21198, 21206, 8931, 21214, 21219, + 21225, 21230, 21234, 21238, 21242, 9639, 21247, 21255, 21262, 21271, + 21278, 21285, 10878, 21292, 21298, 21302, 21308, 21315, 21321, 21329, + 21335, 21342, 21348, 21354, 21363, 21367, 21375, 21384, 21391, 21396, + 21400, 21411, 21416, 21421, 21426, 21439, 7995, 21443, 21449, 21457, + 21461, 21468, 21477, 21482, 14685, 21490, 21494, 21506, 21511, 21515, + 21518, 21524, 21530, 21535, 21539, 21542, 21553, 21558, 9383, 21565, + 21570, 9388, 21575, 21580, 21585, 21590, 21595, 21600, 21605, 21610, + 21615, 21620, 21625, 21630, 21636, 21641, 21646, 21651, 21656, 21661, + 21666, 21671, 21676, 21681, 21687, 21693, 21698, 21703, 21708, 21713, + 21718, 21723, 21728, 21733, 21738, 21744, 21749, 21754, 21759, 21765, + 21771, 21776, 21781, 21786, 21791, 21796, 21801, 21806, 21811, 21817, + 21822, 21827, 21832, 21837, 21843, 21848, 21853, 21857, 1368, 129, 21865, + 21869, 21873, 21877, 21882, 21886, 13117, 12476, 21890, 21895, 21899, + 21904, 21908, 21913, 21917, 21923, 21928, 21932, 21936, 21944, 21948, + 21952, 21957, 21962, 21966, 21972, 21977, 21981, 21986, 21991, 21995, + 22002, 22009, 22016, 22020, 22024, 22029, 22033, 22036, 22042, 22055, + 22060, 22069, 22074, 9428, 22079, 22082, 2712, 2717, 22086, 22092, 22098, + 7209, 22103, 22108, 22113, 22119, 22124, 13903, 22129, 22134, 22139, + 22144, 22150, 22155, 22160, 22166, 22171, 22175, 22180, 22185, 22190, + 22195, 22199, 22204, 22208, 22213, 22218, 22223, 22228, 22232, 22237, + 22241, 22246, 22251, 22256, 22261, 2886, 22176, 22265, 22273, 22280, + 9733, 22292, 22300, 22181, 22307, 22312, 22320, 22186, 22325, 22330, + 22338, 22343, 22191, 22348, 22353, 22357, 22363, 22371, 22374, 22381, + 22385, 22389, 22395, 22402, 22407, 8958, 1727, 1732, 22411, 22417, 22423, + 22428, 22432, 22436, 22440, 22444, 22448, 22452, 22456, 22459, 22465, + 22472, 22480, 22486, 22492, 22497, 22502, 22506, 13823, 13830, 22511, + 22523, 22526, 22533, 16356, 22540, 22548, 22559, 22568, 22581, 22591, + 22605, 22617, 22631, 22643, 22653, 22665, 22671, 22686, 22710, 22728, + 22747, 22760, 22774, 22792, 22808, 22825, 22843, 22854, 22873, 22890, + 22910, 22928, 22940, 22954, 22968, 22980, 22997, 23016, 23034, 23046, + 23064, 23083, 14553, 23096, 23116, 23128, 10523, 23140, 23145, 23150, + 23155, 23161, 23166, 23170, 23177, 2398, 23181, 23187, 23191, 23194, + 23198, 23206, 23212, 22209, 23216, 23225, 23236, 23242, 23248, 23257, + 23265, 23272, 23277, 23281, 23288, 23294, 23303, 23311, 23318, 23328, + 23337, 23347, 23352, 23361, 23370, 23381, 23392, 3963, 23402, 23406, + 23416, 23424, 23434, 23445, 23450, 23460, 23468, 23475, 23481, 23488, + 23493, 22219, 23497, 23506, 23510, 23513, 23518, 23525, 23534, 23542, + 23550, 23560, 23569, 23575, 23581, 22224, 22229, 23585, 23595, 23605, + 23615, 23623, 23630, 23640, 23648, 23656, 23662, 23670, 930, 23679, + 14744, 542, 23693, 23702, 23710, 23721, 23732, 23742, 23751, 23763, + 23772, 23781, 23787, 23796, 23805, 23815, 23823, 23831, 9360, 23837, + 23840, 23844, 23849, 23854, 9848, 22242, 22247, 23862, 23868, 23874, + 23879, 23884, 23888, 23896, 23902, 23908, 23912, 3525, 23920, 23925, + 23930, 23934, 23938, 9928, 23945, 23953, 23967, 23974, 23980, 9937, 9943, + 23988, 23996, 24003, 24008, 24013, 22252, 24019, 24030, 24034, 24039, + 2601, 24044, 24055, 24061, 24066, 24070, 24074, 24077, 24084, 24091, + 24098, 24104, 24108, 22257, 24113, 24117, 24121, 1037, 24126, 24131, + 24136, 24141, 24146, 24151, 24156, 24161, 24166, 24171, 24176, 24181, + 24186, 24191, 24197, 24202, 24207, 24212, 24217, 24222, 24227, 24233, + 24238, 24243, 24248, 24253, 24258, 24263, 24268, 24274, 24280, 24285, + 24291, 24296, 24301, 5, 24307, 24311, 24315, 24319, 24324, 24328, 24332, + 24336, 24340, 24345, 24349, 24354, 24358, 24361, 24365, 24370, 24374, + 24379, 24383, 24387, 24391, 24396, 24400, 24404, 24414, 24419, 24423, + 24427, 24432, 24437, 24446, 24451, 24456, 24460, 24464, 24477, 24489, + 24498, 24507, 24513, 24518, 24522, 24526, 24536, 24545, 24553, 24559, + 24564, 24568, 24575, 24585, 24594, 24602, 24610, 24617, 24625, 24634, + 24643, 24651, 24656, 24660, 24664, 24667, 24669, 24673, 24677, 24682, + 24687, 24691, 24695, 24698, 24702, 24705, 24709, 24712, 24715, 24719, + 24725, 24729, 24733, 24737, 24742, 24747, 24752, 24756, 24759, 24764, + 24770, 24775, 24781, 24786, 24790, 24794, 24798, 24803, 24807, 24812, + 24816, 24820, 24827, 24831, 24834, 24838, 24844, 24850, 24854, 24858, + 24863, 24870, 24876, 24880, 24889, 24893, 24897, 24900, 24906, 24911, + 24917, 1489, 1791, 24922, 24927, 24932, 24937, 24942, 24947, 24952, 2148, + 2194, 24957, 24960, 24964, 24968, 24973, 24977, 24981, 24984, 24989, + 24994, 24998, 25001, 25006, 25010, 25015, 25019, 14756, 25024, 25027, + 25030, 25034, 25039, 25043, 25056, 25060, 25063, 25071, 25080, 25087, + 25092, 25098, 25104, 25112, 25119, 25126, 25130, 25134, 25138, 25143, + 25148, 25152, 25160, 25165, 25177, 25188, 25193, 25197, 25201, 25207, + 25212, 25217, 25221, 25225, 25228, 25234, 7915, 2316, 25238, 25243, + 25259, 9475, 25279, 25288, 25304, 25308, 25311, 25317, 25327, 25333, + 25342, 25357, 25369, 25380, 25388, 25397, 25403, 25412, 25422, 25433, + 25444, 25453, 25460, 25469, 25477, 25484, 25492, 25499, 25506, 25519, + 25526, 25532, 25537, 25546, 25552, 25557, 25565, 25572, 23426, 25584, + 25596, 25610, 25618, 25625, 25637, 25646, 25655, 25663, 25671, 25679, + 25686, 25695, 25703, 25713, 25722, 25732, 25741, 25750, 25758, 25763, + 25767, 25770, 25774, 25778, 25782, 25786, 25790, 25796, 25802, 25810, + 14801, 25817, 25822, 25829, 25835, 25842, 14809, 25849, 25852, 25864, + 25872, 25878, 25883, 25887, 9878, 25898, 25908, 25917, 25924, 25928, + 14814, 25931, 25938, 25942, 25948, 25951, 25958, 25964, 25971, 25977, + 25981, 25986, 25990, 25999, 26006, 26012, 7956, 26019, 26027, 26034, + 26040, 26045, 26051, 26057, 26065, 26069, 26072, 26074, 25775, 26083, + 26089, 26099, 26104, 26111, 26117, 26122, 26127, 26132, 26136, 26141, + 26148, 26157, 26161, 26168, 26177, 26183, 26188, 26194, 26199, 26206, + 26217, 26222, 26226, 26236, 26242, 26246, 26251, 26261, 26270, 26274, + 26281, 26289, 26296, 26302, 26307, 26315, 26322, 26334, 26343, 26347, + 13053, 26355, 26365, 26369, 25067, 26380, 26385, 26389, 26396, 26403, + 21968, 25700, 26408, 26412, 26415, 22860, 26420, 26434, 26450, 26468, + 26487, 26504, 26522, 22879, 26539, 26559, 22896, 26571, 26583, 15739, + 26595, 22916, 26609, 26621, 10536, 26635, 26640, 26645, 26650, 26656, + 26662, 26668, 26672, 26679, 26684, 26694, 26700, 10183, 26706, 26708, + 26713, 26721, 26725, 26144, 26731, 26738, 11524, 11534, 26745, 26755, + 26760, 26764, 26767, 26773, 26781, 26793, 26803, 26819, 26832, 26846, + 15757, 26860, 26867, 26871, 26874, 26879, 26883, 26890, 26897, 26907, + 26912, 26917, 26922, 26930, 26938, 26947, 26952, 9572, 26956, 26959, + 26962, 26967, 26974, 26979, 26995, 27003, 27011, 9423, 27019, 27024, + 27028, 27034, 27040, 27043, 27049, 27061, 27069, 27076, 27082, 27089, + 27100, 27114, 27127, 27136, 27145, 27157, 27168, 27178, 27187, 27196, + 27204, 27215, 7938, 27222, 27228, 27233, 27239, 27246, 27256, 27266, + 27275, 27281, 27288, 27293, 27300, 27308, 27316, 27328, 6246, 27335, + 27344, 27352, 27358, 27364, 27369, 27373, 27376, 27382, 27389, 27394, + 27399, 27403, 27415, 27426, 27435, 27443, 14941, 27448, 27454, 27460, + 11517, 8635, 27465, 27469, 27472, 27475, 27481, 27489, 27497, 27501, + 27505, 27510, 27513, 27522, 27526, 27534, 27545, 27549, 27555, 27561, + 27565, 27571, 27579, 27601, 27625, 27632, 27639, 27645, 27653, 27659, + 27664, 27675, 27693, 27700, 27708, 27712, 27721, 27734, 27742, 27754, + 27765, 27775, 27789, 27798, 27806, 27818, 9492, 27829, 27840, 27852, + 27862, 27871, 27876, 27880, 27888, 27898, 27903, 27907, 27910, 27913, + 27921, 27929, 27938, 27948, 27957, 27963, 27977, 2663, 27999, 28010, + 28019, 28029, 28041, 28050, 28059, 28069, 28077, 28085, 28094, 28099, + 28110, 28115, 28126, 28130, 28140, 28149, 28157, 28167, 28177, 28185, + 28194, 28201, 28209, 28216, 28225, 28229, 28237, 28244, 28252, 28259, + 28270, 28285, 28292, 28298, 28308, 28317, 28323, 28327, 28334, 28338, + 14025, 28344, 28348, 28353, 28360, 28364, 28368, 28376, 28384, 28390, + 28399, 28406, 28411, 28416, 28426, 23495, 28430, 28433, 28438, 28443, + 28448, 28453, 28458, 28463, 28468, 28473, 28479, 28484, 28489, 28495, + 1218, 704, 28500, 28509, 2364, 28516, 28521, 28525, 28531, 1267, 546, + 318, 28536, 28545, 28553, 28562, 28570, 28581, 28590, 28598, 28602, + 28605, 28613, 28621, 28626, 14769, 28632, 28638, 28644, 5872, 28649, + 28653, 28659, 28663, 28670, 1455, 28676, 28683, 9579, 28687, 28697, + 28705, 28711, 28720, 28728, 28734, 28742, 28749, 11110, 28755, 28762, + 28767, 28774, 1496, 2147, 28780, 28786, 28793, 28804, 28815, 28823, + 28830, 28840, 28849, 28857, 28866, 28873, 28880, 28893, 28904, 1272, + 28923, 28928, 28936, 3575, 28940, 28945, 28949, 1459, 24696, 28959, + 28963, 28968, 28972, 3493, 28978, 28986, 28993, 29004, 29012, 29020, + 3576, 279, 29025, 29033, 29041, 29048, 29054, 29059, 2216, 29066, 29072, + 25982, 26212, 29078, 106, 29082, 29086, 29092, 615, 9328, 29097, 29104, + 29110, 2327, 29114, 29118, 15181, 29121, 29126, 29133, 29139, 29144, + 29152, 29159, 29165, 22345, 29169, 29173, 3646, 16619, 29177, 29182, + 29185, 29193, 29201, 29206, 29209, 29216, 29226, 29238, 29243, 29247, + 29255, 29262, 29268, 29275, 29282, 29285, 29289, 29293, 1463, 29303, + 29305, 29310, 29316, 29322, 29327, 29332, 29337, 29342, 29347, 29352, + 29357, 29362, 29367, 29372, 29377, 29382, 29387, 29392, 29398, 29404, + 29410, 29416, 29421, 29426, 29431, 29437, 29442, 29447, 29452, 29458, + 29463, 29469, 29474, 29479, 29484, 29489, 29495, 29500, 29506, 29511, + 29516, 29521, 29526, 29532, 29537, 29543, 29548, 29553, 29558, 29563, + 29568, 29573, 29578, 29583, 29588, 29594, 29600, 29606, 29611, 29616, + 29621, 29626, 29632, 29638, 29644, 29650, 29656, 29662, 29667, 29673, + 29678, 29683, 29688, 29693, 29699, 2443, 29704, 2450, 2457, 2754, 29709, + 2463, 2473, 29715, 29719, 29724, 29729, 29735, 29740, 29745, 29749, + 29754, 29760, 29765, 29770, 29775, 29781, 29786, 29790, 29794, 29799, + 29804, 29809, 29814, 29819, 29825, 29831, 29836, 29840, 29845, 29851, + 29855, 29860, 29865, 29870, 29875, 29879, 29882, 29887, 29892, 29897, + 29902, 29907, 29913, 29919, 29924, 29929, 29933, 29938, 29943, 29948, + 29953, 29958, 29962, 29967, 29972, 29977, 29981, 29985, 29989, 29994, + 30002, 30007, 30013, 30019, 30025, 30030, 30034, 30037, 30042, 30047, + 30051, 30056, 30060, 30065, 30069, 30072, 30077, 17296, 30082, 30087, + 30092, 30100, 21274, 28680, 9026, 30105, 30110, 30114, 30119, 30123, + 30127, 30132, 30136, 30139, 30142, 30146, 30151, 30155, 30163, 30167, + 30170, 30175, 30179, 30183, 30188, 30193, 30197, 30203, 30208, 30213, + 30220, 30227, 30231, 30234, 30240, 30249, 30256, 30264, 30271, 30275, + 30280, 30284, 30288, 30294, 30300, 30304, 30310, 30315, 30320, 30327, + 30333, 30339, 30345, 30351, 30358, 30364, 30370, 30376, 30382, 30388, + 30394, 30400, 30407, 30413, 30420, 30426, 30432, 30438, 30444, 30450, + 30456, 30462, 30468, 30474, 11418, 30480, 30485, 30490, 30493, 30501, + 30506, 30515, 30521, 30526, 30531, 30536, 30540, 30545, 30550, 30555, + 30560, 30565, 30572, 30579, 30585, 30591, 30596, 16297, 30603, 30609, + 30616, 30622, 30628, 30633, 30641, 30646, 16076, 30650, 30655, 30660, + 30666, 30671, 30676, 30680, 30685, 30690, 30696, 30701, 30706, 30710, + 30715, 30720, 30724, 30729, 30734, 30739, 30743, 30748, 30753, 30758, + 30762, 30766, 15287, 30770, 30779, 30785, 30791, 30800, 30808, 30817, + 30825, 30830, 30834, 30841, 30847, 30851, 30854, 30859, 30868, 30876, + 30881, 1495, 30887, 30890, 30894, 22418, 22424, 30900, 30904, 30915, + 30926, 30937, 30949, 30956, 30963, 30968, 30972, 5909, 755, 21273, 30980, + 30985, 30989, 30994, 30998, 31004, 31009, 31015, 31020, 31026, 31031, + 31037, 31042, 31048, 31054, 31060, 31065, 31021, 31027, 31069, 31074, + 31080, 31085, 31091, 31096, 31102, 31107, 31032, 10421, 31111, 31043, + 31049, 31055, 2831, 3423, 31117, 31120, 31126, 31132, 31138, 31145, + 31151, 31157, 31163, 31169, 31175, 31181, 31187, 31193, 31199, 31205, + 31211, 31217, 31224, 31230, 31236, 31242, 31248, 31254, 31257, 31262, + 31265, 31272, 31280, 31285, 31290, 31296, 31301, 31306, 31310, 31315, + 31321, 31326, 31332, 31337, 31343, 31348, 31354, 31360, 31364, 31369, + 31374, 31379, 31384, 31388, 31393, 31398, 31403, 31409, 31415, 31421, + 31427, 31432, 31436, 31439, 31445, 31451, 31460, 31468, 31475, 31480, + 31484, 31488, 31493, 15140, 31498, 31506, 31512, 3683, 1377, 31517, + 31521, 8005, 31527, 31533, 31540, 8014, 31544, 31550, 31557, 31563, + 31572, 31580, 31592, 31596, 31603, 31609, 31613, 31616, 31625, 31633, + 31022, 31638, 31648, 31658, 31668, 31674, 31679, 31689, 31694, 31707, + 31721, 31732, 31744, 31756, 31770, 31783, 31795, 31807, 14594, 31821, + 31826, 31831, 31835, 31839, 31843, 1780, 27166, 31847, 31852, 31070, + 31857, 31860, 31865, 31870, 31875, 31881, 31887, 10098, 31892, 31899, + 15691, 31905, 31910, 31915, 31919, 31924, 31929, 31075, 31934, 31939, + 31944, 31950, 31081, 31955, 31958, 31965, 31973, 31979, 31985, 31991, + 32002, 32007, 32014, 32021, 32028, 32036, 32045, 32054, 32060, 32066, + 32074, 31086, 32079, 32085, 32091, 31092, 32096, 32101, 32109, 32117, + 32123, 32130, 32136, 32143, 32150, 32156, 32164, 32174, 32181, 32186, + 32192, 32197, 32202, 32209, 32218, 32226, 32231, 32237, 32244, 32252, + 32258, 32263, 32269, 32278, 27943, 32285, 32289, 32294, 32303, 32308, + 32313, 32318, 12405, 32326, 32331, 32336, 32341, 32345, 32350, 32355, + 32362, 32367, 32372, 32377, 31097, 21210, 32383, 2519, 244, 32386, 32389, + 32393, 32397, 32407, 32415, 32419, 32426, 32433, 32437, 32440, 32446, + 32454, 32462, 32466, 32470, 32473, 32480, 32484, 32488, 32495, 32503, + 31033, 32510, 32518, 10158, 660, 308, 32530, 32535, 32540, 32546, 32551, + 32556, 3704, 32561, 32564, 32569, 32574, 32579, 32584, 32589, 32596, + 22519, 32601, 32606, 32611, 32616, 32621, 32627, 32632, 32638, 31268, + 32644, 32649, 32655, 32661, 32671, 32676, 32681, 32685, 32690, 32695, + 32700, 32705, 32718, 32723, 22296, 16699, 3710, 32727, 32732, 32737, + 32743, 32748, 32753, 32757, 32762, 32767, 32773, 32778, 32783, 1382, + 32787, 32792, 32797, 32802, 32806, 32811, 32816, 32821, 32827, 32833, + 32838, 32842, 32846, 32851, 32856, 32861, 32865, 32873, 32877, 32883, + 32887, 32894, 16492, 31044, 32900, 32907, 32915, 32922, 32928, 32941, + 32953, 32959, 32963, 2773, 32967, 32971, 32475, 32980, 32991, 32996, + 33001, 33006, 33010, 33015, 22429, 33019, 33023, 33028, 31050, 21294, + 33032, 33037, 33043, 33048, 33052, 33056, 33059, 33063, 33069, 33080, + 33092, 31056, 33097, 33100, 33104, 347, 33109, 33114, 33119, 33124, + 33129, 33134, 33140, 33145, 33150, 33156, 33161, 33167, 33172, 33178, + 33183, 33188, 33193, 33198, 33203, 33208, 33213, 33218, 33224, 33229, + 33234, 33239, 33244, 33249, 33254, 33259, 33265, 33271, 33276, 33281, + 33286, 33291, 33296, 33301, 33306, 33311, 33316, 33321, 33326, 33331, + 33336, 33341, 33346, 33351, 33356, 33361, 33367, 313, 26, 33372, 33376, + 33380, 33388, 33392, 33396, 33399, 33402, 33404, 33409, 33413, 33418, + 33422, 33427, 33431, 33436, 33440, 33443, 33445, 33449, 33454, 33458, + 33469, 33472, 33474, 33478, 33490, 33499, 33503, 33507, 33513, 33518, + 33527, 33533, 33538, 33543, 33547, 33552, 33559, 33564, 33570, 33575, + 33579, 33586, 25708, 25718, 33590, 33595, 33600, 33605, 33612, 33616, + 33623, 8113, 33629, 33638, 33646, 33661, 33675, 33683, 33694, 33703, + 33708, 7227, 33718, 33723, 33728, 33732, 33735, 33739, 33744, 33748, + 33755, 33760, 33765, 8912, 33775, 33777, 33780, 33784, 33790, 33794, + 33799, 33804, 33810, 33815, 33821, 33826, 33836, 33845, 33853, 33858, + 33864, 33869, 33876, 33880, 33888, 33895, 33908, 33916, 33920, 33930, + 33935, 33939, 33947, 33955, 33959, 33968, 33974, 33979, 33987, 33997, + 34006, 34015, 34024, 34035, 34043, 34054, 34063, 34070, 34076, 34081, + 34092, 34097, 34101, 34104, 34108, 34116, 34122, 34130, 34137, 34143, + 34148, 34154, 2418, 34158, 34160, 34165, 34170, 34175, 34178, 34180, + 34184, 34187, 34194, 34198, 9891, 34202, 34208, 34218, 34223, 34229, + 34233, 34238, 34251, 26094, 34257, 34266, 17469, 34273, 34282, 31654, + 34290, 34295, 34299, 34307, 34314, 34319, 34323, 34328, 34332, 34340, + 34346, 34352, 34357, 34361, 34364, 34369, 34382, 34398, 22986, 34415, + 34427, 34444, 34456, 34470, 23003, 23022, 34482, 34494, 2680, 34508, + 34513, 34518, 34523, 34527, 34534, 34546, 34552, 34555, 34566, 34577, + 34582, 32071, 695, 34586, 34590, 34594, 34597, 34602, 34607, 34613, + 34618, 34623, 34629, 34635, 34640, 34644, 34649, 34654, 34659, 34663, + 34666, 34672, 34677, 34682, 34687, 34691, 34696, 34702, 34710, 26327, + 34715, 34720, 34727, 34733, 34739, 34744, 34752, 22528, 34759, 34764, + 34769, 34774, 34778, 34781, 34786, 34790, 34794, 34801, 34807, 34813, + 34819, 34826, 34831, 34837, 33950, 34841, 34845, 34850, 34863, 34868, + 34874, 34882, 34889, 34897, 34907, 34913, 34919, 34925, 34929, 34938, + 34946, 34953, 34958, 34963, 10444, 34968, 34976, 34983, 34989, 34999, + 35004, 35010, 35018, 3608, 35025, 35032, 3614, 35036, 35041, 35052, + 35059, 35065, 35074, 35078, 4015, 35081, 35088, 35094, 35100, 35108, + 35118, 29049, 35125, 35133, 35138, 35144, 35149, 25954, 35155, 35162, + 35168, 35177, 23667, 35184, 35189, 35193, 35201, 35209, 9607, 5895, + 35216, 35220, 35222, 35226, 35231, 35233, 35239, 35244, 35249, 35256, + 32592, 35262, 35267, 35271, 35276, 35280, 35289, 35293, 35299, 35306, + 35312, 35319, 35324, 35333, 35338, 35342, 35347, 35354, 35362, 35370, + 35375, 21350, 35379, 35382, 35386, 35390, 35394, 35397, 35399, 35407, + 35411, 35418, 35422, 35426, 35434, 35441, 35451, 35455, 35459, 35467, + 35475, 35481, 35486, 35495, 13357, 35501, 35510, 35515, 35522, 35530, + 35538, 35546, 35553, 35560, 35567, 35574, 35581, 35586, 35592, 35609, + 35617, 35627, 35635, 35642, 407, 35646, 35652, 35656, 35661, 33699, + 35667, 35670, 35674, 35682, 3619, 35690, 35696, 35702, 35711, 35721, + 35728, 35734, 3625, 3631, 35743, 35750, 35758, 35763, 35767, 35774, + 35782, 35789, 35795, 35804, 35814, 35820, 35828, 35837, 35844, 35852, + 35859, 22026, 35863, 35870, 35876, 35886, 35895, 35906, 35910, 35920, + 35926, 35933, 35941, 35950, 35959, 35969, 35980, 35987, 35992, 35999, + 3029, 36007, 36013, 36018, 36024, 36030, 36035, 36048, 36061, 36074, + 36081, 36087, 36095, 36103, 36108, 36112, 1469, 36116, 36121, 36126, + 36131, 36136, 36142, 36147, 36152, 36157, 36162, 36167, 36172, 36177, + 36183, 36189, 36194, 36199, 36205, 36210, 36215, 36220, 36226, 36231, + 36236, 36241, 36246, 36252, 36257, 36262, 36268, 36273, 36278, 36283, + 36288, 36293, 36299, 36304, 36310, 36315, 36321, 36326, 36331, 36336, + 36342, 36348, 36354, 36360, 36366, 36372, 36378, 36384, 36389, 36394, + 36400, 36405, 36410, 36415, 36420, 36425, 36430, 36435, 36441, 36446, + 36451, 36457, 36463, 101, 36468, 36470, 36474, 36478, 36482, 36487, + 36491, 9528, 36495, 36501, 1741, 6280, 36507, 36510, 36515, 36519, 36524, + 36528, 36532, 36537, 10245, 36541, 36545, 36549, 36553, 15379, 36558, + 36562, 36567, 36572, 36577, 36581, 36588, 26118, 36594, 36597, 36601, + 36606, 36612, 36616, 36624, 36630, 36635, 36639, 36645, 36649, 36653, + 3462, 3467, 29241, 36656, 36660, 36664, 36668, 36676, 36683, 36687, + 36694, 36699, 317, 36704, 36708, 36714, 36726, 36732, 36738, 36742, + 36748, 36757, 36761, 36765, 36770, 36776, 36781, 36785, 36790, 36794, + 36798, 36805, 36811, 36816, 36831, 36846, 36861, 36877, 36895, 10195, + 36909, 36916, 36920, 36923, 36932, 36937, 36941, 36949, 33901, 36957, + 36961, 36971, 36982, 29211, 36995, 36999, 37008, 37016, 9785, 14907, + 37020, 22441, 37023, 30159, 37028, 9784, 37033, 37039, 37044, 37050, + 37055, 37061, 37066, 37072, 37077, 37083, 37089, 37095, 37100, 37056, + 37062, 37067, 37073, 37078, 37084, 37090, 8126, 3874, 37104, 37112, + 37116, 37119, 37123, 37128, 37133, 37139, 37145, 37150, 37154, 25966, + 37158, 37162, 37168, 37172, 9049, 37181, 37188, 37192, 11875, 37199, + 37205, 37210, 37217, 37224, 37231, 28557, 8049, 37238, 37245, 37252, + 37258, 37263, 37270, 37281, 37287, 37292, 37297, 37302, 37309, 37057, + 37313, 37323, 37334, 37340, 37345, 37350, 37355, 37360, 37365, 37369, + 37373, 37379, 37387, 2319, 865, 10261, 10273, 10278, 10284, 37396, 10289, + 10294, 10300, 37401, 37411, 37415, 10305, 37420, 16897, 37423, 37428, + 37432, 37437, 37442, 37449, 37456, 37460, 37463, 37471, 10208, 37478, + 37481, 37487, 37497, 5929, 37506, 37510, 37518, 37522, 37532, 37538, + 37549, 37555, 37561, 37566, 37572, 37578, 37584, 37589, 37592, 37599, + 37605, 37610, 37617, 37624, 37628, 37638, 37651, 37660, 37669, 37680, + 37693, 37704, 37713, 37724, 37729, 37738, 37743, 10310, 37749, 37756, + 37764, 37769, 37773, 37780, 37787, 3829, 16, 37791, 37796, 16751, 37800, + 37803, 37806, 28063, 37810, 28566, 37818, 37822, 37826, 37829, 37835, + 37079, 37841, 37849, 37855, 37862, 28046, 37866, 28240, 37870, 37879, + 37885, 37891, 37896, 37900, 37906, 37910, 37918, 37926, 26184, 37932, + 37939, 37945, 37950, 37955, 37959, 37965, 37970, 37976, 4056, 791, 37983, + 37987, 37990, 15269, 38002, 35833, 38013, 38016, 38023, 38027, 38033, + 38037, 38043, 38048, 38054, 38059, 38064, 38068, 38072, 38077, 38082, + 38092, 38098, 38111, 38117, 38123, 38130, 38135, 38141, 38146, 16637, + 1472, 1019, 31200, 31206, 38151, 31212, 31225, 31231, 31237, 38157, + 31243, 31249, 38163, 38169, 22, 38177, 38184, 38188, 38192, 38200, 31960, + 38204, 38208, 38215, 38220, 38224, 38229, 38235, 38240, 38246, 38251, + 38255, 38259, 38263, 38268, 38272, 38277, 38281, 38288, 38293, 38297, + 38302, 38306, 38311, 38315, 38320, 38326, 15489, 15494, 38331, 38335, + 38338, 38342, 21177, 38347, 38351, 38357, 38364, 38369, 38379, 38384, + 38392, 38396, 38399, 31975, 38403, 4109, 38408, 38413, 38417, 38422, + 38426, 38431, 13375, 38442, 38446, 38449, 38454, 38458, 38462, 38465, + 38469, 8145, 13391, 38472, 38475, 38481, 38486, 38492, 38497, 38503, + 38508, 38514, 38519, 38525, 38531, 38537, 38542, 38546, 38550, 38559, + 38575, 38591, 38601, 27953, 38608, 38612, 38617, 38622, 38626, 38630, + 35954, 38636, 38641, 38645, 38652, 38657, 38661, 38665, 26986, 38671, + 21445, 38676, 38683, 38691, 38697, 38704, 38712, 38718, 38722, 38728, + 38736, 38740, 38749, 9509, 38757, 38761, 38769, 38776, 38781, 38786, + 38790, 38793, 38797, 38800, 38804, 38811, 38816, 38822, 26405, 31263, + 38826, 38833, 38839, 38845, 38850, 38853, 38855, 38862, 38869, 38875, + 38879, 38882, 38886, 38890, 38894, 38899, 38903, 38907, 38910, 38914, + 38928, 23052, 38947, 38960, 38973, 38986, 23070, 39001, 10497, 39016, + 39022, 39026, 39030, 39037, 39042, 39046, 39053, 39059, 39064, 39070, + 39080, 39092, 39103, 39108, 39115, 39119, 39123, 39126, 15885, 3677, + 39134, 15516, 39147, 39154, 39158, 39162, 39167, 39172, 39178, 39182, + 39186, 39189, 7742, 15527, 39194, 39198, 39204, 39213, 39218, 39225, + 35810, 39231, 39236, 39240, 39245, 39252, 39256, 39259, 39263, 39268, + 14559, 39275, 39282, 1072, 39286, 39291, 39296, 39302, 39307, 39312, + 39316, 39326, 39331, 39337, 39342, 39348, 39353, 39359, 39369, 39374, + 39379, 39383, 7229, 7241, 39388, 39391, 39398, 39404, 34066, 34073, + 39413, 39417, 32023, 39425, 39436, 39444, 36002, 39451, 39456, 39461, + 39472, 39479, 39490, 32047, 21451, 39498, 735, 39503, 39509, 28037, + 39515, 39520, 39530, 39539, 39546, 39552, 39556, 39559, 39566, 39572, + 39579, 39585, 39595, 39603, 39609, 39615, 39620, 39624, 39631, 39637, + 39644, 38895, 535, 13812, 39650, 39655, 39658, 39664, 39672, 1396, 39677, + 39681, 39686, 39693, 39699, 39703, 39707, 39712, 39721, 39728, 39738, + 39744, 28081, 39761, 39770, 39778, 39784, 39789, 39796, 39802, 39810, + 39819, 39827, 39831, 39836, 39844, 32056, 39850, 39869, 15818, 39883, + 39899, 39913, 39919, 39924, 39929, 39934, 39940, 32062, 39945, 39952, + 39957, 39961, 345, 2936, 39968, 39973, 39978, 27312, 39799, 39982, 39987, + 39995, 39999, 40002, 40008, 40014, 40018, 28136, 40021, 40026, 40030, + 40033, 40038, 40042, 40047, 40052, 40056, 40061, 40065, 40069, 21173, + 21184, 40073, 40078, 40084, 26943, 40089, 40093, 21260, 16066, 40096, + 40101, 40106, 40111, 40116, 40121, 40126, 40131, 447, 43, 31281, 31286, + 31291, 31297, 31302, 31307, 40136, 31311, 40140, 40144, 40148, 31316, + 31322, 40162, 31333, 31338, 40170, 40175, 31344, 40180, 40185, 40190, + 40195, 40201, 40207, 40213, 31361, 40226, 40232, 31365, 40236, 31370, + 40241, 31375, 31380, 40244, 40249, 40253, 30930, 40259, 13599, 40266, + 40271, 31385, 40275, 40280, 40285, 40290, 40294, 40299, 40304, 40310, + 40315, 40320, 40326, 40332, 40337, 40341, 40346, 40351, 40356, 40360, + 40365, 40370, 40375, 40381, 40387, 40393, 40398, 40402, 40407, 40411, + 31389, 31394, 31399, 40415, 40419, 40423, 31404, 31410, 31416, 31428, + 40435, 26003, 40439, 40443, 40448, 40453, 40458, 40463, 40467, 40471, + 40481, 40486, 40491, 40495, 40499, 40502, 40510, 31476, 40515, 1479, + 40521, 40529, 40538, 40542, 40546, 40554, 40560, 40568, 40584, 40588, + 40592, 40597, 40612, 31513, 1749, 12055, 40616, 1378, 40628, 40629, + 40637, 40644, 40649, 40656, 40661, 9379, 1114, 10332, 40668, 40673, + 40676, 40679, 40688, 1286, 40693, 39043, 40700, 40705, 22493, 2557, + 40709, 10741, 40719, 40725, 2337, 2347, 40734, 40743, 40753, 40764, 3293, + 34219, 10384, 3807, 16675, 1291, 40769, 40777, 40784, 40789, 40793, + 40797, 23865, 10411, 40805, 40814, 40823, 40831, 40838, 40849, 40854, + 40867, 40880, 40892, 40904, 40916, 40929, 40940, 40951, 40961, 40969, + 40977, 40989, 41001, 41012, 41021, 41029, 41036, 41048, 41055, 41064, + 41071, 41084, 41089, 41099, 41104, 41110, 41115, 37189, 41119, 41126, + 41130, 41137, 41145, 2518, 41152, 41163, 41173, 41182, 41190, 41200, + 41208, 41218, 41227, 41232, 41238, 41244, 3709, 41255, 41265, 41274, + 41283, 41293, 41301, 41310, 41315, 41320, 41325, 1705, 37, 41333, 41341, + 41352, 41363, 16350, 41373, 41377, 41384, 41390, 41395, 41399, 41410, + 41420, 41429, 41440, 16724, 16729, 41445, 41454, 41459, 41469, 41474, + 41482, 41490, 41497, 41503, 7078, 228, 41507, 41513, 41518, 41521, 2117, + 39159, 41529, 41533, 41536, 1512, 41542, 13974, 1296, 41547, 41560, + 41574, 2643, 41592, 41604, 41616, 2657, 2674, 41630, 41643, 2689, 41657, + 41669, 2704, 41683, 1302, 1308, 1314, 10659, 41688, 41693, 41698, 41702, + 41717, 41732, 41747, 41762, 41777, 41792, 41807, 41822, 41837, 41852, + 41867, 41882, 41897, 41912, 41927, 41942, 41957, 41972, 41987, 42002, + 42017, 42032, 42047, 42062, 42077, 42092, 42107, 42122, 42137, 42152, + 42167, 42182, 42197, 42212, 42227, 42242, 42257, 42272, 42287, 42302, + 42317, 42332, 42347, 42362, 42377, 42392, 42407, 42422, 42437, 42452, + 42467, 42482, 42497, 42512, 42527, 42542, 42557, 42572, 42587, 42602, + 42617, 42632, 42647, 42662, 42677, 42692, 42707, 42722, 42737, 42752, + 42767, 42782, 42797, 42812, 42827, 42842, 42857, 42872, 42887, 42902, + 42917, 42932, 42947, 42962, 42977, 42992, 43007, 43022, 43037, 43052, + 43067, 43082, 43097, 43112, 43127, 43142, 43157, 43172, 43187, 43202, + 43217, 43232, 43247, 43262, 43277, 43292, 43307, 43322, 43337, 43352, + 43367, 43382, 43397, 43412, 43427, 43442, 43457, 43472, 43487, 43502, + 43517, 43532, 43547, 43562, 43577, 43592, 43607, 43622, 43637, 43652, + 43667, 43682, 43697, 43712, 43727, 43742, 43757, 43772, 43787, 43802, + 43817, 43832, 43847, 43862, 43877, 43892, 43907, 43922, 43937, 43952, + 43967, 43982, 43997, 44012, 44027, 44042, 44057, 44072, 44087, 44102, + 44117, 44132, 44147, 44162, 44177, 44192, 44207, 44222, 44237, 44252, + 44267, 44282, 44297, 44312, 44327, 44342, 44357, 44372, 44387, 44402, + 44417, 44432, 44447, 44462, 44477, 44492, 44507, 44522, 44537, 44552, + 44567, 44582, 44597, 44612, 44627, 44642, 44657, 44672, 44687, 44702, + 44717, 44732, 44747, 44762, 44777, 44792, 44807, 44822, 44837, 44852, + 44867, 44882, 44897, 44912, 44927, 44942, 44957, 44972, 44987, 45002, + 45017, 45032, 45047, 45062, 45077, 45092, 45107, 45122, 45137, 45152, + 45167, 45182, 45197, 45212, 45227, 45242, 45257, 45272, 45287, 45302, + 45317, 45332, 45347, 45362, 45377, 45392, 45407, 45422, 45437, 45452, + 45467, 45482, 45497, 45512, 45527, 45542, 45557, 45572, 45587, 45602, + 45617, 45632, 45647, 45662, 45677, 45692, 45707, 45722, 45737, 45752, + 45767, 45782, 45797, 45812, 45827, 45842, 45857, 45872, 45887, 45902, + 45917, 45932, 45947, 45962, 45977, 45992, 46007, 46022, 46037, 46052, + 46067, 46082, 46097, 46112, 46127, 46142, 46157, 46172, 46187, 46202, + 46217, 46232, 46247, 46262, 46277, 46292, 46307, 46322, 46337, 46352, + 46367, 46382, 46397, 46412, 46427, 46442, 46457, 46472, 46487, 46502, + 46517, 46532, 46547, 46562, 46577, 46592, 46607, 46622, 46637, 46652, + 46667, 46682, 46697, 46712, 46727, 46742, 46757, 46772, 46787, 46802, + 46817, 46832, 46847, 46862, 46877, 46892, 46907, 46922, 46937, 46952, + 46967, 46982, 46997, 47012, 47027, 47042, 47057, 47072, 47087, 47102, + 47117, 47132, 47147, 47162, 47177, 47192, 47207, 47222, 47237, 47252, + 47267, 47282, 47297, 47312, 47327, 47342, 47357, 47372, 47387, 47402, + 47417, 47432, 47447, 47462, 47477, 47492, 47507, 47522, 47537, 47552, + 47567, 47582, 47597, 47612, 47627, 47642, 47657, 47672, 47687, 47702, + 47717, 47732, 47747, 47762, 47777, 47792, 47807, 47822, 47837, 47852, + 47867, 47882, 47897, 47912, 47927, 47942, 47957, 47972, 47987, 48002, + 48017, 48032, 48047, 48062, 48077, 48092, 48107, 48122, 48137, 48152, + 48167, 48182, 48197, 48212, 48227, 48242, 48257, 48272, 48287, 48302, + 48317, 48332, 48347, 48362, 48377, 48392, 48407, 48422, 48437, 48452, + 48467, 48482, 48497, 48512, 48527, 48542, 48557, 48572, 48587, 48602, + 48617, 48632, 48647, 48662, 48677, 48692, 48707, 48722, 48737, 48752, + 48767, 48782, 48797, 48812, 48827, 48842, 48857, 48872, 48887, 48902, + 48917, 48932, 48947, 48962, 48977, 48992, 49007, 49022, 49037, 49052, + 49067, 49082, 49097, 49112, 49127, 49142, 49157, 49172, 49187, 49202, + 49217, 49232, 49247, 49262, 49277, 49292, 49307, 49322, 49337, 49352, + 49367, 49382, 49397, 49412, 49427, 49442, 49457, 49472, 49487, 49502, + 49518, 49534, 49550, 49566, 49582, 49598, 49614, 49630, 49646, 49662, + 49678, 49694, 49710, 49726, 49742, 49758, 49774, 49790, 49806, 49822, + 49838, 49854, 49870, 49886, 49902, 49918, 49934, 49950, 49966, 49982, + 49998, 50014, 50030, 50046, 50062, 50078, 50094, 50110, 50126, 50142, + 50158, 50174, 50190, 50206, 50222, 50238, 50254, 50270, 50286, 50302, + 50318, 50334, 50350, 50366, 50382, 50398, 50414, 50430, 50446, 50462, + 50478, 50494, 50510, 50526, 50542, 50558, 50574, 50590, 50606, 50622, + 50638, 50654, 50670, 50686, 50702, 50718, 50734, 50750, 50766, 50782, + 50798, 50814, 50830, 50846, 50862, 50878, 50894, 50910, 50926, 50942, + 50958, 50974, 50990, 51006, 51022, 51038, 51054, 51070, 51086, 51102, + 51118, 51134, 51150, 51166, 51182, 51198, 51214, 51230, 51246, 51262, + 51278, 51294, 51310, 51326, 51342, 51358, 51374, 51390, 51406, 51422, + 51438, 51454, 51470, 51486, 51502, 51518, 51534, 51550, 51566, 51582, + 51598, 51614, 51630, 51646, 51662, 51678, 51694, 51710, 51726, 51742, + 51758, 51774, 51790, 51806, 51822, 51838, 51854, 51870, 51886, 51902, + 51918, 51934, 51950, 51966, 51982, 51998, 52014, 52030, 52046, 52062, + 52078, 52094, 52110, 52126, 52142, 52158, 52174, 52190, 52206, 52222, + 52238, 52254, 52270, 52286, 52302, 52318, 52334, 52350, 52366, 52382, + 52398, 52414, 52430, 52446, 52462, 52478, 52494, 52510, 52526, 52542, + 52558, 52574, 52590, 52606, 52622, 52638, 52654, 52670, 52686, 52702, + 52718, 52734, 52750, 52766, 52782, 52798, 52814, 52830, 52846, 52862, + 52878, 52894, 52910, 52926, 52942, 52958, 52974, 52990, 53006, 53022, + 53038, 53054, 53070, 53086, 53102, 53118, 53134, 53150, 53166, 53182, + 53198, 53214, 53230, 53246, 53262, 53278, 53294, 53310, 53326, 53342, + 53358, 53374, 53390, 53406, 53422, 53438, 53454, 53470, 53486, 53502, + 53518, 53534, 53550, 53566, 53582, 53598, 53614, 53630, 53646, 53662, + 53678, 53694, 53710, 53726, 53742, 53758, 53774, 53790, 53806, 53822, + 53838, 53854, 53870, 53886, 53902, 53918, 53934, 53950, 53966, 53982, + 53998, 54014, 54030, 54046, 54062, 54078, 54094, 54110, 54126, 54142, + 54158, 54174, 54190, 54206, 54222, 54238, 54254, 54270, 54286, 54302, + 54318, 54334, 54350, 54366, 54382, 54398, 54414, 54430, 54446, 54462, + 54478, 54494, 54510, 54526, 54542, 54558, 54574, 54590, 54606, 54622, + 54638, 54654, 54670, 54686, 54702, 54718, 54734, 54750, 54766, 54782, + 54798, 54814, 54830, 54846, 54862, 54878, 54894, 54910, 54926, 54942, + 54958, 54974, 54990, 55006, 55022, 55038, 55054, 55070, 55086, 55102, + 55118, 55134, 55150, 55166, 55182, 55198, 55214, 55230, 55246, 55262, + 55278, 55294, 55310, 55326, 55342, 55358, 55374, 55390, 55406, 55422, + 55438, 55454, 55470, 55486, 55502, 55518, 55534, 55550, 55566, 55582, + 55598, 55614, 55630, 55646, 55662, 55678, 55694, 55710, 55726, 55742, + 55758, 55774, 55790, 55806, 55822, 55838, 55854, 55870, 55886, 55902, + 55918, 55934, 55950, 55966, 55982, 55998, 56014, 56030, 56046, 56062, + 56078, 56094, 56110, 56126, 56142, 56158, 56174, 56190, 56206, 56222, + 56238, 56254, 56270, 56286, 56302, 56318, 56334, 56350, 56366, 56382, + 56398, 56414, 56430, 56446, 56462, 56478, 56494, 56510, 56526, 56542, + 56558, 56574, 56590, 56606, 56622, 56638, 56654, 56670, 56686, 56702, + 56718, 56734, 56750, 56766, 56782, 56798, 56814, 56830, 56846, 56862, + 56878, 56894, 56910, 56926, 56942, 56958, 56974, 56990, 57006, 57022, + 57038, 57054, 57070, 57086, 57102, 57118, 57134, 57150, 57166, 57182, + 57198, 57214, 57230, 57246, 57262, 57278, 57294, 57310, 57326, 57342, + 57358, 57374, 57390, 57406, 57422, 57438, 57454, 57470, 57486, 57502, + 57518, 57534, 57550, 57566, 57582, 57598, 57614, 57630, 57646, 57662, + 57678, 57694, 57710, 57726, 57742, 57758, 57774, 57790, 57806, 57822, + 57838, 57854, 57870, 57886, 57902, 57918, 57934, 57950, 57966, 57982, + 57998, 58014, 58030, 58046, 58062, 58078, 58094, 58110, 58126, 58142, + 58158, 58174, 58189, 16756, 58198, 58204, 58210, 58220, 58228, 14888, + 15439, 9960, 58241, 1520, 58249, 3761, 27422, 7183, 58255, 58260, 58265, + 58270, 58275, 58281, 58286, 58292, 58297, 58303, 58308, 58313, 58318, + 58323, 58329, 58334, 58339, 58344, 58349, 58354, 58359, 58364, 58370, + 58375, 58381, 58388, 2561, 58393, 58399, 8526, 58403, 58408, 58415, + 58423, 40, 58427, 58433, 58438, 58443, 58447, 58452, 58456, 58460, 10684, + 58464, 58474, 58487, 58498, 58511, 58518, 58524, 58529, 58535, 58541, + 58547, 58552, 58557, 58562, 58567, 58571, 58576, 58581, 58586, 58592, + 58598, 58604, 58609, 58613, 58618, 58623, 58627, 58632, 58637, 58642, + 58646, 10700, 10711, 10716, 1563, 58650, 1568, 58656, 16233, 58659, + 58665, 1599, 58671, 1605, 1611, 10746, 58676, 58684, 58691, 58695, 58701, + 58706, 30959, 58711, 58718, 58723, 58727, 58731, 1616, 16325, 58740, + 58744, 16336, 1120, 58748, 58755, 58760, 58764, 16361, 1620, 37328, + 58767, 58772, 58782, 58791, 58796, 58800, 58806, 1625, 39237, 58811, + 58820, 58826, 58831, 10904, 10910, 58837, 58849, 58866, 58883, 58900, + 58917, 58934, 58951, 58968, 58985, 59002, 59019, 59036, 59053, 59070, + 59087, 59104, 59121, 59138, 59155, 59172, 59189, 59206, 59223, 59240, + 59257, 59274, 59291, 59308, 59325, 59342, 59359, 59376, 59393, 59410, + 59427, 59444, 59461, 59478, 59495, 59512, 59529, 59546, 59563, 59580, + 59597, 59614, 59631, 59648, 59665, 59682, 59693, 59698, 1630, 59702, + 59708, 59713, 59718, 9326, 1635, 59724, 59733, 27717, 59738, 59749, + 59759, 59764, 59771, 59777, 59782, 59787, 16613, 59791, 10921, 1640, + 10926, 59797, 59802, 59808, 59813, 59818, 59823, 59828, 59833, 59838, + 59843, 59849, 59855, 59861, 59866, 59870, 59875, 59880, 59884, 59889, + 59894, 59899, 59903, 59908, 59914, 59919, 59924, 59928, 59933, 59938, + 59944, 59949, 59954, 59960, 59966, 59971, 59975, 59980, 59985, 59990, + 59994, 59999, 60004, 60009, 60015, 60021, 60026, 60030, 60034, 60039, + 60044, 60049, 29115, 60053, 60058, 60063, 60069, 60074, 60079, 60083, + 60088, 60093, 60099, 60104, 60109, 60115, 60121, 60126, 60130, 60135, + 60140, 60144, 60149, 60154, 60159, 60165, 60171, 60176, 60180, 60185, + 60190, 60194, 60199, 60204, 60209, 60213, 60216, 31621, 60221, 60229, + 16679, 3663, 11017, 60235, 60245, 60260, 11022, 60271, 60276, 60287, + 60299, 60311, 60323, 2695, 60335, 60340, 60352, 60356, 60362, 60368, + 60373, 1652, 1073, 60382, 60387, 39287, 60391, 60395, 60400, 60404, + 16764, 60409, 60412, 60420, 60428, 1656, 11047, 11053, 1661, 60436, + 60443, 60448, 60457, 60467, 60474, 60479, 60484, 1666, 60491, 60496, + 16879, 60500, 60505, 60512, 60518, 60522, 60533, 60543, 16901, 9234, + 9241, 1671, 60550, 60556, 60564, 60571, 60577, 60584, 60596, 60602, + 60607, 60619, 60630, 60639, 60649, 3740, 30795, 30804, 16941, 1676, 1680, + 60657, 60668, 60673, 1683, 60681, 60686, 16992, 60698, 60704, 60709, + 60717, 1688, 60722, 60727, 60735, 60743, 60750, 60759, 60767, 60776, + 1693, 60780, 1698, 60785, 60792, 17066, 60800, 60806, 60811, 60819, + 60826, 60834, 22564, 60839, 11182, 60848, 60854, 60861, 60868, 60874, + 60884, 60890, 60895, 60906, 60911, 60919, 11191, 11196, 60927, 60933, + 60941, 3805, 17108, 39375, 60946, 60952, 60957, 60965, 60972, 12036, + 60977, 60983, 1709, 60988, 60991, 1127, 60997, 61002, 61007, 61013, + 61018, 61023, 61028, 61033, 61038, 61043, 1718, 9, 61049, 61053, 61058, + 61062, 61066, 61070, 31861, 61075, 61080, 61085, 61089, 61092, 61096, + 61100, 61105, 61109, 61114, 61118, 34598, 34603, 34608, 61121, 61128, + 61134, 39096, 61144, 34614, 32119, 31876, 31882, 34630, 31888, 61149, + 61154, 32152, 61158, 61161, 61165, 61172, 61175, 61180, 61184, 61188, + 61191, 61201, 61213, 61220, 61226, 61233, 33555, 61236, 8543, 877, 61239, + 61243, 61248, 3690, 61252, 61255, 13632, 61262, 61269, 61282, 61290, + 61299, 61308, 61313, 61323, 61336, 61348, 61355, 61360, 61369, 61382, + 36042, 61400, 61405, 61412, 61418, 652, 61423, 61431, 61438, 27261, 627, + 61444, 61450, 61460, 61466, 61471, 31906, 6003, 31920, 61475, 61485, + 61490, 61500, 61515, 61521, 61527, 31930, 61532, 31076, 61536, 61541, + 61546, 61550, 61555, 16944, 61562, 61567, 61571, 6044, 31956, 61575, + 61581, 312, 61591, 61598, 61605, 61610, 61619, 58776, 61625, 61633, + 61637, 61641, 61645, 61649, 61654, 61658, 61664, 61672, 61677, 61682, + 61686, 61691, 61695, 61699, 61705, 61711, 61716, 61720, 32080, 61725, + 32086, 32092, 61730, 61736, 61743, 61748, 61752, 31093, 16606, 61755, + 61759, 61764, 61771, 61777, 61781, 61786, 38806, 61792, 61796, 61800, + 61805, 61811, 61817, 61829, 61838, 61848, 61854, 61861, 61866, 61871, + 61875, 61878, 61884, 61891, 61896, 61901, 61908, 61915, 61921, 61926, + 61931, 61939, 32097, 2423, 61944, 61949, 61955, 61960, 61966, 61971, + 61976, 61981, 61987, 32118, 61992, 61998, 62004, 62010, 32182, 62015, + 62020, 62025, 32193, 62030, 62035, 62040, 62046, 62052, 32198, 62057, + 62062, 62067, 32253, 32259, 62072, 62077, 32264, 62082, 27944, 32286, + 32290, 62087, 62063, 62091, 62099, 62105, 62113, 62120, 62126, 62136, + 62142, 62149, 10631, 32304, 62155, 62168, 62177, 62183, 62192, 62198, + 23502, 62205, 62212, 62222, 32254, 62225, 62232, 62237, 62241, 62245, + 62250, 6120, 62254, 62259, 62264, 34692, 34697, 62268, 34711, 62273, + 34716, 62278, 62284, 34728, 34734, 34740, 62289, 62295, 22529, 62306, + 62309, 62321, 62329, 32327, 62333, 62342, 62352, 62361, 32337, 62366, + 62373, 62382, 62388, 62396, 62403, 6095, 4397, 62408, 32265, 62414, + 62417, 62423, 62430, 62435, 62440, 23412, 62444, 62450, 62456, 62461, + 62466, 62470, 62476, 62482, 33465, 863, 35705, 36626, 36632, 32373, + 62487, 62491, 62495, 62498, 62511, 62517, 62521, 62524, 62529, 33768, + 62533, 31098, 21281, 62539, 6024, 6032, 9075, 62542, 62547, 62552, 62557, + 62562, 62567, 62572, 62577, 62582, 62587, 62593, 62598, 62603, 62609, + 62614, 62619, 62624, 62629, 62634, 62639, 62645, 62650, 62656, 62661, + 62666, 62671, 62676, 62681, 62686, 62691, 62696, 62701, 62706, 62712, + 62717, 62722, 62727, 62732, 62737, 62742, 62748, 62753, 62758, 62763, + 62768, 62773, 62778, 62783, 62788, 62793, 62799, 62804, 62809, 62814, + 62819, 62825, 62831, 62836, 62842, 62847, 62852, 62857, 62862, 62867, + 1513, 245, 62872, 62876, 62880, 62884, 25123, 62888, 62892, 62897, 62901, + 62906, 62910, 62915, 62920, 62925, 62929, 62933, 62938, 62942, 13369, + 62947, 62951, 62958, 62968, 15200, 62977, 62986, 62990, 62995, 63000, + 63004, 24914, 3019, 63008, 17357, 63014, 63023, 63031, 63037, 63049, + 63061, 63065, 63070, 63074, 63080, 63086, 63091, 63101, 63111, 63117, + 63122, 63126, 63131, 63137, 63146, 63155, 63163, 15554, 63167, 63176, + 63184, 63196, 63207, 63218, 63227, 63231, 63240, 63250, 63258, 63264, + 63269, 63275, 63280, 98, 30907, 63291, 26256, 26266, 63297, 63304, 63310, + 63314, 63324, 63335, 63343, 63352, 63357, 63362, 63366, 17311, 63374, + 63378, 63384, 63394, 63401, 63407, 34791, 63413, 63415, 63418, 63422, + 63432, 63438, 63445, 13315, 63452, 63458, 63467, 63476, 63482, 63488, + 63494, 63499, 63506, 63513, 63519, 63532, 63541, 63550, 63555, 63559, + 63565, 63572, 63579, 63586, 63593, 63600, 63605, 63609, 63613, 63616, + 63626, 63630, 63642, 63651, 63655, 63660, 63664, 63670, 63675, 63682, + 63691, 63699, 63707, 63712, 63716, 63721, 63726, 63736, 63744, 63749, + 63753, 63757, 63763, 63775, 63783, 63793, 63800, 63806, 63811, 63815, + 63819, 63823, 63832, 63841, 63850, 63856, 63862, 63868, 63873, 63880, + 63886, 63894, 63901, 12463, 63907, 63913, 63917, 14238, 63921, 63926, + 63936, 63945, 63951, 63957, 63965, 63972, 63976, 63980, 63986, 63994, + 64001, 64007, 64018, 64022, 64026, 64030, 64033, 64039, 64044, 64048, + 64052, 64061, 64069, 64076, 64082, 64089, 24036, 38848, 64094, 64102, + 64106, 64110, 64113, 64121, 64128, 64134, 64143, 64151, 64157, 64162, + 64166, 64171, 64175, 64179, 64184, 64193, 64197, 64204, 64211, 64217, + 64225, 64231, 64242, 64250, 64256, 22659, 64265, 64272, 64279, 64286, + 64293, 64300, 41877, 13153, 64307, 64314, 64319, 34827, 6217, 64325, + 64330, 64335, 64341, 64347, 64353, 64358, 64363, 64368, 64373, 64379, + 64384, 64390, 64395, 64401, 64406, 64411, 64416, 64421, 64426, 64431, + 64436, 64442, 64447, 64453, 64458, 64463, 64468, 64473, 64478, 64483, + 64489, 64494, 64499, 64504, 64509, 64514, 64519, 64524, 64529, 64534, + 64539, 64545, 64550, 64555, 64560, 64565, 64570, 64575, 64580, 64585, + 64591, 64596, 64601, 64606, 64611, 64616, 64621, 64626, 64631, 64636, + 64641, 64646, 64651, 64657, 1834, 224, 37424, 64662, 64665, 64670, 64674, + 64677, 64682, 63703, 64693, 64703, 64710, 64726, 64735, 64745, 64755, + 64763, 64777, 64785, 64789, 64792, 64799, 64805, 64816, 64828, 64839, + 64848, 64855, 1297, 23301, 64865, 2590, 64869, 64878, 1133, 17284, 38061, + 64886, 64894, 64908, 64921, 64925, 64930, 64935, 64940, 64946, 64952, + 64957, 8535, 64962, 64966, 64974, 11048, 64979, 64985, 64994, 1721, + 11060, 736, 64998, 65007, 65017, 27020, 65026, 65032, 16856, 65038, + 65042, 3964, 11391, 65048, 65055, 60663, 65059, 65063, 3988, 189, 14153, + 65069, 65081, 65085, 65091, 27737, 65095, 11379, 2730, 4, 65100, 65110, + 65116, 65127, 65134, 65140, 65146, 65154, 65161, 65167, 65177, 65187, + 65197, 23489, 1309, 65206, 65210, 65214, 65220, 65224, 2753, 2759, 8532, + 2264, 65228, 65232, 65241, 65249, 65260, 65268, 65276, 65282, 65287, + 65298, 65309, 65317, 65323, 9694, 65328, 65336, 65340, 65344, 65348, + 65360, 28122, 65367, 65377, 65383, 65389, 9796, 65399, 65410, 65420, + 65429, 65433, 65440, 1135, 1170, 65450, 65455, 65463, 65471, 65482, + 65489, 65503, 14082, 393, 65513, 65517, 65525, 65534, 65542, 65548, + 65562, 65569, 65575, 65584, 65591, 65601, 65609, 3812, 156, 65617, 65628, + 65632, 65644, 27935, 161, 65650, 65655, 65659, 65666, 65672, 65680, + 65687, 8818, 65694, 65703, 65711, 3878, 65724, 8199, 65728, 2798, 450, + 65733, 65746, 65751, 1833, 668, 65755, 3895, 65763, 65769, 65773, 931, + 65783, 65792, 65797, 14922, 14929, 45239, 65801, 3822, 13041, 65809, + 65816, 23545, 65820, 65827, 65833, 65838, 65843, 14942, 372, 65848, + 65860, 65866, 65874, 2810, 1753, 65882, 65884, 65889, 65894, 65899, + 65905, 65910, 65915, 65920, 65925, 65930, 65935, 65941, 65946, 65951, + 65956, 65961, 65966, 65971, 65976, 65981, 65987, 65992, 65997, 66002, + 66008, 66013, 66019, 66024, 66029, 66034, 66039, 66044, 66049, 66054, + 66060, 66065, 66071, 66076, 66081, 66086, 66091, 66096, 66101, 66106, + 66111, 66117, 66122, 66127, 66132, 66136, 66140, 66145, 66149, 66154, + 66159, 66165, 66170, 66174, 66179, 66183, 66186, 66188, 66192, 66195, + 66200, 66204, 66208, 66212, 66216, 66225, 66229, 32531, 66232, 32536, + 66239, 66244, 32541, 66253, 66262, 32547, 66267, 32552, 66276, 66281, + 11578, 66285, 66290, 66295, 32557, 66299, 40203, 66303, 66306, 66310, + 8211, 66316, 66321, 66325, 3705, 32562, 66328, 66332, 66335, 66340, + 66344, 66350, 66358, 66371, 66380, 66386, 66391, 66397, 66401, 66407, + 66415, 66420, 66424, 66431, 66437, 66445, 66454, 66462, 32565, 66469, + 66479, 66488, 66501, 66506, 66511, 66520, 66526, 66533, 66544, 66556, + 66563, 66572, 66581, 66590, 66597, 66603, 66610, 66618, 66625, 66633, + 66642, 66650, 66657, 66665, 66674, 66682, 66691, 66701, 66710, 66718, + 66725, 66733, 66742, 66750, 66759, 66769, 66778, 66786, 66795, 66805, + 66814, 66824, 66835, 66845, 66854, 66862, 66869, 66877, 66886, 66894, + 66903, 66913, 66922, 66930, 66939, 66949, 66958, 66968, 66979, 66989, + 66998, 67006, 67015, 67025, 67034, 67044, 67055, 67065, 67074, 67084, + 67095, 67105, 67116, 67128, 67139, 67149, 67158, 67166, 67173, 67181, + 67190, 67198, 67207, 67217, 67226, 67234, 67243, 67253, 67262, 67272, + 67283, 67293, 67302, 67310, 67319, 67329, 67338, 67348, 67359, 67369, + 67378, 67388, 67399, 67409, 67420, 67432, 67443, 67453, 67462, 67470, + 67479, 67489, 67498, 67508, 67519, 67529, 67538, 67548, 67559, 67569, + 67580, 67592, 67603, 67613, 67622, 67632, 67643, 67653, 67664, 67676, + 67687, 67697, 67708, 67720, 67731, 67743, 67756, 67768, 67779, 67789, + 67798, 67806, 67813, 67821, 67830, 67838, 67847, 67857, 67866, 67874, + 67883, 67893, 67902, 67912, 67923, 67933, 67942, 67950, 67959, 67969, + 67978, 67988, 67999, 68009, 68018, 68028, 68039, 68049, 68060, 68072, + 68083, 68093, 68102, 68110, 68119, 68129, 68138, 68148, 68159, 68169, + 68178, 68188, 68199, 68209, 68220, 68232, 68243, 68253, 68262, 68272, + 68283, 68293, 68304, 68316, 68327, 68337, 68348, 68360, 68371, 68383, + 68396, 68408, 68419, 68429, 68438, 68446, 68455, 68465, 68474, 68484, + 68495, 68505, 68514, 68524, 68535, 68545, 68556, 68568, 68579, 68589, + 68598, 68608, 68619, 68629, 68640, 68652, 68663, 68673, 68684, 68696, + 68707, 68719, 68732, 68744, 68755, 68765, 68774, 68784, 68795, 68805, + 68816, 68828, 68839, 68849, 68860, 68872, 68883, 68895, 68908, 68920, + 68931, 68941, 68952, 68964, 68975, 68987, 69000, 69012, 69023, 69035, + 69048, 69060, 69073, 69087, 69100, 69112, 69123, 69133, 69142, 69150, + 69157, 69162, 8058, 69169, 32575, 69174, 69179, 32580, 69185, 20923, + 32585, 69190, 69196, 69204, 69210, 69216, 69223, 69230, 69235, 69239, + 69242, 69246, 69255, 69261, 69273, 69284, 69288, 3081, 8033, 69293, + 69296, 69298, 69302, 69306, 69310, 69316, 69321, 25934, 69326, 69330, + 69333, 69338, 69342, 69349, 69355, 69359, 6170, 69363, 32602, 69368, + 69375, 69384, 69392, 69403, 69411, 69419, 69426, 69433, 69439, 69450, + 32607, 69455, 69466, 69478, 69486, 69497, 69506, 69517, 69522, 69530, + 2556, 69535, 34277, 69548, 69552, 69564, 69572, 69577, 69585, 17479, + 69596, 69602, 69609, 69617, 69623, 32617, 69628, 3914, 58224, 69635, + 69638, 69646, 69659, 69672, 69685, 69698, 69705, 69716, 69725, 41694, + 41699, 69730, 69734, 69742, 69749, 69758, 69766, 69772, 69781, 69789, + 69797, 69801, 69810, 69819, 69829, 69842, 69855, 69865, 32622, 69871, + 69878, 69884, 32628, 69889, 69892, 69896, 69904, 69913, 41432, 69921, + 69930, 69938, 69945, 69953, 69963, 69972, 69981, 69990, 69998, 70009, + 70019, 9366, 21561, 70028, 70033, 70038, 70042, 70046, 70051, 70057, + 70062, 70067, 70073, 70078, 70083, 21526, 70088, 70095, 70103, 70111, + 70116, 70123, 70130, 70135, 70139, 70143, 70151, 70159, 32645, 70165, + 70171, 70183, 70189, 70193, 70200, 70205, 70216, 70226, 70236, 70248, + 70254, 70264, 70274, 32672, 70283, 70292, 70298, 70310, 70321, 70328, + 70333, 70337, 70345, 70351, 70356, 70361, 70368, 70376, 70388, 70398, + 70407, 70416, 70423, 34139, 23841, 70429, 70434, 70438, 70442, 70447, + 70453, 70464, 70477, 70482, 70489, 32677, 70494, 70506, 70515, 70525, + 70536, 70549, 70556, 70565, 70574, 70582, 70587, 70593, 1064, 70598, + 70603, 70608, 70613, 70619, 70624, 70629, 70635, 70641, 70646, 70650, + 70655, 70660, 70665, 58736, 70670, 70675, 70680, 70685, 70691, 70697, + 70702, 70706, 70711, 70716, 70721, 70727, 70732, 70738, 70743, 70748, + 70753, 70758, 70762, 70768, 70773, 70782, 70787, 70792, 70797, 70802, + 70806, 70813, 70819, 17129, 17136, 70824, 70828, 70832, 70836, 70840, + 45494, 70844, 70774, 70846, 70856, 32686, 70859, 70868, 70874, 6143, + 32691, 70878, 70884, 70889, 70895, 70900, 70904, 70911, 70916, 70926, + 70935, 70939, 70945, 70951, 70957, 70961, 70969, 70976, 70984, 70992, + 32696, 70999, 71002, 71009, 71015, 71020, 71024, 71030, 71037, 71042, + 71046, 71055, 71063, 71069, 71074, 32701, 71081, 71088, 71094, 71099, + 71105, 71112, 71118, 21288, 27445, 71124, 71129, 71135, 71147, 70807, + 70814, 21464, 71157, 71162, 71169, 71175, 71182, 71188, 71199, 71204, + 9110, 71212, 71215, 71221, 71225, 71229, 71232, 71238, 32450, 6194, 964, + 13419, 71245, 71251, 71257, 71263, 71269, 71275, 71281, 71287, 71293, + 71298, 71303, 71308, 71313, 71318, 71323, 71328, 71333, 71338, 71343, + 71348, 71353, 71358, 71364, 71369, 71374, 71380, 71385, 71390, 71396, + 71402, 71408, 71414, 71420, 71426, 71432, 71438, 71444, 71449, 71454, + 71460, 71465, 71470, 71476, 71481, 71486, 71491, 71496, 71501, 71506, + 71511, 71516, 71521, 71526, 71531, 71536, 71542, 71547, 71552, 71557, + 71563, 71568, 71573, 71578, 71583, 71589, 71594, 71599, 71604, 71609, + 71614, 71619, 71624, 71629, 71634, 71639, 71644, 71649, 71654, 71659, + 71664, 71669, 71674, 71679, 71684, 71690, 71695, 71700, 71705, 71710, + 71715, 71720, 71725, 1864, 142, 71730, 71734, 71738, 71743, 71751, 71755, + 71762, 71770, 71774, 71787, 71795, 71799, 71802, 71807, 71811, 71816, + 71820, 71828, 71832, 20931, 71837, 71841, 60937, 71845, 71848, 71856, + 71864, 71872, 71877, 71884, 71890, 71896, 71901, 71908, 71913, 71921, + 64913, 71928, 71933, 71938, 71942, 11645, 71946, 71951, 71956, 71960, + 71963, 71969, 71973, 71983, 71992, 71995, 71999, 72006, 72019, 72025, + 72033, 72044, 72055, 72066, 72077, 72086, 72092, 72101, 72109, 72119, + 72132, 72139, 72150, 72156, 72161, 72166, 72172, 72178, 72188, 72197, + 70496, 72205, 72211, 72219, 72225, 72233, 72236, 72240, 72244, 72247, + 72253, 72259, 72267, 72279, 72291, 72298, 72302, 72313, 72321, 72328, + 72340, 72348, 72356, 72363, 72369, 72379, 72388, 72393, 72403, 72412, + 40758, 72419, 72423, 72428, 72436, 72443, 72449, 72453, 72463, 72474, + 72482, 72489, 72501, 72513, 72522, 69538, 72529, 72540, 72554, 72562, + 72572, 72579, 72587, 72599, 72608, 72616, 72626, 72637, 72649, 72658, + 72668, 72675, 72684, 72699, 72707, 72717, 72726, 72734, 72747, 72762, + 72766, 72775, 72787, 72798, 72809, 72820, 72830, 72841, 72849, 72855, + 72865, 72873, 72879, 29014, 72884, 72890, 72895, 72902, 9708, 17499, + 72908, 72917, 72922, 72926, 72933, 72939, 72944, 72949, 72957, 72965, + 72969, 72972, 72975, 72977, 72984, 72990, 73001, 73006, 73010, 73017, + 73023, 73028, 73036, 65412, 65422, 73042, 73049, 73059, 10618, 73066, + 73071, 29210, 73080, 73085, 73092, 73102, 73110, 73118, 73127, 73133, + 73139, 73146, 73153, 73158, 73162, 73170, 73175, 73180, 73188, 73195, + 73200, 73206, 73209, 73213, 73222, 71782, 73231, 73235, 73241, 73252, + 73262, 17508, 73273, 73281, 17520, 73288, 73292, 73301, 27331, 73308, + 73312, 73317, 73334, 73346, 10576, 73358, 73363, 73368, 73373, 21004, + 73377, 73382, 73387, 73393, 73398, 5846, 21008, 73403, 73408, 73414, + 73421, 73426, 73431, 73437, 73443, 73449, 73454, 73460, 73464, 73478, + 73486, 73494, 73500, 73505, 73512, 73522, 73531, 73536, 73541, 73549, + 73554, 73560, 73565, 73574, 59793, 73579, 73582, 73600, 73619, 73632, + 73646, 73662, 73669, 73676, 73682, 73689, 73694, 73700, 73706, 73714, + 73720, 73725, 73730, 73746, 10589, 73760, 73767, 73775, 73781, 73785, + 73788, 73793, 73798, 73805, 73810, 73819, 73824, 73830, 73839, 73848, + 73853, 73857, 73865, 73874, 11674, 73883, 73891, 73896, 73902, 11685, + 73907, 73910, 73915, 73925, 73934, 73939, 73945, 73950, 73958, 73965, + 73976, 73986, 73991, 64841, 73996, 74002, 74007, 74014, 74023, 74031, + 74037, 74043, 74050, 74056, 74060, 16954, 3055, 74065, 74069, 74073, + 74079, 74088, 74094, 74101, 74105, 74126, 74148, 74164, 74181, 74200, + 74209, 74219, 74226, 74233, 27218, 74239, 74243, 74251, 74263, 74269, + 74277, 74281, 74289, 74296, 74300, 74306, 74312, 74317, 3563, 41894, + 74323, 74327, 74331, 74335, 74340, 74345, 74350, 74356, 74362, 74368, + 74375, 74381, 74388, 74394, 74400, 74405, 74411, 74416, 74420, 74425, + 74429, 74434, 41909, 74438, 74443, 74451, 74455, 74460, 74467, 74476, + 74482, 74486, 74493, 74497, 74500, 74507, 74516, 74521, 74525, 74533, + 74542, 74546, 74554, 74560, 74565, 74570, 74576, 74582, 74587, 74591, + 74597, 74602, 74606, 74610, 74613, 74618, 74626, 74636, 74641, 39394, + 74649, 74661, 74665, 74671, 74683, 74694, 74701, 74707, 74714, 74726, + 74733, 74739, 21082, 74743, 74749, 74756, 74762, 74768, 74773, 74778, + 74783, 74792, 7033, 74797, 16420, 74803, 74807, 74811, 74815, 74823, + 74832, 74836, 74843, 74852, 74865, 74871, 74430, 30074, 74876, 74878, + 74883, 74888, 74893, 74898, 74903, 74908, 74913, 74918, 74923, 74928, + 74933, 74938, 74943, 74948, 74954, 74959, 74964, 74969, 74974, 74979, + 74984, 74989, 74994, 75000, 75006, 75012, 75017, 75022, 75034, 75039, + 1870, 49, 75044, 75049, 32728, 75053, 32733, 32738, 32744, 32749, 75057, + 32754, 22077, 75079, 75083, 75087, 75092, 75096, 32758, 75100, 75108, + 32763, 75115, 75118, 75123, 75127, 9543, 75136, 32768, 21939, 75139, + 75143, 1428, 75148, 32779, 75151, 75156, 25727, 25737, 35240, 75161, + 75166, 75171, 75176, 75182, 75187, 75196, 75201, 75208, 75214, 75219, + 75224, 75229, 75239, 75248, 75253, 75261, 75265, 75273, 32593, 37295, + 75280, 75286, 75291, 75296, 12016, 75301, 75307, 75312, 75319, 75325, + 75330, 75338, 75348, 75358, 75364, 75369, 75375, 17530, 75382, 36055, + 75395, 75400, 75406, 30975, 75419, 75425, 75429, 75438, 75445, 75451, + 75459, 75468, 75475, 75481, 75484, 75488, 25868, 75492, 75499, 75505, + 75513, 75518, 23984, 75524, 75527, 75535, 75543, 75557, 75564, 75570, + 75577, 75583, 32793, 75587, 75594, 75602, 75610, 75616, 32798, 75624, + 75630, 75635, 75645, 75651, 75660, 30812, 34698, 75668, 75673, 75678, + 75682, 75687, 75691, 75699, 14914, 39407, 75704, 75709, 32803, 62239, + 75713, 75718, 75722, 75731, 75739, 75745, 75750, 75756, 75763, 75769, + 75774, 75779, 75788, 75800, 75815, 33065, 75821, 16539, 32807, 75825, + 75832, 24094, 75838, 75845, 75854, 75861, 75870, 75876, 75881, 75889, + 75895, 32817, 75900, 75909, 74689, 75918, 75925, 75931, 75937, 75947, + 75955, 75962, 75966, 32822, 75969, 32828, 32834, 75974, 75982, 75990, + 76000, 76009, 76017, 76024, 76034, 32839, 76038, 76040, 76044, 76049, + 76053, 76057, 76063, 76068, 76072, 76083, 76088, 76093, 3060, 76097, + 76104, 76108, 76117, 76125, 76132, 76137, 76142, 62285, 76146, 76149, + 76155, 76163, 76169, 76173, 76178, 76185, 76190, 76196, 34729, 76201, + 76204, 76209, 76213, 76218, 76223, 76227, 76235, 76239, 25746, 25755, + 76245, 76251, 76257, 76262, 76266, 76269, 76279, 76288, 76293, 76299, + 76306, 76312, 76316, 76324, 76329, 34735, 76333, 76341, 76347, 76354, + 76359, 76363, 76368, 58410, 34741, 76374, 76379, 76383, 76388, 76393, + 76398, 76402, 76407, 76412, 76418, 76423, 76428, 76434, 76440, 76445, + 76449, 76454, 76459, 76464, 76468, 24093, 76473, 76478, 76484, 76490, + 76496, 76501, 76505, 76510, 76515, 76520, 76524, 76529, 76534, 76539, + 76544, 76548, 32847, 76556, 76560, 76568, 76576, 76587, 76592, 76596, + 22391, 76601, 76607, 76617, 76624, 76629, 76638, 76643, 76647, 76652, + 76660, 76668, 76675, 65075, 76681, 76689, 76696, 76707, 76713, 76717, + 76723, 32857, 76726, 76733, 76741, 76746, 39598, 76750, 76755, 76762, + 76767, 8992, 76771, 76779, 76786, 76793, 76799, 76813, 63347, 76821, + 76827, 76831, 76834, 76842, 76849, 76854, 76867, 76874, 76878, 76885, + 76890, 60830, 76895, 76898, 76905, 76911, 76915, 76923, 76932, 76942, + 76952, 76961, 76969, 76980, 76985, 76989, 76994, 76998, 35371, 77006, + 21351, 35380, 77011, 77016, 77021, 77026, 77031, 77036, 77041, 77045, + 77050, 77055, 77060, 77065, 77070, 77075, 77079, 77084, 77089, 77093, + 77097, 77101, 77105, 77110, 77115, 77119, 77124, 77128, 77132, 77137, + 77142, 77147, 77152, 77156, 77161, 77166, 77170, 77175, 77180, 77185, + 77190, 77195, 77200, 77205, 77210, 77215, 77220, 77225, 77230, 77235, + 77240, 77245, 77250, 77255, 77260, 77265, 77270, 77274, 77279, 77284, + 77289, 77294, 77299, 77304, 77309, 77314, 77319, 77324, 77329, 77333, + 77338, 77342, 77347, 77352, 77357, 77362, 77367, 77372, 77377, 77382, + 77387, 77391, 77395, 77400, 77405, 77409, 77414, 77419, 77423, 77428, + 77433, 77438, 77443, 77447, 77452, 77457, 77461, 77466, 77470, 77474, + 77478, 77482, 77487, 77491, 77495, 77499, 77503, 77507, 77511, 77515, + 77519, 77523, 77528, 77533, 77538, 77543, 77548, 77553, 77558, 77563, + 77568, 77573, 77577, 77581, 77585, 77589, 77593, 77597, 77602, 77606, + 77611, 77615, 77620, 77625, 77629, 77633, 77638, 77642, 77646, 77650, + 77654, 77658, 77662, 77666, 77670, 77674, 77678, 77682, 77686, 77690, + 77694, 77699, 77704, 77708, 77712, 77716, 77720, 77724, 77728, 77733, + 77737, 77741, 77745, 77749, 77753, 77757, 77762, 77766, 77771, 77775, + 77779, 77783, 77787, 77791, 77795, 77799, 77803, 77807, 77811, 77815, + 77820, 77824, 77828, 77832, 77836, 77840, 77844, 77848, 77852, 77856, + 77860, 77864, 77869, 77873, 77877, 77882, 77887, 77891, 77895, 77899, + 77903, 77907, 77911, 77915, 77919, 77924, 77928, 77933, 77937, 77942, + 77946, 77951, 77955, 77961, 77966, 77970, 77975, 77979, 77984, 77988, + 77993, 77997, 78002, 1521, 78006, 2824, 1759, 1764, 78010, 78014, 2828, + 78018, 1397, 78023, 1342, 78027, 2840, 78031, 78038, 78045, 78059, 2844, + 7131, 78068, 78076, 78083, 78094, 78103, 78110, 78122, 78135, 78148, + 78159, 78164, 78171, 78183, 78187, 2848, 11747, 78197, 78202, 78211, + 78221, 2852, 78226, 78230, 78235, 78242, 78248, 78256, 78268, 1347, + 13042, 78278, 78282, 78288, 78302, 78314, 78326, 78336, 78345, 78354, + 78363, 78371, 78382, 78390, 4051, 78400, 78411, 78420, 78426, 78441, + 78448, 78454, 35496, 78459, 2876, 13046, 78463, 78470, 8930, 78479, 2881, + 32343, 78485, 60579, 78492, 78498, 78509, 78515, 78522, 78528, 78536, + 78543, 78549, 78559, 78568, 78579, 78586, 78592, 78602, 78610, 78616, + 78631, 78637, 78642, 78649, 78652, 78658, 78665, 78671, 78679, 78688, + 78696, 78702, 78711, 41434, 78725, 78730, 78736, 14751, 78741, 78754, + 78763, 78771, 78778, 78782, 78786, 78789, 78796, 78803, 78811, 78819, + 78828, 78836, 14678, 78844, 78849, 78853, 78865, 78872, 78881, 748, + 78891, 78900, 78911, 2897, 78915, 78919, 78925, 78938, 78950, 78960, + 78969, 78981, 26359, 78992, 79000, 79009, 79020, 79031, 79041, 79051, + 79060, 79068, 11312, 79075, 79079, 79082, 79087, 79092, 79096, 79102, + 1352, 11818, 79109, 79120, 79129, 79137, 79146, 79154, 79170, 79181, + 79190, 79198, 79210, 79221, 79237, 79247, 79268, 79281, 79289, 79296, + 14862, 79309, 79314, 79320, 5908, 79326, 79329, 79336, 79346, 8176, + 79353, 79358, 79363, 79368, 79376, 79385, 79393, 9756, 9765, 79398, + 79409, 79414, 79420, 2913, 2918, 79426, 10879, 79432, 79439, 79446, + 79459, 2251, 68, 79464, 79469, 79479, 79485, 79494, 79502, 79512, 79516, + 79521, 79525, 79537, 2941, 79545, 79553, 79558, 79569, 79580, 79589, + 79594, 79600, 79605, 79615, 79625, 79630, 79636, 79641, 79650, 21404, + 79654, 4128, 20, 79659, 79668, 79675, 79682, 79688, 79694, 864, 79699, + 79704, 60907, 79709, 79714, 79720, 79726, 79734, 79739, 79746, 79752, + 79757, 38008, 41328, 79763, 2945, 32, 79773, 79786, 79791, 79799, 79804, + 79810, 2967, 28296, 79815, 79823, 79830, 79835, 58652, 61910, 79844, + 79848, 1704, 1813, 79853, 79858, 79865, 1817, 247, 79872, 79878, 2989, + 79883, 79888, 79895, 1821, 79900, 79906, 79911, 79923, 6119, 79933, 1828, + 79939, 79944, 79951, 79958, 79973, 79980, 79991, 79999, 2618, 80003, + 80015, 80020, 80024, 80030, 28121, 2256, 80034, 80045, 80049, 80053, + 80059, 80063, 80072, 80076, 80087, 80091, 2302, 32172, 80095, 80105, + 3080, 9371, 80113, 80118, 80122, 80131, 80138, 80144, 3050, 17146, 80148, + 80161, 80179, 80184, 80192, 80200, 80210, 9985, 13154, 80222, 80235, + 80242, 80249, 80265, 80272, 80278, 1059, 80285, 80292, 80302, 80311, + 80323, 42298, 80331, 3064, 12030, 80334, 80342, 80346, 78238, 3068, + 80350, 21185, 12046, 3756, 80354, 3074, 80358, 80368, 80374, 80380, + 80386, 80392, 80398, 80404, 80410, 80416, 80422, 80428, 80434, 80440, + 80446, 80452, 80458, 80464, 80470, 80476, 80482, 80488, 80494, 80500, + 80506, 80512, 80518, 80525, 80532, 80538, 80544, 80550, 80556, 80562, + 80568, 1357, 16056, 12068, 80574, 80579, 80584, 80589, 80594, 80599, + 80604, 80609, 80614, 80619, 80624, 80629, 80634, 80639, 80644, 80649, + 80654, 80659, 80664, 80669, 80674, 80679, 80684, 80689, 80694, 80699, + 80705, 80710, 80715, 80721, 80726, 80732, 80737, 80742, 80748, 80753, + 80758, 80763, 80768, 80773, 80778, 80783, 80788, 80369, 80375, 80381, + 80387, 80393, 80399, 80405, 80411, 80417, 80423, 80429, 80435, 80441, + 80447, 80453, 80794, 80459, 80465, 80471, 80800, 80477, 80483, 80489, + 80495, 80501, 80507, 80513, 80533, 80806, 80812, 80539, 80818, 80545, + 80551, 80557, 80563, 80569, 3091, 3096, 80824, 80829, 80832, 80838, + 80844, 80851, 80856, 80861, 2307, }; /* code->name phrasebook */ #define phrasebook_shift 7 #define phrasebook_short 209 static unsigned char phrasebook[] = { - 0, 219, 18, 245, 31, 78, 223, 254, 78, 54, 50, 247, 132, 50, 225, 182, - 50, 254, 126, 254, 57, 43, 226, 3, 44, 226, 3, 253, 216, 96, 50, 249, - 219, 240, 167, 243, 229, 218, 129, 219, 46, 21, 210, 86, 21, 110, 21, + 0, 219, 19, 245, 32, 78, 223, 255, 78, 54, 50, 247, 133, 50, 225, 183, + 50, 254, 127, 254, 58, 43, 226, 4, 44, 226, 4, 253, 217, 96, 50, 249, + 220, 240, 168, 243, 230, 218, 130, 219, 47, 21, 210, 86, 21, 110, 21, 105, 21, 158, 21, 161, 21, 189, 21, 194, 21, 198, 21, 195, 21, 200, 249, - 226, 220, 150, 233, 15, 50, 245, 98, 50, 242, 130, 50, 224, 13, 78, 249, - 217, 253, 206, 7, 6, 1, 61, 7, 6, 1, 253, 158, 7, 6, 1, 251, 66, 7, 6, 1, - 249, 60, 7, 6, 1, 75, 7, 6, 1, 245, 6, 7, 6, 1, 243, 202, 7, 6, 1, 242, - 60, 7, 6, 1, 73, 7, 6, 1, 235, 144, 7, 6, 1, 235, 23, 7, 6, 1, 156, 7, 6, - 1, 193, 7, 6, 1, 230, 25, 7, 6, 1, 76, 7, 6, 1, 226, 105, 7, 6, 1, 224, - 96, 7, 6, 1, 153, 7, 6, 1, 222, 91, 7, 6, 1, 217, 152, 7, 6, 1, 70, 7, 6, + 227, 220, 151, 233, 16, 50, 245, 99, 50, 242, 131, 50, 224, 14, 78, 249, + 218, 253, 207, 7, 6, 1, 61, 7, 6, 1, 253, 159, 7, 6, 1, 251, 67, 7, 6, 1, + 249, 61, 7, 6, 1, 75, 7, 6, 1, 245, 7, 7, 6, 1, 243, 203, 7, 6, 1, 242, + 61, 7, 6, 1, 73, 7, 6, 1, 235, 145, 7, 6, 1, 235, 24, 7, 6, 1, 156, 7, 6, + 1, 193, 7, 6, 1, 230, 26, 7, 6, 1, 76, 7, 6, 1, 226, 106, 7, 6, 1, 224, + 97, 7, 6, 1, 153, 7, 6, 1, 222, 92, 7, 6, 1, 217, 153, 7, 6, 1, 70, 7, 6, 1, 214, 105, 7, 6, 1, 212, 98, 7, 6, 1, 211, 178, 7, 6, 1, 211, 117, 7, - 6, 1, 210, 159, 43, 42, 127, 223, 50, 219, 46, 44, 42, 127, 250, 31, 255, - 14, 121, 232, 213, 242, 137, 255, 14, 7, 4, 1, 61, 7, 4, 1, 253, 158, 7, - 4, 1, 251, 66, 7, 4, 1, 249, 60, 7, 4, 1, 75, 7, 4, 1, 245, 6, 7, 4, 1, - 243, 202, 7, 4, 1, 242, 60, 7, 4, 1, 73, 7, 4, 1, 235, 144, 7, 4, 1, 235, - 23, 7, 4, 1, 156, 7, 4, 1, 193, 7, 4, 1, 230, 25, 7, 4, 1, 76, 7, 4, 1, - 226, 105, 7, 4, 1, 224, 96, 7, 4, 1, 153, 7, 4, 1, 222, 91, 7, 4, 1, 217, - 152, 7, 4, 1, 70, 7, 4, 1, 214, 105, 7, 4, 1, 212, 98, 7, 4, 1, 211, 178, - 7, 4, 1, 211, 117, 7, 4, 1, 210, 159, 43, 249, 99, 127, 67, 232, 213, 44, - 249, 99, 127, 182, 228, 73, 219, 18, 235, 193, 245, 31, 78, 250, 176, 50, - 224, 228, 50, 249, 98, 50, 211, 40, 50, 251, 135, 130, 221, 173, 50, 248, - 1, 249, 163, 50, 244, 136, 226, 154, 235, 238, 233, 42, 52, 254, 110, - 223, 254, 78, 228, 52, 50, 219, 52, 240, 168, 223, 102, 50, 231, 232, - 248, 71, 50, 225, 21, 50, 218, 23, 105, 218, 23, 158, 255, 3, 255, 14, - 230, 228, 50, 225, 68, 50, 230, 224, 247, 120, 250, 183, 218, 23, 110, - 231, 148, 226, 154, 235, 238, 222, 247, 52, 254, 110, 223, 254, 78, 212, - 114, 244, 2, 123, 224, 21, 212, 114, 244, 2, 123, 242, 27, 212, 114, 244, - 2, 134, 224, 19, 235, 193, 224, 13, 78, 7, 6, 1, 115, 2, 242, 136, 7, 6, - 1, 115, 2, 142, 7, 6, 1, 115, 2, 250, 30, 7, 6, 1, 115, 2, 182, 7, 6, 1, - 115, 2, 248, 1, 7, 6, 1, 115, 2, 222, 234, 48, 7, 6, 1, 254, 243, 7, 6, - 1, 251, 67, 2, 250, 183, 7, 6, 1, 160, 2, 242, 136, 7, 6, 1, 160, 2, 142, - 7, 6, 1, 160, 2, 250, 30, 7, 6, 1, 160, 2, 248, 1, 7, 6, 1, 240, 154, 2, - 242, 136, 7, 6, 1, 240, 154, 2, 142, 7, 6, 1, 240, 154, 2, 250, 30, 7, 6, - 1, 240, 154, 2, 248, 1, 7, 6, 1, 245, 59, 7, 6, 1, 230, 26, 2, 182, 7, 6, - 1, 144, 2, 242, 136, 7, 6, 1, 144, 2, 142, 7, 6, 1, 144, 2, 250, 30, 7, - 6, 1, 144, 2, 182, 7, 6, 1, 144, 2, 248, 1, 230, 84, 50, 7, 6, 1, 144, 2, - 91, 7, 6, 1, 104, 2, 242, 136, 7, 6, 1, 104, 2, 142, 7, 6, 1, 104, 2, - 250, 30, 7, 6, 1, 104, 2, 248, 1, 7, 6, 1, 211, 118, 2, 142, 7, 6, 1, - 216, 151, 7, 4, 1, 220, 76, 222, 91, 7, 4, 1, 115, 2, 242, 136, 7, 4, 1, - 115, 2, 142, 7, 4, 1, 115, 2, 250, 30, 7, 4, 1, 115, 2, 182, 7, 4, 1, - 115, 2, 248, 1, 7, 4, 1, 115, 2, 222, 234, 48, 7, 4, 1, 254, 243, 7, 4, - 1, 251, 67, 2, 250, 183, 7, 4, 1, 160, 2, 242, 136, 7, 4, 1, 160, 2, 142, - 7, 4, 1, 160, 2, 250, 30, 7, 4, 1, 160, 2, 248, 1, 7, 4, 1, 240, 154, 2, - 242, 136, 7, 4, 1, 240, 154, 2, 142, 7, 4, 1, 240, 154, 2, 250, 30, 7, 4, - 1, 240, 154, 2, 248, 1, 7, 4, 1, 245, 59, 7, 4, 1, 230, 26, 2, 182, 7, 4, - 1, 144, 2, 242, 136, 7, 4, 1, 144, 2, 142, 7, 4, 1, 144, 2, 250, 30, 7, - 4, 1, 144, 2, 182, 7, 4, 1, 144, 2, 248, 1, 247, 169, 50, 7, 4, 1, 144, - 2, 91, 7, 4, 1, 104, 2, 242, 136, 7, 4, 1, 104, 2, 142, 7, 4, 1, 104, 2, - 250, 30, 7, 4, 1, 104, 2, 248, 1, 7, 4, 1, 211, 118, 2, 142, 7, 4, 1, - 216, 151, 7, 4, 1, 211, 118, 2, 248, 1, 7, 6, 1, 115, 2, 231, 232, 7, 4, - 1, 115, 2, 231, 232, 7, 6, 1, 115, 2, 251, 146, 7, 4, 1, 115, 2, 251, - 146, 7, 6, 1, 115, 2, 226, 224, 7, 4, 1, 115, 2, 226, 224, 7, 6, 1, 251, - 67, 2, 142, 7, 4, 1, 251, 67, 2, 142, 7, 6, 1, 251, 67, 2, 250, 30, 7, 4, - 1, 251, 67, 2, 250, 30, 7, 6, 1, 251, 67, 2, 59, 48, 7, 4, 1, 251, 67, 2, - 59, 48, 7, 6, 1, 251, 67, 2, 250, 234, 7, 4, 1, 251, 67, 2, 250, 234, 7, - 6, 1, 249, 61, 2, 250, 234, 7, 4, 1, 249, 61, 2, 250, 234, 7, 6, 1, 249, - 61, 2, 91, 7, 4, 1, 249, 61, 2, 91, 7, 6, 1, 160, 2, 231, 232, 7, 4, 1, - 160, 2, 231, 232, 7, 6, 1, 160, 2, 251, 146, 7, 4, 1, 160, 2, 251, 146, - 7, 6, 1, 160, 2, 59, 48, 7, 4, 1, 160, 2, 59, 48, 7, 6, 1, 160, 2, 226, - 224, 7, 4, 1, 160, 2, 226, 224, 7, 6, 1, 160, 2, 250, 234, 7, 4, 1, 160, - 2, 250, 234, 7, 6, 1, 243, 203, 2, 250, 30, 7, 4, 1, 243, 203, 2, 250, - 30, 7, 6, 1, 243, 203, 2, 251, 146, 7, 4, 1, 243, 203, 2, 251, 146, 7, 6, - 1, 243, 203, 2, 59, 48, 7, 4, 1, 243, 203, 2, 59, 48, 7, 6, 1, 243, 203, - 2, 250, 183, 7, 4, 1, 243, 203, 2, 250, 183, 7, 6, 1, 242, 61, 2, 250, - 30, 7, 4, 1, 242, 61, 2, 250, 30, 7, 6, 1, 242, 61, 2, 91, 7, 4, 1, 242, - 61, 2, 91, 7, 6, 1, 240, 154, 2, 182, 7, 4, 1, 240, 154, 2, 182, 7, 6, 1, - 240, 154, 2, 231, 232, 7, 4, 1, 240, 154, 2, 231, 232, 7, 6, 1, 240, 154, - 2, 251, 146, 7, 4, 1, 240, 154, 2, 251, 146, 7, 6, 1, 240, 154, 2, 226, - 224, 7, 4, 1, 240, 154, 2, 226, 224, 7, 6, 1, 240, 154, 2, 59, 48, 7, 4, - 1, 247, 119, 73, 7, 6, 27, 236, 31, 7, 4, 27, 236, 31, 7, 6, 1, 235, 145, - 2, 250, 30, 7, 4, 1, 235, 145, 2, 250, 30, 7, 6, 1, 235, 24, 2, 250, 183, - 7, 4, 1, 235, 24, 2, 250, 183, 7, 4, 1, 233, 239, 7, 6, 1, 233, 149, 2, - 142, 7, 4, 1, 233, 149, 2, 142, 7, 6, 1, 233, 149, 2, 250, 183, 7, 4, 1, - 233, 149, 2, 250, 183, 7, 6, 1, 233, 149, 2, 250, 234, 7, 4, 1, 233, 149, - 2, 250, 234, 7, 6, 1, 233, 149, 2, 230, 224, 247, 120, 7, 4, 1, 233, 149, - 2, 230, 224, 247, 120, 7, 6, 1, 233, 149, 2, 91, 7, 4, 1, 233, 149, 2, - 91, 7, 6, 1, 230, 26, 2, 142, 7, 4, 1, 230, 26, 2, 142, 7, 6, 1, 230, 26, - 2, 250, 183, 7, 4, 1, 230, 26, 2, 250, 183, 7, 6, 1, 230, 26, 2, 250, - 234, 7, 4, 1, 230, 26, 2, 250, 234, 7, 4, 1, 230, 26, 224, 204, 251, 78, - 254, 57, 7, 6, 1, 245, 138, 7, 4, 1, 245, 138, 7, 6, 1, 144, 2, 231, 232, - 7, 4, 1, 144, 2, 231, 232, 7, 6, 1, 144, 2, 251, 146, 7, 4, 1, 144, 2, - 251, 146, 7, 6, 1, 144, 2, 52, 142, 7, 4, 1, 144, 2, 52, 142, 7, 6, 27, - 226, 234, 7, 4, 27, 226, 234, 7, 6, 1, 223, 224, 2, 142, 7, 4, 1, 223, - 224, 2, 142, 7, 6, 1, 223, 224, 2, 250, 183, 7, 4, 1, 223, 224, 2, 250, - 183, 7, 6, 1, 223, 224, 2, 250, 234, 7, 4, 1, 223, 224, 2, 250, 234, 7, - 6, 1, 222, 92, 2, 142, 7, 4, 1, 222, 92, 2, 142, 7, 6, 1, 222, 92, 2, - 250, 30, 7, 4, 1, 222, 92, 2, 250, 30, 7, 6, 1, 222, 92, 2, 250, 183, 7, - 4, 1, 222, 92, 2, 250, 183, 7, 6, 1, 222, 92, 2, 250, 234, 7, 4, 1, 222, - 92, 2, 250, 234, 7, 6, 1, 217, 153, 2, 250, 183, 7, 4, 1, 217, 153, 2, - 250, 183, 7, 6, 1, 217, 153, 2, 250, 234, 7, 4, 1, 217, 153, 2, 250, 234, - 7, 6, 1, 217, 153, 2, 91, 7, 4, 1, 217, 153, 2, 91, 7, 6, 1, 104, 2, 182, - 7, 4, 1, 104, 2, 182, 7, 6, 1, 104, 2, 231, 232, 7, 4, 1, 104, 2, 231, - 232, 7, 6, 1, 104, 2, 251, 146, 7, 4, 1, 104, 2, 251, 146, 7, 6, 1, 104, - 2, 222, 234, 48, 7, 4, 1, 104, 2, 222, 234, 48, 7, 6, 1, 104, 2, 52, 142, - 7, 4, 1, 104, 2, 52, 142, 7, 6, 1, 104, 2, 226, 224, 7, 4, 1, 104, 2, - 226, 224, 7, 6, 1, 212, 99, 2, 250, 30, 7, 4, 1, 212, 99, 2, 250, 30, 7, - 6, 1, 211, 118, 2, 250, 30, 7, 4, 1, 211, 118, 2, 250, 30, 7, 6, 1, 211, - 118, 2, 248, 1, 7, 6, 1, 210, 160, 2, 142, 7, 4, 1, 210, 160, 2, 142, 7, - 6, 1, 210, 160, 2, 59, 48, 7, 4, 1, 210, 160, 2, 59, 48, 7, 6, 1, 210, - 160, 2, 250, 234, 7, 4, 1, 210, 160, 2, 250, 234, 7, 4, 1, 199, 222, 91, - 7, 4, 1, 57, 2, 91, 7, 6, 1, 57, 2, 103, 7, 6, 1, 57, 2, 216, 11, 7, 4, - 1, 57, 2, 216, 11, 7, 6, 1, 138, 194, 7, 4, 1, 138, 194, 7, 6, 1, 204, - 76, 7, 6, 1, 251, 67, 2, 103, 7, 4, 1, 251, 67, 2, 103, 7, 6, 1, 254, - 219, 249, 60, 7, 6, 1, 249, 61, 2, 103, 7, 6, 1, 249, 61, 2, 216, 11, 7, - 4, 1, 249, 61, 2, 216, 11, 7, 4, 1, 215, 94, 248, 54, 7, 6, 1, 223, 49, - 75, 7, 6, 1, 221, 195, 7, 6, 1, 204, 75, 7, 6, 1, 245, 7, 2, 103, 7, 4, - 1, 245, 7, 2, 103, 7, 6, 1, 243, 203, 2, 103, 7, 6, 1, 243, 107, 7, 4, 1, - 240, 201, 7, 6, 1, 235, 185, 7, 6, 1, 240, 154, 2, 91, 7, 6, 1, 235, 24, - 2, 103, 7, 4, 1, 235, 24, 2, 103, 7, 4, 1, 233, 149, 2, 130, 7, 4, 1, - 233, 100, 2, 91, 7, 6, 1, 215, 94, 193, 7, 6, 1, 230, 26, 2, 43, 103, 7, - 4, 1, 230, 26, 2, 199, 44, 233, 36, 7, 6, 1, 144, 2, 230, 224, 182, 7, 6, - 1, 144, 2, 240, 248, 7, 4, 1, 144, 2, 240, 248, 7, 6, 1, 226, 219, 7, 4, - 1, 226, 219, 7, 6, 1, 226, 106, 2, 103, 7, 4, 1, 226, 106, 2, 103, 7, 1, - 210, 214, 7, 6, 1, 138, 105, 7, 4, 1, 138, 105, 7, 6, 1, 245, 75, 7, 1, - 223, 49, 245, 76, 232, 123, 7, 4, 1, 217, 153, 2, 226, 66, 103, 7, 6, 1, - 217, 153, 2, 103, 7, 4, 1, 217, 153, 2, 103, 7, 6, 1, 217, 153, 2, 223, - 55, 103, 7, 6, 1, 104, 2, 240, 248, 7, 4, 1, 104, 2, 240, 248, 7, 6, 1, - 214, 157, 7, 6, 1, 214, 106, 2, 103, 7, 6, 1, 211, 118, 2, 103, 7, 4, 1, - 211, 118, 2, 103, 7, 6, 1, 210, 160, 2, 91, 7, 4, 1, 210, 160, 2, 91, 7, - 6, 1, 245, 8, 7, 6, 1, 245, 9, 223, 48, 7, 4, 1, 245, 9, 223, 48, 7, 4, - 1, 245, 9, 2, 217, 77, 7, 1, 113, 2, 91, 7, 6, 1, 138, 189, 7, 4, 1, 138, - 189, 7, 1, 235, 193, 242, 180, 218, 130, 2, 91, 7, 1, 211, 181, 7, 1, - 248, 47, 250, 11, 7, 1, 233, 77, 250, 11, 7, 1, 254, 137, 250, 11, 7, 1, - 223, 55, 250, 11, 7, 6, 1, 246, 40, 2, 250, 234, 7, 6, 1, 249, 61, 2, 4, - 1, 210, 160, 2, 250, 234, 7, 4, 1, 246, 40, 2, 250, 234, 7, 6, 1, 232, - 188, 7, 6, 1, 233, 149, 2, 4, 1, 235, 144, 7, 4, 1, 232, 188, 7, 6, 1, - 228, 186, 7, 6, 1, 230, 26, 2, 4, 1, 235, 144, 7, 4, 1, 228, 186, 7, 6, - 1, 115, 2, 250, 234, 7, 4, 1, 115, 2, 250, 234, 7, 6, 1, 240, 154, 2, - 250, 234, 7, 4, 1, 240, 154, 2, 250, 234, 7, 6, 1, 144, 2, 250, 234, 7, - 4, 1, 144, 2, 250, 234, 7, 6, 1, 104, 2, 250, 234, 7, 4, 1, 104, 2, 250, - 234, 7, 6, 1, 104, 2, 248, 2, 22, 231, 232, 7, 4, 1, 104, 2, 248, 2, 22, - 231, 232, 7, 6, 1, 104, 2, 248, 2, 22, 142, 7, 4, 1, 104, 2, 248, 2, 22, - 142, 7, 6, 1, 104, 2, 248, 2, 22, 250, 234, 7, 4, 1, 104, 2, 248, 2, 22, - 250, 234, 7, 6, 1, 104, 2, 248, 2, 22, 242, 136, 7, 4, 1, 104, 2, 248, 2, - 22, 242, 136, 7, 4, 1, 215, 94, 75, 7, 6, 1, 115, 2, 248, 2, 22, 231, - 232, 7, 4, 1, 115, 2, 248, 2, 22, 231, 232, 7, 6, 1, 115, 2, 59, 77, 22, - 231, 232, 7, 4, 1, 115, 2, 59, 77, 22, 231, 232, 7, 6, 1, 254, 244, 2, - 231, 232, 7, 4, 1, 254, 244, 2, 231, 232, 7, 6, 1, 243, 203, 2, 91, 7, 4, - 1, 243, 203, 2, 91, 7, 6, 1, 243, 203, 2, 250, 234, 7, 4, 1, 243, 203, 2, - 250, 234, 7, 6, 1, 235, 24, 2, 250, 234, 7, 4, 1, 235, 24, 2, 250, 234, - 7, 6, 1, 144, 2, 226, 224, 7, 4, 1, 144, 2, 226, 224, 7, 6, 1, 144, 2, - 226, 225, 22, 231, 232, 7, 4, 1, 144, 2, 226, 225, 22, 231, 232, 7, 6, 1, - 245, 9, 2, 250, 234, 7, 4, 1, 245, 9, 2, 250, 234, 7, 4, 1, 235, 145, 2, - 250, 234, 7, 6, 1, 246, 39, 7, 6, 1, 249, 61, 2, 4, 1, 210, 159, 7, 4, 1, - 246, 39, 7, 6, 1, 243, 203, 2, 142, 7, 4, 1, 243, 203, 2, 142, 7, 6, 1, - 240, 199, 7, 6, 1, 211, 181, 7, 6, 1, 230, 26, 2, 242, 136, 7, 4, 1, 230, - 26, 2, 242, 136, 7, 6, 1, 115, 2, 222, 234, 77, 22, 142, 7, 4, 1, 115, 2, - 222, 234, 77, 22, 142, 7, 6, 1, 254, 244, 2, 142, 7, 4, 1, 254, 244, 2, - 142, 7, 6, 1, 144, 2, 218, 103, 22, 142, 7, 4, 1, 144, 2, 218, 103, 22, - 142, 7, 6, 1, 115, 2, 52, 242, 136, 7, 4, 1, 115, 2, 52, 242, 136, 7, 6, - 1, 115, 2, 235, 193, 251, 146, 7, 4, 1, 115, 2, 235, 193, 251, 146, 7, 6, - 1, 160, 2, 52, 242, 136, 7, 4, 1, 160, 2, 52, 242, 136, 7, 6, 1, 160, 2, - 235, 193, 251, 146, 7, 4, 1, 160, 2, 235, 193, 251, 146, 7, 6, 1, 240, - 154, 2, 52, 242, 136, 7, 4, 1, 240, 154, 2, 52, 242, 136, 7, 6, 1, 240, - 154, 2, 235, 193, 251, 146, 7, 4, 1, 240, 154, 2, 235, 193, 251, 146, 7, - 6, 1, 144, 2, 52, 242, 136, 7, 4, 1, 144, 2, 52, 242, 136, 7, 6, 1, 144, - 2, 235, 193, 251, 146, 7, 4, 1, 144, 2, 235, 193, 251, 146, 7, 6, 1, 223, - 224, 2, 52, 242, 136, 7, 4, 1, 223, 224, 2, 52, 242, 136, 7, 6, 1, 223, - 224, 2, 235, 193, 251, 146, 7, 4, 1, 223, 224, 2, 235, 193, 251, 146, 7, - 6, 1, 104, 2, 52, 242, 136, 7, 4, 1, 104, 2, 52, 242, 136, 7, 6, 1, 104, - 2, 235, 193, 251, 146, 7, 4, 1, 104, 2, 235, 193, 251, 146, 7, 6, 1, 222, - 92, 2, 249, 220, 51, 7, 4, 1, 222, 92, 2, 249, 220, 51, 7, 6, 1, 217, - 153, 2, 249, 220, 51, 7, 4, 1, 217, 153, 2, 249, 220, 51, 7, 6, 1, 210, - 231, 7, 4, 1, 210, 231, 7, 6, 1, 242, 61, 2, 250, 234, 7, 4, 1, 242, 61, - 2, 250, 234, 7, 6, 1, 230, 26, 2, 199, 44, 233, 36, 7, 4, 1, 249, 61, 2, - 249, 100, 7, 6, 1, 226, 134, 7, 4, 1, 226, 134, 7, 6, 1, 210, 160, 2, - 103, 7, 4, 1, 210, 160, 2, 103, 7, 6, 1, 115, 2, 59, 48, 7, 4, 1, 115, 2, - 59, 48, 7, 6, 1, 160, 2, 250, 183, 7, 4, 1, 160, 2, 250, 183, 7, 6, 1, - 144, 2, 248, 2, 22, 231, 232, 7, 4, 1, 144, 2, 248, 2, 22, 231, 232, 7, - 6, 1, 144, 2, 216, 89, 22, 231, 232, 7, 4, 1, 144, 2, 216, 89, 22, 231, - 232, 7, 6, 1, 144, 2, 59, 48, 7, 4, 1, 144, 2, 59, 48, 7, 6, 1, 144, 2, - 59, 77, 22, 231, 232, 7, 4, 1, 144, 2, 59, 77, 22, 231, 232, 7, 6, 1, - 211, 118, 2, 231, 232, 7, 4, 1, 211, 118, 2, 231, 232, 7, 4, 1, 233, 149, - 2, 249, 100, 7, 4, 1, 230, 26, 2, 249, 100, 7, 4, 1, 217, 153, 2, 249, - 100, 7, 4, 1, 247, 119, 235, 144, 7, 4, 1, 248, 143, 247, 220, 7, 4, 1, - 224, 31, 247, 220, 7, 6, 1, 115, 2, 91, 7, 6, 1, 251, 67, 2, 91, 7, 4, 1, - 251, 67, 2, 91, 7, 6, 1, 233, 149, 2, 130, 7, 6, 1, 217, 153, 2, 247, - 255, 91, 7, 4, 1, 222, 92, 2, 217, 250, 217, 77, 7, 4, 1, 210, 160, 2, - 217, 250, 217, 77, 7, 6, 1, 242, 180, 218, 129, 7, 4, 1, 242, 180, 218, - 129, 7, 6, 1, 57, 2, 91, 7, 6, 1, 104, 130, 7, 6, 1, 215, 94, 214, 105, - 7, 6, 1, 160, 2, 91, 7, 4, 1, 160, 2, 91, 7, 6, 1, 235, 145, 2, 91, 7, 4, - 1, 235, 145, 2, 91, 7, 6, 1, 4, 224, 97, 2, 241, 52, 217, 77, 7, 4, 1, - 224, 97, 2, 241, 52, 217, 77, 7, 6, 1, 223, 224, 2, 91, 7, 4, 1, 223, - 224, 2, 91, 7, 6, 1, 211, 118, 2, 91, 7, 4, 1, 211, 118, 2, 91, 7, 4, 1, - 215, 94, 61, 7, 4, 1, 254, 143, 7, 4, 1, 215, 94, 254, 143, 7, 4, 1, 57, - 2, 103, 7, 4, 1, 204, 76, 7, 4, 1, 251, 67, 2, 249, 100, 7, 4, 1, 249, - 61, 2, 217, 77, 7, 4, 1, 249, 61, 2, 103, 7, 4, 1, 223, 49, 75, 7, 4, 1, - 221, 195, 7, 4, 1, 221, 196, 2, 103, 7, 4, 1, 204, 75, 7, 4, 1, 223, 49, - 204, 75, 7, 4, 1, 223, 49, 204, 160, 2, 103, 7, 4, 1, 250, 0, 223, 49, - 204, 75, 7, 4, 1, 247, 119, 235, 145, 2, 91, 7, 4, 1, 243, 203, 2, 103, - 7, 4, 1, 119, 243, 202, 7, 1, 4, 6, 243, 202, 7, 4, 1, 243, 107, 7, 4, 1, - 223, 151, 240, 248, 7, 4, 1, 215, 94, 242, 60, 7, 4, 1, 242, 61, 2, 103, - 7, 4, 1, 241, 208, 2, 103, 7, 4, 1, 240, 154, 2, 91, 7, 4, 1, 235, 185, - 7, 1, 4, 6, 73, 7, 4, 1, 233, 149, 2, 230, 224, 182, 7, 4, 1, 233, 149, - 2, 252, 41, 7, 4, 1, 233, 149, 2, 223, 55, 103, 7, 4, 1, 233, 1, 7, 4, 1, - 215, 94, 193, 7, 4, 1, 215, 94, 232, 50, 2, 199, 233, 36, 7, 4, 1, 232, - 50, 2, 103, 7, 4, 1, 230, 26, 2, 43, 103, 7, 4, 1, 230, 26, 2, 223, 55, - 103, 7, 1, 4, 6, 230, 25, 7, 4, 1, 252, 134, 76, 7, 1, 4, 6, 226, 234, 7, - 4, 1, 250, 0, 226, 201, 7, 4, 1, 225, 133, 7, 4, 1, 215, 94, 153, 7, 4, - 1, 215, 94, 223, 224, 2, 199, 233, 36, 7, 4, 1, 215, 94, 223, 224, 2, - 103, 7, 4, 1, 223, 224, 2, 199, 233, 36, 7, 4, 1, 223, 224, 2, 217, 77, - 7, 4, 1, 223, 224, 2, 244, 87, 7, 4, 1, 223, 49, 223, 224, 2, 244, 87, 7, - 1, 4, 6, 153, 7, 1, 4, 6, 235, 193, 153, 7, 4, 1, 222, 92, 2, 103, 7, 4, - 1, 245, 75, 7, 4, 1, 247, 119, 235, 145, 2, 218, 103, 22, 103, 7, 4, 1, - 218, 231, 223, 49, 245, 75, 7, 4, 1, 245, 76, 2, 249, 100, 7, 4, 1, 215, - 94, 217, 152, 7, 4, 1, 217, 153, 2, 223, 55, 103, 7, 4, 1, 104, 130, 7, - 4, 1, 214, 157, 7, 4, 1, 214, 106, 2, 103, 7, 4, 1, 215, 94, 214, 105, 7, - 4, 1, 215, 94, 212, 98, 7, 4, 1, 215, 94, 211, 117, 7, 1, 4, 6, 211, 117, - 7, 4, 1, 210, 160, 2, 223, 55, 103, 7, 4, 1, 210, 160, 2, 249, 100, 7, 4, - 1, 245, 8, 7, 4, 1, 245, 9, 2, 249, 100, 7, 1, 242, 180, 218, 129, 7, 1, - 225, 139, 213, 135, 243, 249, 7, 1, 235, 193, 242, 180, 218, 129, 7, 1, - 218, 110, 251, 66, 7, 1, 251, 246, 250, 11, 7, 1, 4, 6, 253, 158, 7, 4, - 1, 250, 0, 204, 75, 7, 1, 4, 6, 243, 203, 2, 103, 7, 1, 4, 6, 242, 60, 7, - 4, 1, 235, 145, 2, 249, 127, 7, 4, 1, 215, 94, 235, 23, 7, 1, 4, 6, 156, - 7, 4, 1, 224, 97, 2, 103, 7, 1, 242, 180, 218, 130, 2, 91, 7, 1, 223, 49, - 242, 180, 218, 130, 2, 91, 7, 4, 1, 246, 40, 247, 220, 7, 4, 1, 248, 26, - 247, 220, 7, 4, 1, 246, 40, 247, 221, 2, 249, 100, 7, 4, 1, 215, 185, - 247, 220, 7, 4, 1, 216, 235, 247, 220, 7, 4, 1, 217, 29, 247, 221, 2, - 249, 100, 7, 4, 1, 244, 134, 247, 220, 7, 4, 1, 232, 100, 247, 220, 7, 4, - 1, 232, 51, 247, 220, 7, 1, 251, 246, 225, 181, 7, 1, 251, 254, 225, 181, - 7, 4, 1, 215, 94, 242, 61, 2, 244, 87, 7, 4, 1, 215, 94, 242, 61, 2, 244, - 88, 22, 217, 77, 58, 1, 4, 242, 60, 58, 1, 4, 242, 61, 2, 103, 58, 1, 4, - 235, 144, 58, 1, 4, 153, 58, 1, 4, 215, 94, 153, 58, 1, 4, 215, 94, 223, - 224, 2, 103, 58, 1, 4, 6, 235, 193, 153, 58, 1, 4, 212, 98, 58, 1, 4, - 211, 117, 58, 1, 224, 190, 58, 1, 52, 224, 190, 58, 1, 215, 94, 249, 219, - 58, 1, 254, 57, 58, 1, 223, 49, 249, 219, 58, 1, 44, 163, 222, 233, 58, - 1, 43, 163, 222, 233, 58, 1, 242, 180, 218, 129, 58, 1, 223, 49, 242, - 180, 218, 129, 58, 1, 43, 253, 249, 58, 1, 44, 253, 249, 58, 1, 120, 253, - 249, 58, 1, 124, 253, 249, 58, 1, 250, 31, 255, 14, 250, 234, 58, 1, 67, - 232, 213, 58, 1, 231, 232, 58, 1, 255, 3, 255, 14, 58, 1, 242, 137, 255, - 14, 58, 1, 121, 67, 232, 213, 58, 1, 121, 231, 232, 58, 1, 121, 242, 137, - 255, 14, 58, 1, 121, 255, 3, 255, 14, 58, 1, 215, 222, 249, 226, 58, 1, - 163, 215, 222, 249, 226, 58, 1, 250, 173, 44, 163, 222, 233, 58, 1, 250, - 173, 43, 163, 222, 233, 58, 1, 120, 217, 87, 58, 1, 124, 217, 87, 58, 1, - 96, 50, 58, 1, 230, 182, 50, 251, 146, 59, 48, 222, 234, 48, 226, 224, 4, - 182, 52, 255, 3, 255, 14, 58, 1, 223, 36, 103, 58, 1, 249, 131, 255, 14, - 58, 1, 4, 243, 107, 58, 1, 4, 156, 58, 1, 4, 222, 91, 58, 1, 4, 211, 178, - 58, 1, 4, 223, 49, 242, 180, 218, 129, 58, 1, 245, 20, 138, 130, 58, 1, - 125, 138, 130, 58, 1, 230, 225, 138, 130, 58, 1, 121, 138, 130, 58, 1, - 245, 19, 138, 130, 58, 1, 210, 254, 248, 44, 138, 78, 58, 1, 211, 70, - 248, 44, 138, 78, 58, 1, 213, 133, 58, 1, 214, 186, 58, 1, 52, 254, 57, - 58, 1, 121, 124, 253, 249, 58, 1, 121, 120, 253, 249, 58, 1, 121, 43, - 253, 249, 58, 1, 121, 44, 253, 249, 58, 1, 121, 222, 233, 58, 1, 230, - 224, 242, 137, 255, 14, 58, 1, 230, 224, 52, 242, 137, 255, 14, 58, 1, - 230, 224, 52, 255, 3, 255, 14, 58, 1, 121, 182, 58, 1, 223, 157, 249, - 226, 58, 1, 252, 58, 125, 216, 30, 58, 1, 245, 143, 125, 216, 30, 58, 1, - 252, 58, 121, 216, 30, 58, 1, 245, 143, 121, 216, 30, 58, 1, 220, 54, 58, - 1, 204, 220, 54, 58, 1, 121, 43, 74, 38, 242, 137, 255, 14, 38, 255, 3, - 255, 14, 38, 250, 31, 255, 14, 38, 182, 38, 231, 232, 38, 226, 119, 38, - 251, 146, 38, 59, 48, 38, 248, 1, 38, 241, 52, 48, 38, 222, 234, 48, 38, - 52, 255, 3, 255, 14, 38, 250, 234, 38, 67, 232, 214, 48, 38, 52, 67, 232, - 214, 48, 38, 52, 242, 137, 255, 14, 38, 250, 255, 38, 235, 193, 251, 146, - 38, 215, 94, 249, 220, 48, 38, 249, 220, 48, 38, 223, 49, 249, 220, 48, - 38, 249, 220, 77, 222, 251, 38, 242, 137, 255, 15, 51, 38, 255, 3, 255, - 15, 51, 38, 43, 217, 88, 51, 38, 44, 217, 88, 51, 38, 43, 254, 110, 48, - 38, 240, 248, 38, 43, 163, 222, 234, 51, 38, 120, 217, 88, 51, 38, 124, - 217, 88, 51, 38, 96, 5, 51, 38, 230, 182, 5, 51, 38, 226, 64, 241, 52, - 51, 38, 223, 55, 241, 52, 51, 38, 59, 51, 38, 248, 2, 51, 38, 222, 234, - 51, 38, 249, 220, 51, 38, 250, 183, 38, 226, 224, 38, 67, 232, 214, 51, - 38, 251, 140, 51, 38, 235, 193, 52, 254, 24, 51, 38, 250, 235, 51, 38, - 250, 31, 255, 15, 51, 38, 251, 147, 51, 38, 235, 193, 251, 147, 51, 38, - 216, 89, 51, 38, 231, 233, 51, 38, 121, 232, 213, 38, 52, 121, 232, 213, - 38, 216, 89, 226, 120, 38, 219, 251, 218, 103, 226, 120, 38, 199, 218, - 103, 226, 120, 38, 219, 251, 219, 47, 226, 120, 38, 199, 219, 47, 226, - 120, 38, 44, 163, 222, 234, 51, 38, 235, 193, 251, 140, 51, 38, 42, 51, - 38, 221, 180, 51, 38, 211, 179, 48, 38, 67, 182, 38, 52, 226, 119, 38, - 242, 137, 138, 78, 38, 255, 3, 138, 78, 38, 26, 225, 175, 38, 26, 234, 2, - 38, 26, 247, 252, 216, 18, 38, 26, 210, 219, 38, 251, 140, 48, 38, 245, - 98, 5, 51, 38, 52, 67, 232, 214, 51, 38, 43, 254, 110, 51, 38, 228, 52, - 216, 89, 48, 38, 241, 58, 48, 38, 254, 148, 128, 216, 42, 48, 38, 43, 44, - 80, 51, 38, 214, 153, 80, 51, 38, 242, 142, 235, 63, 38, 44, 253, 250, - 48, 38, 43, 163, 222, 234, 48, 38, 244, 131, 38, 211, 179, 51, 38, 43, - 253, 250, 51, 38, 44, 253, 250, 51, 38, 44, 253, 250, 22, 120, 253, 250, - 51, 38, 44, 163, 222, 234, 48, 38, 59, 77, 222, 251, 38, 253, 217, 51, - 38, 52, 222, 234, 51, 38, 210, 35, 48, 38, 52, 251, 147, 51, 38, 52, 251, - 146, 38, 52, 231, 232, 38, 52, 231, 233, 51, 38, 52, 182, 38, 52, 235, - 193, 251, 146, 38, 52, 97, 80, 51, 38, 7, 4, 1, 61, 38, 7, 4, 1, 75, 38, - 7, 4, 1, 73, 38, 7, 4, 1, 76, 38, 7, 4, 1, 70, 38, 7, 4, 1, 251, 66, 38, - 7, 4, 1, 249, 60, 38, 7, 4, 1, 242, 60, 38, 7, 4, 1, 193, 38, 7, 4, 1, - 153, 38, 7, 4, 1, 217, 152, 38, 7, 4, 1, 214, 105, 38, 7, 4, 1, 211, 178, - 26, 6, 1, 241, 196, 26, 4, 1, 241, 196, 26, 6, 1, 254, 23, 221, 246, 26, - 4, 1, 254, 23, 221, 246, 26, 227, 198, 50, 26, 232, 108, 227, 198, 50, - 26, 6, 1, 226, 51, 247, 227, 26, 4, 1, 226, 51, 247, 227, 26, 210, 219, - 26, 4, 223, 49, 232, 83, 219, 178, 87, 26, 4, 246, 118, 232, 83, 219, - 178, 87, 26, 4, 223, 49, 246, 118, 232, 83, 219, 178, 87, 26, 224, 13, - 78, 26, 216, 18, 26, 247, 252, 216, 18, 26, 6, 1, 254, 144, 2, 216, 18, - 26, 254, 97, 217, 2, 26, 6, 1, 245, 101, 2, 216, 18, 26, 6, 1, 245, 64, - 2, 216, 18, 26, 6, 1, 235, 186, 2, 216, 18, 26, 6, 1, 226, 200, 2, 216, - 18, 26, 6, 1, 214, 158, 2, 216, 18, 26, 6, 1, 226, 202, 2, 216, 18, 26, - 4, 1, 235, 186, 2, 247, 252, 22, 216, 18, 26, 6, 1, 254, 143, 26, 6, 1, - 252, 26, 26, 6, 1, 243, 107, 26, 6, 1, 248, 54, 26, 6, 1, 245, 100, 26, - 6, 1, 210, 85, 26, 6, 1, 245, 63, 26, 6, 1, 216, 179, 26, 6, 1, 235, 185, - 26, 6, 1, 234, 222, 26, 6, 1, 233, 98, 26, 6, 1, 230, 102, 26, 6, 1, 227, - 237, 26, 6, 1, 211, 157, 26, 6, 1, 226, 199, 26, 6, 1, 225, 108, 26, 6, - 1, 223, 37, 26, 6, 1, 219, 177, 26, 6, 1, 217, 41, 26, 6, 1, 214, 157, - 26, 6, 1, 225, 133, 26, 6, 1, 250, 110, 26, 6, 1, 224, 161, 26, 6, 1, - 226, 201, 26, 6, 1, 235, 186, 2, 247, 251, 26, 6, 1, 214, 158, 2, 247, - 251, 26, 4, 1, 254, 144, 2, 216, 18, 26, 4, 1, 245, 101, 2, 216, 18, 26, - 4, 1, 245, 64, 2, 216, 18, 26, 4, 1, 235, 186, 2, 216, 18, 26, 4, 1, 214, - 158, 2, 247, 252, 22, 216, 18, 26, 4, 1, 254, 143, 26, 4, 1, 252, 26, 26, - 4, 1, 243, 107, 26, 4, 1, 248, 54, 26, 4, 1, 245, 100, 26, 4, 1, 210, 85, - 26, 4, 1, 245, 63, 26, 4, 1, 216, 179, 26, 4, 1, 235, 185, 26, 4, 1, 234, - 222, 26, 4, 1, 233, 98, 26, 4, 1, 230, 102, 26, 4, 1, 227, 237, 26, 4, 1, - 211, 157, 26, 4, 1, 226, 199, 26, 4, 1, 225, 108, 26, 4, 1, 223, 37, 26, - 4, 1, 40, 219, 177, 26, 4, 1, 219, 177, 26, 4, 1, 217, 41, 26, 4, 1, 214, - 157, 26, 4, 1, 225, 133, 26, 4, 1, 250, 110, 26, 4, 1, 224, 161, 26, 4, - 1, 226, 201, 26, 4, 1, 235, 186, 2, 247, 251, 26, 4, 1, 214, 158, 2, 247, - 251, 26, 4, 1, 226, 200, 2, 216, 18, 26, 4, 1, 214, 158, 2, 216, 18, 26, - 4, 1, 226, 202, 2, 216, 18, 26, 6, 234, 247, 87, 26, 252, 27, 87, 26, - 216, 180, 87, 26, 214, 158, 2, 241, 52, 87, 26, 214, 158, 2, 255, 3, 22, - 241, 52, 87, 26, 214, 158, 2, 248, 2, 22, 241, 52, 87, 26, 225, 134, 87, - 26, 225, 109, 87, 26, 234, 247, 87, 26, 1, 254, 23, 234, 6, 26, 4, 1, - 254, 23, 234, 6, 26, 1, 218, 137, 26, 4, 1, 218, 137, 26, 1, 247, 227, - 26, 4, 1, 247, 227, 26, 1, 234, 6, 26, 4, 1, 234, 6, 26, 1, 221, 246, 26, - 4, 1, 221, 246, 81, 6, 1, 220, 55, 81, 4, 1, 220, 55, 81, 6, 1, 244, 140, - 81, 4, 1, 244, 140, 81, 6, 1, 234, 117, 81, 4, 1, 234, 117, 81, 6, 1, - 241, 45, 81, 4, 1, 241, 45, 81, 6, 1, 243, 102, 81, 4, 1, 243, 102, 81, - 6, 1, 220, 22, 81, 4, 1, 220, 22, 81, 6, 1, 248, 69, 81, 4, 1, 248, 69, - 26, 234, 223, 87, 26, 223, 38, 87, 26, 232, 83, 219, 178, 87, 26, 1, 210, - 224, 26, 6, 216, 180, 87, 26, 232, 83, 245, 101, 87, 26, 223, 49, 232, - 83, 245, 101, 87, 26, 6, 1, 220, 7, 26, 4, 1, 220, 7, 26, 6, 232, 83, - 219, 178, 87, 26, 6, 1, 221, 243, 26, 4, 1, 221, 243, 26, 223, 38, 2, - 218, 103, 87, 26, 6, 223, 49, 232, 83, 219, 178, 87, 26, 6, 246, 118, - 232, 83, 219, 178, 87, 26, 6, 223, 49, 246, 118, 232, 83, 219, 178, 87, - 33, 6, 1, 236, 61, 2, 242, 136, 33, 6, 1, 235, 189, 33, 6, 1, 247, 162, - 33, 6, 1, 242, 187, 33, 6, 1, 214, 202, 236, 60, 33, 6, 1, 246, 36, 33, - 6, 1, 251, 76, 73, 33, 6, 1, 211, 8, 33, 6, 1, 235, 126, 33, 6, 1, 232, - 187, 33, 6, 1, 228, 178, 33, 6, 1, 215, 174, 33, 6, 1, 234, 48, 33, 6, 1, - 240, 154, 2, 242, 136, 33, 6, 1, 219, 251, 70, 33, 6, 1, 246, 32, 33, 6, - 1, 61, 33, 6, 1, 252, 75, 33, 6, 1, 213, 255, 33, 6, 1, 242, 236, 33, 6, - 1, 248, 90, 33, 6, 1, 236, 60, 33, 6, 1, 210, 74, 33, 6, 1, 210, 94, 33, - 6, 1, 73, 33, 6, 1, 219, 251, 73, 33, 6, 1, 176, 33, 6, 1, 245, 174, 33, - 6, 1, 245, 159, 33, 6, 1, 245, 150, 33, 6, 1, 76, 33, 6, 1, 225, 221, 33, - 6, 1, 245, 92, 33, 6, 1, 245, 82, 33, 6, 1, 217, 22, 33, 6, 1, 70, 33, 6, - 1, 245, 202, 33, 6, 1, 162, 33, 6, 1, 215, 178, 33, 6, 1, 250, 131, 33, - 6, 1, 220, 102, 33, 6, 1, 220, 65, 33, 6, 1, 242, 3, 50, 33, 6, 1, 211, - 27, 33, 6, 1, 219, 52, 50, 33, 6, 1, 75, 33, 6, 1, 210, 212, 33, 6, 1, - 191, 33, 4, 1, 61, 33, 4, 1, 252, 75, 33, 4, 1, 213, 255, 33, 4, 1, 242, - 236, 33, 4, 1, 248, 90, 33, 4, 1, 236, 60, 33, 4, 1, 210, 74, 33, 4, 1, - 210, 94, 33, 4, 1, 73, 33, 4, 1, 219, 251, 73, 33, 4, 1, 176, 33, 4, 1, - 245, 174, 33, 4, 1, 245, 159, 33, 4, 1, 245, 150, 33, 4, 1, 76, 33, 4, 1, - 225, 221, 33, 4, 1, 245, 92, 33, 4, 1, 245, 82, 33, 4, 1, 217, 22, 33, 4, - 1, 70, 33, 4, 1, 245, 202, 33, 4, 1, 162, 33, 4, 1, 215, 178, 33, 4, 1, - 250, 131, 33, 4, 1, 220, 102, 33, 4, 1, 220, 65, 33, 4, 1, 242, 3, 50, - 33, 4, 1, 211, 27, 33, 4, 1, 219, 52, 50, 33, 4, 1, 75, 33, 4, 1, 210, - 212, 33, 4, 1, 191, 33, 4, 1, 236, 61, 2, 242, 136, 33, 4, 1, 235, 189, - 33, 4, 1, 247, 162, 33, 4, 1, 242, 187, 33, 4, 1, 214, 202, 236, 60, 33, - 4, 1, 246, 36, 33, 4, 1, 251, 76, 73, 33, 4, 1, 211, 8, 33, 4, 1, 235, - 126, 33, 4, 1, 232, 187, 33, 4, 1, 228, 178, 33, 4, 1, 215, 174, 33, 4, - 1, 234, 48, 33, 4, 1, 240, 154, 2, 242, 136, 33, 4, 1, 219, 251, 70, 33, - 4, 1, 246, 32, 33, 6, 1, 226, 201, 33, 4, 1, 226, 201, 33, 6, 1, 211, 59, - 33, 4, 1, 211, 59, 33, 6, 1, 235, 183, 75, 33, 4, 1, 235, 183, 75, 33, 6, - 1, 232, 192, 210, 183, 33, 4, 1, 232, 192, 210, 183, 33, 6, 1, 235, 183, - 232, 192, 210, 183, 33, 4, 1, 235, 183, 232, 192, 210, 183, 33, 6, 1, - 251, 249, 210, 183, 33, 4, 1, 251, 249, 210, 183, 33, 6, 1, 235, 183, - 251, 249, 210, 183, 33, 4, 1, 235, 183, 251, 249, 210, 183, 33, 6, 1, - 233, 233, 33, 4, 1, 233, 233, 33, 6, 1, 224, 161, 33, 4, 1, 224, 161, 33, - 6, 1, 244, 82, 33, 4, 1, 244, 82, 33, 6, 1, 235, 146, 33, 4, 1, 235, 146, - 33, 6, 1, 235, 147, 2, 52, 242, 137, 255, 14, 33, 4, 1, 235, 147, 2, 52, - 242, 137, 255, 14, 33, 6, 1, 214, 205, 33, 4, 1, 214, 205, 33, 6, 1, 222, - 185, 226, 201, 33, 4, 1, 222, 185, 226, 201, 33, 6, 1, 226, 202, 2, 216, - 65, 33, 4, 1, 226, 202, 2, 216, 65, 33, 6, 1, 226, 140, 33, 4, 1, 226, - 140, 33, 6, 1, 234, 6, 33, 4, 1, 234, 6, 33, 216, 146, 50, 38, 33, 216, - 65, 38, 33, 226, 65, 38, 33, 248, 154, 225, 18, 38, 33, 224, 155, 225, - 18, 38, 33, 225, 3, 38, 33, 240, 211, 216, 146, 50, 38, 33, 230, 191, 50, - 33, 6, 1, 219, 251, 240, 154, 2, 217, 77, 33, 4, 1, 219, 251, 240, 154, - 2, 217, 77, 33, 6, 1, 220, 146, 50, 33, 4, 1, 220, 146, 50, 33, 6, 1, - 245, 93, 2, 216, 114, 33, 4, 1, 245, 93, 2, 216, 114, 33, 6, 1, 242, 237, - 2, 214, 156, 33, 4, 1, 242, 237, 2, 214, 156, 33, 6, 1, 242, 237, 2, 91, - 33, 4, 1, 242, 237, 2, 91, 33, 6, 1, 242, 237, 2, 230, 224, 103, 33, 4, - 1, 242, 237, 2, 230, 224, 103, 33, 6, 1, 210, 75, 2, 248, 39, 33, 4, 1, - 210, 75, 2, 248, 39, 33, 6, 1, 210, 95, 2, 248, 39, 33, 4, 1, 210, 95, 2, - 248, 39, 33, 6, 1, 235, 13, 2, 248, 39, 33, 4, 1, 235, 13, 2, 248, 39, - 33, 6, 1, 235, 13, 2, 67, 91, 33, 4, 1, 235, 13, 2, 67, 91, 33, 6, 1, - 235, 13, 2, 91, 33, 4, 1, 235, 13, 2, 91, 33, 6, 1, 252, 124, 176, 33, 4, - 1, 252, 124, 176, 33, 6, 1, 245, 151, 2, 248, 39, 33, 4, 1, 245, 151, 2, - 248, 39, 33, 6, 27, 245, 151, 242, 236, 33, 4, 27, 245, 151, 242, 236, - 33, 6, 1, 225, 222, 2, 230, 224, 103, 33, 4, 1, 225, 222, 2, 230, 224, - 103, 33, 6, 1, 255, 20, 162, 33, 4, 1, 255, 20, 162, 33, 6, 1, 245, 83, - 2, 248, 39, 33, 4, 1, 245, 83, 2, 248, 39, 33, 6, 1, 217, 23, 2, 248, 39, - 33, 4, 1, 217, 23, 2, 248, 39, 33, 6, 1, 218, 121, 70, 33, 4, 1, 218, - 121, 70, 33, 6, 1, 218, 121, 104, 2, 91, 33, 4, 1, 218, 121, 104, 2, 91, - 33, 6, 1, 242, 49, 2, 248, 39, 33, 4, 1, 242, 49, 2, 248, 39, 33, 6, 27, - 217, 23, 215, 178, 33, 4, 27, 217, 23, 215, 178, 33, 6, 1, 250, 132, 2, - 248, 39, 33, 4, 1, 250, 132, 2, 248, 39, 33, 6, 1, 250, 132, 2, 67, 91, - 33, 4, 1, 250, 132, 2, 67, 91, 33, 6, 1, 220, 33, 33, 4, 1, 220, 33, 33, - 6, 1, 255, 20, 250, 131, 33, 4, 1, 255, 20, 250, 131, 33, 6, 1, 255, 20, - 250, 132, 2, 248, 39, 33, 4, 1, 255, 20, 250, 132, 2, 248, 39, 33, 1, - 226, 58, 33, 6, 1, 210, 75, 2, 251, 146, 33, 4, 1, 210, 75, 2, 251, 146, - 33, 6, 1, 235, 13, 2, 103, 33, 4, 1, 235, 13, 2, 103, 33, 6, 1, 245, 175, - 2, 217, 77, 33, 4, 1, 245, 175, 2, 217, 77, 33, 6, 1, 245, 151, 2, 103, - 33, 4, 1, 245, 151, 2, 103, 33, 6, 1, 245, 151, 2, 217, 77, 33, 4, 1, - 245, 151, 2, 217, 77, 33, 6, 1, 234, 127, 250, 131, 33, 4, 1, 234, 127, - 250, 131, 33, 6, 1, 245, 160, 2, 217, 77, 33, 4, 1, 245, 160, 2, 217, 77, - 33, 4, 1, 226, 58, 33, 6, 1, 115, 2, 251, 146, 33, 4, 1, 115, 2, 251, - 146, 33, 6, 1, 115, 2, 248, 1, 33, 4, 1, 115, 2, 248, 1, 33, 6, 27, 115, - 236, 60, 33, 4, 27, 115, 236, 60, 33, 6, 1, 236, 61, 2, 251, 146, 33, 4, - 1, 236, 61, 2, 251, 146, 33, 6, 1, 221, 195, 33, 4, 1, 221, 195, 33, 6, - 1, 221, 196, 2, 248, 1, 33, 4, 1, 221, 196, 2, 248, 1, 33, 6, 1, 210, 75, - 2, 248, 1, 33, 4, 1, 210, 75, 2, 248, 1, 33, 6, 1, 210, 95, 2, 248, 1, - 33, 4, 1, 210, 95, 2, 248, 1, 33, 6, 1, 255, 20, 246, 36, 33, 4, 1, 255, - 20, 246, 36, 33, 6, 1, 240, 154, 2, 231, 232, 33, 4, 1, 240, 154, 2, 231, - 232, 33, 6, 1, 240, 154, 2, 248, 1, 33, 4, 1, 240, 154, 2, 248, 1, 33, 6, - 1, 144, 2, 248, 1, 33, 4, 1, 144, 2, 248, 1, 33, 6, 1, 252, 134, 76, 33, - 4, 1, 252, 134, 76, 33, 6, 1, 252, 134, 144, 2, 248, 1, 33, 4, 1, 252, - 134, 144, 2, 248, 1, 33, 6, 1, 160, 2, 248, 1, 33, 4, 1, 160, 2, 248, 1, - 33, 6, 1, 104, 2, 231, 232, 33, 4, 1, 104, 2, 231, 232, 33, 6, 1, 104, 2, - 248, 1, 33, 4, 1, 104, 2, 248, 1, 33, 6, 1, 104, 2, 52, 142, 33, 4, 1, - 104, 2, 52, 142, 33, 6, 1, 250, 132, 2, 248, 1, 33, 4, 1, 250, 132, 2, - 248, 1, 33, 6, 1, 242, 237, 2, 248, 39, 33, 4, 1, 242, 237, 2, 248, 39, - 33, 6, 1, 211, 28, 2, 248, 1, 33, 4, 1, 211, 28, 2, 248, 1, 33, 6, 1, - 242, 237, 2, 218, 103, 22, 103, 33, 4, 1, 242, 237, 2, 218, 103, 22, 103, - 33, 6, 1, 242, 49, 2, 103, 33, 4, 1, 242, 49, 2, 103, 33, 6, 1, 242, 49, - 2, 91, 33, 4, 1, 242, 49, 2, 91, 33, 6, 1, 234, 14, 248, 90, 33, 4, 1, - 234, 14, 248, 90, 33, 6, 1, 234, 14, 247, 162, 33, 4, 1, 234, 14, 247, - 162, 33, 6, 1, 234, 14, 210, 27, 33, 4, 1, 234, 14, 210, 27, 33, 6, 1, - 234, 14, 246, 30, 33, 4, 1, 234, 14, 246, 30, 33, 6, 1, 234, 14, 232, - 187, 33, 4, 1, 234, 14, 232, 187, 33, 6, 1, 234, 14, 228, 178, 33, 4, 1, - 234, 14, 228, 178, 33, 6, 1, 234, 14, 219, 109, 33, 4, 1, 234, 14, 219, - 109, 33, 6, 1, 234, 14, 216, 60, 33, 4, 1, 234, 14, 216, 60, 33, 6, 1, - 223, 49, 210, 94, 33, 4, 1, 223, 49, 210, 94, 33, 6, 1, 245, 175, 2, 103, - 33, 4, 1, 245, 175, 2, 103, 33, 6, 1, 232, 254, 33, 4, 1, 232, 254, 33, - 6, 1, 223, 39, 33, 4, 1, 223, 39, 33, 6, 1, 211, 92, 33, 4, 1, 211, 92, - 33, 6, 1, 224, 88, 33, 4, 1, 224, 88, 33, 6, 1, 212, 22, 33, 4, 1, 212, - 22, 33, 6, 1, 254, 166, 176, 33, 4, 1, 254, 166, 176, 33, 6, 1, 245, 175, - 2, 230, 224, 103, 33, 4, 1, 245, 175, 2, 230, 224, 103, 33, 6, 1, 245, - 151, 2, 230, 224, 103, 33, 4, 1, 245, 151, 2, 230, 224, 103, 33, 6, 1, - 225, 222, 2, 248, 39, 33, 4, 1, 225, 222, 2, 248, 39, 33, 6, 1, 220, 34, - 2, 248, 39, 33, 4, 1, 220, 34, 2, 248, 39, 150, 6, 1, 253, 164, 150, 6, - 1, 252, 39, 150, 6, 1, 242, 203, 150, 6, 1, 248, 221, 150, 6, 1, 245, - 213, 150, 6, 1, 210, 116, 150, 6, 1, 245, 197, 150, 6, 1, 245, 65, 150, - 6, 1, 111, 150, 6, 1, 210, 74, 150, 6, 1, 235, 227, 150, 6, 1, 232, 190, - 150, 6, 1, 211, 160, 150, 6, 1, 251, 33, 150, 6, 1, 234, 165, 150, 6, 1, - 241, 68, 150, 6, 1, 235, 141, 150, 6, 1, 242, 246, 150, 6, 1, 250, 126, - 150, 6, 1, 231, 58, 150, 6, 1, 211, 8, 150, 6, 1, 228, 39, 150, 6, 1, - 220, 102, 150, 6, 1, 213, 138, 150, 6, 1, 250, 157, 150, 6, 1, 225, 205, - 150, 6, 1, 235, 110, 150, 6, 1, 205, 150, 6, 1, 221, 161, 150, 6, 1, 213, - 179, 150, 6, 1, 216, 62, 150, 6, 1, 223, 95, 150, 6, 1, 249, 238, 150, 6, - 1, 210, 249, 150, 6, 1, 225, 46, 150, 6, 1, 234, 176, 150, 6, 1, 226, - 222, 150, 6, 1, 244, 142, 150, 58, 1, 43, 163, 222, 233, 150, 254, 57, - 150, 245, 154, 78, 150, 245, 31, 78, 150, 249, 219, 150, 224, 13, 78, - 150, 255, 21, 78, 150, 4, 1, 253, 164, 150, 4, 1, 252, 39, 150, 4, 1, - 242, 203, 150, 4, 1, 248, 221, 150, 4, 1, 245, 213, 150, 4, 1, 210, 116, - 150, 4, 1, 245, 197, 150, 4, 1, 245, 65, 150, 4, 1, 111, 150, 4, 1, 210, - 74, 150, 4, 1, 235, 227, 150, 4, 1, 232, 190, 150, 4, 1, 211, 160, 150, - 4, 1, 251, 33, 150, 4, 1, 234, 165, 150, 4, 1, 241, 68, 150, 4, 1, 235, - 141, 150, 4, 1, 242, 246, 150, 4, 1, 250, 126, 150, 4, 1, 231, 58, 150, - 4, 1, 211, 8, 150, 4, 1, 228, 39, 150, 4, 1, 220, 102, 150, 4, 1, 213, - 138, 150, 4, 1, 250, 157, 150, 4, 1, 225, 205, 150, 4, 1, 235, 110, 150, - 4, 1, 205, 150, 4, 1, 221, 161, 150, 4, 1, 213, 179, 150, 4, 1, 216, 62, - 150, 4, 1, 223, 95, 150, 4, 1, 249, 238, 150, 4, 1, 210, 249, 150, 4, 1, - 225, 46, 150, 4, 1, 234, 176, 150, 4, 1, 226, 222, 150, 4, 1, 244, 142, - 150, 4, 27, 245, 214, 210, 249, 150, 243, 229, 218, 129, 150, 240, 168, - 150, 246, 95, 50, 94, 255, 15, 245, 57, 94, 255, 15, 221, 162, 94, 255, - 15, 220, 88, 94, 255, 15, 210, 104, 224, 71, 94, 255, 15, 210, 104, 243, - 125, 94, 255, 15, 216, 75, 94, 255, 15, 223, 47, 94, 255, 15, 210, 103, - 94, 255, 15, 225, 245, 94, 255, 15, 211, 20, 94, 255, 15, 216, 214, 94, - 255, 15, 243, 41, 94, 255, 15, 243, 42, 230, 69, 94, 255, 15, 243, 39, - 94, 255, 15, 224, 72, 226, 16, 94, 255, 15, 216, 253, 243, 56, 94, 255, - 15, 225, 226, 94, 255, 15, 253, 200, 242, 41, 94, 255, 15, 230, 79, 94, - 255, 15, 231, 208, 94, 255, 15, 231, 49, 94, 255, 15, 231, 50, 234, 177, - 94, 255, 15, 248, 163, 94, 255, 15, 224, 83, 94, 255, 15, 216, 253, 224, - 67, 94, 255, 15, 211, 30, 252, 40, 210, 230, 94, 255, 15, 226, 207, 94, - 255, 15, 236, 19, 94, 255, 15, 248, 70, 94, 255, 15, 210, 33, 94, 164, - 231, 143, 250, 35, 94, 225, 11, 220, 36, 94, 225, 11, 241, 250, 221, 162, - 94, 225, 11, 241, 250, 225, 239, 94, 225, 11, 241, 250, 224, 76, 94, 225, - 11, 241, 158, 94, 225, 11, 215, 176, 94, 225, 11, 221, 162, 94, 225, 11, - 225, 239, 94, 225, 11, 224, 76, 94, 225, 11, 241, 61, 94, 225, 11, 241, - 62, 241, 252, 31, 214, 3, 94, 225, 11, 224, 17, 94, 225, 11, 248, 208, - 177, 231, 171, 94, 225, 11, 231, 38, 94, 224, 141, 231, 168, 94, 225, 11, - 223, 169, 94, 224, 141, 225, 247, 94, 225, 11, 220, 21, 247, 120, 94, - 225, 11, 219, 159, 247, 120, 94, 224, 141, 219, 53, 225, 241, 94, 164, - 214, 160, 247, 120, 94, 164, 232, 108, 247, 120, 94, 224, 141, 227, 195, - 242, 40, 94, 225, 11, 224, 77, 224, 71, 94, 1, 254, 170, 94, 1, 252, 28, - 94, 1, 242, 201, 94, 1, 248, 189, 94, 1, 241, 238, 94, 1, 214, 3, 94, 1, - 210, 97, 94, 1, 241, 197, 94, 1, 216, 230, 94, 1, 210, 233, 94, 1, 40, - 234, 250, 94, 1, 234, 250, 94, 1, 233, 94, 94, 1, 40, 231, 65, 94, 1, - 231, 65, 94, 1, 40, 227, 194, 94, 1, 227, 194, 94, 1, 221, 249, 94, 1, - 253, 162, 94, 1, 40, 225, 221, 94, 1, 225, 221, 94, 1, 40, 215, 179, 94, - 1, 215, 179, 94, 1, 224, 39, 94, 1, 223, 67, 94, 1, 220, 20, 94, 1, 217, - 38, 94, 27, 211, 6, 52, 214, 3, 94, 27, 211, 6, 214, 4, 210, 233, 94, 27, - 211, 6, 52, 210, 233, 94, 224, 141, 243, 41, 94, 224, 141, 243, 39, 10, - 54, 50, 10, 5, 221, 242, 10, 244, 30, 231, 154, 10, 5, 222, 23, 10, 5, - 221, 245, 254, 37, 249, 109, 222, 193, 254, 37, 244, 4, 222, 193, 10, - 223, 134, 254, 37, 225, 183, 230, 193, 50, 254, 37, 225, 183, 216, 248, - 216, 148, 50, 254, 221, 50, 10, 249, 219, 10, 248, 150, 220, 137, 10, - 225, 13, 213, 241, 50, 10, 5, 230, 174, 10, 5, 222, 3, 254, 172, 212, 45, - 10, 5, 254, 172, 253, 221, 10, 5, 223, 167, 254, 171, 10, 5, 223, 175, - 254, 152, 254, 104, 10, 5, 217, 70, 10, 4, 125, 217, 80, 10, 4, 125, 27, - 112, 2, 233, 103, 2, 211, 43, 10, 4, 125, 210, 108, 10, 4, 244, 165, 10, - 4, 248, 184, 10, 4, 234, 205, 10, 220, 150, 10, 215, 211, 59, 224, 141, - 78, 10, 224, 13, 78, 10, 1, 234, 209, 211, 43, 10, 1, 242, 19, 10, 1, - 112, 2, 231, 228, 48, 10, 1, 112, 2, 202, 48, 10, 1, 212, 31, 2, 202, 48, - 10, 1, 112, 2, 202, 51, 10, 1, 79, 2, 202, 48, 10, 1, 254, 170, 10, 1, - 252, 54, 10, 1, 217, 8, 231, 164, 10, 1, 217, 7, 10, 1, 216, 192, 10, 1, - 235, 123, 10, 1, 242, 37, 10, 1, 234, 129, 10, 1, 248, 195, 10, 1, 216, - 202, 10, 1, 223, 95, 10, 1, 210, 108, 10, 1, 221, 166, 10, 1, 220, 59, - 10, 1, 222, 26, 10, 1, 248, 216, 10, 1, 217, 80, 10, 1, 210, 111, 10, 1, - 254, 196, 10, 1, 242, 244, 10, 1, 234, 175, 2, 113, 170, 48, 10, 1, 234, - 175, 2, 134, 170, 51, 10, 1, 244, 168, 79, 2, 235, 193, 214, 105, 10, 1, - 244, 168, 79, 2, 113, 170, 48, 10, 1, 244, 168, 79, 2, 134, 170, 48, 10, - 217, 43, 10, 1, 244, 142, 10, 1, 224, 81, 10, 1, 234, 250, 10, 1, 233, - 102, 10, 1, 231, 78, 10, 1, 228, 62, 10, 1, 241, 218, 10, 1, 212, 30, 10, - 1, 112, 231, 192, 10, 1, 211, 43, 10, 244, 163, 10, 248, 182, 10, 234, - 203, 10, 244, 165, 10, 248, 184, 10, 234, 205, 10, 220, 93, 10, 218, 45, - 10, 231, 226, 48, 10, 202, 48, 10, 202, 51, 10, 218, 65, 254, 170, 10, - 235, 193, 248, 184, 10, 164, 228, 63, 242, 218, 10, 209, 255, 10, 25, 5, - 4, 214, 106, 48, 10, 25, 5, 235, 193, 4, 214, 106, 48, 10, 25, 5, 59, 51, - 10, 223, 49, 248, 184, 10, 244, 166, 2, 113, 247, 118, 10, 212, 32, 202, - 51, 254, 37, 21, 210, 86, 254, 37, 21, 110, 254, 37, 21, 105, 254, 37, - 21, 158, 254, 37, 21, 161, 254, 37, 21, 189, 254, 37, 21, 194, 254, 37, - 21, 198, 254, 37, 21, 195, 254, 37, 21, 200, 10, 225, 182, 50, 10, 248, - 83, 220, 137, 10, 216, 146, 220, 137, 10, 244, 81, 225, 9, 218, 156, 10, - 1, 247, 119, 252, 54, 10, 1, 247, 119, 224, 81, 10, 1, 218, 23, 254, 170, - 10, 1, 112, 212, 46, 10, 1, 112, 2, 212, 32, 202, 48, 10, 1, 112, 2, 212, - 32, 202, 51, 10, 1, 125, 242, 19, 10, 1, 125, 202, 254, 170, 10, 1, 125, - 202, 212, 30, 10, 1, 104, 2, 202, 48, 10, 1, 125, 202, 211, 43, 10, 1, - 215, 148, 10, 1, 215, 146, 10, 1, 252, 64, 10, 1, 217, 8, 2, 222, 233, - 10, 1, 217, 8, 2, 134, 170, 77, 246, 103, 10, 1, 225, 205, 10, 1, 217, 5, - 10, 1, 252, 52, 10, 1, 122, 2, 202, 48, 10, 1, 122, 2, 113, 170, 67, 48, - 10, 1, 227, 153, 10, 1, 246, 43, 10, 1, 122, 2, 134, 170, 48, 10, 1, 217, - 26, 10, 1, 217, 24, 10, 1, 248, 130, 10, 1, 248, 196, 2, 222, 233, 10, 1, - 248, 196, 2, 59, 51, 10, 1, 248, 196, 2, 59, 252, 43, 22, 4, 217, 80, 10, - 1, 248, 201, 10, 1, 248, 132, 10, 1, 246, 70, 10, 1, 248, 196, 2, 134, - 170, 77, 246, 103, 10, 1, 248, 196, 2, 244, 11, 170, 48, 10, 1, 222, 171, - 10, 1, 223, 96, 2, 4, 214, 105, 10, 1, 223, 96, 2, 222, 233, 10, 1, 223, - 96, 2, 59, 51, 10, 1, 223, 96, 2, 4, 214, 106, 51, 10, 1, 223, 96, 2, 59, - 252, 43, 22, 59, 48, 10, 1, 223, 96, 2, 113, 170, 48, 10, 1, 235, 120, - 10, 1, 223, 96, 2, 244, 11, 170, 48, 10, 1, 221, 167, 2, 59, 252, 43, 22, - 59, 48, 10, 1, 221, 167, 2, 134, 170, 51, 10, 1, 221, 167, 2, 134, 170, - 252, 43, 22, 134, 170, 48, 10, 1, 222, 27, 2, 113, 170, 51, 10, 1, 222, - 27, 2, 134, 170, 48, 10, 1, 217, 81, 2, 134, 170, 48, 10, 1, 254, 197, 2, - 134, 170, 48, 10, 1, 247, 119, 244, 142, 10, 1, 244, 143, 2, 59, 230, - 109, 51, 10, 1, 244, 143, 2, 59, 51, 10, 1, 213, 248, 10, 1, 244, 143, 2, - 134, 170, 51, 10, 1, 225, 203, 10, 1, 224, 82, 2, 59, 48, 10, 1, 224, 82, - 2, 134, 170, 48, 10, 1, 234, 174, 10, 1, 217, 250, 234, 250, 10, 1, 234, - 251, 2, 222, 233, 10, 1, 234, 251, 2, 59, 48, 10, 1, 229, 79, 10, 1, 234, - 251, 2, 134, 170, 51, 10, 1, 243, 122, 10, 1, 243, 123, 2, 222, 233, 10, - 1, 229, 2, 10, 1, 243, 123, 2, 113, 170, 51, 10, 1, 242, 101, 10, 1, 243, - 123, 2, 134, 170, 48, 10, 1, 233, 103, 2, 4, 214, 105, 10, 1, 233, 103, - 2, 59, 48, 10, 1, 233, 103, 2, 134, 170, 48, 10, 1, 233, 103, 2, 134, - 170, 51, 10, 1, 228, 63, 2, 59, 51, 10, 1, 228, 63, 242, 218, 10, 1, 222, - 214, 10, 1, 228, 63, 2, 222, 233, 10, 1, 228, 63, 2, 134, 170, 48, 10, 1, - 241, 219, 247, 141, 10, 1, 217, 27, 2, 59, 48, 10, 1, 241, 219, 2, 79, - 48, 10, 1, 241, 219, 242, 171, 10, 1, 241, 219, 242, 172, 2, 202, 48, 10, - 1, 217, 8, 231, 165, 242, 171, 10, 1, 212, 31, 2, 222, 233, 10, 1, 234, - 73, 226, 234, 10, 1, 226, 234, 10, 1, 70, 10, 1, 210, 212, 10, 1, 234, - 73, 210, 212, 10, 1, 212, 31, 2, 113, 170, 48, 10, 1, 213, 255, 10, 1, - 244, 168, 211, 43, 10, 1, 79, 2, 217, 77, 10, 1, 79, 2, 4, 214, 105, 10, - 1, 212, 31, 2, 59, 48, 10, 1, 75, 10, 1, 79, 2, 134, 170, 51, 10, 1, 79, - 252, 132, 10, 1, 79, 252, 133, 2, 202, 48, 10, 243, 229, 218, 129, 10, 1, - 254, 243, 10, 4, 125, 27, 222, 27, 2, 233, 103, 2, 112, 231, 192, 10, 4, - 125, 27, 224, 82, 2, 233, 103, 2, 112, 231, 192, 10, 4, 125, 66, 65, 17, - 10, 4, 125, 233, 103, 254, 170, 10, 4, 125, 235, 123, 10, 4, 125, 134, - 247, 118, 10, 4, 125, 221, 166, 10, 245, 143, 64, 253, 166, 10, 218, 152, - 64, 222, 138, 245, 175, 241, 155, 10, 4, 125, 222, 183, 210, 86, 10, 4, - 125, 214, 159, 223, 115, 210, 86, 10, 4, 125, 247, 119, 241, 236, 64, - 234, 129, 10, 4, 125, 66, 53, 17, 10, 4, 121, 221, 166, 10, 4, 125, 231, - 227, 10, 4, 212, 30, 10, 4, 211, 43, 10, 4, 125, 211, 43, 10, 4, 125, - 228, 62, 10, 225, 41, 64, 222, 13, 10, 245, 152, 250, 175, 121, 218, 129, - 10, 245, 152, 250, 175, 125, 218, 129, 10, 222, 183, 125, 218, 130, 2, - 244, 104, 250, 174, 10, 4, 121, 231, 78, 10, 1, 248, 196, 2, 235, 193, - 214, 105, 10, 1, 223, 96, 2, 235, 193, 214, 105, 245, 22, 254, 37, 21, - 210, 86, 245, 22, 254, 37, 21, 110, 245, 22, 254, 37, 21, 105, 245, 22, - 254, 37, 21, 158, 245, 22, 254, 37, 21, 161, 245, 22, 254, 37, 21, 189, - 245, 22, 254, 37, 21, 194, 245, 22, 254, 37, 21, 198, 245, 22, 254, 37, - 21, 195, 245, 22, 254, 37, 21, 200, 10, 1, 220, 60, 2, 59, 51, 10, 1, - 248, 217, 2, 59, 51, 10, 1, 242, 245, 2, 59, 51, 10, 5, 219, 158, 254, - 126, 10, 5, 219, 158, 224, 235, 231, 58, 10, 1, 241, 219, 2, 235, 193, - 214, 105, 188, 245, 143, 64, 226, 14, 188, 218, 19, 243, 229, 218, 129, - 188, 218, 67, 243, 229, 218, 129, 188, 218, 19, 249, 226, 188, 218, 67, - 249, 226, 188, 203, 249, 226, 188, 249, 227, 219, 106, 233, 46, 188, 249, - 227, 219, 106, 222, 251, 188, 218, 19, 249, 227, 219, 106, 233, 46, 188, - 218, 67, 249, 227, 219, 106, 222, 251, 188, 249, 180, 188, 242, 1, 226, - 250, 188, 242, 1, 231, 36, 188, 242, 1, 253, 218, 188, 255, 21, 78, 188, - 1, 254, 174, 188, 1, 218, 23, 254, 174, 188, 1, 252, 25, 188, 1, 243, - 113, 188, 1, 243, 114, 243, 91, 188, 1, 248, 192, 188, 1, 247, 119, 248, - 193, 222, 229, 188, 1, 241, 238, 188, 1, 212, 30, 188, 1, 210, 108, 188, - 1, 241, 195, 188, 1, 216, 226, 188, 1, 216, 227, 243, 91, 188, 1, 210, - 199, 188, 1, 210, 200, 241, 238, 188, 1, 234, 225, 188, 1, 233, 101, 188, - 1, 230, 190, 188, 1, 227, 194, 188, 1, 220, 143, 188, 1, 40, 220, 143, - 188, 1, 75, 188, 1, 225, 221, 188, 1, 223, 49, 225, 221, 188, 1, 222, 24, - 188, 1, 224, 75, 188, 1, 222, 229, 188, 1, 220, 20, 188, 1, 217, 36, 188, - 1, 225, 169, 252, 12, 188, 1, 225, 169, 242, 242, 188, 1, 225, 169, 248, - 20, 188, 224, 151, 48, 188, 224, 151, 51, 188, 224, 151, 246, 117, 188, - 210, 17, 48, 188, 210, 17, 51, 188, 210, 17, 246, 117, 188, 223, 131, 48, - 188, 223, 131, 51, 188, 246, 118, 210, 24, 241, 44, 188, 246, 118, 210, - 24, 254, 105, 188, 241, 241, 48, 188, 241, 241, 51, 188, 241, 240, 246, - 117, 188, 245, 79, 48, 188, 245, 79, 51, 188, 222, 107, 188, 244, 136, - 247, 120, 188, 223, 248, 188, 222, 134, 188, 113, 67, 170, 48, 188, 113, - 67, 170, 51, 188, 134, 170, 48, 188, 134, 170, 51, 188, 226, 248, 232, - 214, 48, 188, 226, 248, 232, 214, 51, 188, 230, 56, 188, 252, 131, 188, - 1, 219, 49, 210, 80, 188, 1, 219, 49, 234, 122, 188, 1, 219, 49, 244, - 154, 10, 1, 252, 55, 2, 134, 170, 240, 250, 51, 10, 1, 252, 55, 2, 59, - 252, 43, 22, 134, 170, 48, 10, 1, 252, 55, 2, 134, 170, 225, 7, 214, 153, - 51, 10, 1, 252, 55, 2, 134, 170, 225, 7, 214, 153, 252, 43, 22, 113, 170, - 48, 10, 1, 252, 55, 2, 113, 170, 252, 43, 22, 59, 48, 10, 1, 252, 55, 2, - 235, 193, 4, 214, 106, 51, 10, 1, 252, 55, 2, 4, 214, 105, 10, 1, 122, 2, - 113, 170, 48, 10, 1, 122, 2, 134, 170, 225, 7, 214, 153, 51, 10, 1, 248, - 196, 2, 113, 170, 213, 189, 252, 43, 22, 4, 217, 80, 10, 1, 248, 196, 2, - 235, 193, 4, 214, 106, 51, 10, 1, 223, 96, 2, 91, 10, 1, 221, 167, 2, - 244, 11, 170, 48, 10, 1, 254, 197, 2, 113, 170, 48, 10, 1, 254, 197, 2, - 134, 170, 225, 7, 246, 104, 48, 10, 1, 254, 197, 2, 113, 170, 213, 189, - 48, 10, 1, 244, 143, 2, 113, 170, 51, 10, 1, 244, 143, 2, 134, 170, 225, - 7, 214, 153, 51, 10, 1, 234, 175, 2, 59, 48, 10, 1, 234, 175, 2, 134, - 170, 48, 10, 1, 234, 175, 2, 134, 170, 225, 7, 214, 153, 51, 10, 1, 66, - 2, 59, 48, 10, 1, 66, 2, 59, 51, 10, 1, 228, 63, 2, 113, 170, 51, 10, 1, - 228, 63, 2, 4, 217, 80, 10, 1, 228, 63, 2, 4, 214, 105, 10, 1, 233, 103, - 2, 130, 10, 1, 223, 96, 2, 113, 170, 213, 189, 48, 10, 1, 223, 96, 2, - 202, 48, 10, 1, 221, 167, 2, 113, 170, 213, 189, 48, 10, 1, 122, 2, 4, - 10, 1, 217, 81, 51, 10, 1, 122, 2, 4, 10, 1, 217, 81, 22, 113, 247, 118, - 10, 1, 221, 167, 2, 4, 10, 1, 217, 81, 22, 113, 247, 118, 10, 1, 223, 96, - 2, 4, 10, 1, 217, 81, 22, 113, 247, 118, 10, 1, 122, 2, 4, 10, 1, 217, - 81, 48, 10, 1, 112, 2, 245, 22, 254, 37, 21, 113, 48, 10, 1, 112, 2, 245, - 22, 254, 37, 21, 134, 48, 10, 1, 244, 168, 79, 2, 245, 22, 254, 37, 21, - 113, 48, 10, 1, 244, 168, 79, 2, 245, 22, 254, 37, 21, 134, 48, 10, 1, - 244, 168, 79, 2, 245, 22, 254, 37, 21, 244, 11, 51, 10, 1, 212, 31, 2, - 245, 22, 254, 37, 21, 113, 48, 10, 1, 212, 31, 2, 245, 22, 254, 37, 21, - 134, 48, 10, 1, 79, 252, 133, 2, 245, 22, 254, 37, 21, 113, 48, 10, 1, - 79, 252, 133, 2, 245, 22, 254, 37, 21, 134, 48, 10, 1, 122, 2, 245, 22, - 254, 37, 21, 244, 11, 51, 10, 1, 221, 167, 2, 245, 22, 254, 37, 21, 244, - 11, 48, 10, 1, 221, 167, 2, 235, 193, 214, 105, 10, 1, 234, 251, 2, 113, - 170, 48, 216, 205, 1, 242, 46, 216, 205, 1, 220, 68, 216, 205, 1, 228, - 61, 216, 205, 1, 223, 184, 216, 205, 1, 252, 189, 216, 205, 1, 232, 251, - 216, 205, 1, 235, 8, 216, 205, 1, 254, 159, 216, 205, 1, 214, 25, 216, - 205, 1, 231, 77, 216, 205, 1, 244, 194, 216, 205, 1, 248, 23, 216, 205, - 1, 216, 207, 216, 205, 1, 233, 131, 216, 205, 1, 243, 131, 216, 205, 1, - 242, 177, 216, 205, 1, 221, 165, 216, 205, 1, 248, 148, 216, 205, 1, 210, - 100, 216, 205, 1, 217, 37, 216, 205, 1, 211, 103, 216, 205, 1, 225, 233, - 216, 205, 1, 235, 128, 216, 205, 1, 250, 134, 216, 205, 1, 215, 155, 216, - 205, 1, 241, 188, 216, 205, 1, 234, 131, 216, 205, 1, 216, 206, 216, 205, - 1, 210, 115, 216, 205, 1, 220, 58, 216, 205, 1, 222, 30, 216, 205, 1, - 248, 219, 216, 205, 1, 111, 216, 205, 1, 210, 23, 216, 205, 1, 254, 193, - 216, 205, 1, 242, 243, 216, 205, 1, 224, 85, 216, 205, 1, 212, 63, 216, - 205, 255, 22, 216, 205, 255, 38, 216, 205, 240, 114, 216, 205, 245, 208, - 216, 205, 214, 222, 216, 205, 226, 182, 216, 205, 245, 216, 216, 205, - 245, 16, 216, 205, 226, 247, 216, 205, 226, 255, 216, 205, 218, 45, 216, - 205, 1, 229, 225, 228, 137, 21, 210, 86, 228, 137, 21, 110, 228, 137, 21, - 105, 228, 137, 21, 158, 228, 137, 21, 161, 228, 137, 21, 189, 228, 137, - 21, 194, 228, 137, 21, 198, 228, 137, 21, 195, 228, 137, 21, 200, 228, - 137, 1, 61, 228, 137, 1, 245, 209, 228, 137, 1, 73, 228, 137, 1, 75, 228, - 137, 1, 70, 228, 137, 1, 226, 183, 228, 137, 1, 76, 228, 137, 1, 248, - 209, 228, 137, 1, 230, 25, 228, 137, 1, 252, 191, 228, 137, 1, 190, 228, - 137, 1, 217, 105, 228, 137, 1, 235, 141, 228, 137, 1, 250, 157, 228, 137, - 1, 248, 221, 228, 137, 1, 205, 228, 137, 1, 222, 179, 228, 137, 1, 206, - 228, 137, 1, 243, 79, 228, 137, 1, 244, 196, 228, 137, 1, 176, 228, 137, - 1, 233, 135, 228, 137, 1, 229, 229, 211, 223, 228, 137, 1, 184, 228, 137, - 1, 227, 165, 228, 137, 1, 197, 228, 137, 1, 162, 228, 137, 1, 212, 65, - 228, 137, 1, 191, 228, 137, 1, 227, 166, 211, 223, 228, 137, 1, 235, 61, - 235, 141, 228, 137, 1, 235, 61, 250, 157, 228, 137, 1, 235, 61, 205, 228, - 137, 38, 219, 251, 125, 216, 30, 228, 137, 38, 219, 251, 121, 216, 30, - 228, 137, 38, 219, 251, 222, 228, 216, 30, 228, 137, 38, 199, 248, 38, - 216, 30, 228, 137, 38, 199, 125, 216, 30, 228, 137, 38, 199, 121, 216, - 30, 228, 137, 38, 199, 222, 228, 216, 30, 228, 137, 38, 229, 193, 78, - 228, 137, 38, 52, 59, 48, 228, 137, 125, 138, 254, 57, 228, 137, 121, - 138, 254, 57, 228, 137, 16, 226, 184, 248, 50, 228, 137, 16, 243, 78, - 228, 137, 249, 219, 228, 137, 245, 31, 78, 228, 137, 233, 108, 221, 252, - 1, 254, 176, 221, 252, 1, 251, 228, 221, 252, 1, 243, 112, 221, 252, 1, - 248, 194, 221, 252, 1, 235, 152, 221, 252, 1, 252, 189, 221, 252, 1, 210, - 89, 221, 252, 1, 235, 160, 221, 252, 1, 216, 67, 221, 252, 1, 210, 182, - 221, 252, 1, 235, 9, 221, 252, 1, 233, 128, 221, 252, 1, 230, 190, 221, - 252, 1, 227, 194, 221, 252, 1, 219, 156, 221, 252, 1, 235, 255, 221, 252, - 1, 244, 121, 221, 252, 1, 215, 181, 221, 252, 1, 224, 10, 221, 252, 1, - 222, 229, 221, 252, 1, 220, 85, 221, 252, 1, 217, 100, 221, 252, 164, - 235, 255, 221, 252, 164, 235, 254, 221, 252, 164, 226, 243, 221, 252, - 164, 248, 207, 221, 252, 58, 1, 245, 105, 210, 182, 221, 252, 164, 245, - 105, 210, 182, 221, 252, 25, 5, 199, 75, 221, 252, 25, 5, 75, 221, 252, - 25, 5, 226, 118, 255, 73, 221, 252, 25, 5, 199, 255, 73, 221, 252, 25, 5, - 255, 73, 221, 252, 25, 5, 226, 118, 61, 221, 252, 25, 5, 199, 61, 221, - 252, 25, 5, 61, 221, 252, 58, 1, 219, 251, 61, 221, 252, 25, 5, 219, 251, - 61, 221, 252, 25, 5, 199, 70, 221, 252, 25, 5, 70, 221, 252, 58, 1, 73, - 221, 252, 25, 5, 199, 73, 221, 252, 25, 5, 73, 221, 252, 25, 5, 76, 221, - 252, 25, 5, 218, 45, 221, 252, 164, 229, 92, 221, 252, 224, 141, 229, 92, - 221, 252, 224, 141, 254, 218, 221, 252, 224, 141, 254, 114, 221, 252, - 224, 141, 252, 114, 221, 252, 224, 141, 253, 201, 221, 252, 224, 141, - 220, 8, 221, 252, 255, 21, 78, 221, 252, 224, 141, 231, 68, 224, 45, 221, - 252, 224, 141, 210, 31, 221, 252, 224, 141, 224, 45, 221, 252, 224, 141, - 210, 114, 221, 252, 224, 141, 215, 90, 221, 252, 224, 141, 254, 9, 221, - 252, 224, 141, 219, 53, 231, 145, 221, 252, 224, 141, 254, 100, 231, 182, - 1, 242, 24, 231, 182, 1, 255, 25, 231, 182, 1, 254, 216, 231, 182, 1, - 254, 255, 231, 182, 1, 254, 209, 231, 182, 1, 214, 124, 231, 182, 1, 253, - 160, 231, 182, 1, 235, 160, 231, 182, 1, 253, 198, 231, 182, 1, 254, 181, - 231, 182, 1, 254, 186, 231, 182, 1, 254, 178, 231, 182, 1, 254, 136, 231, - 182, 1, 254, 123, 231, 182, 1, 253, 237, 231, 182, 1, 235, 255, 231, 182, - 1, 254, 72, 231, 182, 1, 253, 208, 231, 182, 1, 254, 45, 231, 182, 1, - 254, 41, 231, 182, 1, 253, 231, 231, 182, 1, 253, 206, 231, 182, 1, 246, - 55, 231, 182, 1, 235, 2, 231, 182, 1, 254, 196, 231, 182, 254, 222, 78, - 231, 182, 213, 136, 78, 231, 182, 243, 53, 78, 231, 182, 224, 140, 10, 1, - 252, 55, 2, 4, 214, 106, 51, 10, 1, 151, 2, 113, 170, 48, 10, 1, 217, 81, - 2, 113, 170, 48, 10, 1, 244, 143, 2, 59, 252, 43, 22, 134, 170, 48, 10, - 1, 224, 82, 2, 59, 51, 10, 1, 233, 103, 2, 52, 130, 10, 1, 66, 2, 134, - 170, 48, 10, 1, 79, 2, 113, 170, 252, 43, 22, 202, 48, 10, 1, 79, 2, 113, - 170, 252, 43, 22, 59, 48, 10, 1, 223, 96, 2, 232, 123, 10, 1, 212, 31, 2, - 59, 211, 231, 10, 1, 222, 201, 211, 43, 10, 249, 99, 244, 165, 10, 249, - 99, 248, 184, 10, 249, 99, 234, 205, 10, 249, 99, 244, 163, 10, 249, 99, - 248, 182, 10, 249, 99, 234, 203, 10, 138, 123, 59, 48, 10, 138, 113, 170, - 48, 10, 138, 232, 124, 48, 10, 138, 123, 59, 51, 10, 138, 113, 170, 51, - 10, 138, 232, 124, 51, 10, 204, 244, 163, 10, 204, 248, 182, 10, 204, - 234, 203, 10, 4, 125, 212, 30, 10, 244, 166, 2, 222, 233, 10, 244, 166, - 2, 59, 48, 10, 234, 206, 2, 59, 51, 10, 43, 253, 250, 48, 10, 44, 253, - 250, 48, 10, 43, 253, 250, 51, 10, 44, 253, 250, 51, 10, 52, 44, 253, - 250, 48, 10, 52, 44, 253, 250, 77, 2, 247, 120, 10, 44, 253, 250, 77, 2, - 247, 120, 10, 248, 185, 2, 247, 120, 84, 5, 235, 193, 250, 255, 84, 5, - 250, 255, 84, 5, 254, 75, 84, 5, 213, 147, 84, 1, 219, 251, 61, 84, 1, - 61, 84, 1, 255, 73, 84, 1, 73, 84, 1, 236, 33, 84, 1, 70, 84, 1, 214, - 118, 84, 1, 149, 153, 84, 1, 149, 156, 84, 1, 251, 2, 75, 84, 1, 219, - 251, 75, 84, 1, 75, 84, 1, 254, 201, 84, 1, 251, 2, 76, 84, 1, 219, 251, - 76, 84, 1, 76, 84, 1, 253, 192, 84, 1, 176, 84, 1, 234, 132, 84, 1, 243, - 135, 84, 1, 242, 249, 84, 1, 229, 77, 84, 1, 251, 33, 84, 1, 250, 157, - 84, 1, 235, 141, 84, 1, 235, 114, 84, 1, 227, 165, 84, 1, 215, 156, 84, - 1, 215, 144, 84, 1, 248, 135, 84, 1, 248, 119, 84, 1, 228, 110, 84, 1, - 217, 105, 84, 1, 216, 208, 84, 1, 248, 221, 84, 1, 248, 25, 84, 1, 197, - 84, 1, 228, 92, 84, 1, 190, 84, 1, 225, 147, 84, 1, 252, 191, 84, 1, 252, - 18, 84, 1, 184, 84, 1, 191, 84, 1, 205, 84, 1, 222, 179, 84, 1, 233, 135, - 84, 1, 232, 184, 84, 1, 232, 175, 84, 1, 214, 27, 84, 1, 220, 102, 84, 1, - 218, 223, 84, 1, 206, 84, 1, 162, 84, 25, 5, 226, 234, 84, 25, 5, 226, - 181, 84, 5, 227, 205, 84, 5, 253, 175, 84, 25, 5, 255, 73, 84, 25, 5, 73, - 84, 25, 5, 236, 33, 84, 25, 5, 70, 84, 25, 5, 214, 118, 84, 25, 5, 149, - 153, 84, 25, 5, 149, 222, 180, 84, 25, 5, 251, 2, 75, 84, 25, 5, 219, - 251, 75, 84, 25, 5, 75, 84, 25, 5, 254, 201, 84, 25, 5, 251, 2, 76, 84, - 25, 5, 219, 251, 76, 84, 25, 5, 76, 84, 25, 5, 253, 192, 84, 5, 213, 152, - 84, 25, 5, 224, 185, 75, 84, 25, 5, 253, 171, 84, 226, 204, 84, 218, 111, - 5, 214, 216, 84, 218, 111, 5, 254, 77, 84, 242, 137, 255, 14, 84, 255, 3, - 255, 14, 84, 25, 5, 251, 2, 199, 75, 84, 25, 5, 214, 214, 84, 25, 5, 214, - 117, 84, 1, 224, 88, 84, 1, 234, 115, 84, 1, 242, 226, 84, 1, 210, 116, - 84, 1, 248, 124, 84, 1, 223, 39, 84, 1, 244, 196, 84, 1, 210, 168, 84, 1, - 149, 222, 180, 84, 1, 149, 232, 185, 84, 25, 5, 149, 156, 84, 25, 5, 149, - 232, 185, 84, 248, 178, 84, 52, 248, 178, 84, 21, 210, 86, 84, 21, 110, - 84, 21, 105, 84, 21, 158, 84, 21, 161, 84, 21, 189, 84, 21, 194, 84, 21, - 198, 84, 21, 195, 84, 21, 200, 84, 255, 21, 50, 84, 5, 125, 219, 17, 247, - 120, 84, 1, 251, 2, 61, 84, 1, 226, 234, 84, 1, 226, 181, 84, 1, 253, - 171, 84, 1, 214, 214, 84, 1, 214, 117, 84, 1, 210, 82, 84, 1, 114, 191, - 84, 1, 243, 29, 84, 1, 235, 96, 84, 1, 242, 180, 218, 129, 84, 1, 248, - 125, 84, 1, 252, 111, 146, 5, 250, 255, 146, 5, 254, 75, 146, 5, 213, - 147, 146, 1, 61, 146, 1, 255, 73, 146, 1, 73, 146, 1, 236, 33, 146, 1, - 70, 146, 1, 214, 118, 146, 1, 149, 153, 146, 1, 149, 156, 146, 1, 75, - 146, 1, 254, 201, 146, 1, 76, 146, 1, 253, 192, 146, 1, 176, 146, 1, 234, - 132, 146, 1, 243, 135, 146, 1, 242, 249, 146, 1, 229, 77, 146, 1, 251, - 33, 146, 1, 250, 157, 146, 1, 235, 141, 146, 1, 235, 114, 146, 1, 227, - 165, 146, 1, 215, 156, 146, 1, 215, 144, 146, 1, 248, 135, 146, 1, 248, - 119, 146, 1, 228, 110, 146, 1, 217, 105, 146, 1, 216, 208, 146, 1, 248, - 221, 146, 1, 248, 25, 146, 1, 197, 146, 1, 190, 146, 1, 225, 147, 146, 1, - 252, 191, 146, 1, 252, 18, 146, 1, 184, 146, 1, 191, 146, 1, 205, 146, 1, - 233, 135, 146, 1, 220, 102, 146, 1, 218, 223, 146, 1, 206, 146, 1, 162, - 146, 5, 227, 205, 146, 5, 253, 175, 146, 25, 5, 255, 73, 146, 25, 5, 73, - 146, 25, 5, 236, 33, 146, 25, 5, 70, 146, 25, 5, 214, 118, 146, 25, 5, - 149, 153, 146, 25, 5, 149, 222, 180, 146, 25, 5, 75, 146, 25, 5, 254, - 201, 146, 25, 5, 76, 146, 25, 5, 253, 192, 146, 5, 213, 152, 146, 1, 234, - 124, 217, 105, 146, 253, 193, 233, 23, 78, 146, 1, 222, 179, 146, 1, 223, - 39, 146, 1, 210, 168, 146, 1, 149, 222, 180, 146, 1, 149, 232, 185, 146, - 25, 5, 149, 156, 146, 25, 5, 149, 232, 185, 146, 21, 210, 86, 146, 21, - 110, 146, 21, 105, 146, 21, 158, 146, 21, 161, 146, 21, 189, 146, 21, - 194, 146, 21, 198, 146, 21, 195, 146, 21, 200, 146, 1, 223, 188, 2, 230, - 224, 247, 254, 146, 1, 223, 188, 2, 232, 108, 247, 254, 146, 222, 118, - 78, 146, 222, 118, 50, 146, 249, 98, 227, 197, 110, 146, 249, 98, 227, - 197, 105, 146, 249, 98, 227, 197, 158, 146, 249, 98, 227, 197, 161, 146, - 249, 98, 227, 197, 123, 233, 16, 216, 201, 216, 196, 248, 48, 146, 249, - 98, 248, 49, 219, 119, 146, 235, 161, 146, 243, 103, 78, 183, 5, 254, - 254, 251, 243, 183, 5, 251, 243, 183, 5, 213, 147, 183, 1, 61, 183, 1, - 255, 73, 183, 1, 73, 183, 1, 236, 33, 183, 1, 70, 183, 1, 214, 118, 183, - 1, 245, 209, 183, 1, 254, 201, 183, 1, 226, 183, 183, 1, 253, 192, 183, - 1, 176, 183, 1, 234, 132, 183, 1, 243, 135, 183, 1, 242, 249, 183, 1, - 229, 77, 183, 1, 251, 33, 183, 1, 250, 157, 183, 1, 235, 141, 183, 1, - 235, 114, 183, 1, 227, 165, 183, 1, 215, 156, 183, 1, 215, 144, 183, 1, - 248, 135, 183, 1, 248, 119, 183, 1, 228, 110, 183, 1, 217, 105, 183, 1, - 216, 208, 183, 1, 248, 221, 183, 1, 248, 25, 183, 1, 197, 183, 1, 190, - 183, 1, 225, 147, 183, 1, 252, 191, 183, 1, 252, 18, 183, 1, 184, 183, 1, - 191, 183, 1, 205, 183, 1, 233, 135, 183, 1, 232, 184, 183, 1, 214, 27, - 183, 1, 220, 102, 183, 1, 206, 183, 1, 162, 183, 5, 227, 205, 183, 25, 5, - 255, 73, 183, 25, 5, 73, 183, 25, 5, 236, 33, 183, 25, 5, 70, 183, 25, 5, - 214, 118, 183, 25, 5, 245, 209, 183, 25, 5, 254, 201, 183, 25, 5, 226, - 183, 183, 25, 5, 253, 192, 183, 5, 213, 152, 183, 5, 214, 218, 183, 1, - 234, 115, 183, 1, 242, 226, 183, 1, 210, 116, 183, 1, 222, 179, 183, 1, - 244, 196, 183, 21, 210, 86, 183, 21, 110, 183, 21, 105, 183, 21, 158, - 183, 21, 161, 183, 21, 189, 183, 21, 194, 183, 21, 198, 183, 21, 195, - 183, 21, 200, 183, 216, 74, 183, 254, 253, 183, 235, 178, 183, 214, 146, - 183, 245, 181, 226, 188, 183, 5, 211, 78, 171, 5, 250, 255, 171, 5, 254, - 75, 171, 5, 213, 147, 171, 1, 61, 171, 1, 255, 73, 171, 1, 73, 171, 1, - 236, 33, 171, 1, 70, 171, 1, 214, 118, 171, 1, 149, 153, 171, 1, 149, - 156, 171, 25, 251, 2, 75, 171, 1, 75, 171, 1, 254, 201, 171, 25, 251, 2, - 76, 171, 1, 76, 171, 1, 253, 192, 171, 1, 176, 171, 1, 234, 132, 171, 1, - 243, 135, 171, 1, 242, 249, 171, 1, 229, 77, 171, 1, 251, 33, 171, 1, - 250, 157, 171, 1, 235, 141, 171, 1, 235, 114, 171, 1, 227, 165, 171, 1, - 215, 156, 171, 1, 215, 144, 171, 1, 248, 135, 171, 1, 248, 119, 171, 1, - 228, 110, 171, 1, 217, 105, 171, 1, 216, 208, 171, 1, 248, 221, 171, 1, - 248, 25, 171, 1, 197, 171, 1, 190, 171, 1, 225, 147, 171, 1, 252, 191, - 171, 1, 252, 18, 171, 1, 184, 171, 1, 191, 171, 1, 205, 171, 1, 233, 135, - 171, 1, 232, 184, 171, 1, 214, 27, 171, 1, 220, 102, 171, 1, 218, 223, - 171, 1, 206, 171, 1, 162, 171, 5, 227, 205, 171, 5, 253, 175, 171, 25, 5, - 255, 73, 171, 25, 5, 73, 171, 25, 5, 236, 33, 171, 25, 5, 70, 171, 25, 5, - 214, 118, 171, 25, 5, 149, 153, 171, 25, 5, 149, 222, 180, 171, 25, 5, - 251, 2, 75, 171, 25, 5, 75, 171, 25, 5, 254, 201, 171, 25, 5, 251, 2, 76, - 171, 25, 5, 76, 171, 25, 5, 253, 192, 171, 5, 213, 152, 171, 226, 204, - 171, 1, 149, 222, 180, 171, 1, 149, 232, 185, 171, 25, 5, 149, 156, 171, - 25, 5, 149, 232, 185, 171, 21, 210, 86, 171, 21, 110, 171, 21, 105, 171, + 6, 1, 210, 159, 43, 42, 127, 223, 51, 219, 47, 44, 42, 127, 250, 32, 255, + 15, 121, 232, 214, 242, 138, 255, 15, 7, 4, 1, 61, 7, 4, 1, 253, 159, 7, + 4, 1, 251, 67, 7, 4, 1, 249, 61, 7, 4, 1, 75, 7, 4, 1, 245, 7, 7, 4, 1, + 243, 203, 7, 4, 1, 242, 61, 7, 4, 1, 73, 7, 4, 1, 235, 145, 7, 4, 1, 235, + 24, 7, 4, 1, 156, 7, 4, 1, 193, 7, 4, 1, 230, 26, 7, 4, 1, 76, 7, 4, 1, + 226, 106, 7, 4, 1, 224, 97, 7, 4, 1, 153, 7, 4, 1, 222, 92, 7, 4, 1, 217, + 153, 7, 4, 1, 70, 7, 4, 1, 214, 105, 7, 4, 1, 212, 98, 7, 4, 1, 211, 178, + 7, 4, 1, 211, 117, 7, 4, 1, 210, 159, 43, 249, 100, 127, 67, 232, 214, + 44, 249, 100, 127, 183, 228, 74, 219, 19, 235, 194, 245, 32, 78, 250, + 177, 50, 224, 229, 50, 249, 99, 50, 211, 40, 50, 251, 136, 130, 221, 174, + 50, 248, 2, 249, 164, 50, 244, 137, 226, 155, 235, 239, 233, 43, 52, 254, + 111, 223, 255, 78, 228, 53, 50, 219, 53, 240, 169, 223, 103, 50, 231, + 233, 248, 72, 50, 225, 22, 50, 218, 24, 105, 218, 24, 158, 255, 4, 255, + 15, 230, 229, 50, 225, 69, 50, 230, 225, 247, 121, 250, 184, 218, 24, + 110, 231, 149, 226, 155, 235, 239, 222, 248, 52, 254, 111, 223, 255, 78, + 212, 114, 244, 3, 123, 224, 22, 212, 114, 244, 3, 123, 242, 28, 212, 114, + 244, 3, 134, 224, 20, 235, 194, 224, 14, 78, 7, 6, 1, 115, 2, 242, 137, + 7, 6, 1, 115, 2, 142, 7, 6, 1, 115, 2, 250, 31, 7, 6, 1, 115, 2, 183, 7, + 6, 1, 115, 2, 248, 2, 7, 6, 1, 115, 2, 222, 235, 48, 7, 6, 1, 254, 244, + 7, 6, 1, 251, 68, 2, 250, 184, 7, 6, 1, 160, 2, 242, 137, 7, 6, 1, 160, + 2, 142, 7, 6, 1, 160, 2, 250, 31, 7, 6, 1, 160, 2, 248, 2, 7, 6, 1, 240, + 155, 2, 242, 137, 7, 6, 1, 240, 155, 2, 142, 7, 6, 1, 240, 155, 2, 250, + 31, 7, 6, 1, 240, 155, 2, 248, 2, 7, 6, 1, 245, 60, 7, 6, 1, 230, 27, 2, + 183, 7, 6, 1, 144, 2, 242, 137, 7, 6, 1, 144, 2, 142, 7, 6, 1, 144, 2, + 250, 31, 7, 6, 1, 144, 2, 183, 7, 6, 1, 144, 2, 248, 2, 230, 85, 50, 7, + 6, 1, 144, 2, 91, 7, 6, 1, 104, 2, 242, 137, 7, 6, 1, 104, 2, 142, 7, 6, + 1, 104, 2, 250, 31, 7, 6, 1, 104, 2, 248, 2, 7, 6, 1, 211, 118, 2, 142, + 7, 6, 1, 216, 152, 7, 4, 1, 220, 77, 222, 92, 7, 4, 1, 115, 2, 242, 137, + 7, 4, 1, 115, 2, 142, 7, 4, 1, 115, 2, 250, 31, 7, 4, 1, 115, 2, 183, 7, + 4, 1, 115, 2, 248, 2, 7, 4, 1, 115, 2, 222, 235, 48, 7, 4, 1, 254, 244, + 7, 4, 1, 251, 68, 2, 250, 184, 7, 4, 1, 160, 2, 242, 137, 7, 4, 1, 160, + 2, 142, 7, 4, 1, 160, 2, 250, 31, 7, 4, 1, 160, 2, 248, 2, 7, 4, 1, 240, + 155, 2, 242, 137, 7, 4, 1, 240, 155, 2, 142, 7, 4, 1, 240, 155, 2, 250, + 31, 7, 4, 1, 240, 155, 2, 248, 2, 7, 4, 1, 245, 60, 7, 4, 1, 230, 27, 2, + 183, 7, 4, 1, 144, 2, 242, 137, 7, 4, 1, 144, 2, 142, 7, 4, 1, 144, 2, + 250, 31, 7, 4, 1, 144, 2, 183, 7, 4, 1, 144, 2, 248, 2, 247, 170, 50, 7, + 4, 1, 144, 2, 91, 7, 4, 1, 104, 2, 242, 137, 7, 4, 1, 104, 2, 142, 7, 4, + 1, 104, 2, 250, 31, 7, 4, 1, 104, 2, 248, 2, 7, 4, 1, 211, 118, 2, 142, + 7, 4, 1, 216, 152, 7, 4, 1, 211, 118, 2, 248, 2, 7, 6, 1, 115, 2, 231, + 233, 7, 4, 1, 115, 2, 231, 233, 7, 6, 1, 115, 2, 251, 147, 7, 4, 1, 115, + 2, 251, 147, 7, 6, 1, 115, 2, 226, 225, 7, 4, 1, 115, 2, 226, 225, 7, 6, + 1, 251, 68, 2, 142, 7, 4, 1, 251, 68, 2, 142, 7, 6, 1, 251, 68, 2, 250, + 31, 7, 4, 1, 251, 68, 2, 250, 31, 7, 6, 1, 251, 68, 2, 59, 48, 7, 4, 1, + 251, 68, 2, 59, 48, 7, 6, 1, 251, 68, 2, 250, 235, 7, 4, 1, 251, 68, 2, + 250, 235, 7, 6, 1, 249, 62, 2, 250, 235, 7, 4, 1, 249, 62, 2, 250, 235, + 7, 6, 1, 249, 62, 2, 91, 7, 4, 1, 249, 62, 2, 91, 7, 6, 1, 160, 2, 231, + 233, 7, 4, 1, 160, 2, 231, 233, 7, 6, 1, 160, 2, 251, 147, 7, 4, 1, 160, + 2, 251, 147, 7, 6, 1, 160, 2, 59, 48, 7, 4, 1, 160, 2, 59, 48, 7, 6, 1, + 160, 2, 226, 225, 7, 4, 1, 160, 2, 226, 225, 7, 6, 1, 160, 2, 250, 235, + 7, 4, 1, 160, 2, 250, 235, 7, 6, 1, 243, 204, 2, 250, 31, 7, 4, 1, 243, + 204, 2, 250, 31, 7, 6, 1, 243, 204, 2, 251, 147, 7, 4, 1, 243, 204, 2, + 251, 147, 7, 6, 1, 243, 204, 2, 59, 48, 7, 4, 1, 243, 204, 2, 59, 48, 7, + 6, 1, 243, 204, 2, 250, 184, 7, 4, 1, 243, 204, 2, 250, 184, 7, 6, 1, + 242, 62, 2, 250, 31, 7, 4, 1, 242, 62, 2, 250, 31, 7, 6, 1, 242, 62, 2, + 91, 7, 4, 1, 242, 62, 2, 91, 7, 6, 1, 240, 155, 2, 183, 7, 4, 1, 240, + 155, 2, 183, 7, 6, 1, 240, 155, 2, 231, 233, 7, 4, 1, 240, 155, 2, 231, + 233, 7, 6, 1, 240, 155, 2, 251, 147, 7, 4, 1, 240, 155, 2, 251, 147, 7, + 6, 1, 240, 155, 2, 226, 225, 7, 4, 1, 240, 155, 2, 226, 225, 7, 6, 1, + 240, 155, 2, 59, 48, 7, 4, 1, 247, 120, 73, 7, 6, 27, 236, 32, 7, 4, 27, + 236, 32, 7, 6, 1, 235, 146, 2, 250, 31, 7, 4, 1, 235, 146, 2, 250, 31, 7, + 6, 1, 235, 25, 2, 250, 184, 7, 4, 1, 235, 25, 2, 250, 184, 7, 4, 1, 233, + 240, 7, 6, 1, 233, 150, 2, 142, 7, 4, 1, 233, 150, 2, 142, 7, 6, 1, 233, + 150, 2, 250, 184, 7, 4, 1, 233, 150, 2, 250, 184, 7, 6, 1, 233, 150, 2, + 250, 235, 7, 4, 1, 233, 150, 2, 250, 235, 7, 6, 1, 233, 150, 2, 230, 225, + 247, 121, 7, 4, 1, 233, 150, 2, 230, 225, 247, 121, 7, 6, 1, 233, 150, 2, + 91, 7, 4, 1, 233, 150, 2, 91, 7, 6, 1, 230, 27, 2, 142, 7, 4, 1, 230, 27, + 2, 142, 7, 6, 1, 230, 27, 2, 250, 184, 7, 4, 1, 230, 27, 2, 250, 184, 7, + 6, 1, 230, 27, 2, 250, 235, 7, 4, 1, 230, 27, 2, 250, 235, 7, 4, 1, 230, + 27, 224, 205, 251, 79, 254, 58, 7, 6, 1, 245, 139, 7, 4, 1, 245, 139, 7, + 6, 1, 144, 2, 231, 233, 7, 4, 1, 144, 2, 231, 233, 7, 6, 1, 144, 2, 251, + 147, 7, 4, 1, 144, 2, 251, 147, 7, 6, 1, 144, 2, 52, 142, 7, 4, 1, 144, + 2, 52, 142, 7, 6, 27, 226, 235, 7, 4, 27, 226, 235, 7, 6, 1, 223, 225, 2, + 142, 7, 4, 1, 223, 225, 2, 142, 7, 6, 1, 223, 225, 2, 250, 184, 7, 4, 1, + 223, 225, 2, 250, 184, 7, 6, 1, 223, 225, 2, 250, 235, 7, 4, 1, 223, 225, + 2, 250, 235, 7, 6, 1, 222, 93, 2, 142, 7, 4, 1, 222, 93, 2, 142, 7, 6, 1, + 222, 93, 2, 250, 31, 7, 4, 1, 222, 93, 2, 250, 31, 7, 6, 1, 222, 93, 2, + 250, 184, 7, 4, 1, 222, 93, 2, 250, 184, 7, 6, 1, 222, 93, 2, 250, 235, + 7, 4, 1, 222, 93, 2, 250, 235, 7, 6, 1, 217, 154, 2, 250, 184, 7, 4, 1, + 217, 154, 2, 250, 184, 7, 6, 1, 217, 154, 2, 250, 235, 7, 4, 1, 217, 154, + 2, 250, 235, 7, 6, 1, 217, 154, 2, 91, 7, 4, 1, 217, 154, 2, 91, 7, 6, 1, + 104, 2, 183, 7, 4, 1, 104, 2, 183, 7, 6, 1, 104, 2, 231, 233, 7, 4, 1, + 104, 2, 231, 233, 7, 6, 1, 104, 2, 251, 147, 7, 4, 1, 104, 2, 251, 147, + 7, 6, 1, 104, 2, 222, 235, 48, 7, 4, 1, 104, 2, 222, 235, 48, 7, 6, 1, + 104, 2, 52, 142, 7, 4, 1, 104, 2, 52, 142, 7, 6, 1, 104, 2, 226, 225, 7, + 4, 1, 104, 2, 226, 225, 7, 6, 1, 212, 99, 2, 250, 31, 7, 4, 1, 212, 99, + 2, 250, 31, 7, 6, 1, 211, 118, 2, 250, 31, 7, 4, 1, 211, 118, 2, 250, 31, + 7, 6, 1, 211, 118, 2, 248, 2, 7, 6, 1, 210, 160, 2, 142, 7, 4, 1, 210, + 160, 2, 142, 7, 6, 1, 210, 160, 2, 59, 48, 7, 4, 1, 210, 160, 2, 59, 48, + 7, 6, 1, 210, 160, 2, 250, 235, 7, 4, 1, 210, 160, 2, 250, 235, 7, 4, 1, + 199, 222, 92, 7, 4, 1, 57, 2, 91, 7, 6, 1, 57, 2, 103, 7, 6, 1, 57, 2, + 216, 12, 7, 4, 1, 57, 2, 216, 12, 7, 6, 1, 138, 194, 7, 4, 1, 138, 194, + 7, 6, 1, 204, 76, 7, 6, 1, 251, 68, 2, 103, 7, 4, 1, 251, 68, 2, 103, 7, + 6, 1, 254, 220, 249, 61, 7, 6, 1, 249, 62, 2, 103, 7, 6, 1, 249, 62, 2, + 216, 12, 7, 4, 1, 249, 62, 2, 216, 12, 7, 4, 1, 215, 94, 248, 55, 7, 6, + 1, 223, 50, 75, 7, 6, 1, 221, 196, 7, 6, 1, 204, 75, 7, 6, 1, 245, 8, 2, + 103, 7, 4, 1, 245, 8, 2, 103, 7, 6, 1, 243, 204, 2, 103, 7, 6, 1, 243, + 108, 7, 4, 1, 240, 202, 7, 6, 1, 235, 186, 7, 6, 1, 240, 155, 2, 91, 7, + 6, 1, 235, 25, 2, 103, 7, 4, 1, 235, 25, 2, 103, 7, 4, 1, 233, 150, 2, + 130, 7, 4, 1, 233, 101, 2, 91, 7, 6, 1, 215, 94, 193, 7, 6, 1, 230, 27, + 2, 43, 103, 7, 4, 1, 230, 27, 2, 199, 44, 233, 37, 7, 6, 1, 144, 2, 230, + 225, 183, 7, 6, 1, 144, 2, 240, 249, 7, 4, 1, 144, 2, 240, 249, 7, 6, 1, + 226, 220, 7, 4, 1, 226, 220, 7, 6, 1, 226, 107, 2, 103, 7, 4, 1, 226, + 107, 2, 103, 7, 1, 210, 214, 7, 6, 1, 138, 105, 7, 4, 1, 138, 105, 7, 6, + 1, 245, 76, 7, 1, 223, 50, 245, 77, 232, 124, 7, 4, 1, 217, 154, 2, 226, + 67, 103, 7, 6, 1, 217, 154, 2, 103, 7, 4, 1, 217, 154, 2, 103, 7, 6, 1, + 217, 154, 2, 223, 56, 103, 7, 6, 1, 104, 2, 240, 249, 7, 4, 1, 104, 2, + 240, 249, 7, 6, 1, 214, 157, 7, 6, 1, 214, 106, 2, 103, 7, 6, 1, 211, + 118, 2, 103, 7, 4, 1, 211, 118, 2, 103, 7, 6, 1, 210, 160, 2, 91, 7, 4, + 1, 210, 160, 2, 91, 7, 6, 1, 245, 9, 7, 6, 1, 245, 10, 223, 49, 7, 4, 1, + 245, 10, 223, 49, 7, 4, 1, 245, 10, 2, 217, 78, 7, 1, 113, 2, 91, 7, 6, + 1, 138, 189, 7, 4, 1, 138, 189, 7, 1, 235, 194, 242, 181, 218, 131, 2, + 91, 7, 1, 211, 181, 7, 1, 248, 48, 250, 12, 7, 1, 233, 78, 250, 12, 7, 1, + 254, 138, 250, 12, 7, 1, 223, 56, 250, 12, 7, 6, 1, 246, 41, 2, 250, 235, + 7, 6, 1, 249, 62, 2, 4, 1, 210, 160, 2, 250, 235, 7, 4, 1, 246, 41, 2, + 250, 235, 7, 6, 1, 232, 189, 7, 6, 1, 233, 150, 2, 4, 1, 235, 145, 7, 4, + 1, 232, 189, 7, 6, 1, 228, 187, 7, 6, 1, 230, 27, 2, 4, 1, 235, 145, 7, + 4, 1, 228, 187, 7, 6, 1, 115, 2, 250, 235, 7, 4, 1, 115, 2, 250, 235, 7, + 6, 1, 240, 155, 2, 250, 235, 7, 4, 1, 240, 155, 2, 250, 235, 7, 6, 1, + 144, 2, 250, 235, 7, 4, 1, 144, 2, 250, 235, 7, 6, 1, 104, 2, 250, 235, + 7, 4, 1, 104, 2, 250, 235, 7, 6, 1, 104, 2, 248, 3, 22, 231, 233, 7, 4, + 1, 104, 2, 248, 3, 22, 231, 233, 7, 6, 1, 104, 2, 248, 3, 22, 142, 7, 4, + 1, 104, 2, 248, 3, 22, 142, 7, 6, 1, 104, 2, 248, 3, 22, 250, 235, 7, 4, + 1, 104, 2, 248, 3, 22, 250, 235, 7, 6, 1, 104, 2, 248, 3, 22, 242, 137, + 7, 4, 1, 104, 2, 248, 3, 22, 242, 137, 7, 4, 1, 215, 94, 75, 7, 6, 1, + 115, 2, 248, 3, 22, 231, 233, 7, 4, 1, 115, 2, 248, 3, 22, 231, 233, 7, + 6, 1, 115, 2, 59, 77, 22, 231, 233, 7, 4, 1, 115, 2, 59, 77, 22, 231, + 233, 7, 6, 1, 254, 245, 2, 231, 233, 7, 4, 1, 254, 245, 2, 231, 233, 7, + 6, 1, 243, 204, 2, 91, 7, 4, 1, 243, 204, 2, 91, 7, 6, 1, 243, 204, 2, + 250, 235, 7, 4, 1, 243, 204, 2, 250, 235, 7, 6, 1, 235, 25, 2, 250, 235, + 7, 4, 1, 235, 25, 2, 250, 235, 7, 6, 1, 144, 2, 226, 225, 7, 4, 1, 144, + 2, 226, 225, 7, 6, 1, 144, 2, 226, 226, 22, 231, 233, 7, 4, 1, 144, 2, + 226, 226, 22, 231, 233, 7, 6, 1, 245, 10, 2, 250, 235, 7, 4, 1, 245, 10, + 2, 250, 235, 7, 4, 1, 235, 146, 2, 250, 235, 7, 6, 1, 246, 40, 7, 6, 1, + 249, 62, 2, 4, 1, 210, 159, 7, 4, 1, 246, 40, 7, 6, 1, 243, 204, 2, 142, + 7, 4, 1, 243, 204, 2, 142, 7, 6, 1, 240, 200, 7, 6, 1, 211, 181, 7, 6, 1, + 230, 27, 2, 242, 137, 7, 4, 1, 230, 27, 2, 242, 137, 7, 6, 1, 115, 2, + 222, 235, 77, 22, 142, 7, 4, 1, 115, 2, 222, 235, 77, 22, 142, 7, 6, 1, + 254, 245, 2, 142, 7, 4, 1, 254, 245, 2, 142, 7, 6, 1, 144, 2, 218, 104, + 22, 142, 7, 4, 1, 144, 2, 218, 104, 22, 142, 7, 6, 1, 115, 2, 52, 242, + 137, 7, 4, 1, 115, 2, 52, 242, 137, 7, 6, 1, 115, 2, 235, 194, 251, 147, + 7, 4, 1, 115, 2, 235, 194, 251, 147, 7, 6, 1, 160, 2, 52, 242, 137, 7, 4, + 1, 160, 2, 52, 242, 137, 7, 6, 1, 160, 2, 235, 194, 251, 147, 7, 4, 1, + 160, 2, 235, 194, 251, 147, 7, 6, 1, 240, 155, 2, 52, 242, 137, 7, 4, 1, + 240, 155, 2, 52, 242, 137, 7, 6, 1, 240, 155, 2, 235, 194, 251, 147, 7, + 4, 1, 240, 155, 2, 235, 194, 251, 147, 7, 6, 1, 144, 2, 52, 242, 137, 7, + 4, 1, 144, 2, 52, 242, 137, 7, 6, 1, 144, 2, 235, 194, 251, 147, 7, 4, 1, + 144, 2, 235, 194, 251, 147, 7, 6, 1, 223, 225, 2, 52, 242, 137, 7, 4, 1, + 223, 225, 2, 52, 242, 137, 7, 6, 1, 223, 225, 2, 235, 194, 251, 147, 7, + 4, 1, 223, 225, 2, 235, 194, 251, 147, 7, 6, 1, 104, 2, 52, 242, 137, 7, + 4, 1, 104, 2, 52, 242, 137, 7, 6, 1, 104, 2, 235, 194, 251, 147, 7, 4, 1, + 104, 2, 235, 194, 251, 147, 7, 6, 1, 222, 93, 2, 249, 221, 51, 7, 4, 1, + 222, 93, 2, 249, 221, 51, 7, 6, 1, 217, 154, 2, 249, 221, 51, 7, 4, 1, + 217, 154, 2, 249, 221, 51, 7, 6, 1, 210, 231, 7, 4, 1, 210, 231, 7, 6, 1, + 242, 62, 2, 250, 235, 7, 4, 1, 242, 62, 2, 250, 235, 7, 6, 1, 230, 27, 2, + 199, 44, 233, 37, 7, 4, 1, 249, 62, 2, 249, 101, 7, 6, 1, 226, 135, 7, 4, + 1, 226, 135, 7, 6, 1, 210, 160, 2, 103, 7, 4, 1, 210, 160, 2, 103, 7, 6, + 1, 115, 2, 59, 48, 7, 4, 1, 115, 2, 59, 48, 7, 6, 1, 160, 2, 250, 184, 7, + 4, 1, 160, 2, 250, 184, 7, 6, 1, 144, 2, 248, 3, 22, 231, 233, 7, 4, 1, + 144, 2, 248, 3, 22, 231, 233, 7, 6, 1, 144, 2, 216, 90, 22, 231, 233, 7, + 4, 1, 144, 2, 216, 90, 22, 231, 233, 7, 6, 1, 144, 2, 59, 48, 7, 4, 1, + 144, 2, 59, 48, 7, 6, 1, 144, 2, 59, 77, 22, 231, 233, 7, 4, 1, 144, 2, + 59, 77, 22, 231, 233, 7, 6, 1, 211, 118, 2, 231, 233, 7, 4, 1, 211, 118, + 2, 231, 233, 7, 4, 1, 233, 150, 2, 249, 101, 7, 4, 1, 230, 27, 2, 249, + 101, 7, 4, 1, 217, 154, 2, 249, 101, 7, 4, 1, 247, 120, 235, 145, 7, 4, + 1, 248, 144, 247, 221, 7, 4, 1, 224, 32, 247, 221, 7, 6, 1, 115, 2, 91, + 7, 6, 1, 251, 68, 2, 91, 7, 4, 1, 251, 68, 2, 91, 7, 6, 1, 233, 150, 2, + 130, 7, 6, 1, 217, 154, 2, 248, 0, 91, 7, 4, 1, 222, 93, 2, 217, 251, + 217, 78, 7, 4, 1, 210, 160, 2, 217, 251, 217, 78, 7, 6, 1, 242, 181, 218, + 130, 7, 4, 1, 242, 181, 218, 130, 7, 6, 1, 57, 2, 91, 7, 6, 1, 104, 130, + 7, 6, 1, 215, 94, 214, 105, 7, 6, 1, 160, 2, 91, 7, 4, 1, 160, 2, 91, 7, + 6, 1, 235, 146, 2, 91, 7, 4, 1, 235, 146, 2, 91, 7, 6, 1, 4, 224, 98, 2, + 241, 53, 217, 78, 7, 4, 1, 224, 98, 2, 241, 53, 217, 78, 7, 6, 1, 223, + 225, 2, 91, 7, 4, 1, 223, 225, 2, 91, 7, 6, 1, 211, 118, 2, 91, 7, 4, 1, + 211, 118, 2, 91, 7, 4, 1, 215, 94, 61, 7, 4, 1, 254, 144, 7, 4, 1, 215, + 94, 254, 144, 7, 4, 1, 57, 2, 103, 7, 4, 1, 204, 76, 7, 4, 1, 251, 68, 2, + 249, 101, 7, 4, 1, 249, 62, 2, 217, 78, 7, 4, 1, 249, 62, 2, 103, 7, 4, + 1, 223, 50, 75, 7, 4, 1, 221, 196, 7, 4, 1, 221, 197, 2, 103, 7, 4, 1, + 204, 75, 7, 4, 1, 223, 50, 204, 75, 7, 4, 1, 223, 50, 204, 160, 2, 103, + 7, 4, 1, 250, 1, 223, 50, 204, 75, 7, 4, 1, 247, 120, 235, 146, 2, 91, 7, + 4, 1, 243, 204, 2, 103, 7, 4, 1, 119, 243, 203, 7, 1, 4, 6, 243, 203, 7, + 4, 1, 243, 108, 7, 4, 1, 223, 152, 240, 249, 7, 4, 1, 215, 94, 242, 61, + 7, 4, 1, 242, 62, 2, 103, 7, 4, 1, 241, 209, 2, 103, 7, 4, 1, 240, 155, + 2, 91, 7, 4, 1, 235, 186, 7, 1, 4, 6, 73, 7, 4, 1, 233, 150, 2, 230, 225, + 183, 7, 4, 1, 233, 150, 2, 252, 42, 7, 4, 1, 233, 150, 2, 223, 56, 103, + 7, 4, 1, 233, 2, 7, 4, 1, 215, 94, 193, 7, 4, 1, 215, 94, 232, 51, 2, + 199, 233, 37, 7, 4, 1, 232, 51, 2, 103, 7, 4, 1, 230, 27, 2, 43, 103, 7, + 4, 1, 230, 27, 2, 223, 56, 103, 7, 1, 4, 6, 230, 26, 7, 4, 1, 252, 135, + 76, 7, 1, 4, 6, 226, 235, 7, 4, 1, 250, 1, 226, 202, 7, 4, 1, 225, 134, + 7, 4, 1, 215, 94, 153, 7, 4, 1, 215, 94, 223, 225, 2, 199, 233, 37, 7, 4, + 1, 215, 94, 223, 225, 2, 103, 7, 4, 1, 223, 225, 2, 199, 233, 37, 7, 4, + 1, 223, 225, 2, 217, 78, 7, 4, 1, 223, 225, 2, 244, 88, 7, 4, 1, 223, 50, + 223, 225, 2, 244, 88, 7, 1, 4, 6, 153, 7, 1, 4, 6, 235, 194, 153, 7, 4, + 1, 222, 93, 2, 103, 7, 4, 1, 245, 76, 7, 4, 1, 247, 120, 235, 146, 2, + 218, 104, 22, 103, 7, 4, 1, 218, 232, 223, 50, 245, 76, 7, 4, 1, 245, 77, + 2, 249, 101, 7, 4, 1, 215, 94, 217, 153, 7, 4, 1, 217, 154, 2, 223, 56, + 103, 7, 4, 1, 104, 130, 7, 4, 1, 214, 157, 7, 4, 1, 214, 106, 2, 103, 7, + 4, 1, 215, 94, 214, 105, 7, 4, 1, 215, 94, 212, 98, 7, 4, 1, 215, 94, + 211, 117, 7, 1, 4, 6, 211, 117, 7, 4, 1, 210, 160, 2, 223, 56, 103, 7, 4, + 1, 210, 160, 2, 249, 101, 7, 4, 1, 245, 9, 7, 4, 1, 245, 10, 2, 249, 101, + 7, 1, 242, 181, 218, 130, 7, 1, 225, 140, 213, 135, 243, 250, 7, 1, 235, + 194, 242, 181, 218, 130, 7, 1, 218, 111, 251, 67, 7, 1, 251, 247, 250, + 12, 7, 1, 4, 6, 253, 159, 7, 4, 1, 250, 1, 204, 75, 7, 1, 4, 6, 243, 204, + 2, 103, 7, 1, 4, 6, 242, 61, 7, 4, 1, 235, 146, 2, 249, 128, 7, 4, 1, + 215, 94, 235, 24, 7, 1, 4, 6, 156, 7, 4, 1, 224, 98, 2, 103, 7, 1, 242, + 181, 218, 131, 2, 91, 7, 1, 223, 50, 242, 181, 218, 131, 2, 91, 7, 4, 1, + 246, 41, 247, 221, 7, 4, 1, 248, 27, 247, 221, 7, 4, 1, 246, 41, 247, + 222, 2, 249, 101, 7, 4, 1, 215, 186, 247, 221, 7, 4, 1, 216, 236, 247, + 221, 7, 4, 1, 217, 30, 247, 222, 2, 249, 101, 7, 4, 1, 244, 135, 247, + 221, 7, 4, 1, 232, 101, 247, 221, 7, 4, 1, 232, 52, 247, 221, 7, 1, 251, + 247, 225, 182, 7, 1, 251, 255, 225, 182, 7, 4, 1, 215, 94, 242, 62, 2, + 244, 88, 7, 4, 1, 215, 94, 242, 62, 2, 244, 89, 22, 217, 78, 58, 1, 4, + 242, 61, 58, 1, 4, 242, 62, 2, 103, 58, 1, 4, 235, 145, 58, 1, 4, 153, + 58, 1, 4, 215, 94, 153, 58, 1, 4, 215, 94, 223, 225, 2, 103, 58, 1, 4, 6, + 235, 194, 153, 58, 1, 4, 212, 98, 58, 1, 4, 211, 117, 58, 1, 224, 191, + 58, 1, 52, 224, 191, 58, 1, 215, 94, 249, 220, 58, 1, 254, 58, 58, 1, + 223, 50, 249, 220, 58, 1, 44, 163, 222, 234, 58, 1, 43, 163, 222, 234, + 58, 1, 242, 181, 218, 130, 58, 1, 223, 50, 242, 181, 218, 130, 58, 1, 43, + 253, 250, 58, 1, 44, 253, 250, 58, 1, 120, 253, 250, 58, 1, 124, 253, + 250, 58, 1, 250, 32, 255, 15, 250, 235, 58, 1, 67, 232, 214, 58, 1, 231, + 233, 58, 1, 255, 4, 255, 15, 58, 1, 242, 138, 255, 15, 58, 1, 121, 67, + 232, 214, 58, 1, 121, 231, 233, 58, 1, 121, 242, 138, 255, 15, 58, 1, + 121, 255, 4, 255, 15, 58, 1, 215, 223, 249, 227, 58, 1, 163, 215, 223, + 249, 227, 58, 1, 250, 174, 44, 163, 222, 234, 58, 1, 250, 174, 43, 163, + 222, 234, 58, 1, 120, 217, 88, 58, 1, 124, 217, 88, 58, 1, 96, 50, 58, 1, + 230, 183, 50, 251, 147, 59, 48, 222, 235, 48, 226, 225, 4, 183, 52, 255, + 4, 255, 15, 58, 1, 223, 37, 103, 58, 1, 249, 132, 255, 15, 58, 1, 4, 243, + 108, 58, 1, 4, 156, 58, 1, 4, 222, 92, 58, 1, 4, 211, 178, 58, 1, 4, 223, + 50, 242, 181, 218, 130, 58, 1, 245, 21, 138, 130, 58, 1, 125, 138, 130, + 58, 1, 230, 226, 138, 130, 58, 1, 121, 138, 130, 58, 1, 245, 20, 138, + 130, 58, 1, 210, 254, 248, 45, 138, 78, 58, 1, 211, 70, 248, 45, 138, 78, + 58, 1, 213, 133, 58, 1, 214, 186, 58, 1, 52, 254, 58, 58, 1, 121, 124, + 253, 250, 58, 1, 121, 120, 253, 250, 58, 1, 121, 43, 253, 250, 58, 1, + 121, 44, 253, 250, 58, 1, 121, 222, 234, 58, 1, 230, 225, 242, 138, 255, + 15, 58, 1, 230, 225, 52, 242, 138, 255, 15, 58, 1, 230, 225, 52, 255, 4, + 255, 15, 58, 1, 121, 183, 58, 1, 223, 158, 249, 227, 58, 1, 252, 59, 125, + 216, 31, 58, 1, 245, 144, 125, 216, 31, 58, 1, 252, 59, 121, 216, 31, 58, + 1, 245, 144, 121, 216, 31, 58, 1, 220, 55, 58, 1, 204, 220, 55, 58, 1, + 121, 43, 74, 38, 242, 138, 255, 15, 38, 255, 4, 255, 15, 38, 250, 32, + 255, 15, 38, 183, 38, 231, 233, 38, 226, 120, 38, 251, 147, 38, 59, 48, + 38, 248, 2, 38, 241, 53, 48, 38, 222, 235, 48, 38, 52, 255, 4, 255, 15, + 38, 250, 235, 38, 67, 232, 215, 48, 38, 52, 67, 232, 215, 48, 38, 52, + 242, 138, 255, 15, 38, 251, 0, 38, 235, 194, 251, 147, 38, 215, 94, 249, + 221, 48, 38, 249, 221, 48, 38, 223, 50, 249, 221, 48, 38, 249, 221, 77, + 222, 252, 38, 242, 138, 255, 16, 51, 38, 255, 4, 255, 16, 51, 38, 43, + 217, 89, 51, 38, 44, 217, 89, 51, 38, 43, 254, 111, 48, 38, 240, 249, 38, + 43, 163, 222, 235, 51, 38, 120, 217, 89, 51, 38, 124, 217, 89, 51, 38, + 96, 5, 51, 38, 230, 183, 5, 51, 38, 226, 65, 241, 53, 51, 38, 223, 56, + 241, 53, 51, 38, 59, 51, 38, 248, 3, 51, 38, 222, 235, 51, 38, 249, 221, + 51, 38, 250, 184, 38, 226, 225, 38, 67, 232, 215, 51, 38, 251, 141, 51, + 38, 235, 194, 52, 254, 25, 51, 38, 250, 236, 51, 38, 250, 32, 255, 16, + 51, 38, 251, 148, 51, 38, 235, 194, 251, 148, 51, 38, 216, 90, 51, 38, + 231, 234, 51, 38, 121, 232, 214, 38, 52, 121, 232, 214, 38, 216, 90, 226, + 121, 38, 219, 252, 218, 104, 226, 121, 38, 199, 218, 104, 226, 121, 38, + 219, 252, 219, 48, 226, 121, 38, 199, 219, 48, 226, 121, 38, 44, 163, + 222, 235, 51, 38, 235, 194, 251, 141, 51, 38, 42, 51, 38, 221, 181, 51, + 38, 211, 179, 48, 38, 67, 183, 38, 52, 226, 120, 38, 242, 138, 138, 78, + 38, 255, 4, 138, 78, 38, 26, 225, 176, 38, 26, 234, 3, 38, 26, 247, 253, + 216, 19, 38, 26, 210, 219, 38, 251, 141, 48, 38, 245, 99, 5, 51, 38, 52, + 67, 232, 215, 51, 38, 43, 254, 111, 51, 38, 228, 53, 216, 90, 48, 38, + 241, 59, 48, 38, 254, 149, 128, 216, 43, 48, 38, 43, 44, 80, 51, 38, 214, + 153, 80, 51, 38, 242, 143, 235, 64, 38, 44, 253, 251, 48, 38, 43, 163, + 222, 235, 48, 38, 244, 132, 38, 211, 179, 51, 38, 43, 253, 251, 51, 38, + 44, 253, 251, 51, 38, 44, 253, 251, 22, 120, 253, 251, 51, 38, 44, 163, + 222, 235, 48, 38, 59, 77, 222, 252, 38, 253, 218, 51, 38, 52, 222, 235, + 51, 38, 210, 35, 48, 38, 52, 251, 148, 51, 38, 52, 251, 147, 38, 52, 231, + 233, 38, 52, 231, 234, 51, 38, 52, 183, 38, 52, 235, 194, 251, 147, 38, + 52, 97, 80, 51, 38, 7, 4, 1, 61, 38, 7, 4, 1, 75, 38, 7, 4, 1, 73, 38, 7, + 4, 1, 76, 38, 7, 4, 1, 70, 38, 7, 4, 1, 251, 67, 38, 7, 4, 1, 249, 61, + 38, 7, 4, 1, 242, 61, 38, 7, 4, 1, 193, 38, 7, 4, 1, 153, 38, 7, 4, 1, + 217, 153, 38, 7, 4, 1, 214, 105, 38, 7, 4, 1, 211, 178, 26, 6, 1, 241, + 197, 26, 4, 1, 241, 197, 26, 6, 1, 254, 24, 221, 247, 26, 4, 1, 254, 24, + 221, 247, 26, 227, 199, 50, 26, 232, 109, 227, 199, 50, 26, 6, 1, 226, + 52, 247, 228, 26, 4, 1, 226, 52, 247, 228, 26, 210, 219, 26, 4, 223, 50, + 232, 84, 219, 179, 87, 26, 4, 246, 119, 232, 84, 219, 179, 87, 26, 4, + 223, 50, 246, 119, 232, 84, 219, 179, 87, 26, 224, 14, 78, 26, 216, 19, + 26, 247, 253, 216, 19, 26, 6, 1, 254, 145, 2, 216, 19, 26, 254, 98, 217, + 3, 26, 6, 1, 245, 102, 2, 216, 19, 26, 6, 1, 245, 65, 2, 216, 19, 26, 6, + 1, 235, 187, 2, 216, 19, 26, 6, 1, 226, 201, 2, 216, 19, 26, 6, 1, 214, + 158, 2, 216, 19, 26, 6, 1, 226, 203, 2, 216, 19, 26, 4, 1, 235, 187, 2, + 247, 253, 22, 216, 19, 26, 6, 1, 254, 144, 26, 6, 1, 252, 27, 26, 6, 1, + 243, 108, 26, 6, 1, 248, 55, 26, 6, 1, 245, 101, 26, 6, 1, 210, 85, 26, + 6, 1, 245, 64, 26, 6, 1, 216, 180, 26, 6, 1, 235, 186, 26, 6, 1, 234, + 223, 26, 6, 1, 233, 99, 26, 6, 1, 230, 103, 26, 6, 1, 227, 238, 26, 6, 1, + 211, 157, 26, 6, 1, 226, 200, 26, 6, 1, 225, 109, 26, 6, 1, 223, 38, 26, + 6, 1, 219, 178, 26, 6, 1, 217, 42, 26, 6, 1, 214, 157, 26, 6, 1, 225, + 134, 26, 6, 1, 250, 111, 26, 6, 1, 224, 162, 26, 6, 1, 226, 202, 26, 6, + 1, 235, 187, 2, 247, 252, 26, 6, 1, 214, 158, 2, 247, 252, 26, 4, 1, 254, + 145, 2, 216, 19, 26, 4, 1, 245, 102, 2, 216, 19, 26, 4, 1, 245, 65, 2, + 216, 19, 26, 4, 1, 235, 187, 2, 216, 19, 26, 4, 1, 214, 158, 2, 247, 253, + 22, 216, 19, 26, 4, 1, 254, 144, 26, 4, 1, 252, 27, 26, 4, 1, 243, 108, + 26, 4, 1, 248, 55, 26, 4, 1, 245, 101, 26, 4, 1, 210, 85, 26, 4, 1, 245, + 64, 26, 4, 1, 216, 180, 26, 4, 1, 235, 186, 26, 4, 1, 234, 223, 26, 4, 1, + 233, 99, 26, 4, 1, 230, 103, 26, 4, 1, 227, 238, 26, 4, 1, 211, 157, 26, + 4, 1, 226, 200, 26, 4, 1, 225, 109, 26, 4, 1, 223, 38, 26, 4, 1, 40, 219, + 178, 26, 4, 1, 219, 178, 26, 4, 1, 217, 42, 26, 4, 1, 214, 157, 26, 4, 1, + 225, 134, 26, 4, 1, 250, 111, 26, 4, 1, 224, 162, 26, 4, 1, 226, 202, 26, + 4, 1, 235, 187, 2, 247, 252, 26, 4, 1, 214, 158, 2, 247, 252, 26, 4, 1, + 226, 201, 2, 216, 19, 26, 4, 1, 214, 158, 2, 216, 19, 26, 4, 1, 226, 203, + 2, 216, 19, 26, 6, 234, 248, 87, 26, 252, 28, 87, 26, 216, 181, 87, 26, + 214, 158, 2, 241, 53, 87, 26, 214, 158, 2, 255, 4, 22, 241, 53, 87, 26, + 214, 158, 2, 248, 3, 22, 241, 53, 87, 26, 225, 135, 87, 26, 225, 110, 87, + 26, 234, 248, 87, 26, 1, 254, 24, 234, 7, 26, 4, 1, 254, 24, 234, 7, 26, + 1, 218, 138, 26, 4, 1, 218, 138, 26, 1, 247, 228, 26, 4, 1, 247, 228, 26, + 1, 234, 7, 26, 4, 1, 234, 7, 26, 1, 221, 247, 26, 4, 1, 221, 247, 81, 6, + 1, 220, 56, 81, 4, 1, 220, 56, 81, 6, 1, 244, 141, 81, 4, 1, 244, 141, + 81, 6, 1, 234, 118, 81, 4, 1, 234, 118, 81, 6, 1, 241, 46, 81, 4, 1, 241, + 46, 81, 6, 1, 243, 103, 81, 4, 1, 243, 103, 81, 6, 1, 220, 23, 81, 4, 1, + 220, 23, 81, 6, 1, 248, 70, 81, 4, 1, 248, 70, 26, 234, 224, 87, 26, 223, + 39, 87, 26, 232, 84, 219, 179, 87, 26, 1, 210, 224, 26, 6, 216, 181, 87, + 26, 232, 84, 245, 102, 87, 26, 223, 50, 232, 84, 245, 102, 87, 26, 6, 1, + 220, 8, 26, 4, 1, 220, 8, 26, 6, 232, 84, 219, 179, 87, 26, 6, 1, 221, + 244, 26, 4, 1, 221, 244, 26, 223, 39, 2, 218, 104, 87, 26, 6, 223, 50, + 232, 84, 219, 179, 87, 26, 6, 246, 119, 232, 84, 219, 179, 87, 26, 6, + 223, 50, 246, 119, 232, 84, 219, 179, 87, 33, 6, 1, 236, 62, 2, 242, 137, + 33, 6, 1, 235, 190, 33, 6, 1, 247, 163, 33, 6, 1, 242, 188, 33, 6, 1, + 214, 202, 236, 61, 33, 6, 1, 246, 37, 33, 6, 1, 251, 77, 73, 33, 6, 1, + 211, 8, 33, 6, 1, 235, 127, 33, 6, 1, 232, 188, 33, 6, 1, 228, 179, 33, + 6, 1, 215, 175, 33, 6, 1, 234, 49, 33, 6, 1, 240, 155, 2, 242, 137, 33, + 6, 1, 219, 252, 70, 33, 6, 1, 246, 33, 33, 6, 1, 61, 33, 6, 1, 252, 76, + 33, 6, 1, 213, 255, 33, 6, 1, 242, 237, 33, 6, 1, 248, 91, 33, 6, 1, 236, + 61, 33, 6, 1, 210, 74, 33, 6, 1, 210, 94, 33, 6, 1, 73, 33, 6, 1, 219, + 252, 73, 33, 6, 1, 176, 33, 6, 1, 245, 175, 33, 6, 1, 245, 160, 33, 6, 1, + 245, 151, 33, 6, 1, 76, 33, 6, 1, 225, 222, 33, 6, 1, 245, 93, 33, 6, 1, + 245, 83, 33, 6, 1, 217, 23, 33, 6, 1, 70, 33, 6, 1, 245, 203, 33, 6, 1, + 162, 33, 6, 1, 215, 179, 33, 6, 1, 250, 132, 33, 6, 1, 220, 103, 33, 6, + 1, 220, 66, 33, 6, 1, 242, 4, 50, 33, 6, 1, 211, 27, 33, 6, 1, 219, 53, + 50, 33, 6, 1, 75, 33, 6, 1, 210, 212, 33, 6, 1, 191, 33, 4, 1, 61, 33, 4, + 1, 252, 76, 33, 4, 1, 213, 255, 33, 4, 1, 242, 237, 33, 4, 1, 248, 91, + 33, 4, 1, 236, 61, 33, 4, 1, 210, 74, 33, 4, 1, 210, 94, 33, 4, 1, 73, + 33, 4, 1, 219, 252, 73, 33, 4, 1, 176, 33, 4, 1, 245, 175, 33, 4, 1, 245, + 160, 33, 4, 1, 245, 151, 33, 4, 1, 76, 33, 4, 1, 225, 222, 33, 4, 1, 245, + 93, 33, 4, 1, 245, 83, 33, 4, 1, 217, 23, 33, 4, 1, 70, 33, 4, 1, 245, + 203, 33, 4, 1, 162, 33, 4, 1, 215, 179, 33, 4, 1, 250, 132, 33, 4, 1, + 220, 103, 33, 4, 1, 220, 66, 33, 4, 1, 242, 4, 50, 33, 4, 1, 211, 27, 33, + 4, 1, 219, 53, 50, 33, 4, 1, 75, 33, 4, 1, 210, 212, 33, 4, 1, 191, 33, + 4, 1, 236, 62, 2, 242, 137, 33, 4, 1, 235, 190, 33, 4, 1, 247, 163, 33, + 4, 1, 242, 188, 33, 4, 1, 214, 202, 236, 61, 33, 4, 1, 246, 37, 33, 4, 1, + 251, 77, 73, 33, 4, 1, 211, 8, 33, 4, 1, 235, 127, 33, 4, 1, 232, 188, + 33, 4, 1, 228, 179, 33, 4, 1, 215, 175, 33, 4, 1, 234, 49, 33, 4, 1, 240, + 155, 2, 242, 137, 33, 4, 1, 219, 252, 70, 33, 4, 1, 246, 33, 33, 6, 1, + 226, 202, 33, 4, 1, 226, 202, 33, 6, 1, 211, 59, 33, 4, 1, 211, 59, 33, + 6, 1, 235, 184, 75, 33, 4, 1, 235, 184, 75, 33, 6, 1, 232, 193, 210, 183, + 33, 4, 1, 232, 193, 210, 183, 33, 6, 1, 235, 184, 232, 193, 210, 183, 33, + 4, 1, 235, 184, 232, 193, 210, 183, 33, 6, 1, 251, 250, 210, 183, 33, 4, + 1, 251, 250, 210, 183, 33, 6, 1, 235, 184, 251, 250, 210, 183, 33, 4, 1, + 235, 184, 251, 250, 210, 183, 33, 6, 1, 233, 234, 33, 4, 1, 233, 234, 33, + 6, 1, 224, 162, 33, 4, 1, 224, 162, 33, 6, 1, 244, 83, 33, 4, 1, 244, 83, + 33, 6, 1, 235, 147, 33, 4, 1, 235, 147, 33, 6, 1, 235, 148, 2, 52, 242, + 138, 255, 15, 33, 4, 1, 235, 148, 2, 52, 242, 138, 255, 15, 33, 6, 1, + 214, 205, 33, 4, 1, 214, 205, 33, 6, 1, 222, 186, 226, 202, 33, 4, 1, + 222, 186, 226, 202, 33, 6, 1, 226, 203, 2, 216, 66, 33, 4, 1, 226, 203, + 2, 216, 66, 33, 6, 1, 226, 141, 33, 4, 1, 226, 141, 33, 6, 1, 234, 7, 33, + 4, 1, 234, 7, 33, 216, 147, 50, 38, 33, 216, 66, 38, 33, 226, 66, 38, 33, + 248, 155, 225, 19, 38, 33, 224, 156, 225, 19, 38, 33, 225, 4, 38, 33, + 240, 212, 216, 147, 50, 38, 33, 230, 192, 50, 33, 6, 1, 219, 252, 240, + 155, 2, 217, 78, 33, 4, 1, 219, 252, 240, 155, 2, 217, 78, 33, 6, 1, 220, + 147, 50, 33, 4, 1, 220, 147, 50, 33, 6, 1, 245, 94, 2, 216, 115, 33, 4, + 1, 245, 94, 2, 216, 115, 33, 6, 1, 242, 238, 2, 214, 156, 33, 4, 1, 242, + 238, 2, 214, 156, 33, 6, 1, 242, 238, 2, 91, 33, 4, 1, 242, 238, 2, 91, + 33, 6, 1, 242, 238, 2, 230, 225, 103, 33, 4, 1, 242, 238, 2, 230, 225, + 103, 33, 6, 1, 210, 75, 2, 248, 40, 33, 4, 1, 210, 75, 2, 248, 40, 33, 6, + 1, 210, 95, 2, 248, 40, 33, 4, 1, 210, 95, 2, 248, 40, 33, 6, 1, 235, 14, + 2, 248, 40, 33, 4, 1, 235, 14, 2, 248, 40, 33, 6, 1, 235, 14, 2, 67, 91, + 33, 4, 1, 235, 14, 2, 67, 91, 33, 6, 1, 235, 14, 2, 91, 33, 4, 1, 235, + 14, 2, 91, 33, 6, 1, 252, 125, 176, 33, 4, 1, 252, 125, 176, 33, 6, 1, + 245, 152, 2, 248, 40, 33, 4, 1, 245, 152, 2, 248, 40, 33, 6, 27, 245, + 152, 242, 237, 33, 4, 27, 245, 152, 242, 237, 33, 6, 1, 225, 223, 2, 230, + 225, 103, 33, 4, 1, 225, 223, 2, 230, 225, 103, 33, 6, 1, 255, 21, 162, + 33, 4, 1, 255, 21, 162, 33, 6, 1, 245, 84, 2, 248, 40, 33, 4, 1, 245, 84, + 2, 248, 40, 33, 6, 1, 217, 24, 2, 248, 40, 33, 4, 1, 217, 24, 2, 248, 40, + 33, 6, 1, 218, 122, 70, 33, 4, 1, 218, 122, 70, 33, 6, 1, 218, 122, 104, + 2, 91, 33, 4, 1, 218, 122, 104, 2, 91, 33, 6, 1, 242, 50, 2, 248, 40, 33, + 4, 1, 242, 50, 2, 248, 40, 33, 6, 27, 217, 24, 215, 179, 33, 4, 27, 217, + 24, 215, 179, 33, 6, 1, 250, 133, 2, 248, 40, 33, 4, 1, 250, 133, 2, 248, + 40, 33, 6, 1, 250, 133, 2, 67, 91, 33, 4, 1, 250, 133, 2, 67, 91, 33, 6, + 1, 220, 34, 33, 4, 1, 220, 34, 33, 6, 1, 255, 21, 250, 132, 33, 4, 1, + 255, 21, 250, 132, 33, 6, 1, 255, 21, 250, 133, 2, 248, 40, 33, 4, 1, + 255, 21, 250, 133, 2, 248, 40, 33, 1, 226, 59, 33, 6, 1, 210, 75, 2, 251, + 147, 33, 4, 1, 210, 75, 2, 251, 147, 33, 6, 1, 235, 14, 2, 103, 33, 4, 1, + 235, 14, 2, 103, 33, 6, 1, 245, 176, 2, 217, 78, 33, 4, 1, 245, 176, 2, + 217, 78, 33, 6, 1, 245, 152, 2, 103, 33, 4, 1, 245, 152, 2, 103, 33, 6, + 1, 245, 152, 2, 217, 78, 33, 4, 1, 245, 152, 2, 217, 78, 33, 6, 1, 234, + 128, 250, 132, 33, 4, 1, 234, 128, 250, 132, 33, 6, 1, 245, 161, 2, 217, + 78, 33, 4, 1, 245, 161, 2, 217, 78, 33, 4, 1, 226, 59, 33, 6, 1, 115, 2, + 251, 147, 33, 4, 1, 115, 2, 251, 147, 33, 6, 1, 115, 2, 248, 2, 33, 4, 1, + 115, 2, 248, 2, 33, 6, 27, 115, 236, 61, 33, 4, 27, 115, 236, 61, 33, 6, + 1, 236, 62, 2, 251, 147, 33, 4, 1, 236, 62, 2, 251, 147, 33, 6, 1, 221, + 196, 33, 4, 1, 221, 196, 33, 6, 1, 221, 197, 2, 248, 2, 33, 4, 1, 221, + 197, 2, 248, 2, 33, 6, 1, 210, 75, 2, 248, 2, 33, 4, 1, 210, 75, 2, 248, + 2, 33, 6, 1, 210, 95, 2, 248, 2, 33, 4, 1, 210, 95, 2, 248, 2, 33, 6, 1, + 255, 21, 246, 37, 33, 4, 1, 255, 21, 246, 37, 33, 6, 1, 240, 155, 2, 231, + 233, 33, 4, 1, 240, 155, 2, 231, 233, 33, 6, 1, 240, 155, 2, 248, 2, 33, + 4, 1, 240, 155, 2, 248, 2, 33, 6, 1, 144, 2, 248, 2, 33, 4, 1, 144, 2, + 248, 2, 33, 6, 1, 252, 135, 76, 33, 4, 1, 252, 135, 76, 33, 6, 1, 252, + 135, 144, 2, 248, 2, 33, 4, 1, 252, 135, 144, 2, 248, 2, 33, 6, 1, 160, + 2, 248, 2, 33, 4, 1, 160, 2, 248, 2, 33, 6, 1, 104, 2, 231, 233, 33, 4, + 1, 104, 2, 231, 233, 33, 6, 1, 104, 2, 248, 2, 33, 4, 1, 104, 2, 248, 2, + 33, 6, 1, 104, 2, 52, 142, 33, 4, 1, 104, 2, 52, 142, 33, 6, 1, 250, 133, + 2, 248, 2, 33, 4, 1, 250, 133, 2, 248, 2, 33, 6, 1, 242, 238, 2, 248, 40, + 33, 4, 1, 242, 238, 2, 248, 40, 33, 6, 1, 211, 28, 2, 248, 2, 33, 4, 1, + 211, 28, 2, 248, 2, 33, 6, 1, 242, 238, 2, 218, 104, 22, 103, 33, 4, 1, + 242, 238, 2, 218, 104, 22, 103, 33, 6, 1, 242, 50, 2, 103, 33, 4, 1, 242, + 50, 2, 103, 33, 6, 1, 242, 50, 2, 91, 33, 4, 1, 242, 50, 2, 91, 33, 6, 1, + 234, 15, 248, 91, 33, 4, 1, 234, 15, 248, 91, 33, 6, 1, 234, 15, 247, + 163, 33, 4, 1, 234, 15, 247, 163, 33, 6, 1, 234, 15, 210, 27, 33, 4, 1, + 234, 15, 210, 27, 33, 6, 1, 234, 15, 246, 31, 33, 4, 1, 234, 15, 246, 31, + 33, 6, 1, 234, 15, 232, 188, 33, 4, 1, 234, 15, 232, 188, 33, 6, 1, 234, + 15, 228, 179, 33, 4, 1, 234, 15, 228, 179, 33, 6, 1, 234, 15, 219, 110, + 33, 4, 1, 234, 15, 219, 110, 33, 6, 1, 234, 15, 216, 61, 33, 4, 1, 234, + 15, 216, 61, 33, 6, 1, 223, 50, 210, 94, 33, 4, 1, 223, 50, 210, 94, 33, + 6, 1, 245, 176, 2, 103, 33, 4, 1, 245, 176, 2, 103, 33, 6, 1, 232, 255, + 33, 4, 1, 232, 255, 33, 6, 1, 223, 40, 33, 4, 1, 223, 40, 33, 6, 1, 211, + 92, 33, 4, 1, 211, 92, 33, 6, 1, 224, 89, 33, 4, 1, 224, 89, 33, 6, 1, + 212, 22, 33, 4, 1, 212, 22, 33, 6, 1, 254, 167, 176, 33, 4, 1, 254, 167, + 176, 33, 6, 1, 245, 176, 2, 230, 225, 103, 33, 4, 1, 245, 176, 2, 230, + 225, 103, 33, 6, 1, 245, 152, 2, 230, 225, 103, 33, 4, 1, 245, 152, 2, + 230, 225, 103, 33, 6, 1, 225, 223, 2, 248, 40, 33, 4, 1, 225, 223, 2, + 248, 40, 33, 6, 1, 220, 35, 2, 248, 40, 33, 4, 1, 220, 35, 2, 248, 40, + 150, 6, 1, 253, 165, 150, 6, 1, 252, 40, 150, 6, 1, 242, 204, 150, 6, 1, + 248, 222, 150, 6, 1, 245, 214, 150, 6, 1, 210, 116, 150, 6, 1, 245, 198, + 150, 6, 1, 245, 66, 150, 6, 1, 111, 150, 6, 1, 210, 74, 150, 6, 1, 235, + 228, 150, 6, 1, 232, 191, 150, 6, 1, 211, 160, 150, 6, 1, 251, 34, 150, + 6, 1, 234, 166, 150, 6, 1, 241, 69, 150, 6, 1, 235, 142, 150, 6, 1, 242, + 247, 150, 6, 1, 250, 127, 150, 6, 1, 231, 59, 150, 6, 1, 211, 8, 150, 6, + 1, 228, 40, 150, 6, 1, 220, 103, 150, 6, 1, 213, 138, 150, 6, 1, 250, + 158, 150, 6, 1, 225, 206, 150, 6, 1, 235, 111, 150, 6, 1, 205, 150, 6, 1, + 221, 162, 150, 6, 1, 213, 179, 150, 6, 1, 216, 63, 150, 6, 1, 223, 96, + 150, 6, 1, 249, 239, 150, 6, 1, 210, 249, 150, 6, 1, 225, 47, 150, 6, 1, + 234, 177, 150, 6, 1, 226, 223, 150, 6, 1, 244, 143, 150, 58, 1, 43, 163, + 222, 234, 150, 254, 58, 150, 245, 155, 78, 150, 245, 32, 78, 150, 249, + 220, 150, 224, 14, 78, 150, 255, 22, 78, 150, 4, 1, 253, 165, 150, 4, 1, + 252, 40, 150, 4, 1, 242, 204, 150, 4, 1, 248, 222, 150, 4, 1, 245, 214, + 150, 4, 1, 210, 116, 150, 4, 1, 245, 198, 150, 4, 1, 245, 66, 150, 4, 1, + 111, 150, 4, 1, 210, 74, 150, 4, 1, 235, 228, 150, 4, 1, 232, 191, 150, + 4, 1, 211, 160, 150, 4, 1, 251, 34, 150, 4, 1, 234, 166, 150, 4, 1, 241, + 69, 150, 4, 1, 235, 142, 150, 4, 1, 242, 247, 150, 4, 1, 250, 127, 150, + 4, 1, 231, 59, 150, 4, 1, 211, 8, 150, 4, 1, 228, 40, 150, 4, 1, 220, + 103, 150, 4, 1, 213, 138, 150, 4, 1, 250, 158, 150, 4, 1, 225, 206, 150, + 4, 1, 235, 111, 150, 4, 1, 205, 150, 4, 1, 221, 162, 150, 4, 1, 213, 179, + 150, 4, 1, 216, 63, 150, 4, 1, 223, 96, 150, 4, 1, 249, 239, 150, 4, 1, + 210, 249, 150, 4, 1, 225, 47, 150, 4, 1, 234, 177, 150, 4, 1, 226, 223, + 150, 4, 1, 244, 143, 150, 4, 27, 245, 215, 210, 249, 150, 243, 230, 218, + 130, 150, 240, 169, 150, 246, 96, 50, 94, 255, 16, 245, 58, 94, 255, 16, + 221, 163, 94, 255, 16, 220, 89, 94, 255, 16, 210, 104, 224, 72, 94, 255, + 16, 210, 104, 243, 126, 94, 255, 16, 216, 76, 94, 255, 16, 223, 48, 94, + 255, 16, 210, 103, 94, 255, 16, 225, 246, 94, 255, 16, 211, 20, 94, 255, + 16, 216, 215, 94, 255, 16, 243, 42, 94, 255, 16, 243, 43, 230, 70, 94, + 255, 16, 243, 40, 94, 255, 16, 224, 73, 226, 17, 94, 255, 16, 216, 254, + 243, 57, 94, 255, 16, 225, 227, 94, 255, 16, 253, 201, 242, 42, 94, 255, + 16, 230, 80, 94, 255, 16, 231, 209, 94, 255, 16, 231, 50, 94, 255, 16, + 231, 51, 234, 178, 94, 255, 16, 248, 164, 94, 255, 16, 224, 84, 94, 255, + 16, 216, 254, 224, 68, 94, 255, 16, 211, 30, 252, 41, 210, 230, 94, 255, + 16, 226, 208, 94, 255, 16, 236, 20, 94, 255, 16, 248, 71, 94, 255, 16, + 210, 33, 94, 164, 231, 144, 250, 36, 94, 225, 12, 220, 37, 94, 225, 12, + 241, 251, 221, 163, 94, 225, 12, 241, 251, 225, 240, 94, 225, 12, 241, + 251, 224, 77, 94, 225, 12, 241, 159, 94, 225, 12, 215, 177, 94, 225, 12, + 221, 163, 94, 225, 12, 225, 240, 94, 225, 12, 224, 77, 94, 225, 12, 241, + 62, 94, 225, 12, 241, 63, 241, 253, 31, 214, 3, 94, 225, 12, 224, 18, 94, + 225, 12, 248, 209, 177, 231, 172, 94, 225, 12, 231, 39, 94, 224, 142, + 231, 169, 94, 225, 12, 223, 170, 94, 224, 142, 225, 248, 94, 225, 12, + 220, 22, 247, 121, 94, 225, 12, 219, 160, 247, 121, 94, 224, 142, 219, + 54, 225, 242, 94, 164, 214, 160, 247, 121, 94, 164, 232, 109, 247, 121, + 94, 224, 142, 227, 196, 242, 41, 94, 225, 12, 224, 78, 224, 72, 94, 1, + 254, 171, 94, 1, 252, 29, 94, 1, 242, 202, 94, 1, 248, 190, 94, 1, 241, + 239, 94, 1, 214, 3, 94, 1, 210, 97, 94, 1, 241, 198, 94, 1, 216, 231, 94, + 1, 210, 233, 94, 1, 40, 234, 251, 94, 1, 234, 251, 94, 1, 233, 95, 94, 1, + 40, 231, 66, 94, 1, 231, 66, 94, 1, 40, 227, 195, 94, 1, 227, 195, 94, 1, + 221, 250, 94, 1, 253, 163, 94, 1, 40, 225, 222, 94, 1, 225, 222, 94, 1, + 40, 215, 180, 94, 1, 215, 180, 94, 1, 224, 40, 94, 1, 223, 68, 94, 1, + 220, 21, 94, 1, 217, 39, 94, 27, 211, 6, 52, 214, 3, 94, 27, 211, 6, 214, + 4, 210, 233, 94, 27, 211, 6, 52, 210, 233, 94, 224, 142, 243, 42, 94, + 224, 142, 243, 40, 10, 54, 50, 10, 5, 221, 243, 10, 244, 31, 231, 155, + 10, 5, 222, 24, 10, 5, 221, 246, 254, 38, 249, 110, 222, 194, 254, 38, + 244, 5, 222, 194, 10, 223, 135, 254, 38, 225, 184, 230, 194, 50, 254, 38, + 225, 184, 216, 249, 216, 149, 50, 254, 222, 50, 10, 249, 220, 10, 248, + 151, 220, 138, 10, 225, 14, 213, 241, 50, 10, 5, 230, 175, 10, 5, 222, 4, + 254, 173, 212, 45, 10, 5, 254, 173, 253, 222, 10, 5, 223, 168, 254, 172, + 10, 5, 223, 176, 254, 153, 254, 105, 10, 5, 217, 71, 10, 4, 125, 217, 81, + 10, 4, 125, 27, 112, 2, 233, 104, 2, 211, 43, 10, 4, 125, 210, 108, 10, + 4, 244, 166, 10, 4, 248, 185, 10, 4, 234, 206, 10, 220, 151, 10, 215, + 212, 59, 224, 142, 78, 10, 224, 14, 78, 10, 1, 234, 210, 211, 43, 10, 1, + 242, 20, 10, 1, 112, 2, 231, 229, 48, 10, 1, 112, 2, 202, 48, 10, 1, 212, + 31, 2, 202, 48, 10, 1, 112, 2, 202, 51, 10, 1, 79, 2, 202, 48, 10, 1, + 254, 171, 10, 1, 252, 55, 10, 1, 217, 9, 231, 165, 10, 1, 217, 8, 10, 1, + 216, 193, 10, 1, 235, 124, 10, 1, 242, 38, 10, 1, 234, 130, 10, 1, 248, + 196, 10, 1, 216, 203, 10, 1, 223, 96, 10, 1, 210, 108, 10, 1, 221, 167, + 10, 1, 220, 60, 10, 1, 222, 27, 10, 1, 248, 217, 10, 1, 217, 81, 10, 1, + 210, 111, 10, 1, 254, 197, 10, 1, 242, 245, 10, 1, 234, 176, 2, 113, 170, + 48, 10, 1, 234, 176, 2, 134, 170, 51, 10, 1, 244, 169, 79, 2, 235, 194, + 214, 105, 10, 1, 244, 169, 79, 2, 113, 170, 48, 10, 1, 244, 169, 79, 2, + 134, 170, 48, 10, 217, 44, 10, 1, 244, 143, 10, 1, 224, 82, 10, 1, 234, + 251, 10, 1, 233, 103, 10, 1, 231, 79, 10, 1, 228, 63, 10, 1, 241, 219, + 10, 1, 212, 30, 10, 1, 112, 231, 193, 10, 1, 211, 43, 10, 244, 164, 10, + 248, 183, 10, 234, 204, 10, 244, 166, 10, 248, 185, 10, 234, 206, 10, + 220, 94, 10, 218, 46, 10, 231, 227, 48, 10, 202, 48, 10, 202, 51, 10, + 218, 66, 254, 171, 10, 235, 194, 248, 185, 10, 164, 228, 64, 242, 219, + 10, 209, 255, 10, 25, 5, 4, 214, 106, 48, 10, 25, 5, 235, 194, 4, 214, + 106, 48, 10, 25, 5, 59, 51, 10, 223, 50, 248, 185, 10, 244, 167, 2, 113, + 247, 119, 10, 212, 32, 202, 51, 254, 38, 21, 210, 86, 254, 38, 21, 110, + 254, 38, 21, 105, 254, 38, 21, 158, 254, 38, 21, 161, 254, 38, 21, 189, + 254, 38, 21, 194, 254, 38, 21, 198, 254, 38, 21, 195, 254, 38, 21, 200, + 10, 225, 183, 50, 10, 248, 84, 220, 138, 10, 216, 147, 220, 138, 10, 244, + 82, 225, 10, 218, 157, 10, 1, 247, 120, 252, 55, 10, 1, 247, 120, 224, + 82, 10, 1, 218, 24, 254, 171, 10, 1, 112, 212, 46, 10, 1, 112, 2, 212, + 32, 202, 48, 10, 1, 112, 2, 212, 32, 202, 51, 10, 1, 125, 242, 20, 10, 1, + 125, 202, 254, 171, 10, 1, 125, 202, 212, 30, 10, 1, 104, 2, 202, 48, 10, + 1, 125, 202, 211, 43, 10, 1, 215, 149, 10, 1, 215, 147, 10, 1, 252, 65, + 10, 1, 217, 9, 2, 222, 234, 10, 1, 217, 9, 2, 134, 170, 77, 246, 104, 10, + 1, 225, 206, 10, 1, 217, 6, 10, 1, 252, 53, 10, 1, 122, 2, 202, 48, 10, + 1, 122, 2, 113, 170, 67, 48, 10, 1, 227, 154, 10, 1, 246, 44, 10, 1, 122, + 2, 134, 170, 48, 10, 1, 217, 27, 10, 1, 217, 25, 10, 1, 248, 131, 10, 1, + 248, 197, 2, 222, 234, 10, 1, 248, 197, 2, 59, 51, 10, 1, 248, 197, 2, + 59, 252, 44, 22, 4, 217, 81, 10, 1, 248, 202, 10, 1, 248, 133, 10, 1, + 246, 71, 10, 1, 248, 197, 2, 134, 170, 77, 246, 104, 10, 1, 248, 197, 2, + 244, 12, 170, 48, 10, 1, 222, 172, 10, 1, 223, 97, 2, 4, 214, 105, 10, 1, + 223, 97, 2, 222, 234, 10, 1, 223, 97, 2, 59, 51, 10, 1, 223, 97, 2, 4, + 214, 106, 51, 10, 1, 223, 97, 2, 59, 252, 44, 22, 59, 48, 10, 1, 223, 97, + 2, 113, 170, 48, 10, 1, 235, 121, 10, 1, 223, 97, 2, 244, 12, 170, 48, + 10, 1, 221, 168, 2, 59, 252, 44, 22, 59, 48, 10, 1, 221, 168, 2, 134, + 170, 51, 10, 1, 221, 168, 2, 134, 170, 252, 44, 22, 134, 170, 48, 10, 1, + 222, 28, 2, 113, 170, 51, 10, 1, 222, 28, 2, 134, 170, 48, 10, 1, 217, + 82, 2, 134, 170, 48, 10, 1, 254, 198, 2, 134, 170, 48, 10, 1, 247, 120, + 244, 143, 10, 1, 244, 144, 2, 59, 230, 110, 51, 10, 1, 244, 144, 2, 59, + 51, 10, 1, 213, 248, 10, 1, 244, 144, 2, 134, 170, 51, 10, 1, 225, 204, + 10, 1, 224, 83, 2, 59, 48, 10, 1, 224, 83, 2, 134, 170, 48, 10, 1, 234, + 175, 10, 1, 217, 251, 234, 251, 10, 1, 234, 252, 2, 222, 234, 10, 1, 234, + 252, 2, 59, 48, 10, 1, 229, 80, 10, 1, 234, 252, 2, 134, 170, 51, 10, 1, + 243, 123, 10, 1, 243, 124, 2, 222, 234, 10, 1, 229, 3, 10, 1, 243, 124, + 2, 113, 170, 51, 10, 1, 242, 102, 10, 1, 243, 124, 2, 134, 170, 48, 10, + 1, 233, 104, 2, 4, 214, 105, 10, 1, 233, 104, 2, 59, 48, 10, 1, 233, 104, + 2, 134, 170, 48, 10, 1, 233, 104, 2, 134, 170, 51, 10, 1, 228, 64, 2, 59, + 51, 10, 1, 228, 64, 242, 219, 10, 1, 222, 215, 10, 1, 228, 64, 2, 222, + 234, 10, 1, 228, 64, 2, 134, 170, 48, 10, 1, 241, 220, 247, 142, 10, 1, + 217, 28, 2, 59, 48, 10, 1, 241, 220, 2, 79, 48, 10, 1, 241, 220, 242, + 172, 10, 1, 241, 220, 242, 173, 2, 202, 48, 10, 1, 217, 9, 231, 166, 242, + 172, 10, 1, 212, 31, 2, 222, 234, 10, 1, 234, 74, 226, 235, 10, 1, 226, + 235, 10, 1, 70, 10, 1, 210, 212, 10, 1, 234, 74, 210, 212, 10, 1, 212, + 31, 2, 113, 170, 48, 10, 1, 213, 255, 10, 1, 244, 169, 211, 43, 10, 1, + 79, 2, 217, 78, 10, 1, 79, 2, 4, 214, 105, 10, 1, 212, 31, 2, 59, 48, 10, + 1, 75, 10, 1, 79, 2, 134, 170, 51, 10, 1, 79, 252, 133, 10, 1, 79, 252, + 134, 2, 202, 48, 10, 243, 230, 218, 130, 10, 1, 254, 244, 10, 4, 125, 27, + 222, 28, 2, 233, 104, 2, 112, 231, 193, 10, 4, 125, 27, 224, 83, 2, 233, + 104, 2, 112, 231, 193, 10, 4, 125, 66, 65, 17, 10, 4, 125, 233, 104, 254, + 171, 10, 4, 125, 235, 124, 10, 4, 125, 134, 247, 119, 10, 4, 125, 221, + 167, 10, 245, 144, 64, 253, 167, 10, 218, 153, 64, 222, 139, 245, 176, + 241, 156, 10, 4, 125, 222, 184, 210, 86, 10, 4, 125, 214, 159, 223, 116, + 210, 86, 10, 4, 125, 247, 120, 241, 237, 64, 234, 130, 10, 4, 125, 66, + 53, 17, 10, 4, 121, 221, 167, 10, 4, 125, 231, 228, 10, 4, 212, 30, 10, + 4, 211, 43, 10, 4, 125, 211, 43, 10, 4, 125, 228, 63, 10, 225, 42, 64, + 222, 14, 10, 245, 153, 250, 176, 121, 218, 130, 10, 245, 153, 250, 176, + 125, 218, 130, 10, 222, 184, 125, 218, 131, 2, 244, 105, 250, 175, 10, 4, + 121, 231, 79, 10, 1, 248, 197, 2, 235, 194, 214, 105, 10, 1, 223, 97, 2, + 235, 194, 214, 105, 245, 23, 254, 38, 21, 210, 86, 245, 23, 254, 38, 21, + 110, 245, 23, 254, 38, 21, 105, 245, 23, 254, 38, 21, 158, 245, 23, 254, + 38, 21, 161, 245, 23, 254, 38, 21, 189, 245, 23, 254, 38, 21, 194, 245, + 23, 254, 38, 21, 198, 245, 23, 254, 38, 21, 195, 245, 23, 254, 38, 21, + 200, 10, 1, 220, 61, 2, 59, 51, 10, 1, 248, 218, 2, 59, 51, 10, 1, 242, + 246, 2, 59, 51, 10, 5, 219, 159, 254, 127, 10, 5, 219, 159, 224, 236, + 231, 59, 10, 1, 241, 220, 2, 235, 194, 214, 105, 182, 245, 144, 64, 226, + 15, 182, 218, 20, 243, 230, 218, 130, 182, 218, 68, 243, 230, 218, 130, + 182, 218, 20, 249, 227, 182, 218, 68, 249, 227, 182, 203, 249, 227, 182, + 249, 228, 219, 107, 233, 47, 182, 249, 228, 219, 107, 222, 252, 182, 218, + 20, 249, 228, 219, 107, 233, 47, 182, 218, 68, 249, 228, 219, 107, 222, + 252, 182, 249, 181, 182, 242, 2, 226, 251, 182, 242, 2, 231, 37, 182, + 242, 2, 253, 219, 182, 255, 22, 78, 182, 1, 254, 175, 182, 1, 218, 24, + 254, 175, 182, 1, 252, 26, 182, 1, 243, 114, 182, 1, 243, 115, 243, 92, + 182, 1, 248, 193, 182, 1, 247, 120, 248, 194, 222, 230, 182, 1, 241, 239, + 182, 1, 212, 30, 182, 1, 210, 108, 182, 1, 241, 196, 182, 1, 216, 227, + 182, 1, 216, 228, 243, 92, 182, 1, 210, 199, 182, 1, 210, 200, 241, 239, + 182, 1, 234, 226, 182, 1, 233, 102, 182, 1, 230, 191, 182, 1, 227, 195, + 182, 1, 220, 144, 182, 1, 40, 220, 144, 182, 1, 75, 182, 1, 225, 222, + 182, 1, 223, 50, 225, 222, 182, 1, 222, 25, 182, 1, 224, 76, 182, 1, 222, + 230, 182, 1, 220, 21, 182, 1, 217, 37, 182, 1, 225, 170, 252, 13, 182, 1, + 225, 170, 242, 243, 182, 1, 225, 170, 248, 21, 182, 224, 152, 48, 182, + 224, 152, 51, 182, 224, 152, 246, 118, 182, 210, 17, 48, 182, 210, 17, + 51, 182, 210, 17, 246, 118, 182, 223, 132, 48, 182, 223, 132, 51, 182, + 246, 119, 210, 24, 241, 45, 182, 246, 119, 210, 24, 254, 106, 182, 241, + 242, 48, 182, 241, 242, 51, 182, 241, 241, 246, 118, 182, 245, 80, 48, + 182, 245, 80, 51, 182, 222, 108, 182, 244, 137, 247, 121, 182, 223, 249, + 182, 222, 135, 182, 113, 67, 170, 48, 182, 113, 67, 170, 51, 182, 134, + 170, 48, 182, 134, 170, 51, 182, 226, 249, 232, 215, 48, 182, 226, 249, + 232, 215, 51, 182, 230, 57, 182, 252, 132, 182, 1, 219, 50, 210, 80, 182, + 1, 219, 50, 234, 123, 182, 1, 219, 50, 244, 155, 10, 1, 252, 56, 2, 134, + 170, 240, 251, 51, 10, 1, 252, 56, 2, 59, 252, 44, 22, 134, 170, 48, 10, + 1, 252, 56, 2, 134, 170, 225, 8, 214, 153, 51, 10, 1, 252, 56, 2, 134, + 170, 225, 8, 214, 153, 252, 44, 22, 113, 170, 48, 10, 1, 252, 56, 2, 113, + 170, 252, 44, 22, 59, 48, 10, 1, 252, 56, 2, 235, 194, 4, 214, 106, 51, + 10, 1, 252, 56, 2, 4, 214, 105, 10, 1, 122, 2, 113, 170, 48, 10, 1, 122, + 2, 134, 170, 225, 8, 214, 153, 51, 10, 1, 248, 197, 2, 113, 170, 213, + 189, 252, 44, 22, 4, 217, 81, 10, 1, 248, 197, 2, 235, 194, 4, 214, 106, + 51, 10, 1, 223, 97, 2, 91, 10, 1, 221, 168, 2, 244, 12, 170, 48, 10, 1, + 254, 198, 2, 113, 170, 48, 10, 1, 254, 198, 2, 134, 170, 225, 8, 246, + 105, 48, 10, 1, 254, 198, 2, 113, 170, 213, 189, 48, 10, 1, 244, 144, 2, + 113, 170, 51, 10, 1, 244, 144, 2, 134, 170, 225, 8, 214, 153, 51, 10, 1, + 234, 176, 2, 59, 48, 10, 1, 234, 176, 2, 134, 170, 48, 10, 1, 234, 176, + 2, 134, 170, 225, 8, 214, 153, 51, 10, 1, 66, 2, 59, 48, 10, 1, 66, 2, + 59, 51, 10, 1, 228, 64, 2, 113, 170, 51, 10, 1, 228, 64, 2, 4, 217, 81, + 10, 1, 228, 64, 2, 4, 214, 105, 10, 1, 233, 104, 2, 130, 10, 1, 223, 97, + 2, 113, 170, 213, 189, 48, 10, 1, 223, 97, 2, 202, 48, 10, 1, 221, 168, + 2, 113, 170, 213, 189, 48, 10, 1, 122, 2, 4, 10, 1, 217, 82, 51, 10, 1, + 122, 2, 4, 10, 1, 217, 82, 22, 113, 247, 119, 10, 1, 221, 168, 2, 4, 10, + 1, 217, 82, 22, 113, 247, 119, 10, 1, 223, 97, 2, 4, 10, 1, 217, 82, 22, + 113, 247, 119, 10, 1, 122, 2, 4, 10, 1, 217, 82, 48, 10, 1, 112, 2, 245, + 23, 254, 38, 21, 113, 48, 10, 1, 112, 2, 245, 23, 254, 38, 21, 134, 48, + 10, 1, 244, 169, 79, 2, 245, 23, 254, 38, 21, 113, 48, 10, 1, 244, 169, + 79, 2, 245, 23, 254, 38, 21, 134, 48, 10, 1, 244, 169, 79, 2, 245, 23, + 254, 38, 21, 244, 12, 51, 10, 1, 212, 31, 2, 245, 23, 254, 38, 21, 113, + 48, 10, 1, 212, 31, 2, 245, 23, 254, 38, 21, 134, 48, 10, 1, 79, 252, + 134, 2, 245, 23, 254, 38, 21, 113, 48, 10, 1, 79, 252, 134, 2, 245, 23, + 254, 38, 21, 134, 48, 10, 1, 122, 2, 245, 23, 254, 38, 21, 244, 12, 51, + 10, 1, 221, 168, 2, 245, 23, 254, 38, 21, 244, 12, 48, 10, 1, 221, 168, + 2, 235, 194, 214, 105, 10, 1, 234, 252, 2, 113, 170, 48, 216, 206, 1, + 242, 47, 216, 206, 1, 220, 69, 216, 206, 1, 228, 62, 216, 206, 1, 223, + 185, 216, 206, 1, 252, 190, 216, 206, 1, 232, 252, 216, 206, 1, 235, 9, + 216, 206, 1, 254, 160, 216, 206, 1, 214, 25, 216, 206, 1, 231, 78, 216, + 206, 1, 244, 195, 216, 206, 1, 248, 24, 216, 206, 1, 216, 208, 216, 206, + 1, 233, 132, 216, 206, 1, 243, 132, 216, 206, 1, 242, 178, 216, 206, 1, + 221, 166, 216, 206, 1, 248, 149, 216, 206, 1, 210, 100, 216, 206, 1, 217, + 38, 216, 206, 1, 211, 103, 216, 206, 1, 225, 234, 216, 206, 1, 235, 129, + 216, 206, 1, 250, 135, 216, 206, 1, 215, 156, 216, 206, 1, 241, 189, 216, + 206, 1, 234, 132, 216, 206, 1, 216, 207, 216, 206, 1, 210, 115, 216, 206, + 1, 220, 59, 216, 206, 1, 222, 31, 216, 206, 1, 248, 220, 216, 206, 1, + 111, 216, 206, 1, 210, 23, 216, 206, 1, 254, 194, 216, 206, 1, 242, 244, + 216, 206, 1, 224, 86, 216, 206, 1, 212, 63, 216, 206, 255, 23, 216, 206, + 255, 39, 216, 206, 240, 115, 216, 206, 245, 209, 216, 206, 214, 222, 216, + 206, 226, 183, 216, 206, 245, 217, 216, 206, 245, 17, 216, 206, 226, 248, + 216, 206, 227, 0, 216, 206, 218, 46, 216, 206, 1, 229, 226, 228, 138, 21, + 210, 86, 228, 138, 21, 110, 228, 138, 21, 105, 228, 138, 21, 158, 228, + 138, 21, 161, 228, 138, 21, 189, 228, 138, 21, 194, 228, 138, 21, 198, + 228, 138, 21, 195, 228, 138, 21, 200, 228, 138, 1, 61, 228, 138, 1, 245, + 210, 228, 138, 1, 73, 228, 138, 1, 75, 228, 138, 1, 70, 228, 138, 1, 226, + 184, 228, 138, 1, 76, 228, 138, 1, 248, 210, 228, 138, 1, 230, 26, 228, + 138, 1, 252, 192, 228, 138, 1, 190, 228, 138, 1, 217, 106, 228, 138, 1, + 235, 142, 228, 138, 1, 250, 158, 228, 138, 1, 248, 222, 228, 138, 1, 205, + 228, 138, 1, 222, 180, 228, 138, 1, 206, 228, 138, 1, 243, 80, 228, 138, + 1, 244, 197, 228, 138, 1, 176, 228, 138, 1, 233, 136, 228, 138, 1, 229, + 230, 211, 223, 228, 138, 1, 185, 228, 138, 1, 227, 166, 228, 138, 1, 197, + 228, 138, 1, 162, 228, 138, 1, 212, 65, 228, 138, 1, 191, 228, 138, 1, + 227, 167, 211, 223, 228, 138, 1, 235, 62, 235, 142, 228, 138, 1, 235, 62, + 250, 158, 228, 138, 1, 235, 62, 205, 228, 138, 38, 219, 252, 125, 216, + 31, 228, 138, 38, 219, 252, 121, 216, 31, 228, 138, 38, 219, 252, 222, + 229, 216, 31, 228, 138, 38, 199, 248, 39, 216, 31, 228, 138, 38, 199, + 125, 216, 31, 228, 138, 38, 199, 121, 216, 31, 228, 138, 38, 199, 222, + 229, 216, 31, 228, 138, 38, 229, 194, 78, 228, 138, 38, 52, 59, 48, 228, + 138, 125, 138, 254, 58, 228, 138, 121, 138, 254, 58, 228, 138, 16, 226, + 185, 248, 51, 228, 138, 16, 243, 79, 228, 138, 249, 220, 228, 138, 245, + 32, 78, 228, 138, 233, 109, 221, 253, 1, 254, 177, 221, 253, 1, 251, 229, + 221, 253, 1, 243, 113, 221, 253, 1, 248, 195, 221, 253, 1, 235, 153, 221, + 253, 1, 252, 190, 221, 253, 1, 210, 89, 221, 253, 1, 235, 161, 221, 253, + 1, 216, 68, 221, 253, 1, 210, 182, 221, 253, 1, 235, 10, 221, 253, 1, + 233, 129, 221, 253, 1, 230, 191, 221, 253, 1, 227, 195, 221, 253, 1, 219, + 157, 221, 253, 1, 236, 0, 221, 253, 1, 244, 122, 221, 253, 1, 215, 182, + 221, 253, 1, 224, 11, 221, 253, 1, 222, 230, 221, 253, 1, 220, 86, 221, + 253, 1, 217, 101, 221, 253, 164, 236, 0, 221, 253, 164, 235, 255, 221, + 253, 164, 226, 244, 221, 253, 164, 248, 208, 221, 253, 58, 1, 245, 106, + 210, 182, 221, 253, 164, 245, 106, 210, 182, 221, 253, 25, 5, 199, 75, + 221, 253, 25, 5, 75, 221, 253, 25, 5, 226, 119, 255, 74, 221, 253, 25, 5, + 199, 255, 74, 221, 253, 25, 5, 255, 74, 221, 253, 25, 5, 226, 119, 61, + 221, 253, 25, 5, 199, 61, 221, 253, 25, 5, 61, 221, 253, 58, 1, 219, 252, + 61, 221, 253, 25, 5, 219, 252, 61, 221, 253, 25, 5, 199, 70, 221, 253, + 25, 5, 70, 221, 253, 58, 1, 73, 221, 253, 25, 5, 199, 73, 221, 253, 25, + 5, 73, 221, 253, 25, 5, 76, 221, 253, 25, 5, 218, 46, 221, 253, 164, 229, + 93, 221, 253, 224, 142, 229, 93, 221, 253, 224, 142, 254, 219, 221, 253, + 224, 142, 254, 115, 221, 253, 224, 142, 252, 115, 221, 253, 224, 142, + 253, 202, 221, 253, 224, 142, 220, 9, 221, 253, 255, 22, 78, 221, 253, + 224, 142, 231, 69, 224, 46, 221, 253, 224, 142, 210, 31, 221, 253, 224, + 142, 224, 46, 221, 253, 224, 142, 210, 114, 221, 253, 224, 142, 215, 90, + 221, 253, 224, 142, 254, 10, 221, 253, 224, 142, 219, 54, 231, 146, 221, + 253, 224, 142, 254, 101, 231, 183, 1, 242, 25, 231, 183, 1, 255, 26, 231, + 183, 1, 254, 217, 231, 183, 1, 255, 0, 231, 183, 1, 254, 210, 231, 183, + 1, 214, 124, 231, 183, 1, 253, 161, 231, 183, 1, 235, 161, 231, 183, 1, + 253, 199, 231, 183, 1, 254, 182, 231, 183, 1, 254, 187, 231, 183, 1, 254, + 179, 231, 183, 1, 254, 137, 231, 183, 1, 254, 124, 231, 183, 1, 253, 238, + 231, 183, 1, 236, 0, 231, 183, 1, 254, 73, 231, 183, 1, 253, 209, 231, + 183, 1, 254, 46, 231, 183, 1, 254, 42, 231, 183, 1, 253, 232, 231, 183, + 1, 253, 207, 231, 183, 1, 246, 56, 231, 183, 1, 235, 3, 231, 183, 1, 254, + 197, 231, 183, 254, 223, 78, 231, 183, 213, 136, 78, 231, 183, 243, 54, + 78, 231, 183, 224, 141, 10, 1, 252, 56, 2, 4, 214, 106, 51, 10, 1, 151, + 2, 113, 170, 48, 10, 1, 217, 82, 2, 113, 170, 48, 10, 1, 244, 144, 2, 59, + 252, 44, 22, 134, 170, 48, 10, 1, 224, 83, 2, 59, 51, 10, 1, 233, 104, 2, + 52, 130, 10, 1, 66, 2, 134, 170, 48, 10, 1, 79, 2, 113, 170, 252, 44, 22, + 202, 48, 10, 1, 79, 2, 113, 170, 252, 44, 22, 59, 48, 10, 1, 223, 97, 2, + 232, 124, 10, 1, 212, 31, 2, 59, 211, 231, 10, 1, 222, 202, 211, 43, 10, + 249, 100, 244, 166, 10, 249, 100, 248, 185, 10, 249, 100, 234, 206, 10, + 249, 100, 244, 164, 10, 249, 100, 248, 183, 10, 249, 100, 234, 204, 10, + 138, 123, 59, 48, 10, 138, 113, 170, 48, 10, 138, 232, 125, 48, 10, 138, + 123, 59, 51, 10, 138, 113, 170, 51, 10, 138, 232, 125, 51, 10, 204, 244, + 164, 10, 204, 248, 183, 10, 204, 234, 204, 10, 4, 125, 212, 30, 10, 244, + 167, 2, 222, 234, 10, 244, 167, 2, 59, 48, 10, 234, 207, 2, 59, 51, 10, + 43, 253, 251, 48, 10, 44, 253, 251, 48, 10, 43, 253, 251, 51, 10, 44, + 253, 251, 51, 10, 52, 44, 253, 251, 48, 10, 52, 44, 253, 251, 77, 2, 247, + 121, 10, 44, 253, 251, 77, 2, 247, 121, 10, 248, 186, 2, 247, 121, 84, 5, + 235, 194, 251, 0, 84, 5, 251, 0, 84, 5, 254, 76, 84, 5, 213, 147, 84, 1, + 219, 252, 61, 84, 1, 61, 84, 1, 255, 74, 84, 1, 73, 84, 1, 236, 34, 84, + 1, 70, 84, 1, 214, 118, 84, 1, 149, 153, 84, 1, 149, 156, 84, 1, 251, 3, + 75, 84, 1, 219, 252, 75, 84, 1, 75, 84, 1, 254, 202, 84, 1, 251, 3, 76, + 84, 1, 219, 252, 76, 84, 1, 76, 84, 1, 253, 193, 84, 1, 176, 84, 1, 234, + 133, 84, 1, 243, 136, 84, 1, 242, 250, 84, 1, 229, 78, 84, 1, 251, 34, + 84, 1, 250, 158, 84, 1, 235, 142, 84, 1, 235, 115, 84, 1, 227, 166, 84, + 1, 215, 157, 84, 1, 215, 145, 84, 1, 248, 136, 84, 1, 248, 120, 84, 1, + 228, 111, 84, 1, 217, 106, 84, 1, 216, 209, 84, 1, 248, 222, 84, 1, 248, + 26, 84, 1, 197, 84, 1, 228, 93, 84, 1, 190, 84, 1, 225, 148, 84, 1, 252, + 192, 84, 1, 252, 19, 84, 1, 185, 84, 1, 191, 84, 1, 205, 84, 1, 222, 180, + 84, 1, 233, 136, 84, 1, 232, 185, 84, 1, 232, 176, 84, 1, 214, 27, 84, 1, + 220, 103, 84, 1, 218, 224, 84, 1, 206, 84, 1, 162, 84, 25, 5, 226, 235, + 84, 25, 5, 226, 182, 84, 5, 227, 206, 84, 5, 253, 176, 84, 25, 5, 255, + 74, 84, 25, 5, 73, 84, 25, 5, 236, 34, 84, 25, 5, 70, 84, 25, 5, 214, + 118, 84, 25, 5, 149, 153, 84, 25, 5, 149, 222, 181, 84, 25, 5, 251, 3, + 75, 84, 25, 5, 219, 252, 75, 84, 25, 5, 75, 84, 25, 5, 254, 202, 84, 25, + 5, 251, 3, 76, 84, 25, 5, 219, 252, 76, 84, 25, 5, 76, 84, 25, 5, 253, + 193, 84, 5, 213, 152, 84, 25, 5, 224, 186, 75, 84, 25, 5, 253, 172, 84, + 226, 205, 84, 218, 112, 5, 214, 216, 84, 218, 112, 5, 254, 78, 84, 242, + 138, 255, 15, 84, 255, 4, 255, 15, 84, 25, 5, 251, 3, 199, 75, 84, 25, 5, + 214, 214, 84, 25, 5, 214, 117, 84, 1, 224, 89, 84, 1, 234, 116, 84, 1, + 242, 227, 84, 1, 210, 116, 84, 1, 248, 125, 84, 1, 223, 40, 84, 1, 244, + 197, 84, 1, 210, 168, 84, 1, 149, 222, 181, 84, 1, 149, 232, 186, 84, 25, + 5, 149, 156, 84, 25, 5, 149, 232, 186, 84, 248, 179, 84, 52, 248, 179, + 84, 21, 210, 86, 84, 21, 110, 84, 21, 105, 84, 21, 158, 84, 21, 161, 84, + 21, 189, 84, 21, 194, 84, 21, 198, 84, 21, 195, 84, 21, 200, 84, 255, 22, + 50, 84, 5, 125, 219, 18, 247, 121, 84, 1, 251, 3, 61, 84, 1, 226, 235, + 84, 1, 226, 182, 84, 1, 253, 172, 84, 1, 214, 214, 84, 1, 214, 117, 84, + 1, 210, 82, 84, 1, 114, 191, 84, 1, 243, 30, 84, 1, 235, 97, 84, 1, 242, + 181, 218, 130, 84, 1, 248, 126, 84, 1, 252, 112, 146, 5, 251, 0, 146, 5, + 254, 76, 146, 5, 213, 147, 146, 1, 61, 146, 1, 255, 74, 146, 1, 73, 146, + 1, 236, 34, 146, 1, 70, 146, 1, 214, 118, 146, 1, 149, 153, 146, 1, 149, + 156, 146, 1, 75, 146, 1, 254, 202, 146, 1, 76, 146, 1, 253, 193, 146, 1, + 176, 146, 1, 234, 133, 146, 1, 243, 136, 146, 1, 242, 250, 146, 1, 229, + 78, 146, 1, 251, 34, 146, 1, 250, 158, 146, 1, 235, 142, 146, 1, 235, + 115, 146, 1, 227, 166, 146, 1, 215, 157, 146, 1, 215, 145, 146, 1, 248, + 136, 146, 1, 248, 120, 146, 1, 228, 111, 146, 1, 217, 106, 146, 1, 216, + 209, 146, 1, 248, 222, 146, 1, 248, 26, 146, 1, 197, 146, 1, 190, 146, 1, + 225, 148, 146, 1, 252, 192, 146, 1, 252, 19, 146, 1, 185, 146, 1, 191, + 146, 1, 205, 146, 1, 233, 136, 146, 1, 220, 103, 146, 1, 218, 224, 146, + 1, 206, 146, 1, 162, 146, 5, 227, 206, 146, 5, 253, 176, 146, 25, 5, 255, + 74, 146, 25, 5, 73, 146, 25, 5, 236, 34, 146, 25, 5, 70, 146, 25, 5, 214, + 118, 146, 25, 5, 149, 153, 146, 25, 5, 149, 222, 181, 146, 25, 5, 75, + 146, 25, 5, 254, 202, 146, 25, 5, 76, 146, 25, 5, 253, 193, 146, 5, 213, + 152, 146, 1, 234, 125, 217, 106, 146, 253, 194, 233, 24, 78, 146, 1, 222, + 180, 146, 1, 223, 40, 146, 1, 210, 168, 146, 1, 149, 222, 181, 146, 1, + 149, 232, 186, 146, 25, 5, 149, 156, 146, 25, 5, 149, 232, 186, 146, 21, + 210, 86, 146, 21, 110, 146, 21, 105, 146, 21, 158, 146, 21, 161, 146, 21, + 189, 146, 21, 194, 146, 21, 198, 146, 21, 195, 146, 21, 200, 146, 1, 223, + 189, 2, 230, 225, 247, 255, 146, 1, 223, 189, 2, 232, 109, 247, 255, 146, + 222, 119, 78, 146, 222, 119, 50, 146, 249, 99, 227, 198, 110, 146, 249, + 99, 227, 198, 105, 146, 249, 99, 227, 198, 158, 146, 249, 99, 227, 198, + 161, 146, 249, 99, 227, 198, 123, 233, 17, 216, 202, 216, 197, 248, 49, + 146, 249, 99, 248, 50, 219, 120, 146, 235, 162, 146, 243, 104, 78, 184, + 5, 254, 255, 251, 244, 184, 5, 251, 244, 184, 5, 213, 147, 184, 1, 61, + 184, 1, 255, 74, 184, 1, 73, 184, 1, 236, 34, 184, 1, 70, 184, 1, 214, + 118, 184, 1, 245, 210, 184, 1, 254, 202, 184, 1, 226, 184, 184, 1, 253, + 193, 184, 1, 176, 184, 1, 234, 133, 184, 1, 243, 136, 184, 1, 242, 250, + 184, 1, 229, 78, 184, 1, 251, 34, 184, 1, 250, 158, 184, 1, 235, 142, + 184, 1, 235, 115, 184, 1, 227, 166, 184, 1, 215, 157, 184, 1, 215, 145, + 184, 1, 248, 136, 184, 1, 248, 120, 184, 1, 228, 111, 184, 1, 217, 106, + 184, 1, 216, 209, 184, 1, 248, 222, 184, 1, 248, 26, 184, 1, 197, 184, 1, + 190, 184, 1, 225, 148, 184, 1, 252, 192, 184, 1, 252, 19, 184, 1, 185, + 184, 1, 191, 184, 1, 205, 184, 1, 233, 136, 184, 1, 232, 185, 184, 1, + 214, 27, 184, 1, 220, 103, 184, 1, 206, 184, 1, 162, 184, 5, 227, 206, + 184, 25, 5, 255, 74, 184, 25, 5, 73, 184, 25, 5, 236, 34, 184, 25, 5, 70, + 184, 25, 5, 214, 118, 184, 25, 5, 245, 210, 184, 25, 5, 254, 202, 184, + 25, 5, 226, 184, 184, 25, 5, 253, 193, 184, 5, 213, 152, 184, 5, 214, + 218, 184, 1, 234, 116, 184, 1, 242, 227, 184, 1, 210, 116, 184, 1, 222, + 180, 184, 1, 244, 197, 184, 21, 210, 86, 184, 21, 110, 184, 21, 105, 184, + 21, 158, 184, 21, 161, 184, 21, 189, 184, 21, 194, 184, 21, 198, 184, 21, + 195, 184, 21, 200, 184, 216, 75, 184, 254, 254, 184, 235, 179, 184, 214, + 146, 184, 245, 182, 226, 189, 184, 5, 211, 78, 171, 5, 251, 0, 171, 5, + 254, 76, 171, 5, 213, 147, 171, 1, 61, 171, 1, 255, 74, 171, 1, 73, 171, + 1, 236, 34, 171, 1, 70, 171, 1, 214, 118, 171, 1, 149, 153, 171, 1, 149, + 156, 171, 25, 251, 3, 75, 171, 1, 75, 171, 1, 254, 202, 171, 25, 251, 3, + 76, 171, 1, 76, 171, 1, 253, 193, 171, 1, 176, 171, 1, 234, 133, 171, 1, + 243, 136, 171, 1, 242, 250, 171, 1, 229, 78, 171, 1, 251, 34, 171, 1, + 250, 158, 171, 1, 235, 142, 171, 1, 235, 115, 171, 1, 227, 166, 171, 1, + 215, 157, 171, 1, 215, 145, 171, 1, 248, 136, 171, 1, 248, 120, 171, 1, + 228, 111, 171, 1, 217, 106, 171, 1, 216, 209, 171, 1, 248, 222, 171, 1, + 248, 26, 171, 1, 197, 171, 1, 190, 171, 1, 225, 148, 171, 1, 252, 192, + 171, 1, 252, 19, 171, 1, 185, 171, 1, 191, 171, 1, 205, 171, 1, 233, 136, + 171, 1, 232, 185, 171, 1, 214, 27, 171, 1, 220, 103, 171, 1, 218, 224, + 171, 1, 206, 171, 1, 162, 171, 5, 227, 206, 171, 5, 253, 176, 171, 25, 5, + 255, 74, 171, 25, 5, 73, 171, 25, 5, 236, 34, 171, 25, 5, 70, 171, 25, 5, + 214, 118, 171, 25, 5, 149, 153, 171, 25, 5, 149, 222, 181, 171, 25, 5, + 251, 3, 75, 171, 25, 5, 75, 171, 25, 5, 254, 202, 171, 25, 5, 251, 3, 76, + 171, 25, 5, 76, 171, 25, 5, 253, 193, 171, 5, 213, 152, 171, 226, 205, + 171, 1, 149, 222, 181, 171, 1, 149, 232, 186, 171, 25, 5, 149, 156, 171, + 25, 5, 149, 232, 186, 171, 21, 210, 86, 171, 21, 110, 171, 21, 105, 171, 21, 158, 171, 21, 161, 171, 21, 189, 171, 21, 194, 171, 21, 198, 171, 21, - 195, 171, 21, 200, 171, 255, 21, 50, 171, 222, 118, 50, 157, 5, 250, 255, - 157, 5, 254, 75, 157, 5, 213, 147, 157, 1, 61, 157, 1, 255, 73, 157, 1, - 73, 157, 1, 236, 33, 157, 1, 70, 157, 1, 214, 118, 157, 1, 149, 153, 157, - 1, 149, 156, 157, 1, 75, 157, 1, 254, 201, 157, 1, 76, 157, 1, 253, 192, - 157, 1, 176, 157, 1, 234, 132, 157, 1, 243, 135, 157, 1, 242, 249, 157, - 1, 229, 77, 157, 1, 251, 33, 157, 1, 250, 157, 157, 1, 235, 141, 157, 1, - 235, 114, 157, 1, 227, 165, 157, 1, 215, 156, 157, 1, 215, 144, 157, 1, - 248, 135, 157, 1, 248, 119, 157, 1, 228, 110, 157, 1, 217, 105, 157, 1, - 216, 208, 157, 1, 248, 221, 157, 1, 248, 25, 157, 1, 197, 157, 1, 190, - 157, 1, 225, 147, 157, 1, 252, 191, 157, 1, 252, 18, 157, 1, 184, 157, 1, - 191, 157, 1, 205, 157, 1, 233, 135, 157, 1, 232, 184, 157, 1, 214, 27, - 157, 1, 220, 102, 157, 1, 218, 223, 157, 1, 206, 157, 1, 162, 157, 5, - 227, 205, 157, 5, 253, 175, 157, 25, 5, 255, 73, 157, 25, 5, 73, 157, 25, - 5, 236, 33, 157, 25, 5, 70, 157, 25, 5, 214, 118, 157, 25, 5, 149, 153, - 157, 25, 5, 149, 222, 180, 157, 25, 5, 75, 157, 25, 5, 254, 201, 157, 25, - 5, 76, 157, 25, 5, 253, 192, 157, 5, 213, 152, 157, 254, 202, 233, 23, - 78, 157, 253, 193, 233, 23, 78, 157, 1, 222, 179, 157, 1, 223, 39, 157, - 1, 210, 168, 157, 1, 149, 222, 180, 157, 1, 149, 232, 185, 157, 25, 5, - 149, 156, 157, 25, 5, 149, 232, 185, 157, 21, 210, 86, 157, 21, 110, 157, + 195, 171, 21, 200, 171, 255, 22, 50, 171, 222, 119, 50, 157, 5, 251, 0, + 157, 5, 254, 76, 157, 5, 213, 147, 157, 1, 61, 157, 1, 255, 74, 157, 1, + 73, 157, 1, 236, 34, 157, 1, 70, 157, 1, 214, 118, 157, 1, 149, 153, 157, + 1, 149, 156, 157, 1, 75, 157, 1, 254, 202, 157, 1, 76, 157, 1, 253, 193, + 157, 1, 176, 157, 1, 234, 133, 157, 1, 243, 136, 157, 1, 242, 250, 157, + 1, 229, 78, 157, 1, 251, 34, 157, 1, 250, 158, 157, 1, 235, 142, 157, 1, + 235, 115, 157, 1, 227, 166, 157, 1, 215, 157, 157, 1, 215, 145, 157, 1, + 248, 136, 157, 1, 248, 120, 157, 1, 228, 111, 157, 1, 217, 106, 157, 1, + 216, 209, 157, 1, 248, 222, 157, 1, 248, 26, 157, 1, 197, 157, 1, 190, + 157, 1, 225, 148, 157, 1, 252, 192, 157, 1, 252, 19, 157, 1, 185, 157, 1, + 191, 157, 1, 205, 157, 1, 233, 136, 157, 1, 232, 185, 157, 1, 214, 27, + 157, 1, 220, 103, 157, 1, 218, 224, 157, 1, 206, 157, 1, 162, 157, 5, + 227, 206, 157, 5, 253, 176, 157, 25, 5, 255, 74, 157, 25, 5, 73, 157, 25, + 5, 236, 34, 157, 25, 5, 70, 157, 25, 5, 214, 118, 157, 25, 5, 149, 153, + 157, 25, 5, 149, 222, 181, 157, 25, 5, 75, 157, 25, 5, 254, 202, 157, 25, + 5, 76, 157, 25, 5, 253, 193, 157, 5, 213, 152, 157, 254, 203, 233, 24, + 78, 157, 253, 194, 233, 24, 78, 157, 1, 222, 180, 157, 1, 223, 40, 157, + 1, 210, 168, 157, 1, 149, 222, 181, 157, 1, 149, 232, 186, 157, 25, 5, + 149, 156, 157, 25, 5, 149, 232, 186, 157, 21, 210, 86, 157, 21, 110, 157, 21, 105, 157, 21, 158, 157, 21, 161, 157, 21, 189, 157, 21, 194, 157, 21, - 198, 157, 21, 195, 157, 21, 200, 157, 235, 161, 157, 1, 212, 65, 157, - 244, 2, 123, 224, 21, 157, 244, 2, 123, 242, 27, 157, 244, 2, 134, 224, - 19, 157, 244, 2, 123, 219, 117, 157, 244, 2, 123, 245, 188, 157, 244, 2, - 134, 219, 116, 36, 5, 254, 75, 36, 5, 213, 147, 36, 1, 61, 36, 1, 255, - 73, 36, 1, 73, 36, 1, 236, 33, 36, 1, 70, 36, 1, 214, 118, 36, 1, 75, 36, - 1, 245, 209, 36, 1, 254, 201, 36, 1, 76, 36, 1, 226, 183, 36, 1, 253, - 192, 36, 1, 176, 36, 1, 229, 77, 36, 1, 251, 33, 36, 1, 235, 141, 36, 1, - 227, 165, 36, 1, 215, 156, 36, 1, 228, 110, 36, 1, 217, 105, 36, 1, 197, - 36, 1, 228, 92, 36, 1, 190, 36, 1, 184, 36, 1, 191, 36, 1, 205, 36, 1, - 222, 179, 36, 1, 233, 135, 36, 1, 232, 184, 36, 1, 232, 175, 36, 1, 214, - 27, 36, 1, 220, 102, 36, 1, 218, 223, 36, 1, 206, 36, 1, 162, 36, 25, 5, - 255, 73, 36, 25, 5, 73, 36, 25, 5, 236, 33, 36, 25, 5, 70, 36, 25, 5, - 214, 118, 36, 25, 5, 75, 36, 25, 5, 245, 209, 36, 25, 5, 254, 201, 36, - 25, 5, 76, 36, 25, 5, 226, 183, 36, 25, 5, 253, 192, 36, 5, 213, 152, 36, - 226, 204, 36, 253, 193, 233, 23, 78, 36, 21, 210, 86, 36, 21, 110, 36, + 198, 157, 21, 195, 157, 21, 200, 157, 235, 162, 157, 1, 212, 65, 157, + 244, 3, 123, 224, 22, 157, 244, 3, 123, 242, 28, 157, 244, 3, 134, 224, + 20, 157, 244, 3, 123, 219, 118, 157, 244, 3, 123, 245, 189, 157, 244, 3, + 134, 219, 117, 36, 5, 254, 76, 36, 5, 213, 147, 36, 1, 61, 36, 1, 255, + 74, 36, 1, 73, 36, 1, 236, 34, 36, 1, 70, 36, 1, 214, 118, 36, 1, 75, 36, + 1, 245, 210, 36, 1, 254, 202, 36, 1, 76, 36, 1, 226, 184, 36, 1, 253, + 193, 36, 1, 176, 36, 1, 229, 78, 36, 1, 251, 34, 36, 1, 235, 142, 36, 1, + 227, 166, 36, 1, 215, 157, 36, 1, 228, 111, 36, 1, 217, 106, 36, 1, 197, + 36, 1, 228, 93, 36, 1, 190, 36, 1, 185, 36, 1, 191, 36, 1, 205, 36, 1, + 222, 180, 36, 1, 233, 136, 36, 1, 232, 185, 36, 1, 232, 176, 36, 1, 214, + 27, 36, 1, 220, 103, 36, 1, 218, 224, 36, 1, 206, 36, 1, 162, 36, 25, 5, + 255, 74, 36, 25, 5, 73, 36, 25, 5, 236, 34, 36, 25, 5, 70, 36, 25, 5, + 214, 118, 36, 25, 5, 75, 36, 25, 5, 245, 210, 36, 25, 5, 254, 202, 36, + 25, 5, 76, 36, 25, 5, 226, 184, 36, 25, 5, 253, 193, 36, 5, 213, 152, 36, + 226, 205, 36, 253, 194, 233, 24, 78, 36, 21, 210, 86, 36, 21, 110, 36, 21, 105, 36, 21, 158, 36, 21, 161, 36, 21, 189, 36, 21, 194, 36, 21, 198, - 36, 21, 195, 36, 21, 200, 36, 54, 216, 247, 36, 54, 123, 240, 210, 36, - 54, 123, 216, 147, 36, 248, 146, 50, 36, 230, 135, 50, 36, 211, 45, 50, - 36, 248, 87, 50, 36, 249, 139, 50, 36, 253, 238, 77, 50, 36, 222, 118, - 50, 36, 54, 50, 148, 5, 250, 255, 148, 5, 254, 75, 148, 5, 213, 147, 148, - 1, 61, 148, 1, 255, 73, 148, 1, 73, 148, 1, 236, 33, 148, 1, 70, 148, 1, + 36, 21, 195, 36, 21, 200, 36, 54, 216, 248, 36, 54, 123, 240, 211, 36, + 54, 123, 216, 148, 36, 248, 147, 50, 36, 230, 136, 50, 36, 211, 45, 50, + 36, 248, 88, 50, 36, 249, 140, 50, 36, 253, 239, 77, 50, 36, 222, 119, + 50, 36, 54, 50, 148, 5, 251, 0, 148, 5, 254, 76, 148, 5, 213, 147, 148, + 1, 61, 148, 1, 255, 74, 148, 1, 73, 148, 1, 236, 34, 148, 1, 70, 148, 1, 214, 118, 148, 1, 149, 153, 148, 1, 149, 156, 148, 1, 75, 148, 1, 245, - 209, 148, 1, 254, 201, 148, 1, 76, 148, 1, 226, 183, 148, 1, 253, 192, - 148, 1, 176, 148, 1, 234, 132, 148, 1, 243, 135, 148, 1, 242, 249, 148, - 1, 229, 77, 148, 1, 251, 33, 148, 1, 250, 157, 148, 1, 235, 141, 148, 1, - 235, 114, 148, 1, 227, 165, 148, 1, 215, 156, 148, 1, 215, 144, 148, 1, - 248, 135, 148, 1, 248, 119, 148, 1, 228, 110, 148, 1, 217, 105, 148, 1, - 216, 208, 148, 1, 248, 221, 148, 1, 248, 25, 148, 1, 197, 148, 1, 190, - 148, 1, 225, 147, 148, 1, 252, 191, 148, 1, 252, 18, 148, 1, 184, 148, 1, - 191, 148, 1, 205, 148, 1, 222, 179, 148, 1, 233, 135, 148, 1, 232, 184, - 148, 1, 214, 27, 148, 1, 220, 102, 148, 1, 218, 223, 148, 1, 206, 148, 1, - 162, 148, 5, 253, 175, 148, 25, 5, 255, 73, 148, 25, 5, 73, 148, 25, 5, - 236, 33, 148, 25, 5, 70, 148, 25, 5, 214, 118, 148, 25, 5, 149, 153, 148, - 25, 5, 149, 222, 180, 148, 25, 5, 75, 148, 25, 5, 245, 209, 148, 25, 5, - 254, 201, 148, 25, 5, 76, 148, 25, 5, 226, 183, 148, 25, 5, 253, 192, - 148, 5, 213, 152, 148, 233, 23, 78, 148, 254, 202, 233, 23, 78, 148, 1, - 215, 183, 148, 1, 246, 38, 148, 1, 149, 222, 180, 148, 1, 149, 232, 185, - 148, 25, 5, 149, 156, 148, 25, 5, 149, 232, 185, 148, 21, 210, 86, 148, + 210, 148, 1, 254, 202, 148, 1, 76, 148, 1, 226, 184, 148, 1, 253, 193, + 148, 1, 176, 148, 1, 234, 133, 148, 1, 243, 136, 148, 1, 242, 250, 148, + 1, 229, 78, 148, 1, 251, 34, 148, 1, 250, 158, 148, 1, 235, 142, 148, 1, + 235, 115, 148, 1, 227, 166, 148, 1, 215, 157, 148, 1, 215, 145, 148, 1, + 248, 136, 148, 1, 248, 120, 148, 1, 228, 111, 148, 1, 217, 106, 148, 1, + 216, 209, 148, 1, 248, 222, 148, 1, 248, 26, 148, 1, 197, 148, 1, 190, + 148, 1, 225, 148, 148, 1, 252, 192, 148, 1, 252, 19, 148, 1, 185, 148, 1, + 191, 148, 1, 205, 148, 1, 222, 180, 148, 1, 233, 136, 148, 1, 232, 185, + 148, 1, 214, 27, 148, 1, 220, 103, 148, 1, 218, 224, 148, 1, 206, 148, 1, + 162, 148, 5, 253, 176, 148, 25, 5, 255, 74, 148, 25, 5, 73, 148, 25, 5, + 236, 34, 148, 25, 5, 70, 148, 25, 5, 214, 118, 148, 25, 5, 149, 153, 148, + 25, 5, 149, 222, 181, 148, 25, 5, 75, 148, 25, 5, 245, 210, 148, 25, 5, + 254, 202, 148, 25, 5, 76, 148, 25, 5, 226, 184, 148, 25, 5, 253, 193, + 148, 5, 213, 152, 148, 233, 24, 78, 148, 254, 203, 233, 24, 78, 148, 1, + 215, 184, 148, 1, 246, 39, 148, 1, 149, 222, 181, 148, 1, 149, 232, 186, + 148, 25, 5, 149, 156, 148, 25, 5, 149, 232, 186, 148, 21, 210, 86, 148, 21, 110, 148, 21, 105, 148, 21, 158, 148, 21, 161, 148, 21, 189, 148, 21, - 194, 148, 21, 198, 148, 21, 195, 148, 21, 200, 148, 244, 2, 21, 210, 87, - 31, 226, 237, 224, 223, 64, 161, 148, 244, 2, 21, 123, 31, 226, 237, 224, - 223, 64, 161, 148, 244, 2, 21, 113, 31, 226, 237, 224, 223, 64, 161, 148, - 244, 2, 21, 134, 31, 226, 237, 224, 223, 64, 161, 148, 244, 2, 21, 123, - 31, 245, 42, 224, 223, 64, 161, 148, 244, 2, 21, 113, 31, 245, 42, 224, - 223, 64, 161, 148, 244, 2, 21, 134, 31, 245, 42, 224, 223, 64, 161, 148, - 5, 215, 84, 165, 5, 254, 75, 165, 5, 213, 147, 165, 1, 61, 165, 1, 255, - 73, 165, 1, 73, 165, 1, 236, 33, 165, 1, 70, 165, 1, 214, 118, 165, 1, - 149, 153, 165, 1, 149, 156, 165, 1, 75, 165, 1, 245, 209, 165, 1, 254, - 201, 165, 1, 76, 165, 1, 226, 183, 165, 1, 253, 192, 165, 1, 176, 165, 1, - 234, 132, 165, 1, 243, 135, 165, 1, 242, 249, 165, 1, 229, 77, 165, 1, - 251, 33, 165, 1, 250, 157, 165, 1, 235, 141, 165, 1, 235, 114, 165, 1, - 227, 165, 165, 1, 215, 156, 165, 1, 215, 144, 165, 1, 248, 135, 165, 1, - 248, 119, 165, 1, 228, 110, 165, 1, 217, 105, 165, 1, 216, 208, 165, 1, - 248, 221, 165, 1, 248, 25, 165, 1, 197, 165, 1, 190, 165, 1, 225, 147, - 165, 1, 252, 191, 165, 1, 252, 18, 165, 1, 184, 165, 1, 191, 165, 1, 205, - 165, 1, 222, 179, 165, 1, 233, 135, 165, 1, 232, 184, 165, 1, 214, 27, - 165, 1, 220, 102, 165, 1, 218, 223, 165, 1, 206, 165, 1, 162, 165, 5, - 227, 205, 165, 5, 253, 175, 165, 25, 5, 255, 73, 165, 25, 5, 73, 165, 25, - 5, 236, 33, 165, 25, 5, 70, 165, 25, 5, 214, 118, 165, 25, 5, 149, 153, - 165, 25, 5, 149, 222, 180, 165, 25, 5, 75, 165, 25, 5, 245, 209, 165, 25, - 5, 254, 201, 165, 25, 5, 76, 165, 25, 5, 226, 183, 165, 25, 5, 253, 192, - 165, 5, 213, 152, 165, 233, 23, 78, 165, 254, 202, 233, 23, 78, 165, 1, - 244, 196, 165, 1, 149, 222, 180, 165, 1, 149, 232, 185, 165, 25, 5, 149, - 156, 165, 25, 5, 149, 232, 185, 165, 21, 210, 86, 165, 21, 110, 165, 21, + 194, 148, 21, 198, 148, 21, 195, 148, 21, 200, 148, 244, 3, 21, 210, 87, + 31, 226, 238, 224, 224, 64, 161, 148, 244, 3, 21, 123, 31, 226, 238, 224, + 224, 64, 161, 148, 244, 3, 21, 113, 31, 226, 238, 224, 224, 64, 161, 148, + 244, 3, 21, 134, 31, 226, 238, 224, 224, 64, 161, 148, 244, 3, 21, 123, + 31, 245, 43, 224, 224, 64, 161, 148, 244, 3, 21, 113, 31, 245, 43, 224, + 224, 64, 161, 148, 244, 3, 21, 134, 31, 245, 43, 224, 224, 64, 161, 148, + 5, 215, 84, 165, 5, 254, 76, 165, 5, 213, 147, 165, 1, 61, 165, 1, 255, + 74, 165, 1, 73, 165, 1, 236, 34, 165, 1, 70, 165, 1, 214, 118, 165, 1, + 149, 153, 165, 1, 149, 156, 165, 1, 75, 165, 1, 245, 210, 165, 1, 254, + 202, 165, 1, 76, 165, 1, 226, 184, 165, 1, 253, 193, 165, 1, 176, 165, 1, + 234, 133, 165, 1, 243, 136, 165, 1, 242, 250, 165, 1, 229, 78, 165, 1, + 251, 34, 165, 1, 250, 158, 165, 1, 235, 142, 165, 1, 235, 115, 165, 1, + 227, 166, 165, 1, 215, 157, 165, 1, 215, 145, 165, 1, 248, 136, 165, 1, + 248, 120, 165, 1, 228, 111, 165, 1, 217, 106, 165, 1, 216, 209, 165, 1, + 248, 222, 165, 1, 248, 26, 165, 1, 197, 165, 1, 190, 165, 1, 225, 148, + 165, 1, 252, 192, 165, 1, 252, 19, 165, 1, 185, 165, 1, 191, 165, 1, 205, + 165, 1, 222, 180, 165, 1, 233, 136, 165, 1, 232, 185, 165, 1, 214, 27, + 165, 1, 220, 103, 165, 1, 218, 224, 165, 1, 206, 165, 1, 162, 165, 5, + 227, 206, 165, 5, 253, 176, 165, 25, 5, 255, 74, 165, 25, 5, 73, 165, 25, + 5, 236, 34, 165, 25, 5, 70, 165, 25, 5, 214, 118, 165, 25, 5, 149, 153, + 165, 25, 5, 149, 222, 181, 165, 25, 5, 75, 165, 25, 5, 245, 210, 165, 25, + 5, 254, 202, 165, 25, 5, 76, 165, 25, 5, 226, 184, 165, 25, 5, 253, 193, + 165, 5, 213, 152, 165, 233, 24, 78, 165, 254, 203, 233, 24, 78, 165, 1, + 244, 197, 165, 1, 149, 222, 181, 165, 1, 149, 232, 186, 165, 25, 5, 149, + 156, 165, 25, 5, 149, 232, 186, 165, 21, 210, 86, 165, 21, 110, 165, 21, 105, 165, 21, 158, 165, 21, 161, 165, 21, 189, 165, 21, 194, 165, 21, - 198, 165, 21, 195, 165, 21, 200, 165, 5, 235, 102, 165, 5, 214, 161, 136, - 5, 254, 75, 136, 5, 213, 147, 136, 1, 61, 136, 1, 255, 73, 136, 1, 73, - 136, 1, 236, 33, 136, 1, 70, 136, 1, 214, 118, 136, 1, 149, 153, 136, 1, - 149, 156, 136, 1, 75, 136, 1, 245, 209, 136, 1, 254, 201, 136, 1, 76, - 136, 1, 226, 183, 136, 1, 253, 192, 136, 1, 176, 136, 1, 234, 132, 136, - 1, 243, 135, 136, 1, 242, 249, 136, 1, 229, 77, 136, 1, 251, 33, 136, 1, - 250, 157, 136, 1, 235, 141, 136, 1, 235, 114, 136, 1, 227, 165, 136, 1, - 215, 156, 136, 1, 215, 144, 136, 1, 248, 135, 136, 1, 248, 119, 136, 1, - 228, 110, 136, 1, 217, 105, 136, 1, 216, 208, 136, 1, 248, 221, 136, 1, - 248, 25, 136, 1, 197, 136, 1, 228, 92, 136, 1, 190, 136, 1, 225, 147, - 136, 1, 252, 191, 136, 1, 252, 18, 136, 1, 184, 136, 1, 191, 136, 1, 205, - 136, 1, 222, 179, 136, 1, 233, 135, 136, 1, 232, 184, 136, 1, 232, 175, - 136, 1, 214, 27, 136, 1, 220, 102, 136, 1, 218, 223, 136, 1, 206, 136, 1, - 162, 136, 1, 215, 125, 136, 5, 253, 175, 136, 25, 5, 255, 73, 136, 25, 5, - 73, 136, 25, 5, 236, 33, 136, 25, 5, 70, 136, 25, 5, 214, 118, 136, 25, - 5, 149, 153, 136, 25, 5, 149, 222, 180, 136, 25, 5, 75, 136, 25, 5, 245, - 209, 136, 25, 5, 254, 201, 136, 25, 5, 76, 136, 25, 5, 226, 183, 136, 25, - 5, 253, 192, 136, 5, 213, 152, 136, 1, 59, 223, 73, 136, 253, 193, 233, - 23, 78, 136, 1, 149, 222, 180, 136, 1, 149, 232, 185, 136, 25, 5, 149, - 156, 136, 25, 5, 149, 232, 185, 136, 21, 210, 86, 136, 21, 110, 136, 21, + 198, 165, 21, 195, 165, 21, 200, 165, 5, 235, 103, 165, 5, 214, 161, 136, + 5, 254, 76, 136, 5, 213, 147, 136, 1, 61, 136, 1, 255, 74, 136, 1, 73, + 136, 1, 236, 34, 136, 1, 70, 136, 1, 214, 118, 136, 1, 149, 153, 136, 1, + 149, 156, 136, 1, 75, 136, 1, 245, 210, 136, 1, 254, 202, 136, 1, 76, + 136, 1, 226, 184, 136, 1, 253, 193, 136, 1, 176, 136, 1, 234, 133, 136, + 1, 243, 136, 136, 1, 242, 250, 136, 1, 229, 78, 136, 1, 251, 34, 136, 1, + 250, 158, 136, 1, 235, 142, 136, 1, 235, 115, 136, 1, 227, 166, 136, 1, + 215, 157, 136, 1, 215, 145, 136, 1, 248, 136, 136, 1, 248, 120, 136, 1, + 228, 111, 136, 1, 217, 106, 136, 1, 216, 209, 136, 1, 248, 222, 136, 1, + 248, 26, 136, 1, 197, 136, 1, 228, 93, 136, 1, 190, 136, 1, 225, 148, + 136, 1, 252, 192, 136, 1, 252, 19, 136, 1, 185, 136, 1, 191, 136, 1, 205, + 136, 1, 222, 180, 136, 1, 233, 136, 136, 1, 232, 185, 136, 1, 232, 176, + 136, 1, 214, 27, 136, 1, 220, 103, 136, 1, 218, 224, 136, 1, 206, 136, 1, + 162, 136, 1, 215, 126, 136, 5, 253, 176, 136, 25, 5, 255, 74, 136, 25, 5, + 73, 136, 25, 5, 236, 34, 136, 25, 5, 70, 136, 25, 5, 214, 118, 136, 25, + 5, 149, 153, 136, 25, 5, 149, 222, 181, 136, 25, 5, 75, 136, 25, 5, 245, + 210, 136, 25, 5, 254, 202, 136, 25, 5, 76, 136, 25, 5, 226, 184, 136, 25, + 5, 253, 193, 136, 5, 213, 152, 136, 1, 59, 223, 74, 136, 253, 194, 233, + 24, 78, 136, 1, 149, 222, 181, 136, 1, 149, 232, 186, 136, 25, 5, 149, + 156, 136, 25, 5, 149, 232, 186, 136, 21, 210, 86, 136, 21, 110, 136, 21, 105, 136, 21, 158, 136, 21, 161, 136, 21, 189, 136, 21, 194, 136, 21, - 198, 136, 21, 195, 136, 21, 200, 136, 54, 216, 247, 136, 54, 123, 240, - 210, 136, 54, 123, 216, 147, 136, 244, 2, 123, 224, 21, 136, 244, 2, 123, - 242, 27, 136, 244, 2, 134, 224, 19, 136, 248, 150, 78, 136, 1, 250, 99, - 228, 111, 136, 1, 250, 99, 230, 25, 136, 1, 250, 99, 222, 180, 136, 1, - 250, 99, 156, 136, 1, 250, 99, 232, 185, 136, 1, 250, 99, 235, 23, 175, - 5, 254, 74, 175, 5, 213, 146, 175, 1, 253, 165, 175, 1, 255, 27, 175, 1, - 254, 223, 175, 1, 254, 238, 175, 1, 235, 151, 175, 1, 236, 32, 175, 1, - 214, 110, 175, 1, 214, 112, 175, 1, 235, 173, 175, 1, 235, 174, 175, 1, - 236, 18, 175, 1, 236, 20, 175, 1, 245, 17, 175, 1, 245, 204, 175, 1, 254, - 188, 175, 1, 226, 108, 175, 1, 226, 177, 175, 1, 253, 178, 175, 1, 254, - 146, 234, 187, 175, 1, 231, 209, 234, 187, 175, 1, 254, 146, 243, 82, - 175, 1, 231, 209, 243, 82, 175, 1, 234, 229, 229, 222, 175, 1, 221, 236, - 243, 82, 175, 1, 254, 146, 250, 216, 175, 1, 231, 209, 250, 216, 175, 1, - 254, 146, 235, 127, 175, 1, 231, 209, 235, 127, 175, 1, 217, 98, 229, - 222, 175, 1, 217, 98, 221, 235, 229, 223, 175, 1, 221, 236, 235, 127, - 175, 1, 254, 146, 215, 152, 175, 1, 231, 209, 215, 152, 175, 1, 254, 146, - 248, 126, 175, 1, 231, 209, 248, 126, 175, 1, 230, 53, 229, 180, 175, 1, - 221, 236, 248, 126, 175, 1, 254, 146, 217, 30, 175, 1, 231, 209, 217, 30, - 175, 1, 254, 146, 248, 144, 175, 1, 231, 209, 248, 144, 175, 1, 248, 174, - 229, 180, 175, 1, 221, 236, 248, 144, 175, 1, 254, 146, 225, 228, 175, 1, - 231, 209, 225, 228, 175, 1, 254, 146, 252, 112, 175, 1, 231, 209, 252, - 112, 175, 1, 231, 131, 175, 1, 254, 131, 252, 112, 175, 1, 211, 51, 175, - 1, 223, 133, 175, 1, 248, 174, 233, 67, 175, 1, 214, 1, 175, 1, 217, 98, - 221, 210, 175, 1, 230, 53, 221, 210, 175, 1, 248, 174, 221, 210, 175, 1, - 241, 242, 175, 1, 230, 53, 233, 67, 175, 1, 244, 156, 175, 5, 254, 177, - 175, 25, 5, 254, 233, 175, 25, 5, 234, 155, 254, 240, 175, 25, 5, 247, - 228, 254, 240, 175, 25, 5, 234, 155, 235, 170, 175, 25, 5, 247, 228, 235, - 170, 175, 25, 5, 234, 155, 226, 88, 175, 25, 5, 247, 228, 226, 88, 175, - 25, 5, 243, 124, 175, 25, 5, 234, 15, 175, 25, 5, 247, 228, 234, 15, 175, - 25, 5, 234, 17, 248, 67, 175, 25, 5, 234, 16, 242, 47, 254, 233, 175, 25, - 5, 234, 16, 242, 47, 247, 228, 254, 233, 175, 25, 5, 234, 16, 242, 47, - 243, 81, 175, 25, 5, 243, 81, 175, 25, 5, 247, 228, 243, 124, 175, 25, 5, - 247, 228, 243, 81, 175, 224, 141, 233, 207, 168, 135, 234, 29, 234, 246, - 168, 135, 234, 106, 234, 128, 168, 135, 234, 106, 234, 99, 168, 135, 234, - 106, 234, 95, 168, 135, 234, 106, 234, 103, 168, 135, 234, 106, 223, 154, - 168, 135, 229, 5, 228, 248, 168, 135, 250, 87, 250, 147, 168, 135, 250, - 87, 250, 95, 168, 135, 250, 87, 250, 146, 168, 135, 219, 59, 219, 58, - 168, 135, 250, 87, 250, 83, 168, 135, 210, 245, 210, 252, 168, 135, 247, - 146, 250, 154, 168, 135, 216, 42, 225, 238, 168, 135, 216, 157, 216, 200, - 168, 135, 216, 157, 229, 201, 168, 135, 216, 157, 225, 111, 168, 135, - 228, 75, 229, 98, 168, 135, 247, 146, 248, 68, 168, 135, 216, 42, 217, - 55, 168, 135, 216, 157, 216, 131, 168, 135, 216, 157, 216, 204, 168, 135, - 216, 157, 216, 154, 168, 135, 228, 75, 227, 237, 168, 135, 251, 206, 252, - 164, 168, 135, 225, 17, 225, 42, 168, 135, 225, 122, 225, 113, 168, 135, - 244, 44, 244, 196, 168, 135, 225, 122, 225, 141, 168, 135, 244, 44, 244, - 173, 168, 135, 225, 122, 221, 247, 168, 135, 230, 162, 184, 168, 135, - 210, 245, 211, 79, 168, 135, 222, 212, 222, 139, 168, 135, 222, 140, 168, - 135, 232, 157, 232, 206, 168, 135, 232, 98, 168, 135, 211, 228, 212, 61, - 168, 135, 219, 59, 222, 6, 168, 135, 219, 59, 222, 114, 168, 135, 219, - 59, 218, 82, 168, 135, 241, 69, 241, 159, 168, 135, 232, 157, 250, 68, - 168, 135, 144, 254, 115, 168, 135, 241, 69, 228, 70, 168, 135, 226, 68, - 168, 135, 221, 230, 61, 168, 135, 231, 204, 242, 17, 168, 135, 221, 230, - 255, 73, 168, 135, 221, 230, 254, 136, 168, 135, 221, 230, 73, 168, 135, - 221, 230, 236, 33, 168, 135, 221, 230, 214, 214, 168, 135, 221, 230, 214, - 212, 168, 135, 221, 230, 70, 168, 135, 221, 230, 214, 118, 168, 135, 225, - 124, 168, 249, 98, 16, 252, 165, 168, 135, 221, 230, 75, 168, 135, 221, - 230, 254, 243, 168, 135, 221, 230, 76, 168, 135, 221, 230, 254, 202, 231, - 198, 168, 135, 221, 230, 254, 202, 231, 199, 168, 135, 233, 106, 168, - 135, 231, 195, 168, 135, 231, 196, 168, 135, 231, 204, 245, 180, 168, - 135, 231, 204, 216, 156, 168, 135, 231, 204, 215, 228, 168, 135, 231, - 204, 250, 135, 168, 135, 216, 198, 168, 135, 228, 205, 168, 135, 211, 73, - 168, 135, 244, 35, 168, 21, 210, 86, 168, 21, 110, 168, 21, 105, 168, 21, - 158, 168, 21, 161, 168, 21, 189, 168, 21, 194, 168, 21, 198, 168, 21, - 195, 168, 21, 200, 168, 135, 254, 111, 168, 135, 234, 104, 209, 209, 1, - 234, 28, 209, 209, 1, 234, 106, 218, 35, 209, 209, 1, 234, 106, 217, 62, - 209, 209, 1, 229, 4, 209, 209, 1, 249, 238, 209, 209, 1, 219, 59, 217, - 62, 209, 209, 1, 227, 134, 209, 209, 1, 247, 145, 209, 209, 1, 111, 209, - 209, 1, 216, 157, 218, 35, 209, 209, 1, 216, 157, 217, 62, 209, 209, 1, - 228, 74, 209, 209, 1, 251, 205, 209, 209, 1, 225, 16, 209, 209, 1, 225, - 122, 218, 35, 209, 209, 1, 244, 44, 217, 62, 209, 209, 1, 225, 122, 217, - 62, 209, 209, 1, 244, 44, 218, 35, 209, 209, 1, 230, 161, 209, 209, 1, - 210, 244, 209, 209, 1, 232, 157, 232, 206, 209, 209, 1, 232, 157, 232, - 121, 209, 209, 1, 211, 227, 209, 209, 1, 219, 59, 218, 35, 209, 209, 1, - 241, 69, 218, 35, 209, 209, 1, 76, 209, 209, 1, 241, 69, 217, 62, 209, - 209, 245, 163, 209, 209, 25, 5, 61, 209, 209, 25, 5, 231, 204, 234, 234, - 209, 209, 25, 5, 255, 73, 209, 209, 25, 5, 254, 136, 209, 209, 25, 5, 73, - 209, 209, 25, 5, 236, 33, 209, 209, 25, 5, 211, 117, 209, 209, 25, 5, - 210, 169, 209, 209, 25, 5, 70, 209, 209, 25, 5, 214, 118, 209, 209, 25, - 5, 231, 204, 234, 13, 209, 209, 220, 145, 5, 232, 156, 209, 209, 220, - 145, 5, 227, 134, 209, 209, 25, 5, 75, 209, 209, 25, 5, 245, 195, 209, - 209, 25, 5, 76, 209, 209, 25, 5, 253, 167, 209, 209, 25, 5, 254, 201, - 209, 209, 234, 29, 233, 135, 209, 209, 138, 231, 204, 245, 180, 209, 209, - 138, 231, 204, 216, 156, 209, 209, 138, 231, 204, 216, 117, 209, 209, - 138, 231, 204, 250, 223, 209, 209, 251, 4, 78, 209, 209, 228, 214, 209, + 198, 136, 21, 195, 136, 21, 200, 136, 54, 216, 248, 136, 54, 123, 240, + 211, 136, 54, 123, 216, 148, 136, 244, 3, 123, 224, 22, 136, 244, 3, 123, + 242, 28, 136, 244, 3, 134, 224, 20, 136, 248, 151, 78, 136, 1, 250, 100, + 228, 112, 136, 1, 250, 100, 230, 26, 136, 1, 250, 100, 222, 181, 136, 1, + 250, 100, 156, 136, 1, 250, 100, 232, 186, 136, 1, 250, 100, 235, 24, + 175, 5, 254, 75, 175, 5, 213, 146, 175, 1, 253, 166, 175, 1, 255, 28, + 175, 1, 254, 224, 175, 1, 254, 239, 175, 1, 235, 152, 175, 1, 236, 33, + 175, 1, 214, 110, 175, 1, 214, 112, 175, 1, 235, 174, 175, 1, 235, 175, + 175, 1, 236, 19, 175, 1, 236, 21, 175, 1, 245, 18, 175, 1, 245, 205, 175, + 1, 254, 189, 175, 1, 226, 109, 175, 1, 226, 178, 175, 1, 253, 179, 175, + 1, 254, 147, 234, 188, 175, 1, 231, 210, 234, 188, 175, 1, 254, 147, 243, + 83, 175, 1, 231, 210, 243, 83, 175, 1, 234, 230, 229, 223, 175, 1, 221, + 237, 243, 83, 175, 1, 254, 147, 250, 217, 175, 1, 231, 210, 250, 217, + 175, 1, 254, 147, 235, 128, 175, 1, 231, 210, 235, 128, 175, 1, 217, 99, + 229, 223, 175, 1, 217, 99, 221, 236, 229, 224, 175, 1, 221, 237, 235, + 128, 175, 1, 254, 147, 215, 153, 175, 1, 231, 210, 215, 153, 175, 1, 254, + 147, 248, 127, 175, 1, 231, 210, 248, 127, 175, 1, 230, 54, 229, 181, + 175, 1, 221, 237, 248, 127, 175, 1, 254, 147, 217, 31, 175, 1, 231, 210, + 217, 31, 175, 1, 254, 147, 248, 145, 175, 1, 231, 210, 248, 145, 175, 1, + 248, 175, 229, 181, 175, 1, 221, 237, 248, 145, 175, 1, 254, 147, 225, + 229, 175, 1, 231, 210, 225, 229, 175, 1, 254, 147, 252, 113, 175, 1, 231, + 210, 252, 113, 175, 1, 231, 132, 175, 1, 254, 132, 252, 113, 175, 1, 211, + 51, 175, 1, 223, 134, 175, 1, 248, 175, 233, 68, 175, 1, 214, 1, 175, 1, + 217, 99, 221, 211, 175, 1, 230, 54, 221, 211, 175, 1, 248, 175, 221, 211, + 175, 1, 241, 243, 175, 1, 230, 54, 233, 68, 175, 1, 244, 157, 175, 5, + 254, 178, 175, 25, 5, 254, 234, 175, 25, 5, 234, 156, 254, 241, 175, 25, + 5, 247, 229, 254, 241, 175, 25, 5, 234, 156, 235, 171, 175, 25, 5, 247, + 229, 235, 171, 175, 25, 5, 234, 156, 226, 89, 175, 25, 5, 247, 229, 226, + 89, 175, 25, 5, 243, 125, 175, 25, 5, 234, 16, 175, 25, 5, 247, 229, 234, + 16, 175, 25, 5, 234, 18, 248, 68, 175, 25, 5, 234, 17, 242, 48, 254, 234, + 175, 25, 5, 234, 17, 242, 48, 247, 229, 254, 234, 175, 25, 5, 234, 17, + 242, 48, 243, 82, 175, 25, 5, 243, 82, 175, 25, 5, 247, 229, 243, 125, + 175, 25, 5, 247, 229, 243, 82, 175, 224, 142, 233, 208, 168, 135, 234, + 30, 234, 247, 168, 135, 234, 107, 234, 129, 168, 135, 234, 107, 234, 100, + 168, 135, 234, 107, 234, 96, 168, 135, 234, 107, 234, 104, 168, 135, 234, + 107, 223, 155, 168, 135, 229, 6, 228, 249, 168, 135, 250, 88, 250, 148, + 168, 135, 250, 88, 250, 96, 168, 135, 250, 88, 250, 147, 168, 135, 219, + 60, 219, 59, 168, 135, 250, 88, 250, 84, 168, 135, 210, 245, 210, 252, + 168, 135, 247, 147, 250, 155, 168, 135, 216, 43, 225, 239, 168, 135, 216, + 158, 216, 201, 168, 135, 216, 158, 229, 202, 168, 135, 216, 158, 225, + 112, 168, 135, 228, 76, 229, 99, 168, 135, 247, 147, 248, 69, 168, 135, + 216, 43, 217, 56, 168, 135, 216, 158, 216, 132, 168, 135, 216, 158, 216, + 205, 168, 135, 216, 158, 216, 155, 168, 135, 228, 76, 227, 238, 168, 135, + 251, 207, 252, 165, 168, 135, 225, 18, 225, 43, 168, 135, 225, 123, 225, + 114, 168, 135, 244, 45, 244, 197, 168, 135, 225, 123, 225, 142, 168, 135, + 244, 45, 244, 174, 168, 135, 225, 123, 221, 248, 168, 135, 230, 163, 185, + 168, 135, 210, 245, 211, 79, 168, 135, 222, 213, 222, 140, 168, 135, 222, + 141, 168, 135, 232, 158, 232, 207, 168, 135, 232, 99, 168, 135, 211, 228, + 212, 61, 168, 135, 219, 60, 222, 7, 168, 135, 219, 60, 222, 115, 168, + 135, 219, 60, 218, 83, 168, 135, 241, 70, 241, 160, 168, 135, 232, 158, + 250, 69, 168, 135, 144, 254, 116, 168, 135, 241, 70, 228, 71, 168, 135, + 226, 69, 168, 135, 221, 231, 61, 168, 135, 231, 205, 242, 18, 168, 135, + 221, 231, 255, 74, 168, 135, 221, 231, 254, 137, 168, 135, 221, 231, 73, + 168, 135, 221, 231, 236, 34, 168, 135, 221, 231, 214, 214, 168, 135, 221, + 231, 214, 212, 168, 135, 221, 231, 70, 168, 135, 221, 231, 214, 118, 168, + 135, 225, 125, 168, 249, 99, 16, 252, 166, 168, 135, 221, 231, 75, 168, + 135, 221, 231, 254, 244, 168, 135, 221, 231, 76, 168, 135, 221, 231, 254, + 203, 231, 199, 168, 135, 221, 231, 254, 203, 231, 200, 168, 135, 233, + 107, 168, 135, 231, 196, 168, 135, 231, 197, 168, 135, 231, 205, 245, + 181, 168, 135, 231, 205, 216, 157, 168, 135, 231, 205, 215, 229, 168, + 135, 231, 205, 250, 136, 168, 135, 216, 199, 168, 135, 228, 206, 168, + 135, 211, 73, 168, 135, 244, 36, 168, 21, 210, 86, 168, 21, 110, 168, 21, + 105, 168, 21, 158, 168, 21, 161, 168, 21, 189, 168, 21, 194, 168, 21, + 198, 168, 21, 195, 168, 21, 200, 168, 135, 254, 112, 168, 135, 234, 105, + 209, 209, 1, 234, 29, 209, 209, 1, 234, 107, 218, 36, 209, 209, 1, 234, + 107, 217, 63, 209, 209, 1, 229, 5, 209, 209, 1, 249, 239, 209, 209, 1, + 219, 60, 217, 63, 209, 209, 1, 227, 135, 209, 209, 1, 247, 146, 209, 209, + 1, 111, 209, 209, 1, 216, 158, 218, 36, 209, 209, 1, 216, 158, 217, 63, + 209, 209, 1, 228, 75, 209, 209, 1, 251, 206, 209, 209, 1, 225, 17, 209, + 209, 1, 225, 123, 218, 36, 209, 209, 1, 244, 45, 217, 63, 209, 209, 1, + 225, 123, 217, 63, 209, 209, 1, 244, 45, 218, 36, 209, 209, 1, 230, 162, + 209, 209, 1, 210, 244, 209, 209, 1, 232, 158, 232, 207, 209, 209, 1, 232, + 158, 232, 122, 209, 209, 1, 211, 227, 209, 209, 1, 219, 60, 218, 36, 209, + 209, 1, 241, 70, 218, 36, 209, 209, 1, 76, 209, 209, 1, 241, 70, 217, 63, + 209, 209, 245, 164, 209, 209, 25, 5, 61, 209, 209, 25, 5, 231, 205, 234, + 235, 209, 209, 25, 5, 255, 74, 209, 209, 25, 5, 254, 137, 209, 209, 25, + 5, 73, 209, 209, 25, 5, 236, 34, 209, 209, 25, 5, 211, 117, 209, 209, 25, + 5, 210, 169, 209, 209, 25, 5, 70, 209, 209, 25, 5, 214, 118, 209, 209, + 25, 5, 231, 205, 234, 14, 209, 209, 220, 146, 5, 232, 157, 209, 209, 220, + 146, 5, 227, 135, 209, 209, 25, 5, 75, 209, 209, 25, 5, 245, 196, 209, + 209, 25, 5, 76, 209, 209, 25, 5, 253, 168, 209, 209, 25, 5, 254, 202, + 209, 209, 234, 30, 233, 136, 209, 209, 138, 231, 205, 245, 181, 209, 209, + 138, 231, 205, 216, 157, 209, 209, 138, 231, 205, 216, 118, 209, 209, + 138, 231, 205, 250, 224, 209, 209, 251, 5, 78, 209, 209, 228, 215, 209, 209, 21, 210, 86, 209, 209, 21, 110, 209, 209, 21, 105, 209, 209, 21, 158, 209, 209, 21, 161, 209, 209, 21, 189, 209, 209, 21, 194, 209, 209, - 21, 198, 209, 209, 21, 195, 209, 209, 21, 200, 209, 209, 241, 69, 228, - 74, 209, 209, 241, 69, 230, 161, 209, 209, 1, 234, 107, 242, 174, 209, - 209, 1, 234, 107, 227, 134, 63, 3, 226, 204, 63, 164, 242, 115, 211, 0, - 230, 248, 215, 189, 61, 63, 164, 242, 115, 211, 0, 230, 248, 255, 159, - 222, 216, 252, 77, 184, 63, 164, 242, 115, 211, 0, 230, 248, 255, 159, - 242, 115, 215, 173, 184, 63, 164, 65, 211, 0, 230, 248, 231, 93, 184, 63, - 164, 249, 252, 211, 0, 230, 248, 220, 109, 184, 63, 164, 250, 239, 211, - 0, 230, 248, 225, 112, 220, 96, 184, 63, 164, 211, 0, 230, 248, 215, 173, - 220, 96, 184, 63, 164, 221, 208, 220, 95, 63, 164, 251, 128, 211, 0, 230, - 247, 63, 164, 251, 223, 220, 3, 211, 0, 230, 247, 63, 164, 235, 197, 215, - 172, 63, 164, 248, 61, 215, 173, 251, 127, 63, 164, 220, 95, 63, 164, - 227, 139, 220, 95, 63, 164, 215, 173, 220, 95, 63, 164, 227, 139, 215, - 173, 220, 95, 63, 164, 222, 236, 250, 122, 218, 236, 220, 95, 63, 164, - 223, 42, 242, 146, 220, 95, 63, 164, 250, 239, 255, 163, 222, 144, 231, - 92, 199, 251, 7, 63, 164, 242, 115, 215, 172, 63, 232, 144, 5, 250, 155, - 222, 143, 63, 232, 144, 5, 232, 252, 222, 143, 63, 253, 212, 5, 220, 105, - 243, 65, 255, 164, 222, 143, 63, 253, 212, 5, 255, 161, 190, 63, 253, - 212, 5, 221, 182, 215, 168, 63, 5, 223, 130, 247, 159, 243, 64, 63, 5, - 223, 130, 247, 159, 242, 176, 63, 5, 223, 130, 247, 159, 242, 116, 63, 5, - 223, 130, 229, 219, 243, 64, 63, 5, 223, 130, 229, 219, 242, 176, 63, 5, - 223, 130, 247, 159, 223, 130, 229, 218, 63, 21, 210, 86, 63, 21, 110, 63, + 21, 198, 209, 209, 21, 195, 209, 209, 21, 200, 209, 209, 241, 70, 228, + 75, 209, 209, 241, 70, 230, 162, 209, 209, 1, 234, 108, 242, 175, 209, + 209, 1, 234, 108, 227, 135, 63, 3, 226, 205, 63, 164, 242, 116, 211, 0, + 230, 249, 215, 190, 61, 63, 164, 242, 116, 211, 0, 230, 249, 255, 160, + 222, 217, 252, 78, 185, 63, 164, 242, 116, 211, 0, 230, 249, 255, 160, + 242, 116, 215, 174, 185, 63, 164, 65, 211, 0, 230, 249, 231, 94, 185, 63, + 164, 249, 253, 211, 0, 230, 249, 220, 110, 185, 63, 164, 250, 240, 211, + 0, 230, 249, 225, 113, 220, 97, 185, 63, 164, 211, 0, 230, 249, 215, 174, + 220, 97, 185, 63, 164, 221, 209, 220, 96, 63, 164, 251, 129, 211, 0, 230, + 248, 63, 164, 251, 224, 220, 4, 211, 0, 230, 248, 63, 164, 235, 198, 215, + 173, 63, 164, 248, 62, 215, 174, 251, 128, 63, 164, 220, 96, 63, 164, + 227, 140, 220, 96, 63, 164, 215, 174, 220, 96, 63, 164, 227, 140, 215, + 174, 220, 96, 63, 164, 222, 237, 250, 123, 218, 237, 220, 96, 63, 164, + 223, 43, 242, 147, 220, 96, 63, 164, 250, 240, 255, 164, 222, 145, 231, + 93, 199, 251, 8, 63, 164, 242, 116, 215, 173, 63, 232, 145, 5, 250, 156, + 222, 144, 63, 232, 145, 5, 232, 253, 222, 144, 63, 253, 213, 5, 220, 106, + 243, 66, 255, 165, 222, 144, 63, 253, 213, 5, 255, 162, 190, 63, 253, + 213, 5, 221, 183, 215, 169, 63, 5, 223, 131, 247, 160, 243, 65, 63, 5, + 223, 131, 247, 160, 242, 177, 63, 5, 223, 131, 247, 160, 242, 117, 63, 5, + 223, 131, 229, 220, 243, 65, 63, 5, 223, 131, 229, 220, 242, 177, 63, 5, + 223, 131, 247, 160, 223, 131, 229, 219, 63, 21, 210, 86, 63, 21, 110, 63, 21, 105, 63, 21, 158, 63, 21, 161, 63, 21, 189, 63, 21, 194, 63, 21, 198, 63, 21, 195, 63, 21, 200, 63, 21, 163, 110, 63, 21, 163, 105, 63, 21, 163, 158, 63, 21, 163, 161, 63, 21, 163, 189, 63, 21, 163, 194, 63, 21, 163, 198, 63, 21, 163, 195, 63, 21, 163, 200, 63, 21, 163, 210, 86, 63, - 164, 251, 130, 222, 143, 63, 164, 229, 68, 251, 68, 227, 149, 210, 25, - 63, 164, 250, 239, 255, 163, 222, 144, 251, 69, 230, 202, 251, 7, 63, - 164, 229, 68, 251, 68, 220, 106, 222, 143, 63, 164, 250, 132, 230, 247, - 63, 164, 215, 184, 255, 160, 63, 164, 242, 100, 222, 144, 242, 63, 63, - 164, 242, 100, 222, 144, 242, 69, 63, 164, 254, 116, 234, 123, 242, 63, - 63, 164, 254, 116, 234, 123, 242, 69, 63, 5, 211, 65, 215, 171, 63, 5, - 231, 167, 215, 171, 63, 1, 176, 63, 1, 234, 132, 63, 1, 243, 135, 63, 1, - 242, 249, 63, 1, 229, 77, 63, 1, 251, 33, 63, 1, 250, 157, 63, 1, 235, - 141, 63, 1, 227, 165, 63, 1, 215, 156, 63, 1, 215, 144, 63, 1, 248, 135, - 63, 1, 248, 119, 63, 1, 228, 110, 63, 1, 217, 105, 63, 1, 216, 208, 63, - 1, 248, 221, 63, 1, 248, 25, 63, 1, 197, 63, 1, 190, 63, 1, 225, 147, 63, - 1, 252, 191, 63, 1, 252, 18, 63, 1, 184, 63, 1, 215, 183, 63, 1, 215, - 175, 63, 1, 246, 38, 63, 1, 246, 33, 63, 1, 212, 65, 63, 1, 210, 82, 63, - 1, 210, 116, 63, 1, 255, 166, 63, 1, 191, 63, 1, 205, 63, 1, 233, 135, - 63, 1, 220, 102, 63, 1, 218, 223, 63, 1, 206, 63, 1, 162, 63, 1, 61, 63, - 1, 233, 231, 63, 1, 244, 77, 205, 63, 1, 234, 46, 63, 1, 222, 179, 63, - 25, 5, 255, 73, 63, 25, 5, 73, 63, 25, 5, 236, 33, 63, 25, 5, 70, 63, 25, - 5, 214, 118, 63, 25, 5, 149, 153, 63, 25, 5, 149, 222, 180, 63, 25, 5, - 149, 156, 63, 25, 5, 149, 232, 185, 63, 25, 5, 75, 63, 25, 5, 245, 209, - 63, 25, 5, 76, 63, 25, 5, 226, 183, 63, 5, 222, 221, 218, 84, 229, 78, - 222, 211, 63, 5, 222, 216, 252, 76, 63, 25, 5, 223, 49, 73, 63, 25, 5, - 223, 49, 236, 33, 63, 5, 227, 149, 210, 26, 229, 226, 248, 221, 63, 5, - 219, 71, 233, 60, 63, 164, 242, 29, 63, 164, 226, 57, 63, 5, 233, 63, - 222, 143, 63, 5, 211, 70, 222, 143, 63, 5, 233, 64, 215, 184, 251, 7, 63, - 5, 231, 95, 251, 7, 63, 5, 242, 119, 251, 8, 223, 40, 63, 5, 242, 119, - 231, 85, 223, 40, 63, 5, 235, 193, 231, 95, 251, 7, 63, 218, 73, 5, 233, - 64, 215, 184, 251, 7, 63, 218, 73, 5, 231, 95, 251, 7, 63, 218, 73, 5, - 235, 193, 231, 95, 251, 7, 63, 218, 73, 1, 176, 63, 218, 73, 1, 234, 132, - 63, 218, 73, 1, 243, 135, 63, 218, 73, 1, 242, 249, 63, 218, 73, 1, 229, - 77, 63, 218, 73, 1, 251, 33, 63, 218, 73, 1, 250, 157, 63, 218, 73, 1, - 235, 141, 63, 218, 73, 1, 227, 165, 63, 218, 73, 1, 215, 156, 63, 218, - 73, 1, 215, 144, 63, 218, 73, 1, 248, 135, 63, 218, 73, 1, 248, 119, 63, - 218, 73, 1, 228, 110, 63, 218, 73, 1, 217, 105, 63, 218, 73, 1, 216, 208, - 63, 218, 73, 1, 248, 221, 63, 218, 73, 1, 248, 25, 63, 218, 73, 1, 197, - 63, 218, 73, 1, 190, 63, 218, 73, 1, 225, 147, 63, 218, 73, 1, 252, 191, - 63, 218, 73, 1, 252, 18, 63, 218, 73, 1, 184, 63, 218, 73, 1, 215, 183, - 63, 218, 73, 1, 215, 175, 63, 218, 73, 1, 246, 38, 63, 218, 73, 1, 246, - 33, 63, 218, 73, 1, 212, 65, 63, 218, 73, 1, 210, 82, 63, 218, 73, 1, - 210, 116, 63, 218, 73, 1, 255, 166, 63, 218, 73, 1, 191, 63, 218, 73, 1, - 205, 63, 218, 73, 1, 233, 135, 63, 218, 73, 1, 220, 102, 63, 218, 73, 1, - 218, 223, 63, 218, 73, 1, 206, 63, 218, 73, 1, 162, 63, 218, 73, 1, 61, - 63, 218, 73, 1, 233, 231, 63, 218, 73, 1, 244, 77, 212, 65, 63, 218, 73, - 1, 244, 77, 191, 63, 218, 73, 1, 244, 77, 205, 63, 233, 218, 222, 141, - 234, 132, 63, 233, 218, 222, 141, 234, 133, 251, 69, 230, 202, 251, 7, - 63, 250, 252, 5, 114, 252, 70, 63, 250, 252, 5, 192, 252, 70, 63, 250, - 252, 5, 250, 253, 217, 20, 63, 250, 252, 5, 221, 207, 255, 165, 63, 16, - 246, 91, 251, 125, 63, 16, 223, 129, 222, 222, 63, 16, 226, 77, 243, 63, - 63, 16, 223, 129, 222, 223, 223, 42, 242, 145, 63, 16, 225, 112, 190, 63, - 16, 228, 59, 251, 125, 63, 16, 228, 59, 251, 126, 227, 139, 255, 162, 63, - 16, 228, 59, 251, 126, 242, 117, 255, 162, 63, 16, 228, 59, 251, 126, - 251, 69, 255, 162, 63, 5, 223, 130, 229, 219, 223, 130, 247, 158, 63, 5, - 223, 130, 229, 219, 242, 116, 63, 164, 251, 129, 220, 3, 242, 215, 230, - 248, 223, 41, 63, 164, 230, 163, 211, 0, 242, 215, 230, 248, 223, 41, 63, - 164, 227, 139, 215, 172, 63, 164, 65, 251, 152, 222, 213, 211, 0, 230, - 248, 231, 93, 184, 63, 164, 249, 252, 251, 152, 222, 213, 211, 0, 230, - 248, 220, 109, 184, 222, 250, 217, 255, 50, 233, 45, 217, 255, 50, 222, - 250, 217, 255, 5, 2, 247, 118, 233, 45, 217, 255, 5, 2, 247, 118, 63, - 164, 233, 55, 231, 96, 222, 143, 63, 164, 215, 250, 231, 96, 222, 143, - 68, 1, 176, 68, 1, 234, 132, 68, 1, 243, 135, 68, 1, 242, 249, 68, 1, - 229, 77, 68, 1, 251, 33, 68, 1, 250, 157, 68, 1, 235, 141, 68, 1, 235, - 114, 68, 1, 227, 165, 68, 1, 228, 76, 68, 1, 215, 156, 68, 1, 215, 144, - 68, 1, 248, 135, 68, 1, 248, 119, 68, 1, 228, 110, 68, 1, 217, 105, 68, - 1, 216, 208, 68, 1, 248, 221, 68, 1, 248, 25, 68, 1, 197, 68, 1, 190, 68, - 1, 225, 147, 68, 1, 252, 191, 68, 1, 252, 18, 68, 1, 184, 68, 1, 191, 68, - 1, 205, 68, 1, 233, 135, 68, 1, 212, 65, 68, 1, 206, 68, 1, 162, 68, 1, - 232, 184, 68, 1, 61, 68, 1, 220, 86, 61, 68, 1, 73, 68, 1, 236, 33, 68, - 1, 70, 68, 1, 214, 118, 68, 1, 75, 68, 1, 230, 151, 75, 68, 1, 76, 68, 1, - 253, 192, 68, 25, 5, 217, 64, 255, 73, 68, 25, 5, 255, 73, 68, 25, 5, 73, - 68, 25, 5, 236, 33, 68, 25, 5, 70, 68, 25, 5, 214, 118, 68, 25, 5, 75, - 68, 25, 5, 254, 201, 68, 25, 5, 230, 151, 236, 33, 68, 25, 5, 230, 151, - 76, 68, 25, 5, 160, 48, 68, 5, 254, 75, 68, 5, 59, 51, 68, 5, 213, 147, - 68, 5, 213, 152, 68, 5, 253, 235, 68, 116, 5, 147, 191, 68, 116, 5, 147, - 205, 68, 116, 5, 147, 212, 65, 68, 116, 5, 147, 162, 68, 1, 242, 132, - 206, 68, 21, 210, 86, 68, 21, 110, 68, 21, 105, 68, 21, 158, 68, 21, 161, - 68, 21, 189, 68, 21, 194, 68, 21, 198, 68, 21, 195, 68, 21, 200, 68, 5, - 232, 192, 221, 172, 68, 5, 221, 172, 68, 16, 232, 153, 68, 16, 249, 213, - 68, 16, 254, 220, 68, 16, 243, 48, 68, 1, 220, 102, 68, 1, 218, 223, 68, - 1, 149, 153, 68, 1, 149, 222, 180, 68, 1, 149, 156, 68, 1, 149, 232, 185, - 68, 25, 5, 149, 153, 68, 25, 5, 149, 222, 180, 68, 25, 5, 149, 156, 68, - 25, 5, 149, 232, 185, 68, 1, 230, 151, 229, 77, 68, 1, 230, 151, 235, - 114, 68, 1, 230, 151, 252, 111, 68, 1, 230, 151, 252, 106, 68, 116, 5, - 230, 151, 147, 197, 68, 116, 5, 230, 151, 147, 184, 68, 116, 5, 230, 151, - 147, 233, 135, 68, 1, 220, 108, 234, 213, 220, 102, 68, 25, 5, 220, 108, - 234, 213, 245, 55, 68, 138, 164, 220, 108, 234, 213, 241, 247, 68, 138, - 164, 220, 108, 234, 213, 234, 183, 225, 121, 68, 1, 212, 7, 224, 108, - 234, 213, 216, 208, 68, 1, 212, 7, 224, 108, 234, 213, 224, 114, 68, 25, - 5, 212, 7, 224, 108, 234, 213, 245, 55, 68, 25, 5, 212, 7, 224, 108, 234, - 213, 214, 214, 68, 5, 212, 7, 224, 108, 234, 213, 216, 29, 68, 5, 212, 7, - 224, 108, 234, 213, 216, 28, 68, 5, 212, 7, 224, 108, 234, 213, 216, 27, - 68, 5, 212, 7, 224, 108, 234, 213, 216, 26, 68, 5, 212, 7, 224, 108, 234, - 213, 216, 25, 68, 1, 245, 219, 224, 108, 234, 213, 228, 110, 68, 1, 245, - 219, 224, 108, 234, 213, 210, 176, 68, 1, 245, 219, 224, 108, 234, 213, - 242, 217, 68, 25, 5, 243, 59, 234, 213, 73, 68, 25, 5, 234, 188, 226, - 234, 68, 25, 5, 234, 188, 70, 68, 25, 5, 234, 188, 245, 209, 68, 1, 220, - 86, 176, 68, 1, 220, 86, 234, 132, 68, 1, 220, 86, 243, 135, 68, 1, 220, - 86, 251, 33, 68, 1, 220, 86, 210, 116, 68, 1, 220, 86, 227, 165, 68, 1, - 220, 86, 248, 221, 68, 1, 220, 86, 197, 68, 1, 220, 86, 225, 147, 68, 1, - 220, 86, 244, 196, 68, 1, 220, 86, 252, 191, 68, 1, 220, 86, 216, 208, - 68, 1, 220, 86, 162, 68, 116, 5, 220, 86, 147, 212, 65, 68, 25, 5, 220, - 86, 255, 73, 68, 25, 5, 220, 86, 75, 68, 25, 5, 220, 86, 160, 48, 68, 25, - 5, 220, 86, 40, 211, 117, 68, 5, 220, 86, 216, 28, 68, 5, 220, 86, 216, - 27, 68, 5, 220, 86, 216, 25, 68, 5, 220, 86, 216, 24, 68, 5, 220, 86, - 249, 152, 216, 28, 68, 5, 220, 86, 249, 152, 216, 27, 68, 5, 220, 86, - 249, 152, 245, 153, 216, 30, 68, 1, 222, 128, 226, 63, 244, 196, 68, 5, - 222, 128, 226, 63, 216, 25, 68, 220, 86, 21, 210, 86, 68, 220, 86, 21, - 110, 68, 220, 86, 21, 105, 68, 220, 86, 21, 158, 68, 220, 86, 21, 161, - 68, 220, 86, 21, 189, 68, 220, 86, 21, 194, 68, 220, 86, 21, 198, 68, - 220, 86, 21, 195, 68, 220, 86, 21, 200, 68, 5, 234, 126, 216, 29, 68, 5, - 234, 126, 216, 27, 68, 25, 5, 254, 190, 61, 68, 25, 5, 254, 190, 254, - 201, 68, 16, 220, 86, 110, 68, 16, 220, 86, 245, 30, 98, 6, 1, 254, 123, - 98, 6, 1, 252, 152, 98, 6, 1, 243, 106, 98, 6, 1, 247, 128, 98, 6, 1, - 245, 150, 98, 6, 1, 213, 160, 98, 6, 1, 210, 89, 98, 6, 1, 217, 60, 98, - 6, 1, 235, 255, 98, 6, 1, 234, 234, 98, 6, 1, 233, 81, 98, 6, 1, 231, - 185, 98, 6, 1, 229, 195, 98, 6, 1, 226, 196, 98, 6, 1, 226, 17, 98, 6, 1, - 210, 78, 98, 6, 1, 223, 171, 98, 6, 1, 221, 243, 98, 6, 1, 217, 50, 98, - 6, 1, 214, 190, 98, 6, 1, 225, 140, 98, 6, 1, 234, 121, 98, 6, 1, 242, - 241, 98, 6, 1, 224, 73, 98, 6, 1, 220, 20, 98, 6, 1, 250, 97, 98, 6, 1, - 251, 7, 98, 6, 1, 235, 100, 98, 6, 1, 250, 40, 98, 6, 1, 250, 143, 98, 6, - 1, 211, 163, 98, 6, 1, 235, 111, 98, 6, 1, 242, 43, 98, 6, 1, 241, 238, - 98, 6, 1, 241, 175, 98, 6, 1, 212, 22, 98, 6, 1, 242, 4, 98, 6, 1, 241, - 65, 98, 6, 1, 210, 246, 98, 6, 1, 254, 232, 98, 1, 254, 123, 98, 1, 252, - 152, 98, 1, 243, 106, 98, 1, 247, 128, 98, 1, 245, 150, 98, 1, 213, 160, - 98, 1, 210, 89, 98, 1, 217, 60, 98, 1, 235, 255, 98, 1, 234, 234, 98, 1, - 233, 81, 98, 1, 231, 185, 98, 1, 229, 195, 98, 1, 226, 196, 98, 1, 226, - 17, 98, 1, 210, 78, 98, 1, 223, 171, 98, 1, 221, 243, 98, 1, 217, 50, 98, - 1, 214, 190, 98, 1, 225, 140, 98, 1, 234, 121, 98, 1, 242, 241, 98, 1, - 224, 73, 98, 1, 220, 20, 98, 1, 250, 97, 98, 1, 251, 7, 98, 1, 235, 100, - 98, 1, 250, 40, 98, 1, 250, 143, 98, 1, 211, 163, 98, 1, 235, 111, 98, 1, - 242, 43, 98, 1, 241, 238, 98, 1, 241, 175, 98, 1, 212, 22, 98, 1, 242, 4, - 98, 1, 241, 65, 98, 1, 244, 121, 98, 1, 210, 246, 98, 1, 245, 165, 98, 1, - 215, 94, 243, 106, 98, 1, 254, 196, 98, 226, 15, 220, 137, 58, 1, 98, - 229, 195, 98, 1, 254, 232, 98, 1, 242, 3, 50, 98, 1, 233, 127, 50, 24, - 100, 234, 58, 24, 100, 218, 215, 24, 100, 228, 226, 24, 100, 216, 101, - 24, 100, 218, 204, 24, 100, 223, 26, 24, 100, 230, 217, 24, 100, 225, 95, - 24, 100, 218, 212, 24, 100, 219, 148, 24, 100, 218, 209, 24, 100, 236, - 56, 24, 100, 250, 46, 24, 100, 218, 219, 24, 100, 250, 106, 24, 100, 234, - 110, 24, 100, 216, 173, 24, 100, 225, 131, 24, 100, 241, 172, 24, 100, - 228, 222, 24, 100, 218, 213, 24, 100, 228, 216, 24, 100, 228, 220, 24, - 100, 216, 98, 24, 100, 223, 14, 24, 100, 218, 211, 24, 100, 223, 24, 24, - 100, 234, 218, 24, 100, 230, 210, 24, 100, 234, 221, 24, 100, 225, 90, - 24, 100, 225, 88, 24, 100, 225, 76, 24, 100, 225, 84, 24, 100, 225, 82, - 24, 100, 225, 79, 24, 100, 225, 81, 24, 100, 225, 78, 24, 100, 225, 83, - 24, 100, 225, 93, 24, 100, 225, 94, 24, 100, 225, 77, 24, 100, 225, 87, - 24, 100, 234, 219, 24, 100, 234, 217, 24, 100, 219, 141, 24, 100, 219, - 139, 24, 100, 219, 131, 24, 100, 219, 134, 24, 100, 219, 140, 24, 100, - 219, 136, 24, 100, 219, 135, 24, 100, 219, 133, 24, 100, 219, 144, 24, - 100, 219, 146, 24, 100, 219, 147, 24, 100, 219, 142, 24, 100, 219, 132, - 24, 100, 219, 137, 24, 100, 219, 145, 24, 100, 250, 90, 24, 100, 250, 88, - 24, 100, 250, 168, 24, 100, 250, 166, 24, 100, 226, 32, 24, 100, 236, 51, - 24, 100, 236, 42, 24, 100, 236, 50, 24, 100, 236, 47, 24, 100, 236, 45, - 24, 100, 236, 49, 24, 100, 218, 216, 24, 100, 236, 54, 24, 100, 236, 55, - 24, 100, 236, 43, 24, 100, 236, 48, 24, 100, 211, 26, 24, 100, 250, 45, - 24, 100, 250, 91, 24, 100, 250, 89, 24, 100, 250, 169, 24, 100, 250, 167, - 24, 100, 250, 104, 24, 100, 250, 105, 24, 100, 250, 92, 24, 100, 250, - 170, 24, 100, 225, 129, 24, 100, 234, 220, 24, 100, 218, 217, 24, 100, - 211, 32, 24, 100, 234, 49, 24, 100, 228, 218, 24, 100, 228, 224, 24, 100, - 228, 223, 24, 100, 216, 95, 24, 100, 244, 103, 24, 143, 244, 103, 24, - 143, 61, 24, 143, 254, 243, 24, 143, 191, 24, 143, 211, 92, 24, 143, 245, - 117, 24, 143, 75, 24, 143, 211, 36, 24, 143, 211, 47, 24, 143, 76, 24, - 143, 212, 65, 24, 143, 212, 62, 24, 143, 226, 234, 24, 143, 210, 244, 24, - 143, 70, 24, 143, 212, 11, 24, 143, 212, 22, 24, 143, 211, 250, 24, 143, - 210, 212, 24, 143, 245, 55, 24, 143, 211, 8, 24, 143, 73, 24, 143, 255, - 157, 24, 143, 255, 156, 24, 143, 211, 106, 24, 143, 211, 104, 24, 143, - 245, 115, 24, 143, 245, 114, 24, 143, 245, 116, 24, 143, 211, 35, 24, - 143, 211, 34, 24, 143, 227, 84, 24, 143, 227, 85, 24, 143, 227, 78, 24, - 143, 227, 83, 24, 143, 227, 81, 24, 143, 210, 238, 24, 143, 210, 237, 24, - 143, 210, 236, 24, 143, 210, 239, 24, 143, 210, 240, 24, 143, 215, 30, - 24, 143, 215, 29, 24, 143, 215, 27, 24, 143, 215, 24, 24, 143, 215, 25, - 24, 143, 210, 211, 24, 143, 210, 208, 24, 143, 210, 209, 24, 143, 210, - 203, 24, 143, 210, 204, 24, 143, 210, 205, 24, 143, 210, 207, 24, 143, - 245, 49, 24, 143, 245, 51, 24, 143, 211, 7, 24, 143, 240, 153, 24, 143, - 240, 145, 24, 143, 240, 148, 24, 143, 240, 146, 24, 143, 240, 150, 24, - 143, 240, 152, 24, 143, 254, 34, 24, 143, 254, 31, 24, 143, 254, 29, 24, - 143, 254, 30, 24, 143, 218, 220, 24, 143, 255, 158, 24, 143, 211, 105, - 24, 143, 211, 33, 24, 143, 227, 80, 24, 143, 227, 79, 24, 90, 234, 58, - 24, 90, 218, 215, 24, 90, 234, 51, 24, 90, 228, 226, 24, 90, 228, 224, - 24, 90, 228, 223, 24, 90, 216, 101, 24, 90, 223, 26, 24, 90, 223, 21, 24, - 90, 223, 18, 24, 90, 223, 11, 24, 90, 223, 6, 24, 90, 223, 1, 24, 90, - 223, 12, 24, 90, 223, 24, 24, 90, 230, 217, 24, 90, 225, 95, 24, 90, 225, - 84, 24, 90, 219, 148, 24, 90, 218, 209, 24, 90, 236, 56, 24, 90, 250, 46, - 24, 90, 250, 106, 24, 90, 234, 110, 24, 90, 216, 173, 24, 90, 225, 131, - 24, 90, 241, 172, 24, 90, 234, 52, 24, 90, 234, 50, 24, 90, 228, 222, 24, - 90, 228, 216, 24, 90, 228, 218, 24, 90, 228, 221, 24, 90, 228, 217, 24, - 90, 216, 98, 24, 90, 216, 95, 24, 90, 223, 19, 24, 90, 223, 14, 24, 90, - 223, 0, 24, 90, 222, 255, 24, 90, 218, 211, 24, 90, 223, 16, 24, 90, 223, - 15, 24, 90, 223, 8, 24, 90, 223, 10, 24, 90, 223, 23, 24, 90, 223, 3, 24, - 90, 223, 13, 24, 90, 223, 22, 24, 90, 222, 254, 24, 90, 230, 213, 24, 90, - 230, 208, 24, 90, 230, 210, 24, 90, 230, 207, 24, 90, 230, 205, 24, 90, - 230, 211, 24, 90, 230, 216, 24, 90, 230, 214, 24, 90, 234, 221, 24, 90, - 225, 86, 24, 90, 225, 87, 24, 90, 225, 92, 24, 90, 234, 219, 24, 90, 219, - 141, 24, 90, 219, 131, 24, 90, 219, 134, 24, 90, 219, 136, 24, 90, 226, - 32, 24, 90, 236, 51, 24, 90, 236, 44, 24, 90, 218, 216, 24, 90, 236, 52, - 24, 90, 211, 26, 24, 90, 211, 22, 24, 90, 211, 23, 24, 90, 225, 129, 24, - 90, 234, 220, 24, 90, 241, 170, 24, 90, 241, 168, 24, 90, 241, 171, 24, - 90, 241, 169, 24, 90, 211, 32, 24, 90, 234, 54, 24, 90, 234, 53, 24, 90, - 234, 57, 24, 90, 234, 55, 24, 90, 234, 56, 24, 90, 218, 213, 29, 3, 162, - 29, 3, 240, 222, 29, 3, 241, 180, 29, 3, 242, 46, 29, 3, 241, 220, 29, 3, - 241, 238, 29, 3, 241, 68, 29, 3, 241, 67, 29, 3, 233, 135, 29, 3, 232, - 98, 29, 3, 232, 241, 29, 3, 233, 134, 29, 3, 233, 50, 29, 3, 233, 58, 29, - 3, 232, 156, 29, 3, 232, 70, 29, 3, 241, 189, 29, 3, 241, 183, 29, 3, - 241, 185, 29, 3, 241, 188, 29, 3, 241, 186, 29, 3, 241, 187, 29, 3, 241, - 184, 29, 3, 241, 182, 29, 3, 184, 29, 3, 230, 102, 29, 3, 230, 230, 29, - 3, 231, 237, 29, 3, 231, 80, 29, 3, 231, 91, 29, 3, 230, 161, 29, 3, 230, - 42, 29, 3, 217, 163, 29, 3, 217, 157, 29, 3, 217, 159, 29, 3, 217, 162, - 29, 3, 217, 160, 29, 3, 217, 161, 29, 3, 217, 158, 29, 3, 217, 156, 29, - 3, 205, 29, 3, 222, 140, 29, 3, 223, 35, 29, 3, 223, 184, 29, 3, 223, - 108, 29, 3, 223, 128, 29, 3, 222, 211, 29, 3, 222, 109, 29, 3, 206, 29, - 3, 218, 83, 29, 3, 219, 191, 29, 3, 222, 31, 29, 3, 221, 170, 29, 3, 221, - 181, 29, 3, 219, 58, 29, 3, 217, 253, 29, 3, 220, 102, 29, 3, 219, 225, - 29, 3, 220, 32, 29, 3, 220, 98, 29, 3, 220, 61, 29, 3, 220, 63, 29, 3, - 220, 7, 29, 3, 219, 208, 29, 3, 224, 88, 29, 3, 224, 30, 29, 3, 224, 53, - 29, 3, 224, 87, 29, 3, 224, 68, 29, 3, 224, 69, 29, 3, 224, 42, 29, 3, - 224, 41, 29, 3, 223, 242, 29, 3, 223, 238, 29, 3, 223, 241, 29, 3, 223, - 239, 29, 3, 223, 240, 29, 3, 224, 65, 29, 3, 224, 59, 29, 3, 224, 61, 29, - 3, 224, 64, 29, 3, 224, 62, 29, 3, 224, 63, 29, 3, 224, 60, 29, 3, 224, - 58, 29, 3, 224, 54, 29, 3, 224, 57, 29, 3, 224, 55, 29, 3, 224, 56, 29, - 3, 252, 191, 29, 3, 251, 125, 29, 3, 252, 6, 29, 3, 252, 189, 29, 3, 252, - 66, 29, 3, 252, 75, 29, 3, 251, 205, 29, 3, 251, 83, 29, 3, 214, 27, 29, - 3, 212, 116, 29, 3, 213, 176, 29, 3, 214, 26, 29, 3, 213, 250, 29, 3, - 213, 255, 29, 3, 213, 138, 29, 3, 212, 107, 29, 3, 217, 105, 29, 3, 215, - 118, 29, 3, 216, 117, 29, 3, 217, 101, 29, 3, 217, 11, 29, 3, 217, 22, - 29, 3, 111, 29, 3, 215, 80, 29, 3, 251, 33, 29, 3, 249, 112, 29, 3, 250, - 51, 29, 3, 251, 32, 29, 3, 250, 182, 29, 3, 250, 190, 29, 3, 249, 238, - 29, 3, 249, 81, 29, 3, 211, 165, 29, 3, 211, 141, 29, 3, 211, 157, 29, 3, - 211, 164, 29, 3, 211, 161, 29, 3, 211, 162, 29, 3, 211, 148, 29, 3, 211, - 147, 29, 3, 211, 136, 29, 3, 211, 132, 29, 3, 211, 135, 29, 3, 211, 133, - 29, 3, 211, 134, 29, 3, 197, 29, 3, 227, 237, 29, 3, 228, 233, 29, 3, - 229, 225, 29, 3, 229, 103, 29, 3, 229, 107, 29, 3, 228, 74, 29, 3, 227, - 174, 29, 3, 227, 165, 29, 3, 227, 128, 29, 3, 227, 148, 29, 3, 227, 164, - 29, 3, 227, 155, 29, 3, 227, 156, 29, 3, 227, 134, 29, 3, 227, 119, 29, - 3, 242, 180, 61, 29, 3, 242, 180, 70, 29, 3, 242, 180, 73, 29, 3, 242, - 180, 255, 73, 29, 3, 242, 180, 245, 209, 29, 3, 242, 180, 75, 29, 3, 242, - 180, 76, 29, 3, 242, 180, 212, 65, 29, 3, 176, 29, 3, 233, 217, 29, 3, - 234, 92, 29, 3, 235, 10, 29, 3, 234, 181, 29, 3, 234, 182, 29, 3, 234, - 28, 29, 3, 234, 27, 29, 3, 233, 182, 29, 3, 233, 176, 29, 3, 233, 181, - 29, 3, 233, 177, 29, 3, 233, 178, 29, 3, 233, 171, 29, 3, 233, 165, 29, - 3, 233, 167, 29, 3, 233, 170, 29, 3, 233, 168, 29, 3, 233, 169, 29, 3, - 233, 166, 29, 3, 233, 164, 29, 3, 233, 160, 29, 3, 233, 163, 29, 3, 233, - 161, 29, 3, 233, 162, 29, 3, 212, 65, 29, 3, 211, 195, 29, 3, 211, 250, - 29, 3, 212, 64, 29, 3, 212, 17, 29, 3, 212, 22, 29, 3, 211, 227, 29, 3, - 211, 226, 29, 3, 225, 139, 61, 29, 3, 225, 139, 70, 29, 3, 225, 139, 73, - 29, 3, 225, 139, 255, 73, 29, 3, 225, 139, 245, 209, 29, 3, 225, 139, 75, - 29, 3, 225, 139, 76, 29, 3, 210, 116, 29, 3, 210, 13, 29, 3, 210, 44, 29, - 3, 210, 115, 29, 3, 210, 92, 29, 3, 210, 94, 29, 3, 210, 23, 29, 3, 210, - 0, 29, 3, 210, 82, 29, 3, 210, 62, 29, 3, 210, 69, 29, 3, 210, 81, 29, 3, - 210, 73, 29, 3, 210, 74, 29, 3, 210, 67, 29, 3, 210, 53, 29, 3, 191, 29, - 3, 210, 212, 29, 3, 211, 8, 29, 3, 211, 103, 29, 3, 211, 44, 29, 3, 211, - 47, 29, 3, 210, 244, 29, 3, 210, 235, 29, 3, 248, 221, 29, 3, 246, 78, - 29, 3, 248, 3, 29, 3, 248, 220, 29, 3, 248, 77, 29, 3, 248, 90, 29, 3, - 247, 145, 29, 3, 246, 47, 29, 3, 248, 135, 29, 3, 248, 100, 29, 3, 248, - 112, 29, 3, 248, 134, 29, 3, 248, 122, 29, 3, 248, 123, 29, 3, 248, 105, - 29, 3, 248, 91, 29, 3, 235, 141, 29, 3, 235, 51, 29, 3, 235, 108, 29, 3, - 235, 140, 29, 3, 235, 124, 29, 3, 235, 126, 29, 3, 235, 68, 29, 3, 235, - 31, 29, 3, 243, 135, 29, 3, 242, 113, 29, 3, 242, 214, 29, 3, 243, 132, - 29, 3, 243, 55, 29, 3, 243, 62, 29, 3, 242, 174, 29, 3, 242, 173, 29, 3, - 242, 78, 29, 3, 242, 74, 29, 3, 242, 77, 29, 3, 242, 75, 29, 3, 242, 76, - 29, 3, 243, 29, 29, 3, 243, 9, 29, 3, 243, 19, 29, 3, 243, 28, 29, 3, - 243, 23, 29, 3, 243, 24, 29, 3, 243, 13, 29, 3, 242, 254, 29, 3, 216, - 208, 29, 3, 216, 136, 29, 3, 216, 175, 29, 3, 216, 207, 29, 3, 216, 194, - 29, 3, 216, 195, 29, 3, 216, 156, 29, 3, 216, 128, 29, 3, 250, 157, 29, - 3, 250, 69, 29, 3, 250, 110, 29, 3, 250, 156, 29, 3, 250, 128, 29, 3, - 250, 131, 29, 3, 250, 86, 29, 3, 250, 58, 29, 3, 225, 147, 29, 3, 225, - 114, 29, 3, 225, 133, 29, 3, 225, 146, 29, 3, 225, 135, 29, 3, 225, 136, - 29, 3, 225, 121, 29, 3, 225, 110, 29, 3, 215, 183, 29, 3, 215, 163, 29, - 3, 215, 167, 29, 3, 215, 182, 29, 3, 215, 177, 29, 3, 215, 178, 29, 3, - 215, 166, 29, 3, 215, 161, 29, 3, 215, 39, 29, 3, 215, 31, 29, 3, 215, - 35, 29, 3, 215, 38, 29, 3, 215, 36, 29, 3, 215, 37, 29, 3, 215, 33, 29, - 3, 215, 32, 29, 3, 244, 196, 29, 3, 243, 234, 29, 3, 244, 121, 29, 3, - 244, 195, 29, 3, 244, 147, 29, 3, 244, 154, 29, 3, 244, 43, 29, 3, 243, - 213, 29, 3, 190, 29, 3, 224, 150, 29, 3, 225, 108, 29, 3, 226, 89, 29, 3, - 225, 211, 29, 3, 225, 221, 29, 3, 225, 16, 29, 3, 224, 114, 29, 3, 222, - 99, 29, 3, 230, 31, 29, 3, 243, 207, 29, 38, 243, 53, 22, 25, 233, 23, - 78, 29, 38, 25, 233, 23, 78, 29, 38, 243, 53, 78, 29, 221, 173, 78, 29, - 211, 208, 29, 243, 229, 218, 129, 29, 249, 219, 29, 220, 150, 29, 249, - 226, 29, 224, 199, 249, 226, 29, 224, 13, 78, 29, 226, 15, 220, 137, 29, - 21, 110, 29, 21, 105, 29, 21, 158, 29, 21, 161, 29, 21, 189, 29, 21, 194, - 29, 21, 198, 29, 21, 195, 29, 21, 200, 29, 54, 216, 247, 29, 54, 215, 73, - 29, 54, 216, 162, 29, 54, 244, 15, 29, 54, 244, 114, 29, 54, 219, 111, - 29, 54, 220, 116, 29, 54, 245, 184, 29, 54, 228, 195, 29, 54, 240, 210, - 29, 54, 216, 248, 216, 147, 29, 3, 221, 177, 230, 42, 29, 3, 230, 38, 29, - 3, 230, 39, 29, 3, 230, 40, 29, 3, 221, 177, 251, 83, 29, 3, 251, 80, 29, - 3, 251, 81, 29, 3, 251, 82, 29, 3, 221, 177, 243, 213, 29, 3, 243, 209, - 29, 3, 243, 210, 29, 3, 243, 211, 29, 3, 221, 177, 224, 114, 29, 3, 224, - 110, 29, 3, 224, 111, 29, 3, 224, 112, 29, 216, 31, 164, 210, 247, 29, - 216, 31, 164, 248, 41, 29, 216, 31, 164, 222, 238, 29, 216, 31, 164, 219, - 251, 222, 238, 29, 216, 31, 164, 247, 235, 29, 216, 31, 164, 234, 164, - 29, 216, 31, 164, 250, 94, 29, 216, 31, 164, 241, 177, 29, 216, 31, 164, - 248, 40, 29, 216, 31, 164, 233, 194, 169, 1, 61, 169, 1, 75, 169, 1, 73, - 169, 1, 76, 169, 1, 70, 169, 1, 214, 105, 169, 1, 243, 135, 169, 1, 176, - 169, 1, 243, 62, 169, 1, 242, 214, 169, 1, 242, 174, 169, 1, 242, 113, - 169, 1, 242, 79, 169, 1, 162, 169, 1, 241, 238, 169, 1, 241, 180, 169, 1, - 241, 68, 169, 1, 240, 222, 169, 1, 240, 201, 169, 1, 233, 135, 169, 1, - 233, 58, 169, 1, 232, 241, 169, 1, 232, 156, 169, 1, 232, 98, 169, 1, - 232, 71, 169, 1, 184, 169, 1, 231, 91, 169, 1, 230, 230, 169, 1, 230, - 161, 169, 1, 230, 102, 169, 1, 197, 169, 1, 241, 90, 169, 1, 229, 213, - 169, 1, 229, 107, 169, 1, 228, 233, 169, 1, 228, 74, 169, 1, 227, 237, - 169, 1, 227, 176, 169, 1, 224, 29, 169, 1, 224, 16, 169, 1, 224, 9, 169, - 1, 224, 1, 169, 1, 223, 246, 169, 1, 223, 244, 169, 1, 206, 169, 1, 222, - 91, 169, 1, 221, 181, 169, 1, 219, 191, 169, 1, 219, 58, 169, 1, 218, 83, - 169, 1, 218, 2, 169, 1, 248, 221, 169, 1, 217, 105, 169, 1, 248, 90, 169, - 1, 217, 22, 169, 1, 248, 3, 169, 1, 216, 117, 169, 1, 247, 145, 169, 1, - 246, 78, 169, 1, 246, 50, 169, 1, 247, 156, 169, 1, 216, 59, 169, 1, 216, - 58, 169, 1, 216, 47, 169, 1, 216, 46, 169, 1, 216, 45, 169, 1, 216, 44, - 169, 1, 215, 183, 169, 1, 215, 178, 169, 1, 215, 167, 169, 1, 215, 166, - 169, 1, 215, 163, 169, 1, 215, 162, 169, 1, 212, 65, 169, 1, 212, 22, - 169, 1, 211, 250, 169, 1, 211, 227, 169, 1, 211, 195, 169, 1, 211, 183, - 169, 1, 191, 169, 1, 211, 47, 169, 1, 211, 8, 169, 1, 210, 244, 169, 1, - 210, 212, 169, 1, 210, 177, 18, 19, 240, 168, 18, 19, 75, 18, 19, 255, - 37, 18, 19, 73, 18, 19, 236, 33, 18, 19, 76, 18, 19, 226, 183, 18, 19, - 211, 116, 226, 183, 18, 19, 72, 245, 209, 18, 19, 72, 73, 18, 19, 61, 18, - 19, 255, 73, 18, 19, 212, 22, 18, 19, 159, 212, 22, 18, 19, 211, 250, 18, - 19, 159, 211, 250, 18, 19, 211, 242, 18, 19, 159, 211, 242, 18, 19, 211, - 227, 18, 19, 159, 211, 227, 18, 19, 211, 215, 18, 19, 159, 211, 215, 18, - 19, 229, 190, 211, 215, 18, 19, 212, 65, 18, 19, 159, 212, 65, 18, 19, - 212, 64, 18, 19, 159, 212, 64, 18, 19, 229, 190, 212, 64, 18, 19, 254, - 201, 18, 19, 211, 116, 212, 98, 18, 19, 242, 180, 218, 129, 18, 19, 40, - 142, 18, 19, 40, 242, 136, 18, 19, 40, 251, 175, 163, 222, 233, 18, 19, - 40, 216, 14, 163, 222, 233, 18, 19, 40, 44, 163, 222, 233, 18, 19, 40, - 222, 233, 18, 19, 40, 52, 142, 18, 19, 40, 52, 219, 251, 67, 218, 90, 18, - 19, 40, 230, 224, 247, 120, 18, 19, 40, 219, 251, 203, 91, 18, 19, 40, - 225, 22, 18, 19, 40, 124, 217, 87, 18, 19, 245, 150, 18, 19, 235, 255, - 18, 19, 226, 196, 18, 19, 254, 123, 18, 19, 225, 221, 18, 19, 226, 87, - 18, 19, 225, 108, 18, 19, 225, 71, 18, 19, 225, 16, 18, 19, 224, 249, 18, - 19, 211, 116, 224, 249, 18, 19, 72, 241, 220, 18, 19, 72, 241, 180, 18, - 19, 190, 18, 19, 226, 89, 18, 19, 224, 112, 18, 19, 159, 224, 112, 18, - 19, 224, 110, 18, 19, 159, 224, 110, 18, 19, 224, 109, 18, 19, 159, 224, - 109, 18, 19, 224, 107, 18, 19, 159, 224, 107, 18, 19, 224, 106, 18, 19, - 159, 224, 106, 18, 19, 224, 114, 18, 19, 159, 224, 114, 18, 19, 224, 113, - 18, 19, 159, 224, 113, 18, 19, 211, 116, 224, 113, 18, 19, 226, 105, 18, - 19, 159, 226, 105, 18, 19, 72, 242, 60, 18, 19, 217, 22, 18, 19, 217, 99, - 18, 19, 216, 117, 18, 19, 216, 103, 18, 19, 111, 18, 19, 216, 17, 18, 19, - 211, 116, 216, 17, 18, 19, 72, 248, 77, 18, 19, 72, 248, 3, 18, 19, 217, - 105, 18, 19, 217, 101, 18, 19, 215, 78, 18, 19, 159, 215, 78, 18, 19, - 215, 62, 18, 19, 159, 215, 62, 18, 19, 215, 61, 18, 19, 159, 215, 61, 18, - 19, 105, 18, 19, 159, 105, 18, 19, 215, 54, 18, 19, 159, 215, 54, 18, 19, - 215, 80, 18, 19, 159, 215, 80, 18, 19, 215, 79, 18, 19, 159, 215, 79, 18, - 19, 229, 190, 215, 79, 18, 19, 217, 152, 18, 19, 215, 151, 18, 19, 215, - 135, 18, 19, 215, 133, 18, 19, 215, 156, 18, 19, 234, 182, 18, 19, 235, - 7, 18, 19, 234, 92, 18, 19, 234, 83, 18, 19, 234, 28, 18, 19, 234, 10, - 18, 19, 211, 116, 234, 10, 18, 19, 176, 18, 19, 235, 10, 18, 19, 233, - 178, 18, 19, 159, 233, 178, 18, 19, 233, 176, 18, 19, 159, 233, 176, 18, - 19, 233, 175, 18, 19, 159, 233, 175, 18, 19, 233, 174, 18, 19, 159, 233, - 174, 18, 19, 233, 173, 18, 19, 159, 233, 173, 18, 19, 233, 182, 18, 19, - 159, 233, 182, 18, 19, 233, 181, 18, 19, 159, 233, 181, 18, 19, 229, 190, - 233, 181, 18, 19, 235, 23, 18, 19, 233, 183, 18, 19, 219, 27, 234, 176, - 18, 19, 219, 27, 234, 84, 18, 19, 219, 27, 234, 23, 18, 19, 219, 27, 234, - 248, 18, 19, 250, 190, 18, 19, 251, 31, 18, 19, 250, 51, 18, 19, 250, 41, - 18, 19, 249, 238, 18, 19, 249, 174, 18, 19, 211, 116, 249, 174, 18, 19, - 251, 33, 18, 19, 251, 32, 18, 19, 249, 79, 18, 19, 159, 249, 79, 18, 19, - 249, 77, 18, 19, 159, 249, 77, 18, 19, 249, 76, 18, 19, 159, 249, 76, 18, - 19, 249, 75, 18, 19, 159, 249, 75, 18, 19, 249, 74, 18, 19, 159, 249, 74, - 18, 19, 249, 81, 18, 19, 159, 249, 81, 18, 19, 249, 80, 18, 19, 159, 249, - 80, 18, 19, 229, 190, 249, 80, 18, 19, 251, 66, 18, 19, 221, 209, 216, - 210, 18, 19, 231, 91, 18, 19, 231, 236, 18, 19, 230, 230, 18, 19, 230, - 201, 18, 19, 230, 161, 18, 19, 230, 132, 18, 19, 211, 116, 230, 132, 18, - 19, 184, 18, 19, 231, 237, 18, 19, 230, 40, 18, 19, 159, 230, 40, 18, 19, - 230, 38, 18, 19, 159, 230, 38, 18, 19, 230, 37, 18, 19, 159, 230, 37, 18, - 19, 230, 36, 18, 19, 159, 230, 36, 18, 19, 230, 35, 18, 19, 159, 230, 35, - 18, 19, 230, 42, 18, 19, 159, 230, 42, 18, 19, 230, 41, 18, 19, 159, 230, - 41, 18, 19, 229, 190, 230, 41, 18, 19, 193, 18, 19, 159, 193, 18, 19, - 230, 234, 18, 19, 253, 205, 193, 18, 19, 221, 209, 193, 18, 19, 229, 107, - 18, 19, 229, 224, 18, 19, 228, 233, 18, 19, 228, 208, 18, 19, 228, 74, - 18, 19, 228, 64, 18, 19, 211, 116, 228, 64, 18, 19, 197, 18, 19, 229, - 225, 18, 19, 227, 172, 18, 19, 159, 227, 172, 18, 19, 227, 174, 18, 19, - 159, 227, 174, 18, 19, 227, 173, 18, 19, 159, 227, 173, 18, 19, 229, 190, - 227, 173, 18, 19, 230, 25, 18, 19, 72, 229, 79, 18, 19, 228, 238, 18, 19, - 233, 58, 18, 19, 233, 133, 18, 19, 232, 241, 18, 19, 232, 227, 18, 19, - 232, 156, 18, 19, 232, 127, 18, 19, 211, 116, 232, 127, 18, 19, 233, 135, - 18, 19, 233, 134, 18, 19, 232, 68, 18, 19, 159, 232, 68, 18, 19, 232, 67, - 18, 19, 159, 232, 67, 18, 19, 232, 66, 18, 19, 159, 232, 66, 18, 19, 232, - 65, 18, 19, 159, 232, 65, 18, 19, 232, 64, 18, 19, 159, 232, 64, 18, 19, - 232, 70, 18, 19, 159, 232, 70, 18, 19, 232, 69, 18, 19, 159, 232, 69, 18, - 19, 156, 18, 19, 159, 156, 18, 19, 147, 156, 18, 19, 221, 181, 18, 19, - 222, 29, 18, 19, 219, 191, 18, 19, 219, 175, 18, 19, 219, 58, 18, 19, - 219, 40, 18, 19, 211, 116, 219, 40, 18, 19, 206, 18, 19, 222, 31, 18, 19, - 217, 249, 18, 19, 159, 217, 249, 18, 19, 217, 243, 18, 19, 159, 217, 243, - 18, 19, 217, 242, 18, 19, 159, 217, 242, 18, 19, 217, 238, 18, 19, 159, - 217, 238, 18, 19, 217, 237, 18, 19, 159, 217, 237, 18, 19, 217, 253, 18, - 19, 159, 217, 253, 18, 19, 217, 252, 18, 19, 159, 217, 252, 18, 19, 229, - 190, 217, 252, 18, 19, 222, 91, 18, 19, 253, 205, 222, 91, 18, 19, 217, - 254, 18, 19, 251, 218, 222, 91, 18, 19, 230, 127, 219, 108, 18, 19, 229, - 190, 219, 99, 18, 19, 229, 190, 222, 89, 18, 19, 229, 190, 218, 235, 18, - 19, 229, 190, 218, 86, 18, 19, 229, 190, 219, 98, 18, 19, 229, 190, 221, - 184, 18, 19, 220, 63, 18, 19, 220, 32, 18, 19, 220, 27, 18, 19, 220, 7, - 18, 19, 220, 1, 18, 19, 220, 102, 18, 19, 220, 98, 18, 19, 219, 206, 18, - 19, 159, 219, 206, 18, 19, 219, 205, 18, 19, 159, 219, 205, 18, 19, 219, - 204, 18, 19, 159, 219, 204, 18, 19, 219, 203, 18, 19, 159, 219, 203, 18, - 19, 219, 202, 18, 19, 159, 219, 202, 18, 19, 219, 208, 18, 19, 159, 219, - 208, 18, 19, 219, 207, 18, 19, 159, 219, 207, 18, 19, 220, 104, 18, 19, - 211, 47, 18, 19, 211, 101, 18, 19, 211, 8, 18, 19, 210, 255, 18, 19, 210, - 244, 18, 19, 210, 229, 18, 19, 211, 116, 210, 229, 18, 19, 191, 18, 19, - 211, 103, 18, 19, 210, 174, 18, 19, 159, 210, 174, 18, 19, 210, 173, 18, - 19, 159, 210, 173, 18, 19, 210, 172, 18, 19, 159, 210, 172, 18, 19, 210, - 171, 18, 19, 159, 210, 171, 18, 19, 210, 170, 18, 19, 159, 210, 170, 18, - 19, 210, 176, 18, 19, 159, 210, 176, 18, 19, 210, 175, 18, 19, 159, 210, - 175, 18, 19, 229, 190, 210, 175, 18, 19, 211, 117, 18, 19, 252, 4, 211, - 117, 18, 19, 159, 211, 117, 18, 19, 221, 209, 211, 8, 18, 19, 223, 128, - 18, 19, 223, 223, 223, 128, 18, 19, 159, 233, 58, 18, 19, 223, 183, 18, - 19, 223, 35, 18, 19, 222, 239, 18, 19, 222, 211, 18, 19, 222, 197, 18, - 19, 159, 232, 156, 18, 19, 205, 18, 19, 223, 184, 18, 19, 159, 233, 135, - 18, 19, 222, 108, 18, 19, 159, 222, 108, 18, 19, 153, 18, 19, 159, 153, - 18, 19, 147, 153, 18, 19, 244, 154, 18, 19, 244, 193, 18, 19, 244, 121, - 18, 19, 244, 108, 18, 19, 244, 43, 18, 19, 244, 34, 18, 19, 244, 196, 18, - 19, 244, 195, 18, 19, 243, 212, 18, 19, 159, 243, 212, 18, 19, 245, 6, - 18, 19, 216, 195, 18, 19, 230, 23, 216, 195, 18, 19, 216, 175, 18, 19, - 230, 23, 216, 175, 18, 19, 216, 171, 18, 19, 230, 23, 216, 171, 18, 19, - 216, 156, 18, 19, 216, 153, 18, 19, 216, 208, 18, 19, 216, 207, 18, 19, - 216, 127, 18, 19, 159, 216, 127, 18, 19, 216, 210, 18, 19, 215, 142, 18, - 19, 215, 140, 18, 19, 215, 139, 18, 19, 215, 144, 18, 19, 215, 145, 18, - 19, 215, 52, 18, 19, 215, 51, 18, 19, 215, 50, 18, 19, 215, 53, 18, 19, - 227, 193, 241, 238, 18, 19, 227, 193, 241, 180, 18, 19, 227, 193, 241, - 161, 18, 19, 227, 193, 241, 68, 18, 19, 227, 193, 241, 53, 18, 19, 227, - 193, 162, 18, 19, 227, 193, 242, 46, 18, 19, 227, 193, 242, 60, 18, 19, - 227, 192, 242, 60, 18, 19, 241, 154, 18, 19, 224, 84, 18, 19, 224, 53, - 18, 19, 224, 48, 18, 19, 224, 42, 18, 19, 224, 37, 18, 19, 224, 88, 18, - 19, 224, 87, 18, 19, 224, 96, 18, 19, 216, 55, 18, 19, 216, 53, 18, 19, - 216, 52, 18, 19, 216, 56, 18, 19, 159, 223, 128, 18, 19, 159, 223, 35, - 18, 19, 159, 222, 211, 18, 19, 159, 205, 18, 19, 229, 75, 18, 19, 229, - 27, 18, 19, 229, 23, 18, 19, 229, 4, 18, 19, 228, 255, 18, 19, 229, 77, - 18, 19, 229, 76, 18, 19, 229, 79, 18, 19, 228, 103, 18, 19, 221, 209, - 220, 63, 18, 19, 221, 209, 220, 32, 18, 19, 221, 209, 220, 7, 18, 19, - 221, 209, 220, 102, 18, 19, 211, 213, 216, 195, 18, 19, 211, 213, 216, - 175, 18, 19, 211, 213, 216, 156, 18, 19, 211, 213, 216, 208, 18, 19, 211, - 213, 216, 210, 18, 19, 232, 248, 18, 19, 232, 247, 18, 19, 232, 246, 18, - 19, 232, 245, 18, 19, 232, 254, 18, 19, 232, 253, 18, 19, 232, 255, 18, - 19, 216, 209, 216, 195, 18, 19, 216, 209, 216, 175, 18, 19, 216, 209, - 216, 171, 18, 19, 216, 209, 216, 156, 18, 19, 216, 209, 216, 153, 18, 19, - 216, 209, 216, 208, 18, 19, 216, 209, 216, 207, 18, 19, 216, 209, 216, - 210, 18, 19, 254, 189, 253, 158, 18, 19, 251, 218, 75, 18, 19, 251, 218, - 73, 18, 19, 251, 218, 76, 18, 19, 251, 218, 61, 18, 19, 251, 218, 212, - 22, 18, 19, 251, 218, 211, 250, 18, 19, 251, 218, 211, 227, 18, 19, 251, - 218, 212, 65, 18, 19, 251, 218, 229, 107, 18, 19, 251, 218, 228, 233, 18, - 19, 251, 218, 228, 74, 18, 19, 251, 218, 197, 18, 19, 251, 218, 234, 182, - 18, 19, 251, 218, 234, 92, 18, 19, 251, 218, 234, 28, 18, 19, 251, 218, - 176, 18, 19, 221, 209, 241, 238, 18, 19, 221, 209, 241, 180, 18, 19, 221, - 209, 241, 68, 18, 19, 221, 209, 162, 18, 19, 72, 242, 220, 18, 19, 72, - 242, 224, 18, 19, 72, 242, 236, 18, 19, 72, 242, 235, 18, 19, 72, 242, - 225, 18, 19, 72, 242, 249, 18, 19, 72, 222, 140, 18, 19, 72, 222, 211, - 18, 19, 72, 223, 128, 18, 19, 72, 223, 108, 18, 19, 72, 223, 35, 18, 19, - 72, 205, 18, 19, 72, 211, 195, 18, 19, 72, 211, 227, 18, 19, 72, 212, 22, - 18, 19, 72, 212, 17, 18, 19, 72, 211, 250, 18, 19, 72, 212, 65, 18, 19, - 72, 240, 194, 18, 19, 72, 240, 195, 18, 19, 72, 240, 198, 18, 19, 72, - 240, 197, 18, 19, 72, 240, 196, 18, 19, 72, 240, 200, 18, 19, 72, 216, - 136, 18, 19, 72, 216, 156, 18, 19, 72, 216, 195, 18, 19, 72, 216, 194, - 18, 19, 72, 216, 175, 18, 19, 72, 216, 208, 18, 19, 72, 215, 123, 18, 19, - 72, 215, 133, 18, 19, 72, 215, 151, 18, 19, 72, 215, 150, 18, 19, 72, - 215, 135, 18, 19, 72, 215, 156, 18, 19, 72, 224, 150, 18, 19, 72, 225, - 16, 18, 19, 72, 225, 221, 18, 19, 72, 225, 211, 18, 19, 72, 225, 108, 18, - 19, 72, 190, 18, 19, 72, 226, 105, 18, 19, 72, 242, 113, 18, 19, 72, 242, - 174, 18, 19, 72, 243, 62, 18, 19, 72, 243, 55, 18, 19, 72, 242, 214, 18, - 19, 72, 243, 135, 18, 19, 72, 234, 100, 18, 19, 72, 234, 105, 18, 19, 72, - 234, 119, 18, 19, 72, 234, 118, 18, 19, 72, 234, 112, 18, 19, 72, 234, - 132, 18, 19, 72, 234, 41, 18, 19, 72, 234, 42, 18, 19, 72, 234, 45, 18, - 19, 72, 234, 44, 18, 19, 72, 234, 43, 18, 19, 72, 234, 46, 18, 19, 72, - 234, 47, 18, 19, 72, 227, 237, 18, 19, 72, 228, 74, 18, 19, 72, 229, 107, - 18, 19, 72, 229, 103, 18, 19, 72, 228, 233, 18, 19, 72, 197, 18, 19, 72, - 230, 102, 18, 19, 72, 230, 161, 18, 19, 72, 231, 91, 18, 19, 72, 231, 80, - 18, 19, 72, 230, 230, 18, 19, 72, 184, 18, 19, 72, 210, 212, 18, 19, 72, - 210, 244, 18, 19, 72, 211, 47, 18, 19, 72, 211, 44, 18, 19, 72, 211, 8, - 18, 19, 72, 191, 18, 19, 72, 235, 51, 18, 19, 221, 209, 235, 51, 18, 19, - 72, 235, 68, 18, 19, 72, 235, 126, 18, 19, 72, 235, 124, 18, 19, 72, 235, - 108, 18, 19, 221, 209, 235, 108, 18, 19, 72, 235, 141, 18, 19, 72, 235, - 81, 18, 19, 72, 235, 85, 18, 19, 72, 235, 95, 18, 19, 72, 235, 94, 18, - 19, 72, 235, 93, 18, 19, 72, 235, 96, 18, 19, 72, 232, 98, 18, 19, 72, - 232, 156, 18, 19, 72, 233, 58, 18, 19, 72, 233, 50, 18, 19, 72, 232, 241, - 18, 19, 72, 233, 135, 18, 19, 72, 247, 149, 18, 19, 72, 247, 150, 18, 19, - 72, 247, 155, 18, 19, 72, 247, 154, 18, 19, 72, 247, 151, 18, 19, 72, - 247, 156, 18, 19, 72, 232, 244, 18, 19, 72, 232, 246, 18, 19, 72, 232, - 250, 18, 19, 72, 232, 249, 18, 19, 72, 232, 248, 18, 19, 72, 232, 254, - 18, 19, 72, 216, 50, 18, 19, 72, 216, 52, 18, 19, 72, 216, 55, 18, 19, - 72, 216, 54, 18, 19, 72, 216, 53, 18, 19, 72, 216, 56, 18, 19, 72, 216, - 45, 18, 19, 72, 216, 46, 18, 19, 72, 216, 58, 18, 19, 72, 216, 57, 18, - 19, 72, 216, 47, 18, 19, 72, 216, 59, 18, 19, 72, 210, 13, 18, 19, 72, - 210, 23, 18, 19, 72, 210, 94, 18, 19, 72, 210, 92, 18, 19, 72, 210, 44, - 18, 19, 72, 210, 116, 18, 19, 72, 210, 159, 18, 19, 72, 65, 210, 159, 18, - 19, 72, 246, 28, 18, 19, 72, 246, 29, 18, 19, 72, 246, 36, 18, 19, 72, - 246, 35, 18, 19, 72, 246, 31, 18, 19, 72, 246, 38, 18, 19, 72, 218, 83, - 18, 19, 72, 219, 58, 18, 19, 72, 221, 181, 18, 19, 72, 221, 170, 18, 19, - 72, 219, 191, 18, 19, 72, 206, 18, 19, 72, 219, 225, 18, 19, 72, 220, 7, - 18, 19, 72, 220, 63, 18, 19, 72, 220, 61, 18, 19, 72, 220, 32, 18, 19, - 72, 220, 102, 18, 19, 72, 220, 104, 18, 19, 72, 215, 163, 18, 19, 72, - 215, 166, 18, 19, 72, 215, 178, 18, 19, 72, 215, 177, 18, 19, 72, 215, - 167, 18, 19, 72, 215, 183, 18, 19, 72, 250, 69, 18, 19, 72, 250, 86, 18, - 19, 72, 250, 131, 18, 19, 72, 250, 128, 18, 19, 72, 250, 110, 18, 19, 72, - 250, 157, 18, 19, 72, 215, 126, 18, 19, 72, 215, 127, 18, 19, 72, 215, - 130, 18, 19, 72, 215, 129, 18, 19, 72, 215, 128, 18, 19, 72, 215, 131, - 18, 19, 250, 111, 50, 18, 19, 243, 229, 218, 129, 18, 19, 224, 80, 18, - 19, 229, 73, 18, 19, 228, 100, 18, 19, 228, 99, 18, 19, 228, 98, 18, 19, - 228, 97, 18, 19, 228, 102, 18, 19, 228, 101, 18, 19, 211, 213, 216, 125, - 18, 19, 211, 213, 216, 124, 18, 19, 211, 213, 216, 123, 18, 19, 211, 213, - 216, 122, 18, 19, 211, 213, 216, 121, 18, 19, 211, 213, 216, 128, 18, 19, - 211, 213, 216, 127, 18, 19, 211, 213, 40, 216, 210, 18, 19, 251, 218, - 212, 98, 226, 226, 219, 19, 78, 226, 226, 1, 252, 48, 226, 226, 1, 232, - 87, 226, 226, 1, 244, 151, 226, 226, 1, 222, 15, 226, 226, 1, 228, 193, - 226, 226, 1, 214, 226, 226, 226, 1, 248, 197, 226, 226, 1, 216, 80, 226, - 226, 1, 249, 229, 226, 226, 1, 250, 180, 226, 226, 1, 230, 91, 226, 226, - 1, 242, 156, 226, 226, 1, 229, 63, 226, 226, 1, 218, 122, 226, 226, 1, - 222, 135, 226, 226, 1, 254, 198, 226, 226, 1, 226, 187, 226, 226, 1, 214, - 150, 226, 226, 1, 245, 231, 226, 226, 1, 235, 188, 226, 226, 1, 245, 232, - 226, 226, 1, 226, 158, 226, 226, 1, 214, 206, 226, 226, 1, 236, 39, 226, - 226, 1, 245, 229, 226, 226, 1, 225, 202, 226, 226, 244, 150, 78, 226, - 226, 223, 49, 244, 150, 78, 178, 1, 244, 141, 244, 133, 244, 155, 245, 6, - 178, 1, 214, 105, 178, 1, 214, 135, 214, 151, 70, 178, 1, 210, 214, 178, - 1, 211, 117, 178, 1, 212, 98, 178, 1, 216, 130, 216, 129, 216, 151, 178, - 1, 245, 59, 178, 1, 254, 93, 61, 178, 1, 226, 143, 76, 178, 1, 255, 17, - 61, 178, 1, 254, 227, 178, 1, 232, 133, 76, 178, 1, 219, 244, 76, 178, 1, - 76, 178, 1, 226, 234, 178, 1, 226, 196, 178, 1, 223, 164, 223, 177, 223, - 94, 153, 178, 1, 234, 193, 178, 1, 250, 177, 178, 1, 234, 194, 235, 23, - 178, 1, 243, 202, 178, 1, 245, 138, 178, 1, 243, 58, 242, 66, 243, 202, - 178, 1, 243, 96, 178, 1, 211, 188, 211, 182, 212, 98, 178, 1, 242, 38, - 242, 60, 178, 1, 242, 42, 242, 60, 178, 1, 232, 135, 242, 60, 178, 1, - 219, 247, 242, 60, 178, 1, 229, 185, 227, 157, 229, 186, 230, 25, 178, 1, - 219, 245, 230, 25, 178, 1, 246, 115, 178, 1, 235, 168, 235, 172, 235, - 162, 73, 178, 1, 75, 178, 1, 235, 117, 235, 144, 178, 1, 243, 43, 178, 1, - 232, 136, 254, 243, 178, 1, 219, 249, 61, 178, 1, 235, 154, 245, 113, - 178, 1, 225, 164, 225, 186, 226, 105, 178, 1, 254, 163, 245, 111, 178, 1, - 219, 24, 222, 91, 178, 1, 219, 179, 232, 132, 222, 91, 178, 1, 219, 243, - 222, 91, 178, 1, 251, 66, 178, 1, 210, 159, 178, 1, 216, 63, 216, 73, - 215, 41, 217, 152, 178, 1, 219, 242, 217, 152, 178, 1, 249, 60, 178, 1, - 252, 31, 252, 34, 251, 224, 253, 158, 178, 1, 219, 248, 253, 158, 178, 1, - 246, 114, 178, 1, 226, 171, 178, 1, 245, 196, 245, 198, 75, 178, 1, 231, - 178, 231, 186, 193, 178, 1, 232, 134, 193, 178, 1, 219, 246, 193, 178, 1, - 233, 73, 233, 114, 232, 143, 156, 178, 1, 246, 116, 178, 1, 235, 230, - 178, 1, 235, 231, 178, 1, 248, 210, 248, 215, 249, 60, 178, 1, 226, 138, - 245, 58, 76, 178, 1, 245, 227, 178, 1, 235, 187, 178, 1, 249, 78, 178, 1, - 251, 17, 178, 1, 250, 189, 178, 1, 218, 161, 178, 1, 232, 131, 178, 1, - 219, 241, 178, 1, 240, 110, 178, 1, 224, 96, 178, 1, 211, 178, 178, 219, - 155, 224, 140, 178, 230, 85, 224, 140, 178, 249, 131, 224, 140, 178, 254, - 6, 87, 178, 215, 82, 87, 178, 252, 46, 87, 217, 83, 1, 61, 217, 83, 1, - 73, 217, 83, 1, 70, 217, 83, 1, 176, 217, 83, 1, 243, 135, 217, 83, 1, - 229, 77, 217, 83, 1, 217, 105, 217, 83, 1, 248, 221, 217, 83, 1, 197, - 217, 83, 1, 190, 217, 83, 1, 252, 191, 217, 83, 1, 184, 217, 83, 1, 191, - 217, 83, 1, 233, 135, 217, 83, 1, 212, 65, 217, 83, 1, 206, 217, 83, 1, - 162, 217, 83, 25, 5, 73, 217, 83, 25, 5, 70, 217, 83, 5, 213, 152, 242, - 7, 1, 61, 242, 7, 1, 73, 242, 7, 1, 70, 242, 7, 1, 176, 242, 7, 1, 243, - 135, 242, 7, 1, 229, 77, 242, 7, 1, 217, 105, 242, 7, 1, 248, 221, 242, - 7, 1, 197, 242, 7, 1, 190, 242, 7, 1, 252, 191, 242, 7, 1, 184, 242, 7, - 1, 191, 242, 7, 1, 205, 242, 7, 1, 233, 135, 242, 7, 1, 212, 65, 242, 7, - 1, 206, 242, 7, 1, 162, 242, 7, 25, 5, 73, 242, 7, 25, 5, 70, 242, 7, 5, - 226, 49, 225, 126, 219, 155, 224, 140, 225, 126, 52, 224, 140, 251, 120, - 1, 61, 251, 120, 1, 73, 251, 120, 1, 70, 251, 120, 1, 176, 251, 120, 1, - 243, 135, 251, 120, 1, 229, 77, 251, 120, 1, 217, 105, 251, 120, 1, 248, - 221, 251, 120, 1, 197, 251, 120, 1, 190, 251, 120, 1, 252, 191, 251, 120, - 1, 184, 251, 120, 1, 191, 251, 120, 1, 205, 251, 120, 1, 233, 135, 251, - 120, 1, 212, 65, 251, 120, 1, 206, 251, 120, 1, 162, 251, 120, 25, 5, 73, - 251, 120, 25, 5, 70, 217, 82, 1, 61, 217, 82, 1, 73, 217, 82, 1, 70, 217, - 82, 1, 176, 217, 82, 1, 243, 135, 217, 82, 1, 229, 77, 217, 82, 1, 217, - 105, 217, 82, 1, 248, 221, 217, 82, 1, 197, 217, 82, 1, 190, 217, 82, 1, - 252, 191, 217, 82, 1, 184, 217, 82, 1, 191, 217, 82, 1, 233, 135, 217, - 82, 1, 212, 65, 217, 82, 1, 206, 217, 82, 25, 5, 73, 217, 82, 25, 5, 70, - 69, 1, 176, 69, 1, 234, 132, 69, 1, 234, 28, 69, 1, 234, 105, 69, 1, 229, - 4, 69, 1, 251, 33, 69, 1, 250, 157, 69, 1, 249, 238, 69, 1, 250, 86, 69, - 1, 227, 134, 69, 1, 248, 221, 69, 1, 215, 144, 69, 1, 247, 145, 69, 1, - 215, 139, 69, 1, 228, 80, 69, 1, 217, 105, 69, 1, 216, 208, 69, 1, 111, - 69, 1, 216, 156, 69, 1, 228, 74, 69, 1, 252, 191, 69, 1, 225, 147, 69, 1, - 225, 16, 69, 1, 225, 121, 69, 1, 230, 161, 69, 1, 210, 244, 69, 1, 222, - 211, 69, 1, 232, 156, 69, 1, 213, 138, 69, 1, 220, 102, 69, 1, 218, 184, - 69, 1, 206, 69, 1, 162, 69, 1, 233, 135, 69, 1, 224, 88, 69, 235, 243, - 25, 224, 74, 69, 235, 243, 25, 224, 87, 69, 235, 243, 25, 224, 53, 69, - 235, 243, 25, 224, 48, 69, 235, 243, 25, 224, 30, 69, 235, 243, 25, 224, - 2, 69, 235, 243, 25, 223, 246, 69, 235, 243, 25, 223, 245, 69, 235, 243, - 25, 222, 100, 69, 235, 243, 25, 222, 93, 69, 235, 243, 25, 232, 62, 69, - 235, 243, 25, 232, 52, 69, 235, 243, 25, 224, 69, 69, 235, 243, 25, 224, - 80, 69, 235, 243, 25, 224, 38, 215, 49, 110, 69, 235, 243, 25, 224, 38, - 215, 49, 105, 69, 235, 243, 25, 224, 70, 69, 25, 235, 229, 254, 45, 69, - 25, 235, 229, 255, 73, 69, 25, 5, 255, 73, 69, 25, 5, 73, 69, 25, 5, 236, - 33, 69, 25, 5, 211, 117, 69, 25, 5, 210, 169, 69, 25, 5, 70, 69, 25, 5, - 214, 118, 69, 25, 5, 214, 229, 69, 25, 5, 226, 234, 69, 25, 5, 191, 69, - 25, 5, 236, 60, 69, 25, 5, 75, 69, 25, 5, 254, 243, 69, 25, 5, 254, 201, - 69, 25, 5, 226, 183, 69, 25, 5, 253, 192, 69, 5, 228, 206, 69, 5, 223, - 126, 69, 5, 210, 180, 69, 5, 230, 52, 69, 5, 215, 213, 69, 5, 252, 143, - 69, 5, 222, 206, 69, 5, 216, 40, 69, 5, 234, 241, 69, 5, 254, 203, 69, 5, - 221, 244, 221, 238, 69, 5, 213, 149, 69, 5, 249, 232, 69, 5, 252, 117, - 69, 5, 234, 125, 69, 5, 252, 137, 69, 5, 251, 9, 225, 72, 233, 187, 69, - 5, 233, 30, 216, 17, 69, 5, 252, 20, 69, 5, 225, 123, 230, 99, 69, 5, - 234, 9, 69, 249, 98, 16, 223, 28, 69, 5, 253, 174, 69, 5, 253, 195, 69, - 21, 210, 86, 69, 21, 110, 69, 21, 105, 69, 21, 158, 69, 21, 161, 69, 21, - 189, 69, 21, 194, 69, 21, 198, 69, 21, 195, 69, 21, 200, 69, 16, 233, 30, - 253, 197, 219, 43, 69, 16, 233, 30, 253, 197, 230, 71, 69, 16, 233, 30, - 253, 197, 225, 71, 69, 16, 233, 30, 253, 197, 252, 49, 69, 16, 233, 30, - 253, 197, 251, 103, 69, 16, 233, 30, 253, 197, 224, 215, 69, 16, 233, 30, - 253, 197, 224, 209, 69, 16, 233, 30, 253, 197, 224, 207, 69, 16, 233, 30, - 253, 197, 224, 213, 69, 16, 233, 30, 253, 197, 224, 211, 83, 251, 236, - 83, 245, 163, 83, 249, 219, 83, 243, 229, 218, 129, 83, 249, 226, 83, - 244, 11, 247, 118, 83, 216, 39, 219, 52, 240, 168, 83, 219, 190, 3, 251, - 172, 231, 154, 83, 231, 183, 249, 219, 83, 231, 183, 243, 229, 218, 129, - 83, 228, 191, 83, 243, 253, 45, 221, 157, 110, 83, 243, 253, 45, 221, - 157, 105, 83, 243, 253, 45, 221, 157, 158, 83, 25, 220, 137, 83, 21, 210, - 86, 83, 21, 110, 83, 21, 105, 83, 21, 158, 83, 21, 161, 83, 21, 189, 83, - 21, 194, 83, 21, 198, 83, 21, 195, 83, 21, 200, 83, 1, 61, 83, 1, 75, 83, - 1, 73, 83, 1, 76, 83, 1, 70, 83, 1, 226, 234, 83, 1, 214, 214, 83, 1, - 245, 209, 83, 1, 197, 83, 1, 254, 115, 83, 1, 252, 191, 83, 1, 190, 83, - 1, 224, 88, 83, 1, 243, 135, 83, 1, 184, 83, 1, 233, 135, 83, 1, 206, 83, - 1, 220, 102, 83, 1, 217, 105, 83, 1, 248, 221, 83, 1, 250, 157, 83, 1, - 235, 141, 83, 1, 191, 83, 1, 205, 83, 1, 212, 65, 83, 1, 244, 196, 83, 1, - 176, 83, 1, 234, 132, 83, 1, 215, 183, 83, 1, 210, 116, 83, 1, 242, 46, - 83, 1, 210, 16, 83, 1, 232, 254, 83, 1, 210, 69, 83, 1, 250, 110, 83, 1, - 216, 39, 199, 25, 50, 83, 1, 216, 39, 75, 83, 1, 216, 39, 73, 83, 1, 216, - 39, 76, 83, 1, 216, 39, 70, 83, 1, 216, 39, 226, 234, 83, 1, 216, 39, - 214, 214, 83, 1, 216, 39, 254, 115, 83, 1, 216, 39, 252, 191, 83, 1, 216, - 39, 190, 83, 1, 216, 39, 224, 88, 83, 1, 216, 39, 243, 135, 83, 1, 216, - 39, 184, 83, 1, 216, 39, 217, 105, 83, 1, 216, 39, 248, 221, 83, 1, 216, - 39, 250, 157, 83, 1, 216, 39, 235, 141, 83, 1, 216, 39, 215, 183, 83, 1, - 216, 39, 191, 83, 1, 216, 39, 212, 65, 83, 1, 216, 39, 176, 83, 1, 216, - 39, 243, 132, 83, 1, 216, 39, 242, 46, 83, 1, 216, 39, 235, 107, 83, 1, - 216, 39, 228, 231, 83, 1, 216, 39, 246, 38, 83, 1, 219, 190, 75, 83, 1, - 219, 190, 73, 83, 1, 219, 190, 235, 152, 83, 1, 219, 190, 214, 214, 83, - 1, 219, 190, 70, 83, 1, 219, 190, 254, 115, 83, 1, 219, 190, 176, 83, 1, - 219, 190, 243, 135, 83, 1, 219, 190, 162, 83, 1, 219, 190, 190, 83, 1, - 219, 190, 220, 102, 83, 1, 219, 190, 217, 105, 83, 1, 219, 190, 248, 221, - 83, 1, 219, 190, 235, 141, 83, 1, 219, 190, 244, 196, 83, 1, 219, 190, - 243, 132, 83, 1, 219, 190, 242, 46, 83, 1, 219, 190, 215, 183, 83, 1, - 219, 190, 210, 116, 83, 1, 219, 190, 223, 184, 83, 1, 219, 190, 250, 157, - 83, 1, 219, 190, 210, 82, 83, 1, 231, 183, 73, 83, 1, 231, 183, 176, 83, - 1, 231, 183, 205, 83, 1, 231, 183, 244, 196, 83, 1, 231, 183, 210, 82, - 83, 1, 254, 162, 243, 116, 254, 76, 110, 83, 1, 254, 162, 243, 116, 213, - 148, 110, 83, 1, 254, 162, 243, 116, 248, 186, 83, 1, 254, 162, 243, 116, - 214, 224, 83, 1, 254, 162, 243, 116, 235, 193, 214, 224, 83, 1, 254, 162, - 243, 116, 252, 155, 83, 1, 254, 162, 243, 116, 134, 252, 155, 83, 1, 254, - 162, 243, 116, 61, 83, 1, 254, 162, 243, 116, 73, 83, 1, 254, 162, 243, - 116, 176, 83, 1, 254, 162, 243, 116, 229, 77, 83, 1, 254, 162, 243, 116, - 251, 33, 83, 1, 254, 162, 243, 116, 215, 156, 83, 1, 254, 162, 243, 116, - 215, 144, 83, 1, 254, 162, 243, 116, 248, 135, 83, 1, 254, 162, 243, 116, - 228, 110, 83, 1, 254, 162, 243, 116, 217, 105, 83, 1, 254, 162, 243, 116, - 248, 221, 83, 1, 254, 162, 243, 116, 190, 83, 1, 254, 162, 243, 116, 225, - 147, 83, 1, 254, 162, 243, 116, 218, 223, 83, 1, 254, 162, 243, 116, 210, - 82, 83, 1, 254, 162, 243, 116, 210, 116, 83, 1, 254, 162, 243, 116, 254, - 209, 83, 1, 216, 39, 254, 162, 243, 116, 217, 105, 83, 1, 216, 39, 254, - 162, 243, 116, 210, 82, 83, 1, 231, 183, 254, 162, 243, 116, 242, 249, - 83, 1, 231, 183, 254, 162, 243, 116, 229, 77, 83, 1, 231, 183, 254, 162, - 243, 116, 251, 33, 83, 1, 231, 183, 254, 162, 243, 116, 235, 114, 83, 1, - 231, 183, 254, 162, 243, 116, 215, 156, 83, 1, 231, 183, 254, 162, 243, - 116, 248, 119, 83, 1, 231, 183, 254, 162, 243, 116, 217, 105, 83, 1, 231, - 183, 254, 162, 243, 116, 248, 25, 83, 1, 231, 183, 254, 162, 243, 116, - 218, 223, 83, 1, 231, 183, 254, 162, 243, 116, 249, 72, 83, 1, 231, 183, - 254, 162, 243, 116, 210, 82, 83, 1, 231, 183, 254, 162, 243, 116, 210, - 116, 83, 1, 254, 162, 243, 116, 163, 70, 83, 1, 254, 162, 243, 116, 163, - 191, 83, 1, 231, 183, 254, 162, 243, 116, 252, 18, 83, 1, 254, 162, 243, - 116, 248, 211, 83, 1, 231, 183, 254, 162, 243, 116, 232, 254, 18, 19, - 226, 109, 18, 19, 253, 167, 18, 19, 255, 28, 18, 19, 212, 25, 18, 19, - 224, 221, 18, 19, 225, 229, 18, 19, 224, 105, 18, 19, 217, 31, 18, 19, - 234, 189, 18, 19, 233, 179, 18, 19, 231, 132, 18, 19, 228, 37, 18, 19, - 229, 181, 18, 19, 233, 68, 18, 19, 219, 22, 18, 19, 221, 211, 18, 19, - 219, 232, 18, 19, 220, 66, 18, 19, 219, 201, 18, 19, 210, 220, 18, 19, - 211, 52, 18, 19, 223, 134, 18, 19, 227, 171, 18, 19, 226, 216, 227, 171, - 18, 19, 227, 170, 18, 19, 226, 216, 227, 170, 18, 19, 227, 169, 18, 19, - 226, 216, 227, 169, 18, 19, 227, 168, 18, 19, 226, 216, 227, 168, 18, 19, - 222, 105, 18, 19, 222, 104, 18, 19, 222, 103, 18, 19, 222, 102, 18, 19, - 222, 101, 18, 19, 222, 109, 18, 19, 226, 216, 226, 105, 18, 19, 226, 216, - 217, 152, 18, 19, 226, 216, 235, 23, 18, 19, 226, 216, 251, 66, 18, 19, - 226, 216, 193, 18, 19, 226, 216, 230, 25, 18, 19, 226, 216, 222, 91, 18, - 19, 226, 216, 220, 104, 18, 19, 245, 219, 212, 98, 18, 19, 212, 7, 212, - 98, 18, 19, 40, 4, 222, 233, 18, 19, 40, 223, 157, 247, 120, 18, 19, 223, - 223, 222, 106, 18, 19, 159, 232, 127, 18, 19, 159, 233, 134, 18, 19, 216, - 126, 18, 19, 216, 128, 18, 19, 215, 136, 18, 19, 215, 138, 18, 19, 215, - 143, 18, 19, 216, 49, 18, 19, 216, 51, 18, 19, 221, 209, 219, 206, 18, - 19, 221, 209, 220, 1, 18, 19, 221, 209, 241, 53, 18, 19, 72, 242, 73, 18, - 19, 72, 248, 52, 243, 55, 18, 19, 72, 243, 132, 18, 19, 72, 242, 78, 18, - 19, 221, 209, 235, 33, 18, 19, 72, 235, 31, 18, 19, 252, 68, 248, 52, - 156, 18, 19, 252, 68, 248, 52, 153, 18, 19, 72, 248, 47, 222, 91, 232, - 223, 213, 122, 233, 10, 232, 223, 1, 176, 232, 223, 1, 234, 132, 232, - 223, 1, 243, 135, 232, 223, 1, 242, 249, 232, 223, 1, 229, 77, 232, 223, - 1, 251, 33, 232, 223, 1, 250, 157, 232, 223, 1, 235, 141, 232, 223, 1, - 235, 114, 232, 223, 1, 211, 71, 232, 223, 1, 217, 105, 232, 223, 1, 216, - 208, 232, 223, 1, 248, 221, 232, 223, 1, 248, 25, 232, 223, 1, 197, 232, - 223, 1, 190, 232, 223, 1, 225, 147, 232, 223, 1, 252, 191, 232, 223, 1, - 252, 18, 232, 223, 1, 184, 232, 223, 1, 191, 232, 223, 1, 205, 232, 223, - 1, 233, 135, 232, 223, 1, 212, 65, 232, 223, 1, 220, 102, 232, 223, 1, - 218, 223, 232, 223, 1, 206, 232, 223, 1, 162, 232, 223, 25, 5, 61, 232, - 223, 25, 5, 73, 232, 223, 25, 5, 70, 232, 223, 25, 5, 245, 209, 232, 223, - 25, 5, 254, 201, 232, 223, 25, 5, 226, 183, 232, 223, 25, 5, 253, 192, - 232, 223, 25, 5, 75, 232, 223, 25, 5, 76, 232, 223, 218, 73, 1, 191, 232, - 223, 218, 73, 1, 205, 232, 223, 218, 73, 1, 212, 65, 232, 223, 4, 1, 176, - 232, 223, 4, 1, 229, 77, 232, 223, 4, 1, 254, 75, 232, 223, 4, 1, 217, - 105, 232, 223, 4, 1, 197, 232, 223, 4, 1, 190, 232, 223, 4, 1, 184, 232, - 223, 4, 1, 205, 232, 223, 4, 1, 233, 135, 232, 223, 5, 230, 89, 232, 223, - 5, 234, 171, 232, 223, 5, 222, 32, 232, 223, 5, 232, 127, 232, 223, 245, - 31, 78, 232, 223, 224, 13, 78, 232, 223, 21, 210, 86, 232, 223, 21, 110, - 232, 223, 21, 105, 232, 223, 21, 158, 232, 223, 21, 161, 232, 223, 21, - 189, 232, 223, 21, 194, 232, 223, 21, 198, 232, 223, 21, 195, 232, 223, - 21, 200, 39, 233, 59, 1, 176, 39, 233, 59, 1, 211, 165, 39, 233, 59, 1, - 229, 77, 39, 233, 59, 1, 215, 183, 39, 233, 59, 1, 206, 39, 233, 59, 1, - 191, 39, 233, 59, 1, 217, 105, 39, 233, 59, 1, 216, 208, 39, 233, 59, 1, - 233, 135, 39, 233, 59, 1, 190, 39, 233, 59, 1, 225, 147, 39, 233, 59, 1, - 184, 39, 233, 59, 1, 244, 196, 39, 233, 59, 1, 214, 27, 39, 233, 59, 1, - 162, 39, 233, 59, 1, 224, 88, 39, 233, 59, 1, 234, 132, 39, 233, 59, 1, - 215, 175, 39, 233, 59, 1, 197, 39, 233, 59, 1, 61, 39, 233, 59, 1, 73, - 39, 233, 59, 1, 245, 209, 39, 233, 59, 1, 245, 197, 39, 233, 59, 1, 70, - 39, 233, 59, 1, 226, 183, 39, 233, 59, 1, 76, 39, 233, 59, 1, 214, 214, - 39, 233, 59, 1, 75, 39, 233, 59, 1, 253, 190, 39, 233, 59, 1, 254, 201, - 39, 233, 59, 1, 216, 28, 39, 233, 59, 1, 216, 27, 39, 233, 59, 1, 216, - 26, 39, 233, 59, 1, 216, 25, 39, 233, 59, 1, 216, 24, 166, 39, 173, 1, - 125, 224, 88, 166, 39, 173, 1, 121, 224, 88, 166, 39, 173, 1, 125, 176, - 166, 39, 173, 1, 125, 211, 165, 166, 39, 173, 1, 125, 229, 77, 166, 39, + 164, 251, 131, 222, 144, 63, 164, 229, 69, 251, 69, 227, 150, 210, 25, + 63, 164, 250, 240, 255, 164, 222, 145, 251, 70, 230, 203, 251, 8, 63, + 164, 229, 69, 251, 69, 220, 107, 222, 144, 63, 164, 250, 133, 230, 248, + 63, 164, 215, 185, 255, 161, 63, 164, 242, 101, 222, 145, 242, 64, 63, + 164, 242, 101, 222, 145, 242, 70, 63, 164, 254, 117, 234, 124, 242, 64, + 63, 164, 254, 117, 234, 124, 242, 70, 63, 5, 211, 65, 215, 172, 63, 5, + 231, 168, 215, 172, 63, 1, 176, 63, 1, 234, 133, 63, 1, 243, 136, 63, 1, + 242, 250, 63, 1, 229, 78, 63, 1, 251, 34, 63, 1, 250, 158, 63, 1, 235, + 142, 63, 1, 227, 166, 63, 1, 215, 157, 63, 1, 215, 145, 63, 1, 248, 136, + 63, 1, 248, 120, 63, 1, 228, 111, 63, 1, 217, 106, 63, 1, 216, 209, 63, + 1, 248, 222, 63, 1, 248, 26, 63, 1, 197, 63, 1, 190, 63, 1, 225, 148, 63, + 1, 252, 192, 63, 1, 252, 19, 63, 1, 185, 63, 1, 215, 184, 63, 1, 215, + 176, 63, 1, 246, 39, 63, 1, 246, 34, 63, 1, 212, 65, 63, 1, 210, 82, 63, + 1, 210, 116, 63, 1, 255, 167, 63, 1, 191, 63, 1, 205, 63, 1, 233, 136, + 63, 1, 220, 103, 63, 1, 218, 224, 63, 1, 206, 63, 1, 162, 63, 1, 61, 63, + 1, 233, 232, 63, 1, 244, 78, 205, 63, 1, 234, 47, 63, 1, 222, 180, 63, + 25, 5, 255, 74, 63, 25, 5, 73, 63, 25, 5, 236, 34, 63, 25, 5, 70, 63, 25, + 5, 214, 118, 63, 25, 5, 149, 153, 63, 25, 5, 149, 222, 181, 63, 25, 5, + 149, 156, 63, 25, 5, 149, 232, 186, 63, 25, 5, 75, 63, 25, 5, 245, 210, + 63, 25, 5, 76, 63, 25, 5, 226, 184, 63, 5, 222, 222, 218, 85, 229, 79, + 222, 212, 63, 5, 222, 217, 252, 77, 63, 25, 5, 223, 50, 73, 63, 25, 5, + 223, 50, 236, 34, 63, 5, 227, 150, 210, 26, 229, 227, 248, 222, 63, 5, + 219, 72, 233, 61, 63, 164, 242, 30, 63, 164, 226, 58, 63, 5, 233, 64, + 222, 144, 63, 5, 211, 70, 222, 144, 63, 5, 233, 65, 215, 185, 251, 8, 63, + 5, 231, 96, 251, 8, 63, 5, 242, 120, 251, 9, 223, 41, 63, 5, 242, 120, + 231, 86, 223, 41, 63, 5, 235, 194, 231, 96, 251, 8, 63, 218, 74, 5, 233, + 65, 215, 185, 251, 8, 63, 218, 74, 5, 231, 96, 251, 8, 63, 218, 74, 5, + 235, 194, 231, 96, 251, 8, 63, 218, 74, 1, 176, 63, 218, 74, 1, 234, 133, + 63, 218, 74, 1, 243, 136, 63, 218, 74, 1, 242, 250, 63, 218, 74, 1, 229, + 78, 63, 218, 74, 1, 251, 34, 63, 218, 74, 1, 250, 158, 63, 218, 74, 1, + 235, 142, 63, 218, 74, 1, 227, 166, 63, 218, 74, 1, 215, 157, 63, 218, + 74, 1, 215, 145, 63, 218, 74, 1, 248, 136, 63, 218, 74, 1, 248, 120, 63, + 218, 74, 1, 228, 111, 63, 218, 74, 1, 217, 106, 63, 218, 74, 1, 216, 209, + 63, 218, 74, 1, 248, 222, 63, 218, 74, 1, 248, 26, 63, 218, 74, 1, 197, + 63, 218, 74, 1, 190, 63, 218, 74, 1, 225, 148, 63, 218, 74, 1, 252, 192, + 63, 218, 74, 1, 252, 19, 63, 218, 74, 1, 185, 63, 218, 74, 1, 215, 184, + 63, 218, 74, 1, 215, 176, 63, 218, 74, 1, 246, 39, 63, 218, 74, 1, 246, + 34, 63, 218, 74, 1, 212, 65, 63, 218, 74, 1, 210, 82, 63, 218, 74, 1, + 210, 116, 63, 218, 74, 1, 255, 167, 63, 218, 74, 1, 191, 63, 218, 74, 1, + 205, 63, 218, 74, 1, 233, 136, 63, 218, 74, 1, 220, 103, 63, 218, 74, 1, + 218, 224, 63, 218, 74, 1, 206, 63, 218, 74, 1, 162, 63, 218, 74, 1, 61, + 63, 218, 74, 1, 233, 232, 63, 218, 74, 1, 244, 78, 212, 65, 63, 218, 74, + 1, 244, 78, 191, 63, 218, 74, 1, 244, 78, 205, 63, 233, 219, 222, 142, + 234, 133, 63, 233, 219, 222, 142, 234, 134, 251, 70, 230, 203, 251, 8, + 63, 250, 253, 5, 114, 252, 71, 63, 250, 253, 5, 192, 252, 71, 63, 250, + 253, 5, 250, 254, 217, 21, 63, 250, 253, 5, 221, 208, 255, 166, 63, 16, + 246, 92, 251, 126, 63, 16, 223, 130, 222, 223, 63, 16, 226, 78, 243, 64, + 63, 16, 223, 130, 222, 224, 223, 43, 242, 146, 63, 16, 225, 113, 190, 63, + 16, 228, 60, 251, 126, 63, 16, 228, 60, 251, 127, 227, 140, 255, 163, 63, + 16, 228, 60, 251, 127, 242, 118, 255, 163, 63, 16, 228, 60, 251, 127, + 251, 70, 255, 163, 63, 5, 223, 131, 229, 220, 223, 131, 247, 159, 63, 5, + 223, 131, 229, 220, 242, 117, 63, 164, 251, 130, 220, 4, 242, 216, 230, + 249, 223, 42, 63, 164, 230, 164, 211, 0, 242, 216, 230, 249, 223, 42, 63, + 164, 227, 140, 215, 173, 63, 164, 65, 251, 153, 222, 214, 211, 0, 230, + 249, 231, 94, 185, 63, 164, 249, 253, 251, 153, 222, 214, 211, 0, 230, + 249, 220, 110, 185, 222, 251, 218, 0, 50, 233, 46, 218, 0, 50, 222, 251, + 218, 0, 5, 2, 247, 119, 233, 46, 218, 0, 5, 2, 247, 119, 63, 164, 233, + 56, 231, 97, 222, 144, 63, 164, 215, 251, 231, 97, 222, 144, 68, 1, 176, + 68, 1, 234, 133, 68, 1, 243, 136, 68, 1, 242, 250, 68, 1, 229, 78, 68, 1, + 251, 34, 68, 1, 250, 158, 68, 1, 235, 142, 68, 1, 235, 115, 68, 1, 227, + 166, 68, 1, 228, 77, 68, 1, 215, 157, 68, 1, 215, 145, 68, 1, 248, 136, + 68, 1, 248, 120, 68, 1, 228, 111, 68, 1, 217, 106, 68, 1, 216, 209, 68, + 1, 248, 222, 68, 1, 248, 26, 68, 1, 197, 68, 1, 190, 68, 1, 225, 148, 68, + 1, 252, 192, 68, 1, 252, 19, 68, 1, 185, 68, 1, 191, 68, 1, 205, 68, 1, + 233, 136, 68, 1, 212, 65, 68, 1, 206, 68, 1, 162, 68, 1, 232, 185, 68, 1, + 61, 68, 1, 220, 87, 61, 68, 1, 73, 68, 1, 236, 34, 68, 1, 70, 68, 1, 214, + 118, 68, 1, 75, 68, 1, 230, 152, 75, 68, 1, 76, 68, 1, 253, 193, 68, 25, + 5, 217, 65, 255, 74, 68, 25, 5, 255, 74, 68, 25, 5, 73, 68, 25, 5, 236, + 34, 68, 25, 5, 70, 68, 25, 5, 214, 118, 68, 25, 5, 75, 68, 25, 5, 254, + 202, 68, 25, 5, 230, 152, 236, 34, 68, 25, 5, 230, 152, 76, 68, 25, 5, + 160, 48, 68, 5, 254, 76, 68, 5, 59, 51, 68, 5, 213, 147, 68, 5, 213, 152, + 68, 5, 253, 236, 68, 116, 5, 147, 191, 68, 116, 5, 147, 205, 68, 116, 5, + 147, 212, 65, 68, 116, 5, 147, 162, 68, 1, 242, 133, 206, 68, 21, 210, + 86, 68, 21, 110, 68, 21, 105, 68, 21, 158, 68, 21, 161, 68, 21, 189, 68, + 21, 194, 68, 21, 198, 68, 21, 195, 68, 21, 200, 68, 5, 232, 193, 221, + 173, 68, 5, 221, 173, 68, 16, 232, 154, 68, 16, 249, 214, 68, 16, 254, + 221, 68, 16, 243, 49, 68, 1, 220, 103, 68, 1, 218, 224, 68, 1, 149, 153, + 68, 1, 149, 222, 181, 68, 1, 149, 156, 68, 1, 149, 232, 186, 68, 25, 5, + 149, 153, 68, 25, 5, 149, 222, 181, 68, 25, 5, 149, 156, 68, 25, 5, 149, + 232, 186, 68, 1, 230, 152, 229, 78, 68, 1, 230, 152, 235, 115, 68, 1, + 230, 152, 252, 112, 68, 1, 230, 152, 252, 107, 68, 116, 5, 230, 152, 147, + 197, 68, 116, 5, 230, 152, 147, 185, 68, 116, 5, 230, 152, 147, 233, 136, + 68, 1, 220, 109, 234, 214, 220, 103, 68, 25, 5, 220, 109, 234, 214, 245, + 56, 68, 138, 164, 220, 109, 234, 214, 241, 248, 68, 138, 164, 220, 109, + 234, 214, 234, 184, 225, 122, 68, 1, 212, 7, 224, 109, 234, 214, 216, + 209, 68, 1, 212, 7, 224, 109, 234, 214, 224, 115, 68, 25, 5, 212, 7, 224, + 109, 234, 214, 245, 56, 68, 25, 5, 212, 7, 224, 109, 234, 214, 214, 214, + 68, 5, 212, 7, 224, 109, 234, 214, 216, 30, 68, 5, 212, 7, 224, 109, 234, + 214, 216, 29, 68, 5, 212, 7, 224, 109, 234, 214, 216, 28, 68, 5, 212, 7, + 224, 109, 234, 214, 216, 27, 68, 5, 212, 7, 224, 109, 234, 214, 216, 26, + 68, 1, 245, 220, 224, 109, 234, 214, 228, 111, 68, 1, 245, 220, 224, 109, + 234, 214, 210, 176, 68, 1, 245, 220, 224, 109, 234, 214, 242, 218, 68, + 25, 5, 243, 60, 234, 214, 73, 68, 25, 5, 234, 189, 226, 235, 68, 25, 5, + 234, 189, 70, 68, 25, 5, 234, 189, 245, 210, 68, 1, 220, 87, 176, 68, 1, + 220, 87, 234, 133, 68, 1, 220, 87, 243, 136, 68, 1, 220, 87, 251, 34, 68, + 1, 220, 87, 210, 116, 68, 1, 220, 87, 227, 166, 68, 1, 220, 87, 248, 222, + 68, 1, 220, 87, 197, 68, 1, 220, 87, 225, 148, 68, 1, 220, 87, 244, 197, + 68, 1, 220, 87, 252, 192, 68, 1, 220, 87, 216, 209, 68, 1, 220, 87, 162, + 68, 116, 5, 220, 87, 147, 212, 65, 68, 25, 5, 220, 87, 255, 74, 68, 25, + 5, 220, 87, 75, 68, 25, 5, 220, 87, 160, 48, 68, 25, 5, 220, 87, 40, 211, + 117, 68, 5, 220, 87, 216, 29, 68, 5, 220, 87, 216, 28, 68, 5, 220, 87, + 216, 26, 68, 5, 220, 87, 216, 25, 68, 5, 220, 87, 249, 153, 216, 29, 68, + 5, 220, 87, 249, 153, 216, 28, 68, 5, 220, 87, 249, 153, 245, 154, 216, + 31, 68, 1, 222, 129, 226, 64, 244, 197, 68, 5, 222, 129, 226, 64, 216, + 26, 68, 220, 87, 21, 210, 86, 68, 220, 87, 21, 110, 68, 220, 87, 21, 105, + 68, 220, 87, 21, 158, 68, 220, 87, 21, 161, 68, 220, 87, 21, 189, 68, + 220, 87, 21, 194, 68, 220, 87, 21, 198, 68, 220, 87, 21, 195, 68, 220, + 87, 21, 200, 68, 5, 234, 127, 216, 30, 68, 5, 234, 127, 216, 28, 68, 25, + 5, 254, 191, 61, 68, 25, 5, 254, 191, 254, 202, 68, 16, 220, 87, 110, 68, + 16, 220, 87, 245, 31, 98, 6, 1, 254, 124, 98, 6, 1, 252, 153, 98, 6, 1, + 243, 107, 98, 6, 1, 247, 129, 98, 6, 1, 245, 151, 98, 6, 1, 213, 160, 98, + 6, 1, 210, 89, 98, 6, 1, 217, 61, 98, 6, 1, 236, 0, 98, 6, 1, 234, 235, + 98, 6, 1, 233, 82, 98, 6, 1, 231, 186, 98, 6, 1, 229, 196, 98, 6, 1, 226, + 197, 98, 6, 1, 226, 18, 98, 6, 1, 210, 78, 98, 6, 1, 223, 172, 98, 6, 1, + 221, 244, 98, 6, 1, 217, 51, 98, 6, 1, 214, 190, 98, 6, 1, 225, 141, 98, + 6, 1, 234, 122, 98, 6, 1, 242, 242, 98, 6, 1, 224, 74, 98, 6, 1, 220, 21, + 98, 6, 1, 250, 98, 98, 6, 1, 251, 8, 98, 6, 1, 235, 101, 98, 6, 1, 250, + 41, 98, 6, 1, 250, 144, 98, 6, 1, 211, 163, 98, 6, 1, 235, 112, 98, 6, 1, + 242, 44, 98, 6, 1, 241, 239, 98, 6, 1, 241, 176, 98, 6, 1, 212, 22, 98, + 6, 1, 242, 5, 98, 6, 1, 241, 66, 98, 6, 1, 210, 246, 98, 6, 1, 254, 233, + 98, 1, 254, 124, 98, 1, 252, 153, 98, 1, 243, 107, 98, 1, 247, 129, 98, + 1, 245, 151, 98, 1, 213, 160, 98, 1, 210, 89, 98, 1, 217, 61, 98, 1, 236, + 0, 98, 1, 234, 235, 98, 1, 233, 82, 98, 1, 231, 186, 98, 1, 229, 196, 98, + 1, 226, 197, 98, 1, 226, 18, 98, 1, 210, 78, 98, 1, 223, 172, 98, 1, 221, + 244, 98, 1, 217, 51, 98, 1, 214, 190, 98, 1, 225, 141, 98, 1, 234, 122, + 98, 1, 242, 242, 98, 1, 224, 74, 98, 1, 220, 21, 98, 1, 250, 98, 98, 1, + 251, 8, 98, 1, 235, 101, 98, 1, 250, 41, 98, 1, 250, 144, 98, 1, 211, + 163, 98, 1, 235, 112, 98, 1, 242, 44, 98, 1, 241, 239, 98, 1, 241, 176, + 98, 1, 212, 22, 98, 1, 242, 5, 98, 1, 241, 66, 98, 1, 244, 122, 98, 1, + 210, 246, 98, 1, 245, 166, 98, 1, 215, 94, 243, 107, 98, 1, 254, 197, 98, + 226, 16, 220, 138, 58, 1, 98, 229, 196, 98, 1, 254, 233, 98, 1, 242, 4, + 50, 98, 1, 233, 128, 50, 24, 100, 234, 59, 24, 100, 218, 216, 24, 100, + 228, 227, 24, 100, 216, 102, 24, 100, 218, 205, 24, 100, 223, 27, 24, + 100, 230, 218, 24, 100, 225, 96, 24, 100, 218, 213, 24, 100, 219, 149, + 24, 100, 218, 210, 24, 100, 236, 57, 24, 100, 250, 47, 24, 100, 218, 220, + 24, 100, 250, 107, 24, 100, 234, 111, 24, 100, 216, 174, 24, 100, 225, + 132, 24, 100, 241, 173, 24, 100, 228, 223, 24, 100, 218, 214, 24, 100, + 228, 217, 24, 100, 228, 221, 24, 100, 216, 99, 24, 100, 223, 15, 24, 100, + 218, 212, 24, 100, 223, 25, 24, 100, 234, 219, 24, 100, 230, 211, 24, + 100, 234, 222, 24, 100, 225, 91, 24, 100, 225, 89, 24, 100, 225, 77, 24, + 100, 225, 85, 24, 100, 225, 83, 24, 100, 225, 80, 24, 100, 225, 82, 24, + 100, 225, 79, 24, 100, 225, 84, 24, 100, 225, 94, 24, 100, 225, 95, 24, + 100, 225, 78, 24, 100, 225, 88, 24, 100, 234, 220, 24, 100, 234, 218, 24, + 100, 219, 142, 24, 100, 219, 140, 24, 100, 219, 132, 24, 100, 219, 135, + 24, 100, 219, 141, 24, 100, 219, 137, 24, 100, 219, 136, 24, 100, 219, + 134, 24, 100, 219, 145, 24, 100, 219, 147, 24, 100, 219, 148, 24, 100, + 219, 143, 24, 100, 219, 133, 24, 100, 219, 138, 24, 100, 219, 146, 24, + 100, 250, 91, 24, 100, 250, 89, 24, 100, 250, 169, 24, 100, 250, 167, 24, + 100, 226, 33, 24, 100, 236, 52, 24, 100, 236, 43, 24, 100, 236, 51, 24, + 100, 236, 48, 24, 100, 236, 46, 24, 100, 236, 50, 24, 100, 218, 217, 24, + 100, 236, 55, 24, 100, 236, 56, 24, 100, 236, 44, 24, 100, 236, 49, 24, + 100, 211, 26, 24, 100, 250, 46, 24, 100, 250, 92, 24, 100, 250, 90, 24, + 100, 250, 170, 24, 100, 250, 168, 24, 100, 250, 105, 24, 100, 250, 106, + 24, 100, 250, 93, 24, 100, 250, 171, 24, 100, 225, 130, 24, 100, 234, + 221, 24, 100, 218, 218, 24, 100, 211, 32, 24, 100, 234, 50, 24, 100, 228, + 219, 24, 100, 228, 225, 24, 100, 228, 224, 24, 100, 216, 96, 24, 100, + 244, 104, 24, 143, 244, 104, 24, 143, 61, 24, 143, 254, 244, 24, 143, + 191, 24, 143, 211, 92, 24, 143, 245, 118, 24, 143, 75, 24, 143, 211, 36, + 24, 143, 211, 47, 24, 143, 76, 24, 143, 212, 65, 24, 143, 212, 62, 24, + 143, 226, 235, 24, 143, 210, 244, 24, 143, 70, 24, 143, 212, 11, 24, 143, + 212, 22, 24, 143, 211, 250, 24, 143, 210, 212, 24, 143, 245, 56, 24, 143, + 211, 8, 24, 143, 73, 24, 143, 255, 158, 24, 143, 255, 157, 24, 143, 211, + 106, 24, 143, 211, 104, 24, 143, 245, 116, 24, 143, 245, 115, 24, 143, + 245, 117, 24, 143, 211, 35, 24, 143, 211, 34, 24, 143, 227, 85, 24, 143, + 227, 86, 24, 143, 227, 79, 24, 143, 227, 84, 24, 143, 227, 82, 24, 143, + 210, 238, 24, 143, 210, 237, 24, 143, 210, 236, 24, 143, 210, 239, 24, + 143, 210, 240, 24, 143, 215, 30, 24, 143, 215, 29, 24, 143, 215, 27, 24, + 143, 215, 24, 24, 143, 215, 25, 24, 143, 210, 211, 24, 143, 210, 208, 24, + 143, 210, 209, 24, 143, 210, 203, 24, 143, 210, 204, 24, 143, 210, 205, + 24, 143, 210, 207, 24, 143, 245, 50, 24, 143, 245, 52, 24, 143, 211, 7, + 24, 143, 240, 154, 24, 143, 240, 146, 24, 143, 240, 149, 24, 143, 240, + 147, 24, 143, 240, 151, 24, 143, 240, 153, 24, 143, 254, 35, 24, 143, + 254, 32, 24, 143, 254, 30, 24, 143, 254, 31, 24, 143, 218, 221, 24, 143, + 255, 159, 24, 143, 211, 105, 24, 143, 211, 33, 24, 143, 227, 81, 24, 143, + 227, 80, 24, 90, 234, 59, 24, 90, 218, 216, 24, 90, 234, 52, 24, 90, 228, + 227, 24, 90, 228, 225, 24, 90, 228, 224, 24, 90, 216, 102, 24, 90, 223, + 27, 24, 90, 223, 22, 24, 90, 223, 19, 24, 90, 223, 12, 24, 90, 223, 7, + 24, 90, 223, 2, 24, 90, 223, 13, 24, 90, 223, 25, 24, 90, 230, 218, 24, + 90, 225, 96, 24, 90, 225, 85, 24, 90, 219, 149, 24, 90, 218, 210, 24, 90, + 236, 57, 24, 90, 250, 47, 24, 90, 250, 107, 24, 90, 234, 111, 24, 90, + 216, 174, 24, 90, 225, 132, 24, 90, 241, 173, 24, 90, 234, 53, 24, 90, + 234, 51, 24, 90, 228, 223, 24, 90, 228, 217, 24, 90, 228, 219, 24, 90, + 228, 222, 24, 90, 228, 218, 24, 90, 216, 99, 24, 90, 216, 96, 24, 90, + 223, 20, 24, 90, 223, 15, 24, 90, 223, 1, 24, 90, 223, 0, 24, 90, 218, + 212, 24, 90, 223, 17, 24, 90, 223, 16, 24, 90, 223, 9, 24, 90, 223, 11, + 24, 90, 223, 24, 24, 90, 223, 4, 24, 90, 223, 14, 24, 90, 223, 23, 24, + 90, 222, 255, 24, 90, 230, 214, 24, 90, 230, 209, 24, 90, 230, 211, 24, + 90, 230, 208, 24, 90, 230, 206, 24, 90, 230, 212, 24, 90, 230, 217, 24, + 90, 230, 215, 24, 90, 234, 222, 24, 90, 225, 87, 24, 90, 225, 88, 24, 90, + 225, 93, 24, 90, 234, 220, 24, 90, 219, 142, 24, 90, 219, 132, 24, 90, + 219, 135, 24, 90, 219, 137, 24, 90, 226, 33, 24, 90, 236, 52, 24, 90, + 236, 45, 24, 90, 218, 217, 24, 90, 236, 53, 24, 90, 211, 26, 24, 90, 211, + 22, 24, 90, 211, 23, 24, 90, 225, 130, 24, 90, 234, 221, 24, 90, 241, + 171, 24, 90, 241, 169, 24, 90, 241, 172, 24, 90, 241, 170, 24, 90, 211, + 32, 24, 90, 234, 55, 24, 90, 234, 54, 24, 90, 234, 58, 24, 90, 234, 56, + 24, 90, 234, 57, 24, 90, 218, 214, 29, 3, 162, 29, 3, 240, 223, 29, 3, + 241, 181, 29, 3, 242, 47, 29, 3, 241, 221, 29, 3, 241, 239, 29, 3, 241, + 69, 29, 3, 241, 68, 29, 3, 233, 136, 29, 3, 232, 99, 29, 3, 232, 242, 29, + 3, 233, 135, 29, 3, 233, 51, 29, 3, 233, 59, 29, 3, 232, 157, 29, 3, 232, + 71, 29, 3, 241, 190, 29, 3, 241, 184, 29, 3, 241, 186, 29, 3, 241, 189, + 29, 3, 241, 187, 29, 3, 241, 188, 29, 3, 241, 185, 29, 3, 241, 183, 29, + 3, 185, 29, 3, 230, 103, 29, 3, 230, 231, 29, 3, 231, 238, 29, 3, 231, + 81, 29, 3, 231, 92, 29, 3, 230, 162, 29, 3, 230, 43, 29, 3, 217, 164, 29, + 3, 217, 158, 29, 3, 217, 160, 29, 3, 217, 163, 29, 3, 217, 161, 29, 3, + 217, 162, 29, 3, 217, 159, 29, 3, 217, 157, 29, 3, 205, 29, 3, 222, 141, + 29, 3, 223, 36, 29, 3, 223, 185, 29, 3, 223, 109, 29, 3, 223, 129, 29, 3, + 222, 212, 29, 3, 222, 110, 29, 3, 206, 29, 3, 218, 84, 29, 3, 219, 192, + 29, 3, 222, 32, 29, 3, 221, 171, 29, 3, 221, 182, 29, 3, 219, 59, 29, 3, + 217, 254, 29, 3, 220, 103, 29, 3, 219, 226, 29, 3, 220, 33, 29, 3, 220, + 99, 29, 3, 220, 62, 29, 3, 220, 64, 29, 3, 220, 8, 29, 3, 219, 209, 29, + 3, 224, 89, 29, 3, 224, 31, 29, 3, 224, 54, 29, 3, 224, 88, 29, 3, 224, + 69, 29, 3, 224, 70, 29, 3, 224, 43, 29, 3, 224, 42, 29, 3, 223, 243, 29, + 3, 223, 239, 29, 3, 223, 242, 29, 3, 223, 240, 29, 3, 223, 241, 29, 3, + 224, 66, 29, 3, 224, 60, 29, 3, 224, 62, 29, 3, 224, 65, 29, 3, 224, 63, + 29, 3, 224, 64, 29, 3, 224, 61, 29, 3, 224, 59, 29, 3, 224, 55, 29, 3, + 224, 58, 29, 3, 224, 56, 29, 3, 224, 57, 29, 3, 252, 192, 29, 3, 251, + 126, 29, 3, 252, 7, 29, 3, 252, 190, 29, 3, 252, 67, 29, 3, 252, 76, 29, + 3, 251, 206, 29, 3, 251, 84, 29, 3, 214, 27, 29, 3, 212, 116, 29, 3, 213, + 176, 29, 3, 214, 26, 29, 3, 213, 250, 29, 3, 213, 255, 29, 3, 213, 138, + 29, 3, 212, 107, 29, 3, 217, 106, 29, 3, 215, 119, 29, 3, 216, 118, 29, + 3, 217, 102, 29, 3, 217, 12, 29, 3, 217, 23, 29, 3, 111, 29, 3, 215, 80, + 29, 3, 251, 34, 29, 3, 249, 113, 29, 3, 250, 52, 29, 3, 251, 33, 29, 3, + 250, 183, 29, 3, 250, 191, 29, 3, 249, 239, 29, 3, 249, 82, 29, 3, 211, + 165, 29, 3, 211, 141, 29, 3, 211, 157, 29, 3, 211, 164, 29, 3, 211, 161, + 29, 3, 211, 162, 29, 3, 211, 148, 29, 3, 211, 147, 29, 3, 211, 136, 29, + 3, 211, 132, 29, 3, 211, 135, 29, 3, 211, 133, 29, 3, 211, 134, 29, 3, + 197, 29, 3, 227, 238, 29, 3, 228, 234, 29, 3, 229, 226, 29, 3, 229, 104, + 29, 3, 229, 108, 29, 3, 228, 75, 29, 3, 227, 175, 29, 3, 227, 166, 29, 3, + 227, 129, 29, 3, 227, 149, 29, 3, 227, 165, 29, 3, 227, 156, 29, 3, 227, + 157, 29, 3, 227, 135, 29, 3, 227, 120, 29, 3, 242, 181, 61, 29, 3, 242, + 181, 70, 29, 3, 242, 181, 73, 29, 3, 242, 181, 255, 74, 29, 3, 242, 181, + 245, 210, 29, 3, 242, 181, 75, 29, 3, 242, 181, 76, 29, 3, 242, 181, 212, + 65, 29, 3, 176, 29, 3, 233, 218, 29, 3, 234, 93, 29, 3, 235, 11, 29, 3, + 234, 182, 29, 3, 234, 183, 29, 3, 234, 29, 29, 3, 234, 28, 29, 3, 233, + 183, 29, 3, 233, 177, 29, 3, 233, 182, 29, 3, 233, 178, 29, 3, 233, 179, + 29, 3, 233, 172, 29, 3, 233, 166, 29, 3, 233, 168, 29, 3, 233, 171, 29, + 3, 233, 169, 29, 3, 233, 170, 29, 3, 233, 167, 29, 3, 233, 165, 29, 3, + 233, 161, 29, 3, 233, 164, 29, 3, 233, 162, 29, 3, 233, 163, 29, 3, 212, + 65, 29, 3, 211, 195, 29, 3, 211, 250, 29, 3, 212, 64, 29, 3, 212, 17, 29, + 3, 212, 22, 29, 3, 211, 227, 29, 3, 211, 226, 29, 3, 225, 140, 61, 29, 3, + 225, 140, 70, 29, 3, 225, 140, 73, 29, 3, 225, 140, 255, 74, 29, 3, 225, + 140, 245, 210, 29, 3, 225, 140, 75, 29, 3, 225, 140, 76, 29, 3, 210, 116, + 29, 3, 210, 13, 29, 3, 210, 44, 29, 3, 210, 115, 29, 3, 210, 92, 29, 3, + 210, 94, 29, 3, 210, 23, 29, 3, 210, 0, 29, 3, 210, 82, 29, 3, 210, 62, + 29, 3, 210, 69, 29, 3, 210, 81, 29, 3, 210, 73, 29, 3, 210, 74, 29, 3, + 210, 67, 29, 3, 210, 53, 29, 3, 191, 29, 3, 210, 212, 29, 3, 211, 8, 29, + 3, 211, 103, 29, 3, 211, 44, 29, 3, 211, 47, 29, 3, 210, 244, 29, 3, 210, + 235, 29, 3, 248, 222, 29, 3, 246, 79, 29, 3, 248, 4, 29, 3, 248, 221, 29, + 3, 248, 78, 29, 3, 248, 91, 29, 3, 247, 146, 29, 3, 246, 48, 29, 3, 248, + 136, 29, 3, 248, 101, 29, 3, 248, 113, 29, 3, 248, 135, 29, 3, 248, 123, + 29, 3, 248, 124, 29, 3, 248, 106, 29, 3, 248, 92, 29, 3, 235, 142, 29, 3, + 235, 52, 29, 3, 235, 109, 29, 3, 235, 141, 29, 3, 235, 125, 29, 3, 235, + 127, 29, 3, 235, 69, 29, 3, 235, 32, 29, 3, 243, 136, 29, 3, 242, 114, + 29, 3, 242, 215, 29, 3, 243, 133, 29, 3, 243, 56, 29, 3, 243, 63, 29, 3, + 242, 175, 29, 3, 242, 174, 29, 3, 242, 79, 29, 3, 242, 75, 29, 3, 242, + 78, 29, 3, 242, 76, 29, 3, 242, 77, 29, 3, 243, 30, 29, 3, 243, 10, 29, + 3, 243, 20, 29, 3, 243, 29, 29, 3, 243, 24, 29, 3, 243, 25, 29, 3, 243, + 14, 29, 3, 242, 255, 29, 3, 216, 209, 29, 3, 216, 137, 29, 3, 216, 176, + 29, 3, 216, 208, 29, 3, 216, 195, 29, 3, 216, 196, 29, 3, 216, 157, 29, + 3, 216, 129, 29, 3, 250, 158, 29, 3, 250, 70, 29, 3, 250, 111, 29, 3, + 250, 157, 29, 3, 250, 129, 29, 3, 250, 132, 29, 3, 250, 87, 29, 3, 250, + 59, 29, 3, 225, 148, 29, 3, 225, 115, 29, 3, 225, 134, 29, 3, 225, 147, + 29, 3, 225, 136, 29, 3, 225, 137, 29, 3, 225, 122, 29, 3, 225, 111, 29, + 3, 215, 184, 29, 3, 215, 164, 29, 3, 215, 168, 29, 3, 215, 183, 29, 3, + 215, 178, 29, 3, 215, 179, 29, 3, 215, 167, 29, 3, 215, 162, 29, 3, 215, + 39, 29, 3, 215, 31, 29, 3, 215, 35, 29, 3, 215, 38, 29, 3, 215, 36, 29, + 3, 215, 37, 29, 3, 215, 33, 29, 3, 215, 32, 29, 3, 244, 197, 29, 3, 243, + 235, 29, 3, 244, 122, 29, 3, 244, 196, 29, 3, 244, 148, 29, 3, 244, 155, + 29, 3, 244, 44, 29, 3, 243, 214, 29, 3, 190, 29, 3, 224, 151, 29, 3, 225, + 109, 29, 3, 226, 90, 29, 3, 225, 212, 29, 3, 225, 222, 29, 3, 225, 17, + 29, 3, 224, 115, 29, 3, 222, 100, 29, 3, 230, 32, 29, 3, 243, 208, 29, + 38, 243, 54, 22, 25, 233, 24, 78, 29, 38, 25, 233, 24, 78, 29, 38, 243, + 54, 78, 29, 221, 174, 78, 29, 211, 208, 29, 243, 230, 218, 130, 29, 249, + 220, 29, 220, 151, 29, 249, 227, 29, 224, 200, 249, 227, 29, 224, 14, 78, + 29, 226, 16, 220, 138, 29, 21, 110, 29, 21, 105, 29, 21, 158, 29, 21, + 161, 29, 21, 189, 29, 21, 194, 29, 21, 198, 29, 21, 195, 29, 21, 200, 29, + 54, 216, 248, 29, 54, 215, 73, 29, 54, 216, 163, 29, 54, 244, 16, 29, 54, + 244, 115, 29, 54, 219, 112, 29, 54, 220, 117, 29, 54, 245, 185, 29, 54, + 228, 196, 29, 54, 240, 211, 29, 54, 216, 249, 216, 148, 29, 3, 221, 178, + 230, 43, 29, 3, 230, 39, 29, 3, 230, 40, 29, 3, 230, 41, 29, 3, 221, 178, + 251, 84, 29, 3, 251, 81, 29, 3, 251, 82, 29, 3, 251, 83, 29, 3, 221, 178, + 243, 214, 29, 3, 243, 210, 29, 3, 243, 211, 29, 3, 243, 212, 29, 3, 221, + 178, 224, 115, 29, 3, 224, 111, 29, 3, 224, 112, 29, 3, 224, 113, 29, + 216, 32, 164, 210, 247, 29, 216, 32, 164, 248, 42, 29, 216, 32, 164, 222, + 239, 29, 216, 32, 164, 219, 252, 222, 239, 29, 216, 32, 164, 247, 236, + 29, 216, 32, 164, 234, 165, 29, 216, 32, 164, 250, 95, 29, 216, 32, 164, + 241, 178, 29, 216, 32, 164, 248, 41, 29, 216, 32, 164, 233, 195, 169, 1, + 61, 169, 1, 75, 169, 1, 73, 169, 1, 76, 169, 1, 70, 169, 1, 214, 105, + 169, 1, 243, 136, 169, 1, 176, 169, 1, 243, 63, 169, 1, 242, 215, 169, 1, + 242, 175, 169, 1, 242, 114, 169, 1, 242, 80, 169, 1, 162, 169, 1, 241, + 239, 169, 1, 241, 181, 169, 1, 241, 69, 169, 1, 240, 223, 169, 1, 240, + 202, 169, 1, 233, 136, 169, 1, 233, 59, 169, 1, 232, 242, 169, 1, 232, + 157, 169, 1, 232, 99, 169, 1, 232, 72, 169, 1, 185, 169, 1, 231, 92, 169, + 1, 230, 231, 169, 1, 230, 162, 169, 1, 230, 103, 169, 1, 197, 169, 1, + 241, 91, 169, 1, 229, 214, 169, 1, 229, 108, 169, 1, 228, 234, 169, 1, + 228, 75, 169, 1, 227, 238, 169, 1, 227, 177, 169, 1, 224, 30, 169, 1, + 224, 17, 169, 1, 224, 10, 169, 1, 224, 2, 169, 1, 223, 247, 169, 1, 223, + 245, 169, 1, 206, 169, 1, 222, 92, 169, 1, 221, 182, 169, 1, 219, 192, + 169, 1, 219, 59, 169, 1, 218, 84, 169, 1, 218, 3, 169, 1, 248, 222, 169, + 1, 217, 106, 169, 1, 248, 91, 169, 1, 217, 23, 169, 1, 248, 4, 169, 1, + 216, 118, 169, 1, 247, 146, 169, 1, 246, 79, 169, 1, 246, 51, 169, 1, + 247, 157, 169, 1, 216, 60, 169, 1, 216, 59, 169, 1, 216, 48, 169, 1, 216, + 47, 169, 1, 216, 46, 169, 1, 216, 45, 169, 1, 215, 184, 169, 1, 215, 179, + 169, 1, 215, 168, 169, 1, 215, 167, 169, 1, 215, 164, 169, 1, 215, 163, + 169, 1, 212, 65, 169, 1, 212, 22, 169, 1, 211, 250, 169, 1, 211, 227, + 169, 1, 211, 195, 169, 1, 211, 183, 169, 1, 191, 169, 1, 211, 47, 169, 1, + 211, 8, 169, 1, 210, 244, 169, 1, 210, 212, 169, 1, 210, 177, 18, 19, + 240, 169, 18, 19, 75, 18, 19, 255, 38, 18, 19, 73, 18, 19, 236, 34, 18, + 19, 76, 18, 19, 226, 184, 18, 19, 211, 116, 226, 184, 18, 19, 72, 245, + 210, 18, 19, 72, 73, 18, 19, 61, 18, 19, 255, 74, 18, 19, 212, 22, 18, + 19, 159, 212, 22, 18, 19, 211, 250, 18, 19, 159, 211, 250, 18, 19, 211, + 242, 18, 19, 159, 211, 242, 18, 19, 211, 227, 18, 19, 159, 211, 227, 18, + 19, 211, 215, 18, 19, 159, 211, 215, 18, 19, 229, 191, 211, 215, 18, 19, + 212, 65, 18, 19, 159, 212, 65, 18, 19, 212, 64, 18, 19, 159, 212, 64, 18, + 19, 229, 191, 212, 64, 18, 19, 254, 202, 18, 19, 211, 116, 212, 98, 18, + 19, 242, 181, 218, 130, 18, 19, 40, 142, 18, 19, 40, 242, 137, 18, 19, + 40, 251, 176, 163, 222, 234, 18, 19, 40, 216, 15, 163, 222, 234, 18, 19, + 40, 44, 163, 222, 234, 18, 19, 40, 222, 234, 18, 19, 40, 52, 142, 18, 19, + 40, 52, 219, 252, 67, 218, 91, 18, 19, 40, 230, 225, 247, 121, 18, 19, + 40, 219, 252, 203, 91, 18, 19, 40, 225, 23, 18, 19, 40, 124, 217, 88, 18, + 19, 245, 151, 18, 19, 236, 0, 18, 19, 226, 197, 18, 19, 254, 124, 18, 19, + 225, 222, 18, 19, 226, 88, 18, 19, 225, 109, 18, 19, 225, 72, 18, 19, + 225, 17, 18, 19, 224, 250, 18, 19, 211, 116, 224, 250, 18, 19, 72, 241, + 221, 18, 19, 72, 241, 181, 18, 19, 190, 18, 19, 226, 90, 18, 19, 224, + 113, 18, 19, 159, 224, 113, 18, 19, 224, 111, 18, 19, 159, 224, 111, 18, + 19, 224, 110, 18, 19, 159, 224, 110, 18, 19, 224, 108, 18, 19, 159, 224, + 108, 18, 19, 224, 107, 18, 19, 159, 224, 107, 18, 19, 224, 115, 18, 19, + 159, 224, 115, 18, 19, 224, 114, 18, 19, 159, 224, 114, 18, 19, 211, 116, + 224, 114, 18, 19, 226, 106, 18, 19, 159, 226, 106, 18, 19, 72, 242, 61, + 18, 19, 217, 23, 18, 19, 217, 100, 18, 19, 216, 118, 18, 19, 216, 104, + 18, 19, 111, 18, 19, 216, 18, 18, 19, 211, 116, 216, 18, 18, 19, 72, 248, + 78, 18, 19, 72, 248, 4, 18, 19, 217, 106, 18, 19, 217, 102, 18, 19, 215, + 78, 18, 19, 159, 215, 78, 18, 19, 215, 62, 18, 19, 159, 215, 62, 18, 19, + 215, 61, 18, 19, 159, 215, 61, 18, 19, 105, 18, 19, 159, 105, 18, 19, + 215, 54, 18, 19, 159, 215, 54, 18, 19, 215, 80, 18, 19, 159, 215, 80, 18, + 19, 215, 79, 18, 19, 159, 215, 79, 18, 19, 229, 191, 215, 79, 18, 19, + 217, 153, 18, 19, 215, 152, 18, 19, 215, 136, 18, 19, 215, 134, 18, 19, + 215, 157, 18, 19, 234, 183, 18, 19, 235, 8, 18, 19, 234, 93, 18, 19, 234, + 84, 18, 19, 234, 29, 18, 19, 234, 11, 18, 19, 211, 116, 234, 11, 18, 19, + 176, 18, 19, 235, 11, 18, 19, 233, 179, 18, 19, 159, 233, 179, 18, 19, + 233, 177, 18, 19, 159, 233, 177, 18, 19, 233, 176, 18, 19, 159, 233, 176, + 18, 19, 233, 175, 18, 19, 159, 233, 175, 18, 19, 233, 174, 18, 19, 159, + 233, 174, 18, 19, 233, 183, 18, 19, 159, 233, 183, 18, 19, 233, 182, 18, + 19, 159, 233, 182, 18, 19, 229, 191, 233, 182, 18, 19, 235, 24, 18, 19, + 233, 184, 18, 19, 219, 28, 234, 177, 18, 19, 219, 28, 234, 85, 18, 19, + 219, 28, 234, 24, 18, 19, 219, 28, 234, 249, 18, 19, 250, 191, 18, 19, + 251, 32, 18, 19, 250, 52, 18, 19, 250, 42, 18, 19, 249, 239, 18, 19, 249, + 175, 18, 19, 211, 116, 249, 175, 18, 19, 251, 34, 18, 19, 251, 33, 18, + 19, 249, 80, 18, 19, 159, 249, 80, 18, 19, 249, 78, 18, 19, 159, 249, 78, + 18, 19, 249, 77, 18, 19, 159, 249, 77, 18, 19, 249, 76, 18, 19, 159, 249, + 76, 18, 19, 249, 75, 18, 19, 159, 249, 75, 18, 19, 249, 82, 18, 19, 159, + 249, 82, 18, 19, 249, 81, 18, 19, 159, 249, 81, 18, 19, 229, 191, 249, + 81, 18, 19, 251, 67, 18, 19, 221, 210, 216, 211, 18, 19, 231, 92, 18, 19, + 231, 237, 18, 19, 230, 231, 18, 19, 230, 202, 18, 19, 230, 162, 18, 19, + 230, 133, 18, 19, 211, 116, 230, 133, 18, 19, 185, 18, 19, 231, 238, 18, + 19, 230, 41, 18, 19, 159, 230, 41, 18, 19, 230, 39, 18, 19, 159, 230, 39, + 18, 19, 230, 38, 18, 19, 159, 230, 38, 18, 19, 230, 37, 18, 19, 159, 230, + 37, 18, 19, 230, 36, 18, 19, 159, 230, 36, 18, 19, 230, 43, 18, 19, 159, + 230, 43, 18, 19, 230, 42, 18, 19, 159, 230, 42, 18, 19, 229, 191, 230, + 42, 18, 19, 193, 18, 19, 159, 193, 18, 19, 230, 235, 18, 19, 253, 206, + 193, 18, 19, 221, 210, 193, 18, 19, 229, 108, 18, 19, 229, 225, 18, 19, + 228, 234, 18, 19, 228, 209, 18, 19, 228, 75, 18, 19, 228, 65, 18, 19, + 211, 116, 228, 65, 18, 19, 197, 18, 19, 229, 226, 18, 19, 227, 173, 18, + 19, 159, 227, 173, 18, 19, 227, 175, 18, 19, 159, 227, 175, 18, 19, 227, + 174, 18, 19, 159, 227, 174, 18, 19, 229, 191, 227, 174, 18, 19, 230, 26, + 18, 19, 72, 229, 80, 18, 19, 228, 239, 18, 19, 233, 59, 18, 19, 233, 134, + 18, 19, 232, 242, 18, 19, 232, 228, 18, 19, 232, 157, 18, 19, 232, 128, + 18, 19, 211, 116, 232, 128, 18, 19, 233, 136, 18, 19, 233, 135, 18, 19, + 232, 69, 18, 19, 159, 232, 69, 18, 19, 232, 68, 18, 19, 159, 232, 68, 18, + 19, 232, 67, 18, 19, 159, 232, 67, 18, 19, 232, 66, 18, 19, 159, 232, 66, + 18, 19, 232, 65, 18, 19, 159, 232, 65, 18, 19, 232, 71, 18, 19, 159, 232, + 71, 18, 19, 232, 70, 18, 19, 159, 232, 70, 18, 19, 156, 18, 19, 159, 156, + 18, 19, 147, 156, 18, 19, 221, 182, 18, 19, 222, 30, 18, 19, 219, 192, + 18, 19, 219, 176, 18, 19, 219, 59, 18, 19, 219, 41, 18, 19, 211, 116, + 219, 41, 18, 19, 206, 18, 19, 222, 32, 18, 19, 217, 250, 18, 19, 159, + 217, 250, 18, 19, 217, 244, 18, 19, 159, 217, 244, 18, 19, 217, 243, 18, + 19, 159, 217, 243, 18, 19, 217, 239, 18, 19, 159, 217, 239, 18, 19, 217, + 238, 18, 19, 159, 217, 238, 18, 19, 217, 254, 18, 19, 159, 217, 254, 18, + 19, 217, 253, 18, 19, 159, 217, 253, 18, 19, 229, 191, 217, 253, 18, 19, + 222, 92, 18, 19, 253, 206, 222, 92, 18, 19, 217, 255, 18, 19, 251, 219, + 222, 92, 18, 19, 230, 128, 219, 109, 18, 19, 229, 191, 219, 100, 18, 19, + 229, 191, 222, 90, 18, 19, 229, 191, 218, 236, 18, 19, 229, 191, 218, 87, + 18, 19, 229, 191, 219, 99, 18, 19, 229, 191, 221, 185, 18, 19, 220, 64, + 18, 19, 220, 33, 18, 19, 220, 28, 18, 19, 220, 8, 18, 19, 220, 2, 18, 19, + 220, 103, 18, 19, 220, 99, 18, 19, 219, 207, 18, 19, 159, 219, 207, 18, + 19, 219, 206, 18, 19, 159, 219, 206, 18, 19, 219, 205, 18, 19, 159, 219, + 205, 18, 19, 219, 204, 18, 19, 159, 219, 204, 18, 19, 219, 203, 18, 19, + 159, 219, 203, 18, 19, 219, 209, 18, 19, 159, 219, 209, 18, 19, 219, 208, + 18, 19, 159, 219, 208, 18, 19, 220, 105, 18, 19, 211, 47, 18, 19, 211, + 101, 18, 19, 211, 8, 18, 19, 210, 255, 18, 19, 210, 244, 18, 19, 210, + 229, 18, 19, 211, 116, 210, 229, 18, 19, 191, 18, 19, 211, 103, 18, 19, + 210, 174, 18, 19, 159, 210, 174, 18, 19, 210, 173, 18, 19, 159, 210, 173, + 18, 19, 210, 172, 18, 19, 159, 210, 172, 18, 19, 210, 171, 18, 19, 159, + 210, 171, 18, 19, 210, 170, 18, 19, 159, 210, 170, 18, 19, 210, 176, 18, + 19, 159, 210, 176, 18, 19, 210, 175, 18, 19, 159, 210, 175, 18, 19, 229, + 191, 210, 175, 18, 19, 211, 117, 18, 19, 252, 5, 211, 117, 18, 19, 159, + 211, 117, 18, 19, 221, 210, 211, 8, 18, 19, 223, 129, 18, 19, 223, 224, + 223, 129, 18, 19, 159, 233, 59, 18, 19, 223, 184, 18, 19, 223, 36, 18, + 19, 222, 240, 18, 19, 222, 212, 18, 19, 222, 198, 18, 19, 159, 232, 157, + 18, 19, 205, 18, 19, 223, 185, 18, 19, 159, 233, 136, 18, 19, 222, 109, + 18, 19, 159, 222, 109, 18, 19, 153, 18, 19, 159, 153, 18, 19, 147, 153, + 18, 19, 244, 155, 18, 19, 244, 194, 18, 19, 244, 122, 18, 19, 244, 109, + 18, 19, 244, 44, 18, 19, 244, 35, 18, 19, 244, 197, 18, 19, 244, 196, 18, + 19, 243, 213, 18, 19, 159, 243, 213, 18, 19, 245, 7, 18, 19, 216, 196, + 18, 19, 230, 24, 216, 196, 18, 19, 216, 176, 18, 19, 230, 24, 216, 176, + 18, 19, 216, 172, 18, 19, 230, 24, 216, 172, 18, 19, 216, 157, 18, 19, + 216, 154, 18, 19, 216, 209, 18, 19, 216, 208, 18, 19, 216, 128, 18, 19, + 159, 216, 128, 18, 19, 216, 211, 18, 19, 215, 143, 18, 19, 215, 141, 18, + 19, 215, 140, 18, 19, 215, 145, 18, 19, 215, 146, 18, 19, 215, 52, 18, + 19, 215, 51, 18, 19, 215, 50, 18, 19, 215, 53, 18, 19, 227, 194, 241, + 239, 18, 19, 227, 194, 241, 181, 18, 19, 227, 194, 241, 162, 18, 19, 227, + 194, 241, 69, 18, 19, 227, 194, 241, 54, 18, 19, 227, 194, 162, 18, 19, + 227, 194, 242, 47, 18, 19, 227, 194, 242, 61, 18, 19, 227, 193, 242, 61, + 18, 19, 241, 155, 18, 19, 224, 85, 18, 19, 224, 54, 18, 19, 224, 49, 18, + 19, 224, 43, 18, 19, 224, 38, 18, 19, 224, 89, 18, 19, 224, 88, 18, 19, + 224, 97, 18, 19, 216, 56, 18, 19, 216, 54, 18, 19, 216, 53, 18, 19, 216, + 57, 18, 19, 159, 223, 129, 18, 19, 159, 223, 36, 18, 19, 159, 222, 212, + 18, 19, 159, 205, 18, 19, 229, 76, 18, 19, 229, 28, 18, 19, 229, 24, 18, + 19, 229, 5, 18, 19, 229, 0, 18, 19, 229, 78, 18, 19, 229, 77, 18, 19, + 229, 80, 18, 19, 228, 104, 18, 19, 221, 210, 220, 64, 18, 19, 221, 210, + 220, 33, 18, 19, 221, 210, 220, 8, 18, 19, 221, 210, 220, 103, 18, 19, + 211, 213, 216, 196, 18, 19, 211, 213, 216, 176, 18, 19, 211, 213, 216, + 157, 18, 19, 211, 213, 216, 209, 18, 19, 211, 213, 216, 211, 18, 19, 232, + 249, 18, 19, 232, 248, 18, 19, 232, 247, 18, 19, 232, 246, 18, 19, 232, + 255, 18, 19, 232, 254, 18, 19, 233, 0, 18, 19, 216, 210, 216, 196, 18, + 19, 216, 210, 216, 176, 18, 19, 216, 210, 216, 172, 18, 19, 216, 210, + 216, 157, 18, 19, 216, 210, 216, 154, 18, 19, 216, 210, 216, 209, 18, 19, + 216, 210, 216, 208, 18, 19, 216, 210, 216, 211, 18, 19, 254, 190, 253, + 159, 18, 19, 251, 219, 75, 18, 19, 251, 219, 73, 18, 19, 251, 219, 76, + 18, 19, 251, 219, 61, 18, 19, 251, 219, 212, 22, 18, 19, 251, 219, 211, + 250, 18, 19, 251, 219, 211, 227, 18, 19, 251, 219, 212, 65, 18, 19, 251, + 219, 229, 108, 18, 19, 251, 219, 228, 234, 18, 19, 251, 219, 228, 75, 18, + 19, 251, 219, 197, 18, 19, 251, 219, 234, 183, 18, 19, 251, 219, 234, 93, + 18, 19, 251, 219, 234, 29, 18, 19, 251, 219, 176, 18, 19, 221, 210, 241, + 239, 18, 19, 221, 210, 241, 181, 18, 19, 221, 210, 241, 69, 18, 19, 221, + 210, 162, 18, 19, 72, 242, 221, 18, 19, 72, 242, 225, 18, 19, 72, 242, + 237, 18, 19, 72, 242, 236, 18, 19, 72, 242, 226, 18, 19, 72, 242, 250, + 18, 19, 72, 222, 141, 18, 19, 72, 222, 212, 18, 19, 72, 223, 129, 18, 19, + 72, 223, 109, 18, 19, 72, 223, 36, 18, 19, 72, 205, 18, 19, 72, 211, 195, + 18, 19, 72, 211, 227, 18, 19, 72, 212, 22, 18, 19, 72, 212, 17, 18, 19, + 72, 211, 250, 18, 19, 72, 212, 65, 18, 19, 72, 240, 195, 18, 19, 72, 240, + 196, 18, 19, 72, 240, 199, 18, 19, 72, 240, 198, 18, 19, 72, 240, 197, + 18, 19, 72, 240, 201, 18, 19, 72, 216, 137, 18, 19, 72, 216, 157, 18, 19, + 72, 216, 196, 18, 19, 72, 216, 195, 18, 19, 72, 216, 176, 18, 19, 72, + 216, 209, 18, 19, 72, 215, 124, 18, 19, 72, 215, 134, 18, 19, 72, 215, + 152, 18, 19, 72, 215, 151, 18, 19, 72, 215, 136, 18, 19, 72, 215, 157, + 18, 19, 72, 224, 151, 18, 19, 72, 225, 17, 18, 19, 72, 225, 222, 18, 19, + 72, 225, 212, 18, 19, 72, 225, 109, 18, 19, 72, 190, 18, 19, 72, 226, + 106, 18, 19, 72, 242, 114, 18, 19, 72, 242, 175, 18, 19, 72, 243, 63, 18, + 19, 72, 243, 56, 18, 19, 72, 242, 215, 18, 19, 72, 243, 136, 18, 19, 72, + 234, 101, 18, 19, 72, 234, 106, 18, 19, 72, 234, 120, 18, 19, 72, 234, + 119, 18, 19, 72, 234, 113, 18, 19, 72, 234, 133, 18, 19, 72, 234, 42, 18, + 19, 72, 234, 43, 18, 19, 72, 234, 46, 18, 19, 72, 234, 45, 18, 19, 72, + 234, 44, 18, 19, 72, 234, 47, 18, 19, 72, 234, 48, 18, 19, 72, 227, 238, + 18, 19, 72, 228, 75, 18, 19, 72, 229, 108, 18, 19, 72, 229, 104, 18, 19, + 72, 228, 234, 18, 19, 72, 197, 18, 19, 72, 230, 103, 18, 19, 72, 230, + 162, 18, 19, 72, 231, 92, 18, 19, 72, 231, 81, 18, 19, 72, 230, 231, 18, + 19, 72, 185, 18, 19, 72, 210, 212, 18, 19, 72, 210, 244, 18, 19, 72, 211, + 47, 18, 19, 72, 211, 44, 18, 19, 72, 211, 8, 18, 19, 72, 191, 18, 19, 72, + 235, 52, 18, 19, 221, 210, 235, 52, 18, 19, 72, 235, 69, 18, 19, 72, 235, + 127, 18, 19, 72, 235, 125, 18, 19, 72, 235, 109, 18, 19, 221, 210, 235, + 109, 18, 19, 72, 235, 142, 18, 19, 72, 235, 82, 18, 19, 72, 235, 86, 18, + 19, 72, 235, 96, 18, 19, 72, 235, 95, 18, 19, 72, 235, 94, 18, 19, 72, + 235, 97, 18, 19, 72, 232, 99, 18, 19, 72, 232, 157, 18, 19, 72, 233, 59, + 18, 19, 72, 233, 51, 18, 19, 72, 232, 242, 18, 19, 72, 233, 136, 18, 19, + 72, 247, 150, 18, 19, 72, 247, 151, 18, 19, 72, 247, 156, 18, 19, 72, + 247, 155, 18, 19, 72, 247, 152, 18, 19, 72, 247, 157, 18, 19, 72, 232, + 245, 18, 19, 72, 232, 247, 18, 19, 72, 232, 251, 18, 19, 72, 232, 250, + 18, 19, 72, 232, 249, 18, 19, 72, 232, 255, 18, 19, 72, 216, 51, 18, 19, + 72, 216, 53, 18, 19, 72, 216, 56, 18, 19, 72, 216, 55, 18, 19, 72, 216, + 54, 18, 19, 72, 216, 57, 18, 19, 72, 216, 46, 18, 19, 72, 216, 47, 18, + 19, 72, 216, 59, 18, 19, 72, 216, 58, 18, 19, 72, 216, 48, 18, 19, 72, + 216, 60, 18, 19, 72, 210, 13, 18, 19, 72, 210, 23, 18, 19, 72, 210, 94, + 18, 19, 72, 210, 92, 18, 19, 72, 210, 44, 18, 19, 72, 210, 116, 18, 19, + 72, 210, 159, 18, 19, 72, 65, 210, 159, 18, 19, 72, 246, 29, 18, 19, 72, + 246, 30, 18, 19, 72, 246, 37, 18, 19, 72, 246, 36, 18, 19, 72, 246, 32, + 18, 19, 72, 246, 39, 18, 19, 72, 218, 84, 18, 19, 72, 219, 59, 18, 19, + 72, 221, 182, 18, 19, 72, 221, 171, 18, 19, 72, 219, 192, 18, 19, 72, + 206, 18, 19, 72, 219, 226, 18, 19, 72, 220, 8, 18, 19, 72, 220, 64, 18, + 19, 72, 220, 62, 18, 19, 72, 220, 33, 18, 19, 72, 220, 103, 18, 19, 72, + 220, 105, 18, 19, 72, 215, 164, 18, 19, 72, 215, 167, 18, 19, 72, 215, + 179, 18, 19, 72, 215, 178, 18, 19, 72, 215, 168, 18, 19, 72, 215, 184, + 18, 19, 72, 250, 70, 18, 19, 72, 250, 87, 18, 19, 72, 250, 132, 18, 19, + 72, 250, 129, 18, 19, 72, 250, 111, 18, 19, 72, 250, 158, 18, 19, 72, + 215, 127, 18, 19, 72, 215, 128, 18, 19, 72, 215, 131, 18, 19, 72, 215, + 130, 18, 19, 72, 215, 129, 18, 19, 72, 215, 132, 18, 19, 250, 112, 50, + 18, 19, 243, 230, 218, 130, 18, 19, 224, 81, 18, 19, 229, 74, 18, 19, + 228, 101, 18, 19, 228, 100, 18, 19, 228, 99, 18, 19, 228, 98, 18, 19, + 228, 103, 18, 19, 228, 102, 18, 19, 211, 213, 216, 126, 18, 19, 211, 213, + 216, 125, 18, 19, 211, 213, 216, 124, 18, 19, 211, 213, 216, 123, 18, 19, + 211, 213, 216, 122, 18, 19, 211, 213, 216, 129, 18, 19, 211, 213, 216, + 128, 18, 19, 211, 213, 40, 216, 211, 18, 19, 251, 219, 212, 98, 226, 227, + 219, 20, 78, 226, 227, 1, 252, 49, 226, 227, 1, 232, 88, 226, 227, 1, + 244, 152, 226, 227, 1, 222, 16, 226, 227, 1, 228, 194, 226, 227, 1, 214, + 226, 226, 227, 1, 248, 198, 226, 227, 1, 216, 81, 226, 227, 1, 249, 230, + 226, 227, 1, 250, 181, 226, 227, 1, 230, 92, 226, 227, 1, 242, 157, 226, + 227, 1, 229, 64, 226, 227, 1, 218, 123, 226, 227, 1, 222, 136, 226, 227, + 1, 254, 199, 226, 227, 1, 226, 188, 226, 227, 1, 214, 150, 226, 227, 1, + 245, 232, 226, 227, 1, 235, 189, 226, 227, 1, 245, 233, 226, 227, 1, 226, + 159, 226, 227, 1, 214, 206, 226, 227, 1, 236, 40, 226, 227, 1, 245, 230, + 226, 227, 1, 225, 203, 226, 227, 244, 151, 78, 226, 227, 223, 50, 244, + 151, 78, 178, 1, 244, 142, 244, 134, 244, 156, 245, 7, 178, 1, 214, 105, + 178, 1, 214, 135, 214, 151, 70, 178, 1, 210, 214, 178, 1, 211, 117, 178, + 1, 212, 98, 178, 1, 216, 131, 216, 130, 216, 152, 178, 1, 245, 60, 178, + 1, 254, 94, 61, 178, 1, 226, 144, 76, 178, 1, 255, 18, 61, 178, 1, 254, + 228, 178, 1, 232, 134, 76, 178, 1, 219, 245, 76, 178, 1, 76, 178, 1, 226, + 235, 178, 1, 226, 197, 178, 1, 223, 165, 223, 178, 223, 95, 153, 178, 1, + 234, 194, 178, 1, 250, 178, 178, 1, 234, 195, 235, 24, 178, 1, 243, 203, + 178, 1, 245, 139, 178, 1, 243, 59, 242, 67, 243, 203, 178, 1, 243, 97, + 178, 1, 211, 188, 211, 182, 212, 98, 178, 1, 242, 39, 242, 61, 178, 1, + 242, 43, 242, 61, 178, 1, 232, 136, 242, 61, 178, 1, 219, 248, 242, 61, + 178, 1, 229, 186, 227, 158, 229, 187, 230, 26, 178, 1, 219, 246, 230, 26, + 178, 1, 246, 116, 178, 1, 235, 169, 235, 173, 235, 163, 73, 178, 1, 75, + 178, 1, 235, 118, 235, 145, 178, 1, 243, 44, 178, 1, 232, 137, 254, 244, + 178, 1, 219, 250, 61, 178, 1, 235, 155, 245, 114, 178, 1, 225, 165, 225, + 187, 226, 106, 178, 1, 254, 164, 245, 112, 178, 1, 219, 25, 222, 92, 178, + 1, 219, 180, 232, 133, 222, 92, 178, 1, 219, 244, 222, 92, 178, 1, 251, + 67, 178, 1, 210, 159, 178, 1, 216, 64, 216, 74, 215, 41, 217, 153, 178, + 1, 219, 243, 217, 153, 178, 1, 249, 61, 178, 1, 252, 32, 252, 35, 251, + 225, 253, 159, 178, 1, 219, 249, 253, 159, 178, 1, 246, 115, 178, 1, 226, + 172, 178, 1, 245, 197, 245, 199, 75, 178, 1, 231, 179, 231, 187, 193, + 178, 1, 232, 135, 193, 178, 1, 219, 247, 193, 178, 1, 233, 74, 233, 115, + 232, 144, 156, 178, 1, 246, 117, 178, 1, 235, 231, 178, 1, 235, 232, 178, + 1, 248, 211, 248, 216, 249, 61, 178, 1, 226, 139, 245, 59, 76, 178, 1, + 245, 228, 178, 1, 235, 188, 178, 1, 249, 79, 178, 1, 251, 18, 178, 1, + 250, 190, 178, 1, 218, 162, 178, 1, 232, 132, 178, 1, 219, 242, 178, 1, + 240, 111, 178, 1, 224, 97, 178, 1, 211, 178, 178, 219, 156, 224, 141, + 178, 230, 86, 224, 141, 178, 249, 132, 224, 141, 178, 254, 7, 87, 178, + 215, 82, 87, 178, 252, 47, 87, 217, 84, 1, 61, 217, 84, 1, 73, 217, 84, + 1, 70, 217, 84, 1, 176, 217, 84, 1, 243, 136, 217, 84, 1, 229, 78, 217, + 84, 1, 217, 106, 217, 84, 1, 248, 222, 217, 84, 1, 197, 217, 84, 1, 190, + 217, 84, 1, 252, 192, 217, 84, 1, 185, 217, 84, 1, 191, 217, 84, 1, 233, + 136, 217, 84, 1, 212, 65, 217, 84, 1, 206, 217, 84, 1, 162, 217, 84, 25, + 5, 73, 217, 84, 25, 5, 70, 217, 84, 5, 213, 152, 242, 8, 1, 61, 242, 8, + 1, 73, 242, 8, 1, 70, 242, 8, 1, 176, 242, 8, 1, 243, 136, 242, 8, 1, + 229, 78, 242, 8, 1, 217, 106, 242, 8, 1, 248, 222, 242, 8, 1, 197, 242, + 8, 1, 190, 242, 8, 1, 252, 192, 242, 8, 1, 185, 242, 8, 1, 191, 242, 8, + 1, 205, 242, 8, 1, 233, 136, 242, 8, 1, 212, 65, 242, 8, 1, 206, 242, 8, + 1, 162, 242, 8, 25, 5, 73, 242, 8, 25, 5, 70, 242, 8, 5, 226, 50, 225, + 127, 219, 156, 224, 141, 225, 127, 52, 224, 141, 251, 121, 1, 61, 251, + 121, 1, 73, 251, 121, 1, 70, 251, 121, 1, 176, 251, 121, 1, 243, 136, + 251, 121, 1, 229, 78, 251, 121, 1, 217, 106, 251, 121, 1, 248, 222, 251, + 121, 1, 197, 251, 121, 1, 190, 251, 121, 1, 252, 192, 251, 121, 1, 185, + 251, 121, 1, 191, 251, 121, 1, 205, 251, 121, 1, 233, 136, 251, 121, 1, + 212, 65, 251, 121, 1, 206, 251, 121, 1, 162, 251, 121, 25, 5, 73, 251, + 121, 25, 5, 70, 217, 83, 1, 61, 217, 83, 1, 73, 217, 83, 1, 70, 217, 83, + 1, 176, 217, 83, 1, 243, 136, 217, 83, 1, 229, 78, 217, 83, 1, 217, 106, + 217, 83, 1, 248, 222, 217, 83, 1, 197, 217, 83, 1, 190, 217, 83, 1, 252, + 192, 217, 83, 1, 185, 217, 83, 1, 191, 217, 83, 1, 233, 136, 217, 83, 1, + 212, 65, 217, 83, 1, 206, 217, 83, 25, 5, 73, 217, 83, 25, 5, 70, 69, 1, + 176, 69, 1, 234, 133, 69, 1, 234, 29, 69, 1, 234, 106, 69, 1, 229, 5, 69, + 1, 251, 34, 69, 1, 250, 158, 69, 1, 249, 239, 69, 1, 250, 87, 69, 1, 227, + 135, 69, 1, 248, 222, 69, 1, 215, 145, 69, 1, 247, 146, 69, 1, 215, 140, + 69, 1, 228, 81, 69, 1, 217, 106, 69, 1, 216, 209, 69, 1, 111, 69, 1, 216, + 157, 69, 1, 228, 75, 69, 1, 252, 192, 69, 1, 225, 148, 69, 1, 225, 17, + 69, 1, 225, 122, 69, 1, 230, 162, 69, 1, 210, 244, 69, 1, 222, 212, 69, + 1, 232, 157, 69, 1, 213, 138, 69, 1, 220, 103, 69, 1, 218, 185, 69, 1, + 206, 69, 1, 162, 69, 1, 233, 136, 69, 1, 224, 89, 69, 235, 244, 25, 224, + 75, 69, 235, 244, 25, 224, 88, 69, 235, 244, 25, 224, 54, 69, 235, 244, + 25, 224, 49, 69, 235, 244, 25, 224, 31, 69, 235, 244, 25, 224, 3, 69, + 235, 244, 25, 223, 247, 69, 235, 244, 25, 223, 246, 69, 235, 244, 25, + 222, 101, 69, 235, 244, 25, 222, 94, 69, 235, 244, 25, 232, 63, 69, 235, + 244, 25, 232, 53, 69, 235, 244, 25, 224, 70, 69, 235, 244, 25, 224, 81, + 69, 235, 244, 25, 224, 39, 215, 49, 110, 69, 235, 244, 25, 224, 39, 215, + 49, 105, 69, 235, 244, 25, 224, 71, 69, 25, 235, 230, 254, 46, 69, 25, + 235, 230, 255, 74, 69, 25, 5, 255, 74, 69, 25, 5, 73, 69, 25, 5, 236, 34, + 69, 25, 5, 211, 117, 69, 25, 5, 210, 169, 69, 25, 5, 70, 69, 25, 5, 214, + 118, 69, 25, 5, 214, 229, 69, 25, 5, 226, 235, 69, 25, 5, 191, 69, 25, 5, + 236, 61, 69, 25, 5, 75, 69, 25, 5, 254, 244, 69, 25, 5, 254, 202, 69, 25, + 5, 226, 184, 69, 25, 5, 253, 193, 69, 5, 228, 207, 69, 5, 223, 127, 69, + 5, 210, 180, 69, 5, 230, 53, 69, 5, 215, 214, 69, 5, 252, 144, 69, 5, + 222, 207, 69, 5, 216, 41, 69, 5, 234, 242, 69, 5, 254, 204, 69, 5, 221, + 245, 221, 239, 69, 5, 213, 149, 69, 5, 249, 233, 69, 5, 252, 118, 69, 5, + 234, 126, 69, 5, 252, 138, 69, 5, 251, 10, 225, 73, 233, 188, 69, 5, 233, + 31, 216, 18, 69, 5, 252, 21, 69, 5, 225, 124, 230, 100, 69, 5, 234, 10, + 69, 249, 99, 16, 223, 29, 69, 5, 253, 175, 69, 5, 253, 196, 69, 21, 210, + 86, 69, 21, 110, 69, 21, 105, 69, 21, 158, 69, 21, 161, 69, 21, 189, 69, + 21, 194, 69, 21, 198, 69, 21, 195, 69, 21, 200, 69, 16, 233, 31, 253, + 198, 219, 44, 69, 16, 233, 31, 253, 198, 230, 72, 69, 16, 233, 31, 253, + 198, 225, 72, 69, 16, 233, 31, 253, 198, 252, 50, 69, 16, 233, 31, 253, + 198, 251, 104, 69, 16, 233, 31, 253, 198, 224, 216, 69, 16, 233, 31, 253, + 198, 224, 210, 69, 16, 233, 31, 253, 198, 224, 208, 69, 16, 233, 31, 253, + 198, 224, 214, 69, 16, 233, 31, 253, 198, 224, 212, 83, 251, 237, 83, + 245, 164, 83, 249, 220, 83, 243, 230, 218, 130, 83, 249, 227, 83, 244, + 12, 247, 119, 83, 216, 40, 219, 53, 240, 169, 83, 219, 191, 3, 251, 173, + 231, 155, 83, 231, 184, 249, 220, 83, 231, 184, 243, 230, 218, 130, 83, + 228, 192, 83, 243, 254, 45, 221, 158, 110, 83, 243, 254, 45, 221, 158, + 105, 83, 243, 254, 45, 221, 158, 158, 83, 25, 220, 138, 83, 21, 210, 86, + 83, 21, 110, 83, 21, 105, 83, 21, 158, 83, 21, 161, 83, 21, 189, 83, 21, + 194, 83, 21, 198, 83, 21, 195, 83, 21, 200, 83, 1, 61, 83, 1, 75, 83, 1, + 73, 83, 1, 76, 83, 1, 70, 83, 1, 226, 235, 83, 1, 214, 214, 83, 1, 245, + 210, 83, 1, 197, 83, 1, 254, 116, 83, 1, 252, 192, 83, 1, 190, 83, 1, + 224, 89, 83, 1, 243, 136, 83, 1, 185, 83, 1, 233, 136, 83, 1, 206, 83, 1, + 220, 103, 83, 1, 217, 106, 83, 1, 248, 222, 83, 1, 250, 158, 83, 1, 235, + 142, 83, 1, 191, 83, 1, 205, 83, 1, 212, 65, 83, 1, 244, 197, 83, 1, 176, + 83, 1, 234, 133, 83, 1, 215, 184, 83, 1, 210, 116, 83, 1, 242, 47, 83, 1, + 210, 16, 83, 1, 232, 255, 83, 1, 210, 69, 83, 1, 250, 111, 83, 1, 216, + 40, 199, 25, 50, 83, 1, 216, 40, 75, 83, 1, 216, 40, 73, 83, 1, 216, 40, + 76, 83, 1, 216, 40, 70, 83, 1, 216, 40, 226, 235, 83, 1, 216, 40, 214, + 214, 83, 1, 216, 40, 254, 116, 83, 1, 216, 40, 252, 192, 83, 1, 216, 40, + 190, 83, 1, 216, 40, 224, 89, 83, 1, 216, 40, 243, 136, 83, 1, 216, 40, + 185, 83, 1, 216, 40, 217, 106, 83, 1, 216, 40, 248, 222, 83, 1, 216, 40, + 250, 158, 83, 1, 216, 40, 235, 142, 83, 1, 216, 40, 215, 184, 83, 1, 216, + 40, 191, 83, 1, 216, 40, 212, 65, 83, 1, 216, 40, 176, 83, 1, 216, 40, + 243, 133, 83, 1, 216, 40, 242, 47, 83, 1, 216, 40, 235, 108, 83, 1, 216, + 40, 228, 232, 83, 1, 216, 40, 246, 39, 83, 1, 219, 191, 75, 83, 1, 219, + 191, 73, 83, 1, 219, 191, 235, 153, 83, 1, 219, 191, 214, 214, 83, 1, + 219, 191, 70, 83, 1, 219, 191, 254, 116, 83, 1, 219, 191, 176, 83, 1, + 219, 191, 243, 136, 83, 1, 219, 191, 162, 83, 1, 219, 191, 190, 83, 1, + 219, 191, 220, 103, 83, 1, 219, 191, 217, 106, 83, 1, 219, 191, 248, 222, + 83, 1, 219, 191, 235, 142, 83, 1, 219, 191, 244, 197, 83, 1, 219, 191, + 243, 133, 83, 1, 219, 191, 242, 47, 83, 1, 219, 191, 215, 184, 83, 1, + 219, 191, 210, 116, 83, 1, 219, 191, 223, 185, 83, 1, 219, 191, 250, 158, + 83, 1, 219, 191, 210, 82, 83, 1, 231, 184, 73, 83, 1, 231, 184, 176, 83, + 1, 231, 184, 205, 83, 1, 231, 184, 244, 197, 83, 1, 231, 184, 210, 82, + 83, 1, 254, 163, 243, 117, 254, 77, 110, 83, 1, 254, 163, 243, 117, 213, + 148, 110, 83, 1, 254, 163, 243, 117, 248, 187, 83, 1, 254, 163, 243, 117, + 214, 224, 83, 1, 254, 163, 243, 117, 235, 194, 214, 224, 83, 1, 254, 163, + 243, 117, 252, 156, 83, 1, 254, 163, 243, 117, 134, 252, 156, 83, 1, 254, + 163, 243, 117, 61, 83, 1, 254, 163, 243, 117, 73, 83, 1, 254, 163, 243, + 117, 176, 83, 1, 254, 163, 243, 117, 229, 78, 83, 1, 254, 163, 243, 117, + 251, 34, 83, 1, 254, 163, 243, 117, 215, 157, 83, 1, 254, 163, 243, 117, + 215, 145, 83, 1, 254, 163, 243, 117, 248, 136, 83, 1, 254, 163, 243, 117, + 228, 111, 83, 1, 254, 163, 243, 117, 217, 106, 83, 1, 254, 163, 243, 117, + 248, 222, 83, 1, 254, 163, 243, 117, 190, 83, 1, 254, 163, 243, 117, 225, + 148, 83, 1, 254, 163, 243, 117, 218, 224, 83, 1, 254, 163, 243, 117, 210, + 82, 83, 1, 254, 163, 243, 117, 210, 116, 83, 1, 254, 163, 243, 117, 254, + 210, 83, 1, 216, 40, 254, 163, 243, 117, 217, 106, 83, 1, 216, 40, 254, + 163, 243, 117, 210, 82, 83, 1, 231, 184, 254, 163, 243, 117, 242, 250, + 83, 1, 231, 184, 254, 163, 243, 117, 229, 78, 83, 1, 231, 184, 254, 163, + 243, 117, 251, 34, 83, 1, 231, 184, 254, 163, 243, 117, 235, 115, 83, 1, + 231, 184, 254, 163, 243, 117, 215, 157, 83, 1, 231, 184, 254, 163, 243, + 117, 248, 120, 83, 1, 231, 184, 254, 163, 243, 117, 217, 106, 83, 1, 231, + 184, 254, 163, 243, 117, 248, 26, 83, 1, 231, 184, 254, 163, 243, 117, + 218, 224, 83, 1, 231, 184, 254, 163, 243, 117, 249, 73, 83, 1, 231, 184, + 254, 163, 243, 117, 210, 82, 83, 1, 231, 184, 254, 163, 243, 117, 210, + 116, 83, 1, 254, 163, 243, 117, 163, 70, 83, 1, 254, 163, 243, 117, 163, + 191, 83, 1, 231, 184, 254, 163, 243, 117, 252, 19, 83, 1, 254, 163, 243, + 117, 248, 212, 83, 1, 231, 184, 254, 163, 243, 117, 232, 255, 18, 19, + 226, 110, 18, 19, 253, 168, 18, 19, 255, 29, 18, 19, 212, 25, 18, 19, + 224, 222, 18, 19, 225, 230, 18, 19, 224, 106, 18, 19, 217, 32, 18, 19, + 234, 190, 18, 19, 233, 180, 18, 19, 231, 133, 18, 19, 228, 38, 18, 19, + 229, 182, 18, 19, 233, 69, 18, 19, 219, 23, 18, 19, 221, 212, 18, 19, + 219, 233, 18, 19, 220, 67, 18, 19, 219, 202, 18, 19, 210, 220, 18, 19, + 211, 52, 18, 19, 223, 135, 18, 19, 227, 172, 18, 19, 226, 217, 227, 172, + 18, 19, 227, 171, 18, 19, 226, 217, 227, 171, 18, 19, 227, 170, 18, 19, + 226, 217, 227, 170, 18, 19, 227, 169, 18, 19, 226, 217, 227, 169, 18, 19, + 222, 106, 18, 19, 222, 105, 18, 19, 222, 104, 18, 19, 222, 103, 18, 19, + 222, 102, 18, 19, 222, 110, 18, 19, 226, 217, 226, 106, 18, 19, 226, 217, + 217, 153, 18, 19, 226, 217, 235, 24, 18, 19, 226, 217, 251, 67, 18, 19, + 226, 217, 193, 18, 19, 226, 217, 230, 26, 18, 19, 226, 217, 222, 92, 18, + 19, 226, 217, 220, 105, 18, 19, 245, 220, 212, 98, 18, 19, 212, 7, 212, + 98, 18, 19, 40, 4, 222, 234, 18, 19, 40, 223, 158, 247, 121, 18, 19, 223, + 224, 222, 107, 18, 19, 159, 232, 128, 18, 19, 159, 233, 135, 18, 19, 216, + 127, 18, 19, 216, 129, 18, 19, 215, 137, 18, 19, 215, 139, 18, 19, 215, + 144, 18, 19, 216, 50, 18, 19, 216, 52, 18, 19, 221, 210, 219, 207, 18, + 19, 221, 210, 220, 2, 18, 19, 221, 210, 241, 54, 18, 19, 72, 242, 74, 18, + 19, 72, 248, 53, 243, 56, 18, 19, 72, 243, 133, 18, 19, 72, 242, 79, 18, + 19, 221, 210, 235, 34, 18, 19, 72, 235, 32, 18, 19, 252, 69, 248, 53, + 156, 18, 19, 252, 69, 248, 53, 153, 18, 19, 72, 248, 48, 222, 92, 232, + 224, 213, 122, 233, 11, 232, 224, 1, 176, 232, 224, 1, 234, 133, 232, + 224, 1, 243, 136, 232, 224, 1, 242, 250, 232, 224, 1, 229, 78, 232, 224, + 1, 251, 34, 232, 224, 1, 250, 158, 232, 224, 1, 235, 142, 232, 224, 1, + 235, 115, 232, 224, 1, 211, 71, 232, 224, 1, 217, 106, 232, 224, 1, 216, + 209, 232, 224, 1, 248, 222, 232, 224, 1, 248, 26, 232, 224, 1, 197, 232, + 224, 1, 190, 232, 224, 1, 225, 148, 232, 224, 1, 252, 192, 232, 224, 1, + 252, 19, 232, 224, 1, 185, 232, 224, 1, 191, 232, 224, 1, 205, 232, 224, + 1, 233, 136, 232, 224, 1, 212, 65, 232, 224, 1, 220, 103, 232, 224, 1, + 218, 224, 232, 224, 1, 206, 232, 224, 1, 162, 232, 224, 25, 5, 61, 232, + 224, 25, 5, 73, 232, 224, 25, 5, 70, 232, 224, 25, 5, 245, 210, 232, 224, + 25, 5, 254, 202, 232, 224, 25, 5, 226, 184, 232, 224, 25, 5, 253, 193, + 232, 224, 25, 5, 75, 232, 224, 25, 5, 76, 232, 224, 218, 74, 1, 191, 232, + 224, 218, 74, 1, 205, 232, 224, 218, 74, 1, 212, 65, 232, 224, 4, 1, 176, + 232, 224, 4, 1, 229, 78, 232, 224, 4, 1, 254, 76, 232, 224, 4, 1, 217, + 106, 232, 224, 4, 1, 197, 232, 224, 4, 1, 190, 232, 224, 4, 1, 185, 232, + 224, 4, 1, 205, 232, 224, 4, 1, 233, 136, 232, 224, 5, 230, 90, 232, 224, + 5, 234, 172, 232, 224, 5, 222, 33, 232, 224, 5, 232, 128, 232, 224, 245, + 32, 78, 232, 224, 224, 14, 78, 232, 224, 21, 210, 86, 232, 224, 21, 110, + 232, 224, 21, 105, 232, 224, 21, 158, 232, 224, 21, 161, 232, 224, 21, + 189, 232, 224, 21, 194, 232, 224, 21, 198, 232, 224, 21, 195, 232, 224, + 21, 200, 39, 233, 60, 1, 176, 39, 233, 60, 1, 211, 165, 39, 233, 60, 1, + 229, 78, 39, 233, 60, 1, 215, 184, 39, 233, 60, 1, 206, 39, 233, 60, 1, + 191, 39, 233, 60, 1, 217, 106, 39, 233, 60, 1, 216, 209, 39, 233, 60, 1, + 233, 136, 39, 233, 60, 1, 190, 39, 233, 60, 1, 225, 148, 39, 233, 60, 1, + 185, 39, 233, 60, 1, 244, 197, 39, 233, 60, 1, 214, 27, 39, 233, 60, 1, + 162, 39, 233, 60, 1, 224, 89, 39, 233, 60, 1, 234, 133, 39, 233, 60, 1, + 215, 176, 39, 233, 60, 1, 197, 39, 233, 60, 1, 61, 39, 233, 60, 1, 73, + 39, 233, 60, 1, 245, 210, 39, 233, 60, 1, 245, 198, 39, 233, 60, 1, 70, + 39, 233, 60, 1, 226, 184, 39, 233, 60, 1, 76, 39, 233, 60, 1, 214, 214, + 39, 233, 60, 1, 75, 39, 233, 60, 1, 253, 191, 39, 233, 60, 1, 254, 202, + 39, 233, 60, 1, 216, 29, 39, 233, 60, 1, 216, 28, 39, 233, 60, 1, 216, + 27, 39, 233, 60, 1, 216, 26, 39, 233, 60, 1, 216, 25, 166, 39, 173, 1, + 125, 224, 89, 166, 39, 173, 1, 121, 224, 89, 166, 39, 173, 1, 125, 176, + 166, 39, 173, 1, 125, 211, 165, 166, 39, 173, 1, 125, 229, 78, 166, 39, 173, 1, 121, 176, 166, 39, 173, 1, 121, 211, 165, 166, 39, 173, 1, 121, - 229, 77, 166, 39, 173, 1, 125, 215, 183, 166, 39, 173, 1, 125, 206, 166, - 39, 173, 1, 125, 191, 166, 39, 173, 1, 121, 215, 183, 166, 39, 173, 1, - 121, 206, 166, 39, 173, 1, 121, 191, 166, 39, 173, 1, 125, 217, 105, 166, - 39, 173, 1, 125, 216, 208, 166, 39, 173, 1, 125, 197, 166, 39, 173, 1, - 121, 217, 105, 166, 39, 173, 1, 121, 216, 208, 166, 39, 173, 1, 121, 197, - 166, 39, 173, 1, 125, 190, 166, 39, 173, 1, 125, 225, 147, 166, 39, 173, - 1, 125, 184, 166, 39, 173, 1, 121, 190, 166, 39, 173, 1, 121, 225, 147, - 166, 39, 173, 1, 121, 184, 166, 39, 173, 1, 125, 244, 196, 166, 39, 173, - 1, 125, 214, 27, 166, 39, 173, 1, 125, 233, 135, 166, 39, 173, 1, 121, - 244, 196, 166, 39, 173, 1, 121, 214, 27, 166, 39, 173, 1, 121, 233, 135, - 166, 39, 173, 1, 125, 162, 166, 39, 173, 1, 125, 248, 221, 166, 39, 173, - 1, 125, 252, 191, 166, 39, 173, 1, 121, 162, 166, 39, 173, 1, 121, 248, - 221, 166, 39, 173, 1, 121, 252, 191, 166, 39, 173, 1, 125, 233, 184, 166, - 39, 173, 1, 125, 211, 138, 166, 39, 173, 1, 121, 233, 184, 166, 39, 173, - 1, 121, 211, 138, 166, 39, 173, 1, 125, 218, 82, 166, 39, 173, 1, 121, - 218, 82, 166, 39, 173, 25, 5, 25, 219, 239, 166, 39, 173, 25, 5, 255, 73, - 166, 39, 173, 25, 5, 236, 33, 166, 39, 173, 25, 5, 70, 166, 39, 173, 25, - 5, 214, 118, 166, 39, 173, 25, 5, 75, 166, 39, 173, 25, 5, 254, 243, 166, - 39, 173, 25, 5, 76, 166, 39, 173, 25, 5, 227, 0, 166, 39, 173, 25, 5, - 214, 214, 166, 39, 173, 25, 5, 253, 167, 166, 39, 173, 25, 5, 255, 28, - 166, 39, 173, 25, 5, 214, 111, 166, 39, 173, 25, 5, 226, 109, 166, 39, - 173, 25, 5, 226, 253, 166, 39, 173, 25, 5, 214, 210, 166, 39, 173, 25, 5, - 235, 152, 166, 39, 173, 1, 40, 214, 105, 166, 39, 173, 1, 40, 229, 79, - 166, 39, 173, 1, 40, 230, 25, 166, 39, 173, 1, 40, 193, 166, 39, 173, 1, - 40, 235, 23, 166, 39, 173, 1, 40, 249, 60, 166, 39, 173, 1, 40, 253, 158, - 166, 39, 173, 138, 231, 158, 166, 39, 173, 138, 231, 157, 166, 39, 173, + 229, 78, 166, 39, 173, 1, 125, 215, 184, 166, 39, 173, 1, 125, 206, 166, + 39, 173, 1, 125, 191, 166, 39, 173, 1, 121, 215, 184, 166, 39, 173, 1, + 121, 206, 166, 39, 173, 1, 121, 191, 166, 39, 173, 1, 125, 217, 106, 166, + 39, 173, 1, 125, 216, 209, 166, 39, 173, 1, 125, 197, 166, 39, 173, 1, + 121, 217, 106, 166, 39, 173, 1, 121, 216, 209, 166, 39, 173, 1, 121, 197, + 166, 39, 173, 1, 125, 190, 166, 39, 173, 1, 125, 225, 148, 166, 39, 173, + 1, 125, 185, 166, 39, 173, 1, 121, 190, 166, 39, 173, 1, 121, 225, 148, + 166, 39, 173, 1, 121, 185, 166, 39, 173, 1, 125, 244, 197, 166, 39, 173, + 1, 125, 214, 27, 166, 39, 173, 1, 125, 233, 136, 166, 39, 173, 1, 121, + 244, 197, 166, 39, 173, 1, 121, 214, 27, 166, 39, 173, 1, 121, 233, 136, + 166, 39, 173, 1, 125, 162, 166, 39, 173, 1, 125, 248, 222, 166, 39, 173, + 1, 125, 252, 192, 166, 39, 173, 1, 121, 162, 166, 39, 173, 1, 121, 248, + 222, 166, 39, 173, 1, 121, 252, 192, 166, 39, 173, 1, 125, 233, 185, 166, + 39, 173, 1, 125, 211, 138, 166, 39, 173, 1, 121, 233, 185, 166, 39, 173, + 1, 121, 211, 138, 166, 39, 173, 1, 125, 218, 83, 166, 39, 173, 1, 121, + 218, 83, 166, 39, 173, 25, 5, 25, 219, 240, 166, 39, 173, 25, 5, 255, 74, + 166, 39, 173, 25, 5, 236, 34, 166, 39, 173, 25, 5, 70, 166, 39, 173, 25, + 5, 214, 118, 166, 39, 173, 25, 5, 75, 166, 39, 173, 25, 5, 254, 244, 166, + 39, 173, 25, 5, 76, 166, 39, 173, 25, 5, 227, 1, 166, 39, 173, 25, 5, + 214, 214, 166, 39, 173, 25, 5, 253, 168, 166, 39, 173, 25, 5, 255, 29, + 166, 39, 173, 25, 5, 214, 111, 166, 39, 173, 25, 5, 226, 110, 166, 39, + 173, 25, 5, 226, 254, 166, 39, 173, 25, 5, 214, 210, 166, 39, 173, 25, 5, + 235, 153, 166, 39, 173, 1, 40, 214, 105, 166, 39, 173, 1, 40, 229, 80, + 166, 39, 173, 1, 40, 230, 26, 166, 39, 173, 1, 40, 193, 166, 39, 173, 1, + 40, 235, 24, 166, 39, 173, 1, 40, 249, 61, 166, 39, 173, 1, 40, 253, 159, + 166, 39, 173, 138, 231, 159, 166, 39, 173, 138, 231, 158, 166, 39, 173, 21, 210, 86, 166, 39, 173, 21, 110, 166, 39, 173, 21, 105, 166, 39, 173, 21, 158, 166, 39, 173, 21, 161, 166, 39, 173, 21, 189, 166, 39, 173, 21, 194, 166, 39, 173, 21, 198, 166, 39, 173, 21, 195, 166, 39, 173, 21, 200, - 166, 39, 173, 89, 21, 110, 166, 39, 173, 5, 233, 120, 166, 39, 173, 5, - 233, 119, 69, 16, 225, 236, 69, 16, 230, 72, 234, 25, 69, 16, 225, 72, - 234, 25, 69, 16, 252, 50, 234, 25, 69, 16, 251, 104, 234, 25, 69, 16, - 224, 216, 234, 25, 69, 16, 224, 210, 234, 25, 69, 16, 224, 208, 234, 25, - 69, 16, 224, 214, 234, 25, 69, 16, 224, 212, 234, 25, 69, 16, 248, 173, - 234, 25, 69, 16, 248, 169, 234, 25, 69, 16, 248, 168, 234, 25, 69, 16, - 248, 171, 234, 25, 69, 16, 248, 170, 234, 25, 69, 16, 248, 167, 234, 25, - 69, 16, 215, 87, 69, 16, 230, 72, 222, 205, 69, 16, 225, 72, 222, 205, - 69, 16, 252, 50, 222, 205, 69, 16, 251, 104, 222, 205, 69, 16, 224, 216, - 222, 205, 69, 16, 224, 210, 222, 205, 69, 16, 224, 208, 222, 205, 69, 16, - 224, 214, 222, 205, 69, 16, 224, 212, 222, 205, 69, 16, 248, 173, 222, - 205, 69, 16, 248, 169, 222, 205, 69, 16, 248, 168, 222, 205, 69, 16, 248, - 171, 222, 205, 69, 16, 248, 170, 222, 205, 69, 16, 248, 167, 222, 205, - 251, 121, 1, 176, 251, 121, 1, 243, 135, 251, 121, 1, 229, 77, 251, 121, - 1, 229, 22, 251, 121, 1, 190, 251, 121, 1, 252, 191, 251, 121, 1, 184, - 251, 121, 1, 230, 105, 251, 121, 1, 217, 105, 251, 121, 1, 248, 221, 251, - 121, 1, 197, 251, 121, 1, 228, 36, 251, 121, 1, 251, 33, 251, 121, 1, - 235, 141, 251, 121, 1, 227, 165, 251, 121, 1, 227, 158, 251, 121, 1, 191, - 251, 121, 1, 205, 251, 121, 1, 233, 135, 251, 121, 1, 214, 27, 251, 121, - 1, 206, 251, 121, 1, 61, 251, 121, 1, 162, 251, 121, 25, 5, 73, 251, 121, - 25, 5, 70, 251, 121, 25, 5, 75, 251, 121, 25, 5, 76, 251, 121, 25, 5, - 254, 243, 251, 121, 226, 60, 251, 121, 245, 143, 64, 221, 172, 39, 89, 1, - 125, 176, 39, 89, 1, 125, 234, 132, 39, 89, 1, 125, 233, 171, 39, 89, 1, - 121, 176, 39, 89, 1, 121, 233, 171, 39, 89, 1, 121, 234, 132, 39, 89, 1, - 229, 77, 39, 89, 1, 125, 251, 33, 39, 89, 1, 125, 250, 157, 39, 89, 1, - 121, 251, 33, 39, 89, 1, 121, 206, 39, 89, 1, 121, 250, 157, 39, 89, 1, - 227, 165, 39, 89, 1, 223, 140, 39, 89, 1, 125, 223, 138, 39, 89, 1, 248, - 221, 39, 89, 1, 121, 223, 138, 39, 89, 1, 223, 149, 39, 89, 1, 125, 217, - 105, 39, 89, 1, 125, 216, 208, 39, 89, 1, 121, 217, 105, 39, 89, 1, 121, - 216, 208, 39, 89, 1, 197, 39, 89, 1, 252, 191, 39, 89, 1, 125, 190, 39, - 89, 1, 125, 225, 147, 39, 89, 1, 125, 244, 196, 39, 89, 1, 121, 190, 39, - 89, 1, 121, 244, 196, 39, 89, 1, 121, 225, 147, 39, 89, 1, 184, 39, 89, - 1, 121, 191, 39, 89, 1, 125, 191, 39, 89, 1, 205, 39, 89, 1, 222, 137, - 39, 89, 1, 233, 135, 39, 89, 1, 232, 93, 39, 89, 1, 212, 65, 39, 89, 1, - 125, 220, 102, 39, 89, 1, 125, 218, 223, 39, 89, 1, 125, 206, 39, 89, 1, - 125, 162, 39, 89, 1, 232, 184, 39, 89, 1, 61, 39, 89, 1, 121, 162, 39, - 89, 1, 73, 39, 89, 1, 236, 33, 39, 89, 1, 70, 39, 89, 1, 214, 118, 39, - 89, 1, 245, 209, 39, 89, 1, 226, 183, 39, 89, 1, 233, 120, 39, 89, 1, - 242, 132, 206, 39, 89, 116, 5, 147, 205, 39, 89, 116, 5, 147, 233, 135, - 39, 89, 116, 5, 233, 136, 217, 58, 233, 109, 39, 89, 5, 231, 204, 234, - 231, 233, 109, 39, 89, 116, 5, 40, 229, 77, 39, 89, 116, 5, 121, 190, 39, - 89, 116, 5, 125, 223, 139, 177, 121, 190, 39, 89, 116, 5, 184, 39, 89, - 116, 5, 252, 191, 39, 89, 116, 5, 206, 39, 89, 5, 222, 10, 39, 89, 25, 5, - 61, 39, 89, 25, 5, 231, 204, 221, 226, 39, 89, 25, 5, 255, 73, 39, 89, - 25, 5, 217, 64, 255, 73, 39, 89, 25, 5, 73, 39, 89, 25, 5, 236, 33, 39, + 166, 39, 173, 89, 21, 110, 166, 39, 173, 5, 233, 121, 166, 39, 173, 5, + 233, 120, 69, 16, 225, 237, 69, 16, 230, 73, 234, 26, 69, 16, 225, 73, + 234, 26, 69, 16, 252, 51, 234, 26, 69, 16, 251, 105, 234, 26, 69, 16, + 224, 217, 234, 26, 69, 16, 224, 211, 234, 26, 69, 16, 224, 209, 234, 26, + 69, 16, 224, 215, 234, 26, 69, 16, 224, 213, 234, 26, 69, 16, 248, 174, + 234, 26, 69, 16, 248, 170, 234, 26, 69, 16, 248, 169, 234, 26, 69, 16, + 248, 172, 234, 26, 69, 16, 248, 171, 234, 26, 69, 16, 248, 168, 234, 26, + 69, 16, 215, 87, 69, 16, 230, 73, 222, 206, 69, 16, 225, 73, 222, 206, + 69, 16, 252, 51, 222, 206, 69, 16, 251, 105, 222, 206, 69, 16, 224, 217, + 222, 206, 69, 16, 224, 211, 222, 206, 69, 16, 224, 209, 222, 206, 69, 16, + 224, 215, 222, 206, 69, 16, 224, 213, 222, 206, 69, 16, 248, 174, 222, + 206, 69, 16, 248, 170, 222, 206, 69, 16, 248, 169, 222, 206, 69, 16, 248, + 172, 222, 206, 69, 16, 248, 171, 222, 206, 69, 16, 248, 168, 222, 206, + 251, 122, 1, 176, 251, 122, 1, 243, 136, 251, 122, 1, 229, 78, 251, 122, + 1, 229, 23, 251, 122, 1, 190, 251, 122, 1, 252, 192, 251, 122, 1, 185, + 251, 122, 1, 230, 106, 251, 122, 1, 217, 106, 251, 122, 1, 248, 222, 251, + 122, 1, 197, 251, 122, 1, 228, 37, 251, 122, 1, 251, 34, 251, 122, 1, + 235, 142, 251, 122, 1, 227, 166, 251, 122, 1, 227, 159, 251, 122, 1, 191, + 251, 122, 1, 205, 251, 122, 1, 233, 136, 251, 122, 1, 214, 27, 251, 122, + 1, 206, 251, 122, 1, 61, 251, 122, 1, 162, 251, 122, 25, 5, 73, 251, 122, + 25, 5, 70, 251, 122, 25, 5, 75, 251, 122, 25, 5, 76, 251, 122, 25, 5, + 254, 244, 251, 122, 226, 61, 251, 122, 245, 144, 64, 221, 173, 39, 89, 1, + 125, 176, 39, 89, 1, 125, 234, 133, 39, 89, 1, 125, 233, 172, 39, 89, 1, + 121, 176, 39, 89, 1, 121, 233, 172, 39, 89, 1, 121, 234, 133, 39, 89, 1, + 229, 78, 39, 89, 1, 125, 251, 34, 39, 89, 1, 125, 250, 158, 39, 89, 1, + 121, 251, 34, 39, 89, 1, 121, 206, 39, 89, 1, 121, 250, 158, 39, 89, 1, + 227, 166, 39, 89, 1, 223, 141, 39, 89, 1, 125, 223, 139, 39, 89, 1, 248, + 222, 39, 89, 1, 121, 223, 139, 39, 89, 1, 223, 150, 39, 89, 1, 125, 217, + 106, 39, 89, 1, 125, 216, 209, 39, 89, 1, 121, 217, 106, 39, 89, 1, 121, + 216, 209, 39, 89, 1, 197, 39, 89, 1, 252, 192, 39, 89, 1, 125, 190, 39, + 89, 1, 125, 225, 148, 39, 89, 1, 125, 244, 197, 39, 89, 1, 121, 190, 39, + 89, 1, 121, 244, 197, 39, 89, 1, 121, 225, 148, 39, 89, 1, 185, 39, 89, + 1, 121, 191, 39, 89, 1, 125, 191, 39, 89, 1, 205, 39, 89, 1, 222, 138, + 39, 89, 1, 233, 136, 39, 89, 1, 232, 94, 39, 89, 1, 212, 65, 39, 89, 1, + 125, 220, 103, 39, 89, 1, 125, 218, 224, 39, 89, 1, 125, 206, 39, 89, 1, + 125, 162, 39, 89, 1, 232, 185, 39, 89, 1, 61, 39, 89, 1, 121, 162, 39, + 89, 1, 73, 39, 89, 1, 236, 34, 39, 89, 1, 70, 39, 89, 1, 214, 118, 39, + 89, 1, 245, 210, 39, 89, 1, 226, 184, 39, 89, 1, 233, 121, 39, 89, 1, + 242, 133, 206, 39, 89, 116, 5, 147, 205, 39, 89, 116, 5, 147, 233, 136, + 39, 89, 116, 5, 233, 137, 217, 59, 233, 110, 39, 89, 5, 231, 205, 234, + 232, 233, 110, 39, 89, 116, 5, 40, 229, 78, 39, 89, 116, 5, 121, 190, 39, + 89, 116, 5, 125, 223, 140, 177, 121, 190, 39, 89, 116, 5, 185, 39, 89, + 116, 5, 252, 192, 39, 89, 116, 5, 206, 39, 89, 5, 222, 11, 39, 89, 25, 5, + 61, 39, 89, 25, 5, 231, 205, 221, 227, 39, 89, 25, 5, 255, 74, 39, 89, + 25, 5, 217, 65, 255, 74, 39, 89, 25, 5, 73, 39, 89, 25, 5, 236, 34, 39, 89, 25, 5, 214, 214, 39, 89, 25, 5, 214, 117, 39, 89, 25, 5, 70, 39, 89, - 25, 5, 214, 118, 39, 89, 25, 5, 76, 39, 89, 25, 5, 227, 1, 51, 39, 89, - 25, 5, 226, 109, 39, 89, 25, 5, 75, 39, 89, 25, 5, 254, 243, 39, 89, 25, - 5, 226, 183, 39, 89, 25, 5, 254, 201, 39, 89, 25, 5, 89, 254, 201, 39, - 89, 25, 5, 227, 1, 48, 39, 89, 5, 231, 204, 234, 230, 39, 89, 5, 216, 29, - 39, 89, 5, 216, 28, 39, 89, 5, 234, 97, 216, 27, 39, 89, 5, 234, 97, 216, - 26, 39, 89, 5, 234, 97, 216, 25, 39, 89, 5, 223, 188, 242, 45, 39, 89, 5, - 231, 204, 221, 253, 39, 89, 5, 234, 96, 234, 215, 39, 89, 38, 249, 115, - 247, 120, 39, 89, 241, 46, 21, 210, 86, 39, 89, 241, 46, 21, 110, 39, 89, - 241, 46, 21, 105, 39, 89, 241, 46, 21, 158, 39, 89, 241, 46, 21, 161, 39, - 89, 241, 46, 21, 189, 39, 89, 241, 46, 21, 194, 39, 89, 241, 46, 21, 198, - 39, 89, 241, 46, 21, 195, 39, 89, 241, 46, 21, 200, 39, 89, 89, 21, 210, + 25, 5, 214, 118, 39, 89, 25, 5, 76, 39, 89, 25, 5, 227, 2, 51, 39, 89, + 25, 5, 226, 110, 39, 89, 25, 5, 75, 39, 89, 25, 5, 254, 244, 39, 89, 25, + 5, 226, 184, 39, 89, 25, 5, 254, 202, 39, 89, 25, 5, 89, 254, 202, 39, + 89, 25, 5, 227, 2, 48, 39, 89, 5, 231, 205, 234, 231, 39, 89, 5, 216, 30, + 39, 89, 5, 216, 29, 39, 89, 5, 234, 98, 216, 28, 39, 89, 5, 234, 98, 216, + 27, 39, 89, 5, 234, 98, 216, 26, 39, 89, 5, 223, 189, 242, 46, 39, 89, 5, + 231, 205, 221, 254, 39, 89, 5, 234, 97, 234, 216, 39, 89, 38, 249, 116, + 247, 121, 39, 89, 241, 47, 21, 210, 86, 39, 89, 241, 47, 21, 110, 39, 89, + 241, 47, 21, 105, 39, 89, 241, 47, 21, 158, 39, 89, 241, 47, 21, 161, 39, + 89, 241, 47, 21, 189, 39, 89, 241, 47, 21, 194, 39, 89, 241, 47, 21, 198, + 39, 89, 241, 47, 21, 195, 39, 89, 241, 47, 21, 200, 39, 89, 89, 21, 210, 86, 39, 89, 89, 21, 110, 39, 89, 89, 21, 105, 39, 89, 89, 21, 158, 39, 89, 89, 21, 161, 39, 89, 89, 21, 189, 39, 89, 89, 21, 194, 39, 89, 89, 21, 198, 39, 89, 89, 21, 195, 39, 89, 89, 21, 200, 39, 89, 5, 211, 249, - 39, 89, 5, 211, 248, 39, 89, 5, 221, 215, 39, 89, 5, 234, 160, 39, 89, 5, - 240, 232, 39, 89, 5, 247, 134, 39, 89, 5, 223, 49, 222, 187, 223, 149, - 39, 89, 5, 231, 204, 211, 72, 39, 89, 5, 235, 6, 39, 89, 5, 235, 5, 39, - 89, 5, 221, 222, 39, 89, 5, 221, 221, 39, 89, 5, 242, 9, 39, 89, 5, 251, - 30, 102, 5, 214, 200, 223, 30, 102, 5, 214, 200, 251, 1, 102, 5, 250, - 186, 102, 5, 218, 15, 102, 5, 251, 233, 102, 1, 254, 184, 102, 1, 254, - 185, 217, 13, 102, 1, 236, 29, 102, 1, 236, 30, 217, 13, 102, 1, 214, - 203, 102, 1, 214, 204, 217, 13, 102, 1, 223, 188, 223, 79, 102, 1, 223, - 188, 223, 80, 217, 13, 102, 1, 233, 136, 233, 24, 102, 1, 233, 136, 233, - 25, 217, 13, 102, 1, 245, 179, 102, 1, 254, 199, 102, 1, 226, 212, 102, - 1, 226, 213, 217, 13, 102, 1, 176, 102, 1, 235, 13, 231, 207, 102, 1, - 243, 135, 102, 1, 243, 136, 242, 161, 102, 1, 229, 77, 102, 1, 251, 33, - 102, 1, 251, 34, 233, 123, 102, 1, 235, 141, 102, 1, 235, 142, 235, 118, - 102, 1, 227, 165, 102, 1, 217, 106, 233, 76, 102, 1, 217, 106, 230, 67, - 231, 207, 102, 1, 248, 222, 230, 67, 254, 145, 102, 1, 248, 222, 230, 67, - 231, 207, 102, 1, 229, 229, 223, 152, 102, 1, 217, 105, 102, 1, 217, 106, - 217, 35, 102, 1, 248, 221, 102, 1, 248, 222, 231, 225, 102, 1, 197, 102, - 1, 190, 102, 1, 226, 90, 234, 226, 102, 1, 252, 191, 102, 1, 252, 192, - 234, 172, 102, 1, 184, 102, 1, 191, 102, 1, 205, 102, 1, 233, 135, 102, - 1, 212, 65, 102, 1, 222, 34, 222, 20, 102, 1, 222, 34, 221, 233, 102, 1, - 206, 102, 1, 162, 102, 5, 223, 70, 102, 25, 5, 217, 13, 102, 25, 5, 214, - 199, 102, 25, 5, 214, 200, 221, 229, 102, 25, 5, 218, 47, 102, 25, 5, - 218, 48, 236, 21, 102, 25, 5, 223, 188, 223, 79, 102, 25, 5, 223, 188, - 223, 80, 217, 13, 102, 25, 5, 233, 136, 233, 24, 102, 25, 5, 233, 136, - 233, 25, 217, 13, 102, 25, 5, 217, 65, 102, 25, 5, 217, 66, 223, 79, 102, - 25, 5, 217, 66, 217, 13, 102, 25, 5, 217, 66, 223, 80, 217, 13, 102, 25, - 5, 225, 184, 102, 25, 5, 225, 185, 217, 13, 102, 254, 250, 254, 249, 102, - 1, 234, 251, 221, 228, 102, 1, 234, 102, 221, 228, 102, 1, 215, 34, 221, - 228, 102, 1, 245, 203, 221, 228, 102, 1, 214, 0, 221, 228, 102, 1, 210, - 107, 221, 228, 102, 1, 253, 209, 221, 228, 102, 21, 210, 86, 102, 21, + 39, 89, 5, 211, 248, 39, 89, 5, 221, 216, 39, 89, 5, 234, 161, 39, 89, 5, + 240, 233, 39, 89, 5, 247, 135, 39, 89, 5, 223, 50, 222, 188, 223, 150, + 39, 89, 5, 231, 205, 211, 72, 39, 89, 5, 235, 7, 39, 89, 5, 235, 6, 39, + 89, 5, 221, 223, 39, 89, 5, 221, 222, 39, 89, 5, 242, 10, 39, 89, 5, 251, + 31, 102, 5, 214, 200, 223, 31, 102, 5, 214, 200, 251, 2, 102, 5, 250, + 187, 102, 5, 218, 16, 102, 5, 251, 234, 102, 1, 254, 185, 102, 1, 254, + 186, 217, 14, 102, 1, 236, 30, 102, 1, 236, 31, 217, 14, 102, 1, 214, + 203, 102, 1, 214, 204, 217, 14, 102, 1, 223, 189, 223, 80, 102, 1, 223, + 189, 223, 81, 217, 14, 102, 1, 233, 137, 233, 25, 102, 1, 233, 137, 233, + 26, 217, 14, 102, 1, 245, 180, 102, 1, 254, 200, 102, 1, 226, 213, 102, + 1, 226, 214, 217, 14, 102, 1, 176, 102, 1, 235, 14, 231, 208, 102, 1, + 243, 136, 102, 1, 243, 137, 242, 162, 102, 1, 229, 78, 102, 1, 251, 34, + 102, 1, 251, 35, 233, 124, 102, 1, 235, 142, 102, 1, 235, 143, 235, 119, + 102, 1, 227, 166, 102, 1, 217, 107, 233, 77, 102, 1, 217, 107, 230, 68, + 231, 208, 102, 1, 248, 223, 230, 68, 254, 146, 102, 1, 248, 223, 230, 68, + 231, 208, 102, 1, 229, 230, 223, 153, 102, 1, 217, 106, 102, 1, 217, 107, + 217, 36, 102, 1, 248, 222, 102, 1, 248, 223, 231, 226, 102, 1, 197, 102, + 1, 190, 102, 1, 226, 91, 234, 227, 102, 1, 252, 192, 102, 1, 252, 193, + 234, 173, 102, 1, 185, 102, 1, 191, 102, 1, 205, 102, 1, 233, 136, 102, + 1, 212, 65, 102, 1, 222, 35, 222, 21, 102, 1, 222, 35, 221, 234, 102, 1, + 206, 102, 1, 162, 102, 5, 223, 71, 102, 25, 5, 217, 14, 102, 25, 5, 214, + 199, 102, 25, 5, 214, 200, 221, 230, 102, 25, 5, 218, 48, 102, 25, 5, + 218, 49, 236, 22, 102, 25, 5, 223, 189, 223, 80, 102, 25, 5, 223, 189, + 223, 81, 217, 14, 102, 25, 5, 233, 137, 233, 25, 102, 25, 5, 233, 137, + 233, 26, 217, 14, 102, 25, 5, 217, 66, 102, 25, 5, 217, 67, 223, 80, 102, + 25, 5, 217, 67, 217, 14, 102, 25, 5, 217, 67, 223, 81, 217, 14, 102, 25, + 5, 225, 185, 102, 25, 5, 225, 186, 217, 14, 102, 254, 251, 254, 250, 102, + 1, 234, 252, 221, 229, 102, 1, 234, 103, 221, 229, 102, 1, 215, 34, 221, + 229, 102, 1, 245, 204, 221, 229, 102, 1, 214, 0, 221, 229, 102, 1, 210, + 107, 221, 229, 102, 1, 253, 210, 221, 229, 102, 21, 210, 86, 102, 21, 110, 102, 21, 105, 102, 21, 158, 102, 21, 161, 102, 21, 189, 102, 21, - 194, 102, 21, 198, 102, 21, 195, 102, 21, 200, 102, 226, 29, 102, 226, - 55, 102, 211, 238, 102, 250, 236, 226, 48, 102, 250, 236, 219, 172, 102, - 250, 236, 226, 2, 102, 226, 54, 102, 28, 16, 247, 126, 102, 28, 16, 248, - 51, 102, 28, 16, 246, 64, 102, 28, 16, 248, 176, 102, 28, 16, 248, 177, - 218, 15, 102, 28, 16, 247, 205, 102, 28, 16, 248, 214, 102, 28, 16, 248, - 33, 102, 28, 16, 248, 198, 102, 28, 16, 248, 177, 243, 57, 102, 28, 16, - 38, 217, 9, 102, 28, 16, 38, 245, 141, 102, 28, 16, 38, 234, 167, 102, - 28, 16, 38, 234, 169, 102, 28, 16, 38, 235, 122, 102, 28, 16, 38, 234, - 168, 2, 235, 122, 102, 28, 16, 38, 234, 170, 2, 235, 122, 102, 28, 16, - 38, 252, 37, 102, 28, 16, 38, 242, 165, 102, 28, 16, 222, 249, 204, 246, - 74, 102, 28, 16, 222, 249, 204, 248, 212, 102, 28, 16, 222, 249, 250, 0, - 215, 111, 102, 28, 16, 222, 249, 250, 0, 217, 73, 102, 28, 16, 233, 44, - 204, 226, 43, 102, 28, 16, 233, 44, 204, 224, 139, 102, 28, 16, 233, 44, - 250, 0, 225, 38, 102, 28, 16, 233, 44, 250, 0, 225, 26, 102, 28, 16, 233, - 44, 204, 225, 61, 207, 5, 226, 26, 207, 5, 226, 39, 207, 5, 226, 35, 207, - 1, 61, 207, 1, 73, 207, 1, 70, 207, 1, 254, 243, 207, 1, 76, 207, 1, 75, - 207, 1, 245, 55, 207, 1, 176, 207, 1, 224, 88, 207, 1, 243, 135, 207, 1, - 229, 77, 207, 1, 251, 33, 207, 1, 235, 141, 207, 1, 210, 116, 207, 1, - 227, 165, 207, 1, 217, 105, 207, 1, 248, 221, 207, 1, 197, 207, 1, 190, - 207, 1, 244, 196, 207, 1, 214, 27, 207, 1, 252, 191, 207, 1, 184, 207, 1, - 191, 207, 1, 205, 207, 1, 233, 135, 207, 1, 212, 65, 207, 1, 206, 207, 1, - 211, 165, 207, 1, 162, 207, 116, 5, 226, 52, 207, 116, 5, 226, 28, 207, - 116, 5, 226, 25, 207, 25, 5, 226, 42, 207, 25, 5, 226, 24, 207, 25, 5, - 226, 46, 207, 25, 5, 226, 34, 207, 25, 5, 226, 53, 207, 25, 5, 226, 44, - 207, 5, 226, 56, 207, 5, 213, 152, 207, 116, 5, 225, 248, 184, 207, 116, - 5, 225, 248, 212, 65, 207, 1, 234, 132, 207, 1, 217, 231, 207, 21, 210, + 194, 102, 21, 198, 102, 21, 195, 102, 21, 200, 102, 226, 30, 102, 226, + 56, 102, 211, 238, 102, 250, 237, 226, 49, 102, 250, 237, 219, 173, 102, + 250, 237, 226, 3, 102, 226, 55, 102, 28, 16, 247, 127, 102, 28, 16, 248, + 52, 102, 28, 16, 246, 65, 102, 28, 16, 248, 177, 102, 28, 16, 248, 178, + 218, 16, 102, 28, 16, 247, 206, 102, 28, 16, 248, 215, 102, 28, 16, 248, + 34, 102, 28, 16, 248, 199, 102, 28, 16, 248, 178, 243, 58, 102, 28, 16, + 38, 217, 10, 102, 28, 16, 38, 245, 142, 102, 28, 16, 38, 234, 168, 102, + 28, 16, 38, 234, 170, 102, 28, 16, 38, 235, 123, 102, 28, 16, 38, 234, + 169, 2, 235, 123, 102, 28, 16, 38, 234, 171, 2, 235, 123, 102, 28, 16, + 38, 252, 38, 102, 28, 16, 38, 242, 166, 102, 28, 16, 222, 250, 204, 246, + 75, 102, 28, 16, 222, 250, 204, 248, 213, 102, 28, 16, 222, 250, 250, 1, + 215, 112, 102, 28, 16, 222, 250, 250, 1, 217, 74, 102, 28, 16, 233, 45, + 204, 226, 44, 102, 28, 16, 233, 45, 204, 224, 140, 102, 28, 16, 233, 45, + 250, 1, 225, 39, 102, 28, 16, 233, 45, 250, 1, 225, 27, 102, 28, 16, 233, + 45, 204, 225, 62, 207, 5, 226, 27, 207, 5, 226, 40, 207, 5, 226, 36, 207, + 1, 61, 207, 1, 73, 207, 1, 70, 207, 1, 254, 244, 207, 1, 76, 207, 1, 75, + 207, 1, 245, 56, 207, 1, 176, 207, 1, 224, 89, 207, 1, 243, 136, 207, 1, + 229, 78, 207, 1, 251, 34, 207, 1, 235, 142, 207, 1, 210, 116, 207, 1, + 227, 166, 207, 1, 217, 106, 207, 1, 248, 222, 207, 1, 197, 207, 1, 190, + 207, 1, 244, 197, 207, 1, 214, 27, 207, 1, 252, 192, 207, 1, 185, 207, 1, + 191, 207, 1, 205, 207, 1, 233, 136, 207, 1, 212, 65, 207, 1, 206, 207, 1, + 211, 165, 207, 1, 162, 207, 116, 5, 226, 53, 207, 116, 5, 226, 29, 207, + 116, 5, 226, 26, 207, 25, 5, 226, 43, 207, 25, 5, 226, 25, 207, 25, 5, + 226, 47, 207, 25, 5, 226, 35, 207, 25, 5, 226, 54, 207, 25, 5, 226, 45, + 207, 5, 226, 57, 207, 5, 213, 152, 207, 116, 5, 225, 249, 185, 207, 116, + 5, 225, 249, 212, 65, 207, 1, 234, 133, 207, 1, 217, 232, 207, 21, 210, 86, 207, 21, 110, 207, 21, 105, 207, 21, 158, 207, 21, 161, 207, 21, 189, - 207, 21, 194, 207, 21, 198, 207, 21, 195, 207, 21, 200, 207, 253, 175, - 207, 1, 223, 52, 207, 1, 233, 7, 207, 1, 252, 18, 207, 1, 40, 235, 23, - 207, 1, 40, 193, 252, 120, 1, 61, 252, 120, 1, 219, 164, 61, 252, 120, 1, - 162, 252, 120, 1, 219, 164, 162, 252, 120, 1, 231, 181, 162, 252, 120, 1, - 252, 191, 252, 120, 1, 234, 212, 252, 191, 252, 120, 1, 190, 252, 120, 1, - 219, 164, 190, 252, 120, 1, 197, 252, 120, 1, 231, 181, 197, 252, 120, 1, - 212, 65, 252, 120, 1, 219, 164, 212, 65, 252, 120, 1, 226, 67, 212, 65, - 252, 120, 1, 243, 135, 252, 120, 1, 219, 164, 243, 135, 252, 120, 1, 235, - 141, 252, 120, 1, 248, 221, 252, 120, 1, 205, 252, 120, 1, 219, 164, 205, - 252, 120, 1, 184, 252, 120, 1, 219, 164, 184, 252, 120, 1, 219, 26, 217, - 105, 252, 120, 1, 228, 55, 217, 105, 252, 120, 1, 206, 252, 120, 1, 219, - 164, 206, 252, 120, 1, 231, 181, 206, 252, 120, 1, 191, 252, 120, 1, 219, - 164, 191, 252, 120, 1, 229, 77, 252, 120, 1, 233, 135, 252, 120, 1, 219, - 164, 233, 135, 252, 120, 1, 227, 165, 252, 120, 1, 251, 33, 252, 120, 1, - 229, 148, 252, 120, 1, 231, 124, 252, 120, 1, 73, 252, 120, 1, 70, 252, - 120, 5, 216, 33, 252, 120, 25, 5, 75, 252, 120, 25, 5, 226, 67, 75, 252, - 120, 25, 5, 245, 209, 252, 120, 25, 5, 73, 252, 120, 25, 5, 234, 212, 73, - 252, 120, 25, 5, 76, 252, 120, 25, 5, 234, 212, 76, 252, 120, 25, 5, 70, - 252, 120, 25, 5, 104, 31, 219, 164, 206, 252, 120, 116, 5, 229, 79, 252, - 120, 116, 5, 242, 60, 252, 120, 226, 37, 252, 120, 226, 33, 252, 120, 16, - 251, 241, 229, 229, 231, 37, 252, 120, 16, 251, 241, 225, 64, 252, 120, - 16, 251, 241, 235, 48, 252, 120, 16, 251, 241, 226, 37, 196, 1, 176, 196, - 1, 234, 39, 196, 1, 234, 132, 196, 1, 243, 135, 196, 1, 242, 186, 196, 1, - 229, 77, 196, 1, 251, 33, 196, 1, 250, 157, 196, 1, 235, 141, 196, 1, - 227, 165, 196, 1, 217, 105, 196, 1, 216, 208, 196, 1, 248, 221, 196, 1, - 197, 196, 1, 190, 196, 1, 225, 42, 196, 1, 225, 147, 196, 1, 244, 196, - 196, 1, 244, 75, 196, 1, 252, 191, 196, 1, 251, 222, 196, 1, 184, 196, 1, - 230, 168, 196, 1, 215, 183, 196, 1, 215, 175, 196, 1, 246, 38, 196, 1, - 191, 196, 1, 205, 196, 1, 233, 135, 196, 1, 162, 196, 1, 241, 153, 196, - 1, 214, 27, 196, 1, 206, 196, 1, 220, 102, 196, 1, 212, 65, 196, 1, 61, - 196, 218, 73, 1, 191, 196, 218, 73, 1, 205, 196, 25, 5, 255, 73, 196, 25, - 5, 73, 196, 25, 5, 76, 196, 25, 5, 226, 183, 196, 25, 5, 70, 196, 25, 5, - 214, 118, 196, 25, 5, 75, 196, 116, 5, 235, 23, 196, 116, 5, 193, 196, - 116, 5, 156, 196, 116, 5, 230, 25, 196, 116, 5, 226, 105, 196, 116, 5, - 153, 196, 116, 5, 217, 152, 196, 116, 5, 227, 142, 196, 116, 5, 234, 230, - 196, 5, 223, 150, 196, 5, 227, 205, 196, 224, 141, 217, 103, 196, 224, - 141, 227, 152, 216, 120, 217, 103, 196, 224, 141, 250, 164, 196, 224, - 141, 215, 170, 250, 164, 196, 224, 141, 215, 169, 196, 21, 210, 86, 196, + 207, 21, 194, 207, 21, 198, 207, 21, 195, 207, 21, 200, 207, 253, 176, + 207, 1, 223, 53, 207, 1, 233, 8, 207, 1, 252, 19, 207, 1, 40, 235, 24, + 207, 1, 40, 193, 252, 121, 1, 61, 252, 121, 1, 219, 165, 61, 252, 121, 1, + 162, 252, 121, 1, 219, 165, 162, 252, 121, 1, 231, 182, 162, 252, 121, 1, + 252, 192, 252, 121, 1, 234, 213, 252, 192, 252, 121, 1, 190, 252, 121, 1, + 219, 165, 190, 252, 121, 1, 197, 252, 121, 1, 231, 182, 197, 252, 121, 1, + 212, 65, 252, 121, 1, 219, 165, 212, 65, 252, 121, 1, 226, 68, 212, 65, + 252, 121, 1, 243, 136, 252, 121, 1, 219, 165, 243, 136, 252, 121, 1, 235, + 142, 252, 121, 1, 248, 222, 252, 121, 1, 205, 252, 121, 1, 219, 165, 205, + 252, 121, 1, 185, 252, 121, 1, 219, 165, 185, 252, 121, 1, 219, 27, 217, + 106, 252, 121, 1, 228, 56, 217, 106, 252, 121, 1, 206, 252, 121, 1, 219, + 165, 206, 252, 121, 1, 231, 182, 206, 252, 121, 1, 191, 252, 121, 1, 219, + 165, 191, 252, 121, 1, 229, 78, 252, 121, 1, 233, 136, 252, 121, 1, 219, + 165, 233, 136, 252, 121, 1, 227, 166, 252, 121, 1, 251, 34, 252, 121, 1, + 229, 149, 252, 121, 1, 231, 125, 252, 121, 1, 73, 252, 121, 1, 70, 252, + 121, 5, 216, 34, 252, 121, 25, 5, 75, 252, 121, 25, 5, 226, 68, 75, 252, + 121, 25, 5, 245, 210, 252, 121, 25, 5, 73, 252, 121, 25, 5, 234, 213, 73, + 252, 121, 25, 5, 76, 252, 121, 25, 5, 234, 213, 76, 252, 121, 25, 5, 70, + 252, 121, 25, 5, 104, 31, 219, 165, 206, 252, 121, 116, 5, 229, 80, 252, + 121, 116, 5, 242, 61, 252, 121, 226, 38, 252, 121, 226, 34, 252, 121, 16, + 251, 242, 229, 230, 231, 38, 252, 121, 16, 251, 242, 225, 65, 252, 121, + 16, 251, 242, 235, 49, 252, 121, 16, 251, 242, 226, 38, 196, 1, 176, 196, + 1, 234, 40, 196, 1, 234, 133, 196, 1, 243, 136, 196, 1, 242, 187, 196, 1, + 229, 78, 196, 1, 251, 34, 196, 1, 250, 158, 196, 1, 235, 142, 196, 1, + 227, 166, 196, 1, 217, 106, 196, 1, 216, 209, 196, 1, 248, 222, 196, 1, + 197, 196, 1, 190, 196, 1, 225, 43, 196, 1, 225, 148, 196, 1, 244, 197, + 196, 1, 244, 76, 196, 1, 252, 192, 196, 1, 251, 223, 196, 1, 185, 196, 1, + 230, 169, 196, 1, 215, 184, 196, 1, 215, 176, 196, 1, 246, 39, 196, 1, + 191, 196, 1, 205, 196, 1, 233, 136, 196, 1, 162, 196, 1, 241, 154, 196, + 1, 214, 27, 196, 1, 206, 196, 1, 220, 103, 196, 1, 212, 65, 196, 1, 61, + 196, 218, 74, 1, 191, 196, 218, 74, 1, 205, 196, 25, 5, 255, 74, 196, 25, + 5, 73, 196, 25, 5, 76, 196, 25, 5, 226, 184, 196, 25, 5, 70, 196, 25, 5, + 214, 118, 196, 25, 5, 75, 196, 116, 5, 235, 24, 196, 116, 5, 193, 196, + 116, 5, 156, 196, 116, 5, 230, 26, 196, 116, 5, 226, 106, 196, 116, 5, + 153, 196, 116, 5, 217, 153, 196, 116, 5, 227, 143, 196, 116, 5, 234, 231, + 196, 5, 223, 151, 196, 5, 227, 206, 196, 224, 142, 217, 104, 196, 224, + 142, 227, 153, 216, 121, 217, 104, 196, 224, 142, 250, 165, 196, 224, + 142, 215, 171, 250, 165, 196, 224, 142, 215, 170, 196, 21, 210, 86, 196, 21, 110, 196, 21, 105, 196, 21, 158, 196, 21, 161, 196, 21, 189, 196, 21, - 194, 196, 21, 198, 196, 21, 195, 196, 21, 200, 196, 1, 215, 156, 196, 1, - 215, 144, 196, 1, 248, 135, 226, 210, 250, 103, 21, 210, 86, 226, 210, - 250, 103, 21, 110, 226, 210, 250, 103, 21, 105, 226, 210, 250, 103, 21, - 158, 226, 210, 250, 103, 21, 161, 226, 210, 250, 103, 21, 189, 226, 210, - 250, 103, 21, 194, 226, 210, 250, 103, 21, 198, 226, 210, 250, 103, 21, - 195, 226, 210, 250, 103, 21, 200, 226, 210, 250, 103, 1, 233, 135, 226, - 210, 250, 103, 1, 253, 206, 226, 210, 250, 103, 1, 254, 216, 226, 210, - 250, 103, 1, 254, 115, 226, 210, 250, 103, 1, 254, 178, 226, 210, 250, - 103, 1, 233, 134, 226, 210, 250, 103, 1, 255, 35, 226, 210, 250, 103, 1, - 255, 36, 226, 210, 250, 103, 1, 255, 34, 226, 210, 250, 103, 1, 255, 29, - 226, 210, 250, 103, 1, 232, 241, 226, 210, 250, 103, 1, 235, 171, 226, - 210, 250, 103, 1, 236, 34, 226, 210, 250, 103, 1, 235, 190, 226, 210, - 250, 103, 1, 235, 179, 226, 210, 250, 103, 1, 232, 98, 226, 210, 250, - 103, 1, 214, 221, 226, 210, 250, 103, 1, 214, 219, 226, 210, 250, 103, 1, - 214, 168, 226, 210, 250, 103, 1, 214, 111, 226, 210, 250, 103, 1, 233, - 58, 226, 210, 250, 103, 1, 245, 108, 226, 210, 250, 103, 1, 245, 212, - 226, 210, 250, 103, 1, 245, 150, 226, 210, 250, 103, 1, 245, 86, 226, - 210, 250, 103, 1, 232, 156, 226, 210, 250, 103, 1, 226, 137, 226, 210, - 250, 103, 1, 226, 252, 226, 210, 250, 103, 1, 226, 125, 226, 210, 250, - 103, 1, 226, 222, 226, 210, 250, 103, 230, 103, 215, 121, 226, 210, 250, - 103, 243, 130, 215, 122, 226, 210, 250, 103, 230, 101, 215, 122, 226, - 210, 250, 103, 223, 92, 226, 210, 250, 103, 225, 145, 226, 210, 250, 103, - 254, 208, 226, 210, 250, 103, 224, 141, 230, 98, 226, 210, 250, 103, 224, - 141, 52, 230, 98, 207, 224, 141, 251, 241, 218, 8, 207, 224, 141, 251, - 241, 226, 38, 207, 224, 141, 251, 241, 224, 129, 207, 224, 141, 251, 241, - 251, 19, 207, 224, 141, 251, 241, 233, 8, 221, 225, 207, 224, 141, 251, - 241, 235, 13, 221, 225, 207, 224, 141, 251, 241, 248, 222, 221, 225, 207, - 224, 141, 251, 241, 252, 192, 221, 225, 213, 252, 138, 234, 210, 213, - 252, 138, 220, 77, 213, 252, 138, 224, 198, 213, 252, 5, 228, 209, 213, - 252, 5, 211, 80, 230, 222, 218, 0, 213, 252, 138, 211, 80, 254, 213, 235, - 243, 218, 0, 213, 252, 138, 211, 80, 235, 243, 218, 0, 213, 252, 138, - 211, 80, 234, 198, 235, 243, 218, 0, 213, 252, 138, 251, 2, 51, 213, 252, - 138, 211, 80, 234, 198, 235, 243, 218, 1, 221, 197, 213, 252, 138, 52, - 218, 0, 213, 252, 138, 215, 211, 218, 0, 213, 252, 138, 234, 198, 254, - 77, 213, 252, 138, 59, 51, 213, 252, 138, 113, 170, 51, 213, 252, 138, - 134, 170, 51, 213, 252, 138, 222, 240, 234, 209, 235, 243, 218, 0, 213, - 252, 138, 253, 204, 235, 243, 218, 0, 213, 252, 5, 213, 148, 218, 0, 213, - 252, 5, 213, 148, 214, 216, 213, 252, 5, 223, 49, 213, 148, 214, 216, - 213, 252, 5, 213, 148, 254, 77, 213, 252, 5, 223, 49, 213, 148, 254, 77, - 213, 252, 5, 213, 148, 214, 217, 2, 217, 77, 213, 252, 5, 213, 148, 254, - 78, 2, 217, 77, 213, 252, 5, 254, 76, 254, 91, 213, 252, 5, 254, 76, 252, - 166, 213, 252, 5, 254, 76, 214, 20, 213, 252, 5, 254, 76, 214, 21, 2, - 217, 77, 213, 252, 5, 216, 68, 213, 252, 5, 241, 191, 199, 254, 75, 213, - 252, 5, 199, 254, 75, 213, 252, 5, 222, 142, 199, 254, 75, 213, 252, 5, - 254, 76, 214, 223, 230, 90, 213, 252, 5, 254, 20, 213, 252, 5, 222, 187, - 254, 20, 213, 252, 138, 251, 2, 48, 213, 252, 5, 235, 102, 213, 252, 5, - 214, 161, 7, 1, 4, 6, 61, 7, 1, 4, 6, 254, 243, 7, 4, 1, 215, 94, 254, - 243, 7, 1, 4, 6, 252, 134, 253, 158, 7, 1, 4, 6, 251, 66, 7, 1, 4, 6, - 249, 60, 7, 1, 4, 6, 245, 59, 7, 1, 4, 6, 75, 7, 4, 1, 215, 94, 204, 75, - 7, 4, 1, 215, 94, 73, 7, 1, 4, 6, 235, 144, 7, 1, 4, 6, 235, 23, 7, 1, 4, - 6, 233, 149, 2, 91, 7, 1, 4, 6, 193, 7, 1, 4, 6, 223, 49, 230, 25, 7, 1, - 4, 6, 76, 7, 1, 4, 6, 204, 76, 7, 4, 1, 219, 187, 76, 7, 4, 1, 219, 187, - 204, 76, 7, 4, 1, 219, 187, 144, 2, 91, 7, 4, 1, 215, 94, 226, 234, 7, 1, - 4, 6, 226, 134, 7, 4, 1, 216, 14, 163, 76, 7, 4, 1, 251, 175, 163, 76, 7, - 1, 4, 6, 226, 105, 7, 1, 4, 6, 223, 49, 153, 7, 1, 4, 6, 215, 94, 153, 7, - 1, 4, 6, 217, 152, 7, 1, 4, 6, 70, 7, 4, 1, 219, 187, 70, 7, 4, 1, 219, - 187, 248, 0, 70, 7, 4, 1, 219, 187, 215, 94, 193, 7, 1, 4, 6, 214, 105, - 7, 1, 4, 6, 212, 98, 7, 1, 4, 6, 210, 159, 7, 1, 4, 6, 245, 8, 7, 1, 213, - 135, 233, 82, 218, 250, 7, 1, 254, 196, 26, 1, 4, 6, 243, 107, 26, 1, 4, - 6, 233, 98, 26, 1, 4, 6, 225, 108, 26, 1, 4, 6, 223, 37, 26, 1, 4, 6, - 224, 161, 33, 1, 4, 6, 245, 174, 58, 1, 6, 61, 58, 1, 6, 254, 243, 58, 1, - 6, 253, 158, 58, 1, 6, 252, 134, 253, 158, 58, 1, 6, 249, 60, 58, 1, 6, - 75, 58, 1, 6, 223, 49, 75, 58, 1, 6, 243, 202, 58, 1, 6, 242, 60, 58, 1, - 6, 73, 58, 1, 6, 235, 144, 58, 1, 6, 235, 23, 58, 1, 6, 156, 58, 1, 6, - 193, 58, 1, 6, 230, 25, 58, 1, 6, 223, 49, 230, 25, 58, 1, 6, 76, 58, 1, - 6, 226, 134, 58, 1, 6, 226, 105, 58, 1, 6, 153, 58, 1, 6, 217, 152, 58, + 194, 196, 21, 198, 196, 21, 195, 196, 21, 200, 196, 1, 215, 157, 196, 1, + 215, 145, 196, 1, 248, 136, 226, 211, 250, 104, 21, 210, 86, 226, 211, + 250, 104, 21, 110, 226, 211, 250, 104, 21, 105, 226, 211, 250, 104, 21, + 158, 226, 211, 250, 104, 21, 161, 226, 211, 250, 104, 21, 189, 226, 211, + 250, 104, 21, 194, 226, 211, 250, 104, 21, 198, 226, 211, 250, 104, 21, + 195, 226, 211, 250, 104, 21, 200, 226, 211, 250, 104, 1, 233, 136, 226, + 211, 250, 104, 1, 253, 207, 226, 211, 250, 104, 1, 254, 217, 226, 211, + 250, 104, 1, 254, 116, 226, 211, 250, 104, 1, 254, 179, 226, 211, 250, + 104, 1, 233, 135, 226, 211, 250, 104, 1, 255, 36, 226, 211, 250, 104, 1, + 255, 37, 226, 211, 250, 104, 1, 255, 35, 226, 211, 250, 104, 1, 255, 30, + 226, 211, 250, 104, 1, 232, 242, 226, 211, 250, 104, 1, 235, 172, 226, + 211, 250, 104, 1, 236, 35, 226, 211, 250, 104, 1, 235, 191, 226, 211, + 250, 104, 1, 235, 180, 226, 211, 250, 104, 1, 232, 99, 226, 211, 250, + 104, 1, 214, 221, 226, 211, 250, 104, 1, 214, 219, 226, 211, 250, 104, 1, + 214, 168, 226, 211, 250, 104, 1, 214, 111, 226, 211, 250, 104, 1, 233, + 59, 226, 211, 250, 104, 1, 245, 109, 226, 211, 250, 104, 1, 245, 213, + 226, 211, 250, 104, 1, 245, 151, 226, 211, 250, 104, 1, 245, 87, 226, + 211, 250, 104, 1, 232, 157, 226, 211, 250, 104, 1, 226, 138, 226, 211, + 250, 104, 1, 226, 253, 226, 211, 250, 104, 1, 226, 126, 226, 211, 250, + 104, 1, 226, 223, 226, 211, 250, 104, 230, 104, 215, 122, 226, 211, 250, + 104, 243, 131, 215, 123, 226, 211, 250, 104, 230, 102, 215, 123, 226, + 211, 250, 104, 223, 93, 226, 211, 250, 104, 225, 146, 226, 211, 250, 104, + 254, 209, 226, 211, 250, 104, 224, 142, 230, 99, 226, 211, 250, 104, 224, + 142, 52, 230, 99, 207, 224, 142, 251, 242, 218, 9, 207, 224, 142, 251, + 242, 226, 39, 207, 224, 142, 251, 242, 224, 130, 207, 224, 142, 251, 242, + 251, 20, 207, 224, 142, 251, 242, 233, 9, 221, 226, 207, 224, 142, 251, + 242, 235, 14, 221, 226, 207, 224, 142, 251, 242, 248, 223, 221, 226, 207, + 224, 142, 251, 242, 252, 193, 221, 226, 213, 252, 138, 234, 211, 213, + 252, 138, 220, 78, 213, 252, 138, 224, 199, 213, 252, 5, 228, 210, 213, + 252, 5, 211, 80, 230, 223, 218, 1, 213, 252, 138, 211, 80, 254, 214, 235, + 244, 218, 1, 213, 252, 138, 211, 80, 235, 244, 218, 1, 213, 252, 138, + 211, 80, 234, 199, 235, 244, 218, 1, 213, 252, 138, 251, 3, 51, 213, 252, + 138, 211, 80, 234, 199, 235, 244, 218, 2, 221, 198, 213, 252, 138, 52, + 218, 1, 213, 252, 138, 215, 212, 218, 1, 213, 252, 138, 234, 199, 254, + 78, 213, 252, 138, 59, 51, 213, 252, 138, 113, 170, 51, 213, 252, 138, + 134, 170, 51, 213, 252, 138, 222, 241, 234, 210, 235, 244, 218, 1, 213, + 252, 138, 253, 205, 235, 244, 218, 1, 213, 252, 5, 213, 148, 218, 1, 213, + 252, 5, 213, 148, 214, 216, 213, 252, 5, 223, 50, 213, 148, 214, 216, + 213, 252, 5, 213, 148, 254, 78, 213, 252, 5, 223, 50, 213, 148, 254, 78, + 213, 252, 5, 213, 148, 214, 217, 2, 217, 78, 213, 252, 5, 213, 148, 254, + 79, 2, 217, 78, 213, 252, 5, 254, 77, 254, 92, 213, 252, 5, 254, 77, 252, + 167, 213, 252, 5, 254, 77, 214, 20, 213, 252, 5, 254, 77, 214, 21, 2, + 217, 78, 213, 252, 5, 216, 69, 213, 252, 5, 241, 192, 199, 254, 76, 213, + 252, 5, 199, 254, 76, 213, 252, 5, 222, 143, 199, 254, 76, 213, 252, 5, + 254, 77, 214, 223, 230, 91, 213, 252, 5, 254, 21, 213, 252, 5, 222, 188, + 254, 21, 213, 252, 138, 251, 3, 48, 213, 252, 5, 235, 103, 213, 252, 5, + 214, 161, 7, 1, 4, 6, 61, 7, 1, 4, 6, 254, 244, 7, 4, 1, 215, 94, 254, + 244, 7, 1, 4, 6, 252, 135, 253, 159, 7, 1, 4, 6, 251, 67, 7, 1, 4, 6, + 249, 61, 7, 1, 4, 6, 245, 60, 7, 1, 4, 6, 75, 7, 4, 1, 215, 94, 204, 75, + 7, 4, 1, 215, 94, 73, 7, 1, 4, 6, 235, 145, 7, 1, 4, 6, 235, 24, 7, 1, 4, + 6, 233, 150, 2, 91, 7, 1, 4, 6, 193, 7, 1, 4, 6, 223, 50, 230, 26, 7, 1, + 4, 6, 76, 7, 1, 4, 6, 204, 76, 7, 4, 1, 219, 188, 76, 7, 4, 1, 219, 188, + 204, 76, 7, 4, 1, 219, 188, 144, 2, 91, 7, 4, 1, 215, 94, 226, 235, 7, 1, + 4, 6, 226, 135, 7, 4, 1, 216, 15, 163, 76, 7, 4, 1, 251, 176, 163, 76, 7, + 1, 4, 6, 226, 106, 7, 1, 4, 6, 223, 50, 153, 7, 1, 4, 6, 215, 94, 153, 7, + 1, 4, 6, 217, 153, 7, 1, 4, 6, 70, 7, 4, 1, 219, 188, 70, 7, 4, 1, 219, + 188, 248, 1, 70, 7, 4, 1, 219, 188, 215, 94, 193, 7, 1, 4, 6, 214, 105, + 7, 1, 4, 6, 212, 98, 7, 1, 4, 6, 210, 159, 7, 1, 4, 6, 245, 9, 7, 1, 213, + 135, 233, 83, 218, 251, 7, 1, 254, 197, 26, 1, 4, 6, 243, 108, 26, 1, 4, + 6, 233, 99, 26, 1, 4, 6, 225, 109, 26, 1, 4, 6, 223, 38, 26, 1, 4, 6, + 224, 162, 33, 1, 4, 6, 245, 175, 58, 1, 6, 61, 58, 1, 6, 254, 244, 58, 1, + 6, 253, 159, 58, 1, 6, 252, 135, 253, 159, 58, 1, 6, 249, 61, 58, 1, 6, + 75, 58, 1, 6, 223, 50, 75, 58, 1, 6, 243, 203, 58, 1, 6, 242, 61, 58, 1, + 6, 73, 58, 1, 6, 235, 145, 58, 1, 6, 235, 24, 58, 1, 6, 156, 58, 1, 6, + 193, 58, 1, 6, 230, 26, 58, 1, 6, 223, 50, 230, 26, 58, 1, 6, 76, 58, 1, + 6, 226, 135, 58, 1, 6, 226, 106, 58, 1, 6, 153, 58, 1, 6, 217, 153, 58, 1, 6, 70, 58, 1, 6, 212, 98, 58, 1, 4, 61, 58, 1, 4, 215, 94, 61, 58, 1, - 4, 254, 143, 58, 1, 4, 215, 94, 254, 243, 58, 1, 4, 253, 158, 58, 1, 4, - 249, 60, 58, 1, 4, 75, 58, 1, 4, 221, 195, 58, 1, 4, 204, 75, 58, 1, 4, - 215, 94, 204, 75, 58, 1, 4, 243, 202, 58, 1, 4, 215, 94, 73, 58, 1, 4, - 235, 23, 58, 1, 4, 193, 58, 1, 4, 245, 138, 58, 1, 4, 76, 58, 1, 4, 204, - 76, 58, 1, 4, 216, 14, 163, 76, 58, 1, 4, 251, 175, 163, 76, 58, 1, 4, - 226, 105, 58, 1, 4, 217, 152, 58, 1, 4, 70, 58, 1, 4, 219, 187, 70, 58, - 1, 4, 215, 94, 193, 58, 1, 4, 214, 105, 58, 1, 4, 254, 196, 58, 1, 4, - 252, 26, 58, 1, 4, 26, 243, 107, 58, 1, 4, 248, 54, 58, 1, 4, 26, 225, - 133, 58, 1, 4, 250, 110, 7, 218, 65, 4, 1, 73, 7, 218, 65, 4, 1, 153, 7, - 218, 65, 4, 1, 70, 7, 218, 65, 4, 1, 214, 105, 26, 218, 65, 4, 1, 252, - 26, 26, 218, 65, 4, 1, 243, 107, 26, 218, 65, 4, 1, 223, 37, 26, 218, 65, - 4, 1, 225, 133, 26, 218, 65, 4, 1, 250, 110, 7, 4, 1, 214, 214, 7, 4, 1, - 57, 2, 230, 224, 182, 7, 4, 1, 249, 61, 2, 230, 224, 182, 7, 4, 1, 245, - 7, 2, 230, 224, 182, 7, 4, 1, 232, 50, 2, 230, 224, 182, 7, 4, 1, 230, - 26, 2, 230, 224, 182, 7, 4, 1, 226, 106, 2, 230, 224, 182, 7, 4, 1, 223, - 224, 2, 230, 224, 182, 7, 4, 1, 223, 224, 2, 244, 88, 22, 230, 224, 182, - 7, 4, 1, 222, 92, 2, 230, 224, 182, 7, 4, 1, 217, 153, 2, 230, 224, 182, - 7, 4, 1, 210, 160, 2, 230, 224, 182, 7, 4, 1, 215, 94, 243, 202, 58, 1, - 33, 245, 150, 7, 4, 1, 235, 213, 243, 202, 7, 4, 1, 216, 211, 2, 218, - 107, 7, 4, 6, 1, 240, 154, 2, 91, 7, 4, 1, 235, 186, 2, 91, 7, 4, 1, 226, - 106, 2, 91, 7, 4, 6, 1, 104, 2, 91, 7, 4, 1, 214, 158, 2, 91, 7, 4, 1, - 57, 2, 226, 66, 103, 7, 4, 1, 249, 61, 2, 226, 66, 103, 7, 4, 1, 245, 7, - 2, 226, 66, 103, 7, 4, 1, 243, 203, 2, 226, 66, 103, 7, 4, 1, 235, 24, 2, - 226, 66, 103, 7, 4, 1, 233, 149, 2, 226, 66, 103, 7, 4, 1, 232, 50, 2, - 226, 66, 103, 7, 4, 1, 230, 26, 2, 226, 66, 103, 7, 4, 1, 226, 106, 2, - 226, 66, 103, 7, 4, 1, 223, 224, 2, 226, 66, 103, 7, 4, 1, 222, 92, 2, - 226, 66, 103, 7, 4, 1, 245, 76, 2, 226, 66, 103, 7, 4, 1, 214, 106, 2, - 226, 66, 103, 7, 4, 1, 211, 179, 2, 226, 66, 103, 7, 4, 1, 210, 160, 2, - 226, 66, 103, 7, 4, 1, 115, 2, 223, 55, 103, 7, 4, 1, 254, 144, 2, 223, - 55, 103, 7, 4, 1, 249, 61, 2, 241, 52, 22, 217, 77, 7, 4, 1, 160, 2, 223, - 55, 103, 7, 4, 1, 204, 160, 2, 223, 55, 103, 7, 4, 1, 223, 49, 204, 160, - 2, 223, 55, 103, 7, 4, 1, 221, 196, 2, 223, 55, 103, 7, 4, 1, 240, 154, - 2, 223, 55, 103, 7, 4, 1, 204, 144, 2, 223, 55, 103, 7, 4, 1, 245, 76, 2, - 223, 55, 103, 7, 4, 1, 104, 2, 223, 55, 103, 7, 4, 1, 245, 9, 2, 223, 55, - 103, 58, 1, 4, 215, 94, 254, 143, 58, 1, 4, 251, 66, 58, 1, 4, 251, 67, - 2, 249, 100, 58, 1, 4, 245, 59, 58, 1, 4, 223, 49, 204, 75, 58, 1, 4, - 245, 6, 58, 1, 4, 247, 119, 235, 145, 2, 91, 58, 1, 4, 119, 243, 202, 58, - 1, 4, 215, 94, 242, 60, 58, 1, 4, 240, 154, 2, 91, 58, 1, 4, 235, 185, - 58, 1, 4, 6, 73, 58, 1, 4, 6, 240, 154, 2, 91, 58, 1, 4, 235, 145, 2, - 249, 127, 58, 1, 4, 233, 149, 2, 223, 55, 103, 58, 1, 4, 233, 149, 2, - 226, 66, 103, 58, 1, 4, 6, 156, 58, 1, 4, 232, 50, 2, 103, 58, 1, 4, 215, - 94, 232, 50, 2, 199, 233, 36, 58, 1, 4, 230, 26, 2, 43, 103, 58, 1, 4, - 230, 26, 2, 223, 55, 103, 58, 1, 4, 6, 230, 25, 58, 1, 4, 252, 134, 76, - 58, 1, 4, 225, 133, 58, 1, 4, 222, 92, 2, 103, 58, 1, 4, 245, 75, 58, 1, - 4, 217, 153, 2, 226, 66, 103, 58, 1, 4, 104, 130, 58, 1, 4, 214, 157, 58, + 4, 254, 144, 58, 1, 4, 215, 94, 254, 244, 58, 1, 4, 253, 159, 58, 1, 4, + 249, 61, 58, 1, 4, 75, 58, 1, 4, 221, 196, 58, 1, 4, 204, 75, 58, 1, 4, + 215, 94, 204, 75, 58, 1, 4, 243, 203, 58, 1, 4, 215, 94, 73, 58, 1, 4, + 235, 24, 58, 1, 4, 193, 58, 1, 4, 245, 139, 58, 1, 4, 76, 58, 1, 4, 204, + 76, 58, 1, 4, 216, 15, 163, 76, 58, 1, 4, 251, 176, 163, 76, 58, 1, 4, + 226, 106, 58, 1, 4, 217, 153, 58, 1, 4, 70, 58, 1, 4, 219, 188, 70, 58, + 1, 4, 215, 94, 193, 58, 1, 4, 214, 105, 58, 1, 4, 254, 197, 58, 1, 4, + 252, 27, 58, 1, 4, 26, 243, 108, 58, 1, 4, 248, 55, 58, 1, 4, 26, 225, + 134, 58, 1, 4, 250, 111, 7, 218, 66, 4, 1, 73, 7, 218, 66, 4, 1, 153, 7, + 218, 66, 4, 1, 70, 7, 218, 66, 4, 1, 214, 105, 26, 218, 66, 4, 1, 252, + 27, 26, 218, 66, 4, 1, 243, 108, 26, 218, 66, 4, 1, 223, 38, 26, 218, 66, + 4, 1, 225, 134, 26, 218, 66, 4, 1, 250, 111, 7, 4, 1, 214, 214, 7, 4, 1, + 57, 2, 230, 225, 183, 7, 4, 1, 249, 62, 2, 230, 225, 183, 7, 4, 1, 245, + 8, 2, 230, 225, 183, 7, 4, 1, 232, 51, 2, 230, 225, 183, 7, 4, 1, 230, + 27, 2, 230, 225, 183, 7, 4, 1, 226, 107, 2, 230, 225, 183, 7, 4, 1, 223, + 225, 2, 230, 225, 183, 7, 4, 1, 223, 225, 2, 244, 89, 22, 230, 225, 183, + 7, 4, 1, 222, 93, 2, 230, 225, 183, 7, 4, 1, 217, 154, 2, 230, 225, 183, + 7, 4, 1, 210, 160, 2, 230, 225, 183, 7, 4, 1, 215, 94, 243, 203, 58, 1, + 33, 245, 151, 7, 4, 1, 235, 214, 243, 203, 7, 4, 1, 216, 212, 2, 218, + 108, 7, 4, 6, 1, 240, 155, 2, 91, 7, 4, 1, 235, 187, 2, 91, 7, 4, 1, 226, + 107, 2, 91, 7, 4, 6, 1, 104, 2, 91, 7, 4, 1, 214, 158, 2, 91, 7, 4, 1, + 57, 2, 226, 67, 103, 7, 4, 1, 249, 62, 2, 226, 67, 103, 7, 4, 1, 245, 8, + 2, 226, 67, 103, 7, 4, 1, 243, 204, 2, 226, 67, 103, 7, 4, 1, 235, 25, 2, + 226, 67, 103, 7, 4, 1, 233, 150, 2, 226, 67, 103, 7, 4, 1, 232, 51, 2, + 226, 67, 103, 7, 4, 1, 230, 27, 2, 226, 67, 103, 7, 4, 1, 226, 107, 2, + 226, 67, 103, 7, 4, 1, 223, 225, 2, 226, 67, 103, 7, 4, 1, 222, 93, 2, + 226, 67, 103, 7, 4, 1, 245, 77, 2, 226, 67, 103, 7, 4, 1, 214, 106, 2, + 226, 67, 103, 7, 4, 1, 211, 179, 2, 226, 67, 103, 7, 4, 1, 210, 160, 2, + 226, 67, 103, 7, 4, 1, 115, 2, 223, 56, 103, 7, 4, 1, 254, 145, 2, 223, + 56, 103, 7, 4, 1, 249, 62, 2, 241, 53, 22, 217, 78, 7, 4, 1, 160, 2, 223, + 56, 103, 7, 4, 1, 204, 160, 2, 223, 56, 103, 7, 4, 1, 223, 50, 204, 160, + 2, 223, 56, 103, 7, 4, 1, 221, 197, 2, 223, 56, 103, 7, 4, 1, 240, 155, + 2, 223, 56, 103, 7, 4, 1, 204, 144, 2, 223, 56, 103, 7, 4, 1, 245, 77, 2, + 223, 56, 103, 7, 4, 1, 104, 2, 223, 56, 103, 7, 4, 1, 245, 10, 2, 223, + 56, 103, 58, 1, 4, 215, 94, 254, 144, 58, 1, 4, 251, 67, 58, 1, 4, 251, + 68, 2, 249, 101, 58, 1, 4, 245, 60, 58, 1, 4, 223, 50, 204, 75, 58, 1, 4, + 245, 7, 58, 1, 4, 247, 120, 235, 146, 2, 91, 58, 1, 4, 119, 243, 203, 58, + 1, 4, 215, 94, 242, 61, 58, 1, 4, 240, 155, 2, 91, 58, 1, 4, 235, 186, + 58, 1, 4, 6, 73, 58, 1, 4, 6, 240, 155, 2, 91, 58, 1, 4, 235, 146, 2, + 249, 128, 58, 1, 4, 233, 150, 2, 223, 56, 103, 58, 1, 4, 233, 150, 2, + 226, 67, 103, 58, 1, 4, 6, 156, 58, 1, 4, 232, 51, 2, 103, 58, 1, 4, 215, + 94, 232, 51, 2, 199, 233, 37, 58, 1, 4, 230, 27, 2, 43, 103, 58, 1, 4, + 230, 27, 2, 223, 56, 103, 58, 1, 4, 6, 230, 26, 58, 1, 4, 252, 135, 76, + 58, 1, 4, 225, 134, 58, 1, 4, 222, 93, 2, 103, 58, 1, 4, 245, 76, 58, 1, + 4, 217, 154, 2, 226, 67, 103, 58, 1, 4, 104, 130, 58, 1, 4, 214, 157, 58, 1, 4, 6, 70, 58, 1, 4, 214, 106, 2, 103, 58, 1, 4, 215, 94, 214, 105, 58, - 1, 4, 210, 159, 58, 1, 4, 210, 160, 2, 223, 55, 103, 58, 1, 4, 210, 160, - 2, 249, 100, 58, 1, 4, 245, 8, 58, 1, 4, 216, 179, 38, 246, 118, 242, - 137, 255, 14, 38, 246, 118, 255, 3, 255, 14, 38, 219, 69, 51, 38, 218, 6, - 78, 38, 231, 231, 38, 242, 134, 38, 231, 229, 38, 255, 1, 38, 242, 135, - 38, 255, 2, 38, 7, 4, 1, 223, 224, 51, 38, 251, 145, 38, 231, 230, 38, - 52, 250, 31, 48, 38, 226, 225, 48, 38, 210, 35, 51, 38, 235, 172, 51, 38, - 214, 151, 48, 38, 214, 134, 48, 38, 7, 4, 1, 244, 63, 204, 115, 48, 38, - 7, 4, 1, 254, 243, 38, 7, 4, 1, 254, 73, 38, 7, 4, 1, 253, 176, 38, 7, 4, - 1, 251, 67, 250, 183, 38, 7, 4, 1, 235, 213, 249, 60, 38, 7, 4, 1, 245, - 59, 38, 7, 4, 1, 243, 202, 38, 7, 1, 4, 6, 243, 202, 38, 7, 4, 1, 235, - 23, 38, 7, 4, 1, 156, 38, 7, 1, 4, 6, 156, 38, 7, 1, 4, 6, 193, 38, 7, 4, - 1, 230, 25, 38, 7, 1, 4, 6, 230, 25, 38, 7, 1, 4, 6, 153, 38, 7, 4, 1, - 223, 224, 222, 186, 38, 7, 4, 1, 222, 91, 38, 7, 4, 1, 199, 222, 91, 38, - 7, 4, 1, 210, 159, 38, 52, 235, 193, 251, 147, 51, 38, 254, 148, 128, - 216, 42, 51, 38, 43, 253, 250, 48, 38, 44, 253, 250, 22, 124, 253, 250, - 51, 7, 6, 1, 115, 2, 222, 234, 51, 7, 4, 1, 115, 2, 222, 234, 51, 7, 6, + 1, 4, 210, 159, 58, 1, 4, 210, 160, 2, 223, 56, 103, 58, 1, 4, 210, 160, + 2, 249, 101, 58, 1, 4, 245, 9, 58, 1, 4, 216, 180, 38, 246, 119, 242, + 138, 255, 15, 38, 246, 119, 255, 4, 255, 15, 38, 219, 70, 51, 38, 218, 7, + 78, 38, 231, 232, 38, 242, 135, 38, 231, 230, 38, 255, 2, 38, 242, 136, + 38, 255, 3, 38, 7, 4, 1, 223, 225, 51, 38, 251, 146, 38, 231, 231, 38, + 52, 250, 32, 48, 38, 226, 226, 48, 38, 210, 35, 51, 38, 235, 173, 51, 38, + 214, 151, 48, 38, 214, 134, 48, 38, 7, 4, 1, 244, 64, 204, 115, 48, 38, + 7, 4, 1, 254, 244, 38, 7, 4, 1, 254, 74, 38, 7, 4, 1, 253, 177, 38, 7, 4, + 1, 251, 68, 250, 184, 38, 7, 4, 1, 235, 214, 249, 61, 38, 7, 4, 1, 245, + 60, 38, 7, 4, 1, 243, 203, 38, 7, 1, 4, 6, 243, 203, 38, 7, 4, 1, 235, + 24, 38, 7, 4, 1, 156, 38, 7, 1, 4, 6, 156, 38, 7, 1, 4, 6, 193, 38, 7, 4, + 1, 230, 26, 38, 7, 1, 4, 6, 230, 26, 38, 7, 1, 4, 6, 153, 38, 7, 4, 1, + 223, 225, 222, 187, 38, 7, 4, 1, 222, 92, 38, 7, 4, 1, 199, 222, 92, 38, + 7, 4, 1, 210, 159, 38, 52, 235, 194, 251, 148, 51, 38, 254, 149, 128, + 216, 43, 51, 38, 43, 253, 251, 48, 38, 44, 253, 251, 22, 124, 253, 251, + 51, 7, 6, 1, 115, 2, 222, 235, 51, 7, 4, 1, 115, 2, 222, 235, 51, 7, 6, 1, 57, 2, 59, 48, 7, 4, 1, 57, 2, 59, 48, 7, 6, 1, 57, 2, 59, 51, 7, 4, - 1, 57, 2, 59, 51, 7, 6, 1, 57, 2, 232, 214, 51, 7, 4, 1, 57, 2, 232, 214, - 51, 7, 6, 1, 251, 67, 2, 250, 184, 22, 142, 7, 4, 1, 251, 67, 2, 250, - 184, 22, 142, 7, 6, 1, 249, 61, 2, 59, 48, 7, 4, 1, 249, 61, 2, 59, 48, - 7, 6, 1, 249, 61, 2, 59, 51, 7, 4, 1, 249, 61, 2, 59, 51, 7, 6, 1, 249, - 61, 2, 232, 214, 51, 7, 4, 1, 249, 61, 2, 232, 214, 51, 7, 6, 1, 249, 61, - 2, 250, 183, 7, 4, 1, 249, 61, 2, 250, 183, 7, 6, 1, 249, 61, 2, 250, 31, - 51, 7, 4, 1, 249, 61, 2, 250, 31, 51, 7, 6, 1, 160, 2, 231, 233, 22, 242, - 136, 7, 4, 1, 160, 2, 231, 233, 22, 242, 136, 7, 6, 1, 160, 2, 231, 233, - 22, 142, 7, 4, 1, 160, 2, 231, 233, 22, 142, 7, 6, 1, 160, 2, 250, 31, - 51, 7, 4, 1, 160, 2, 250, 31, 51, 7, 6, 1, 160, 2, 216, 89, 51, 7, 4, 1, - 160, 2, 216, 89, 51, 7, 6, 1, 160, 2, 250, 184, 22, 251, 146, 7, 4, 1, - 160, 2, 250, 184, 22, 251, 146, 7, 6, 1, 245, 7, 2, 59, 48, 7, 4, 1, 245, - 7, 2, 59, 48, 7, 6, 1, 243, 203, 2, 231, 232, 7, 4, 1, 243, 203, 2, 231, - 232, 7, 6, 1, 242, 61, 2, 59, 48, 7, 4, 1, 242, 61, 2, 59, 48, 7, 6, 1, - 242, 61, 2, 59, 51, 7, 4, 1, 242, 61, 2, 59, 51, 7, 6, 1, 242, 61, 2, - 248, 1, 7, 4, 1, 242, 61, 2, 248, 1, 7, 6, 1, 242, 61, 2, 250, 183, 7, 4, - 1, 242, 61, 2, 250, 183, 7, 6, 1, 242, 61, 2, 251, 147, 51, 7, 4, 1, 242, - 61, 2, 251, 147, 51, 7, 6, 1, 240, 154, 2, 216, 89, 51, 7, 4, 1, 240, - 154, 2, 216, 89, 51, 7, 6, 1, 240, 154, 2, 248, 2, 22, 142, 7, 4, 1, 240, - 154, 2, 248, 2, 22, 142, 7, 6, 1, 235, 24, 2, 142, 7, 4, 1, 235, 24, 2, - 142, 7, 6, 1, 235, 24, 2, 59, 51, 7, 4, 1, 235, 24, 2, 59, 51, 7, 6, 1, - 235, 24, 2, 232, 214, 51, 7, 4, 1, 235, 24, 2, 232, 214, 51, 7, 6, 1, - 233, 149, 2, 59, 51, 7, 4, 1, 233, 149, 2, 59, 51, 7, 6, 1, 233, 149, 2, - 59, 252, 43, 22, 231, 232, 7, 4, 1, 233, 149, 2, 59, 252, 43, 22, 231, - 232, 7, 6, 1, 233, 149, 2, 232, 214, 51, 7, 4, 1, 233, 149, 2, 232, 214, - 51, 7, 6, 1, 233, 149, 2, 250, 31, 51, 7, 4, 1, 233, 149, 2, 250, 31, 51, - 7, 6, 1, 232, 50, 2, 142, 7, 4, 1, 232, 50, 2, 142, 7, 6, 1, 232, 50, 2, - 59, 48, 7, 4, 1, 232, 50, 2, 59, 48, 7, 6, 1, 232, 50, 2, 59, 51, 7, 4, - 1, 232, 50, 2, 59, 51, 7, 6, 1, 230, 26, 2, 59, 48, 7, 4, 1, 230, 26, 2, - 59, 48, 7, 6, 1, 230, 26, 2, 59, 51, 7, 4, 1, 230, 26, 2, 59, 51, 7, 6, - 1, 230, 26, 2, 232, 214, 51, 7, 4, 1, 230, 26, 2, 232, 214, 51, 7, 6, 1, - 230, 26, 2, 250, 31, 51, 7, 4, 1, 230, 26, 2, 250, 31, 51, 7, 6, 1, 144, - 2, 216, 89, 22, 142, 7, 4, 1, 144, 2, 216, 89, 22, 142, 7, 6, 1, 144, 2, - 216, 89, 22, 248, 1, 7, 4, 1, 144, 2, 216, 89, 22, 248, 1, 7, 6, 1, 144, - 2, 231, 233, 22, 242, 136, 7, 4, 1, 144, 2, 231, 233, 22, 242, 136, 7, 6, - 1, 144, 2, 231, 233, 22, 142, 7, 4, 1, 144, 2, 231, 233, 22, 142, 7, 6, - 1, 226, 106, 2, 142, 7, 4, 1, 226, 106, 2, 142, 7, 6, 1, 226, 106, 2, 59, - 48, 7, 4, 1, 226, 106, 2, 59, 48, 7, 6, 1, 223, 224, 2, 59, 48, 7, 4, 1, - 223, 224, 2, 59, 48, 7, 6, 1, 223, 224, 2, 59, 51, 7, 4, 1, 223, 224, 2, - 59, 51, 7, 6, 1, 223, 224, 2, 59, 252, 43, 22, 231, 232, 7, 4, 1, 223, - 224, 2, 59, 252, 43, 22, 231, 232, 7, 6, 1, 223, 224, 2, 232, 214, 51, 7, - 4, 1, 223, 224, 2, 232, 214, 51, 7, 6, 1, 222, 92, 2, 59, 48, 7, 4, 1, - 222, 92, 2, 59, 48, 7, 6, 1, 222, 92, 2, 59, 51, 7, 4, 1, 222, 92, 2, 59, - 51, 7, 6, 1, 222, 92, 2, 255, 3, 22, 59, 48, 7, 4, 1, 222, 92, 2, 255, 3, - 22, 59, 48, 7, 6, 1, 222, 92, 2, 250, 235, 22, 59, 48, 7, 4, 1, 222, 92, - 2, 250, 235, 22, 59, 48, 7, 6, 1, 222, 92, 2, 59, 252, 43, 22, 59, 48, 7, - 4, 1, 222, 92, 2, 59, 252, 43, 22, 59, 48, 7, 6, 1, 217, 153, 2, 59, 48, - 7, 4, 1, 217, 153, 2, 59, 48, 7, 6, 1, 217, 153, 2, 59, 51, 7, 4, 1, 217, - 153, 2, 59, 51, 7, 6, 1, 217, 153, 2, 232, 214, 51, 7, 4, 1, 217, 153, 2, - 232, 214, 51, 7, 6, 1, 217, 153, 2, 250, 31, 51, 7, 4, 1, 217, 153, 2, - 250, 31, 51, 7, 6, 1, 104, 2, 248, 2, 51, 7, 4, 1, 104, 2, 248, 2, 51, 7, - 6, 1, 104, 2, 216, 89, 51, 7, 4, 1, 104, 2, 216, 89, 51, 7, 6, 1, 104, 2, - 250, 31, 51, 7, 4, 1, 104, 2, 250, 31, 51, 7, 6, 1, 104, 2, 216, 89, 22, - 142, 7, 4, 1, 104, 2, 216, 89, 22, 142, 7, 6, 1, 104, 2, 231, 233, 22, - 248, 1, 7, 4, 1, 104, 2, 231, 233, 22, 248, 1, 7, 6, 1, 214, 106, 2, 182, - 7, 4, 1, 214, 106, 2, 182, 7, 6, 1, 214, 106, 2, 59, 51, 7, 4, 1, 214, - 106, 2, 59, 51, 7, 6, 1, 212, 99, 2, 242, 136, 7, 4, 1, 212, 99, 2, 242, - 136, 7, 6, 1, 212, 99, 2, 142, 7, 4, 1, 212, 99, 2, 142, 7, 6, 1, 212, - 99, 2, 248, 1, 7, 4, 1, 212, 99, 2, 248, 1, 7, 6, 1, 212, 99, 2, 59, 48, + 1, 57, 2, 59, 51, 7, 6, 1, 57, 2, 232, 215, 51, 7, 4, 1, 57, 2, 232, 215, + 51, 7, 6, 1, 251, 68, 2, 250, 185, 22, 142, 7, 4, 1, 251, 68, 2, 250, + 185, 22, 142, 7, 6, 1, 249, 62, 2, 59, 48, 7, 4, 1, 249, 62, 2, 59, 48, + 7, 6, 1, 249, 62, 2, 59, 51, 7, 4, 1, 249, 62, 2, 59, 51, 7, 6, 1, 249, + 62, 2, 232, 215, 51, 7, 4, 1, 249, 62, 2, 232, 215, 51, 7, 6, 1, 249, 62, + 2, 250, 184, 7, 4, 1, 249, 62, 2, 250, 184, 7, 6, 1, 249, 62, 2, 250, 32, + 51, 7, 4, 1, 249, 62, 2, 250, 32, 51, 7, 6, 1, 160, 2, 231, 234, 22, 242, + 137, 7, 4, 1, 160, 2, 231, 234, 22, 242, 137, 7, 6, 1, 160, 2, 231, 234, + 22, 142, 7, 4, 1, 160, 2, 231, 234, 22, 142, 7, 6, 1, 160, 2, 250, 32, + 51, 7, 4, 1, 160, 2, 250, 32, 51, 7, 6, 1, 160, 2, 216, 90, 51, 7, 4, 1, + 160, 2, 216, 90, 51, 7, 6, 1, 160, 2, 250, 185, 22, 251, 147, 7, 4, 1, + 160, 2, 250, 185, 22, 251, 147, 7, 6, 1, 245, 8, 2, 59, 48, 7, 4, 1, 245, + 8, 2, 59, 48, 7, 6, 1, 243, 204, 2, 231, 233, 7, 4, 1, 243, 204, 2, 231, + 233, 7, 6, 1, 242, 62, 2, 59, 48, 7, 4, 1, 242, 62, 2, 59, 48, 7, 6, 1, + 242, 62, 2, 59, 51, 7, 4, 1, 242, 62, 2, 59, 51, 7, 6, 1, 242, 62, 2, + 248, 2, 7, 4, 1, 242, 62, 2, 248, 2, 7, 6, 1, 242, 62, 2, 250, 184, 7, 4, + 1, 242, 62, 2, 250, 184, 7, 6, 1, 242, 62, 2, 251, 148, 51, 7, 4, 1, 242, + 62, 2, 251, 148, 51, 7, 6, 1, 240, 155, 2, 216, 90, 51, 7, 4, 1, 240, + 155, 2, 216, 90, 51, 7, 6, 1, 240, 155, 2, 248, 3, 22, 142, 7, 4, 1, 240, + 155, 2, 248, 3, 22, 142, 7, 6, 1, 235, 25, 2, 142, 7, 4, 1, 235, 25, 2, + 142, 7, 6, 1, 235, 25, 2, 59, 51, 7, 4, 1, 235, 25, 2, 59, 51, 7, 6, 1, + 235, 25, 2, 232, 215, 51, 7, 4, 1, 235, 25, 2, 232, 215, 51, 7, 6, 1, + 233, 150, 2, 59, 51, 7, 4, 1, 233, 150, 2, 59, 51, 7, 6, 1, 233, 150, 2, + 59, 252, 44, 22, 231, 233, 7, 4, 1, 233, 150, 2, 59, 252, 44, 22, 231, + 233, 7, 6, 1, 233, 150, 2, 232, 215, 51, 7, 4, 1, 233, 150, 2, 232, 215, + 51, 7, 6, 1, 233, 150, 2, 250, 32, 51, 7, 4, 1, 233, 150, 2, 250, 32, 51, + 7, 6, 1, 232, 51, 2, 142, 7, 4, 1, 232, 51, 2, 142, 7, 6, 1, 232, 51, 2, + 59, 48, 7, 4, 1, 232, 51, 2, 59, 48, 7, 6, 1, 232, 51, 2, 59, 51, 7, 4, + 1, 232, 51, 2, 59, 51, 7, 6, 1, 230, 27, 2, 59, 48, 7, 4, 1, 230, 27, 2, + 59, 48, 7, 6, 1, 230, 27, 2, 59, 51, 7, 4, 1, 230, 27, 2, 59, 51, 7, 6, + 1, 230, 27, 2, 232, 215, 51, 7, 4, 1, 230, 27, 2, 232, 215, 51, 7, 6, 1, + 230, 27, 2, 250, 32, 51, 7, 4, 1, 230, 27, 2, 250, 32, 51, 7, 6, 1, 144, + 2, 216, 90, 22, 142, 7, 4, 1, 144, 2, 216, 90, 22, 142, 7, 6, 1, 144, 2, + 216, 90, 22, 248, 2, 7, 4, 1, 144, 2, 216, 90, 22, 248, 2, 7, 6, 1, 144, + 2, 231, 234, 22, 242, 137, 7, 4, 1, 144, 2, 231, 234, 22, 242, 137, 7, 6, + 1, 144, 2, 231, 234, 22, 142, 7, 4, 1, 144, 2, 231, 234, 22, 142, 7, 6, + 1, 226, 107, 2, 142, 7, 4, 1, 226, 107, 2, 142, 7, 6, 1, 226, 107, 2, 59, + 48, 7, 4, 1, 226, 107, 2, 59, 48, 7, 6, 1, 223, 225, 2, 59, 48, 7, 4, 1, + 223, 225, 2, 59, 48, 7, 6, 1, 223, 225, 2, 59, 51, 7, 4, 1, 223, 225, 2, + 59, 51, 7, 6, 1, 223, 225, 2, 59, 252, 44, 22, 231, 233, 7, 4, 1, 223, + 225, 2, 59, 252, 44, 22, 231, 233, 7, 6, 1, 223, 225, 2, 232, 215, 51, 7, + 4, 1, 223, 225, 2, 232, 215, 51, 7, 6, 1, 222, 93, 2, 59, 48, 7, 4, 1, + 222, 93, 2, 59, 48, 7, 6, 1, 222, 93, 2, 59, 51, 7, 4, 1, 222, 93, 2, 59, + 51, 7, 6, 1, 222, 93, 2, 255, 4, 22, 59, 48, 7, 4, 1, 222, 93, 2, 255, 4, + 22, 59, 48, 7, 6, 1, 222, 93, 2, 250, 236, 22, 59, 48, 7, 4, 1, 222, 93, + 2, 250, 236, 22, 59, 48, 7, 6, 1, 222, 93, 2, 59, 252, 44, 22, 59, 48, 7, + 4, 1, 222, 93, 2, 59, 252, 44, 22, 59, 48, 7, 6, 1, 217, 154, 2, 59, 48, + 7, 4, 1, 217, 154, 2, 59, 48, 7, 6, 1, 217, 154, 2, 59, 51, 7, 4, 1, 217, + 154, 2, 59, 51, 7, 6, 1, 217, 154, 2, 232, 215, 51, 7, 4, 1, 217, 154, 2, + 232, 215, 51, 7, 6, 1, 217, 154, 2, 250, 32, 51, 7, 4, 1, 217, 154, 2, + 250, 32, 51, 7, 6, 1, 104, 2, 248, 3, 51, 7, 4, 1, 104, 2, 248, 3, 51, 7, + 6, 1, 104, 2, 216, 90, 51, 7, 4, 1, 104, 2, 216, 90, 51, 7, 6, 1, 104, 2, + 250, 32, 51, 7, 4, 1, 104, 2, 250, 32, 51, 7, 6, 1, 104, 2, 216, 90, 22, + 142, 7, 4, 1, 104, 2, 216, 90, 22, 142, 7, 6, 1, 104, 2, 231, 234, 22, + 248, 2, 7, 4, 1, 104, 2, 231, 234, 22, 248, 2, 7, 6, 1, 214, 106, 2, 183, + 7, 4, 1, 214, 106, 2, 183, 7, 6, 1, 214, 106, 2, 59, 51, 7, 4, 1, 214, + 106, 2, 59, 51, 7, 6, 1, 212, 99, 2, 242, 137, 7, 4, 1, 212, 99, 2, 242, + 137, 7, 6, 1, 212, 99, 2, 142, 7, 4, 1, 212, 99, 2, 142, 7, 6, 1, 212, + 99, 2, 248, 2, 7, 4, 1, 212, 99, 2, 248, 2, 7, 6, 1, 212, 99, 2, 59, 48, 7, 4, 1, 212, 99, 2, 59, 48, 7, 6, 1, 212, 99, 2, 59, 51, 7, 4, 1, 212, 99, 2, 59, 51, 7, 6, 1, 211, 179, 2, 59, 48, 7, 4, 1, 211, 179, 2, 59, - 48, 7, 6, 1, 211, 179, 2, 248, 1, 7, 4, 1, 211, 179, 2, 248, 1, 7, 6, 1, + 48, 7, 6, 1, 211, 179, 2, 248, 2, 7, 4, 1, 211, 179, 2, 248, 2, 7, 6, 1, 211, 118, 2, 59, 48, 7, 4, 1, 211, 118, 2, 59, 48, 7, 6, 1, 210, 160, 2, - 250, 30, 7, 4, 1, 210, 160, 2, 250, 30, 7, 6, 1, 210, 160, 2, 59, 51, 7, - 4, 1, 210, 160, 2, 59, 51, 7, 6, 1, 210, 160, 2, 232, 214, 51, 7, 4, 1, - 210, 160, 2, 232, 214, 51, 7, 4, 1, 242, 61, 2, 232, 214, 51, 7, 4, 1, - 217, 153, 2, 248, 1, 7, 4, 1, 212, 99, 2, 222, 234, 48, 7, 4, 1, 211, - 118, 2, 222, 234, 48, 7, 4, 1, 115, 2, 44, 163, 222, 233, 7, 4, 1, 199, - 222, 92, 2, 59, 48, 7, 4, 1, 199, 222, 92, 2, 247, 255, 91, 7, 4, 1, 199, - 222, 92, 2, 125, 91, 7, 6, 1, 220, 76, 222, 91, 7, 4, 1, 248, 54, 7, 6, - 1, 115, 2, 59, 51, 7, 4, 1, 115, 2, 59, 51, 7, 6, 1, 115, 2, 241, 52, 48, - 7, 4, 1, 115, 2, 241, 52, 48, 7, 6, 1, 115, 2, 250, 31, 22, 142, 7, 4, 1, - 115, 2, 250, 31, 22, 142, 7, 6, 1, 115, 2, 250, 31, 22, 242, 136, 7, 4, - 1, 115, 2, 250, 31, 22, 242, 136, 7, 6, 1, 115, 2, 250, 31, 22, 241, 52, - 48, 7, 4, 1, 115, 2, 250, 31, 22, 241, 52, 48, 7, 6, 1, 115, 2, 250, 31, - 22, 182, 7, 4, 1, 115, 2, 250, 31, 22, 182, 7, 6, 1, 115, 2, 250, 31, 22, - 59, 51, 7, 4, 1, 115, 2, 250, 31, 22, 59, 51, 7, 6, 1, 115, 2, 251, 147, - 22, 142, 7, 4, 1, 115, 2, 251, 147, 22, 142, 7, 6, 1, 115, 2, 251, 147, - 22, 242, 136, 7, 4, 1, 115, 2, 251, 147, 22, 242, 136, 7, 6, 1, 115, 2, - 251, 147, 22, 241, 52, 48, 7, 4, 1, 115, 2, 251, 147, 22, 241, 52, 48, 7, - 6, 1, 115, 2, 251, 147, 22, 182, 7, 4, 1, 115, 2, 251, 147, 22, 182, 7, - 6, 1, 115, 2, 251, 147, 22, 59, 51, 7, 4, 1, 115, 2, 251, 147, 22, 59, + 250, 31, 7, 4, 1, 210, 160, 2, 250, 31, 7, 6, 1, 210, 160, 2, 59, 51, 7, + 4, 1, 210, 160, 2, 59, 51, 7, 6, 1, 210, 160, 2, 232, 215, 51, 7, 4, 1, + 210, 160, 2, 232, 215, 51, 7, 4, 1, 242, 62, 2, 232, 215, 51, 7, 4, 1, + 217, 154, 2, 248, 2, 7, 4, 1, 212, 99, 2, 222, 235, 48, 7, 4, 1, 211, + 118, 2, 222, 235, 48, 7, 4, 1, 115, 2, 44, 163, 222, 234, 7, 4, 1, 199, + 222, 93, 2, 59, 48, 7, 4, 1, 199, 222, 93, 2, 248, 0, 91, 7, 4, 1, 199, + 222, 93, 2, 125, 91, 7, 6, 1, 220, 77, 222, 92, 7, 4, 1, 248, 55, 7, 6, + 1, 115, 2, 59, 51, 7, 4, 1, 115, 2, 59, 51, 7, 6, 1, 115, 2, 241, 53, 48, + 7, 4, 1, 115, 2, 241, 53, 48, 7, 6, 1, 115, 2, 250, 32, 22, 142, 7, 4, 1, + 115, 2, 250, 32, 22, 142, 7, 6, 1, 115, 2, 250, 32, 22, 242, 137, 7, 4, + 1, 115, 2, 250, 32, 22, 242, 137, 7, 6, 1, 115, 2, 250, 32, 22, 241, 53, + 48, 7, 4, 1, 115, 2, 250, 32, 22, 241, 53, 48, 7, 6, 1, 115, 2, 250, 32, + 22, 183, 7, 4, 1, 115, 2, 250, 32, 22, 183, 7, 6, 1, 115, 2, 250, 32, 22, + 59, 51, 7, 4, 1, 115, 2, 250, 32, 22, 59, 51, 7, 6, 1, 115, 2, 251, 148, + 22, 142, 7, 4, 1, 115, 2, 251, 148, 22, 142, 7, 6, 1, 115, 2, 251, 148, + 22, 242, 137, 7, 4, 1, 115, 2, 251, 148, 22, 242, 137, 7, 6, 1, 115, 2, + 251, 148, 22, 241, 53, 48, 7, 4, 1, 115, 2, 251, 148, 22, 241, 53, 48, 7, + 6, 1, 115, 2, 251, 148, 22, 183, 7, 4, 1, 115, 2, 251, 148, 22, 183, 7, + 6, 1, 115, 2, 251, 148, 22, 59, 51, 7, 4, 1, 115, 2, 251, 148, 22, 59, 51, 7, 6, 1, 160, 2, 59, 51, 7, 4, 1, 160, 2, 59, 51, 7, 6, 1, 160, 2, - 241, 52, 48, 7, 4, 1, 160, 2, 241, 52, 48, 7, 6, 1, 160, 2, 182, 7, 4, 1, - 160, 2, 182, 7, 6, 1, 160, 2, 250, 31, 22, 142, 7, 4, 1, 160, 2, 250, 31, - 22, 142, 7, 6, 1, 160, 2, 250, 31, 22, 242, 136, 7, 4, 1, 160, 2, 250, - 31, 22, 242, 136, 7, 6, 1, 160, 2, 250, 31, 22, 241, 52, 48, 7, 4, 1, - 160, 2, 250, 31, 22, 241, 52, 48, 7, 6, 1, 160, 2, 250, 31, 22, 182, 7, - 4, 1, 160, 2, 250, 31, 22, 182, 7, 6, 1, 160, 2, 250, 31, 22, 59, 51, 7, - 4, 1, 160, 2, 250, 31, 22, 59, 51, 7, 6, 1, 240, 154, 2, 241, 52, 48, 7, - 4, 1, 240, 154, 2, 241, 52, 48, 7, 6, 1, 240, 154, 2, 59, 51, 7, 4, 1, - 240, 154, 2, 59, 51, 7, 6, 1, 144, 2, 59, 51, 7, 4, 1, 144, 2, 59, 51, 7, - 6, 1, 144, 2, 241, 52, 48, 7, 4, 1, 144, 2, 241, 52, 48, 7, 6, 1, 144, 2, - 250, 31, 22, 142, 7, 4, 1, 144, 2, 250, 31, 22, 142, 7, 6, 1, 144, 2, - 250, 31, 22, 242, 136, 7, 4, 1, 144, 2, 250, 31, 22, 242, 136, 7, 6, 1, - 144, 2, 250, 31, 22, 241, 52, 48, 7, 4, 1, 144, 2, 250, 31, 22, 241, 52, - 48, 7, 6, 1, 144, 2, 250, 31, 22, 182, 7, 4, 1, 144, 2, 250, 31, 22, 182, - 7, 6, 1, 144, 2, 250, 31, 22, 59, 51, 7, 4, 1, 144, 2, 250, 31, 22, 59, - 51, 7, 6, 1, 144, 2, 240, 249, 22, 142, 7, 4, 1, 144, 2, 240, 249, 22, - 142, 7, 6, 1, 144, 2, 240, 249, 22, 242, 136, 7, 4, 1, 144, 2, 240, 249, - 22, 242, 136, 7, 6, 1, 144, 2, 240, 249, 22, 241, 52, 48, 7, 4, 1, 144, - 2, 240, 249, 22, 241, 52, 48, 7, 6, 1, 144, 2, 240, 249, 22, 182, 7, 4, - 1, 144, 2, 240, 249, 22, 182, 7, 6, 1, 144, 2, 240, 249, 22, 59, 51, 7, - 4, 1, 144, 2, 240, 249, 22, 59, 51, 7, 6, 1, 104, 2, 59, 51, 7, 4, 1, - 104, 2, 59, 51, 7, 6, 1, 104, 2, 241, 52, 48, 7, 4, 1, 104, 2, 241, 52, - 48, 7, 6, 1, 104, 2, 240, 249, 22, 142, 7, 4, 1, 104, 2, 240, 249, 22, - 142, 7, 6, 1, 104, 2, 240, 249, 22, 242, 136, 7, 4, 1, 104, 2, 240, 249, - 22, 242, 136, 7, 6, 1, 104, 2, 240, 249, 22, 241, 52, 48, 7, 4, 1, 104, - 2, 240, 249, 22, 241, 52, 48, 7, 6, 1, 104, 2, 240, 249, 22, 182, 7, 4, - 1, 104, 2, 240, 249, 22, 182, 7, 6, 1, 104, 2, 240, 249, 22, 59, 51, 7, - 4, 1, 104, 2, 240, 249, 22, 59, 51, 7, 6, 1, 211, 118, 2, 242, 136, 7, 4, - 1, 211, 118, 2, 242, 136, 7, 6, 1, 211, 118, 2, 59, 51, 7, 4, 1, 211, - 118, 2, 59, 51, 7, 6, 1, 211, 118, 2, 241, 52, 48, 7, 4, 1, 211, 118, 2, - 241, 52, 48, 7, 6, 1, 211, 118, 2, 182, 7, 4, 1, 211, 118, 2, 182, 7, 6, - 1, 230, 223, 232, 185, 7, 4, 1, 230, 223, 232, 185, 7, 6, 1, 230, 223, - 214, 105, 7, 4, 1, 230, 223, 214, 105, 7, 6, 1, 211, 118, 2, 232, 123, 7, - 4, 1, 211, 118, 2, 232, 123, 26, 4, 1, 254, 144, 2, 224, 154, 26, 4, 1, - 254, 144, 2, 248, 153, 26, 4, 1, 254, 144, 2, 224, 155, 22, 214, 13, 26, - 4, 1, 254, 144, 2, 248, 154, 22, 214, 13, 26, 4, 1, 254, 144, 2, 224, - 155, 22, 226, 110, 26, 4, 1, 254, 144, 2, 248, 154, 22, 226, 110, 26, 4, - 1, 254, 144, 2, 224, 155, 22, 225, 175, 26, 4, 1, 254, 144, 2, 248, 154, - 22, 225, 175, 26, 6, 1, 254, 144, 2, 224, 154, 26, 6, 1, 254, 144, 2, - 248, 153, 26, 6, 1, 254, 144, 2, 224, 155, 22, 214, 13, 26, 6, 1, 254, - 144, 2, 248, 154, 22, 214, 13, 26, 6, 1, 254, 144, 2, 224, 155, 22, 226, - 110, 26, 6, 1, 254, 144, 2, 248, 154, 22, 226, 110, 26, 6, 1, 254, 144, - 2, 224, 155, 22, 225, 175, 26, 6, 1, 254, 144, 2, 248, 154, 22, 225, 175, - 26, 4, 1, 245, 101, 2, 224, 154, 26, 4, 1, 245, 101, 2, 248, 153, 26, 4, - 1, 245, 101, 2, 224, 155, 22, 214, 13, 26, 4, 1, 245, 101, 2, 248, 154, - 22, 214, 13, 26, 4, 1, 245, 101, 2, 224, 155, 22, 226, 110, 26, 4, 1, - 245, 101, 2, 248, 154, 22, 226, 110, 26, 6, 1, 245, 101, 2, 224, 154, 26, - 6, 1, 245, 101, 2, 248, 153, 26, 6, 1, 245, 101, 2, 224, 155, 22, 214, - 13, 26, 6, 1, 245, 101, 2, 248, 154, 22, 214, 13, 26, 6, 1, 245, 101, 2, - 224, 155, 22, 226, 110, 26, 6, 1, 245, 101, 2, 248, 154, 22, 226, 110, - 26, 4, 1, 245, 64, 2, 224, 154, 26, 4, 1, 245, 64, 2, 248, 153, 26, 4, 1, - 245, 64, 2, 224, 155, 22, 214, 13, 26, 4, 1, 245, 64, 2, 248, 154, 22, - 214, 13, 26, 4, 1, 245, 64, 2, 224, 155, 22, 226, 110, 26, 4, 1, 245, 64, - 2, 248, 154, 22, 226, 110, 26, 4, 1, 245, 64, 2, 224, 155, 22, 225, 175, - 26, 4, 1, 245, 64, 2, 248, 154, 22, 225, 175, 26, 6, 1, 245, 64, 2, 224, - 154, 26, 6, 1, 245, 64, 2, 248, 153, 26, 6, 1, 245, 64, 2, 224, 155, 22, - 214, 13, 26, 6, 1, 245, 64, 2, 248, 154, 22, 214, 13, 26, 6, 1, 245, 64, - 2, 224, 155, 22, 226, 110, 26, 6, 1, 245, 64, 2, 248, 154, 22, 226, 110, - 26, 6, 1, 245, 64, 2, 224, 155, 22, 225, 175, 26, 6, 1, 245, 64, 2, 248, - 154, 22, 225, 175, 26, 4, 1, 235, 186, 2, 224, 154, 26, 4, 1, 235, 186, - 2, 248, 153, 26, 4, 1, 235, 186, 2, 224, 155, 22, 214, 13, 26, 4, 1, 235, - 186, 2, 248, 154, 22, 214, 13, 26, 4, 1, 235, 186, 2, 224, 155, 22, 226, - 110, 26, 4, 1, 235, 186, 2, 248, 154, 22, 226, 110, 26, 4, 1, 235, 186, - 2, 224, 155, 22, 225, 175, 26, 4, 1, 235, 186, 2, 248, 154, 22, 225, 175, - 26, 6, 1, 235, 186, 2, 224, 154, 26, 6, 1, 235, 186, 2, 248, 153, 26, 6, - 1, 235, 186, 2, 224, 155, 22, 214, 13, 26, 6, 1, 235, 186, 2, 248, 154, - 22, 214, 13, 26, 6, 1, 235, 186, 2, 224, 155, 22, 226, 110, 26, 6, 1, - 235, 186, 2, 248, 154, 22, 226, 110, 26, 6, 1, 235, 186, 2, 224, 155, 22, - 225, 175, 26, 6, 1, 235, 186, 2, 248, 154, 22, 225, 175, 26, 4, 1, 226, - 200, 2, 224, 154, 26, 4, 1, 226, 200, 2, 248, 153, 26, 4, 1, 226, 200, 2, - 224, 155, 22, 214, 13, 26, 4, 1, 226, 200, 2, 248, 154, 22, 214, 13, 26, - 4, 1, 226, 200, 2, 224, 155, 22, 226, 110, 26, 4, 1, 226, 200, 2, 248, - 154, 22, 226, 110, 26, 6, 1, 226, 200, 2, 224, 154, 26, 6, 1, 226, 200, - 2, 248, 153, 26, 6, 1, 226, 200, 2, 224, 155, 22, 214, 13, 26, 6, 1, 226, - 200, 2, 248, 154, 22, 214, 13, 26, 6, 1, 226, 200, 2, 224, 155, 22, 226, - 110, 26, 6, 1, 226, 200, 2, 248, 154, 22, 226, 110, 26, 4, 1, 214, 158, - 2, 224, 154, 26, 4, 1, 214, 158, 2, 248, 153, 26, 4, 1, 214, 158, 2, 224, - 155, 22, 214, 13, 26, 4, 1, 214, 158, 2, 248, 154, 22, 214, 13, 26, 4, 1, - 214, 158, 2, 224, 155, 22, 226, 110, 26, 4, 1, 214, 158, 2, 248, 154, 22, - 226, 110, 26, 4, 1, 214, 158, 2, 224, 155, 22, 225, 175, 26, 4, 1, 214, - 158, 2, 248, 154, 22, 225, 175, 26, 6, 1, 214, 158, 2, 248, 153, 26, 6, - 1, 214, 158, 2, 248, 154, 22, 214, 13, 26, 6, 1, 214, 158, 2, 248, 154, - 22, 226, 110, 26, 6, 1, 214, 158, 2, 248, 154, 22, 225, 175, 26, 4, 1, - 226, 202, 2, 224, 154, 26, 4, 1, 226, 202, 2, 248, 153, 26, 4, 1, 226, - 202, 2, 224, 155, 22, 214, 13, 26, 4, 1, 226, 202, 2, 248, 154, 22, 214, - 13, 26, 4, 1, 226, 202, 2, 224, 155, 22, 226, 110, 26, 4, 1, 226, 202, 2, - 248, 154, 22, 226, 110, 26, 4, 1, 226, 202, 2, 224, 155, 22, 225, 175, - 26, 4, 1, 226, 202, 2, 248, 154, 22, 225, 175, 26, 6, 1, 226, 202, 2, - 224, 154, 26, 6, 1, 226, 202, 2, 248, 153, 26, 6, 1, 226, 202, 2, 224, - 155, 22, 214, 13, 26, 6, 1, 226, 202, 2, 248, 154, 22, 214, 13, 26, 6, 1, - 226, 202, 2, 224, 155, 22, 226, 110, 26, 6, 1, 226, 202, 2, 248, 154, 22, - 226, 110, 26, 6, 1, 226, 202, 2, 224, 155, 22, 225, 175, 26, 6, 1, 226, - 202, 2, 248, 154, 22, 225, 175, 26, 4, 1, 254, 144, 2, 214, 13, 26, 4, 1, - 254, 144, 2, 226, 110, 26, 4, 1, 245, 101, 2, 214, 13, 26, 4, 1, 245, - 101, 2, 226, 110, 26, 4, 1, 245, 64, 2, 214, 13, 26, 4, 1, 245, 64, 2, - 226, 110, 26, 4, 1, 235, 186, 2, 214, 13, 26, 4, 1, 235, 186, 2, 226, - 110, 26, 4, 1, 226, 200, 2, 214, 13, 26, 4, 1, 226, 200, 2, 226, 110, 26, - 4, 1, 214, 158, 2, 214, 13, 26, 4, 1, 214, 158, 2, 226, 110, 26, 4, 1, - 226, 202, 2, 214, 13, 26, 4, 1, 226, 202, 2, 226, 110, 26, 4, 1, 254, - 144, 2, 224, 155, 22, 210, 219, 26, 4, 1, 254, 144, 2, 248, 154, 22, 210, - 219, 26, 4, 1, 254, 144, 2, 224, 155, 22, 214, 14, 22, 210, 219, 26, 4, - 1, 254, 144, 2, 248, 154, 22, 214, 14, 22, 210, 219, 26, 4, 1, 254, 144, - 2, 224, 155, 22, 226, 111, 22, 210, 219, 26, 4, 1, 254, 144, 2, 248, 154, - 22, 226, 111, 22, 210, 219, 26, 4, 1, 254, 144, 2, 224, 155, 22, 225, - 176, 22, 210, 219, 26, 4, 1, 254, 144, 2, 248, 154, 22, 225, 176, 22, - 210, 219, 26, 6, 1, 254, 144, 2, 224, 155, 22, 224, 167, 26, 6, 1, 254, - 144, 2, 248, 154, 22, 224, 167, 26, 6, 1, 254, 144, 2, 224, 155, 22, 214, - 14, 22, 224, 167, 26, 6, 1, 254, 144, 2, 248, 154, 22, 214, 14, 22, 224, - 167, 26, 6, 1, 254, 144, 2, 224, 155, 22, 226, 111, 22, 224, 167, 26, 6, - 1, 254, 144, 2, 248, 154, 22, 226, 111, 22, 224, 167, 26, 6, 1, 254, 144, - 2, 224, 155, 22, 225, 176, 22, 224, 167, 26, 6, 1, 254, 144, 2, 248, 154, - 22, 225, 176, 22, 224, 167, 26, 4, 1, 245, 64, 2, 224, 155, 22, 210, 219, - 26, 4, 1, 245, 64, 2, 248, 154, 22, 210, 219, 26, 4, 1, 245, 64, 2, 224, - 155, 22, 214, 14, 22, 210, 219, 26, 4, 1, 245, 64, 2, 248, 154, 22, 214, - 14, 22, 210, 219, 26, 4, 1, 245, 64, 2, 224, 155, 22, 226, 111, 22, 210, - 219, 26, 4, 1, 245, 64, 2, 248, 154, 22, 226, 111, 22, 210, 219, 26, 4, - 1, 245, 64, 2, 224, 155, 22, 225, 176, 22, 210, 219, 26, 4, 1, 245, 64, - 2, 248, 154, 22, 225, 176, 22, 210, 219, 26, 6, 1, 245, 64, 2, 224, 155, - 22, 224, 167, 26, 6, 1, 245, 64, 2, 248, 154, 22, 224, 167, 26, 6, 1, - 245, 64, 2, 224, 155, 22, 214, 14, 22, 224, 167, 26, 6, 1, 245, 64, 2, - 248, 154, 22, 214, 14, 22, 224, 167, 26, 6, 1, 245, 64, 2, 224, 155, 22, - 226, 111, 22, 224, 167, 26, 6, 1, 245, 64, 2, 248, 154, 22, 226, 111, 22, - 224, 167, 26, 6, 1, 245, 64, 2, 224, 155, 22, 225, 176, 22, 224, 167, 26, - 6, 1, 245, 64, 2, 248, 154, 22, 225, 176, 22, 224, 167, 26, 4, 1, 226, - 202, 2, 224, 155, 22, 210, 219, 26, 4, 1, 226, 202, 2, 248, 154, 22, 210, - 219, 26, 4, 1, 226, 202, 2, 224, 155, 22, 214, 14, 22, 210, 219, 26, 4, - 1, 226, 202, 2, 248, 154, 22, 214, 14, 22, 210, 219, 26, 4, 1, 226, 202, - 2, 224, 155, 22, 226, 111, 22, 210, 219, 26, 4, 1, 226, 202, 2, 248, 154, - 22, 226, 111, 22, 210, 219, 26, 4, 1, 226, 202, 2, 224, 155, 22, 225, - 176, 22, 210, 219, 26, 4, 1, 226, 202, 2, 248, 154, 22, 225, 176, 22, - 210, 219, 26, 6, 1, 226, 202, 2, 224, 155, 22, 224, 167, 26, 6, 1, 226, - 202, 2, 248, 154, 22, 224, 167, 26, 6, 1, 226, 202, 2, 224, 155, 22, 214, - 14, 22, 224, 167, 26, 6, 1, 226, 202, 2, 248, 154, 22, 214, 14, 22, 224, - 167, 26, 6, 1, 226, 202, 2, 224, 155, 22, 226, 111, 22, 224, 167, 26, 6, - 1, 226, 202, 2, 248, 154, 22, 226, 111, 22, 224, 167, 26, 6, 1, 226, 202, - 2, 224, 155, 22, 225, 176, 22, 224, 167, 26, 6, 1, 226, 202, 2, 248, 154, - 22, 225, 176, 22, 224, 167, 26, 4, 1, 254, 144, 2, 213, 120, 26, 4, 1, - 254, 144, 2, 231, 232, 26, 4, 1, 254, 144, 2, 214, 14, 22, 210, 219, 26, - 4, 1, 254, 144, 2, 210, 219, 26, 4, 1, 254, 144, 2, 226, 111, 22, 210, - 219, 26, 4, 1, 254, 144, 2, 225, 175, 26, 4, 1, 254, 144, 2, 225, 176, - 22, 210, 219, 26, 6, 1, 254, 144, 2, 213, 120, 26, 6, 1, 254, 144, 2, - 231, 232, 26, 6, 1, 254, 144, 2, 214, 13, 26, 6, 1, 254, 144, 2, 226, - 110, 26, 6, 1, 254, 144, 2, 224, 167, 26, 234, 2, 26, 224, 167, 26, 224, - 154, 26, 225, 175, 26, 247, 252, 22, 225, 175, 26, 4, 1, 245, 64, 2, 214, - 14, 22, 210, 219, 26, 4, 1, 245, 64, 2, 210, 219, 26, 4, 1, 245, 64, 2, - 226, 111, 22, 210, 219, 26, 4, 1, 245, 64, 2, 225, 175, 26, 4, 1, 245, - 64, 2, 225, 176, 22, 210, 219, 26, 6, 1, 245, 101, 2, 214, 13, 26, 6, 1, - 245, 101, 2, 226, 110, 26, 6, 1, 245, 64, 2, 214, 13, 26, 6, 1, 245, 64, - 2, 226, 110, 26, 6, 1, 245, 64, 2, 224, 167, 26, 224, 155, 22, 214, 13, - 26, 224, 155, 22, 226, 110, 26, 224, 155, 22, 225, 175, 26, 4, 1, 235, - 186, 2, 213, 120, 26, 4, 1, 235, 186, 2, 231, 232, 26, 4, 1, 235, 186, 2, - 247, 252, 22, 214, 13, 26, 4, 1, 235, 186, 2, 247, 252, 22, 226, 110, 26, - 4, 1, 235, 186, 2, 225, 175, 26, 4, 1, 235, 186, 2, 247, 252, 22, 225, - 175, 26, 6, 1, 235, 186, 2, 213, 120, 26, 6, 1, 235, 186, 2, 231, 232, - 26, 6, 1, 235, 186, 2, 214, 13, 26, 6, 1, 235, 186, 2, 226, 110, 26, 248, - 154, 22, 214, 13, 26, 248, 154, 22, 226, 110, 26, 248, 154, 22, 225, 175, - 26, 4, 1, 214, 158, 2, 213, 120, 26, 4, 1, 214, 158, 2, 231, 232, 26, 4, - 1, 214, 158, 2, 247, 252, 22, 214, 13, 26, 4, 1, 214, 158, 2, 247, 252, - 22, 226, 110, 26, 4, 1, 223, 38, 2, 224, 154, 26, 4, 1, 223, 38, 2, 248, - 153, 26, 4, 1, 214, 158, 2, 225, 175, 26, 4, 1, 214, 158, 2, 247, 252, - 22, 225, 175, 26, 6, 1, 214, 158, 2, 213, 120, 26, 6, 1, 214, 158, 2, - 231, 232, 26, 6, 1, 214, 158, 2, 214, 13, 26, 6, 1, 214, 158, 2, 226, - 110, 26, 6, 1, 223, 38, 2, 248, 153, 26, 247, 252, 22, 214, 13, 26, 247, - 252, 22, 226, 110, 26, 214, 13, 26, 4, 1, 226, 202, 2, 214, 14, 22, 210, - 219, 26, 4, 1, 226, 202, 2, 210, 219, 26, 4, 1, 226, 202, 2, 226, 111, - 22, 210, 219, 26, 4, 1, 226, 202, 2, 225, 175, 26, 4, 1, 226, 202, 2, - 225, 176, 22, 210, 219, 26, 6, 1, 226, 200, 2, 214, 13, 26, 6, 1, 226, - 200, 2, 226, 110, 26, 6, 1, 226, 202, 2, 214, 13, 26, 6, 1, 226, 202, 2, - 226, 110, 26, 6, 1, 226, 202, 2, 224, 167, 26, 226, 110, 26, 248, 153, - 245, 151, 224, 27, 245, 160, 224, 27, 245, 151, 219, 18, 245, 160, 219, - 18, 216, 141, 219, 18, 244, 9, 219, 18, 219, 123, 219, 18, 244, 112, 219, - 18, 224, 141, 219, 18, 216, 170, 219, 18, 242, 35, 219, 18, 210, 87, 211, - 245, 219, 18, 210, 87, 211, 245, 228, 67, 210, 87, 211, 245, 235, 63, - 233, 38, 78, 222, 243, 78, 240, 168, 228, 68, 240, 168, 244, 112, 248, - 156, 245, 151, 248, 156, 245, 160, 248, 156, 203, 130, 52, 67, 232, 213, - 52, 121, 232, 213, 43, 219, 155, 223, 254, 78, 44, 219, 155, 223, 254, - 78, 219, 155, 232, 109, 223, 254, 78, 219, 155, 241, 163, 223, 254, 78, - 43, 52, 223, 254, 78, 44, 52, 223, 254, 78, 52, 232, 109, 223, 254, 78, - 52, 241, 163, 223, 254, 78, 248, 205, 52, 248, 205, 251, 113, 215, 222, - 251, 113, 123, 59, 233, 56, 113, 59, 233, 56, 203, 245, 163, 240, 166, - 225, 10, 232, 214, 220, 137, 226, 15, 220, 137, 233, 38, 245, 158, 222, - 243, 245, 158, 224, 246, 247, 196, 244, 19, 233, 38, 226, 117, 222, 243, - 226, 117, 229, 194, 228, 73, 219, 18, 225, 183, 230, 193, 50, 225, 183, - 216, 248, 216, 148, 50, 224, 190, 52, 224, 190, 215, 211, 224, 190, 223, - 49, 224, 190, 223, 49, 52, 224, 190, 223, 49, 215, 211, 224, 190, 250, - 238, 219, 155, 233, 42, 254, 110, 223, 254, 78, 219, 155, 222, 247, 254, - 110, 223, 254, 78, 223, 107, 78, 52, 245, 31, 78, 235, 201, 226, 119, - 214, 180, 135, 216, 111, 250, 239, 235, 216, 225, 10, 253, 214, 240, 169, - 251, 113, 244, 2, 219, 95, 43, 42, 251, 158, 2, 224, 7, 44, 42, 251, 158, - 2, 224, 7, 52, 224, 13, 78, 224, 13, 245, 31, 78, 245, 31, 224, 13, 78, - 216, 70, 5, 245, 65, 223, 49, 225, 68, 50, 85, 140, 251, 113, 85, 97, - 251, 113, 121, 253, 216, 223, 49, 220, 150, 250, 1, 214, 163, 113, 253, - 215, 254, 158, 213, 188, 249, 217, 230, 182, 50, 217, 234, 248, 156, 235, - 193, 214, 180, 244, 52, 224, 141, 78, 134, 59, 224, 140, 224, 24, 224, - 190, 244, 11, 59, 224, 140, 244, 81, 59, 224, 140, 113, 59, 224, 140, - 244, 11, 59, 78, 246, 118, 249, 130, 215, 221, 67, 244, 11, 247, 118, - 231, 82, 11, 219, 18, 211, 209, 235, 63, 243, 227, 254, 52, 235, 191, - 216, 85, 235, 191, 220, 137, 235, 191, 225, 22, 235, 228, 217, 182, 217, - 251, 255, 5, 217, 182, 217, 251, 235, 228, 10, 244, 20, 220, 80, 255, 5, - 10, 244, 20, 220, 80, 229, 189, 21, 220, 81, 228, 69, 21, 220, 81, 218, - 23, 210, 86, 218, 23, 7, 4, 1, 73, 218, 23, 161, 218, 23, 189, 218, 23, - 194, 218, 23, 198, 218, 23, 195, 218, 23, 200, 218, 23, 96, 50, 218, 23, - 230, 181, 218, 23, 245, 98, 50, 218, 23, 43, 226, 3, 218, 23, 44, 226, 3, - 218, 23, 7, 4, 1, 230, 25, 218, 65, 210, 86, 218, 65, 110, 218, 65, 105, - 218, 65, 158, 218, 65, 161, 218, 65, 189, 218, 65, 194, 218, 65, 198, - 218, 65, 195, 218, 65, 200, 218, 65, 96, 50, 218, 65, 230, 181, 218, 65, - 245, 98, 50, 218, 65, 43, 226, 3, 218, 65, 44, 226, 3, 7, 218, 65, 4, 1, - 61, 7, 218, 65, 4, 1, 75, 7, 218, 65, 4, 1, 76, 7, 218, 65, 4, 1, 211, - 178, 7, 218, 65, 4, 1, 221, 195, 7, 218, 65, 4, 1, 242, 60, 7, 218, 65, - 4, 1, 235, 23, 7, 218, 65, 4, 1, 156, 7, 218, 65, 4, 1, 193, 7, 218, 65, - 4, 1, 230, 25, 7, 218, 65, 4, 1, 226, 105, 7, 218, 65, 4, 1, 222, 91, 7, - 218, 65, 4, 1, 217, 152, 245, 46, 50, 249, 227, 50, 249, 117, 50, 243, - 251, 243, 254, 50, 232, 198, 50, 230, 194, 50, 229, 210, 50, 225, 162, - 50, 222, 118, 50, 211, 217, 50, 166, 220, 49, 50, 247, 127, 50, 245, 47, - 50, 234, 76, 50, 215, 112, 50, 246, 101, 50, 243, 40, 225, 193, 50, 225, - 160, 50, 242, 109, 50, 253, 182, 50, 240, 228, 50, 250, 185, 50, 232, - 191, 216, 3, 50, 219, 0, 50, 216, 245, 50, 235, 241, 222, 118, 50, 38, - 43, 241, 255, 48, 38, 44, 241, 255, 48, 38, 199, 67, 232, 214, 226, 120, - 38, 219, 251, 67, 232, 214, 226, 120, 38, 254, 88, 80, 48, 38, 250, 2, - 80, 48, 38, 43, 80, 48, 38, 44, 80, 48, 38, 222, 234, 226, 120, 38, 250, - 2, 222, 234, 226, 120, 38, 254, 88, 222, 234, 226, 120, 38, 134, 170, 48, - 38, 244, 11, 170, 48, 38, 245, 146, 250, 35, 38, 245, 146, 218, 234, 38, - 245, 146, 247, 248, 38, 245, 146, 250, 36, 252, 180, 38, 43, 44, 80, 48, - 38, 245, 146, 221, 188, 38, 245, 146, 234, 135, 38, 245, 146, 214, 155, - 225, 7, 215, 225, 38, 223, 50, 219, 47, 226, 120, 38, 52, 67, 218, 103, - 226, 120, 38, 254, 98, 87, 38, 215, 211, 214, 182, 38, 211, 247, 251, - 140, 48, 38, 140, 80, 226, 120, 38, 199, 52, 219, 47, 226, 120, 38, 97, - 241, 255, 2, 252, 139, 246, 103, 38, 140, 241, 255, 2, 252, 139, 246, - 103, 38, 43, 80, 51, 38, 44, 80, 51, 38, 253, 217, 48, 255, 11, 226, 231, - 254, 251, 216, 42, 216, 196, 218, 74, 139, 6, 251, 66, 248, 71, 250, 178, - 250, 175, 232, 214, 87, 250, 240, 226, 231, 251, 26, 214, 189, 245, 48, - 249, 191, 221, 185, 248, 71, 244, 179, 119, 4, 243, 202, 119, 6, 242, 60, - 251, 219, 6, 242, 60, 139, 6, 242, 60, 225, 37, 249, 191, 225, 37, 249, - 192, 117, 113, 225, 108, 119, 6, 73, 251, 219, 6, 73, 119, 6, 156, 119, - 4, 156, 233, 149, 57, 252, 141, 87, 139, 6, 230, 25, 227, 196, 50, 219, - 31, 223, 119, 249, 162, 119, 6, 226, 105, 139, 6, 226, 105, 139, 6, 224, - 96, 119, 6, 153, 251, 219, 6, 153, 139, 6, 153, 224, 196, 217, 71, 223, - 62, 220, 132, 78, 217, 1, 50, 215, 253, 164, 50, 213, 240, 139, 6, 210, - 159, 226, 133, 50, 226, 221, 50, 235, 193, 226, 221, 50, 251, 219, 6, - 210, 159, 215, 94, 26, 4, 1, 235, 185, 234, 173, 50, 254, 107, 50, 119, - 6, 253, 158, 251, 219, 6, 251, 66, 245, 68, 87, 119, 4, 75, 119, 6, 75, - 119, 6, 245, 6, 215, 94, 6, 245, 6, 119, 6, 193, 119, 4, 76, 112, 87, - 252, 29, 87, 242, 202, 87, 248, 190, 87, 235, 232, 219, 29, 222, 187, 6, - 224, 96, 244, 182, 50, 139, 4, 225, 108, 139, 4, 243, 107, 139, 6, 243, - 107, 139, 6, 225, 108, 139, 230, 24, 218, 40, 215, 94, 35, 6, 243, 202, - 215, 94, 35, 6, 156, 223, 49, 35, 6, 156, 215, 94, 35, 6, 211, 117, 139, - 32, 6, 249, 60, 139, 32, 4, 249, 60, 139, 32, 4, 75, 139, 32, 4, 73, 139, - 32, 4, 235, 144, 224, 170, 232, 213, 215, 94, 254, 126, 225, 183, 50, - 254, 180, 215, 94, 4, 245, 6, 16, 31, 221, 252, 219, 29, 212, 114, 244, - 2, 123, 220, 118, 212, 114, 244, 2, 123, 228, 194, 212, 114, 244, 2, 123, - 216, 241, 212, 114, 244, 2, 123, 216, 168, 212, 114, 244, 2, 113, 216, - 166, 212, 114, 244, 2, 123, 244, 117, 212, 114, 244, 2, 113, 244, 116, - 212, 114, 244, 2, 134, 244, 116, 212, 114, 244, 2, 244, 11, 244, 116, - 212, 114, 244, 2, 123, 219, 115, 212, 114, 244, 2, 244, 81, 219, 113, - 212, 114, 244, 2, 123, 245, 188, 212, 114, 244, 2, 134, 245, 186, 212, - 114, 244, 2, 244, 81, 245, 186, 212, 114, 244, 2, 220, 122, 245, 186, - 244, 2, 227, 197, 110, 222, 198, 227, 198, 110, 222, 198, 227, 198, 105, - 222, 198, 227, 198, 158, 222, 198, 227, 198, 161, 222, 198, 227, 198, - 189, 222, 198, 227, 198, 194, 222, 198, 227, 198, 198, 222, 198, 227, - 198, 195, 222, 198, 227, 198, 200, 222, 198, 227, 198, 216, 247, 222, - 198, 227, 198, 245, 167, 222, 198, 227, 198, 215, 76, 222, 198, 227, 198, - 244, 114, 222, 198, 227, 198, 123, 240, 210, 222, 198, 227, 198, 244, 81, - 240, 210, 222, 198, 227, 198, 123, 216, 147, 4, 222, 198, 227, 198, 110, - 4, 222, 198, 227, 198, 105, 4, 222, 198, 227, 198, 158, 4, 222, 198, 227, - 198, 161, 4, 222, 198, 227, 198, 189, 4, 222, 198, 227, 198, 194, 4, 222, - 198, 227, 198, 198, 4, 222, 198, 227, 198, 195, 4, 222, 198, 227, 198, - 200, 4, 222, 198, 227, 198, 216, 247, 4, 222, 198, 227, 198, 245, 167, 4, - 222, 198, 227, 198, 215, 76, 4, 222, 198, 227, 198, 244, 114, 4, 222, - 198, 227, 198, 123, 240, 210, 4, 222, 198, 227, 198, 244, 81, 240, 210, - 4, 222, 198, 227, 198, 123, 216, 147, 222, 198, 227, 198, 123, 216, 148, - 251, 67, 249, 60, 222, 198, 227, 198, 244, 81, 216, 147, 222, 198, 227, - 198, 216, 248, 216, 147, 222, 198, 227, 198, 223, 49, 123, 240, 210, 7, - 4, 1, 223, 49, 251, 66, 222, 198, 227, 198, 219, 125, 233, 78, 17, 222, - 198, 227, 198, 244, 115, 245, 226, 17, 222, 198, 227, 198, 244, 115, 216, - 147, 222, 198, 227, 198, 123, 240, 211, 216, 147, 212, 114, 244, 2, 210, - 87, 216, 166, 140, 74, 214, 153, 74, 97, 74, 246, 104, 74, 43, 44, 74, - 120, 124, 74, 228, 56, 212, 9, 74, 228, 56, 245, 220, 74, 219, 28, 245, - 220, 74, 219, 28, 212, 9, 74, 140, 80, 2, 91, 97, 80, 2, 91, 140, 212, - 36, 74, 97, 212, 36, 74, 140, 113, 241, 234, 74, 214, 153, 113, 241, 234, - 74, 97, 113, 241, 234, 74, 246, 104, 113, 241, 234, 74, 140, 80, 2, 217, - 77, 97, 80, 2, 217, 77, 140, 80, 243, 243, 130, 214, 153, 80, 243, 243, - 130, 97, 80, 243, 243, 130, 246, 104, 80, 243, 243, 130, 120, 124, 80, 2, - 252, 127, 140, 80, 2, 103, 97, 80, 2, 103, 140, 80, 2, 232, 123, 97, 80, - 2, 232, 123, 43, 44, 212, 36, 74, 43, 44, 80, 2, 91, 246, 104, 210, 35, - 74, 214, 153, 80, 2, 216, 77, 233, 37, 214, 153, 80, 2, 216, 77, 222, - 241, 246, 104, 80, 2, 216, 77, 233, 37, 246, 104, 80, 2, 216, 77, 222, - 241, 97, 80, 2, 249, 161, 246, 103, 246, 104, 80, 2, 249, 161, 233, 37, - 254, 88, 216, 14, 220, 153, 74, 250, 2, 216, 14, 220, 153, 74, 228, 56, - 212, 9, 80, 216, 42, 199, 130, 140, 80, 216, 42, 252, 141, 117, 97, 80, - 216, 42, 130, 254, 88, 204, 250, 36, 74, 250, 2, 204, 250, 36, 74, 140, - 241, 255, 2, 252, 139, 214, 152, 140, 241, 255, 2, 252, 139, 246, 103, - 214, 153, 241, 255, 2, 252, 139, 222, 241, 214, 153, 241, 255, 2, 252, - 139, 233, 37, 97, 241, 255, 2, 252, 139, 214, 152, 97, 241, 255, 2, 252, - 139, 246, 103, 246, 104, 241, 255, 2, 252, 139, 222, 241, 246, 104, 241, - 255, 2, 252, 139, 233, 37, 97, 80, 117, 140, 74, 214, 153, 80, 140, 64, - 246, 104, 74, 140, 80, 117, 97, 74, 140, 226, 70, 253, 247, 214, 153, - 226, 70, 253, 247, 97, 226, 70, 253, 247, 246, 104, 226, 70, 253, 247, - 140, 241, 255, 117, 97, 241, 254, 97, 241, 255, 117, 140, 241, 254, 140, - 52, 80, 2, 91, 43, 44, 52, 80, 2, 91, 97, 52, 80, 2, 91, 140, 52, 74, - 214, 153, 52, 74, 97, 52, 74, 246, 104, 52, 74, 43, 44, 52, 74, 120, 124, - 52, 74, 228, 56, 212, 9, 52, 74, 228, 56, 245, 220, 52, 74, 219, 28, 245, - 220, 52, 74, 219, 28, 212, 9, 52, 74, 140, 215, 211, 74, 97, 215, 211, - 74, 140, 218, 230, 74, 97, 218, 230, 74, 214, 153, 80, 2, 52, 91, 246, - 104, 80, 2, 52, 91, 140, 248, 155, 74, 214, 153, 248, 155, 74, 97, 248, - 155, 74, 246, 104, 248, 155, 74, 140, 80, 216, 42, 130, 97, 80, 216, 42, - 130, 140, 71, 74, 214, 153, 71, 74, 97, 71, 74, 246, 104, 71, 74, 214, - 153, 71, 80, 243, 243, 130, 214, 153, 71, 80, 226, 197, 225, 214, 214, - 153, 71, 80, 226, 197, 225, 215, 2, 203, 130, 214, 153, 71, 80, 226, 197, - 225, 215, 2, 67, 130, 214, 153, 71, 52, 74, 214, 153, 71, 52, 80, 226, - 197, 225, 214, 97, 71, 80, 243, 243, 212, 56, 228, 56, 212, 9, 80, 216, - 42, 249, 160, 219, 28, 245, 220, 80, 216, 42, 249, 160, 120, 124, 71, 74, - 44, 80, 2, 4, 250, 35, 246, 104, 80, 140, 64, 214, 153, 74, 134, 97, 253, - 247, 140, 80, 2, 67, 91, 97, 80, 2, 67, 91, 43, 44, 80, 2, 67, 91, 140, - 80, 2, 52, 67, 91, 97, 80, 2, 52, 67, 91, 43, 44, 80, 2, 52, 67, 91, 140, - 226, 173, 74, 97, 226, 173, 74, 43, 44, 226, 173, 74, 31, 254, 154, 249, - 214, 225, 253, 247, 233, 216, 187, 245, 27, 216, 187, 247, 138, 228, 52, - 245, 28, 245, 152, 220, 127, 235, 245, 229, 221, 245, 170, 226, 231, 228, - 52, 254, 124, 245, 170, 226, 231, 4, 245, 170, 226, 231, 249, 186, 253, - 238, 231, 62, 247, 138, 228, 52, 249, 188, 253, 238, 231, 62, 4, 249, - 186, 253, 238, 231, 62, 245, 143, 64, 224, 172, 230, 24, 224, 180, 230, - 24, 249, 165, 230, 24, 218, 40, 230, 182, 50, 230, 180, 50, 59, 225, 22, - 247, 169, 219, 95, 220, 128, 230, 181, 253, 217, 226, 167, 222, 234, 226, - 167, 251, 114, 226, 167, 42, 222, 193, 249, 109, 222, 193, 244, 4, 222, - 193, 224, 168, 111, 235, 234, 44, 254, 109, 254, 109, 231, 88, 254, 109, - 218, 255, 254, 109, 247, 171, 247, 138, 228, 52, 247, 174, 226, 8, 111, - 228, 52, 226, 8, 111, 232, 146, 254, 118, 232, 146, 226, 158, 235, 198, - 214, 175, 235, 211, 52, 235, 211, 215, 211, 235, 211, 249, 182, 235, 211, - 218, 13, 235, 211, 213, 129, 235, 211, 250, 2, 235, 211, 250, 2, 249, - 182, 235, 211, 254, 88, 249, 182, 235, 211, 216, 186, 252, 67, 223, 137, - 224, 169, 59, 230, 181, 245, 33, 243, 46, 224, 169, 241, 57, 216, 89, - 226, 167, 223, 49, 182, 235, 193, 233, 65, 222, 91, 219, 157, 212, 35, - 211, 200, 224, 180, 228, 52, 182, 230, 182, 182, 253, 210, 128, 111, 228, - 52, 253, 210, 128, 111, 254, 48, 128, 111, 254, 48, 251, 88, 228, 52, - 255, 4, 128, 111, 229, 100, 254, 48, 228, 59, 255, 4, 128, 111, 254, 148, - 128, 111, 228, 52, 254, 148, 128, 111, 254, 148, 128, 177, 128, 111, 215, - 211, 182, 254, 155, 128, 111, 245, 94, 111, 243, 45, 245, 94, 111, 247, - 234, 252, 23, 254, 50, 216, 196, 232, 221, 243, 45, 128, 111, 254, 48, - 128, 216, 42, 177, 216, 196, 236, 15, 226, 231, 236, 15, 64, 177, 254, - 48, 128, 111, 249, 227, 245, 97, 245, 98, 249, 226, 222, 234, 236, 0, - 128, 111, 222, 234, 128, 111, 249, 154, 111, 245, 67, 245, 96, 111, 218, - 157, 245, 97, 248, 55, 128, 111, 128, 216, 42, 251, 78, 248, 72, 231, 88, - 251, 77, 224, 11, 128, 111, 228, 52, 128, 111, 240, 104, 111, 228, 52, - 240, 104, 111, 218, 109, 245, 94, 111, 233, 15, 177, 128, 111, 242, 130, - 177, 128, 111, 233, 15, 117, 128, 111, 242, 130, 117, 128, 111, 233, 15, - 251, 88, 228, 52, 128, 111, 242, 130, 251, 88, 228, 52, 128, 111, 230, - 97, 233, 14, 230, 97, 242, 129, 252, 23, 228, 52, 245, 94, 111, 228, 52, - 233, 14, 228, 52, 242, 129, 229, 100, 233, 15, 228, 59, 128, 111, 229, - 100, 242, 130, 228, 59, 128, 111, 233, 15, 177, 245, 94, 111, 242, 130, - 177, 245, 94, 111, 229, 100, 233, 15, 228, 59, 245, 94, 111, 229, 100, - 242, 130, 228, 59, 245, 94, 111, 233, 15, 177, 242, 129, 242, 130, 177, - 233, 14, 229, 100, 233, 15, 228, 59, 242, 129, 229, 100, 242, 130, 228, - 59, 233, 14, 224, 202, 218, 55, 224, 203, 177, 128, 111, 218, 56, 177, - 128, 111, 224, 203, 177, 245, 94, 111, 218, 56, 177, 245, 94, 111, 247, - 138, 228, 52, 224, 205, 247, 138, 228, 52, 218, 57, 218, 64, 226, 231, - 218, 22, 226, 231, 228, 52, 115, 218, 64, 226, 231, 228, 52, 115, 218, - 22, 226, 231, 218, 64, 64, 177, 128, 111, 218, 22, 64, 177, 128, 111, - 229, 100, 115, 218, 64, 64, 228, 59, 128, 111, 229, 100, 115, 218, 22, - 64, 228, 59, 128, 111, 218, 64, 64, 2, 228, 52, 128, 111, 218, 22, 64, 2, - 228, 52, 128, 111, 230, 81, 230, 82, 230, 83, 230, 82, 214, 175, 42, 236, - 15, 226, 231, 42, 226, 150, 226, 231, 42, 236, 15, 64, 177, 128, 111, 42, - 226, 150, 64, 177, 128, 111, 42, 250, 251, 42, 249, 102, 37, 225, 22, 37, - 230, 181, 37, 216, 85, 37, 247, 169, 219, 95, 37, 59, 226, 167, 37, 222, - 234, 226, 167, 37, 253, 217, 226, 167, 37, 245, 97, 37, 248, 156, 92, - 225, 22, 92, 230, 181, 92, 216, 85, 92, 59, 226, 167, 44, 217, 87, 43, - 217, 87, 124, 217, 87, 120, 217, 87, 253, 220, 230, 156, 215, 191, 244, - 25, 215, 211, 67, 252, 141, 44, 215, 93, 52, 67, 252, 141, 52, 44, 215, - 93, 247, 138, 228, 52, 224, 163, 228, 52, 215, 191, 247, 138, 228, 52, - 244, 26, 229, 102, 52, 67, 252, 141, 52, 44, 215, 93, 224, 203, 214, 184, - 223, 91, 218, 56, 214, 184, 223, 91, 228, 57, 218, 77, 226, 231, 249, - 186, 253, 238, 228, 57, 218, 76, 228, 57, 218, 77, 64, 177, 128, 111, - 249, 186, 253, 238, 228, 57, 218, 77, 177, 128, 111, 226, 150, 226, 231, - 236, 15, 226, 231, 230, 87, 241, 200, 249, 196, 231, 137, 235, 208, 211, - 145, 229, 202, 228, 58, 44, 254, 110, 2, 254, 25, 44, 215, 225, 230, 24, - 232, 146, 254, 118, 230, 24, 232, 146, 226, 158, 230, 24, 235, 198, 230, - 24, 214, 175, 247, 249, 226, 167, 59, 226, 167, 218, 157, 226, 167, 247, - 169, 216, 85, 251, 164, 43, 228, 57, 244, 181, 220, 149, 224, 180, 44, - 228, 57, 244, 181, 220, 149, 224, 180, 43, 220, 149, 224, 180, 44, 220, - 149, 224, 180, 223, 49, 216, 89, 245, 97, 249, 99, 232, 146, 226, 158, - 249, 99, 232, 146, 254, 118, 52, 218, 63, 52, 218, 21, 52, 235, 198, 52, - 214, 175, 225, 47, 128, 22, 226, 8, 111, 233, 15, 2, 247, 120, 242, 130, - 2, 247, 120, 213, 187, 230, 97, 233, 14, 213, 187, 230, 97, 242, 129, - 233, 15, 128, 216, 42, 177, 242, 129, 242, 130, 128, 216, 42, 177, 233, - 14, 128, 216, 42, 177, 233, 14, 128, 216, 42, 177, 242, 129, 128, 216, - 42, 177, 224, 202, 128, 216, 42, 177, 218, 55, 247, 138, 228, 52, 224, - 206, 177, 245, 99, 247, 138, 228, 52, 218, 58, 177, 245, 99, 228, 52, 42, - 236, 15, 64, 177, 128, 111, 228, 52, 42, 226, 150, 64, 177, 128, 111, 42, - 236, 15, 64, 177, 228, 52, 128, 111, 42, 226, 150, 64, 177, 228, 52, 128, - 111, 233, 15, 251, 88, 228, 52, 245, 94, 111, 242, 130, 251, 88, 228, 52, - 245, 94, 111, 224, 203, 251, 88, 228, 52, 245, 94, 111, 218, 56, 251, 88, - 228, 52, 245, 94, 111, 228, 52, 228, 57, 218, 77, 226, 231, 247, 138, - 228, 52, 249, 188, 253, 238, 228, 57, 218, 76, 228, 52, 228, 57, 218, 77, - 64, 177, 128, 111, 247, 138, 228, 52, 249, 188, 253, 238, 228, 57, 218, - 77, 177, 245, 99, 67, 245, 163, 230, 222, 203, 245, 163, 120, 44, 247, - 255, 245, 163, 124, 44, 247, 255, 245, 163, 245, 170, 64, 2, 199, 203, - 91, 245, 170, 64, 2, 67, 252, 141, 253, 207, 245, 143, 64, 203, 91, 4, - 245, 170, 64, 2, 67, 252, 141, 253, 207, 245, 143, 64, 203, 91, 245, 170, - 64, 2, 59, 48, 245, 170, 64, 2, 226, 123, 4, 245, 170, 64, 2, 226, 123, - 245, 170, 64, 2, 214, 183, 245, 170, 64, 2, 113, 203, 218, 90, 249, 186, - 2, 199, 203, 91, 249, 186, 2, 67, 252, 141, 253, 207, 245, 143, 64, 203, - 91, 4, 249, 186, 2, 67, 252, 141, 253, 207, 245, 143, 64, 203, 91, 249, - 186, 2, 226, 123, 4, 249, 186, 2, 226, 123, 210, 160, 187, 252, 173, 231, - 61, 247, 250, 50, 245, 172, 74, 240, 234, 120, 253, 249, 124, 253, 249, - 224, 175, 225, 165, 212, 32, 232, 213, 43, 250, 181, 44, 250, 181, 43, - 244, 57, 44, 244, 57, 251, 175, 44, 249, 132, 251, 175, 43, 249, 132, - 216, 14, 44, 249, 132, 216, 14, 43, 249, 132, 223, 49, 228, 52, 50, 42, - 232, 104, 254, 25, 221, 164, 221, 171, 217, 1, 223, 120, 224, 241, 235, - 238, 213, 165, 218, 234, 225, 41, 64, 235, 207, 50, 215, 94, 228, 52, 50, - 212, 42, 240, 236, 216, 14, 43, 249, 160, 216, 14, 44, 249, 160, 251, - 175, 43, 249, 160, 251, 175, 44, 249, 160, 216, 14, 163, 235, 211, 251, - 175, 163, 235, 211, 243, 240, 219, 75, 120, 253, 250, 252, 24, 113, 203, - 252, 129, 226, 160, 234, 138, 245, 90, 216, 42, 216, 196, 222, 251, 211, - 179, 236, 0, 115, 223, 117, 251, 163, 234, 137, 233, 42, 254, 110, 127, - 222, 247, 254, 110, 127, 245, 90, 216, 42, 216, 196, 233, 46, 252, 35, - 222, 233, 249, 70, 254, 155, 254, 1, 217, 181, 216, 4, 222, 123, 247, - 215, 226, 151, 249, 198, 217, 52, 219, 86, 249, 151, 249, 150, 254, 66, - 243, 225, 16, 240, 151, 254, 66, 243, 225, 16, 218, 228, 224, 27, 254, - 66, 243, 225, 16, 224, 28, 245, 99, 254, 66, 243, 225, 16, 224, 28, 247, - 174, 254, 66, 243, 225, 16, 224, 28, 247, 248, 254, 66, 243, 225, 16, - 224, 28, 235, 56, 254, 66, 243, 225, 16, 224, 28, 250, 35, 254, 66, 243, - 225, 16, 250, 36, 218, 135, 254, 66, 243, 225, 16, 250, 36, 235, 56, 254, - 66, 243, 225, 16, 219, 96, 130, 254, 66, 243, 225, 16, 252, 181, 130, - 254, 66, 243, 225, 16, 224, 28, 219, 95, 254, 66, 243, 225, 16, 224, 28, - 252, 180, 254, 66, 243, 225, 16, 224, 28, 233, 14, 254, 66, 243, 225, 16, - 224, 28, 242, 129, 254, 66, 243, 225, 16, 140, 214, 19, 254, 66, 243, - 225, 16, 97, 214, 19, 254, 66, 243, 225, 16, 224, 28, 140, 74, 254, 66, - 243, 225, 16, 224, 28, 97, 74, 254, 66, 243, 225, 16, 250, 36, 252, 180, - 254, 66, 243, 225, 16, 124, 217, 88, 214, 183, 254, 66, 243, 225, 16, - 248, 55, 218, 135, 254, 66, 243, 225, 16, 224, 28, 124, 250, 238, 254, - 66, 243, 225, 16, 224, 28, 248, 54, 254, 66, 243, 225, 16, 124, 217, 88, - 235, 56, 254, 66, 243, 225, 16, 214, 153, 214, 19, 254, 66, 243, 225, 16, - 224, 28, 214, 153, 74, 254, 66, 243, 225, 16, 120, 217, 88, 226, 123, - 254, 66, 243, 225, 16, 248, 66, 218, 135, 254, 66, 243, 225, 16, 224, 28, - 120, 250, 238, 254, 66, 243, 225, 16, 224, 28, 248, 65, 254, 66, 243, - 225, 16, 120, 217, 88, 235, 56, 254, 66, 243, 225, 16, 246, 104, 214, 19, - 254, 66, 243, 225, 16, 224, 28, 246, 104, 74, 254, 66, 243, 225, 16, 223, - 253, 214, 183, 254, 66, 243, 225, 16, 248, 55, 214, 183, 254, 66, 243, - 225, 16, 247, 249, 214, 183, 254, 66, 243, 225, 16, 235, 57, 214, 183, - 254, 66, 243, 225, 16, 250, 36, 214, 183, 254, 66, 243, 225, 16, 120, - 220, 5, 235, 56, 254, 66, 243, 225, 16, 223, 253, 224, 27, 254, 66, 243, - 225, 16, 250, 36, 218, 156, 254, 66, 243, 225, 16, 224, 28, 249, 226, - 254, 66, 243, 225, 16, 120, 217, 88, 248, 1, 254, 66, 243, 225, 16, 248, - 66, 248, 1, 254, 66, 243, 225, 16, 218, 157, 248, 1, 254, 66, 243, 225, - 16, 235, 57, 248, 1, 254, 66, 243, 225, 16, 250, 36, 248, 1, 254, 66, - 243, 225, 16, 124, 220, 5, 218, 135, 254, 66, 243, 225, 16, 43, 220, 5, - 218, 135, 254, 66, 243, 225, 16, 216, 89, 248, 1, 254, 66, 243, 225, 16, - 242, 130, 248, 1, 254, 66, 243, 225, 16, 249, 220, 130, 254, 66, 243, - 225, 16, 248, 66, 182, 254, 66, 243, 225, 16, 210, 34, 254, 66, 243, 225, - 16, 218, 136, 182, 254, 66, 243, 225, 16, 220, 151, 214, 183, 254, 66, - 243, 225, 16, 224, 28, 228, 52, 245, 99, 254, 66, 243, 225, 16, 224, 28, - 224, 12, 254, 66, 243, 225, 16, 124, 250, 239, 182, 254, 66, 243, 225, - 16, 120, 250, 239, 182, 254, 66, 243, 225, 16, 235, 185, 254, 66, 243, - 225, 16, 223, 37, 254, 66, 243, 225, 16, 226, 201, 254, 66, 243, 225, 16, - 254, 144, 214, 183, 254, 66, 243, 225, 16, 245, 101, 214, 183, 254, 66, - 243, 225, 16, 235, 186, 214, 183, 254, 66, 243, 225, 16, 226, 202, 214, - 183, 254, 66, 243, 225, 16, 254, 143, 228, 52, 250, 130, 78, 44, 254, - 110, 2, 246, 104, 210, 35, 74, 219, 235, 204, 251, 163, 252, 45, 87, 67, - 232, 214, 2, 230, 224, 247, 120, 235, 216, 87, 249, 183, 214, 181, 87, - 247, 189, 214, 181, 87, 245, 154, 87, 249, 210, 87, 71, 42, 2, 250, 175, - 67, 232, 213, 245, 130, 87, 254, 139, 234, 139, 87, 241, 213, 87, 37, - 203, 252, 141, 2, 228, 50, 37, 215, 226, 246, 106, 251, 135, 250, 36, 2, - 228, 54, 74, 214, 179, 87, 230, 137, 87, 240, 164, 87, 226, 174, 242, 59, - 87, 226, 174, 233, 147, 87, 225, 244, 87, 225, 243, 87, 247, 197, 249, - 97, 16, 244, 20, 105, 219, 50, 87, 254, 66, 243, 225, 16, 224, 27, 248, - 83, 220, 138, 234, 139, 87, 224, 192, 226, 75, 229, 82, 226, 75, 224, - 188, 221, 189, 87, 250, 17, 221, 189, 87, 43, 226, 4, 214, 160, 103, 43, - 226, 4, 245, 21, 43, 226, 4, 232, 108, 103, 44, 226, 4, 214, 160, 103, - 44, 226, 4, 245, 21, 44, 226, 4, 232, 108, 103, 43, 42, 251, 158, 214, - 160, 249, 160, 43, 42, 251, 158, 245, 21, 43, 42, 251, 158, 232, 108, - 249, 160, 44, 42, 251, 158, 214, 160, 249, 160, 44, 42, 251, 158, 245, - 21, 44, 42, 251, 158, 232, 108, 249, 160, 43, 249, 99, 251, 158, 214, - 160, 103, 43, 249, 99, 251, 158, 230, 224, 225, 101, 43, 249, 99, 251, - 158, 232, 108, 103, 249, 99, 251, 158, 245, 21, 44, 249, 99, 251, 158, - 214, 160, 103, 44, 249, 99, 251, 158, 230, 224, 225, 101, 44, 249, 99, - 251, 158, 232, 108, 103, 235, 212, 245, 21, 203, 232, 214, 245, 21, 214, - 160, 43, 177, 232, 108, 44, 249, 99, 251, 158, 221, 172, 214, 160, 44, - 177, 232, 108, 43, 249, 99, 251, 158, 221, 172, 218, 41, 216, 13, 218, - 41, 251, 174, 216, 14, 42, 127, 251, 175, 42, 127, 251, 175, 42, 251, - 158, 117, 216, 14, 42, 127, 34, 16, 251, 174, 43, 67, 93, 232, 213, 44, - 67, 93, 232, 213, 203, 221, 205, 232, 212, 203, 221, 205, 232, 211, 203, - 221, 205, 232, 210, 203, 221, 205, 232, 209, 248, 46, 16, 192, 67, 22, - 216, 14, 222, 251, 248, 46, 16, 192, 67, 22, 251, 175, 222, 251, 248, 46, - 16, 192, 67, 2, 250, 35, 248, 46, 16, 192, 124, 22, 203, 2, 250, 35, 248, - 46, 16, 192, 120, 22, 203, 2, 250, 35, 248, 46, 16, 192, 67, 2, 215, 225, - 248, 46, 16, 192, 124, 22, 203, 2, 215, 225, 248, 46, 16, 192, 120, 22, - 203, 2, 215, 225, 248, 46, 16, 192, 67, 22, 212, 35, 248, 46, 16, 192, - 124, 22, 203, 2, 212, 35, 248, 46, 16, 192, 120, 22, 203, 2, 212, 35, - 248, 46, 16, 192, 124, 22, 241, 44, 248, 46, 16, 192, 120, 22, 241, 44, - 248, 46, 16, 192, 67, 22, 216, 14, 233, 46, 248, 46, 16, 192, 67, 22, - 251, 175, 233, 46, 42, 244, 32, 223, 54, 87, 245, 182, 87, 67, 232, 214, - 245, 21, 231, 33, 251, 146, 231, 33, 199, 117, 219, 250, 231, 33, 219, - 251, 117, 232, 137, 231, 33, 199, 117, 113, 219, 237, 231, 33, 113, 219, - 238, 117, 232, 137, 231, 33, 113, 219, 238, 235, 64, 231, 33, 215, 208, - 231, 33, 216, 223, 231, 33, 225, 188, 245, 224, 242, 122, 243, 219, 216, - 14, 226, 3, 251, 175, 226, 3, 216, 14, 249, 99, 127, 251, 175, 249, 99, - 127, 216, 14, 216, 6, 220, 53, 127, 251, 175, 216, 6, 220, 53, 127, 71, - 215, 239, 252, 35, 222, 234, 2, 250, 35, 218, 120, 244, 64, 255, 17, 249, - 96, 245, 171, 235, 198, 248, 83, 245, 24, 87, 85, 222, 247, 52, 215, 225, - 85, 233, 42, 52, 215, 225, 85, 214, 162, 52, 215, 225, 85, 246, 105, 52, - 215, 225, 85, 222, 247, 52, 215, 226, 2, 67, 130, 85, 233, 42, 52, 215, - 226, 2, 67, 130, 85, 222, 247, 215, 226, 2, 52, 67, 130, 254, 173, 250, - 3, 218, 126, 216, 86, 250, 3, 240, 237, 2, 244, 50, 221, 241, 16, 31, - 227, 202, 16, 31, 218, 152, 64, 241, 233, 16, 31, 218, 152, 64, 216, 212, - 16, 31, 245, 143, 64, 216, 212, 16, 31, 245, 143, 64, 215, 243, 16, 31, - 245, 132, 16, 31, 255, 7, 16, 31, 252, 44, 16, 31, 252, 179, 16, 31, 203, - 217, 89, 16, 31, 232, 214, 244, 145, 16, 31, 67, 217, 89, 16, 31, 244, - 20, 244, 145, 16, 31, 250, 230, 223, 53, 16, 31, 220, 28, 226, 130, 16, - 31, 220, 28, 235, 255, 16, 31, 248, 151, 232, 204, 245, 77, 16, 31, 248, - 31, 249, 178, 110, 16, 31, 248, 31, 249, 178, 105, 16, 31, 248, 31, 249, - 178, 158, 16, 31, 248, 31, 249, 178, 161, 16, 31, 152, 255, 7, 16, 31, - 217, 177, 236, 62, 16, 31, 245, 143, 64, 215, 244, 251, 213, 16, 31, 251, - 5, 16, 31, 245, 143, 64, 231, 81, 16, 31, 218, 61, 16, 31, 245, 77, 16, - 31, 244, 107, 220, 137, 16, 31, 242, 121, 220, 137, 16, 31, 223, 121, - 220, 137, 16, 31, 214, 174, 220, 137, 16, 31, 219, 18, 16, 31, 248, 63, - 251, 216, 87, 204, 251, 163, 16, 31, 229, 85, 16, 31, 248, 64, 244, 20, - 105, 16, 31, 218, 62, 244, 20, 105, 226, 241, 103, 226, 241, 250, 152, - 226, 241, 244, 23, 226, 241, 235, 193, 244, 23, 226, 241, 252, 42, 251, - 124, 226, 241, 251, 170, 216, 111, 226, 241, 251, 155, 252, 146, 240, - 103, 226, 241, 254, 127, 64, 250, 129, 226, 241, 248, 156, 226, 241, 249, - 87, 255, 11, 227, 200, 226, 241, 52, 252, 180, 37, 21, 110, 37, 21, 105, - 37, 21, 158, 37, 21, 161, 37, 21, 189, 37, 21, 194, 37, 21, 198, 37, 21, - 195, 37, 21, 200, 37, 54, 216, 247, 37, 54, 245, 167, 37, 54, 215, 76, - 37, 54, 216, 164, 37, 54, 244, 5, 37, 54, 244, 118, 37, 54, 219, 119, 37, - 54, 220, 119, 37, 54, 245, 190, 37, 54, 228, 197, 37, 54, 215, 73, 88, - 21, 110, 88, 21, 105, 88, 21, 158, 88, 21, 161, 88, 21, 189, 88, 21, 194, - 88, 21, 198, 88, 21, 195, 88, 21, 200, 88, 54, 216, 247, 88, 54, 245, - 167, 88, 54, 215, 76, 88, 54, 216, 164, 88, 54, 244, 5, 88, 54, 244, 118, - 88, 54, 219, 119, 88, 54, 220, 119, 88, 54, 245, 190, 88, 54, 228, 197, - 88, 54, 215, 73, 21, 123, 243, 229, 218, 129, 21, 113, 243, 229, 218, - 129, 21, 134, 243, 229, 218, 129, 21, 244, 11, 243, 229, 218, 129, 21, - 244, 81, 243, 229, 218, 129, 21, 219, 125, 243, 229, 218, 129, 21, 220, - 122, 243, 229, 218, 129, 21, 245, 193, 243, 229, 218, 129, 21, 228, 200, - 243, 229, 218, 129, 54, 216, 248, 243, 229, 218, 129, 54, 245, 168, 243, - 229, 218, 129, 54, 215, 77, 243, 229, 218, 129, 54, 216, 165, 243, 229, - 218, 129, 54, 244, 6, 243, 229, 218, 129, 54, 244, 119, 243, 229, 218, - 129, 54, 219, 120, 243, 229, 218, 129, 54, 220, 120, 243, 229, 218, 129, - 54, 245, 191, 243, 229, 218, 129, 54, 228, 198, 243, 229, 218, 129, 54, - 215, 74, 243, 229, 218, 129, 88, 7, 4, 1, 61, 88, 7, 4, 1, 253, 158, 88, - 7, 4, 1, 251, 66, 88, 7, 4, 1, 249, 60, 88, 7, 4, 1, 75, 88, 7, 4, 1, - 245, 6, 88, 7, 4, 1, 243, 202, 88, 7, 4, 1, 242, 60, 88, 7, 4, 1, 73, 88, - 7, 4, 1, 235, 144, 88, 7, 4, 1, 235, 23, 88, 7, 4, 1, 156, 88, 7, 4, 1, - 193, 88, 7, 4, 1, 230, 25, 88, 7, 4, 1, 76, 88, 7, 4, 1, 226, 105, 88, 7, - 4, 1, 224, 96, 88, 7, 4, 1, 153, 88, 7, 4, 1, 222, 91, 88, 7, 4, 1, 217, - 152, 88, 7, 4, 1, 70, 88, 7, 4, 1, 214, 105, 88, 7, 4, 1, 212, 98, 88, 7, - 4, 1, 211, 178, 88, 7, 4, 1, 211, 117, 88, 7, 4, 1, 210, 159, 37, 7, 6, - 1, 61, 37, 7, 6, 1, 253, 158, 37, 7, 6, 1, 251, 66, 37, 7, 6, 1, 249, 60, - 37, 7, 6, 1, 75, 37, 7, 6, 1, 245, 6, 37, 7, 6, 1, 243, 202, 37, 7, 6, 1, - 242, 60, 37, 7, 6, 1, 73, 37, 7, 6, 1, 235, 144, 37, 7, 6, 1, 235, 23, - 37, 7, 6, 1, 156, 37, 7, 6, 1, 193, 37, 7, 6, 1, 230, 25, 37, 7, 6, 1, - 76, 37, 7, 6, 1, 226, 105, 37, 7, 6, 1, 224, 96, 37, 7, 6, 1, 153, 37, 7, - 6, 1, 222, 91, 37, 7, 6, 1, 217, 152, 37, 7, 6, 1, 70, 37, 7, 6, 1, 214, - 105, 37, 7, 6, 1, 212, 98, 37, 7, 6, 1, 211, 178, 37, 7, 6, 1, 211, 117, - 37, 7, 6, 1, 210, 159, 37, 7, 4, 1, 61, 37, 7, 4, 1, 253, 158, 37, 7, 4, - 1, 251, 66, 37, 7, 4, 1, 249, 60, 37, 7, 4, 1, 75, 37, 7, 4, 1, 245, 6, - 37, 7, 4, 1, 243, 202, 37, 7, 4, 1, 242, 60, 37, 7, 4, 1, 73, 37, 7, 4, - 1, 235, 144, 37, 7, 4, 1, 235, 23, 37, 7, 4, 1, 156, 37, 7, 4, 1, 193, - 37, 7, 4, 1, 230, 25, 37, 7, 4, 1, 76, 37, 7, 4, 1, 226, 105, 37, 7, 4, - 1, 224, 96, 37, 7, 4, 1, 153, 37, 7, 4, 1, 222, 91, 37, 7, 4, 1, 217, - 152, 37, 7, 4, 1, 70, 37, 7, 4, 1, 214, 105, 37, 7, 4, 1, 212, 98, 37, 7, - 4, 1, 211, 178, 37, 7, 4, 1, 211, 117, 37, 7, 4, 1, 210, 159, 37, 21, - 210, 86, 152, 37, 54, 245, 167, 152, 37, 54, 215, 76, 152, 37, 54, 216, - 164, 152, 37, 54, 244, 5, 152, 37, 54, 244, 118, 152, 37, 54, 219, 119, - 152, 37, 54, 220, 119, 152, 37, 54, 245, 190, 152, 37, 54, 228, 197, 152, - 37, 54, 215, 73, 52, 37, 21, 110, 52, 37, 21, 105, 52, 37, 21, 158, 52, - 37, 21, 161, 52, 37, 21, 189, 52, 37, 21, 194, 52, 37, 21, 198, 52, 37, - 21, 195, 52, 37, 21, 200, 52, 37, 54, 216, 247, 152, 37, 21, 210, 86, 93, - 99, 192, 241, 44, 93, 99, 114, 241, 44, 93, 99, 192, 213, 239, 93, 99, - 114, 213, 239, 93, 99, 192, 215, 211, 248, 157, 241, 44, 93, 99, 114, - 215, 211, 248, 157, 241, 44, 93, 99, 192, 215, 211, 248, 157, 213, 239, - 93, 99, 114, 215, 211, 248, 157, 213, 239, 93, 99, 192, 224, 24, 248, - 157, 241, 44, 93, 99, 114, 224, 24, 248, 157, 241, 44, 93, 99, 192, 224, - 24, 248, 157, 213, 239, 93, 99, 114, 224, 24, 248, 157, 213, 239, 93, 99, - 192, 124, 22, 222, 251, 93, 99, 124, 192, 22, 44, 241, 221, 93, 99, 124, - 114, 22, 44, 232, 230, 93, 99, 114, 124, 22, 222, 251, 93, 99, 192, 124, - 22, 233, 46, 93, 99, 124, 192, 22, 43, 241, 221, 93, 99, 124, 114, 22, - 43, 232, 230, 93, 99, 114, 124, 22, 233, 46, 93, 99, 192, 120, 22, 222, - 251, 93, 99, 120, 192, 22, 44, 241, 221, 93, 99, 120, 114, 22, 44, 232, - 230, 93, 99, 114, 120, 22, 222, 251, 93, 99, 192, 120, 22, 233, 46, 93, - 99, 120, 192, 22, 43, 241, 221, 93, 99, 120, 114, 22, 43, 232, 230, 93, - 99, 114, 120, 22, 233, 46, 93, 99, 192, 67, 22, 222, 251, 93, 99, 67, - 192, 22, 44, 241, 221, 93, 99, 120, 114, 22, 44, 124, 232, 230, 93, 99, - 124, 114, 22, 44, 120, 232, 230, 93, 99, 67, 114, 22, 44, 232, 230, 93, - 99, 124, 192, 22, 44, 120, 241, 221, 93, 99, 120, 192, 22, 44, 124, 241, - 221, 93, 99, 114, 67, 22, 222, 251, 93, 99, 192, 67, 22, 233, 46, 93, 99, - 67, 192, 22, 43, 241, 221, 93, 99, 120, 114, 22, 43, 124, 232, 230, 93, - 99, 124, 114, 22, 43, 120, 232, 230, 93, 99, 67, 114, 22, 43, 232, 230, - 93, 99, 124, 192, 22, 43, 120, 241, 221, 93, 99, 120, 192, 22, 43, 124, - 241, 221, 93, 99, 114, 67, 22, 233, 46, 93, 99, 192, 124, 22, 241, 44, - 93, 99, 43, 114, 22, 44, 124, 232, 230, 93, 99, 44, 114, 22, 43, 124, - 232, 230, 93, 99, 124, 192, 22, 203, 241, 221, 93, 99, 124, 114, 22, 203, - 232, 230, 93, 99, 44, 192, 22, 43, 124, 241, 221, 93, 99, 43, 192, 22, - 44, 124, 241, 221, 93, 99, 114, 124, 22, 241, 44, 93, 99, 192, 120, 22, - 241, 44, 93, 99, 43, 114, 22, 44, 120, 232, 230, 93, 99, 44, 114, 22, 43, - 120, 232, 230, 93, 99, 120, 192, 22, 203, 241, 221, 93, 99, 120, 114, 22, - 203, 232, 230, 93, 99, 44, 192, 22, 43, 120, 241, 221, 93, 99, 43, 192, - 22, 44, 120, 241, 221, 93, 99, 114, 120, 22, 241, 44, 93, 99, 192, 67, - 22, 241, 44, 93, 99, 43, 114, 22, 44, 67, 232, 230, 93, 99, 44, 114, 22, - 43, 67, 232, 230, 93, 99, 67, 192, 22, 203, 241, 221, 93, 99, 120, 114, - 22, 124, 203, 232, 230, 93, 99, 124, 114, 22, 120, 203, 232, 230, 93, 99, - 67, 114, 22, 203, 232, 230, 93, 99, 43, 120, 114, 22, 44, 124, 232, 230, - 93, 99, 44, 120, 114, 22, 43, 124, 232, 230, 93, 99, 43, 124, 114, 22, - 44, 120, 232, 230, 93, 99, 44, 124, 114, 22, 43, 120, 232, 230, 93, 99, - 124, 192, 22, 120, 203, 241, 221, 93, 99, 120, 192, 22, 124, 203, 241, - 221, 93, 99, 44, 192, 22, 43, 67, 241, 221, 93, 99, 43, 192, 22, 44, 67, - 241, 221, 93, 99, 114, 67, 22, 241, 44, 93, 99, 192, 52, 248, 157, 241, - 44, 93, 99, 114, 52, 248, 157, 241, 44, 93, 99, 192, 52, 248, 157, 213, - 239, 93, 99, 114, 52, 248, 157, 213, 239, 93, 99, 52, 241, 44, 93, 99, - 52, 213, 239, 93, 99, 124, 219, 155, 22, 44, 246, 113, 93, 99, 124, 52, - 22, 44, 219, 154, 93, 99, 52, 124, 22, 222, 251, 93, 99, 124, 219, 155, - 22, 43, 246, 113, 93, 99, 124, 52, 22, 43, 219, 154, 93, 99, 52, 124, 22, - 233, 46, 93, 99, 120, 219, 155, 22, 44, 246, 113, 93, 99, 120, 52, 22, - 44, 219, 154, 93, 99, 52, 120, 22, 222, 251, 93, 99, 120, 219, 155, 22, - 43, 246, 113, 93, 99, 120, 52, 22, 43, 219, 154, 93, 99, 52, 120, 22, - 233, 46, 93, 99, 67, 219, 155, 22, 44, 246, 113, 93, 99, 67, 52, 22, 44, - 219, 154, 93, 99, 52, 67, 22, 222, 251, 93, 99, 67, 219, 155, 22, 43, - 246, 113, 93, 99, 67, 52, 22, 43, 219, 154, 93, 99, 52, 67, 22, 233, 46, - 93, 99, 124, 219, 155, 22, 203, 246, 113, 93, 99, 124, 52, 22, 203, 219, - 154, 93, 99, 52, 124, 22, 241, 44, 93, 99, 120, 219, 155, 22, 203, 246, - 113, 93, 99, 120, 52, 22, 203, 219, 154, 93, 99, 52, 120, 22, 241, 44, - 93, 99, 67, 219, 155, 22, 203, 246, 113, 93, 99, 67, 52, 22, 203, 219, - 154, 93, 99, 52, 67, 22, 241, 44, 93, 99, 192, 254, 26, 124, 22, 222, - 251, 93, 99, 192, 254, 26, 124, 22, 233, 46, 93, 99, 192, 254, 26, 120, - 22, 233, 46, 93, 99, 192, 254, 26, 120, 22, 222, 251, 93, 99, 192, 247, - 255, 214, 160, 44, 216, 42, 232, 108, 233, 46, 93, 99, 192, 247, 255, - 214, 160, 43, 216, 42, 232, 108, 222, 251, 93, 99, 192, 247, 255, 249, - 130, 93, 99, 192, 233, 46, 93, 99, 192, 214, 163, 93, 99, 192, 222, 251, - 93, 99, 192, 246, 106, 93, 99, 114, 233, 46, 93, 99, 114, 214, 163, 93, - 99, 114, 222, 251, 93, 99, 114, 246, 106, 93, 99, 192, 43, 22, 114, 222, - 251, 93, 99, 192, 120, 22, 114, 246, 106, 93, 99, 114, 43, 22, 192, 222, - 251, 93, 99, 114, 120, 22, 192, 246, 106, 214, 160, 163, 251, 213, 232, - 108, 123, 245, 189, 251, 213, 232, 108, 123, 224, 22, 251, 213, 232, 108, - 134, 245, 187, 251, 213, 232, 108, 163, 251, 213, 232, 108, 244, 81, 245, - 187, 251, 213, 232, 108, 134, 224, 20, 251, 213, 232, 108, 220, 122, 245, - 187, 251, 213, 243, 229, 251, 213, 43, 220, 122, 245, 187, 251, 213, 43, - 134, 224, 20, 251, 213, 43, 244, 81, 245, 187, 251, 213, 43, 163, 251, - 213, 43, 134, 245, 187, 251, 213, 43, 123, 224, 22, 251, 213, 43, 123, - 245, 189, 251, 213, 44, 163, 251, 213, 192, 220, 92, 231, 82, 220, 92, - 248, 162, 220, 92, 214, 160, 123, 245, 189, 251, 213, 44, 123, 245, 189, - 251, 213, 224, 26, 232, 108, 233, 46, 224, 26, 232, 108, 222, 251, 224, - 26, 214, 160, 233, 46, 224, 26, 214, 160, 43, 22, 232, 108, 43, 22, 232, - 108, 222, 251, 224, 26, 214, 160, 43, 22, 232, 108, 222, 251, 224, 26, - 214, 160, 43, 22, 214, 160, 44, 22, 232, 108, 233, 46, 224, 26, 214, 160, - 43, 22, 214, 160, 44, 22, 232, 108, 222, 251, 224, 26, 214, 160, 222, - 251, 224, 26, 214, 160, 44, 22, 232, 108, 233, 46, 224, 26, 214, 160, 44, - 22, 232, 108, 43, 22, 232, 108, 222, 251, 85, 218, 234, 71, 218, 234, 71, - 42, 2, 222, 183, 249, 159, 71, 42, 249, 187, 85, 4, 218, 234, 42, 2, 203, - 244, 105, 42, 2, 67, 244, 105, 42, 2, 226, 144, 249, 126, 244, 105, 42, - 2, 214, 160, 43, 216, 42, 232, 108, 44, 244, 105, 42, 2, 214, 160, 44, - 216, 42, 232, 108, 43, 244, 105, 42, 2, 247, 255, 249, 126, 244, 105, 85, - 4, 218, 234, 71, 4, 218, 234, 85, 223, 116, 71, 223, 116, 85, 67, 223, - 116, 71, 67, 223, 116, 85, 226, 6, 71, 226, 6, 85, 214, 162, 215, 225, - 71, 214, 162, 215, 225, 85, 214, 162, 4, 215, 225, 71, 214, 162, 4, 215, - 225, 85, 222, 247, 215, 225, 71, 222, 247, 215, 225, 85, 222, 247, 4, - 215, 225, 71, 222, 247, 4, 215, 225, 85, 222, 247, 225, 8, 71, 222, 247, - 225, 8, 85, 246, 105, 215, 225, 71, 246, 105, 215, 225, 85, 246, 105, 4, - 215, 225, 71, 246, 105, 4, 215, 225, 85, 233, 42, 215, 225, 71, 233, 42, - 215, 225, 85, 233, 42, 4, 215, 225, 71, 233, 42, 4, 215, 225, 85, 233, - 42, 225, 8, 71, 233, 42, 225, 8, 85, 247, 248, 71, 247, 248, 71, 247, - 249, 249, 187, 85, 4, 247, 248, 244, 89, 232, 104, 71, 250, 35, 246, 118, - 250, 35, 250, 36, 2, 67, 244, 105, 251, 111, 85, 250, 35, 250, 36, 2, 43, - 163, 251, 221, 250, 36, 2, 44, 163, 251, 221, 250, 36, 2, 232, 108, 163, - 251, 221, 250, 36, 2, 214, 160, 163, 251, 221, 250, 36, 2, 214, 160, 44, - 224, 26, 251, 221, 250, 36, 2, 254, 155, 251, 88, 214, 160, 43, 224, 26, - 251, 221, 43, 163, 85, 250, 35, 44, 163, 85, 250, 35, 235, 194, 251, 113, - 235, 194, 71, 250, 35, 214, 160, 163, 235, 194, 71, 250, 35, 232, 108, - 163, 235, 194, 71, 250, 35, 214, 160, 43, 224, 26, 250, 33, 254, 25, 214, - 160, 44, 224, 26, 250, 33, 254, 25, 232, 108, 44, 224, 26, 250, 33, 254, - 25, 232, 108, 43, 224, 26, 250, 33, 254, 25, 214, 160, 163, 250, 35, 232, - 108, 163, 250, 35, 85, 232, 108, 44, 215, 225, 85, 232, 108, 43, 215, - 225, 85, 214, 160, 43, 215, 225, 85, 214, 160, 44, 215, 225, 71, 251, - 113, 42, 2, 43, 163, 251, 221, 42, 2, 44, 163, 251, 221, 42, 2, 214, 160, - 43, 247, 255, 163, 251, 221, 42, 2, 232, 108, 44, 247, 255, 163, 251, - 221, 71, 42, 2, 67, 251, 232, 232, 213, 71, 214, 162, 215, 226, 2, 247, - 120, 214, 162, 215, 226, 2, 43, 163, 251, 221, 214, 162, 215, 226, 2, 44, - 163, 251, 221, 233, 85, 250, 35, 71, 42, 2, 214, 160, 43, 224, 25, 71, - 42, 2, 232, 108, 43, 224, 25, 71, 42, 2, 232, 108, 44, 224, 25, 71, 42, - 2, 214, 160, 44, 224, 25, 71, 250, 36, 2, 214, 160, 43, 224, 25, 71, 250, - 36, 2, 232, 108, 43, 224, 25, 71, 250, 36, 2, 232, 108, 44, 224, 25, 71, - 250, 36, 2, 214, 160, 44, 224, 25, 214, 160, 43, 215, 225, 214, 160, 44, - 215, 225, 232, 108, 43, 215, 225, 71, 231, 82, 218, 234, 85, 231, 82, - 218, 234, 71, 231, 82, 4, 218, 234, 85, 231, 82, 4, 218, 234, 232, 108, - 44, 215, 225, 85, 218, 38, 2, 223, 132, 249, 247, 214, 194, 219, 60, 249, - 222, 85, 218, 156, 71, 218, 156, 232, 228, 216, 132, 218, 37, 253, 234, - 228, 71, 248, 38, 228, 71, 249, 195, 226, 163, 85, 217, 0, 71, 217, 0, - 252, 156, 251, 163, 252, 156, 93, 2, 250, 129, 252, 156, 93, 2, 211, 178, - 221, 254, 214, 195, 2, 223, 160, 246, 84, 240, 243, 252, 22, 71, 220, 2, - 225, 101, 85, 220, 2, 225, 101, 220, 87, 223, 49, 222, 187, 244, 55, 241, - 228, 251, 113, 85, 43, 225, 7, 235, 242, 85, 44, 225, 7, 235, 242, 71, - 43, 225, 7, 235, 242, 71, 120, 225, 7, 235, 242, 71, 44, 225, 7, 235, - 242, 71, 124, 225, 7, 235, 242, 219, 101, 22, 249, 129, 250, 219, 50, - 223, 172, 50, 251, 239, 50, 251, 25, 254, 102, 226, 145, 249, 130, 250, - 111, 223, 37, 249, 131, 64, 232, 118, 249, 131, 64, 235, 116, 218, 157, - 22, 249, 136, 244, 168, 87, 254, 248, 220, 89, 242, 22, 22, 219, 189, - 225, 220, 87, 210, 254, 211, 69, 215, 215, 31, 241, 223, 215, 215, 31, - 233, 107, 215, 215, 31, 244, 96, 215, 215, 31, 216, 133, 215, 215, 31, - 211, 239, 215, 215, 31, 212, 40, 215, 215, 31, 230, 115, 215, 215, 31, - 245, 223, 212, 1, 64, 248, 18, 71, 243, 239, 244, 190, 71, 219, 74, 244, - 190, 85, 219, 74, 244, 190, 71, 218, 38, 2, 223, 132, 244, 92, 224, 22, - 230, 128, 233, 80, 224, 22, 230, 128, 231, 54, 244, 138, 50, 245, 223, - 231, 190, 50, 235, 38, 221, 220, 214, 145, 229, 93, 225, 20, 254, 12, - 217, 40, 243, 52, 251, 3, 233, 19, 213, 150, 232, 238, 221, 191, 222, 19, - 250, 248, 254, 42, 225, 52, 71, 250, 117, 234, 78, 71, 250, 117, 224, 14, - 71, 250, 117, 222, 195, 71, 250, 117, 251, 231, 71, 250, 117, 234, 30, - 71, 250, 117, 225, 231, 85, 250, 117, 234, 78, 85, 250, 117, 224, 14, 85, - 250, 117, 222, 195, 85, 250, 117, 251, 231, 85, 250, 117, 234, 30, 85, - 250, 117, 225, 231, 85, 219, 16, 218, 50, 71, 241, 228, 218, 50, 71, 247, - 249, 218, 50, 85, 249, 245, 218, 50, 71, 219, 16, 218, 50, 85, 241, 228, - 218, 50, 85, 247, 249, 218, 50, 71, 249, 245, 218, 50, 240, 243, 218, - 238, 224, 22, 228, 47, 245, 189, 228, 47, 252, 73, 245, 189, 228, 42, - 252, 73, 219, 118, 228, 42, 230, 57, 244, 66, 50, 230, 57, 229, 188, 50, - 230, 57, 220, 76, 50, 212, 9, 188, 249, 130, 245, 220, 188, 249, 130, - 214, 171, 223, 112, 87, 223, 112, 16, 31, 215, 48, 225, 34, 223, 112, 16, - 31, 215, 47, 225, 34, 223, 112, 16, 31, 215, 46, 225, 34, 223, 112, 16, - 31, 215, 45, 225, 34, 223, 112, 16, 31, 215, 44, 225, 34, 223, 112, 16, - 31, 215, 43, 225, 34, 223, 112, 16, 31, 215, 42, 225, 34, 223, 112, 16, - 31, 243, 50, 231, 138, 85, 214, 171, 223, 112, 87, 223, 113, 226, 20, 87, - 225, 252, 226, 20, 87, 225, 174, 226, 20, 50, 211, 255, 87, 247, 241, - 244, 189, 247, 241, 244, 188, 247, 241, 244, 187, 247, 241, 244, 186, - 247, 241, 244, 185, 247, 241, 244, 184, 71, 250, 36, 2, 59, 222, 251, 71, - 250, 36, 2, 113, 247, 118, 85, 250, 36, 2, 71, 59, 222, 251, 85, 250, 36, - 2, 113, 71, 247, 118, 230, 142, 31, 211, 69, 230, 142, 31, 210, 253, 247, - 224, 31, 242, 131, 211, 69, 247, 224, 31, 233, 13, 210, 253, 247, 224, - 31, 233, 13, 211, 69, 247, 224, 31, 242, 131, 210, 253, 71, 244, 73, 85, - 244, 73, 242, 22, 22, 225, 104, 254, 120, 249, 128, 217, 235, 218, 164, - 64, 254, 226, 221, 206, 254, 169, 244, 51, 243, 60, 218, 164, 64, 241, - 202, 253, 199, 87, 244, 62, 226, 126, 71, 218, 156, 134, 232, 208, 249, - 175, 222, 251, 134, 232, 208, 249, 175, 233, 46, 212, 50, 50, 125, 213, - 130, 50, 246, 110, 244, 138, 50, 246, 110, 231, 190, 50, 235, 203, 244, - 138, 22, 231, 190, 50, 231, 190, 22, 244, 138, 50, 231, 190, 2, 218, 103, - 50, 231, 190, 2, 218, 103, 22, 231, 190, 22, 244, 138, 50, 67, 231, 190, - 2, 218, 103, 50, 203, 231, 190, 2, 218, 103, 50, 231, 82, 71, 250, 35, - 231, 82, 85, 250, 35, 231, 82, 4, 71, 250, 35, 231, 153, 87, 247, 167, - 87, 214, 169, 225, 251, 87, 249, 231, 243, 224, 214, 141, 229, 88, 250, - 161, 226, 61, 235, 44, 213, 185, 250, 93, 85, 230, 129, 232, 225, 220, - 112, 220, 147, 224, 5, 220, 130, 219, 55, 252, 159, 252, 126, 92, 234, - 138, 71, 246, 93, 231, 185, 71, 246, 93, 234, 78, 85, 246, 93, 231, 185, - 85, 246, 93, 234, 78, 219, 61, 211, 230, 219, 64, 218, 38, 252, 51, 249, - 247, 223, 159, 85, 219, 60, 216, 134, 249, 248, 22, 223, 159, 215, 94, - 71, 220, 2, 225, 101, 215, 94, 85, 220, 2, 225, 101, 71, 247, 249, 236, - 0, 218, 234, 249, 125, 233, 91, 247, 193, 250, 244, 226, 166, 225, 104, - 250, 245, 219, 88, 241, 212, 2, 71, 249, 130, 37, 249, 125, 233, 91, 250, - 153, 228, 75, 245, 124, 254, 141, 226, 191, 43, 212, 26, 215, 251, 85, - 215, 55, 43, 212, 26, 215, 251, 71, 215, 55, 43, 212, 26, 215, 251, 85, - 43, 233, 92, 231, 53, 71, 43, 233, 92, 231, 53, 246, 89, 219, 82, 50, - 114, 71, 246, 105, 215, 225, 43, 250, 0, 245, 124, 92, 221, 254, 244, - 175, 247, 255, 236, 0, 71, 250, 36, 236, 0, 85, 218, 234, 85, 215, 192, - 223, 60, 43, 245, 123, 223, 60, 43, 245, 122, 253, 211, 16, 31, 214, 145, - 114, 250, 36, 2, 218, 103, 22, 113, 170, 48, 225, 189, 222, 248, 235, - 205, 225, 189, 233, 43, 235, 205, 225, 189, 235, 193, 225, 189, 85, 249, - 131, 226, 197, 220, 29, 220, 17, 219, 229, 250, 61, 250, 226, 241, 157, - 219, 126, 243, 61, 211, 230, 240, 220, 243, 61, 2, 242, 12, 231, 173, 16, - 31, 232, 229, 230, 115, 214, 195, 226, 197, 242, 122, 244, 12, 244, 74, - 236, 0, 241, 59, 244, 129, 222, 14, 42, 244, 11, 249, 159, 219, 104, 240, - 112, 219, 107, 225, 168, 2, 252, 159, 216, 242, 235, 131, 252, 146, 87, - 241, 231, 242, 133, 87, 243, 232, 224, 142, 249, 103, 226, 197, 85, 218, - 234, 71, 244, 74, 2, 203, 230, 224, 85, 218, 104, 214, 160, 251, 217, - 221, 193, 85, 221, 193, 232, 108, 251, 217, 221, 193, 71, 221, 193, 71, - 114, 250, 130, 78, 217, 1, 232, 154, 50, 217, 53, 246, 88, 254, 191, 245, - 119, 223, 157, 244, 85, 223, 157, 242, 15, 213, 174, 242, 15, 211, 198, - 242, 15, 232, 108, 44, 225, 198, 225, 198, 214, 160, 44, 225, 198, 71, - 228, 230, 85, 228, 230, 250, 130, 78, 114, 250, 130, 78, 230, 84, 211, - 178, 114, 230, 84, 211, 178, 252, 156, 211, 178, 114, 252, 156, 211, 178, - 226, 126, 26, 249, 130, 114, 26, 249, 130, 204, 250, 175, 249, 130, 114, - 204, 250, 175, 249, 130, 7, 249, 130, 220, 91, 71, 7, 249, 130, 226, 126, - 7, 249, 130, 231, 187, 249, 130, 218, 157, 64, 248, 149, 244, 11, 217, - 15, 253, 216, 244, 11, 252, 157, 253, 216, 114, 244, 11, 252, 157, 253, - 216, 244, 11, 249, 243, 253, 216, 85, 244, 11, 225, 9, 218, 156, 71, 244, - 11, 225, 9, 218, 156, 219, 11, 218, 111, 226, 126, 71, 218, 156, 37, 71, - 218, 156, 204, 250, 175, 85, 218, 156, 85, 250, 175, 71, 218, 156, 226, - 126, 85, 218, 156, 114, 226, 126, 85, 218, 156, 225, 60, 218, 156, 220, - 91, 71, 218, 156, 114, 253, 216, 204, 250, 175, 253, 216, 245, 193, 218, - 244, 253, 216, 245, 193, 225, 9, 85, 218, 156, 245, 193, 225, 9, 225, 60, - 218, 156, 219, 125, 225, 9, 85, 218, 156, 245, 193, 225, 9, 223, 114, 85, - 218, 156, 114, 245, 193, 225, 9, 223, 114, 85, 218, 156, 215, 77, 225, 9, - 85, 218, 156, 219, 120, 225, 9, 253, 216, 217, 15, 253, 216, 204, 250, - 175, 217, 15, 253, 216, 114, 217, 15, 253, 216, 219, 125, 225, 157, 85, - 22, 71, 244, 54, 85, 244, 54, 71, 244, 54, 245, 193, 225, 157, 226, 126, - 85, 244, 54, 37, 204, 250, 175, 245, 193, 225, 9, 218, 156, 114, 217, 15, - 225, 60, 253, 216, 219, 62, 216, 105, 215, 218, 219, 62, 114, 250, 114, - 219, 62, 219, 13, 114, 219, 13, 252, 157, 253, 216, 245, 193, 217, 15, - 224, 171, 253, 216, 114, 245, 193, 217, 15, 224, 171, 253, 216, 249, 131, - 78, 220, 91, 71, 250, 35, 152, 92, 249, 131, 78, 232, 108, 44, 246, 86, - 71, 218, 234, 214, 160, 44, 246, 86, 71, 218, 234, 232, 108, 44, 220, 91, - 71, 218, 234, 214, 160, 44, 220, 91, 71, 218, 234, 85, 224, 13, 164, 226, - 147, 71, 224, 13, 164, 226, 147, 71, 245, 31, 164, 226, 147, 85, 247, - 249, 230, 182, 71, 211, 178, 114, 245, 31, 164, 87, 192, 67, 130, 231, - 82, 67, 130, 114, 67, 130, 114, 219, 155, 215, 94, 249, 220, 223, 254, - 164, 226, 147, 114, 219, 155, 249, 220, 223, 254, 164, 226, 147, 114, 52, - 215, 94, 249, 220, 223, 254, 164, 226, 147, 114, 52, 249, 220, 223, 254, - 164, 226, 147, 114, 121, 219, 155, 249, 220, 223, 254, 164, 226, 147, - 114, 121, 52, 249, 220, 223, 254, 164, 226, 147, 249, 91, 218, 140, 226, - 15, 5, 226, 147, 114, 245, 31, 164, 226, 147, 114, 241, 228, 245, 31, - 164, 226, 147, 114, 85, 241, 227, 222, 187, 114, 85, 241, 228, 251, 113, - 244, 55, 241, 227, 222, 187, 244, 55, 241, 228, 251, 113, 231, 82, 43, - 226, 4, 226, 147, 231, 82, 44, 226, 4, 226, 147, 231, 82, 244, 63, 43, - 226, 4, 226, 147, 231, 82, 244, 63, 44, 226, 4, 226, 147, 231, 82, 233, - 42, 254, 110, 251, 158, 226, 147, 231, 82, 222, 247, 254, 110, 251, 158, - 226, 147, 114, 233, 42, 254, 110, 223, 254, 164, 226, 147, 114, 222, 247, - 254, 110, 223, 254, 164, 226, 147, 114, 233, 42, 254, 110, 251, 158, 226, - 147, 114, 222, 247, 254, 110, 251, 158, 226, 147, 192, 43, 216, 6, 220, - 53, 251, 158, 226, 147, 192, 44, 216, 6, 220, 53, 251, 158, 226, 147, - 231, 82, 43, 249, 99, 251, 158, 226, 147, 231, 82, 44, 249, 99, 251, 158, - 226, 147, 247, 204, 152, 37, 21, 110, 247, 204, 152, 37, 21, 105, 247, - 204, 152, 37, 21, 158, 247, 204, 152, 37, 21, 161, 247, 204, 152, 37, 21, - 189, 247, 204, 152, 37, 21, 194, 247, 204, 152, 37, 21, 198, 247, 204, - 152, 37, 21, 195, 247, 204, 152, 37, 21, 200, 247, 204, 152, 37, 54, 216, - 247, 247, 204, 37, 35, 21, 110, 247, 204, 37, 35, 21, 105, 247, 204, 37, - 35, 21, 158, 247, 204, 37, 35, 21, 161, 247, 204, 37, 35, 21, 189, 247, - 204, 37, 35, 21, 194, 247, 204, 37, 35, 21, 198, 247, 204, 37, 35, 21, - 195, 247, 204, 37, 35, 21, 200, 247, 204, 37, 35, 54, 216, 247, 247, 204, - 152, 37, 35, 21, 110, 247, 204, 152, 37, 35, 21, 105, 247, 204, 152, 37, - 35, 21, 158, 247, 204, 152, 37, 35, 21, 161, 247, 204, 152, 37, 35, 21, - 189, 247, 204, 152, 37, 35, 21, 194, 247, 204, 152, 37, 35, 21, 198, 247, - 204, 152, 37, 35, 21, 195, 247, 204, 152, 37, 35, 21, 200, 247, 204, 152, - 37, 35, 54, 216, 247, 114, 211, 246, 97, 74, 114, 96, 50, 114, 230, 182, - 50, 114, 247, 169, 50, 114, 219, 28, 245, 220, 74, 114, 97, 74, 114, 228, - 56, 245, 220, 74, 246, 98, 225, 11, 97, 74, 114, 222, 184, 97, 74, 215, - 224, 97, 74, 114, 215, 224, 97, 74, 248, 155, 215, 224, 97, 74, 114, 248, - 155, 215, 224, 97, 74, 85, 97, 74, 216, 144, 216, 12, 97, 253, 249, 216, - 144, 251, 173, 97, 253, 249, 85, 97, 253, 249, 114, 85, 249, 91, 246, - 104, 22, 97, 74, 114, 85, 249, 91, 214, 153, 22, 97, 74, 218, 231, 85, - 97, 74, 114, 249, 206, 85, 97, 74, 222, 246, 71, 97, 74, 233, 41, 71, 97, - 74, 252, 183, 220, 91, 71, 97, 74, 243, 241, 220, 91, 71, 97, 74, 114, - 232, 108, 222, 245, 71, 97, 74, 114, 214, 160, 222, 245, 71, 97, 74, 228, - 49, 232, 108, 222, 245, 71, 97, 74, 249, 99, 232, 123, 228, 49, 214, 160, - 222, 245, 71, 97, 74, 37, 114, 71, 97, 74, 211, 252, 97, 74, 251, 220, - 219, 28, 245, 220, 74, 251, 220, 97, 74, 251, 220, 228, 56, 245, 220, 74, - 114, 251, 220, 219, 28, 245, 220, 74, 114, 251, 220, 97, 74, 114, 251, - 220, 228, 56, 245, 220, 74, 217, 17, 97, 74, 114, 217, 16, 97, 74, 212, - 18, 97, 74, 114, 212, 18, 97, 74, 226, 172, 97, 74, 52, 249, 99, 232, - 123, 134, 247, 214, 254, 109, 71, 215, 226, 249, 187, 4, 71, 215, 225, - 225, 171, 204, 218, 63, 204, 218, 21, 43, 222, 90, 252, 173, 248, 60, 44, - 222, 90, 252, 173, 248, 60, 177, 2, 59, 235, 215, 223, 50, 219, 47, 224, - 201, 218, 63, 218, 22, 224, 201, 219, 46, 67, 252, 141, 2, 203, 91, 11, - 222, 228, 247, 254, 199, 247, 168, 11, 244, 175, 247, 254, 92, 232, 146, - 254, 118, 92, 232, 146, 226, 158, 71, 247, 249, 2, 250, 173, 247, 120, - 22, 2, 247, 120, 245, 170, 64, 226, 170, 214, 152, 232, 108, 44, 249, - 161, 2, 247, 120, 214, 160, 43, 249, 161, 2, 247, 120, 43, 226, 128, 235, - 66, 44, 226, 128, 235, 66, 243, 229, 226, 128, 235, 66, 233, 85, 120, - 217, 87, 233, 85, 124, 217, 87, 43, 22, 44, 52, 215, 93, 43, 22, 44, 217, - 87, 43, 230, 87, 199, 44, 217, 87, 199, 43, 217, 87, 120, 217, 88, 2, - 250, 36, 48, 232, 105, 247, 173, 251, 78, 203, 222, 133, 71, 249, 205, - 247, 248, 71, 249, 205, 247, 249, 2, 140, 216, 114, 71, 249, 205, 247, - 249, 2, 97, 216, 114, 71, 42, 2, 140, 216, 114, 71, 42, 2, 97, 216, 114, - 11, 43, 71, 42, 127, 11, 44, 71, 42, 127, 11, 43, 254, 110, 127, 11, 44, - 254, 110, 127, 11, 43, 52, 254, 110, 127, 11, 44, 52, 254, 110, 127, 11, - 43, 71, 216, 6, 220, 53, 127, 11, 44, 71, 216, 6, 220, 53, 127, 11, 43, - 244, 63, 226, 3, 11, 44, 244, 63, 226, 3, 214, 153, 224, 24, 74, 246, - 104, 224, 24, 74, 254, 88, 243, 98, 250, 36, 74, 250, 2, 243, 98, 250, - 36, 74, 44, 80, 2, 37, 225, 22, 199, 140, 74, 199, 97, 74, 199, 43, 44, - 74, 199, 140, 52, 74, 199, 97, 52, 74, 199, 43, 44, 52, 74, 199, 140, 80, - 243, 243, 130, 199, 97, 80, 243, 243, 130, 199, 140, 52, 80, 243, 243, - 130, 199, 97, 52, 80, 243, 243, 130, 199, 97, 218, 230, 74, 46, 47, 251, - 215, 46, 47, 247, 117, 46, 47, 246, 245, 46, 47, 247, 116, 46, 47, 246, - 181, 46, 47, 247, 52, 46, 47, 246, 244, 46, 47, 247, 115, 46, 47, 246, - 149, 46, 47, 247, 20, 46, 47, 246, 212, 46, 47, 247, 83, 46, 47, 246, - 180, 46, 47, 247, 51, 46, 47, 246, 243, 46, 47, 247, 114, 46, 47, 246, - 133, 46, 47, 247, 4, 46, 47, 246, 196, 46, 47, 247, 67, 46, 47, 246, 164, - 46, 47, 247, 35, 46, 47, 246, 227, 46, 47, 247, 98, 46, 47, 246, 148, 46, - 47, 247, 19, 46, 47, 246, 211, 46, 47, 247, 82, 46, 47, 246, 179, 46, 47, - 247, 50, 46, 47, 246, 242, 46, 47, 247, 113, 46, 47, 246, 125, 46, 47, - 246, 252, 46, 47, 246, 188, 46, 47, 247, 59, 46, 47, 246, 156, 46, 47, - 247, 27, 46, 47, 246, 219, 46, 47, 247, 90, 46, 47, 246, 140, 46, 47, - 247, 11, 46, 47, 246, 203, 46, 47, 247, 74, 46, 47, 246, 171, 46, 47, - 247, 42, 46, 47, 246, 234, 46, 47, 247, 105, 46, 47, 246, 132, 46, 47, - 247, 3, 46, 47, 246, 195, 46, 47, 247, 66, 46, 47, 246, 163, 46, 47, 247, - 34, 46, 47, 246, 226, 46, 47, 247, 97, 46, 47, 246, 147, 46, 47, 247, 18, - 46, 47, 246, 210, 46, 47, 247, 81, 46, 47, 246, 178, 46, 47, 247, 49, 46, - 47, 246, 241, 46, 47, 247, 112, 46, 47, 246, 121, 46, 47, 246, 248, 46, - 47, 246, 184, 46, 47, 247, 55, 46, 47, 246, 152, 46, 47, 247, 23, 46, 47, - 246, 215, 46, 47, 247, 86, 46, 47, 246, 136, 46, 47, 247, 7, 46, 47, 246, - 199, 46, 47, 247, 70, 46, 47, 246, 167, 46, 47, 247, 38, 46, 47, 246, - 230, 46, 47, 247, 101, 46, 47, 246, 128, 46, 47, 246, 255, 46, 47, 246, - 191, 46, 47, 247, 62, 46, 47, 246, 159, 46, 47, 247, 30, 46, 47, 246, - 222, 46, 47, 247, 93, 46, 47, 246, 143, 46, 47, 247, 14, 46, 47, 246, - 206, 46, 47, 247, 77, 46, 47, 246, 174, 46, 47, 247, 45, 46, 47, 246, - 237, 46, 47, 247, 108, 46, 47, 246, 124, 46, 47, 246, 251, 46, 47, 246, - 187, 46, 47, 247, 58, 46, 47, 246, 155, 46, 47, 247, 26, 46, 47, 246, - 218, 46, 47, 247, 89, 46, 47, 246, 139, 46, 47, 247, 10, 46, 47, 246, - 202, 46, 47, 247, 73, 46, 47, 246, 170, 46, 47, 247, 41, 46, 47, 246, - 233, 46, 47, 247, 104, 46, 47, 246, 131, 46, 47, 247, 2, 46, 47, 246, - 194, 46, 47, 247, 65, 46, 47, 246, 162, 46, 47, 247, 33, 46, 47, 246, - 225, 46, 47, 247, 96, 46, 47, 246, 146, 46, 47, 247, 17, 46, 47, 246, - 209, 46, 47, 247, 80, 46, 47, 246, 177, 46, 47, 247, 48, 46, 47, 246, - 240, 46, 47, 247, 111, 46, 47, 246, 119, 46, 47, 246, 246, 46, 47, 246, - 182, 46, 47, 247, 53, 46, 47, 246, 150, 46, 47, 247, 21, 46, 47, 246, - 213, 46, 47, 247, 84, 46, 47, 246, 134, 46, 47, 247, 5, 46, 47, 246, 197, - 46, 47, 247, 68, 46, 47, 246, 165, 46, 47, 247, 36, 46, 47, 246, 228, 46, - 47, 247, 99, 46, 47, 246, 126, 46, 47, 246, 253, 46, 47, 246, 189, 46, - 47, 247, 60, 46, 47, 246, 157, 46, 47, 247, 28, 46, 47, 246, 220, 46, 47, - 247, 91, 46, 47, 246, 141, 46, 47, 247, 12, 46, 47, 246, 204, 46, 47, - 247, 75, 46, 47, 246, 172, 46, 47, 247, 43, 46, 47, 246, 235, 46, 47, - 247, 106, 46, 47, 246, 122, 46, 47, 246, 249, 46, 47, 246, 185, 46, 47, - 247, 56, 46, 47, 246, 153, 46, 47, 247, 24, 46, 47, 246, 216, 46, 47, - 247, 87, 46, 47, 246, 137, 46, 47, 247, 8, 46, 47, 246, 200, 46, 47, 247, - 71, 46, 47, 246, 168, 46, 47, 247, 39, 46, 47, 246, 231, 46, 47, 247, - 102, 46, 47, 246, 129, 46, 47, 247, 0, 46, 47, 246, 192, 46, 47, 247, 63, - 46, 47, 246, 160, 46, 47, 247, 31, 46, 47, 246, 223, 46, 47, 247, 94, 46, - 47, 246, 144, 46, 47, 247, 15, 46, 47, 246, 207, 46, 47, 247, 78, 46, 47, - 246, 175, 46, 47, 247, 46, 46, 47, 246, 238, 46, 47, 247, 109, 46, 47, - 246, 120, 46, 47, 246, 247, 46, 47, 246, 183, 46, 47, 247, 54, 46, 47, - 246, 151, 46, 47, 247, 22, 46, 47, 246, 214, 46, 47, 247, 85, 46, 47, - 246, 135, 46, 47, 247, 6, 46, 47, 246, 198, 46, 47, 247, 69, 46, 47, 246, - 166, 46, 47, 247, 37, 46, 47, 246, 229, 46, 47, 247, 100, 46, 47, 246, - 127, 46, 47, 246, 254, 46, 47, 246, 190, 46, 47, 247, 61, 46, 47, 246, - 158, 46, 47, 247, 29, 46, 47, 246, 221, 46, 47, 247, 92, 46, 47, 246, - 142, 46, 47, 247, 13, 46, 47, 246, 205, 46, 47, 247, 76, 46, 47, 246, - 173, 46, 47, 247, 44, 46, 47, 246, 236, 46, 47, 247, 107, 46, 47, 246, - 123, 46, 47, 246, 250, 46, 47, 246, 186, 46, 47, 247, 57, 46, 47, 246, - 154, 46, 47, 247, 25, 46, 47, 246, 217, 46, 47, 247, 88, 46, 47, 246, - 138, 46, 47, 247, 9, 46, 47, 246, 201, 46, 47, 247, 72, 46, 47, 246, 169, - 46, 47, 247, 40, 46, 47, 246, 232, 46, 47, 247, 103, 46, 47, 246, 130, - 46, 47, 247, 1, 46, 47, 246, 193, 46, 47, 247, 64, 46, 47, 246, 161, 46, - 47, 247, 32, 46, 47, 246, 224, 46, 47, 247, 95, 46, 47, 246, 145, 46, 47, - 247, 16, 46, 47, 246, 208, 46, 47, 247, 79, 46, 47, 246, 176, 46, 47, - 247, 47, 46, 47, 246, 239, 46, 47, 247, 110, 97, 215, 58, 80, 2, 67, 91, + 241, 53, 48, 7, 4, 1, 160, 2, 241, 53, 48, 7, 6, 1, 160, 2, 183, 7, 4, 1, + 160, 2, 183, 7, 6, 1, 160, 2, 250, 32, 22, 142, 7, 4, 1, 160, 2, 250, 32, + 22, 142, 7, 6, 1, 160, 2, 250, 32, 22, 242, 137, 7, 4, 1, 160, 2, 250, + 32, 22, 242, 137, 7, 6, 1, 160, 2, 250, 32, 22, 241, 53, 48, 7, 4, 1, + 160, 2, 250, 32, 22, 241, 53, 48, 7, 6, 1, 160, 2, 250, 32, 22, 183, 7, + 4, 1, 160, 2, 250, 32, 22, 183, 7, 6, 1, 160, 2, 250, 32, 22, 59, 51, 7, + 4, 1, 160, 2, 250, 32, 22, 59, 51, 7, 6, 1, 240, 155, 2, 241, 53, 48, 7, + 4, 1, 240, 155, 2, 241, 53, 48, 7, 6, 1, 240, 155, 2, 59, 51, 7, 4, 1, + 240, 155, 2, 59, 51, 7, 6, 1, 144, 2, 59, 51, 7, 4, 1, 144, 2, 59, 51, 7, + 6, 1, 144, 2, 241, 53, 48, 7, 4, 1, 144, 2, 241, 53, 48, 7, 6, 1, 144, 2, + 250, 32, 22, 142, 7, 4, 1, 144, 2, 250, 32, 22, 142, 7, 6, 1, 144, 2, + 250, 32, 22, 242, 137, 7, 4, 1, 144, 2, 250, 32, 22, 242, 137, 7, 6, 1, + 144, 2, 250, 32, 22, 241, 53, 48, 7, 4, 1, 144, 2, 250, 32, 22, 241, 53, + 48, 7, 6, 1, 144, 2, 250, 32, 22, 183, 7, 4, 1, 144, 2, 250, 32, 22, 183, + 7, 6, 1, 144, 2, 250, 32, 22, 59, 51, 7, 4, 1, 144, 2, 250, 32, 22, 59, + 51, 7, 6, 1, 144, 2, 240, 250, 22, 142, 7, 4, 1, 144, 2, 240, 250, 22, + 142, 7, 6, 1, 144, 2, 240, 250, 22, 242, 137, 7, 4, 1, 144, 2, 240, 250, + 22, 242, 137, 7, 6, 1, 144, 2, 240, 250, 22, 241, 53, 48, 7, 4, 1, 144, + 2, 240, 250, 22, 241, 53, 48, 7, 6, 1, 144, 2, 240, 250, 22, 183, 7, 4, + 1, 144, 2, 240, 250, 22, 183, 7, 6, 1, 144, 2, 240, 250, 22, 59, 51, 7, + 4, 1, 144, 2, 240, 250, 22, 59, 51, 7, 6, 1, 104, 2, 59, 51, 7, 4, 1, + 104, 2, 59, 51, 7, 6, 1, 104, 2, 241, 53, 48, 7, 4, 1, 104, 2, 241, 53, + 48, 7, 6, 1, 104, 2, 240, 250, 22, 142, 7, 4, 1, 104, 2, 240, 250, 22, + 142, 7, 6, 1, 104, 2, 240, 250, 22, 242, 137, 7, 4, 1, 104, 2, 240, 250, + 22, 242, 137, 7, 6, 1, 104, 2, 240, 250, 22, 241, 53, 48, 7, 4, 1, 104, + 2, 240, 250, 22, 241, 53, 48, 7, 6, 1, 104, 2, 240, 250, 22, 183, 7, 4, + 1, 104, 2, 240, 250, 22, 183, 7, 6, 1, 104, 2, 240, 250, 22, 59, 51, 7, + 4, 1, 104, 2, 240, 250, 22, 59, 51, 7, 6, 1, 211, 118, 2, 242, 137, 7, 4, + 1, 211, 118, 2, 242, 137, 7, 6, 1, 211, 118, 2, 59, 51, 7, 4, 1, 211, + 118, 2, 59, 51, 7, 6, 1, 211, 118, 2, 241, 53, 48, 7, 4, 1, 211, 118, 2, + 241, 53, 48, 7, 6, 1, 211, 118, 2, 183, 7, 4, 1, 211, 118, 2, 183, 7, 6, + 1, 230, 224, 232, 186, 7, 4, 1, 230, 224, 232, 186, 7, 6, 1, 230, 224, + 214, 105, 7, 4, 1, 230, 224, 214, 105, 7, 6, 1, 211, 118, 2, 232, 124, 7, + 4, 1, 211, 118, 2, 232, 124, 26, 4, 1, 254, 145, 2, 224, 155, 26, 4, 1, + 254, 145, 2, 248, 154, 26, 4, 1, 254, 145, 2, 224, 156, 22, 214, 13, 26, + 4, 1, 254, 145, 2, 248, 155, 22, 214, 13, 26, 4, 1, 254, 145, 2, 224, + 156, 22, 226, 111, 26, 4, 1, 254, 145, 2, 248, 155, 22, 226, 111, 26, 4, + 1, 254, 145, 2, 224, 156, 22, 225, 176, 26, 4, 1, 254, 145, 2, 248, 155, + 22, 225, 176, 26, 6, 1, 254, 145, 2, 224, 155, 26, 6, 1, 254, 145, 2, + 248, 154, 26, 6, 1, 254, 145, 2, 224, 156, 22, 214, 13, 26, 6, 1, 254, + 145, 2, 248, 155, 22, 214, 13, 26, 6, 1, 254, 145, 2, 224, 156, 22, 226, + 111, 26, 6, 1, 254, 145, 2, 248, 155, 22, 226, 111, 26, 6, 1, 254, 145, + 2, 224, 156, 22, 225, 176, 26, 6, 1, 254, 145, 2, 248, 155, 22, 225, 176, + 26, 4, 1, 245, 102, 2, 224, 155, 26, 4, 1, 245, 102, 2, 248, 154, 26, 4, + 1, 245, 102, 2, 224, 156, 22, 214, 13, 26, 4, 1, 245, 102, 2, 248, 155, + 22, 214, 13, 26, 4, 1, 245, 102, 2, 224, 156, 22, 226, 111, 26, 4, 1, + 245, 102, 2, 248, 155, 22, 226, 111, 26, 6, 1, 245, 102, 2, 224, 155, 26, + 6, 1, 245, 102, 2, 248, 154, 26, 6, 1, 245, 102, 2, 224, 156, 22, 214, + 13, 26, 6, 1, 245, 102, 2, 248, 155, 22, 214, 13, 26, 6, 1, 245, 102, 2, + 224, 156, 22, 226, 111, 26, 6, 1, 245, 102, 2, 248, 155, 22, 226, 111, + 26, 4, 1, 245, 65, 2, 224, 155, 26, 4, 1, 245, 65, 2, 248, 154, 26, 4, 1, + 245, 65, 2, 224, 156, 22, 214, 13, 26, 4, 1, 245, 65, 2, 248, 155, 22, + 214, 13, 26, 4, 1, 245, 65, 2, 224, 156, 22, 226, 111, 26, 4, 1, 245, 65, + 2, 248, 155, 22, 226, 111, 26, 4, 1, 245, 65, 2, 224, 156, 22, 225, 176, + 26, 4, 1, 245, 65, 2, 248, 155, 22, 225, 176, 26, 6, 1, 245, 65, 2, 224, + 155, 26, 6, 1, 245, 65, 2, 248, 154, 26, 6, 1, 245, 65, 2, 224, 156, 22, + 214, 13, 26, 6, 1, 245, 65, 2, 248, 155, 22, 214, 13, 26, 6, 1, 245, 65, + 2, 224, 156, 22, 226, 111, 26, 6, 1, 245, 65, 2, 248, 155, 22, 226, 111, + 26, 6, 1, 245, 65, 2, 224, 156, 22, 225, 176, 26, 6, 1, 245, 65, 2, 248, + 155, 22, 225, 176, 26, 4, 1, 235, 187, 2, 224, 155, 26, 4, 1, 235, 187, + 2, 248, 154, 26, 4, 1, 235, 187, 2, 224, 156, 22, 214, 13, 26, 4, 1, 235, + 187, 2, 248, 155, 22, 214, 13, 26, 4, 1, 235, 187, 2, 224, 156, 22, 226, + 111, 26, 4, 1, 235, 187, 2, 248, 155, 22, 226, 111, 26, 4, 1, 235, 187, + 2, 224, 156, 22, 225, 176, 26, 4, 1, 235, 187, 2, 248, 155, 22, 225, 176, + 26, 6, 1, 235, 187, 2, 224, 155, 26, 6, 1, 235, 187, 2, 248, 154, 26, 6, + 1, 235, 187, 2, 224, 156, 22, 214, 13, 26, 6, 1, 235, 187, 2, 248, 155, + 22, 214, 13, 26, 6, 1, 235, 187, 2, 224, 156, 22, 226, 111, 26, 6, 1, + 235, 187, 2, 248, 155, 22, 226, 111, 26, 6, 1, 235, 187, 2, 224, 156, 22, + 225, 176, 26, 6, 1, 235, 187, 2, 248, 155, 22, 225, 176, 26, 4, 1, 226, + 201, 2, 224, 155, 26, 4, 1, 226, 201, 2, 248, 154, 26, 4, 1, 226, 201, 2, + 224, 156, 22, 214, 13, 26, 4, 1, 226, 201, 2, 248, 155, 22, 214, 13, 26, + 4, 1, 226, 201, 2, 224, 156, 22, 226, 111, 26, 4, 1, 226, 201, 2, 248, + 155, 22, 226, 111, 26, 6, 1, 226, 201, 2, 224, 155, 26, 6, 1, 226, 201, + 2, 248, 154, 26, 6, 1, 226, 201, 2, 224, 156, 22, 214, 13, 26, 6, 1, 226, + 201, 2, 248, 155, 22, 214, 13, 26, 6, 1, 226, 201, 2, 224, 156, 22, 226, + 111, 26, 6, 1, 226, 201, 2, 248, 155, 22, 226, 111, 26, 4, 1, 214, 158, + 2, 224, 155, 26, 4, 1, 214, 158, 2, 248, 154, 26, 4, 1, 214, 158, 2, 224, + 156, 22, 214, 13, 26, 4, 1, 214, 158, 2, 248, 155, 22, 214, 13, 26, 4, 1, + 214, 158, 2, 224, 156, 22, 226, 111, 26, 4, 1, 214, 158, 2, 248, 155, 22, + 226, 111, 26, 4, 1, 214, 158, 2, 224, 156, 22, 225, 176, 26, 4, 1, 214, + 158, 2, 248, 155, 22, 225, 176, 26, 6, 1, 214, 158, 2, 248, 154, 26, 6, + 1, 214, 158, 2, 248, 155, 22, 214, 13, 26, 6, 1, 214, 158, 2, 248, 155, + 22, 226, 111, 26, 6, 1, 214, 158, 2, 248, 155, 22, 225, 176, 26, 4, 1, + 226, 203, 2, 224, 155, 26, 4, 1, 226, 203, 2, 248, 154, 26, 4, 1, 226, + 203, 2, 224, 156, 22, 214, 13, 26, 4, 1, 226, 203, 2, 248, 155, 22, 214, + 13, 26, 4, 1, 226, 203, 2, 224, 156, 22, 226, 111, 26, 4, 1, 226, 203, 2, + 248, 155, 22, 226, 111, 26, 4, 1, 226, 203, 2, 224, 156, 22, 225, 176, + 26, 4, 1, 226, 203, 2, 248, 155, 22, 225, 176, 26, 6, 1, 226, 203, 2, + 224, 155, 26, 6, 1, 226, 203, 2, 248, 154, 26, 6, 1, 226, 203, 2, 224, + 156, 22, 214, 13, 26, 6, 1, 226, 203, 2, 248, 155, 22, 214, 13, 26, 6, 1, + 226, 203, 2, 224, 156, 22, 226, 111, 26, 6, 1, 226, 203, 2, 248, 155, 22, + 226, 111, 26, 6, 1, 226, 203, 2, 224, 156, 22, 225, 176, 26, 6, 1, 226, + 203, 2, 248, 155, 22, 225, 176, 26, 4, 1, 254, 145, 2, 214, 13, 26, 4, 1, + 254, 145, 2, 226, 111, 26, 4, 1, 245, 102, 2, 214, 13, 26, 4, 1, 245, + 102, 2, 226, 111, 26, 4, 1, 245, 65, 2, 214, 13, 26, 4, 1, 245, 65, 2, + 226, 111, 26, 4, 1, 235, 187, 2, 214, 13, 26, 4, 1, 235, 187, 2, 226, + 111, 26, 4, 1, 226, 201, 2, 214, 13, 26, 4, 1, 226, 201, 2, 226, 111, 26, + 4, 1, 214, 158, 2, 214, 13, 26, 4, 1, 214, 158, 2, 226, 111, 26, 4, 1, + 226, 203, 2, 214, 13, 26, 4, 1, 226, 203, 2, 226, 111, 26, 4, 1, 254, + 145, 2, 224, 156, 22, 210, 219, 26, 4, 1, 254, 145, 2, 248, 155, 22, 210, + 219, 26, 4, 1, 254, 145, 2, 224, 156, 22, 214, 14, 22, 210, 219, 26, 4, + 1, 254, 145, 2, 248, 155, 22, 214, 14, 22, 210, 219, 26, 4, 1, 254, 145, + 2, 224, 156, 22, 226, 112, 22, 210, 219, 26, 4, 1, 254, 145, 2, 248, 155, + 22, 226, 112, 22, 210, 219, 26, 4, 1, 254, 145, 2, 224, 156, 22, 225, + 177, 22, 210, 219, 26, 4, 1, 254, 145, 2, 248, 155, 22, 225, 177, 22, + 210, 219, 26, 6, 1, 254, 145, 2, 224, 156, 22, 224, 168, 26, 6, 1, 254, + 145, 2, 248, 155, 22, 224, 168, 26, 6, 1, 254, 145, 2, 224, 156, 22, 214, + 14, 22, 224, 168, 26, 6, 1, 254, 145, 2, 248, 155, 22, 214, 14, 22, 224, + 168, 26, 6, 1, 254, 145, 2, 224, 156, 22, 226, 112, 22, 224, 168, 26, 6, + 1, 254, 145, 2, 248, 155, 22, 226, 112, 22, 224, 168, 26, 6, 1, 254, 145, + 2, 224, 156, 22, 225, 177, 22, 224, 168, 26, 6, 1, 254, 145, 2, 248, 155, + 22, 225, 177, 22, 224, 168, 26, 4, 1, 245, 65, 2, 224, 156, 22, 210, 219, + 26, 4, 1, 245, 65, 2, 248, 155, 22, 210, 219, 26, 4, 1, 245, 65, 2, 224, + 156, 22, 214, 14, 22, 210, 219, 26, 4, 1, 245, 65, 2, 248, 155, 22, 214, + 14, 22, 210, 219, 26, 4, 1, 245, 65, 2, 224, 156, 22, 226, 112, 22, 210, + 219, 26, 4, 1, 245, 65, 2, 248, 155, 22, 226, 112, 22, 210, 219, 26, 4, + 1, 245, 65, 2, 224, 156, 22, 225, 177, 22, 210, 219, 26, 4, 1, 245, 65, + 2, 248, 155, 22, 225, 177, 22, 210, 219, 26, 6, 1, 245, 65, 2, 224, 156, + 22, 224, 168, 26, 6, 1, 245, 65, 2, 248, 155, 22, 224, 168, 26, 6, 1, + 245, 65, 2, 224, 156, 22, 214, 14, 22, 224, 168, 26, 6, 1, 245, 65, 2, + 248, 155, 22, 214, 14, 22, 224, 168, 26, 6, 1, 245, 65, 2, 224, 156, 22, + 226, 112, 22, 224, 168, 26, 6, 1, 245, 65, 2, 248, 155, 22, 226, 112, 22, + 224, 168, 26, 6, 1, 245, 65, 2, 224, 156, 22, 225, 177, 22, 224, 168, 26, + 6, 1, 245, 65, 2, 248, 155, 22, 225, 177, 22, 224, 168, 26, 4, 1, 226, + 203, 2, 224, 156, 22, 210, 219, 26, 4, 1, 226, 203, 2, 248, 155, 22, 210, + 219, 26, 4, 1, 226, 203, 2, 224, 156, 22, 214, 14, 22, 210, 219, 26, 4, + 1, 226, 203, 2, 248, 155, 22, 214, 14, 22, 210, 219, 26, 4, 1, 226, 203, + 2, 224, 156, 22, 226, 112, 22, 210, 219, 26, 4, 1, 226, 203, 2, 248, 155, + 22, 226, 112, 22, 210, 219, 26, 4, 1, 226, 203, 2, 224, 156, 22, 225, + 177, 22, 210, 219, 26, 4, 1, 226, 203, 2, 248, 155, 22, 225, 177, 22, + 210, 219, 26, 6, 1, 226, 203, 2, 224, 156, 22, 224, 168, 26, 6, 1, 226, + 203, 2, 248, 155, 22, 224, 168, 26, 6, 1, 226, 203, 2, 224, 156, 22, 214, + 14, 22, 224, 168, 26, 6, 1, 226, 203, 2, 248, 155, 22, 214, 14, 22, 224, + 168, 26, 6, 1, 226, 203, 2, 224, 156, 22, 226, 112, 22, 224, 168, 26, 6, + 1, 226, 203, 2, 248, 155, 22, 226, 112, 22, 224, 168, 26, 6, 1, 226, 203, + 2, 224, 156, 22, 225, 177, 22, 224, 168, 26, 6, 1, 226, 203, 2, 248, 155, + 22, 225, 177, 22, 224, 168, 26, 4, 1, 254, 145, 2, 213, 120, 26, 4, 1, + 254, 145, 2, 231, 233, 26, 4, 1, 254, 145, 2, 214, 14, 22, 210, 219, 26, + 4, 1, 254, 145, 2, 210, 219, 26, 4, 1, 254, 145, 2, 226, 112, 22, 210, + 219, 26, 4, 1, 254, 145, 2, 225, 176, 26, 4, 1, 254, 145, 2, 225, 177, + 22, 210, 219, 26, 6, 1, 254, 145, 2, 213, 120, 26, 6, 1, 254, 145, 2, + 231, 233, 26, 6, 1, 254, 145, 2, 214, 13, 26, 6, 1, 254, 145, 2, 226, + 111, 26, 6, 1, 254, 145, 2, 224, 168, 26, 234, 3, 26, 224, 168, 26, 224, + 155, 26, 225, 176, 26, 247, 253, 22, 225, 176, 26, 4, 1, 245, 65, 2, 214, + 14, 22, 210, 219, 26, 4, 1, 245, 65, 2, 210, 219, 26, 4, 1, 245, 65, 2, + 226, 112, 22, 210, 219, 26, 4, 1, 245, 65, 2, 225, 176, 26, 4, 1, 245, + 65, 2, 225, 177, 22, 210, 219, 26, 6, 1, 245, 102, 2, 214, 13, 26, 6, 1, + 245, 102, 2, 226, 111, 26, 6, 1, 245, 65, 2, 214, 13, 26, 6, 1, 245, 65, + 2, 226, 111, 26, 6, 1, 245, 65, 2, 224, 168, 26, 224, 156, 22, 214, 13, + 26, 224, 156, 22, 226, 111, 26, 224, 156, 22, 225, 176, 26, 4, 1, 235, + 187, 2, 213, 120, 26, 4, 1, 235, 187, 2, 231, 233, 26, 4, 1, 235, 187, 2, + 247, 253, 22, 214, 13, 26, 4, 1, 235, 187, 2, 247, 253, 22, 226, 111, 26, + 4, 1, 235, 187, 2, 225, 176, 26, 4, 1, 235, 187, 2, 247, 253, 22, 225, + 176, 26, 6, 1, 235, 187, 2, 213, 120, 26, 6, 1, 235, 187, 2, 231, 233, + 26, 6, 1, 235, 187, 2, 214, 13, 26, 6, 1, 235, 187, 2, 226, 111, 26, 248, + 155, 22, 214, 13, 26, 248, 155, 22, 226, 111, 26, 248, 155, 22, 225, 176, + 26, 4, 1, 214, 158, 2, 213, 120, 26, 4, 1, 214, 158, 2, 231, 233, 26, 4, + 1, 214, 158, 2, 247, 253, 22, 214, 13, 26, 4, 1, 214, 158, 2, 247, 253, + 22, 226, 111, 26, 4, 1, 223, 39, 2, 224, 155, 26, 4, 1, 223, 39, 2, 248, + 154, 26, 4, 1, 214, 158, 2, 225, 176, 26, 4, 1, 214, 158, 2, 247, 253, + 22, 225, 176, 26, 6, 1, 214, 158, 2, 213, 120, 26, 6, 1, 214, 158, 2, + 231, 233, 26, 6, 1, 214, 158, 2, 214, 13, 26, 6, 1, 214, 158, 2, 226, + 111, 26, 6, 1, 223, 39, 2, 248, 154, 26, 247, 253, 22, 214, 13, 26, 247, + 253, 22, 226, 111, 26, 214, 13, 26, 4, 1, 226, 203, 2, 214, 14, 22, 210, + 219, 26, 4, 1, 226, 203, 2, 210, 219, 26, 4, 1, 226, 203, 2, 226, 112, + 22, 210, 219, 26, 4, 1, 226, 203, 2, 225, 176, 26, 4, 1, 226, 203, 2, + 225, 177, 22, 210, 219, 26, 6, 1, 226, 201, 2, 214, 13, 26, 6, 1, 226, + 201, 2, 226, 111, 26, 6, 1, 226, 203, 2, 214, 13, 26, 6, 1, 226, 203, 2, + 226, 111, 26, 6, 1, 226, 203, 2, 224, 168, 26, 226, 111, 26, 248, 154, + 245, 152, 224, 28, 245, 161, 224, 28, 245, 152, 219, 19, 245, 161, 219, + 19, 216, 142, 219, 19, 244, 10, 219, 19, 219, 124, 219, 19, 244, 113, + 219, 19, 224, 142, 219, 19, 216, 171, 219, 19, 242, 36, 219, 19, 210, 87, + 211, 245, 219, 19, 210, 87, 211, 245, 228, 68, 210, 87, 211, 245, 235, + 64, 233, 39, 78, 222, 244, 78, 240, 169, 228, 69, 240, 169, 244, 113, + 248, 157, 245, 152, 248, 157, 245, 161, 248, 157, 203, 130, 52, 67, 232, + 214, 52, 121, 232, 214, 43, 219, 156, 223, 255, 78, 44, 219, 156, 223, + 255, 78, 219, 156, 232, 110, 223, 255, 78, 219, 156, 241, 164, 223, 255, + 78, 43, 52, 223, 255, 78, 44, 52, 223, 255, 78, 52, 232, 110, 223, 255, + 78, 52, 241, 164, 223, 255, 78, 248, 206, 52, 248, 206, 251, 114, 215, + 223, 251, 114, 123, 59, 233, 57, 113, 59, 233, 57, 203, 245, 164, 240, + 167, 225, 11, 232, 215, 220, 138, 226, 16, 220, 138, 233, 39, 245, 159, + 222, 244, 245, 159, 224, 247, 247, 197, 244, 20, 233, 39, 226, 118, 222, + 244, 226, 118, 229, 195, 228, 74, 219, 19, 225, 184, 230, 194, 50, 225, + 184, 216, 249, 216, 149, 50, 224, 191, 52, 224, 191, 215, 212, 224, 191, + 223, 50, 224, 191, 223, 50, 52, 224, 191, 223, 50, 215, 212, 224, 191, + 250, 239, 219, 156, 233, 43, 254, 111, 223, 255, 78, 219, 156, 222, 248, + 254, 111, 223, 255, 78, 223, 108, 78, 52, 245, 32, 78, 235, 202, 226, + 120, 214, 180, 135, 216, 112, 250, 240, 235, 217, 225, 11, 253, 215, 240, + 170, 251, 114, 244, 3, 219, 96, 43, 42, 251, 159, 2, 224, 8, 44, 42, 251, + 159, 2, 224, 8, 52, 224, 14, 78, 224, 14, 245, 32, 78, 245, 32, 224, 14, + 78, 216, 71, 5, 245, 66, 223, 50, 225, 69, 50, 85, 140, 251, 114, 85, 97, + 251, 114, 121, 253, 217, 223, 50, 220, 151, 250, 2, 214, 163, 113, 253, + 216, 254, 159, 213, 188, 249, 218, 230, 183, 50, 217, 235, 248, 157, 235, + 194, 214, 180, 244, 53, 224, 142, 78, 134, 59, 224, 141, 224, 25, 224, + 191, 244, 12, 59, 224, 141, 244, 82, 59, 224, 141, 113, 59, 224, 141, + 244, 12, 59, 78, 246, 119, 249, 131, 215, 222, 67, 244, 12, 247, 119, + 231, 83, 11, 219, 19, 211, 209, 235, 64, 243, 228, 254, 53, 235, 192, + 216, 86, 235, 192, 220, 138, 235, 192, 225, 23, 235, 229, 217, 183, 217, + 252, 255, 6, 217, 183, 217, 252, 235, 229, 10, 244, 21, 220, 81, 255, 6, + 10, 244, 21, 220, 81, 229, 190, 21, 220, 82, 228, 70, 21, 220, 82, 218, + 24, 210, 86, 218, 24, 7, 4, 1, 73, 218, 24, 161, 218, 24, 189, 218, 24, + 194, 218, 24, 198, 218, 24, 195, 218, 24, 200, 218, 24, 96, 50, 218, 24, + 230, 182, 218, 24, 245, 99, 50, 218, 24, 43, 226, 4, 218, 24, 44, 226, 4, + 218, 24, 7, 4, 1, 230, 26, 218, 66, 210, 86, 218, 66, 110, 218, 66, 105, + 218, 66, 158, 218, 66, 161, 218, 66, 189, 218, 66, 194, 218, 66, 198, + 218, 66, 195, 218, 66, 200, 218, 66, 96, 50, 218, 66, 230, 182, 218, 66, + 245, 99, 50, 218, 66, 43, 226, 4, 218, 66, 44, 226, 4, 7, 218, 66, 4, 1, + 61, 7, 218, 66, 4, 1, 75, 7, 218, 66, 4, 1, 76, 7, 218, 66, 4, 1, 211, + 178, 7, 218, 66, 4, 1, 221, 196, 7, 218, 66, 4, 1, 242, 61, 7, 218, 66, + 4, 1, 235, 24, 7, 218, 66, 4, 1, 156, 7, 218, 66, 4, 1, 193, 7, 218, 66, + 4, 1, 230, 26, 7, 218, 66, 4, 1, 226, 106, 7, 218, 66, 4, 1, 222, 92, 7, + 218, 66, 4, 1, 217, 153, 245, 47, 50, 249, 228, 50, 249, 118, 50, 243, + 252, 243, 255, 50, 232, 199, 50, 230, 195, 50, 229, 211, 50, 225, 163, + 50, 222, 119, 50, 211, 217, 50, 166, 220, 50, 50, 247, 128, 50, 245, 48, + 50, 234, 77, 50, 215, 113, 50, 246, 102, 50, 243, 41, 225, 194, 50, 225, + 161, 50, 242, 110, 50, 253, 183, 50, 240, 229, 50, 250, 186, 50, 232, + 192, 216, 4, 50, 219, 1, 50, 216, 246, 50, 235, 242, 222, 119, 50, 215, + 97, 232, 199, 50, 38, 43, 242, 0, 48, 38, 44, 242, 0, 48, 38, 199, 67, + 232, 215, 226, 121, 38, 219, 252, 67, 232, 215, 226, 121, 38, 254, 89, + 80, 48, 38, 250, 3, 80, 48, 38, 43, 80, 48, 38, 44, 80, 48, 38, 222, 235, + 226, 121, 38, 250, 3, 222, 235, 226, 121, 38, 254, 89, 222, 235, 226, + 121, 38, 134, 170, 48, 38, 244, 12, 170, 48, 38, 245, 147, 250, 36, 38, + 245, 147, 218, 235, 38, 245, 147, 247, 249, 38, 245, 147, 250, 37, 252, + 181, 38, 43, 44, 80, 48, 38, 245, 147, 221, 189, 38, 245, 147, 234, 136, + 38, 245, 147, 214, 155, 225, 8, 215, 226, 38, 223, 51, 219, 48, 226, 121, + 38, 52, 67, 218, 104, 226, 121, 38, 254, 99, 87, 38, 215, 212, 214, 182, + 38, 211, 247, 251, 141, 48, 38, 140, 80, 226, 121, 38, 199, 52, 219, 48, + 226, 121, 38, 97, 242, 0, 2, 252, 140, 246, 104, 38, 140, 242, 0, 2, 252, + 140, 246, 104, 38, 43, 80, 51, 38, 44, 80, 51, 38, 253, 218, 48, 255, 12, + 226, 232, 254, 252, 216, 43, 216, 197, 218, 75, 139, 6, 251, 67, 248, 72, + 250, 179, 250, 176, 232, 215, 87, 250, 241, 226, 232, 251, 27, 214, 189, + 245, 49, 249, 192, 221, 186, 248, 72, 244, 180, 119, 4, 243, 203, 119, 6, + 242, 61, 251, 220, 6, 242, 61, 139, 6, 242, 61, 225, 38, 249, 192, 225, + 38, 249, 193, 117, 113, 225, 109, 119, 6, 73, 251, 220, 6, 73, 119, 6, + 156, 119, 4, 156, 233, 150, 57, 252, 142, 87, 139, 6, 230, 26, 227, 197, + 50, 219, 32, 223, 120, 249, 163, 119, 6, 226, 106, 139, 6, 226, 106, 139, + 6, 224, 97, 119, 6, 153, 251, 220, 6, 153, 139, 6, 153, 224, 197, 217, + 72, 223, 63, 220, 133, 78, 217, 2, 50, 215, 254, 164, 50, 213, 240, 139, + 6, 210, 159, 226, 134, 50, 226, 222, 50, 235, 194, 226, 222, 50, 251, + 220, 6, 210, 159, 215, 94, 26, 4, 1, 235, 186, 234, 174, 50, 254, 108, + 50, 119, 6, 253, 159, 251, 220, 6, 251, 67, 245, 69, 87, 119, 4, 75, 119, + 6, 75, 119, 6, 245, 7, 215, 94, 6, 245, 7, 119, 6, 193, 119, 4, 76, 112, + 87, 252, 30, 87, 242, 203, 87, 248, 191, 87, 235, 233, 219, 30, 222, 188, + 6, 224, 97, 244, 183, 50, 139, 4, 225, 109, 139, 4, 243, 108, 139, 6, + 243, 108, 139, 6, 225, 109, 139, 230, 25, 218, 41, 215, 94, 35, 6, 243, + 203, 215, 94, 35, 6, 156, 223, 50, 35, 6, 156, 215, 94, 35, 6, 211, 117, + 139, 32, 6, 249, 61, 139, 32, 4, 249, 61, 139, 32, 4, 75, 139, 32, 4, 73, + 139, 32, 4, 235, 145, 224, 171, 232, 214, 215, 94, 254, 127, 225, 184, + 50, 254, 181, 215, 94, 4, 245, 7, 16, 31, 221, 253, 219, 30, 212, 114, + 244, 3, 123, 220, 119, 212, 114, 244, 3, 123, 228, 195, 212, 114, 244, 3, + 123, 216, 242, 212, 114, 244, 3, 123, 216, 169, 212, 114, 244, 3, 113, + 216, 167, 212, 114, 244, 3, 123, 244, 118, 212, 114, 244, 3, 113, 244, + 117, 212, 114, 244, 3, 134, 244, 117, 212, 114, 244, 3, 244, 12, 244, + 117, 212, 114, 244, 3, 123, 219, 116, 212, 114, 244, 3, 244, 82, 219, + 114, 212, 114, 244, 3, 123, 245, 189, 212, 114, 244, 3, 134, 245, 187, + 212, 114, 244, 3, 244, 82, 245, 187, 212, 114, 244, 3, 220, 123, 245, + 187, 244, 3, 227, 198, 110, 222, 199, 227, 199, 110, 222, 199, 227, 199, + 105, 222, 199, 227, 199, 158, 222, 199, 227, 199, 161, 222, 199, 227, + 199, 189, 222, 199, 227, 199, 194, 222, 199, 227, 199, 198, 222, 199, + 227, 199, 195, 222, 199, 227, 199, 200, 222, 199, 227, 199, 216, 248, + 222, 199, 227, 199, 245, 168, 222, 199, 227, 199, 215, 76, 222, 199, 227, + 199, 244, 115, 222, 199, 227, 199, 123, 240, 211, 222, 199, 227, 199, + 244, 82, 240, 211, 222, 199, 227, 199, 123, 216, 148, 4, 222, 199, 227, + 199, 110, 4, 222, 199, 227, 199, 105, 4, 222, 199, 227, 199, 158, 4, 222, + 199, 227, 199, 161, 4, 222, 199, 227, 199, 189, 4, 222, 199, 227, 199, + 194, 4, 222, 199, 227, 199, 198, 4, 222, 199, 227, 199, 195, 4, 222, 199, + 227, 199, 200, 4, 222, 199, 227, 199, 216, 248, 4, 222, 199, 227, 199, + 245, 168, 4, 222, 199, 227, 199, 215, 76, 4, 222, 199, 227, 199, 244, + 115, 4, 222, 199, 227, 199, 123, 240, 211, 4, 222, 199, 227, 199, 244, + 82, 240, 211, 4, 222, 199, 227, 199, 123, 216, 148, 222, 199, 227, 199, + 123, 216, 149, 251, 68, 249, 61, 222, 199, 227, 199, 244, 82, 216, 148, + 222, 199, 227, 199, 216, 249, 216, 148, 222, 199, 227, 199, 223, 50, 123, + 240, 211, 7, 4, 1, 223, 50, 251, 67, 222, 199, 227, 199, 219, 126, 233, + 79, 17, 222, 199, 227, 199, 244, 116, 245, 227, 17, 222, 199, 227, 199, + 244, 116, 216, 148, 222, 199, 227, 199, 123, 240, 212, 216, 148, 212, + 114, 244, 3, 210, 87, 216, 167, 140, 74, 214, 153, 74, 97, 74, 246, 105, + 74, 43, 44, 74, 120, 124, 74, 228, 57, 212, 9, 74, 228, 57, 245, 221, 74, + 219, 29, 245, 221, 74, 219, 29, 212, 9, 74, 140, 80, 2, 91, 97, 80, 2, + 91, 140, 212, 36, 74, 97, 212, 36, 74, 140, 113, 241, 235, 74, 214, 153, + 113, 241, 235, 74, 97, 113, 241, 235, 74, 246, 105, 113, 241, 235, 74, + 140, 80, 2, 217, 78, 97, 80, 2, 217, 78, 140, 80, 243, 244, 130, 214, + 153, 80, 243, 244, 130, 97, 80, 243, 244, 130, 246, 105, 80, 243, 244, + 130, 120, 124, 80, 2, 252, 128, 140, 80, 2, 103, 97, 80, 2, 103, 140, 80, + 2, 232, 124, 97, 80, 2, 232, 124, 43, 44, 212, 36, 74, 43, 44, 80, 2, 91, + 246, 105, 210, 35, 74, 214, 153, 80, 2, 216, 78, 233, 38, 214, 153, 80, + 2, 216, 78, 222, 242, 246, 105, 80, 2, 216, 78, 233, 38, 246, 105, 80, 2, + 216, 78, 222, 242, 97, 80, 2, 249, 162, 246, 104, 246, 105, 80, 2, 249, + 162, 233, 38, 254, 89, 216, 15, 220, 154, 74, 250, 3, 216, 15, 220, 154, + 74, 228, 57, 212, 9, 80, 216, 43, 199, 130, 140, 80, 216, 43, 252, 142, + 117, 97, 80, 216, 43, 130, 254, 89, 204, 250, 37, 74, 250, 3, 204, 250, + 37, 74, 140, 242, 0, 2, 252, 140, 214, 152, 140, 242, 0, 2, 252, 140, + 246, 104, 214, 153, 242, 0, 2, 252, 140, 222, 242, 214, 153, 242, 0, 2, + 252, 140, 233, 38, 97, 242, 0, 2, 252, 140, 214, 152, 97, 242, 0, 2, 252, + 140, 246, 104, 246, 105, 242, 0, 2, 252, 140, 222, 242, 246, 105, 242, 0, + 2, 252, 140, 233, 38, 97, 80, 117, 140, 74, 214, 153, 80, 140, 64, 246, + 105, 74, 140, 80, 117, 97, 74, 140, 226, 71, 253, 248, 214, 153, 226, 71, + 253, 248, 97, 226, 71, 253, 248, 246, 105, 226, 71, 253, 248, 140, 242, + 0, 117, 97, 241, 255, 97, 242, 0, 117, 140, 241, 255, 140, 52, 80, 2, 91, + 43, 44, 52, 80, 2, 91, 97, 52, 80, 2, 91, 140, 52, 74, 214, 153, 52, 74, + 97, 52, 74, 246, 105, 52, 74, 43, 44, 52, 74, 120, 124, 52, 74, 228, 57, + 212, 9, 52, 74, 228, 57, 245, 221, 52, 74, 219, 29, 245, 221, 52, 74, + 219, 29, 212, 9, 52, 74, 140, 215, 212, 74, 97, 215, 212, 74, 140, 218, + 231, 74, 97, 218, 231, 74, 214, 153, 80, 2, 52, 91, 246, 105, 80, 2, 52, + 91, 140, 248, 156, 74, 214, 153, 248, 156, 74, 97, 248, 156, 74, 246, + 105, 248, 156, 74, 140, 80, 216, 43, 130, 97, 80, 216, 43, 130, 140, 71, + 74, 214, 153, 71, 74, 97, 71, 74, 246, 105, 71, 74, 214, 153, 71, 80, + 243, 244, 130, 214, 153, 71, 80, 226, 198, 225, 215, 214, 153, 71, 80, + 226, 198, 225, 216, 2, 203, 130, 214, 153, 71, 80, 226, 198, 225, 216, 2, + 67, 130, 214, 153, 71, 52, 74, 214, 153, 71, 52, 80, 226, 198, 225, 215, + 97, 71, 80, 243, 244, 212, 56, 228, 57, 212, 9, 80, 216, 43, 249, 161, + 219, 29, 245, 221, 80, 216, 43, 249, 161, 120, 124, 71, 74, 44, 80, 2, 4, + 250, 36, 246, 105, 80, 140, 64, 214, 153, 74, 134, 97, 253, 248, 140, 80, + 2, 67, 91, 97, 80, 2, 67, 91, 43, 44, 80, 2, 67, 91, 140, 80, 2, 52, 67, + 91, 97, 80, 2, 52, 67, 91, 43, 44, 80, 2, 52, 67, 91, 140, 226, 174, 74, + 97, 226, 174, 74, 43, 44, 226, 174, 74, 31, 254, 155, 249, 215, 225, 254, + 247, 234, 216, 188, 245, 28, 216, 188, 247, 139, 228, 53, 245, 29, 245, + 153, 220, 128, 235, 246, 229, 222, 245, 171, 226, 232, 228, 53, 254, 125, + 245, 171, 226, 232, 4, 245, 171, 226, 232, 249, 187, 253, 239, 231, 63, + 247, 139, 228, 53, 249, 189, 253, 239, 231, 63, 4, 249, 187, 253, 239, + 231, 63, 245, 144, 64, 224, 173, 230, 25, 224, 181, 230, 25, 249, 166, + 230, 25, 218, 41, 230, 183, 50, 230, 181, 50, 59, 225, 23, 247, 170, 219, + 96, 220, 129, 230, 182, 253, 218, 226, 168, 222, 235, 226, 168, 251, 115, + 226, 168, 42, 222, 194, 249, 110, 222, 194, 244, 5, 222, 194, 224, 169, + 111, 235, 235, 44, 254, 110, 254, 110, 231, 89, 254, 110, 219, 0, 254, + 110, 247, 172, 247, 139, 228, 53, 247, 175, 226, 9, 111, 228, 53, 226, 9, + 111, 232, 147, 254, 119, 232, 147, 226, 159, 235, 199, 214, 175, 235, + 212, 52, 235, 212, 215, 212, 235, 212, 249, 183, 235, 212, 218, 14, 235, + 212, 213, 129, 235, 212, 250, 3, 235, 212, 250, 3, 249, 183, 235, 212, + 254, 89, 249, 183, 235, 212, 216, 187, 252, 68, 223, 138, 224, 170, 59, + 230, 182, 245, 34, 243, 47, 224, 170, 241, 58, 216, 90, 226, 168, 223, + 50, 183, 235, 194, 233, 66, 222, 92, 219, 158, 212, 35, 211, 200, 224, + 181, 228, 53, 183, 230, 183, 183, 253, 211, 128, 111, 228, 53, 253, 211, + 128, 111, 254, 49, 128, 111, 254, 49, 251, 89, 228, 53, 255, 5, 128, 111, + 229, 101, 254, 49, 228, 60, 255, 5, 128, 111, 254, 149, 128, 111, 228, + 53, 254, 149, 128, 111, 254, 149, 128, 177, 128, 111, 215, 212, 183, 254, + 156, 128, 111, 245, 95, 111, 243, 46, 245, 95, 111, 247, 235, 252, 24, + 254, 51, 216, 197, 232, 222, 243, 46, 128, 111, 254, 49, 128, 216, 43, + 177, 216, 197, 236, 16, 226, 232, 236, 16, 64, 177, 254, 49, 128, 111, + 249, 228, 245, 98, 245, 99, 249, 227, 222, 235, 236, 1, 128, 111, 222, + 235, 128, 111, 249, 155, 111, 245, 68, 245, 97, 111, 218, 158, 245, 98, + 248, 56, 128, 111, 128, 216, 43, 251, 79, 248, 73, 231, 89, 251, 78, 224, + 12, 128, 111, 228, 53, 128, 111, 240, 105, 111, 228, 53, 240, 105, 111, + 218, 110, 245, 95, 111, 233, 16, 177, 128, 111, 242, 131, 177, 128, 111, + 233, 16, 117, 128, 111, 242, 131, 117, 128, 111, 233, 16, 251, 89, 228, + 53, 128, 111, 242, 131, 251, 89, 228, 53, 128, 111, 230, 98, 233, 15, + 230, 98, 242, 130, 252, 24, 228, 53, 245, 95, 111, 228, 53, 233, 15, 228, + 53, 242, 130, 229, 101, 233, 16, 228, 60, 128, 111, 229, 101, 242, 131, + 228, 60, 128, 111, 233, 16, 177, 245, 95, 111, 242, 131, 177, 245, 95, + 111, 229, 101, 233, 16, 228, 60, 245, 95, 111, 229, 101, 242, 131, 228, + 60, 245, 95, 111, 233, 16, 177, 242, 130, 242, 131, 177, 233, 15, 229, + 101, 233, 16, 228, 60, 242, 130, 229, 101, 242, 131, 228, 60, 233, 15, + 224, 203, 218, 56, 224, 204, 177, 128, 111, 218, 57, 177, 128, 111, 224, + 204, 177, 245, 95, 111, 218, 57, 177, 245, 95, 111, 247, 139, 228, 53, + 224, 206, 247, 139, 228, 53, 218, 58, 218, 65, 226, 232, 218, 23, 226, + 232, 228, 53, 115, 218, 65, 226, 232, 228, 53, 115, 218, 23, 226, 232, + 218, 65, 64, 177, 128, 111, 218, 23, 64, 177, 128, 111, 229, 101, 115, + 218, 65, 64, 228, 60, 128, 111, 229, 101, 115, 218, 23, 64, 228, 60, 128, + 111, 218, 65, 64, 2, 228, 53, 128, 111, 218, 23, 64, 2, 228, 53, 128, + 111, 230, 82, 230, 83, 230, 84, 230, 83, 214, 175, 42, 236, 16, 226, 232, + 42, 226, 151, 226, 232, 42, 236, 16, 64, 177, 128, 111, 42, 226, 151, 64, + 177, 128, 111, 42, 250, 252, 42, 249, 103, 37, 225, 23, 37, 230, 182, 37, + 216, 86, 37, 247, 170, 219, 96, 37, 59, 226, 168, 37, 222, 235, 226, 168, + 37, 253, 218, 226, 168, 37, 245, 98, 37, 248, 157, 92, 225, 23, 92, 230, + 182, 92, 216, 86, 92, 59, 226, 168, 44, 217, 88, 43, 217, 88, 124, 217, + 88, 120, 217, 88, 253, 221, 230, 157, 215, 192, 244, 26, 215, 212, 67, + 252, 142, 44, 215, 93, 52, 67, 252, 142, 52, 44, 215, 93, 247, 139, 228, + 53, 224, 164, 228, 53, 215, 192, 247, 139, 228, 53, 244, 27, 229, 103, + 52, 67, 252, 142, 52, 44, 215, 93, 224, 204, 214, 184, 223, 92, 218, 57, + 214, 184, 223, 92, 228, 58, 218, 78, 226, 232, 249, 187, 253, 239, 228, + 58, 218, 77, 228, 58, 218, 78, 64, 177, 128, 111, 249, 187, 253, 239, + 228, 58, 218, 78, 177, 128, 111, 226, 151, 226, 232, 236, 16, 226, 232, + 230, 88, 241, 201, 249, 197, 231, 138, 235, 209, 211, 145, 229, 203, 228, + 59, 44, 254, 111, 2, 254, 26, 44, 215, 226, 230, 25, 232, 147, 254, 119, + 230, 25, 232, 147, 226, 159, 230, 25, 235, 199, 230, 25, 214, 175, 247, + 250, 226, 168, 59, 226, 168, 218, 158, 226, 168, 247, 170, 216, 86, 251, + 165, 43, 228, 58, 244, 182, 220, 150, 224, 181, 44, 228, 58, 244, 182, + 220, 150, 224, 181, 43, 220, 150, 224, 181, 44, 220, 150, 224, 181, 223, + 50, 216, 90, 245, 98, 249, 100, 232, 147, 226, 159, 249, 100, 232, 147, + 254, 119, 52, 218, 64, 52, 218, 22, 52, 235, 199, 52, 214, 175, 225, 48, + 128, 22, 226, 9, 111, 233, 16, 2, 247, 121, 242, 131, 2, 247, 121, 213, + 187, 230, 98, 233, 15, 213, 187, 230, 98, 242, 130, 233, 16, 128, 216, + 43, 177, 242, 130, 242, 131, 128, 216, 43, 177, 233, 15, 128, 216, 43, + 177, 233, 15, 128, 216, 43, 177, 242, 130, 128, 216, 43, 177, 224, 203, + 128, 216, 43, 177, 218, 56, 247, 139, 228, 53, 224, 207, 177, 245, 100, + 247, 139, 228, 53, 218, 59, 177, 245, 100, 228, 53, 42, 236, 16, 64, 177, + 128, 111, 228, 53, 42, 226, 151, 64, 177, 128, 111, 42, 236, 16, 64, 177, + 228, 53, 128, 111, 42, 226, 151, 64, 177, 228, 53, 128, 111, 233, 16, + 251, 89, 228, 53, 245, 95, 111, 242, 131, 251, 89, 228, 53, 245, 95, 111, + 224, 204, 251, 89, 228, 53, 245, 95, 111, 218, 57, 251, 89, 228, 53, 245, + 95, 111, 228, 53, 228, 58, 218, 78, 226, 232, 247, 139, 228, 53, 249, + 189, 253, 239, 228, 58, 218, 77, 228, 53, 228, 58, 218, 78, 64, 177, 128, + 111, 247, 139, 228, 53, 249, 189, 253, 239, 228, 58, 218, 78, 177, 245, + 100, 67, 245, 164, 230, 223, 203, 245, 164, 120, 44, 248, 0, 245, 164, + 124, 44, 248, 0, 245, 164, 245, 171, 64, 2, 199, 203, 91, 245, 171, 64, + 2, 67, 252, 142, 253, 208, 245, 144, 64, 203, 91, 4, 245, 171, 64, 2, 67, + 252, 142, 253, 208, 245, 144, 64, 203, 91, 245, 171, 64, 2, 59, 48, 245, + 171, 64, 2, 226, 124, 4, 245, 171, 64, 2, 226, 124, 245, 171, 64, 2, 214, + 183, 245, 171, 64, 2, 113, 203, 218, 91, 249, 187, 2, 199, 203, 91, 249, + 187, 2, 67, 252, 142, 253, 208, 245, 144, 64, 203, 91, 4, 249, 187, 2, + 67, 252, 142, 253, 208, 245, 144, 64, 203, 91, 249, 187, 2, 226, 124, 4, + 249, 187, 2, 226, 124, 210, 160, 188, 252, 174, 231, 62, 247, 251, 50, + 245, 173, 74, 240, 235, 120, 253, 250, 124, 253, 250, 224, 176, 225, 166, + 212, 32, 232, 214, 43, 250, 182, 44, 250, 182, 43, 244, 58, 44, 244, 58, + 251, 176, 44, 249, 133, 251, 176, 43, 249, 133, 216, 15, 44, 249, 133, + 216, 15, 43, 249, 133, 223, 50, 228, 53, 50, 42, 232, 105, 254, 26, 221, + 165, 221, 172, 217, 2, 223, 121, 224, 242, 235, 239, 213, 165, 218, 235, + 225, 42, 64, 235, 208, 50, 215, 94, 228, 53, 50, 212, 42, 240, 237, 216, + 15, 43, 249, 161, 216, 15, 44, 249, 161, 251, 176, 43, 249, 161, 251, + 176, 44, 249, 161, 216, 15, 163, 235, 212, 251, 176, 163, 235, 212, 243, + 241, 219, 76, 120, 253, 251, 252, 25, 113, 203, 252, 130, 226, 161, 234, + 139, 245, 91, 216, 43, 216, 197, 222, 252, 211, 179, 236, 1, 115, 223, + 118, 251, 164, 234, 138, 233, 43, 254, 111, 127, 222, 248, 254, 111, 127, + 245, 91, 216, 43, 216, 197, 233, 47, 252, 36, 222, 234, 249, 71, 254, + 156, 254, 2, 217, 182, 216, 5, 222, 124, 247, 216, 226, 152, 249, 199, + 217, 53, 219, 87, 249, 152, 249, 151, 254, 67, 243, 226, 16, 240, 152, + 254, 67, 243, 226, 16, 218, 229, 224, 28, 254, 67, 243, 226, 16, 224, 29, + 245, 100, 254, 67, 243, 226, 16, 224, 29, 247, 175, 254, 67, 243, 226, + 16, 224, 29, 247, 249, 254, 67, 243, 226, 16, 224, 29, 235, 57, 254, 67, + 243, 226, 16, 224, 29, 250, 36, 254, 67, 243, 226, 16, 250, 37, 218, 136, + 254, 67, 243, 226, 16, 250, 37, 235, 57, 254, 67, 243, 226, 16, 219, 97, + 130, 254, 67, 243, 226, 16, 252, 182, 130, 254, 67, 243, 226, 16, 224, + 29, 219, 96, 254, 67, 243, 226, 16, 224, 29, 252, 181, 254, 67, 243, 226, + 16, 224, 29, 233, 15, 254, 67, 243, 226, 16, 224, 29, 242, 130, 254, 67, + 243, 226, 16, 140, 214, 19, 254, 67, 243, 226, 16, 97, 214, 19, 254, 67, + 243, 226, 16, 224, 29, 140, 74, 254, 67, 243, 226, 16, 224, 29, 97, 74, + 254, 67, 243, 226, 16, 250, 37, 252, 181, 254, 67, 243, 226, 16, 124, + 217, 89, 214, 183, 254, 67, 243, 226, 16, 248, 56, 218, 136, 254, 67, + 243, 226, 16, 224, 29, 124, 250, 239, 254, 67, 243, 226, 16, 224, 29, + 248, 55, 254, 67, 243, 226, 16, 124, 217, 89, 235, 57, 254, 67, 243, 226, + 16, 214, 153, 214, 19, 254, 67, 243, 226, 16, 224, 29, 214, 153, 74, 254, + 67, 243, 226, 16, 120, 217, 89, 226, 124, 254, 67, 243, 226, 16, 248, 67, + 218, 136, 254, 67, 243, 226, 16, 224, 29, 120, 250, 239, 254, 67, 243, + 226, 16, 224, 29, 248, 66, 254, 67, 243, 226, 16, 120, 217, 89, 235, 57, + 254, 67, 243, 226, 16, 246, 105, 214, 19, 254, 67, 243, 226, 16, 224, 29, + 246, 105, 74, 254, 67, 243, 226, 16, 223, 254, 214, 183, 254, 67, 243, + 226, 16, 248, 56, 214, 183, 254, 67, 243, 226, 16, 247, 250, 214, 183, + 254, 67, 243, 226, 16, 235, 58, 214, 183, 254, 67, 243, 226, 16, 250, 37, + 214, 183, 254, 67, 243, 226, 16, 120, 220, 6, 235, 57, 254, 67, 243, 226, + 16, 223, 254, 224, 28, 254, 67, 243, 226, 16, 250, 37, 218, 157, 254, 67, + 243, 226, 16, 224, 29, 249, 227, 254, 67, 243, 226, 16, 120, 217, 89, + 248, 2, 254, 67, 243, 226, 16, 248, 67, 248, 2, 254, 67, 243, 226, 16, + 218, 158, 248, 2, 254, 67, 243, 226, 16, 235, 58, 248, 2, 254, 67, 243, + 226, 16, 250, 37, 248, 2, 254, 67, 243, 226, 16, 124, 220, 6, 218, 136, + 254, 67, 243, 226, 16, 43, 220, 6, 218, 136, 254, 67, 243, 226, 16, 216, + 90, 248, 2, 254, 67, 243, 226, 16, 242, 131, 248, 2, 254, 67, 243, 226, + 16, 249, 221, 130, 254, 67, 243, 226, 16, 248, 67, 183, 254, 67, 243, + 226, 16, 210, 34, 254, 67, 243, 226, 16, 218, 137, 183, 254, 67, 243, + 226, 16, 220, 152, 214, 183, 254, 67, 243, 226, 16, 224, 29, 228, 53, + 245, 100, 254, 67, 243, 226, 16, 224, 29, 224, 13, 254, 67, 243, 226, 16, + 124, 250, 240, 183, 254, 67, 243, 226, 16, 120, 250, 240, 183, 254, 67, + 243, 226, 16, 235, 186, 254, 67, 243, 226, 16, 223, 38, 254, 67, 243, + 226, 16, 226, 202, 254, 67, 243, 226, 16, 254, 145, 214, 183, 254, 67, + 243, 226, 16, 245, 102, 214, 183, 254, 67, 243, 226, 16, 235, 187, 214, + 183, 254, 67, 243, 226, 16, 226, 203, 214, 183, 254, 67, 243, 226, 16, + 254, 144, 228, 53, 250, 131, 78, 44, 254, 111, 2, 246, 105, 210, 35, 74, + 219, 236, 204, 251, 164, 252, 46, 87, 67, 232, 215, 2, 230, 225, 247, + 121, 235, 217, 87, 249, 184, 214, 181, 87, 247, 190, 214, 181, 87, 245, + 155, 87, 249, 211, 87, 71, 42, 2, 250, 176, 67, 232, 214, 245, 131, 87, + 254, 140, 234, 140, 87, 241, 214, 87, 37, 203, 252, 142, 2, 228, 51, 37, + 215, 227, 246, 107, 251, 136, 250, 37, 2, 228, 55, 74, 214, 179, 87, 230, + 138, 87, 240, 165, 87, 226, 175, 242, 60, 87, 226, 175, 233, 148, 87, + 225, 245, 87, 225, 244, 87, 247, 198, 249, 98, 16, 244, 21, 105, 219, 51, + 87, 254, 67, 243, 226, 16, 224, 28, 248, 84, 220, 139, 234, 140, 87, 224, + 193, 226, 76, 229, 83, 226, 76, 224, 189, 221, 190, 87, 250, 18, 221, + 190, 87, 43, 226, 5, 214, 160, 103, 43, 226, 5, 245, 22, 43, 226, 5, 232, + 109, 103, 44, 226, 5, 214, 160, 103, 44, 226, 5, 245, 22, 44, 226, 5, + 232, 109, 103, 43, 42, 251, 159, 214, 160, 249, 161, 43, 42, 251, 159, + 245, 22, 43, 42, 251, 159, 232, 109, 249, 161, 44, 42, 251, 159, 214, + 160, 249, 161, 44, 42, 251, 159, 245, 22, 44, 42, 251, 159, 232, 109, + 249, 161, 43, 249, 100, 251, 159, 214, 160, 103, 43, 249, 100, 251, 159, + 230, 225, 225, 102, 43, 249, 100, 251, 159, 232, 109, 103, 249, 100, 251, + 159, 245, 22, 44, 249, 100, 251, 159, 214, 160, 103, 44, 249, 100, 251, + 159, 230, 225, 225, 102, 44, 249, 100, 251, 159, 232, 109, 103, 235, 213, + 245, 22, 203, 232, 215, 245, 22, 214, 160, 43, 177, 232, 109, 44, 249, + 100, 251, 159, 221, 173, 214, 160, 44, 177, 232, 109, 43, 249, 100, 251, + 159, 221, 173, 218, 42, 216, 14, 218, 42, 251, 175, 216, 15, 42, 127, + 251, 176, 42, 127, 251, 176, 42, 251, 159, 117, 216, 15, 42, 127, 34, 16, + 251, 175, 43, 67, 93, 232, 214, 44, 67, 93, 232, 214, 203, 221, 206, 232, + 213, 203, 221, 206, 232, 212, 203, 221, 206, 232, 211, 203, 221, 206, + 232, 210, 248, 47, 16, 192, 67, 22, 216, 15, 222, 252, 248, 47, 16, 192, + 67, 22, 251, 176, 222, 252, 248, 47, 16, 192, 67, 2, 250, 36, 248, 47, + 16, 192, 124, 22, 203, 2, 250, 36, 248, 47, 16, 192, 120, 22, 203, 2, + 250, 36, 248, 47, 16, 192, 67, 2, 215, 226, 248, 47, 16, 192, 124, 22, + 203, 2, 215, 226, 248, 47, 16, 192, 120, 22, 203, 2, 215, 226, 248, 47, + 16, 192, 67, 22, 212, 35, 248, 47, 16, 192, 124, 22, 203, 2, 212, 35, + 248, 47, 16, 192, 120, 22, 203, 2, 212, 35, 248, 47, 16, 192, 124, 22, + 241, 45, 248, 47, 16, 192, 120, 22, 241, 45, 248, 47, 16, 192, 67, 22, + 216, 15, 233, 47, 248, 47, 16, 192, 67, 22, 251, 176, 233, 47, 42, 244, + 33, 223, 55, 87, 245, 183, 87, 67, 232, 215, 245, 22, 231, 34, 251, 147, + 231, 34, 199, 117, 219, 251, 231, 34, 219, 252, 117, 232, 138, 231, 34, + 199, 117, 113, 219, 238, 231, 34, 113, 219, 239, 117, 232, 138, 231, 34, + 113, 219, 239, 235, 65, 231, 34, 215, 209, 231, 34, 216, 224, 231, 34, + 225, 189, 245, 225, 242, 123, 243, 220, 216, 15, 226, 4, 251, 176, 226, + 4, 216, 15, 249, 100, 127, 251, 176, 249, 100, 127, 216, 15, 216, 7, 220, + 54, 127, 251, 176, 216, 7, 220, 54, 127, 71, 215, 240, 252, 36, 222, 235, + 2, 250, 36, 218, 121, 244, 65, 255, 18, 249, 97, 245, 172, 235, 199, 248, + 84, 245, 25, 87, 85, 222, 248, 52, 215, 226, 85, 233, 43, 52, 215, 226, + 85, 214, 162, 52, 215, 226, 85, 246, 106, 52, 215, 226, 85, 222, 248, 52, + 215, 227, 2, 67, 130, 85, 233, 43, 52, 215, 227, 2, 67, 130, 85, 222, + 248, 215, 227, 2, 52, 67, 130, 254, 174, 250, 4, 218, 127, 216, 87, 250, + 4, 240, 238, 2, 244, 51, 221, 242, 16, 31, 227, 203, 16, 31, 218, 153, + 64, 241, 234, 16, 31, 218, 153, 64, 216, 213, 16, 31, 245, 144, 64, 216, + 213, 16, 31, 245, 144, 64, 215, 244, 16, 31, 245, 133, 16, 31, 255, 8, + 16, 31, 252, 45, 16, 31, 252, 180, 16, 31, 203, 217, 90, 16, 31, 232, + 215, 244, 146, 16, 31, 67, 217, 90, 16, 31, 244, 21, 244, 146, 16, 31, + 250, 231, 223, 54, 16, 31, 220, 29, 226, 131, 16, 31, 220, 29, 236, 0, + 16, 31, 248, 152, 232, 205, 245, 78, 16, 31, 248, 32, 249, 179, 110, 16, + 31, 248, 32, 249, 179, 105, 16, 31, 248, 32, 249, 179, 158, 16, 31, 248, + 32, 249, 179, 161, 16, 31, 152, 255, 8, 16, 31, 217, 178, 236, 63, 16, + 31, 245, 144, 64, 215, 245, 251, 214, 16, 31, 251, 6, 16, 31, 245, 144, + 64, 231, 82, 16, 31, 218, 62, 16, 31, 245, 78, 16, 31, 244, 108, 220, + 138, 16, 31, 242, 122, 220, 138, 16, 31, 223, 122, 220, 138, 16, 31, 214, + 174, 220, 138, 16, 31, 219, 19, 16, 31, 248, 64, 251, 217, 87, 204, 251, + 164, 16, 31, 229, 86, 16, 31, 248, 65, 244, 21, 105, 16, 31, 218, 63, + 244, 21, 105, 226, 242, 103, 226, 242, 250, 153, 226, 242, 244, 24, 226, + 242, 235, 194, 244, 24, 226, 242, 252, 43, 251, 125, 226, 242, 251, 171, + 216, 112, 226, 242, 251, 156, 252, 147, 240, 104, 226, 242, 254, 128, 64, + 250, 130, 226, 242, 248, 157, 226, 242, 249, 88, 255, 12, 227, 201, 226, + 242, 52, 252, 181, 37, 21, 110, 37, 21, 105, 37, 21, 158, 37, 21, 161, + 37, 21, 189, 37, 21, 194, 37, 21, 198, 37, 21, 195, 37, 21, 200, 37, 54, + 216, 248, 37, 54, 245, 168, 37, 54, 215, 76, 37, 54, 216, 165, 37, 54, + 244, 6, 37, 54, 244, 119, 37, 54, 219, 120, 37, 54, 220, 120, 37, 54, + 245, 191, 37, 54, 228, 198, 37, 54, 215, 73, 88, 21, 110, 88, 21, 105, + 88, 21, 158, 88, 21, 161, 88, 21, 189, 88, 21, 194, 88, 21, 198, 88, 21, + 195, 88, 21, 200, 88, 54, 216, 248, 88, 54, 245, 168, 88, 54, 215, 76, + 88, 54, 216, 165, 88, 54, 244, 6, 88, 54, 244, 119, 88, 54, 219, 120, 88, + 54, 220, 120, 88, 54, 245, 191, 88, 54, 228, 198, 88, 54, 215, 73, 21, + 123, 243, 230, 218, 130, 21, 113, 243, 230, 218, 130, 21, 134, 243, 230, + 218, 130, 21, 244, 12, 243, 230, 218, 130, 21, 244, 82, 243, 230, 218, + 130, 21, 219, 126, 243, 230, 218, 130, 21, 220, 123, 243, 230, 218, 130, + 21, 245, 194, 243, 230, 218, 130, 21, 228, 201, 243, 230, 218, 130, 54, + 216, 249, 243, 230, 218, 130, 54, 245, 169, 243, 230, 218, 130, 54, 215, + 77, 243, 230, 218, 130, 54, 216, 166, 243, 230, 218, 130, 54, 244, 7, + 243, 230, 218, 130, 54, 244, 120, 243, 230, 218, 130, 54, 219, 121, 243, + 230, 218, 130, 54, 220, 121, 243, 230, 218, 130, 54, 245, 192, 243, 230, + 218, 130, 54, 228, 199, 243, 230, 218, 130, 54, 215, 74, 243, 230, 218, + 130, 88, 7, 4, 1, 61, 88, 7, 4, 1, 253, 159, 88, 7, 4, 1, 251, 67, 88, 7, + 4, 1, 249, 61, 88, 7, 4, 1, 75, 88, 7, 4, 1, 245, 7, 88, 7, 4, 1, 243, + 203, 88, 7, 4, 1, 242, 61, 88, 7, 4, 1, 73, 88, 7, 4, 1, 235, 145, 88, 7, + 4, 1, 235, 24, 88, 7, 4, 1, 156, 88, 7, 4, 1, 193, 88, 7, 4, 1, 230, 26, + 88, 7, 4, 1, 76, 88, 7, 4, 1, 226, 106, 88, 7, 4, 1, 224, 97, 88, 7, 4, + 1, 153, 88, 7, 4, 1, 222, 92, 88, 7, 4, 1, 217, 153, 88, 7, 4, 1, 70, 88, + 7, 4, 1, 214, 105, 88, 7, 4, 1, 212, 98, 88, 7, 4, 1, 211, 178, 88, 7, 4, + 1, 211, 117, 88, 7, 4, 1, 210, 159, 37, 7, 6, 1, 61, 37, 7, 6, 1, 253, + 159, 37, 7, 6, 1, 251, 67, 37, 7, 6, 1, 249, 61, 37, 7, 6, 1, 75, 37, 7, + 6, 1, 245, 7, 37, 7, 6, 1, 243, 203, 37, 7, 6, 1, 242, 61, 37, 7, 6, 1, + 73, 37, 7, 6, 1, 235, 145, 37, 7, 6, 1, 235, 24, 37, 7, 6, 1, 156, 37, 7, + 6, 1, 193, 37, 7, 6, 1, 230, 26, 37, 7, 6, 1, 76, 37, 7, 6, 1, 226, 106, + 37, 7, 6, 1, 224, 97, 37, 7, 6, 1, 153, 37, 7, 6, 1, 222, 92, 37, 7, 6, + 1, 217, 153, 37, 7, 6, 1, 70, 37, 7, 6, 1, 214, 105, 37, 7, 6, 1, 212, + 98, 37, 7, 6, 1, 211, 178, 37, 7, 6, 1, 211, 117, 37, 7, 6, 1, 210, 159, + 37, 7, 4, 1, 61, 37, 7, 4, 1, 253, 159, 37, 7, 4, 1, 251, 67, 37, 7, 4, + 1, 249, 61, 37, 7, 4, 1, 75, 37, 7, 4, 1, 245, 7, 37, 7, 4, 1, 243, 203, + 37, 7, 4, 1, 242, 61, 37, 7, 4, 1, 73, 37, 7, 4, 1, 235, 145, 37, 7, 4, + 1, 235, 24, 37, 7, 4, 1, 156, 37, 7, 4, 1, 193, 37, 7, 4, 1, 230, 26, 37, + 7, 4, 1, 76, 37, 7, 4, 1, 226, 106, 37, 7, 4, 1, 224, 97, 37, 7, 4, 1, + 153, 37, 7, 4, 1, 222, 92, 37, 7, 4, 1, 217, 153, 37, 7, 4, 1, 70, 37, 7, + 4, 1, 214, 105, 37, 7, 4, 1, 212, 98, 37, 7, 4, 1, 211, 178, 37, 7, 4, 1, + 211, 117, 37, 7, 4, 1, 210, 159, 37, 21, 210, 86, 152, 37, 54, 245, 168, + 152, 37, 54, 215, 76, 152, 37, 54, 216, 165, 152, 37, 54, 244, 6, 152, + 37, 54, 244, 119, 152, 37, 54, 219, 120, 152, 37, 54, 220, 120, 152, 37, + 54, 245, 191, 152, 37, 54, 228, 198, 152, 37, 54, 215, 73, 52, 37, 21, + 110, 52, 37, 21, 105, 52, 37, 21, 158, 52, 37, 21, 161, 52, 37, 21, 189, + 52, 37, 21, 194, 52, 37, 21, 198, 52, 37, 21, 195, 52, 37, 21, 200, 52, + 37, 54, 216, 248, 152, 37, 21, 210, 86, 93, 99, 192, 241, 45, 93, 99, + 114, 241, 45, 93, 99, 192, 213, 239, 93, 99, 114, 213, 239, 93, 99, 192, + 215, 212, 248, 158, 241, 45, 93, 99, 114, 215, 212, 248, 158, 241, 45, + 93, 99, 192, 215, 212, 248, 158, 213, 239, 93, 99, 114, 215, 212, 248, + 158, 213, 239, 93, 99, 192, 224, 25, 248, 158, 241, 45, 93, 99, 114, 224, + 25, 248, 158, 241, 45, 93, 99, 192, 224, 25, 248, 158, 213, 239, 93, 99, + 114, 224, 25, 248, 158, 213, 239, 93, 99, 192, 124, 22, 222, 252, 93, 99, + 124, 192, 22, 44, 241, 222, 93, 99, 124, 114, 22, 44, 232, 231, 93, 99, + 114, 124, 22, 222, 252, 93, 99, 192, 124, 22, 233, 47, 93, 99, 124, 192, + 22, 43, 241, 222, 93, 99, 124, 114, 22, 43, 232, 231, 93, 99, 114, 124, + 22, 233, 47, 93, 99, 192, 120, 22, 222, 252, 93, 99, 120, 192, 22, 44, + 241, 222, 93, 99, 120, 114, 22, 44, 232, 231, 93, 99, 114, 120, 22, 222, + 252, 93, 99, 192, 120, 22, 233, 47, 93, 99, 120, 192, 22, 43, 241, 222, + 93, 99, 120, 114, 22, 43, 232, 231, 93, 99, 114, 120, 22, 233, 47, 93, + 99, 192, 67, 22, 222, 252, 93, 99, 67, 192, 22, 44, 241, 222, 93, 99, + 120, 114, 22, 44, 124, 232, 231, 93, 99, 124, 114, 22, 44, 120, 232, 231, + 93, 99, 67, 114, 22, 44, 232, 231, 93, 99, 124, 192, 22, 44, 120, 241, + 222, 93, 99, 120, 192, 22, 44, 124, 241, 222, 93, 99, 114, 67, 22, 222, + 252, 93, 99, 192, 67, 22, 233, 47, 93, 99, 67, 192, 22, 43, 241, 222, 93, + 99, 120, 114, 22, 43, 124, 232, 231, 93, 99, 124, 114, 22, 43, 120, 232, + 231, 93, 99, 67, 114, 22, 43, 232, 231, 93, 99, 124, 192, 22, 43, 120, + 241, 222, 93, 99, 120, 192, 22, 43, 124, 241, 222, 93, 99, 114, 67, 22, + 233, 47, 93, 99, 192, 124, 22, 241, 45, 93, 99, 43, 114, 22, 44, 124, + 232, 231, 93, 99, 44, 114, 22, 43, 124, 232, 231, 93, 99, 124, 192, 22, + 203, 241, 222, 93, 99, 124, 114, 22, 203, 232, 231, 93, 99, 44, 192, 22, + 43, 124, 241, 222, 93, 99, 43, 192, 22, 44, 124, 241, 222, 93, 99, 114, + 124, 22, 241, 45, 93, 99, 192, 120, 22, 241, 45, 93, 99, 43, 114, 22, 44, + 120, 232, 231, 93, 99, 44, 114, 22, 43, 120, 232, 231, 93, 99, 120, 192, + 22, 203, 241, 222, 93, 99, 120, 114, 22, 203, 232, 231, 93, 99, 44, 192, + 22, 43, 120, 241, 222, 93, 99, 43, 192, 22, 44, 120, 241, 222, 93, 99, + 114, 120, 22, 241, 45, 93, 99, 192, 67, 22, 241, 45, 93, 99, 43, 114, 22, + 44, 67, 232, 231, 93, 99, 44, 114, 22, 43, 67, 232, 231, 93, 99, 67, 192, + 22, 203, 241, 222, 93, 99, 120, 114, 22, 124, 203, 232, 231, 93, 99, 124, + 114, 22, 120, 203, 232, 231, 93, 99, 67, 114, 22, 203, 232, 231, 93, 99, + 43, 120, 114, 22, 44, 124, 232, 231, 93, 99, 44, 120, 114, 22, 43, 124, + 232, 231, 93, 99, 43, 124, 114, 22, 44, 120, 232, 231, 93, 99, 44, 124, + 114, 22, 43, 120, 232, 231, 93, 99, 124, 192, 22, 120, 203, 241, 222, 93, + 99, 120, 192, 22, 124, 203, 241, 222, 93, 99, 44, 192, 22, 43, 67, 241, + 222, 93, 99, 43, 192, 22, 44, 67, 241, 222, 93, 99, 114, 67, 22, 241, 45, + 93, 99, 192, 52, 248, 158, 241, 45, 93, 99, 114, 52, 248, 158, 241, 45, + 93, 99, 192, 52, 248, 158, 213, 239, 93, 99, 114, 52, 248, 158, 213, 239, + 93, 99, 52, 241, 45, 93, 99, 52, 213, 239, 93, 99, 124, 219, 156, 22, 44, + 246, 114, 93, 99, 124, 52, 22, 44, 219, 155, 93, 99, 52, 124, 22, 222, + 252, 93, 99, 124, 219, 156, 22, 43, 246, 114, 93, 99, 124, 52, 22, 43, + 219, 155, 93, 99, 52, 124, 22, 233, 47, 93, 99, 120, 219, 156, 22, 44, + 246, 114, 93, 99, 120, 52, 22, 44, 219, 155, 93, 99, 52, 120, 22, 222, + 252, 93, 99, 120, 219, 156, 22, 43, 246, 114, 93, 99, 120, 52, 22, 43, + 219, 155, 93, 99, 52, 120, 22, 233, 47, 93, 99, 67, 219, 156, 22, 44, + 246, 114, 93, 99, 67, 52, 22, 44, 219, 155, 93, 99, 52, 67, 22, 222, 252, + 93, 99, 67, 219, 156, 22, 43, 246, 114, 93, 99, 67, 52, 22, 43, 219, 155, + 93, 99, 52, 67, 22, 233, 47, 93, 99, 124, 219, 156, 22, 203, 246, 114, + 93, 99, 124, 52, 22, 203, 219, 155, 93, 99, 52, 124, 22, 241, 45, 93, 99, + 120, 219, 156, 22, 203, 246, 114, 93, 99, 120, 52, 22, 203, 219, 155, 93, + 99, 52, 120, 22, 241, 45, 93, 99, 67, 219, 156, 22, 203, 246, 114, 93, + 99, 67, 52, 22, 203, 219, 155, 93, 99, 52, 67, 22, 241, 45, 93, 99, 192, + 254, 27, 124, 22, 222, 252, 93, 99, 192, 254, 27, 124, 22, 233, 47, 93, + 99, 192, 254, 27, 120, 22, 233, 47, 93, 99, 192, 254, 27, 120, 22, 222, + 252, 93, 99, 192, 248, 0, 214, 160, 44, 216, 43, 232, 109, 233, 47, 93, + 99, 192, 248, 0, 214, 160, 43, 216, 43, 232, 109, 222, 252, 93, 99, 192, + 248, 0, 249, 131, 93, 99, 192, 233, 47, 93, 99, 192, 214, 163, 93, 99, + 192, 222, 252, 93, 99, 192, 246, 107, 93, 99, 114, 233, 47, 93, 99, 114, + 214, 163, 93, 99, 114, 222, 252, 93, 99, 114, 246, 107, 93, 99, 192, 43, + 22, 114, 222, 252, 93, 99, 192, 120, 22, 114, 246, 107, 93, 99, 114, 43, + 22, 192, 222, 252, 93, 99, 114, 120, 22, 192, 246, 107, 214, 160, 163, + 251, 214, 232, 109, 123, 245, 190, 251, 214, 232, 109, 123, 224, 23, 251, + 214, 232, 109, 134, 245, 188, 251, 214, 232, 109, 163, 251, 214, 232, + 109, 244, 82, 245, 188, 251, 214, 232, 109, 134, 224, 21, 251, 214, 232, + 109, 220, 123, 245, 188, 251, 214, 243, 230, 251, 214, 43, 220, 123, 245, + 188, 251, 214, 43, 134, 224, 21, 251, 214, 43, 244, 82, 245, 188, 251, + 214, 43, 163, 251, 214, 43, 134, 245, 188, 251, 214, 43, 123, 224, 23, + 251, 214, 43, 123, 245, 190, 251, 214, 44, 163, 251, 214, 192, 220, 93, + 231, 83, 220, 93, 248, 163, 220, 93, 214, 160, 123, 245, 190, 251, 214, + 44, 123, 245, 190, 251, 214, 224, 27, 232, 109, 233, 47, 224, 27, 232, + 109, 222, 252, 224, 27, 214, 160, 233, 47, 224, 27, 214, 160, 43, 22, + 232, 109, 43, 22, 232, 109, 222, 252, 224, 27, 214, 160, 43, 22, 232, + 109, 222, 252, 224, 27, 214, 160, 43, 22, 214, 160, 44, 22, 232, 109, + 233, 47, 224, 27, 214, 160, 43, 22, 214, 160, 44, 22, 232, 109, 222, 252, + 224, 27, 214, 160, 222, 252, 224, 27, 214, 160, 44, 22, 232, 109, 233, + 47, 224, 27, 214, 160, 44, 22, 232, 109, 43, 22, 232, 109, 222, 252, 85, + 218, 235, 71, 218, 235, 71, 42, 2, 222, 184, 249, 160, 71, 42, 249, 188, + 85, 4, 218, 235, 42, 2, 203, 244, 106, 42, 2, 67, 244, 106, 42, 2, 226, + 145, 249, 127, 244, 106, 42, 2, 214, 160, 43, 216, 43, 232, 109, 44, 244, + 106, 42, 2, 214, 160, 44, 216, 43, 232, 109, 43, 244, 106, 42, 2, 248, 0, + 249, 127, 244, 106, 85, 4, 218, 235, 71, 4, 218, 235, 85, 223, 117, 71, + 223, 117, 85, 67, 223, 117, 71, 67, 223, 117, 85, 226, 7, 71, 226, 7, 85, + 214, 162, 215, 226, 71, 214, 162, 215, 226, 85, 214, 162, 4, 215, 226, + 71, 214, 162, 4, 215, 226, 85, 222, 248, 215, 226, 71, 222, 248, 215, + 226, 85, 222, 248, 4, 215, 226, 71, 222, 248, 4, 215, 226, 85, 222, 248, + 225, 9, 71, 222, 248, 225, 9, 85, 246, 106, 215, 226, 71, 246, 106, 215, + 226, 85, 246, 106, 4, 215, 226, 71, 246, 106, 4, 215, 226, 85, 233, 43, + 215, 226, 71, 233, 43, 215, 226, 85, 233, 43, 4, 215, 226, 71, 233, 43, + 4, 215, 226, 85, 233, 43, 225, 9, 71, 233, 43, 225, 9, 85, 247, 249, 71, + 247, 249, 71, 247, 250, 249, 188, 85, 4, 247, 249, 244, 90, 232, 105, 71, + 250, 36, 246, 119, 250, 36, 250, 37, 2, 67, 244, 106, 251, 112, 85, 250, + 36, 250, 37, 2, 43, 163, 251, 222, 250, 37, 2, 44, 163, 251, 222, 250, + 37, 2, 232, 109, 163, 251, 222, 250, 37, 2, 214, 160, 163, 251, 222, 250, + 37, 2, 214, 160, 44, 224, 27, 251, 222, 250, 37, 2, 254, 156, 251, 89, + 214, 160, 43, 224, 27, 251, 222, 43, 163, 85, 250, 36, 44, 163, 85, 250, + 36, 235, 195, 251, 114, 235, 195, 71, 250, 36, 214, 160, 163, 235, 195, + 71, 250, 36, 232, 109, 163, 235, 195, 71, 250, 36, 214, 160, 43, 224, 27, + 250, 34, 254, 26, 214, 160, 44, 224, 27, 250, 34, 254, 26, 232, 109, 44, + 224, 27, 250, 34, 254, 26, 232, 109, 43, 224, 27, 250, 34, 254, 26, 214, + 160, 163, 250, 36, 232, 109, 163, 250, 36, 85, 232, 109, 44, 215, 226, + 85, 232, 109, 43, 215, 226, 85, 214, 160, 43, 215, 226, 85, 214, 160, 44, + 215, 226, 71, 251, 114, 42, 2, 43, 163, 251, 222, 42, 2, 44, 163, 251, + 222, 42, 2, 214, 160, 43, 248, 0, 163, 251, 222, 42, 2, 232, 109, 44, + 248, 0, 163, 251, 222, 71, 42, 2, 67, 251, 233, 232, 214, 71, 214, 162, + 215, 227, 2, 247, 121, 214, 162, 215, 227, 2, 43, 163, 251, 222, 214, + 162, 215, 227, 2, 44, 163, 251, 222, 233, 86, 250, 36, 71, 42, 2, 214, + 160, 43, 224, 26, 71, 42, 2, 232, 109, 43, 224, 26, 71, 42, 2, 232, 109, + 44, 224, 26, 71, 42, 2, 214, 160, 44, 224, 26, 71, 250, 37, 2, 214, 160, + 43, 224, 26, 71, 250, 37, 2, 232, 109, 43, 224, 26, 71, 250, 37, 2, 232, + 109, 44, 224, 26, 71, 250, 37, 2, 214, 160, 44, 224, 26, 214, 160, 43, + 215, 226, 214, 160, 44, 215, 226, 232, 109, 43, 215, 226, 71, 231, 83, + 218, 235, 85, 231, 83, 218, 235, 71, 231, 83, 4, 218, 235, 85, 231, 83, + 4, 218, 235, 232, 109, 44, 215, 226, 85, 218, 39, 2, 223, 133, 249, 248, + 214, 194, 219, 61, 249, 223, 85, 218, 157, 71, 218, 157, 232, 229, 216, + 133, 218, 38, 253, 235, 228, 72, 248, 39, 228, 72, 249, 196, 226, 164, + 85, 217, 1, 71, 217, 1, 252, 157, 251, 164, 252, 157, 93, 2, 250, 130, + 252, 157, 93, 2, 211, 178, 221, 255, 214, 195, 2, 223, 161, 246, 85, 240, + 244, 252, 23, 71, 220, 3, 225, 102, 85, 220, 3, 225, 102, 220, 88, 223, + 50, 222, 188, 244, 56, 241, 229, 251, 114, 85, 43, 225, 8, 235, 243, 85, + 44, 225, 8, 235, 243, 71, 43, 225, 8, 235, 243, 71, 120, 225, 8, 235, + 243, 71, 44, 225, 8, 235, 243, 71, 124, 225, 8, 235, 243, 219, 102, 22, + 249, 130, 250, 220, 50, 223, 173, 50, 251, 240, 50, 251, 26, 254, 103, + 226, 146, 249, 131, 250, 112, 223, 38, 249, 132, 64, 232, 119, 249, 132, + 64, 235, 117, 218, 158, 22, 249, 137, 244, 169, 87, 254, 249, 220, 90, + 242, 23, 22, 219, 190, 225, 221, 87, 210, 254, 211, 69, 215, 216, 31, + 241, 224, 215, 216, 31, 233, 108, 215, 216, 31, 244, 97, 215, 216, 31, + 216, 134, 215, 216, 31, 211, 239, 215, 216, 31, 212, 40, 215, 216, 31, + 230, 116, 215, 216, 31, 245, 224, 212, 1, 64, 248, 19, 71, 243, 240, 244, + 191, 71, 219, 75, 244, 191, 85, 219, 75, 244, 191, 71, 218, 39, 2, 223, + 133, 244, 93, 224, 23, 230, 129, 233, 81, 224, 23, 230, 129, 231, 55, + 244, 139, 50, 245, 224, 231, 191, 50, 235, 39, 221, 221, 214, 145, 229, + 94, 225, 21, 254, 13, 217, 41, 243, 53, 251, 4, 233, 20, 213, 150, 232, + 239, 221, 192, 222, 20, 250, 249, 254, 43, 225, 53, 71, 250, 118, 234, + 79, 71, 250, 118, 224, 15, 71, 250, 118, 222, 196, 71, 250, 118, 251, + 232, 71, 250, 118, 234, 31, 71, 250, 118, 225, 232, 85, 250, 118, 234, + 79, 85, 250, 118, 224, 15, 85, 250, 118, 222, 196, 85, 250, 118, 251, + 232, 85, 250, 118, 234, 31, 85, 250, 118, 225, 232, 85, 219, 17, 218, 51, + 71, 241, 229, 218, 51, 71, 247, 250, 218, 51, 85, 249, 246, 218, 51, 71, + 219, 17, 218, 51, 85, 241, 229, 218, 51, 85, 247, 250, 218, 51, 71, 249, + 246, 218, 51, 240, 244, 218, 239, 224, 23, 228, 48, 245, 190, 228, 48, + 252, 74, 245, 190, 228, 43, 252, 74, 219, 119, 228, 43, 230, 58, 244, 67, + 50, 230, 58, 229, 189, 50, 230, 58, 220, 77, 50, 212, 9, 182, 249, 131, + 245, 221, 182, 249, 131, 214, 171, 223, 113, 87, 223, 113, 16, 31, 215, + 48, 225, 35, 223, 113, 16, 31, 215, 47, 225, 35, 223, 113, 16, 31, 215, + 46, 225, 35, 223, 113, 16, 31, 215, 45, 225, 35, 223, 113, 16, 31, 215, + 44, 225, 35, 223, 113, 16, 31, 215, 43, 225, 35, 223, 113, 16, 31, 215, + 42, 225, 35, 223, 113, 16, 31, 243, 51, 231, 139, 85, 214, 171, 223, 113, + 87, 223, 114, 226, 21, 87, 225, 253, 226, 21, 87, 225, 175, 226, 21, 50, + 211, 255, 87, 247, 242, 244, 190, 247, 242, 244, 189, 247, 242, 244, 188, + 247, 242, 244, 187, 247, 242, 244, 186, 247, 242, 244, 185, 71, 250, 37, + 2, 59, 222, 252, 71, 250, 37, 2, 113, 247, 119, 85, 250, 37, 2, 71, 59, + 222, 252, 85, 250, 37, 2, 113, 71, 247, 119, 230, 143, 31, 211, 69, 230, + 143, 31, 210, 253, 247, 225, 31, 242, 132, 211, 69, 247, 225, 31, 233, + 14, 210, 253, 247, 225, 31, 233, 14, 211, 69, 247, 225, 31, 242, 132, + 210, 253, 71, 244, 74, 85, 244, 74, 242, 23, 22, 225, 105, 254, 121, 249, + 129, 217, 236, 218, 165, 64, 254, 227, 221, 207, 254, 170, 244, 52, 243, + 61, 218, 165, 64, 241, 203, 253, 200, 87, 244, 63, 226, 127, 71, 218, + 157, 134, 232, 209, 249, 176, 222, 252, 134, 232, 209, 249, 176, 233, 47, + 212, 50, 50, 125, 213, 130, 50, 246, 111, 244, 139, 50, 246, 111, 231, + 191, 50, 235, 204, 244, 139, 22, 231, 191, 50, 231, 191, 22, 244, 139, + 50, 231, 191, 2, 218, 104, 50, 231, 191, 2, 218, 104, 22, 231, 191, 22, + 244, 139, 50, 67, 231, 191, 2, 218, 104, 50, 203, 231, 191, 2, 218, 104, + 50, 231, 83, 71, 250, 36, 231, 83, 85, 250, 36, 231, 83, 4, 71, 250, 36, + 231, 154, 87, 247, 168, 87, 214, 169, 225, 252, 87, 249, 232, 243, 225, + 214, 141, 229, 89, 250, 162, 226, 62, 235, 45, 213, 185, 250, 94, 85, + 230, 130, 232, 226, 220, 113, 220, 148, 224, 6, 220, 131, 219, 56, 252, + 160, 252, 127, 92, 234, 139, 71, 246, 94, 231, 186, 71, 246, 94, 234, 79, + 85, 246, 94, 231, 186, 85, 246, 94, 234, 79, 219, 62, 211, 230, 219, 65, + 218, 39, 252, 52, 249, 248, 223, 160, 85, 219, 61, 216, 135, 249, 249, + 22, 223, 160, 215, 94, 71, 220, 3, 225, 102, 215, 94, 85, 220, 3, 225, + 102, 71, 247, 250, 236, 1, 218, 235, 249, 126, 233, 92, 247, 194, 250, + 245, 226, 167, 225, 105, 250, 246, 219, 89, 241, 213, 2, 71, 249, 131, + 37, 249, 126, 233, 92, 250, 154, 228, 76, 245, 125, 254, 142, 226, 192, + 43, 212, 26, 215, 252, 85, 215, 55, 43, 212, 26, 215, 252, 71, 215, 55, + 43, 212, 26, 215, 252, 85, 43, 233, 93, 231, 54, 71, 43, 233, 93, 231, + 54, 246, 90, 219, 83, 50, 114, 71, 246, 106, 215, 226, 43, 250, 1, 245, + 125, 92, 221, 255, 244, 176, 248, 0, 236, 1, 71, 250, 37, 236, 1, 85, + 218, 235, 85, 215, 193, 223, 61, 43, 245, 124, 223, 61, 43, 245, 123, + 253, 212, 16, 31, 214, 145, 114, 250, 37, 2, 218, 104, 22, 113, 170, 48, + 225, 190, 222, 249, 235, 206, 225, 190, 233, 44, 235, 206, 225, 190, 235, + 194, 225, 190, 85, 249, 132, 226, 198, 220, 30, 220, 18, 219, 230, 250, + 62, 250, 227, 241, 158, 219, 127, 243, 62, 211, 230, 240, 221, 243, 62, + 2, 242, 13, 231, 174, 16, 31, 232, 230, 230, 116, 214, 195, 226, 198, + 242, 123, 244, 13, 244, 75, 236, 1, 241, 60, 244, 130, 222, 15, 42, 244, + 12, 249, 160, 219, 105, 240, 113, 219, 108, 225, 169, 2, 252, 160, 216, + 243, 235, 132, 252, 147, 87, 241, 232, 242, 134, 87, 243, 233, 224, 143, + 249, 104, 226, 198, 85, 218, 235, 71, 244, 75, 2, 203, 230, 225, 85, 218, + 105, 214, 160, 251, 218, 221, 194, 85, 221, 194, 232, 109, 251, 218, 221, + 194, 71, 221, 194, 71, 114, 250, 131, 78, 217, 2, 232, 155, 50, 217, 54, + 246, 89, 254, 192, 245, 120, 223, 158, 244, 86, 223, 158, 242, 16, 213, + 174, 242, 16, 211, 198, 242, 16, 232, 109, 44, 225, 199, 225, 199, 214, + 160, 44, 225, 199, 71, 228, 231, 85, 228, 231, 250, 131, 78, 114, 250, + 131, 78, 230, 85, 211, 178, 114, 230, 85, 211, 178, 252, 157, 211, 178, + 114, 252, 157, 211, 178, 226, 127, 26, 249, 131, 114, 26, 249, 131, 204, + 250, 176, 249, 131, 114, 204, 250, 176, 249, 131, 7, 249, 131, 220, 92, + 71, 7, 249, 131, 226, 127, 7, 249, 131, 231, 188, 249, 131, 218, 158, 64, + 248, 150, 244, 12, 217, 16, 253, 217, 244, 12, 252, 158, 253, 217, 114, + 244, 12, 252, 158, 253, 217, 244, 12, 249, 244, 253, 217, 85, 244, 12, + 225, 10, 218, 157, 71, 244, 12, 225, 10, 218, 157, 219, 12, 218, 112, + 226, 127, 71, 218, 157, 37, 71, 218, 157, 204, 250, 176, 85, 218, 157, + 85, 250, 176, 71, 218, 157, 226, 127, 85, 218, 157, 114, 226, 127, 85, + 218, 157, 225, 61, 218, 157, 220, 92, 71, 218, 157, 114, 253, 217, 204, + 250, 176, 253, 217, 245, 194, 218, 245, 253, 217, 245, 194, 225, 10, 85, + 218, 157, 245, 194, 225, 10, 225, 61, 218, 157, 219, 126, 225, 10, 85, + 218, 157, 245, 194, 225, 10, 223, 115, 85, 218, 157, 114, 245, 194, 225, + 10, 223, 115, 85, 218, 157, 215, 77, 225, 10, 85, 218, 157, 219, 121, + 225, 10, 253, 217, 217, 16, 253, 217, 204, 250, 176, 217, 16, 253, 217, + 114, 217, 16, 253, 217, 219, 126, 225, 158, 85, 22, 71, 244, 55, 85, 244, + 55, 71, 244, 55, 245, 194, 225, 158, 226, 127, 85, 244, 55, 37, 204, 250, + 176, 245, 194, 225, 10, 218, 157, 114, 217, 16, 225, 61, 253, 217, 219, + 63, 216, 106, 215, 219, 219, 63, 114, 250, 115, 219, 63, 219, 14, 114, + 219, 14, 252, 158, 253, 217, 245, 194, 217, 16, 224, 172, 253, 217, 114, + 245, 194, 217, 16, 224, 172, 253, 217, 249, 132, 78, 220, 92, 71, 250, + 36, 152, 92, 249, 132, 78, 232, 109, 44, 246, 87, 71, 218, 235, 214, 160, + 44, 246, 87, 71, 218, 235, 232, 109, 44, 220, 92, 71, 218, 235, 214, 160, + 44, 220, 92, 71, 218, 235, 85, 224, 14, 164, 226, 148, 71, 224, 14, 164, + 226, 148, 71, 245, 32, 164, 226, 148, 85, 247, 250, 230, 183, 71, 211, + 178, 114, 245, 32, 164, 87, 192, 67, 130, 231, 83, 67, 130, 114, 67, 130, + 114, 219, 156, 215, 94, 249, 221, 223, 255, 164, 226, 148, 114, 219, 156, + 249, 221, 223, 255, 164, 226, 148, 114, 52, 215, 94, 249, 221, 223, 255, + 164, 226, 148, 114, 52, 249, 221, 223, 255, 164, 226, 148, 114, 121, 219, + 156, 249, 221, 223, 255, 164, 226, 148, 114, 121, 52, 249, 221, 223, 255, + 164, 226, 148, 249, 92, 218, 141, 226, 16, 5, 226, 148, 114, 245, 32, + 164, 226, 148, 114, 241, 229, 245, 32, 164, 226, 148, 114, 85, 241, 228, + 222, 188, 114, 85, 241, 229, 251, 114, 244, 56, 241, 228, 222, 188, 244, + 56, 241, 229, 251, 114, 231, 83, 43, 226, 5, 226, 148, 231, 83, 44, 226, + 5, 226, 148, 231, 83, 244, 64, 43, 226, 5, 226, 148, 231, 83, 244, 64, + 44, 226, 5, 226, 148, 231, 83, 233, 43, 254, 111, 251, 159, 226, 148, + 231, 83, 222, 248, 254, 111, 251, 159, 226, 148, 114, 233, 43, 254, 111, + 223, 255, 164, 226, 148, 114, 222, 248, 254, 111, 223, 255, 164, 226, + 148, 114, 233, 43, 254, 111, 251, 159, 226, 148, 114, 222, 248, 254, 111, + 251, 159, 226, 148, 192, 43, 216, 7, 220, 54, 251, 159, 226, 148, 192, + 44, 216, 7, 220, 54, 251, 159, 226, 148, 231, 83, 43, 249, 100, 251, 159, + 226, 148, 231, 83, 44, 249, 100, 251, 159, 226, 148, 247, 205, 152, 37, + 21, 110, 247, 205, 152, 37, 21, 105, 247, 205, 152, 37, 21, 158, 247, + 205, 152, 37, 21, 161, 247, 205, 152, 37, 21, 189, 247, 205, 152, 37, 21, + 194, 247, 205, 152, 37, 21, 198, 247, 205, 152, 37, 21, 195, 247, 205, + 152, 37, 21, 200, 247, 205, 152, 37, 54, 216, 248, 247, 205, 37, 35, 21, + 110, 247, 205, 37, 35, 21, 105, 247, 205, 37, 35, 21, 158, 247, 205, 37, + 35, 21, 161, 247, 205, 37, 35, 21, 189, 247, 205, 37, 35, 21, 194, 247, + 205, 37, 35, 21, 198, 247, 205, 37, 35, 21, 195, 247, 205, 37, 35, 21, + 200, 247, 205, 37, 35, 54, 216, 248, 247, 205, 152, 37, 35, 21, 110, 247, + 205, 152, 37, 35, 21, 105, 247, 205, 152, 37, 35, 21, 158, 247, 205, 152, + 37, 35, 21, 161, 247, 205, 152, 37, 35, 21, 189, 247, 205, 152, 37, 35, + 21, 194, 247, 205, 152, 37, 35, 21, 198, 247, 205, 152, 37, 35, 21, 195, + 247, 205, 152, 37, 35, 21, 200, 247, 205, 152, 37, 35, 54, 216, 248, 114, + 211, 246, 97, 74, 114, 96, 50, 114, 230, 183, 50, 114, 247, 170, 50, 114, + 219, 29, 245, 221, 74, 114, 97, 74, 114, 228, 57, 245, 221, 74, 246, 99, + 225, 12, 97, 74, 114, 222, 185, 97, 74, 215, 225, 97, 74, 114, 215, 225, + 97, 74, 248, 156, 215, 225, 97, 74, 114, 248, 156, 215, 225, 97, 74, 85, + 97, 74, 216, 145, 216, 13, 97, 253, 250, 216, 145, 251, 174, 97, 253, + 250, 85, 97, 253, 250, 114, 85, 249, 92, 246, 105, 22, 97, 74, 114, 85, + 249, 92, 214, 153, 22, 97, 74, 218, 232, 85, 97, 74, 114, 249, 207, 85, + 97, 74, 222, 247, 71, 97, 74, 233, 42, 71, 97, 74, 252, 184, 220, 92, 71, + 97, 74, 243, 242, 220, 92, 71, 97, 74, 114, 232, 109, 222, 246, 71, 97, + 74, 114, 214, 160, 222, 246, 71, 97, 74, 228, 50, 232, 109, 222, 246, 71, + 97, 74, 249, 100, 232, 124, 228, 50, 214, 160, 222, 246, 71, 97, 74, 37, + 114, 71, 97, 74, 211, 252, 97, 74, 251, 221, 219, 29, 245, 221, 74, 251, + 221, 97, 74, 251, 221, 228, 57, 245, 221, 74, 114, 251, 221, 219, 29, + 245, 221, 74, 114, 251, 221, 97, 74, 114, 251, 221, 228, 57, 245, 221, + 74, 217, 18, 97, 74, 114, 217, 17, 97, 74, 212, 18, 97, 74, 114, 212, 18, + 97, 74, 226, 173, 97, 74, 52, 249, 100, 232, 124, 134, 247, 215, 254, + 110, 71, 215, 227, 249, 188, 4, 71, 215, 226, 225, 172, 204, 218, 64, + 204, 218, 22, 43, 222, 91, 252, 174, 248, 61, 44, 222, 91, 252, 174, 248, + 61, 177, 2, 59, 235, 216, 223, 51, 219, 48, 224, 202, 218, 64, 218, 23, + 224, 202, 219, 47, 67, 252, 142, 2, 203, 91, 11, 222, 229, 247, 255, 199, + 247, 169, 11, 244, 176, 247, 255, 92, 232, 147, 254, 119, 92, 232, 147, + 226, 159, 71, 247, 250, 2, 250, 174, 247, 121, 22, 2, 247, 121, 245, 171, + 64, 226, 171, 214, 152, 232, 109, 44, 249, 162, 2, 247, 121, 214, 160, + 43, 249, 162, 2, 247, 121, 43, 226, 129, 235, 67, 44, 226, 129, 235, 67, + 243, 230, 226, 129, 235, 67, 233, 86, 120, 217, 88, 233, 86, 124, 217, + 88, 43, 22, 44, 52, 215, 93, 43, 22, 44, 217, 88, 43, 230, 88, 199, 44, + 217, 88, 199, 43, 217, 88, 120, 217, 89, 2, 250, 37, 48, 232, 106, 247, + 174, 251, 79, 203, 222, 134, 71, 249, 206, 247, 249, 71, 249, 206, 247, + 250, 2, 140, 216, 115, 71, 249, 206, 247, 250, 2, 97, 216, 115, 71, 42, + 2, 140, 216, 115, 71, 42, 2, 97, 216, 115, 11, 43, 71, 42, 127, 11, 44, + 71, 42, 127, 11, 43, 254, 111, 127, 11, 44, 254, 111, 127, 11, 43, 52, + 254, 111, 127, 11, 44, 52, 254, 111, 127, 11, 43, 71, 216, 7, 220, 54, + 127, 11, 44, 71, 216, 7, 220, 54, 127, 11, 43, 244, 64, 226, 4, 11, 44, + 244, 64, 226, 4, 214, 153, 224, 25, 74, 246, 105, 224, 25, 74, 254, 89, + 243, 99, 250, 37, 74, 250, 3, 243, 99, 250, 37, 74, 44, 80, 2, 37, 225, + 23, 199, 140, 74, 199, 97, 74, 199, 43, 44, 74, 199, 140, 52, 74, 199, + 97, 52, 74, 199, 43, 44, 52, 74, 199, 140, 80, 243, 244, 130, 199, 97, + 80, 243, 244, 130, 199, 140, 52, 80, 243, 244, 130, 199, 97, 52, 80, 243, + 244, 130, 199, 97, 218, 231, 74, 46, 47, 251, 216, 46, 47, 247, 118, 46, + 47, 246, 246, 46, 47, 247, 117, 46, 47, 246, 182, 46, 47, 247, 53, 46, + 47, 246, 245, 46, 47, 247, 116, 46, 47, 246, 150, 46, 47, 247, 21, 46, + 47, 246, 213, 46, 47, 247, 84, 46, 47, 246, 181, 46, 47, 247, 52, 46, 47, + 246, 244, 46, 47, 247, 115, 46, 47, 246, 134, 46, 47, 247, 5, 46, 47, + 246, 197, 46, 47, 247, 68, 46, 47, 246, 165, 46, 47, 247, 36, 46, 47, + 246, 228, 46, 47, 247, 99, 46, 47, 246, 149, 46, 47, 247, 20, 46, 47, + 246, 212, 46, 47, 247, 83, 46, 47, 246, 180, 46, 47, 247, 51, 46, 47, + 246, 243, 46, 47, 247, 114, 46, 47, 246, 126, 46, 47, 246, 253, 46, 47, + 246, 189, 46, 47, 247, 60, 46, 47, 246, 157, 46, 47, 247, 28, 46, 47, + 246, 220, 46, 47, 247, 91, 46, 47, 246, 141, 46, 47, 247, 12, 46, 47, + 246, 204, 46, 47, 247, 75, 46, 47, 246, 172, 46, 47, 247, 43, 46, 47, + 246, 235, 46, 47, 247, 106, 46, 47, 246, 133, 46, 47, 247, 4, 46, 47, + 246, 196, 46, 47, 247, 67, 46, 47, 246, 164, 46, 47, 247, 35, 46, 47, + 246, 227, 46, 47, 247, 98, 46, 47, 246, 148, 46, 47, 247, 19, 46, 47, + 246, 211, 46, 47, 247, 82, 46, 47, 246, 179, 46, 47, 247, 50, 46, 47, + 246, 242, 46, 47, 247, 113, 46, 47, 246, 122, 46, 47, 246, 249, 46, 47, + 246, 185, 46, 47, 247, 56, 46, 47, 246, 153, 46, 47, 247, 24, 46, 47, + 246, 216, 46, 47, 247, 87, 46, 47, 246, 137, 46, 47, 247, 8, 46, 47, 246, + 200, 46, 47, 247, 71, 46, 47, 246, 168, 46, 47, 247, 39, 46, 47, 246, + 231, 46, 47, 247, 102, 46, 47, 246, 129, 46, 47, 247, 0, 46, 47, 246, + 192, 46, 47, 247, 63, 46, 47, 246, 160, 46, 47, 247, 31, 46, 47, 246, + 223, 46, 47, 247, 94, 46, 47, 246, 144, 46, 47, 247, 15, 46, 47, 246, + 207, 46, 47, 247, 78, 46, 47, 246, 175, 46, 47, 247, 46, 46, 47, 246, + 238, 46, 47, 247, 109, 46, 47, 246, 125, 46, 47, 246, 252, 46, 47, 246, + 188, 46, 47, 247, 59, 46, 47, 246, 156, 46, 47, 247, 27, 46, 47, 246, + 219, 46, 47, 247, 90, 46, 47, 246, 140, 46, 47, 247, 11, 46, 47, 246, + 203, 46, 47, 247, 74, 46, 47, 246, 171, 46, 47, 247, 42, 46, 47, 246, + 234, 46, 47, 247, 105, 46, 47, 246, 132, 46, 47, 247, 3, 46, 47, 246, + 195, 46, 47, 247, 66, 46, 47, 246, 163, 46, 47, 247, 34, 46, 47, 246, + 226, 46, 47, 247, 97, 46, 47, 246, 147, 46, 47, 247, 18, 46, 47, 246, + 210, 46, 47, 247, 81, 46, 47, 246, 178, 46, 47, 247, 49, 46, 47, 246, + 241, 46, 47, 247, 112, 46, 47, 246, 120, 46, 47, 246, 247, 46, 47, 246, + 183, 46, 47, 247, 54, 46, 47, 246, 151, 46, 47, 247, 22, 46, 47, 246, + 214, 46, 47, 247, 85, 46, 47, 246, 135, 46, 47, 247, 6, 46, 47, 246, 198, + 46, 47, 247, 69, 46, 47, 246, 166, 46, 47, 247, 37, 46, 47, 246, 229, 46, + 47, 247, 100, 46, 47, 246, 127, 46, 47, 246, 254, 46, 47, 246, 190, 46, + 47, 247, 61, 46, 47, 246, 158, 46, 47, 247, 29, 46, 47, 246, 221, 46, 47, + 247, 92, 46, 47, 246, 142, 46, 47, 247, 13, 46, 47, 246, 205, 46, 47, + 247, 76, 46, 47, 246, 173, 46, 47, 247, 44, 46, 47, 246, 236, 46, 47, + 247, 107, 46, 47, 246, 123, 46, 47, 246, 250, 46, 47, 246, 186, 46, 47, + 247, 57, 46, 47, 246, 154, 46, 47, 247, 25, 46, 47, 246, 217, 46, 47, + 247, 88, 46, 47, 246, 138, 46, 47, 247, 9, 46, 47, 246, 201, 46, 47, 247, + 72, 46, 47, 246, 169, 46, 47, 247, 40, 46, 47, 246, 232, 46, 47, 247, + 103, 46, 47, 246, 130, 46, 47, 247, 1, 46, 47, 246, 193, 46, 47, 247, 64, + 46, 47, 246, 161, 46, 47, 247, 32, 46, 47, 246, 224, 46, 47, 247, 95, 46, + 47, 246, 145, 46, 47, 247, 16, 46, 47, 246, 208, 46, 47, 247, 79, 46, 47, + 246, 176, 46, 47, 247, 47, 46, 47, 246, 239, 46, 47, 247, 110, 46, 47, + 246, 121, 46, 47, 246, 248, 46, 47, 246, 184, 46, 47, 247, 55, 46, 47, + 246, 152, 46, 47, 247, 23, 46, 47, 246, 215, 46, 47, 247, 86, 46, 47, + 246, 136, 46, 47, 247, 7, 46, 47, 246, 199, 46, 47, 247, 70, 46, 47, 246, + 167, 46, 47, 247, 38, 46, 47, 246, 230, 46, 47, 247, 101, 46, 47, 246, + 128, 46, 47, 246, 255, 46, 47, 246, 191, 46, 47, 247, 62, 46, 47, 246, + 159, 46, 47, 247, 30, 46, 47, 246, 222, 46, 47, 247, 93, 46, 47, 246, + 143, 46, 47, 247, 14, 46, 47, 246, 206, 46, 47, 247, 77, 46, 47, 246, + 174, 46, 47, 247, 45, 46, 47, 246, 237, 46, 47, 247, 108, 46, 47, 246, + 124, 46, 47, 246, 251, 46, 47, 246, 187, 46, 47, 247, 58, 46, 47, 246, + 155, 46, 47, 247, 26, 46, 47, 246, 218, 46, 47, 247, 89, 46, 47, 246, + 139, 46, 47, 247, 10, 46, 47, 246, 202, 46, 47, 247, 73, 46, 47, 246, + 170, 46, 47, 247, 41, 46, 47, 246, 233, 46, 47, 247, 104, 46, 47, 246, + 131, 46, 47, 247, 2, 46, 47, 246, 194, 46, 47, 247, 65, 46, 47, 246, 162, + 46, 47, 247, 33, 46, 47, 246, 225, 46, 47, 247, 96, 46, 47, 246, 146, 46, + 47, 247, 17, 46, 47, 246, 209, 46, 47, 247, 80, 46, 47, 246, 177, 46, 47, + 247, 48, 46, 47, 246, 240, 46, 47, 247, 111, 97, 215, 58, 80, 2, 67, 91, 97, 215, 58, 80, 2, 52, 67, 91, 140, 52, 80, 2, 67, 91, 97, 52, 80, 2, - 67, 91, 43, 44, 52, 80, 2, 67, 91, 97, 215, 58, 80, 243, 243, 130, 140, - 52, 80, 243, 243, 130, 97, 52, 80, 243, 243, 130, 246, 104, 80, 2, 203, - 91, 214, 153, 80, 2, 203, 91, 214, 153, 215, 211, 74, 246, 104, 215, 211, - 74, 140, 52, 248, 157, 74, 97, 52, 248, 157, 74, 140, 215, 211, 248, 157, - 74, 97, 215, 211, 248, 157, 74, 97, 215, 58, 215, 211, 248, 157, 74, 97, - 80, 2, 246, 118, 218, 139, 214, 153, 80, 216, 42, 130, 246, 104, 80, 216, - 42, 130, 97, 80, 2, 217, 78, 2, 67, 91, 97, 80, 2, 217, 78, 2, 52, 67, - 91, 97, 215, 58, 80, 2, 217, 77, 97, 215, 58, 80, 2, 217, 78, 2, 67, 91, - 97, 215, 58, 80, 2, 217, 78, 2, 52, 67, 91, 140, 253, 251, 97, 253, 251, - 140, 52, 253, 251, 97, 52, 253, 251, 140, 80, 216, 42, 85, 247, 248, 97, - 80, 216, 42, 85, 247, 248, 140, 80, 243, 243, 252, 141, 216, 42, 85, 247, - 248, 97, 80, 243, 243, 252, 141, 216, 42, 85, 247, 248, 228, 56, 212, 9, - 22, 219, 28, 245, 220, 74, 228, 56, 245, 220, 22, 219, 28, 212, 9, 74, - 228, 56, 212, 9, 80, 2, 103, 228, 56, 245, 220, 80, 2, 103, 219, 28, 245, - 220, 80, 2, 103, 219, 28, 212, 9, 80, 2, 103, 228, 56, 212, 9, 80, 22, - 228, 56, 245, 220, 74, 228, 56, 245, 220, 80, 22, 219, 28, 245, 220, 74, - 219, 28, 245, 220, 80, 22, 219, 28, 212, 9, 74, 219, 28, 212, 9, 80, 22, - 228, 56, 212, 9, 74, 222, 228, 247, 255, 249, 125, 244, 175, 247, 254, - 244, 175, 247, 255, 249, 125, 222, 228, 247, 254, 219, 28, 245, 220, 80, - 249, 125, 228, 56, 245, 220, 74, 228, 56, 245, 220, 80, 249, 125, 219, - 28, 245, 220, 74, 244, 175, 247, 255, 249, 125, 228, 56, 245, 220, 74, - 222, 228, 247, 255, 249, 125, 219, 28, 245, 220, 74, 228, 56, 245, 220, - 80, 249, 125, 228, 56, 212, 9, 74, 228, 56, 212, 9, 80, 249, 125, 228, - 56, 245, 220, 74, 212, 36, 80, 225, 7, 247, 195, 222, 251, 80, 225, 7, - 97, 216, 188, 249, 90, 214, 152, 80, 225, 7, 97, 216, 188, 249, 90, 246, - 103, 80, 225, 7, 246, 104, 216, 188, 249, 90, 233, 37, 80, 225, 7, 246, - 104, 216, 188, 249, 90, 222, 241, 222, 244, 254, 26, 250, 2, 74, 233, 40, - 254, 26, 254, 88, 74, 216, 14, 254, 26, 254, 88, 74, 251, 175, 254, 26, - 254, 88, 74, 216, 14, 254, 26, 250, 2, 80, 2, 230, 181, 216, 14, 254, 26, - 254, 88, 80, 2, 225, 22, 232, 108, 44, 220, 152, 250, 2, 74, 232, 108, - 43, 220, 152, 254, 88, 74, 254, 88, 250, 0, 250, 36, 74, 250, 2, 250, 0, - 250, 36, 74, 97, 80, 77, 219, 251, 140, 74, 140, 80, 77, 219, 251, 97, - 74, 219, 251, 97, 80, 77, 140, 74, 97, 80, 2, 96, 51, 140, 80, 2, 96, 51, - 97, 80, 216, 139, 211, 178, 43, 44, 80, 216, 139, 4, 250, 35, 214, 153, - 215, 58, 80, 243, 243, 4, 250, 35, 43, 252, 139, 120, 44, 252, 139, 124, - 241, 254, 43, 252, 139, 124, 44, 252, 139, 120, 241, 254, 120, 252, 139, - 44, 124, 252, 139, 43, 241, 254, 120, 252, 139, 43, 124, 252, 139, 44, - 241, 254, 43, 252, 139, 120, 44, 252, 139, 120, 241, 254, 120, 252, 139, - 44, 124, 252, 139, 44, 241, 254, 43, 252, 139, 124, 44, 252, 139, 124, - 241, 254, 120, 252, 139, 43, 124, 252, 139, 43, 241, 254, 140, 241, 255, - 2, 252, 139, 120, 216, 42, 130, 97, 241, 255, 2, 252, 139, 120, 216, 42, - 130, 214, 153, 241, 255, 2, 252, 139, 44, 216, 42, 130, 246, 104, 241, - 255, 2, 252, 139, 44, 216, 42, 130, 140, 241, 255, 2, 252, 139, 124, 216, - 42, 130, 97, 241, 255, 2, 252, 139, 124, 216, 42, 130, 214, 153, 241, - 255, 2, 252, 139, 43, 216, 42, 130, 246, 104, 241, 255, 2, 252, 139, 43, - 216, 42, 130, 140, 241, 255, 2, 252, 139, 120, 243, 243, 130, 97, 241, - 255, 2, 252, 139, 120, 243, 243, 130, 214, 153, 241, 255, 2, 252, 139, - 44, 243, 243, 130, 246, 104, 241, 255, 2, 252, 139, 44, 243, 243, 130, - 140, 241, 255, 2, 252, 139, 124, 243, 243, 130, 97, 241, 255, 2, 252, - 139, 124, 243, 243, 130, 214, 153, 241, 255, 2, 252, 139, 43, 243, 243, - 130, 246, 104, 241, 255, 2, 252, 139, 43, 243, 243, 130, 140, 241, 255, - 2, 252, 139, 120, 77, 140, 241, 255, 2, 252, 139, 246, 106, 214, 153, - 241, 255, 2, 252, 139, 43, 252, 30, 214, 153, 241, 255, 2, 252, 139, 222, - 251, 97, 241, 255, 2, 252, 139, 120, 77, 97, 241, 255, 2, 252, 139, 246, - 106, 246, 104, 241, 255, 2, 252, 139, 43, 252, 30, 246, 104, 241, 255, 2, - 252, 139, 222, 251, 140, 241, 255, 2, 252, 139, 120, 77, 97, 241, 255, 2, - 252, 139, 214, 163, 140, 241, 255, 2, 252, 139, 124, 77, 97, 241, 255, 2, - 252, 139, 246, 106, 97, 241, 255, 2, 252, 139, 120, 77, 140, 241, 255, 2, - 252, 139, 214, 163, 97, 241, 255, 2, 252, 139, 124, 77, 140, 241, 255, 2, - 252, 139, 246, 106, 140, 241, 255, 2, 252, 139, 120, 77, 199, 248, 156, - 140, 241, 255, 2, 252, 139, 124, 252, 43, 199, 248, 156, 97, 241, 255, 2, - 252, 139, 120, 77, 199, 248, 156, 97, 241, 255, 2, 252, 139, 124, 252, - 43, 199, 248, 156, 214, 153, 241, 255, 2, 252, 139, 43, 252, 30, 246, - 104, 241, 255, 2, 252, 139, 222, 251, 246, 104, 241, 255, 2, 252, 139, - 43, 252, 30, 214, 153, 241, 255, 2, 252, 139, 222, 251, 44, 52, 80, 2, - 222, 183, 241, 235, 245, 98, 5, 77, 97, 74, 216, 89, 226, 168, 77, 97, - 74, 140, 80, 77, 216, 89, 226, 167, 97, 80, 77, 216, 89, 226, 167, 97, - 80, 77, 254, 148, 128, 111, 233, 15, 77, 140, 74, 140, 80, 216, 139, 233, - 14, 242, 130, 77, 97, 74, 218, 64, 77, 97, 74, 140, 80, 216, 139, 218, - 63, 218, 22, 77, 140, 74, 43, 244, 91, 217, 77, 44, 244, 91, 217, 77, - 120, 244, 91, 217, 77, 124, 244, 91, 217, 77, 215, 211, 67, 252, 141, - 248, 60, 210, 160, 187, 218, 242, 210, 160, 187, 215, 49, 249, 226, 43, - 71, 249, 99, 127, 44, 71, 249, 99, 127, 43, 71, 226, 3, 44, 71, 226, 3, - 210, 160, 187, 43, 236, 15, 127, 210, 160, 187, 44, 236, 15, 127, 210, - 160, 187, 43, 251, 242, 127, 210, 160, 187, 44, 251, 242, 127, 43, 42, - 251, 158, 2, 214, 183, 44, 42, 251, 158, 2, 214, 183, 43, 42, 251, 158, - 2, 216, 115, 236, 0, 216, 14, 249, 160, 44, 42, 251, 158, 2, 216, 115, - 236, 0, 251, 175, 249, 160, 43, 42, 251, 158, 2, 216, 115, 236, 0, 251, - 175, 249, 160, 44, 42, 251, 158, 2, 216, 115, 236, 0, 216, 14, 249, 160, - 43, 254, 110, 251, 158, 2, 247, 120, 44, 254, 110, 251, 158, 2, 247, 120, - 43, 254, 26, 233, 15, 127, 44, 254, 26, 242, 130, 127, 52, 43, 254, 26, - 242, 130, 127, 52, 44, 254, 26, 233, 15, 127, 43, 85, 216, 6, 220, 53, - 127, 44, 85, 216, 6, 220, 53, 127, 246, 118, 244, 135, 67, 210, 35, 232, - 213, 231, 88, 254, 110, 226, 170, 233, 46, 44, 254, 110, 214, 12, 2, 218, - 234, 231, 88, 44, 254, 110, 2, 247, 120, 254, 110, 2, 222, 92, 235, 215, - 255, 3, 254, 109, 218, 255, 254, 110, 226, 170, 233, 46, 218, 255, 254, - 110, 226, 170, 214, 163, 215, 94, 254, 109, 223, 49, 254, 109, 254, 110, - 2, 214, 183, 223, 49, 254, 110, 2, 214, 183, 226, 248, 254, 110, 226, - 170, 214, 163, 226, 248, 254, 110, 226, 170, 246, 106, 231, 88, 254, 110, - 2, 204, 254, 5, 245, 140, 236, 0, 80, 225, 7, 120, 22, 222, 251, 231, 88, - 254, 110, 2, 204, 254, 5, 245, 140, 236, 0, 80, 225, 7, 120, 22, 233, 46, - 231, 88, 254, 110, 2, 204, 254, 5, 245, 140, 236, 0, 80, 225, 7, 124, 22, - 222, 251, 231, 88, 254, 110, 2, 204, 254, 5, 245, 140, 236, 0, 80, 225, - 7, 124, 22, 233, 46, 231, 88, 254, 110, 2, 204, 254, 5, 245, 140, 236, 0, - 80, 225, 7, 44, 22, 214, 163, 231, 88, 254, 110, 2, 204, 254, 5, 245, - 140, 236, 0, 80, 225, 7, 43, 22, 214, 163, 231, 88, 254, 110, 2, 204, - 254, 5, 245, 140, 236, 0, 80, 225, 7, 44, 22, 246, 106, 231, 88, 254, - 110, 2, 204, 254, 5, 245, 140, 236, 0, 80, 225, 7, 43, 22, 246, 106, 223, - 49, 245, 152, 220, 127, 245, 152, 220, 128, 2, 226, 123, 245, 152, 220, - 128, 2, 4, 250, 36, 48, 245, 152, 220, 128, 2, 44, 80, 48, 245, 152, 220, - 128, 2, 43, 80, 48, 250, 36, 2, 203, 130, 37, 67, 130, 37, 226, 7, 37, - 223, 50, 219, 46, 37, 225, 171, 250, 36, 247, 173, 251, 78, 203, 252, - 141, 22, 216, 14, 163, 247, 173, 251, 78, 67, 130, 250, 36, 2, 218, 24, - 211, 178, 37, 254, 87, 247, 169, 50, 120, 80, 216, 139, 250, 35, 37, 71, - 251, 113, 37, 251, 113, 37, 233, 14, 37, 242, 129, 250, 36, 2, 4, 250, - 36, 216, 42, 216, 196, 222, 251, 250, 36, 2, 113, 203, 218, 91, 216, 42, - 216, 196, 222, 251, 92, 222, 228, 247, 255, 219, 95, 92, 244, 175, 247, - 255, 219, 95, 92, 253, 216, 92, 4, 250, 35, 92, 218, 234, 113, 235, 65, - 218, 232, 215, 226, 2, 59, 48, 215, 226, 2, 214, 183, 222, 92, 236, 0, - 215, 225, 215, 226, 2, 220, 134, 253, 207, 251, 174, 44, 215, 226, 77, - 43, 215, 225, 43, 215, 226, 252, 30, 67, 130, 67, 252, 141, 252, 30, 44, - 215, 225, 251, 165, 2, 43, 163, 251, 221, 251, 165, 2, 44, 163, 251, 221, - 85, 251, 164, 30, 2, 43, 163, 251, 221, 30, 2, 44, 163, 251, 221, 71, - 240, 236, 85, 240, 236, 43, 211, 244, 244, 135, 44, 211, 244, 244, 135, - 43, 52, 211, 244, 244, 135, 44, 52, 211, 244, 244, 135, 235, 248, 235, - 234, 216, 112, 117, 235, 234, 235, 235, 229, 102, 2, 67, 130, 246, 112, - 230, 87, 42, 2, 249, 181, 226, 127, 235, 246, 253, 237, 219, 219, 224, - 180, 245, 98, 5, 22, 219, 97, 226, 7, 245, 98, 5, 22, 219, 97, 226, 8, 2, - 216, 89, 48, 240, 104, 216, 42, 22, 219, 97, 226, 7, 242, 183, 218, 155, - 216, 185, 246, 105, 215, 226, 2, 43, 163, 251, 221, 246, 105, 215, 226, - 2, 44, 163, 251, 221, 85, 247, 249, 2, 124, 74, 85, 232, 104, 71, 250, - 36, 2, 124, 74, 85, 250, 36, 2, 124, 74, 245, 85, 71, 218, 234, 245, 85, - 85, 218, 234, 245, 85, 71, 247, 248, 245, 85, 85, 247, 248, 245, 85, 71, - 250, 35, 245, 85, 85, 250, 35, 222, 132, 223, 50, 219, 47, 226, 167, 219, - 47, 2, 226, 123, 223, 50, 219, 47, 2, 203, 91, 251, 249, 219, 46, 251, - 249, 223, 50, 219, 46, 52, 225, 22, 215, 211, 225, 22, 233, 42, 249, 91, - 254, 110, 127, 222, 247, 249, 91, 254, 110, 127, 216, 78, 230, 179, 230, - 24, 37, 59, 226, 167, 230, 24, 37, 96, 226, 167, 230, 24, 37, 30, 226, - 167, 230, 24, 214, 176, 226, 168, 2, 247, 120, 230, 24, 214, 176, 226, - 168, 2, 225, 22, 230, 24, 42, 235, 199, 226, 167, 230, 24, 42, 214, 176, - 226, 167, 113, 232, 146, 22, 226, 167, 113, 232, 146, 177, 226, 167, 230, - 24, 30, 226, 167, 230, 154, 113, 218, 43, 218, 41, 2, 235, 211, 224, 24, - 235, 212, 226, 167, 244, 99, 225, 255, 235, 211, 235, 212, 2, 52, 91, - 235, 212, 253, 173, 2, 219, 95, 250, 32, 243, 226, 254, 88, 235, 209, - 232, 214, 235, 210, 2, 223, 115, 225, 237, 254, 2, 225, 1, 232, 214, 235, - 210, 2, 220, 152, 225, 237, 254, 2, 225, 1, 232, 214, 235, 210, 228, 52, - 235, 250, 216, 196, 225, 1, 235, 212, 254, 2, 115, 225, 11, 226, 167, - 224, 18, 235, 212, 226, 167, 235, 212, 2, 140, 80, 2, 103, 235, 212, 2, - 30, 50, 235, 212, 2, 235, 198, 235, 212, 2, 214, 175, 235, 212, 2, 226, - 123, 235, 212, 2, 214, 183, 235, 66, 233, 85, 43, 215, 226, 226, 167, - 210, 160, 187, 221, 201, 249, 209, 210, 160, 187, 221, 201, 225, 56, 210, - 160, 187, 221, 201, 224, 176, 96, 5, 2, 4, 250, 36, 48, 96, 5, 2, 250, - 31, 255, 15, 48, 96, 5, 2, 216, 89, 48, 96, 5, 2, 59, 51, 96, 5, 2, 216, - 89, 51, 96, 5, 2, 218, 65, 105, 96, 5, 2, 85, 215, 225, 230, 182, 5, 2, - 249, 220, 48, 230, 182, 5, 2, 59, 51, 230, 182, 5, 2, 244, 175, 247, 118, - 230, 182, 5, 2, 222, 228, 247, 118, 96, 5, 236, 0, 43, 163, 250, 35, 96, - 5, 236, 0, 44, 163, 250, 35, 213, 254, 177, 249, 131, 224, 180, 230, 84, - 5, 2, 59, 48, 230, 84, 5, 2, 214, 183, 220, 149, 224, 181, 2, 251, 175, - 249, 255, 219, 77, 224, 180, 230, 84, 5, 236, 0, 43, 163, 250, 35, 230, - 84, 5, 236, 0, 44, 163, 250, 35, 37, 230, 84, 5, 2, 250, 31, 255, 14, - 230, 84, 5, 236, 0, 52, 250, 35, 37, 247, 169, 50, 96, 5, 236, 0, 215, - 225, 230, 182, 5, 236, 0, 215, 225, 230, 84, 5, 236, 0, 215, 225, 235, - 206, 224, 180, 222, 242, 235, 206, 224, 180, 210, 160, 187, 223, 90, 249, - 209, 254, 134, 177, 249, 165, 235, 199, 2, 247, 120, 214, 176, 2, 230, - 182, 50, 214, 176, 2, 226, 123, 235, 199, 2, 226, 123, 235, 199, 2, 232, - 146, 254, 118, 214, 176, 2, 232, 146, 226, 158, 214, 176, 77, 235, 198, - 235, 199, 77, 214, 175, 214, 176, 77, 252, 141, 77, 235, 198, 235, 199, - 77, 252, 141, 77, 214, 175, 214, 176, 252, 30, 22, 235, 65, 2, 214, 175, - 235, 199, 252, 30, 22, 235, 65, 2, 235, 198, 250, 0, 214, 176, 2, 220, - 133, 250, 0, 235, 199, 2, 220, 133, 52, 42, 235, 198, 52, 42, 214, 175, - 250, 0, 214, 176, 2, 220, 134, 22, 219, 77, 224, 180, 232, 146, 22, 2, - 59, 48, 232, 146, 177, 2, 59, 48, 52, 232, 146, 254, 118, 52, 232, 146, - 226, 158, 113, 235, 200, 232, 146, 254, 118, 113, 235, 200, 232, 146, - 226, 158, 219, 85, 233, 85, 226, 158, 219, 85, 233, 85, 254, 118, 232, - 146, 177, 226, 121, 232, 146, 254, 118, 232, 146, 22, 2, 230, 224, 218, - 139, 232, 146, 177, 2, 230, 224, 218, 139, 232, 146, 22, 2, 203, 248, - 156, 232, 146, 177, 2, 203, 248, 156, 232, 146, 22, 2, 52, 226, 123, 232, - 146, 22, 2, 214, 183, 232, 146, 22, 2, 52, 214, 183, 4, 213, 251, 2, 214, - 183, 232, 146, 177, 2, 52, 226, 123, 232, 146, 177, 2, 52, 214, 183, 210, - 160, 187, 247, 129, 254, 79, 210, 160, 187, 223, 148, 254, 79, 245, 98, - 5, 2, 59, 51, 240, 104, 2, 59, 48, 215, 211, 203, 252, 141, 2, 52, 67, - 91, 215, 211, 203, 252, 141, 2, 215, 211, 67, 91, 216, 89, 226, 168, 2, - 59, 48, 216, 89, 226, 168, 2, 222, 228, 247, 118, 219, 162, 230, 182, - 219, 161, 249, 199, 2, 59, 48, 245, 98, 2, 253, 216, 254, 148, 128, 216, - 42, 2, 250, 31, 255, 14, 254, 48, 128, 177, 128, 111, 245, 98, 5, 77, 96, - 50, 96, 5, 77, 245, 98, 50, 245, 98, 5, 77, 216, 89, 226, 167, 52, 249, - 227, 245, 99, 113, 249, 194, 245, 98, 219, 176, 134, 249, 194, 245, 98, - 219, 176, 245, 98, 5, 2, 113, 170, 77, 22, 113, 170, 51, 245, 94, 2, 244, - 11, 170, 48, 233, 15, 2, 250, 36, 235, 215, 242, 130, 2, 250, 36, 235, - 215, 233, 15, 2, 224, 13, 164, 48, 242, 130, 2, 224, 13, 164, 48, 233, - 15, 177, 219, 97, 128, 111, 242, 130, 177, 219, 97, 128, 111, 233, 15, - 177, 219, 97, 128, 216, 42, 2, 59, 235, 215, 242, 130, 177, 219, 97, 128, - 216, 42, 2, 59, 235, 215, 233, 15, 177, 219, 97, 128, 216, 42, 2, 59, 48, - 242, 130, 177, 219, 97, 128, 216, 42, 2, 59, 48, 233, 15, 177, 219, 97, - 128, 216, 42, 2, 59, 77, 222, 251, 242, 130, 177, 219, 97, 128, 216, 42, - 2, 59, 77, 233, 46, 233, 15, 177, 254, 49, 242, 130, 177, 254, 49, 233, - 15, 22, 219, 153, 228, 52, 128, 111, 242, 130, 22, 219, 153, 228, 52, - 128, 111, 233, 15, 22, 228, 52, 254, 49, 242, 130, 22, 228, 52, 254, 49, - 233, 15, 77, 246, 111, 128, 77, 242, 129, 242, 130, 77, 246, 111, 128, - 77, 233, 14, 233, 15, 77, 219, 162, 177, 245, 99, 242, 130, 77, 219, 162, - 177, 245, 99, 233, 15, 77, 219, 162, 77, 242, 129, 242, 130, 77, 219, - 162, 77, 233, 14, 233, 15, 77, 242, 130, 77, 246, 111, 245, 99, 242, 130, - 77, 233, 15, 77, 246, 111, 245, 99, 233, 15, 77, 219, 97, 128, 77, 242, - 130, 77, 219, 97, 245, 99, 242, 130, 77, 219, 97, 128, 77, 233, 15, 77, - 219, 97, 245, 99, 219, 97, 128, 216, 42, 177, 233, 14, 219, 97, 128, 216, - 42, 177, 242, 129, 219, 97, 128, 216, 42, 177, 233, 15, 2, 59, 235, 215, - 219, 97, 128, 216, 42, 177, 242, 130, 2, 59, 235, 215, 246, 111, 128, - 216, 42, 177, 233, 14, 246, 111, 128, 216, 42, 177, 242, 129, 246, 111, - 219, 97, 128, 216, 42, 177, 233, 14, 246, 111, 219, 97, 128, 216, 42, - 177, 242, 129, 219, 162, 177, 233, 14, 219, 162, 177, 242, 129, 219, 162, - 77, 233, 15, 77, 245, 98, 50, 219, 162, 77, 242, 130, 77, 245, 98, 50, - 52, 229, 91, 233, 14, 52, 229, 91, 242, 129, 52, 229, 91, 233, 15, 2, - 214, 183, 242, 130, 226, 121, 233, 14, 242, 130, 252, 30, 233, 14, 233, - 15, 250, 0, 251, 78, 249, 92, 242, 130, 250, 0, 251, 78, 249, 92, 233, - 15, 250, 0, 251, 78, 249, 93, 77, 219, 97, 245, 99, 242, 130, 250, 0, - 251, 78, 249, 93, 77, 219, 97, 245, 99, 219, 78, 216, 200, 233, 83, 216, - 200, 219, 78, 216, 201, 177, 128, 111, 233, 83, 216, 201, 177, 128, 111, - 245, 98, 5, 2, 251, 108, 48, 224, 203, 77, 219, 153, 245, 98, 50, 218, - 56, 77, 219, 153, 245, 98, 50, 224, 203, 77, 219, 153, 228, 52, 128, 111, - 218, 56, 77, 219, 153, 228, 52, 128, 111, 224, 203, 77, 245, 98, 50, 218, - 56, 77, 245, 98, 50, 224, 203, 77, 228, 52, 128, 111, 218, 56, 77, 228, - 52, 128, 111, 224, 203, 77, 254, 148, 128, 111, 218, 56, 77, 254, 148, - 128, 111, 224, 203, 77, 228, 52, 254, 148, 128, 111, 218, 56, 77, 228, - 52, 254, 148, 128, 111, 52, 224, 202, 52, 218, 55, 218, 64, 2, 247, 120, - 218, 22, 2, 247, 120, 218, 64, 2, 96, 5, 51, 218, 22, 2, 96, 5, 51, 218, - 64, 2, 230, 84, 5, 51, 218, 22, 2, 230, 84, 5, 51, 218, 64, 64, 177, 128, - 216, 42, 2, 59, 48, 218, 22, 64, 177, 128, 216, 42, 2, 59, 48, 218, 64, - 64, 77, 245, 98, 50, 218, 22, 64, 77, 245, 98, 50, 218, 64, 64, 77, 216, - 89, 226, 167, 218, 22, 64, 77, 216, 89, 226, 167, 218, 64, 64, 77, 254, - 148, 128, 111, 218, 22, 64, 77, 254, 148, 128, 111, 218, 64, 64, 77, 228, - 52, 128, 111, 218, 22, 64, 77, 228, 52, 128, 111, 42, 43, 204, 93, 226, - 167, 42, 44, 204, 93, 226, 167, 250, 0, 218, 63, 250, 0, 218, 21, 250, 0, - 218, 64, 177, 128, 111, 250, 0, 218, 22, 177, 128, 111, 218, 64, 77, 218, - 21, 218, 22, 77, 218, 63, 218, 64, 77, 218, 63, 218, 22, 77, 218, 21, - 218, 22, 252, 30, 218, 63, 218, 22, 252, 30, 22, 235, 65, 251, 78, 248, - 157, 2, 218, 63, 245, 170, 64, 226, 170, 246, 103, 225, 48, 2, 217, 12, - 216, 13, 215, 240, 235, 198, 244, 21, 228, 65, 219, 251, 43, 217, 87, - 219, 251, 124, 217, 87, 219, 251, 120, 217, 87, 225, 172, 2, 222, 91, 67, - 252, 141, 215, 211, 44, 215, 93, 52, 67, 252, 141, 43, 215, 93, 67, 252, - 141, 52, 43, 215, 93, 52, 67, 252, 141, 52, 43, 215, 93, 199, 248, 157, - 243, 243, 43, 231, 63, 64, 52, 213, 239, 219, 251, 124, 217, 88, 2, 226, - 123, 219, 251, 120, 217, 88, 2, 214, 183, 219, 251, 120, 217, 88, 77, - 219, 251, 124, 217, 87, 52, 124, 217, 87, 52, 120, 217, 87, 52, 218, 103, - 228, 52, 50, 223, 49, 52, 218, 103, 228, 52, 50, 247, 138, 228, 52, 247, - 175, 2, 223, 49, 229, 101, 219, 95, 67, 232, 214, 2, 250, 36, 48, 67, - 232, 214, 2, 250, 36, 51, 124, 217, 88, 2, 250, 36, 51, 226, 8, 2, 203, - 91, 226, 8, 2, 216, 89, 226, 167, 215, 211, 67, 252, 141, 251, 244, 223, - 91, 215, 211, 67, 252, 141, 2, 203, 91, 215, 211, 249, 227, 226, 167, - 215, 211, 229, 91, 233, 14, 215, 211, 229, 91, 242, 129, 246, 111, 219, - 97, 233, 15, 177, 128, 111, 246, 111, 219, 97, 242, 130, 177, 128, 111, - 215, 211, 219, 47, 251, 244, 223, 91, 233, 85, 215, 211, 67, 252, 141, - 226, 167, 52, 219, 47, 226, 167, 71, 67, 130, 230, 24, 71, 67, 130, 228, - 56, 245, 220, 71, 74, 228, 56, 212, 9, 71, 74, 219, 28, 245, 220, 71, 74, - 219, 28, 212, 9, 71, 74, 43, 44, 71, 74, 140, 85, 74, 214, 153, 85, 74, - 246, 104, 85, 74, 228, 56, 245, 220, 85, 74, 228, 56, 212, 9, 85, 74, - 219, 28, 245, 220, 85, 74, 219, 28, 212, 9, 85, 74, 43, 44, 85, 74, 120, - 124, 85, 74, 97, 80, 2, 216, 77, 246, 103, 97, 80, 2, 216, 77, 214, 152, - 140, 80, 2, 216, 77, 246, 103, 140, 80, 2, 216, 77, 214, 152, 42, 2, 216, - 14, 163, 251, 221, 42, 2, 251, 175, 163, 251, 221, 42, 2, 214, 160, 44, - 247, 255, 163, 251, 221, 42, 2, 232, 108, 43, 247, 255, 163, 251, 221, - 247, 249, 2, 43, 163, 251, 221, 247, 249, 2, 44, 163, 251, 221, 247, 249, - 2, 216, 14, 163, 251, 221, 247, 249, 2, 251, 175, 163, 251, 221, 246, - 118, 218, 234, 85, 233, 85, 218, 234, 71, 233, 85, 218, 234, 85, 213, - 187, 4, 218, 234, 71, 213, 187, 4, 218, 234, 85, 225, 190, 71, 225, 190, - 71, 241, 193, 85, 241, 193, 203, 85, 241, 193, 85, 233, 85, 250, 35, 85, - 231, 82, 247, 248, 71, 231, 82, 247, 248, 85, 231, 82, 232, 104, 71, 231, - 82, 232, 104, 85, 4, 247, 248, 85, 4, 232, 104, 71, 4, 232, 104, 85, 203, - 245, 164, 71, 203, 245, 164, 85, 67, 245, 164, 71, 67, 245, 164, 43, 80, - 2, 4, 250, 35, 134, 140, 253, 247, 43, 80, 2, 37, 225, 22, 199, 140, 218, - 230, 74, 140, 215, 58, 80, 2, 67, 91, 140, 215, 58, 80, 2, 52, 67, 91, - 140, 215, 58, 80, 243, 243, 130, 140, 215, 58, 215, 211, 248, 157, 74, - 140, 80, 2, 246, 118, 218, 139, 140, 80, 2, 217, 78, 2, 67, 91, 140, 80, - 2, 217, 78, 2, 52, 67, 91, 140, 215, 58, 80, 2, 217, 77, 140, 215, 58, - 80, 2, 217, 78, 2, 67, 91, 140, 215, 58, 80, 2, 217, 78, 2, 52, 67, 91, - 140, 80, 216, 139, 211, 178, 212, 36, 80, 225, 7, 247, 195, 233, 46, 245, - 98, 5, 77, 140, 74, 223, 50, 216, 89, 226, 168, 77, 140, 74, 140, 80, 77, - 223, 50, 254, 148, 128, 111, 97, 80, 216, 139, 242, 129, 97, 80, 216, - 139, 218, 21, 140, 224, 24, 74, 97, 224, 24, 74, 223, 50, 216, 89, 226, - 168, 77, 97, 74, 97, 80, 77, 223, 50, 254, 148, 128, 111, 216, 89, 226, - 168, 77, 140, 74, 140, 80, 77, 254, 148, 128, 111, 140, 80, 77, 223, 50, - 216, 89, 226, 167, 97, 80, 77, 223, 50, 216, 89, 226, 167, 71, 231, 82, - 218, 156, 85, 4, 218, 156, 71, 4, 218, 156, 85, 222, 247, 225, 190, 71, - 222, 247, 225, 190, 114, 233, 85, 250, 35, 114, 226, 124, 2, 226, 124, - 235, 215, 114, 250, 36, 2, 250, 36, 235, 215, 114, 250, 35, 114, 37, 221, - 254, 145, 6, 1, 253, 159, 145, 6, 1, 251, 117, 145, 6, 1, 213, 253, 145, - 6, 1, 242, 185, 145, 6, 1, 247, 140, 145, 6, 1, 211, 21, 145, 6, 1, 210, - 68, 145, 6, 1, 246, 34, 145, 6, 1, 210, 91, 145, 6, 1, 235, 148, 145, 6, - 1, 65, 235, 148, 145, 6, 1, 73, 145, 6, 1, 247, 160, 145, 6, 1, 234, 240, - 145, 6, 1, 232, 186, 145, 6, 1, 230, 29, 145, 6, 1, 229, 191, 145, 6, 1, - 226, 185, 145, 6, 1, 225, 4, 145, 6, 1, 222, 227, 145, 6, 1, 219, 83, - 145, 6, 1, 215, 81, 145, 6, 1, 214, 201, 145, 6, 1, 243, 246, 145, 6, 1, - 241, 199, 145, 6, 1, 226, 135, 145, 6, 1, 225, 221, 145, 6, 1, 219, 228, - 145, 6, 1, 215, 167, 145, 6, 1, 250, 75, 145, 6, 1, 220, 102, 145, 6, 1, - 211, 27, 145, 6, 1, 211, 29, 145, 6, 1, 211, 57, 145, 6, 1, 218, 253, - 162, 145, 6, 1, 210, 212, 145, 6, 1, 4, 210, 183, 145, 6, 1, 4, 210, 184, - 2, 217, 77, 145, 6, 1, 210, 244, 145, 6, 1, 235, 184, 4, 210, 183, 145, - 6, 1, 251, 249, 210, 183, 145, 6, 1, 235, 184, 251, 249, 210, 183, 145, - 6, 1, 244, 82, 145, 6, 1, 235, 146, 145, 6, 1, 219, 227, 145, 6, 1, 215, - 202, 61, 145, 6, 1, 233, 75, 230, 29, 145, 4, 1, 253, 159, 145, 4, 1, - 251, 117, 145, 4, 1, 213, 253, 145, 4, 1, 242, 185, 145, 4, 1, 247, 140, - 145, 4, 1, 211, 21, 145, 4, 1, 210, 68, 145, 4, 1, 246, 34, 145, 4, 1, - 210, 91, 145, 4, 1, 235, 148, 145, 4, 1, 65, 235, 148, 145, 4, 1, 73, - 145, 4, 1, 247, 160, 145, 4, 1, 234, 240, 145, 4, 1, 232, 186, 145, 4, 1, - 230, 29, 145, 4, 1, 229, 191, 145, 4, 1, 226, 185, 145, 4, 1, 225, 4, - 145, 4, 1, 222, 227, 145, 4, 1, 219, 83, 145, 4, 1, 215, 81, 145, 4, 1, - 214, 201, 145, 4, 1, 243, 246, 145, 4, 1, 241, 199, 145, 4, 1, 226, 135, - 145, 4, 1, 225, 221, 145, 4, 1, 219, 228, 145, 4, 1, 215, 167, 145, 4, 1, - 250, 75, 145, 4, 1, 220, 102, 145, 4, 1, 211, 27, 145, 4, 1, 211, 29, - 145, 4, 1, 211, 57, 145, 4, 1, 218, 253, 162, 145, 4, 1, 210, 212, 145, - 4, 1, 4, 210, 183, 145, 4, 1, 4, 210, 184, 2, 217, 77, 145, 4, 1, 210, - 244, 145, 4, 1, 235, 184, 4, 210, 183, 145, 4, 1, 251, 249, 210, 183, - 145, 4, 1, 235, 184, 251, 249, 210, 183, 145, 4, 1, 244, 82, 145, 4, 1, - 235, 146, 145, 4, 1, 219, 227, 145, 4, 1, 215, 202, 61, 145, 4, 1, 233, - 75, 230, 29, 7, 6, 1, 233, 149, 2, 52, 130, 7, 4, 1, 233, 149, 2, 52, - 130, 7, 6, 1, 233, 149, 2, 230, 224, 182, 7, 6, 1, 226, 106, 2, 91, 7, 6, - 1, 223, 224, 2, 217, 77, 7, 4, 1, 115, 2, 91, 7, 4, 1, 217, 153, 2, 247, - 255, 91, 7, 6, 1, 242, 61, 2, 248, 39, 7, 4, 1, 242, 61, 2, 248, 39, 7, - 6, 1, 235, 24, 2, 248, 39, 7, 4, 1, 235, 24, 2, 248, 39, 7, 6, 1, 210, - 160, 2, 248, 39, 7, 4, 1, 210, 160, 2, 248, 39, 7, 6, 1, 254, 143, 7, 6, - 1, 232, 50, 2, 103, 7, 6, 1, 215, 94, 61, 7, 6, 1, 215, 94, 254, 143, 7, - 4, 1, 214, 106, 2, 44, 103, 7, 6, 1, 212, 99, 2, 103, 7, 4, 1, 212, 99, - 2, 103, 7, 4, 1, 214, 106, 2, 249, 100, 7, 6, 1, 163, 242, 60, 7, 4, 1, - 163, 242, 60, 7, 4, 1, 217, 75, 225, 133, 7, 4, 1, 160, 2, 228, 50, 7, 4, - 1, 215, 94, 223, 224, 2, 217, 77, 7, 4, 1, 144, 2, 121, 222, 234, 235, - 215, 7, 1, 4, 6, 215, 94, 75, 7, 218, 65, 4, 1, 235, 144, 58, 1, 6, 214, - 105, 7, 6, 1, 222, 92, 2, 217, 250, 217, 77, 7, 6, 1, 210, 160, 2, 217, - 250, 217, 77, 81, 6, 1, 254, 164, 81, 4, 1, 254, 164, 81, 6, 1, 213, 173, - 81, 4, 1, 213, 173, 81, 6, 1, 243, 107, 81, 4, 1, 243, 107, 81, 6, 1, - 248, 191, 81, 4, 1, 248, 191, 81, 6, 1, 245, 194, 81, 4, 1, 245, 194, 81, - 6, 1, 219, 33, 81, 4, 1, 219, 33, 81, 6, 1, 210, 101, 81, 4, 1, 210, 101, - 81, 6, 1, 241, 248, 81, 4, 1, 241, 248, 81, 6, 1, 216, 177, 81, 4, 1, - 216, 177, 81, 6, 1, 240, 116, 81, 4, 1, 240, 116, 81, 6, 1, 234, 227, 81, - 4, 1, 234, 227, 81, 6, 1, 233, 72, 81, 4, 1, 233, 72, 81, 6, 1, 230, 230, - 81, 4, 1, 230, 230, 81, 6, 1, 228, 233, 81, 4, 1, 228, 233, 81, 6, 1, - 233, 233, 81, 4, 1, 233, 233, 81, 6, 1, 76, 81, 4, 1, 76, 81, 6, 1, 225, - 108, 81, 4, 1, 225, 108, 81, 6, 1, 222, 211, 81, 4, 1, 222, 211, 81, 6, - 1, 219, 165, 81, 4, 1, 219, 165, 81, 6, 1, 217, 41, 81, 4, 1, 217, 41, - 81, 6, 1, 214, 229, 81, 4, 1, 214, 229, 81, 6, 1, 244, 121, 81, 4, 1, - 244, 121, 81, 6, 1, 234, 112, 81, 4, 1, 234, 112, 81, 6, 1, 224, 161, 81, - 4, 1, 224, 161, 81, 6, 1, 226, 178, 81, 4, 1, 226, 178, 81, 6, 1, 247, - 253, 254, 170, 81, 4, 1, 247, 253, 254, 170, 81, 6, 1, 55, 81, 254, 196, - 81, 4, 1, 55, 81, 254, 196, 81, 6, 1, 249, 115, 245, 194, 81, 4, 1, 249, - 115, 245, 194, 81, 6, 1, 247, 253, 234, 227, 81, 4, 1, 247, 253, 234, - 227, 81, 6, 1, 247, 253, 228, 233, 81, 4, 1, 247, 253, 228, 233, 81, 6, - 1, 249, 115, 228, 233, 81, 4, 1, 249, 115, 228, 233, 81, 6, 1, 55, 81, - 226, 178, 81, 4, 1, 55, 81, 226, 178, 81, 6, 1, 221, 246, 81, 4, 1, 221, - 246, 81, 6, 1, 249, 128, 220, 55, 81, 4, 1, 249, 128, 220, 55, 81, 6, 1, - 55, 81, 220, 55, 81, 4, 1, 55, 81, 220, 55, 81, 6, 1, 55, 81, 245, 75, - 81, 4, 1, 55, 81, 245, 75, 81, 6, 1, 254, 182, 234, 117, 81, 4, 1, 254, - 182, 234, 117, 81, 6, 1, 247, 253, 241, 45, 81, 4, 1, 247, 253, 241, 45, - 81, 6, 1, 55, 81, 241, 45, 81, 4, 1, 55, 81, 241, 45, 81, 6, 1, 55, 81, - 162, 81, 4, 1, 55, 81, 162, 81, 6, 1, 233, 148, 162, 81, 4, 1, 233, 148, - 162, 81, 6, 1, 55, 81, 241, 217, 81, 4, 1, 55, 81, 241, 217, 81, 6, 1, - 55, 81, 241, 251, 81, 4, 1, 55, 81, 241, 251, 81, 6, 1, 55, 81, 243, 102, - 81, 4, 1, 55, 81, 243, 102, 81, 6, 1, 55, 81, 247, 163, 81, 4, 1, 55, 81, - 247, 163, 81, 6, 1, 55, 81, 220, 22, 81, 4, 1, 55, 81, 220, 22, 81, 6, 1, - 55, 227, 208, 220, 22, 81, 4, 1, 55, 227, 208, 220, 22, 81, 6, 1, 55, - 227, 208, 229, 27, 81, 4, 1, 55, 227, 208, 229, 27, 81, 6, 1, 55, 227, - 208, 227, 148, 81, 4, 1, 55, 227, 208, 227, 148, 81, 6, 1, 55, 227, 208, - 212, 37, 81, 4, 1, 55, 227, 208, 212, 37, 81, 16, 234, 246, 81, 16, 230, - 231, 222, 211, 81, 16, 225, 109, 222, 211, 81, 16, 218, 147, 81, 16, 217, - 42, 222, 211, 81, 16, 234, 113, 222, 211, 81, 16, 220, 23, 219, 165, 81, - 6, 1, 249, 115, 220, 55, 81, 4, 1, 249, 115, 220, 55, 81, 6, 1, 249, 115, - 243, 102, 81, 4, 1, 249, 115, 243, 102, 81, 38, 228, 234, 48, 81, 38, - 218, 247, 253, 224, 81, 38, 218, 247, 233, 21, 81, 6, 1, 251, 199, 234, - 117, 81, 4, 1, 251, 199, 234, 117, 81, 55, 227, 208, 243, 229, 218, 129, - 81, 55, 227, 208, 247, 197, 224, 13, 78, 81, 55, 227, 208, 235, 237, 224, - 13, 78, 81, 55, 227, 208, 213, 241, 247, 172, 81, 244, 2, 123, 242, 27, - 81, 243, 229, 218, 129, 81, 230, 124, 247, 172, 98, 4, 1, 254, 123, 98, - 4, 1, 252, 152, 98, 4, 1, 243, 106, 98, 4, 1, 247, 128, 98, 4, 1, 245, - 150, 98, 4, 1, 213, 160, 98, 4, 1, 210, 89, 98, 4, 1, 217, 60, 98, 4, 1, - 235, 255, 98, 4, 1, 234, 234, 98, 4, 1, 233, 81, 98, 4, 1, 231, 185, 98, - 4, 1, 229, 195, 98, 4, 1, 226, 196, 98, 4, 1, 226, 17, 98, 4, 1, 210, 78, - 98, 4, 1, 223, 171, 98, 4, 1, 221, 243, 98, 4, 1, 217, 50, 98, 4, 1, 214, - 190, 98, 4, 1, 225, 140, 98, 4, 1, 234, 121, 98, 4, 1, 242, 241, 98, 4, - 1, 224, 73, 98, 4, 1, 220, 20, 98, 4, 1, 250, 97, 98, 4, 1, 251, 7, 98, - 4, 1, 235, 100, 98, 4, 1, 250, 40, 98, 4, 1, 250, 143, 98, 4, 1, 211, - 163, 98, 4, 1, 235, 111, 98, 4, 1, 242, 43, 98, 4, 1, 241, 238, 98, 4, 1, - 241, 175, 98, 4, 1, 212, 22, 98, 4, 1, 242, 4, 98, 4, 1, 241, 65, 98, 4, - 1, 210, 246, 98, 4, 1, 254, 232, 216, 108, 1, 191, 216, 108, 1, 211, 99, - 216, 108, 1, 211, 98, 216, 108, 1, 211, 88, 216, 108, 1, 211, 86, 216, - 108, 1, 252, 32, 255, 16, 211, 81, 216, 108, 1, 211, 81, 216, 108, 1, - 211, 96, 216, 108, 1, 211, 93, 216, 108, 1, 211, 95, 216, 108, 1, 211, - 94, 216, 108, 1, 211, 12, 216, 108, 1, 211, 90, 216, 108, 1, 211, 79, - 216, 108, 1, 215, 115, 211, 79, 216, 108, 1, 211, 76, 216, 108, 1, 211, - 84, 216, 108, 1, 252, 32, 255, 16, 211, 84, 216, 108, 1, 215, 115, 211, - 84, 216, 108, 1, 211, 83, 216, 108, 1, 211, 103, 216, 108, 1, 211, 77, - 216, 108, 1, 215, 115, 211, 77, 216, 108, 1, 211, 66, 216, 108, 1, 215, - 115, 211, 66, 216, 108, 1, 211, 8, 216, 108, 1, 211, 49, 216, 108, 1, - 254, 207, 211, 49, 216, 108, 1, 215, 115, 211, 49, 216, 108, 1, 211, 75, - 216, 108, 1, 211, 74, 216, 108, 1, 211, 71, 216, 108, 1, 215, 115, 211, - 85, 216, 108, 1, 215, 115, 211, 69, 216, 108, 1, 211, 67, 216, 108, 1, - 210, 212, 216, 108, 1, 211, 64, 216, 108, 1, 211, 63, 216, 108, 1, 211, - 87, 216, 108, 1, 215, 115, 211, 87, 216, 108, 1, 253, 163, 211, 87, 216, - 108, 1, 211, 62, 216, 108, 1, 211, 60, 216, 108, 1, 211, 61, 216, 108, 1, - 211, 59, 216, 108, 1, 211, 58, 216, 108, 1, 211, 97, 216, 108, 1, 211, - 56, 216, 108, 1, 211, 54, 216, 108, 1, 211, 53, 216, 108, 1, 211, 52, - 216, 108, 1, 211, 50, 216, 108, 1, 217, 34, 211, 50, 216, 108, 1, 211, - 48, 216, 108, 1, 211, 47, 216, 108, 1, 210, 244, 216, 108, 58, 1, 233, - 126, 78, 216, 108, 220, 138, 78, 216, 108, 116, 235, 63, 29, 3, 232, 155, - 29, 3, 230, 160, 29, 3, 222, 209, 29, 3, 219, 57, 29, 3, 220, 6, 29, 3, - 251, 204, 29, 3, 216, 41, 29, 3, 249, 237, 29, 3, 228, 72, 29, 3, 227, - 133, 29, 3, 242, 180, 227, 0, 29, 3, 210, 22, 29, 3, 247, 143, 29, 3, - 248, 104, 29, 3, 235, 67, 29, 3, 216, 155, 29, 3, 250, 85, 29, 3, 225, - 120, 29, 3, 225, 15, 29, 3, 242, 255, 29, 3, 242, 251, 29, 3, 242, 252, - 29, 3, 242, 253, 29, 3, 218, 223, 29, 3, 218, 179, 29, 3, 218, 192, 29, - 3, 218, 222, 29, 3, 218, 196, 29, 3, 218, 197, 29, 3, 218, 184, 29, 3, - 250, 213, 29, 3, 250, 192, 29, 3, 250, 194, 29, 3, 250, 212, 29, 3, 250, - 210, 29, 3, 250, 211, 29, 3, 250, 193, 29, 3, 209, 243, 29, 3, 209, 221, - 29, 3, 209, 234, 29, 3, 209, 242, 29, 3, 209, 237, 29, 3, 209, 238, 29, - 3, 209, 226, 29, 3, 250, 208, 29, 3, 250, 195, 29, 3, 250, 197, 29, 3, - 250, 207, 29, 3, 250, 205, 29, 3, 250, 206, 29, 3, 250, 196, 29, 3, 223, - 236, 29, 3, 223, 226, 29, 3, 223, 232, 29, 3, 223, 235, 29, 3, 223, 233, - 29, 3, 223, 234, 29, 3, 223, 231, 29, 3, 233, 159, 29, 3, 233, 151, 29, - 3, 233, 154, 29, 3, 233, 158, 29, 3, 233, 155, 29, 3, 233, 156, 29, 3, - 233, 152, 29, 3, 211, 130, 29, 3, 211, 120, 29, 3, 211, 126, 29, 3, 211, - 129, 29, 3, 211, 127, 29, 3, 211, 128, 29, 3, 211, 125, 29, 3, 242, 71, - 29, 3, 242, 62, 29, 3, 242, 65, 29, 3, 242, 70, 29, 3, 242, 67, 29, 3, - 242, 68, 29, 3, 242, 64, 38, 33, 1, 252, 75, 38, 33, 1, 213, 255, 38, 33, - 1, 242, 236, 38, 33, 1, 248, 90, 38, 33, 1, 210, 74, 38, 33, 1, 210, 94, - 38, 33, 1, 176, 38, 33, 1, 245, 174, 38, 33, 1, 245, 159, 38, 33, 1, 245, - 150, 38, 33, 1, 76, 38, 33, 1, 225, 221, 38, 33, 1, 245, 92, 38, 33, 1, - 245, 82, 38, 33, 1, 217, 22, 38, 33, 1, 162, 38, 33, 1, 215, 178, 38, 33, - 1, 250, 131, 38, 33, 1, 220, 102, 38, 33, 1, 220, 65, 38, 33, 1, 244, 82, - 38, 33, 1, 245, 81, 38, 33, 1, 61, 38, 33, 1, 236, 60, 38, 33, 1, 247, - 161, 38, 33, 1, 230, 140, 214, 205, 38, 33, 1, 211, 59, 38, 33, 1, 210, - 212, 38, 33, 1, 235, 183, 61, 38, 33, 1, 232, 192, 210, 183, 38, 33, 1, - 251, 249, 210, 183, 38, 33, 1, 235, 183, 251, 249, 210, 183, 44, 254, - 110, 218, 60, 231, 154, 44, 254, 110, 246, 118, 218, 60, 231, 154, 43, - 218, 60, 127, 44, 218, 60, 127, 43, 246, 118, 218, 60, 127, 44, 246, 118, - 218, 60, 127, 223, 157, 235, 202, 231, 154, 223, 157, 246, 118, 235, 202, - 231, 154, 246, 118, 215, 241, 231, 154, 43, 215, 241, 127, 44, 215, 241, - 127, 223, 157, 218, 234, 43, 223, 157, 226, 198, 127, 44, 223, 157, 226, - 198, 127, 245, 210, 249, 158, 226, 13, 244, 22, 226, 13, 223, 49, 244, - 22, 226, 13, 240, 165, 246, 118, 226, 251, 246, 104, 254, 119, 214, 153, - 254, 119, 246, 118, 222, 247, 254, 109, 52, 226, 248, 240, 168, 235, 193, - 235, 201, 226, 59, 251, 154, 240, 169, 2, 248, 1, 216, 89, 2, 222, 234, - 48, 43, 121, 226, 5, 127, 44, 121, 226, 5, 127, 216, 89, 2, 59, 48, 216, - 89, 2, 59, 51, 43, 67, 252, 141, 2, 224, 7, 44, 67, 252, 141, 2, 224, 7, - 216, 14, 43, 163, 127, 216, 14, 44, 163, 127, 251, 175, 43, 163, 127, - 251, 175, 44, 163, 127, 43, 219, 187, 104, 127, 44, 219, 187, 104, 127, - 43, 52, 226, 3, 44, 52, 226, 3, 113, 170, 117, 123, 59, 224, 140, 123, - 59, 117, 113, 170, 224, 140, 92, 244, 11, 59, 224, 140, 244, 81, 59, 78, - 223, 49, 224, 13, 78, 67, 182, 222, 234, 225, 10, 211, 209, 220, 138, - 230, 224, 247, 120, 215, 94, 249, 219, 223, 157, 247, 120, 223, 157, 249, - 219, 215, 94, 220, 150, 248, 206, 2, 43, 242, 108, 248, 206, 2, 44, 242, - 108, 215, 94, 248, 205, 216, 14, 163, 221, 173, 50, 215, 59, 248, 156, - 216, 143, 248, 156, 9, 34, 223, 76, 9, 34, 250, 10, 9, 34, 221, 176, 110, - 9, 34, 221, 176, 105, 9, 34, 221, 176, 158, 9, 34, 225, 167, 9, 34, 251, - 163, 9, 34, 217, 92, 9, 34, 234, 33, 110, 9, 34, 234, 33, 105, 9, 34, - 247, 170, 9, 34, 221, 179, 9, 34, 4, 110, 9, 34, 4, 105, 9, 34, 233, 97, - 110, 9, 34, 233, 97, 105, 9, 34, 233, 97, 158, 9, 34, 233, 97, 161, 9, - 34, 219, 68, 9, 34, 216, 145, 9, 34, 219, 66, 110, 9, 34, 219, 66, 105, - 9, 34, 241, 228, 110, 9, 34, 241, 228, 105, 9, 34, 242, 15, 9, 34, 223, - 147, 9, 34, 250, 82, 9, 34, 218, 37, 9, 34, 230, 128, 9, 34, 248, 88, 9, - 34, 230, 120, 9, 34, 250, 25, 9, 34, 212, 41, 110, 9, 34, 212, 41, 105, - 9, 34, 244, 96, 9, 34, 225, 232, 110, 9, 34, 225, 232, 105, 9, 34, 219, - 160, 163, 215, 236, 215, 188, 9, 34, 249, 145, 9, 34, 247, 136, 9, 34, - 235, 137, 9, 34, 251, 198, 64, 249, 250, 9, 34, 245, 15, 9, 34, 218, 249, - 110, 9, 34, 218, 249, 105, 9, 34, 252, 154, 9, 34, 219, 167, 9, 34, 251, - 63, 219, 167, 9, 34, 229, 90, 110, 9, 34, 229, 90, 105, 9, 34, 229, 90, - 158, 9, 34, 229, 90, 161, 9, 34, 231, 46, 9, 34, 220, 57, 9, 34, 223, - 153, 9, 34, 245, 37, 9, 34, 226, 209, 9, 34, 251, 133, 110, 9, 34, 251, - 133, 105, 9, 34, 231, 86, 9, 34, 230, 123, 9, 34, 242, 140, 110, 9, 34, - 242, 140, 105, 9, 34, 242, 140, 158, 9, 34, 216, 106, 9, 34, 249, 249, 9, - 34, 212, 9, 110, 9, 34, 212, 9, 105, 9, 34, 251, 63, 221, 170, 9, 34, - 219, 160, 240, 248, 9, 34, 240, 248, 9, 34, 251, 63, 219, 2, 9, 34, 251, - 63, 220, 52, 9, 34, 244, 32, 9, 34, 251, 63, 250, 228, 9, 34, 219, 160, - 212, 57, 9, 34, 212, 58, 110, 9, 34, 212, 58, 105, 9, 34, 250, 27, 9, 34, - 251, 63, 242, 166, 9, 34, 199, 110, 9, 34, 199, 105, 9, 34, 251, 63, 232, - 137, 9, 34, 251, 63, 243, 88, 9, 34, 230, 119, 110, 9, 34, 230, 119, 105, - 9, 34, 223, 159, 9, 34, 251, 207, 9, 34, 251, 63, 217, 56, 233, 52, 9, - 34, 251, 63, 233, 53, 9, 34, 251, 63, 211, 239, 9, 34, 251, 63, 244, 46, - 9, 34, 245, 218, 110, 9, 34, 245, 218, 105, 9, 34, 245, 218, 158, 9, 34, - 251, 63, 245, 217, 9, 34, 241, 235, 9, 34, 251, 63, 240, 245, 9, 34, 251, - 194, 9, 34, 242, 222, 9, 34, 251, 63, 244, 90, 9, 34, 251, 63, 251, 237, - 9, 34, 251, 63, 222, 1, 9, 34, 219, 160, 212, 2, 9, 34, 219, 160, 211, - 41, 9, 34, 251, 63, 243, 244, 9, 34, 235, 143, 245, 41, 9, 34, 251, 63, - 245, 41, 9, 34, 235, 143, 216, 15, 9, 34, 251, 63, 216, 15, 9, 34, 235, - 143, 246, 96, 9, 34, 251, 63, 246, 96, 9, 34, 215, 91, 9, 34, 235, 143, - 215, 91, 9, 34, 251, 63, 215, 91, 60, 34, 110, 60, 34, 232, 213, 60, 34, - 247, 120, 60, 34, 219, 95, 60, 34, 221, 175, 60, 34, 103, 60, 34, 105, - 60, 34, 232, 237, 60, 34, 231, 185, 60, 34, 233, 33, 60, 34, 245, 129, - 60, 34, 195, 60, 34, 124, 251, 163, 60, 34, 249, 147, 60, 34, 240, 111, - 60, 34, 217, 92, 60, 34, 204, 251, 163, 60, 34, 234, 32, 60, 34, 224, - 224, 60, 34, 211, 202, 60, 34, 218, 243, 60, 34, 44, 204, 251, 163, 60, - 34, 241, 176, 245, 145, 60, 34, 216, 247, 60, 34, 247, 170, 60, 34, 221, - 179, 60, 34, 250, 10, 60, 34, 224, 182, 60, 34, 254, 215, 60, 34, 230, - 110, 60, 34, 245, 145, 60, 34, 245, 223, 60, 34, 221, 200, 60, 34, 242, - 174, 60, 34, 242, 175, 219, 81, 60, 34, 245, 40, 60, 34, 251, 248, 60, - 34, 211, 221, 60, 34, 250, 101, 60, 34, 222, 196, 60, 34, 235, 251, 60, - 34, 219, 79, 60, 34, 233, 96, 60, 34, 249, 156, 60, 34, 218, 237, 60, 34, - 230, 115, 60, 34, 222, 224, 60, 34, 211, 206, 60, 34, 226, 190, 60, 34, - 215, 97, 60, 34, 246, 80, 60, 34, 219, 251, 216, 145, 60, 34, 246, 118, - 250, 10, 60, 34, 199, 218, 108, 60, 34, 113, 242, 10, 60, 34, 220, 0, 60, - 34, 251, 169, 60, 34, 219, 65, 60, 34, 251, 137, 60, 34, 218, 138, 60, - 34, 241, 227, 60, 34, 242, 28, 60, 34, 247, 123, 60, 34, 242, 15, 60, 34, - 251, 154, 60, 34, 223, 147, 60, 34, 221, 187, 60, 34, 247, 199, 60, 34, - 253, 168, 60, 34, 218, 234, 60, 34, 228, 51, 60, 34, 218, 37, 60, 34, - 221, 211, 60, 34, 230, 128, 60, 34, 215, 235, 60, 34, 233, 122, 60, 34, - 218, 129, 60, 34, 248, 88, 60, 34, 212, 21, 60, 34, 247, 146, 228, 51, - 60, 34, 249, 215, 60, 34, 243, 222, 60, 34, 250, 21, 60, 34, 218, 142, - 60, 34, 212, 40, 60, 34, 244, 96, 60, 34, 250, 18, 60, 34, 244, 161, 60, - 34, 52, 211, 178, 60, 34, 163, 215, 236, 215, 188, 60, 34, 219, 89, 60, - 34, 244, 171, 60, 34, 249, 145, 60, 34, 247, 136, 60, 34, 224, 179, 60, - 34, 235, 137, 60, 34, 231, 67, 60, 34, 216, 88, 60, 34, 217, 245, 60, 34, - 232, 231, 60, 34, 214, 131, 60, 34, 244, 120, 60, 34, 251, 198, 64, 249, - 250, 60, 34, 219, 188, 60, 34, 246, 118, 216, 242, 60, 34, 211, 253, 60, - 34, 219, 103, 60, 34, 247, 187, 60, 34, 245, 15, 60, 34, 219, 5, 60, 34, - 74, 60, 34, 218, 131, 60, 34, 218, 248, 60, 34, 215, 255, 60, 34, 242, - 147, 60, 34, 250, 218, 60, 34, 218, 160, 60, 34, 252, 154, 60, 34, 223, - 31, 60, 34, 219, 167, 60, 34, 235, 130, 60, 34, 229, 89, 60, 34, 220, 57, - 60, 34, 244, 149, 60, 34, 226, 209, 60, 34, 254, 118, 60, 34, 225, 29, - 60, 34, 245, 227, 60, 34, 251, 132, 60, 34, 231, 86, 60, 34, 230, 183, - 60, 34, 220, 156, 60, 34, 253, 252, 60, 34, 230, 123, 60, 34, 216, 19, - 60, 34, 226, 165, 60, 34, 251, 201, 60, 34, 218, 127, 60, 34, 249, 225, - 60, 34, 242, 139, 60, 34, 216, 106, 60, 34, 235, 217, 60, 34, 251, 211, - 60, 34, 212, 58, 245, 145, 60, 34, 249, 249, 60, 34, 212, 8, 60, 34, 221, - 170, 60, 34, 240, 248, 60, 34, 219, 2, 60, 34, 214, 22, 60, 34, 252, 72, - 60, 34, 225, 73, 60, 34, 252, 174, 60, 34, 220, 52, 60, 34, 223, 110, 60, - 34, 222, 126, 60, 34, 244, 32, 60, 34, 251, 200, 60, 34, 250, 228, 60, - 34, 251, 226, 60, 34, 230, 125, 60, 34, 212, 57, 60, 34, 250, 27, 60, 34, - 211, 236, 60, 34, 247, 180, 60, 34, 213, 161, 60, 34, 242, 166, 60, 34, - 232, 137, 60, 34, 243, 88, 60, 34, 230, 118, 60, 34, 219, 94, 60, 34, - 219, 251, 217, 76, 251, 237, 60, 34, 223, 159, 60, 34, 251, 207, 60, 34, - 211, 197, 60, 34, 244, 190, 60, 34, 233, 52, 60, 34, 217, 56, 233, 52, - 60, 34, 233, 48, 60, 34, 219, 30, 60, 34, 233, 53, 60, 34, 211, 239, 60, - 34, 244, 46, 60, 34, 245, 217, 60, 34, 241, 235, 60, 34, 244, 0, 60, 34, - 240, 245, 60, 34, 251, 194, 60, 34, 217, 63, 60, 34, 242, 34, 60, 34, - 244, 113, 60, 34, 222, 28, 211, 236, 60, 34, 250, 220, 60, 34, 242, 222, - 60, 34, 244, 90, 60, 34, 251, 237, 60, 34, 222, 1, 60, 34, 248, 74, 60, - 34, 212, 2, 60, 34, 241, 210, 60, 34, 211, 41, 60, 34, 230, 192, 60, 34, - 251, 221, 60, 34, 245, 155, 60, 34, 243, 244, 60, 34, 215, 209, 60, 34, - 246, 82, 60, 34, 223, 141, 60, 34, 228, 53, 60, 34, 245, 41, 60, 34, 216, - 15, 60, 34, 246, 96, 60, 34, 215, 91, 60, 34, 244, 48, 109, 248, 37, 135, - 43, 216, 42, 222, 251, 109, 248, 37, 135, 77, 216, 42, 51, 109, 248, 37, - 135, 43, 216, 42, 230, 224, 22, 222, 251, 109, 248, 37, 135, 77, 216, 42, - 230, 224, 22, 51, 109, 248, 37, 135, 243, 229, 218, 10, 109, 248, 37, - 135, 218, 11, 243, 243, 48, 109, 248, 37, 135, 218, 11, 243, 243, 51, - 109, 248, 37, 135, 218, 11, 243, 243, 233, 46, 109, 248, 37, 135, 218, - 11, 243, 243, 214, 160, 233, 46, 109, 248, 37, 135, 218, 11, 243, 243, - 214, 160, 222, 251, 109, 248, 37, 135, 218, 11, 243, 243, 232, 108, 233, - 46, 109, 248, 37, 135, 226, 122, 109, 219, 18, 109, 249, 219, 109, 243, - 229, 218, 129, 247, 177, 78, 235, 131, 235, 236, 218, 159, 87, 109, 235, - 158, 78, 109, 249, 252, 78, 109, 54, 210, 86, 43, 254, 110, 127, 44, 254, - 110, 127, 43, 52, 254, 110, 127, 44, 52, 254, 110, 127, 43, 249, 161, - 127, 44, 249, 161, 127, 43, 71, 249, 161, 127, 44, 71, 249, 161, 127, 43, - 85, 233, 20, 127, 44, 85, 233, 20, 127, 224, 237, 78, 243, 32, 78, 43, - 216, 6, 220, 53, 127, 44, 216, 6, 220, 53, 127, 43, 71, 233, 20, 127, 44, - 71, 233, 20, 127, 43, 71, 216, 6, 220, 53, 127, 44, 71, 216, 6, 220, 53, - 127, 43, 71, 42, 127, 44, 71, 42, 127, 212, 36, 248, 156, 223, 49, 52, - 224, 191, 223, 254, 78, 52, 224, 191, 223, 254, 78, 121, 52, 224, 191, - 223, 254, 78, 224, 237, 164, 244, 190, 242, 8, 227, 198, 110, 242, 8, - 227, 198, 105, 242, 8, 227, 198, 158, 242, 8, 227, 198, 161, 242, 8, 227, - 198, 189, 242, 8, 227, 198, 194, 242, 8, 227, 198, 198, 242, 8, 227, 198, - 195, 242, 8, 227, 198, 200, 109, 233, 3, 138, 78, 109, 222, 228, 138, 78, - 109, 248, 44, 138, 78, 109, 245, 128, 138, 78, 24, 219, 155, 59, 138, 78, - 24, 52, 59, 138, 78, 212, 32, 248, 156, 67, 234, 233, 223, 77, 78, 67, - 234, 233, 223, 77, 2, 213, 135, 219, 31, 78, 67, 234, 233, 223, 77, 164, - 214, 160, 242, 27, 67, 234, 233, 223, 77, 2, 213, 135, 219, 31, 164, 214, - 160, 242, 27, 67, 234, 233, 223, 77, 164, 232, 108, 242, 27, 37, 224, - 237, 78, 109, 217, 3, 232, 214, 244, 146, 220, 138, 87, 242, 8, 227, 198, - 216, 247, 242, 8, 227, 198, 215, 73, 242, 8, 227, 198, 216, 162, 67, 109, - 235, 158, 78, 231, 140, 78, 225, 255, 254, 140, 78, 109, 45, 235, 238, - 109, 163, 244, 106, 219, 18, 141, 1, 4, 61, 141, 1, 61, 141, 1, 4, 73, - 141, 1, 73, 141, 1, 4, 70, 141, 1, 70, 141, 1, 4, 75, 141, 1, 75, 141, 1, - 4, 76, 141, 1, 76, 141, 1, 176, 141, 1, 243, 135, 141, 1, 234, 92, 141, - 1, 242, 214, 141, 1, 233, 217, 141, 1, 242, 113, 141, 1, 234, 182, 141, - 1, 243, 62, 141, 1, 234, 28, 141, 1, 242, 174, 141, 1, 206, 141, 1, 210, - 116, 141, 1, 219, 191, 141, 1, 210, 44, 141, 1, 218, 83, 141, 1, 210, 13, - 141, 1, 221, 181, 141, 1, 210, 94, 141, 1, 219, 58, 141, 1, 210, 23, 141, - 1, 217, 105, 141, 1, 248, 221, 141, 1, 216, 117, 141, 1, 248, 3, 141, 1, - 4, 215, 118, 141, 1, 215, 118, 141, 1, 246, 78, 141, 1, 217, 22, 141, 1, - 248, 90, 141, 1, 111, 141, 1, 247, 145, 141, 1, 197, 141, 1, 228, 233, - 141, 1, 227, 237, 141, 1, 229, 107, 141, 1, 228, 74, 141, 1, 162, 141, 1, - 252, 191, 141, 1, 190, 141, 1, 241, 180, 141, 1, 252, 6, 141, 1, 225, - 108, 141, 1, 240, 222, 141, 1, 251, 125, 141, 1, 224, 150, 141, 1, 241, - 238, 141, 1, 252, 75, 141, 1, 225, 221, 141, 1, 241, 68, 141, 1, 251, - 205, 141, 1, 225, 16, 141, 1, 184, 141, 1, 230, 230, 141, 1, 230, 102, - 141, 1, 231, 91, 141, 1, 230, 161, 141, 1, 4, 191, 141, 1, 191, 141, 1, - 4, 210, 212, 141, 1, 210, 212, 141, 1, 4, 210, 244, 141, 1, 210, 244, - 141, 1, 205, 141, 1, 223, 35, 141, 1, 222, 140, 141, 1, 223, 128, 141, 1, - 222, 211, 141, 1, 4, 212, 65, 141, 1, 212, 65, 141, 1, 211, 250, 141, 1, - 212, 22, 141, 1, 211, 227, 141, 1, 230, 25, 141, 1, 212, 116, 141, 1, 4, - 176, 141, 1, 4, 234, 182, 38, 234, 201, 213, 135, 219, 31, 78, 38, 234, - 201, 220, 155, 219, 31, 78, 234, 201, 213, 135, 219, 31, 78, 234, 201, - 220, 155, 219, 31, 78, 141, 235, 158, 78, 141, 213, 135, 235, 158, 78, - 141, 247, 221, 210, 225, 234, 201, 52, 240, 168, 56, 1, 4, 61, 56, 1, 61, - 56, 1, 4, 73, 56, 1, 73, 56, 1, 4, 70, 56, 1, 70, 56, 1, 4, 75, 56, 1, - 75, 56, 1, 4, 76, 56, 1, 76, 56, 1, 176, 56, 1, 243, 135, 56, 1, 234, 92, - 56, 1, 242, 214, 56, 1, 233, 217, 56, 1, 242, 113, 56, 1, 234, 182, 56, - 1, 243, 62, 56, 1, 234, 28, 56, 1, 242, 174, 56, 1, 206, 56, 1, 210, 116, - 56, 1, 219, 191, 56, 1, 210, 44, 56, 1, 218, 83, 56, 1, 210, 13, 56, 1, - 221, 181, 56, 1, 210, 94, 56, 1, 219, 58, 56, 1, 210, 23, 56, 1, 217, - 105, 56, 1, 248, 221, 56, 1, 216, 117, 56, 1, 248, 3, 56, 1, 4, 215, 118, - 56, 1, 215, 118, 56, 1, 246, 78, 56, 1, 217, 22, 56, 1, 248, 90, 56, 1, - 111, 56, 1, 247, 145, 56, 1, 197, 56, 1, 228, 233, 56, 1, 227, 237, 56, - 1, 229, 107, 56, 1, 228, 74, 56, 1, 162, 56, 1, 252, 191, 56, 1, 190, 56, - 1, 241, 180, 56, 1, 252, 6, 56, 1, 225, 108, 56, 1, 240, 222, 56, 1, 251, - 125, 56, 1, 224, 150, 56, 1, 241, 238, 56, 1, 252, 75, 56, 1, 225, 221, - 56, 1, 241, 68, 56, 1, 251, 205, 56, 1, 225, 16, 56, 1, 184, 56, 1, 230, - 230, 56, 1, 230, 102, 56, 1, 231, 91, 56, 1, 230, 161, 56, 1, 4, 191, 56, - 1, 191, 56, 1, 4, 210, 212, 56, 1, 210, 212, 56, 1, 4, 210, 244, 56, 1, - 210, 244, 56, 1, 205, 56, 1, 223, 35, 56, 1, 222, 140, 56, 1, 223, 128, - 56, 1, 222, 211, 56, 1, 4, 212, 65, 56, 1, 212, 65, 56, 1, 211, 250, 56, - 1, 212, 22, 56, 1, 211, 227, 56, 1, 230, 25, 56, 1, 212, 116, 56, 1, 4, - 176, 56, 1, 4, 234, 182, 56, 1, 214, 27, 56, 1, 213, 176, 56, 1, 213, - 255, 56, 1, 213, 138, 56, 230, 224, 247, 120, 234, 201, 224, 173, 219, - 31, 78, 56, 235, 158, 78, 56, 213, 135, 235, 158, 78, 56, 247, 221, 233, - 255, 251, 184, 1, 253, 158, 251, 184, 1, 226, 105, 251, 184, 1, 193, 251, - 184, 1, 245, 6, 251, 184, 1, 249, 60, 251, 184, 1, 217, 152, 251, 184, 1, - 230, 25, 251, 184, 1, 156, 251, 184, 1, 243, 202, 251, 184, 1, 235, 23, - 251, 184, 1, 242, 60, 251, 184, 1, 235, 144, 251, 184, 1, 224, 96, 251, - 184, 1, 211, 178, 251, 184, 1, 210, 83, 251, 184, 1, 250, 158, 251, 184, - 1, 220, 104, 251, 184, 1, 153, 251, 184, 1, 210, 159, 251, 184, 1, 251, - 66, 251, 184, 1, 222, 91, 251, 184, 1, 61, 251, 184, 1, 76, 251, 184, 1, - 75, 251, 184, 1, 245, 197, 251, 184, 1, 254, 201, 251, 184, 1, 245, 195, - 251, 184, 1, 253, 192, 251, 184, 1, 226, 134, 251, 184, 1, 254, 123, 251, - 184, 1, 245, 150, 251, 184, 1, 254, 115, 251, 184, 1, 245, 138, 251, 184, - 1, 245, 92, 251, 184, 1, 73, 251, 184, 1, 70, 251, 184, 1, 235, 156, 251, - 184, 1, 214, 105, 251, 184, 1, 229, 79, 251, 184, 1, 242, 178, 251, 184, - 1, 236, 34, 24, 1, 234, 58, 24, 1, 218, 215, 24, 1, 234, 51, 24, 1, 228, - 226, 24, 1, 228, 224, 24, 1, 228, 223, 24, 1, 216, 101, 24, 1, 218, 204, - 24, 1, 223, 26, 24, 1, 223, 21, 24, 1, 223, 18, 24, 1, 223, 11, 24, 1, - 223, 6, 24, 1, 223, 1, 24, 1, 223, 12, 24, 1, 223, 24, 24, 1, 230, 217, - 24, 1, 225, 95, 24, 1, 218, 212, 24, 1, 225, 84, 24, 1, 219, 148, 24, 1, - 218, 209, 24, 1, 236, 56, 24, 1, 250, 46, 24, 1, 218, 219, 24, 1, 250, - 106, 24, 1, 234, 110, 24, 1, 216, 173, 24, 1, 225, 131, 24, 1, 241, 172, - 24, 1, 61, 24, 1, 254, 243, 24, 1, 191, 24, 1, 211, 92, 24, 1, 245, 117, - 24, 1, 75, 24, 1, 211, 36, 24, 1, 211, 47, 24, 1, 76, 24, 1, 212, 65, 24, - 1, 212, 62, 24, 1, 226, 234, 24, 1, 210, 244, 24, 1, 70, 24, 1, 212, 11, - 24, 1, 212, 22, 24, 1, 211, 250, 24, 1, 210, 212, 24, 1, 245, 55, 24, 1, - 211, 8, 24, 1, 73, 24, 244, 103, 24, 1, 218, 213, 24, 1, 228, 216, 24, 1, - 228, 218, 24, 1, 228, 221, 24, 1, 223, 19, 24, 1, 223, 0, 24, 1, 223, 8, - 24, 1, 223, 13, 24, 1, 222, 254, 24, 1, 230, 210, 24, 1, 230, 207, 24, 1, - 230, 211, 24, 1, 234, 221, 24, 1, 225, 90, 24, 1, 225, 76, 24, 1, 225, - 82, 24, 1, 225, 79, 24, 1, 225, 93, 24, 1, 225, 77, 24, 1, 234, 219, 24, - 1, 234, 217, 24, 1, 219, 141, 24, 1, 219, 139, 24, 1, 219, 131, 24, 1, - 219, 136, 24, 1, 219, 146, 24, 1, 226, 32, 24, 1, 218, 216, 24, 1, 211, - 26, 24, 1, 211, 22, 24, 1, 211, 23, 24, 1, 234, 220, 24, 1, 218, 217, 24, + 67, 91, 43, 44, 52, 80, 2, 67, 91, 97, 215, 58, 80, 243, 244, 130, 140, + 52, 80, 243, 244, 130, 97, 52, 80, 243, 244, 130, 246, 105, 80, 2, 203, + 91, 214, 153, 80, 2, 203, 91, 214, 153, 215, 212, 74, 246, 105, 215, 212, + 74, 140, 52, 248, 158, 74, 97, 52, 248, 158, 74, 140, 215, 212, 248, 158, + 74, 97, 215, 212, 248, 158, 74, 97, 215, 58, 215, 212, 248, 158, 74, 97, + 80, 2, 246, 119, 218, 140, 214, 153, 80, 216, 43, 130, 246, 105, 80, 216, + 43, 130, 97, 80, 2, 217, 79, 2, 67, 91, 97, 80, 2, 217, 79, 2, 52, 67, + 91, 97, 215, 58, 80, 2, 217, 78, 97, 215, 58, 80, 2, 217, 79, 2, 67, 91, + 97, 215, 58, 80, 2, 217, 79, 2, 52, 67, 91, 140, 253, 252, 97, 253, 252, + 140, 52, 253, 252, 97, 52, 253, 252, 140, 80, 216, 43, 85, 247, 249, 97, + 80, 216, 43, 85, 247, 249, 140, 80, 243, 244, 252, 142, 216, 43, 85, 247, + 249, 97, 80, 243, 244, 252, 142, 216, 43, 85, 247, 249, 228, 57, 212, 9, + 22, 219, 29, 245, 221, 74, 228, 57, 245, 221, 22, 219, 29, 212, 9, 74, + 228, 57, 212, 9, 80, 2, 103, 228, 57, 245, 221, 80, 2, 103, 219, 29, 245, + 221, 80, 2, 103, 219, 29, 212, 9, 80, 2, 103, 228, 57, 212, 9, 80, 22, + 228, 57, 245, 221, 74, 228, 57, 245, 221, 80, 22, 219, 29, 245, 221, 74, + 219, 29, 245, 221, 80, 22, 219, 29, 212, 9, 74, 219, 29, 212, 9, 80, 22, + 228, 57, 212, 9, 74, 222, 229, 248, 0, 249, 126, 244, 176, 247, 255, 244, + 176, 248, 0, 249, 126, 222, 229, 247, 255, 219, 29, 245, 221, 80, 249, + 126, 228, 57, 245, 221, 74, 228, 57, 245, 221, 80, 249, 126, 219, 29, + 245, 221, 74, 244, 176, 248, 0, 249, 126, 228, 57, 245, 221, 74, 222, + 229, 248, 0, 249, 126, 219, 29, 245, 221, 74, 228, 57, 245, 221, 80, 249, + 126, 228, 57, 212, 9, 74, 228, 57, 212, 9, 80, 249, 126, 228, 57, 245, + 221, 74, 212, 36, 80, 225, 8, 247, 196, 222, 252, 80, 225, 8, 97, 216, + 189, 249, 91, 214, 152, 80, 225, 8, 97, 216, 189, 249, 91, 246, 104, 80, + 225, 8, 246, 105, 216, 189, 249, 91, 233, 38, 80, 225, 8, 246, 105, 216, + 189, 249, 91, 222, 242, 222, 245, 254, 27, 250, 3, 74, 233, 41, 254, 27, + 254, 89, 74, 216, 15, 254, 27, 254, 89, 74, 251, 176, 254, 27, 254, 89, + 74, 216, 15, 254, 27, 250, 3, 80, 2, 230, 182, 216, 15, 254, 27, 254, 89, + 80, 2, 225, 23, 232, 109, 44, 220, 153, 250, 3, 74, 232, 109, 43, 220, + 153, 254, 89, 74, 254, 89, 250, 1, 250, 37, 74, 250, 3, 250, 1, 250, 37, + 74, 97, 80, 77, 219, 252, 140, 74, 140, 80, 77, 219, 252, 97, 74, 219, + 252, 97, 80, 77, 140, 74, 97, 80, 2, 96, 51, 140, 80, 2, 96, 51, 97, 80, + 216, 140, 211, 178, 43, 44, 80, 216, 140, 4, 250, 36, 214, 153, 215, 58, + 80, 243, 244, 4, 250, 36, 43, 252, 140, 120, 44, 252, 140, 124, 241, 255, + 43, 252, 140, 124, 44, 252, 140, 120, 241, 255, 120, 252, 140, 44, 124, + 252, 140, 43, 241, 255, 120, 252, 140, 43, 124, 252, 140, 44, 241, 255, + 43, 252, 140, 120, 44, 252, 140, 120, 241, 255, 120, 252, 140, 44, 124, + 252, 140, 44, 241, 255, 43, 252, 140, 124, 44, 252, 140, 124, 241, 255, + 120, 252, 140, 43, 124, 252, 140, 43, 241, 255, 140, 242, 0, 2, 252, 140, + 120, 216, 43, 130, 97, 242, 0, 2, 252, 140, 120, 216, 43, 130, 214, 153, + 242, 0, 2, 252, 140, 44, 216, 43, 130, 246, 105, 242, 0, 2, 252, 140, 44, + 216, 43, 130, 140, 242, 0, 2, 252, 140, 124, 216, 43, 130, 97, 242, 0, 2, + 252, 140, 124, 216, 43, 130, 214, 153, 242, 0, 2, 252, 140, 43, 216, 43, + 130, 246, 105, 242, 0, 2, 252, 140, 43, 216, 43, 130, 140, 242, 0, 2, + 252, 140, 120, 243, 244, 130, 97, 242, 0, 2, 252, 140, 120, 243, 244, + 130, 214, 153, 242, 0, 2, 252, 140, 44, 243, 244, 130, 246, 105, 242, 0, + 2, 252, 140, 44, 243, 244, 130, 140, 242, 0, 2, 252, 140, 124, 243, 244, + 130, 97, 242, 0, 2, 252, 140, 124, 243, 244, 130, 214, 153, 242, 0, 2, + 252, 140, 43, 243, 244, 130, 246, 105, 242, 0, 2, 252, 140, 43, 243, 244, + 130, 140, 242, 0, 2, 252, 140, 120, 77, 140, 242, 0, 2, 252, 140, 246, + 107, 214, 153, 242, 0, 2, 252, 140, 43, 252, 31, 214, 153, 242, 0, 2, + 252, 140, 222, 252, 97, 242, 0, 2, 252, 140, 120, 77, 97, 242, 0, 2, 252, + 140, 246, 107, 246, 105, 242, 0, 2, 252, 140, 43, 252, 31, 246, 105, 242, + 0, 2, 252, 140, 222, 252, 140, 242, 0, 2, 252, 140, 120, 77, 97, 242, 0, + 2, 252, 140, 214, 163, 140, 242, 0, 2, 252, 140, 124, 77, 97, 242, 0, 2, + 252, 140, 246, 107, 97, 242, 0, 2, 252, 140, 120, 77, 140, 242, 0, 2, + 252, 140, 214, 163, 97, 242, 0, 2, 252, 140, 124, 77, 140, 242, 0, 2, + 252, 140, 246, 107, 140, 242, 0, 2, 252, 140, 120, 77, 199, 248, 157, + 140, 242, 0, 2, 252, 140, 124, 252, 44, 199, 248, 157, 97, 242, 0, 2, + 252, 140, 120, 77, 199, 248, 157, 97, 242, 0, 2, 252, 140, 124, 252, 44, + 199, 248, 157, 214, 153, 242, 0, 2, 252, 140, 43, 252, 31, 246, 105, 242, + 0, 2, 252, 140, 222, 252, 246, 105, 242, 0, 2, 252, 140, 43, 252, 31, + 214, 153, 242, 0, 2, 252, 140, 222, 252, 44, 52, 80, 2, 222, 184, 241, + 236, 245, 99, 5, 77, 97, 74, 216, 90, 226, 169, 77, 97, 74, 140, 80, 77, + 216, 90, 226, 168, 97, 80, 77, 216, 90, 226, 168, 97, 80, 77, 254, 149, + 128, 111, 233, 16, 77, 140, 74, 140, 80, 216, 140, 233, 15, 242, 131, 77, + 97, 74, 218, 65, 77, 97, 74, 140, 80, 216, 140, 218, 64, 218, 23, 77, + 140, 74, 43, 244, 92, 217, 78, 44, 244, 92, 217, 78, 120, 244, 92, 217, + 78, 124, 244, 92, 217, 78, 215, 212, 67, 252, 142, 248, 61, 210, 160, + 188, 218, 243, 210, 160, 188, 215, 49, 249, 227, 43, 71, 249, 100, 127, + 44, 71, 249, 100, 127, 43, 71, 226, 4, 44, 71, 226, 4, 210, 160, 188, 43, + 236, 16, 127, 210, 160, 188, 44, 236, 16, 127, 210, 160, 188, 43, 251, + 243, 127, 210, 160, 188, 44, 251, 243, 127, 43, 42, 251, 159, 2, 214, + 183, 44, 42, 251, 159, 2, 214, 183, 43, 42, 251, 159, 2, 216, 116, 236, + 1, 216, 15, 249, 161, 44, 42, 251, 159, 2, 216, 116, 236, 1, 251, 176, + 249, 161, 43, 42, 251, 159, 2, 216, 116, 236, 1, 251, 176, 249, 161, 44, + 42, 251, 159, 2, 216, 116, 236, 1, 216, 15, 249, 161, 43, 254, 111, 251, + 159, 2, 247, 121, 44, 254, 111, 251, 159, 2, 247, 121, 43, 254, 27, 233, + 16, 127, 44, 254, 27, 242, 131, 127, 52, 43, 254, 27, 242, 131, 127, 52, + 44, 254, 27, 233, 16, 127, 43, 85, 216, 7, 220, 54, 127, 44, 85, 216, 7, + 220, 54, 127, 246, 119, 244, 136, 67, 210, 35, 232, 214, 231, 89, 254, + 111, 226, 171, 233, 47, 44, 254, 111, 214, 12, 2, 218, 235, 231, 89, 44, + 254, 111, 2, 247, 121, 254, 111, 2, 222, 93, 235, 216, 255, 4, 254, 110, + 219, 0, 254, 111, 226, 171, 233, 47, 219, 0, 254, 111, 226, 171, 214, + 163, 215, 94, 254, 110, 223, 50, 254, 110, 254, 111, 2, 214, 183, 223, + 50, 254, 111, 2, 214, 183, 226, 249, 254, 111, 226, 171, 214, 163, 226, + 249, 254, 111, 226, 171, 246, 107, 231, 89, 254, 111, 2, 204, 254, 6, + 245, 141, 236, 1, 80, 225, 8, 120, 22, 222, 252, 231, 89, 254, 111, 2, + 204, 254, 6, 245, 141, 236, 1, 80, 225, 8, 120, 22, 233, 47, 231, 89, + 254, 111, 2, 204, 254, 6, 245, 141, 236, 1, 80, 225, 8, 124, 22, 222, + 252, 231, 89, 254, 111, 2, 204, 254, 6, 245, 141, 236, 1, 80, 225, 8, + 124, 22, 233, 47, 231, 89, 254, 111, 2, 204, 254, 6, 245, 141, 236, 1, + 80, 225, 8, 44, 22, 214, 163, 231, 89, 254, 111, 2, 204, 254, 6, 245, + 141, 236, 1, 80, 225, 8, 43, 22, 214, 163, 231, 89, 254, 111, 2, 204, + 254, 6, 245, 141, 236, 1, 80, 225, 8, 44, 22, 246, 107, 231, 89, 254, + 111, 2, 204, 254, 6, 245, 141, 236, 1, 80, 225, 8, 43, 22, 246, 107, 223, + 50, 245, 153, 220, 128, 245, 153, 220, 129, 2, 226, 124, 245, 153, 220, + 129, 2, 4, 250, 37, 48, 245, 153, 220, 129, 2, 44, 80, 48, 245, 153, 220, + 129, 2, 43, 80, 48, 250, 37, 2, 203, 130, 37, 67, 130, 37, 226, 8, 37, + 223, 51, 219, 47, 37, 225, 172, 250, 37, 247, 174, 251, 79, 203, 252, + 142, 22, 216, 15, 163, 247, 174, 251, 79, 67, 130, 250, 37, 2, 218, 25, + 211, 178, 37, 254, 88, 247, 170, 50, 120, 80, 216, 140, 250, 36, 37, 71, + 251, 114, 37, 251, 114, 37, 233, 15, 37, 242, 130, 250, 37, 2, 4, 250, + 37, 216, 43, 216, 197, 222, 252, 250, 37, 2, 113, 203, 218, 92, 216, 43, + 216, 197, 222, 252, 92, 222, 229, 248, 0, 219, 96, 92, 244, 176, 248, 0, + 219, 96, 92, 253, 217, 92, 4, 250, 36, 92, 218, 235, 113, 235, 66, 218, + 233, 215, 227, 2, 59, 48, 215, 227, 2, 214, 183, 222, 93, 236, 1, 215, + 226, 215, 227, 2, 220, 135, 253, 208, 251, 175, 44, 215, 227, 77, 43, + 215, 226, 43, 215, 227, 252, 31, 67, 130, 67, 252, 142, 252, 31, 44, 215, + 226, 251, 166, 2, 43, 163, 251, 222, 251, 166, 2, 44, 163, 251, 222, 85, + 251, 165, 30, 2, 43, 163, 251, 222, 30, 2, 44, 163, 251, 222, 71, 240, + 237, 85, 240, 237, 43, 211, 244, 244, 136, 44, 211, 244, 244, 136, 43, + 52, 211, 244, 244, 136, 44, 52, 211, 244, 244, 136, 235, 249, 235, 235, + 216, 113, 117, 235, 235, 235, 236, 229, 103, 2, 67, 130, 246, 113, 230, + 88, 42, 2, 249, 182, 226, 128, 235, 247, 253, 238, 219, 220, 224, 181, + 245, 99, 5, 22, 219, 98, 226, 8, 245, 99, 5, 22, 219, 98, 226, 9, 2, 216, + 90, 48, 240, 105, 216, 43, 22, 219, 98, 226, 8, 242, 184, 218, 156, 216, + 186, 246, 106, 215, 227, 2, 43, 163, 251, 222, 246, 106, 215, 227, 2, 44, + 163, 251, 222, 85, 247, 250, 2, 124, 74, 85, 232, 105, 71, 250, 37, 2, + 124, 74, 85, 250, 37, 2, 124, 74, 245, 86, 71, 218, 235, 245, 86, 85, + 218, 235, 245, 86, 71, 247, 249, 245, 86, 85, 247, 249, 245, 86, 71, 250, + 36, 245, 86, 85, 250, 36, 222, 133, 223, 51, 219, 48, 226, 168, 219, 48, + 2, 226, 124, 223, 51, 219, 48, 2, 203, 91, 251, 250, 219, 47, 251, 250, + 223, 51, 219, 47, 52, 225, 23, 215, 212, 225, 23, 233, 43, 249, 92, 254, + 111, 127, 222, 248, 249, 92, 254, 111, 127, 216, 79, 230, 180, 230, 25, + 37, 59, 226, 168, 230, 25, 37, 96, 226, 168, 230, 25, 37, 30, 226, 168, + 230, 25, 214, 176, 226, 169, 2, 247, 121, 230, 25, 214, 176, 226, 169, 2, + 225, 23, 230, 25, 42, 235, 200, 226, 168, 230, 25, 42, 214, 176, 226, + 168, 113, 232, 147, 22, 226, 168, 113, 232, 147, 177, 226, 168, 230, 25, + 30, 226, 168, 230, 155, 113, 218, 44, 218, 42, 2, 235, 212, 224, 25, 235, + 213, 226, 168, 244, 100, 226, 0, 235, 212, 235, 213, 2, 52, 91, 235, 213, + 253, 174, 2, 219, 96, 250, 33, 243, 227, 254, 89, 235, 210, 232, 215, + 235, 211, 2, 223, 116, 225, 238, 254, 3, 225, 2, 232, 215, 235, 211, 2, + 220, 153, 225, 238, 254, 3, 225, 2, 232, 215, 235, 211, 228, 53, 235, + 251, 216, 197, 225, 2, 235, 213, 254, 3, 115, 225, 12, 226, 168, 224, 19, + 235, 213, 226, 168, 235, 213, 2, 140, 80, 2, 103, 235, 213, 2, 30, 50, + 235, 213, 2, 235, 199, 235, 213, 2, 214, 175, 235, 213, 2, 226, 124, 235, + 213, 2, 214, 183, 235, 67, 233, 86, 43, 215, 227, 226, 168, 210, 160, + 188, 221, 202, 249, 210, 210, 160, 188, 221, 202, 225, 57, 210, 160, 188, + 221, 202, 224, 177, 96, 5, 2, 4, 250, 37, 48, 96, 5, 2, 250, 32, 255, 16, + 48, 96, 5, 2, 216, 90, 48, 96, 5, 2, 59, 51, 96, 5, 2, 216, 90, 51, 96, + 5, 2, 218, 66, 105, 96, 5, 2, 85, 215, 226, 230, 183, 5, 2, 249, 221, 48, + 230, 183, 5, 2, 59, 51, 230, 183, 5, 2, 244, 176, 247, 119, 230, 183, 5, + 2, 222, 229, 247, 119, 96, 5, 236, 1, 43, 163, 250, 36, 96, 5, 236, 1, + 44, 163, 250, 36, 213, 254, 177, 249, 132, 224, 181, 230, 85, 5, 2, 59, + 48, 230, 85, 5, 2, 214, 183, 220, 150, 224, 182, 2, 251, 176, 250, 0, + 219, 78, 224, 181, 230, 85, 5, 236, 1, 43, 163, 250, 36, 230, 85, 5, 236, + 1, 44, 163, 250, 36, 37, 230, 85, 5, 2, 250, 32, 255, 15, 230, 85, 5, + 236, 1, 52, 250, 36, 37, 247, 170, 50, 96, 5, 236, 1, 215, 226, 230, 183, + 5, 236, 1, 215, 226, 230, 85, 5, 236, 1, 215, 226, 235, 207, 224, 181, + 222, 243, 235, 207, 224, 181, 210, 160, 188, 223, 91, 249, 210, 254, 135, + 177, 249, 166, 235, 200, 2, 247, 121, 214, 176, 2, 230, 183, 50, 214, + 176, 2, 226, 124, 235, 200, 2, 226, 124, 235, 200, 2, 232, 147, 254, 119, + 214, 176, 2, 232, 147, 226, 159, 214, 176, 77, 235, 199, 235, 200, 77, + 214, 175, 214, 176, 77, 252, 142, 77, 235, 199, 235, 200, 77, 252, 142, + 77, 214, 175, 214, 176, 252, 31, 22, 235, 66, 2, 214, 175, 235, 200, 252, + 31, 22, 235, 66, 2, 235, 199, 250, 1, 214, 176, 2, 220, 134, 250, 1, 235, + 200, 2, 220, 134, 52, 42, 235, 199, 52, 42, 214, 175, 250, 1, 214, 176, + 2, 220, 135, 22, 219, 78, 224, 181, 232, 147, 22, 2, 59, 48, 232, 147, + 177, 2, 59, 48, 52, 232, 147, 254, 119, 52, 232, 147, 226, 159, 113, 235, + 201, 232, 147, 254, 119, 113, 235, 201, 232, 147, 226, 159, 219, 86, 233, + 86, 226, 159, 219, 86, 233, 86, 254, 119, 232, 147, 177, 226, 122, 232, + 147, 254, 119, 232, 147, 22, 2, 230, 225, 218, 140, 232, 147, 177, 2, + 230, 225, 218, 140, 232, 147, 22, 2, 203, 248, 157, 232, 147, 177, 2, + 203, 248, 157, 232, 147, 22, 2, 52, 226, 124, 232, 147, 22, 2, 214, 183, + 232, 147, 22, 2, 52, 214, 183, 4, 213, 251, 2, 214, 183, 232, 147, 177, + 2, 52, 226, 124, 232, 147, 177, 2, 52, 214, 183, 210, 160, 188, 247, 130, + 254, 80, 210, 160, 188, 223, 149, 254, 80, 245, 99, 5, 2, 59, 51, 240, + 105, 2, 59, 48, 215, 212, 203, 252, 142, 2, 52, 67, 91, 215, 212, 203, + 252, 142, 2, 215, 212, 67, 91, 216, 90, 226, 169, 2, 59, 48, 216, 90, + 226, 169, 2, 222, 229, 247, 119, 219, 163, 230, 183, 219, 162, 249, 200, + 2, 59, 48, 245, 99, 2, 253, 217, 254, 149, 128, 216, 43, 2, 250, 32, 255, + 15, 254, 49, 128, 177, 128, 111, 245, 99, 5, 77, 96, 50, 96, 5, 77, 245, + 99, 50, 245, 99, 5, 77, 216, 90, 226, 168, 52, 249, 228, 245, 100, 113, + 249, 195, 245, 99, 219, 177, 134, 249, 195, 245, 99, 219, 177, 245, 99, + 5, 2, 113, 170, 77, 22, 113, 170, 51, 245, 95, 2, 244, 12, 170, 48, 233, + 16, 2, 250, 37, 235, 216, 242, 131, 2, 250, 37, 235, 216, 233, 16, 2, + 224, 14, 164, 48, 242, 131, 2, 224, 14, 164, 48, 233, 16, 177, 219, 98, + 128, 111, 242, 131, 177, 219, 98, 128, 111, 233, 16, 177, 219, 98, 128, + 216, 43, 2, 59, 235, 216, 242, 131, 177, 219, 98, 128, 216, 43, 2, 59, + 235, 216, 233, 16, 177, 219, 98, 128, 216, 43, 2, 59, 48, 242, 131, 177, + 219, 98, 128, 216, 43, 2, 59, 48, 233, 16, 177, 219, 98, 128, 216, 43, 2, + 59, 77, 222, 252, 242, 131, 177, 219, 98, 128, 216, 43, 2, 59, 77, 233, + 47, 233, 16, 177, 254, 50, 242, 131, 177, 254, 50, 233, 16, 22, 219, 154, + 228, 53, 128, 111, 242, 131, 22, 219, 154, 228, 53, 128, 111, 233, 16, + 22, 228, 53, 254, 50, 242, 131, 22, 228, 53, 254, 50, 233, 16, 77, 246, + 112, 128, 77, 242, 130, 242, 131, 77, 246, 112, 128, 77, 233, 15, 233, + 16, 77, 219, 163, 177, 245, 100, 242, 131, 77, 219, 163, 177, 245, 100, + 233, 16, 77, 219, 163, 77, 242, 130, 242, 131, 77, 219, 163, 77, 233, 15, + 233, 16, 77, 242, 131, 77, 246, 112, 245, 100, 242, 131, 77, 233, 16, 77, + 246, 112, 245, 100, 233, 16, 77, 219, 98, 128, 77, 242, 131, 77, 219, 98, + 245, 100, 242, 131, 77, 219, 98, 128, 77, 233, 16, 77, 219, 98, 245, 100, + 219, 98, 128, 216, 43, 177, 233, 15, 219, 98, 128, 216, 43, 177, 242, + 130, 219, 98, 128, 216, 43, 177, 233, 16, 2, 59, 235, 216, 219, 98, 128, + 216, 43, 177, 242, 131, 2, 59, 235, 216, 246, 112, 128, 216, 43, 177, + 233, 15, 246, 112, 128, 216, 43, 177, 242, 130, 246, 112, 219, 98, 128, + 216, 43, 177, 233, 15, 246, 112, 219, 98, 128, 216, 43, 177, 242, 130, + 219, 163, 177, 233, 15, 219, 163, 177, 242, 130, 219, 163, 77, 233, 16, + 77, 245, 99, 50, 219, 163, 77, 242, 131, 77, 245, 99, 50, 52, 229, 92, + 233, 15, 52, 229, 92, 242, 130, 52, 229, 92, 233, 16, 2, 214, 183, 242, + 131, 226, 122, 233, 15, 242, 131, 252, 31, 233, 15, 233, 16, 250, 1, 251, + 79, 249, 93, 242, 131, 250, 1, 251, 79, 249, 93, 233, 16, 250, 1, 251, + 79, 249, 94, 77, 219, 98, 245, 100, 242, 131, 250, 1, 251, 79, 249, 94, + 77, 219, 98, 245, 100, 219, 79, 216, 201, 233, 84, 216, 201, 219, 79, + 216, 202, 177, 128, 111, 233, 84, 216, 202, 177, 128, 111, 245, 99, 5, 2, + 251, 109, 48, 224, 204, 77, 219, 154, 245, 99, 50, 218, 57, 77, 219, 154, + 245, 99, 50, 224, 204, 77, 219, 154, 228, 53, 128, 111, 218, 57, 77, 219, + 154, 228, 53, 128, 111, 224, 204, 77, 245, 99, 50, 218, 57, 77, 245, 99, + 50, 224, 204, 77, 228, 53, 128, 111, 218, 57, 77, 228, 53, 128, 111, 224, + 204, 77, 254, 149, 128, 111, 218, 57, 77, 254, 149, 128, 111, 224, 204, + 77, 228, 53, 254, 149, 128, 111, 218, 57, 77, 228, 53, 254, 149, 128, + 111, 52, 224, 203, 52, 218, 56, 218, 65, 2, 247, 121, 218, 23, 2, 247, + 121, 218, 65, 2, 96, 5, 51, 218, 23, 2, 96, 5, 51, 218, 65, 2, 230, 85, + 5, 51, 218, 23, 2, 230, 85, 5, 51, 218, 65, 64, 177, 128, 216, 43, 2, 59, + 48, 218, 23, 64, 177, 128, 216, 43, 2, 59, 48, 218, 65, 64, 77, 245, 99, + 50, 218, 23, 64, 77, 245, 99, 50, 218, 65, 64, 77, 216, 90, 226, 168, + 218, 23, 64, 77, 216, 90, 226, 168, 218, 65, 64, 77, 254, 149, 128, 111, + 218, 23, 64, 77, 254, 149, 128, 111, 218, 65, 64, 77, 228, 53, 128, 111, + 218, 23, 64, 77, 228, 53, 128, 111, 42, 43, 204, 93, 226, 168, 42, 44, + 204, 93, 226, 168, 250, 1, 218, 64, 250, 1, 218, 22, 250, 1, 218, 65, + 177, 128, 111, 250, 1, 218, 23, 177, 128, 111, 218, 65, 77, 218, 22, 218, + 23, 77, 218, 64, 218, 65, 77, 218, 64, 218, 23, 77, 218, 22, 218, 23, + 252, 31, 218, 64, 218, 23, 252, 31, 22, 235, 66, 251, 79, 248, 158, 2, + 218, 64, 245, 171, 64, 226, 171, 246, 104, 225, 49, 2, 217, 13, 216, 14, + 215, 241, 235, 199, 244, 22, 228, 66, 219, 252, 43, 217, 88, 219, 252, + 124, 217, 88, 219, 252, 120, 217, 88, 225, 173, 2, 222, 92, 67, 252, 142, + 215, 212, 44, 215, 93, 52, 67, 252, 142, 43, 215, 93, 67, 252, 142, 52, + 43, 215, 93, 52, 67, 252, 142, 52, 43, 215, 93, 199, 248, 158, 243, 244, + 43, 231, 64, 64, 52, 213, 239, 219, 252, 124, 217, 89, 2, 226, 124, 219, + 252, 120, 217, 89, 2, 214, 183, 219, 252, 120, 217, 89, 77, 219, 252, + 124, 217, 88, 52, 124, 217, 88, 52, 120, 217, 88, 52, 218, 104, 228, 53, + 50, 223, 50, 52, 218, 104, 228, 53, 50, 247, 139, 228, 53, 247, 176, 2, + 223, 50, 229, 102, 219, 96, 67, 232, 215, 2, 250, 37, 48, 67, 232, 215, + 2, 250, 37, 51, 124, 217, 89, 2, 250, 37, 51, 226, 9, 2, 203, 91, 226, 9, + 2, 216, 90, 226, 168, 215, 212, 67, 252, 142, 251, 245, 223, 92, 215, + 212, 67, 252, 142, 2, 203, 91, 215, 212, 249, 228, 226, 168, 215, 212, + 229, 92, 233, 15, 215, 212, 229, 92, 242, 130, 246, 112, 219, 98, 233, + 16, 177, 128, 111, 246, 112, 219, 98, 242, 131, 177, 128, 111, 215, 212, + 219, 48, 251, 245, 223, 92, 233, 86, 215, 212, 67, 252, 142, 226, 168, + 52, 219, 48, 226, 168, 71, 67, 130, 230, 25, 71, 67, 130, 228, 57, 245, + 221, 71, 74, 228, 57, 212, 9, 71, 74, 219, 29, 245, 221, 71, 74, 219, 29, + 212, 9, 71, 74, 43, 44, 71, 74, 140, 85, 74, 214, 153, 85, 74, 246, 105, + 85, 74, 228, 57, 245, 221, 85, 74, 228, 57, 212, 9, 85, 74, 219, 29, 245, + 221, 85, 74, 219, 29, 212, 9, 85, 74, 43, 44, 85, 74, 120, 124, 85, 74, + 97, 80, 2, 216, 78, 246, 104, 97, 80, 2, 216, 78, 214, 152, 140, 80, 2, + 216, 78, 246, 104, 140, 80, 2, 216, 78, 214, 152, 42, 2, 216, 15, 163, + 251, 222, 42, 2, 251, 176, 163, 251, 222, 42, 2, 214, 160, 44, 248, 0, + 163, 251, 222, 42, 2, 232, 109, 43, 248, 0, 163, 251, 222, 247, 250, 2, + 43, 163, 251, 222, 247, 250, 2, 44, 163, 251, 222, 247, 250, 2, 216, 15, + 163, 251, 222, 247, 250, 2, 251, 176, 163, 251, 222, 246, 119, 218, 235, + 85, 233, 86, 218, 235, 71, 233, 86, 218, 235, 85, 213, 187, 4, 218, 235, + 71, 213, 187, 4, 218, 235, 85, 225, 191, 71, 225, 191, 71, 241, 194, 85, + 241, 194, 203, 85, 241, 194, 85, 233, 86, 250, 36, 85, 231, 83, 247, 249, + 71, 231, 83, 247, 249, 85, 231, 83, 232, 105, 71, 231, 83, 232, 105, 85, + 4, 247, 249, 85, 4, 232, 105, 71, 4, 232, 105, 85, 203, 245, 165, 71, + 203, 245, 165, 85, 67, 245, 165, 71, 67, 245, 165, 43, 80, 2, 4, 250, 36, + 134, 140, 253, 248, 43, 80, 2, 37, 225, 23, 199, 140, 218, 231, 74, 140, + 215, 58, 80, 2, 67, 91, 140, 215, 58, 80, 2, 52, 67, 91, 140, 215, 58, + 80, 243, 244, 130, 140, 215, 58, 215, 212, 248, 158, 74, 140, 80, 2, 246, + 119, 218, 140, 140, 80, 2, 217, 79, 2, 67, 91, 140, 80, 2, 217, 79, 2, + 52, 67, 91, 140, 215, 58, 80, 2, 217, 78, 140, 215, 58, 80, 2, 217, 79, + 2, 67, 91, 140, 215, 58, 80, 2, 217, 79, 2, 52, 67, 91, 140, 80, 216, + 140, 211, 178, 212, 36, 80, 225, 8, 247, 196, 233, 47, 245, 99, 5, 77, + 140, 74, 223, 51, 216, 90, 226, 169, 77, 140, 74, 140, 80, 77, 223, 51, + 254, 149, 128, 111, 97, 80, 216, 140, 242, 130, 97, 80, 216, 140, 218, + 22, 140, 224, 25, 74, 97, 224, 25, 74, 223, 51, 216, 90, 226, 169, 77, + 97, 74, 97, 80, 77, 223, 51, 254, 149, 128, 111, 216, 90, 226, 169, 77, + 140, 74, 140, 80, 77, 254, 149, 128, 111, 140, 80, 77, 223, 51, 216, 90, + 226, 168, 97, 80, 77, 223, 51, 216, 90, 226, 168, 71, 231, 83, 218, 157, + 85, 4, 218, 157, 71, 4, 218, 157, 85, 222, 248, 225, 191, 71, 222, 248, + 225, 191, 114, 233, 86, 250, 36, 114, 226, 125, 2, 226, 125, 235, 216, + 114, 250, 37, 2, 250, 37, 235, 216, 114, 250, 36, 114, 37, 221, 255, 145, + 6, 1, 253, 160, 145, 6, 1, 251, 118, 145, 6, 1, 213, 253, 145, 6, 1, 242, + 186, 145, 6, 1, 247, 141, 145, 6, 1, 211, 21, 145, 6, 1, 210, 68, 145, 6, + 1, 246, 35, 145, 6, 1, 210, 91, 145, 6, 1, 235, 149, 145, 6, 1, 65, 235, + 149, 145, 6, 1, 73, 145, 6, 1, 247, 161, 145, 6, 1, 234, 241, 145, 6, 1, + 232, 187, 145, 6, 1, 230, 30, 145, 6, 1, 229, 192, 145, 6, 1, 226, 186, + 145, 6, 1, 225, 5, 145, 6, 1, 222, 228, 145, 6, 1, 219, 84, 145, 6, 1, + 215, 81, 145, 6, 1, 214, 201, 145, 6, 1, 243, 247, 145, 6, 1, 241, 200, + 145, 6, 1, 226, 136, 145, 6, 1, 225, 222, 145, 6, 1, 219, 229, 145, 6, 1, + 215, 168, 145, 6, 1, 250, 76, 145, 6, 1, 220, 103, 145, 6, 1, 211, 27, + 145, 6, 1, 211, 29, 145, 6, 1, 211, 57, 145, 6, 1, 218, 254, 162, 145, 6, + 1, 210, 212, 145, 6, 1, 4, 210, 183, 145, 6, 1, 4, 210, 184, 2, 217, 78, + 145, 6, 1, 210, 244, 145, 6, 1, 235, 185, 4, 210, 183, 145, 6, 1, 251, + 250, 210, 183, 145, 6, 1, 235, 185, 251, 250, 210, 183, 145, 6, 1, 244, + 83, 145, 6, 1, 235, 147, 145, 6, 1, 219, 228, 145, 6, 1, 215, 203, 61, + 145, 6, 1, 233, 76, 230, 30, 145, 4, 1, 253, 160, 145, 4, 1, 251, 118, + 145, 4, 1, 213, 253, 145, 4, 1, 242, 186, 145, 4, 1, 247, 141, 145, 4, 1, + 211, 21, 145, 4, 1, 210, 68, 145, 4, 1, 246, 35, 145, 4, 1, 210, 91, 145, + 4, 1, 235, 149, 145, 4, 1, 65, 235, 149, 145, 4, 1, 73, 145, 4, 1, 247, + 161, 145, 4, 1, 234, 241, 145, 4, 1, 232, 187, 145, 4, 1, 230, 30, 145, + 4, 1, 229, 192, 145, 4, 1, 226, 186, 145, 4, 1, 225, 5, 145, 4, 1, 222, + 228, 145, 4, 1, 219, 84, 145, 4, 1, 215, 81, 145, 4, 1, 214, 201, 145, 4, + 1, 243, 247, 145, 4, 1, 241, 200, 145, 4, 1, 226, 136, 145, 4, 1, 225, + 222, 145, 4, 1, 219, 229, 145, 4, 1, 215, 168, 145, 4, 1, 250, 76, 145, + 4, 1, 220, 103, 145, 4, 1, 211, 27, 145, 4, 1, 211, 29, 145, 4, 1, 211, + 57, 145, 4, 1, 218, 254, 162, 145, 4, 1, 210, 212, 145, 4, 1, 4, 210, + 183, 145, 4, 1, 4, 210, 184, 2, 217, 78, 145, 4, 1, 210, 244, 145, 4, 1, + 235, 185, 4, 210, 183, 145, 4, 1, 251, 250, 210, 183, 145, 4, 1, 235, + 185, 251, 250, 210, 183, 145, 4, 1, 244, 83, 145, 4, 1, 235, 147, 145, 4, + 1, 219, 228, 145, 4, 1, 215, 203, 61, 145, 4, 1, 233, 76, 230, 30, 7, 6, + 1, 233, 150, 2, 52, 130, 7, 4, 1, 233, 150, 2, 52, 130, 7, 6, 1, 233, + 150, 2, 230, 225, 183, 7, 6, 1, 226, 107, 2, 91, 7, 6, 1, 223, 225, 2, + 217, 78, 7, 4, 1, 115, 2, 91, 7, 4, 1, 217, 154, 2, 248, 0, 91, 7, 6, 1, + 242, 62, 2, 248, 40, 7, 4, 1, 242, 62, 2, 248, 40, 7, 6, 1, 235, 25, 2, + 248, 40, 7, 4, 1, 235, 25, 2, 248, 40, 7, 6, 1, 210, 160, 2, 248, 40, 7, + 4, 1, 210, 160, 2, 248, 40, 7, 6, 1, 254, 144, 7, 6, 1, 232, 51, 2, 103, + 7, 6, 1, 215, 94, 61, 7, 6, 1, 215, 94, 254, 144, 7, 4, 1, 214, 106, 2, + 44, 103, 7, 6, 1, 212, 99, 2, 103, 7, 4, 1, 212, 99, 2, 103, 7, 4, 1, + 214, 106, 2, 249, 101, 7, 6, 1, 163, 242, 61, 7, 4, 1, 163, 242, 61, 7, + 4, 1, 217, 76, 225, 134, 7, 4, 1, 160, 2, 228, 51, 7, 4, 1, 215, 94, 223, + 225, 2, 217, 78, 7, 4, 1, 144, 2, 121, 222, 235, 235, 216, 7, 1, 4, 6, + 215, 94, 75, 7, 218, 66, 4, 1, 235, 145, 58, 1, 6, 214, 105, 7, 6, 1, + 222, 93, 2, 217, 251, 217, 78, 7, 6, 1, 210, 160, 2, 217, 251, 217, 78, + 81, 6, 1, 254, 165, 81, 4, 1, 254, 165, 81, 6, 1, 213, 173, 81, 4, 1, + 213, 173, 81, 6, 1, 243, 108, 81, 4, 1, 243, 108, 81, 6, 1, 248, 192, 81, + 4, 1, 248, 192, 81, 6, 1, 245, 195, 81, 4, 1, 245, 195, 81, 6, 1, 219, + 34, 81, 4, 1, 219, 34, 81, 6, 1, 210, 101, 81, 4, 1, 210, 101, 81, 6, 1, + 241, 249, 81, 4, 1, 241, 249, 81, 6, 1, 216, 178, 81, 4, 1, 216, 178, 81, + 6, 1, 240, 117, 81, 4, 1, 240, 117, 81, 6, 1, 234, 228, 81, 4, 1, 234, + 228, 81, 6, 1, 233, 73, 81, 4, 1, 233, 73, 81, 6, 1, 230, 231, 81, 4, 1, + 230, 231, 81, 6, 1, 228, 234, 81, 4, 1, 228, 234, 81, 6, 1, 233, 234, 81, + 4, 1, 233, 234, 81, 6, 1, 76, 81, 4, 1, 76, 81, 6, 1, 225, 109, 81, 4, 1, + 225, 109, 81, 6, 1, 222, 212, 81, 4, 1, 222, 212, 81, 6, 1, 219, 166, 81, + 4, 1, 219, 166, 81, 6, 1, 217, 42, 81, 4, 1, 217, 42, 81, 6, 1, 214, 229, + 81, 4, 1, 214, 229, 81, 6, 1, 244, 122, 81, 4, 1, 244, 122, 81, 6, 1, + 234, 113, 81, 4, 1, 234, 113, 81, 6, 1, 224, 162, 81, 4, 1, 224, 162, 81, + 6, 1, 226, 179, 81, 4, 1, 226, 179, 81, 6, 1, 247, 254, 254, 171, 81, 4, + 1, 247, 254, 254, 171, 81, 6, 1, 55, 81, 254, 197, 81, 4, 1, 55, 81, 254, + 197, 81, 6, 1, 249, 116, 245, 195, 81, 4, 1, 249, 116, 245, 195, 81, 6, + 1, 247, 254, 234, 228, 81, 4, 1, 247, 254, 234, 228, 81, 6, 1, 247, 254, + 228, 234, 81, 4, 1, 247, 254, 228, 234, 81, 6, 1, 249, 116, 228, 234, 81, + 4, 1, 249, 116, 228, 234, 81, 6, 1, 55, 81, 226, 179, 81, 4, 1, 55, 81, + 226, 179, 81, 6, 1, 221, 247, 81, 4, 1, 221, 247, 81, 6, 1, 249, 129, + 220, 56, 81, 4, 1, 249, 129, 220, 56, 81, 6, 1, 55, 81, 220, 56, 81, 4, + 1, 55, 81, 220, 56, 81, 6, 1, 55, 81, 245, 76, 81, 4, 1, 55, 81, 245, 76, + 81, 6, 1, 254, 183, 234, 118, 81, 4, 1, 254, 183, 234, 118, 81, 6, 1, + 247, 254, 241, 46, 81, 4, 1, 247, 254, 241, 46, 81, 6, 1, 55, 81, 241, + 46, 81, 4, 1, 55, 81, 241, 46, 81, 6, 1, 55, 81, 162, 81, 4, 1, 55, 81, + 162, 81, 6, 1, 233, 149, 162, 81, 4, 1, 233, 149, 162, 81, 6, 1, 55, 81, + 241, 218, 81, 4, 1, 55, 81, 241, 218, 81, 6, 1, 55, 81, 241, 252, 81, 4, + 1, 55, 81, 241, 252, 81, 6, 1, 55, 81, 243, 103, 81, 4, 1, 55, 81, 243, + 103, 81, 6, 1, 55, 81, 247, 164, 81, 4, 1, 55, 81, 247, 164, 81, 6, 1, + 55, 81, 220, 23, 81, 4, 1, 55, 81, 220, 23, 81, 6, 1, 55, 227, 209, 220, + 23, 81, 4, 1, 55, 227, 209, 220, 23, 81, 6, 1, 55, 227, 209, 229, 28, 81, + 4, 1, 55, 227, 209, 229, 28, 81, 6, 1, 55, 227, 209, 227, 149, 81, 4, 1, + 55, 227, 209, 227, 149, 81, 6, 1, 55, 227, 209, 212, 37, 81, 4, 1, 55, + 227, 209, 212, 37, 81, 16, 234, 247, 81, 16, 230, 232, 222, 212, 81, 16, + 225, 110, 222, 212, 81, 16, 218, 148, 81, 16, 217, 43, 222, 212, 81, 16, + 234, 114, 222, 212, 81, 16, 220, 24, 219, 166, 81, 6, 1, 249, 116, 220, + 56, 81, 4, 1, 249, 116, 220, 56, 81, 6, 1, 249, 116, 243, 103, 81, 4, 1, + 249, 116, 243, 103, 81, 38, 228, 235, 48, 81, 38, 218, 248, 253, 225, 81, + 38, 218, 248, 233, 22, 81, 6, 1, 251, 200, 234, 118, 81, 4, 1, 251, 200, + 234, 118, 81, 55, 227, 209, 243, 230, 218, 130, 81, 55, 227, 209, 247, + 198, 224, 14, 78, 81, 55, 227, 209, 235, 238, 224, 14, 78, 81, 55, 227, + 209, 213, 241, 247, 173, 81, 244, 3, 123, 242, 28, 81, 243, 230, 218, + 130, 81, 230, 125, 247, 173, 98, 4, 1, 254, 124, 98, 4, 1, 252, 153, 98, + 4, 1, 243, 107, 98, 4, 1, 247, 129, 98, 4, 1, 245, 151, 98, 4, 1, 213, + 160, 98, 4, 1, 210, 89, 98, 4, 1, 217, 61, 98, 4, 1, 236, 0, 98, 4, 1, + 234, 235, 98, 4, 1, 233, 82, 98, 4, 1, 231, 186, 98, 4, 1, 229, 196, 98, + 4, 1, 226, 197, 98, 4, 1, 226, 18, 98, 4, 1, 210, 78, 98, 4, 1, 223, 172, + 98, 4, 1, 221, 244, 98, 4, 1, 217, 51, 98, 4, 1, 214, 190, 98, 4, 1, 225, + 141, 98, 4, 1, 234, 122, 98, 4, 1, 242, 242, 98, 4, 1, 224, 74, 98, 4, 1, + 220, 21, 98, 4, 1, 250, 98, 98, 4, 1, 251, 8, 98, 4, 1, 235, 101, 98, 4, + 1, 250, 41, 98, 4, 1, 250, 144, 98, 4, 1, 211, 163, 98, 4, 1, 235, 112, + 98, 4, 1, 242, 44, 98, 4, 1, 241, 239, 98, 4, 1, 241, 176, 98, 4, 1, 212, + 22, 98, 4, 1, 242, 5, 98, 4, 1, 241, 66, 98, 4, 1, 210, 246, 98, 4, 1, + 254, 233, 216, 109, 1, 191, 216, 109, 1, 211, 99, 216, 109, 1, 211, 98, + 216, 109, 1, 211, 88, 216, 109, 1, 211, 86, 216, 109, 1, 252, 33, 255, + 17, 211, 81, 216, 109, 1, 211, 81, 216, 109, 1, 211, 96, 216, 109, 1, + 211, 93, 216, 109, 1, 211, 95, 216, 109, 1, 211, 94, 216, 109, 1, 211, + 12, 216, 109, 1, 211, 90, 216, 109, 1, 211, 79, 216, 109, 1, 215, 116, + 211, 79, 216, 109, 1, 211, 76, 216, 109, 1, 211, 84, 216, 109, 1, 252, + 33, 255, 17, 211, 84, 216, 109, 1, 215, 116, 211, 84, 216, 109, 1, 211, + 83, 216, 109, 1, 211, 103, 216, 109, 1, 211, 77, 216, 109, 1, 215, 116, + 211, 77, 216, 109, 1, 211, 66, 216, 109, 1, 215, 116, 211, 66, 216, 109, + 1, 211, 8, 216, 109, 1, 211, 49, 216, 109, 1, 254, 208, 211, 49, 216, + 109, 1, 215, 116, 211, 49, 216, 109, 1, 211, 75, 216, 109, 1, 211, 74, + 216, 109, 1, 211, 71, 216, 109, 1, 215, 116, 211, 85, 216, 109, 1, 215, + 116, 211, 69, 216, 109, 1, 211, 67, 216, 109, 1, 210, 212, 216, 109, 1, + 211, 64, 216, 109, 1, 211, 63, 216, 109, 1, 211, 87, 216, 109, 1, 215, + 116, 211, 87, 216, 109, 1, 253, 164, 211, 87, 216, 109, 1, 211, 62, 216, + 109, 1, 211, 60, 216, 109, 1, 211, 61, 216, 109, 1, 211, 59, 216, 109, 1, + 211, 58, 216, 109, 1, 211, 97, 216, 109, 1, 211, 56, 216, 109, 1, 211, + 54, 216, 109, 1, 211, 53, 216, 109, 1, 211, 52, 216, 109, 1, 211, 50, + 216, 109, 1, 217, 35, 211, 50, 216, 109, 1, 211, 48, 216, 109, 1, 211, + 47, 216, 109, 1, 210, 244, 216, 109, 58, 1, 233, 127, 78, 216, 109, 220, + 139, 78, 216, 109, 116, 235, 64, 29, 3, 232, 156, 29, 3, 230, 161, 29, 3, + 222, 210, 29, 3, 219, 58, 29, 3, 220, 7, 29, 3, 251, 205, 29, 3, 216, 42, + 29, 3, 249, 238, 29, 3, 228, 73, 29, 3, 227, 134, 29, 3, 242, 181, 227, + 1, 29, 3, 210, 22, 29, 3, 247, 144, 29, 3, 248, 105, 29, 3, 235, 68, 29, + 3, 216, 156, 29, 3, 250, 86, 29, 3, 225, 121, 29, 3, 225, 16, 29, 3, 243, + 0, 29, 3, 242, 252, 29, 3, 242, 253, 29, 3, 242, 254, 29, 3, 218, 224, + 29, 3, 218, 180, 29, 3, 218, 193, 29, 3, 218, 223, 29, 3, 218, 197, 29, + 3, 218, 198, 29, 3, 218, 185, 29, 3, 250, 214, 29, 3, 250, 193, 29, 3, + 250, 195, 29, 3, 250, 213, 29, 3, 250, 211, 29, 3, 250, 212, 29, 3, 250, + 194, 29, 3, 209, 243, 29, 3, 209, 221, 29, 3, 209, 234, 29, 3, 209, 242, + 29, 3, 209, 237, 29, 3, 209, 238, 29, 3, 209, 226, 29, 3, 250, 209, 29, + 3, 250, 196, 29, 3, 250, 198, 29, 3, 250, 208, 29, 3, 250, 206, 29, 3, + 250, 207, 29, 3, 250, 197, 29, 3, 223, 237, 29, 3, 223, 227, 29, 3, 223, + 233, 29, 3, 223, 236, 29, 3, 223, 234, 29, 3, 223, 235, 29, 3, 223, 232, + 29, 3, 233, 160, 29, 3, 233, 152, 29, 3, 233, 155, 29, 3, 233, 159, 29, + 3, 233, 156, 29, 3, 233, 157, 29, 3, 233, 153, 29, 3, 211, 130, 29, 3, + 211, 120, 29, 3, 211, 126, 29, 3, 211, 129, 29, 3, 211, 127, 29, 3, 211, + 128, 29, 3, 211, 125, 29, 3, 242, 72, 29, 3, 242, 63, 29, 3, 242, 66, 29, + 3, 242, 71, 29, 3, 242, 68, 29, 3, 242, 69, 29, 3, 242, 65, 38, 33, 1, + 252, 76, 38, 33, 1, 213, 255, 38, 33, 1, 242, 237, 38, 33, 1, 248, 91, + 38, 33, 1, 210, 74, 38, 33, 1, 210, 94, 38, 33, 1, 176, 38, 33, 1, 245, + 175, 38, 33, 1, 245, 160, 38, 33, 1, 245, 151, 38, 33, 1, 76, 38, 33, 1, + 225, 222, 38, 33, 1, 245, 93, 38, 33, 1, 245, 83, 38, 33, 1, 217, 23, 38, + 33, 1, 162, 38, 33, 1, 215, 179, 38, 33, 1, 250, 132, 38, 33, 1, 220, + 103, 38, 33, 1, 220, 66, 38, 33, 1, 244, 83, 38, 33, 1, 245, 82, 38, 33, + 1, 61, 38, 33, 1, 236, 61, 38, 33, 1, 247, 162, 38, 33, 1, 230, 141, 214, + 205, 38, 33, 1, 211, 59, 38, 33, 1, 210, 212, 38, 33, 1, 235, 184, 61, + 38, 33, 1, 232, 193, 210, 183, 38, 33, 1, 251, 250, 210, 183, 38, 33, 1, + 235, 184, 251, 250, 210, 183, 44, 254, 111, 218, 61, 231, 155, 44, 254, + 111, 246, 119, 218, 61, 231, 155, 43, 218, 61, 127, 44, 218, 61, 127, 43, + 246, 119, 218, 61, 127, 44, 246, 119, 218, 61, 127, 223, 158, 235, 203, + 231, 155, 223, 158, 246, 119, 235, 203, 231, 155, 246, 119, 215, 242, + 231, 155, 43, 215, 242, 127, 44, 215, 242, 127, 223, 158, 218, 235, 43, + 223, 158, 226, 199, 127, 44, 223, 158, 226, 199, 127, 245, 211, 249, 159, + 226, 14, 244, 23, 226, 14, 223, 50, 244, 23, 226, 14, 240, 166, 246, 119, + 226, 252, 246, 105, 254, 120, 214, 153, 254, 120, 246, 119, 222, 248, + 254, 110, 52, 226, 249, 240, 169, 235, 194, 235, 202, 226, 60, 251, 155, + 240, 170, 2, 248, 2, 216, 90, 2, 222, 235, 48, 43, 121, 226, 6, 127, 44, + 121, 226, 6, 127, 216, 90, 2, 59, 48, 216, 90, 2, 59, 51, 43, 67, 252, + 142, 2, 224, 8, 44, 67, 252, 142, 2, 224, 8, 216, 15, 43, 163, 127, 216, + 15, 44, 163, 127, 251, 176, 43, 163, 127, 251, 176, 44, 163, 127, 43, + 219, 188, 104, 127, 44, 219, 188, 104, 127, 43, 52, 226, 4, 44, 52, 226, + 4, 113, 170, 117, 123, 59, 224, 141, 123, 59, 117, 113, 170, 224, 141, + 92, 244, 12, 59, 224, 141, 244, 82, 59, 78, 223, 50, 224, 14, 78, 67, + 183, 222, 235, 225, 11, 211, 209, 220, 139, 230, 225, 247, 121, 215, 94, + 249, 220, 223, 158, 247, 121, 223, 158, 249, 220, 215, 94, 220, 151, 248, + 207, 2, 43, 242, 109, 248, 207, 2, 44, 242, 109, 215, 94, 248, 206, 216, + 15, 163, 221, 174, 50, 215, 59, 248, 157, 216, 144, 248, 157, 9, 34, 223, + 77, 9, 34, 250, 11, 9, 34, 221, 177, 110, 9, 34, 221, 177, 105, 9, 34, + 221, 177, 158, 9, 34, 225, 168, 9, 34, 251, 164, 9, 34, 217, 93, 9, 34, + 234, 34, 110, 9, 34, 234, 34, 105, 9, 34, 247, 171, 9, 34, 221, 180, 9, + 34, 4, 110, 9, 34, 4, 105, 9, 34, 233, 98, 110, 9, 34, 233, 98, 105, 9, + 34, 233, 98, 158, 9, 34, 233, 98, 161, 9, 34, 219, 69, 9, 34, 216, 146, + 9, 34, 219, 67, 110, 9, 34, 219, 67, 105, 9, 34, 241, 229, 110, 9, 34, + 241, 229, 105, 9, 34, 242, 16, 9, 34, 223, 148, 9, 34, 250, 83, 9, 34, + 218, 38, 9, 34, 230, 129, 9, 34, 248, 89, 9, 34, 230, 121, 9, 34, 250, + 26, 9, 34, 212, 41, 110, 9, 34, 212, 41, 105, 9, 34, 244, 97, 9, 34, 225, + 233, 110, 9, 34, 225, 233, 105, 9, 34, 219, 161, 163, 215, 237, 215, 189, + 9, 34, 249, 146, 9, 34, 247, 137, 9, 34, 235, 138, 9, 34, 251, 199, 64, + 249, 251, 9, 34, 245, 16, 9, 34, 218, 250, 110, 9, 34, 218, 250, 105, 9, + 34, 252, 155, 9, 34, 219, 168, 9, 34, 251, 64, 219, 168, 9, 34, 229, 91, + 110, 9, 34, 229, 91, 105, 9, 34, 229, 91, 158, 9, 34, 229, 91, 161, 9, + 34, 231, 47, 9, 34, 220, 58, 9, 34, 223, 154, 9, 34, 245, 38, 9, 34, 226, + 210, 9, 34, 251, 134, 110, 9, 34, 251, 134, 105, 9, 34, 231, 87, 9, 34, + 230, 124, 9, 34, 242, 141, 110, 9, 34, 242, 141, 105, 9, 34, 242, 141, + 158, 9, 34, 216, 107, 9, 34, 249, 250, 9, 34, 212, 9, 110, 9, 34, 212, 9, + 105, 9, 34, 251, 64, 221, 171, 9, 34, 219, 161, 240, 249, 9, 34, 240, + 249, 9, 34, 251, 64, 219, 3, 9, 34, 251, 64, 220, 53, 9, 34, 244, 33, 9, + 34, 251, 64, 250, 229, 9, 34, 219, 161, 212, 57, 9, 34, 212, 58, 110, 9, + 34, 212, 58, 105, 9, 34, 250, 28, 9, 34, 251, 64, 242, 167, 9, 34, 199, + 110, 9, 34, 199, 105, 9, 34, 251, 64, 232, 138, 9, 34, 251, 64, 243, 89, + 9, 34, 230, 120, 110, 9, 34, 230, 120, 105, 9, 34, 223, 160, 9, 34, 251, + 208, 9, 34, 251, 64, 217, 57, 233, 53, 9, 34, 251, 64, 233, 54, 9, 34, + 251, 64, 211, 239, 9, 34, 251, 64, 244, 47, 9, 34, 245, 219, 110, 9, 34, + 245, 219, 105, 9, 34, 245, 219, 158, 9, 34, 251, 64, 245, 218, 9, 34, + 241, 236, 9, 34, 251, 64, 240, 246, 9, 34, 251, 195, 9, 34, 242, 223, 9, + 34, 251, 64, 244, 91, 9, 34, 251, 64, 251, 238, 9, 34, 251, 64, 222, 2, + 9, 34, 219, 161, 212, 2, 9, 34, 219, 161, 211, 41, 9, 34, 251, 64, 243, + 245, 9, 34, 235, 144, 245, 42, 9, 34, 251, 64, 245, 42, 9, 34, 235, 144, + 216, 16, 9, 34, 251, 64, 216, 16, 9, 34, 235, 144, 246, 97, 9, 34, 251, + 64, 246, 97, 9, 34, 215, 91, 9, 34, 235, 144, 215, 91, 9, 34, 251, 64, + 215, 91, 60, 34, 110, 60, 34, 232, 214, 60, 34, 247, 121, 60, 34, 219, + 96, 60, 34, 221, 176, 60, 34, 103, 60, 34, 105, 60, 34, 232, 238, 60, 34, + 231, 186, 60, 34, 233, 34, 60, 34, 245, 130, 60, 34, 195, 60, 34, 124, + 251, 164, 60, 34, 249, 148, 60, 34, 240, 112, 60, 34, 217, 93, 60, 34, + 204, 251, 164, 60, 34, 234, 33, 60, 34, 224, 225, 60, 34, 211, 202, 60, + 34, 218, 244, 60, 34, 44, 204, 251, 164, 60, 34, 241, 177, 245, 146, 60, + 34, 216, 248, 60, 34, 247, 171, 60, 34, 221, 180, 60, 34, 250, 11, 60, + 34, 224, 183, 60, 34, 254, 216, 60, 34, 230, 111, 60, 34, 245, 146, 60, + 34, 245, 224, 60, 34, 221, 201, 60, 34, 242, 175, 60, 34, 242, 176, 219, + 82, 60, 34, 245, 41, 60, 34, 251, 249, 60, 34, 211, 221, 60, 34, 250, + 102, 60, 34, 222, 197, 60, 34, 235, 252, 60, 34, 219, 80, 60, 34, 233, + 97, 60, 34, 249, 157, 60, 34, 218, 238, 60, 34, 230, 116, 60, 34, 222, + 225, 60, 34, 211, 206, 60, 34, 226, 191, 60, 34, 215, 98, 60, 34, 246, + 81, 60, 34, 219, 252, 216, 146, 60, 34, 246, 119, 250, 11, 60, 34, 199, + 218, 109, 60, 34, 113, 242, 11, 60, 34, 220, 1, 60, 34, 251, 170, 60, 34, + 219, 66, 60, 34, 251, 138, 60, 34, 218, 139, 60, 34, 241, 228, 60, 34, + 242, 29, 60, 34, 247, 124, 60, 34, 242, 16, 60, 34, 251, 155, 60, 34, + 223, 148, 60, 34, 221, 188, 60, 34, 247, 200, 60, 34, 253, 169, 60, 34, + 218, 235, 60, 34, 228, 52, 60, 34, 218, 38, 60, 34, 221, 212, 60, 34, + 230, 129, 60, 34, 215, 236, 60, 34, 233, 123, 60, 34, 218, 130, 60, 34, + 248, 89, 60, 34, 212, 21, 60, 34, 247, 147, 228, 52, 60, 34, 249, 216, + 60, 34, 243, 223, 60, 34, 250, 22, 60, 34, 218, 143, 60, 34, 212, 40, 60, + 34, 244, 97, 60, 34, 250, 19, 60, 34, 244, 162, 60, 34, 52, 211, 178, 60, + 34, 163, 215, 237, 215, 189, 60, 34, 219, 90, 60, 34, 244, 172, 60, 34, + 249, 146, 60, 34, 247, 137, 60, 34, 224, 180, 60, 34, 235, 138, 60, 34, + 231, 68, 60, 34, 216, 89, 60, 34, 217, 246, 60, 34, 232, 232, 60, 34, + 214, 131, 60, 34, 244, 121, 60, 34, 251, 199, 64, 249, 251, 60, 34, 219, + 189, 60, 34, 246, 119, 216, 243, 60, 34, 211, 253, 60, 34, 219, 104, 60, + 34, 247, 188, 60, 34, 245, 16, 60, 34, 219, 6, 60, 34, 74, 60, 34, 218, + 132, 60, 34, 218, 249, 60, 34, 216, 0, 60, 34, 242, 148, 60, 34, 250, + 219, 60, 34, 218, 161, 60, 34, 252, 155, 60, 34, 223, 32, 60, 34, 219, + 168, 60, 34, 235, 131, 60, 34, 229, 90, 60, 34, 220, 58, 60, 34, 244, + 150, 60, 34, 226, 210, 60, 34, 254, 119, 60, 34, 225, 30, 60, 34, 245, + 228, 60, 34, 251, 133, 60, 34, 231, 87, 60, 34, 230, 184, 60, 34, 220, + 157, 60, 34, 253, 253, 60, 34, 230, 124, 60, 34, 216, 20, 60, 34, 226, + 166, 60, 34, 251, 202, 60, 34, 218, 128, 60, 34, 249, 226, 60, 34, 242, + 140, 60, 34, 216, 107, 60, 34, 235, 218, 60, 34, 251, 212, 60, 34, 212, + 58, 245, 146, 60, 34, 249, 250, 60, 34, 212, 8, 60, 34, 221, 171, 60, 34, + 240, 249, 60, 34, 219, 3, 60, 34, 214, 22, 60, 34, 252, 73, 60, 34, 225, + 74, 60, 34, 252, 175, 60, 34, 220, 53, 60, 34, 223, 111, 60, 34, 222, + 127, 60, 34, 244, 33, 60, 34, 251, 201, 60, 34, 250, 229, 60, 34, 251, + 227, 60, 34, 230, 126, 60, 34, 212, 57, 60, 34, 250, 28, 60, 34, 211, + 236, 60, 34, 247, 181, 60, 34, 213, 161, 60, 34, 242, 167, 60, 34, 232, + 138, 60, 34, 243, 89, 60, 34, 230, 119, 60, 34, 219, 95, 60, 34, 219, + 252, 217, 77, 251, 238, 60, 34, 223, 160, 60, 34, 251, 208, 60, 34, 211, + 197, 60, 34, 244, 191, 60, 34, 233, 53, 60, 34, 217, 57, 233, 53, 60, 34, + 233, 49, 60, 34, 219, 31, 60, 34, 233, 54, 60, 34, 211, 239, 60, 34, 244, + 47, 60, 34, 245, 218, 60, 34, 241, 236, 60, 34, 244, 1, 60, 34, 240, 246, + 60, 34, 251, 195, 60, 34, 217, 64, 60, 34, 242, 35, 60, 34, 244, 114, 60, + 34, 222, 29, 211, 236, 60, 34, 250, 221, 60, 34, 242, 223, 60, 34, 244, + 91, 60, 34, 251, 238, 60, 34, 222, 2, 60, 34, 248, 75, 60, 34, 212, 2, + 60, 34, 241, 211, 60, 34, 211, 41, 60, 34, 230, 193, 60, 34, 251, 222, + 60, 34, 245, 156, 60, 34, 243, 245, 60, 34, 215, 210, 60, 34, 246, 83, + 60, 34, 223, 142, 60, 34, 228, 54, 60, 34, 245, 42, 60, 34, 216, 16, 60, + 34, 246, 97, 60, 34, 215, 91, 60, 34, 244, 49, 109, 248, 38, 135, 43, + 216, 43, 222, 252, 109, 248, 38, 135, 77, 216, 43, 51, 109, 248, 38, 135, + 43, 216, 43, 230, 225, 22, 222, 252, 109, 248, 38, 135, 77, 216, 43, 230, + 225, 22, 51, 109, 248, 38, 135, 243, 230, 218, 11, 109, 248, 38, 135, + 218, 12, 243, 244, 48, 109, 248, 38, 135, 218, 12, 243, 244, 51, 109, + 248, 38, 135, 218, 12, 243, 244, 233, 47, 109, 248, 38, 135, 218, 12, + 243, 244, 214, 160, 233, 47, 109, 248, 38, 135, 218, 12, 243, 244, 214, + 160, 222, 252, 109, 248, 38, 135, 218, 12, 243, 244, 232, 109, 233, 47, + 109, 248, 38, 135, 226, 123, 109, 219, 19, 109, 249, 220, 109, 243, 230, + 218, 130, 247, 178, 78, 235, 132, 235, 237, 218, 160, 87, 109, 235, 159, + 78, 109, 249, 253, 78, 109, 54, 210, 86, 43, 254, 111, 127, 44, 254, 111, + 127, 43, 52, 254, 111, 127, 44, 52, 254, 111, 127, 43, 249, 162, 127, 44, + 249, 162, 127, 43, 71, 249, 162, 127, 44, 71, 249, 162, 127, 43, 85, 233, + 21, 127, 44, 85, 233, 21, 127, 224, 238, 78, 243, 33, 78, 43, 216, 7, + 220, 54, 127, 44, 216, 7, 220, 54, 127, 43, 71, 233, 21, 127, 44, 71, + 233, 21, 127, 43, 71, 216, 7, 220, 54, 127, 44, 71, 216, 7, 220, 54, 127, + 43, 71, 42, 127, 44, 71, 42, 127, 212, 36, 248, 157, 223, 50, 52, 224, + 192, 223, 255, 78, 52, 224, 192, 223, 255, 78, 121, 52, 224, 192, 223, + 255, 78, 224, 238, 164, 244, 191, 242, 9, 227, 199, 110, 242, 9, 227, + 199, 105, 242, 9, 227, 199, 158, 242, 9, 227, 199, 161, 242, 9, 227, 199, + 189, 242, 9, 227, 199, 194, 242, 9, 227, 199, 198, 242, 9, 227, 199, 195, + 242, 9, 227, 199, 200, 109, 233, 4, 138, 78, 109, 222, 229, 138, 78, 109, + 248, 45, 138, 78, 109, 245, 129, 138, 78, 24, 219, 156, 59, 138, 78, 24, + 52, 59, 138, 78, 212, 32, 248, 157, 67, 234, 234, 223, 78, 78, 67, 234, + 234, 223, 78, 2, 213, 135, 219, 32, 78, 67, 234, 234, 223, 78, 164, 214, + 160, 242, 28, 67, 234, 234, 223, 78, 2, 213, 135, 219, 32, 164, 214, 160, + 242, 28, 67, 234, 234, 223, 78, 164, 232, 109, 242, 28, 37, 224, 238, 78, + 109, 217, 4, 232, 215, 244, 147, 220, 139, 87, 242, 9, 227, 199, 216, + 248, 242, 9, 227, 199, 215, 73, 242, 9, 227, 199, 216, 163, 67, 109, 235, + 159, 78, 231, 141, 78, 226, 0, 254, 141, 78, 109, 45, 235, 239, 109, 163, + 244, 107, 219, 19, 141, 1, 4, 61, 141, 1, 61, 141, 1, 4, 73, 141, 1, 73, + 141, 1, 4, 70, 141, 1, 70, 141, 1, 4, 75, 141, 1, 75, 141, 1, 4, 76, 141, + 1, 76, 141, 1, 176, 141, 1, 243, 136, 141, 1, 234, 93, 141, 1, 242, 215, + 141, 1, 233, 218, 141, 1, 242, 114, 141, 1, 234, 183, 141, 1, 243, 63, + 141, 1, 234, 29, 141, 1, 242, 175, 141, 1, 206, 141, 1, 210, 116, 141, 1, + 219, 192, 141, 1, 210, 44, 141, 1, 218, 84, 141, 1, 210, 13, 141, 1, 221, + 182, 141, 1, 210, 94, 141, 1, 219, 59, 141, 1, 210, 23, 141, 1, 217, 106, + 141, 1, 248, 222, 141, 1, 216, 118, 141, 1, 248, 4, 141, 1, 4, 215, 119, + 141, 1, 215, 119, 141, 1, 246, 79, 141, 1, 217, 23, 141, 1, 248, 91, 141, + 1, 111, 141, 1, 247, 146, 141, 1, 197, 141, 1, 228, 234, 141, 1, 227, + 238, 141, 1, 229, 108, 141, 1, 228, 75, 141, 1, 162, 141, 1, 252, 192, + 141, 1, 190, 141, 1, 241, 181, 141, 1, 252, 7, 141, 1, 225, 109, 141, 1, + 240, 223, 141, 1, 251, 126, 141, 1, 224, 151, 141, 1, 241, 239, 141, 1, + 252, 76, 141, 1, 225, 222, 141, 1, 241, 69, 141, 1, 251, 206, 141, 1, + 225, 17, 141, 1, 185, 141, 1, 230, 231, 141, 1, 230, 103, 141, 1, 231, + 92, 141, 1, 230, 162, 141, 1, 4, 191, 141, 1, 191, 141, 1, 4, 210, 212, + 141, 1, 210, 212, 141, 1, 4, 210, 244, 141, 1, 210, 244, 141, 1, 205, + 141, 1, 223, 36, 141, 1, 222, 141, 141, 1, 223, 129, 141, 1, 222, 212, + 141, 1, 4, 212, 65, 141, 1, 212, 65, 141, 1, 211, 250, 141, 1, 212, 22, + 141, 1, 211, 227, 141, 1, 230, 26, 141, 1, 212, 116, 141, 1, 4, 176, 141, + 1, 4, 234, 183, 38, 234, 202, 213, 135, 219, 32, 78, 38, 234, 202, 220, + 156, 219, 32, 78, 234, 202, 213, 135, 219, 32, 78, 234, 202, 220, 156, + 219, 32, 78, 141, 235, 159, 78, 141, 213, 135, 235, 159, 78, 141, 247, + 222, 210, 225, 234, 202, 52, 240, 169, 56, 1, 4, 61, 56, 1, 61, 56, 1, 4, + 73, 56, 1, 73, 56, 1, 4, 70, 56, 1, 70, 56, 1, 4, 75, 56, 1, 75, 56, 1, + 4, 76, 56, 1, 76, 56, 1, 176, 56, 1, 243, 136, 56, 1, 234, 93, 56, 1, + 242, 215, 56, 1, 233, 218, 56, 1, 242, 114, 56, 1, 234, 183, 56, 1, 243, + 63, 56, 1, 234, 29, 56, 1, 242, 175, 56, 1, 206, 56, 1, 210, 116, 56, 1, + 219, 192, 56, 1, 210, 44, 56, 1, 218, 84, 56, 1, 210, 13, 56, 1, 221, + 182, 56, 1, 210, 94, 56, 1, 219, 59, 56, 1, 210, 23, 56, 1, 217, 106, 56, + 1, 248, 222, 56, 1, 216, 118, 56, 1, 248, 4, 56, 1, 4, 215, 119, 56, 1, + 215, 119, 56, 1, 246, 79, 56, 1, 217, 23, 56, 1, 248, 91, 56, 1, 111, 56, + 1, 247, 146, 56, 1, 197, 56, 1, 228, 234, 56, 1, 227, 238, 56, 1, 229, + 108, 56, 1, 228, 75, 56, 1, 162, 56, 1, 252, 192, 56, 1, 190, 56, 1, 241, + 181, 56, 1, 252, 7, 56, 1, 225, 109, 56, 1, 240, 223, 56, 1, 251, 126, + 56, 1, 224, 151, 56, 1, 241, 239, 56, 1, 252, 76, 56, 1, 225, 222, 56, 1, + 241, 69, 56, 1, 251, 206, 56, 1, 225, 17, 56, 1, 185, 56, 1, 230, 231, + 56, 1, 230, 103, 56, 1, 231, 92, 56, 1, 230, 162, 56, 1, 4, 191, 56, 1, + 191, 56, 1, 4, 210, 212, 56, 1, 210, 212, 56, 1, 4, 210, 244, 56, 1, 210, + 244, 56, 1, 205, 56, 1, 223, 36, 56, 1, 222, 141, 56, 1, 223, 129, 56, 1, + 222, 212, 56, 1, 4, 212, 65, 56, 1, 212, 65, 56, 1, 211, 250, 56, 1, 212, + 22, 56, 1, 211, 227, 56, 1, 230, 26, 56, 1, 212, 116, 56, 1, 4, 176, 56, + 1, 4, 234, 183, 56, 1, 214, 27, 56, 1, 213, 176, 56, 1, 213, 255, 56, 1, + 213, 138, 56, 230, 225, 247, 121, 234, 202, 224, 174, 219, 32, 78, 56, + 235, 159, 78, 56, 213, 135, 235, 159, 78, 56, 247, 222, 234, 0, 251, 185, + 1, 253, 159, 251, 185, 1, 226, 106, 251, 185, 1, 193, 251, 185, 1, 245, + 7, 251, 185, 1, 249, 61, 251, 185, 1, 217, 153, 251, 185, 1, 230, 26, + 251, 185, 1, 156, 251, 185, 1, 243, 203, 251, 185, 1, 235, 24, 251, 185, + 1, 242, 61, 251, 185, 1, 235, 145, 251, 185, 1, 224, 97, 251, 185, 1, + 211, 178, 251, 185, 1, 210, 83, 251, 185, 1, 250, 159, 251, 185, 1, 220, + 105, 251, 185, 1, 153, 251, 185, 1, 210, 159, 251, 185, 1, 251, 67, 251, + 185, 1, 222, 92, 251, 185, 1, 61, 251, 185, 1, 76, 251, 185, 1, 75, 251, + 185, 1, 245, 198, 251, 185, 1, 254, 202, 251, 185, 1, 245, 196, 251, 185, + 1, 253, 193, 251, 185, 1, 226, 135, 251, 185, 1, 254, 124, 251, 185, 1, + 245, 151, 251, 185, 1, 254, 116, 251, 185, 1, 245, 139, 251, 185, 1, 245, + 93, 251, 185, 1, 73, 251, 185, 1, 70, 251, 185, 1, 235, 157, 251, 185, 1, + 214, 105, 251, 185, 1, 229, 80, 251, 185, 1, 242, 179, 251, 185, 1, 236, + 35, 24, 1, 234, 59, 24, 1, 218, 216, 24, 1, 234, 52, 24, 1, 228, 227, 24, + 1, 228, 225, 24, 1, 228, 224, 24, 1, 216, 102, 24, 1, 218, 205, 24, 1, + 223, 27, 24, 1, 223, 22, 24, 1, 223, 19, 24, 1, 223, 12, 24, 1, 223, 7, + 24, 1, 223, 2, 24, 1, 223, 13, 24, 1, 223, 25, 24, 1, 230, 218, 24, 1, + 225, 96, 24, 1, 218, 213, 24, 1, 225, 85, 24, 1, 219, 149, 24, 1, 218, + 210, 24, 1, 236, 57, 24, 1, 250, 47, 24, 1, 218, 220, 24, 1, 250, 107, + 24, 1, 234, 111, 24, 1, 216, 174, 24, 1, 225, 132, 24, 1, 241, 173, 24, + 1, 61, 24, 1, 254, 244, 24, 1, 191, 24, 1, 211, 92, 24, 1, 245, 118, 24, + 1, 75, 24, 1, 211, 36, 24, 1, 211, 47, 24, 1, 76, 24, 1, 212, 65, 24, 1, + 212, 62, 24, 1, 226, 235, 24, 1, 210, 244, 24, 1, 70, 24, 1, 212, 11, 24, + 1, 212, 22, 24, 1, 211, 250, 24, 1, 210, 212, 24, 1, 245, 56, 24, 1, 211, + 8, 24, 1, 73, 24, 244, 104, 24, 1, 218, 214, 24, 1, 228, 217, 24, 1, 228, + 219, 24, 1, 228, 222, 24, 1, 223, 20, 24, 1, 223, 1, 24, 1, 223, 9, 24, + 1, 223, 14, 24, 1, 222, 255, 24, 1, 230, 211, 24, 1, 230, 208, 24, 1, + 230, 212, 24, 1, 234, 222, 24, 1, 225, 91, 24, 1, 225, 77, 24, 1, 225, + 83, 24, 1, 225, 80, 24, 1, 225, 94, 24, 1, 225, 78, 24, 1, 234, 220, 24, + 1, 234, 218, 24, 1, 219, 142, 24, 1, 219, 140, 24, 1, 219, 132, 24, 1, + 219, 137, 24, 1, 219, 147, 24, 1, 226, 33, 24, 1, 218, 217, 24, 1, 211, + 26, 24, 1, 211, 22, 24, 1, 211, 23, 24, 1, 234, 221, 24, 1, 218, 218, 24, 1, 211, 32, 24, 1, 210, 238, 24, 1, 210, 237, 24, 1, 210, 240, 24, 1, - 210, 203, 24, 1, 210, 204, 24, 1, 210, 207, 24, 1, 254, 34, 24, 1, 254, - 28, 109, 254, 99, 232, 203, 78, 109, 254, 99, 223, 50, 78, 109, 254, 99, - 123, 78, 109, 254, 99, 113, 78, 109, 254, 99, 134, 78, 109, 254, 99, 244, - 11, 78, 109, 254, 99, 216, 14, 78, 109, 254, 99, 230, 224, 78, 109, 254, - 99, 251, 175, 78, 109, 254, 99, 244, 92, 78, 109, 254, 99, 221, 176, 78, - 109, 254, 99, 216, 169, 78, 109, 254, 99, 244, 4, 78, 109, 254, 99, 241, - 224, 78, 109, 254, 99, 245, 224, 78, 109, 254, 99, 231, 186, 78, 251, - 184, 1, 251, 125, 251, 184, 1, 210, 44, 251, 184, 1, 235, 108, 251, 184, - 1, 242, 113, 251, 184, 1, 245, 209, 251, 184, 1, 245, 135, 251, 184, 1, - 226, 183, 251, 184, 1, 226, 187, 251, 184, 1, 235, 179, 251, 184, 1, 254, - 101, 251, 184, 1, 235, 224, 251, 184, 1, 214, 168, 251, 184, 1, 236, 16, - 251, 184, 1, 229, 57, 251, 184, 1, 254, 195, 251, 184, 1, 253, 187, 251, - 184, 1, 254, 136, 251, 184, 1, 226, 204, 251, 184, 1, 226, 189, 251, 184, - 1, 235, 221, 251, 184, 40, 1, 226, 105, 251, 184, 40, 1, 217, 152, 251, - 184, 40, 1, 235, 23, 251, 184, 40, 1, 242, 60, 251, 184, 1, 242, 250, - 251, 184, 1, 232, 255, 251, 184, 1, 209, 250, 9, 218, 103, 217, 152, 9, - 218, 103, 212, 4, 9, 218, 103, 211, 158, 9, 218, 103, 251, 79, 9, 218, - 103, 217, 254, 9, 218, 103, 240, 158, 9, 218, 103, 240, 162, 9, 218, 103, - 240, 231, 9, 218, 103, 240, 159, 9, 218, 103, 217, 155, 9, 218, 103, 240, - 161, 9, 218, 103, 240, 157, 9, 218, 103, 240, 229, 9, 218, 103, 240, 160, - 9, 218, 103, 240, 156, 9, 218, 103, 230, 25, 9, 218, 103, 242, 60, 9, - 218, 103, 222, 91, 9, 218, 103, 226, 105, 9, 218, 103, 219, 21, 9, 218, - 103, 249, 60, 9, 218, 103, 240, 163, 9, 218, 103, 241, 190, 9, 218, 103, - 217, 164, 9, 218, 103, 217, 233, 9, 218, 103, 218, 168, 9, 218, 103, 220, - 110, 9, 218, 103, 225, 224, 9, 218, 103, 224, 98, 9, 218, 103, 216, 43, - 9, 218, 103, 217, 154, 9, 218, 103, 217, 244, 9, 218, 103, 240, 170, 9, - 218, 103, 240, 155, 9, 218, 103, 225, 149, 9, 218, 103, 224, 96, 56, 1, - 4, 233, 217, 56, 1, 4, 219, 191, 56, 1, 4, 218, 83, 56, 1, 4, 111, 56, 1, - 4, 227, 237, 56, 1, 4, 162, 56, 1, 4, 241, 180, 56, 1, 4, 240, 222, 56, - 1, 4, 241, 238, 56, 1, 4, 241, 68, 56, 1, 4, 230, 102, 56, 1, 4, 205, 56, - 1, 4, 223, 35, 56, 1, 4, 222, 140, 56, 1, 4, 223, 128, 56, 1, 4, 222, - 211, 88, 24, 234, 58, 88, 24, 228, 226, 88, 24, 216, 101, 88, 24, 223, - 26, 88, 24, 230, 217, 88, 24, 225, 95, 88, 24, 219, 148, 88, 24, 236, 56, - 88, 24, 250, 46, 88, 24, 250, 106, 88, 24, 234, 110, 88, 24, 216, 173, - 88, 24, 225, 131, 88, 24, 241, 172, 88, 24, 234, 59, 61, 88, 24, 228, - 227, 61, 88, 24, 216, 102, 61, 88, 24, 223, 27, 61, 88, 24, 230, 218, 61, - 88, 24, 225, 96, 61, 88, 24, 219, 149, 61, 88, 24, 236, 57, 61, 88, 24, - 250, 47, 61, 88, 24, 250, 107, 61, 88, 24, 234, 111, 61, 88, 24, 216, - 174, 61, 88, 24, 225, 132, 61, 88, 24, 241, 173, 61, 88, 24, 250, 47, 70, - 88, 234, 3, 135, 226, 217, 88, 234, 3, 135, 144, 240, 222, 88, 154, 110, - 88, 154, 105, 88, 154, 158, 88, 154, 161, 88, 154, 189, 88, 154, 194, 88, - 154, 198, 88, 154, 195, 88, 154, 200, 88, 154, 216, 247, 88, 154, 230, - 128, 88, 154, 244, 96, 88, 154, 212, 40, 88, 154, 211, 214, 88, 154, 231, - 39, 88, 154, 245, 223, 88, 154, 218, 37, 88, 154, 218, 132, 88, 154, 241, - 244, 88, 154, 219, 54, 88, 154, 229, 204, 88, 154, 219, 4, 88, 154, 244, - 102, 88, 154, 249, 200, 88, 154, 233, 125, 88, 154, 223, 71, 88, 154, - 251, 15, 88, 154, 218, 87, 88, 154, 218, 20, 88, 154, 245, 127, 88, 154, - 223, 63, 88, 154, 254, 150, 88, 154, 244, 128, 88, 154, 223, 61, 88, 154, - 220, 156, 88, 154, 223, 127, 37, 154, 224, 12, 37, 154, 234, 80, 37, 154, - 221, 198, 37, 154, 233, 255, 37, 54, 216, 248, 226, 197, 85, 218, 234, - 37, 54, 215, 74, 226, 197, 85, 218, 234, 37, 54, 216, 163, 226, 197, 85, - 218, 234, 37, 54, 244, 16, 226, 197, 85, 218, 234, 37, 54, 244, 115, 226, - 197, 85, 218, 234, 37, 54, 219, 112, 226, 197, 85, 218, 234, 37, 54, 220, - 117, 226, 197, 85, 218, 234, 37, 54, 245, 185, 226, 197, 85, 218, 234, - 225, 251, 50, 37, 54, 215, 74, 110, 37, 54, 215, 74, 105, 37, 54, 215, - 74, 158, 37, 54, 215, 74, 161, 37, 54, 215, 74, 189, 37, 54, 215, 74, - 194, 37, 54, 215, 74, 198, 37, 54, 215, 74, 195, 37, 54, 215, 74, 200, - 37, 54, 216, 162, 37, 54, 216, 163, 110, 37, 54, 216, 163, 105, 37, 54, - 216, 163, 158, 37, 54, 216, 163, 161, 37, 54, 216, 163, 189, 37, 24, 234, - 58, 37, 24, 228, 226, 37, 24, 216, 101, 37, 24, 223, 26, 37, 24, 230, - 217, 37, 24, 225, 95, 37, 24, 219, 148, 37, 24, 236, 56, 37, 24, 250, 46, - 37, 24, 250, 106, 37, 24, 234, 110, 37, 24, 216, 173, 37, 24, 225, 131, - 37, 24, 241, 172, 37, 24, 234, 59, 61, 37, 24, 228, 227, 61, 37, 24, 216, - 102, 61, 37, 24, 223, 27, 61, 37, 24, 230, 218, 61, 37, 24, 225, 96, 61, - 37, 24, 219, 149, 61, 37, 24, 236, 57, 61, 37, 24, 250, 47, 61, 37, 24, - 250, 107, 61, 37, 24, 234, 111, 61, 37, 24, 216, 174, 61, 37, 24, 225, - 132, 61, 37, 24, 241, 173, 61, 37, 234, 3, 135, 250, 148, 37, 234, 3, - 135, 235, 47, 37, 24, 236, 57, 70, 234, 3, 218, 159, 87, 37, 154, 110, - 37, 154, 105, 37, 154, 158, 37, 154, 161, 37, 154, 189, 37, 154, 194, 37, - 154, 198, 37, 154, 195, 37, 154, 200, 37, 154, 216, 247, 37, 154, 230, - 128, 37, 154, 244, 96, 37, 154, 212, 40, 37, 154, 211, 214, 37, 154, 231, - 39, 37, 154, 245, 223, 37, 154, 218, 37, 37, 154, 218, 132, 37, 154, 241, - 244, 37, 154, 219, 54, 37, 154, 229, 204, 37, 154, 219, 4, 37, 154, 244, - 102, 37, 154, 249, 200, 37, 154, 233, 125, 37, 154, 221, 174, 37, 154, - 231, 189, 37, 154, 244, 137, 37, 154, 218, 49, 37, 154, 245, 34, 37, 154, - 224, 187, 37, 154, 253, 196, 37, 154, 235, 159, 37, 154, 223, 61, 37, - 154, 249, 164, 37, 154, 249, 155, 37, 154, 241, 165, 37, 154, 250, 174, - 37, 154, 232, 110, 37, 154, 233, 46, 37, 154, 222, 251, 37, 154, 231, 83, - 37, 154, 223, 87, 37, 154, 218, 87, 37, 154, 218, 20, 37, 154, 245, 127, - 37, 154, 223, 63, 37, 154, 254, 150, 37, 154, 228, 212, 37, 54, 216, 163, - 194, 37, 54, 216, 163, 198, 37, 54, 216, 163, 195, 37, 54, 216, 163, 200, - 37, 54, 244, 15, 37, 54, 244, 16, 110, 37, 54, 244, 16, 105, 37, 54, 244, - 16, 158, 37, 54, 244, 16, 161, 37, 54, 244, 16, 189, 37, 54, 244, 16, - 194, 37, 54, 244, 16, 198, 37, 54, 244, 16, 195, 37, 54, 244, 16, 200, - 37, 54, 244, 114, 109, 217, 3, 16, 31, 235, 133, 109, 217, 3, 16, 31, - 244, 148, 109, 217, 3, 16, 31, 231, 160, 109, 217, 3, 16, 31, 254, 47, - 109, 217, 3, 16, 31, 231, 132, 109, 217, 3, 16, 31, 235, 45, 109, 217, 3, - 16, 31, 235, 46, 109, 217, 3, 16, 31, 253, 188, 109, 217, 3, 16, 31, 220, - 136, 109, 217, 3, 16, 31, 226, 239, 109, 217, 3, 16, 31, 228, 40, 109, - 217, 3, 16, 31, 248, 85, 42, 241, 190, 42, 245, 88, 42, 245, 43, 232, - 219, 232, 240, 50, 37, 56, 61, 37, 56, 73, 37, 56, 70, 37, 56, 75, 37, - 56, 76, 37, 56, 176, 37, 56, 234, 92, 37, 56, 233, 217, 37, 56, 234, 182, - 37, 56, 234, 28, 37, 56, 206, 37, 56, 219, 191, 37, 56, 218, 83, 37, 56, - 221, 181, 37, 56, 219, 58, 37, 56, 217, 105, 37, 56, 216, 117, 37, 56, - 215, 118, 37, 56, 217, 22, 37, 56, 111, 37, 56, 197, 37, 56, 228, 233, - 37, 56, 227, 237, 37, 56, 229, 107, 37, 56, 228, 74, 37, 56, 162, 37, 56, - 241, 180, 37, 56, 240, 222, 37, 56, 241, 238, 37, 56, 241, 68, 37, 56, - 184, 37, 56, 230, 230, 37, 56, 230, 102, 37, 56, 231, 91, 37, 56, 230, - 161, 37, 56, 191, 37, 56, 210, 212, 37, 56, 210, 244, 37, 56, 205, 37, - 56, 223, 35, 37, 56, 222, 140, 37, 56, 223, 128, 37, 56, 222, 211, 37, - 56, 212, 65, 37, 56, 211, 250, 37, 56, 212, 22, 37, 56, 211, 227, 42, - 254, 71, 42, 253, 239, 42, 254, 95, 42, 255, 31, 42, 235, 226, 42, 235, - 196, 42, 214, 166, 42, 245, 66, 42, 245, 206, 42, 226, 186, 42, 226, 180, - 42, 234, 245, 42, 234, 214, 42, 234, 211, 42, 243, 92, 42, 243, 101, 42, - 242, 204, 42, 242, 200, 42, 233, 150, 42, 242, 193, 42, 234, 72, 42, 234, - 71, 42, 234, 70, 42, 234, 69, 42, 242, 86, 42, 242, 85, 42, 233, 193, 42, - 233, 195, 42, 234, 178, 42, 234, 1, 42, 234, 8, 42, 222, 16, 42, 221, - 237, 42, 219, 129, 42, 220, 141, 42, 220, 140, 42, 248, 218, 42, 248, 36, - 42, 247, 121, 42, 216, 32, 42, 229, 200, 42, 228, 41, 42, 242, 32, 42, - 226, 84, 42, 226, 83, 42, 252, 188, 42, 225, 105, 42, 225, 69, 42, 225, - 70, 42, 251, 234, 42, 240, 221, 42, 240, 217, 42, 251, 91, 42, 240, 204, - 42, 241, 215, 42, 225, 159, 42, 225, 194, 42, 241, 198, 42, 225, 191, 42, - 225, 207, 42, 252, 61, 42, 225, 6, 42, 251, 180, 42, 241, 56, 42, 224, - 250, 42, 241, 48, 42, 241, 50, 42, 231, 201, 42, 231, 197, 42, 231, 206, - 42, 231, 150, 42, 231, 175, 42, 230, 197, 42, 230, 176, 42, 230, 175, 42, - 231, 74, 42, 231, 71, 42, 231, 75, 42, 211, 102, 42, 211, 100, 42, 210, - 201, 42, 222, 226, 42, 222, 230, 42, 222, 117, 42, 222, 111, 42, 223, 85, - 42, 223, 82, 42, 212, 38, 109, 217, 3, 16, 31, 240, 239, 210, 86, 109, - 217, 3, 16, 31, 240, 239, 110, 109, 217, 3, 16, 31, 240, 239, 105, 109, - 217, 3, 16, 31, 240, 239, 158, 109, 217, 3, 16, 31, 240, 239, 161, 109, - 217, 3, 16, 31, 240, 239, 189, 109, 217, 3, 16, 31, 240, 239, 194, 109, - 217, 3, 16, 31, 240, 239, 198, 109, 217, 3, 16, 31, 240, 239, 195, 109, - 217, 3, 16, 31, 240, 239, 200, 109, 217, 3, 16, 31, 240, 239, 216, 247, - 109, 217, 3, 16, 31, 240, 239, 245, 167, 109, 217, 3, 16, 31, 240, 239, - 215, 76, 109, 217, 3, 16, 31, 240, 239, 216, 164, 109, 217, 3, 16, 31, - 240, 239, 244, 5, 109, 217, 3, 16, 31, 240, 239, 244, 118, 109, 217, 3, - 16, 31, 240, 239, 219, 119, 109, 217, 3, 16, 31, 240, 239, 220, 119, 109, - 217, 3, 16, 31, 240, 239, 245, 190, 109, 217, 3, 16, 31, 240, 239, 228, - 197, 109, 217, 3, 16, 31, 240, 239, 215, 73, 109, 217, 3, 16, 31, 240, - 239, 215, 67, 109, 217, 3, 16, 31, 240, 239, 215, 63, 109, 217, 3, 16, - 31, 240, 239, 215, 64, 109, 217, 3, 16, 31, 240, 239, 215, 69, 42, 240, - 230, 42, 248, 221, 42, 253, 192, 42, 130, 42, 226, 125, 42, 225, 225, 42, - 247, 147, 42, 247, 148, 218, 233, 42, 247, 148, 249, 108, 42, 235, 156, - 42, 245, 91, 229, 205, 241, 216, 42, 245, 91, 229, 205, 217, 174, 42, - 245, 91, 229, 205, 217, 74, 42, 245, 91, 229, 205, 231, 70, 42, 249, 157, - 42, 226, 90, 254, 125, 42, 197, 42, 230, 103, 61, 42, 184, 42, 176, 42, - 234, 185, 42, 231, 129, 42, 243, 80, 42, 251, 18, 42, 234, 184, 42, 225, - 150, 42, 229, 81, 42, 230, 103, 245, 6, 42, 230, 103, 243, 202, 42, 231, - 15, 42, 234, 134, 42, 240, 163, 42, 234, 94, 42, 230, 232, 42, 242, 216, - 42, 216, 119, 42, 230, 103, 156, 42, 230, 169, 42, 247, 157, 42, 234, 40, - 42, 244, 45, 42, 228, 112, 42, 230, 103, 193, 42, 230, 166, 42, 249, 239, - 42, 234, 34, 42, 230, 167, 218, 233, 42, 249, 240, 218, 233, 42, 232, 50, - 218, 233, 42, 234, 35, 218, 233, 42, 230, 167, 249, 108, 42, 249, 240, - 249, 108, 42, 232, 50, 249, 108, 42, 234, 35, 249, 108, 42, 232, 50, 117, - 222, 91, 42, 232, 50, 117, 222, 92, 218, 233, 42, 190, 42, 233, 251, 42, - 230, 105, 42, 242, 151, 42, 223, 176, 42, 223, 177, 117, 222, 91, 42, - 223, 177, 117, 222, 92, 218, 233, 42, 224, 162, 42, 228, 13, 42, 230, - 103, 222, 91, 42, 230, 104, 42, 224, 116, 42, 227, 176, 42, 230, 103, - 214, 105, 42, 230, 49, 42, 233, 185, 42, 230, 50, 231, 74, 42, 224, 115, - 42, 227, 175, 42, 230, 103, 212, 98, 42, 230, 43, 42, 233, 183, 42, 230, - 44, 231, 74, 42, 235, 24, 226, 220, 42, 232, 50, 226, 220, 42, 254, 136, - 42, 251, 160, 42, 250, 214, 42, 250, 191, 42, 251, 67, 117, 234, 134, 42, - 249, 238, 42, 248, 142, 42, 242, 72, 42, 162, 42, 240, 231, 42, 235, 255, - 42, 234, 47, 42, 234, 35, 250, 250, 42, 233, 219, 42, 232, 159, 42, 232, - 158, 42, 232, 147, 42, 232, 63, 42, 231, 130, 219, 79, 42, 230, 196, 42, - 230, 152, 42, 225, 148, 42, 225, 19, 42, 224, 219, 42, 224, 217, 42, 218, - 227, 42, 218, 2, 42, 212, 24, 42, 214, 106, 117, 193, 42, 115, 117, 193, - 109, 217, 3, 16, 31, 248, 146, 110, 109, 217, 3, 16, 31, 248, 146, 105, - 109, 217, 3, 16, 31, 248, 146, 158, 109, 217, 3, 16, 31, 248, 146, 161, - 109, 217, 3, 16, 31, 248, 146, 189, 109, 217, 3, 16, 31, 248, 146, 194, - 109, 217, 3, 16, 31, 248, 146, 198, 109, 217, 3, 16, 31, 248, 146, 195, - 109, 217, 3, 16, 31, 248, 146, 200, 109, 217, 3, 16, 31, 248, 146, 216, - 247, 109, 217, 3, 16, 31, 248, 146, 245, 167, 109, 217, 3, 16, 31, 248, - 146, 215, 76, 109, 217, 3, 16, 31, 248, 146, 216, 164, 109, 217, 3, 16, - 31, 248, 146, 244, 5, 109, 217, 3, 16, 31, 248, 146, 244, 118, 109, 217, - 3, 16, 31, 248, 146, 219, 119, 109, 217, 3, 16, 31, 248, 146, 220, 119, - 109, 217, 3, 16, 31, 248, 146, 245, 190, 109, 217, 3, 16, 31, 248, 146, - 228, 197, 109, 217, 3, 16, 31, 248, 146, 215, 73, 109, 217, 3, 16, 31, - 248, 146, 215, 67, 109, 217, 3, 16, 31, 248, 146, 215, 63, 109, 217, 3, - 16, 31, 248, 146, 215, 64, 109, 217, 3, 16, 31, 248, 146, 215, 69, 109, - 217, 3, 16, 31, 248, 146, 215, 70, 109, 217, 3, 16, 31, 248, 146, 215, - 65, 109, 217, 3, 16, 31, 248, 146, 215, 66, 109, 217, 3, 16, 31, 248, - 146, 215, 72, 109, 217, 3, 16, 31, 248, 146, 215, 68, 109, 217, 3, 16, - 31, 248, 146, 216, 162, 109, 217, 3, 16, 31, 248, 146, 216, 161, 42, 243, - 118, 241, 192, 31, 216, 196, 249, 140, 241, 223, 241, 192, 31, 216, 196, - 223, 122, 245, 223, 241, 192, 31, 247, 231, 253, 207, 216, 196, 252, 56, - 241, 192, 31, 210, 223, 244, 38, 241, 192, 31, 212, 59, 241, 192, 31, - 249, 203, 241, 192, 31, 216, 196, 254, 3, 241, 192, 31, 241, 60, 216, 38, - 241, 192, 31, 4, 217, 61, 241, 192, 31, 215, 237, 241, 192, 31, 225, 219, - 241, 192, 31, 218, 158, 241, 192, 31, 244, 139, 241, 192, 31, 242, 132, - 224, 240, 241, 192, 31, 230, 155, 241, 192, 31, 245, 126, 241, 192, 31, - 244, 39, 241, 192, 31, 211, 207, 226, 197, 216, 196, 248, 86, 241, 192, - 31, 254, 51, 241, 192, 31, 249, 185, 241, 192, 31, 251, 227, 216, 138, - 241, 192, 31, 242, 149, 241, 192, 31, 218, 245, 254, 70, 241, 192, 31, - 223, 53, 241, 192, 31, 235, 220, 241, 192, 31, 242, 132, 217, 61, 241, - 192, 31, 230, 111, 249, 159, 241, 192, 31, 242, 132, 224, 197, 241, 192, - 31, 216, 196, 255, 18, 212, 40, 241, 192, 31, 216, 196, 250, 8, 244, 96, - 241, 192, 31, 235, 233, 241, 192, 31, 246, 57, 241, 192, 31, 223, 56, - 241, 192, 31, 242, 132, 224, 224, 241, 192, 31, 224, 177, 241, 192, 31, - 248, 161, 64, 216, 196, 232, 230, 241, 192, 31, 216, 196, 244, 174, 241, - 192, 31, 226, 163, 241, 192, 31, 226, 244, 241, 192, 31, 248, 59, 241, - 192, 31, 248, 79, 241, 192, 31, 235, 247, 241, 192, 31, 251, 149, 241, - 192, 31, 249, 221, 216, 42, 231, 76, 241, 192, 31, 243, 87, 216, 38, 241, - 192, 31, 224, 125, 214, 154, 241, 192, 31, 226, 162, 241, 192, 31, 216, - 196, 212, 13, 241, 192, 31, 223, 45, 241, 192, 31, 216, 196, 250, 220, - 241, 192, 31, 216, 196, 253, 255, 216, 133, 241, 192, 31, 216, 196, 234, - 179, 218, 134, 230, 115, 241, 192, 31, 248, 32, 241, 192, 31, 216, 196, - 231, 152, 231, 202, 241, 192, 31, 255, 19, 241, 192, 31, 216, 196, 212, - 54, 241, 192, 31, 216, 196, 243, 47, 211, 239, 241, 192, 31, 216, 196, - 235, 52, 233, 107, 241, 192, 31, 247, 184, 241, 192, 31, 232, 220, 241, - 192, 31, 235, 223, 215, 187, 241, 192, 31, 4, 224, 197, 241, 192, 31, - 254, 217, 249, 212, 241, 192, 31, 252, 59, 249, 212, 8, 3, 235, 160, 8, - 3, 235, 153, 8, 3, 73, 8, 3, 235, 182, 8, 3, 236, 58, 8, 3, 236, 41, 8, - 3, 236, 60, 8, 3, 236, 59, 8, 3, 253, 206, 8, 3, 253, 169, 8, 3, 61, 8, - 3, 254, 72, 8, 3, 214, 164, 8, 3, 214, 167, 8, 3, 214, 165, 8, 3, 226, - 140, 8, 3, 226, 114, 8, 3, 76, 8, 3, 226, 175, 8, 3, 245, 35, 8, 3, 75, - 8, 3, 211, 195, 8, 3, 251, 228, 8, 3, 251, 225, 8, 3, 252, 6, 8, 3, 251, - 238, 8, 3, 251, 251, 8, 3, 251, 250, 8, 3, 251, 253, 8, 3, 251, 252, 8, - 3, 252, 121, 8, 3, 252, 113, 8, 3, 252, 191, 8, 3, 252, 142, 8, 3, 251, - 101, 8, 3, 251, 105, 8, 3, 251, 102, 8, 3, 251, 179, 8, 3, 251, 163, 8, - 3, 251, 205, 8, 3, 251, 185, 8, 3, 252, 21, 8, 3, 252, 75, 8, 3, 252, 33, - 8, 3, 251, 87, 8, 3, 251, 84, 8, 3, 251, 125, 8, 3, 251, 100, 8, 3, 251, - 94, 8, 3, 251, 98, 8, 3, 251, 72, 8, 3, 251, 70, 8, 3, 251, 77, 8, 3, - 251, 75, 8, 3, 251, 73, 8, 3, 251, 74, 8, 3, 225, 49, 8, 3, 225, 45, 8, - 3, 225, 108, 8, 3, 225, 59, 8, 3, 225, 75, 8, 3, 225, 102, 8, 3, 225, 98, - 8, 3, 225, 240, 8, 3, 225, 230, 8, 3, 190, 8, 3, 226, 21, 8, 3, 224, 135, - 8, 3, 224, 137, 8, 3, 224, 136, 8, 3, 224, 233, 8, 3, 224, 222, 8, 3, - 225, 16, 8, 3, 224, 245, 8, 3, 224, 121, 8, 3, 224, 117, 8, 3, 224, 150, - 8, 3, 224, 134, 8, 3, 224, 126, 8, 3, 224, 132, 8, 3, 224, 100, 8, 3, - 224, 99, 8, 3, 224, 104, 8, 3, 224, 103, 8, 3, 224, 101, 8, 3, 224, 102, - 8, 3, 252, 96, 8, 3, 252, 95, 8, 3, 252, 102, 8, 3, 252, 97, 8, 3, 252, - 99, 8, 3, 252, 98, 8, 3, 252, 101, 8, 3, 252, 100, 8, 3, 252, 108, 8, 3, - 252, 107, 8, 3, 252, 111, 8, 3, 252, 109, 8, 3, 252, 87, 8, 3, 252, 89, - 8, 3, 252, 88, 8, 3, 252, 92, 8, 3, 252, 91, 8, 3, 252, 94, 8, 3, 252, - 93, 8, 3, 252, 103, 8, 3, 252, 106, 8, 3, 252, 104, 8, 3, 252, 83, 8, 3, - 252, 82, 8, 3, 252, 90, 8, 3, 252, 86, 8, 3, 252, 84, 8, 3, 252, 85, 8, - 3, 252, 79, 8, 3, 252, 78, 8, 3, 252, 81, 8, 3, 252, 80, 8, 3, 229, 169, - 8, 3, 229, 168, 8, 3, 229, 174, 8, 3, 229, 170, 8, 3, 229, 171, 8, 3, - 229, 173, 8, 3, 229, 172, 8, 3, 229, 177, 8, 3, 229, 176, 8, 3, 229, 179, - 8, 3, 229, 178, 8, 3, 229, 165, 8, 3, 229, 164, 8, 3, 229, 167, 8, 3, - 229, 166, 8, 3, 229, 158, 8, 3, 229, 157, 8, 3, 229, 162, 8, 3, 229, 161, - 8, 3, 229, 159, 8, 3, 229, 160, 8, 3, 229, 152, 8, 3, 229, 151, 8, 3, - 229, 156, 8, 3, 229, 155, 8, 3, 229, 153, 8, 3, 229, 154, 8, 3, 241, 110, - 8, 3, 241, 109, 8, 3, 241, 115, 8, 3, 241, 111, 8, 3, 241, 112, 8, 3, - 241, 114, 8, 3, 241, 113, 8, 3, 241, 118, 8, 3, 241, 117, 8, 3, 241, 120, - 8, 3, 241, 119, 8, 3, 241, 101, 8, 3, 241, 103, 8, 3, 241, 102, 8, 3, - 241, 106, 8, 3, 241, 105, 8, 3, 241, 108, 8, 3, 241, 107, 8, 3, 241, 97, - 8, 3, 241, 96, 8, 3, 241, 104, 8, 3, 241, 100, 8, 3, 241, 98, 8, 3, 241, - 99, 8, 3, 241, 91, 8, 3, 241, 95, 8, 3, 241, 94, 8, 3, 241, 92, 8, 3, - 241, 93, 8, 3, 230, 172, 8, 3, 230, 171, 8, 3, 230, 230, 8, 3, 230, 178, - 8, 3, 230, 203, 8, 3, 230, 221, 8, 3, 230, 219, 8, 3, 231, 139, 8, 3, - 231, 134, 8, 3, 184, 8, 3, 231, 172, 8, 3, 230, 74, 8, 3, 230, 73, 8, 3, - 230, 77, 8, 3, 230, 75, 8, 3, 230, 121, 8, 3, 230, 107, 8, 3, 230, 161, - 8, 3, 230, 126, 8, 3, 231, 26, 8, 3, 231, 91, 8, 3, 230, 55, 8, 3, 230, - 51, 8, 3, 230, 102, 8, 3, 230, 70, 8, 3, 230, 63, 8, 3, 230, 68, 8, 3, - 230, 28, 8, 3, 230, 27, 8, 3, 230, 33, 8, 3, 230, 30, 8, 3, 244, 83, 8, - 3, 244, 78, 8, 3, 244, 121, 8, 3, 244, 98, 8, 3, 244, 167, 8, 3, 244, - 158, 8, 3, 244, 196, 8, 3, 244, 170, 8, 3, 244, 3, 8, 3, 244, 43, 8, 3, - 244, 27, 8, 3, 243, 218, 8, 3, 243, 217, 8, 3, 243, 234, 8, 3, 243, 223, - 8, 3, 243, 221, 8, 3, 243, 222, 8, 3, 243, 205, 8, 3, 243, 204, 8, 3, - 243, 208, 8, 3, 243, 206, 8, 3, 213, 144, 8, 3, 213, 139, 8, 3, 213, 176, - 8, 3, 213, 153, 8, 3, 213, 166, 8, 3, 213, 163, 8, 3, 213, 168, 8, 3, - 213, 167, 8, 3, 214, 7, 8, 3, 214, 2, 8, 3, 214, 27, 8, 3, 214, 18, 8, 3, - 213, 125, 8, 3, 213, 121, 8, 3, 213, 138, 8, 3, 213, 126, 8, 3, 213, 178, - 8, 3, 213, 244, 8, 3, 212, 110, 8, 3, 212, 108, 8, 3, 212, 116, 8, 3, - 212, 113, 8, 3, 212, 111, 8, 3, 212, 112, 8, 3, 212, 102, 8, 3, 212, 101, - 8, 3, 212, 106, 8, 3, 212, 105, 8, 3, 212, 103, 8, 3, 212, 104, 8, 3, - 247, 178, 8, 3, 247, 166, 8, 3, 248, 3, 8, 3, 247, 203, 8, 3, 247, 236, - 8, 3, 247, 240, 8, 3, 247, 239, 8, 3, 248, 152, 8, 3, 248, 147, 8, 3, - 248, 221, 8, 3, 248, 172, 8, 3, 246, 62, 8, 3, 246, 63, 8, 3, 247, 120, - 8, 3, 246, 102, 8, 3, 247, 145, 8, 3, 247, 122, 8, 3, 248, 30, 8, 3, 248, - 90, 8, 3, 248, 45, 8, 3, 246, 53, 8, 3, 246, 51, 8, 3, 246, 78, 8, 3, - 246, 61, 8, 3, 246, 56, 8, 3, 246, 59, 8, 3, 216, 67, 8, 3, 216, 61, 8, - 3, 216, 117, 8, 3, 216, 76, 8, 3, 216, 109, 8, 3, 216, 111, 8, 3, 216, - 110, 8, 3, 217, 46, 8, 3, 217, 33, 8, 3, 217, 105, 8, 3, 217, 54, 8, 3, - 215, 102, 8, 3, 215, 101, 8, 3, 215, 104, 8, 3, 215, 103, 8, 3, 216, 5, - 8, 3, 216, 1, 8, 3, 111, 8, 3, 216, 13, 8, 3, 216, 213, 8, 3, 217, 22, 8, - 3, 216, 237, 8, 3, 215, 88, 8, 3, 215, 83, 8, 3, 215, 118, 8, 3, 215, - 100, 8, 3, 215, 89, 8, 3, 215, 98, 8, 3, 248, 107, 8, 3, 248, 106, 8, 3, - 248, 112, 8, 3, 248, 108, 8, 3, 248, 109, 8, 3, 248, 111, 8, 3, 248, 110, - 8, 3, 248, 128, 8, 3, 248, 127, 8, 3, 248, 135, 8, 3, 248, 129, 8, 3, - 248, 97, 8, 3, 248, 99, 8, 3, 248, 98, 8, 3, 248, 102, 8, 3, 248, 101, 8, - 3, 248, 105, 8, 3, 248, 103, 8, 3, 248, 120, 8, 3, 248, 123, 8, 3, 248, - 121, 8, 3, 248, 93, 8, 3, 248, 92, 8, 3, 248, 100, 8, 3, 248, 96, 8, 3, - 248, 94, 8, 3, 248, 95, 8, 3, 229, 126, 8, 3, 229, 125, 8, 3, 229, 133, - 8, 3, 229, 128, 8, 3, 229, 129, 8, 3, 229, 130, 8, 3, 229, 142, 8, 3, - 229, 141, 8, 3, 229, 148, 8, 3, 229, 143, 8, 3, 229, 118, 8, 3, 229, 117, - 8, 3, 229, 124, 8, 3, 229, 119, 8, 3, 229, 134, 8, 3, 229, 140, 8, 3, - 229, 138, 8, 3, 229, 110, 8, 3, 229, 109, 8, 3, 229, 115, 8, 3, 229, 113, - 8, 3, 229, 111, 8, 3, 229, 112, 8, 3, 241, 77, 8, 3, 241, 76, 8, 3, 241, - 83, 8, 3, 241, 78, 8, 3, 241, 80, 8, 3, 241, 79, 8, 3, 241, 82, 8, 3, - 241, 81, 8, 3, 241, 88, 8, 3, 241, 87, 8, 3, 241, 90, 8, 3, 241, 89, 8, - 3, 241, 71, 8, 3, 241, 72, 8, 3, 241, 74, 8, 3, 241, 73, 8, 3, 241, 75, - 8, 3, 241, 84, 8, 3, 241, 86, 8, 3, 241, 85, 8, 3, 241, 70, 8, 3, 228, - 189, 8, 3, 228, 187, 8, 3, 228, 233, 8, 3, 228, 192, 8, 3, 228, 215, 8, - 3, 228, 229, 8, 3, 228, 228, 8, 3, 229, 183, 8, 3, 197, 8, 3, 229, 197, - 8, 3, 227, 186, 8, 3, 227, 188, 8, 3, 227, 187, 8, 3, 228, 51, 8, 3, 228, - 38, 8, 3, 228, 74, 8, 3, 228, 60, 8, 3, 229, 83, 8, 3, 229, 107, 8, 3, - 229, 94, 8, 3, 227, 181, 8, 3, 227, 177, 8, 3, 227, 237, 8, 3, 227, 185, - 8, 3, 227, 183, 8, 3, 227, 184, 8, 3, 241, 141, 8, 3, 241, 140, 8, 3, - 241, 146, 8, 3, 241, 142, 8, 3, 241, 143, 8, 3, 241, 145, 8, 3, 241, 144, - 8, 3, 241, 151, 8, 3, 241, 150, 8, 3, 241, 153, 8, 3, 241, 152, 8, 3, - 241, 133, 8, 3, 241, 135, 8, 3, 241, 134, 8, 3, 241, 137, 8, 3, 241, 139, - 8, 3, 241, 138, 8, 3, 241, 147, 8, 3, 241, 149, 8, 3, 241, 148, 8, 3, - 241, 129, 8, 3, 241, 128, 8, 3, 241, 136, 8, 3, 241, 132, 8, 3, 241, 130, - 8, 3, 241, 131, 8, 3, 241, 123, 8, 3, 241, 122, 8, 3, 241, 127, 8, 3, - 241, 126, 8, 3, 241, 124, 8, 3, 241, 125, 8, 3, 232, 195, 8, 3, 232, 189, - 8, 3, 232, 241, 8, 3, 232, 202, 8, 3, 232, 233, 8, 3, 232, 232, 8, 3, - 232, 236, 8, 3, 232, 234, 8, 3, 233, 79, 8, 3, 233, 69, 8, 3, 233, 135, - 8, 3, 233, 88, 8, 3, 232, 79, 8, 3, 232, 78, 8, 3, 232, 81, 8, 3, 232, - 80, 8, 3, 232, 116, 8, 3, 232, 106, 8, 3, 232, 156, 8, 3, 232, 120, 8, 3, - 233, 2, 8, 3, 233, 58, 8, 3, 233, 17, 8, 3, 232, 74, 8, 3, 232, 72, 8, 3, - 232, 98, 8, 3, 232, 77, 8, 3, 232, 75, 8, 3, 232, 76, 8, 3, 232, 54, 8, - 3, 232, 53, 8, 3, 232, 62, 8, 3, 232, 57, 8, 3, 232, 55, 8, 3, 232, 56, - 8, 3, 242, 189, 8, 3, 242, 188, 8, 3, 242, 214, 8, 3, 242, 199, 8, 3, - 242, 206, 8, 3, 242, 205, 8, 3, 242, 208, 8, 3, 242, 207, 8, 3, 243, 89, - 8, 3, 243, 84, 8, 3, 243, 135, 8, 3, 243, 99, 8, 3, 242, 91, 8, 3, 242, - 90, 8, 3, 242, 93, 8, 3, 242, 92, 8, 3, 242, 154, 8, 3, 242, 152, 8, 3, - 242, 174, 8, 3, 242, 162, 8, 3, 243, 33, 8, 3, 243, 31, 8, 3, 243, 62, 8, - 3, 243, 44, 8, 3, 242, 81, 8, 3, 242, 80, 8, 3, 242, 113, 8, 3, 242, 89, - 8, 3, 242, 82, 8, 3, 242, 88, 8, 3, 234, 61, 8, 3, 234, 60, 8, 3, 234, - 92, 8, 3, 234, 75, 8, 3, 234, 85, 8, 3, 234, 88, 8, 3, 234, 86, 8, 3, - 234, 202, 8, 3, 234, 190, 8, 3, 176, 8, 3, 234, 228, 8, 3, 233, 200, 8, - 3, 233, 205, 8, 3, 233, 202, 8, 3, 234, 0, 8, 3, 233, 252, 8, 3, 234, 28, - 8, 3, 234, 7, 8, 3, 234, 156, 8, 3, 234, 140, 8, 3, 234, 182, 8, 3, 234, - 159, 8, 3, 233, 189, 8, 3, 233, 186, 8, 3, 233, 217, 8, 3, 233, 199, 8, - 3, 233, 192, 8, 3, 233, 196, 8, 3, 243, 15, 8, 3, 243, 14, 8, 3, 243, 19, - 8, 3, 243, 16, 8, 3, 243, 18, 8, 3, 243, 17, 8, 3, 243, 26, 8, 3, 243, - 25, 8, 3, 243, 29, 8, 3, 243, 27, 8, 3, 243, 6, 8, 3, 243, 5, 8, 3, 243, - 8, 8, 3, 243, 7, 8, 3, 243, 11, 8, 3, 243, 10, 8, 3, 243, 13, 8, 3, 243, - 12, 8, 3, 243, 21, 8, 3, 243, 20, 8, 3, 243, 24, 8, 3, 243, 22, 8, 3, - 243, 1, 8, 3, 243, 0, 8, 3, 243, 9, 8, 3, 243, 4, 8, 3, 243, 2, 8, 3, - 243, 3, 8, 3, 230, 249, 8, 3, 230, 250, 8, 3, 231, 12, 8, 3, 231, 11, 8, - 3, 231, 14, 8, 3, 231, 13, 8, 3, 230, 240, 8, 3, 230, 242, 8, 3, 230, - 241, 8, 3, 230, 245, 8, 3, 230, 244, 8, 3, 230, 247, 8, 3, 230, 246, 8, - 3, 230, 251, 8, 3, 230, 253, 8, 3, 230, 252, 8, 3, 230, 236, 8, 3, 230, - 235, 8, 3, 230, 243, 8, 3, 230, 239, 8, 3, 230, 237, 8, 3, 230, 238, 8, - 3, 240, 180, 8, 3, 240, 179, 8, 3, 240, 186, 8, 3, 240, 181, 8, 3, 240, - 183, 8, 3, 240, 182, 8, 3, 240, 185, 8, 3, 240, 184, 8, 3, 240, 191, 8, - 3, 240, 190, 8, 3, 240, 193, 8, 3, 240, 192, 8, 3, 240, 172, 8, 3, 240, - 171, 8, 3, 240, 174, 8, 3, 240, 173, 8, 3, 240, 176, 8, 3, 240, 175, 8, - 3, 240, 178, 8, 3, 240, 177, 8, 3, 240, 187, 8, 3, 240, 189, 8, 3, 240, - 188, 8, 3, 229, 24, 8, 3, 229, 26, 8, 3, 229, 25, 8, 3, 229, 67, 8, 3, - 229, 65, 8, 3, 229, 77, 8, 3, 229, 70, 8, 3, 228, 243, 8, 3, 228, 242, 8, - 3, 228, 244, 8, 3, 228, 252, 8, 3, 228, 249, 8, 3, 229, 4, 8, 3, 228, - 254, 8, 3, 229, 58, 8, 3, 229, 64, 8, 3, 229, 60, 8, 3, 241, 156, 8, 3, - 241, 166, 8, 3, 241, 175, 8, 3, 241, 251, 8, 3, 241, 243, 8, 3, 162, 8, - 3, 242, 6, 8, 3, 240, 206, 8, 3, 240, 205, 8, 3, 240, 208, 8, 3, 240, - 207, 8, 3, 240, 242, 8, 3, 240, 233, 8, 3, 241, 68, 8, 3, 241, 47, 8, 3, - 241, 194, 8, 3, 241, 238, 8, 3, 241, 206, 8, 3, 212, 43, 8, 3, 212, 28, - 8, 3, 212, 65, 8, 3, 212, 51, 8, 3, 211, 185, 8, 3, 211, 187, 8, 3, 211, - 186, 8, 3, 211, 203, 8, 3, 211, 227, 8, 3, 211, 210, 8, 3, 212, 5, 8, 3, - 212, 22, 8, 3, 212, 10, 8, 3, 210, 30, 8, 3, 210, 29, 8, 3, 210, 44, 8, - 3, 210, 32, 8, 3, 210, 37, 8, 3, 210, 39, 8, 3, 210, 38, 8, 3, 210, 102, - 8, 3, 210, 99, 8, 3, 210, 116, 8, 3, 210, 105, 8, 3, 210, 6, 8, 3, 210, - 8, 8, 3, 210, 7, 8, 3, 210, 19, 8, 3, 210, 18, 8, 3, 210, 23, 8, 3, 210, - 20, 8, 3, 210, 84, 8, 3, 210, 94, 8, 3, 210, 88, 8, 3, 210, 2, 8, 3, 210, - 1, 8, 3, 210, 13, 8, 3, 210, 5, 8, 3, 210, 3, 8, 3, 210, 4, 8, 3, 209, - 245, 8, 3, 209, 244, 8, 3, 209, 250, 8, 3, 209, 248, 8, 3, 209, 246, 8, - 3, 209, 247, 8, 3, 250, 28, 8, 3, 250, 24, 8, 3, 250, 51, 8, 3, 250, 37, - 8, 3, 250, 48, 8, 3, 250, 42, 8, 3, 250, 50, 8, 3, 250, 49, 8, 3, 250, - 224, 8, 3, 250, 217, 8, 3, 251, 33, 8, 3, 250, 251, 8, 3, 249, 104, 8, 3, - 249, 106, 8, 3, 249, 105, 8, 3, 249, 153, 8, 3, 249, 144, 8, 3, 249, 238, - 8, 3, 249, 169, 8, 3, 250, 160, 8, 3, 250, 190, 8, 3, 250, 165, 8, 3, - 249, 84, 8, 3, 249, 82, 8, 3, 249, 112, 8, 3, 249, 102, 8, 3, 249, 89, 8, - 3, 249, 101, 8, 3, 249, 63, 8, 3, 249, 62, 8, 3, 249, 73, 8, 3, 249, 69, - 8, 3, 249, 64, 8, 3, 249, 66, 8, 3, 209, 228, 8, 3, 209, 227, 8, 3, 209, - 234, 8, 3, 209, 229, 8, 3, 209, 231, 8, 3, 209, 230, 8, 3, 209, 233, 8, - 3, 209, 232, 8, 3, 209, 240, 8, 3, 209, 239, 8, 3, 209, 243, 8, 3, 209, - 241, 8, 3, 209, 224, 8, 3, 209, 226, 8, 3, 209, 225, 8, 3, 209, 235, 8, - 3, 209, 238, 8, 3, 209, 236, 8, 3, 209, 217, 8, 3, 209, 221, 8, 3, 209, - 220, 8, 3, 209, 218, 8, 3, 209, 219, 8, 3, 209, 211, 8, 3, 209, 210, 8, - 3, 209, 216, 8, 3, 209, 214, 8, 3, 209, 212, 8, 3, 209, 213, 8, 3, 227, - 104, 8, 3, 227, 103, 8, 3, 227, 109, 8, 3, 227, 105, 8, 3, 227, 106, 8, - 3, 227, 108, 8, 3, 227, 107, 8, 3, 227, 114, 8, 3, 227, 113, 8, 3, 227, - 117, 8, 3, 227, 116, 8, 3, 227, 97, 8, 3, 227, 98, 8, 3, 227, 101, 8, 3, - 227, 102, 8, 3, 227, 110, 8, 3, 227, 112, 8, 3, 227, 92, 8, 3, 227, 100, - 8, 3, 227, 96, 8, 3, 227, 93, 8, 3, 227, 94, 8, 3, 227, 87, 8, 3, 227, - 86, 8, 3, 227, 91, 8, 3, 227, 90, 8, 3, 227, 88, 8, 3, 227, 89, 8, 3, - 219, 127, 8, 3, 194, 8, 3, 219, 191, 8, 3, 219, 130, 8, 3, 219, 183, 8, - 3, 219, 186, 8, 3, 219, 184, 8, 3, 221, 226, 8, 3, 221, 214, 8, 3, 206, - 8, 3, 221, 234, 8, 3, 218, 28, 8, 3, 218, 30, 8, 3, 218, 29, 8, 3, 219, - 34, 8, 3, 219, 23, 8, 3, 219, 58, 8, 3, 219, 38, 8, 3, 220, 114, 8, 3, - 221, 181, 8, 3, 220, 139, 8, 3, 218, 5, 8, 3, 218, 3, 8, 3, 218, 83, 8, - 3, 218, 27, 8, 3, 218, 9, 8, 3, 218, 17, 8, 3, 217, 166, 8, 3, 217, 165, - 8, 3, 217, 232, 8, 3, 217, 173, 8, 3, 217, 168, 8, 3, 217, 172, 8, 3, - 218, 186, 8, 3, 218, 185, 8, 3, 218, 192, 8, 3, 218, 187, 8, 3, 218, 189, - 8, 3, 218, 191, 8, 3, 218, 190, 8, 3, 218, 200, 8, 3, 218, 198, 8, 3, - 218, 223, 8, 3, 218, 201, 8, 3, 218, 181, 8, 3, 218, 180, 8, 3, 218, 184, - 8, 3, 218, 182, 8, 3, 218, 194, 8, 3, 218, 197, 8, 3, 218, 195, 8, 3, - 218, 177, 8, 3, 218, 175, 8, 3, 218, 179, 8, 3, 218, 178, 8, 3, 218, 170, - 8, 3, 218, 169, 8, 3, 218, 174, 8, 3, 218, 173, 8, 3, 218, 171, 8, 3, - 218, 172, 8, 3, 210, 77, 8, 3, 210, 76, 8, 3, 210, 82, 8, 3, 210, 79, 8, - 3, 210, 59, 8, 3, 210, 61, 8, 3, 210, 60, 8, 3, 210, 64, 8, 3, 210, 63, - 8, 3, 210, 67, 8, 3, 210, 65, 8, 3, 210, 71, 8, 3, 210, 70, 8, 3, 210, - 74, 8, 3, 210, 72, 8, 3, 210, 55, 8, 3, 210, 54, 8, 3, 210, 62, 8, 3, - 210, 58, 8, 3, 210, 56, 8, 3, 210, 57, 8, 3, 210, 47, 8, 3, 210, 46, 8, - 3, 210, 51, 8, 3, 210, 50, 8, 3, 210, 48, 8, 3, 210, 49, 8, 3, 250, 136, - 8, 3, 250, 133, 8, 3, 250, 157, 8, 3, 250, 144, 8, 3, 250, 65, 8, 3, 250, - 64, 8, 3, 250, 67, 8, 3, 250, 66, 8, 3, 250, 79, 8, 3, 250, 78, 8, 3, - 250, 86, 8, 3, 250, 81, 8, 3, 250, 115, 8, 3, 250, 113, 8, 3, 250, 131, - 8, 3, 250, 121, 8, 3, 250, 59, 8, 3, 250, 69, 8, 3, 250, 63, 8, 3, 250, - 60, 8, 3, 250, 62, 8, 3, 250, 53, 8, 3, 250, 52, 8, 3, 250, 57, 8, 3, - 250, 56, 8, 3, 250, 54, 8, 3, 250, 55, 8, 3, 222, 175, 8, 3, 222, 179, 8, - 3, 222, 158, 8, 3, 222, 159, 8, 3, 222, 162, 8, 3, 222, 161, 8, 3, 222, - 165, 8, 3, 222, 163, 8, 3, 222, 169, 8, 3, 222, 168, 8, 3, 222, 174, 8, - 3, 222, 170, 8, 3, 222, 154, 8, 3, 222, 152, 8, 3, 222, 160, 8, 3, 222, - 157, 8, 3, 222, 155, 8, 3, 222, 156, 8, 3, 222, 147, 8, 3, 222, 146, 8, - 3, 222, 151, 8, 3, 222, 150, 8, 3, 222, 148, 8, 3, 222, 149, 8, 3, 228, - 34, 8, 3, 228, 33, 8, 3, 228, 36, 8, 3, 228, 35, 8, 3, 228, 26, 8, 3, - 228, 28, 8, 3, 228, 27, 8, 3, 228, 30, 8, 3, 228, 29, 8, 3, 228, 32, 8, - 3, 228, 31, 8, 3, 228, 21, 8, 3, 228, 20, 8, 3, 228, 25, 8, 3, 228, 24, - 8, 3, 228, 22, 8, 3, 228, 23, 8, 3, 228, 15, 8, 3, 228, 14, 8, 3, 228, - 19, 8, 3, 228, 18, 8, 3, 228, 16, 8, 3, 228, 17, 8, 3, 220, 72, 8, 3, - 220, 67, 8, 3, 220, 102, 8, 3, 220, 83, 8, 3, 219, 215, 8, 3, 219, 217, - 8, 3, 219, 216, 8, 3, 219, 236, 8, 3, 219, 233, 8, 3, 220, 7, 8, 3, 219, - 254, 8, 3, 220, 42, 8, 3, 220, 35, 8, 3, 220, 63, 8, 3, 220, 50, 8, 3, - 219, 211, 8, 3, 219, 209, 8, 3, 219, 225, 8, 3, 219, 214, 8, 3, 219, 212, - 8, 3, 219, 213, 8, 3, 219, 194, 8, 3, 219, 193, 8, 3, 219, 200, 8, 3, - 219, 197, 8, 3, 219, 195, 8, 3, 219, 196, 8, 3, 223, 141, 8, 3, 223, 135, - 8, 3, 205, 8, 3, 223, 147, 8, 3, 222, 120, 8, 3, 222, 122, 8, 3, 222, - 121, 8, 3, 222, 188, 8, 3, 222, 181, 8, 3, 222, 211, 8, 3, 222, 192, 8, - 3, 223, 43, 8, 3, 223, 128, 8, 3, 223, 81, 8, 3, 222, 113, 8, 3, 222, - 110, 8, 3, 222, 140, 8, 3, 222, 119, 8, 3, 222, 115, 8, 3, 222, 116, 8, - 3, 222, 95, 8, 3, 222, 94, 8, 3, 222, 100, 8, 3, 222, 98, 8, 3, 222, 96, - 8, 3, 222, 97, 8, 3, 235, 98, 8, 3, 235, 97, 8, 3, 235, 108, 8, 3, 235, - 99, 8, 3, 235, 104, 8, 3, 235, 103, 8, 3, 235, 106, 8, 3, 235, 105, 8, 3, - 235, 41, 8, 3, 235, 40, 8, 3, 235, 43, 8, 3, 235, 42, 8, 3, 235, 56, 8, - 3, 235, 54, 8, 3, 235, 68, 8, 3, 235, 58, 8, 3, 235, 34, 8, 3, 235, 32, - 8, 3, 235, 51, 8, 3, 235, 39, 8, 3, 235, 36, 8, 3, 235, 37, 8, 3, 235, - 26, 8, 3, 235, 25, 8, 3, 235, 30, 8, 3, 235, 29, 8, 3, 235, 27, 8, 3, - 235, 28, 8, 3, 224, 46, 8, 3, 224, 44, 8, 3, 224, 53, 8, 3, 224, 47, 8, - 3, 224, 50, 8, 3, 224, 49, 8, 3, 224, 52, 8, 3, 224, 51, 8, 3, 223, 255, - 8, 3, 223, 252, 8, 3, 224, 1, 8, 3, 224, 0, 8, 3, 224, 33, 8, 3, 224, 32, - 8, 3, 224, 42, 8, 3, 224, 36, 8, 3, 223, 247, 8, 3, 223, 243, 8, 3, 224, - 30, 8, 3, 223, 251, 8, 3, 223, 249, 8, 3, 223, 250, 8, 3, 223, 227, 8, 3, - 223, 225, 8, 3, 223, 237, 8, 3, 223, 230, 8, 3, 223, 228, 8, 3, 223, 229, - 8, 3, 235, 87, 8, 3, 235, 86, 8, 3, 235, 93, 8, 3, 235, 88, 8, 3, 235, - 90, 8, 3, 235, 89, 8, 3, 235, 92, 8, 3, 235, 91, 8, 3, 235, 78, 8, 3, - 235, 80, 8, 3, 235, 79, 8, 3, 235, 83, 8, 3, 235, 82, 8, 3, 235, 85, 8, - 3, 235, 84, 8, 3, 235, 74, 8, 3, 235, 73, 8, 3, 235, 81, 8, 3, 235, 77, - 8, 3, 235, 75, 8, 3, 235, 76, 8, 3, 235, 70, 8, 3, 235, 69, 8, 3, 235, - 72, 8, 3, 235, 71, 8, 3, 228, 162, 8, 3, 228, 161, 8, 3, 228, 169, 8, 3, - 228, 163, 8, 3, 228, 165, 8, 3, 228, 164, 8, 3, 228, 168, 8, 3, 228, 166, - 8, 3, 228, 151, 8, 3, 228, 152, 8, 3, 228, 157, 8, 3, 228, 156, 8, 3, - 228, 160, 8, 3, 228, 158, 8, 3, 228, 146, 8, 3, 228, 155, 8, 3, 228, 150, - 8, 3, 228, 147, 8, 3, 228, 148, 8, 3, 228, 141, 8, 3, 228, 140, 8, 3, - 228, 145, 8, 3, 228, 144, 8, 3, 228, 142, 8, 3, 228, 143, 8, 3, 227, 137, - 8, 3, 227, 136, 8, 3, 227, 148, 8, 3, 227, 141, 8, 3, 227, 145, 8, 3, - 227, 144, 8, 3, 227, 147, 8, 3, 227, 146, 8, 3, 227, 124, 8, 3, 227, 126, - 8, 3, 227, 125, 8, 3, 227, 130, 8, 3, 227, 129, 8, 3, 227, 134, 8, 3, - 227, 131, 8, 3, 227, 122, 8, 3, 227, 120, 8, 3, 227, 128, 8, 3, 227, 123, - 8, 3, 211, 150, 8, 3, 211, 149, 8, 3, 211, 157, 8, 3, 211, 152, 8, 3, - 211, 154, 8, 3, 211, 153, 8, 3, 211, 156, 8, 3, 211, 155, 8, 3, 211, 139, - 8, 3, 211, 140, 8, 3, 211, 144, 8, 3, 211, 143, 8, 3, 211, 148, 8, 3, - 211, 146, 8, 3, 211, 121, 8, 3, 211, 119, 8, 3, 211, 131, 8, 3, 211, 124, - 8, 3, 211, 122, 8, 3, 211, 123, 8, 3, 210, 250, 8, 3, 210, 248, 8, 3, - 211, 8, 8, 3, 210, 251, 8, 3, 211, 2, 8, 3, 211, 1, 8, 3, 211, 5, 8, 3, - 211, 3, 8, 3, 210, 191, 8, 3, 210, 190, 8, 3, 210, 194, 8, 3, 210, 192, - 8, 3, 210, 224, 8, 3, 210, 221, 8, 3, 210, 244, 8, 3, 210, 228, 8, 3, - 210, 182, 8, 3, 210, 178, 8, 3, 210, 212, 8, 3, 210, 189, 8, 3, 210, 185, - 8, 3, 210, 186, 8, 3, 210, 162, 8, 3, 210, 161, 8, 3, 210, 169, 8, 3, - 210, 165, 8, 3, 210, 163, 8, 3, 210, 164, 8, 34, 224, 33, 8, 34, 232, - 241, 8, 34, 234, 61, 8, 34, 227, 141, 8, 34, 249, 69, 8, 34, 218, 192, 8, - 34, 243, 12, 8, 34, 243, 44, 8, 34, 230, 230, 8, 34, 240, 180, 8, 34, - 232, 56, 8, 34, 252, 83, 8, 34, 230, 126, 8, 34, 210, 244, 8, 34, 224, - 121, 8, 34, 240, 174, 8, 34, 217, 46, 8, 34, 243, 135, 8, 34, 210, 5, 8, - 34, 249, 63, 8, 34, 248, 95, 8, 34, 251, 98, 8, 34, 243, 8, 8, 34, 227, - 131, 8, 34, 215, 118, 8, 34, 226, 175, 8, 34, 235, 74, 8, 34, 210, 19, 8, - 34, 224, 100, 8, 34, 241, 108, 8, 34, 210, 250, 8, 34, 212, 112, 8, 34, - 219, 200, 8, 34, 213, 244, 8, 34, 210, 116, 8, 34, 235, 68, 8, 34, 227, - 96, 8, 34, 235, 72, 8, 34, 242, 154, 8, 34, 235, 92, 8, 34, 211, 227, 8, - 34, 246, 78, 8, 34, 219, 213, 8, 34, 232, 236, 8, 34, 249, 73, 8, 34, - 249, 105, 8, 34, 250, 37, 8, 34, 240, 177, 8, 34, 220, 72, 8, 34, 210, 4, - 8, 34, 219, 254, 8, 34, 250, 131, 8, 34, 209, 231, 8, 34, 229, 173, 8, - 34, 234, 182, 232, 196, 1, 252, 191, 232, 196, 1, 190, 232, 196, 1, 225, - 147, 232, 196, 1, 248, 221, 232, 196, 1, 217, 105, 232, 196, 1, 216, 208, - 232, 196, 1, 243, 135, 232, 196, 1, 176, 232, 196, 1, 234, 132, 232, 196, - 1, 235, 141, 232, 196, 1, 251, 33, 232, 196, 1, 250, 157, 232, 196, 1, - 246, 38, 232, 196, 1, 215, 183, 232, 196, 1, 215, 175, 232, 196, 1, 184, - 232, 196, 1, 197, 232, 196, 1, 233, 135, 232, 196, 1, 206, 232, 196, 1, - 210, 82, 232, 196, 1, 210, 116, 232, 196, 1, 229, 77, 232, 196, 1, 162, - 232, 196, 1, 211, 165, 232, 196, 1, 241, 189, 232, 196, 1, 244, 196, 232, - 196, 1, 212, 65, 232, 196, 1, 220, 102, 232, 196, 1, 191, 232, 196, 1, - 242, 249, 232, 196, 1, 61, 232, 196, 1, 254, 243, 232, 196, 1, 75, 232, - 196, 1, 245, 55, 232, 196, 1, 73, 232, 196, 1, 76, 232, 196, 1, 70, 232, - 196, 1, 214, 214, 232, 196, 1, 214, 208, 232, 196, 1, 226, 234, 232, 196, - 1, 138, 230, 32, 216, 117, 232, 196, 1, 138, 229, 229, 225, 16, 232, 196, - 1, 138, 230, 32, 249, 72, 232, 196, 1, 138, 230, 32, 251, 205, 232, 196, - 1, 138, 230, 32, 197, 232, 196, 1, 138, 230, 32, 235, 115, 232, 196, 224, - 141, 249, 219, 232, 196, 224, 141, 243, 229, 218, 129, 41, 3, 245, 209, - 41, 3, 245, 205, 41, 3, 241, 220, 41, 3, 212, 17, 41, 3, 212, 16, 41, 3, - 225, 211, 41, 3, 252, 13, 41, 3, 252, 66, 41, 3, 231, 116, 41, 3, 233, - 247, 41, 3, 231, 6, 41, 3, 243, 75, 41, 3, 244, 147, 41, 3, 213, 250, 41, - 3, 217, 11, 41, 3, 216, 194, 41, 3, 248, 16, 41, 3, 248, 13, 41, 3, 233, - 50, 41, 3, 223, 108, 41, 3, 248, 77, 41, 3, 229, 139, 41, 3, 221, 170, - 41, 3, 220, 61, 41, 3, 210, 92, 41, 3, 210, 73, 41, 3, 250, 182, 41, 3, - 235, 124, 41, 3, 228, 176, 41, 3, 211, 44, 41, 3, 234, 181, 41, 3, 229, - 51, 41, 3, 243, 55, 41, 3, 231, 80, 41, 3, 229, 103, 41, 3, 227, 155, 41, - 3, 73, 41, 3, 235, 255, 41, 3, 241, 180, 41, 3, 241, 160, 41, 3, 211, - 250, 41, 3, 211, 241, 41, 3, 225, 108, 41, 3, 252, 11, 41, 3, 252, 6, 41, - 3, 231, 109, 41, 3, 233, 244, 41, 3, 231, 3, 41, 3, 243, 71, 41, 3, 244, - 121, 41, 3, 213, 176, 41, 3, 216, 117, 41, 3, 216, 175, 41, 3, 248, 8, - 41, 3, 248, 12, 41, 3, 232, 241, 41, 3, 223, 35, 41, 3, 248, 3, 41, 3, - 229, 133, 41, 3, 219, 191, 41, 3, 220, 32, 41, 3, 210, 44, 41, 3, 210, - 69, 41, 3, 250, 51, 41, 3, 235, 108, 41, 3, 228, 169, 41, 3, 211, 8, 41, - 3, 234, 92, 41, 3, 229, 43, 41, 3, 242, 214, 41, 3, 230, 230, 41, 3, 228, - 233, 41, 3, 227, 148, 41, 3, 61, 41, 3, 254, 123, 41, 3, 229, 72, 41, 3, - 162, 41, 3, 242, 18, 41, 3, 212, 65, 41, 3, 212, 55, 41, 3, 190, 41, 3, - 252, 18, 41, 3, 252, 191, 41, 3, 231, 124, 41, 3, 233, 251, 41, 3, 233, - 250, 41, 3, 231, 10, 41, 3, 243, 79, 41, 3, 244, 196, 41, 3, 214, 27, 41, - 3, 217, 105, 41, 3, 216, 208, 41, 3, 248, 25, 41, 3, 248, 15, 41, 3, 233, - 135, 41, 3, 205, 41, 3, 248, 221, 41, 3, 229, 148, 41, 3, 206, 41, 3, - 220, 102, 41, 3, 210, 116, 41, 3, 210, 82, 41, 3, 251, 33, 41, 3, 235, - 141, 41, 3, 228, 185, 41, 3, 191, 41, 3, 176, 41, 3, 234, 234, 41, 3, - 229, 56, 41, 3, 243, 135, 41, 3, 184, 41, 3, 197, 41, 3, 227, 165, 41, 3, - 226, 183, 41, 3, 226, 179, 41, 3, 241, 53, 41, 3, 211, 215, 41, 3, 211, - 211, 41, 3, 224, 249, 41, 3, 252, 9, 41, 3, 251, 193, 41, 3, 231, 104, - 41, 3, 233, 242, 41, 3, 230, 255, 41, 3, 243, 67, 41, 3, 244, 34, 41, 3, - 213, 127, 41, 3, 216, 17, 41, 3, 216, 153, 41, 3, 248, 6, 41, 3, 248, 10, - 41, 3, 232, 127, 41, 3, 222, 197, 41, 3, 247, 125, 41, 3, 229, 120, 41, - 3, 219, 40, 41, 3, 220, 1, 41, 3, 210, 21, 41, 3, 210, 66, 41, 3, 249, - 174, 41, 3, 235, 59, 41, 3, 228, 159, 41, 3, 210, 229, 41, 3, 234, 10, - 41, 3, 229, 41, 41, 3, 242, 164, 41, 3, 230, 132, 41, 3, 228, 64, 41, 3, - 227, 132, 41, 3, 70, 41, 3, 214, 190, 41, 3, 240, 222, 41, 3, 240, 212, - 41, 3, 211, 195, 41, 3, 211, 189, 41, 3, 224, 150, 41, 3, 252, 8, 41, 3, - 251, 125, 41, 3, 231, 103, 41, 3, 233, 240, 41, 3, 230, 254, 41, 3, 243, - 66, 41, 3, 243, 234, 41, 3, 212, 116, 41, 3, 215, 118, 41, 3, 216, 136, - 41, 3, 248, 4, 41, 3, 248, 9, 41, 3, 232, 98, 41, 3, 222, 140, 41, 3, - 246, 78, 41, 3, 229, 115, 41, 3, 218, 83, 41, 3, 219, 225, 41, 3, 210, - 13, 41, 3, 210, 62, 41, 3, 249, 112, 41, 3, 235, 51, 41, 3, 228, 155, 41, - 3, 210, 212, 41, 3, 233, 217, 41, 3, 229, 40, 41, 3, 242, 113, 41, 3, - 230, 102, 41, 3, 227, 237, 41, 3, 227, 128, 41, 3, 76, 41, 3, 226, 196, - 41, 3, 229, 0, 41, 3, 241, 68, 41, 3, 241, 56, 41, 3, 211, 227, 41, 3, - 211, 216, 41, 3, 225, 16, 41, 3, 252, 10, 41, 3, 251, 205, 41, 3, 231, - 105, 41, 3, 233, 243, 41, 3, 231, 1, 41, 3, 243, 69, 41, 3, 243, 68, 41, - 3, 244, 43, 41, 3, 213, 138, 41, 3, 111, 41, 3, 216, 156, 41, 3, 248, 7, - 41, 3, 248, 11, 41, 3, 232, 156, 41, 3, 222, 211, 41, 3, 247, 145, 41, 3, - 229, 124, 41, 3, 219, 58, 41, 3, 220, 7, 41, 3, 210, 23, 41, 3, 210, 67, - 41, 3, 249, 238, 41, 3, 235, 68, 41, 3, 228, 160, 41, 3, 210, 244, 41, 3, - 234, 28, 41, 3, 229, 42, 41, 3, 242, 174, 41, 3, 230, 161, 41, 3, 228, - 74, 41, 3, 227, 134, 41, 3, 75, 41, 3, 245, 150, 41, 3, 229, 61, 41, 3, - 241, 238, 41, 3, 241, 209, 41, 3, 212, 22, 41, 3, 212, 12, 41, 3, 225, - 221, 41, 3, 252, 14, 41, 3, 252, 75, 41, 3, 231, 117, 41, 3, 233, 248, - 41, 3, 233, 246, 41, 3, 231, 7, 41, 3, 243, 76, 41, 3, 243, 74, 41, 3, - 244, 154, 41, 3, 213, 255, 41, 3, 217, 22, 41, 3, 216, 195, 41, 3, 248, - 17, 41, 3, 248, 14, 41, 3, 233, 58, 41, 3, 223, 128, 41, 3, 248, 90, 41, - 3, 229, 140, 41, 3, 221, 181, 41, 3, 220, 63, 41, 3, 210, 94, 41, 3, 210, - 74, 41, 3, 250, 190, 41, 3, 235, 126, 41, 3, 228, 178, 41, 3, 211, 47, - 41, 3, 234, 182, 41, 3, 229, 52, 41, 3, 229, 48, 41, 3, 243, 62, 41, 3, - 243, 51, 41, 3, 231, 91, 41, 3, 229, 107, 41, 3, 227, 156, 41, 3, 229, - 79, 41, 3, 233, 22, 41, 249, 219, 41, 243, 229, 218, 129, 41, 224, 13, - 78, 41, 3, 229, 123, 244, 196, 41, 3, 229, 123, 176, 41, 3, 229, 123, - 219, 40, 41, 16, 244, 144, 41, 16, 234, 180, 41, 16, 216, 81, 41, 16, - 228, 208, 41, 16, 252, 147, 41, 16, 244, 195, 41, 16, 217, 101, 41, 16, - 248, 176, 41, 16, 247, 124, 41, 16, 233, 206, 41, 16, 216, 21, 41, 16, - 247, 144, 41, 16, 235, 60, 41, 21, 210, 86, 41, 21, 110, 41, 21, 105, 41, - 21, 158, 41, 21, 161, 41, 21, 189, 41, 21, 194, 41, 21, 198, 41, 21, 195, - 41, 21, 200, 41, 3, 229, 123, 184, 41, 3, 229, 123, 247, 145, 33, 6, 1, - 210, 90, 33, 4, 1, 210, 90, 33, 6, 1, 246, 34, 33, 4, 1, 246, 34, 33, 6, - 1, 223, 49, 246, 36, 33, 4, 1, 223, 49, 246, 36, 33, 6, 1, 235, 185, 33, - 4, 1, 235, 185, 33, 6, 1, 247, 161, 33, 4, 1, 247, 161, 33, 6, 1, 230, - 140, 214, 205, 33, 4, 1, 230, 140, 214, 205, 33, 6, 1, 251, 136, 226, - 201, 33, 4, 1, 251, 136, 226, 201, 33, 6, 1, 229, 87, 211, 31, 33, 4, 1, - 229, 87, 211, 31, 33, 6, 1, 211, 28, 2, 252, 185, 211, 31, 33, 4, 1, 211, - 28, 2, 252, 185, 211, 31, 33, 6, 1, 235, 183, 211, 59, 33, 4, 1, 235, - 183, 211, 59, 33, 6, 1, 223, 49, 210, 212, 33, 4, 1, 223, 49, 210, 212, - 33, 6, 1, 235, 183, 61, 33, 4, 1, 235, 183, 61, 33, 6, 1, 250, 0, 232, - 192, 210, 183, 33, 4, 1, 250, 0, 232, 192, 210, 183, 33, 6, 1, 251, 214, - 210, 183, 33, 4, 1, 251, 214, 210, 183, 33, 6, 1, 235, 183, 250, 0, 232, - 192, 210, 183, 33, 4, 1, 235, 183, 250, 0, 232, 192, 210, 183, 33, 6, 1, - 210, 246, 33, 4, 1, 210, 246, 33, 6, 1, 223, 49, 215, 178, 33, 4, 1, 223, - 49, 215, 178, 33, 6, 1, 219, 52, 248, 90, 33, 4, 1, 219, 52, 248, 90, 33, - 6, 1, 219, 52, 245, 174, 33, 4, 1, 219, 52, 245, 174, 33, 6, 1, 219, 52, - 245, 159, 33, 4, 1, 219, 52, 245, 159, 33, 6, 1, 230, 144, 76, 33, 4, 1, - 230, 144, 76, 33, 6, 1, 251, 240, 76, 33, 4, 1, 251, 240, 76, 33, 6, 1, - 52, 230, 144, 76, 33, 4, 1, 52, 230, 144, 76, 33, 1, 230, 86, 76, 38, 33, - 212, 100, 38, 33, 216, 248, 230, 191, 50, 38, 33, 240, 211, 230, 191, 50, - 38, 33, 216, 148, 230, 191, 50, 219, 93, 253, 216, 38, 33, 1, 214, 202, - 236, 60, 38, 33, 1, 73, 38, 33, 1, 211, 8, 38, 33, 1, 70, 38, 33, 1, 242, - 3, 50, 38, 33, 1, 211, 27, 38, 33, 1, 219, 52, 50, 38, 33, 1, 226, 201, - 38, 33, 234, 192, 38, 33, 225, 227, 33, 234, 192, 33, 225, 227, 33, 6, 1, - 246, 46, 33, 4, 1, 246, 46, 33, 6, 1, 246, 27, 33, 4, 1, 246, 27, 33, 6, - 1, 210, 52, 33, 4, 1, 210, 52, 33, 6, 1, 250, 206, 33, 4, 1, 250, 206, - 33, 6, 1, 246, 25, 33, 4, 1, 246, 25, 33, 6, 1, 217, 23, 2, 230, 224, - 103, 33, 4, 1, 217, 23, 2, 230, 224, 103, 33, 6, 1, 215, 78, 33, 4, 1, - 215, 78, 33, 6, 1, 215, 160, 33, 4, 1, 215, 160, 33, 6, 1, 215, 164, 33, - 4, 1, 215, 164, 33, 6, 1, 217, 28, 33, 4, 1, 217, 28, 33, 6, 1, 240, 198, - 33, 4, 1, 240, 198, 33, 6, 1, 219, 206, 33, 4, 1, 219, 206, 38, 33, 1, - 235, 183, 75, 20, 1, 61, 20, 1, 176, 20, 1, 70, 20, 1, 233, 217, 20, 1, - 245, 209, 20, 1, 223, 108, 20, 1, 217, 86, 20, 1, 76, 20, 1, 227, 148, - 20, 1, 73, 20, 1, 233, 135, 20, 1, 190, 20, 1, 222, 239, 20, 1, 223, 29, - 20, 1, 233, 49, 20, 1, 231, 79, 20, 1, 217, 101, 20, 1, 229, 146, 20, 1, - 228, 183, 20, 1, 193, 20, 1, 218, 4, 20, 1, 230, 102, 20, 1, 220, 27, 20, - 1, 219, 191, 20, 1, 220, 37, 20, 1, 220, 123, 20, 1, 233, 155, 20, 1, - 234, 156, 20, 1, 227, 209, 20, 1, 227, 237, 20, 1, 228, 154, 20, 1, 210, - 226, 20, 1, 219, 225, 20, 1, 210, 187, 20, 1, 191, 20, 1, 228, 9, 20, 1, - 234, 142, 20, 1, 225, 151, 20, 1, 228, 176, 20, 1, 227, 246, 20, 1, 224, - 144, 20, 1, 211, 192, 20, 1, 225, 211, 20, 1, 244, 147, 20, 1, 222, 140, - 20, 1, 232, 98, 20, 1, 230, 230, 20, 1, 228, 233, 20, 1, 223, 51, 20, 1, - 223, 171, 20, 1, 234, 165, 20, 1, 229, 7, 20, 1, 229, 56, 20, 1, 229, 77, - 20, 1, 220, 7, 20, 1, 224, 147, 20, 1, 243, 234, 20, 1, 244, 37, 20, 1, - 212, 65, 20, 1, 197, 20, 1, 232, 241, 20, 1, 225, 108, 20, 1, 232, 119, - 20, 1, 234, 28, 20, 1, 231, 114, 20, 1, 223, 83, 20, 1, 231, 58, 20, 1, - 184, 20, 1, 216, 117, 20, 1, 234, 92, 20, 1, 230, 161, 20, 1, 231, 122, - 20, 1, 216, 230, 20, 1, 233, 251, 20, 1, 216, 247, 20, 1, 227, 238, 20, - 1, 221, 251, 20, 1, 244, 192, 20, 1, 233, 253, 20, 1, 234, 24, 20, 38, - 164, 234, 5, 20, 38, 164, 215, 110, 20, 228, 182, 20, 243, 229, 218, 129, - 20, 249, 226, 20, 249, 219, 20, 220, 150, 20, 224, 13, 78, 58, 1, 250, - 96, 138, 210, 254, 225, 61, 58, 1, 250, 96, 138, 211, 70, 225, 61, 58, 1, - 250, 96, 138, 210, 254, 220, 84, 58, 1, 250, 96, 138, 211, 70, 220, 84, - 58, 1, 250, 96, 138, 210, 254, 224, 30, 58, 1, 250, 96, 138, 211, 70, - 224, 30, 58, 1, 250, 96, 138, 210, 254, 222, 140, 58, 1, 250, 96, 138, - 211, 70, 222, 140, 58, 1, 245, 20, 246, 118, 138, 130, 58, 1, 125, 246, - 118, 138, 130, 58, 1, 230, 225, 246, 118, 138, 130, 58, 1, 121, 246, 118, - 138, 130, 58, 1, 245, 19, 246, 118, 138, 130, 58, 1, 245, 20, 246, 118, - 233, 39, 138, 130, 58, 1, 125, 246, 118, 233, 39, 138, 130, 58, 1, 230, - 225, 246, 118, 233, 39, 138, 130, 58, 1, 121, 246, 118, 233, 39, 138, - 130, 58, 1, 245, 19, 246, 118, 233, 39, 138, 130, 58, 1, 245, 20, 233, - 39, 138, 130, 58, 1, 125, 233, 39, 138, 130, 58, 1, 230, 225, 233, 39, - 138, 130, 58, 1, 121, 233, 39, 138, 130, 58, 1, 245, 19, 233, 39, 138, - 130, 58, 1, 59, 67, 130, 58, 1, 59, 219, 95, 58, 1, 59, 203, 130, 58, 1, - 232, 108, 44, 249, 161, 254, 109, 58, 1, 223, 157, 120, 74, 58, 1, 223, - 157, 124, 74, 58, 1, 223, 157, 245, 31, 78, 58, 1, 223, 157, 235, 193, - 245, 31, 78, 58, 1, 121, 235, 193, 245, 31, 78, 58, 1, 218, 111, 22, 125, - 216, 30, 58, 1, 218, 111, 22, 121, 216, 30, 7, 6, 1, 245, 199, 254, 170, - 7, 4, 1, 245, 199, 254, 170, 7, 6, 1, 245, 199, 254, 196, 7, 4, 1, 245, - 199, 254, 196, 7, 6, 1, 241, 207, 7, 4, 1, 241, 207, 7, 6, 1, 215, 40, 7, - 4, 1, 215, 40, 7, 6, 1, 215, 229, 7, 4, 1, 215, 229, 7, 6, 1, 249, 110, - 7, 4, 1, 249, 110, 7, 6, 1, 249, 111, 2, 249, 219, 7, 4, 1, 249, 111, 2, - 249, 219, 7, 1, 4, 6, 245, 6, 7, 1, 4, 6, 222, 91, 7, 6, 1, 255, 73, 7, - 4, 1, 255, 73, 7, 6, 1, 254, 73, 7, 4, 1, 254, 73, 7, 6, 1, 253, 192, 7, - 4, 1, 253, 192, 7, 6, 1, 253, 176, 7, 4, 1, 253, 176, 7, 6, 1, 253, 177, - 2, 203, 130, 7, 4, 1, 253, 177, 2, 203, 130, 7, 6, 1, 253, 167, 7, 4, 1, - 253, 167, 7, 6, 1, 223, 49, 251, 67, 2, 247, 120, 7, 4, 1, 223, 49, 251, - 67, 2, 247, 120, 7, 6, 1, 235, 24, 2, 91, 7, 4, 1, 235, 24, 2, 91, 7, 6, - 1, 235, 24, 2, 247, 255, 91, 7, 4, 1, 235, 24, 2, 247, 255, 91, 7, 6, 1, - 235, 24, 2, 218, 103, 22, 247, 255, 91, 7, 4, 1, 235, 24, 2, 218, 103, - 22, 247, 255, 91, 7, 6, 1, 251, 135, 156, 7, 4, 1, 251, 135, 156, 7, 6, - 1, 233, 149, 2, 125, 91, 7, 4, 1, 233, 149, 2, 125, 91, 7, 6, 1, 144, 2, - 199, 218, 103, 226, 120, 7, 4, 1, 144, 2, 199, 218, 103, 226, 120, 7, 6, - 1, 144, 2, 232, 123, 7, 4, 1, 144, 2, 232, 123, 7, 6, 1, 226, 183, 7, 4, - 1, 226, 183, 7, 6, 1, 226, 106, 2, 218, 103, 216, 139, 248, 39, 7, 4, 1, - 226, 106, 2, 218, 103, 216, 139, 248, 39, 7, 6, 1, 226, 106, 2, 244, 53, - 7, 4, 1, 226, 106, 2, 244, 53, 7, 6, 1, 226, 106, 2, 218, 229, 217, 77, - 7, 4, 1, 226, 106, 2, 218, 229, 217, 77, 7, 6, 1, 224, 97, 2, 218, 103, - 216, 139, 248, 39, 7, 4, 1, 224, 97, 2, 218, 103, 216, 139, 248, 39, 7, - 6, 1, 224, 97, 2, 247, 255, 91, 7, 4, 1, 224, 97, 2, 247, 255, 91, 7, 6, - 1, 223, 224, 222, 186, 7, 4, 1, 223, 224, 222, 186, 7, 6, 1, 222, 130, - 222, 186, 7, 4, 1, 222, 130, 222, 186, 7, 6, 1, 214, 106, 2, 247, 255, - 91, 7, 4, 1, 214, 106, 2, 247, 255, 91, 7, 6, 1, 212, 106, 7, 4, 1, 212, - 106, 7, 6, 1, 213, 145, 210, 159, 7, 4, 1, 213, 145, 210, 159, 7, 6, 1, - 216, 152, 2, 91, 7, 4, 1, 216, 152, 2, 91, 7, 6, 1, 216, 152, 2, 218, - 103, 216, 139, 248, 39, 7, 4, 1, 216, 152, 2, 218, 103, 216, 139, 248, - 39, 7, 6, 1, 213, 245, 7, 4, 1, 213, 245, 7, 6, 1, 245, 65, 7, 4, 1, 245, - 65, 7, 6, 1, 235, 171, 7, 4, 1, 235, 171, 7, 6, 1, 249, 207, 7, 4, 1, - 249, 207, 58, 1, 214, 133, 7, 4, 1, 246, 69, 7, 4, 1, 232, 84, 7, 4, 1, - 230, 80, 7, 4, 1, 227, 201, 7, 4, 1, 222, 129, 7, 1, 4, 6, 222, 129, 7, - 4, 1, 215, 108, 7, 4, 1, 214, 197, 7, 6, 1, 235, 213, 249, 60, 7, 4, 1, - 235, 213, 249, 60, 7, 6, 1, 235, 213, 245, 6, 7, 4, 1, 235, 213, 245, 6, - 7, 6, 1, 235, 213, 243, 202, 7, 6, 1, 215, 94, 235, 213, 243, 202, 7, 4, - 1, 215, 94, 235, 213, 243, 202, 7, 6, 1, 215, 94, 156, 7, 4, 1, 215, 94, - 156, 7, 6, 1, 235, 213, 153, 7, 4, 1, 235, 213, 153, 7, 6, 1, 235, 213, - 222, 91, 7, 4, 1, 235, 213, 222, 91, 7, 6, 1, 235, 213, 217, 152, 7, 4, - 1, 235, 213, 217, 152, 58, 1, 121, 250, 31, 255, 14, 58, 1, 249, 226, 58, - 1, 219, 251, 245, 98, 50, 7, 6, 1, 221, 255, 7, 4, 1, 221, 255, 7, 6, 1, - 215, 94, 242, 60, 7, 4, 1, 233, 149, 2, 223, 55, 241, 52, 22, 252, 41, 7, - 6, 1, 230, 26, 2, 248, 39, 7, 4, 1, 230, 26, 2, 248, 39, 7, 6, 1, 251, - 67, 2, 130, 7, 4, 1, 251, 67, 2, 130, 7, 6, 1, 243, 203, 2, 226, 248, 91, - 7, 4, 1, 243, 203, 2, 226, 248, 91, 7, 6, 1, 235, 24, 2, 226, 248, 91, 7, - 4, 1, 235, 24, 2, 226, 248, 91, 7, 6, 1, 230, 26, 2, 226, 248, 91, 7, 4, - 1, 230, 26, 2, 226, 248, 91, 7, 6, 1, 223, 224, 2, 226, 248, 91, 7, 4, 1, - 223, 224, 2, 226, 248, 91, 7, 6, 1, 222, 92, 2, 226, 248, 91, 7, 4, 1, - 222, 92, 2, 226, 248, 91, 7, 6, 1, 242, 61, 2, 103, 58, 1, 6, 242, 61, 2, - 91, 58, 1, 4, 27, 226, 234, 7, 1, 4, 6, 215, 94, 193, 7, 245, 103, 1, - 223, 49, 245, 6, 7, 245, 103, 1, 223, 49, 226, 105, 7, 245, 103, 1, 235, - 193, 193, 7, 245, 103, 1, 240, 154, 232, 129, 7, 245, 103, 1, 254, 23, - 193, 217, 230, 229, 214, 1, 61, 217, 230, 229, 214, 1, 73, 217, 230, 229, - 214, 5, 246, 48, 217, 230, 229, 214, 1, 70, 217, 230, 229, 214, 1, 75, - 217, 230, 229, 214, 1, 76, 217, 230, 229, 214, 5, 241, 253, 217, 230, - 229, 214, 1, 234, 28, 217, 230, 229, 214, 1, 234, 105, 217, 230, 229, - 214, 1, 242, 174, 217, 230, 229, 214, 1, 242, 224, 217, 230, 229, 214, 5, - 254, 75, 217, 230, 229, 214, 1, 249, 238, 217, 230, 229, 214, 1, 250, 86, - 217, 230, 229, 214, 1, 235, 68, 217, 230, 229, 214, 1, 235, 109, 217, - 230, 229, 214, 1, 215, 133, 217, 230, 229, 214, 1, 215, 139, 217, 230, - 229, 214, 1, 248, 105, 217, 230, 229, 214, 1, 248, 114, 217, 230, 229, - 214, 1, 111, 217, 230, 229, 214, 1, 216, 156, 217, 230, 229, 214, 1, 247, - 145, 217, 230, 229, 214, 1, 248, 7, 217, 230, 229, 214, 1, 228, 74, 217, - 230, 229, 214, 1, 225, 16, 217, 230, 229, 214, 1, 225, 121, 217, 230, - 229, 214, 1, 251, 205, 217, 230, 229, 214, 1, 252, 10, 217, 230, 229, - 214, 1, 230, 161, 217, 230, 229, 214, 1, 222, 211, 217, 230, 229, 214, 1, - 232, 156, 217, 230, 229, 214, 1, 222, 165, 217, 230, 229, 214, 1, 219, - 58, 217, 230, 229, 214, 1, 241, 68, 217, 230, 229, 214, 25, 5, 61, 217, - 230, 229, 214, 25, 5, 73, 217, 230, 229, 214, 25, 5, 70, 217, 230, 229, - 214, 25, 5, 75, 217, 230, 229, 214, 25, 5, 226, 183, 217, 230, 229, 214, - 225, 12, 231, 158, 217, 230, 229, 214, 225, 12, 231, 157, 217, 230, 229, - 214, 225, 12, 231, 156, 217, 230, 229, 214, 225, 12, 231, 155, 228, 56, - 235, 240, 244, 2, 123, 224, 21, 228, 56, 235, 240, 244, 2, 123, 242, 27, - 228, 56, 235, 240, 244, 2, 134, 224, 19, 228, 56, 235, 240, 244, 2, 123, - 219, 117, 228, 56, 235, 240, 244, 2, 123, 245, 188, 228, 56, 235, 240, - 244, 2, 134, 219, 116, 228, 56, 235, 240, 224, 22, 78, 228, 56, 235, 240, - 225, 40, 78, 228, 56, 235, 240, 222, 118, 78, 228, 56, 235, 240, 224, 23, - 78, 225, 144, 1, 176, 225, 144, 1, 234, 132, 225, 144, 1, 243, 135, 225, - 144, 1, 229, 77, 225, 144, 1, 251, 33, 225, 144, 1, 250, 157, 225, 144, - 1, 235, 141, 225, 144, 1, 227, 165, 225, 144, 1, 217, 105, 225, 144, 1, - 216, 208, 225, 144, 1, 248, 221, 225, 144, 1, 197, 225, 144, 1, 190, 225, - 144, 1, 225, 147, 225, 144, 1, 252, 191, 225, 144, 1, 184, 225, 144, 1, - 215, 183, 225, 144, 1, 215, 175, 225, 144, 1, 246, 38, 225, 144, 1, 212, - 65, 225, 144, 1, 210, 82, 225, 144, 1, 210, 116, 225, 144, 1, 4, 61, 225, - 144, 1, 191, 225, 144, 1, 205, 225, 144, 1, 233, 135, 225, 144, 1, 220, - 102, 225, 144, 1, 206, 225, 144, 1, 162, 225, 144, 1, 61, 225, 144, 1, - 73, 225, 144, 1, 70, 225, 144, 1, 75, 225, 144, 1, 76, 225, 144, 1, 224, - 88, 225, 144, 1, 211, 165, 225, 144, 1, 244, 196, 225, 144, 1, 243, 29, - 225, 144, 1, 245, 209, 225, 144, 218, 73, 1, 212, 65, 225, 144, 218, 73, - 1, 191, 225, 144, 1, 215, 156, 225, 144, 1, 215, 144, 225, 144, 1, 248, - 135, 225, 144, 1, 228, 110, 225, 144, 1, 254, 141, 191, 225, 144, 1, 213, - 134, 220, 102, 225, 144, 1, 213, 135, 162, 225, 144, 1, 253, 223, 244, - 196, 225, 144, 218, 73, 1, 205, 225, 144, 218, 25, 1, 205, 225, 144, 1, - 250, 255, 225, 144, 219, 155, 241, 236, 78, 225, 144, 52, 241, 236, 78, - 225, 144, 164, 220, 95, 225, 144, 164, 52, 220, 95, 179, 5, 254, 75, 179, - 5, 213, 147, 179, 1, 61, 179, 1, 255, 73, 179, 1, 73, 179, 1, 236, 33, - 179, 1, 70, 179, 1, 214, 118, 179, 1, 149, 153, 179, 1, 149, 222, 180, - 179, 1, 149, 156, 179, 1, 149, 232, 185, 179, 1, 75, 179, 1, 245, 209, - 179, 1, 254, 201, 179, 1, 76, 179, 1, 226, 183, 179, 1, 253, 192, 179, 1, - 176, 179, 1, 234, 132, 179, 1, 243, 135, 179, 1, 242, 249, 179, 1, 229, - 77, 179, 1, 251, 33, 179, 1, 250, 157, 179, 1, 235, 141, 179, 1, 235, - 114, 179, 1, 227, 165, 179, 1, 215, 156, 179, 1, 215, 144, 179, 1, 248, - 135, 179, 1, 248, 119, 179, 1, 228, 110, 179, 1, 217, 105, 179, 1, 216, - 208, 179, 1, 248, 221, 179, 1, 248, 25, 179, 1, 197, 179, 1, 190, 179, 1, - 225, 147, 179, 1, 252, 191, 179, 1, 252, 18, 179, 1, 184, 179, 1, 191, - 179, 1, 205, 179, 1, 233, 135, 179, 1, 214, 27, 179, 1, 220, 102, 179, 1, - 218, 223, 179, 1, 206, 179, 1, 162, 179, 1, 232, 184, 179, 116, 5, 242, - 44, 179, 25, 5, 255, 73, 179, 25, 5, 73, 179, 25, 5, 236, 33, 179, 25, 5, + 210, 203, 24, 1, 210, 204, 24, 1, 210, 207, 24, 1, 254, 35, 24, 1, 254, + 29, 109, 254, 100, 232, 204, 78, 109, 254, 100, 223, 51, 78, 109, 254, + 100, 123, 78, 109, 254, 100, 113, 78, 109, 254, 100, 134, 78, 109, 254, + 100, 244, 12, 78, 109, 254, 100, 216, 15, 78, 109, 254, 100, 230, 225, + 78, 109, 254, 100, 251, 176, 78, 109, 254, 100, 244, 93, 78, 109, 254, + 100, 221, 177, 78, 109, 254, 100, 216, 170, 78, 109, 254, 100, 244, 5, + 78, 109, 254, 100, 241, 225, 78, 109, 254, 100, 245, 225, 78, 109, 254, + 100, 231, 187, 78, 251, 185, 1, 251, 126, 251, 185, 1, 210, 44, 251, 185, + 1, 235, 109, 251, 185, 1, 242, 114, 251, 185, 1, 245, 210, 251, 185, 1, + 245, 136, 251, 185, 1, 226, 184, 251, 185, 1, 226, 188, 251, 185, 1, 235, + 180, 251, 185, 1, 254, 102, 251, 185, 1, 235, 225, 251, 185, 1, 214, 168, + 251, 185, 1, 236, 17, 251, 185, 1, 229, 58, 251, 185, 1, 254, 196, 251, + 185, 1, 253, 188, 251, 185, 1, 254, 137, 251, 185, 1, 226, 205, 251, 185, + 1, 226, 190, 251, 185, 1, 235, 222, 251, 185, 40, 1, 226, 106, 251, 185, + 40, 1, 217, 153, 251, 185, 40, 1, 235, 24, 251, 185, 40, 1, 242, 61, 251, + 185, 1, 242, 251, 251, 185, 1, 233, 0, 251, 185, 1, 209, 250, 9, 218, + 104, 217, 153, 9, 218, 104, 212, 4, 9, 218, 104, 211, 158, 9, 218, 104, + 251, 80, 9, 218, 104, 217, 255, 9, 218, 104, 240, 159, 9, 218, 104, 240, + 163, 9, 218, 104, 240, 232, 9, 218, 104, 240, 160, 9, 218, 104, 217, 156, + 9, 218, 104, 240, 162, 9, 218, 104, 240, 158, 9, 218, 104, 240, 230, 9, + 218, 104, 240, 161, 9, 218, 104, 240, 157, 9, 218, 104, 230, 26, 9, 218, + 104, 242, 61, 9, 218, 104, 222, 92, 9, 218, 104, 226, 106, 9, 218, 104, + 219, 22, 9, 218, 104, 249, 61, 9, 218, 104, 240, 164, 9, 218, 104, 241, + 191, 9, 218, 104, 217, 165, 9, 218, 104, 217, 234, 9, 218, 104, 218, 169, + 9, 218, 104, 220, 111, 9, 218, 104, 225, 225, 9, 218, 104, 224, 99, 9, + 218, 104, 216, 44, 9, 218, 104, 217, 155, 9, 218, 104, 217, 245, 9, 218, + 104, 240, 171, 9, 218, 104, 240, 156, 9, 218, 104, 225, 150, 9, 218, 104, + 224, 97, 56, 1, 4, 233, 218, 56, 1, 4, 219, 192, 56, 1, 4, 218, 84, 56, + 1, 4, 111, 56, 1, 4, 227, 238, 56, 1, 4, 162, 56, 1, 4, 241, 181, 56, 1, + 4, 240, 223, 56, 1, 4, 241, 239, 56, 1, 4, 241, 69, 56, 1, 4, 230, 103, + 56, 1, 4, 205, 56, 1, 4, 223, 36, 56, 1, 4, 222, 141, 56, 1, 4, 223, 129, + 56, 1, 4, 222, 212, 88, 24, 234, 59, 88, 24, 228, 227, 88, 24, 216, 102, + 88, 24, 223, 27, 88, 24, 230, 218, 88, 24, 225, 96, 88, 24, 219, 149, 88, + 24, 236, 57, 88, 24, 250, 47, 88, 24, 250, 107, 88, 24, 234, 111, 88, 24, + 216, 174, 88, 24, 225, 132, 88, 24, 241, 173, 88, 24, 234, 60, 61, 88, + 24, 228, 228, 61, 88, 24, 216, 103, 61, 88, 24, 223, 28, 61, 88, 24, 230, + 219, 61, 88, 24, 225, 97, 61, 88, 24, 219, 150, 61, 88, 24, 236, 58, 61, + 88, 24, 250, 48, 61, 88, 24, 250, 108, 61, 88, 24, 234, 112, 61, 88, 24, + 216, 175, 61, 88, 24, 225, 133, 61, 88, 24, 241, 174, 61, 88, 24, 250, + 48, 70, 88, 234, 4, 135, 226, 218, 88, 234, 4, 135, 144, 240, 223, 88, + 154, 110, 88, 154, 105, 88, 154, 158, 88, 154, 161, 88, 154, 189, 88, + 154, 194, 88, 154, 198, 88, 154, 195, 88, 154, 200, 88, 154, 216, 248, + 88, 154, 230, 129, 88, 154, 244, 97, 88, 154, 212, 40, 88, 154, 211, 214, + 88, 154, 231, 40, 88, 154, 245, 224, 88, 154, 218, 38, 88, 154, 218, 133, + 88, 154, 241, 245, 88, 154, 219, 55, 88, 154, 229, 205, 88, 154, 219, 5, + 88, 154, 244, 103, 88, 154, 249, 201, 88, 154, 233, 126, 88, 154, 223, + 72, 88, 154, 251, 16, 88, 154, 218, 88, 88, 154, 218, 21, 88, 154, 245, + 128, 88, 154, 223, 64, 88, 154, 254, 151, 88, 154, 244, 129, 88, 154, + 223, 62, 88, 154, 220, 157, 88, 154, 223, 128, 37, 154, 224, 13, 37, 154, + 234, 81, 37, 154, 221, 199, 37, 154, 234, 0, 37, 54, 216, 249, 226, 198, + 85, 218, 235, 37, 54, 215, 74, 226, 198, 85, 218, 235, 37, 54, 216, 164, + 226, 198, 85, 218, 235, 37, 54, 244, 17, 226, 198, 85, 218, 235, 37, 54, + 244, 116, 226, 198, 85, 218, 235, 37, 54, 219, 113, 226, 198, 85, 218, + 235, 37, 54, 220, 118, 226, 198, 85, 218, 235, 37, 54, 245, 186, 226, + 198, 85, 218, 235, 225, 252, 50, 37, 54, 215, 74, 110, 37, 54, 215, 74, + 105, 37, 54, 215, 74, 158, 37, 54, 215, 74, 161, 37, 54, 215, 74, 189, + 37, 54, 215, 74, 194, 37, 54, 215, 74, 198, 37, 54, 215, 74, 195, 37, 54, + 215, 74, 200, 37, 54, 216, 163, 37, 54, 216, 164, 110, 37, 54, 216, 164, + 105, 37, 54, 216, 164, 158, 37, 54, 216, 164, 161, 37, 54, 216, 164, 189, + 37, 24, 234, 59, 37, 24, 228, 227, 37, 24, 216, 102, 37, 24, 223, 27, 37, + 24, 230, 218, 37, 24, 225, 96, 37, 24, 219, 149, 37, 24, 236, 57, 37, 24, + 250, 47, 37, 24, 250, 107, 37, 24, 234, 111, 37, 24, 216, 174, 37, 24, + 225, 132, 37, 24, 241, 173, 37, 24, 234, 60, 61, 37, 24, 228, 228, 61, + 37, 24, 216, 103, 61, 37, 24, 223, 28, 61, 37, 24, 230, 219, 61, 37, 24, + 225, 97, 61, 37, 24, 219, 150, 61, 37, 24, 236, 58, 61, 37, 24, 250, 48, + 61, 37, 24, 250, 108, 61, 37, 24, 234, 112, 61, 37, 24, 216, 175, 61, 37, + 24, 225, 133, 61, 37, 24, 241, 174, 61, 37, 234, 4, 135, 250, 149, 37, + 234, 4, 135, 235, 48, 37, 24, 236, 58, 70, 234, 4, 218, 160, 87, 37, 154, + 110, 37, 154, 105, 37, 154, 158, 37, 154, 161, 37, 154, 189, 37, 154, + 194, 37, 154, 198, 37, 154, 195, 37, 154, 200, 37, 154, 216, 248, 37, + 154, 230, 129, 37, 154, 244, 97, 37, 154, 212, 40, 37, 154, 211, 214, 37, + 154, 231, 40, 37, 154, 245, 224, 37, 154, 218, 38, 37, 154, 218, 133, 37, + 154, 241, 245, 37, 154, 219, 55, 37, 154, 229, 205, 37, 154, 219, 5, 37, + 154, 244, 103, 37, 154, 249, 201, 37, 154, 233, 126, 37, 154, 221, 175, + 37, 154, 231, 190, 37, 154, 244, 138, 37, 154, 218, 50, 37, 154, 245, 35, + 37, 154, 224, 188, 37, 154, 253, 197, 37, 154, 235, 160, 37, 154, 223, + 62, 37, 154, 249, 165, 37, 154, 249, 156, 37, 154, 241, 166, 37, 154, + 250, 175, 37, 154, 232, 111, 37, 154, 233, 47, 37, 154, 222, 252, 37, + 154, 231, 84, 37, 154, 223, 88, 37, 154, 218, 88, 37, 154, 218, 21, 37, + 154, 245, 128, 37, 154, 223, 64, 37, 154, 254, 151, 37, 154, 228, 213, + 37, 54, 216, 164, 194, 37, 54, 216, 164, 198, 37, 54, 216, 164, 195, 37, + 54, 216, 164, 200, 37, 54, 244, 16, 37, 54, 244, 17, 110, 37, 54, 244, + 17, 105, 37, 54, 244, 17, 158, 37, 54, 244, 17, 161, 37, 54, 244, 17, + 189, 37, 54, 244, 17, 194, 37, 54, 244, 17, 198, 37, 54, 244, 17, 195, + 37, 54, 244, 17, 200, 37, 54, 244, 115, 109, 217, 4, 16, 31, 235, 134, + 109, 217, 4, 16, 31, 244, 149, 109, 217, 4, 16, 31, 231, 161, 109, 217, + 4, 16, 31, 254, 48, 109, 217, 4, 16, 31, 231, 133, 109, 217, 4, 16, 31, + 235, 46, 109, 217, 4, 16, 31, 235, 47, 109, 217, 4, 16, 31, 253, 189, + 109, 217, 4, 16, 31, 220, 137, 109, 217, 4, 16, 31, 226, 240, 109, 217, + 4, 16, 31, 228, 41, 109, 217, 4, 16, 31, 248, 86, 42, 241, 191, 42, 245, + 89, 42, 245, 44, 232, 220, 232, 241, 50, 37, 56, 61, 37, 56, 73, 37, 56, + 70, 37, 56, 75, 37, 56, 76, 37, 56, 176, 37, 56, 234, 93, 37, 56, 233, + 218, 37, 56, 234, 183, 37, 56, 234, 29, 37, 56, 206, 37, 56, 219, 192, + 37, 56, 218, 84, 37, 56, 221, 182, 37, 56, 219, 59, 37, 56, 217, 106, 37, + 56, 216, 118, 37, 56, 215, 119, 37, 56, 217, 23, 37, 56, 111, 37, 56, + 197, 37, 56, 228, 234, 37, 56, 227, 238, 37, 56, 229, 108, 37, 56, 228, + 75, 37, 56, 162, 37, 56, 241, 181, 37, 56, 240, 223, 37, 56, 241, 239, + 37, 56, 241, 69, 37, 56, 185, 37, 56, 230, 231, 37, 56, 230, 103, 37, 56, + 231, 92, 37, 56, 230, 162, 37, 56, 191, 37, 56, 210, 212, 37, 56, 210, + 244, 37, 56, 205, 37, 56, 223, 36, 37, 56, 222, 141, 37, 56, 223, 129, + 37, 56, 222, 212, 37, 56, 212, 65, 37, 56, 211, 250, 37, 56, 212, 22, 37, + 56, 211, 227, 42, 254, 72, 42, 253, 240, 42, 254, 96, 42, 255, 32, 42, + 235, 227, 42, 235, 197, 42, 214, 166, 42, 245, 67, 42, 245, 207, 42, 226, + 187, 42, 226, 181, 42, 234, 246, 42, 234, 215, 42, 234, 212, 42, 243, 93, + 42, 243, 102, 42, 242, 205, 42, 242, 201, 42, 233, 151, 42, 242, 194, 42, + 234, 73, 42, 234, 72, 42, 234, 71, 42, 234, 70, 42, 242, 87, 42, 242, 86, + 42, 233, 194, 42, 233, 196, 42, 234, 179, 42, 234, 2, 42, 234, 9, 42, + 222, 17, 42, 221, 238, 42, 219, 130, 42, 220, 142, 42, 220, 141, 42, 248, + 219, 42, 248, 37, 42, 247, 122, 42, 216, 33, 42, 229, 201, 42, 228, 42, + 42, 242, 33, 42, 226, 85, 42, 226, 84, 42, 252, 189, 42, 225, 106, 42, + 225, 70, 42, 225, 71, 42, 251, 235, 42, 240, 222, 42, 240, 218, 42, 251, + 92, 42, 240, 205, 42, 241, 216, 42, 225, 160, 42, 225, 195, 42, 241, 199, + 42, 225, 192, 42, 225, 208, 42, 252, 62, 42, 225, 7, 42, 251, 181, 42, + 241, 57, 42, 224, 251, 42, 241, 49, 42, 241, 51, 42, 231, 202, 42, 231, + 198, 42, 231, 207, 42, 231, 151, 42, 231, 176, 42, 230, 198, 42, 230, + 177, 42, 230, 176, 42, 231, 75, 42, 231, 72, 42, 231, 76, 42, 211, 102, + 42, 211, 100, 42, 210, 201, 42, 222, 227, 42, 222, 231, 42, 222, 118, 42, + 222, 112, 42, 223, 86, 42, 223, 83, 42, 212, 38, 109, 217, 4, 16, 31, + 240, 240, 210, 86, 109, 217, 4, 16, 31, 240, 240, 110, 109, 217, 4, 16, + 31, 240, 240, 105, 109, 217, 4, 16, 31, 240, 240, 158, 109, 217, 4, 16, + 31, 240, 240, 161, 109, 217, 4, 16, 31, 240, 240, 189, 109, 217, 4, 16, + 31, 240, 240, 194, 109, 217, 4, 16, 31, 240, 240, 198, 109, 217, 4, 16, + 31, 240, 240, 195, 109, 217, 4, 16, 31, 240, 240, 200, 109, 217, 4, 16, + 31, 240, 240, 216, 248, 109, 217, 4, 16, 31, 240, 240, 245, 168, 109, + 217, 4, 16, 31, 240, 240, 215, 76, 109, 217, 4, 16, 31, 240, 240, 216, + 165, 109, 217, 4, 16, 31, 240, 240, 244, 6, 109, 217, 4, 16, 31, 240, + 240, 244, 119, 109, 217, 4, 16, 31, 240, 240, 219, 120, 109, 217, 4, 16, + 31, 240, 240, 220, 120, 109, 217, 4, 16, 31, 240, 240, 245, 191, 109, + 217, 4, 16, 31, 240, 240, 228, 198, 109, 217, 4, 16, 31, 240, 240, 215, + 73, 109, 217, 4, 16, 31, 240, 240, 215, 67, 109, 217, 4, 16, 31, 240, + 240, 215, 63, 109, 217, 4, 16, 31, 240, 240, 215, 64, 109, 217, 4, 16, + 31, 240, 240, 215, 69, 42, 240, 231, 42, 248, 222, 42, 253, 193, 42, 130, + 42, 226, 126, 42, 225, 226, 42, 247, 148, 42, 247, 149, 218, 234, 42, + 247, 149, 249, 109, 42, 235, 157, 42, 245, 92, 229, 206, 241, 217, 42, + 245, 92, 229, 206, 217, 175, 42, 245, 92, 229, 206, 217, 75, 42, 245, 92, + 229, 206, 231, 71, 42, 249, 158, 42, 226, 91, 254, 126, 42, 197, 42, 230, + 104, 61, 42, 185, 42, 176, 42, 234, 186, 42, 231, 130, 42, 243, 81, 42, + 251, 19, 42, 234, 185, 42, 225, 151, 42, 229, 82, 42, 230, 104, 245, 7, + 42, 230, 104, 243, 203, 42, 231, 16, 42, 234, 135, 42, 240, 164, 42, 234, + 95, 42, 230, 233, 42, 242, 217, 42, 216, 120, 42, 230, 104, 156, 42, 230, + 170, 42, 247, 158, 42, 234, 41, 42, 244, 46, 42, 228, 113, 42, 230, 104, + 193, 42, 230, 167, 42, 249, 240, 42, 234, 35, 42, 230, 168, 218, 234, 42, + 249, 241, 218, 234, 42, 232, 51, 218, 234, 42, 234, 36, 218, 234, 42, + 230, 168, 249, 109, 42, 249, 241, 249, 109, 42, 232, 51, 249, 109, 42, + 234, 36, 249, 109, 42, 232, 51, 117, 222, 92, 42, 232, 51, 117, 222, 93, + 218, 234, 42, 190, 42, 233, 252, 42, 230, 106, 42, 242, 152, 42, 223, + 177, 42, 223, 178, 117, 222, 92, 42, 223, 178, 117, 222, 93, 218, 234, + 42, 224, 163, 42, 228, 14, 42, 230, 104, 222, 92, 42, 230, 105, 42, 224, + 117, 42, 227, 177, 42, 230, 104, 214, 105, 42, 230, 50, 42, 233, 186, 42, + 230, 51, 231, 75, 42, 224, 116, 42, 227, 176, 42, 230, 104, 212, 98, 42, + 230, 44, 42, 233, 184, 42, 230, 45, 231, 75, 42, 235, 25, 226, 221, 42, + 232, 51, 226, 221, 42, 254, 137, 42, 251, 161, 42, 250, 215, 42, 250, + 192, 42, 251, 68, 117, 234, 135, 42, 249, 239, 42, 248, 143, 42, 242, 73, + 42, 162, 42, 240, 232, 42, 236, 0, 42, 234, 48, 42, 234, 36, 250, 251, + 42, 233, 220, 42, 232, 160, 42, 232, 159, 42, 232, 148, 42, 232, 64, 42, + 231, 131, 219, 80, 42, 230, 197, 42, 230, 153, 42, 225, 149, 42, 225, 20, + 42, 224, 220, 42, 224, 218, 42, 218, 228, 42, 218, 3, 42, 212, 24, 42, + 214, 106, 117, 193, 42, 115, 117, 193, 109, 217, 4, 16, 31, 248, 147, + 110, 109, 217, 4, 16, 31, 248, 147, 105, 109, 217, 4, 16, 31, 248, 147, + 158, 109, 217, 4, 16, 31, 248, 147, 161, 109, 217, 4, 16, 31, 248, 147, + 189, 109, 217, 4, 16, 31, 248, 147, 194, 109, 217, 4, 16, 31, 248, 147, + 198, 109, 217, 4, 16, 31, 248, 147, 195, 109, 217, 4, 16, 31, 248, 147, + 200, 109, 217, 4, 16, 31, 248, 147, 216, 248, 109, 217, 4, 16, 31, 248, + 147, 245, 168, 109, 217, 4, 16, 31, 248, 147, 215, 76, 109, 217, 4, 16, + 31, 248, 147, 216, 165, 109, 217, 4, 16, 31, 248, 147, 244, 6, 109, 217, + 4, 16, 31, 248, 147, 244, 119, 109, 217, 4, 16, 31, 248, 147, 219, 120, + 109, 217, 4, 16, 31, 248, 147, 220, 120, 109, 217, 4, 16, 31, 248, 147, + 245, 191, 109, 217, 4, 16, 31, 248, 147, 228, 198, 109, 217, 4, 16, 31, + 248, 147, 215, 73, 109, 217, 4, 16, 31, 248, 147, 215, 67, 109, 217, 4, + 16, 31, 248, 147, 215, 63, 109, 217, 4, 16, 31, 248, 147, 215, 64, 109, + 217, 4, 16, 31, 248, 147, 215, 69, 109, 217, 4, 16, 31, 248, 147, 215, + 70, 109, 217, 4, 16, 31, 248, 147, 215, 65, 109, 217, 4, 16, 31, 248, + 147, 215, 66, 109, 217, 4, 16, 31, 248, 147, 215, 72, 109, 217, 4, 16, + 31, 248, 147, 215, 68, 109, 217, 4, 16, 31, 248, 147, 216, 163, 109, 217, + 4, 16, 31, 248, 147, 216, 162, 42, 243, 119, 241, 193, 31, 216, 197, 249, + 141, 241, 224, 241, 193, 31, 216, 197, 223, 123, 245, 224, 241, 193, 31, + 247, 232, 253, 208, 216, 197, 252, 57, 241, 193, 31, 210, 223, 244, 39, + 241, 193, 31, 212, 59, 241, 193, 31, 249, 204, 241, 193, 31, 216, 197, + 254, 4, 241, 193, 31, 241, 61, 216, 39, 241, 193, 31, 4, 217, 62, 241, + 193, 31, 215, 238, 241, 193, 31, 225, 220, 241, 193, 31, 218, 159, 241, + 193, 31, 244, 140, 241, 193, 31, 242, 133, 224, 241, 241, 193, 31, 230, + 156, 241, 193, 31, 245, 127, 241, 193, 31, 244, 40, 241, 193, 31, 211, + 207, 226, 198, 216, 197, 248, 87, 241, 193, 31, 254, 52, 241, 193, 31, + 249, 186, 241, 193, 31, 251, 228, 216, 139, 241, 193, 31, 242, 150, 241, + 193, 31, 218, 246, 254, 71, 241, 193, 31, 223, 54, 241, 193, 31, 235, + 221, 241, 193, 31, 242, 133, 217, 62, 241, 193, 31, 230, 112, 249, 160, + 241, 193, 31, 242, 133, 224, 198, 241, 193, 31, 216, 197, 255, 19, 212, + 40, 241, 193, 31, 216, 197, 250, 9, 244, 97, 241, 193, 31, 235, 234, 241, + 193, 31, 246, 58, 241, 193, 31, 223, 57, 241, 193, 31, 242, 133, 224, + 225, 241, 193, 31, 224, 178, 241, 193, 31, 248, 162, 64, 216, 197, 232, + 231, 241, 193, 31, 216, 197, 244, 175, 241, 193, 31, 226, 164, 241, 193, + 31, 226, 245, 241, 193, 31, 248, 60, 241, 193, 31, 248, 80, 241, 193, 31, + 235, 248, 241, 193, 31, 251, 150, 241, 193, 31, 249, 222, 216, 43, 231, + 77, 241, 193, 31, 243, 88, 216, 39, 241, 193, 31, 224, 126, 214, 154, + 241, 193, 31, 226, 163, 241, 193, 31, 216, 197, 212, 13, 241, 193, 31, + 223, 46, 241, 193, 31, 216, 197, 250, 221, 241, 193, 31, 216, 197, 254, + 0, 216, 134, 241, 193, 31, 216, 197, 234, 180, 218, 135, 230, 116, 241, + 193, 31, 248, 33, 241, 193, 31, 216, 197, 231, 153, 231, 203, 241, 193, + 31, 255, 20, 241, 193, 31, 216, 197, 212, 54, 241, 193, 31, 216, 197, + 243, 48, 211, 239, 241, 193, 31, 216, 197, 235, 53, 233, 108, 241, 193, + 31, 247, 185, 241, 193, 31, 232, 221, 241, 193, 31, 235, 224, 215, 188, + 241, 193, 31, 4, 224, 198, 241, 193, 31, 254, 218, 249, 213, 241, 193, + 31, 252, 60, 249, 213, 8, 3, 235, 161, 8, 3, 235, 154, 8, 3, 73, 8, 3, + 235, 183, 8, 3, 236, 59, 8, 3, 236, 42, 8, 3, 236, 61, 8, 3, 236, 60, 8, + 3, 253, 207, 8, 3, 253, 170, 8, 3, 61, 8, 3, 254, 73, 8, 3, 214, 164, 8, + 3, 214, 167, 8, 3, 214, 165, 8, 3, 226, 141, 8, 3, 226, 115, 8, 3, 76, 8, + 3, 226, 176, 8, 3, 245, 36, 8, 3, 75, 8, 3, 211, 195, 8, 3, 251, 229, 8, + 3, 251, 226, 8, 3, 252, 7, 8, 3, 251, 239, 8, 3, 251, 252, 8, 3, 251, + 251, 8, 3, 251, 254, 8, 3, 251, 253, 8, 3, 252, 122, 8, 3, 252, 114, 8, + 3, 252, 192, 8, 3, 252, 143, 8, 3, 251, 102, 8, 3, 251, 106, 8, 3, 251, + 103, 8, 3, 251, 180, 8, 3, 251, 164, 8, 3, 251, 206, 8, 3, 251, 186, 8, + 3, 252, 22, 8, 3, 252, 76, 8, 3, 252, 34, 8, 3, 251, 88, 8, 3, 251, 85, + 8, 3, 251, 126, 8, 3, 251, 101, 8, 3, 251, 95, 8, 3, 251, 99, 8, 3, 251, + 73, 8, 3, 251, 71, 8, 3, 251, 78, 8, 3, 251, 76, 8, 3, 251, 74, 8, 3, + 251, 75, 8, 3, 225, 50, 8, 3, 225, 46, 8, 3, 225, 109, 8, 3, 225, 60, 8, + 3, 225, 76, 8, 3, 225, 103, 8, 3, 225, 99, 8, 3, 225, 241, 8, 3, 225, + 231, 8, 3, 190, 8, 3, 226, 22, 8, 3, 224, 136, 8, 3, 224, 138, 8, 3, 224, + 137, 8, 3, 224, 234, 8, 3, 224, 223, 8, 3, 225, 17, 8, 3, 224, 246, 8, 3, + 224, 122, 8, 3, 224, 118, 8, 3, 224, 151, 8, 3, 224, 135, 8, 3, 224, 127, + 8, 3, 224, 133, 8, 3, 224, 101, 8, 3, 224, 100, 8, 3, 224, 105, 8, 3, + 224, 104, 8, 3, 224, 102, 8, 3, 224, 103, 8, 3, 252, 97, 8, 3, 252, 96, + 8, 3, 252, 103, 8, 3, 252, 98, 8, 3, 252, 100, 8, 3, 252, 99, 8, 3, 252, + 102, 8, 3, 252, 101, 8, 3, 252, 109, 8, 3, 252, 108, 8, 3, 252, 112, 8, + 3, 252, 110, 8, 3, 252, 88, 8, 3, 252, 90, 8, 3, 252, 89, 8, 3, 252, 93, + 8, 3, 252, 92, 8, 3, 252, 95, 8, 3, 252, 94, 8, 3, 252, 104, 8, 3, 252, + 107, 8, 3, 252, 105, 8, 3, 252, 84, 8, 3, 252, 83, 8, 3, 252, 91, 8, 3, + 252, 87, 8, 3, 252, 85, 8, 3, 252, 86, 8, 3, 252, 80, 8, 3, 252, 79, 8, + 3, 252, 82, 8, 3, 252, 81, 8, 3, 229, 170, 8, 3, 229, 169, 8, 3, 229, + 175, 8, 3, 229, 171, 8, 3, 229, 172, 8, 3, 229, 174, 8, 3, 229, 173, 8, + 3, 229, 178, 8, 3, 229, 177, 8, 3, 229, 180, 8, 3, 229, 179, 8, 3, 229, + 166, 8, 3, 229, 165, 8, 3, 229, 168, 8, 3, 229, 167, 8, 3, 229, 159, 8, + 3, 229, 158, 8, 3, 229, 163, 8, 3, 229, 162, 8, 3, 229, 160, 8, 3, 229, + 161, 8, 3, 229, 153, 8, 3, 229, 152, 8, 3, 229, 157, 8, 3, 229, 156, 8, + 3, 229, 154, 8, 3, 229, 155, 8, 3, 241, 111, 8, 3, 241, 110, 8, 3, 241, + 116, 8, 3, 241, 112, 8, 3, 241, 113, 8, 3, 241, 115, 8, 3, 241, 114, 8, + 3, 241, 119, 8, 3, 241, 118, 8, 3, 241, 121, 8, 3, 241, 120, 8, 3, 241, + 102, 8, 3, 241, 104, 8, 3, 241, 103, 8, 3, 241, 107, 8, 3, 241, 106, 8, + 3, 241, 109, 8, 3, 241, 108, 8, 3, 241, 98, 8, 3, 241, 97, 8, 3, 241, + 105, 8, 3, 241, 101, 8, 3, 241, 99, 8, 3, 241, 100, 8, 3, 241, 92, 8, 3, + 241, 96, 8, 3, 241, 95, 8, 3, 241, 93, 8, 3, 241, 94, 8, 3, 230, 173, 8, + 3, 230, 172, 8, 3, 230, 231, 8, 3, 230, 179, 8, 3, 230, 204, 8, 3, 230, + 222, 8, 3, 230, 220, 8, 3, 231, 140, 8, 3, 231, 135, 8, 3, 185, 8, 3, + 231, 173, 8, 3, 230, 75, 8, 3, 230, 74, 8, 3, 230, 78, 8, 3, 230, 76, 8, + 3, 230, 122, 8, 3, 230, 108, 8, 3, 230, 162, 8, 3, 230, 127, 8, 3, 231, + 27, 8, 3, 231, 92, 8, 3, 230, 56, 8, 3, 230, 52, 8, 3, 230, 103, 8, 3, + 230, 71, 8, 3, 230, 64, 8, 3, 230, 69, 8, 3, 230, 29, 8, 3, 230, 28, 8, + 3, 230, 34, 8, 3, 230, 31, 8, 3, 244, 84, 8, 3, 244, 79, 8, 3, 244, 122, + 8, 3, 244, 99, 8, 3, 244, 168, 8, 3, 244, 159, 8, 3, 244, 197, 8, 3, 244, + 171, 8, 3, 244, 4, 8, 3, 244, 44, 8, 3, 244, 28, 8, 3, 243, 219, 8, 3, + 243, 218, 8, 3, 243, 235, 8, 3, 243, 224, 8, 3, 243, 222, 8, 3, 243, 223, + 8, 3, 243, 206, 8, 3, 243, 205, 8, 3, 243, 209, 8, 3, 243, 207, 8, 3, + 213, 144, 8, 3, 213, 139, 8, 3, 213, 176, 8, 3, 213, 153, 8, 3, 213, 166, + 8, 3, 213, 163, 8, 3, 213, 168, 8, 3, 213, 167, 8, 3, 214, 7, 8, 3, 214, + 2, 8, 3, 214, 27, 8, 3, 214, 18, 8, 3, 213, 125, 8, 3, 213, 121, 8, 3, + 213, 138, 8, 3, 213, 126, 8, 3, 213, 178, 8, 3, 213, 244, 8, 3, 212, 110, + 8, 3, 212, 108, 8, 3, 212, 116, 8, 3, 212, 113, 8, 3, 212, 111, 8, 3, + 212, 112, 8, 3, 212, 102, 8, 3, 212, 101, 8, 3, 212, 106, 8, 3, 212, 105, + 8, 3, 212, 103, 8, 3, 212, 104, 8, 3, 247, 179, 8, 3, 247, 167, 8, 3, + 248, 4, 8, 3, 247, 204, 8, 3, 247, 237, 8, 3, 247, 241, 8, 3, 247, 240, + 8, 3, 248, 153, 8, 3, 248, 148, 8, 3, 248, 222, 8, 3, 248, 173, 8, 3, + 246, 63, 8, 3, 246, 64, 8, 3, 247, 121, 8, 3, 246, 103, 8, 3, 247, 146, + 8, 3, 247, 123, 8, 3, 248, 31, 8, 3, 248, 91, 8, 3, 248, 46, 8, 3, 246, + 54, 8, 3, 246, 52, 8, 3, 246, 79, 8, 3, 246, 62, 8, 3, 246, 57, 8, 3, + 246, 60, 8, 3, 216, 68, 8, 3, 216, 62, 8, 3, 216, 118, 8, 3, 216, 77, 8, + 3, 216, 110, 8, 3, 216, 112, 8, 3, 216, 111, 8, 3, 217, 47, 8, 3, 217, + 34, 8, 3, 217, 106, 8, 3, 217, 55, 8, 3, 215, 103, 8, 3, 215, 102, 8, 3, + 215, 105, 8, 3, 215, 104, 8, 3, 216, 6, 8, 3, 216, 2, 8, 3, 111, 8, 3, + 216, 14, 8, 3, 216, 214, 8, 3, 217, 23, 8, 3, 216, 238, 8, 3, 215, 88, 8, + 3, 215, 83, 8, 3, 215, 119, 8, 3, 215, 101, 8, 3, 215, 89, 8, 3, 215, 99, + 8, 3, 248, 108, 8, 3, 248, 107, 8, 3, 248, 113, 8, 3, 248, 109, 8, 3, + 248, 110, 8, 3, 248, 112, 8, 3, 248, 111, 8, 3, 248, 129, 8, 3, 248, 128, + 8, 3, 248, 136, 8, 3, 248, 130, 8, 3, 248, 98, 8, 3, 248, 100, 8, 3, 248, + 99, 8, 3, 248, 103, 8, 3, 248, 102, 8, 3, 248, 106, 8, 3, 248, 104, 8, 3, + 248, 121, 8, 3, 248, 124, 8, 3, 248, 122, 8, 3, 248, 94, 8, 3, 248, 93, + 8, 3, 248, 101, 8, 3, 248, 97, 8, 3, 248, 95, 8, 3, 248, 96, 8, 3, 229, + 127, 8, 3, 229, 126, 8, 3, 229, 134, 8, 3, 229, 129, 8, 3, 229, 130, 8, + 3, 229, 131, 8, 3, 229, 143, 8, 3, 229, 142, 8, 3, 229, 149, 8, 3, 229, + 144, 8, 3, 229, 119, 8, 3, 229, 118, 8, 3, 229, 125, 8, 3, 229, 120, 8, + 3, 229, 135, 8, 3, 229, 141, 8, 3, 229, 139, 8, 3, 229, 111, 8, 3, 229, + 110, 8, 3, 229, 116, 8, 3, 229, 114, 8, 3, 229, 112, 8, 3, 229, 113, 8, + 3, 241, 78, 8, 3, 241, 77, 8, 3, 241, 84, 8, 3, 241, 79, 8, 3, 241, 81, + 8, 3, 241, 80, 8, 3, 241, 83, 8, 3, 241, 82, 8, 3, 241, 89, 8, 3, 241, + 88, 8, 3, 241, 91, 8, 3, 241, 90, 8, 3, 241, 72, 8, 3, 241, 73, 8, 3, + 241, 75, 8, 3, 241, 74, 8, 3, 241, 76, 8, 3, 241, 85, 8, 3, 241, 87, 8, + 3, 241, 86, 8, 3, 241, 71, 8, 3, 228, 190, 8, 3, 228, 188, 8, 3, 228, + 234, 8, 3, 228, 193, 8, 3, 228, 216, 8, 3, 228, 230, 8, 3, 228, 229, 8, + 3, 229, 184, 8, 3, 197, 8, 3, 229, 198, 8, 3, 227, 187, 8, 3, 227, 189, + 8, 3, 227, 188, 8, 3, 228, 52, 8, 3, 228, 39, 8, 3, 228, 75, 8, 3, 228, + 61, 8, 3, 229, 84, 8, 3, 229, 108, 8, 3, 229, 95, 8, 3, 227, 182, 8, 3, + 227, 178, 8, 3, 227, 238, 8, 3, 227, 186, 8, 3, 227, 184, 8, 3, 227, 185, + 8, 3, 241, 142, 8, 3, 241, 141, 8, 3, 241, 147, 8, 3, 241, 143, 8, 3, + 241, 144, 8, 3, 241, 146, 8, 3, 241, 145, 8, 3, 241, 152, 8, 3, 241, 151, + 8, 3, 241, 154, 8, 3, 241, 153, 8, 3, 241, 134, 8, 3, 241, 136, 8, 3, + 241, 135, 8, 3, 241, 138, 8, 3, 241, 140, 8, 3, 241, 139, 8, 3, 241, 148, + 8, 3, 241, 150, 8, 3, 241, 149, 8, 3, 241, 130, 8, 3, 241, 129, 8, 3, + 241, 137, 8, 3, 241, 133, 8, 3, 241, 131, 8, 3, 241, 132, 8, 3, 241, 124, + 8, 3, 241, 123, 8, 3, 241, 128, 8, 3, 241, 127, 8, 3, 241, 125, 8, 3, + 241, 126, 8, 3, 232, 196, 8, 3, 232, 190, 8, 3, 232, 242, 8, 3, 232, 203, + 8, 3, 232, 234, 8, 3, 232, 233, 8, 3, 232, 237, 8, 3, 232, 235, 8, 3, + 233, 80, 8, 3, 233, 70, 8, 3, 233, 136, 8, 3, 233, 89, 8, 3, 232, 80, 8, + 3, 232, 79, 8, 3, 232, 82, 8, 3, 232, 81, 8, 3, 232, 117, 8, 3, 232, 107, + 8, 3, 232, 157, 8, 3, 232, 121, 8, 3, 233, 3, 8, 3, 233, 59, 8, 3, 233, + 18, 8, 3, 232, 75, 8, 3, 232, 73, 8, 3, 232, 99, 8, 3, 232, 78, 8, 3, + 232, 76, 8, 3, 232, 77, 8, 3, 232, 55, 8, 3, 232, 54, 8, 3, 232, 63, 8, + 3, 232, 58, 8, 3, 232, 56, 8, 3, 232, 57, 8, 3, 242, 190, 8, 3, 242, 189, + 8, 3, 242, 215, 8, 3, 242, 200, 8, 3, 242, 207, 8, 3, 242, 206, 8, 3, + 242, 209, 8, 3, 242, 208, 8, 3, 243, 90, 8, 3, 243, 85, 8, 3, 243, 136, + 8, 3, 243, 100, 8, 3, 242, 92, 8, 3, 242, 91, 8, 3, 242, 94, 8, 3, 242, + 93, 8, 3, 242, 155, 8, 3, 242, 153, 8, 3, 242, 175, 8, 3, 242, 163, 8, 3, + 243, 34, 8, 3, 243, 32, 8, 3, 243, 63, 8, 3, 243, 45, 8, 3, 242, 82, 8, + 3, 242, 81, 8, 3, 242, 114, 8, 3, 242, 90, 8, 3, 242, 83, 8, 3, 242, 89, + 8, 3, 234, 62, 8, 3, 234, 61, 8, 3, 234, 93, 8, 3, 234, 76, 8, 3, 234, + 86, 8, 3, 234, 89, 8, 3, 234, 87, 8, 3, 234, 203, 8, 3, 234, 191, 8, 3, + 176, 8, 3, 234, 229, 8, 3, 233, 201, 8, 3, 233, 206, 8, 3, 233, 203, 8, + 3, 234, 1, 8, 3, 233, 253, 8, 3, 234, 29, 8, 3, 234, 8, 8, 3, 234, 157, + 8, 3, 234, 141, 8, 3, 234, 183, 8, 3, 234, 160, 8, 3, 233, 190, 8, 3, + 233, 187, 8, 3, 233, 218, 8, 3, 233, 200, 8, 3, 233, 193, 8, 3, 233, 197, + 8, 3, 243, 16, 8, 3, 243, 15, 8, 3, 243, 20, 8, 3, 243, 17, 8, 3, 243, + 19, 8, 3, 243, 18, 8, 3, 243, 27, 8, 3, 243, 26, 8, 3, 243, 30, 8, 3, + 243, 28, 8, 3, 243, 7, 8, 3, 243, 6, 8, 3, 243, 9, 8, 3, 243, 8, 8, 3, + 243, 12, 8, 3, 243, 11, 8, 3, 243, 14, 8, 3, 243, 13, 8, 3, 243, 22, 8, + 3, 243, 21, 8, 3, 243, 25, 8, 3, 243, 23, 8, 3, 243, 2, 8, 3, 243, 1, 8, + 3, 243, 10, 8, 3, 243, 5, 8, 3, 243, 3, 8, 3, 243, 4, 8, 3, 230, 250, 8, + 3, 230, 251, 8, 3, 231, 13, 8, 3, 231, 12, 8, 3, 231, 15, 8, 3, 231, 14, + 8, 3, 230, 241, 8, 3, 230, 243, 8, 3, 230, 242, 8, 3, 230, 246, 8, 3, + 230, 245, 8, 3, 230, 248, 8, 3, 230, 247, 8, 3, 230, 252, 8, 3, 230, 254, + 8, 3, 230, 253, 8, 3, 230, 237, 8, 3, 230, 236, 8, 3, 230, 244, 8, 3, + 230, 240, 8, 3, 230, 238, 8, 3, 230, 239, 8, 3, 240, 181, 8, 3, 240, 180, + 8, 3, 240, 187, 8, 3, 240, 182, 8, 3, 240, 184, 8, 3, 240, 183, 8, 3, + 240, 186, 8, 3, 240, 185, 8, 3, 240, 192, 8, 3, 240, 191, 8, 3, 240, 194, + 8, 3, 240, 193, 8, 3, 240, 173, 8, 3, 240, 172, 8, 3, 240, 175, 8, 3, + 240, 174, 8, 3, 240, 177, 8, 3, 240, 176, 8, 3, 240, 179, 8, 3, 240, 178, + 8, 3, 240, 188, 8, 3, 240, 190, 8, 3, 240, 189, 8, 3, 229, 25, 8, 3, 229, + 27, 8, 3, 229, 26, 8, 3, 229, 68, 8, 3, 229, 66, 8, 3, 229, 78, 8, 3, + 229, 71, 8, 3, 228, 244, 8, 3, 228, 243, 8, 3, 228, 245, 8, 3, 228, 253, + 8, 3, 228, 250, 8, 3, 229, 5, 8, 3, 228, 255, 8, 3, 229, 59, 8, 3, 229, + 65, 8, 3, 229, 61, 8, 3, 241, 157, 8, 3, 241, 167, 8, 3, 241, 176, 8, 3, + 241, 252, 8, 3, 241, 244, 8, 3, 162, 8, 3, 242, 7, 8, 3, 240, 207, 8, 3, + 240, 206, 8, 3, 240, 209, 8, 3, 240, 208, 8, 3, 240, 243, 8, 3, 240, 234, + 8, 3, 241, 69, 8, 3, 241, 48, 8, 3, 241, 195, 8, 3, 241, 239, 8, 3, 241, + 207, 8, 3, 212, 43, 8, 3, 212, 28, 8, 3, 212, 65, 8, 3, 212, 51, 8, 3, + 211, 185, 8, 3, 211, 187, 8, 3, 211, 186, 8, 3, 211, 203, 8, 3, 211, 227, + 8, 3, 211, 210, 8, 3, 212, 5, 8, 3, 212, 22, 8, 3, 212, 10, 8, 3, 210, + 30, 8, 3, 210, 29, 8, 3, 210, 44, 8, 3, 210, 32, 8, 3, 210, 37, 8, 3, + 210, 39, 8, 3, 210, 38, 8, 3, 210, 102, 8, 3, 210, 99, 8, 3, 210, 116, 8, + 3, 210, 105, 8, 3, 210, 6, 8, 3, 210, 8, 8, 3, 210, 7, 8, 3, 210, 19, 8, + 3, 210, 18, 8, 3, 210, 23, 8, 3, 210, 20, 8, 3, 210, 84, 8, 3, 210, 94, + 8, 3, 210, 88, 8, 3, 210, 2, 8, 3, 210, 1, 8, 3, 210, 13, 8, 3, 210, 5, + 8, 3, 210, 3, 8, 3, 210, 4, 8, 3, 209, 245, 8, 3, 209, 244, 8, 3, 209, + 250, 8, 3, 209, 248, 8, 3, 209, 246, 8, 3, 209, 247, 8, 3, 250, 29, 8, 3, + 250, 25, 8, 3, 250, 52, 8, 3, 250, 38, 8, 3, 250, 49, 8, 3, 250, 43, 8, + 3, 250, 51, 8, 3, 250, 50, 8, 3, 250, 225, 8, 3, 250, 218, 8, 3, 251, 34, + 8, 3, 250, 252, 8, 3, 249, 105, 8, 3, 249, 107, 8, 3, 249, 106, 8, 3, + 249, 154, 8, 3, 249, 145, 8, 3, 249, 239, 8, 3, 249, 170, 8, 3, 250, 161, + 8, 3, 250, 191, 8, 3, 250, 166, 8, 3, 249, 85, 8, 3, 249, 83, 8, 3, 249, + 113, 8, 3, 249, 103, 8, 3, 249, 90, 8, 3, 249, 102, 8, 3, 249, 64, 8, 3, + 249, 63, 8, 3, 249, 74, 8, 3, 249, 70, 8, 3, 249, 65, 8, 3, 249, 67, 8, + 3, 209, 228, 8, 3, 209, 227, 8, 3, 209, 234, 8, 3, 209, 229, 8, 3, 209, + 231, 8, 3, 209, 230, 8, 3, 209, 233, 8, 3, 209, 232, 8, 3, 209, 240, 8, + 3, 209, 239, 8, 3, 209, 243, 8, 3, 209, 241, 8, 3, 209, 224, 8, 3, 209, + 226, 8, 3, 209, 225, 8, 3, 209, 235, 8, 3, 209, 238, 8, 3, 209, 236, 8, + 3, 209, 217, 8, 3, 209, 221, 8, 3, 209, 220, 8, 3, 209, 218, 8, 3, 209, + 219, 8, 3, 209, 211, 8, 3, 209, 210, 8, 3, 209, 216, 8, 3, 209, 214, 8, + 3, 209, 212, 8, 3, 209, 213, 8, 3, 227, 105, 8, 3, 227, 104, 8, 3, 227, + 110, 8, 3, 227, 106, 8, 3, 227, 107, 8, 3, 227, 109, 8, 3, 227, 108, 8, + 3, 227, 115, 8, 3, 227, 114, 8, 3, 227, 118, 8, 3, 227, 117, 8, 3, 227, + 98, 8, 3, 227, 99, 8, 3, 227, 102, 8, 3, 227, 103, 8, 3, 227, 111, 8, 3, + 227, 113, 8, 3, 227, 93, 8, 3, 227, 101, 8, 3, 227, 97, 8, 3, 227, 94, 8, + 3, 227, 95, 8, 3, 227, 88, 8, 3, 227, 87, 8, 3, 227, 92, 8, 3, 227, 91, + 8, 3, 227, 89, 8, 3, 227, 90, 8, 3, 219, 128, 8, 3, 194, 8, 3, 219, 192, + 8, 3, 219, 131, 8, 3, 219, 184, 8, 3, 219, 187, 8, 3, 219, 185, 8, 3, + 221, 227, 8, 3, 221, 215, 8, 3, 206, 8, 3, 221, 235, 8, 3, 218, 29, 8, 3, + 218, 31, 8, 3, 218, 30, 8, 3, 219, 35, 8, 3, 219, 24, 8, 3, 219, 59, 8, + 3, 219, 39, 8, 3, 220, 115, 8, 3, 221, 182, 8, 3, 220, 140, 8, 3, 218, 6, + 8, 3, 218, 4, 8, 3, 218, 84, 8, 3, 218, 28, 8, 3, 218, 10, 8, 3, 218, 18, + 8, 3, 217, 167, 8, 3, 217, 166, 8, 3, 217, 233, 8, 3, 217, 174, 8, 3, + 217, 169, 8, 3, 217, 173, 8, 3, 218, 187, 8, 3, 218, 186, 8, 3, 218, 193, + 8, 3, 218, 188, 8, 3, 218, 190, 8, 3, 218, 192, 8, 3, 218, 191, 8, 3, + 218, 201, 8, 3, 218, 199, 8, 3, 218, 224, 8, 3, 218, 202, 8, 3, 218, 182, + 8, 3, 218, 181, 8, 3, 218, 185, 8, 3, 218, 183, 8, 3, 218, 195, 8, 3, + 218, 198, 8, 3, 218, 196, 8, 3, 218, 178, 8, 3, 218, 176, 8, 3, 218, 180, + 8, 3, 218, 179, 8, 3, 218, 171, 8, 3, 218, 170, 8, 3, 218, 175, 8, 3, + 218, 174, 8, 3, 218, 172, 8, 3, 218, 173, 8, 3, 210, 77, 8, 3, 210, 76, + 8, 3, 210, 82, 8, 3, 210, 79, 8, 3, 210, 59, 8, 3, 210, 61, 8, 3, 210, + 60, 8, 3, 210, 64, 8, 3, 210, 63, 8, 3, 210, 67, 8, 3, 210, 65, 8, 3, + 210, 71, 8, 3, 210, 70, 8, 3, 210, 74, 8, 3, 210, 72, 8, 3, 210, 55, 8, + 3, 210, 54, 8, 3, 210, 62, 8, 3, 210, 58, 8, 3, 210, 56, 8, 3, 210, 57, + 8, 3, 210, 47, 8, 3, 210, 46, 8, 3, 210, 51, 8, 3, 210, 50, 8, 3, 210, + 48, 8, 3, 210, 49, 8, 3, 250, 137, 8, 3, 250, 134, 8, 3, 250, 158, 8, 3, + 250, 145, 8, 3, 250, 66, 8, 3, 250, 65, 8, 3, 250, 68, 8, 3, 250, 67, 8, + 3, 250, 80, 8, 3, 250, 79, 8, 3, 250, 87, 8, 3, 250, 82, 8, 3, 250, 116, + 8, 3, 250, 114, 8, 3, 250, 132, 8, 3, 250, 122, 8, 3, 250, 60, 8, 3, 250, + 70, 8, 3, 250, 64, 8, 3, 250, 61, 8, 3, 250, 63, 8, 3, 250, 54, 8, 3, + 250, 53, 8, 3, 250, 58, 8, 3, 250, 57, 8, 3, 250, 55, 8, 3, 250, 56, 8, + 3, 222, 176, 8, 3, 222, 180, 8, 3, 222, 159, 8, 3, 222, 160, 8, 3, 222, + 163, 8, 3, 222, 162, 8, 3, 222, 166, 8, 3, 222, 164, 8, 3, 222, 170, 8, + 3, 222, 169, 8, 3, 222, 175, 8, 3, 222, 171, 8, 3, 222, 155, 8, 3, 222, + 153, 8, 3, 222, 161, 8, 3, 222, 158, 8, 3, 222, 156, 8, 3, 222, 157, 8, + 3, 222, 148, 8, 3, 222, 147, 8, 3, 222, 152, 8, 3, 222, 151, 8, 3, 222, + 149, 8, 3, 222, 150, 8, 3, 228, 35, 8, 3, 228, 34, 8, 3, 228, 37, 8, 3, + 228, 36, 8, 3, 228, 27, 8, 3, 228, 29, 8, 3, 228, 28, 8, 3, 228, 31, 8, + 3, 228, 30, 8, 3, 228, 33, 8, 3, 228, 32, 8, 3, 228, 22, 8, 3, 228, 21, + 8, 3, 228, 26, 8, 3, 228, 25, 8, 3, 228, 23, 8, 3, 228, 24, 8, 3, 228, + 16, 8, 3, 228, 15, 8, 3, 228, 20, 8, 3, 228, 19, 8, 3, 228, 17, 8, 3, + 228, 18, 8, 3, 220, 73, 8, 3, 220, 68, 8, 3, 220, 103, 8, 3, 220, 84, 8, + 3, 219, 216, 8, 3, 219, 218, 8, 3, 219, 217, 8, 3, 219, 237, 8, 3, 219, + 234, 8, 3, 220, 8, 8, 3, 219, 255, 8, 3, 220, 43, 8, 3, 220, 36, 8, 3, + 220, 64, 8, 3, 220, 51, 8, 3, 219, 212, 8, 3, 219, 210, 8, 3, 219, 226, + 8, 3, 219, 215, 8, 3, 219, 213, 8, 3, 219, 214, 8, 3, 219, 195, 8, 3, + 219, 194, 8, 3, 219, 201, 8, 3, 219, 198, 8, 3, 219, 196, 8, 3, 219, 197, + 8, 3, 223, 142, 8, 3, 223, 136, 8, 3, 205, 8, 3, 223, 148, 8, 3, 222, + 121, 8, 3, 222, 123, 8, 3, 222, 122, 8, 3, 222, 189, 8, 3, 222, 182, 8, + 3, 222, 212, 8, 3, 222, 193, 8, 3, 223, 44, 8, 3, 223, 129, 8, 3, 223, + 82, 8, 3, 222, 114, 8, 3, 222, 111, 8, 3, 222, 141, 8, 3, 222, 120, 8, 3, + 222, 116, 8, 3, 222, 117, 8, 3, 222, 96, 8, 3, 222, 95, 8, 3, 222, 101, + 8, 3, 222, 99, 8, 3, 222, 97, 8, 3, 222, 98, 8, 3, 235, 99, 8, 3, 235, + 98, 8, 3, 235, 109, 8, 3, 235, 100, 8, 3, 235, 105, 8, 3, 235, 104, 8, 3, + 235, 107, 8, 3, 235, 106, 8, 3, 235, 42, 8, 3, 235, 41, 8, 3, 235, 44, 8, + 3, 235, 43, 8, 3, 235, 57, 8, 3, 235, 55, 8, 3, 235, 69, 8, 3, 235, 59, + 8, 3, 235, 35, 8, 3, 235, 33, 8, 3, 235, 52, 8, 3, 235, 40, 8, 3, 235, + 37, 8, 3, 235, 38, 8, 3, 235, 27, 8, 3, 235, 26, 8, 3, 235, 31, 8, 3, + 235, 30, 8, 3, 235, 28, 8, 3, 235, 29, 8, 3, 224, 47, 8, 3, 224, 45, 8, + 3, 224, 54, 8, 3, 224, 48, 8, 3, 224, 51, 8, 3, 224, 50, 8, 3, 224, 53, + 8, 3, 224, 52, 8, 3, 224, 0, 8, 3, 223, 253, 8, 3, 224, 2, 8, 3, 224, 1, + 8, 3, 224, 34, 8, 3, 224, 33, 8, 3, 224, 43, 8, 3, 224, 37, 8, 3, 223, + 248, 8, 3, 223, 244, 8, 3, 224, 31, 8, 3, 223, 252, 8, 3, 223, 250, 8, 3, + 223, 251, 8, 3, 223, 228, 8, 3, 223, 226, 8, 3, 223, 238, 8, 3, 223, 231, + 8, 3, 223, 229, 8, 3, 223, 230, 8, 3, 235, 88, 8, 3, 235, 87, 8, 3, 235, + 94, 8, 3, 235, 89, 8, 3, 235, 91, 8, 3, 235, 90, 8, 3, 235, 93, 8, 3, + 235, 92, 8, 3, 235, 79, 8, 3, 235, 81, 8, 3, 235, 80, 8, 3, 235, 84, 8, + 3, 235, 83, 8, 3, 235, 86, 8, 3, 235, 85, 8, 3, 235, 75, 8, 3, 235, 74, + 8, 3, 235, 82, 8, 3, 235, 78, 8, 3, 235, 76, 8, 3, 235, 77, 8, 3, 235, + 71, 8, 3, 235, 70, 8, 3, 235, 73, 8, 3, 235, 72, 8, 3, 228, 163, 8, 3, + 228, 162, 8, 3, 228, 170, 8, 3, 228, 164, 8, 3, 228, 166, 8, 3, 228, 165, + 8, 3, 228, 169, 8, 3, 228, 167, 8, 3, 228, 152, 8, 3, 228, 153, 8, 3, + 228, 158, 8, 3, 228, 157, 8, 3, 228, 161, 8, 3, 228, 159, 8, 3, 228, 147, + 8, 3, 228, 156, 8, 3, 228, 151, 8, 3, 228, 148, 8, 3, 228, 149, 8, 3, + 228, 142, 8, 3, 228, 141, 8, 3, 228, 146, 8, 3, 228, 145, 8, 3, 228, 143, + 8, 3, 228, 144, 8, 3, 227, 138, 8, 3, 227, 137, 8, 3, 227, 149, 8, 3, + 227, 142, 8, 3, 227, 146, 8, 3, 227, 145, 8, 3, 227, 148, 8, 3, 227, 147, + 8, 3, 227, 125, 8, 3, 227, 127, 8, 3, 227, 126, 8, 3, 227, 131, 8, 3, + 227, 130, 8, 3, 227, 135, 8, 3, 227, 132, 8, 3, 227, 123, 8, 3, 227, 121, + 8, 3, 227, 129, 8, 3, 227, 124, 8, 3, 211, 150, 8, 3, 211, 149, 8, 3, + 211, 157, 8, 3, 211, 152, 8, 3, 211, 154, 8, 3, 211, 153, 8, 3, 211, 156, + 8, 3, 211, 155, 8, 3, 211, 139, 8, 3, 211, 140, 8, 3, 211, 144, 8, 3, + 211, 143, 8, 3, 211, 148, 8, 3, 211, 146, 8, 3, 211, 121, 8, 3, 211, 119, + 8, 3, 211, 131, 8, 3, 211, 124, 8, 3, 211, 122, 8, 3, 211, 123, 8, 3, + 210, 250, 8, 3, 210, 248, 8, 3, 211, 8, 8, 3, 210, 251, 8, 3, 211, 2, 8, + 3, 211, 1, 8, 3, 211, 5, 8, 3, 211, 3, 8, 3, 210, 191, 8, 3, 210, 190, 8, + 3, 210, 194, 8, 3, 210, 192, 8, 3, 210, 224, 8, 3, 210, 221, 8, 3, 210, + 244, 8, 3, 210, 228, 8, 3, 210, 182, 8, 3, 210, 178, 8, 3, 210, 212, 8, + 3, 210, 189, 8, 3, 210, 185, 8, 3, 210, 186, 8, 3, 210, 162, 8, 3, 210, + 161, 8, 3, 210, 169, 8, 3, 210, 165, 8, 3, 210, 163, 8, 3, 210, 164, 8, + 34, 224, 34, 8, 34, 232, 242, 8, 34, 234, 62, 8, 34, 227, 142, 8, 34, + 249, 70, 8, 34, 218, 193, 8, 34, 243, 13, 8, 34, 243, 45, 8, 34, 230, + 231, 8, 34, 240, 181, 8, 34, 232, 57, 8, 34, 252, 84, 8, 34, 230, 127, 8, + 34, 210, 244, 8, 34, 224, 122, 8, 34, 240, 175, 8, 34, 217, 47, 8, 34, + 243, 136, 8, 34, 210, 5, 8, 34, 249, 64, 8, 34, 248, 96, 8, 34, 251, 99, + 8, 34, 243, 9, 8, 34, 227, 132, 8, 34, 215, 119, 8, 34, 226, 176, 8, 34, + 235, 75, 8, 34, 210, 19, 8, 34, 224, 101, 8, 34, 241, 109, 8, 34, 210, + 250, 8, 34, 212, 112, 8, 34, 219, 201, 8, 34, 213, 244, 8, 34, 210, 116, + 8, 34, 235, 69, 8, 34, 227, 97, 8, 34, 235, 73, 8, 34, 242, 155, 8, 34, + 235, 93, 8, 34, 211, 227, 8, 34, 246, 79, 8, 34, 219, 214, 8, 34, 232, + 237, 8, 34, 249, 74, 8, 34, 249, 106, 8, 34, 250, 38, 8, 34, 240, 178, 8, + 34, 220, 73, 8, 34, 210, 4, 8, 34, 219, 255, 8, 34, 250, 132, 8, 34, 209, + 231, 8, 34, 229, 174, 8, 34, 234, 183, 232, 197, 1, 252, 192, 232, 197, + 1, 190, 232, 197, 1, 225, 148, 232, 197, 1, 248, 222, 232, 197, 1, 217, + 106, 232, 197, 1, 216, 209, 232, 197, 1, 243, 136, 232, 197, 1, 176, 232, + 197, 1, 234, 133, 232, 197, 1, 235, 142, 232, 197, 1, 251, 34, 232, 197, + 1, 250, 158, 232, 197, 1, 246, 39, 232, 197, 1, 215, 184, 232, 197, 1, + 215, 176, 232, 197, 1, 185, 232, 197, 1, 197, 232, 197, 1, 233, 136, 232, + 197, 1, 206, 232, 197, 1, 210, 82, 232, 197, 1, 210, 116, 232, 197, 1, + 229, 78, 232, 197, 1, 162, 232, 197, 1, 211, 165, 232, 197, 1, 241, 190, + 232, 197, 1, 244, 197, 232, 197, 1, 212, 65, 232, 197, 1, 220, 103, 232, + 197, 1, 191, 232, 197, 1, 242, 250, 232, 197, 1, 61, 232, 197, 1, 254, + 244, 232, 197, 1, 75, 232, 197, 1, 245, 56, 232, 197, 1, 73, 232, 197, 1, + 76, 232, 197, 1, 70, 232, 197, 1, 214, 214, 232, 197, 1, 214, 208, 232, + 197, 1, 226, 235, 232, 197, 1, 138, 230, 33, 216, 118, 232, 197, 1, 138, + 229, 230, 225, 17, 232, 197, 1, 138, 230, 33, 249, 73, 232, 197, 1, 138, + 230, 33, 251, 206, 232, 197, 1, 138, 230, 33, 197, 232, 197, 1, 138, 230, + 33, 235, 116, 232, 197, 224, 142, 249, 220, 232, 197, 224, 142, 243, 230, + 218, 130, 41, 3, 245, 210, 41, 3, 245, 206, 41, 3, 241, 221, 41, 3, 212, + 17, 41, 3, 212, 16, 41, 3, 225, 212, 41, 3, 252, 14, 41, 3, 252, 67, 41, + 3, 231, 117, 41, 3, 233, 248, 41, 3, 231, 7, 41, 3, 243, 76, 41, 3, 244, + 148, 41, 3, 213, 250, 41, 3, 217, 12, 41, 3, 216, 195, 41, 3, 248, 17, + 41, 3, 248, 14, 41, 3, 233, 51, 41, 3, 223, 109, 41, 3, 248, 78, 41, 3, + 229, 140, 41, 3, 221, 171, 41, 3, 220, 62, 41, 3, 210, 92, 41, 3, 210, + 73, 41, 3, 250, 183, 41, 3, 235, 125, 41, 3, 228, 177, 41, 3, 211, 44, + 41, 3, 234, 182, 41, 3, 229, 52, 41, 3, 243, 56, 41, 3, 231, 81, 41, 3, + 229, 104, 41, 3, 227, 156, 41, 3, 73, 41, 3, 236, 0, 41, 3, 241, 181, 41, + 3, 241, 161, 41, 3, 211, 250, 41, 3, 211, 241, 41, 3, 225, 109, 41, 3, + 252, 12, 41, 3, 252, 7, 41, 3, 231, 110, 41, 3, 233, 245, 41, 3, 231, 4, + 41, 3, 243, 72, 41, 3, 244, 122, 41, 3, 213, 176, 41, 3, 216, 118, 41, 3, + 216, 176, 41, 3, 248, 9, 41, 3, 248, 13, 41, 3, 232, 242, 41, 3, 223, 36, + 41, 3, 248, 4, 41, 3, 229, 134, 41, 3, 219, 192, 41, 3, 220, 33, 41, 3, + 210, 44, 41, 3, 210, 69, 41, 3, 250, 52, 41, 3, 235, 109, 41, 3, 228, + 170, 41, 3, 211, 8, 41, 3, 234, 93, 41, 3, 229, 44, 41, 3, 242, 215, 41, + 3, 230, 231, 41, 3, 228, 234, 41, 3, 227, 149, 41, 3, 61, 41, 3, 254, + 124, 41, 3, 229, 73, 41, 3, 162, 41, 3, 242, 19, 41, 3, 212, 65, 41, 3, + 212, 55, 41, 3, 190, 41, 3, 252, 19, 41, 3, 252, 192, 41, 3, 231, 125, + 41, 3, 233, 252, 41, 3, 233, 251, 41, 3, 231, 11, 41, 3, 243, 80, 41, 3, + 244, 197, 41, 3, 214, 27, 41, 3, 217, 106, 41, 3, 216, 209, 41, 3, 248, + 26, 41, 3, 248, 16, 41, 3, 233, 136, 41, 3, 205, 41, 3, 248, 222, 41, 3, + 229, 149, 41, 3, 206, 41, 3, 220, 103, 41, 3, 210, 116, 41, 3, 210, 82, + 41, 3, 251, 34, 41, 3, 235, 142, 41, 3, 228, 186, 41, 3, 191, 41, 3, 176, + 41, 3, 234, 235, 41, 3, 229, 57, 41, 3, 243, 136, 41, 3, 185, 41, 3, 197, + 41, 3, 227, 166, 41, 3, 226, 184, 41, 3, 226, 180, 41, 3, 241, 54, 41, 3, + 211, 215, 41, 3, 211, 211, 41, 3, 224, 250, 41, 3, 252, 10, 41, 3, 251, + 194, 41, 3, 231, 105, 41, 3, 233, 243, 41, 3, 231, 0, 41, 3, 243, 68, 41, + 3, 244, 35, 41, 3, 213, 127, 41, 3, 216, 18, 41, 3, 216, 154, 41, 3, 248, + 7, 41, 3, 248, 11, 41, 3, 232, 128, 41, 3, 222, 198, 41, 3, 247, 126, 41, + 3, 229, 121, 41, 3, 219, 41, 41, 3, 220, 2, 41, 3, 210, 21, 41, 3, 210, + 66, 41, 3, 249, 175, 41, 3, 235, 60, 41, 3, 228, 160, 41, 3, 210, 229, + 41, 3, 234, 11, 41, 3, 229, 42, 41, 3, 242, 165, 41, 3, 230, 133, 41, 3, + 228, 65, 41, 3, 227, 133, 41, 3, 70, 41, 3, 214, 190, 41, 3, 240, 223, + 41, 3, 240, 213, 41, 3, 211, 195, 41, 3, 211, 189, 41, 3, 224, 151, 41, + 3, 252, 9, 41, 3, 251, 126, 41, 3, 231, 104, 41, 3, 233, 241, 41, 3, 230, + 255, 41, 3, 243, 67, 41, 3, 243, 235, 41, 3, 212, 116, 41, 3, 215, 119, + 41, 3, 216, 137, 41, 3, 248, 5, 41, 3, 248, 10, 41, 3, 232, 99, 41, 3, + 222, 141, 41, 3, 246, 79, 41, 3, 229, 116, 41, 3, 218, 84, 41, 3, 219, + 226, 41, 3, 210, 13, 41, 3, 210, 62, 41, 3, 249, 113, 41, 3, 235, 52, 41, + 3, 228, 156, 41, 3, 210, 212, 41, 3, 233, 218, 41, 3, 229, 41, 41, 3, + 242, 114, 41, 3, 230, 103, 41, 3, 227, 238, 41, 3, 227, 129, 41, 3, 76, + 41, 3, 226, 197, 41, 3, 229, 1, 41, 3, 241, 69, 41, 3, 241, 57, 41, 3, + 211, 227, 41, 3, 211, 216, 41, 3, 225, 17, 41, 3, 252, 11, 41, 3, 251, + 206, 41, 3, 231, 106, 41, 3, 233, 244, 41, 3, 231, 2, 41, 3, 243, 70, 41, + 3, 243, 69, 41, 3, 244, 44, 41, 3, 213, 138, 41, 3, 111, 41, 3, 216, 157, + 41, 3, 248, 8, 41, 3, 248, 12, 41, 3, 232, 157, 41, 3, 222, 212, 41, 3, + 247, 146, 41, 3, 229, 125, 41, 3, 219, 59, 41, 3, 220, 8, 41, 3, 210, 23, + 41, 3, 210, 67, 41, 3, 249, 239, 41, 3, 235, 69, 41, 3, 228, 161, 41, 3, + 210, 244, 41, 3, 234, 29, 41, 3, 229, 43, 41, 3, 242, 175, 41, 3, 230, + 162, 41, 3, 228, 75, 41, 3, 227, 135, 41, 3, 75, 41, 3, 245, 151, 41, 3, + 229, 62, 41, 3, 241, 239, 41, 3, 241, 210, 41, 3, 212, 22, 41, 3, 212, + 12, 41, 3, 225, 222, 41, 3, 252, 15, 41, 3, 252, 76, 41, 3, 231, 118, 41, + 3, 233, 249, 41, 3, 233, 247, 41, 3, 231, 8, 41, 3, 243, 77, 41, 3, 243, + 75, 41, 3, 244, 155, 41, 3, 213, 255, 41, 3, 217, 23, 41, 3, 216, 196, + 41, 3, 248, 18, 41, 3, 248, 15, 41, 3, 233, 59, 41, 3, 223, 129, 41, 3, + 248, 91, 41, 3, 229, 141, 41, 3, 221, 182, 41, 3, 220, 64, 41, 3, 210, + 94, 41, 3, 210, 74, 41, 3, 250, 191, 41, 3, 235, 127, 41, 3, 228, 179, + 41, 3, 211, 47, 41, 3, 234, 183, 41, 3, 229, 53, 41, 3, 229, 49, 41, 3, + 243, 63, 41, 3, 243, 52, 41, 3, 231, 92, 41, 3, 229, 108, 41, 3, 227, + 157, 41, 3, 229, 80, 41, 3, 233, 23, 41, 249, 220, 41, 243, 230, 218, + 130, 41, 224, 14, 78, 41, 3, 229, 124, 244, 197, 41, 3, 229, 124, 176, + 41, 3, 229, 124, 219, 41, 41, 16, 244, 145, 41, 16, 234, 181, 41, 16, + 216, 82, 41, 16, 228, 209, 41, 16, 252, 148, 41, 16, 244, 196, 41, 16, + 217, 102, 41, 16, 248, 177, 41, 16, 247, 125, 41, 16, 233, 207, 41, 16, + 216, 22, 41, 16, 247, 145, 41, 16, 235, 61, 41, 21, 210, 86, 41, 21, 110, + 41, 21, 105, 41, 21, 158, 41, 21, 161, 41, 21, 189, 41, 21, 194, 41, 21, + 198, 41, 21, 195, 41, 21, 200, 41, 3, 229, 124, 185, 41, 3, 229, 124, + 247, 146, 33, 6, 1, 210, 90, 33, 4, 1, 210, 90, 33, 6, 1, 246, 35, 33, 4, + 1, 246, 35, 33, 6, 1, 223, 50, 246, 37, 33, 4, 1, 223, 50, 246, 37, 33, + 6, 1, 235, 186, 33, 4, 1, 235, 186, 33, 6, 1, 247, 162, 33, 4, 1, 247, + 162, 33, 6, 1, 230, 141, 214, 205, 33, 4, 1, 230, 141, 214, 205, 33, 6, + 1, 251, 137, 226, 202, 33, 4, 1, 251, 137, 226, 202, 33, 6, 1, 229, 88, + 211, 31, 33, 4, 1, 229, 88, 211, 31, 33, 6, 1, 211, 28, 2, 252, 186, 211, + 31, 33, 4, 1, 211, 28, 2, 252, 186, 211, 31, 33, 6, 1, 235, 184, 211, 59, + 33, 4, 1, 235, 184, 211, 59, 33, 6, 1, 223, 50, 210, 212, 33, 4, 1, 223, + 50, 210, 212, 33, 6, 1, 235, 184, 61, 33, 4, 1, 235, 184, 61, 33, 6, 1, + 250, 1, 232, 193, 210, 183, 33, 4, 1, 250, 1, 232, 193, 210, 183, 33, 6, + 1, 251, 215, 210, 183, 33, 4, 1, 251, 215, 210, 183, 33, 6, 1, 235, 184, + 250, 1, 232, 193, 210, 183, 33, 4, 1, 235, 184, 250, 1, 232, 193, 210, + 183, 33, 6, 1, 210, 246, 33, 4, 1, 210, 246, 33, 6, 1, 223, 50, 215, 179, + 33, 4, 1, 223, 50, 215, 179, 33, 6, 1, 219, 53, 248, 91, 33, 4, 1, 219, + 53, 248, 91, 33, 6, 1, 219, 53, 245, 175, 33, 4, 1, 219, 53, 245, 175, + 33, 6, 1, 219, 53, 245, 160, 33, 4, 1, 219, 53, 245, 160, 33, 6, 1, 230, + 145, 76, 33, 4, 1, 230, 145, 76, 33, 6, 1, 251, 241, 76, 33, 4, 1, 251, + 241, 76, 33, 6, 1, 52, 230, 145, 76, 33, 4, 1, 52, 230, 145, 76, 33, 1, + 230, 87, 76, 38, 33, 212, 100, 38, 33, 216, 249, 230, 192, 50, 38, 33, + 240, 212, 230, 192, 50, 38, 33, 216, 149, 230, 192, 50, 219, 94, 253, + 217, 38, 33, 1, 214, 202, 236, 61, 38, 33, 1, 73, 38, 33, 1, 211, 8, 38, + 33, 1, 70, 38, 33, 1, 242, 4, 50, 38, 33, 1, 211, 27, 38, 33, 1, 219, 53, + 50, 38, 33, 1, 226, 202, 38, 33, 234, 193, 38, 33, 225, 228, 33, 234, + 193, 33, 225, 228, 33, 6, 1, 246, 47, 33, 4, 1, 246, 47, 33, 6, 1, 246, + 28, 33, 4, 1, 246, 28, 33, 6, 1, 210, 52, 33, 4, 1, 210, 52, 33, 6, 1, + 250, 207, 33, 4, 1, 250, 207, 33, 6, 1, 246, 26, 33, 4, 1, 246, 26, 33, + 6, 1, 217, 24, 2, 230, 225, 103, 33, 4, 1, 217, 24, 2, 230, 225, 103, 33, + 6, 1, 215, 78, 33, 4, 1, 215, 78, 33, 6, 1, 215, 161, 33, 4, 1, 215, 161, + 33, 6, 1, 215, 165, 33, 4, 1, 215, 165, 33, 6, 1, 217, 29, 33, 4, 1, 217, + 29, 33, 6, 1, 240, 199, 33, 4, 1, 240, 199, 33, 6, 1, 219, 207, 33, 4, 1, + 219, 207, 38, 33, 1, 235, 184, 75, 20, 1, 61, 20, 1, 176, 20, 1, 70, 20, + 1, 233, 218, 20, 1, 245, 210, 20, 1, 223, 109, 20, 1, 217, 87, 20, 1, 76, + 20, 1, 227, 149, 20, 1, 73, 20, 1, 233, 136, 20, 1, 190, 20, 1, 222, 240, + 20, 1, 223, 30, 20, 1, 233, 50, 20, 1, 231, 80, 20, 1, 217, 102, 20, 1, + 229, 147, 20, 1, 228, 184, 20, 1, 193, 20, 1, 218, 5, 20, 1, 230, 103, + 20, 1, 220, 28, 20, 1, 219, 192, 20, 1, 220, 38, 20, 1, 220, 124, 20, 1, + 233, 156, 20, 1, 234, 157, 20, 1, 227, 210, 20, 1, 227, 238, 20, 1, 228, + 155, 20, 1, 210, 226, 20, 1, 219, 226, 20, 1, 210, 187, 20, 1, 191, 20, + 1, 228, 10, 20, 1, 234, 143, 20, 1, 225, 152, 20, 1, 228, 177, 20, 1, + 227, 247, 20, 1, 224, 145, 20, 1, 211, 192, 20, 1, 225, 212, 20, 1, 244, + 148, 20, 1, 222, 141, 20, 1, 232, 99, 20, 1, 230, 231, 20, 1, 228, 234, + 20, 1, 223, 52, 20, 1, 223, 172, 20, 1, 234, 166, 20, 1, 229, 8, 20, 1, + 229, 57, 20, 1, 229, 78, 20, 1, 220, 8, 20, 1, 224, 148, 20, 1, 243, 235, + 20, 1, 244, 38, 20, 1, 212, 65, 20, 1, 197, 20, 1, 232, 242, 20, 1, 225, + 109, 20, 1, 232, 120, 20, 1, 234, 29, 20, 1, 231, 115, 20, 1, 223, 84, + 20, 1, 231, 59, 20, 1, 185, 20, 1, 216, 118, 20, 1, 234, 93, 20, 1, 230, + 162, 20, 1, 231, 123, 20, 1, 216, 231, 20, 1, 233, 252, 20, 1, 216, 248, + 20, 1, 227, 239, 20, 1, 221, 252, 20, 1, 244, 193, 20, 1, 233, 254, 20, + 1, 234, 25, 20, 38, 164, 234, 6, 20, 38, 164, 215, 111, 20, 228, 183, 20, + 243, 230, 218, 130, 20, 249, 227, 20, 249, 220, 20, 220, 151, 20, 224, + 14, 78, 58, 1, 250, 97, 138, 210, 254, 225, 62, 58, 1, 250, 97, 138, 211, + 70, 225, 62, 58, 1, 250, 97, 138, 210, 254, 220, 85, 58, 1, 250, 97, 138, + 211, 70, 220, 85, 58, 1, 250, 97, 138, 210, 254, 224, 31, 58, 1, 250, 97, + 138, 211, 70, 224, 31, 58, 1, 250, 97, 138, 210, 254, 222, 141, 58, 1, + 250, 97, 138, 211, 70, 222, 141, 58, 1, 245, 21, 246, 119, 138, 130, 58, + 1, 125, 246, 119, 138, 130, 58, 1, 230, 226, 246, 119, 138, 130, 58, 1, + 121, 246, 119, 138, 130, 58, 1, 245, 20, 246, 119, 138, 130, 58, 1, 245, + 21, 246, 119, 233, 40, 138, 130, 58, 1, 125, 246, 119, 233, 40, 138, 130, + 58, 1, 230, 226, 246, 119, 233, 40, 138, 130, 58, 1, 121, 246, 119, 233, + 40, 138, 130, 58, 1, 245, 20, 246, 119, 233, 40, 138, 130, 58, 1, 245, + 21, 233, 40, 138, 130, 58, 1, 125, 233, 40, 138, 130, 58, 1, 230, 226, + 233, 40, 138, 130, 58, 1, 121, 233, 40, 138, 130, 58, 1, 245, 20, 233, + 40, 138, 130, 58, 1, 59, 67, 130, 58, 1, 59, 219, 96, 58, 1, 59, 203, + 130, 58, 1, 232, 109, 44, 249, 162, 254, 110, 58, 1, 223, 158, 120, 74, + 58, 1, 223, 158, 124, 74, 58, 1, 223, 158, 245, 32, 78, 58, 1, 223, 158, + 235, 194, 245, 32, 78, 58, 1, 121, 235, 194, 245, 32, 78, 58, 1, 218, + 112, 22, 125, 216, 31, 58, 1, 218, 112, 22, 121, 216, 31, 7, 6, 1, 245, + 200, 254, 171, 7, 4, 1, 245, 200, 254, 171, 7, 6, 1, 245, 200, 254, 197, + 7, 4, 1, 245, 200, 254, 197, 7, 6, 1, 241, 208, 7, 4, 1, 241, 208, 7, 6, + 1, 215, 40, 7, 4, 1, 215, 40, 7, 6, 1, 215, 230, 7, 4, 1, 215, 230, 7, 6, + 1, 249, 111, 7, 4, 1, 249, 111, 7, 6, 1, 249, 112, 2, 249, 220, 7, 4, 1, + 249, 112, 2, 249, 220, 7, 1, 4, 6, 245, 7, 7, 1, 4, 6, 222, 92, 7, 6, 1, + 255, 74, 7, 4, 1, 255, 74, 7, 6, 1, 254, 74, 7, 4, 1, 254, 74, 7, 6, 1, + 253, 193, 7, 4, 1, 253, 193, 7, 6, 1, 253, 177, 7, 4, 1, 253, 177, 7, 6, + 1, 253, 178, 2, 203, 130, 7, 4, 1, 253, 178, 2, 203, 130, 7, 6, 1, 253, + 168, 7, 4, 1, 253, 168, 7, 6, 1, 223, 50, 251, 68, 2, 247, 121, 7, 4, 1, + 223, 50, 251, 68, 2, 247, 121, 7, 6, 1, 235, 25, 2, 91, 7, 4, 1, 235, 25, + 2, 91, 7, 6, 1, 235, 25, 2, 248, 0, 91, 7, 4, 1, 235, 25, 2, 248, 0, 91, + 7, 6, 1, 235, 25, 2, 218, 104, 22, 248, 0, 91, 7, 4, 1, 235, 25, 2, 218, + 104, 22, 248, 0, 91, 7, 6, 1, 251, 136, 156, 7, 4, 1, 251, 136, 156, 7, + 6, 1, 233, 150, 2, 125, 91, 7, 4, 1, 233, 150, 2, 125, 91, 7, 6, 1, 144, + 2, 199, 218, 104, 226, 121, 7, 4, 1, 144, 2, 199, 218, 104, 226, 121, 7, + 6, 1, 144, 2, 232, 124, 7, 4, 1, 144, 2, 232, 124, 7, 6, 1, 226, 184, 7, + 4, 1, 226, 184, 7, 6, 1, 226, 107, 2, 218, 104, 216, 140, 248, 40, 7, 4, + 1, 226, 107, 2, 218, 104, 216, 140, 248, 40, 7, 6, 1, 226, 107, 2, 244, + 54, 7, 4, 1, 226, 107, 2, 244, 54, 7, 6, 1, 226, 107, 2, 218, 230, 217, + 78, 7, 4, 1, 226, 107, 2, 218, 230, 217, 78, 7, 6, 1, 224, 98, 2, 218, + 104, 216, 140, 248, 40, 7, 4, 1, 224, 98, 2, 218, 104, 216, 140, 248, 40, + 7, 6, 1, 224, 98, 2, 248, 0, 91, 7, 4, 1, 224, 98, 2, 248, 0, 91, 7, 6, + 1, 223, 225, 222, 187, 7, 4, 1, 223, 225, 222, 187, 7, 6, 1, 222, 131, + 222, 187, 7, 4, 1, 222, 131, 222, 187, 7, 6, 1, 214, 106, 2, 248, 0, 91, + 7, 4, 1, 214, 106, 2, 248, 0, 91, 7, 6, 1, 212, 106, 7, 4, 1, 212, 106, + 7, 6, 1, 213, 145, 210, 159, 7, 4, 1, 213, 145, 210, 159, 7, 6, 1, 216, + 153, 2, 91, 7, 4, 1, 216, 153, 2, 91, 7, 6, 1, 216, 153, 2, 218, 104, + 216, 140, 248, 40, 7, 4, 1, 216, 153, 2, 218, 104, 216, 140, 248, 40, 7, + 6, 1, 213, 245, 7, 4, 1, 213, 245, 7, 6, 1, 245, 66, 7, 4, 1, 245, 66, 7, + 6, 1, 235, 172, 7, 4, 1, 235, 172, 7, 6, 1, 249, 208, 7, 4, 1, 249, 208, + 58, 1, 214, 133, 7, 4, 1, 246, 70, 7, 4, 1, 232, 85, 7, 4, 1, 230, 81, 7, + 4, 1, 227, 202, 7, 4, 1, 222, 130, 7, 1, 4, 6, 222, 130, 7, 4, 1, 215, + 109, 7, 4, 1, 214, 197, 7, 6, 1, 235, 214, 249, 61, 7, 4, 1, 235, 214, + 249, 61, 7, 6, 1, 235, 214, 245, 7, 7, 4, 1, 235, 214, 245, 7, 7, 6, 1, + 235, 214, 243, 203, 7, 6, 1, 215, 94, 235, 214, 243, 203, 7, 4, 1, 215, + 94, 235, 214, 243, 203, 7, 6, 1, 215, 94, 156, 7, 4, 1, 215, 94, 156, 7, + 6, 1, 235, 214, 153, 7, 4, 1, 235, 214, 153, 7, 6, 1, 235, 214, 222, 92, + 7, 4, 1, 235, 214, 222, 92, 7, 6, 1, 235, 214, 217, 153, 7, 4, 1, 235, + 214, 217, 153, 58, 1, 121, 250, 32, 255, 15, 58, 1, 249, 227, 58, 1, 219, + 252, 245, 99, 50, 7, 6, 1, 222, 0, 7, 4, 1, 222, 0, 7, 6, 1, 215, 94, + 242, 61, 7, 4, 1, 233, 150, 2, 223, 56, 241, 53, 22, 252, 42, 7, 6, 1, + 230, 27, 2, 248, 40, 7, 4, 1, 230, 27, 2, 248, 40, 7, 6, 1, 251, 68, 2, + 130, 7, 4, 1, 251, 68, 2, 130, 7, 6, 1, 243, 204, 2, 226, 249, 91, 7, 4, + 1, 243, 204, 2, 226, 249, 91, 7, 6, 1, 235, 25, 2, 226, 249, 91, 7, 4, 1, + 235, 25, 2, 226, 249, 91, 7, 6, 1, 230, 27, 2, 226, 249, 91, 7, 4, 1, + 230, 27, 2, 226, 249, 91, 7, 6, 1, 223, 225, 2, 226, 249, 91, 7, 4, 1, + 223, 225, 2, 226, 249, 91, 7, 6, 1, 222, 93, 2, 226, 249, 91, 7, 4, 1, + 222, 93, 2, 226, 249, 91, 7, 6, 1, 242, 62, 2, 103, 58, 1, 6, 242, 62, 2, + 91, 58, 1, 4, 27, 226, 235, 7, 1, 4, 6, 215, 94, 193, 7, 245, 104, 1, + 223, 50, 245, 7, 7, 245, 104, 1, 223, 50, 226, 106, 7, 245, 104, 1, 235, + 194, 193, 7, 245, 104, 1, 240, 155, 232, 130, 7, 245, 104, 1, 254, 24, + 193, 217, 231, 229, 215, 1, 61, 217, 231, 229, 215, 1, 73, 217, 231, 229, + 215, 5, 246, 49, 217, 231, 229, 215, 1, 70, 217, 231, 229, 215, 1, 75, + 217, 231, 229, 215, 1, 76, 217, 231, 229, 215, 5, 241, 254, 217, 231, + 229, 215, 1, 234, 29, 217, 231, 229, 215, 1, 234, 106, 217, 231, 229, + 215, 1, 242, 175, 217, 231, 229, 215, 1, 242, 225, 217, 231, 229, 215, 5, + 254, 76, 217, 231, 229, 215, 1, 249, 239, 217, 231, 229, 215, 1, 250, 87, + 217, 231, 229, 215, 1, 235, 69, 217, 231, 229, 215, 1, 235, 110, 217, + 231, 229, 215, 1, 215, 134, 217, 231, 229, 215, 1, 215, 140, 217, 231, + 229, 215, 1, 248, 106, 217, 231, 229, 215, 1, 248, 115, 217, 231, 229, + 215, 1, 111, 217, 231, 229, 215, 1, 216, 157, 217, 231, 229, 215, 1, 247, + 146, 217, 231, 229, 215, 1, 248, 8, 217, 231, 229, 215, 1, 228, 75, 217, + 231, 229, 215, 1, 225, 17, 217, 231, 229, 215, 1, 225, 122, 217, 231, + 229, 215, 1, 251, 206, 217, 231, 229, 215, 1, 252, 11, 217, 231, 229, + 215, 1, 230, 162, 217, 231, 229, 215, 1, 222, 212, 217, 231, 229, 215, 1, + 232, 157, 217, 231, 229, 215, 1, 222, 166, 217, 231, 229, 215, 1, 219, + 59, 217, 231, 229, 215, 1, 241, 69, 217, 231, 229, 215, 25, 5, 61, 217, + 231, 229, 215, 25, 5, 73, 217, 231, 229, 215, 25, 5, 70, 217, 231, 229, + 215, 25, 5, 75, 217, 231, 229, 215, 25, 5, 226, 184, 217, 231, 229, 215, + 225, 13, 231, 159, 217, 231, 229, 215, 225, 13, 231, 158, 217, 231, 229, + 215, 225, 13, 231, 157, 217, 231, 229, 215, 225, 13, 231, 156, 228, 57, + 235, 241, 244, 3, 123, 224, 22, 228, 57, 235, 241, 244, 3, 123, 242, 28, + 228, 57, 235, 241, 244, 3, 134, 224, 20, 228, 57, 235, 241, 244, 3, 123, + 219, 118, 228, 57, 235, 241, 244, 3, 123, 245, 189, 228, 57, 235, 241, + 244, 3, 134, 219, 117, 228, 57, 235, 241, 224, 23, 78, 228, 57, 235, 241, + 225, 41, 78, 228, 57, 235, 241, 222, 119, 78, 228, 57, 235, 241, 224, 24, + 78, 225, 145, 1, 176, 225, 145, 1, 234, 133, 225, 145, 1, 243, 136, 225, + 145, 1, 229, 78, 225, 145, 1, 251, 34, 225, 145, 1, 250, 158, 225, 145, + 1, 235, 142, 225, 145, 1, 227, 166, 225, 145, 1, 217, 106, 225, 145, 1, + 216, 209, 225, 145, 1, 248, 222, 225, 145, 1, 197, 225, 145, 1, 190, 225, + 145, 1, 225, 148, 225, 145, 1, 252, 192, 225, 145, 1, 185, 225, 145, 1, + 215, 184, 225, 145, 1, 215, 176, 225, 145, 1, 246, 39, 225, 145, 1, 212, + 65, 225, 145, 1, 210, 82, 225, 145, 1, 210, 116, 225, 145, 1, 4, 61, 225, + 145, 1, 191, 225, 145, 1, 205, 225, 145, 1, 233, 136, 225, 145, 1, 220, + 103, 225, 145, 1, 206, 225, 145, 1, 162, 225, 145, 1, 61, 225, 145, 1, + 73, 225, 145, 1, 70, 225, 145, 1, 75, 225, 145, 1, 76, 225, 145, 1, 224, + 89, 225, 145, 1, 211, 165, 225, 145, 1, 244, 197, 225, 145, 1, 243, 30, + 225, 145, 1, 245, 210, 225, 145, 218, 74, 1, 212, 65, 225, 145, 218, 74, + 1, 191, 225, 145, 1, 215, 157, 225, 145, 1, 215, 145, 225, 145, 1, 248, + 136, 225, 145, 1, 228, 111, 225, 145, 1, 254, 142, 191, 225, 145, 1, 213, + 134, 220, 103, 225, 145, 1, 213, 135, 162, 225, 145, 1, 253, 224, 244, + 197, 225, 145, 218, 74, 1, 205, 225, 145, 218, 26, 1, 205, 225, 145, 1, + 251, 0, 225, 145, 219, 156, 241, 237, 78, 225, 145, 52, 241, 237, 78, + 225, 145, 164, 220, 96, 225, 145, 164, 52, 220, 96, 179, 5, 254, 76, 179, + 5, 213, 147, 179, 1, 61, 179, 1, 255, 74, 179, 1, 73, 179, 1, 236, 34, + 179, 1, 70, 179, 1, 214, 118, 179, 1, 149, 153, 179, 1, 149, 222, 181, + 179, 1, 149, 156, 179, 1, 149, 232, 186, 179, 1, 75, 179, 1, 245, 210, + 179, 1, 254, 202, 179, 1, 76, 179, 1, 226, 184, 179, 1, 253, 193, 179, 1, + 176, 179, 1, 234, 133, 179, 1, 243, 136, 179, 1, 242, 250, 179, 1, 229, + 78, 179, 1, 251, 34, 179, 1, 250, 158, 179, 1, 235, 142, 179, 1, 235, + 115, 179, 1, 227, 166, 179, 1, 215, 157, 179, 1, 215, 145, 179, 1, 248, + 136, 179, 1, 248, 120, 179, 1, 228, 111, 179, 1, 217, 106, 179, 1, 216, + 209, 179, 1, 248, 222, 179, 1, 248, 26, 179, 1, 197, 179, 1, 190, 179, 1, + 225, 148, 179, 1, 252, 192, 179, 1, 252, 19, 179, 1, 185, 179, 1, 191, + 179, 1, 205, 179, 1, 233, 136, 179, 1, 214, 27, 179, 1, 220, 103, 179, 1, + 218, 224, 179, 1, 206, 179, 1, 162, 179, 1, 232, 185, 179, 116, 5, 242, + 45, 179, 25, 5, 255, 74, 179, 25, 5, 73, 179, 25, 5, 236, 34, 179, 25, 5, 70, 179, 25, 5, 214, 118, 179, 25, 5, 149, 153, 179, 25, 5, 149, 222, - 180, 179, 25, 5, 149, 156, 179, 25, 5, 149, 232, 185, 179, 25, 5, 75, - 179, 25, 5, 245, 209, 179, 25, 5, 254, 201, 179, 25, 5, 76, 179, 25, 5, - 226, 183, 179, 25, 5, 253, 192, 179, 5, 213, 152, 179, 248, 178, 179, 52, - 248, 178, 179, 21, 210, 86, 179, 21, 110, 179, 21, 105, 179, 21, 158, + 181, 179, 25, 5, 149, 156, 179, 25, 5, 149, 232, 186, 179, 25, 5, 75, + 179, 25, 5, 245, 210, 179, 25, 5, 254, 202, 179, 25, 5, 76, 179, 25, 5, + 226, 184, 179, 25, 5, 253, 193, 179, 5, 213, 152, 179, 248, 179, 179, 52, + 248, 179, 179, 21, 210, 86, 179, 21, 110, 179, 21, 105, 179, 21, 158, 179, 21, 161, 179, 21, 189, 179, 21, 194, 179, 21, 198, 179, 21, 195, 179, 21, 200, 38, 84, 21, 210, 86, 38, 84, 21, 110, 38, 84, 21, 105, 38, 84, 21, 158, 38, 84, 21, 161, 38, 84, 21, 189, 38, 84, 21, 194, 38, 84, 21, 198, 38, 84, 21, 195, 38, 84, 21, 200, 38, 84, 1, 61, 38, 84, 1, 70, 38, 84, 1, 176, 38, 84, 1, 197, 38, 84, 1, 190, 38, 84, 1, 205, 38, 84, - 1, 213, 176, 38, 84, 5, 253, 175, 84, 5, 219, 17, 250, 255, 84, 5, 251, - 0, 213, 152, 84, 5, 52, 251, 0, 213, 152, 84, 5, 251, 0, 105, 84, 5, 251, - 0, 158, 84, 5, 251, 0, 253, 175, 84, 5, 224, 124, 84, 243, 100, 244, 103, - 84, 250, 238, 84, 241, 230, 234, 188, 232, 242, 21, 210, 86, 234, 188, - 232, 242, 21, 110, 234, 188, 232, 242, 21, 105, 234, 188, 232, 242, 21, - 158, 234, 188, 232, 242, 21, 161, 234, 188, 232, 242, 21, 189, 234, 188, - 232, 242, 21, 194, 234, 188, 232, 242, 21, 198, 234, 188, 232, 242, 21, - 195, 234, 188, 232, 242, 21, 200, 234, 188, 232, 242, 1, 176, 234, 188, - 232, 242, 1, 234, 132, 234, 188, 232, 242, 1, 243, 135, 234, 188, 232, - 242, 1, 229, 77, 234, 188, 232, 242, 1, 206, 234, 188, 232, 242, 1, 220, - 102, 234, 188, 232, 242, 1, 210, 116, 234, 188, 232, 242, 1, 227, 165, - 234, 188, 232, 242, 1, 217, 105, 234, 188, 232, 242, 1, 240, 226, 234, - 188, 232, 242, 1, 197, 234, 188, 232, 242, 1, 190, 234, 188, 232, 242, 1, - 225, 147, 234, 188, 232, 242, 1, 184, 234, 188, 232, 242, 1, 248, 221, - 234, 188, 232, 242, 1, 252, 191, 234, 188, 232, 242, 1, 205, 234, 188, - 232, 242, 1, 191, 234, 188, 232, 242, 1, 233, 135, 234, 188, 232, 242, 1, - 212, 65, 234, 188, 232, 242, 1, 216, 208, 234, 188, 232, 242, 1, 162, - 234, 188, 232, 242, 1, 214, 27, 234, 188, 232, 242, 1, 251, 33, 234, 188, - 232, 242, 1, 61, 234, 188, 232, 242, 1, 226, 234, 234, 188, 232, 242, 1, - 73, 234, 188, 232, 242, 1, 226, 183, 234, 188, 232, 242, 25, 214, 214, - 234, 188, 232, 242, 25, 75, 234, 188, 232, 242, 25, 70, 234, 188, 232, - 242, 25, 245, 209, 234, 188, 232, 242, 25, 76, 234, 188, 232, 242, 138, - 225, 30, 234, 188, 232, 242, 138, 251, 12, 234, 188, 232, 242, 138, 251, - 13, 225, 30, 234, 188, 232, 242, 5, 249, 77, 234, 188, 232, 242, 5, 219, - 199, 223, 93, 1, 176, 223, 93, 1, 243, 135, 223, 93, 1, 229, 77, 223, 93, - 1, 217, 105, 223, 93, 1, 248, 221, 223, 93, 1, 197, 223, 93, 1, 190, 223, - 93, 1, 252, 191, 223, 93, 1, 184, 223, 93, 1, 251, 33, 223, 93, 1, 235, - 141, 223, 93, 1, 227, 165, 223, 93, 1, 206, 223, 93, 1, 205, 223, 93, 1, - 233, 135, 223, 93, 1, 191, 223, 93, 1, 212, 65, 223, 93, 1, 162, 223, 93, - 1, 231, 124, 223, 93, 1, 229, 56, 223, 93, 1, 229, 148, 223, 93, 1, 227, - 135, 223, 93, 1, 61, 223, 93, 25, 5, 73, 223, 93, 25, 5, 70, 223, 93, 25, - 5, 75, 223, 93, 25, 5, 254, 201, 223, 93, 25, 5, 76, 223, 93, 25, 5, 253, - 192, 223, 93, 25, 5, 245, 55, 223, 93, 25, 5, 245, 233, 223, 93, 116, 5, - 229, 79, 223, 93, 116, 5, 230, 25, 223, 93, 116, 5, 153, 223, 93, 116, 5, - 242, 60, 223, 93, 213, 152, 223, 93, 221, 173, 78, 24, 100, 216, 97, 24, - 100, 216, 96, 24, 100, 216, 94, 24, 100, 216, 99, 24, 100, 223, 21, 24, - 100, 223, 5, 24, 100, 223, 0, 24, 100, 223, 2, 24, 100, 223, 18, 24, 100, - 223, 11, 24, 100, 223, 4, 24, 100, 223, 23, 24, 100, 223, 6, 24, 100, - 223, 25, 24, 100, 223, 22, 24, 100, 230, 213, 24, 100, 230, 204, 24, 100, - 230, 207, 24, 100, 225, 80, 24, 100, 225, 91, 24, 100, 225, 92, 24, 100, - 218, 207, 24, 100, 236, 46, 24, 100, 236, 53, 24, 100, 218, 218, 24, 100, - 218, 205, 24, 100, 225, 130, 24, 100, 241, 167, 24, 100, 218, 202, 155, - 5, 226, 27, 155, 5, 250, 187, 155, 5, 233, 66, 155, 5, 211, 243, 155, 1, - 61, 155, 1, 240, 154, 234, 191, 155, 1, 73, 155, 1, 236, 33, 155, 1, 70, - 155, 1, 226, 90, 250, 163, 155, 1, 229, 78, 233, 28, 155, 1, 229, 78, - 233, 29, 223, 142, 155, 1, 75, 155, 1, 254, 201, 155, 1, 76, 155, 1, 176, - 155, 1, 235, 13, 221, 228, 155, 1, 235, 13, 230, 66, 155, 1, 243, 135, - 155, 1, 243, 136, 230, 66, 155, 1, 229, 77, 155, 1, 251, 33, 155, 1, 251, - 34, 230, 66, 155, 1, 235, 141, 155, 1, 227, 166, 230, 66, 155, 1, 235, - 142, 231, 207, 155, 1, 227, 165, 155, 1, 215, 156, 155, 1, 215, 157, 231, - 207, 155, 1, 248, 135, 155, 1, 248, 136, 231, 207, 155, 1, 229, 229, 230, - 66, 155, 1, 217, 105, 155, 1, 217, 106, 230, 66, 155, 1, 248, 221, 155, - 1, 248, 222, 231, 207, 155, 1, 197, 155, 1, 190, 155, 1, 226, 90, 230, - 66, 155, 1, 252, 191, 155, 1, 252, 192, 230, 66, 155, 1, 184, 155, 1, - 191, 155, 1, 205, 155, 1, 223, 188, 254, 210, 155, 1, 233, 135, 155, 1, - 212, 65, 155, 1, 222, 34, 230, 66, 155, 1, 222, 34, 231, 207, 155, 1, - 206, 155, 1, 162, 155, 5, 250, 188, 216, 250, 155, 25, 5, 217, 47, 155, - 25, 5, 216, 35, 155, 25, 5, 211, 190, 155, 25, 5, 211, 191, 231, 69, 155, - 25, 5, 218, 47, 155, 25, 5, 218, 48, 231, 57, 155, 25, 5, 217, 65, 155, - 25, 5, 247, 194, 230, 65, 155, 25, 5, 225, 184, 155, 116, 5, 234, 158, - 155, 116, 5, 225, 196, 155, 116, 5, 251, 19, 155, 226, 40, 155, 43, 223, - 69, 155, 44, 223, 69, 155, 226, 79, 254, 117, 155, 226, 79, 231, 224, - 155, 226, 79, 232, 88, 155, 226, 79, 211, 238, 155, 226, 79, 226, 41, - 155, 226, 79, 232, 205, 155, 226, 79, 232, 82, 155, 226, 79, 254, 249, - 155, 226, 79, 254, 250, 254, 249, 155, 226, 79, 225, 51, 155, 215, 94, - 226, 79, 225, 51, 155, 226, 36, 155, 21, 210, 86, 155, 21, 110, 155, 21, + 1, 213, 176, 38, 84, 5, 253, 176, 84, 5, 219, 18, 251, 0, 84, 5, 251, 1, + 213, 152, 84, 5, 52, 251, 1, 213, 152, 84, 5, 251, 1, 105, 84, 5, 251, 1, + 158, 84, 5, 251, 1, 253, 176, 84, 5, 224, 125, 84, 243, 101, 244, 104, + 84, 250, 239, 84, 241, 231, 234, 189, 232, 243, 21, 210, 86, 234, 189, + 232, 243, 21, 110, 234, 189, 232, 243, 21, 105, 234, 189, 232, 243, 21, + 158, 234, 189, 232, 243, 21, 161, 234, 189, 232, 243, 21, 189, 234, 189, + 232, 243, 21, 194, 234, 189, 232, 243, 21, 198, 234, 189, 232, 243, 21, + 195, 234, 189, 232, 243, 21, 200, 234, 189, 232, 243, 1, 176, 234, 189, + 232, 243, 1, 234, 133, 234, 189, 232, 243, 1, 243, 136, 234, 189, 232, + 243, 1, 229, 78, 234, 189, 232, 243, 1, 206, 234, 189, 232, 243, 1, 220, + 103, 234, 189, 232, 243, 1, 210, 116, 234, 189, 232, 243, 1, 227, 166, + 234, 189, 232, 243, 1, 217, 106, 234, 189, 232, 243, 1, 240, 227, 234, + 189, 232, 243, 1, 197, 234, 189, 232, 243, 1, 190, 234, 189, 232, 243, 1, + 225, 148, 234, 189, 232, 243, 1, 185, 234, 189, 232, 243, 1, 248, 222, + 234, 189, 232, 243, 1, 252, 192, 234, 189, 232, 243, 1, 205, 234, 189, + 232, 243, 1, 191, 234, 189, 232, 243, 1, 233, 136, 234, 189, 232, 243, 1, + 212, 65, 234, 189, 232, 243, 1, 216, 209, 234, 189, 232, 243, 1, 162, + 234, 189, 232, 243, 1, 214, 27, 234, 189, 232, 243, 1, 251, 34, 234, 189, + 232, 243, 1, 61, 234, 189, 232, 243, 1, 226, 235, 234, 189, 232, 243, 1, + 73, 234, 189, 232, 243, 1, 226, 184, 234, 189, 232, 243, 25, 214, 214, + 234, 189, 232, 243, 25, 75, 234, 189, 232, 243, 25, 70, 234, 189, 232, + 243, 25, 245, 210, 234, 189, 232, 243, 25, 76, 234, 189, 232, 243, 138, + 225, 31, 234, 189, 232, 243, 138, 251, 13, 234, 189, 232, 243, 138, 251, + 14, 225, 31, 234, 189, 232, 243, 5, 249, 78, 234, 189, 232, 243, 5, 219, + 200, 223, 94, 1, 176, 223, 94, 1, 243, 136, 223, 94, 1, 229, 78, 223, 94, + 1, 217, 106, 223, 94, 1, 248, 222, 223, 94, 1, 197, 223, 94, 1, 190, 223, + 94, 1, 252, 192, 223, 94, 1, 185, 223, 94, 1, 251, 34, 223, 94, 1, 235, + 142, 223, 94, 1, 227, 166, 223, 94, 1, 206, 223, 94, 1, 205, 223, 94, 1, + 233, 136, 223, 94, 1, 191, 223, 94, 1, 212, 65, 223, 94, 1, 162, 223, 94, + 1, 231, 125, 223, 94, 1, 229, 57, 223, 94, 1, 229, 149, 223, 94, 1, 227, + 136, 223, 94, 1, 61, 223, 94, 25, 5, 73, 223, 94, 25, 5, 70, 223, 94, 25, + 5, 75, 223, 94, 25, 5, 254, 202, 223, 94, 25, 5, 76, 223, 94, 25, 5, 253, + 193, 223, 94, 25, 5, 245, 56, 223, 94, 25, 5, 245, 234, 223, 94, 116, 5, + 229, 80, 223, 94, 116, 5, 230, 26, 223, 94, 116, 5, 153, 223, 94, 116, 5, + 242, 61, 223, 94, 213, 152, 223, 94, 221, 174, 78, 24, 100, 216, 98, 24, + 100, 216, 97, 24, 100, 216, 95, 24, 100, 216, 100, 24, 100, 223, 22, 24, + 100, 223, 6, 24, 100, 223, 1, 24, 100, 223, 3, 24, 100, 223, 19, 24, 100, + 223, 12, 24, 100, 223, 5, 24, 100, 223, 24, 24, 100, 223, 7, 24, 100, + 223, 26, 24, 100, 223, 23, 24, 100, 230, 214, 24, 100, 230, 205, 24, 100, + 230, 208, 24, 100, 225, 81, 24, 100, 225, 92, 24, 100, 225, 93, 24, 100, + 218, 208, 24, 100, 236, 47, 24, 100, 236, 54, 24, 100, 218, 219, 24, 100, + 218, 206, 24, 100, 225, 131, 24, 100, 241, 168, 24, 100, 218, 203, 155, + 5, 226, 28, 155, 5, 250, 188, 155, 5, 233, 67, 155, 5, 211, 243, 155, 1, + 61, 155, 1, 240, 155, 234, 192, 155, 1, 73, 155, 1, 236, 34, 155, 1, 70, + 155, 1, 226, 91, 250, 164, 155, 1, 229, 79, 233, 29, 155, 1, 229, 79, + 233, 30, 223, 143, 155, 1, 75, 155, 1, 254, 202, 155, 1, 76, 155, 1, 176, + 155, 1, 235, 14, 221, 229, 155, 1, 235, 14, 230, 67, 155, 1, 243, 136, + 155, 1, 243, 137, 230, 67, 155, 1, 229, 78, 155, 1, 251, 34, 155, 1, 251, + 35, 230, 67, 155, 1, 235, 142, 155, 1, 227, 167, 230, 67, 155, 1, 235, + 143, 231, 208, 155, 1, 227, 166, 155, 1, 215, 157, 155, 1, 215, 158, 231, + 208, 155, 1, 248, 136, 155, 1, 248, 137, 231, 208, 155, 1, 229, 230, 230, + 67, 155, 1, 217, 106, 155, 1, 217, 107, 230, 67, 155, 1, 248, 222, 155, + 1, 248, 223, 231, 208, 155, 1, 197, 155, 1, 190, 155, 1, 226, 91, 230, + 67, 155, 1, 252, 192, 155, 1, 252, 193, 230, 67, 155, 1, 185, 155, 1, + 191, 155, 1, 205, 155, 1, 223, 189, 254, 211, 155, 1, 233, 136, 155, 1, + 212, 65, 155, 1, 222, 35, 230, 67, 155, 1, 222, 35, 231, 208, 155, 1, + 206, 155, 1, 162, 155, 5, 250, 189, 216, 251, 155, 25, 5, 217, 48, 155, + 25, 5, 216, 36, 155, 25, 5, 211, 190, 155, 25, 5, 211, 191, 231, 70, 155, + 25, 5, 218, 48, 155, 25, 5, 218, 49, 231, 58, 155, 25, 5, 217, 66, 155, + 25, 5, 247, 195, 230, 66, 155, 25, 5, 225, 185, 155, 116, 5, 234, 159, + 155, 116, 5, 225, 197, 155, 116, 5, 251, 20, 155, 226, 41, 155, 43, 223, + 70, 155, 44, 223, 70, 155, 226, 80, 254, 118, 155, 226, 80, 231, 225, + 155, 226, 80, 232, 89, 155, 226, 80, 211, 238, 155, 226, 80, 226, 42, + 155, 226, 80, 232, 206, 155, 226, 80, 232, 83, 155, 226, 80, 254, 250, + 155, 226, 80, 254, 251, 254, 250, 155, 226, 80, 225, 52, 155, 215, 94, + 226, 80, 225, 52, 155, 226, 37, 155, 21, 210, 86, 155, 21, 110, 155, 21, 105, 155, 21, 158, 155, 21, 161, 155, 21, 189, 155, 21, 194, 155, 21, - 198, 155, 21, 195, 155, 21, 200, 155, 226, 79, 216, 69, 215, 106, 155, - 226, 79, 235, 167, 172, 1, 61, 172, 1, 73, 172, 1, 70, 172, 1, 75, 172, - 1, 254, 201, 172, 1, 76, 172, 1, 176, 172, 1, 234, 132, 172, 1, 243, 135, - 172, 1, 242, 249, 172, 1, 228, 245, 172, 1, 229, 77, 172, 1, 250, 157, - 172, 1, 250, 112, 172, 1, 235, 141, 172, 1, 235, 114, 172, 1, 228, 235, - 172, 1, 228, 237, 172, 1, 228, 236, 172, 1, 217, 105, 172, 1, 216, 208, - 172, 1, 248, 221, 172, 1, 248, 25, 172, 1, 227, 207, 172, 1, 197, 172, 1, - 248, 135, 172, 1, 190, 172, 1, 224, 220, 172, 1, 225, 147, 172, 1, 252, - 191, 172, 1, 252, 18, 172, 1, 230, 95, 172, 1, 184, 172, 1, 252, 111, - 172, 1, 191, 172, 1, 205, 172, 1, 233, 135, 172, 1, 214, 27, 172, 1, 218, - 223, 172, 1, 206, 172, 1, 162, 172, 25, 5, 255, 73, 172, 25, 5, 73, 172, - 25, 5, 236, 33, 172, 25, 5, 245, 195, 172, 25, 5, 70, 172, 25, 5, 226, - 234, 172, 25, 5, 76, 172, 25, 5, 254, 201, 172, 25, 5, 253, 192, 172, 25, - 5, 214, 214, 172, 116, 5, 191, 172, 116, 5, 205, 172, 116, 5, 233, 135, - 172, 116, 5, 212, 65, 172, 1, 40, 235, 23, 172, 1, 40, 243, 202, 172, 1, - 40, 229, 79, 172, 116, 5, 40, 229, 79, 172, 1, 40, 250, 158, 172, 1, 40, - 217, 152, 172, 1, 40, 230, 25, 172, 1, 40, 226, 105, 172, 1, 40, 211, - 117, 172, 1, 40, 153, 172, 1, 40, 156, 172, 1, 40, 218, 226, 172, 116, 5, - 40, 193, 172, 116, 5, 40, 242, 60, 172, 21, 210, 86, 172, 21, 110, 172, + 198, 155, 21, 195, 155, 21, 200, 155, 226, 80, 216, 70, 215, 107, 155, + 226, 80, 235, 168, 172, 1, 61, 172, 1, 73, 172, 1, 70, 172, 1, 75, 172, + 1, 254, 202, 172, 1, 76, 172, 1, 176, 172, 1, 234, 133, 172, 1, 243, 136, + 172, 1, 242, 250, 172, 1, 228, 246, 172, 1, 229, 78, 172, 1, 250, 158, + 172, 1, 250, 113, 172, 1, 235, 142, 172, 1, 235, 115, 172, 1, 228, 236, + 172, 1, 228, 238, 172, 1, 228, 237, 172, 1, 217, 106, 172, 1, 216, 209, + 172, 1, 248, 222, 172, 1, 248, 26, 172, 1, 227, 208, 172, 1, 197, 172, 1, + 248, 136, 172, 1, 190, 172, 1, 224, 221, 172, 1, 225, 148, 172, 1, 252, + 192, 172, 1, 252, 19, 172, 1, 230, 96, 172, 1, 185, 172, 1, 252, 112, + 172, 1, 191, 172, 1, 205, 172, 1, 233, 136, 172, 1, 214, 27, 172, 1, 218, + 224, 172, 1, 206, 172, 1, 162, 172, 25, 5, 255, 74, 172, 25, 5, 73, 172, + 25, 5, 236, 34, 172, 25, 5, 245, 196, 172, 25, 5, 70, 172, 25, 5, 226, + 235, 172, 25, 5, 76, 172, 25, 5, 254, 202, 172, 25, 5, 253, 193, 172, 25, + 5, 214, 214, 172, 116, 5, 191, 172, 116, 5, 205, 172, 116, 5, 233, 136, + 172, 116, 5, 212, 65, 172, 1, 40, 235, 24, 172, 1, 40, 243, 203, 172, 1, + 40, 229, 80, 172, 116, 5, 40, 229, 80, 172, 1, 40, 250, 159, 172, 1, 40, + 217, 153, 172, 1, 40, 230, 26, 172, 1, 40, 226, 106, 172, 1, 40, 211, + 117, 172, 1, 40, 153, 172, 1, 40, 156, 172, 1, 40, 218, 227, 172, 116, 5, + 40, 193, 172, 116, 5, 40, 242, 61, 172, 21, 210, 86, 172, 21, 110, 172, 21, 105, 172, 21, 158, 172, 21, 161, 172, 21, 189, 172, 21, 194, 172, 21, - 198, 172, 21, 195, 172, 21, 200, 172, 224, 141, 218, 251, 172, 224, 141, - 248, 178, 172, 224, 141, 52, 248, 178, 172, 224, 141, 215, 211, 248, 178, - 68, 1, 234, 126, 243, 135, 68, 1, 234, 126, 251, 33, 68, 1, 234, 126, - 250, 157, 68, 1, 234, 126, 235, 141, 68, 1, 234, 126, 235, 114, 68, 1, - 234, 126, 227, 165, 68, 1, 234, 126, 215, 156, 68, 1, 234, 126, 215, 144, - 68, 1, 234, 126, 248, 135, 68, 1, 234, 126, 248, 119, 68, 1, 234, 126, - 248, 25, 68, 1, 234, 126, 197, 68, 1, 234, 126, 206, 68, 1, 234, 126, - 162, 68, 1, 234, 126, 241, 189, 68, 1, 234, 126, 244, 196, 68, 58, 1, - 234, 126, 223, 109, 68, 1, 234, 126, 211, 165, 68, 1, 234, 126, 210, 116, - 68, 1, 234, 126, 205, 68, 232, 145, 234, 126, 226, 253, 68, 232, 145, - 234, 126, 224, 43, 68, 232, 145, 234, 126, 241, 121, 68, 16, 254, 190, - 245, 30, 68, 16, 254, 190, 110, 68, 16, 254, 190, 105, 68, 1, 254, 190, - 205, 68, 5, 226, 23, 234, 213, 216, 30, 39, 208, 1, 121, 234, 28, 39, - 208, 1, 125, 234, 28, 39, 208, 1, 121, 234, 105, 39, 208, 1, 125, 234, - 105, 39, 208, 1, 121, 234, 114, 39, 208, 1, 125, 234, 114, 39, 208, 1, - 121, 242, 174, 39, 208, 1, 125, 242, 174, 39, 208, 1, 121, 229, 4, 39, - 208, 1, 125, 229, 4, 39, 208, 1, 121, 249, 238, 39, 208, 1, 125, 249, - 238, 39, 208, 1, 121, 250, 86, 39, 208, 1, 125, 250, 86, 39, 208, 1, 121, - 219, 58, 39, 208, 1, 125, 219, 58, 39, 208, 1, 121, 227, 134, 39, 208, 1, - 125, 227, 134, 39, 208, 1, 121, 247, 145, 39, 208, 1, 125, 247, 145, 39, - 208, 1, 121, 111, 39, 208, 1, 125, 111, 39, 208, 1, 121, 216, 156, 39, - 208, 1, 125, 216, 156, 39, 208, 1, 121, 228, 74, 39, 208, 1, 125, 228, - 74, 39, 208, 1, 121, 251, 205, 39, 208, 1, 125, 251, 205, 39, 208, 1, - 121, 225, 16, 39, 208, 1, 125, 225, 16, 39, 208, 1, 121, 225, 121, 39, - 208, 1, 125, 225, 121, 39, 208, 1, 121, 244, 43, 39, 208, 1, 125, 244, - 43, 39, 208, 1, 121, 230, 161, 39, 208, 1, 125, 230, 161, 39, 208, 1, - 121, 210, 244, 39, 208, 1, 125, 210, 244, 39, 208, 1, 121, 222, 211, 39, - 208, 1, 125, 222, 211, 39, 208, 1, 121, 232, 156, 39, 208, 1, 125, 232, - 156, 39, 208, 1, 121, 213, 138, 39, 208, 1, 125, 213, 138, 39, 208, 1, - 121, 241, 68, 39, 208, 1, 125, 241, 68, 39, 208, 1, 121, 76, 39, 208, 1, - 125, 76, 39, 208, 231, 204, 234, 230, 39, 208, 25, 255, 73, 39, 208, 25, + 198, 172, 21, 195, 172, 21, 200, 172, 224, 142, 218, 252, 172, 224, 142, + 248, 179, 172, 224, 142, 52, 248, 179, 172, 224, 142, 215, 212, 248, 179, + 68, 1, 234, 127, 243, 136, 68, 1, 234, 127, 251, 34, 68, 1, 234, 127, + 250, 158, 68, 1, 234, 127, 235, 142, 68, 1, 234, 127, 235, 115, 68, 1, + 234, 127, 227, 166, 68, 1, 234, 127, 215, 157, 68, 1, 234, 127, 215, 145, + 68, 1, 234, 127, 248, 136, 68, 1, 234, 127, 248, 120, 68, 1, 234, 127, + 248, 26, 68, 1, 234, 127, 197, 68, 1, 234, 127, 206, 68, 1, 234, 127, + 162, 68, 1, 234, 127, 241, 190, 68, 1, 234, 127, 244, 197, 68, 58, 1, + 234, 127, 223, 110, 68, 1, 234, 127, 211, 165, 68, 1, 234, 127, 210, 116, + 68, 1, 234, 127, 205, 68, 232, 146, 234, 127, 226, 254, 68, 232, 146, + 234, 127, 224, 44, 68, 232, 146, 234, 127, 241, 122, 68, 16, 254, 191, + 245, 31, 68, 16, 254, 191, 110, 68, 16, 254, 191, 105, 68, 1, 254, 191, + 205, 68, 5, 226, 24, 234, 214, 216, 31, 39, 208, 1, 121, 234, 29, 39, + 208, 1, 125, 234, 29, 39, 208, 1, 121, 234, 106, 39, 208, 1, 125, 234, + 106, 39, 208, 1, 121, 234, 115, 39, 208, 1, 125, 234, 115, 39, 208, 1, + 121, 242, 175, 39, 208, 1, 125, 242, 175, 39, 208, 1, 121, 229, 5, 39, + 208, 1, 125, 229, 5, 39, 208, 1, 121, 249, 239, 39, 208, 1, 125, 249, + 239, 39, 208, 1, 121, 250, 87, 39, 208, 1, 125, 250, 87, 39, 208, 1, 121, + 219, 59, 39, 208, 1, 125, 219, 59, 39, 208, 1, 121, 227, 135, 39, 208, 1, + 125, 227, 135, 39, 208, 1, 121, 247, 146, 39, 208, 1, 125, 247, 146, 39, + 208, 1, 121, 111, 39, 208, 1, 125, 111, 39, 208, 1, 121, 216, 157, 39, + 208, 1, 125, 216, 157, 39, 208, 1, 121, 228, 75, 39, 208, 1, 125, 228, + 75, 39, 208, 1, 121, 251, 206, 39, 208, 1, 125, 251, 206, 39, 208, 1, + 121, 225, 17, 39, 208, 1, 125, 225, 17, 39, 208, 1, 121, 225, 122, 39, + 208, 1, 125, 225, 122, 39, 208, 1, 121, 244, 44, 39, 208, 1, 125, 244, + 44, 39, 208, 1, 121, 230, 162, 39, 208, 1, 125, 230, 162, 39, 208, 1, + 121, 210, 244, 39, 208, 1, 125, 210, 244, 39, 208, 1, 121, 222, 212, 39, + 208, 1, 125, 222, 212, 39, 208, 1, 121, 232, 157, 39, 208, 1, 125, 232, + 157, 39, 208, 1, 121, 213, 138, 39, 208, 1, 125, 213, 138, 39, 208, 1, + 121, 241, 69, 39, 208, 1, 125, 241, 69, 39, 208, 1, 121, 76, 39, 208, 1, + 125, 76, 39, 208, 231, 205, 234, 231, 39, 208, 25, 255, 74, 39, 208, 25, 73, 39, 208, 25, 214, 214, 39, 208, 25, 70, 39, 208, 25, 75, 39, 208, 25, - 76, 39, 208, 231, 204, 234, 108, 39, 208, 25, 240, 119, 39, 208, 25, 214, - 213, 39, 208, 25, 214, 229, 39, 208, 25, 253, 190, 39, 208, 25, 253, 167, - 39, 208, 25, 254, 123, 39, 208, 25, 254, 136, 39, 208, 138, 231, 204, - 245, 180, 39, 208, 138, 231, 204, 227, 206, 39, 208, 138, 231, 204, 216, - 156, 39, 208, 138, 231, 204, 219, 42, 39, 208, 16, 234, 13, 39, 208, 16, - 227, 206, 39, 208, 16, 221, 253, 39, 208, 16, 241, 69, 241, 64, 39, 208, - 16, 234, 22, 234, 21, 186, 185, 1, 75, 186, 185, 1, 76, 186, 185, 1, 250, - 157, 186, 185, 1, 227, 165, 186, 185, 1, 215, 156, 186, 185, 1, 215, 144, - 186, 185, 1, 248, 135, 186, 185, 1, 248, 119, 186, 185, 1, 228, 110, 186, - 185, 1, 220, 102, 186, 185, 1, 218, 223, 186, 185, 25, 5, 236, 33, 186, - 185, 25, 5, 214, 118, 186, 185, 25, 5, 255, 37, 186, 185, 25, 5, 253, - 192, 186, 185, 25, 5, 255, 30, 186, 185, 250, 125, 186, 185, 254, 206, - 234, 98, 186, 185, 254, 103, 186, 185, 3, 223, 74, 78, 186, 185, 211, - 209, 223, 74, 78, 186, 185, 25, 5, 213, 147, 186, 185, 213, 152, 29, 3, - 215, 137, 29, 3, 215, 140, 29, 3, 215, 143, 29, 3, 215, 141, 29, 3, 215, - 142, 29, 3, 215, 139, 29, 3, 248, 113, 29, 3, 248, 115, 29, 3, 248, 118, - 29, 3, 248, 116, 29, 3, 248, 117, 29, 3, 248, 114, 29, 3, 246, 28, 29, 3, - 246, 31, 29, 3, 246, 37, 29, 3, 246, 35, 29, 3, 246, 36, 29, 3, 246, 29, - 29, 3, 250, 204, 29, 3, 250, 198, 29, 3, 250, 200, 29, 3, 250, 203, 29, - 3, 250, 201, 29, 3, 250, 202, 29, 3, 250, 199, 29, 3, 252, 111, 29, 3, - 252, 90, 29, 3, 252, 102, 29, 3, 252, 110, 29, 3, 252, 105, 29, 3, 252, - 106, 29, 3, 252, 94, 186, 185, 1, 234, 19, 186, 185, 1, 221, 253, 186, - 185, 1, 233, 109, 186, 185, 1, 230, 172, 186, 185, 1, 190, 186, 185, 1, - 197, 186, 185, 1, 250, 102, 186, 185, 1, 216, 90, 186, 185, 1, 234, 101, - 186, 185, 1, 228, 250, 186, 185, 1, 216, 150, 186, 185, 1, 212, 60, 186, - 185, 1, 211, 69, 186, 185, 1, 240, 216, 186, 185, 1, 214, 190, 186, 185, - 1, 73, 186, 185, 1, 225, 142, 186, 185, 1, 253, 202, 186, 185, 1, 242, - 167, 186, 185, 1, 235, 112, 186, 185, 1, 223, 166, 186, 185, 1, 252, 191, - 186, 185, 1, 235, 100, 186, 185, 1, 247, 219, 186, 185, 1, 242, 221, 186, - 185, 1, 248, 5, 186, 185, 1, 252, 16, 186, 185, 1, 234, 20, 232, 128, - 186, 185, 1, 233, 110, 232, 128, 186, 185, 1, 230, 173, 232, 128, 186, - 185, 1, 226, 90, 232, 128, 186, 185, 1, 229, 229, 232, 128, 186, 185, 1, - 216, 91, 232, 128, 186, 185, 1, 228, 251, 232, 128, 186, 185, 1, 240, - 154, 232, 128, 186, 185, 25, 5, 226, 195, 186, 185, 25, 5, 235, 253, 186, - 185, 25, 5, 254, 122, 186, 185, 25, 5, 211, 38, 186, 185, 25, 5, 219, 32, - 186, 185, 25, 5, 214, 187, 186, 185, 25, 5, 250, 123, 186, 185, 25, 5, - 227, 191, 186, 185, 250, 124, 186, 185, 232, 85, 235, 150, 186, 185, 254, - 46, 235, 150, 186, 185, 21, 210, 86, 186, 185, 21, 110, 186, 185, 21, - 105, 186, 185, 21, 158, 186, 185, 21, 161, 186, 185, 21, 189, 186, 185, - 21, 194, 186, 185, 21, 198, 186, 185, 21, 195, 186, 185, 21, 200, 24, - 143, 227, 77, 24, 143, 227, 82, 24, 143, 210, 243, 24, 143, 210, 242, 24, + 76, 39, 208, 231, 205, 234, 109, 39, 208, 25, 240, 120, 39, 208, 25, 214, + 213, 39, 208, 25, 214, 229, 39, 208, 25, 253, 191, 39, 208, 25, 253, 168, + 39, 208, 25, 254, 124, 39, 208, 25, 254, 137, 39, 208, 138, 231, 205, + 245, 181, 39, 208, 138, 231, 205, 227, 207, 39, 208, 138, 231, 205, 216, + 157, 39, 208, 138, 231, 205, 219, 43, 39, 208, 16, 234, 14, 39, 208, 16, + 227, 207, 39, 208, 16, 221, 254, 39, 208, 16, 241, 70, 241, 65, 39, 208, + 16, 234, 23, 234, 22, 187, 186, 1, 75, 187, 186, 1, 76, 187, 186, 1, 250, + 158, 187, 186, 1, 227, 166, 187, 186, 1, 215, 157, 187, 186, 1, 215, 145, + 187, 186, 1, 248, 136, 187, 186, 1, 248, 120, 187, 186, 1, 228, 111, 187, + 186, 1, 220, 103, 187, 186, 1, 218, 224, 187, 186, 25, 5, 236, 34, 187, + 186, 25, 5, 214, 118, 187, 186, 25, 5, 255, 38, 187, 186, 25, 5, 253, + 193, 187, 186, 25, 5, 255, 31, 187, 186, 250, 126, 187, 186, 254, 207, + 234, 99, 187, 186, 254, 104, 187, 186, 3, 223, 75, 78, 187, 186, 211, + 209, 223, 75, 78, 187, 186, 25, 5, 213, 147, 187, 186, 213, 152, 29, 3, + 215, 138, 29, 3, 215, 141, 29, 3, 215, 144, 29, 3, 215, 142, 29, 3, 215, + 143, 29, 3, 215, 140, 29, 3, 248, 114, 29, 3, 248, 116, 29, 3, 248, 119, + 29, 3, 248, 117, 29, 3, 248, 118, 29, 3, 248, 115, 29, 3, 246, 29, 29, 3, + 246, 32, 29, 3, 246, 38, 29, 3, 246, 36, 29, 3, 246, 37, 29, 3, 246, 30, + 29, 3, 250, 205, 29, 3, 250, 199, 29, 3, 250, 201, 29, 3, 250, 204, 29, + 3, 250, 202, 29, 3, 250, 203, 29, 3, 250, 200, 29, 3, 252, 112, 29, 3, + 252, 91, 29, 3, 252, 103, 29, 3, 252, 111, 29, 3, 252, 106, 29, 3, 252, + 107, 29, 3, 252, 95, 187, 186, 1, 234, 20, 187, 186, 1, 221, 254, 187, + 186, 1, 233, 110, 187, 186, 1, 230, 173, 187, 186, 1, 190, 187, 186, 1, + 197, 187, 186, 1, 250, 103, 187, 186, 1, 216, 91, 187, 186, 1, 234, 102, + 187, 186, 1, 228, 251, 187, 186, 1, 216, 151, 187, 186, 1, 212, 60, 187, + 186, 1, 211, 69, 187, 186, 1, 240, 217, 187, 186, 1, 214, 190, 187, 186, + 1, 73, 187, 186, 1, 225, 143, 187, 186, 1, 253, 203, 187, 186, 1, 242, + 168, 187, 186, 1, 235, 113, 187, 186, 1, 223, 167, 187, 186, 1, 252, 192, + 187, 186, 1, 235, 101, 187, 186, 1, 247, 220, 187, 186, 1, 242, 222, 187, + 186, 1, 248, 6, 187, 186, 1, 252, 17, 187, 186, 1, 234, 21, 232, 129, + 187, 186, 1, 233, 111, 232, 129, 187, 186, 1, 230, 174, 232, 129, 187, + 186, 1, 226, 91, 232, 129, 187, 186, 1, 229, 230, 232, 129, 187, 186, 1, + 216, 92, 232, 129, 187, 186, 1, 228, 252, 232, 129, 187, 186, 1, 240, + 155, 232, 129, 187, 186, 25, 5, 226, 196, 187, 186, 25, 5, 235, 254, 187, + 186, 25, 5, 254, 123, 187, 186, 25, 5, 211, 38, 187, 186, 25, 5, 219, 33, + 187, 186, 25, 5, 214, 187, 187, 186, 25, 5, 250, 124, 187, 186, 25, 5, + 227, 192, 187, 186, 250, 125, 187, 186, 232, 86, 235, 151, 187, 186, 254, + 47, 235, 151, 187, 186, 21, 210, 86, 187, 186, 21, 110, 187, 186, 21, + 105, 187, 186, 21, 158, 187, 186, 21, 161, 187, 186, 21, 189, 187, 186, + 21, 194, 187, 186, 21, 198, 187, 186, 21, 195, 187, 186, 21, 200, 24, + 143, 227, 78, 24, 143, 227, 83, 24, 143, 210, 243, 24, 143, 210, 242, 24, 143, 210, 241, 24, 143, 215, 23, 24, 143, 215, 26, 24, 143, 210, 210, 24, - 143, 210, 206, 24, 143, 245, 54, 24, 143, 245, 52, 24, 143, 245, 53, 24, - 143, 245, 50, 24, 143, 240, 144, 24, 143, 240, 143, 24, 143, 240, 141, - 24, 143, 240, 142, 24, 143, 240, 147, 24, 143, 240, 140, 24, 143, 240, - 139, 24, 143, 240, 149, 24, 143, 254, 33, 24, 143, 254, 32, 24, 90, 228, - 219, 24, 90, 228, 225, 24, 90, 218, 204, 24, 90, 218, 203, 24, 90, 216, - 96, 24, 90, 216, 94, 24, 90, 216, 93, 24, 90, 216, 99, 24, 90, 216, 100, - 24, 90, 216, 92, 24, 90, 223, 5, 24, 90, 223, 20, 24, 90, 218, 210, 24, - 90, 223, 17, 24, 90, 223, 7, 24, 90, 223, 9, 24, 90, 222, 252, 24, 90, - 222, 253, 24, 90, 234, 218, 24, 90, 230, 212, 24, 90, 230, 206, 24, 90, - 218, 214, 24, 90, 230, 209, 24, 90, 230, 215, 24, 90, 225, 76, 24, 90, - 225, 85, 24, 90, 225, 89, 24, 90, 218, 212, 24, 90, 225, 79, 24, 90, 225, - 93, 24, 90, 225, 94, 24, 90, 219, 140, 24, 90, 219, 143, 24, 90, 218, - 208, 24, 90, 218, 206, 24, 90, 219, 138, 24, 90, 219, 146, 24, 90, 219, - 147, 24, 90, 219, 132, 24, 90, 219, 145, 24, 90, 226, 30, 24, 90, 226, - 31, 24, 90, 211, 24, 24, 90, 211, 25, 24, 90, 250, 44, 24, 90, 250, 43, - 24, 90, 218, 219, 24, 90, 225, 128, 24, 90, 225, 127, 9, 14, 238, 24, 9, - 14, 238, 23, 9, 14, 238, 22, 9, 14, 238, 21, 9, 14, 238, 20, 9, 14, 238, - 19, 9, 14, 238, 18, 9, 14, 238, 17, 9, 14, 238, 16, 9, 14, 238, 15, 9, - 14, 238, 14, 9, 14, 238, 13, 9, 14, 238, 12, 9, 14, 238, 11, 9, 14, 238, - 10, 9, 14, 238, 9, 9, 14, 238, 8, 9, 14, 238, 7, 9, 14, 238, 6, 9, 14, - 238, 5, 9, 14, 238, 4, 9, 14, 238, 3, 9, 14, 238, 2, 9, 14, 238, 1, 9, - 14, 238, 0, 9, 14, 237, 255, 9, 14, 237, 254, 9, 14, 237, 253, 9, 14, - 237, 252, 9, 14, 237, 251, 9, 14, 237, 250, 9, 14, 237, 249, 9, 14, 237, - 248, 9, 14, 237, 247, 9, 14, 237, 246, 9, 14, 237, 245, 9, 14, 237, 244, - 9, 14, 237, 243, 9, 14, 237, 242, 9, 14, 237, 241, 9, 14, 237, 240, 9, - 14, 237, 239, 9, 14, 237, 238, 9, 14, 237, 237, 9, 14, 237, 236, 9, 14, - 237, 235, 9, 14, 237, 234, 9, 14, 237, 233, 9, 14, 237, 232, 9, 14, 237, - 231, 9, 14, 237, 230, 9, 14, 237, 229, 9, 14, 237, 228, 9, 14, 237, 227, - 9, 14, 237, 226, 9, 14, 237, 225, 9, 14, 237, 224, 9, 14, 237, 223, 9, - 14, 237, 222, 9, 14, 237, 221, 9, 14, 237, 220, 9, 14, 237, 219, 9, 14, - 237, 218, 9, 14, 237, 217, 9, 14, 237, 216, 9, 14, 237, 215, 9, 14, 237, - 214, 9, 14, 237, 213, 9, 14, 237, 212, 9, 14, 237, 211, 9, 14, 237, 210, - 9, 14, 237, 209, 9, 14, 237, 208, 9, 14, 237, 207, 9, 14, 237, 206, 9, - 14, 237, 205, 9, 14, 237, 204, 9, 14, 237, 203, 9, 14, 237, 202, 9, 14, - 237, 201, 9, 14, 237, 200, 9, 14, 237, 199, 9, 14, 237, 198, 9, 14, 237, - 197, 9, 14, 237, 196, 9, 14, 237, 195, 9, 14, 237, 194, 9, 14, 237, 193, - 9, 14, 237, 192, 9, 14, 237, 191, 9, 14, 237, 190, 9, 14, 237, 189, 9, - 14, 237, 188, 9, 14, 237, 187, 9, 14, 237, 186, 9, 14, 237, 185, 9, 14, - 237, 184, 9, 14, 237, 183, 9, 14, 237, 182, 9, 14, 237, 181, 9, 14, 237, - 180, 9, 14, 237, 179, 9, 14, 237, 178, 9, 14, 237, 177, 9, 14, 237, 176, - 9, 14, 237, 175, 9, 14, 237, 174, 9, 14, 237, 173, 9, 14, 237, 172, 9, - 14, 237, 171, 9, 14, 237, 170, 9, 14, 237, 169, 9, 14, 237, 168, 9, 14, - 237, 167, 9, 14, 237, 166, 9, 14, 237, 165, 9, 14, 237, 164, 9, 14, 237, - 163, 9, 14, 237, 162, 9, 14, 237, 161, 9, 14, 237, 160, 9, 14, 237, 159, - 9, 14, 237, 158, 9, 14, 237, 157, 9, 14, 237, 156, 9, 14, 237, 155, 9, - 14, 237, 154, 9, 14, 237, 153, 9, 14, 237, 152, 9, 14, 237, 151, 9, 14, - 237, 150, 9, 14, 237, 149, 9, 14, 237, 148, 9, 14, 237, 147, 9, 14, 237, - 146, 9, 14, 237, 145, 9, 14, 237, 144, 9, 14, 237, 143, 9, 14, 237, 142, - 9, 14, 237, 141, 9, 14, 237, 140, 9, 14, 237, 139, 9, 14, 237, 138, 9, - 14, 237, 137, 9, 14, 237, 136, 9, 14, 237, 135, 9, 14, 237, 134, 9, 14, - 237, 133, 9, 14, 237, 132, 9, 14, 237, 131, 9, 14, 237, 130, 9, 14, 237, - 129, 9, 14, 237, 128, 9, 14, 237, 127, 9, 14, 237, 126, 9, 14, 237, 125, - 9, 14, 237, 124, 9, 14, 237, 123, 9, 14, 237, 122, 9, 14, 237, 121, 9, - 14, 237, 120, 9, 14, 237, 119, 9, 14, 237, 118, 9, 14, 237, 117, 9, 14, - 237, 116, 9, 14, 237, 115, 9, 14, 237, 114, 9, 14, 237, 113, 9, 14, 237, - 112, 9, 14, 237, 111, 9, 14, 237, 110, 9, 14, 237, 109, 9, 14, 237, 108, - 9, 14, 237, 107, 9, 14, 237, 106, 9, 14, 237, 105, 9, 14, 237, 104, 9, - 14, 237, 103, 9, 14, 237, 102, 9, 14, 237, 101, 9, 14, 237, 100, 9, 14, - 237, 99, 9, 14, 237, 98, 9, 14, 237, 97, 9, 14, 237, 96, 9, 14, 237, 95, - 9, 14, 237, 94, 9, 14, 237, 93, 9, 14, 237, 92, 9, 14, 237, 91, 9, 14, - 237, 90, 9, 14, 237, 89, 9, 14, 237, 88, 9, 14, 237, 87, 9, 14, 237, 86, - 9, 14, 237, 85, 9, 14, 237, 84, 9, 14, 237, 83, 9, 14, 237, 82, 9, 14, - 237, 81, 9, 14, 237, 80, 9, 14, 237, 79, 9, 14, 237, 78, 9, 14, 237, 77, - 9, 14, 237, 76, 9, 14, 237, 75, 9, 14, 237, 74, 9, 14, 237, 73, 9, 14, - 237, 72, 9, 14, 237, 71, 9, 14, 237, 70, 9, 14, 237, 69, 9, 14, 237, 68, - 9, 14, 237, 67, 9, 14, 237, 66, 9, 14, 237, 65, 9, 14, 237, 64, 9, 14, - 237, 63, 9, 14, 237, 62, 9, 14, 237, 61, 9, 14, 237, 60, 9, 14, 237, 59, - 9, 14, 237, 58, 9, 14, 237, 57, 9, 14, 237, 56, 9, 14, 237, 55, 9, 14, - 237, 54, 9, 14, 237, 53, 9, 14, 237, 52, 9, 14, 237, 51, 9, 14, 237, 50, - 9, 14, 237, 49, 9, 14, 237, 48, 9, 14, 237, 47, 9, 14, 237, 46, 9, 14, - 237, 45, 9, 14, 237, 44, 9, 14, 237, 43, 9, 14, 237, 42, 9, 14, 237, 41, - 9, 14, 237, 40, 9, 14, 237, 39, 9, 14, 237, 38, 9, 14, 237, 37, 9, 14, - 237, 36, 9, 14, 237, 35, 9, 14, 237, 34, 9, 14, 237, 33, 9, 14, 237, 32, - 9, 14, 237, 31, 9, 14, 237, 30, 9, 14, 237, 29, 9, 14, 237, 28, 9, 14, - 237, 27, 9, 14, 237, 26, 9, 14, 237, 25, 9, 14, 237, 24, 9, 14, 237, 23, - 9, 14, 237, 22, 9, 14, 237, 21, 9, 14, 237, 20, 9, 14, 237, 19, 9, 14, - 237, 18, 9, 14, 237, 17, 9, 14, 237, 16, 9, 14, 237, 15, 9, 14, 237, 14, - 9, 14, 237, 13, 9, 14, 237, 12, 9, 14, 237, 11, 9, 14, 237, 10, 9, 14, - 237, 9, 9, 14, 237, 8, 9, 14, 237, 7, 9, 14, 237, 6, 9, 14, 237, 5, 9, - 14, 237, 4, 9, 14, 237, 3, 9, 14, 237, 2, 9, 14, 237, 1, 9, 14, 237, 0, - 9, 14, 236, 255, 9, 14, 236, 254, 9, 14, 236, 253, 9, 14, 236, 252, 9, - 14, 236, 251, 9, 14, 236, 250, 9, 14, 236, 249, 9, 14, 236, 248, 9, 14, - 236, 247, 9, 14, 236, 246, 9, 14, 236, 245, 9, 14, 236, 244, 9, 14, 236, - 243, 9, 14, 236, 242, 9, 14, 236, 241, 9, 14, 236, 240, 9, 14, 236, 239, - 9, 14, 236, 238, 9, 14, 236, 237, 9, 14, 236, 236, 9, 14, 236, 235, 9, - 14, 236, 234, 9, 14, 236, 233, 9, 14, 236, 232, 9, 14, 236, 231, 9, 14, - 236, 230, 9, 14, 236, 229, 9, 14, 236, 228, 9, 14, 236, 227, 9, 14, 236, - 226, 9, 14, 236, 225, 9, 14, 236, 224, 9, 14, 236, 223, 9, 14, 236, 222, - 9, 14, 236, 221, 9, 14, 236, 220, 9, 14, 236, 219, 9, 14, 236, 218, 9, - 14, 236, 217, 9, 14, 236, 216, 9, 14, 236, 215, 9, 14, 236, 214, 9, 14, - 236, 213, 9, 14, 236, 212, 9, 14, 236, 211, 9, 14, 236, 210, 9, 14, 236, - 209, 9, 14, 236, 208, 9, 14, 236, 207, 9, 14, 236, 206, 9, 14, 236, 205, - 9, 14, 236, 204, 9, 14, 236, 203, 9, 14, 236, 202, 9, 14, 236, 201, 9, - 14, 236, 200, 9, 14, 236, 199, 9, 14, 236, 198, 9, 14, 236, 197, 9, 14, - 236, 196, 9, 14, 236, 195, 9, 14, 236, 194, 9, 14, 236, 193, 9, 14, 236, - 192, 9, 14, 236, 191, 9, 14, 236, 190, 9, 14, 236, 189, 9, 14, 236, 188, - 9, 14, 236, 187, 9, 14, 236, 186, 9, 14, 236, 185, 9, 14, 236, 184, 9, - 14, 236, 183, 9, 14, 236, 182, 9, 14, 236, 181, 9, 14, 236, 180, 9, 14, - 236, 179, 9, 14, 236, 178, 9, 14, 236, 177, 9, 14, 236, 176, 9, 14, 236, - 175, 9, 14, 236, 174, 9, 14, 236, 173, 9, 14, 236, 172, 9, 14, 236, 171, - 9, 14, 236, 170, 9, 14, 236, 169, 9, 14, 236, 168, 9, 14, 236, 167, 9, - 14, 236, 166, 9, 14, 236, 165, 9, 14, 236, 164, 9, 14, 236, 163, 9, 14, - 236, 162, 9, 14, 236, 161, 9, 14, 236, 160, 9, 14, 236, 159, 9, 14, 236, - 158, 9, 14, 236, 157, 9, 14, 236, 156, 9, 14, 236, 155, 9, 14, 236, 154, - 9, 14, 236, 153, 9, 14, 236, 152, 9, 14, 236, 151, 9, 14, 236, 150, 9, - 14, 236, 149, 9, 14, 236, 148, 9, 14, 236, 147, 9, 14, 236, 146, 9, 14, - 236, 145, 9, 14, 236, 144, 9, 14, 236, 143, 9, 14, 236, 142, 9, 14, 236, - 141, 9, 14, 236, 140, 9, 14, 236, 139, 9, 14, 236, 138, 9, 14, 236, 137, - 9, 14, 236, 136, 9, 14, 236, 135, 9, 14, 236, 134, 9, 14, 236, 133, 9, - 14, 236, 132, 9, 14, 236, 131, 9, 14, 236, 130, 9, 14, 236, 129, 9, 14, - 236, 128, 9, 14, 236, 127, 9, 14, 236, 126, 9, 14, 236, 125, 9, 14, 236, - 124, 9, 14, 236, 123, 9, 14, 236, 122, 9, 14, 236, 121, 9, 14, 236, 120, - 9, 14, 236, 119, 9, 14, 236, 118, 9, 14, 236, 117, 9, 14, 236, 116, 9, - 14, 236, 115, 9, 14, 236, 114, 9, 14, 236, 113, 9, 14, 236, 112, 9, 14, - 236, 111, 9, 14, 236, 110, 9, 14, 236, 109, 9, 14, 236, 108, 9, 14, 236, - 107, 9, 14, 236, 106, 9, 14, 236, 105, 9, 14, 236, 104, 9, 14, 236, 103, - 9, 14, 236, 102, 9, 14, 236, 101, 9, 14, 236, 100, 9, 14, 236, 99, 9, 14, - 236, 98, 9, 14, 236, 97, 9, 14, 236, 96, 9, 14, 236, 95, 9, 14, 236, 94, - 9, 14, 236, 93, 9, 14, 236, 92, 9, 14, 236, 91, 9, 14, 236, 90, 9, 14, - 236, 89, 9, 14, 236, 88, 9, 14, 236, 87, 9, 14, 236, 86, 9, 14, 236, 85, - 9, 14, 236, 84, 9, 14, 236, 83, 9, 14, 236, 82, 9, 14, 236, 81, 9, 14, - 236, 80, 9, 14, 236, 79, 9, 14, 236, 78, 9, 14, 236, 77, 9, 14, 236, 76, - 9, 14, 236, 75, 9, 14, 236, 74, 9, 14, 236, 73, 9, 14, 236, 72, 9, 14, - 236, 71, 9, 14, 236, 70, 9, 14, 236, 69, 9, 14, 236, 68, 9, 14, 236, 67, - 9, 14, 236, 66, 9, 14, 236, 65, 7, 4, 27, 244, 125, 7, 4, 27, 244, 121, - 7, 4, 27, 244, 76, 7, 4, 27, 244, 124, 7, 4, 27, 244, 123, 7, 4, 27, 199, - 222, 92, 217, 152, 7, 4, 27, 218, 168, 150, 4, 27, 231, 59, 228, 39, 150, - 4, 27, 231, 59, 245, 213, 150, 4, 27, 231, 59, 235, 227, 150, 4, 27, 213, - 180, 228, 39, 150, 4, 27, 231, 59, 211, 160, 94, 1, 210, 234, 2, 241, - 158, 94, 225, 11, 235, 50, 214, 11, 94, 27, 211, 6, 210, 234, 210, 234, - 225, 239, 94, 1, 254, 139, 253, 162, 94, 1, 211, 247, 254, 170, 94, 1, - 211, 247, 248, 189, 94, 1, 211, 247, 241, 238, 94, 1, 211, 247, 234, 250, - 94, 1, 211, 247, 233, 94, 94, 1, 211, 247, 40, 231, 65, 94, 1, 211, 247, - 223, 67, 94, 1, 211, 247, 217, 38, 94, 1, 254, 139, 96, 50, 94, 1, 220, - 21, 2, 220, 21, 247, 120, 94, 1, 220, 21, 2, 219, 159, 247, 120, 94, 1, - 220, 21, 2, 248, 208, 22, 220, 21, 247, 120, 94, 1, 220, 21, 2, 248, 208, - 22, 219, 159, 247, 120, 94, 1, 112, 2, 225, 239, 94, 1, 112, 2, 224, 76, - 94, 1, 112, 2, 231, 171, 94, 1, 252, 29, 2, 248, 207, 94, 1, 242, 202, 2, - 248, 207, 94, 1, 248, 190, 2, 248, 207, 94, 1, 241, 239, 2, 231, 171, 94, - 1, 214, 4, 2, 248, 207, 94, 1, 210, 98, 2, 248, 207, 94, 1, 216, 231, 2, - 248, 207, 94, 1, 210, 234, 2, 248, 207, 94, 1, 40, 234, 251, 2, 248, 207, - 94, 1, 234, 251, 2, 248, 207, 94, 1, 233, 95, 2, 248, 207, 94, 1, 231, - 66, 2, 248, 207, 94, 1, 227, 195, 2, 248, 207, 94, 1, 221, 250, 2, 248, - 207, 94, 1, 40, 225, 222, 2, 248, 207, 94, 1, 225, 222, 2, 248, 207, 94, - 1, 215, 180, 2, 248, 207, 94, 1, 224, 40, 2, 248, 207, 94, 1, 223, 68, 2, - 248, 207, 94, 1, 220, 21, 2, 248, 207, 94, 1, 217, 39, 2, 248, 207, 94, - 1, 214, 4, 2, 241, 61, 94, 1, 252, 29, 2, 223, 169, 94, 1, 234, 251, 2, - 223, 169, 94, 1, 225, 222, 2, 223, 169, 94, 27, 112, 233, 94, 10, 1, 112, - 212, 47, 53, 17, 10, 1, 112, 212, 47, 40, 17, 10, 1, 252, 65, 53, 17, 10, - 1, 252, 65, 40, 17, 10, 1, 252, 65, 65, 17, 10, 1, 252, 65, 147, 17, 10, - 1, 225, 206, 53, 17, 10, 1, 225, 206, 40, 17, 10, 1, 225, 206, 65, 17, - 10, 1, 225, 206, 147, 17, 10, 1, 252, 53, 53, 17, 10, 1, 252, 53, 40, 17, - 10, 1, 252, 53, 65, 17, 10, 1, 252, 53, 147, 17, 10, 1, 215, 147, 53, 17, - 10, 1, 215, 147, 40, 17, 10, 1, 215, 147, 65, 17, 10, 1, 215, 147, 147, - 17, 10, 1, 217, 6, 53, 17, 10, 1, 217, 6, 40, 17, 10, 1, 217, 6, 65, 17, - 10, 1, 217, 6, 147, 17, 10, 1, 215, 149, 53, 17, 10, 1, 215, 149, 40, 17, - 10, 1, 215, 149, 65, 17, 10, 1, 215, 149, 147, 17, 10, 1, 213, 249, 53, + 143, 210, 206, 24, 143, 245, 55, 24, 143, 245, 53, 24, 143, 245, 54, 24, + 143, 245, 51, 24, 143, 240, 145, 24, 143, 240, 144, 24, 143, 240, 142, + 24, 143, 240, 143, 24, 143, 240, 148, 24, 143, 240, 141, 24, 143, 240, + 140, 24, 143, 240, 150, 24, 143, 254, 34, 24, 143, 254, 33, 24, 90, 228, + 220, 24, 90, 228, 226, 24, 90, 218, 205, 24, 90, 218, 204, 24, 90, 216, + 97, 24, 90, 216, 95, 24, 90, 216, 94, 24, 90, 216, 100, 24, 90, 216, 101, + 24, 90, 216, 93, 24, 90, 223, 6, 24, 90, 223, 21, 24, 90, 218, 211, 24, + 90, 223, 18, 24, 90, 223, 8, 24, 90, 223, 10, 24, 90, 222, 253, 24, 90, + 222, 254, 24, 90, 234, 219, 24, 90, 230, 213, 24, 90, 230, 207, 24, 90, + 218, 215, 24, 90, 230, 210, 24, 90, 230, 216, 24, 90, 225, 77, 24, 90, + 225, 86, 24, 90, 225, 90, 24, 90, 218, 213, 24, 90, 225, 80, 24, 90, 225, + 94, 24, 90, 225, 95, 24, 90, 219, 141, 24, 90, 219, 144, 24, 90, 218, + 209, 24, 90, 218, 207, 24, 90, 219, 139, 24, 90, 219, 147, 24, 90, 219, + 148, 24, 90, 219, 133, 24, 90, 219, 146, 24, 90, 226, 31, 24, 90, 226, + 32, 24, 90, 211, 24, 24, 90, 211, 25, 24, 90, 250, 45, 24, 90, 250, 44, + 24, 90, 218, 220, 24, 90, 225, 129, 24, 90, 225, 128, 9, 14, 238, 25, 9, + 14, 238, 24, 9, 14, 238, 23, 9, 14, 238, 22, 9, 14, 238, 21, 9, 14, 238, + 20, 9, 14, 238, 19, 9, 14, 238, 18, 9, 14, 238, 17, 9, 14, 238, 16, 9, + 14, 238, 15, 9, 14, 238, 14, 9, 14, 238, 13, 9, 14, 238, 12, 9, 14, 238, + 11, 9, 14, 238, 10, 9, 14, 238, 9, 9, 14, 238, 8, 9, 14, 238, 7, 9, 14, + 238, 6, 9, 14, 238, 5, 9, 14, 238, 4, 9, 14, 238, 3, 9, 14, 238, 2, 9, + 14, 238, 1, 9, 14, 238, 0, 9, 14, 237, 255, 9, 14, 237, 254, 9, 14, 237, + 253, 9, 14, 237, 252, 9, 14, 237, 251, 9, 14, 237, 250, 9, 14, 237, 249, + 9, 14, 237, 248, 9, 14, 237, 247, 9, 14, 237, 246, 9, 14, 237, 245, 9, + 14, 237, 244, 9, 14, 237, 243, 9, 14, 237, 242, 9, 14, 237, 241, 9, 14, + 237, 240, 9, 14, 237, 239, 9, 14, 237, 238, 9, 14, 237, 237, 9, 14, 237, + 236, 9, 14, 237, 235, 9, 14, 237, 234, 9, 14, 237, 233, 9, 14, 237, 232, + 9, 14, 237, 231, 9, 14, 237, 230, 9, 14, 237, 229, 9, 14, 237, 228, 9, + 14, 237, 227, 9, 14, 237, 226, 9, 14, 237, 225, 9, 14, 237, 224, 9, 14, + 237, 223, 9, 14, 237, 222, 9, 14, 237, 221, 9, 14, 237, 220, 9, 14, 237, + 219, 9, 14, 237, 218, 9, 14, 237, 217, 9, 14, 237, 216, 9, 14, 237, 215, + 9, 14, 237, 214, 9, 14, 237, 213, 9, 14, 237, 212, 9, 14, 237, 211, 9, + 14, 237, 210, 9, 14, 237, 209, 9, 14, 237, 208, 9, 14, 237, 207, 9, 14, + 237, 206, 9, 14, 237, 205, 9, 14, 237, 204, 9, 14, 237, 203, 9, 14, 237, + 202, 9, 14, 237, 201, 9, 14, 237, 200, 9, 14, 237, 199, 9, 14, 237, 198, + 9, 14, 237, 197, 9, 14, 237, 196, 9, 14, 237, 195, 9, 14, 237, 194, 9, + 14, 237, 193, 9, 14, 237, 192, 9, 14, 237, 191, 9, 14, 237, 190, 9, 14, + 237, 189, 9, 14, 237, 188, 9, 14, 237, 187, 9, 14, 237, 186, 9, 14, 237, + 185, 9, 14, 237, 184, 9, 14, 237, 183, 9, 14, 237, 182, 9, 14, 237, 181, + 9, 14, 237, 180, 9, 14, 237, 179, 9, 14, 237, 178, 9, 14, 237, 177, 9, + 14, 237, 176, 9, 14, 237, 175, 9, 14, 237, 174, 9, 14, 237, 173, 9, 14, + 237, 172, 9, 14, 237, 171, 9, 14, 237, 170, 9, 14, 237, 169, 9, 14, 237, + 168, 9, 14, 237, 167, 9, 14, 237, 166, 9, 14, 237, 165, 9, 14, 237, 164, + 9, 14, 237, 163, 9, 14, 237, 162, 9, 14, 237, 161, 9, 14, 237, 160, 9, + 14, 237, 159, 9, 14, 237, 158, 9, 14, 237, 157, 9, 14, 237, 156, 9, 14, + 237, 155, 9, 14, 237, 154, 9, 14, 237, 153, 9, 14, 237, 152, 9, 14, 237, + 151, 9, 14, 237, 150, 9, 14, 237, 149, 9, 14, 237, 148, 9, 14, 237, 147, + 9, 14, 237, 146, 9, 14, 237, 145, 9, 14, 237, 144, 9, 14, 237, 143, 9, + 14, 237, 142, 9, 14, 237, 141, 9, 14, 237, 140, 9, 14, 237, 139, 9, 14, + 237, 138, 9, 14, 237, 137, 9, 14, 237, 136, 9, 14, 237, 135, 9, 14, 237, + 134, 9, 14, 237, 133, 9, 14, 237, 132, 9, 14, 237, 131, 9, 14, 237, 130, + 9, 14, 237, 129, 9, 14, 237, 128, 9, 14, 237, 127, 9, 14, 237, 126, 9, + 14, 237, 125, 9, 14, 237, 124, 9, 14, 237, 123, 9, 14, 237, 122, 9, 14, + 237, 121, 9, 14, 237, 120, 9, 14, 237, 119, 9, 14, 237, 118, 9, 14, 237, + 117, 9, 14, 237, 116, 9, 14, 237, 115, 9, 14, 237, 114, 9, 14, 237, 113, + 9, 14, 237, 112, 9, 14, 237, 111, 9, 14, 237, 110, 9, 14, 237, 109, 9, + 14, 237, 108, 9, 14, 237, 107, 9, 14, 237, 106, 9, 14, 237, 105, 9, 14, + 237, 104, 9, 14, 237, 103, 9, 14, 237, 102, 9, 14, 237, 101, 9, 14, 237, + 100, 9, 14, 237, 99, 9, 14, 237, 98, 9, 14, 237, 97, 9, 14, 237, 96, 9, + 14, 237, 95, 9, 14, 237, 94, 9, 14, 237, 93, 9, 14, 237, 92, 9, 14, 237, + 91, 9, 14, 237, 90, 9, 14, 237, 89, 9, 14, 237, 88, 9, 14, 237, 87, 9, + 14, 237, 86, 9, 14, 237, 85, 9, 14, 237, 84, 9, 14, 237, 83, 9, 14, 237, + 82, 9, 14, 237, 81, 9, 14, 237, 80, 9, 14, 237, 79, 9, 14, 237, 78, 9, + 14, 237, 77, 9, 14, 237, 76, 9, 14, 237, 75, 9, 14, 237, 74, 9, 14, 237, + 73, 9, 14, 237, 72, 9, 14, 237, 71, 9, 14, 237, 70, 9, 14, 237, 69, 9, + 14, 237, 68, 9, 14, 237, 67, 9, 14, 237, 66, 9, 14, 237, 65, 9, 14, 237, + 64, 9, 14, 237, 63, 9, 14, 237, 62, 9, 14, 237, 61, 9, 14, 237, 60, 9, + 14, 237, 59, 9, 14, 237, 58, 9, 14, 237, 57, 9, 14, 237, 56, 9, 14, 237, + 55, 9, 14, 237, 54, 9, 14, 237, 53, 9, 14, 237, 52, 9, 14, 237, 51, 9, + 14, 237, 50, 9, 14, 237, 49, 9, 14, 237, 48, 9, 14, 237, 47, 9, 14, 237, + 46, 9, 14, 237, 45, 9, 14, 237, 44, 9, 14, 237, 43, 9, 14, 237, 42, 9, + 14, 237, 41, 9, 14, 237, 40, 9, 14, 237, 39, 9, 14, 237, 38, 9, 14, 237, + 37, 9, 14, 237, 36, 9, 14, 237, 35, 9, 14, 237, 34, 9, 14, 237, 33, 9, + 14, 237, 32, 9, 14, 237, 31, 9, 14, 237, 30, 9, 14, 237, 29, 9, 14, 237, + 28, 9, 14, 237, 27, 9, 14, 237, 26, 9, 14, 237, 25, 9, 14, 237, 24, 9, + 14, 237, 23, 9, 14, 237, 22, 9, 14, 237, 21, 9, 14, 237, 20, 9, 14, 237, + 19, 9, 14, 237, 18, 9, 14, 237, 17, 9, 14, 237, 16, 9, 14, 237, 15, 9, + 14, 237, 14, 9, 14, 237, 13, 9, 14, 237, 12, 9, 14, 237, 11, 9, 14, 237, + 10, 9, 14, 237, 9, 9, 14, 237, 8, 9, 14, 237, 7, 9, 14, 237, 6, 9, 14, + 237, 5, 9, 14, 237, 4, 9, 14, 237, 3, 9, 14, 237, 2, 9, 14, 237, 1, 9, + 14, 237, 0, 9, 14, 236, 255, 9, 14, 236, 254, 9, 14, 236, 253, 9, 14, + 236, 252, 9, 14, 236, 251, 9, 14, 236, 250, 9, 14, 236, 249, 9, 14, 236, + 248, 9, 14, 236, 247, 9, 14, 236, 246, 9, 14, 236, 245, 9, 14, 236, 244, + 9, 14, 236, 243, 9, 14, 236, 242, 9, 14, 236, 241, 9, 14, 236, 240, 9, + 14, 236, 239, 9, 14, 236, 238, 9, 14, 236, 237, 9, 14, 236, 236, 9, 14, + 236, 235, 9, 14, 236, 234, 9, 14, 236, 233, 9, 14, 236, 232, 9, 14, 236, + 231, 9, 14, 236, 230, 9, 14, 236, 229, 9, 14, 236, 228, 9, 14, 236, 227, + 9, 14, 236, 226, 9, 14, 236, 225, 9, 14, 236, 224, 9, 14, 236, 223, 9, + 14, 236, 222, 9, 14, 236, 221, 9, 14, 236, 220, 9, 14, 236, 219, 9, 14, + 236, 218, 9, 14, 236, 217, 9, 14, 236, 216, 9, 14, 236, 215, 9, 14, 236, + 214, 9, 14, 236, 213, 9, 14, 236, 212, 9, 14, 236, 211, 9, 14, 236, 210, + 9, 14, 236, 209, 9, 14, 236, 208, 9, 14, 236, 207, 9, 14, 236, 206, 9, + 14, 236, 205, 9, 14, 236, 204, 9, 14, 236, 203, 9, 14, 236, 202, 9, 14, + 236, 201, 9, 14, 236, 200, 9, 14, 236, 199, 9, 14, 236, 198, 9, 14, 236, + 197, 9, 14, 236, 196, 9, 14, 236, 195, 9, 14, 236, 194, 9, 14, 236, 193, + 9, 14, 236, 192, 9, 14, 236, 191, 9, 14, 236, 190, 9, 14, 236, 189, 9, + 14, 236, 188, 9, 14, 236, 187, 9, 14, 236, 186, 9, 14, 236, 185, 9, 14, + 236, 184, 9, 14, 236, 183, 9, 14, 236, 182, 9, 14, 236, 181, 9, 14, 236, + 180, 9, 14, 236, 179, 9, 14, 236, 178, 9, 14, 236, 177, 9, 14, 236, 176, + 9, 14, 236, 175, 9, 14, 236, 174, 9, 14, 236, 173, 9, 14, 236, 172, 9, + 14, 236, 171, 9, 14, 236, 170, 9, 14, 236, 169, 9, 14, 236, 168, 9, 14, + 236, 167, 9, 14, 236, 166, 9, 14, 236, 165, 9, 14, 236, 164, 9, 14, 236, + 163, 9, 14, 236, 162, 9, 14, 236, 161, 9, 14, 236, 160, 9, 14, 236, 159, + 9, 14, 236, 158, 9, 14, 236, 157, 9, 14, 236, 156, 9, 14, 236, 155, 9, + 14, 236, 154, 9, 14, 236, 153, 9, 14, 236, 152, 9, 14, 236, 151, 9, 14, + 236, 150, 9, 14, 236, 149, 9, 14, 236, 148, 9, 14, 236, 147, 9, 14, 236, + 146, 9, 14, 236, 145, 9, 14, 236, 144, 9, 14, 236, 143, 9, 14, 236, 142, + 9, 14, 236, 141, 9, 14, 236, 140, 9, 14, 236, 139, 9, 14, 236, 138, 9, + 14, 236, 137, 9, 14, 236, 136, 9, 14, 236, 135, 9, 14, 236, 134, 9, 14, + 236, 133, 9, 14, 236, 132, 9, 14, 236, 131, 9, 14, 236, 130, 9, 14, 236, + 129, 9, 14, 236, 128, 9, 14, 236, 127, 9, 14, 236, 126, 9, 14, 236, 125, + 9, 14, 236, 124, 9, 14, 236, 123, 9, 14, 236, 122, 9, 14, 236, 121, 9, + 14, 236, 120, 9, 14, 236, 119, 9, 14, 236, 118, 9, 14, 236, 117, 9, 14, + 236, 116, 9, 14, 236, 115, 9, 14, 236, 114, 9, 14, 236, 113, 9, 14, 236, + 112, 9, 14, 236, 111, 9, 14, 236, 110, 9, 14, 236, 109, 9, 14, 236, 108, + 9, 14, 236, 107, 9, 14, 236, 106, 9, 14, 236, 105, 9, 14, 236, 104, 9, + 14, 236, 103, 9, 14, 236, 102, 9, 14, 236, 101, 9, 14, 236, 100, 9, 14, + 236, 99, 9, 14, 236, 98, 9, 14, 236, 97, 9, 14, 236, 96, 9, 14, 236, 95, + 9, 14, 236, 94, 9, 14, 236, 93, 9, 14, 236, 92, 9, 14, 236, 91, 9, 14, + 236, 90, 9, 14, 236, 89, 9, 14, 236, 88, 9, 14, 236, 87, 9, 14, 236, 86, + 9, 14, 236, 85, 9, 14, 236, 84, 9, 14, 236, 83, 9, 14, 236, 82, 9, 14, + 236, 81, 9, 14, 236, 80, 9, 14, 236, 79, 9, 14, 236, 78, 9, 14, 236, 77, + 9, 14, 236, 76, 9, 14, 236, 75, 9, 14, 236, 74, 9, 14, 236, 73, 9, 14, + 236, 72, 9, 14, 236, 71, 9, 14, 236, 70, 9, 14, 236, 69, 9, 14, 236, 68, + 9, 14, 236, 67, 9, 14, 236, 66, 7, 4, 27, 244, 126, 7, 4, 27, 244, 122, + 7, 4, 27, 244, 77, 7, 4, 27, 244, 125, 7, 4, 27, 244, 124, 7, 4, 27, 199, + 222, 93, 217, 153, 7, 4, 27, 218, 169, 150, 4, 27, 231, 60, 228, 40, 150, + 4, 27, 231, 60, 245, 214, 150, 4, 27, 231, 60, 235, 228, 150, 4, 27, 213, + 180, 228, 40, 150, 4, 27, 231, 60, 211, 160, 94, 1, 210, 234, 2, 241, + 159, 94, 225, 12, 235, 51, 214, 11, 94, 27, 211, 6, 210, 234, 210, 234, + 225, 240, 94, 1, 254, 140, 253, 163, 94, 1, 211, 247, 254, 171, 94, 1, + 211, 247, 248, 190, 94, 1, 211, 247, 241, 239, 94, 1, 211, 247, 234, 251, + 94, 1, 211, 247, 233, 95, 94, 1, 211, 247, 40, 231, 66, 94, 1, 211, 247, + 223, 68, 94, 1, 211, 247, 217, 39, 94, 1, 254, 140, 96, 50, 94, 1, 220, + 22, 2, 220, 22, 247, 121, 94, 1, 220, 22, 2, 219, 160, 247, 121, 94, 1, + 220, 22, 2, 248, 209, 22, 220, 22, 247, 121, 94, 1, 220, 22, 2, 248, 209, + 22, 219, 160, 247, 121, 94, 1, 112, 2, 225, 240, 94, 1, 112, 2, 224, 77, + 94, 1, 112, 2, 231, 172, 94, 1, 252, 30, 2, 248, 208, 94, 1, 242, 203, 2, + 248, 208, 94, 1, 248, 191, 2, 248, 208, 94, 1, 241, 240, 2, 231, 172, 94, + 1, 214, 4, 2, 248, 208, 94, 1, 210, 98, 2, 248, 208, 94, 1, 216, 232, 2, + 248, 208, 94, 1, 210, 234, 2, 248, 208, 94, 1, 40, 234, 252, 2, 248, 208, + 94, 1, 234, 252, 2, 248, 208, 94, 1, 233, 96, 2, 248, 208, 94, 1, 231, + 67, 2, 248, 208, 94, 1, 227, 196, 2, 248, 208, 94, 1, 221, 251, 2, 248, + 208, 94, 1, 40, 225, 223, 2, 248, 208, 94, 1, 225, 223, 2, 248, 208, 94, + 1, 215, 181, 2, 248, 208, 94, 1, 224, 41, 2, 248, 208, 94, 1, 223, 69, 2, + 248, 208, 94, 1, 220, 22, 2, 248, 208, 94, 1, 217, 40, 2, 248, 208, 94, + 1, 214, 4, 2, 241, 62, 94, 1, 252, 30, 2, 223, 170, 94, 1, 234, 252, 2, + 223, 170, 94, 1, 225, 223, 2, 223, 170, 94, 27, 112, 233, 95, 10, 1, 112, + 212, 47, 53, 17, 10, 1, 112, 212, 47, 40, 17, 10, 1, 252, 66, 53, 17, 10, + 1, 252, 66, 40, 17, 10, 1, 252, 66, 65, 17, 10, 1, 252, 66, 147, 17, 10, + 1, 225, 207, 53, 17, 10, 1, 225, 207, 40, 17, 10, 1, 225, 207, 65, 17, + 10, 1, 225, 207, 147, 17, 10, 1, 252, 54, 53, 17, 10, 1, 252, 54, 40, 17, + 10, 1, 252, 54, 65, 17, 10, 1, 252, 54, 147, 17, 10, 1, 215, 148, 53, 17, + 10, 1, 215, 148, 40, 17, 10, 1, 215, 148, 65, 17, 10, 1, 215, 148, 147, + 17, 10, 1, 217, 7, 53, 17, 10, 1, 217, 7, 40, 17, 10, 1, 217, 7, 65, 17, + 10, 1, 217, 7, 147, 17, 10, 1, 215, 150, 53, 17, 10, 1, 215, 150, 40, 17, + 10, 1, 215, 150, 65, 17, 10, 1, 215, 150, 147, 17, 10, 1, 213, 249, 53, 17, 10, 1, 213, 249, 40, 17, 10, 1, 213, 249, 65, 17, 10, 1, 213, 249, - 147, 17, 10, 1, 225, 204, 53, 17, 10, 1, 225, 204, 40, 17, 10, 1, 225, - 204, 65, 17, 10, 1, 225, 204, 147, 17, 10, 1, 246, 44, 53, 17, 10, 1, - 246, 44, 40, 17, 10, 1, 246, 44, 65, 17, 10, 1, 246, 44, 147, 17, 10, 1, - 227, 154, 53, 17, 10, 1, 227, 154, 40, 17, 10, 1, 227, 154, 65, 17, 10, - 1, 227, 154, 147, 17, 10, 1, 217, 27, 53, 17, 10, 1, 217, 27, 40, 17, 10, - 1, 217, 27, 65, 17, 10, 1, 217, 27, 147, 17, 10, 1, 217, 25, 53, 17, 10, - 1, 217, 25, 40, 17, 10, 1, 217, 25, 65, 17, 10, 1, 217, 25, 147, 17, 10, - 1, 248, 133, 53, 17, 10, 1, 248, 133, 40, 17, 10, 1, 248, 202, 53, 17, - 10, 1, 248, 202, 40, 17, 10, 1, 246, 71, 53, 17, 10, 1, 246, 71, 40, 17, - 10, 1, 248, 131, 53, 17, 10, 1, 248, 131, 40, 17, 10, 1, 235, 121, 53, - 17, 10, 1, 235, 121, 40, 17, 10, 1, 222, 172, 53, 17, 10, 1, 222, 172, - 40, 17, 10, 1, 234, 175, 53, 17, 10, 1, 234, 175, 40, 17, 10, 1, 234, - 175, 65, 17, 10, 1, 234, 175, 147, 17, 10, 1, 243, 123, 53, 17, 10, 1, - 243, 123, 40, 17, 10, 1, 243, 123, 65, 17, 10, 1, 243, 123, 147, 17, 10, - 1, 242, 102, 53, 17, 10, 1, 242, 102, 40, 17, 10, 1, 242, 102, 65, 17, - 10, 1, 242, 102, 147, 17, 10, 1, 229, 3, 53, 17, 10, 1, 229, 3, 40, 17, - 10, 1, 229, 3, 65, 17, 10, 1, 229, 3, 147, 17, 10, 1, 228, 63, 242, 219, - 53, 17, 10, 1, 228, 63, 242, 219, 40, 17, 10, 1, 222, 215, 53, 17, 10, 1, - 222, 215, 40, 17, 10, 1, 222, 215, 65, 17, 10, 1, 222, 215, 147, 17, 10, - 1, 241, 219, 2, 79, 77, 53, 17, 10, 1, 241, 219, 2, 79, 77, 40, 17, 10, - 1, 241, 219, 242, 172, 53, 17, 10, 1, 241, 219, 242, 172, 40, 17, 10, 1, - 241, 219, 242, 172, 65, 17, 10, 1, 241, 219, 242, 172, 147, 17, 10, 1, - 241, 219, 247, 142, 53, 17, 10, 1, 241, 219, 247, 142, 40, 17, 10, 1, - 241, 219, 247, 142, 65, 17, 10, 1, 241, 219, 247, 142, 147, 17, 10, 1, - 79, 252, 133, 53, 17, 10, 1, 79, 252, 133, 40, 17, 10, 1, 79, 252, 133, - 2, 202, 77, 53, 17, 10, 1, 79, 252, 133, 2, 202, 77, 40, 17, 10, 16, 59, + 147, 17, 10, 1, 225, 205, 53, 17, 10, 1, 225, 205, 40, 17, 10, 1, 225, + 205, 65, 17, 10, 1, 225, 205, 147, 17, 10, 1, 246, 45, 53, 17, 10, 1, + 246, 45, 40, 17, 10, 1, 246, 45, 65, 17, 10, 1, 246, 45, 147, 17, 10, 1, + 227, 155, 53, 17, 10, 1, 227, 155, 40, 17, 10, 1, 227, 155, 65, 17, 10, + 1, 227, 155, 147, 17, 10, 1, 217, 28, 53, 17, 10, 1, 217, 28, 40, 17, 10, + 1, 217, 28, 65, 17, 10, 1, 217, 28, 147, 17, 10, 1, 217, 26, 53, 17, 10, + 1, 217, 26, 40, 17, 10, 1, 217, 26, 65, 17, 10, 1, 217, 26, 147, 17, 10, + 1, 248, 134, 53, 17, 10, 1, 248, 134, 40, 17, 10, 1, 248, 203, 53, 17, + 10, 1, 248, 203, 40, 17, 10, 1, 246, 72, 53, 17, 10, 1, 246, 72, 40, 17, + 10, 1, 248, 132, 53, 17, 10, 1, 248, 132, 40, 17, 10, 1, 235, 122, 53, + 17, 10, 1, 235, 122, 40, 17, 10, 1, 222, 173, 53, 17, 10, 1, 222, 173, + 40, 17, 10, 1, 234, 176, 53, 17, 10, 1, 234, 176, 40, 17, 10, 1, 234, + 176, 65, 17, 10, 1, 234, 176, 147, 17, 10, 1, 243, 124, 53, 17, 10, 1, + 243, 124, 40, 17, 10, 1, 243, 124, 65, 17, 10, 1, 243, 124, 147, 17, 10, + 1, 242, 103, 53, 17, 10, 1, 242, 103, 40, 17, 10, 1, 242, 103, 65, 17, + 10, 1, 242, 103, 147, 17, 10, 1, 229, 4, 53, 17, 10, 1, 229, 4, 40, 17, + 10, 1, 229, 4, 65, 17, 10, 1, 229, 4, 147, 17, 10, 1, 228, 64, 242, 220, + 53, 17, 10, 1, 228, 64, 242, 220, 40, 17, 10, 1, 222, 216, 53, 17, 10, 1, + 222, 216, 40, 17, 10, 1, 222, 216, 65, 17, 10, 1, 222, 216, 147, 17, 10, + 1, 241, 220, 2, 79, 77, 53, 17, 10, 1, 241, 220, 2, 79, 77, 40, 17, 10, + 1, 241, 220, 242, 173, 53, 17, 10, 1, 241, 220, 242, 173, 40, 17, 10, 1, + 241, 220, 242, 173, 65, 17, 10, 1, 241, 220, 242, 173, 147, 17, 10, 1, + 241, 220, 247, 143, 53, 17, 10, 1, 241, 220, 247, 143, 40, 17, 10, 1, + 241, 220, 247, 143, 65, 17, 10, 1, 241, 220, 247, 143, 147, 17, 10, 1, + 79, 252, 134, 53, 17, 10, 1, 79, 252, 134, 40, 17, 10, 1, 79, 252, 134, + 2, 202, 77, 53, 17, 10, 1, 79, 252, 134, 2, 202, 77, 40, 17, 10, 16, 59, 48, 10, 16, 59, 51, 10, 16, 113, 170, 48, 10, 16, 113, 170, 51, 10, 16, - 134, 170, 48, 10, 16, 134, 170, 51, 10, 16, 134, 170, 225, 7, 246, 104, - 48, 10, 16, 134, 170, 225, 7, 246, 104, 51, 10, 16, 244, 11, 170, 48, 10, - 16, 244, 11, 170, 51, 10, 16, 52, 67, 252, 141, 51, 10, 16, 113, 170, - 213, 189, 48, 10, 16, 113, 170, 213, 189, 51, 10, 16, 222, 233, 10, 16, - 4, 217, 81, 48, 10, 16, 4, 217, 81, 51, 10, 1, 229, 80, 53, 17, 10, 1, - 229, 80, 40, 17, 10, 1, 229, 80, 65, 17, 10, 1, 229, 80, 147, 17, 10, 1, - 104, 53, 17, 10, 1, 104, 40, 17, 10, 1, 226, 235, 53, 17, 10, 1, 226, - 235, 40, 17, 10, 1, 210, 213, 53, 17, 10, 1, 210, 213, 40, 17, 10, 1, + 134, 170, 48, 10, 16, 134, 170, 51, 10, 16, 134, 170, 225, 8, 246, 105, + 48, 10, 16, 134, 170, 225, 8, 246, 105, 51, 10, 16, 244, 12, 170, 48, 10, + 16, 244, 12, 170, 51, 10, 16, 52, 67, 252, 142, 51, 10, 16, 113, 170, + 213, 189, 48, 10, 16, 113, 170, 213, 189, 51, 10, 16, 222, 234, 10, 16, + 4, 217, 82, 48, 10, 16, 4, 217, 82, 51, 10, 1, 229, 81, 53, 17, 10, 1, + 229, 81, 40, 17, 10, 1, 229, 81, 65, 17, 10, 1, 229, 81, 147, 17, 10, 1, + 104, 53, 17, 10, 1, 104, 40, 17, 10, 1, 226, 236, 53, 17, 10, 1, 226, + 236, 40, 17, 10, 1, 210, 213, 53, 17, 10, 1, 210, 213, 40, 17, 10, 1, 104, 2, 202, 77, 53, 17, 10, 1, 214, 0, 53, 17, 10, 1, 214, 0, 40, 17, - 10, 1, 234, 73, 226, 235, 53, 17, 10, 1, 234, 73, 226, 235, 40, 17, 10, - 1, 234, 73, 210, 213, 53, 17, 10, 1, 234, 73, 210, 213, 40, 17, 10, 1, + 10, 1, 234, 74, 226, 236, 53, 17, 10, 1, 234, 74, 226, 236, 40, 17, 10, + 1, 234, 74, 210, 213, 53, 17, 10, 1, 234, 74, 210, 213, 40, 17, 10, 1, 160, 53, 17, 10, 1, 160, 40, 17, 10, 1, 160, 65, 17, 10, 1, 160, 147, 17, - 10, 1, 214, 207, 234, 186, 234, 73, 112, 231, 193, 65, 17, 10, 1, 214, - 207, 234, 186, 234, 73, 112, 231, 193, 147, 17, 10, 27, 79, 2, 202, 77, + 10, 1, 214, 207, 234, 187, 234, 74, 112, 231, 194, 65, 17, 10, 1, 214, + 207, 234, 187, 234, 74, 112, 231, 194, 147, 17, 10, 27, 79, 2, 202, 77, 2, 112, 53, 17, 10, 27, 79, 2, 202, 77, 2, 112, 40, 17, 10, 27, 79, 2, - 202, 77, 2, 254, 244, 53, 17, 10, 27, 79, 2, 202, 77, 2, 254, 244, 40, + 202, 77, 2, 254, 245, 53, 17, 10, 27, 79, 2, 202, 77, 2, 254, 245, 40, 17, 10, 27, 79, 2, 202, 77, 2, 212, 31, 53, 17, 10, 27, 79, 2, 202, 77, 2, 212, 31, 40, 17, 10, 27, 79, 2, 202, 77, 2, 104, 53, 17, 10, 27, 79, - 2, 202, 77, 2, 104, 40, 17, 10, 27, 79, 2, 202, 77, 2, 226, 235, 53, 17, - 10, 27, 79, 2, 202, 77, 2, 226, 235, 40, 17, 10, 27, 79, 2, 202, 77, 2, + 2, 202, 77, 2, 104, 40, 17, 10, 27, 79, 2, 202, 77, 2, 226, 236, 53, 17, + 10, 27, 79, 2, 202, 77, 2, 226, 236, 40, 17, 10, 27, 79, 2, 202, 77, 2, 210, 213, 53, 17, 10, 27, 79, 2, 202, 77, 2, 210, 213, 40, 17, 10, 27, 79, 2, 202, 77, 2, 160, 53, 17, 10, 27, 79, 2, 202, 77, 2, 160, 40, 17, - 10, 27, 79, 2, 202, 77, 2, 160, 65, 17, 10, 27, 214, 207, 234, 73, 79, 2, - 202, 77, 2, 112, 231, 193, 53, 17, 10, 27, 214, 207, 234, 73, 79, 2, 202, - 77, 2, 112, 231, 193, 40, 17, 10, 27, 214, 207, 234, 73, 79, 2, 202, 77, - 2, 112, 231, 193, 65, 17, 10, 1, 244, 168, 79, 53, 17, 10, 1, 244, 168, - 79, 40, 17, 10, 1, 244, 168, 79, 65, 17, 10, 1, 244, 168, 79, 147, 17, + 10, 27, 79, 2, 202, 77, 2, 160, 65, 17, 10, 27, 214, 207, 234, 74, 79, 2, + 202, 77, 2, 112, 231, 194, 53, 17, 10, 27, 214, 207, 234, 74, 79, 2, 202, + 77, 2, 112, 231, 194, 40, 17, 10, 27, 214, 207, 234, 74, 79, 2, 202, 77, + 2, 112, 231, 194, 65, 17, 10, 1, 244, 169, 79, 53, 17, 10, 1, 244, 169, + 79, 40, 17, 10, 1, 244, 169, 79, 65, 17, 10, 1, 244, 169, 79, 147, 17, 10, 27, 79, 2, 202, 77, 2, 151, 53, 17, 10, 27, 79, 2, 202, 77, 2, 122, 53, 17, 10, 27, 79, 2, 202, 77, 2, 66, 53, 17, 10, 27, 79, 2, 202, 77, 2, - 112, 231, 193, 53, 17, 10, 27, 79, 2, 202, 77, 2, 79, 53, 17, 10, 27, - 252, 55, 2, 151, 53, 17, 10, 27, 252, 55, 2, 122, 53, 17, 10, 27, 252, - 55, 2, 234, 130, 53, 17, 10, 27, 252, 55, 2, 66, 53, 17, 10, 27, 252, 55, - 2, 112, 231, 193, 53, 17, 10, 27, 252, 55, 2, 79, 53, 17, 10, 27, 217, 8, - 2, 151, 53, 17, 10, 27, 217, 8, 2, 122, 53, 17, 10, 27, 217, 8, 2, 234, - 130, 53, 17, 10, 27, 217, 8, 2, 66, 53, 17, 10, 27, 217, 8, 2, 112, 231, - 193, 53, 17, 10, 27, 217, 8, 2, 79, 53, 17, 10, 27, 216, 193, 2, 151, 53, - 17, 10, 27, 216, 193, 2, 66, 53, 17, 10, 27, 216, 193, 2, 112, 231, 193, - 53, 17, 10, 27, 216, 193, 2, 79, 53, 17, 10, 27, 151, 2, 122, 53, 17, 10, + 112, 231, 194, 53, 17, 10, 27, 79, 2, 202, 77, 2, 79, 53, 17, 10, 27, + 252, 56, 2, 151, 53, 17, 10, 27, 252, 56, 2, 122, 53, 17, 10, 27, 252, + 56, 2, 234, 131, 53, 17, 10, 27, 252, 56, 2, 66, 53, 17, 10, 27, 252, 56, + 2, 112, 231, 194, 53, 17, 10, 27, 252, 56, 2, 79, 53, 17, 10, 27, 217, 9, + 2, 151, 53, 17, 10, 27, 217, 9, 2, 122, 53, 17, 10, 27, 217, 9, 2, 234, + 131, 53, 17, 10, 27, 217, 9, 2, 66, 53, 17, 10, 27, 217, 9, 2, 112, 231, + 194, 53, 17, 10, 27, 217, 9, 2, 79, 53, 17, 10, 27, 216, 194, 2, 151, 53, + 17, 10, 27, 216, 194, 2, 66, 53, 17, 10, 27, 216, 194, 2, 112, 231, 194, + 53, 17, 10, 27, 216, 194, 2, 79, 53, 17, 10, 27, 151, 2, 122, 53, 17, 10, 27, 151, 2, 66, 53, 17, 10, 27, 122, 2, 151, 53, 17, 10, 27, 122, 2, 66, - 53, 17, 10, 27, 234, 130, 2, 151, 53, 17, 10, 27, 234, 130, 2, 122, 53, - 17, 10, 27, 234, 130, 2, 66, 53, 17, 10, 27, 221, 167, 2, 151, 53, 17, - 10, 27, 221, 167, 2, 122, 53, 17, 10, 27, 221, 167, 2, 234, 130, 53, 17, - 10, 27, 221, 167, 2, 66, 53, 17, 10, 27, 222, 27, 2, 122, 53, 17, 10, 27, - 222, 27, 2, 66, 53, 17, 10, 27, 248, 217, 2, 151, 53, 17, 10, 27, 248, - 217, 2, 122, 53, 17, 10, 27, 248, 217, 2, 234, 130, 53, 17, 10, 27, 248, - 217, 2, 66, 53, 17, 10, 27, 217, 81, 2, 122, 53, 17, 10, 27, 217, 81, 2, - 66, 53, 17, 10, 27, 210, 112, 2, 66, 53, 17, 10, 27, 254, 197, 2, 151, - 53, 17, 10, 27, 254, 197, 2, 66, 53, 17, 10, 27, 242, 245, 2, 151, 53, - 17, 10, 27, 242, 245, 2, 66, 53, 17, 10, 27, 244, 143, 2, 151, 53, 17, - 10, 27, 244, 143, 2, 122, 53, 17, 10, 27, 244, 143, 2, 234, 130, 53, 17, - 10, 27, 244, 143, 2, 66, 53, 17, 10, 27, 244, 143, 2, 112, 231, 193, 53, - 17, 10, 27, 244, 143, 2, 79, 53, 17, 10, 27, 224, 82, 2, 122, 53, 17, 10, - 27, 224, 82, 2, 66, 53, 17, 10, 27, 224, 82, 2, 112, 231, 193, 53, 17, - 10, 27, 224, 82, 2, 79, 53, 17, 10, 27, 234, 251, 2, 112, 53, 17, 10, 27, - 234, 251, 2, 151, 53, 17, 10, 27, 234, 251, 2, 122, 53, 17, 10, 27, 234, - 251, 2, 234, 130, 53, 17, 10, 27, 234, 251, 2, 233, 103, 53, 17, 10, 27, - 234, 251, 2, 66, 53, 17, 10, 27, 234, 251, 2, 112, 231, 193, 53, 17, 10, - 27, 234, 251, 2, 79, 53, 17, 10, 27, 233, 103, 2, 151, 53, 17, 10, 27, - 233, 103, 2, 122, 53, 17, 10, 27, 233, 103, 2, 234, 130, 53, 17, 10, 27, - 233, 103, 2, 66, 53, 17, 10, 27, 233, 103, 2, 112, 231, 193, 53, 17, 10, - 27, 233, 103, 2, 79, 53, 17, 10, 27, 66, 2, 151, 53, 17, 10, 27, 66, 2, - 122, 53, 17, 10, 27, 66, 2, 234, 130, 53, 17, 10, 27, 66, 2, 66, 53, 17, - 10, 27, 66, 2, 112, 231, 193, 53, 17, 10, 27, 66, 2, 79, 53, 17, 10, 27, - 228, 63, 2, 151, 53, 17, 10, 27, 228, 63, 2, 122, 53, 17, 10, 27, 228, - 63, 2, 234, 130, 53, 17, 10, 27, 228, 63, 2, 66, 53, 17, 10, 27, 228, 63, - 2, 112, 231, 193, 53, 17, 10, 27, 228, 63, 2, 79, 53, 17, 10, 27, 241, - 219, 2, 151, 53, 17, 10, 27, 241, 219, 2, 66, 53, 17, 10, 27, 241, 219, - 2, 112, 231, 193, 53, 17, 10, 27, 241, 219, 2, 79, 53, 17, 10, 27, 79, 2, - 151, 53, 17, 10, 27, 79, 2, 122, 53, 17, 10, 27, 79, 2, 234, 130, 53, 17, - 10, 27, 79, 2, 66, 53, 17, 10, 27, 79, 2, 112, 231, 193, 53, 17, 10, 27, - 79, 2, 79, 53, 17, 10, 27, 216, 203, 2, 218, 23, 112, 53, 17, 10, 27, - 223, 96, 2, 218, 23, 112, 53, 17, 10, 27, 112, 231, 193, 2, 218, 23, 112, - 53, 17, 10, 27, 220, 94, 2, 248, 183, 53, 17, 10, 27, 220, 94, 2, 234, - 204, 53, 17, 10, 27, 220, 94, 2, 244, 166, 53, 17, 10, 27, 220, 94, 2, - 248, 185, 53, 17, 10, 27, 220, 94, 2, 234, 206, 53, 17, 10, 27, 220, 94, - 2, 218, 23, 112, 53, 17, 10, 27, 79, 2, 202, 77, 2, 223, 96, 40, 17, 10, + 53, 17, 10, 27, 234, 131, 2, 151, 53, 17, 10, 27, 234, 131, 2, 122, 53, + 17, 10, 27, 234, 131, 2, 66, 53, 17, 10, 27, 221, 168, 2, 151, 53, 17, + 10, 27, 221, 168, 2, 122, 53, 17, 10, 27, 221, 168, 2, 234, 131, 53, 17, + 10, 27, 221, 168, 2, 66, 53, 17, 10, 27, 222, 28, 2, 122, 53, 17, 10, 27, + 222, 28, 2, 66, 53, 17, 10, 27, 248, 218, 2, 151, 53, 17, 10, 27, 248, + 218, 2, 122, 53, 17, 10, 27, 248, 218, 2, 234, 131, 53, 17, 10, 27, 248, + 218, 2, 66, 53, 17, 10, 27, 217, 82, 2, 122, 53, 17, 10, 27, 217, 82, 2, + 66, 53, 17, 10, 27, 210, 112, 2, 66, 53, 17, 10, 27, 254, 198, 2, 151, + 53, 17, 10, 27, 254, 198, 2, 66, 53, 17, 10, 27, 242, 246, 2, 151, 53, + 17, 10, 27, 242, 246, 2, 66, 53, 17, 10, 27, 244, 144, 2, 151, 53, 17, + 10, 27, 244, 144, 2, 122, 53, 17, 10, 27, 244, 144, 2, 234, 131, 53, 17, + 10, 27, 244, 144, 2, 66, 53, 17, 10, 27, 244, 144, 2, 112, 231, 194, 53, + 17, 10, 27, 244, 144, 2, 79, 53, 17, 10, 27, 224, 83, 2, 122, 53, 17, 10, + 27, 224, 83, 2, 66, 53, 17, 10, 27, 224, 83, 2, 112, 231, 194, 53, 17, + 10, 27, 224, 83, 2, 79, 53, 17, 10, 27, 234, 252, 2, 112, 53, 17, 10, 27, + 234, 252, 2, 151, 53, 17, 10, 27, 234, 252, 2, 122, 53, 17, 10, 27, 234, + 252, 2, 234, 131, 53, 17, 10, 27, 234, 252, 2, 233, 104, 53, 17, 10, 27, + 234, 252, 2, 66, 53, 17, 10, 27, 234, 252, 2, 112, 231, 194, 53, 17, 10, + 27, 234, 252, 2, 79, 53, 17, 10, 27, 233, 104, 2, 151, 53, 17, 10, 27, + 233, 104, 2, 122, 53, 17, 10, 27, 233, 104, 2, 234, 131, 53, 17, 10, 27, + 233, 104, 2, 66, 53, 17, 10, 27, 233, 104, 2, 112, 231, 194, 53, 17, 10, + 27, 233, 104, 2, 79, 53, 17, 10, 27, 66, 2, 151, 53, 17, 10, 27, 66, 2, + 122, 53, 17, 10, 27, 66, 2, 234, 131, 53, 17, 10, 27, 66, 2, 66, 53, 17, + 10, 27, 66, 2, 112, 231, 194, 53, 17, 10, 27, 66, 2, 79, 53, 17, 10, 27, + 228, 64, 2, 151, 53, 17, 10, 27, 228, 64, 2, 122, 53, 17, 10, 27, 228, + 64, 2, 234, 131, 53, 17, 10, 27, 228, 64, 2, 66, 53, 17, 10, 27, 228, 64, + 2, 112, 231, 194, 53, 17, 10, 27, 228, 64, 2, 79, 53, 17, 10, 27, 241, + 220, 2, 151, 53, 17, 10, 27, 241, 220, 2, 66, 53, 17, 10, 27, 241, 220, + 2, 112, 231, 194, 53, 17, 10, 27, 241, 220, 2, 79, 53, 17, 10, 27, 79, 2, + 151, 53, 17, 10, 27, 79, 2, 122, 53, 17, 10, 27, 79, 2, 234, 131, 53, 17, + 10, 27, 79, 2, 66, 53, 17, 10, 27, 79, 2, 112, 231, 194, 53, 17, 10, 27, + 79, 2, 79, 53, 17, 10, 27, 216, 204, 2, 218, 24, 112, 53, 17, 10, 27, + 223, 97, 2, 218, 24, 112, 53, 17, 10, 27, 112, 231, 194, 2, 218, 24, 112, + 53, 17, 10, 27, 220, 95, 2, 248, 184, 53, 17, 10, 27, 220, 95, 2, 234, + 205, 53, 17, 10, 27, 220, 95, 2, 244, 167, 53, 17, 10, 27, 220, 95, 2, + 248, 186, 53, 17, 10, 27, 220, 95, 2, 234, 207, 53, 17, 10, 27, 220, 95, + 2, 218, 24, 112, 53, 17, 10, 27, 79, 2, 202, 77, 2, 223, 97, 40, 17, 10, 27, 79, 2, 202, 77, 2, 210, 109, 40, 17, 10, 27, 79, 2, 202, 77, 2, 66, - 40, 17, 10, 27, 79, 2, 202, 77, 2, 228, 63, 40, 17, 10, 27, 79, 2, 202, - 77, 2, 112, 231, 193, 40, 17, 10, 27, 79, 2, 202, 77, 2, 79, 40, 17, 10, - 27, 252, 55, 2, 223, 96, 40, 17, 10, 27, 252, 55, 2, 210, 109, 40, 17, - 10, 27, 252, 55, 2, 66, 40, 17, 10, 27, 252, 55, 2, 228, 63, 40, 17, 10, - 27, 252, 55, 2, 112, 231, 193, 40, 17, 10, 27, 252, 55, 2, 79, 40, 17, - 10, 27, 217, 8, 2, 223, 96, 40, 17, 10, 27, 217, 8, 2, 210, 109, 40, 17, - 10, 27, 217, 8, 2, 66, 40, 17, 10, 27, 217, 8, 2, 228, 63, 40, 17, 10, - 27, 217, 8, 2, 112, 231, 193, 40, 17, 10, 27, 217, 8, 2, 79, 40, 17, 10, - 27, 216, 193, 2, 223, 96, 40, 17, 10, 27, 216, 193, 2, 210, 109, 40, 17, - 10, 27, 216, 193, 2, 66, 40, 17, 10, 27, 216, 193, 2, 228, 63, 40, 17, - 10, 27, 216, 193, 2, 112, 231, 193, 40, 17, 10, 27, 216, 193, 2, 79, 40, - 17, 10, 27, 244, 143, 2, 112, 231, 193, 40, 17, 10, 27, 244, 143, 2, 79, - 40, 17, 10, 27, 224, 82, 2, 112, 231, 193, 40, 17, 10, 27, 224, 82, 2, - 79, 40, 17, 10, 27, 234, 251, 2, 112, 40, 17, 10, 27, 234, 251, 2, 233, - 103, 40, 17, 10, 27, 234, 251, 2, 66, 40, 17, 10, 27, 234, 251, 2, 112, - 231, 193, 40, 17, 10, 27, 234, 251, 2, 79, 40, 17, 10, 27, 233, 103, 2, - 66, 40, 17, 10, 27, 233, 103, 2, 112, 231, 193, 40, 17, 10, 27, 233, 103, + 40, 17, 10, 27, 79, 2, 202, 77, 2, 228, 64, 40, 17, 10, 27, 79, 2, 202, + 77, 2, 112, 231, 194, 40, 17, 10, 27, 79, 2, 202, 77, 2, 79, 40, 17, 10, + 27, 252, 56, 2, 223, 97, 40, 17, 10, 27, 252, 56, 2, 210, 109, 40, 17, + 10, 27, 252, 56, 2, 66, 40, 17, 10, 27, 252, 56, 2, 228, 64, 40, 17, 10, + 27, 252, 56, 2, 112, 231, 194, 40, 17, 10, 27, 252, 56, 2, 79, 40, 17, + 10, 27, 217, 9, 2, 223, 97, 40, 17, 10, 27, 217, 9, 2, 210, 109, 40, 17, + 10, 27, 217, 9, 2, 66, 40, 17, 10, 27, 217, 9, 2, 228, 64, 40, 17, 10, + 27, 217, 9, 2, 112, 231, 194, 40, 17, 10, 27, 217, 9, 2, 79, 40, 17, 10, + 27, 216, 194, 2, 223, 97, 40, 17, 10, 27, 216, 194, 2, 210, 109, 40, 17, + 10, 27, 216, 194, 2, 66, 40, 17, 10, 27, 216, 194, 2, 228, 64, 40, 17, + 10, 27, 216, 194, 2, 112, 231, 194, 40, 17, 10, 27, 216, 194, 2, 79, 40, + 17, 10, 27, 244, 144, 2, 112, 231, 194, 40, 17, 10, 27, 244, 144, 2, 79, + 40, 17, 10, 27, 224, 83, 2, 112, 231, 194, 40, 17, 10, 27, 224, 83, 2, + 79, 40, 17, 10, 27, 234, 252, 2, 112, 40, 17, 10, 27, 234, 252, 2, 233, + 104, 40, 17, 10, 27, 234, 252, 2, 66, 40, 17, 10, 27, 234, 252, 2, 112, + 231, 194, 40, 17, 10, 27, 234, 252, 2, 79, 40, 17, 10, 27, 233, 104, 2, + 66, 40, 17, 10, 27, 233, 104, 2, 112, 231, 194, 40, 17, 10, 27, 233, 104, 2, 79, 40, 17, 10, 27, 66, 2, 112, 40, 17, 10, 27, 66, 2, 66, 40, 17, 10, - 27, 228, 63, 2, 223, 96, 40, 17, 10, 27, 228, 63, 2, 210, 109, 40, 17, - 10, 27, 228, 63, 2, 66, 40, 17, 10, 27, 228, 63, 2, 228, 63, 40, 17, 10, - 27, 228, 63, 2, 112, 231, 193, 40, 17, 10, 27, 228, 63, 2, 79, 40, 17, - 10, 27, 112, 231, 193, 2, 218, 23, 112, 40, 17, 10, 27, 79, 2, 223, 96, + 27, 228, 64, 2, 223, 97, 40, 17, 10, 27, 228, 64, 2, 210, 109, 40, 17, + 10, 27, 228, 64, 2, 66, 40, 17, 10, 27, 228, 64, 2, 228, 64, 40, 17, 10, + 27, 228, 64, 2, 112, 231, 194, 40, 17, 10, 27, 228, 64, 2, 79, 40, 17, + 10, 27, 112, 231, 194, 2, 218, 24, 112, 40, 17, 10, 27, 79, 2, 223, 97, 40, 17, 10, 27, 79, 2, 210, 109, 40, 17, 10, 27, 79, 2, 66, 40, 17, 10, - 27, 79, 2, 228, 63, 40, 17, 10, 27, 79, 2, 112, 231, 193, 40, 17, 10, 27, + 27, 79, 2, 228, 64, 40, 17, 10, 27, 79, 2, 112, 231, 194, 40, 17, 10, 27, 79, 2, 79, 40, 17, 10, 27, 79, 2, 202, 77, 2, 151, 65, 17, 10, 27, 79, 2, - 202, 77, 2, 122, 65, 17, 10, 27, 79, 2, 202, 77, 2, 234, 130, 65, 17, 10, - 27, 79, 2, 202, 77, 2, 66, 65, 17, 10, 27, 79, 2, 202, 77, 2, 241, 219, - 65, 17, 10, 27, 252, 55, 2, 151, 65, 17, 10, 27, 252, 55, 2, 122, 65, 17, - 10, 27, 252, 55, 2, 234, 130, 65, 17, 10, 27, 252, 55, 2, 66, 65, 17, 10, - 27, 252, 55, 2, 241, 219, 65, 17, 10, 27, 217, 8, 2, 151, 65, 17, 10, 27, - 217, 8, 2, 122, 65, 17, 10, 27, 217, 8, 2, 234, 130, 65, 17, 10, 27, 217, - 8, 2, 66, 65, 17, 10, 27, 217, 8, 2, 241, 219, 65, 17, 10, 27, 216, 193, + 202, 77, 2, 122, 65, 17, 10, 27, 79, 2, 202, 77, 2, 234, 131, 65, 17, 10, + 27, 79, 2, 202, 77, 2, 66, 65, 17, 10, 27, 79, 2, 202, 77, 2, 241, 220, + 65, 17, 10, 27, 252, 56, 2, 151, 65, 17, 10, 27, 252, 56, 2, 122, 65, 17, + 10, 27, 252, 56, 2, 234, 131, 65, 17, 10, 27, 252, 56, 2, 66, 65, 17, 10, + 27, 252, 56, 2, 241, 220, 65, 17, 10, 27, 217, 9, 2, 151, 65, 17, 10, 27, + 217, 9, 2, 122, 65, 17, 10, 27, 217, 9, 2, 234, 131, 65, 17, 10, 27, 217, + 9, 2, 66, 65, 17, 10, 27, 217, 9, 2, 241, 220, 65, 17, 10, 27, 216, 194, 2, 66, 65, 17, 10, 27, 151, 2, 122, 65, 17, 10, 27, 151, 2, 66, 65, 17, 10, 27, 122, 2, 151, 65, 17, 10, 27, 122, 2, 66, 65, 17, 10, 27, 234, - 130, 2, 151, 65, 17, 10, 27, 234, 130, 2, 66, 65, 17, 10, 27, 221, 167, - 2, 151, 65, 17, 10, 27, 221, 167, 2, 122, 65, 17, 10, 27, 221, 167, 2, - 234, 130, 65, 17, 10, 27, 221, 167, 2, 66, 65, 17, 10, 27, 222, 27, 2, - 122, 65, 17, 10, 27, 222, 27, 2, 234, 130, 65, 17, 10, 27, 222, 27, 2, - 66, 65, 17, 10, 27, 248, 217, 2, 151, 65, 17, 10, 27, 248, 217, 2, 122, - 65, 17, 10, 27, 248, 217, 2, 234, 130, 65, 17, 10, 27, 248, 217, 2, 66, - 65, 17, 10, 27, 217, 81, 2, 122, 65, 17, 10, 27, 210, 112, 2, 66, 65, 17, - 10, 27, 254, 197, 2, 151, 65, 17, 10, 27, 254, 197, 2, 66, 65, 17, 10, - 27, 242, 245, 2, 151, 65, 17, 10, 27, 242, 245, 2, 66, 65, 17, 10, 27, - 244, 143, 2, 151, 65, 17, 10, 27, 244, 143, 2, 122, 65, 17, 10, 27, 244, - 143, 2, 234, 130, 65, 17, 10, 27, 244, 143, 2, 66, 65, 17, 10, 27, 224, - 82, 2, 122, 65, 17, 10, 27, 224, 82, 2, 66, 65, 17, 10, 27, 234, 251, 2, - 151, 65, 17, 10, 27, 234, 251, 2, 122, 65, 17, 10, 27, 234, 251, 2, 234, - 130, 65, 17, 10, 27, 234, 251, 2, 233, 103, 65, 17, 10, 27, 234, 251, 2, - 66, 65, 17, 10, 27, 233, 103, 2, 151, 65, 17, 10, 27, 233, 103, 2, 122, - 65, 17, 10, 27, 233, 103, 2, 234, 130, 65, 17, 10, 27, 233, 103, 2, 66, - 65, 17, 10, 27, 233, 103, 2, 241, 219, 65, 17, 10, 27, 66, 2, 151, 65, - 17, 10, 27, 66, 2, 122, 65, 17, 10, 27, 66, 2, 234, 130, 65, 17, 10, 27, - 66, 2, 66, 65, 17, 10, 27, 228, 63, 2, 151, 65, 17, 10, 27, 228, 63, 2, - 122, 65, 17, 10, 27, 228, 63, 2, 234, 130, 65, 17, 10, 27, 228, 63, 2, - 66, 65, 17, 10, 27, 228, 63, 2, 241, 219, 65, 17, 10, 27, 241, 219, 2, - 151, 65, 17, 10, 27, 241, 219, 2, 66, 65, 17, 10, 27, 241, 219, 2, 218, - 23, 112, 65, 17, 10, 27, 79, 2, 151, 65, 17, 10, 27, 79, 2, 122, 65, 17, - 10, 27, 79, 2, 234, 130, 65, 17, 10, 27, 79, 2, 66, 65, 17, 10, 27, 79, - 2, 241, 219, 65, 17, 10, 27, 79, 2, 202, 77, 2, 66, 147, 17, 10, 27, 79, - 2, 202, 77, 2, 241, 219, 147, 17, 10, 27, 252, 55, 2, 66, 147, 17, 10, - 27, 252, 55, 2, 241, 219, 147, 17, 10, 27, 217, 8, 2, 66, 147, 17, 10, - 27, 217, 8, 2, 241, 219, 147, 17, 10, 27, 216, 193, 2, 66, 147, 17, 10, - 27, 216, 193, 2, 241, 219, 147, 17, 10, 27, 221, 167, 2, 66, 147, 17, 10, - 27, 221, 167, 2, 241, 219, 147, 17, 10, 27, 220, 60, 2, 66, 147, 17, 10, - 27, 220, 60, 2, 241, 219, 147, 17, 10, 27, 234, 251, 2, 233, 103, 147, - 17, 10, 27, 234, 251, 2, 66, 147, 17, 10, 27, 233, 103, 2, 66, 147, 17, - 10, 27, 228, 63, 2, 66, 147, 17, 10, 27, 228, 63, 2, 241, 219, 147, 17, - 10, 27, 79, 2, 66, 147, 17, 10, 27, 79, 2, 241, 219, 147, 17, 10, 27, - 220, 94, 2, 244, 166, 147, 17, 10, 27, 220, 94, 2, 248, 185, 147, 17, 10, - 27, 220, 94, 2, 234, 206, 147, 17, 10, 27, 217, 81, 2, 112, 231, 193, 53, - 17, 10, 27, 217, 81, 2, 79, 53, 17, 10, 27, 254, 197, 2, 112, 231, 193, - 53, 17, 10, 27, 254, 197, 2, 79, 53, 17, 10, 27, 242, 245, 2, 112, 231, - 193, 53, 17, 10, 27, 242, 245, 2, 79, 53, 17, 10, 27, 221, 167, 2, 112, - 231, 193, 53, 17, 10, 27, 221, 167, 2, 79, 53, 17, 10, 27, 220, 60, 2, - 112, 231, 193, 53, 17, 10, 27, 220, 60, 2, 79, 53, 17, 10, 27, 122, 2, - 112, 231, 193, 53, 17, 10, 27, 122, 2, 79, 53, 17, 10, 27, 151, 2, 112, - 231, 193, 53, 17, 10, 27, 151, 2, 79, 53, 17, 10, 27, 234, 130, 2, 112, - 231, 193, 53, 17, 10, 27, 234, 130, 2, 79, 53, 17, 10, 27, 222, 27, 2, - 112, 231, 193, 53, 17, 10, 27, 222, 27, 2, 79, 53, 17, 10, 27, 248, 217, - 2, 112, 231, 193, 53, 17, 10, 27, 248, 217, 2, 79, 53, 17, 10, 27, 220, - 60, 2, 151, 53, 17, 10, 27, 220, 60, 2, 122, 53, 17, 10, 27, 220, 60, 2, - 234, 130, 53, 17, 10, 27, 220, 60, 2, 66, 53, 17, 10, 27, 220, 60, 2, - 223, 96, 53, 17, 10, 27, 221, 167, 2, 223, 96, 53, 17, 10, 27, 222, 27, - 2, 223, 96, 53, 17, 10, 27, 248, 217, 2, 223, 96, 53, 17, 10, 27, 217, - 81, 2, 112, 231, 193, 40, 17, 10, 27, 217, 81, 2, 79, 40, 17, 10, 27, - 254, 197, 2, 112, 231, 193, 40, 17, 10, 27, 254, 197, 2, 79, 40, 17, 10, - 27, 242, 245, 2, 112, 231, 193, 40, 17, 10, 27, 242, 245, 2, 79, 40, 17, - 10, 27, 221, 167, 2, 112, 231, 193, 40, 17, 10, 27, 221, 167, 2, 79, 40, - 17, 10, 27, 220, 60, 2, 112, 231, 193, 40, 17, 10, 27, 220, 60, 2, 79, - 40, 17, 10, 27, 122, 2, 112, 231, 193, 40, 17, 10, 27, 122, 2, 79, 40, - 17, 10, 27, 151, 2, 112, 231, 193, 40, 17, 10, 27, 151, 2, 79, 40, 17, - 10, 27, 234, 130, 2, 112, 231, 193, 40, 17, 10, 27, 234, 130, 2, 79, 40, - 17, 10, 27, 222, 27, 2, 112, 231, 193, 40, 17, 10, 27, 222, 27, 2, 79, - 40, 17, 10, 27, 248, 217, 2, 112, 231, 193, 40, 17, 10, 27, 248, 217, 2, - 79, 40, 17, 10, 27, 220, 60, 2, 151, 40, 17, 10, 27, 220, 60, 2, 122, 40, - 17, 10, 27, 220, 60, 2, 234, 130, 40, 17, 10, 27, 220, 60, 2, 66, 40, 17, - 10, 27, 220, 60, 2, 223, 96, 40, 17, 10, 27, 221, 167, 2, 223, 96, 40, - 17, 10, 27, 222, 27, 2, 223, 96, 40, 17, 10, 27, 248, 217, 2, 223, 96, - 40, 17, 10, 27, 220, 60, 2, 151, 65, 17, 10, 27, 220, 60, 2, 122, 65, 17, - 10, 27, 220, 60, 2, 234, 130, 65, 17, 10, 27, 220, 60, 2, 66, 65, 17, 10, - 27, 221, 167, 2, 241, 219, 65, 17, 10, 27, 220, 60, 2, 241, 219, 65, 17, - 10, 27, 217, 81, 2, 66, 65, 17, 10, 27, 221, 167, 2, 151, 147, 17, 10, - 27, 221, 167, 2, 122, 147, 17, 10, 27, 221, 167, 2, 234, 130, 147, 17, - 10, 27, 220, 60, 2, 151, 147, 17, 10, 27, 220, 60, 2, 122, 147, 17, 10, - 27, 220, 60, 2, 234, 130, 147, 17, 10, 27, 217, 81, 2, 66, 147, 17, 10, - 27, 210, 112, 2, 66, 147, 17, 10, 27, 112, 2, 244, 164, 40, 17, 10, 27, - 112, 2, 244, 164, 53, 17, 226, 146, 43, 226, 3, 226, 146, 44, 226, 3, 10, - 27, 217, 8, 2, 151, 2, 66, 65, 17, 10, 27, 217, 8, 2, 122, 2, 151, 40, - 17, 10, 27, 217, 8, 2, 122, 2, 151, 65, 17, 10, 27, 217, 8, 2, 122, 2, - 66, 65, 17, 10, 27, 217, 8, 2, 234, 130, 2, 66, 65, 17, 10, 27, 217, 8, - 2, 66, 2, 151, 65, 17, 10, 27, 217, 8, 2, 66, 2, 122, 65, 17, 10, 27, - 217, 8, 2, 66, 2, 234, 130, 65, 17, 10, 27, 151, 2, 66, 2, 122, 40, 17, + 131, 2, 151, 65, 17, 10, 27, 234, 131, 2, 66, 65, 17, 10, 27, 221, 168, + 2, 151, 65, 17, 10, 27, 221, 168, 2, 122, 65, 17, 10, 27, 221, 168, 2, + 234, 131, 65, 17, 10, 27, 221, 168, 2, 66, 65, 17, 10, 27, 222, 28, 2, + 122, 65, 17, 10, 27, 222, 28, 2, 234, 131, 65, 17, 10, 27, 222, 28, 2, + 66, 65, 17, 10, 27, 248, 218, 2, 151, 65, 17, 10, 27, 248, 218, 2, 122, + 65, 17, 10, 27, 248, 218, 2, 234, 131, 65, 17, 10, 27, 248, 218, 2, 66, + 65, 17, 10, 27, 217, 82, 2, 122, 65, 17, 10, 27, 210, 112, 2, 66, 65, 17, + 10, 27, 254, 198, 2, 151, 65, 17, 10, 27, 254, 198, 2, 66, 65, 17, 10, + 27, 242, 246, 2, 151, 65, 17, 10, 27, 242, 246, 2, 66, 65, 17, 10, 27, + 244, 144, 2, 151, 65, 17, 10, 27, 244, 144, 2, 122, 65, 17, 10, 27, 244, + 144, 2, 234, 131, 65, 17, 10, 27, 244, 144, 2, 66, 65, 17, 10, 27, 224, + 83, 2, 122, 65, 17, 10, 27, 224, 83, 2, 66, 65, 17, 10, 27, 234, 252, 2, + 151, 65, 17, 10, 27, 234, 252, 2, 122, 65, 17, 10, 27, 234, 252, 2, 234, + 131, 65, 17, 10, 27, 234, 252, 2, 233, 104, 65, 17, 10, 27, 234, 252, 2, + 66, 65, 17, 10, 27, 233, 104, 2, 151, 65, 17, 10, 27, 233, 104, 2, 122, + 65, 17, 10, 27, 233, 104, 2, 234, 131, 65, 17, 10, 27, 233, 104, 2, 66, + 65, 17, 10, 27, 233, 104, 2, 241, 220, 65, 17, 10, 27, 66, 2, 151, 65, + 17, 10, 27, 66, 2, 122, 65, 17, 10, 27, 66, 2, 234, 131, 65, 17, 10, 27, + 66, 2, 66, 65, 17, 10, 27, 228, 64, 2, 151, 65, 17, 10, 27, 228, 64, 2, + 122, 65, 17, 10, 27, 228, 64, 2, 234, 131, 65, 17, 10, 27, 228, 64, 2, + 66, 65, 17, 10, 27, 228, 64, 2, 241, 220, 65, 17, 10, 27, 241, 220, 2, + 151, 65, 17, 10, 27, 241, 220, 2, 66, 65, 17, 10, 27, 241, 220, 2, 218, + 24, 112, 65, 17, 10, 27, 79, 2, 151, 65, 17, 10, 27, 79, 2, 122, 65, 17, + 10, 27, 79, 2, 234, 131, 65, 17, 10, 27, 79, 2, 66, 65, 17, 10, 27, 79, + 2, 241, 220, 65, 17, 10, 27, 79, 2, 202, 77, 2, 66, 147, 17, 10, 27, 79, + 2, 202, 77, 2, 241, 220, 147, 17, 10, 27, 252, 56, 2, 66, 147, 17, 10, + 27, 252, 56, 2, 241, 220, 147, 17, 10, 27, 217, 9, 2, 66, 147, 17, 10, + 27, 217, 9, 2, 241, 220, 147, 17, 10, 27, 216, 194, 2, 66, 147, 17, 10, + 27, 216, 194, 2, 241, 220, 147, 17, 10, 27, 221, 168, 2, 66, 147, 17, 10, + 27, 221, 168, 2, 241, 220, 147, 17, 10, 27, 220, 61, 2, 66, 147, 17, 10, + 27, 220, 61, 2, 241, 220, 147, 17, 10, 27, 234, 252, 2, 233, 104, 147, + 17, 10, 27, 234, 252, 2, 66, 147, 17, 10, 27, 233, 104, 2, 66, 147, 17, + 10, 27, 228, 64, 2, 66, 147, 17, 10, 27, 228, 64, 2, 241, 220, 147, 17, + 10, 27, 79, 2, 66, 147, 17, 10, 27, 79, 2, 241, 220, 147, 17, 10, 27, + 220, 95, 2, 244, 167, 147, 17, 10, 27, 220, 95, 2, 248, 186, 147, 17, 10, + 27, 220, 95, 2, 234, 207, 147, 17, 10, 27, 217, 82, 2, 112, 231, 194, 53, + 17, 10, 27, 217, 82, 2, 79, 53, 17, 10, 27, 254, 198, 2, 112, 231, 194, + 53, 17, 10, 27, 254, 198, 2, 79, 53, 17, 10, 27, 242, 246, 2, 112, 231, + 194, 53, 17, 10, 27, 242, 246, 2, 79, 53, 17, 10, 27, 221, 168, 2, 112, + 231, 194, 53, 17, 10, 27, 221, 168, 2, 79, 53, 17, 10, 27, 220, 61, 2, + 112, 231, 194, 53, 17, 10, 27, 220, 61, 2, 79, 53, 17, 10, 27, 122, 2, + 112, 231, 194, 53, 17, 10, 27, 122, 2, 79, 53, 17, 10, 27, 151, 2, 112, + 231, 194, 53, 17, 10, 27, 151, 2, 79, 53, 17, 10, 27, 234, 131, 2, 112, + 231, 194, 53, 17, 10, 27, 234, 131, 2, 79, 53, 17, 10, 27, 222, 28, 2, + 112, 231, 194, 53, 17, 10, 27, 222, 28, 2, 79, 53, 17, 10, 27, 248, 218, + 2, 112, 231, 194, 53, 17, 10, 27, 248, 218, 2, 79, 53, 17, 10, 27, 220, + 61, 2, 151, 53, 17, 10, 27, 220, 61, 2, 122, 53, 17, 10, 27, 220, 61, 2, + 234, 131, 53, 17, 10, 27, 220, 61, 2, 66, 53, 17, 10, 27, 220, 61, 2, + 223, 97, 53, 17, 10, 27, 221, 168, 2, 223, 97, 53, 17, 10, 27, 222, 28, + 2, 223, 97, 53, 17, 10, 27, 248, 218, 2, 223, 97, 53, 17, 10, 27, 217, + 82, 2, 112, 231, 194, 40, 17, 10, 27, 217, 82, 2, 79, 40, 17, 10, 27, + 254, 198, 2, 112, 231, 194, 40, 17, 10, 27, 254, 198, 2, 79, 40, 17, 10, + 27, 242, 246, 2, 112, 231, 194, 40, 17, 10, 27, 242, 246, 2, 79, 40, 17, + 10, 27, 221, 168, 2, 112, 231, 194, 40, 17, 10, 27, 221, 168, 2, 79, 40, + 17, 10, 27, 220, 61, 2, 112, 231, 194, 40, 17, 10, 27, 220, 61, 2, 79, + 40, 17, 10, 27, 122, 2, 112, 231, 194, 40, 17, 10, 27, 122, 2, 79, 40, + 17, 10, 27, 151, 2, 112, 231, 194, 40, 17, 10, 27, 151, 2, 79, 40, 17, + 10, 27, 234, 131, 2, 112, 231, 194, 40, 17, 10, 27, 234, 131, 2, 79, 40, + 17, 10, 27, 222, 28, 2, 112, 231, 194, 40, 17, 10, 27, 222, 28, 2, 79, + 40, 17, 10, 27, 248, 218, 2, 112, 231, 194, 40, 17, 10, 27, 248, 218, 2, + 79, 40, 17, 10, 27, 220, 61, 2, 151, 40, 17, 10, 27, 220, 61, 2, 122, 40, + 17, 10, 27, 220, 61, 2, 234, 131, 40, 17, 10, 27, 220, 61, 2, 66, 40, 17, + 10, 27, 220, 61, 2, 223, 97, 40, 17, 10, 27, 221, 168, 2, 223, 97, 40, + 17, 10, 27, 222, 28, 2, 223, 97, 40, 17, 10, 27, 248, 218, 2, 223, 97, + 40, 17, 10, 27, 220, 61, 2, 151, 65, 17, 10, 27, 220, 61, 2, 122, 65, 17, + 10, 27, 220, 61, 2, 234, 131, 65, 17, 10, 27, 220, 61, 2, 66, 65, 17, 10, + 27, 221, 168, 2, 241, 220, 65, 17, 10, 27, 220, 61, 2, 241, 220, 65, 17, + 10, 27, 217, 82, 2, 66, 65, 17, 10, 27, 221, 168, 2, 151, 147, 17, 10, + 27, 221, 168, 2, 122, 147, 17, 10, 27, 221, 168, 2, 234, 131, 147, 17, + 10, 27, 220, 61, 2, 151, 147, 17, 10, 27, 220, 61, 2, 122, 147, 17, 10, + 27, 220, 61, 2, 234, 131, 147, 17, 10, 27, 217, 82, 2, 66, 147, 17, 10, + 27, 210, 112, 2, 66, 147, 17, 10, 27, 112, 2, 244, 165, 40, 17, 10, 27, + 112, 2, 244, 165, 53, 17, 226, 147, 43, 226, 4, 226, 147, 44, 226, 4, 10, + 27, 217, 9, 2, 151, 2, 66, 65, 17, 10, 27, 217, 9, 2, 122, 2, 151, 40, + 17, 10, 27, 217, 9, 2, 122, 2, 151, 65, 17, 10, 27, 217, 9, 2, 122, 2, + 66, 65, 17, 10, 27, 217, 9, 2, 234, 131, 2, 66, 65, 17, 10, 27, 217, 9, + 2, 66, 2, 151, 65, 17, 10, 27, 217, 9, 2, 66, 2, 122, 65, 17, 10, 27, + 217, 9, 2, 66, 2, 234, 131, 65, 17, 10, 27, 151, 2, 66, 2, 122, 40, 17, 10, 27, 151, 2, 66, 2, 122, 65, 17, 10, 27, 122, 2, 66, 2, 79, 40, 17, - 10, 27, 122, 2, 66, 2, 112, 231, 193, 40, 17, 10, 27, 221, 167, 2, 122, - 2, 151, 65, 17, 10, 27, 221, 167, 2, 151, 2, 122, 65, 17, 10, 27, 221, - 167, 2, 151, 2, 112, 231, 193, 40, 17, 10, 27, 221, 167, 2, 66, 2, 122, - 40, 17, 10, 27, 221, 167, 2, 66, 2, 122, 65, 17, 10, 27, 221, 167, 2, 66, - 2, 151, 65, 17, 10, 27, 221, 167, 2, 66, 2, 66, 40, 17, 10, 27, 221, 167, - 2, 66, 2, 66, 65, 17, 10, 27, 222, 27, 2, 122, 2, 122, 40, 17, 10, 27, - 222, 27, 2, 122, 2, 122, 65, 17, 10, 27, 222, 27, 2, 66, 2, 66, 40, 17, - 10, 27, 220, 60, 2, 122, 2, 66, 40, 17, 10, 27, 220, 60, 2, 122, 2, 66, - 65, 17, 10, 27, 220, 60, 2, 151, 2, 79, 40, 17, 10, 27, 220, 60, 2, 66, - 2, 234, 130, 40, 17, 10, 27, 220, 60, 2, 66, 2, 234, 130, 65, 17, 10, 27, - 220, 60, 2, 66, 2, 66, 40, 17, 10, 27, 220, 60, 2, 66, 2, 66, 65, 17, 10, - 27, 248, 217, 2, 122, 2, 112, 231, 193, 40, 17, 10, 27, 248, 217, 2, 234, - 130, 2, 66, 40, 17, 10, 27, 248, 217, 2, 234, 130, 2, 66, 65, 17, 10, 27, - 217, 81, 2, 66, 2, 122, 40, 17, 10, 27, 217, 81, 2, 66, 2, 122, 65, 17, - 10, 27, 217, 81, 2, 66, 2, 66, 65, 17, 10, 27, 217, 81, 2, 66, 2, 79, 40, - 17, 10, 27, 254, 197, 2, 151, 2, 66, 40, 17, 10, 27, 254, 197, 2, 66, 2, - 66, 40, 17, 10, 27, 254, 197, 2, 66, 2, 66, 65, 17, 10, 27, 254, 197, 2, - 66, 2, 112, 231, 193, 40, 17, 10, 27, 242, 245, 2, 66, 2, 66, 40, 17, 10, - 27, 242, 245, 2, 66, 2, 79, 40, 17, 10, 27, 242, 245, 2, 66, 2, 112, 231, - 193, 40, 17, 10, 27, 244, 143, 2, 234, 130, 2, 66, 40, 17, 10, 27, 244, - 143, 2, 234, 130, 2, 66, 65, 17, 10, 27, 224, 82, 2, 66, 2, 122, 40, 17, - 10, 27, 224, 82, 2, 66, 2, 66, 40, 17, 10, 27, 233, 103, 2, 122, 2, 66, - 40, 17, 10, 27, 233, 103, 2, 122, 2, 79, 40, 17, 10, 27, 233, 103, 2, - 122, 2, 112, 231, 193, 40, 17, 10, 27, 233, 103, 2, 151, 2, 151, 65, 17, - 10, 27, 233, 103, 2, 151, 2, 151, 40, 17, 10, 27, 233, 103, 2, 234, 130, - 2, 66, 40, 17, 10, 27, 233, 103, 2, 234, 130, 2, 66, 65, 17, 10, 27, 233, - 103, 2, 66, 2, 122, 40, 17, 10, 27, 233, 103, 2, 66, 2, 122, 65, 17, 10, + 10, 27, 122, 2, 66, 2, 112, 231, 194, 40, 17, 10, 27, 221, 168, 2, 122, + 2, 151, 65, 17, 10, 27, 221, 168, 2, 151, 2, 122, 65, 17, 10, 27, 221, + 168, 2, 151, 2, 112, 231, 194, 40, 17, 10, 27, 221, 168, 2, 66, 2, 122, + 40, 17, 10, 27, 221, 168, 2, 66, 2, 122, 65, 17, 10, 27, 221, 168, 2, 66, + 2, 151, 65, 17, 10, 27, 221, 168, 2, 66, 2, 66, 40, 17, 10, 27, 221, 168, + 2, 66, 2, 66, 65, 17, 10, 27, 222, 28, 2, 122, 2, 122, 40, 17, 10, 27, + 222, 28, 2, 122, 2, 122, 65, 17, 10, 27, 222, 28, 2, 66, 2, 66, 40, 17, + 10, 27, 220, 61, 2, 122, 2, 66, 40, 17, 10, 27, 220, 61, 2, 122, 2, 66, + 65, 17, 10, 27, 220, 61, 2, 151, 2, 79, 40, 17, 10, 27, 220, 61, 2, 66, + 2, 234, 131, 40, 17, 10, 27, 220, 61, 2, 66, 2, 234, 131, 65, 17, 10, 27, + 220, 61, 2, 66, 2, 66, 40, 17, 10, 27, 220, 61, 2, 66, 2, 66, 65, 17, 10, + 27, 248, 218, 2, 122, 2, 112, 231, 194, 40, 17, 10, 27, 248, 218, 2, 234, + 131, 2, 66, 40, 17, 10, 27, 248, 218, 2, 234, 131, 2, 66, 65, 17, 10, 27, + 217, 82, 2, 66, 2, 122, 40, 17, 10, 27, 217, 82, 2, 66, 2, 122, 65, 17, + 10, 27, 217, 82, 2, 66, 2, 66, 65, 17, 10, 27, 217, 82, 2, 66, 2, 79, 40, + 17, 10, 27, 254, 198, 2, 151, 2, 66, 40, 17, 10, 27, 254, 198, 2, 66, 2, + 66, 40, 17, 10, 27, 254, 198, 2, 66, 2, 66, 65, 17, 10, 27, 254, 198, 2, + 66, 2, 112, 231, 194, 40, 17, 10, 27, 242, 246, 2, 66, 2, 66, 40, 17, 10, + 27, 242, 246, 2, 66, 2, 79, 40, 17, 10, 27, 242, 246, 2, 66, 2, 112, 231, + 194, 40, 17, 10, 27, 244, 144, 2, 234, 131, 2, 66, 40, 17, 10, 27, 244, + 144, 2, 234, 131, 2, 66, 65, 17, 10, 27, 224, 83, 2, 66, 2, 122, 40, 17, + 10, 27, 224, 83, 2, 66, 2, 66, 40, 17, 10, 27, 233, 104, 2, 122, 2, 66, + 40, 17, 10, 27, 233, 104, 2, 122, 2, 79, 40, 17, 10, 27, 233, 104, 2, + 122, 2, 112, 231, 194, 40, 17, 10, 27, 233, 104, 2, 151, 2, 151, 65, 17, + 10, 27, 233, 104, 2, 151, 2, 151, 40, 17, 10, 27, 233, 104, 2, 234, 131, + 2, 66, 40, 17, 10, 27, 233, 104, 2, 234, 131, 2, 66, 65, 17, 10, 27, 233, + 104, 2, 66, 2, 122, 40, 17, 10, 27, 233, 104, 2, 66, 2, 122, 65, 17, 10, 27, 66, 2, 122, 2, 151, 65, 17, 10, 27, 66, 2, 122, 2, 66, 65, 17, 10, 27, 66, 2, 122, 2, 79, 40, 17, 10, 27, 66, 2, 151, 2, 122, 65, 17, 10, - 27, 66, 2, 151, 2, 66, 65, 17, 10, 27, 66, 2, 234, 130, 2, 151, 65, 17, - 10, 27, 66, 2, 234, 130, 2, 66, 65, 17, 10, 27, 66, 2, 151, 2, 234, 130, - 65, 17, 10, 27, 241, 219, 2, 66, 2, 151, 65, 17, 10, 27, 241, 219, 2, 66, - 2, 66, 65, 17, 10, 27, 228, 63, 2, 122, 2, 66, 65, 17, 10, 27, 228, 63, - 2, 122, 2, 112, 231, 193, 40, 17, 10, 27, 228, 63, 2, 151, 2, 66, 40, 17, - 10, 27, 228, 63, 2, 151, 2, 66, 65, 17, 10, 27, 228, 63, 2, 151, 2, 112, - 231, 193, 40, 17, 10, 27, 228, 63, 2, 66, 2, 79, 40, 17, 10, 27, 228, 63, - 2, 66, 2, 112, 231, 193, 40, 17, 10, 27, 79, 2, 66, 2, 66, 40, 17, 10, - 27, 79, 2, 66, 2, 66, 65, 17, 10, 27, 252, 55, 2, 234, 130, 2, 79, 40, - 17, 10, 27, 217, 8, 2, 151, 2, 79, 40, 17, 10, 27, 217, 8, 2, 151, 2, - 112, 231, 193, 40, 17, 10, 27, 217, 8, 2, 234, 130, 2, 79, 40, 17, 10, - 27, 217, 8, 2, 234, 130, 2, 112, 231, 193, 40, 17, 10, 27, 217, 8, 2, 66, - 2, 79, 40, 17, 10, 27, 217, 8, 2, 66, 2, 112, 231, 193, 40, 17, 10, 27, - 151, 2, 66, 2, 79, 40, 17, 10, 27, 151, 2, 122, 2, 112, 231, 193, 40, 17, - 10, 27, 151, 2, 66, 2, 112, 231, 193, 40, 17, 10, 27, 221, 167, 2, 234, - 130, 2, 112, 231, 193, 40, 17, 10, 27, 222, 27, 2, 122, 2, 79, 40, 17, - 10, 27, 220, 60, 2, 122, 2, 79, 40, 17, 10, 27, 248, 217, 2, 122, 2, 79, - 40, 17, 10, 27, 233, 103, 2, 151, 2, 79, 40, 17, 10, 27, 233, 103, 2, 66, + 27, 66, 2, 151, 2, 66, 65, 17, 10, 27, 66, 2, 234, 131, 2, 151, 65, 17, + 10, 27, 66, 2, 234, 131, 2, 66, 65, 17, 10, 27, 66, 2, 151, 2, 234, 131, + 65, 17, 10, 27, 241, 220, 2, 66, 2, 151, 65, 17, 10, 27, 241, 220, 2, 66, + 2, 66, 65, 17, 10, 27, 228, 64, 2, 122, 2, 66, 65, 17, 10, 27, 228, 64, + 2, 122, 2, 112, 231, 194, 40, 17, 10, 27, 228, 64, 2, 151, 2, 66, 40, 17, + 10, 27, 228, 64, 2, 151, 2, 66, 65, 17, 10, 27, 228, 64, 2, 151, 2, 112, + 231, 194, 40, 17, 10, 27, 228, 64, 2, 66, 2, 79, 40, 17, 10, 27, 228, 64, + 2, 66, 2, 112, 231, 194, 40, 17, 10, 27, 79, 2, 66, 2, 66, 40, 17, 10, + 27, 79, 2, 66, 2, 66, 65, 17, 10, 27, 252, 56, 2, 234, 131, 2, 79, 40, + 17, 10, 27, 217, 9, 2, 151, 2, 79, 40, 17, 10, 27, 217, 9, 2, 151, 2, + 112, 231, 194, 40, 17, 10, 27, 217, 9, 2, 234, 131, 2, 79, 40, 17, 10, + 27, 217, 9, 2, 234, 131, 2, 112, 231, 194, 40, 17, 10, 27, 217, 9, 2, 66, + 2, 79, 40, 17, 10, 27, 217, 9, 2, 66, 2, 112, 231, 194, 40, 17, 10, 27, + 151, 2, 66, 2, 79, 40, 17, 10, 27, 151, 2, 122, 2, 112, 231, 194, 40, 17, + 10, 27, 151, 2, 66, 2, 112, 231, 194, 40, 17, 10, 27, 221, 168, 2, 234, + 131, 2, 112, 231, 194, 40, 17, 10, 27, 222, 28, 2, 122, 2, 79, 40, 17, + 10, 27, 220, 61, 2, 122, 2, 79, 40, 17, 10, 27, 248, 218, 2, 122, 2, 79, + 40, 17, 10, 27, 233, 104, 2, 151, 2, 79, 40, 17, 10, 27, 233, 104, 2, 66, 2, 79, 40, 17, 10, 27, 79, 2, 122, 2, 79, 40, 17, 10, 27, 79, 2, 151, 2, 79, 40, 17, 10, 27, 79, 2, 66, 2, 79, 40, 17, 10, 27, 66, 2, 66, 2, 79, - 40, 17, 10, 27, 224, 82, 2, 66, 2, 79, 40, 17, 10, 27, 228, 63, 2, 122, - 2, 79, 40, 17, 10, 27, 224, 82, 2, 66, 2, 122, 65, 17, 10, 27, 233, 103, - 2, 122, 2, 66, 65, 17, 10, 27, 254, 197, 2, 66, 2, 79, 40, 17, 10, 27, - 234, 251, 2, 66, 2, 79, 40, 17, 10, 27, 228, 63, 2, 151, 2, 122, 65, 17, - 10, 27, 66, 2, 234, 130, 2, 79, 40, 17, 10, 27, 233, 103, 2, 151, 2, 66, - 65, 17, 10, 27, 234, 251, 2, 66, 2, 66, 40, 17, 10, 27, 233, 103, 2, 151, - 2, 66, 40, 17, 10, 27, 228, 63, 2, 151, 2, 122, 40, 17, 10, 27, 151, 2, + 40, 17, 10, 27, 224, 83, 2, 66, 2, 79, 40, 17, 10, 27, 228, 64, 2, 122, + 2, 79, 40, 17, 10, 27, 224, 83, 2, 66, 2, 122, 65, 17, 10, 27, 233, 104, + 2, 122, 2, 66, 65, 17, 10, 27, 254, 198, 2, 66, 2, 79, 40, 17, 10, 27, + 234, 252, 2, 66, 2, 79, 40, 17, 10, 27, 228, 64, 2, 151, 2, 122, 65, 17, + 10, 27, 66, 2, 234, 131, 2, 79, 40, 17, 10, 27, 233, 104, 2, 151, 2, 66, + 65, 17, 10, 27, 234, 252, 2, 66, 2, 66, 40, 17, 10, 27, 233, 104, 2, 151, + 2, 66, 40, 17, 10, 27, 228, 64, 2, 151, 2, 122, 40, 17, 10, 27, 151, 2, 122, 2, 79, 40, 17, 10, 27, 122, 2, 151, 2, 79, 40, 17, 10, 27, 66, 2, - 151, 2, 79, 40, 17, 10, 27, 244, 143, 2, 66, 2, 79, 40, 17, 10, 27, 252, - 55, 2, 122, 2, 79, 40, 17, 10, 27, 234, 251, 2, 66, 2, 66, 65, 17, 10, - 27, 254, 197, 2, 151, 2, 66, 65, 17, 10, 27, 222, 27, 2, 66, 2, 66, 65, - 17, 10, 27, 221, 167, 2, 234, 130, 2, 79, 40, 17, 10, 27, 228, 63, 2, - 151, 2, 79, 40, 17, 10, 27, 222, 4, 214, 128, 253, 238, 234, 4, 218, 130, - 5, 53, 17, 10, 27, 224, 78, 214, 128, 253, 238, 234, 4, 218, 130, 5, 53, - 17, 10, 27, 254, 153, 53, 17, 10, 27, 254, 183, 53, 17, 10, 27, 230, 153, - 53, 17, 10, 27, 222, 5, 53, 17, 10, 27, 223, 143, 53, 17, 10, 27, 254, - 172, 53, 17, 10, 27, 212, 49, 53, 17, 10, 27, 222, 4, 53, 17, 10, 27, - 222, 3, 254, 172, 212, 48, 10, 27, 235, 134, 223, 34, 50, 10, 27, 251, - 230, 254, 39, 254, 40, 45, 221, 156, 45, 221, 45, 45, 220, 233, 45, 220, - 222, 45, 220, 211, 45, 220, 200, 45, 220, 189, 45, 220, 178, 45, 220, - 167, 45, 221, 155, 45, 221, 144, 45, 221, 133, 45, 221, 122, 45, 221, - 111, 45, 221, 100, 45, 221, 89, 224, 194, 244, 20, 31, 67, 249, 219, 224, - 194, 244, 20, 31, 67, 109, 249, 219, 224, 194, 244, 20, 31, 67, 109, 243, - 229, 218, 129, 224, 194, 244, 20, 31, 67, 249, 226, 224, 194, 244, 20, - 31, 67, 220, 150, 224, 194, 244, 20, 31, 67, 245, 31, 78, 224, 194, 244, - 20, 31, 67, 224, 13, 78, 224, 194, 244, 20, 31, 67, 43, 71, 233, 20, 127, - 224, 194, 244, 20, 31, 67, 44, 71, 233, 20, 251, 156, 224, 194, 244, 20, - 31, 67, 203, 245, 163, 38, 27, 43, 242, 27, 38, 27, 44, 242, 27, 38, 52, - 216, 89, 43, 242, 27, 38, 52, 216, 89, 44, 242, 27, 38, 231, 233, 43, - 242, 27, 38, 231, 233, 44, 242, 27, 38, 249, 197, 231, 232, 224, 194, - 244, 20, 31, 67, 113, 59, 233, 56, 224, 194, 244, 20, 31, 67, 245, 160, - 248, 156, 224, 194, 244, 20, 31, 67, 245, 151, 248, 156, 224, 194, 244, - 20, 31, 67, 121, 232, 213, 224, 194, 244, 20, 31, 67, 212, 32, 121, 232, - 213, 224, 194, 244, 20, 31, 67, 43, 226, 3, 224, 194, 244, 20, 31, 67, - 44, 226, 3, 224, 194, 244, 20, 31, 67, 43, 249, 99, 127, 224, 194, 244, - 20, 31, 67, 44, 249, 99, 127, 224, 194, 244, 20, 31, 67, 43, 216, 6, 220, - 53, 127, 224, 194, 244, 20, 31, 67, 44, 216, 6, 220, 53, 127, 224, 194, - 244, 20, 31, 67, 43, 85, 233, 20, 127, 224, 194, 244, 20, 31, 67, 44, 85, - 233, 20, 127, 224, 194, 244, 20, 31, 67, 43, 52, 254, 110, 127, 224, 194, - 244, 20, 31, 67, 44, 52, 254, 110, 127, 224, 194, 244, 20, 31, 67, 43, - 254, 110, 127, 224, 194, 244, 20, 31, 67, 44, 254, 110, 127, 224, 194, - 244, 20, 31, 67, 43, 249, 161, 127, 224, 194, 244, 20, 31, 67, 44, 249, - 161, 127, 224, 194, 244, 20, 31, 67, 43, 71, 249, 161, 127, 224, 194, - 244, 20, 31, 67, 44, 71, 249, 161, 127, 220, 131, 247, 120, 71, 220, 131, - 247, 120, 224, 194, 244, 20, 31, 67, 43, 42, 127, 224, 194, 244, 20, 31, - 67, 44, 42, 127, 248, 155, 226, 119, 250, 172, 226, 119, 212, 32, 226, - 119, 52, 212, 32, 226, 119, 248, 155, 121, 232, 213, 250, 172, 121, 232, - 213, 212, 32, 121, 232, 213, 4, 249, 219, 4, 109, 249, 219, 4, 243, 229, - 218, 129, 4, 220, 150, 4, 249, 226, 4, 224, 13, 78, 4, 245, 31, 78, 4, - 245, 160, 248, 156, 4, 43, 226, 3, 4, 44, 226, 3, 4, 43, 249, 99, 127, 4, - 44, 249, 99, 127, 4, 43, 216, 6, 220, 53, 127, 4, 44, 216, 6, 220, 53, - 127, 4, 54, 50, 4, 254, 126, 4, 253, 216, 4, 96, 50, 4, 240, 167, 4, 233, - 15, 50, 4, 242, 130, 50, 4, 245, 98, 50, 4, 223, 50, 219, 46, 4, 247, - 132, 50, 4, 225, 182, 50, 4, 249, 217, 253, 206, 10, 244, 164, 53, 17, - 10, 217, 44, 2, 244, 164, 48, 10, 248, 183, 53, 17, 10, 217, 78, 244, 1, - 10, 234, 204, 53, 17, 10, 244, 166, 53, 17, 10, 244, 166, 147, 17, 10, - 248, 185, 53, 17, 10, 248, 185, 147, 17, 10, 234, 206, 53, 17, 10, 234, - 206, 147, 17, 10, 220, 94, 53, 17, 10, 220, 94, 147, 17, 10, 218, 46, 53, - 17, 10, 218, 46, 147, 17, 10, 1, 202, 53, 17, 10, 1, 112, 2, 231, 228, - 77, 53, 17, 10, 1, 112, 2, 231, 228, 77, 40, 17, 10, 1, 112, 2, 202, 77, - 53, 17, 10, 1, 112, 2, 202, 77, 40, 17, 10, 1, 212, 31, 2, 202, 77, 53, - 17, 10, 1, 212, 31, 2, 202, 77, 40, 17, 10, 1, 112, 2, 202, 252, 43, 53, - 17, 10, 1, 112, 2, 202, 252, 43, 40, 17, 10, 1, 79, 2, 202, 77, 53, 17, - 10, 1, 79, 2, 202, 77, 40, 17, 10, 1, 79, 2, 202, 77, 65, 17, 10, 1, 79, - 2, 202, 77, 147, 17, 10, 1, 112, 53, 17, 10, 1, 112, 40, 17, 10, 1, 252, - 55, 53, 17, 10, 1, 252, 55, 40, 17, 10, 1, 252, 55, 65, 17, 10, 1, 252, - 55, 147, 17, 10, 1, 217, 8, 231, 165, 53, 17, 10, 1, 217, 8, 231, 165, - 40, 17, 10, 1, 217, 8, 53, 17, 10, 1, 217, 8, 40, 17, 10, 1, 217, 8, 65, - 17, 10, 1, 217, 8, 147, 17, 10, 1, 216, 193, 53, 17, 10, 1, 216, 193, 40, - 17, 10, 1, 216, 193, 65, 17, 10, 1, 216, 193, 147, 17, 10, 1, 151, 53, - 17, 10, 1, 151, 40, 17, 10, 1, 151, 65, 17, 10, 1, 151, 147, 17, 10, 1, - 122, 53, 17, 10, 1, 122, 40, 17, 10, 1, 122, 65, 17, 10, 1, 122, 147, 17, - 10, 1, 234, 130, 53, 17, 10, 1, 234, 130, 40, 17, 10, 1, 234, 130, 65, - 17, 10, 1, 234, 130, 147, 17, 10, 1, 248, 196, 53, 17, 10, 1, 248, 196, - 40, 17, 10, 1, 216, 203, 53, 17, 10, 1, 216, 203, 40, 17, 10, 1, 223, 96, - 53, 17, 10, 1, 223, 96, 40, 17, 10, 1, 210, 109, 53, 17, 10, 1, 210, 109, - 40, 17, 10, 1, 221, 167, 53, 17, 10, 1, 221, 167, 40, 17, 10, 1, 221, - 167, 65, 17, 10, 1, 221, 167, 147, 17, 10, 1, 220, 60, 53, 17, 10, 1, - 220, 60, 40, 17, 10, 1, 220, 60, 65, 17, 10, 1, 220, 60, 147, 17, 10, 1, - 222, 27, 53, 17, 10, 1, 222, 27, 40, 17, 10, 1, 222, 27, 65, 17, 10, 1, - 222, 27, 147, 17, 10, 1, 248, 217, 53, 17, 10, 1, 248, 217, 40, 17, 10, - 1, 248, 217, 65, 17, 10, 1, 248, 217, 147, 17, 10, 1, 217, 81, 53, 17, - 10, 1, 217, 81, 40, 17, 10, 1, 217, 81, 65, 17, 10, 1, 217, 81, 147, 17, - 10, 1, 210, 112, 53, 17, 10, 1, 210, 112, 40, 17, 10, 1, 210, 112, 65, - 17, 10, 1, 210, 112, 147, 17, 10, 1, 254, 197, 53, 17, 10, 1, 254, 197, - 40, 17, 10, 1, 254, 197, 65, 17, 10, 1, 254, 197, 147, 17, 10, 1, 242, - 245, 53, 17, 10, 1, 242, 245, 40, 17, 10, 1, 242, 245, 65, 17, 10, 1, - 242, 245, 147, 17, 10, 1, 244, 143, 53, 17, 10, 1, 244, 143, 40, 17, 10, - 1, 244, 143, 65, 17, 10, 1, 244, 143, 147, 17, 10, 1, 224, 82, 53, 17, - 10, 1, 224, 82, 40, 17, 10, 1, 224, 82, 65, 17, 10, 1, 224, 82, 147, 17, - 10, 1, 234, 251, 53, 17, 10, 1, 234, 251, 40, 17, 10, 1, 234, 251, 65, - 17, 10, 1, 234, 251, 147, 17, 10, 1, 233, 103, 53, 17, 10, 1, 233, 103, - 40, 17, 10, 1, 233, 103, 65, 17, 10, 1, 233, 103, 147, 17, 10, 1, 66, 53, - 17, 10, 1, 66, 40, 17, 10, 1, 66, 65, 17, 10, 1, 66, 147, 17, 10, 1, 228, - 63, 53, 17, 10, 1, 228, 63, 40, 17, 10, 1, 228, 63, 65, 17, 10, 1, 228, - 63, 147, 17, 10, 1, 241, 219, 53, 17, 10, 1, 241, 219, 40, 17, 10, 1, - 241, 219, 65, 17, 10, 1, 241, 219, 147, 17, 10, 1, 212, 31, 53, 17, 10, - 1, 212, 31, 40, 17, 10, 1, 112, 231, 193, 53, 17, 10, 1, 112, 231, 193, - 40, 17, 10, 1, 79, 53, 17, 10, 1, 79, 40, 17, 10, 1, 79, 65, 17, 10, 1, - 79, 147, 17, 10, 27, 233, 103, 2, 112, 2, 231, 228, 77, 53, 17, 10, 27, - 233, 103, 2, 112, 2, 231, 228, 77, 40, 17, 10, 27, 233, 103, 2, 112, 2, - 202, 77, 53, 17, 10, 27, 233, 103, 2, 112, 2, 202, 77, 40, 17, 10, 27, - 233, 103, 2, 112, 2, 202, 252, 43, 53, 17, 10, 27, 233, 103, 2, 112, 2, - 202, 252, 43, 40, 17, 10, 27, 233, 103, 2, 112, 53, 17, 10, 27, 233, 103, - 2, 112, 40, 17, 210, 87, 211, 245, 228, 73, 219, 18, 126, 245, 31, 78, - 126, 223, 254, 78, 126, 54, 50, 126, 247, 132, 50, 126, 225, 182, 50, - 126, 254, 126, 126, 254, 57, 126, 43, 226, 3, 126, 44, 226, 3, 126, 253, - 216, 126, 96, 50, 126, 249, 219, 126, 240, 167, 126, 243, 229, 218, 129, - 126, 219, 46, 126, 21, 210, 86, 126, 21, 110, 126, 21, 105, 126, 21, 158, - 126, 21, 161, 126, 21, 189, 126, 21, 194, 126, 21, 198, 126, 21, 195, - 126, 21, 200, 126, 249, 226, 126, 220, 150, 126, 233, 15, 50, 126, 245, - 98, 50, 126, 242, 130, 50, 126, 224, 13, 78, 126, 249, 217, 253, 206, - 126, 7, 6, 1, 61, 126, 7, 6, 1, 253, 158, 126, 7, 6, 1, 251, 66, 126, 7, - 6, 1, 249, 60, 126, 7, 6, 1, 75, 126, 7, 6, 1, 245, 6, 126, 7, 6, 1, 243, - 202, 126, 7, 6, 1, 242, 60, 126, 7, 6, 1, 73, 126, 7, 6, 1, 235, 144, - 126, 7, 6, 1, 235, 23, 126, 7, 6, 1, 156, 126, 7, 6, 1, 193, 126, 7, 6, - 1, 230, 25, 126, 7, 6, 1, 76, 126, 7, 6, 1, 226, 105, 126, 7, 6, 1, 224, - 96, 126, 7, 6, 1, 153, 126, 7, 6, 1, 222, 91, 126, 7, 6, 1, 217, 152, - 126, 7, 6, 1, 70, 126, 7, 6, 1, 214, 105, 126, 7, 6, 1, 212, 98, 126, 7, - 6, 1, 211, 178, 126, 7, 6, 1, 211, 117, 126, 7, 6, 1, 210, 159, 126, 43, - 42, 127, 126, 223, 50, 219, 46, 126, 44, 42, 127, 126, 250, 31, 255, 14, - 126, 121, 232, 213, 126, 242, 137, 255, 14, 126, 7, 4, 1, 61, 126, 7, 4, - 1, 253, 158, 126, 7, 4, 1, 251, 66, 126, 7, 4, 1, 249, 60, 126, 7, 4, 1, - 75, 126, 7, 4, 1, 245, 6, 126, 7, 4, 1, 243, 202, 126, 7, 4, 1, 242, 60, - 126, 7, 4, 1, 73, 126, 7, 4, 1, 235, 144, 126, 7, 4, 1, 235, 23, 126, 7, - 4, 1, 156, 126, 7, 4, 1, 193, 126, 7, 4, 1, 230, 25, 126, 7, 4, 1, 76, - 126, 7, 4, 1, 226, 105, 126, 7, 4, 1, 224, 96, 126, 7, 4, 1, 153, 126, 7, - 4, 1, 222, 91, 126, 7, 4, 1, 217, 152, 126, 7, 4, 1, 70, 126, 7, 4, 1, - 214, 105, 126, 7, 4, 1, 212, 98, 126, 7, 4, 1, 211, 178, 126, 7, 4, 1, - 211, 117, 126, 7, 4, 1, 210, 159, 126, 43, 249, 99, 127, 126, 67, 232, - 213, 126, 44, 249, 99, 127, 126, 182, 126, 43, 71, 226, 3, 126, 44, 71, - 226, 3, 101, 109, 243, 229, 218, 129, 101, 43, 249, 161, 127, 101, 44, - 249, 161, 127, 101, 109, 249, 219, 101, 56, 230, 224, 247, 120, 101, 56, - 1, 211, 227, 101, 56, 1, 4, 61, 101, 56, 1, 4, 73, 101, 56, 1, 4, 70, - 101, 56, 1, 4, 75, 101, 56, 1, 4, 76, 101, 56, 1, 4, 191, 101, 56, 1, 4, - 210, 212, 101, 56, 1, 4, 210, 244, 101, 56, 1, 4, 215, 118, 101, 234, - 201, 224, 173, 219, 31, 78, 101, 56, 1, 61, 101, 56, 1, 73, 101, 56, 1, - 70, 101, 56, 1, 75, 101, 56, 1, 76, 101, 56, 1, 176, 101, 56, 1, 234, 92, - 101, 56, 1, 233, 217, 101, 56, 1, 234, 182, 101, 56, 1, 234, 28, 101, 56, - 1, 206, 101, 56, 1, 219, 191, 101, 56, 1, 218, 83, 101, 56, 1, 221, 181, - 101, 56, 1, 219, 58, 101, 56, 1, 217, 105, 101, 56, 1, 216, 117, 101, 56, - 1, 215, 118, 101, 56, 1, 217, 22, 101, 56, 1, 111, 101, 56, 1, 197, 101, - 56, 1, 228, 233, 101, 56, 1, 227, 237, 101, 56, 1, 229, 107, 101, 56, 1, - 228, 74, 101, 56, 1, 162, 101, 56, 1, 241, 180, 101, 56, 1, 240, 222, - 101, 56, 1, 241, 238, 101, 56, 1, 241, 68, 101, 56, 1, 184, 101, 56, 1, - 230, 230, 101, 56, 1, 230, 102, 101, 56, 1, 231, 91, 101, 56, 1, 230, - 161, 101, 56, 1, 191, 101, 56, 1, 210, 212, 101, 56, 1, 210, 244, 101, - 56, 1, 205, 101, 56, 1, 223, 35, 101, 56, 1, 222, 140, 101, 56, 1, 223, - 128, 101, 56, 1, 222, 211, 101, 56, 1, 212, 65, 101, 56, 1, 230, 25, 101, - 56, 213, 135, 219, 31, 78, 101, 56, 220, 155, 219, 31, 78, 101, 24, 244, - 103, 101, 24, 1, 234, 58, 101, 24, 1, 218, 215, 101, 24, 1, 234, 51, 101, - 24, 1, 228, 226, 101, 24, 1, 228, 224, 101, 24, 1, 228, 223, 101, 24, 1, - 216, 101, 101, 24, 1, 218, 204, 101, 24, 1, 223, 26, 101, 24, 1, 223, 21, - 101, 24, 1, 223, 18, 101, 24, 1, 223, 11, 101, 24, 1, 223, 6, 101, 24, 1, - 223, 1, 101, 24, 1, 223, 12, 101, 24, 1, 223, 24, 101, 24, 1, 230, 217, - 101, 24, 1, 225, 95, 101, 24, 1, 218, 212, 101, 24, 1, 225, 84, 101, 24, - 1, 219, 148, 101, 24, 1, 218, 209, 101, 24, 1, 236, 56, 101, 24, 1, 250, - 46, 101, 24, 1, 218, 219, 101, 24, 1, 250, 106, 101, 24, 1, 234, 110, - 101, 24, 1, 216, 173, 101, 24, 1, 225, 131, 101, 24, 1, 241, 172, 101, - 24, 1, 61, 101, 24, 1, 254, 243, 101, 24, 1, 191, 101, 24, 1, 211, 92, - 101, 24, 1, 245, 117, 101, 24, 1, 75, 101, 24, 1, 211, 36, 101, 24, 1, - 211, 47, 101, 24, 1, 76, 101, 24, 1, 212, 65, 101, 24, 1, 212, 62, 101, - 24, 1, 226, 234, 101, 24, 1, 210, 244, 101, 24, 1, 70, 101, 24, 1, 212, - 11, 101, 24, 1, 212, 22, 101, 24, 1, 211, 250, 101, 24, 1, 210, 212, 101, - 24, 1, 245, 55, 101, 24, 1, 211, 8, 101, 24, 1, 73, 126, 250, 176, 50, - 126, 224, 228, 50, 126, 228, 52, 50, 126, 231, 232, 126, 251, 135, 130, - 126, 211, 40, 50, 126, 211, 217, 50, 101, 244, 18, 192, 213, 239, 101, - 140, 74, 101, 214, 153, 74, 101, 97, 74, 101, 246, 104, 74, 101, 85, 218, - 234, 101, 71, 250, 35, 235, 204, 254, 99, 254, 120, 235, 204, 254, 99, - 220, 137, 235, 204, 254, 99, 216, 236, 226, 249, 223, 72, 250, 142, 223, - 72, 250, 142, 62, 57, 3, 253, 142, 61, 62, 57, 3, 253, 111, 75, 62, 57, - 3, 253, 120, 73, 62, 57, 3, 253, 88, 76, 62, 57, 3, 253, 138, 70, 62, 57, - 3, 253, 157, 248, 221, 62, 57, 3, 253, 104, 248, 90, 62, 57, 3, 253, 144, - 248, 3, 62, 57, 3, 253, 134, 247, 145, 62, 57, 3, 253, 98, 246, 78, 62, - 57, 3, 253, 92, 235, 141, 62, 57, 3, 253, 103, 235, 126, 62, 57, 3, 253, - 113, 235, 68, 62, 57, 3, 253, 84, 235, 51, 62, 57, 3, 253, 72, 176, 62, - 57, 3, 253, 105, 234, 182, 62, 57, 3, 253, 82, 234, 92, 62, 57, 3, 253, - 79, 234, 28, 62, 57, 3, 253, 68, 233, 217, 62, 57, 3, 253, 69, 184, 62, - 57, 3, 253, 135, 231, 91, 62, 57, 3, 253, 76, 230, 230, 62, 57, 3, 253, - 133, 230, 161, 62, 57, 3, 253, 125, 230, 102, 62, 57, 3, 253, 146, 197, - 62, 57, 3, 253, 124, 229, 107, 62, 57, 3, 253, 118, 228, 233, 62, 57, 3, - 253, 97, 228, 74, 62, 57, 3, 253, 94, 227, 237, 62, 57, 3, 253, 153, 190, - 62, 57, 3, 253, 77, 225, 221, 62, 57, 3, 253, 110, 225, 108, 62, 57, 3, - 253, 137, 225, 16, 62, 57, 3, 253, 99, 224, 150, 62, 57, 3, 253, 132, - 224, 88, 62, 57, 3, 253, 71, 224, 69, 62, 57, 3, 253, 127, 224, 53, 62, - 57, 3, 253, 116, 224, 42, 62, 57, 3, 253, 89, 205, 62, 57, 3, 253, 121, - 223, 128, 62, 57, 3, 253, 96, 223, 35, 62, 57, 3, 253, 155, 222, 211, 62, - 57, 3, 253, 122, 222, 140, 62, 57, 3, 253, 117, 206, 62, 57, 3, 253, 140, - 221, 181, 62, 57, 3, 253, 108, 219, 191, 62, 57, 3, 253, 136, 219, 58, - 62, 57, 3, 253, 91, 218, 83, 62, 57, 3, 253, 90, 217, 105, 62, 57, 3, - 253, 151, 217, 22, 62, 57, 3, 253, 112, 216, 117, 62, 57, 3, 253, 149, - 111, 62, 57, 3, 253, 80, 215, 118, 62, 57, 3, 253, 95, 212, 65, 62, 57, - 3, 253, 74, 212, 22, 62, 57, 3, 253, 109, 211, 250, 62, 57, 3, 253, 107, - 211, 227, 62, 57, 3, 253, 131, 210, 116, 62, 57, 3, 253, 75, 210, 94, 62, - 57, 3, 253, 128, 210, 23, 62, 57, 3, 253, 123, 255, 75, 62, 57, 3, 253, - 106, 255, 74, 62, 57, 3, 253, 65, 253, 192, 62, 57, 3, 253, 78, 246, 46, - 62, 57, 3, 253, 61, 246, 45, 62, 57, 3, 253, 101, 227, 174, 62, 57, 3, - 253, 119, 224, 148, 62, 57, 3, 253, 87, 224, 152, 62, 57, 3, 253, 73, - 223, 186, 62, 57, 3, 253, 115, 223, 185, 62, 57, 3, 253, 81, 222, 210, - 62, 57, 3, 253, 83, 217, 102, 62, 57, 3, 253, 63, 215, 78, 62, 57, 3, - 253, 60, 105, 62, 57, 16, 253, 130, 62, 57, 16, 253, 129, 62, 57, 16, - 253, 126, 62, 57, 16, 253, 114, 62, 57, 16, 253, 102, 62, 57, 16, 253, - 100, 62, 57, 16, 253, 93, 62, 57, 16, 253, 86, 62, 57, 16, 253, 85, 62, - 57, 16, 253, 70, 62, 57, 16, 253, 67, 62, 57, 16, 253, 66, 62, 57, 16, - 253, 64, 62, 57, 16, 253, 62, 62, 57, 106, 253, 59, 231, 185, 62, 57, - 106, 253, 58, 211, 221, 62, 57, 106, 253, 57, 248, 74, 62, 57, 106, 253, - 56, 245, 95, 62, 57, 106, 253, 55, 231, 159, 62, 57, 106, 253, 54, 218, - 162, 62, 57, 106, 253, 53, 245, 37, 62, 57, 106, 253, 52, 223, 153, 62, - 57, 106, 253, 51, 220, 62, 62, 57, 106, 253, 50, 241, 237, 62, 57, 106, - 253, 49, 219, 25, 62, 57, 106, 253, 48, 251, 203, 62, 57, 106, 253, 47, - 249, 145, 62, 57, 106, 253, 46, 251, 115, 62, 57, 106, 253, 45, 212, 2, - 62, 57, 106, 253, 44, 252, 136, 62, 57, 106, 253, 43, 226, 205, 62, 57, - 106, 253, 42, 218, 254, 62, 57, 106, 253, 41, 249, 68, 62, 57, 230, 142, - 253, 40, 234, 224, 62, 57, 230, 142, 253, 39, 234, 232, 62, 57, 106, 253, - 38, 226, 218, 62, 57, 106, 253, 37, 211, 236, 62, 57, 106, 253, 36, 62, - 57, 230, 142, 253, 35, 254, 17, 62, 57, 230, 142, 253, 34, 231, 52, 62, - 57, 106, 253, 33, 251, 134, 62, 57, 106, 253, 32, 242, 166, 62, 57, 106, - 253, 31, 62, 57, 106, 253, 30, 211, 212, 62, 57, 106, 253, 29, 62, 57, - 106, 253, 28, 62, 57, 106, 253, 27, 240, 248, 62, 57, 106, 253, 26, 62, - 57, 106, 253, 25, 62, 57, 106, 253, 24, 62, 57, 230, 142, 253, 22, 215, - 92, 62, 57, 106, 253, 21, 62, 57, 106, 253, 20, 62, 57, 106, 253, 19, - 249, 250, 62, 57, 106, 253, 18, 62, 57, 106, 253, 17, 62, 57, 106, 253, - 16, 243, 93, 62, 57, 106, 253, 15, 254, 4, 62, 57, 106, 253, 14, 62, 57, - 106, 253, 13, 62, 57, 106, 253, 12, 62, 57, 106, 253, 11, 62, 57, 106, - 253, 10, 62, 57, 106, 253, 9, 62, 57, 106, 253, 8, 62, 57, 106, 253, 7, - 62, 57, 106, 253, 6, 62, 57, 106, 253, 5, 230, 134, 62, 57, 106, 253, 4, - 62, 57, 106, 253, 3, 215, 235, 62, 57, 106, 253, 2, 62, 57, 106, 253, 1, - 62, 57, 106, 253, 0, 62, 57, 106, 252, 255, 62, 57, 106, 252, 254, 62, - 57, 106, 252, 253, 62, 57, 106, 252, 252, 62, 57, 106, 252, 251, 62, 57, - 106, 252, 250, 62, 57, 106, 252, 249, 62, 57, 106, 252, 248, 62, 57, 106, - 252, 247, 241, 211, 62, 57, 106, 252, 226, 244, 28, 62, 57, 106, 252, - 223, 252, 116, 62, 57, 106, 252, 218, 219, 5, 62, 57, 106, 252, 217, 74, - 62, 57, 106, 252, 216, 62, 57, 106, 252, 215, 217, 236, 62, 57, 106, 252, - 214, 62, 57, 106, 252, 213, 62, 57, 106, 252, 212, 211, 254, 250, 139, - 62, 57, 106, 252, 211, 250, 139, 62, 57, 106, 252, 210, 250, 140, 243, - 255, 62, 57, 106, 252, 209, 212, 0, 62, 57, 106, 252, 208, 62, 57, 106, - 252, 207, 62, 57, 230, 142, 252, 206, 247, 198, 62, 57, 106, 252, 205, - 62, 57, 106, 252, 204, 62, 57, 106, 252, 202, 62, 57, 106, 252, 201, 62, - 57, 106, 252, 200, 62, 57, 106, 252, 199, 248, 159, 62, 57, 106, 252, - 198, 62, 57, 106, 252, 197, 62, 57, 106, 252, 196, 62, 57, 106, 252, 195, - 62, 57, 106, 252, 194, 62, 57, 106, 213, 186, 253, 23, 62, 57, 106, 213, - 186, 252, 246, 62, 57, 106, 213, 186, 252, 245, 62, 57, 106, 213, 186, - 252, 244, 62, 57, 106, 213, 186, 252, 243, 62, 57, 106, 213, 186, 252, - 242, 62, 57, 106, 213, 186, 252, 241, 62, 57, 106, 213, 186, 252, 240, - 62, 57, 106, 213, 186, 252, 239, 62, 57, 106, 213, 186, 252, 238, 62, 57, - 106, 213, 186, 252, 237, 62, 57, 106, 213, 186, 252, 236, 62, 57, 106, - 213, 186, 252, 235, 62, 57, 106, 213, 186, 252, 234, 62, 57, 106, 213, - 186, 252, 233, 62, 57, 106, 213, 186, 252, 232, 62, 57, 106, 213, 186, - 252, 231, 62, 57, 106, 213, 186, 252, 230, 62, 57, 106, 213, 186, 252, - 229, 62, 57, 106, 213, 186, 252, 228, 62, 57, 106, 213, 186, 252, 227, - 62, 57, 106, 213, 186, 252, 225, 62, 57, 106, 213, 186, 252, 224, 62, 57, - 106, 213, 186, 252, 222, 62, 57, 106, 213, 186, 252, 221, 62, 57, 106, - 213, 186, 252, 220, 62, 57, 106, 213, 186, 252, 219, 62, 57, 106, 213, - 186, 252, 203, 62, 57, 106, 213, 186, 252, 193, 254, 236, 211, 209, 220, - 138, 232, 213, 254, 236, 211, 209, 220, 138, 247, 120, 254, 236, 250, - 130, 78, 254, 236, 54, 110, 254, 236, 54, 105, 254, 236, 54, 158, 254, - 236, 54, 161, 254, 236, 54, 189, 254, 236, 54, 194, 254, 236, 54, 198, - 254, 236, 54, 195, 254, 236, 54, 200, 254, 236, 54, 216, 247, 254, 236, - 54, 215, 73, 254, 236, 54, 216, 162, 254, 236, 54, 244, 15, 254, 236, 54, - 244, 114, 254, 236, 54, 219, 111, 254, 236, 54, 220, 116, 254, 236, 54, - 245, 184, 254, 236, 54, 228, 195, 254, 236, 54, 123, 240, 210, 254, 236, - 54, 113, 240, 210, 254, 236, 54, 134, 240, 210, 254, 236, 54, 244, 11, - 240, 210, 254, 236, 54, 244, 81, 240, 210, 254, 236, 54, 219, 125, 240, - 210, 254, 236, 54, 220, 122, 240, 210, 254, 236, 54, 245, 193, 240, 210, - 254, 236, 54, 228, 200, 240, 210, 254, 236, 54, 123, 216, 147, 254, 236, - 54, 113, 216, 147, 254, 236, 54, 134, 216, 147, 254, 236, 54, 244, 11, - 216, 147, 254, 236, 54, 244, 81, 216, 147, 254, 236, 54, 219, 125, 216, - 147, 254, 236, 54, 220, 122, 216, 147, 254, 236, 54, 245, 193, 216, 147, - 254, 236, 54, 228, 200, 216, 147, 254, 236, 54, 216, 248, 216, 147, 254, - 236, 54, 215, 74, 216, 147, 254, 236, 54, 216, 163, 216, 147, 254, 236, - 54, 244, 16, 216, 147, 254, 236, 54, 244, 115, 216, 147, 254, 236, 54, - 219, 112, 216, 147, 254, 236, 54, 220, 117, 216, 147, 254, 236, 54, 245, - 185, 216, 147, 254, 236, 54, 228, 196, 216, 147, 254, 236, 212, 14, 252, - 128, 214, 173, 254, 236, 212, 14, 244, 92, 218, 59, 254, 236, 212, 14, - 221, 176, 218, 59, 254, 236, 212, 14, 216, 169, 218, 59, 254, 236, 212, - 14, 244, 4, 218, 59, 254, 236, 246, 81, 231, 90, 244, 92, 218, 59, 254, - 236, 232, 199, 231, 90, 244, 92, 218, 59, 254, 236, 231, 90, 221, 176, - 218, 59, 254, 236, 231, 90, 216, 169, 218, 59, 26, 255, 6, 253, 194, 123, - 224, 21, 26, 255, 6, 253, 194, 123, 242, 27, 26, 255, 6, 253, 194, 123, - 246, 100, 26, 255, 6, 253, 194, 189, 26, 255, 6, 253, 194, 244, 114, 26, - 255, 6, 253, 194, 244, 81, 240, 210, 26, 255, 6, 253, 194, 244, 81, 216, - 147, 26, 255, 6, 253, 194, 244, 115, 216, 147, 26, 255, 6, 253, 194, 244, - 81, 217, 67, 26, 255, 6, 253, 194, 216, 248, 217, 67, 26, 255, 6, 253, - 194, 244, 115, 217, 67, 26, 255, 6, 253, 194, 123, 240, 211, 217, 67, 26, - 255, 6, 253, 194, 244, 81, 240, 211, 217, 67, 26, 255, 6, 253, 194, 123, - 216, 148, 217, 67, 26, 255, 6, 253, 194, 244, 81, 216, 148, 217, 67, 26, - 255, 6, 253, 194, 244, 81, 218, 150, 26, 255, 6, 253, 194, 216, 248, 218, - 150, 26, 255, 6, 253, 194, 244, 115, 218, 150, 26, 255, 6, 253, 194, 123, - 240, 211, 218, 150, 26, 255, 6, 253, 194, 244, 81, 240, 211, 218, 150, - 26, 255, 6, 253, 194, 123, 216, 148, 218, 150, 26, 255, 6, 253, 194, 216, - 248, 216, 148, 218, 150, 26, 255, 6, 253, 194, 244, 115, 216, 148, 218, - 150, 26, 255, 6, 253, 194, 216, 248, 230, 164, 26, 255, 6, 241, 205, 123, - 225, 31, 26, 255, 6, 216, 181, 110, 26, 255, 6, 241, 201, 110, 26, 255, - 6, 245, 104, 105, 26, 255, 6, 216, 181, 105, 26, 255, 6, 249, 65, 113, - 246, 99, 26, 255, 6, 245, 104, 113, 246, 99, 26, 255, 6, 215, 203, 189, - 26, 255, 6, 215, 203, 216, 247, 26, 255, 6, 215, 203, 216, 248, 254, 141, - 17, 26, 255, 6, 241, 201, 216, 247, 26, 255, 6, 231, 41, 216, 247, 26, - 255, 6, 216, 181, 216, 247, 26, 255, 6, 216, 181, 216, 162, 26, 255, 6, - 215, 203, 244, 114, 26, 255, 6, 215, 203, 244, 115, 254, 141, 17, 26, - 255, 6, 241, 201, 244, 114, 26, 255, 6, 216, 181, 244, 114, 26, 255, 6, - 216, 181, 123, 240, 210, 26, 255, 6, 216, 181, 134, 240, 210, 26, 255, 6, - 245, 104, 244, 81, 240, 210, 26, 255, 6, 215, 203, 244, 81, 240, 210, 26, - 255, 6, 216, 181, 244, 81, 240, 210, 26, 255, 6, 250, 227, 244, 81, 240, - 210, 26, 255, 6, 229, 182, 244, 81, 240, 210, 26, 255, 6, 216, 181, 123, - 216, 147, 26, 255, 6, 216, 181, 244, 81, 216, 147, 26, 255, 6, 248, 57, - 244, 81, 230, 164, 26, 255, 6, 218, 118, 244, 115, 230, 164, 26, 123, - 163, 50, 26, 123, 163, 5, 254, 141, 17, 26, 113, 216, 167, 50, 26, 134, - 224, 20, 50, 26, 211, 45, 50, 26, 217, 68, 50, 26, 246, 101, 50, 26, 226, - 246, 50, 26, 113, 226, 245, 50, 26, 134, 226, 245, 50, 26, 244, 11, 226, - 245, 50, 26, 244, 81, 226, 245, 50, 26, 231, 35, 50, 26, 233, 157, 252, - 128, 50, 26, 232, 194, 50, 26, 226, 131, 50, 26, 211, 159, 50, 26, 253, - 243, 50, 26, 254, 0, 50, 26, 242, 144, 50, 26, 215, 186, 252, 128, 50, - 26, 210, 87, 50, 222, 198, 220, 113, 50, 222, 198, 214, 185, 50, 222, - 198, 220, 142, 50, 222, 198, 220, 111, 50, 222, 198, 247, 213, 220, 111, - 50, 222, 198, 219, 168, 50, 222, 198, 248, 53, 50, 222, 198, 224, 6, 50, - 222, 198, 220, 129, 50, 222, 198, 246, 60, 50, 222, 198, 253, 238, 50, - 222, 198, 250, 171, 50, 225, 143, 247, 191, 5, 225, 213, 225, 143, 247, - 191, 5, 225, 24, 241, 235, 225, 143, 247, 191, 5, 217, 45, 241, 235, 225, - 143, 247, 191, 5, 250, 247, 225, 143, 247, 191, 5, 250, 101, 225, 143, - 247, 191, 5, 211, 221, 225, 143, 247, 191, 5, 241, 211, 225, 143, 247, - 191, 5, 243, 85, 225, 143, 247, 191, 5, 216, 116, 225, 143, 247, 191, 5, - 74, 225, 143, 247, 191, 5, 251, 169, 225, 143, 247, 191, 5, 220, 29, 225, - 143, 247, 191, 5, 249, 244, 225, 143, 247, 191, 5, 231, 184, 225, 143, - 247, 191, 5, 231, 136, 225, 143, 247, 191, 5, 221, 216, 225, 143, 247, - 191, 5, 232, 237, 225, 143, 247, 191, 5, 251, 188, 225, 143, 247, 191, 5, - 250, 231, 225, 35, 225, 143, 247, 191, 5, 247, 133, 225, 143, 247, 191, - 5, 249, 223, 225, 143, 247, 191, 5, 219, 87, 225, 143, 247, 191, 5, 249, - 224, 225, 143, 247, 191, 5, 252, 63, 225, 143, 247, 191, 5, 220, 16, 225, - 143, 247, 191, 5, 240, 248, 225, 143, 247, 191, 5, 241, 178, 225, 143, - 247, 191, 5, 251, 112, 233, 36, 225, 143, 247, 191, 5, 250, 224, 225, - 143, 247, 191, 5, 223, 153, 225, 143, 247, 191, 5, 245, 230, 225, 143, - 247, 191, 5, 246, 107, 225, 143, 247, 191, 5, 215, 105, 225, 143, 247, - 191, 5, 252, 66, 225, 143, 247, 191, 5, 225, 36, 215, 235, 225, 143, 247, - 191, 5, 213, 159, 225, 143, 247, 191, 5, 226, 18, 225, 143, 247, 191, 5, - 222, 190, 225, 143, 247, 191, 5, 232, 224, 225, 143, 247, 191, 5, 226, - 115, 252, 184, 225, 143, 247, 191, 5, 244, 48, 225, 143, 247, 191, 5, - 242, 138, 225, 143, 247, 191, 5, 218, 119, 225, 143, 247, 191, 5, 4, 253, - 168, 225, 143, 247, 191, 5, 212, 32, 252, 148, 225, 143, 247, 191, 5, 38, - 226, 248, 91, 232, 60, 1, 61, 232, 60, 1, 75, 232, 60, 1, 253, 158, 232, - 60, 1, 252, 19, 232, 60, 1, 243, 202, 232, 60, 1, 249, 60, 232, 60, 1, - 73, 232, 60, 1, 212, 98, 232, 60, 1, 210, 159, 232, 60, 1, 216, 210, 232, - 60, 1, 235, 144, 232, 60, 1, 235, 23, 232, 60, 1, 224, 96, 232, 60, 1, - 156, 232, 60, 1, 193, 232, 60, 1, 230, 25, 232, 60, 1, 230, 166, 232, 60, - 1, 228, 111, 232, 60, 1, 70, 232, 60, 1, 226, 105, 232, 60, 1, 234, 47, - 232, 60, 1, 153, 232, 60, 1, 222, 91, 232, 60, 1, 217, 152, 232, 60, 1, - 215, 159, 232, 60, 1, 254, 123, 232, 60, 1, 245, 150, 232, 60, 1, 242, - 60, 232, 60, 1, 211, 178, 250, 237, 1, 61, 250, 237, 1, 226, 91, 250, - 237, 1, 249, 60, 250, 237, 1, 156, 250, 237, 1, 214, 116, 250, 237, 1, - 153, 250, 237, 1, 233, 62, 250, 237, 1, 255, 75, 250, 237, 1, 224, 96, - 250, 237, 1, 253, 158, 250, 237, 1, 193, 250, 237, 1, 76, 250, 237, 1, - 248, 223, 250, 237, 1, 217, 152, 250, 237, 1, 220, 104, 250, 237, 1, 220, - 103, 250, 237, 1, 222, 91, 250, 237, 1, 251, 65, 250, 237, 1, 70, 250, - 237, 1, 228, 111, 250, 237, 1, 211, 178, 250, 237, 1, 230, 25, 250, 237, - 1, 215, 158, 250, 237, 1, 226, 105, 250, 237, 1, 218, 226, 250, 237, 1, - 73, 250, 237, 1, 75, 250, 237, 1, 214, 113, 250, 237, 1, 235, 23, 250, - 237, 1, 235, 14, 250, 237, 1, 229, 150, 250, 237, 1, 214, 118, 250, 237, - 1, 243, 202, 250, 237, 1, 243, 137, 250, 237, 1, 218, 168, 250, 237, 1, - 218, 167, 250, 237, 1, 229, 79, 250, 237, 1, 236, 33, 250, 237, 1, 251, - 64, 250, 237, 1, 215, 159, 250, 237, 1, 214, 115, 250, 237, 1, 222, 180, - 250, 237, 1, 231, 129, 250, 237, 1, 231, 128, 250, 237, 1, 231, 127, 250, - 237, 1, 231, 126, 250, 237, 1, 233, 61, 250, 237, 1, 245, 234, 250, 237, - 1, 214, 114, 55, 32, 1, 61, 55, 32, 1, 252, 75, 55, 32, 1, 234, 182, 55, - 32, 1, 248, 90, 55, 32, 1, 75, 55, 32, 1, 213, 255, 55, 32, 1, 210, 94, - 55, 32, 1, 241, 238, 55, 32, 1, 216, 195, 55, 32, 1, 73, 55, 32, 1, 176, - 55, 32, 1, 245, 174, 55, 32, 1, 245, 159, 55, 32, 1, 245, 150, 55, 32, 1, - 245, 75, 55, 32, 1, 76, 55, 32, 1, 225, 221, 55, 32, 1, 220, 63, 55, 32, - 1, 233, 217, 55, 32, 1, 245, 92, 55, 32, 1, 245, 82, 55, 32, 1, 217, 22, - 55, 32, 1, 70, 55, 32, 1, 245, 177, 55, 32, 1, 225, 136, 55, 32, 1, 234, - 119, 55, 32, 1, 245, 202, 55, 32, 1, 245, 84, 55, 32, 1, 250, 131, 55, - 32, 1, 236, 33, 55, 32, 1, 214, 118, 55, 32, 227, 198, 110, 55, 32, 227, - 198, 189, 55, 32, 227, 198, 216, 247, 55, 32, 227, 198, 244, 114, 242, - 153, 1, 254, 204, 242, 153, 1, 252, 163, 242, 153, 1, 242, 211, 242, 153, - 1, 248, 204, 242, 153, 1, 254, 200, 242, 153, 1, 224, 79, 242, 153, 1, - 235, 155, 242, 153, 1, 242, 39, 242, 153, 1, 216, 158, 242, 153, 1, 245, - 183, 242, 153, 1, 233, 190, 242, 153, 1, 233, 113, 242, 153, 1, 231, 179, - 242, 153, 1, 229, 184, 242, 153, 1, 235, 119, 242, 153, 1, 214, 136, 242, - 153, 1, 226, 69, 242, 153, 1, 228, 195, 242, 153, 1, 223, 165, 242, 153, - 1, 221, 218, 242, 153, 1, 217, 4, 242, 153, 1, 211, 234, 242, 153, 1, - 244, 178, 242, 153, 1, 236, 37, 242, 153, 1, 240, 199, 242, 153, 1, 226, - 139, 242, 153, 1, 228, 200, 240, 210, 214, 209, 1, 254, 147, 214, 209, 1, - 252, 26, 214, 209, 1, 243, 108, 214, 209, 1, 234, 132, 214, 209, 1, 248, - 54, 214, 209, 1, 241, 68, 214, 209, 1, 211, 227, 214, 209, 1, 210, 85, - 214, 209, 1, 240, 241, 214, 209, 1, 216, 230, 214, 209, 1, 210, 233, 214, - 209, 1, 234, 250, 214, 209, 1, 220, 20, 214, 209, 1, 233, 98, 214, 209, - 1, 231, 65, 214, 209, 1, 248, 21, 214, 209, 1, 227, 194, 214, 209, 1, - 210, 13, 214, 209, 1, 221, 248, 214, 209, 1, 254, 196, 214, 209, 1, 224, - 150, 214, 209, 1, 222, 25, 214, 209, 1, 224, 35, 214, 209, 1, 223, 144, - 214, 209, 1, 216, 199, 214, 209, 1, 242, 244, 214, 209, 1, 111, 214, 209, - 1, 73, 214, 209, 1, 70, 214, 209, 1, 218, 179, 214, 209, 211, 209, 247, - 172, 55, 225, 169, 5, 61, 55, 225, 169, 5, 73, 55, 225, 169, 5, 70, 55, - 225, 169, 5, 176, 55, 225, 169, 5, 233, 217, 55, 225, 169, 5, 243, 135, - 55, 225, 169, 5, 242, 113, 55, 225, 169, 5, 211, 165, 55, 225, 169, 5, - 251, 33, 55, 225, 169, 5, 235, 141, 55, 225, 169, 5, 235, 108, 55, 225, - 169, 5, 217, 105, 55, 225, 169, 5, 215, 118, 55, 225, 169, 5, 248, 221, - 55, 225, 169, 5, 248, 3, 55, 225, 169, 5, 246, 78, 55, 225, 169, 5, 216, - 208, 55, 225, 169, 5, 190, 55, 225, 169, 5, 252, 191, 55, 225, 169, 5, - 244, 196, 55, 225, 169, 5, 197, 55, 225, 169, 5, 227, 237, 55, 225, 169, - 5, 184, 55, 225, 169, 5, 230, 230, 55, 225, 169, 5, 230, 102, 55, 225, - 169, 5, 191, 55, 225, 169, 5, 214, 27, 55, 225, 169, 5, 213, 176, 55, - 225, 169, 5, 205, 55, 225, 169, 5, 222, 140, 55, 225, 169, 5, 233, 135, - 55, 225, 169, 5, 206, 55, 225, 169, 5, 210, 116, 55, 225, 169, 5, 220, - 102, 55, 225, 169, 5, 218, 223, 55, 225, 169, 5, 162, 55, 225, 169, 5, - 253, 186, 55, 225, 169, 5, 253, 185, 55, 225, 169, 5, 253, 184, 55, 225, - 169, 5, 211, 142, 55, 225, 169, 5, 248, 200, 55, 225, 169, 5, 248, 199, - 55, 225, 169, 5, 252, 170, 55, 225, 169, 5, 251, 85, 55, 225, 169, 211, - 209, 247, 172, 55, 225, 169, 54, 110, 55, 225, 169, 54, 105, 55, 225, - 169, 54, 216, 247, 55, 225, 169, 54, 215, 73, 55, 225, 169, 54, 240, 210, + 151, 2, 79, 40, 17, 10, 27, 244, 144, 2, 66, 2, 79, 40, 17, 10, 27, 252, + 56, 2, 122, 2, 79, 40, 17, 10, 27, 234, 252, 2, 66, 2, 66, 65, 17, 10, + 27, 254, 198, 2, 151, 2, 66, 65, 17, 10, 27, 222, 28, 2, 66, 2, 66, 65, + 17, 10, 27, 221, 168, 2, 234, 131, 2, 79, 40, 17, 10, 27, 228, 64, 2, + 151, 2, 79, 40, 17, 10, 27, 222, 5, 214, 128, 253, 239, 234, 5, 218, 131, + 5, 53, 17, 10, 27, 224, 79, 214, 128, 253, 239, 234, 5, 218, 131, 5, 53, + 17, 10, 27, 254, 154, 53, 17, 10, 27, 254, 184, 53, 17, 10, 27, 230, 154, + 53, 17, 10, 27, 222, 6, 53, 17, 10, 27, 223, 144, 53, 17, 10, 27, 254, + 173, 53, 17, 10, 27, 212, 49, 53, 17, 10, 27, 222, 5, 53, 17, 10, 27, + 222, 4, 254, 173, 212, 48, 10, 27, 235, 135, 223, 35, 50, 10, 27, 251, + 231, 254, 40, 254, 41, 45, 221, 157, 45, 221, 46, 45, 220, 234, 45, 220, + 223, 45, 220, 212, 45, 220, 201, 45, 220, 190, 45, 220, 179, 45, 220, + 168, 45, 221, 156, 45, 221, 145, 45, 221, 134, 45, 221, 123, 45, 221, + 112, 45, 221, 101, 45, 221, 90, 224, 195, 244, 21, 31, 67, 249, 220, 224, + 195, 244, 21, 31, 67, 109, 249, 220, 224, 195, 244, 21, 31, 67, 109, 243, + 230, 218, 130, 224, 195, 244, 21, 31, 67, 249, 227, 224, 195, 244, 21, + 31, 67, 220, 151, 224, 195, 244, 21, 31, 67, 245, 32, 78, 224, 195, 244, + 21, 31, 67, 224, 14, 78, 224, 195, 244, 21, 31, 67, 43, 71, 233, 21, 127, + 224, 195, 244, 21, 31, 67, 44, 71, 233, 21, 251, 157, 224, 195, 244, 21, + 31, 67, 203, 245, 164, 38, 27, 43, 242, 28, 38, 27, 44, 242, 28, 38, 52, + 216, 90, 43, 242, 28, 38, 52, 216, 90, 44, 242, 28, 38, 231, 234, 43, + 242, 28, 38, 231, 234, 44, 242, 28, 38, 249, 198, 231, 233, 224, 195, + 244, 21, 31, 67, 113, 59, 233, 57, 224, 195, 244, 21, 31, 67, 245, 161, + 248, 157, 224, 195, 244, 21, 31, 67, 245, 152, 248, 157, 224, 195, 244, + 21, 31, 67, 121, 232, 214, 224, 195, 244, 21, 31, 67, 212, 32, 121, 232, + 214, 224, 195, 244, 21, 31, 67, 43, 226, 4, 224, 195, 244, 21, 31, 67, + 44, 226, 4, 224, 195, 244, 21, 31, 67, 43, 249, 100, 127, 224, 195, 244, + 21, 31, 67, 44, 249, 100, 127, 224, 195, 244, 21, 31, 67, 43, 216, 7, + 220, 54, 127, 224, 195, 244, 21, 31, 67, 44, 216, 7, 220, 54, 127, 224, + 195, 244, 21, 31, 67, 43, 85, 233, 21, 127, 224, 195, 244, 21, 31, 67, + 44, 85, 233, 21, 127, 224, 195, 244, 21, 31, 67, 43, 52, 254, 111, 127, + 224, 195, 244, 21, 31, 67, 44, 52, 254, 111, 127, 224, 195, 244, 21, 31, + 67, 43, 254, 111, 127, 224, 195, 244, 21, 31, 67, 44, 254, 111, 127, 224, + 195, 244, 21, 31, 67, 43, 249, 162, 127, 224, 195, 244, 21, 31, 67, 44, + 249, 162, 127, 224, 195, 244, 21, 31, 67, 43, 71, 249, 162, 127, 224, + 195, 244, 21, 31, 67, 44, 71, 249, 162, 127, 220, 132, 247, 121, 71, 220, + 132, 247, 121, 224, 195, 244, 21, 31, 67, 43, 42, 127, 224, 195, 244, 21, + 31, 67, 44, 42, 127, 248, 156, 226, 120, 250, 173, 226, 120, 212, 32, + 226, 120, 52, 212, 32, 226, 120, 248, 156, 121, 232, 214, 250, 173, 121, + 232, 214, 212, 32, 121, 232, 214, 4, 249, 220, 4, 109, 249, 220, 4, 243, + 230, 218, 130, 4, 220, 151, 4, 249, 227, 4, 224, 14, 78, 4, 245, 32, 78, + 4, 245, 161, 248, 157, 4, 43, 226, 4, 4, 44, 226, 4, 4, 43, 249, 100, + 127, 4, 44, 249, 100, 127, 4, 43, 216, 7, 220, 54, 127, 4, 44, 216, 7, + 220, 54, 127, 4, 54, 50, 4, 254, 127, 4, 253, 217, 4, 96, 50, 4, 240, + 168, 4, 233, 16, 50, 4, 242, 131, 50, 4, 245, 99, 50, 4, 223, 51, 219, + 47, 4, 247, 133, 50, 4, 225, 183, 50, 4, 249, 218, 253, 207, 10, 244, + 165, 53, 17, 10, 217, 45, 2, 244, 165, 48, 10, 248, 184, 53, 17, 10, 217, + 79, 244, 2, 10, 234, 205, 53, 17, 10, 244, 167, 53, 17, 10, 244, 167, + 147, 17, 10, 248, 186, 53, 17, 10, 248, 186, 147, 17, 10, 234, 207, 53, + 17, 10, 234, 207, 147, 17, 10, 220, 95, 53, 17, 10, 220, 95, 147, 17, 10, + 218, 47, 53, 17, 10, 218, 47, 147, 17, 10, 1, 202, 53, 17, 10, 1, 112, 2, + 231, 229, 77, 53, 17, 10, 1, 112, 2, 231, 229, 77, 40, 17, 10, 1, 112, 2, + 202, 77, 53, 17, 10, 1, 112, 2, 202, 77, 40, 17, 10, 1, 212, 31, 2, 202, + 77, 53, 17, 10, 1, 212, 31, 2, 202, 77, 40, 17, 10, 1, 112, 2, 202, 252, + 44, 53, 17, 10, 1, 112, 2, 202, 252, 44, 40, 17, 10, 1, 79, 2, 202, 77, + 53, 17, 10, 1, 79, 2, 202, 77, 40, 17, 10, 1, 79, 2, 202, 77, 65, 17, 10, + 1, 79, 2, 202, 77, 147, 17, 10, 1, 112, 53, 17, 10, 1, 112, 40, 17, 10, + 1, 252, 56, 53, 17, 10, 1, 252, 56, 40, 17, 10, 1, 252, 56, 65, 17, 10, + 1, 252, 56, 147, 17, 10, 1, 217, 9, 231, 166, 53, 17, 10, 1, 217, 9, 231, + 166, 40, 17, 10, 1, 217, 9, 53, 17, 10, 1, 217, 9, 40, 17, 10, 1, 217, 9, + 65, 17, 10, 1, 217, 9, 147, 17, 10, 1, 216, 194, 53, 17, 10, 1, 216, 194, + 40, 17, 10, 1, 216, 194, 65, 17, 10, 1, 216, 194, 147, 17, 10, 1, 151, + 53, 17, 10, 1, 151, 40, 17, 10, 1, 151, 65, 17, 10, 1, 151, 147, 17, 10, + 1, 122, 53, 17, 10, 1, 122, 40, 17, 10, 1, 122, 65, 17, 10, 1, 122, 147, + 17, 10, 1, 234, 131, 53, 17, 10, 1, 234, 131, 40, 17, 10, 1, 234, 131, + 65, 17, 10, 1, 234, 131, 147, 17, 10, 1, 248, 197, 53, 17, 10, 1, 248, + 197, 40, 17, 10, 1, 216, 204, 53, 17, 10, 1, 216, 204, 40, 17, 10, 1, + 223, 97, 53, 17, 10, 1, 223, 97, 40, 17, 10, 1, 210, 109, 53, 17, 10, 1, + 210, 109, 40, 17, 10, 1, 221, 168, 53, 17, 10, 1, 221, 168, 40, 17, 10, + 1, 221, 168, 65, 17, 10, 1, 221, 168, 147, 17, 10, 1, 220, 61, 53, 17, + 10, 1, 220, 61, 40, 17, 10, 1, 220, 61, 65, 17, 10, 1, 220, 61, 147, 17, + 10, 1, 222, 28, 53, 17, 10, 1, 222, 28, 40, 17, 10, 1, 222, 28, 65, 17, + 10, 1, 222, 28, 147, 17, 10, 1, 248, 218, 53, 17, 10, 1, 248, 218, 40, + 17, 10, 1, 248, 218, 65, 17, 10, 1, 248, 218, 147, 17, 10, 1, 217, 82, + 53, 17, 10, 1, 217, 82, 40, 17, 10, 1, 217, 82, 65, 17, 10, 1, 217, 82, + 147, 17, 10, 1, 210, 112, 53, 17, 10, 1, 210, 112, 40, 17, 10, 1, 210, + 112, 65, 17, 10, 1, 210, 112, 147, 17, 10, 1, 254, 198, 53, 17, 10, 1, + 254, 198, 40, 17, 10, 1, 254, 198, 65, 17, 10, 1, 254, 198, 147, 17, 10, + 1, 242, 246, 53, 17, 10, 1, 242, 246, 40, 17, 10, 1, 242, 246, 65, 17, + 10, 1, 242, 246, 147, 17, 10, 1, 244, 144, 53, 17, 10, 1, 244, 144, 40, + 17, 10, 1, 244, 144, 65, 17, 10, 1, 244, 144, 147, 17, 10, 1, 224, 83, + 53, 17, 10, 1, 224, 83, 40, 17, 10, 1, 224, 83, 65, 17, 10, 1, 224, 83, + 147, 17, 10, 1, 234, 252, 53, 17, 10, 1, 234, 252, 40, 17, 10, 1, 234, + 252, 65, 17, 10, 1, 234, 252, 147, 17, 10, 1, 233, 104, 53, 17, 10, 1, + 233, 104, 40, 17, 10, 1, 233, 104, 65, 17, 10, 1, 233, 104, 147, 17, 10, + 1, 66, 53, 17, 10, 1, 66, 40, 17, 10, 1, 66, 65, 17, 10, 1, 66, 147, 17, + 10, 1, 228, 64, 53, 17, 10, 1, 228, 64, 40, 17, 10, 1, 228, 64, 65, 17, + 10, 1, 228, 64, 147, 17, 10, 1, 241, 220, 53, 17, 10, 1, 241, 220, 40, + 17, 10, 1, 241, 220, 65, 17, 10, 1, 241, 220, 147, 17, 10, 1, 212, 31, + 53, 17, 10, 1, 212, 31, 40, 17, 10, 1, 112, 231, 194, 53, 17, 10, 1, 112, + 231, 194, 40, 17, 10, 1, 79, 53, 17, 10, 1, 79, 40, 17, 10, 1, 79, 65, + 17, 10, 1, 79, 147, 17, 10, 27, 233, 104, 2, 112, 2, 231, 229, 77, 53, + 17, 10, 27, 233, 104, 2, 112, 2, 231, 229, 77, 40, 17, 10, 27, 233, 104, + 2, 112, 2, 202, 77, 53, 17, 10, 27, 233, 104, 2, 112, 2, 202, 77, 40, 17, + 10, 27, 233, 104, 2, 112, 2, 202, 252, 44, 53, 17, 10, 27, 233, 104, 2, + 112, 2, 202, 252, 44, 40, 17, 10, 27, 233, 104, 2, 112, 53, 17, 10, 27, + 233, 104, 2, 112, 40, 17, 210, 87, 211, 245, 228, 74, 219, 19, 126, 245, + 32, 78, 126, 223, 255, 78, 126, 54, 50, 126, 247, 133, 50, 126, 225, 183, + 50, 126, 254, 127, 126, 254, 58, 126, 43, 226, 4, 126, 44, 226, 4, 126, + 253, 217, 126, 96, 50, 126, 249, 220, 126, 240, 168, 126, 243, 230, 218, + 130, 126, 219, 47, 126, 21, 210, 86, 126, 21, 110, 126, 21, 105, 126, 21, + 158, 126, 21, 161, 126, 21, 189, 126, 21, 194, 126, 21, 198, 126, 21, + 195, 126, 21, 200, 126, 249, 227, 126, 220, 151, 126, 233, 16, 50, 126, + 245, 99, 50, 126, 242, 131, 50, 126, 224, 14, 78, 126, 249, 218, 253, + 207, 126, 7, 6, 1, 61, 126, 7, 6, 1, 253, 159, 126, 7, 6, 1, 251, 67, + 126, 7, 6, 1, 249, 61, 126, 7, 6, 1, 75, 126, 7, 6, 1, 245, 7, 126, 7, 6, + 1, 243, 203, 126, 7, 6, 1, 242, 61, 126, 7, 6, 1, 73, 126, 7, 6, 1, 235, + 145, 126, 7, 6, 1, 235, 24, 126, 7, 6, 1, 156, 126, 7, 6, 1, 193, 126, 7, + 6, 1, 230, 26, 126, 7, 6, 1, 76, 126, 7, 6, 1, 226, 106, 126, 7, 6, 1, + 224, 97, 126, 7, 6, 1, 153, 126, 7, 6, 1, 222, 92, 126, 7, 6, 1, 217, + 153, 126, 7, 6, 1, 70, 126, 7, 6, 1, 214, 105, 126, 7, 6, 1, 212, 98, + 126, 7, 6, 1, 211, 178, 126, 7, 6, 1, 211, 117, 126, 7, 6, 1, 210, 159, + 126, 43, 42, 127, 126, 223, 51, 219, 47, 126, 44, 42, 127, 126, 250, 32, + 255, 15, 126, 121, 232, 214, 126, 242, 138, 255, 15, 126, 7, 4, 1, 61, + 126, 7, 4, 1, 253, 159, 126, 7, 4, 1, 251, 67, 126, 7, 4, 1, 249, 61, + 126, 7, 4, 1, 75, 126, 7, 4, 1, 245, 7, 126, 7, 4, 1, 243, 203, 126, 7, + 4, 1, 242, 61, 126, 7, 4, 1, 73, 126, 7, 4, 1, 235, 145, 126, 7, 4, 1, + 235, 24, 126, 7, 4, 1, 156, 126, 7, 4, 1, 193, 126, 7, 4, 1, 230, 26, + 126, 7, 4, 1, 76, 126, 7, 4, 1, 226, 106, 126, 7, 4, 1, 224, 97, 126, 7, + 4, 1, 153, 126, 7, 4, 1, 222, 92, 126, 7, 4, 1, 217, 153, 126, 7, 4, 1, + 70, 126, 7, 4, 1, 214, 105, 126, 7, 4, 1, 212, 98, 126, 7, 4, 1, 211, + 178, 126, 7, 4, 1, 211, 117, 126, 7, 4, 1, 210, 159, 126, 43, 249, 100, + 127, 126, 67, 232, 214, 126, 44, 249, 100, 127, 126, 183, 126, 43, 71, + 226, 4, 126, 44, 71, 226, 4, 101, 109, 243, 230, 218, 130, 101, 43, 249, + 162, 127, 101, 44, 249, 162, 127, 101, 109, 249, 220, 101, 56, 230, 225, + 247, 121, 101, 56, 1, 211, 227, 101, 56, 1, 4, 61, 101, 56, 1, 4, 73, + 101, 56, 1, 4, 70, 101, 56, 1, 4, 75, 101, 56, 1, 4, 76, 101, 56, 1, 4, + 191, 101, 56, 1, 4, 210, 212, 101, 56, 1, 4, 210, 244, 101, 56, 1, 4, + 215, 119, 101, 234, 202, 224, 174, 219, 32, 78, 101, 56, 1, 61, 101, 56, + 1, 73, 101, 56, 1, 70, 101, 56, 1, 75, 101, 56, 1, 76, 101, 56, 1, 176, + 101, 56, 1, 234, 93, 101, 56, 1, 233, 218, 101, 56, 1, 234, 183, 101, 56, + 1, 234, 29, 101, 56, 1, 206, 101, 56, 1, 219, 192, 101, 56, 1, 218, 84, + 101, 56, 1, 221, 182, 101, 56, 1, 219, 59, 101, 56, 1, 217, 106, 101, 56, + 1, 216, 118, 101, 56, 1, 215, 119, 101, 56, 1, 217, 23, 101, 56, 1, 111, + 101, 56, 1, 197, 101, 56, 1, 228, 234, 101, 56, 1, 227, 238, 101, 56, 1, + 229, 108, 101, 56, 1, 228, 75, 101, 56, 1, 162, 101, 56, 1, 241, 181, + 101, 56, 1, 240, 223, 101, 56, 1, 241, 239, 101, 56, 1, 241, 69, 101, 56, + 1, 185, 101, 56, 1, 230, 231, 101, 56, 1, 230, 103, 101, 56, 1, 231, 92, + 101, 56, 1, 230, 162, 101, 56, 1, 191, 101, 56, 1, 210, 212, 101, 56, 1, + 210, 244, 101, 56, 1, 205, 101, 56, 1, 223, 36, 101, 56, 1, 222, 141, + 101, 56, 1, 223, 129, 101, 56, 1, 222, 212, 101, 56, 1, 212, 65, 101, 56, + 1, 230, 26, 101, 56, 213, 135, 219, 32, 78, 101, 56, 220, 156, 219, 32, + 78, 101, 24, 244, 104, 101, 24, 1, 234, 59, 101, 24, 1, 218, 216, 101, + 24, 1, 234, 52, 101, 24, 1, 228, 227, 101, 24, 1, 228, 225, 101, 24, 1, + 228, 224, 101, 24, 1, 216, 102, 101, 24, 1, 218, 205, 101, 24, 1, 223, + 27, 101, 24, 1, 223, 22, 101, 24, 1, 223, 19, 101, 24, 1, 223, 12, 101, + 24, 1, 223, 7, 101, 24, 1, 223, 2, 101, 24, 1, 223, 13, 101, 24, 1, 223, + 25, 101, 24, 1, 230, 218, 101, 24, 1, 225, 96, 101, 24, 1, 218, 213, 101, + 24, 1, 225, 85, 101, 24, 1, 219, 149, 101, 24, 1, 218, 210, 101, 24, 1, + 236, 57, 101, 24, 1, 250, 47, 101, 24, 1, 218, 220, 101, 24, 1, 250, 107, + 101, 24, 1, 234, 111, 101, 24, 1, 216, 174, 101, 24, 1, 225, 132, 101, + 24, 1, 241, 173, 101, 24, 1, 61, 101, 24, 1, 254, 244, 101, 24, 1, 191, + 101, 24, 1, 211, 92, 101, 24, 1, 245, 118, 101, 24, 1, 75, 101, 24, 1, + 211, 36, 101, 24, 1, 211, 47, 101, 24, 1, 76, 101, 24, 1, 212, 65, 101, + 24, 1, 212, 62, 101, 24, 1, 226, 235, 101, 24, 1, 210, 244, 101, 24, 1, + 70, 101, 24, 1, 212, 11, 101, 24, 1, 212, 22, 101, 24, 1, 211, 250, 101, + 24, 1, 210, 212, 101, 24, 1, 245, 56, 101, 24, 1, 211, 8, 101, 24, 1, 73, + 126, 250, 177, 50, 126, 224, 229, 50, 126, 228, 53, 50, 126, 231, 233, + 126, 251, 136, 130, 126, 211, 40, 50, 126, 211, 217, 50, 101, 244, 19, + 192, 213, 239, 101, 140, 74, 101, 214, 153, 74, 101, 97, 74, 101, 246, + 105, 74, 101, 85, 218, 235, 101, 71, 250, 36, 235, 205, 254, 100, 254, + 121, 235, 205, 254, 100, 220, 138, 235, 205, 254, 100, 216, 237, 226, + 250, 223, 73, 250, 143, 223, 73, 250, 143, 62, 57, 3, 253, 143, 61, 62, + 57, 3, 253, 112, 75, 62, 57, 3, 253, 121, 73, 62, 57, 3, 253, 89, 76, 62, + 57, 3, 253, 139, 70, 62, 57, 3, 253, 158, 248, 222, 62, 57, 3, 253, 105, + 248, 91, 62, 57, 3, 253, 145, 248, 4, 62, 57, 3, 253, 135, 247, 146, 62, + 57, 3, 253, 99, 246, 79, 62, 57, 3, 253, 93, 235, 142, 62, 57, 3, 253, + 104, 235, 127, 62, 57, 3, 253, 114, 235, 69, 62, 57, 3, 253, 85, 235, 52, + 62, 57, 3, 253, 73, 176, 62, 57, 3, 253, 106, 234, 183, 62, 57, 3, 253, + 83, 234, 93, 62, 57, 3, 253, 80, 234, 29, 62, 57, 3, 253, 69, 233, 218, + 62, 57, 3, 253, 70, 185, 62, 57, 3, 253, 136, 231, 92, 62, 57, 3, 253, + 77, 230, 231, 62, 57, 3, 253, 134, 230, 162, 62, 57, 3, 253, 126, 230, + 103, 62, 57, 3, 253, 147, 197, 62, 57, 3, 253, 125, 229, 108, 62, 57, 3, + 253, 119, 228, 234, 62, 57, 3, 253, 98, 228, 75, 62, 57, 3, 253, 95, 227, + 238, 62, 57, 3, 253, 154, 190, 62, 57, 3, 253, 78, 225, 222, 62, 57, 3, + 253, 111, 225, 109, 62, 57, 3, 253, 138, 225, 17, 62, 57, 3, 253, 100, + 224, 151, 62, 57, 3, 253, 133, 224, 89, 62, 57, 3, 253, 72, 224, 70, 62, + 57, 3, 253, 128, 224, 54, 62, 57, 3, 253, 117, 224, 43, 62, 57, 3, 253, + 90, 205, 62, 57, 3, 253, 122, 223, 129, 62, 57, 3, 253, 97, 223, 36, 62, + 57, 3, 253, 156, 222, 212, 62, 57, 3, 253, 123, 222, 141, 62, 57, 3, 253, + 118, 206, 62, 57, 3, 253, 141, 221, 182, 62, 57, 3, 253, 109, 219, 192, + 62, 57, 3, 253, 137, 219, 59, 62, 57, 3, 253, 92, 218, 84, 62, 57, 3, + 253, 91, 217, 106, 62, 57, 3, 253, 152, 217, 23, 62, 57, 3, 253, 113, + 216, 118, 62, 57, 3, 253, 150, 111, 62, 57, 3, 253, 81, 215, 119, 62, 57, + 3, 253, 96, 212, 65, 62, 57, 3, 253, 75, 212, 22, 62, 57, 3, 253, 110, + 211, 250, 62, 57, 3, 253, 108, 211, 227, 62, 57, 3, 253, 132, 210, 116, + 62, 57, 3, 253, 76, 210, 94, 62, 57, 3, 253, 129, 210, 23, 62, 57, 3, + 253, 124, 255, 76, 62, 57, 3, 253, 107, 255, 75, 62, 57, 3, 253, 66, 253, + 193, 62, 57, 3, 253, 79, 246, 47, 62, 57, 3, 253, 62, 246, 46, 62, 57, 3, + 253, 102, 227, 175, 62, 57, 3, 253, 120, 224, 149, 62, 57, 3, 253, 88, + 224, 153, 62, 57, 3, 253, 74, 223, 187, 62, 57, 3, 253, 116, 223, 186, + 62, 57, 3, 253, 82, 222, 211, 62, 57, 3, 253, 84, 217, 103, 62, 57, 3, + 253, 64, 215, 78, 62, 57, 3, 253, 61, 105, 62, 57, 16, 253, 131, 62, 57, + 16, 253, 130, 62, 57, 16, 253, 127, 62, 57, 16, 253, 115, 62, 57, 16, + 253, 103, 62, 57, 16, 253, 101, 62, 57, 16, 253, 94, 62, 57, 16, 253, 87, + 62, 57, 16, 253, 86, 62, 57, 16, 253, 71, 62, 57, 16, 253, 68, 62, 57, + 16, 253, 67, 62, 57, 16, 253, 65, 62, 57, 16, 253, 63, 62, 57, 106, 253, + 60, 231, 186, 62, 57, 106, 253, 59, 211, 221, 62, 57, 106, 253, 58, 248, + 75, 62, 57, 106, 253, 57, 245, 96, 62, 57, 106, 253, 56, 231, 160, 62, + 57, 106, 253, 55, 218, 163, 62, 57, 106, 253, 54, 245, 38, 62, 57, 106, + 253, 53, 223, 154, 62, 57, 106, 253, 52, 220, 63, 62, 57, 106, 253, 51, + 241, 238, 62, 57, 106, 253, 50, 219, 26, 62, 57, 106, 253, 49, 251, 204, + 62, 57, 106, 253, 48, 249, 146, 62, 57, 106, 253, 47, 251, 116, 62, 57, + 106, 253, 46, 212, 2, 62, 57, 106, 253, 45, 252, 137, 62, 57, 106, 253, + 44, 226, 206, 62, 57, 106, 253, 43, 218, 255, 62, 57, 106, 253, 42, 249, + 69, 62, 57, 230, 143, 253, 41, 234, 225, 62, 57, 230, 143, 253, 40, 234, + 233, 62, 57, 106, 253, 39, 226, 219, 62, 57, 106, 253, 38, 211, 236, 62, + 57, 106, 253, 37, 62, 57, 230, 143, 253, 36, 254, 18, 62, 57, 230, 143, + 253, 35, 231, 53, 62, 57, 106, 253, 34, 251, 135, 62, 57, 106, 253, 33, + 242, 167, 62, 57, 106, 253, 32, 62, 57, 106, 253, 31, 211, 212, 62, 57, + 106, 253, 30, 62, 57, 106, 253, 29, 62, 57, 106, 253, 28, 240, 249, 62, + 57, 106, 253, 27, 62, 57, 106, 253, 26, 62, 57, 106, 253, 25, 62, 57, + 230, 143, 253, 23, 215, 92, 62, 57, 106, 253, 22, 62, 57, 106, 253, 21, + 62, 57, 106, 253, 20, 249, 251, 62, 57, 106, 253, 19, 62, 57, 106, 253, + 18, 62, 57, 106, 253, 17, 243, 94, 62, 57, 106, 253, 16, 254, 5, 62, 57, + 106, 253, 15, 62, 57, 106, 253, 14, 62, 57, 106, 253, 13, 62, 57, 106, + 253, 12, 62, 57, 106, 253, 11, 62, 57, 106, 253, 10, 62, 57, 106, 253, 9, + 62, 57, 106, 253, 8, 62, 57, 106, 253, 7, 62, 57, 106, 253, 6, 230, 135, + 62, 57, 106, 253, 5, 62, 57, 106, 253, 4, 215, 236, 62, 57, 106, 253, 3, + 62, 57, 106, 253, 2, 62, 57, 106, 253, 1, 62, 57, 106, 253, 0, 62, 57, + 106, 252, 255, 62, 57, 106, 252, 254, 62, 57, 106, 252, 253, 62, 57, 106, + 252, 252, 62, 57, 106, 252, 251, 62, 57, 106, 252, 250, 62, 57, 106, 252, + 249, 62, 57, 106, 252, 248, 241, 212, 62, 57, 106, 252, 227, 244, 29, 62, + 57, 106, 252, 224, 252, 117, 62, 57, 106, 252, 219, 219, 6, 62, 57, 106, + 252, 218, 74, 62, 57, 106, 252, 217, 62, 57, 106, 252, 216, 217, 237, 62, + 57, 106, 252, 215, 62, 57, 106, 252, 214, 62, 57, 106, 252, 213, 211, + 254, 250, 140, 62, 57, 106, 252, 212, 250, 140, 62, 57, 106, 252, 211, + 250, 141, 244, 0, 62, 57, 106, 252, 210, 212, 0, 62, 57, 106, 252, 209, + 62, 57, 106, 252, 208, 62, 57, 230, 143, 252, 207, 247, 199, 62, 57, 106, + 252, 206, 62, 57, 106, 252, 205, 62, 57, 106, 252, 203, 62, 57, 106, 252, + 202, 62, 57, 106, 252, 201, 62, 57, 106, 252, 200, 248, 160, 62, 57, 106, + 252, 199, 62, 57, 106, 252, 198, 62, 57, 106, 252, 197, 62, 57, 106, 252, + 196, 62, 57, 106, 252, 195, 62, 57, 106, 213, 186, 253, 24, 62, 57, 106, + 213, 186, 252, 247, 62, 57, 106, 213, 186, 252, 246, 62, 57, 106, 213, + 186, 252, 245, 62, 57, 106, 213, 186, 252, 244, 62, 57, 106, 213, 186, + 252, 243, 62, 57, 106, 213, 186, 252, 242, 62, 57, 106, 213, 186, 252, + 241, 62, 57, 106, 213, 186, 252, 240, 62, 57, 106, 213, 186, 252, 239, + 62, 57, 106, 213, 186, 252, 238, 62, 57, 106, 213, 186, 252, 237, 62, 57, + 106, 213, 186, 252, 236, 62, 57, 106, 213, 186, 252, 235, 62, 57, 106, + 213, 186, 252, 234, 62, 57, 106, 213, 186, 252, 233, 62, 57, 106, 213, + 186, 252, 232, 62, 57, 106, 213, 186, 252, 231, 62, 57, 106, 213, 186, + 252, 230, 62, 57, 106, 213, 186, 252, 229, 62, 57, 106, 213, 186, 252, + 228, 62, 57, 106, 213, 186, 252, 226, 62, 57, 106, 213, 186, 252, 225, + 62, 57, 106, 213, 186, 252, 223, 62, 57, 106, 213, 186, 252, 222, 62, 57, + 106, 213, 186, 252, 221, 62, 57, 106, 213, 186, 252, 220, 62, 57, 106, + 213, 186, 252, 204, 62, 57, 106, 213, 186, 252, 194, 254, 237, 211, 209, + 220, 139, 232, 214, 254, 237, 211, 209, 220, 139, 247, 121, 254, 237, + 250, 131, 78, 254, 237, 54, 110, 254, 237, 54, 105, 254, 237, 54, 158, + 254, 237, 54, 161, 254, 237, 54, 189, 254, 237, 54, 194, 254, 237, 54, + 198, 254, 237, 54, 195, 254, 237, 54, 200, 254, 237, 54, 216, 248, 254, + 237, 54, 215, 73, 254, 237, 54, 216, 163, 254, 237, 54, 244, 16, 254, + 237, 54, 244, 115, 254, 237, 54, 219, 112, 254, 237, 54, 220, 117, 254, + 237, 54, 245, 185, 254, 237, 54, 228, 196, 254, 237, 54, 123, 240, 211, + 254, 237, 54, 113, 240, 211, 254, 237, 54, 134, 240, 211, 254, 237, 54, + 244, 12, 240, 211, 254, 237, 54, 244, 82, 240, 211, 254, 237, 54, 219, + 126, 240, 211, 254, 237, 54, 220, 123, 240, 211, 254, 237, 54, 245, 194, + 240, 211, 254, 237, 54, 228, 201, 240, 211, 254, 237, 54, 123, 216, 148, + 254, 237, 54, 113, 216, 148, 254, 237, 54, 134, 216, 148, 254, 237, 54, + 244, 12, 216, 148, 254, 237, 54, 244, 82, 216, 148, 254, 237, 54, 219, + 126, 216, 148, 254, 237, 54, 220, 123, 216, 148, 254, 237, 54, 245, 194, + 216, 148, 254, 237, 54, 228, 201, 216, 148, 254, 237, 54, 216, 249, 216, + 148, 254, 237, 54, 215, 74, 216, 148, 254, 237, 54, 216, 164, 216, 148, + 254, 237, 54, 244, 17, 216, 148, 254, 237, 54, 244, 116, 216, 148, 254, + 237, 54, 219, 113, 216, 148, 254, 237, 54, 220, 118, 216, 148, 254, 237, + 54, 245, 186, 216, 148, 254, 237, 54, 228, 197, 216, 148, 254, 237, 212, + 14, 252, 129, 214, 173, 254, 237, 212, 14, 244, 93, 218, 60, 254, 237, + 212, 14, 221, 177, 218, 60, 254, 237, 212, 14, 216, 170, 218, 60, 254, + 237, 212, 14, 244, 5, 218, 60, 254, 237, 246, 82, 231, 91, 244, 93, 218, + 60, 254, 237, 232, 200, 231, 91, 244, 93, 218, 60, 254, 237, 231, 91, + 221, 177, 218, 60, 254, 237, 231, 91, 216, 170, 218, 60, 26, 255, 7, 253, + 195, 123, 224, 22, 26, 255, 7, 253, 195, 123, 242, 28, 26, 255, 7, 253, + 195, 123, 246, 101, 26, 255, 7, 253, 195, 189, 26, 255, 7, 253, 195, 244, + 115, 26, 255, 7, 253, 195, 244, 82, 240, 211, 26, 255, 7, 253, 195, 244, + 82, 216, 148, 26, 255, 7, 253, 195, 244, 116, 216, 148, 26, 255, 7, 253, + 195, 244, 82, 217, 68, 26, 255, 7, 253, 195, 216, 249, 217, 68, 26, 255, + 7, 253, 195, 244, 116, 217, 68, 26, 255, 7, 253, 195, 123, 240, 212, 217, + 68, 26, 255, 7, 253, 195, 244, 82, 240, 212, 217, 68, 26, 255, 7, 253, + 195, 123, 216, 149, 217, 68, 26, 255, 7, 253, 195, 244, 82, 216, 149, + 217, 68, 26, 255, 7, 253, 195, 244, 82, 218, 151, 26, 255, 7, 253, 195, + 216, 249, 218, 151, 26, 255, 7, 253, 195, 244, 116, 218, 151, 26, 255, 7, + 253, 195, 123, 240, 212, 218, 151, 26, 255, 7, 253, 195, 244, 82, 240, + 212, 218, 151, 26, 255, 7, 253, 195, 123, 216, 149, 218, 151, 26, 255, 7, + 253, 195, 216, 249, 216, 149, 218, 151, 26, 255, 7, 253, 195, 244, 116, + 216, 149, 218, 151, 26, 255, 7, 253, 195, 216, 249, 230, 165, 26, 255, 7, + 241, 206, 123, 225, 32, 26, 255, 7, 216, 182, 110, 26, 255, 7, 241, 202, + 110, 26, 255, 7, 245, 105, 105, 26, 255, 7, 216, 182, 105, 26, 255, 7, + 249, 66, 113, 246, 100, 26, 255, 7, 245, 105, 113, 246, 100, 26, 255, 7, + 215, 204, 189, 26, 255, 7, 215, 204, 216, 248, 26, 255, 7, 215, 204, 216, + 249, 254, 142, 17, 26, 255, 7, 241, 202, 216, 248, 26, 255, 7, 231, 42, + 216, 248, 26, 255, 7, 216, 182, 216, 248, 26, 255, 7, 216, 182, 216, 163, + 26, 255, 7, 215, 204, 244, 115, 26, 255, 7, 215, 204, 244, 116, 254, 142, + 17, 26, 255, 7, 241, 202, 244, 115, 26, 255, 7, 216, 182, 244, 115, 26, + 255, 7, 216, 182, 123, 240, 211, 26, 255, 7, 216, 182, 134, 240, 211, 26, + 255, 7, 245, 105, 244, 82, 240, 211, 26, 255, 7, 215, 204, 244, 82, 240, + 211, 26, 255, 7, 216, 182, 244, 82, 240, 211, 26, 255, 7, 250, 228, 244, + 82, 240, 211, 26, 255, 7, 229, 183, 244, 82, 240, 211, 26, 255, 7, 216, + 182, 123, 216, 148, 26, 255, 7, 216, 182, 244, 82, 216, 148, 26, 255, 7, + 248, 58, 244, 82, 230, 165, 26, 255, 7, 218, 119, 244, 116, 230, 165, 26, + 123, 163, 50, 26, 123, 163, 5, 254, 142, 17, 26, 113, 216, 168, 50, 26, + 134, 224, 21, 50, 26, 211, 45, 50, 26, 217, 69, 50, 26, 246, 102, 50, 26, + 226, 247, 50, 26, 113, 226, 246, 50, 26, 134, 226, 246, 50, 26, 244, 12, + 226, 246, 50, 26, 244, 82, 226, 246, 50, 26, 231, 36, 50, 26, 233, 158, + 252, 129, 50, 26, 232, 195, 50, 26, 226, 132, 50, 26, 211, 159, 50, 26, + 253, 244, 50, 26, 254, 1, 50, 26, 242, 145, 50, 26, 215, 187, 252, 129, + 50, 26, 210, 87, 50, 222, 199, 220, 114, 50, 222, 199, 214, 185, 50, 222, + 199, 220, 143, 50, 222, 199, 220, 112, 50, 222, 199, 247, 214, 220, 112, + 50, 222, 199, 219, 169, 50, 222, 199, 248, 54, 50, 222, 199, 224, 7, 50, + 222, 199, 220, 130, 50, 222, 199, 246, 61, 50, 222, 199, 253, 239, 50, + 222, 199, 250, 172, 50, 225, 144, 247, 192, 5, 225, 214, 225, 144, 247, + 192, 5, 225, 25, 241, 236, 225, 144, 247, 192, 5, 217, 46, 241, 236, 225, + 144, 247, 192, 5, 250, 248, 225, 144, 247, 192, 5, 250, 102, 225, 144, + 247, 192, 5, 211, 221, 225, 144, 247, 192, 5, 241, 212, 225, 144, 247, + 192, 5, 243, 86, 225, 144, 247, 192, 5, 216, 117, 225, 144, 247, 192, 5, + 74, 225, 144, 247, 192, 5, 251, 170, 225, 144, 247, 192, 5, 220, 30, 225, + 144, 247, 192, 5, 249, 245, 225, 144, 247, 192, 5, 231, 185, 225, 144, + 247, 192, 5, 231, 137, 225, 144, 247, 192, 5, 221, 217, 225, 144, 247, + 192, 5, 232, 238, 225, 144, 247, 192, 5, 251, 189, 225, 144, 247, 192, 5, + 250, 232, 225, 36, 225, 144, 247, 192, 5, 247, 134, 225, 144, 247, 192, + 5, 249, 224, 225, 144, 247, 192, 5, 219, 88, 225, 144, 247, 192, 5, 249, + 225, 225, 144, 247, 192, 5, 252, 64, 225, 144, 247, 192, 5, 220, 17, 225, + 144, 247, 192, 5, 240, 249, 225, 144, 247, 192, 5, 241, 179, 225, 144, + 247, 192, 5, 251, 113, 233, 37, 225, 144, 247, 192, 5, 250, 225, 225, + 144, 247, 192, 5, 223, 154, 225, 144, 247, 192, 5, 245, 231, 225, 144, + 247, 192, 5, 246, 108, 225, 144, 247, 192, 5, 215, 106, 225, 144, 247, + 192, 5, 252, 67, 225, 144, 247, 192, 5, 225, 37, 215, 236, 225, 144, 247, + 192, 5, 213, 159, 225, 144, 247, 192, 5, 226, 19, 225, 144, 247, 192, 5, + 222, 191, 225, 144, 247, 192, 5, 232, 225, 225, 144, 247, 192, 5, 226, + 116, 252, 185, 225, 144, 247, 192, 5, 244, 49, 225, 144, 247, 192, 5, + 242, 139, 225, 144, 247, 192, 5, 218, 120, 225, 144, 247, 192, 5, 4, 253, + 169, 225, 144, 247, 192, 5, 212, 32, 252, 149, 225, 144, 247, 192, 5, 38, + 226, 249, 91, 232, 61, 1, 61, 232, 61, 1, 75, 232, 61, 1, 253, 159, 232, + 61, 1, 252, 20, 232, 61, 1, 243, 203, 232, 61, 1, 249, 61, 232, 61, 1, + 73, 232, 61, 1, 212, 98, 232, 61, 1, 210, 159, 232, 61, 1, 216, 211, 232, + 61, 1, 235, 145, 232, 61, 1, 235, 24, 232, 61, 1, 224, 97, 232, 61, 1, + 156, 232, 61, 1, 193, 232, 61, 1, 230, 26, 232, 61, 1, 230, 167, 232, 61, + 1, 228, 112, 232, 61, 1, 70, 232, 61, 1, 226, 106, 232, 61, 1, 234, 48, + 232, 61, 1, 153, 232, 61, 1, 222, 92, 232, 61, 1, 217, 153, 232, 61, 1, + 215, 160, 232, 61, 1, 254, 124, 232, 61, 1, 245, 151, 232, 61, 1, 242, + 61, 232, 61, 1, 211, 178, 250, 238, 1, 61, 250, 238, 1, 226, 92, 250, + 238, 1, 249, 61, 250, 238, 1, 156, 250, 238, 1, 214, 116, 250, 238, 1, + 153, 250, 238, 1, 233, 63, 250, 238, 1, 255, 76, 250, 238, 1, 224, 97, + 250, 238, 1, 253, 159, 250, 238, 1, 193, 250, 238, 1, 76, 250, 238, 1, + 248, 224, 250, 238, 1, 217, 153, 250, 238, 1, 220, 105, 250, 238, 1, 220, + 104, 250, 238, 1, 222, 92, 250, 238, 1, 251, 66, 250, 238, 1, 70, 250, + 238, 1, 228, 112, 250, 238, 1, 211, 178, 250, 238, 1, 230, 26, 250, 238, + 1, 215, 159, 250, 238, 1, 226, 106, 250, 238, 1, 218, 227, 250, 238, 1, + 73, 250, 238, 1, 75, 250, 238, 1, 214, 113, 250, 238, 1, 235, 24, 250, + 238, 1, 235, 15, 250, 238, 1, 229, 151, 250, 238, 1, 214, 118, 250, 238, + 1, 243, 203, 250, 238, 1, 243, 138, 250, 238, 1, 218, 169, 250, 238, 1, + 218, 168, 250, 238, 1, 229, 80, 250, 238, 1, 236, 34, 250, 238, 1, 251, + 65, 250, 238, 1, 215, 160, 250, 238, 1, 214, 115, 250, 238, 1, 222, 181, + 250, 238, 1, 231, 130, 250, 238, 1, 231, 129, 250, 238, 1, 231, 128, 250, + 238, 1, 231, 127, 250, 238, 1, 233, 62, 250, 238, 1, 245, 235, 250, 238, + 1, 214, 114, 55, 32, 1, 61, 55, 32, 1, 252, 76, 55, 32, 1, 234, 183, 55, + 32, 1, 248, 91, 55, 32, 1, 75, 55, 32, 1, 213, 255, 55, 32, 1, 210, 94, + 55, 32, 1, 241, 239, 55, 32, 1, 216, 196, 55, 32, 1, 73, 55, 32, 1, 176, + 55, 32, 1, 245, 175, 55, 32, 1, 245, 160, 55, 32, 1, 245, 151, 55, 32, 1, + 245, 76, 55, 32, 1, 76, 55, 32, 1, 225, 222, 55, 32, 1, 220, 64, 55, 32, + 1, 233, 218, 55, 32, 1, 245, 93, 55, 32, 1, 245, 83, 55, 32, 1, 217, 23, + 55, 32, 1, 70, 55, 32, 1, 245, 178, 55, 32, 1, 225, 137, 55, 32, 1, 234, + 120, 55, 32, 1, 245, 203, 55, 32, 1, 245, 85, 55, 32, 1, 250, 132, 55, + 32, 1, 236, 34, 55, 32, 1, 214, 118, 55, 32, 227, 199, 110, 55, 32, 227, + 199, 189, 55, 32, 227, 199, 216, 248, 55, 32, 227, 199, 244, 115, 242, + 154, 1, 254, 205, 242, 154, 1, 252, 164, 242, 154, 1, 242, 212, 242, 154, + 1, 248, 205, 242, 154, 1, 254, 201, 242, 154, 1, 224, 80, 242, 154, 1, + 235, 156, 242, 154, 1, 242, 40, 242, 154, 1, 216, 159, 242, 154, 1, 245, + 184, 242, 154, 1, 233, 191, 242, 154, 1, 233, 114, 242, 154, 1, 231, 180, + 242, 154, 1, 229, 185, 242, 154, 1, 235, 120, 242, 154, 1, 214, 136, 242, + 154, 1, 226, 70, 242, 154, 1, 228, 196, 242, 154, 1, 223, 166, 242, 154, + 1, 221, 219, 242, 154, 1, 217, 5, 242, 154, 1, 211, 234, 242, 154, 1, + 244, 179, 242, 154, 1, 236, 38, 242, 154, 1, 240, 200, 242, 154, 1, 226, + 140, 242, 154, 1, 228, 201, 240, 211, 214, 209, 1, 254, 148, 214, 209, 1, + 252, 27, 214, 209, 1, 243, 109, 214, 209, 1, 234, 133, 214, 209, 1, 248, + 55, 214, 209, 1, 241, 69, 214, 209, 1, 211, 227, 214, 209, 1, 210, 85, + 214, 209, 1, 240, 242, 214, 209, 1, 216, 231, 214, 209, 1, 210, 233, 214, + 209, 1, 234, 251, 214, 209, 1, 220, 21, 214, 209, 1, 233, 99, 214, 209, + 1, 231, 66, 214, 209, 1, 248, 22, 214, 209, 1, 227, 195, 214, 209, 1, + 210, 13, 214, 209, 1, 221, 249, 214, 209, 1, 254, 197, 214, 209, 1, 224, + 151, 214, 209, 1, 222, 26, 214, 209, 1, 224, 36, 214, 209, 1, 223, 145, + 214, 209, 1, 216, 200, 214, 209, 1, 242, 245, 214, 209, 1, 111, 214, 209, + 1, 73, 214, 209, 1, 70, 214, 209, 1, 218, 180, 214, 209, 211, 209, 247, + 173, 55, 225, 170, 5, 61, 55, 225, 170, 5, 73, 55, 225, 170, 5, 70, 55, + 225, 170, 5, 176, 55, 225, 170, 5, 233, 218, 55, 225, 170, 5, 243, 136, + 55, 225, 170, 5, 242, 114, 55, 225, 170, 5, 211, 165, 55, 225, 170, 5, + 251, 34, 55, 225, 170, 5, 235, 142, 55, 225, 170, 5, 235, 109, 55, 225, + 170, 5, 217, 106, 55, 225, 170, 5, 215, 119, 55, 225, 170, 5, 248, 222, + 55, 225, 170, 5, 248, 4, 55, 225, 170, 5, 246, 79, 55, 225, 170, 5, 216, + 209, 55, 225, 170, 5, 190, 55, 225, 170, 5, 252, 192, 55, 225, 170, 5, + 244, 197, 55, 225, 170, 5, 197, 55, 225, 170, 5, 227, 238, 55, 225, 170, + 5, 185, 55, 225, 170, 5, 230, 231, 55, 225, 170, 5, 230, 103, 55, 225, + 170, 5, 191, 55, 225, 170, 5, 214, 27, 55, 225, 170, 5, 213, 176, 55, + 225, 170, 5, 205, 55, 225, 170, 5, 222, 141, 55, 225, 170, 5, 233, 136, + 55, 225, 170, 5, 206, 55, 225, 170, 5, 210, 116, 55, 225, 170, 5, 220, + 103, 55, 225, 170, 5, 218, 224, 55, 225, 170, 5, 162, 55, 225, 170, 5, + 253, 187, 55, 225, 170, 5, 253, 186, 55, 225, 170, 5, 253, 185, 55, 225, + 170, 5, 211, 142, 55, 225, 170, 5, 248, 201, 55, 225, 170, 5, 248, 200, + 55, 225, 170, 5, 252, 171, 55, 225, 170, 5, 251, 86, 55, 225, 170, 211, + 209, 247, 173, 55, 225, 170, 54, 110, 55, 225, 170, 54, 105, 55, 225, + 170, 54, 216, 248, 55, 225, 170, 54, 215, 73, 55, 225, 170, 54, 240, 211, 181, 6, 1, 199, 73, 181, 6, 1, 199, 75, 181, 6, 1, 199, 61, 181, 6, 1, - 199, 254, 209, 181, 6, 1, 199, 76, 181, 6, 1, 199, 226, 183, 181, 6, 1, - 219, 251, 73, 181, 6, 1, 219, 251, 75, 181, 6, 1, 219, 251, 61, 181, 6, - 1, 219, 251, 254, 209, 181, 6, 1, 219, 251, 76, 181, 6, 1, 219, 251, 226, - 183, 181, 6, 1, 253, 167, 181, 6, 1, 226, 116, 181, 6, 1, 211, 195, 181, - 6, 1, 211, 44, 181, 6, 1, 242, 60, 181, 6, 1, 225, 211, 181, 6, 1, 252, - 66, 181, 6, 1, 217, 11, 181, 6, 1, 248, 77, 181, 6, 1, 250, 128, 181, 6, - 1, 235, 124, 181, 6, 1, 234, 189, 181, 6, 1, 243, 83, 181, 6, 1, 245, - 202, 181, 6, 1, 213, 250, 181, 6, 1, 245, 59, 181, 6, 1, 216, 194, 181, - 6, 1, 245, 82, 181, 6, 1, 210, 92, 181, 6, 1, 245, 75, 181, 6, 1, 210, - 73, 181, 6, 1, 245, 92, 181, 6, 1, 245, 174, 181, 6, 1, 245, 159, 181, 6, - 1, 245, 150, 181, 6, 1, 245, 138, 181, 6, 1, 226, 219, 181, 6, 1, 245, - 38, 181, 4, 1, 199, 73, 181, 4, 1, 199, 75, 181, 4, 1, 199, 61, 181, 4, - 1, 199, 254, 209, 181, 4, 1, 199, 76, 181, 4, 1, 199, 226, 183, 181, 4, - 1, 219, 251, 73, 181, 4, 1, 219, 251, 75, 181, 4, 1, 219, 251, 61, 181, - 4, 1, 219, 251, 254, 209, 181, 4, 1, 219, 251, 76, 181, 4, 1, 219, 251, - 226, 183, 181, 4, 1, 253, 167, 181, 4, 1, 226, 116, 181, 4, 1, 211, 195, - 181, 4, 1, 211, 44, 181, 4, 1, 242, 60, 181, 4, 1, 225, 211, 181, 4, 1, - 252, 66, 181, 4, 1, 217, 11, 181, 4, 1, 248, 77, 181, 4, 1, 250, 128, - 181, 4, 1, 235, 124, 181, 4, 1, 234, 189, 181, 4, 1, 243, 83, 181, 4, 1, - 245, 202, 181, 4, 1, 213, 250, 181, 4, 1, 245, 59, 181, 4, 1, 216, 194, - 181, 4, 1, 245, 82, 181, 4, 1, 210, 92, 181, 4, 1, 245, 75, 181, 4, 1, - 210, 73, 181, 4, 1, 245, 92, 181, 4, 1, 245, 174, 181, 4, 1, 245, 159, - 181, 4, 1, 245, 150, 181, 4, 1, 245, 138, 181, 4, 1, 226, 219, 181, 4, 1, - 245, 38, 220, 69, 1, 225, 209, 220, 69, 1, 216, 5, 220, 69, 1, 234, 91, - 220, 69, 1, 244, 147, 220, 69, 1, 216, 172, 220, 69, 1, 219, 58, 220, 69, - 1, 218, 14, 220, 69, 1, 250, 61, 220, 69, 1, 211, 46, 220, 69, 1, 240, - 209, 220, 69, 1, 252, 5, 220, 69, 1, 248, 89, 220, 69, 1, 243, 121, 220, - 69, 1, 213, 123, 220, 69, 1, 216, 176, 220, 69, 1, 210, 21, 220, 69, 1, - 231, 89, 220, 69, 1, 235, 49, 220, 69, 1, 211, 225, 220, 69, 1, 242, 48, - 220, 69, 1, 232, 142, 220, 69, 1, 230, 189, 220, 69, 1, 236, 40, 220, 69, - 1, 245, 201, 220, 69, 1, 253, 231, 220, 69, 1, 254, 247, 220, 69, 1, 226, - 196, 220, 69, 1, 211, 212, 220, 69, 1, 226, 130, 220, 69, 1, 254, 209, - 220, 69, 1, 222, 208, 220, 69, 1, 227, 194, 220, 69, 1, 245, 217, 220, - 69, 1, 254, 214, 220, 69, 1, 240, 111, 220, 69, 1, 214, 163, 220, 69, 1, - 226, 254, 220, 69, 1, 226, 176, 220, 69, 1, 226, 218, 220, 69, 1, 253, - 170, 220, 69, 1, 254, 19, 220, 69, 1, 226, 158, 220, 69, 1, 254, 192, - 220, 69, 1, 245, 86, 220, 69, 1, 253, 253, 220, 69, 1, 245, 227, 220, 69, - 1, 240, 118, 220, 69, 1, 211, 13, 226, 141, 1, 254, 170, 226, 141, 1, - 252, 191, 226, 141, 1, 217, 105, 226, 141, 1, 235, 141, 226, 141, 1, 211, - 165, 226, 141, 1, 234, 132, 226, 141, 1, 248, 76, 226, 141, 1, 205, 226, - 141, 1, 206, 226, 141, 1, 220, 26, 226, 141, 1, 248, 25, 226, 141, 1, - 250, 215, 226, 141, 1, 243, 135, 226, 141, 1, 244, 196, 226, 141, 1, 224, - 86, 226, 141, 1, 235, 9, 226, 141, 1, 233, 130, 226, 141, 1, 230, 200, - 226, 141, 1, 227, 178, 226, 141, 1, 212, 30, 226, 141, 1, 162, 226, 141, - 1, 191, 226, 141, 1, 61, 226, 141, 1, 75, 226, 141, 1, 73, 226, 141, 1, - 76, 226, 141, 1, 70, 226, 141, 1, 255, 73, 226, 141, 1, 245, 209, 226, - 141, 1, 226, 183, 226, 141, 21, 210, 86, 226, 141, 21, 110, 226, 141, 21, - 105, 226, 141, 21, 158, 226, 141, 21, 161, 226, 141, 21, 189, 226, 141, - 21, 194, 226, 141, 21, 198, 226, 141, 21, 195, 226, 141, 21, 200, 249, - 67, 3, 61, 249, 67, 3, 75, 249, 67, 3, 73, 249, 67, 3, 76, 249, 67, 3, - 70, 249, 67, 3, 235, 141, 249, 67, 3, 235, 68, 249, 67, 3, 176, 249, 67, - 3, 234, 182, 249, 67, 3, 234, 92, 249, 67, 3, 234, 28, 249, 67, 3, 233, - 217, 249, 67, 3, 233, 135, 249, 67, 3, 233, 58, 249, 67, 3, 232, 241, - 249, 67, 3, 232, 156, 249, 67, 3, 232, 98, 249, 67, 3, 184, 249, 67, 3, - 231, 91, 249, 67, 3, 230, 230, 249, 67, 3, 230, 161, 249, 67, 3, 230, - 102, 249, 67, 3, 197, 249, 67, 3, 229, 107, 249, 67, 3, 228, 233, 249, - 67, 3, 228, 74, 249, 67, 3, 227, 237, 249, 67, 3, 190, 249, 67, 3, 225, - 221, 249, 67, 3, 225, 108, 249, 67, 3, 225, 16, 249, 67, 3, 224, 150, - 249, 67, 3, 205, 249, 67, 3, 223, 128, 249, 67, 3, 223, 35, 249, 67, 3, - 222, 211, 249, 67, 3, 222, 140, 249, 67, 3, 206, 249, 67, 3, 221, 181, - 249, 67, 3, 219, 191, 249, 67, 3, 219, 58, 249, 67, 3, 218, 83, 249, 67, - 3, 217, 105, 249, 67, 3, 217, 22, 249, 67, 3, 216, 117, 249, 67, 3, 111, - 249, 67, 3, 215, 118, 249, 67, 3, 212, 65, 249, 67, 3, 212, 22, 249, 67, - 3, 211, 250, 249, 67, 3, 211, 227, 249, 67, 3, 211, 165, 249, 67, 3, 211, - 162, 249, 67, 3, 210, 116, 249, 67, 3, 210, 23, 236, 1, 254, 27, 1, 254, - 168, 236, 1, 254, 27, 1, 252, 25, 236, 1, 254, 27, 1, 242, 201, 236, 1, - 254, 27, 1, 248, 188, 236, 1, 254, 27, 1, 241, 238, 236, 1, 254, 27, 1, - 212, 30, 236, 1, 254, 27, 1, 210, 97, 236, 1, 254, 27, 1, 241, 195, 236, - 1, 254, 27, 1, 216, 226, 236, 1, 254, 27, 1, 210, 232, 236, 1, 254, 27, - 1, 234, 225, 236, 1, 254, 27, 1, 233, 93, 236, 1, 254, 27, 1, 231, 65, - 236, 1, 254, 27, 1, 227, 194, 236, 1, 254, 27, 1, 221, 249, 236, 1, 254, - 27, 1, 253, 162, 236, 1, 254, 27, 1, 225, 221, 236, 1, 254, 27, 1, 222, - 24, 236, 1, 254, 27, 1, 224, 34, 236, 1, 254, 27, 1, 223, 67, 236, 1, - 254, 27, 1, 220, 20, 236, 1, 254, 27, 1, 217, 36, 236, 1, 254, 27, 221, - 173, 50, 236, 1, 254, 27, 54, 110, 236, 1, 254, 27, 54, 105, 236, 1, 254, - 27, 54, 158, 236, 1, 254, 27, 54, 216, 247, 236, 1, 254, 27, 54, 215, 73, - 236, 1, 254, 27, 54, 123, 240, 210, 236, 1, 254, 27, 54, 123, 216, 147, - 236, 1, 254, 27, 54, 216, 248, 216, 147, 225, 119, 1, 254, 165, 225, 119, - 1, 252, 28, 225, 119, 1, 243, 109, 225, 119, 1, 248, 56, 225, 119, 1, - 241, 238, 225, 119, 1, 212, 37, 225, 119, 1, 210, 110, 225, 119, 1, 241, - 197, 225, 119, 1, 216, 230, 225, 119, 1, 210, 233, 225, 119, 1, 234, 250, - 225, 119, 1, 233, 99, 225, 119, 1, 231, 65, 225, 119, 1, 227, 194, 225, - 119, 1, 220, 144, 225, 119, 1, 254, 196, 225, 119, 1, 225, 221, 225, 119, - 1, 222, 25, 225, 119, 1, 224, 39, 225, 119, 1, 222, 189, 225, 119, 1, - 220, 20, 225, 119, 1, 217, 41, 225, 119, 54, 110, 225, 119, 54, 216, 247, - 225, 119, 54, 215, 73, 225, 119, 54, 123, 240, 210, 225, 119, 54, 105, - 225, 119, 54, 158, 225, 119, 211, 209, 220, 137, 232, 59, 1, 61, 232, 59, - 1, 253, 158, 232, 59, 1, 243, 202, 232, 59, 1, 249, 60, 232, 59, 1, 75, - 232, 59, 1, 214, 105, 232, 59, 1, 73, 232, 59, 1, 211, 117, 232, 59, 1, - 235, 23, 232, 59, 1, 156, 232, 59, 1, 193, 232, 59, 1, 230, 25, 232, 59, - 1, 76, 232, 59, 1, 153, 232, 59, 1, 218, 226, 232, 59, 1, 217, 152, 232, - 59, 1, 70, 232, 59, 1, 245, 6, 232, 59, 1, 224, 96, 232, 59, 1, 222, 91, - 232, 59, 1, 215, 159, 232, 59, 1, 254, 123, 232, 59, 1, 245, 150, 232, - 59, 1, 232, 62, 232, 59, 1, 228, 111, 232, 59, 1, 251, 66, 232, 59, 215, - 222, 78, 231, 48, 241, 174, 1, 61, 231, 48, 241, 174, 1, 75, 231, 48, - 241, 174, 1, 73, 231, 48, 241, 174, 1, 76, 231, 48, 241, 174, 1, 191, - 231, 48, 241, 174, 1, 212, 65, 231, 48, 241, 174, 1, 252, 191, 231, 48, - 241, 174, 1, 252, 190, 231, 48, 241, 174, 1, 190, 231, 48, 241, 174, 1, - 184, 231, 48, 241, 174, 1, 197, 231, 48, 241, 174, 1, 229, 228, 231, 48, - 241, 174, 1, 229, 107, 231, 48, 241, 174, 1, 229, 106, 231, 48, 241, 174, - 1, 205, 231, 48, 241, 174, 1, 223, 187, 231, 48, 241, 174, 1, 233, 135, - 231, 48, 241, 174, 1, 234, 132, 231, 48, 241, 174, 1, 241, 189, 231, 48, - 241, 174, 1, 206, 231, 48, 241, 174, 1, 222, 33, 231, 48, 241, 174, 1, - 221, 181, 231, 48, 241, 174, 1, 176, 231, 48, 241, 174, 1, 224, 88, 231, - 48, 241, 174, 1, 217, 105, 231, 48, 241, 174, 1, 217, 104, 231, 48, 241, - 174, 1, 217, 22, 231, 48, 241, 174, 1, 217, 21, 231, 48, 241, 174, 1, - 111, 231, 48, 241, 174, 1, 248, 221, 231, 48, 241, 174, 16, 213, 170, - 231, 48, 241, 174, 16, 213, 169, 231, 48, 249, 94, 1, 61, 231, 48, 249, - 94, 1, 75, 231, 48, 249, 94, 1, 73, 231, 48, 249, 94, 1, 76, 231, 48, - 249, 94, 1, 191, 231, 48, 249, 94, 1, 212, 65, 231, 48, 249, 94, 1, 252, - 191, 231, 48, 249, 94, 1, 190, 231, 48, 249, 94, 1, 184, 231, 48, 249, - 94, 1, 197, 231, 48, 249, 94, 1, 229, 107, 231, 48, 249, 94, 1, 205, 231, - 48, 249, 94, 1, 233, 135, 231, 48, 249, 94, 1, 234, 132, 231, 48, 249, - 94, 1, 241, 189, 231, 48, 249, 94, 1, 206, 231, 48, 249, 94, 1, 254, 23, - 206, 231, 48, 249, 94, 1, 221, 181, 231, 48, 249, 94, 1, 176, 231, 48, - 249, 94, 1, 224, 88, 231, 48, 249, 94, 1, 217, 105, 231, 48, 249, 94, 1, - 217, 22, 231, 48, 249, 94, 1, 111, 231, 48, 249, 94, 1, 248, 221, 231, - 48, 249, 94, 232, 145, 222, 217, 231, 48, 249, 94, 232, 145, 236, 6, 234, - 120, 1, 61, 234, 120, 25, 5, 73, 234, 120, 25, 5, 70, 234, 120, 25, 5, - 149, 153, 234, 120, 25, 5, 75, 234, 120, 25, 5, 76, 234, 120, 25, 233, - 23, 78, 234, 120, 5, 52, 222, 234, 51, 234, 120, 5, 254, 75, 234, 120, 5, - 213, 147, 234, 120, 1, 176, 234, 120, 1, 234, 132, 234, 120, 1, 243, 135, - 234, 120, 1, 242, 249, 234, 120, 1, 251, 33, 234, 120, 1, 250, 157, 234, - 120, 1, 235, 141, 234, 120, 1, 227, 165, 234, 120, 1, 215, 156, 234, 120, - 1, 215, 144, 234, 120, 1, 248, 135, 234, 120, 1, 248, 119, 234, 120, 1, - 228, 110, 234, 120, 1, 217, 105, 234, 120, 1, 216, 208, 234, 120, 1, 248, - 221, 234, 120, 1, 248, 25, 234, 120, 1, 197, 234, 120, 1, 190, 234, 120, - 1, 225, 147, 234, 120, 1, 252, 191, 234, 120, 1, 252, 18, 234, 120, 1, - 184, 234, 120, 1, 191, 234, 120, 1, 205, 234, 120, 1, 233, 135, 234, 120, - 1, 214, 27, 234, 120, 1, 220, 102, 234, 120, 1, 218, 223, 234, 120, 1, - 206, 234, 120, 1, 210, 116, 234, 120, 1, 162, 234, 120, 1, 234, 46, 234, - 120, 1, 215, 124, 234, 120, 5, 252, 141, 48, 234, 120, 5, 250, 221, 234, - 120, 5, 59, 51, 234, 120, 213, 152, 234, 120, 21, 110, 234, 120, 21, 105, - 234, 120, 21, 158, 234, 120, 21, 161, 234, 120, 54, 216, 247, 234, 120, - 54, 215, 73, 234, 120, 54, 123, 240, 210, 234, 120, 54, 123, 216, 147, - 234, 120, 224, 141, 247, 120, 234, 120, 224, 141, 4, 250, 35, 234, 120, - 224, 141, 250, 35, 234, 120, 224, 141, 249, 137, 130, 234, 120, 224, 141, - 231, 180, 234, 120, 224, 141, 232, 115, 234, 120, 224, 141, 248, 178, - 234, 120, 224, 141, 52, 248, 178, 234, 120, 224, 141, 232, 207, 55, 219, - 28, 254, 38, 1, 241, 238, 55, 219, 28, 254, 38, 1, 233, 93, 55, 219, 28, - 254, 38, 1, 241, 195, 55, 219, 28, 254, 38, 1, 231, 65, 55, 219, 28, 254, - 38, 1, 224, 34, 55, 219, 28, 254, 38, 1, 212, 30, 55, 219, 28, 254, 38, - 1, 220, 20, 55, 219, 28, 254, 38, 1, 223, 67, 55, 219, 28, 254, 38, 1, - 252, 25, 55, 219, 28, 254, 38, 1, 217, 36, 55, 219, 28, 254, 38, 1, 221, - 226, 55, 219, 28, 254, 38, 1, 234, 225, 55, 219, 28, 254, 38, 1, 227, - 194, 55, 219, 28, 254, 38, 1, 234, 116, 55, 219, 28, 254, 38, 1, 222, 24, - 55, 219, 28, 254, 38, 1, 221, 249, 55, 219, 28, 254, 38, 1, 244, 154, 55, - 219, 28, 254, 38, 1, 254, 170, 55, 219, 28, 254, 38, 1, 253, 161, 55, - 219, 28, 254, 38, 1, 248, 22, 55, 219, 28, 254, 38, 1, 242, 201, 55, 219, - 28, 254, 38, 1, 248, 188, 55, 219, 28, 254, 38, 1, 242, 238, 55, 219, 28, - 254, 38, 1, 216, 226, 55, 219, 28, 254, 38, 1, 210, 96, 55, 219, 28, 254, - 38, 1, 248, 19, 55, 219, 28, 254, 38, 1, 210, 232, 55, 219, 28, 254, 38, - 1, 216, 197, 55, 219, 28, 254, 38, 1, 216, 178, 55, 219, 28, 254, 38, 54, - 110, 55, 219, 28, 254, 38, 54, 244, 114, 55, 219, 28, 254, 38, 132, 235, - 238, 253, 172, 1, 61, 253, 172, 1, 255, 73, 253, 172, 1, 254, 73, 253, - 172, 1, 255, 32, 253, 172, 1, 254, 123, 253, 172, 1, 255, 33, 253, 172, - 1, 254, 243, 253, 172, 1, 254, 239, 253, 172, 1, 75, 253, 172, 1, 245, - 209, 253, 172, 1, 76, 253, 172, 1, 226, 183, 253, 172, 1, 73, 253, 172, - 1, 236, 33, 253, 172, 1, 70, 253, 172, 1, 214, 118, 253, 172, 1, 234, - 182, 253, 172, 1, 211, 162, 253, 172, 1, 211, 128, 253, 172, 1, 211, 137, - 253, 172, 1, 243, 62, 253, 172, 1, 243, 24, 253, 172, 1, 242, 236, 253, - 172, 1, 250, 190, 253, 172, 1, 235, 126, 253, 172, 1, 217, 22, 253, 172, - 1, 216, 195, 253, 172, 1, 248, 90, 253, 172, 1, 248, 17, 253, 172, 1, - 215, 151, 253, 172, 1, 225, 221, 253, 172, 1, 244, 154, 253, 172, 1, 252, - 75, 253, 172, 1, 252, 14, 253, 172, 1, 229, 64, 253, 172, 1, 228, 239, - 253, 172, 1, 228, 240, 253, 172, 1, 229, 107, 253, 172, 1, 227, 156, 253, - 172, 1, 228, 105, 253, 172, 1, 231, 91, 253, 172, 1, 241, 116, 253, 172, - 1, 210, 166, 253, 172, 1, 211, 47, 253, 172, 1, 213, 255, 253, 172, 1, - 223, 128, 253, 172, 1, 233, 58, 253, 172, 1, 221, 181, 253, 172, 1, 210, - 94, 253, 172, 1, 220, 63, 253, 172, 1, 210, 74, 253, 172, 1, 219, 198, - 253, 172, 1, 218, 193, 253, 172, 1, 241, 238, 253, 172, 255, 21, 78, 216, - 79, 113, 170, 117, 123, 59, 224, 140, 4, 113, 170, 117, 123, 59, 224, - 140, 233, 85, 113, 170, 117, 123, 59, 224, 140, 233, 85, 123, 59, 117, - 113, 170, 224, 140, 233, 85, 113, 222, 232, 117, 123, 222, 234, 224, 140, - 233, 85, 123, 222, 234, 117, 113, 222, 232, 224, 140, 235, 218, 225, 254, - 1, 254, 168, 235, 218, 225, 254, 1, 252, 25, 235, 218, 225, 254, 1, 242, - 201, 235, 218, 225, 254, 1, 248, 188, 235, 218, 225, 254, 1, 241, 238, - 235, 218, 225, 254, 1, 212, 30, 235, 218, 225, 254, 1, 210, 97, 235, 218, - 225, 254, 1, 241, 195, 235, 218, 225, 254, 1, 216, 226, 235, 218, 225, - 254, 1, 210, 232, 235, 218, 225, 254, 1, 234, 225, 235, 218, 225, 254, 1, - 233, 93, 235, 218, 225, 254, 1, 231, 65, 235, 218, 225, 254, 1, 227, 194, - 235, 218, 225, 254, 1, 221, 249, 235, 218, 225, 254, 1, 253, 162, 235, - 218, 225, 254, 1, 225, 221, 235, 218, 225, 254, 1, 222, 24, 235, 218, - 225, 254, 1, 224, 34, 235, 218, 225, 254, 1, 223, 67, 235, 218, 225, 254, - 1, 220, 20, 235, 218, 225, 254, 1, 217, 36, 235, 218, 225, 254, 54, 110, - 235, 218, 225, 254, 54, 105, 235, 218, 225, 254, 54, 158, 235, 218, 225, - 254, 54, 161, 235, 218, 225, 254, 54, 216, 247, 235, 218, 225, 254, 54, - 215, 73, 235, 218, 225, 254, 54, 123, 240, 210, 235, 218, 225, 254, 54, - 123, 216, 147, 235, 218, 226, 72, 1, 254, 168, 235, 218, 226, 72, 1, 252, - 25, 235, 218, 226, 72, 1, 242, 201, 235, 218, 226, 72, 1, 248, 188, 235, - 218, 226, 72, 1, 241, 238, 235, 218, 226, 72, 1, 212, 29, 235, 218, 226, - 72, 1, 210, 97, 235, 218, 226, 72, 1, 241, 195, 235, 218, 226, 72, 1, - 216, 226, 235, 218, 226, 72, 1, 210, 232, 235, 218, 226, 72, 1, 234, 225, - 235, 218, 226, 72, 1, 233, 93, 235, 218, 226, 72, 1, 231, 64, 235, 218, - 226, 72, 1, 227, 194, 235, 218, 226, 72, 1, 221, 249, 235, 218, 226, 72, - 1, 225, 221, 235, 218, 226, 72, 1, 222, 24, 235, 218, 226, 72, 1, 220, - 20, 235, 218, 226, 72, 1, 217, 36, 235, 218, 226, 72, 54, 110, 235, 218, - 226, 72, 54, 105, 235, 218, 226, 72, 54, 158, 235, 218, 226, 72, 54, 161, - 235, 218, 226, 72, 54, 216, 247, 235, 218, 226, 72, 54, 215, 73, 235, - 218, 226, 72, 54, 123, 240, 210, 235, 218, 226, 72, 54, 123, 216, 147, - 55, 201, 1, 226, 149, 61, 55, 201, 1, 211, 37, 61, 55, 201, 1, 211, 37, - 254, 243, 55, 201, 1, 226, 149, 73, 55, 201, 1, 211, 37, 73, 55, 201, 1, - 211, 37, 75, 55, 201, 1, 226, 149, 76, 55, 201, 1, 226, 149, 226, 234, - 55, 201, 1, 211, 37, 226, 234, 55, 201, 1, 226, 149, 255, 25, 55, 201, 1, - 211, 37, 255, 25, 55, 201, 1, 226, 149, 254, 242, 55, 201, 1, 211, 37, - 254, 242, 55, 201, 1, 226, 149, 254, 216, 55, 201, 1, 211, 37, 254, 216, - 55, 201, 1, 226, 149, 254, 237, 55, 201, 1, 211, 37, 254, 237, 55, 201, - 1, 226, 149, 254, 255, 55, 201, 1, 211, 37, 254, 255, 55, 201, 1, 226, - 149, 254, 241, 55, 201, 1, 226, 149, 245, 12, 55, 201, 1, 211, 37, 245, - 12, 55, 201, 1, 226, 149, 253, 167, 55, 201, 1, 211, 37, 253, 167, 55, - 201, 1, 226, 149, 254, 224, 55, 201, 1, 211, 37, 254, 224, 55, 201, 1, - 226, 149, 254, 235, 55, 201, 1, 211, 37, 254, 235, 55, 201, 1, 226, 149, - 226, 233, 55, 201, 1, 211, 37, 226, 233, 55, 201, 1, 226, 149, 254, 178, - 55, 201, 1, 211, 37, 254, 178, 55, 201, 1, 226, 149, 254, 234, 55, 201, - 1, 226, 149, 245, 161, 55, 201, 1, 226, 149, 245, 159, 55, 201, 1, 226, - 149, 254, 123, 55, 201, 1, 226, 149, 254, 232, 55, 201, 1, 211, 37, 254, - 232, 55, 201, 1, 226, 149, 245, 131, 55, 201, 1, 211, 37, 245, 131, 55, - 201, 1, 226, 149, 245, 147, 55, 201, 1, 211, 37, 245, 147, 55, 201, 1, - 226, 149, 245, 118, 55, 201, 1, 211, 37, 245, 118, 55, 201, 1, 211, 37, - 254, 115, 55, 201, 1, 226, 149, 245, 138, 55, 201, 1, 211, 37, 254, 231, - 55, 201, 1, 226, 149, 245, 108, 55, 201, 1, 226, 149, 226, 175, 55, 201, - 1, 226, 149, 240, 113, 55, 201, 1, 226, 149, 245, 215, 55, 201, 1, 211, - 37, 245, 215, 55, 201, 1, 226, 149, 254, 45, 55, 201, 1, 211, 37, 254, - 45, 55, 201, 1, 226, 149, 235, 181, 55, 201, 1, 211, 37, 235, 181, 55, - 201, 1, 226, 149, 226, 159, 55, 201, 1, 211, 37, 226, 159, 55, 201, 1, - 226, 149, 254, 41, 55, 201, 1, 211, 37, 254, 41, 55, 201, 1, 226, 149, - 254, 230, 55, 201, 1, 226, 149, 253, 237, 55, 201, 1, 226, 149, 254, 228, - 55, 201, 1, 226, 149, 253, 231, 55, 201, 1, 211, 37, 253, 231, 55, 201, - 1, 226, 149, 245, 75, 55, 201, 1, 211, 37, 245, 75, 55, 201, 1, 226, 149, - 253, 206, 55, 201, 1, 211, 37, 253, 206, 55, 201, 1, 226, 149, 254, 225, - 55, 201, 1, 211, 37, 254, 225, 55, 201, 1, 226, 149, 226, 140, 55, 201, - 1, 226, 149, 252, 125, 222, 127, 21, 110, 222, 127, 21, 105, 222, 127, - 21, 158, 222, 127, 21, 161, 222, 127, 21, 189, 222, 127, 21, 194, 222, - 127, 21, 198, 222, 127, 21, 195, 222, 127, 21, 200, 222, 127, 54, 216, - 247, 222, 127, 54, 215, 73, 222, 127, 54, 216, 162, 222, 127, 54, 244, - 15, 222, 127, 54, 244, 114, 222, 127, 54, 219, 111, 222, 127, 54, 220, - 116, 222, 127, 54, 245, 184, 222, 127, 54, 228, 195, 222, 127, 54, 123, - 240, 210, 222, 127, 54, 113, 240, 210, 222, 127, 54, 134, 240, 210, 222, - 127, 54, 244, 11, 240, 210, 222, 127, 54, 244, 81, 240, 210, 222, 127, - 54, 219, 125, 240, 210, 222, 127, 54, 220, 122, 240, 210, 222, 127, 54, - 245, 193, 240, 210, 222, 127, 54, 228, 200, 240, 210, 222, 127, 244, 2, - 123, 242, 27, 222, 127, 244, 2, 123, 224, 21, 222, 127, 244, 2, 123, 216, - 168, 222, 127, 244, 2, 113, 216, 166, 118, 5, 250, 255, 118, 5, 254, 75, - 118, 5, 213, 147, 118, 5, 235, 102, 118, 5, 214, 161, 118, 1, 61, 118, 1, - 255, 73, 118, 1, 73, 118, 1, 236, 33, 118, 1, 70, 118, 1, 214, 118, 118, - 1, 149, 153, 118, 1, 149, 222, 180, 118, 1, 149, 156, 118, 1, 149, 232, - 185, 118, 1, 75, 118, 1, 254, 201, 118, 1, 76, 118, 1, 253, 192, 118, 1, - 176, 118, 1, 234, 132, 118, 1, 243, 135, 118, 1, 242, 249, 118, 1, 229, - 77, 118, 1, 251, 33, 118, 1, 250, 157, 118, 1, 235, 141, 118, 1, 235, - 114, 118, 1, 227, 165, 118, 1, 215, 156, 118, 1, 215, 144, 118, 1, 248, - 135, 118, 1, 248, 119, 118, 1, 228, 110, 118, 1, 217, 105, 118, 1, 216, - 208, 118, 1, 248, 221, 118, 1, 248, 25, 118, 1, 197, 118, 1, 190, 118, 1, - 225, 147, 118, 1, 252, 191, 118, 1, 252, 18, 118, 1, 184, 118, 1, 191, - 118, 1, 205, 118, 1, 233, 135, 118, 1, 214, 27, 118, 1, 220, 102, 118, 1, - 218, 223, 118, 1, 206, 118, 1, 162, 118, 1, 232, 184, 118, 1, 55, 36, - 232, 175, 118, 1, 55, 36, 222, 179, 118, 1, 55, 36, 228, 92, 118, 25, 5, - 255, 73, 118, 25, 5, 252, 15, 255, 73, 118, 25, 5, 73, 118, 25, 5, 236, - 33, 118, 25, 5, 70, 118, 25, 5, 214, 118, 118, 25, 5, 149, 153, 118, 25, - 5, 149, 222, 180, 118, 25, 5, 149, 156, 118, 25, 5, 149, 232, 185, 118, - 25, 5, 75, 118, 25, 5, 254, 201, 118, 25, 5, 76, 118, 25, 5, 253, 192, - 118, 213, 152, 118, 248, 178, 118, 52, 248, 178, 118, 224, 141, 247, 120, - 118, 224, 141, 52, 247, 120, 118, 224, 141, 232, 213, 118, 224, 141, 249, - 137, 130, 118, 224, 141, 232, 115, 118, 54, 110, 118, 54, 105, 118, 54, + 199, 254, 210, 181, 6, 1, 199, 76, 181, 6, 1, 199, 226, 184, 181, 6, 1, + 219, 252, 73, 181, 6, 1, 219, 252, 75, 181, 6, 1, 219, 252, 61, 181, 6, + 1, 219, 252, 254, 210, 181, 6, 1, 219, 252, 76, 181, 6, 1, 219, 252, 226, + 184, 181, 6, 1, 253, 168, 181, 6, 1, 226, 117, 181, 6, 1, 211, 195, 181, + 6, 1, 211, 44, 181, 6, 1, 242, 61, 181, 6, 1, 225, 212, 181, 6, 1, 252, + 67, 181, 6, 1, 217, 12, 181, 6, 1, 248, 78, 181, 6, 1, 250, 129, 181, 6, + 1, 235, 125, 181, 6, 1, 234, 190, 181, 6, 1, 243, 84, 181, 6, 1, 245, + 203, 181, 6, 1, 213, 250, 181, 6, 1, 245, 60, 181, 6, 1, 216, 195, 181, + 6, 1, 245, 83, 181, 6, 1, 210, 92, 181, 6, 1, 245, 76, 181, 6, 1, 210, + 73, 181, 6, 1, 245, 93, 181, 6, 1, 245, 175, 181, 6, 1, 245, 160, 181, 6, + 1, 245, 151, 181, 6, 1, 245, 139, 181, 6, 1, 226, 220, 181, 6, 1, 245, + 39, 181, 4, 1, 199, 73, 181, 4, 1, 199, 75, 181, 4, 1, 199, 61, 181, 4, + 1, 199, 254, 210, 181, 4, 1, 199, 76, 181, 4, 1, 199, 226, 184, 181, 4, + 1, 219, 252, 73, 181, 4, 1, 219, 252, 75, 181, 4, 1, 219, 252, 61, 181, + 4, 1, 219, 252, 254, 210, 181, 4, 1, 219, 252, 76, 181, 4, 1, 219, 252, + 226, 184, 181, 4, 1, 253, 168, 181, 4, 1, 226, 117, 181, 4, 1, 211, 195, + 181, 4, 1, 211, 44, 181, 4, 1, 242, 61, 181, 4, 1, 225, 212, 181, 4, 1, + 252, 67, 181, 4, 1, 217, 12, 181, 4, 1, 248, 78, 181, 4, 1, 250, 129, + 181, 4, 1, 235, 125, 181, 4, 1, 234, 190, 181, 4, 1, 243, 84, 181, 4, 1, + 245, 203, 181, 4, 1, 213, 250, 181, 4, 1, 245, 60, 181, 4, 1, 216, 195, + 181, 4, 1, 245, 83, 181, 4, 1, 210, 92, 181, 4, 1, 245, 76, 181, 4, 1, + 210, 73, 181, 4, 1, 245, 93, 181, 4, 1, 245, 175, 181, 4, 1, 245, 160, + 181, 4, 1, 245, 151, 181, 4, 1, 245, 139, 181, 4, 1, 226, 220, 181, 4, 1, + 245, 39, 220, 70, 1, 225, 210, 220, 70, 1, 216, 6, 220, 70, 1, 234, 92, + 220, 70, 1, 244, 148, 220, 70, 1, 216, 173, 220, 70, 1, 219, 59, 220, 70, + 1, 218, 15, 220, 70, 1, 250, 62, 220, 70, 1, 211, 46, 220, 70, 1, 240, + 210, 220, 70, 1, 252, 6, 220, 70, 1, 248, 90, 220, 70, 1, 243, 122, 220, + 70, 1, 213, 123, 220, 70, 1, 216, 177, 220, 70, 1, 210, 21, 220, 70, 1, + 231, 90, 220, 70, 1, 235, 50, 220, 70, 1, 211, 225, 220, 70, 1, 242, 49, + 220, 70, 1, 232, 143, 220, 70, 1, 230, 190, 220, 70, 1, 236, 41, 220, 70, + 1, 245, 202, 220, 70, 1, 253, 232, 220, 70, 1, 254, 248, 220, 70, 1, 226, + 197, 220, 70, 1, 211, 212, 220, 70, 1, 226, 131, 220, 70, 1, 254, 210, + 220, 70, 1, 222, 209, 220, 70, 1, 227, 195, 220, 70, 1, 245, 218, 220, + 70, 1, 254, 215, 220, 70, 1, 240, 112, 220, 70, 1, 214, 163, 220, 70, 1, + 226, 255, 220, 70, 1, 226, 177, 220, 70, 1, 226, 219, 220, 70, 1, 253, + 171, 220, 70, 1, 254, 20, 220, 70, 1, 226, 159, 220, 70, 1, 254, 193, + 220, 70, 1, 245, 87, 220, 70, 1, 253, 254, 220, 70, 1, 245, 228, 220, 70, + 1, 240, 119, 220, 70, 1, 211, 13, 226, 142, 1, 254, 171, 226, 142, 1, + 252, 192, 226, 142, 1, 217, 106, 226, 142, 1, 235, 142, 226, 142, 1, 211, + 165, 226, 142, 1, 234, 133, 226, 142, 1, 248, 77, 226, 142, 1, 205, 226, + 142, 1, 206, 226, 142, 1, 220, 27, 226, 142, 1, 248, 26, 226, 142, 1, + 250, 216, 226, 142, 1, 243, 136, 226, 142, 1, 244, 197, 226, 142, 1, 224, + 87, 226, 142, 1, 235, 10, 226, 142, 1, 233, 131, 226, 142, 1, 230, 201, + 226, 142, 1, 227, 179, 226, 142, 1, 212, 30, 226, 142, 1, 162, 226, 142, + 1, 191, 226, 142, 1, 61, 226, 142, 1, 75, 226, 142, 1, 73, 226, 142, 1, + 76, 226, 142, 1, 70, 226, 142, 1, 255, 74, 226, 142, 1, 245, 210, 226, + 142, 1, 226, 184, 226, 142, 21, 210, 86, 226, 142, 21, 110, 226, 142, 21, + 105, 226, 142, 21, 158, 226, 142, 21, 161, 226, 142, 21, 189, 226, 142, + 21, 194, 226, 142, 21, 198, 226, 142, 21, 195, 226, 142, 21, 200, 249, + 68, 3, 61, 249, 68, 3, 75, 249, 68, 3, 73, 249, 68, 3, 76, 249, 68, 3, + 70, 249, 68, 3, 235, 142, 249, 68, 3, 235, 69, 249, 68, 3, 176, 249, 68, + 3, 234, 183, 249, 68, 3, 234, 93, 249, 68, 3, 234, 29, 249, 68, 3, 233, + 218, 249, 68, 3, 233, 136, 249, 68, 3, 233, 59, 249, 68, 3, 232, 242, + 249, 68, 3, 232, 157, 249, 68, 3, 232, 99, 249, 68, 3, 185, 249, 68, 3, + 231, 92, 249, 68, 3, 230, 231, 249, 68, 3, 230, 162, 249, 68, 3, 230, + 103, 249, 68, 3, 197, 249, 68, 3, 229, 108, 249, 68, 3, 228, 234, 249, + 68, 3, 228, 75, 249, 68, 3, 227, 238, 249, 68, 3, 190, 249, 68, 3, 225, + 222, 249, 68, 3, 225, 109, 249, 68, 3, 225, 17, 249, 68, 3, 224, 151, + 249, 68, 3, 205, 249, 68, 3, 223, 129, 249, 68, 3, 223, 36, 249, 68, 3, + 222, 212, 249, 68, 3, 222, 141, 249, 68, 3, 206, 249, 68, 3, 221, 182, + 249, 68, 3, 219, 192, 249, 68, 3, 219, 59, 249, 68, 3, 218, 84, 249, 68, + 3, 217, 106, 249, 68, 3, 217, 23, 249, 68, 3, 216, 118, 249, 68, 3, 111, + 249, 68, 3, 215, 119, 249, 68, 3, 212, 65, 249, 68, 3, 212, 22, 249, 68, + 3, 211, 250, 249, 68, 3, 211, 227, 249, 68, 3, 211, 165, 249, 68, 3, 211, + 162, 249, 68, 3, 210, 116, 249, 68, 3, 210, 23, 236, 2, 254, 28, 1, 254, + 169, 236, 2, 254, 28, 1, 252, 26, 236, 2, 254, 28, 1, 242, 202, 236, 2, + 254, 28, 1, 248, 189, 236, 2, 254, 28, 1, 241, 239, 236, 2, 254, 28, 1, + 212, 30, 236, 2, 254, 28, 1, 210, 97, 236, 2, 254, 28, 1, 241, 196, 236, + 2, 254, 28, 1, 216, 227, 236, 2, 254, 28, 1, 210, 232, 236, 2, 254, 28, + 1, 234, 226, 236, 2, 254, 28, 1, 233, 94, 236, 2, 254, 28, 1, 231, 66, + 236, 2, 254, 28, 1, 227, 195, 236, 2, 254, 28, 1, 221, 250, 236, 2, 254, + 28, 1, 253, 163, 236, 2, 254, 28, 1, 225, 222, 236, 2, 254, 28, 1, 222, + 25, 236, 2, 254, 28, 1, 224, 35, 236, 2, 254, 28, 1, 223, 68, 236, 2, + 254, 28, 1, 220, 21, 236, 2, 254, 28, 1, 217, 37, 236, 2, 254, 28, 221, + 174, 50, 236, 2, 254, 28, 54, 110, 236, 2, 254, 28, 54, 105, 236, 2, 254, + 28, 54, 158, 236, 2, 254, 28, 54, 216, 248, 236, 2, 254, 28, 54, 215, 73, + 236, 2, 254, 28, 54, 123, 240, 211, 236, 2, 254, 28, 54, 123, 216, 148, + 236, 2, 254, 28, 54, 216, 249, 216, 148, 225, 120, 1, 254, 166, 225, 120, + 1, 252, 29, 225, 120, 1, 243, 110, 225, 120, 1, 248, 57, 225, 120, 1, + 241, 239, 225, 120, 1, 212, 37, 225, 120, 1, 210, 110, 225, 120, 1, 241, + 198, 225, 120, 1, 216, 231, 225, 120, 1, 210, 233, 225, 120, 1, 234, 251, + 225, 120, 1, 233, 100, 225, 120, 1, 231, 66, 225, 120, 1, 227, 195, 225, + 120, 1, 220, 145, 225, 120, 1, 254, 197, 225, 120, 1, 225, 222, 225, 120, + 1, 222, 26, 225, 120, 1, 224, 40, 225, 120, 1, 222, 190, 225, 120, 1, + 220, 21, 225, 120, 1, 217, 42, 225, 120, 54, 110, 225, 120, 54, 216, 248, + 225, 120, 54, 215, 73, 225, 120, 54, 123, 240, 211, 225, 120, 54, 105, + 225, 120, 54, 158, 225, 120, 211, 209, 220, 138, 232, 60, 1, 61, 232, 60, + 1, 253, 159, 232, 60, 1, 243, 203, 232, 60, 1, 249, 61, 232, 60, 1, 75, + 232, 60, 1, 214, 105, 232, 60, 1, 73, 232, 60, 1, 211, 117, 232, 60, 1, + 235, 24, 232, 60, 1, 156, 232, 60, 1, 193, 232, 60, 1, 230, 26, 232, 60, + 1, 76, 232, 60, 1, 153, 232, 60, 1, 218, 227, 232, 60, 1, 217, 153, 232, + 60, 1, 70, 232, 60, 1, 245, 7, 232, 60, 1, 224, 97, 232, 60, 1, 222, 92, + 232, 60, 1, 215, 160, 232, 60, 1, 254, 124, 232, 60, 1, 245, 151, 232, + 60, 1, 232, 63, 232, 60, 1, 228, 112, 232, 60, 1, 251, 67, 232, 60, 215, + 223, 78, 231, 49, 241, 175, 1, 61, 231, 49, 241, 175, 1, 75, 231, 49, + 241, 175, 1, 73, 231, 49, 241, 175, 1, 76, 231, 49, 241, 175, 1, 191, + 231, 49, 241, 175, 1, 212, 65, 231, 49, 241, 175, 1, 252, 192, 231, 49, + 241, 175, 1, 252, 191, 231, 49, 241, 175, 1, 190, 231, 49, 241, 175, 1, + 185, 231, 49, 241, 175, 1, 197, 231, 49, 241, 175, 1, 229, 229, 231, 49, + 241, 175, 1, 229, 108, 231, 49, 241, 175, 1, 229, 107, 231, 49, 241, 175, + 1, 205, 231, 49, 241, 175, 1, 223, 188, 231, 49, 241, 175, 1, 233, 136, + 231, 49, 241, 175, 1, 234, 133, 231, 49, 241, 175, 1, 241, 190, 231, 49, + 241, 175, 1, 206, 231, 49, 241, 175, 1, 222, 34, 231, 49, 241, 175, 1, + 221, 182, 231, 49, 241, 175, 1, 176, 231, 49, 241, 175, 1, 224, 89, 231, + 49, 241, 175, 1, 217, 106, 231, 49, 241, 175, 1, 217, 105, 231, 49, 241, + 175, 1, 217, 23, 231, 49, 241, 175, 1, 217, 22, 231, 49, 241, 175, 1, + 111, 231, 49, 241, 175, 1, 248, 222, 231, 49, 241, 175, 16, 213, 170, + 231, 49, 241, 175, 16, 213, 169, 231, 49, 249, 95, 1, 61, 231, 49, 249, + 95, 1, 75, 231, 49, 249, 95, 1, 73, 231, 49, 249, 95, 1, 76, 231, 49, + 249, 95, 1, 191, 231, 49, 249, 95, 1, 212, 65, 231, 49, 249, 95, 1, 252, + 192, 231, 49, 249, 95, 1, 190, 231, 49, 249, 95, 1, 185, 231, 49, 249, + 95, 1, 197, 231, 49, 249, 95, 1, 229, 108, 231, 49, 249, 95, 1, 205, 231, + 49, 249, 95, 1, 233, 136, 231, 49, 249, 95, 1, 234, 133, 231, 49, 249, + 95, 1, 241, 190, 231, 49, 249, 95, 1, 206, 231, 49, 249, 95, 1, 254, 24, + 206, 231, 49, 249, 95, 1, 221, 182, 231, 49, 249, 95, 1, 176, 231, 49, + 249, 95, 1, 224, 89, 231, 49, 249, 95, 1, 217, 106, 231, 49, 249, 95, 1, + 217, 23, 231, 49, 249, 95, 1, 111, 231, 49, 249, 95, 1, 248, 222, 231, + 49, 249, 95, 232, 146, 222, 218, 231, 49, 249, 95, 232, 146, 236, 7, 234, + 121, 1, 61, 234, 121, 25, 5, 73, 234, 121, 25, 5, 70, 234, 121, 25, 5, + 149, 153, 234, 121, 25, 5, 75, 234, 121, 25, 5, 76, 234, 121, 25, 233, + 24, 78, 234, 121, 5, 52, 222, 235, 51, 234, 121, 5, 254, 76, 234, 121, 5, + 213, 147, 234, 121, 1, 176, 234, 121, 1, 234, 133, 234, 121, 1, 243, 136, + 234, 121, 1, 242, 250, 234, 121, 1, 251, 34, 234, 121, 1, 250, 158, 234, + 121, 1, 235, 142, 234, 121, 1, 227, 166, 234, 121, 1, 215, 157, 234, 121, + 1, 215, 145, 234, 121, 1, 248, 136, 234, 121, 1, 248, 120, 234, 121, 1, + 228, 111, 234, 121, 1, 217, 106, 234, 121, 1, 216, 209, 234, 121, 1, 248, + 222, 234, 121, 1, 248, 26, 234, 121, 1, 197, 234, 121, 1, 190, 234, 121, + 1, 225, 148, 234, 121, 1, 252, 192, 234, 121, 1, 252, 19, 234, 121, 1, + 185, 234, 121, 1, 191, 234, 121, 1, 205, 234, 121, 1, 233, 136, 234, 121, + 1, 214, 27, 234, 121, 1, 220, 103, 234, 121, 1, 218, 224, 234, 121, 1, + 206, 234, 121, 1, 210, 116, 234, 121, 1, 162, 234, 121, 1, 234, 47, 234, + 121, 1, 215, 125, 234, 121, 5, 252, 142, 48, 234, 121, 5, 250, 222, 234, + 121, 5, 59, 51, 234, 121, 213, 152, 234, 121, 21, 110, 234, 121, 21, 105, + 234, 121, 21, 158, 234, 121, 21, 161, 234, 121, 54, 216, 248, 234, 121, + 54, 215, 73, 234, 121, 54, 123, 240, 211, 234, 121, 54, 123, 216, 148, + 234, 121, 224, 142, 247, 121, 234, 121, 224, 142, 4, 250, 36, 234, 121, + 224, 142, 250, 36, 234, 121, 224, 142, 249, 138, 130, 234, 121, 224, 142, + 231, 181, 234, 121, 224, 142, 232, 116, 234, 121, 224, 142, 248, 179, + 234, 121, 224, 142, 52, 248, 179, 234, 121, 224, 142, 232, 208, 55, 219, + 29, 254, 39, 1, 241, 239, 55, 219, 29, 254, 39, 1, 233, 94, 55, 219, 29, + 254, 39, 1, 241, 196, 55, 219, 29, 254, 39, 1, 231, 66, 55, 219, 29, 254, + 39, 1, 224, 35, 55, 219, 29, 254, 39, 1, 212, 30, 55, 219, 29, 254, 39, + 1, 220, 21, 55, 219, 29, 254, 39, 1, 223, 68, 55, 219, 29, 254, 39, 1, + 252, 26, 55, 219, 29, 254, 39, 1, 217, 37, 55, 219, 29, 254, 39, 1, 221, + 227, 55, 219, 29, 254, 39, 1, 234, 226, 55, 219, 29, 254, 39, 1, 227, + 195, 55, 219, 29, 254, 39, 1, 234, 117, 55, 219, 29, 254, 39, 1, 222, 25, + 55, 219, 29, 254, 39, 1, 221, 250, 55, 219, 29, 254, 39, 1, 244, 155, 55, + 219, 29, 254, 39, 1, 254, 171, 55, 219, 29, 254, 39, 1, 253, 162, 55, + 219, 29, 254, 39, 1, 248, 23, 55, 219, 29, 254, 39, 1, 242, 202, 55, 219, + 29, 254, 39, 1, 248, 189, 55, 219, 29, 254, 39, 1, 242, 239, 55, 219, 29, + 254, 39, 1, 216, 227, 55, 219, 29, 254, 39, 1, 210, 96, 55, 219, 29, 254, + 39, 1, 248, 20, 55, 219, 29, 254, 39, 1, 210, 232, 55, 219, 29, 254, 39, + 1, 216, 198, 55, 219, 29, 254, 39, 1, 216, 179, 55, 219, 29, 254, 39, 54, + 110, 55, 219, 29, 254, 39, 54, 244, 115, 55, 219, 29, 254, 39, 132, 235, + 239, 253, 173, 1, 61, 253, 173, 1, 255, 74, 253, 173, 1, 254, 74, 253, + 173, 1, 255, 33, 253, 173, 1, 254, 124, 253, 173, 1, 255, 34, 253, 173, + 1, 254, 244, 253, 173, 1, 254, 240, 253, 173, 1, 75, 253, 173, 1, 245, + 210, 253, 173, 1, 76, 253, 173, 1, 226, 184, 253, 173, 1, 73, 253, 173, + 1, 236, 34, 253, 173, 1, 70, 253, 173, 1, 214, 118, 253, 173, 1, 234, + 183, 253, 173, 1, 211, 162, 253, 173, 1, 211, 128, 253, 173, 1, 211, 137, + 253, 173, 1, 243, 63, 253, 173, 1, 243, 25, 253, 173, 1, 242, 237, 253, + 173, 1, 250, 191, 253, 173, 1, 235, 127, 253, 173, 1, 217, 23, 253, 173, + 1, 216, 196, 253, 173, 1, 248, 91, 253, 173, 1, 248, 18, 253, 173, 1, + 215, 152, 253, 173, 1, 225, 222, 253, 173, 1, 244, 155, 253, 173, 1, 252, + 76, 253, 173, 1, 252, 15, 253, 173, 1, 229, 65, 253, 173, 1, 228, 240, + 253, 173, 1, 228, 241, 253, 173, 1, 229, 108, 253, 173, 1, 227, 157, 253, + 173, 1, 228, 106, 253, 173, 1, 231, 92, 253, 173, 1, 241, 117, 253, 173, + 1, 210, 166, 253, 173, 1, 211, 47, 253, 173, 1, 213, 255, 253, 173, 1, + 223, 129, 253, 173, 1, 233, 59, 253, 173, 1, 221, 182, 253, 173, 1, 210, + 94, 253, 173, 1, 220, 64, 253, 173, 1, 210, 74, 253, 173, 1, 219, 199, + 253, 173, 1, 218, 194, 253, 173, 1, 241, 239, 253, 173, 255, 22, 78, 216, + 80, 113, 170, 117, 123, 59, 224, 141, 4, 113, 170, 117, 123, 59, 224, + 141, 233, 86, 113, 170, 117, 123, 59, 224, 141, 233, 86, 123, 59, 117, + 113, 170, 224, 141, 233, 86, 113, 222, 233, 117, 123, 222, 235, 224, 141, + 233, 86, 123, 222, 235, 117, 113, 222, 233, 224, 141, 235, 219, 225, 255, + 1, 254, 169, 235, 219, 225, 255, 1, 252, 26, 235, 219, 225, 255, 1, 242, + 202, 235, 219, 225, 255, 1, 248, 189, 235, 219, 225, 255, 1, 241, 239, + 235, 219, 225, 255, 1, 212, 30, 235, 219, 225, 255, 1, 210, 97, 235, 219, + 225, 255, 1, 241, 196, 235, 219, 225, 255, 1, 216, 227, 235, 219, 225, + 255, 1, 210, 232, 235, 219, 225, 255, 1, 234, 226, 235, 219, 225, 255, 1, + 233, 94, 235, 219, 225, 255, 1, 231, 66, 235, 219, 225, 255, 1, 227, 195, + 235, 219, 225, 255, 1, 221, 250, 235, 219, 225, 255, 1, 253, 163, 235, + 219, 225, 255, 1, 225, 222, 235, 219, 225, 255, 1, 222, 25, 235, 219, + 225, 255, 1, 224, 35, 235, 219, 225, 255, 1, 223, 68, 235, 219, 225, 255, + 1, 220, 21, 235, 219, 225, 255, 1, 217, 37, 235, 219, 225, 255, 54, 110, + 235, 219, 225, 255, 54, 105, 235, 219, 225, 255, 54, 158, 235, 219, 225, + 255, 54, 161, 235, 219, 225, 255, 54, 216, 248, 235, 219, 225, 255, 54, + 215, 73, 235, 219, 225, 255, 54, 123, 240, 211, 235, 219, 225, 255, 54, + 123, 216, 148, 235, 219, 226, 73, 1, 254, 169, 235, 219, 226, 73, 1, 252, + 26, 235, 219, 226, 73, 1, 242, 202, 235, 219, 226, 73, 1, 248, 189, 235, + 219, 226, 73, 1, 241, 239, 235, 219, 226, 73, 1, 212, 29, 235, 219, 226, + 73, 1, 210, 97, 235, 219, 226, 73, 1, 241, 196, 235, 219, 226, 73, 1, + 216, 227, 235, 219, 226, 73, 1, 210, 232, 235, 219, 226, 73, 1, 234, 226, + 235, 219, 226, 73, 1, 233, 94, 235, 219, 226, 73, 1, 231, 65, 235, 219, + 226, 73, 1, 227, 195, 235, 219, 226, 73, 1, 221, 250, 235, 219, 226, 73, + 1, 225, 222, 235, 219, 226, 73, 1, 222, 25, 235, 219, 226, 73, 1, 220, + 21, 235, 219, 226, 73, 1, 217, 37, 235, 219, 226, 73, 54, 110, 235, 219, + 226, 73, 54, 105, 235, 219, 226, 73, 54, 158, 235, 219, 226, 73, 54, 161, + 235, 219, 226, 73, 54, 216, 248, 235, 219, 226, 73, 54, 215, 73, 235, + 219, 226, 73, 54, 123, 240, 211, 235, 219, 226, 73, 54, 123, 216, 148, + 55, 201, 1, 226, 150, 61, 55, 201, 1, 211, 37, 61, 55, 201, 1, 211, 37, + 254, 244, 55, 201, 1, 226, 150, 73, 55, 201, 1, 211, 37, 73, 55, 201, 1, + 211, 37, 75, 55, 201, 1, 226, 150, 76, 55, 201, 1, 226, 150, 226, 235, + 55, 201, 1, 211, 37, 226, 235, 55, 201, 1, 226, 150, 255, 26, 55, 201, 1, + 211, 37, 255, 26, 55, 201, 1, 226, 150, 254, 243, 55, 201, 1, 211, 37, + 254, 243, 55, 201, 1, 226, 150, 254, 217, 55, 201, 1, 211, 37, 254, 217, + 55, 201, 1, 226, 150, 254, 238, 55, 201, 1, 211, 37, 254, 238, 55, 201, + 1, 226, 150, 255, 0, 55, 201, 1, 211, 37, 255, 0, 55, 201, 1, 226, 150, + 254, 242, 55, 201, 1, 226, 150, 245, 13, 55, 201, 1, 211, 37, 245, 13, + 55, 201, 1, 226, 150, 253, 168, 55, 201, 1, 211, 37, 253, 168, 55, 201, + 1, 226, 150, 254, 225, 55, 201, 1, 211, 37, 254, 225, 55, 201, 1, 226, + 150, 254, 236, 55, 201, 1, 211, 37, 254, 236, 55, 201, 1, 226, 150, 226, + 234, 55, 201, 1, 211, 37, 226, 234, 55, 201, 1, 226, 150, 254, 179, 55, + 201, 1, 211, 37, 254, 179, 55, 201, 1, 226, 150, 254, 235, 55, 201, 1, + 226, 150, 245, 162, 55, 201, 1, 226, 150, 245, 160, 55, 201, 1, 226, 150, + 254, 124, 55, 201, 1, 226, 150, 254, 233, 55, 201, 1, 211, 37, 254, 233, + 55, 201, 1, 226, 150, 245, 132, 55, 201, 1, 211, 37, 245, 132, 55, 201, + 1, 226, 150, 245, 148, 55, 201, 1, 211, 37, 245, 148, 55, 201, 1, 226, + 150, 245, 119, 55, 201, 1, 211, 37, 245, 119, 55, 201, 1, 211, 37, 254, + 116, 55, 201, 1, 226, 150, 245, 139, 55, 201, 1, 211, 37, 254, 232, 55, + 201, 1, 226, 150, 245, 109, 55, 201, 1, 226, 150, 226, 176, 55, 201, 1, + 226, 150, 240, 114, 55, 201, 1, 226, 150, 245, 216, 55, 201, 1, 211, 37, + 245, 216, 55, 201, 1, 226, 150, 254, 46, 55, 201, 1, 211, 37, 254, 46, + 55, 201, 1, 226, 150, 235, 182, 55, 201, 1, 211, 37, 235, 182, 55, 201, + 1, 226, 150, 226, 160, 55, 201, 1, 211, 37, 226, 160, 55, 201, 1, 226, + 150, 254, 42, 55, 201, 1, 211, 37, 254, 42, 55, 201, 1, 226, 150, 254, + 231, 55, 201, 1, 226, 150, 253, 238, 55, 201, 1, 226, 150, 254, 229, 55, + 201, 1, 226, 150, 253, 232, 55, 201, 1, 211, 37, 253, 232, 55, 201, 1, + 226, 150, 245, 76, 55, 201, 1, 211, 37, 245, 76, 55, 201, 1, 226, 150, + 253, 207, 55, 201, 1, 211, 37, 253, 207, 55, 201, 1, 226, 150, 254, 226, + 55, 201, 1, 211, 37, 254, 226, 55, 201, 1, 226, 150, 226, 141, 55, 201, + 1, 226, 150, 252, 126, 222, 128, 21, 110, 222, 128, 21, 105, 222, 128, + 21, 158, 222, 128, 21, 161, 222, 128, 21, 189, 222, 128, 21, 194, 222, + 128, 21, 198, 222, 128, 21, 195, 222, 128, 21, 200, 222, 128, 54, 216, + 248, 222, 128, 54, 215, 73, 222, 128, 54, 216, 163, 222, 128, 54, 244, + 16, 222, 128, 54, 244, 115, 222, 128, 54, 219, 112, 222, 128, 54, 220, + 117, 222, 128, 54, 245, 185, 222, 128, 54, 228, 196, 222, 128, 54, 123, + 240, 211, 222, 128, 54, 113, 240, 211, 222, 128, 54, 134, 240, 211, 222, + 128, 54, 244, 12, 240, 211, 222, 128, 54, 244, 82, 240, 211, 222, 128, + 54, 219, 126, 240, 211, 222, 128, 54, 220, 123, 240, 211, 222, 128, 54, + 245, 194, 240, 211, 222, 128, 54, 228, 201, 240, 211, 222, 128, 244, 3, + 123, 242, 28, 222, 128, 244, 3, 123, 224, 22, 222, 128, 244, 3, 123, 216, + 169, 222, 128, 244, 3, 113, 216, 167, 118, 5, 251, 0, 118, 5, 254, 76, + 118, 5, 213, 147, 118, 5, 235, 103, 118, 5, 214, 161, 118, 1, 61, 118, 1, + 255, 74, 118, 1, 73, 118, 1, 236, 34, 118, 1, 70, 118, 1, 214, 118, 118, + 1, 149, 153, 118, 1, 149, 222, 181, 118, 1, 149, 156, 118, 1, 149, 232, + 186, 118, 1, 75, 118, 1, 254, 202, 118, 1, 76, 118, 1, 253, 193, 118, 1, + 176, 118, 1, 234, 133, 118, 1, 243, 136, 118, 1, 242, 250, 118, 1, 229, + 78, 118, 1, 251, 34, 118, 1, 250, 158, 118, 1, 235, 142, 118, 1, 235, + 115, 118, 1, 227, 166, 118, 1, 215, 157, 118, 1, 215, 145, 118, 1, 248, + 136, 118, 1, 248, 120, 118, 1, 228, 111, 118, 1, 217, 106, 118, 1, 216, + 209, 118, 1, 248, 222, 118, 1, 248, 26, 118, 1, 197, 118, 1, 190, 118, 1, + 225, 148, 118, 1, 252, 192, 118, 1, 252, 19, 118, 1, 185, 118, 1, 191, + 118, 1, 205, 118, 1, 233, 136, 118, 1, 214, 27, 118, 1, 220, 103, 118, 1, + 218, 224, 118, 1, 206, 118, 1, 162, 118, 1, 232, 185, 118, 1, 55, 36, + 232, 176, 118, 1, 55, 36, 222, 180, 118, 1, 55, 36, 228, 93, 118, 25, 5, + 255, 74, 118, 25, 5, 252, 16, 255, 74, 118, 25, 5, 73, 118, 25, 5, 236, + 34, 118, 25, 5, 70, 118, 25, 5, 214, 118, 118, 25, 5, 149, 153, 118, 25, + 5, 149, 222, 181, 118, 25, 5, 149, 156, 118, 25, 5, 149, 232, 186, 118, + 25, 5, 75, 118, 25, 5, 254, 202, 118, 25, 5, 76, 118, 25, 5, 253, 193, + 118, 213, 152, 118, 248, 179, 118, 52, 248, 179, 118, 224, 142, 247, 121, + 118, 224, 142, 52, 247, 121, 118, 224, 142, 232, 214, 118, 224, 142, 249, + 138, 130, 118, 224, 142, 232, 116, 118, 54, 110, 118, 54, 105, 118, 54, 158, 118, 54, 161, 118, 54, 189, 118, 54, 194, 118, 54, 198, 118, 54, - 195, 118, 54, 200, 118, 54, 216, 247, 118, 54, 215, 73, 118, 54, 216, - 162, 118, 54, 244, 15, 118, 54, 244, 114, 118, 54, 219, 111, 118, 54, - 220, 116, 118, 54, 245, 184, 118, 54, 228, 195, 118, 54, 123, 240, 210, - 118, 54, 123, 216, 147, 118, 21, 210, 86, 118, 21, 110, 118, 21, 105, + 195, 118, 54, 200, 118, 54, 216, 248, 118, 54, 215, 73, 118, 54, 216, + 163, 118, 54, 244, 16, 118, 54, 244, 115, 118, 54, 219, 112, 118, 54, + 220, 117, 118, 54, 245, 185, 118, 54, 228, 196, 118, 54, 123, 240, 211, + 118, 54, 123, 216, 148, 118, 21, 210, 86, 118, 21, 110, 118, 21, 105, 118, 21, 158, 118, 21, 161, 118, 21, 189, 118, 21, 194, 118, 21, 198, - 118, 21, 195, 118, 21, 200, 234, 244, 5, 250, 255, 234, 244, 5, 254, 75, - 234, 244, 5, 213, 147, 234, 244, 1, 61, 234, 244, 1, 255, 73, 234, 244, - 1, 73, 234, 244, 1, 236, 33, 234, 244, 1, 70, 234, 244, 1, 214, 118, 234, - 244, 1, 75, 234, 244, 1, 254, 201, 234, 244, 1, 76, 234, 244, 1, 253, - 192, 234, 244, 1, 176, 234, 244, 1, 234, 132, 234, 244, 1, 243, 135, 234, - 244, 1, 242, 249, 234, 244, 1, 229, 77, 234, 244, 1, 251, 33, 234, 244, - 1, 250, 157, 234, 244, 1, 235, 141, 234, 244, 1, 235, 114, 234, 244, 1, - 227, 165, 234, 244, 1, 215, 156, 234, 244, 1, 215, 144, 234, 244, 1, 248, - 135, 234, 244, 1, 248, 124, 234, 244, 1, 248, 119, 234, 244, 1, 223, 39, - 234, 244, 1, 228, 110, 234, 244, 1, 217, 105, 234, 244, 1, 216, 208, 234, - 244, 1, 248, 221, 234, 244, 1, 248, 25, 234, 244, 1, 197, 234, 244, 1, - 190, 234, 244, 1, 225, 147, 234, 244, 1, 252, 191, 234, 244, 1, 252, 18, - 234, 244, 1, 184, 234, 244, 1, 191, 234, 244, 1, 205, 234, 244, 1, 233, - 135, 234, 244, 1, 214, 27, 234, 244, 1, 220, 102, 234, 244, 1, 218, 223, - 234, 244, 1, 206, 234, 244, 1, 162, 234, 244, 25, 5, 255, 73, 234, 244, - 25, 5, 73, 234, 244, 25, 5, 236, 33, 234, 244, 25, 5, 70, 234, 244, 25, - 5, 214, 118, 234, 244, 25, 5, 75, 234, 244, 25, 5, 254, 201, 234, 244, - 25, 5, 76, 234, 244, 25, 5, 253, 192, 234, 244, 5, 213, 152, 234, 244, 5, - 227, 205, 234, 244, 255, 21, 50, 234, 244, 245, 121, 50, 234, 244, 54, - 50, 234, 244, 221, 173, 78, 234, 244, 52, 221, 173, 78, 234, 244, 248, - 178, 234, 244, 52, 248, 178, 219, 36, 219, 44, 1, 222, 18, 219, 36, 219, - 44, 1, 217, 80, 219, 36, 219, 44, 1, 252, 168, 219, 36, 219, 44, 1, 251, - 23, 219, 36, 219, 44, 1, 248, 203, 219, 36, 219, 44, 1, 243, 120, 219, - 36, 219, 44, 1, 231, 210, 219, 36, 219, 44, 1, 229, 74, 219, 36, 219, 44, - 1, 233, 112, 219, 36, 219, 44, 1, 229, 213, 219, 36, 219, 44, 1, 214, 24, - 219, 36, 219, 44, 1, 226, 73, 219, 36, 219, 44, 1, 211, 84, 219, 36, 219, - 44, 1, 223, 168, 219, 36, 219, 44, 1, 242, 37, 219, 36, 219, 44, 1, 234, - 248, 219, 36, 219, 44, 1, 235, 136, 219, 36, 219, 44, 1, 227, 162, 219, - 36, 219, 44, 1, 254, 209, 219, 36, 219, 44, 1, 245, 207, 219, 36, 219, - 44, 1, 236, 34, 219, 36, 219, 44, 1, 214, 208, 219, 36, 219, 44, 1, 226, - 222, 219, 36, 219, 44, 1, 245, 197, 219, 36, 219, 44, 1, 231, 223, 219, - 36, 219, 44, 21, 210, 86, 219, 36, 219, 44, 21, 110, 219, 36, 219, 44, - 21, 105, 219, 36, 219, 44, 21, 158, 219, 36, 219, 44, 21, 161, 219, 36, - 219, 44, 21, 189, 219, 36, 219, 44, 21, 194, 219, 36, 219, 44, 21, 198, - 219, 36, 219, 44, 21, 195, 219, 36, 219, 44, 21, 200, 250, 151, 5, 250, - 255, 250, 151, 5, 254, 75, 250, 151, 5, 213, 147, 250, 151, 1, 255, 73, - 250, 151, 1, 73, 250, 151, 1, 70, 250, 151, 1, 75, 250, 151, 1, 235, 10, - 250, 151, 1, 234, 131, 250, 151, 1, 243, 132, 250, 151, 1, 242, 248, 250, - 151, 1, 229, 76, 250, 151, 1, 251, 32, 250, 151, 1, 250, 156, 250, 151, - 1, 235, 140, 250, 151, 1, 235, 113, 250, 151, 1, 227, 164, 250, 151, 1, - 215, 155, 250, 151, 1, 215, 143, 250, 151, 1, 248, 134, 250, 151, 1, 248, - 118, 250, 151, 1, 228, 109, 250, 151, 1, 217, 101, 250, 151, 1, 216, 207, - 250, 151, 1, 248, 220, 250, 151, 1, 248, 24, 250, 151, 1, 229, 225, 250, - 151, 1, 226, 89, 250, 151, 1, 225, 146, 250, 151, 1, 252, 189, 250, 151, - 1, 252, 17, 250, 151, 1, 231, 237, 250, 151, 1, 210, 167, 250, 151, 1, - 211, 103, 250, 151, 1, 223, 184, 250, 151, 1, 233, 134, 250, 151, 1, 212, - 64, 250, 151, 1, 222, 31, 250, 151, 1, 242, 46, 250, 151, 25, 5, 61, 250, - 151, 25, 5, 73, 250, 151, 25, 5, 236, 33, 250, 151, 25, 5, 70, 250, 151, - 25, 5, 214, 118, 250, 151, 25, 5, 75, 250, 151, 25, 5, 254, 201, 250, - 151, 25, 5, 76, 250, 151, 25, 5, 253, 192, 250, 151, 25, 5, 226, 219, - 250, 151, 144, 78, 250, 151, 253, 193, 78, 250, 151, 213, 152, 250, 151, - 231, 235, 250, 151, 21, 210, 86, 250, 151, 21, 110, 250, 151, 21, 105, - 250, 151, 21, 158, 250, 151, 21, 161, 250, 151, 21, 189, 250, 151, 21, - 194, 250, 151, 21, 198, 250, 151, 21, 195, 250, 151, 21, 200, 250, 151, - 221, 173, 78, 250, 151, 248, 178, 250, 151, 52, 248, 178, 250, 151, 224, - 13, 78, 174, 5, 250, 255, 174, 5, 254, 75, 174, 5, 213, 147, 174, 1, 61, - 174, 1, 255, 73, 174, 1, 73, 174, 1, 236, 33, 174, 1, 70, 174, 1, 214, - 118, 174, 1, 149, 153, 174, 1, 149, 222, 180, 174, 1, 149, 156, 174, 1, - 149, 232, 185, 174, 1, 75, 174, 1, 254, 201, 174, 1, 76, 174, 1, 253, - 192, 174, 1, 176, 174, 1, 234, 132, 174, 1, 243, 135, 174, 1, 242, 249, - 174, 1, 229, 77, 174, 1, 251, 33, 174, 1, 250, 157, 174, 1, 235, 141, - 174, 1, 235, 114, 174, 1, 227, 165, 174, 1, 215, 156, 174, 1, 215, 144, - 174, 1, 248, 135, 174, 1, 248, 119, 174, 1, 228, 110, 174, 1, 217, 105, - 174, 1, 216, 208, 174, 1, 248, 221, 174, 1, 248, 25, 174, 1, 197, 174, 1, - 190, 174, 1, 225, 147, 174, 1, 252, 191, 174, 1, 252, 18, 174, 1, 184, - 174, 1, 191, 174, 1, 205, 174, 1, 233, 135, 174, 1, 232, 184, 174, 1, - 214, 27, 174, 1, 220, 102, 174, 1, 218, 223, 174, 1, 206, 174, 1, 162, - 174, 25, 5, 255, 73, 174, 25, 5, 73, 174, 25, 5, 236, 33, 174, 25, 5, 70, - 174, 25, 5, 214, 118, 174, 25, 5, 149, 153, 174, 25, 5, 149, 222, 180, - 174, 25, 5, 149, 156, 174, 25, 5, 149, 232, 185, 174, 25, 5, 75, 174, 25, - 5, 254, 201, 174, 25, 5, 76, 174, 25, 5, 253, 192, 174, 5, 213, 152, 174, - 5, 253, 175, 174, 5, 235, 102, 174, 5, 214, 161, 174, 226, 204, 174, 248, - 178, 174, 52, 248, 178, 174, 255, 21, 50, 174, 220, 137, 174, 21, 210, + 118, 21, 195, 118, 21, 200, 234, 245, 5, 251, 0, 234, 245, 5, 254, 76, + 234, 245, 5, 213, 147, 234, 245, 1, 61, 234, 245, 1, 255, 74, 234, 245, + 1, 73, 234, 245, 1, 236, 34, 234, 245, 1, 70, 234, 245, 1, 214, 118, 234, + 245, 1, 75, 234, 245, 1, 254, 202, 234, 245, 1, 76, 234, 245, 1, 253, + 193, 234, 245, 1, 176, 234, 245, 1, 234, 133, 234, 245, 1, 243, 136, 234, + 245, 1, 242, 250, 234, 245, 1, 229, 78, 234, 245, 1, 251, 34, 234, 245, + 1, 250, 158, 234, 245, 1, 235, 142, 234, 245, 1, 235, 115, 234, 245, 1, + 227, 166, 234, 245, 1, 215, 157, 234, 245, 1, 215, 145, 234, 245, 1, 248, + 136, 234, 245, 1, 248, 125, 234, 245, 1, 248, 120, 234, 245, 1, 223, 40, + 234, 245, 1, 228, 111, 234, 245, 1, 217, 106, 234, 245, 1, 216, 209, 234, + 245, 1, 248, 222, 234, 245, 1, 248, 26, 234, 245, 1, 197, 234, 245, 1, + 190, 234, 245, 1, 225, 148, 234, 245, 1, 252, 192, 234, 245, 1, 252, 19, + 234, 245, 1, 185, 234, 245, 1, 191, 234, 245, 1, 205, 234, 245, 1, 233, + 136, 234, 245, 1, 214, 27, 234, 245, 1, 220, 103, 234, 245, 1, 218, 224, + 234, 245, 1, 206, 234, 245, 1, 162, 234, 245, 25, 5, 255, 74, 234, 245, + 25, 5, 73, 234, 245, 25, 5, 236, 34, 234, 245, 25, 5, 70, 234, 245, 25, + 5, 214, 118, 234, 245, 25, 5, 75, 234, 245, 25, 5, 254, 202, 234, 245, + 25, 5, 76, 234, 245, 25, 5, 253, 193, 234, 245, 5, 213, 152, 234, 245, 5, + 227, 206, 234, 245, 255, 22, 50, 234, 245, 245, 122, 50, 234, 245, 54, + 50, 234, 245, 221, 174, 78, 234, 245, 52, 221, 174, 78, 234, 245, 248, + 179, 234, 245, 52, 248, 179, 219, 37, 219, 45, 1, 222, 19, 219, 37, 219, + 45, 1, 217, 81, 219, 37, 219, 45, 1, 252, 169, 219, 37, 219, 45, 1, 251, + 24, 219, 37, 219, 45, 1, 248, 204, 219, 37, 219, 45, 1, 243, 121, 219, + 37, 219, 45, 1, 231, 211, 219, 37, 219, 45, 1, 229, 75, 219, 37, 219, 45, + 1, 233, 113, 219, 37, 219, 45, 1, 229, 214, 219, 37, 219, 45, 1, 214, 24, + 219, 37, 219, 45, 1, 226, 74, 219, 37, 219, 45, 1, 211, 84, 219, 37, 219, + 45, 1, 223, 169, 219, 37, 219, 45, 1, 242, 38, 219, 37, 219, 45, 1, 234, + 249, 219, 37, 219, 45, 1, 235, 137, 219, 37, 219, 45, 1, 227, 163, 219, + 37, 219, 45, 1, 254, 210, 219, 37, 219, 45, 1, 245, 208, 219, 37, 219, + 45, 1, 236, 35, 219, 37, 219, 45, 1, 214, 208, 219, 37, 219, 45, 1, 226, + 223, 219, 37, 219, 45, 1, 245, 198, 219, 37, 219, 45, 1, 231, 224, 219, + 37, 219, 45, 21, 210, 86, 219, 37, 219, 45, 21, 110, 219, 37, 219, 45, + 21, 105, 219, 37, 219, 45, 21, 158, 219, 37, 219, 45, 21, 161, 219, 37, + 219, 45, 21, 189, 219, 37, 219, 45, 21, 194, 219, 37, 219, 45, 21, 198, + 219, 37, 219, 45, 21, 195, 219, 37, 219, 45, 21, 200, 250, 152, 5, 251, + 0, 250, 152, 5, 254, 76, 250, 152, 5, 213, 147, 250, 152, 1, 255, 74, + 250, 152, 1, 73, 250, 152, 1, 70, 250, 152, 1, 75, 250, 152, 1, 235, 11, + 250, 152, 1, 234, 132, 250, 152, 1, 243, 133, 250, 152, 1, 242, 249, 250, + 152, 1, 229, 77, 250, 152, 1, 251, 33, 250, 152, 1, 250, 157, 250, 152, + 1, 235, 141, 250, 152, 1, 235, 114, 250, 152, 1, 227, 165, 250, 152, 1, + 215, 156, 250, 152, 1, 215, 144, 250, 152, 1, 248, 135, 250, 152, 1, 248, + 119, 250, 152, 1, 228, 110, 250, 152, 1, 217, 102, 250, 152, 1, 216, 208, + 250, 152, 1, 248, 221, 250, 152, 1, 248, 25, 250, 152, 1, 229, 226, 250, + 152, 1, 226, 90, 250, 152, 1, 225, 147, 250, 152, 1, 252, 190, 250, 152, + 1, 252, 18, 250, 152, 1, 231, 238, 250, 152, 1, 210, 167, 250, 152, 1, + 211, 103, 250, 152, 1, 223, 185, 250, 152, 1, 233, 135, 250, 152, 1, 212, + 64, 250, 152, 1, 222, 32, 250, 152, 1, 242, 47, 250, 152, 25, 5, 61, 250, + 152, 25, 5, 73, 250, 152, 25, 5, 236, 34, 250, 152, 25, 5, 70, 250, 152, + 25, 5, 214, 118, 250, 152, 25, 5, 75, 250, 152, 25, 5, 254, 202, 250, + 152, 25, 5, 76, 250, 152, 25, 5, 253, 193, 250, 152, 25, 5, 226, 220, + 250, 152, 144, 78, 250, 152, 253, 194, 78, 250, 152, 213, 152, 250, 152, + 231, 236, 250, 152, 21, 210, 86, 250, 152, 21, 110, 250, 152, 21, 105, + 250, 152, 21, 158, 250, 152, 21, 161, 250, 152, 21, 189, 250, 152, 21, + 194, 250, 152, 21, 198, 250, 152, 21, 195, 250, 152, 21, 200, 250, 152, + 221, 174, 78, 250, 152, 248, 179, 250, 152, 52, 248, 179, 250, 152, 224, + 14, 78, 174, 5, 251, 0, 174, 5, 254, 76, 174, 5, 213, 147, 174, 1, 61, + 174, 1, 255, 74, 174, 1, 73, 174, 1, 236, 34, 174, 1, 70, 174, 1, 214, + 118, 174, 1, 149, 153, 174, 1, 149, 222, 181, 174, 1, 149, 156, 174, 1, + 149, 232, 186, 174, 1, 75, 174, 1, 254, 202, 174, 1, 76, 174, 1, 253, + 193, 174, 1, 176, 174, 1, 234, 133, 174, 1, 243, 136, 174, 1, 242, 250, + 174, 1, 229, 78, 174, 1, 251, 34, 174, 1, 250, 158, 174, 1, 235, 142, + 174, 1, 235, 115, 174, 1, 227, 166, 174, 1, 215, 157, 174, 1, 215, 145, + 174, 1, 248, 136, 174, 1, 248, 120, 174, 1, 228, 111, 174, 1, 217, 106, + 174, 1, 216, 209, 174, 1, 248, 222, 174, 1, 248, 26, 174, 1, 197, 174, 1, + 190, 174, 1, 225, 148, 174, 1, 252, 192, 174, 1, 252, 19, 174, 1, 185, + 174, 1, 191, 174, 1, 205, 174, 1, 233, 136, 174, 1, 232, 185, 174, 1, + 214, 27, 174, 1, 220, 103, 174, 1, 218, 224, 174, 1, 206, 174, 1, 162, + 174, 25, 5, 255, 74, 174, 25, 5, 73, 174, 25, 5, 236, 34, 174, 25, 5, 70, + 174, 25, 5, 214, 118, 174, 25, 5, 149, 153, 174, 25, 5, 149, 222, 181, + 174, 25, 5, 149, 156, 174, 25, 5, 149, 232, 186, 174, 25, 5, 75, 174, 25, + 5, 254, 202, 174, 25, 5, 76, 174, 25, 5, 253, 193, 174, 5, 213, 152, 174, + 5, 253, 176, 174, 5, 235, 103, 174, 5, 214, 161, 174, 226, 205, 174, 248, + 179, 174, 52, 248, 179, 174, 255, 22, 50, 174, 220, 138, 174, 21, 210, 86, 174, 21, 110, 174, 21, 105, 174, 21, 158, 174, 21, 161, 174, 21, 189, - 174, 21, 194, 174, 21, 198, 174, 21, 195, 174, 21, 200, 217, 69, 1, 61, - 217, 69, 1, 255, 73, 217, 69, 1, 73, 217, 69, 1, 236, 33, 217, 69, 1, 70, - 217, 69, 1, 214, 118, 217, 69, 1, 75, 217, 69, 1, 254, 201, 217, 69, 1, - 76, 217, 69, 1, 253, 192, 217, 69, 1, 176, 217, 69, 1, 234, 132, 217, 69, - 1, 243, 135, 217, 69, 1, 242, 249, 217, 69, 1, 229, 77, 217, 69, 1, 251, - 33, 217, 69, 1, 250, 157, 217, 69, 1, 235, 141, 217, 69, 1, 235, 114, - 217, 69, 1, 227, 165, 217, 69, 1, 215, 156, 217, 69, 1, 215, 144, 217, - 69, 1, 248, 135, 217, 69, 1, 248, 119, 217, 69, 1, 228, 110, 217, 69, 1, - 217, 105, 217, 69, 1, 216, 208, 217, 69, 1, 248, 221, 217, 69, 1, 248, - 25, 217, 69, 1, 197, 217, 69, 1, 190, 217, 69, 1, 225, 147, 217, 69, 1, - 252, 191, 217, 69, 1, 252, 18, 217, 69, 1, 184, 217, 69, 1, 191, 217, 69, - 1, 205, 217, 69, 1, 233, 135, 217, 69, 1, 214, 27, 217, 69, 1, 220, 102, - 217, 69, 1, 206, 217, 69, 1, 162, 217, 69, 1, 222, 179, 217, 69, 5, 254, - 75, 217, 69, 5, 213, 147, 217, 69, 25, 5, 255, 73, 217, 69, 25, 5, 73, - 217, 69, 25, 5, 236, 33, 217, 69, 25, 5, 70, 217, 69, 25, 5, 214, 118, - 217, 69, 25, 5, 75, 217, 69, 25, 5, 254, 201, 217, 69, 25, 5, 76, 217, - 69, 25, 5, 253, 192, 217, 69, 5, 213, 152, 217, 69, 5, 227, 205, 217, 69, - 21, 210, 86, 217, 69, 21, 110, 217, 69, 21, 105, 217, 69, 21, 158, 217, - 69, 21, 161, 217, 69, 21, 189, 217, 69, 21, 194, 217, 69, 21, 198, 217, - 69, 21, 195, 217, 69, 21, 200, 15, 5, 61, 15, 5, 115, 30, 61, 15, 5, 115, - 30, 252, 176, 15, 5, 115, 30, 243, 105, 216, 239, 15, 5, 115, 30, 162, - 15, 5, 115, 30, 236, 35, 15, 5, 115, 30, 233, 116, 242, 94, 15, 5, 115, - 30, 230, 61, 15, 5, 115, 30, 222, 21, 15, 5, 255, 75, 15, 5, 255, 25, 15, - 5, 255, 26, 30, 253, 229, 15, 5, 255, 26, 30, 246, 67, 242, 94, 15, 5, - 255, 26, 30, 243, 118, 15, 5, 255, 26, 30, 243, 105, 216, 239, 15, 5, - 255, 26, 30, 162, 15, 5, 255, 26, 30, 236, 36, 242, 94, 15, 5, 255, 26, - 30, 236, 9, 15, 5, 255, 26, 30, 233, 117, 15, 5, 255, 26, 30, 220, 48, - 15, 5, 255, 26, 30, 104, 96, 104, 96, 70, 15, 5, 255, 26, 242, 94, 15, 5, - 255, 23, 15, 5, 255, 24, 30, 252, 160, 15, 5, 255, 24, 30, 243, 105, 216, - 239, 15, 5, 255, 24, 30, 231, 92, 96, 245, 150, 15, 5, 255, 24, 30, 220, - 100, 15, 5, 255, 24, 30, 217, 72, 15, 5, 254, 255, 15, 5, 254, 186, 15, - 5, 254, 187, 30, 245, 87, 15, 5, 254, 187, 30, 220, 10, 96, 242, 190, 15, - 5, 254, 178, 15, 5, 254, 179, 30, 254, 178, 15, 5, 254, 179, 30, 247, - 216, 15, 5, 254, 179, 30, 242, 190, 15, 5, 254, 179, 30, 162, 15, 5, 254, - 179, 30, 234, 255, 15, 5, 254, 179, 30, 234, 92, 15, 5, 254, 179, 30, - 220, 63, 15, 5, 254, 179, 30, 214, 126, 15, 5, 254, 175, 15, 5, 254, 168, - 15, 5, 254, 132, 15, 5, 254, 133, 30, 220, 63, 15, 5, 254, 123, 15, 5, - 254, 124, 117, 254, 123, 15, 5, 254, 124, 134, 216, 85, 15, 5, 254, 124, - 96, 229, 217, 226, 164, 254, 124, 96, 229, 216, 15, 5, 254, 124, 96, 229, - 217, 218, 233, 15, 5, 254, 94, 15, 5, 254, 67, 15, 5, 254, 35, 15, 5, - 254, 36, 30, 233, 196, 15, 5, 254, 8, 15, 5, 253, 236, 15, 5, 253, 231, - 15, 5, 253, 232, 210, 40, 216, 239, 15, 5, 253, 232, 235, 3, 216, 239, - 15, 5, 253, 232, 117, 253, 232, 215, 114, 117, 215, 114, 215, 114, 117, - 215, 114, 226, 21, 15, 5, 253, 232, 117, 253, 232, 117, 253, 231, 15, 5, - 253, 232, 117, 253, 232, 117, 253, 232, 249, 125, 253, 232, 117, 253, - 232, 117, 253, 231, 15, 5, 253, 229, 15, 5, 253, 226, 15, 5, 252, 191, - 15, 5, 252, 176, 15, 5, 252, 171, 15, 5, 252, 167, 15, 5, 252, 161, 15, - 5, 252, 162, 117, 252, 161, 15, 5, 252, 160, 15, 5, 130, 15, 5, 252, 140, - 15, 5, 252, 6, 15, 5, 252, 7, 30, 61, 15, 5, 252, 7, 30, 243, 96, 15, 5, - 252, 7, 30, 236, 36, 242, 94, 15, 5, 251, 125, 15, 5, 251, 126, 117, 251, - 126, 255, 25, 15, 5, 251, 126, 117, 251, 126, 214, 190, 15, 5, 251, 126, - 249, 125, 251, 125, 15, 5, 251, 109, 15, 5, 251, 110, 117, 251, 109, 15, - 5, 251, 98, 15, 5, 251, 97, 15, 5, 248, 221, 15, 5, 248, 212, 15, 5, 248, - 213, 234, 66, 30, 115, 96, 231, 147, 15, 5, 248, 213, 234, 66, 30, 254, - 132, 15, 5, 248, 213, 234, 66, 30, 252, 160, 15, 5, 248, 213, 234, 66, - 30, 252, 6, 15, 5, 248, 213, 234, 66, 30, 243, 135, 15, 5, 248, 213, 234, - 66, 30, 243, 136, 96, 231, 147, 15, 5, 248, 213, 234, 66, 30, 242, 214, - 15, 5, 248, 213, 234, 66, 30, 242, 197, 15, 5, 248, 213, 234, 66, 30, - 242, 103, 15, 5, 248, 213, 234, 66, 30, 162, 15, 5, 248, 213, 234, 66, - 30, 235, 179, 15, 5, 248, 213, 234, 66, 30, 235, 180, 96, 232, 98, 15, 5, - 248, 213, 234, 66, 30, 234, 242, 15, 5, 248, 213, 234, 66, 30, 233, 135, - 15, 5, 248, 213, 234, 66, 30, 232, 98, 15, 5, 248, 213, 234, 66, 30, 232, - 99, 96, 231, 146, 15, 5, 248, 213, 234, 66, 30, 232, 84, 15, 5, 248, 213, - 234, 66, 30, 229, 107, 15, 5, 248, 213, 234, 66, 30, 226, 22, 96, 226, - 21, 15, 5, 248, 213, 234, 66, 30, 219, 191, 15, 5, 248, 213, 234, 66, 30, - 217, 72, 15, 5, 248, 213, 234, 66, 30, 214, 231, 96, 242, 197, 15, 5, - 248, 213, 234, 66, 30, 214, 126, 15, 5, 248, 187, 15, 5, 248, 166, 15, 5, - 248, 165, 15, 5, 248, 164, 15, 5, 248, 3, 15, 5, 247, 242, 15, 5, 247, - 217, 15, 5, 247, 218, 30, 220, 63, 15, 5, 247, 216, 15, 5, 247, 206, 15, - 5, 247, 207, 234, 208, 104, 242, 95, 247, 187, 15, 5, 247, 187, 15, 5, - 246, 78, 15, 5, 246, 79, 117, 246, 78, 15, 5, 246, 79, 242, 94, 15, 5, - 246, 79, 220, 45, 15, 5, 246, 76, 15, 5, 246, 77, 30, 245, 72, 15, 5, - 246, 75, 15, 5, 246, 74, 15, 5, 246, 73, 15, 5, 246, 72, 15, 5, 246, 68, - 15, 5, 246, 66, 15, 5, 246, 67, 242, 94, 15, 5, 246, 67, 242, 95, 242, - 94, 15, 5, 246, 65, 15, 5, 246, 58, 15, 5, 75, 15, 5, 160, 30, 226, 21, - 15, 5, 160, 117, 160, 227, 195, 117, 227, 194, 15, 5, 245, 234, 15, 5, - 245, 235, 30, 115, 96, 242, 49, 96, 248, 221, 15, 5, 245, 235, 30, 243, - 96, 15, 5, 245, 235, 30, 230, 230, 15, 5, 245, 235, 30, 222, 8, 15, 5, - 245, 235, 30, 220, 63, 15, 5, 245, 235, 30, 70, 15, 5, 245, 211, 15, 5, - 245, 200, 15, 5, 245, 174, 15, 5, 245, 150, 15, 5, 245, 151, 30, 243, - 104, 15, 5, 245, 151, 30, 243, 105, 216, 239, 15, 5, 245, 151, 30, 231, - 91, 15, 5, 245, 151, 249, 125, 245, 150, 15, 5, 245, 151, 226, 164, 245, - 150, 15, 5, 245, 151, 218, 233, 15, 5, 245, 89, 15, 5, 245, 87, 15, 5, - 245, 72, 15, 5, 245, 10, 15, 5, 245, 11, 30, 61, 15, 5, 245, 11, 30, 115, - 96, 233, 104, 15, 5, 245, 11, 30, 115, 96, 233, 105, 30, 233, 104, 15, 5, - 245, 11, 30, 254, 123, 15, 5, 245, 11, 30, 252, 176, 15, 5, 245, 11, 30, - 246, 67, 242, 94, 15, 5, 245, 11, 30, 246, 67, 242, 95, 242, 94, 15, 5, - 245, 11, 30, 162, 15, 5, 245, 11, 30, 242, 49, 242, 94, 15, 5, 245, 11, - 30, 236, 36, 242, 94, 15, 5, 245, 11, 30, 234, 207, 15, 5, 245, 11, 30, - 234, 208, 218, 233, 15, 5, 245, 11, 30, 233, 215, 15, 5, 245, 11, 30, - 233, 135, 15, 5, 245, 11, 30, 233, 105, 30, 233, 104, 15, 5, 245, 11, 30, - 232, 241, 15, 5, 245, 11, 30, 232, 98, 15, 5, 245, 11, 30, 214, 230, 15, - 5, 245, 11, 30, 214, 219, 15, 5, 243, 135, 15, 5, 243, 136, 242, 94, 15, - 5, 243, 133, 15, 5, 243, 134, 30, 115, 96, 248, 222, 96, 162, 15, 5, 243, - 134, 30, 115, 96, 162, 15, 5, 243, 134, 30, 115, 96, 236, 35, 15, 5, 243, - 134, 30, 255, 24, 216, 240, 96, 217, 93, 15, 5, 243, 134, 30, 254, 123, - 15, 5, 243, 134, 30, 253, 231, 15, 5, 243, 134, 30, 253, 230, 96, 243, - 118, 15, 5, 243, 134, 30, 252, 176, 15, 5, 243, 134, 30, 252, 141, 96, - 205, 15, 5, 243, 134, 30, 251, 98, 15, 5, 243, 134, 30, 251, 99, 96, 205, - 15, 5, 243, 134, 30, 248, 221, 15, 5, 243, 134, 30, 248, 3, 15, 5, 243, - 134, 30, 247, 218, 30, 220, 63, 15, 5, 243, 134, 30, 246, 76, 15, 5, 243, - 134, 30, 245, 174, 15, 5, 243, 134, 30, 245, 175, 96, 233, 135, 15, 5, - 243, 134, 30, 245, 150, 15, 5, 243, 134, 30, 245, 151, 30, 243, 105, 216, - 239, 15, 5, 243, 134, 30, 243, 105, 216, 239, 15, 5, 243, 134, 30, 243, - 96, 15, 5, 243, 134, 30, 242, 214, 15, 5, 243, 134, 30, 242, 212, 15, 5, - 243, 134, 30, 242, 213, 96, 61, 15, 5, 243, 134, 30, 242, 198, 96, 218, - 83, 15, 5, 243, 134, 30, 242, 49, 96, 232, 99, 96, 245, 72, 15, 5, 243, - 134, 30, 242, 30, 15, 5, 243, 134, 30, 242, 31, 96, 233, 135, 15, 5, 243, - 134, 30, 241, 181, 96, 232, 241, 15, 5, 243, 134, 30, 240, 218, 15, 5, - 243, 134, 30, 236, 36, 242, 94, 15, 5, 243, 134, 30, 235, 166, 96, 240, - 223, 96, 253, 231, 15, 5, 243, 134, 30, 234, 242, 15, 5, 243, 134, 30, - 234, 207, 15, 5, 243, 134, 30, 234, 89, 15, 5, 243, 134, 30, 234, 90, 96, - 233, 104, 15, 5, 243, 134, 30, 233, 216, 96, 254, 123, 15, 5, 243, 134, - 30, 233, 135, 15, 5, 243, 134, 30, 231, 92, 96, 245, 150, 15, 5, 243, - 134, 30, 230, 230, 15, 5, 243, 134, 30, 227, 194, 15, 5, 243, 134, 30, - 227, 195, 117, 227, 194, 15, 5, 243, 134, 30, 190, 15, 5, 243, 134, 30, - 222, 8, 15, 5, 243, 134, 30, 221, 231, 15, 5, 243, 134, 30, 220, 63, 15, - 5, 243, 134, 30, 220, 64, 96, 215, 98, 15, 5, 243, 134, 30, 220, 30, 15, - 5, 243, 134, 30, 218, 43, 15, 5, 243, 134, 30, 217, 72, 15, 5, 243, 134, - 30, 70, 15, 5, 243, 134, 30, 214, 219, 15, 5, 243, 134, 30, 214, 220, 96, - 246, 78, 15, 5, 243, 134, 117, 243, 133, 15, 5, 243, 128, 15, 5, 243, - 129, 249, 125, 243, 128, 15, 5, 243, 126, 15, 5, 243, 127, 117, 243, 127, - 243, 97, 117, 243, 96, 15, 5, 243, 118, 15, 5, 243, 119, 243, 127, 117, - 243, 127, 243, 97, 117, 243, 96, 15, 5, 243, 117, 15, 5, 243, 115, 15, 5, - 243, 106, 15, 5, 243, 104, 15, 5, 243, 105, 216, 239, 15, 5, 243, 105, - 117, 243, 104, 15, 5, 243, 105, 249, 125, 243, 104, 15, 5, 243, 96, 15, - 5, 243, 95, 15, 5, 243, 90, 15, 5, 243, 36, 15, 5, 243, 37, 30, 233, 196, - 15, 5, 242, 214, 15, 5, 242, 215, 30, 75, 15, 5, 242, 215, 30, 70, 15, 5, - 242, 215, 249, 125, 242, 214, 15, 5, 242, 212, 15, 5, 242, 213, 117, 242, - 212, 15, 5, 242, 213, 249, 125, 242, 212, 15, 5, 242, 209, 15, 5, 242, - 197, 15, 5, 242, 198, 242, 94, 15, 5, 242, 195, 15, 5, 242, 196, 30, 115, - 96, 236, 35, 15, 5, 242, 196, 30, 243, 105, 216, 239, 15, 5, 242, 196, - 30, 236, 35, 15, 5, 242, 196, 30, 232, 99, 96, 236, 35, 15, 5, 242, 196, - 30, 190, 15, 5, 242, 192, 15, 5, 242, 190, 15, 5, 242, 191, 249, 125, - 242, 190, 15, 5, 242, 191, 30, 252, 176, 15, 5, 242, 191, 30, 217, 72, - 15, 5, 242, 191, 216, 239, 15, 5, 242, 113, 15, 5, 242, 114, 249, 125, - 242, 113, 15, 5, 242, 111, 15, 5, 242, 112, 30, 234, 242, 15, 5, 242, - 112, 30, 234, 243, 30, 236, 36, 242, 94, 15, 5, 242, 112, 30, 227, 194, - 15, 5, 242, 112, 30, 222, 9, 96, 215, 113, 15, 5, 242, 112, 242, 94, 15, - 5, 242, 103, 15, 5, 242, 104, 30, 115, 96, 233, 196, 15, 5, 242, 104, 30, - 233, 196, 15, 5, 242, 104, 117, 242, 104, 232, 91, 15, 5, 242, 98, 15, 5, - 242, 96, 15, 5, 242, 97, 30, 220, 63, 15, 5, 242, 88, 15, 5, 242, 87, 15, - 5, 242, 84, 15, 5, 242, 83, 15, 5, 162, 15, 5, 242, 49, 216, 239, 15, 5, - 242, 49, 242, 94, 15, 5, 242, 30, 15, 5, 241, 180, 15, 5, 241, 181, 30, - 253, 231, 15, 5, 241, 181, 30, 253, 229, 15, 5, 241, 181, 30, 252, 176, - 15, 5, 241, 181, 30, 247, 187, 15, 5, 241, 181, 30, 243, 126, 15, 5, 241, - 181, 30, 234, 81, 15, 5, 241, 181, 30, 227, 194, 15, 5, 241, 181, 30, - 220, 63, 15, 5, 241, 181, 30, 70, 15, 5, 240, 222, 15, 5, 240, 218, 15, - 5, 240, 219, 30, 254, 123, 15, 5, 240, 219, 30, 242, 30, 15, 5, 240, 219, - 30, 234, 207, 15, 5, 240, 219, 30, 232, 197, 15, 5, 240, 219, 30, 214, - 219, 15, 5, 240, 215, 15, 5, 73, 15, 5, 240, 154, 61, 15, 5, 240, 115, - 15, 5, 236, 63, 15, 5, 236, 64, 117, 236, 64, 251, 98, 15, 5, 236, 64, - 117, 236, 64, 218, 233, 15, 5, 236, 38, 15, 5, 236, 35, 15, 5, 236, 36, - 247, 242, 15, 5, 236, 36, 223, 35, 15, 5, 236, 36, 117, 236, 36, 220, 14, - 117, 220, 14, 214, 220, 117, 214, 219, 15, 5, 236, 36, 242, 94, 15, 5, - 236, 27, 15, 5, 236, 28, 30, 243, 105, 216, 239, 15, 5, 236, 26, 15, 5, - 236, 16, 15, 5, 236, 17, 30, 217, 72, 15, 5, 236, 17, 249, 125, 236, 16, - 15, 5, 236, 17, 226, 164, 236, 16, 15, 5, 236, 17, 218, 233, 15, 5, 236, - 9, 15, 5, 235, 255, 15, 5, 235, 179, 15, 5, 235, 165, 15, 5, 176, 15, 5, - 235, 13, 30, 61, 15, 5, 235, 13, 30, 254, 255, 15, 5, 235, 13, 30, 255, - 0, 96, 233, 215, 15, 5, 235, 13, 30, 253, 229, 15, 5, 235, 13, 30, 252, - 176, 15, 5, 235, 13, 30, 252, 160, 15, 5, 235, 13, 30, 130, 15, 5, 235, - 13, 30, 252, 6, 15, 5, 235, 13, 30, 245, 87, 15, 5, 235, 13, 30, 245, 72, - 15, 5, 235, 13, 30, 243, 135, 15, 5, 235, 13, 30, 243, 118, 15, 5, 235, - 13, 30, 243, 105, 216, 239, 15, 5, 235, 13, 30, 243, 96, 15, 5, 235, 13, - 30, 243, 97, 96, 220, 101, 96, 61, 15, 5, 235, 13, 30, 242, 214, 15, 5, - 235, 13, 30, 242, 197, 15, 5, 235, 13, 30, 242, 191, 96, 221, 231, 15, 5, - 235, 13, 30, 242, 191, 249, 125, 242, 190, 15, 5, 235, 13, 30, 242, 113, - 15, 5, 235, 13, 30, 242, 87, 15, 5, 235, 13, 30, 236, 35, 15, 5, 235, 13, - 30, 236, 16, 15, 5, 235, 13, 30, 234, 242, 15, 5, 235, 13, 30, 234, 92, - 15, 5, 235, 13, 30, 234, 89, 15, 5, 235, 13, 30, 232, 241, 15, 5, 235, - 13, 30, 232, 98, 15, 5, 235, 13, 30, 231, 91, 15, 5, 235, 13, 30, 231, - 92, 96, 246, 78, 15, 5, 235, 13, 30, 231, 92, 96, 242, 214, 15, 5, 235, - 13, 30, 231, 92, 96, 217, 22, 15, 5, 235, 13, 30, 230, 230, 15, 5, 235, - 13, 30, 230, 231, 96, 227, 189, 15, 5, 235, 13, 30, 229, 107, 15, 5, 235, - 13, 30, 227, 194, 15, 5, 235, 13, 30, 225, 108, 15, 5, 235, 13, 30, 222, - 140, 15, 5, 235, 13, 30, 206, 15, 5, 235, 13, 30, 221, 231, 15, 5, 235, - 13, 30, 220, 102, 15, 5, 235, 13, 30, 220, 63, 15, 5, 235, 13, 30, 220, - 30, 15, 5, 235, 13, 30, 219, 225, 15, 5, 235, 13, 30, 219, 182, 15, 5, - 235, 13, 30, 218, 51, 15, 5, 235, 13, 30, 217, 50, 15, 5, 235, 13, 30, - 70, 15, 5, 235, 13, 30, 214, 230, 15, 5, 235, 13, 30, 214, 219, 15, 5, - 235, 13, 30, 214, 193, 30, 190, 15, 5, 235, 13, 30, 214, 126, 15, 5, 235, - 13, 30, 210, 44, 15, 5, 235, 11, 15, 5, 235, 12, 249, 125, 235, 11, 15, - 5, 235, 4, 15, 5, 235, 1, 15, 5, 234, 255, 15, 5, 234, 254, 15, 5, 234, - 252, 15, 5, 234, 253, 117, 234, 252, 15, 5, 234, 242, 15, 5, 234, 243, - 30, 236, 36, 242, 94, 15, 5, 234, 238, 15, 5, 234, 239, 30, 252, 176, 15, - 5, 234, 239, 249, 125, 234, 238, 15, 5, 234, 236, 15, 5, 234, 235, 15, 5, - 234, 207, 15, 5, 234, 208, 233, 118, 30, 104, 117, 233, 118, 30, 70, 15, - 5, 234, 208, 117, 234, 208, 233, 118, 30, 104, 117, 233, 118, 30, 70, 15, - 5, 234, 157, 15, 5, 234, 92, 15, 5, 234, 93, 30, 252, 176, 15, 5, 234, - 93, 30, 70, 15, 5, 234, 93, 30, 214, 219, 15, 5, 234, 89, 15, 5, 234, 81, - 15, 5, 234, 68, 15, 5, 234, 67, 15, 5, 234, 65, 15, 5, 234, 66, 117, 234, - 65, 15, 5, 233, 217, 15, 5, 233, 218, 117, 241, 181, 30, 253, 230, 233, - 218, 117, 241, 181, 30, 253, 229, 15, 5, 233, 215, 15, 5, 233, 213, 15, - 5, 233, 214, 214, 12, 17, 15, 5, 233, 212, 15, 5, 233, 209, 15, 5, 233, - 210, 242, 94, 15, 5, 233, 208, 15, 5, 233, 196, 15, 5, 233, 197, 226, - 164, 233, 196, 15, 5, 233, 191, 15, 5, 233, 172, 15, 5, 233, 135, 15, 5, - 233, 117, 15, 5, 233, 118, 30, 61, 15, 5, 233, 118, 30, 115, 96, 248, - 222, 96, 162, 15, 5, 233, 118, 30, 115, 96, 243, 96, 15, 5, 233, 118, 30, - 115, 96, 233, 104, 15, 5, 233, 118, 30, 254, 178, 15, 5, 233, 118, 30, - 254, 123, 15, 5, 233, 118, 30, 253, 232, 210, 40, 216, 239, 15, 5, 233, - 118, 30, 252, 176, 15, 5, 233, 118, 30, 252, 6, 15, 5, 233, 118, 30, 248, - 166, 15, 5, 233, 118, 30, 245, 150, 15, 5, 233, 118, 30, 243, 135, 15, 5, - 233, 118, 30, 243, 96, 15, 5, 233, 118, 30, 242, 103, 15, 5, 233, 118, - 30, 242, 104, 96, 242, 103, 15, 5, 233, 118, 30, 162, 15, 5, 233, 118, - 30, 242, 30, 15, 5, 233, 118, 30, 241, 181, 30, 227, 194, 15, 5, 233, - 118, 30, 236, 36, 242, 94, 15, 5, 233, 118, 30, 236, 16, 15, 5, 233, 118, - 30, 236, 17, 96, 162, 15, 5, 233, 118, 30, 236, 17, 96, 232, 98, 15, 5, - 233, 118, 30, 234, 92, 15, 5, 233, 118, 30, 234, 81, 15, 5, 233, 118, 30, - 233, 215, 15, 5, 233, 118, 30, 233, 209, 15, 5, 233, 118, 30, 233, 210, - 96, 241, 181, 96, 61, 15, 5, 233, 118, 30, 233, 117, 15, 5, 233, 118, 30, - 232, 197, 15, 5, 233, 118, 30, 232, 98, 15, 5, 233, 118, 30, 232, 86, 15, - 5, 233, 118, 30, 231, 91, 15, 5, 233, 118, 30, 231, 92, 96, 245, 150, 15, - 5, 233, 118, 30, 230, 61, 15, 5, 233, 118, 30, 229, 107, 15, 5, 233, 118, - 30, 220, 64, 96, 218, 43, 15, 5, 233, 118, 30, 220, 10, 96, 242, 191, 96, - 245, 87, 15, 5, 233, 118, 30, 220, 10, 96, 242, 191, 216, 239, 15, 5, - 233, 118, 30, 219, 223, 15, 5, 233, 118, 30, 219, 224, 96, 219, 223, 15, - 5, 233, 118, 30, 218, 43, 15, 5, 233, 118, 30, 217, 84, 15, 5, 233, 118, - 30, 217, 72, 15, 5, 233, 118, 30, 217, 23, 96, 115, 96, 218, 84, 96, 197, - 15, 5, 233, 118, 30, 70, 15, 5, 233, 118, 30, 104, 96, 61, 15, 5, 233, - 118, 30, 104, 96, 104, 96, 70, 15, 5, 233, 118, 30, 214, 231, 96, 253, - 231, 15, 5, 233, 118, 30, 214, 219, 15, 5, 233, 118, 30, 214, 126, 15, 5, - 233, 118, 218, 233, 15, 5, 233, 115, 15, 5, 233, 116, 30, 220, 63, 15, 5, - 233, 116, 30, 220, 64, 96, 218, 43, 15, 5, 233, 116, 242, 94, 15, 5, 233, - 116, 242, 95, 117, 233, 116, 242, 95, 220, 63, 15, 5, 233, 111, 15, 5, - 233, 104, 15, 5, 233, 105, 30, 233, 104, 15, 5, 233, 102, 15, 5, 233, - 103, 30, 233, 196, 15, 5, 233, 103, 30, 233, 197, 96, 222, 140, 15, 5, - 232, 241, 15, 5, 232, 226, 15, 5, 232, 216, 15, 5, 232, 197, 15, 5, 232, - 98, 15, 5, 232, 99, 30, 252, 176, 15, 5, 232, 96, 15, 5, 232, 97, 30, - 254, 178, 15, 5, 232, 97, 30, 252, 176, 15, 5, 232, 97, 30, 245, 72, 15, - 5, 232, 97, 30, 245, 73, 216, 239, 15, 5, 232, 97, 30, 243, 105, 216, - 239, 15, 5, 232, 97, 30, 241, 181, 30, 252, 176, 15, 5, 232, 97, 30, 236, - 16, 15, 5, 232, 97, 30, 235, 1, 15, 5, 232, 97, 30, 234, 255, 15, 5, 232, - 97, 30, 235, 0, 96, 253, 231, 15, 5, 232, 97, 30, 234, 92, 15, 5, 232, - 97, 30, 233, 136, 96, 253, 231, 15, 5, 232, 97, 30, 233, 117, 15, 5, 232, - 97, 30, 231, 92, 96, 245, 150, 15, 5, 232, 97, 30, 229, 107, 15, 5, 232, - 97, 30, 227, 237, 15, 5, 232, 97, 30, 219, 192, 96, 253, 231, 15, 5, 232, - 97, 30, 219, 174, 96, 251, 125, 15, 5, 232, 97, 30, 215, 113, 15, 5, 232, - 97, 216, 239, 15, 5, 232, 97, 249, 125, 232, 96, 15, 5, 232, 97, 226, - 164, 232, 96, 15, 5, 232, 97, 218, 233, 15, 5, 232, 97, 220, 45, 15, 5, - 232, 95, 15, 5, 232, 91, 15, 5, 232, 92, 117, 232, 91, 15, 5, 232, 92, - 226, 164, 232, 91, 15, 5, 232, 92, 220, 45, 15, 5, 232, 89, 15, 5, 232, - 86, 15, 5, 232, 84, 15, 5, 232, 85, 117, 232, 84, 15, 5, 232, 85, 117, - 232, 85, 243, 97, 117, 243, 96, 15, 5, 184, 15, 5, 231, 239, 30, 217, 72, - 15, 5, 231, 239, 242, 94, 15, 5, 231, 238, 15, 5, 231, 210, 15, 5, 231, - 166, 15, 5, 231, 147, 15, 5, 231, 146, 15, 5, 231, 91, 15, 5, 231, 47, - 15, 5, 230, 230, 15, 5, 230, 188, 15, 5, 230, 102, 15, 5, 230, 103, 117, - 230, 102, 15, 5, 230, 93, 15, 5, 230, 94, 242, 94, 15, 5, 230, 78, 15, 5, - 230, 64, 15, 5, 230, 61, 15, 5, 230, 62, 30, 61, 15, 5, 230, 62, 30, 233, - 196, 15, 5, 230, 62, 30, 210, 116, 15, 5, 230, 62, 117, 230, 61, 15, 5, - 230, 62, 117, 230, 62, 30, 115, 96, 197, 15, 5, 230, 62, 249, 125, 230, - 61, 15, 5, 230, 59, 15, 5, 230, 60, 30, 61, 15, 5, 230, 60, 30, 115, 96, - 248, 3, 15, 5, 230, 60, 30, 248, 3, 15, 5, 230, 60, 242, 94, 15, 5, 197, - 15, 5, 229, 227, 15, 5, 229, 216, 15, 5, 229, 217, 235, 192, 15, 5, 229, - 217, 30, 219, 226, 216, 239, 15, 5, 229, 217, 226, 164, 229, 216, 15, 5, - 229, 215, 15, 5, 229, 208, 227, 180, 15, 5, 229, 207, 15, 5, 229, 206, - 15, 5, 229, 107, 15, 5, 229, 108, 30, 61, 15, 5, 229, 108, 30, 214, 219, - 15, 5, 229, 108, 220, 45, 15, 5, 228, 233, 15, 5, 228, 234, 30, 75, 15, - 5, 228, 232, 15, 5, 228, 203, 15, 5, 228, 204, 30, 243, 105, 216, 239, - 15, 5, 228, 204, 30, 243, 97, 96, 243, 105, 216, 239, 15, 5, 228, 201, - 15, 5, 228, 202, 30, 254, 123, 15, 5, 228, 202, 30, 253, 231, 15, 5, 228, - 202, 30, 253, 232, 96, 253, 231, 15, 5, 228, 202, 30, 242, 103, 15, 5, - 228, 202, 30, 231, 92, 96, 243, 105, 216, 239, 15, 5, 228, 202, 30, 229, - 107, 15, 5, 228, 202, 30, 227, 194, 15, 5, 228, 202, 30, 220, 63, 15, 5, - 228, 202, 30, 220, 64, 96, 115, 254, 123, 15, 5, 228, 202, 30, 220, 64, - 96, 253, 231, 15, 5, 228, 202, 30, 220, 64, 96, 253, 232, 96, 253, 231, - 15, 5, 228, 202, 30, 214, 231, 96, 253, 231, 15, 5, 228, 202, 30, 214, - 126, 15, 5, 228, 190, 15, 5, 227, 237, 15, 5, 227, 210, 15, 5, 227, 194, - 15, 5, 227, 195, 233, 116, 30, 243, 96, 15, 5, 227, 195, 233, 116, 30, - 231, 147, 15, 5, 227, 195, 233, 116, 30, 222, 8, 15, 5, 227, 195, 233, - 116, 30, 222, 9, 117, 227, 195, 233, 116, 30, 222, 8, 15, 5, 227, 195, - 233, 116, 30, 214, 126, 15, 5, 227, 195, 216, 239, 15, 5, 227, 195, 117, - 227, 194, 15, 5, 227, 195, 249, 125, 227, 194, 15, 5, 227, 195, 249, 125, - 227, 195, 233, 116, 117, 233, 115, 15, 5, 227, 189, 15, 5, 227, 190, 255, - 24, 30, 253, 226, 15, 5, 227, 190, 255, 24, 30, 252, 6, 15, 5, 227, 190, - 255, 24, 30, 246, 74, 15, 5, 227, 190, 255, 24, 30, 242, 103, 15, 5, 227, - 190, 255, 24, 30, 236, 36, 242, 94, 15, 5, 227, 190, 255, 24, 30, 234, - 255, 15, 5, 227, 190, 255, 24, 30, 233, 135, 15, 5, 227, 190, 255, 24, - 30, 229, 107, 15, 5, 227, 190, 255, 24, 30, 219, 171, 15, 5, 227, 190, - 255, 24, 30, 214, 230, 15, 5, 227, 190, 234, 66, 30, 252, 6, 15, 5, 227, - 190, 234, 66, 30, 252, 7, 70, 15, 5, 190, 15, 5, 226, 80, 15, 5, 226, 47, - 15, 5, 226, 21, 15, 5, 225, 161, 15, 5, 225, 108, 15, 5, 225, 109, 30, - 61, 15, 5, 225, 109, 30, 255, 25, 15, 5, 225, 109, 30, 252, 6, 15, 5, - 225, 109, 30, 251, 125, 15, 5, 225, 109, 30, 75, 15, 5, 225, 109, 30, 73, - 15, 5, 225, 109, 30, 240, 115, 15, 5, 225, 109, 30, 70, 15, 5, 225, 109, - 30, 214, 230, 15, 5, 225, 109, 249, 125, 225, 108, 15, 5, 225, 53, 15, 5, - 225, 54, 30, 234, 238, 15, 5, 225, 54, 30, 214, 219, 15, 5, 225, 54, 30, - 210, 116, 15, 5, 225, 54, 226, 164, 225, 53, 15, 5, 205, 15, 5, 223, 182, - 15, 5, 223, 35, 15, 5, 222, 140, 15, 5, 206, 15, 5, 222, 22, 227, 180, - 15, 5, 222, 21, 15, 5, 222, 22, 30, 61, 15, 5, 222, 22, 30, 246, 78, 15, - 5, 222, 22, 30, 246, 76, 15, 5, 222, 22, 30, 162, 15, 5, 222, 22, 30, - 234, 242, 15, 5, 222, 22, 30, 233, 196, 15, 5, 222, 22, 30, 232, 84, 15, - 5, 222, 22, 30, 230, 230, 15, 5, 222, 22, 30, 227, 194, 15, 5, 222, 22, - 30, 222, 8, 15, 5, 222, 22, 30, 220, 30, 15, 5, 222, 22, 30, 217, 93, 15, - 5, 222, 22, 30, 214, 230, 15, 5, 222, 22, 30, 214, 225, 15, 5, 222, 22, - 30, 214, 197, 15, 5, 222, 22, 30, 214, 150, 15, 5, 222, 22, 30, 214, 126, - 15, 5, 222, 22, 117, 222, 21, 15, 5, 222, 22, 242, 94, 15, 5, 222, 8, 15, - 5, 222, 9, 233, 118, 30, 253, 229, 15, 5, 221, 239, 15, 5, 221, 231, 15, - 5, 220, 102, 15, 5, 220, 100, 15, 5, 220, 101, 30, 61, 15, 5, 220, 101, - 30, 252, 176, 15, 5, 220, 101, 30, 242, 190, 15, 5, 220, 101, 30, 229, - 107, 15, 5, 220, 101, 30, 219, 223, 15, 5, 220, 101, 30, 215, 98, 15, 5, - 220, 101, 30, 70, 15, 5, 220, 101, 30, 104, 96, 61, 15, 5, 220, 99, 15, - 5, 220, 97, 15, 5, 220, 78, 15, 5, 220, 63, 15, 5, 220, 64, 240, 222, 15, - 5, 220, 64, 117, 220, 64, 243, 127, 117, 243, 127, 243, 97, 117, 243, 96, - 15, 5, 220, 64, 117, 220, 64, 217, 94, 117, 217, 94, 243, 97, 117, 243, - 96, 15, 5, 220, 56, 15, 5, 220, 51, 15, 5, 220, 48, 15, 5, 220, 47, 15, - 5, 220, 44, 15, 5, 220, 30, 15, 5, 220, 31, 30, 61, 15, 5, 220, 31, 30, - 236, 16, 15, 5, 220, 24, 15, 5, 220, 25, 30, 61, 15, 5, 220, 25, 30, 252, - 161, 15, 5, 220, 25, 30, 251, 109, 15, 5, 220, 25, 30, 247, 206, 15, 5, - 220, 25, 30, 243, 96, 15, 5, 220, 25, 30, 236, 35, 15, 5, 220, 25, 30, - 236, 36, 242, 94, 15, 5, 220, 25, 30, 233, 191, 15, 5, 220, 25, 30, 232, - 86, 15, 5, 220, 25, 30, 230, 93, 15, 5, 220, 25, 30, 222, 8, 15, 5, 220, - 18, 15, 5, 220, 13, 15, 5, 220, 14, 216, 239, 15, 5, 220, 14, 117, 220, - 14, 251, 99, 117, 251, 98, 15, 5, 220, 9, 15, 5, 219, 225, 15, 5, 219, - 226, 117, 235, 193, 219, 225, 15, 5, 219, 223, 15, 5, 219, 222, 15, 5, - 219, 191, 15, 5, 219, 192, 242, 94, 15, 5, 219, 182, 15, 5, 219, 180, 15, - 5, 219, 181, 117, 219, 181, 219, 223, 15, 5, 219, 173, 15, 5, 219, 171, - 15, 5, 218, 83, 15, 5, 218, 84, 117, 218, 83, 15, 5, 218, 54, 15, 5, 218, - 53, 15, 5, 218, 51, 15, 5, 218, 43, 15, 5, 218, 42, 15, 5, 218, 17, 15, - 5, 218, 16, 15, 5, 217, 105, 15, 5, 217, 106, 253, 216, 15, 5, 217, 106, - 30, 241, 180, 15, 5, 217, 106, 30, 230, 230, 15, 5, 217, 106, 242, 94, - 15, 5, 217, 93, 15, 5, 217, 94, 117, 217, 94, 228, 234, 117, 228, 234, - 247, 188, 117, 247, 187, 15, 5, 217, 94, 218, 233, 15, 5, 217, 84, 15, 5, - 129, 30, 252, 6, 15, 5, 129, 30, 242, 103, 15, 5, 129, 30, 220, 63, 15, - 5, 129, 30, 219, 225, 15, 5, 129, 30, 215, 113, 15, 5, 129, 30, 214, 219, - 15, 5, 217, 72, 15, 5, 217, 50, 15, 5, 217, 22, 15, 5, 217, 23, 242, 94, - 15, 5, 216, 117, 15, 5, 216, 118, 216, 239, 15, 5, 216, 90, 15, 5, 216, - 72, 15, 5, 216, 73, 30, 217, 72, 15, 5, 216, 73, 117, 216, 72, 15, 5, - 216, 73, 117, 216, 73, 243, 127, 117, 243, 127, 243, 97, 117, 243, 96, - 15, 5, 215, 118, 15, 5, 215, 113, 15, 5, 215, 111, 15, 5, 215, 108, 15, - 5, 215, 98, 15, 5, 215, 99, 117, 215, 99, 210, 117, 117, 210, 116, 15, 5, - 70, 15, 5, 104, 242, 103, 15, 5, 104, 104, 70, 15, 5, 104, 117, 104, 226, - 90, 117, 226, 90, 243, 97, 117, 243, 96, 15, 5, 104, 117, 104, 218, 18, - 117, 218, 17, 15, 5, 104, 117, 104, 104, 223, 49, 117, 104, 223, 48, 15, - 5, 214, 230, 15, 5, 214, 225, 15, 5, 214, 219, 15, 5, 214, 220, 233, 191, - 15, 5, 214, 220, 30, 252, 176, 15, 5, 214, 220, 30, 230, 230, 15, 5, 214, - 220, 30, 104, 96, 104, 96, 70, 15, 5, 214, 220, 30, 104, 96, 104, 96, - 104, 242, 94, 15, 5, 214, 220, 242, 94, 15, 5, 214, 220, 220, 45, 15, 5, - 214, 220, 220, 46, 30, 252, 176, 15, 5, 214, 215, 15, 5, 214, 197, 15, 5, - 214, 198, 30, 233, 117, 15, 5, 214, 198, 30, 231, 92, 96, 248, 221, 15, - 5, 214, 198, 30, 220, 100, 15, 5, 214, 198, 30, 70, 15, 5, 214, 196, 15, - 5, 214, 192, 15, 5, 214, 193, 30, 234, 207, 15, 5, 214, 193, 30, 190, 15, - 5, 214, 190, 15, 5, 214, 191, 242, 94, 15, 5, 214, 150, 15, 5, 214, 151, - 249, 125, 214, 150, 15, 5, 214, 151, 220, 45, 15, 5, 214, 148, 15, 5, - 214, 149, 30, 115, 96, 162, 15, 5, 214, 149, 30, 115, 96, 197, 15, 5, - 214, 149, 30, 254, 178, 15, 5, 214, 149, 30, 162, 15, 5, 214, 149, 30, - 227, 194, 15, 5, 214, 149, 30, 214, 230, 15, 5, 214, 149, 30, 214, 231, - 96, 253, 231, 15, 5, 214, 149, 30, 214, 231, 96, 252, 6, 15, 5, 214, 147, - 15, 5, 214, 144, 15, 5, 214, 143, 15, 5, 214, 139, 15, 5, 214, 140, 30, - 61, 15, 5, 214, 140, 30, 253, 226, 15, 5, 214, 140, 30, 130, 15, 5, 214, - 140, 30, 246, 68, 15, 5, 214, 140, 30, 243, 135, 15, 5, 214, 140, 30, - 243, 118, 15, 5, 214, 140, 30, 243, 105, 216, 239, 15, 5, 214, 140, 30, - 243, 96, 15, 5, 214, 140, 30, 242, 113, 15, 5, 214, 140, 30, 162, 15, 5, - 214, 140, 30, 236, 35, 15, 5, 214, 140, 30, 236, 16, 15, 5, 214, 140, 30, - 235, 165, 15, 5, 214, 140, 30, 234, 92, 15, 5, 214, 140, 30, 232, 84, 15, - 5, 214, 140, 30, 230, 188, 15, 5, 214, 140, 30, 190, 15, 5, 214, 140, 30, - 220, 63, 15, 5, 214, 140, 30, 219, 180, 15, 5, 214, 140, 30, 215, 118, - 15, 5, 214, 140, 30, 104, 96, 242, 103, 15, 5, 214, 140, 30, 214, 219, + 174, 21, 194, 174, 21, 198, 174, 21, 195, 174, 21, 200, 217, 70, 1, 61, + 217, 70, 1, 255, 74, 217, 70, 1, 73, 217, 70, 1, 236, 34, 217, 70, 1, 70, + 217, 70, 1, 214, 118, 217, 70, 1, 75, 217, 70, 1, 254, 202, 217, 70, 1, + 76, 217, 70, 1, 253, 193, 217, 70, 1, 176, 217, 70, 1, 234, 133, 217, 70, + 1, 243, 136, 217, 70, 1, 242, 250, 217, 70, 1, 229, 78, 217, 70, 1, 251, + 34, 217, 70, 1, 250, 158, 217, 70, 1, 235, 142, 217, 70, 1, 235, 115, + 217, 70, 1, 227, 166, 217, 70, 1, 215, 157, 217, 70, 1, 215, 145, 217, + 70, 1, 248, 136, 217, 70, 1, 248, 120, 217, 70, 1, 228, 111, 217, 70, 1, + 217, 106, 217, 70, 1, 216, 209, 217, 70, 1, 248, 222, 217, 70, 1, 248, + 26, 217, 70, 1, 197, 217, 70, 1, 190, 217, 70, 1, 225, 148, 217, 70, 1, + 252, 192, 217, 70, 1, 252, 19, 217, 70, 1, 185, 217, 70, 1, 191, 217, 70, + 1, 205, 217, 70, 1, 233, 136, 217, 70, 1, 214, 27, 217, 70, 1, 220, 103, + 217, 70, 1, 206, 217, 70, 1, 162, 217, 70, 1, 222, 180, 217, 70, 5, 254, + 76, 217, 70, 5, 213, 147, 217, 70, 25, 5, 255, 74, 217, 70, 25, 5, 73, + 217, 70, 25, 5, 236, 34, 217, 70, 25, 5, 70, 217, 70, 25, 5, 214, 118, + 217, 70, 25, 5, 75, 217, 70, 25, 5, 254, 202, 217, 70, 25, 5, 76, 217, + 70, 25, 5, 253, 193, 217, 70, 5, 213, 152, 217, 70, 5, 227, 206, 217, 70, + 21, 210, 86, 217, 70, 21, 110, 217, 70, 21, 105, 217, 70, 21, 158, 217, + 70, 21, 161, 217, 70, 21, 189, 217, 70, 21, 194, 217, 70, 21, 198, 217, + 70, 21, 195, 217, 70, 21, 200, 15, 5, 61, 15, 5, 115, 30, 61, 15, 5, 115, + 30, 252, 177, 15, 5, 115, 30, 243, 106, 216, 240, 15, 5, 115, 30, 162, + 15, 5, 115, 30, 236, 36, 15, 5, 115, 30, 233, 117, 242, 95, 15, 5, 115, + 30, 230, 62, 15, 5, 115, 30, 222, 22, 15, 5, 255, 76, 15, 5, 255, 26, 15, + 5, 255, 27, 30, 253, 230, 15, 5, 255, 27, 30, 246, 68, 242, 95, 15, 5, + 255, 27, 30, 243, 119, 15, 5, 255, 27, 30, 243, 106, 216, 240, 15, 5, + 255, 27, 30, 162, 15, 5, 255, 27, 30, 236, 37, 242, 95, 15, 5, 255, 27, + 30, 236, 10, 15, 5, 255, 27, 30, 233, 118, 15, 5, 255, 27, 30, 220, 49, + 15, 5, 255, 27, 30, 104, 96, 104, 96, 70, 15, 5, 255, 27, 242, 95, 15, 5, + 255, 24, 15, 5, 255, 25, 30, 252, 161, 15, 5, 255, 25, 30, 243, 106, 216, + 240, 15, 5, 255, 25, 30, 231, 93, 96, 245, 151, 15, 5, 255, 25, 30, 220, + 101, 15, 5, 255, 25, 30, 217, 73, 15, 5, 255, 0, 15, 5, 254, 187, 15, 5, + 254, 188, 30, 245, 88, 15, 5, 254, 188, 30, 220, 11, 96, 242, 191, 15, 5, + 254, 179, 15, 5, 254, 180, 30, 254, 179, 15, 5, 254, 180, 30, 247, 217, + 15, 5, 254, 180, 30, 242, 191, 15, 5, 254, 180, 30, 162, 15, 5, 254, 180, + 30, 235, 0, 15, 5, 254, 180, 30, 234, 93, 15, 5, 254, 180, 30, 220, 64, + 15, 5, 254, 180, 30, 214, 126, 15, 5, 254, 176, 15, 5, 254, 169, 15, 5, + 254, 133, 15, 5, 254, 134, 30, 220, 64, 15, 5, 254, 124, 15, 5, 254, 125, + 117, 254, 124, 15, 5, 254, 125, 134, 216, 86, 15, 5, 254, 125, 96, 229, + 218, 226, 165, 254, 125, 96, 229, 217, 15, 5, 254, 125, 96, 229, 218, + 218, 234, 15, 5, 254, 95, 15, 5, 254, 68, 15, 5, 254, 36, 15, 5, 254, 37, + 30, 233, 197, 15, 5, 254, 9, 15, 5, 253, 237, 15, 5, 253, 232, 15, 5, + 253, 233, 210, 40, 216, 240, 15, 5, 253, 233, 235, 4, 216, 240, 15, 5, + 253, 233, 117, 253, 233, 215, 115, 117, 215, 115, 215, 115, 117, 215, + 115, 226, 22, 15, 5, 253, 233, 117, 253, 233, 117, 253, 232, 15, 5, 253, + 233, 117, 253, 233, 117, 253, 233, 249, 126, 253, 233, 117, 253, 233, + 117, 253, 232, 15, 5, 253, 230, 15, 5, 253, 227, 15, 5, 252, 192, 15, 5, + 252, 177, 15, 5, 252, 172, 15, 5, 252, 168, 15, 5, 252, 162, 15, 5, 252, + 163, 117, 252, 162, 15, 5, 252, 161, 15, 5, 130, 15, 5, 252, 141, 15, 5, + 252, 7, 15, 5, 252, 8, 30, 61, 15, 5, 252, 8, 30, 243, 97, 15, 5, 252, 8, + 30, 236, 37, 242, 95, 15, 5, 251, 126, 15, 5, 251, 127, 117, 251, 127, + 255, 26, 15, 5, 251, 127, 117, 251, 127, 214, 190, 15, 5, 251, 127, 249, + 126, 251, 126, 15, 5, 251, 110, 15, 5, 251, 111, 117, 251, 110, 15, 5, + 251, 99, 15, 5, 251, 98, 15, 5, 248, 222, 15, 5, 248, 213, 15, 5, 248, + 214, 234, 67, 30, 115, 96, 231, 148, 15, 5, 248, 214, 234, 67, 30, 254, + 133, 15, 5, 248, 214, 234, 67, 30, 252, 161, 15, 5, 248, 214, 234, 67, + 30, 252, 7, 15, 5, 248, 214, 234, 67, 30, 243, 136, 15, 5, 248, 214, 234, + 67, 30, 243, 137, 96, 231, 148, 15, 5, 248, 214, 234, 67, 30, 242, 215, + 15, 5, 248, 214, 234, 67, 30, 242, 198, 15, 5, 248, 214, 234, 67, 30, + 242, 104, 15, 5, 248, 214, 234, 67, 30, 162, 15, 5, 248, 214, 234, 67, + 30, 235, 180, 15, 5, 248, 214, 234, 67, 30, 235, 181, 96, 232, 99, 15, 5, + 248, 214, 234, 67, 30, 234, 243, 15, 5, 248, 214, 234, 67, 30, 233, 136, + 15, 5, 248, 214, 234, 67, 30, 232, 99, 15, 5, 248, 214, 234, 67, 30, 232, + 100, 96, 231, 147, 15, 5, 248, 214, 234, 67, 30, 232, 85, 15, 5, 248, + 214, 234, 67, 30, 229, 108, 15, 5, 248, 214, 234, 67, 30, 226, 23, 96, + 226, 22, 15, 5, 248, 214, 234, 67, 30, 219, 192, 15, 5, 248, 214, 234, + 67, 30, 217, 73, 15, 5, 248, 214, 234, 67, 30, 214, 231, 96, 242, 198, + 15, 5, 248, 214, 234, 67, 30, 214, 126, 15, 5, 248, 188, 15, 5, 248, 167, + 15, 5, 248, 166, 15, 5, 248, 165, 15, 5, 248, 4, 15, 5, 247, 243, 15, 5, + 247, 218, 15, 5, 247, 219, 30, 220, 64, 15, 5, 247, 217, 15, 5, 247, 207, + 15, 5, 247, 208, 234, 209, 104, 242, 96, 247, 188, 15, 5, 247, 188, 15, + 5, 246, 79, 15, 5, 246, 80, 117, 246, 79, 15, 5, 246, 80, 242, 95, 15, 5, + 246, 80, 220, 46, 15, 5, 246, 77, 15, 5, 246, 78, 30, 245, 73, 15, 5, + 246, 76, 15, 5, 246, 75, 15, 5, 246, 74, 15, 5, 246, 73, 15, 5, 246, 69, + 15, 5, 246, 67, 15, 5, 246, 68, 242, 95, 15, 5, 246, 68, 242, 96, 242, + 95, 15, 5, 246, 66, 15, 5, 246, 59, 15, 5, 75, 15, 5, 160, 30, 226, 22, + 15, 5, 160, 117, 160, 227, 196, 117, 227, 195, 15, 5, 245, 235, 15, 5, + 245, 236, 30, 115, 96, 242, 50, 96, 248, 222, 15, 5, 245, 236, 30, 243, + 97, 15, 5, 245, 236, 30, 230, 231, 15, 5, 245, 236, 30, 222, 9, 15, 5, + 245, 236, 30, 220, 64, 15, 5, 245, 236, 30, 70, 15, 5, 245, 212, 15, 5, + 245, 201, 15, 5, 245, 175, 15, 5, 245, 151, 15, 5, 245, 152, 30, 243, + 105, 15, 5, 245, 152, 30, 243, 106, 216, 240, 15, 5, 245, 152, 30, 231, + 92, 15, 5, 245, 152, 249, 126, 245, 151, 15, 5, 245, 152, 226, 165, 245, + 151, 15, 5, 245, 152, 218, 234, 15, 5, 245, 90, 15, 5, 245, 88, 15, 5, + 245, 73, 15, 5, 245, 11, 15, 5, 245, 12, 30, 61, 15, 5, 245, 12, 30, 115, + 96, 233, 105, 15, 5, 245, 12, 30, 115, 96, 233, 106, 30, 233, 105, 15, 5, + 245, 12, 30, 254, 124, 15, 5, 245, 12, 30, 252, 177, 15, 5, 245, 12, 30, + 246, 68, 242, 95, 15, 5, 245, 12, 30, 246, 68, 242, 96, 242, 95, 15, 5, + 245, 12, 30, 162, 15, 5, 245, 12, 30, 242, 50, 242, 95, 15, 5, 245, 12, + 30, 236, 37, 242, 95, 15, 5, 245, 12, 30, 234, 208, 15, 5, 245, 12, 30, + 234, 209, 218, 234, 15, 5, 245, 12, 30, 233, 216, 15, 5, 245, 12, 30, + 233, 136, 15, 5, 245, 12, 30, 233, 106, 30, 233, 105, 15, 5, 245, 12, 30, + 232, 242, 15, 5, 245, 12, 30, 232, 99, 15, 5, 245, 12, 30, 214, 230, 15, + 5, 245, 12, 30, 214, 219, 15, 5, 243, 136, 15, 5, 243, 137, 242, 95, 15, + 5, 243, 134, 15, 5, 243, 135, 30, 115, 96, 248, 223, 96, 162, 15, 5, 243, + 135, 30, 115, 96, 162, 15, 5, 243, 135, 30, 115, 96, 236, 36, 15, 5, 243, + 135, 30, 255, 25, 216, 241, 96, 217, 94, 15, 5, 243, 135, 30, 254, 124, + 15, 5, 243, 135, 30, 253, 232, 15, 5, 243, 135, 30, 253, 231, 96, 243, + 119, 15, 5, 243, 135, 30, 252, 177, 15, 5, 243, 135, 30, 252, 142, 96, + 205, 15, 5, 243, 135, 30, 251, 99, 15, 5, 243, 135, 30, 251, 100, 96, + 205, 15, 5, 243, 135, 30, 248, 222, 15, 5, 243, 135, 30, 248, 4, 15, 5, + 243, 135, 30, 247, 219, 30, 220, 64, 15, 5, 243, 135, 30, 246, 77, 15, 5, + 243, 135, 30, 245, 175, 15, 5, 243, 135, 30, 245, 176, 96, 233, 136, 15, + 5, 243, 135, 30, 245, 151, 15, 5, 243, 135, 30, 245, 152, 30, 243, 106, + 216, 240, 15, 5, 243, 135, 30, 243, 106, 216, 240, 15, 5, 243, 135, 30, + 243, 97, 15, 5, 243, 135, 30, 242, 215, 15, 5, 243, 135, 30, 242, 213, + 15, 5, 243, 135, 30, 242, 214, 96, 61, 15, 5, 243, 135, 30, 242, 199, 96, + 218, 84, 15, 5, 243, 135, 30, 242, 50, 96, 232, 100, 96, 245, 73, 15, 5, + 243, 135, 30, 242, 31, 15, 5, 243, 135, 30, 242, 32, 96, 233, 136, 15, 5, + 243, 135, 30, 241, 182, 96, 232, 242, 15, 5, 243, 135, 30, 240, 219, 15, + 5, 243, 135, 30, 236, 37, 242, 95, 15, 5, 243, 135, 30, 235, 167, 96, + 240, 224, 96, 253, 232, 15, 5, 243, 135, 30, 234, 243, 15, 5, 243, 135, + 30, 234, 208, 15, 5, 243, 135, 30, 234, 90, 15, 5, 243, 135, 30, 234, 91, + 96, 233, 105, 15, 5, 243, 135, 30, 233, 217, 96, 254, 124, 15, 5, 243, + 135, 30, 233, 136, 15, 5, 243, 135, 30, 231, 93, 96, 245, 151, 15, 5, + 243, 135, 30, 230, 231, 15, 5, 243, 135, 30, 227, 195, 15, 5, 243, 135, + 30, 227, 196, 117, 227, 195, 15, 5, 243, 135, 30, 190, 15, 5, 243, 135, + 30, 222, 9, 15, 5, 243, 135, 30, 221, 232, 15, 5, 243, 135, 30, 220, 64, + 15, 5, 243, 135, 30, 220, 65, 96, 215, 99, 15, 5, 243, 135, 30, 220, 31, + 15, 5, 243, 135, 30, 218, 44, 15, 5, 243, 135, 30, 217, 73, 15, 5, 243, + 135, 30, 70, 15, 5, 243, 135, 30, 214, 219, 15, 5, 243, 135, 30, 214, + 220, 96, 246, 79, 15, 5, 243, 135, 117, 243, 134, 15, 5, 243, 129, 15, 5, + 243, 130, 249, 126, 243, 129, 15, 5, 243, 127, 15, 5, 243, 128, 117, 243, + 128, 243, 98, 117, 243, 97, 15, 5, 243, 119, 15, 5, 243, 120, 243, 128, + 117, 243, 128, 243, 98, 117, 243, 97, 15, 5, 243, 118, 15, 5, 243, 116, + 15, 5, 243, 107, 15, 5, 243, 105, 15, 5, 243, 106, 216, 240, 15, 5, 243, + 106, 117, 243, 105, 15, 5, 243, 106, 249, 126, 243, 105, 15, 5, 243, 97, + 15, 5, 243, 96, 15, 5, 243, 91, 15, 5, 243, 37, 15, 5, 243, 38, 30, 233, + 197, 15, 5, 242, 215, 15, 5, 242, 216, 30, 75, 15, 5, 242, 216, 30, 70, + 15, 5, 242, 216, 249, 126, 242, 215, 15, 5, 242, 213, 15, 5, 242, 214, + 117, 242, 213, 15, 5, 242, 214, 249, 126, 242, 213, 15, 5, 242, 210, 15, + 5, 242, 198, 15, 5, 242, 199, 242, 95, 15, 5, 242, 196, 15, 5, 242, 197, + 30, 115, 96, 236, 36, 15, 5, 242, 197, 30, 243, 106, 216, 240, 15, 5, + 242, 197, 30, 236, 36, 15, 5, 242, 197, 30, 232, 100, 96, 236, 36, 15, 5, + 242, 197, 30, 190, 15, 5, 242, 193, 15, 5, 242, 191, 15, 5, 242, 192, + 249, 126, 242, 191, 15, 5, 242, 192, 30, 252, 177, 15, 5, 242, 192, 30, + 217, 73, 15, 5, 242, 192, 216, 240, 15, 5, 242, 114, 15, 5, 242, 115, + 249, 126, 242, 114, 15, 5, 242, 112, 15, 5, 242, 113, 30, 234, 243, 15, + 5, 242, 113, 30, 234, 244, 30, 236, 37, 242, 95, 15, 5, 242, 113, 30, + 227, 195, 15, 5, 242, 113, 30, 222, 10, 96, 215, 114, 15, 5, 242, 113, + 242, 95, 15, 5, 242, 104, 15, 5, 242, 105, 30, 115, 96, 233, 197, 15, 5, + 242, 105, 30, 233, 197, 15, 5, 242, 105, 117, 242, 105, 232, 92, 15, 5, + 242, 99, 15, 5, 242, 97, 15, 5, 242, 98, 30, 220, 64, 15, 5, 242, 89, 15, + 5, 242, 88, 15, 5, 242, 85, 15, 5, 242, 84, 15, 5, 162, 15, 5, 242, 50, + 216, 240, 15, 5, 242, 50, 242, 95, 15, 5, 242, 31, 15, 5, 241, 181, 15, + 5, 241, 182, 30, 253, 232, 15, 5, 241, 182, 30, 253, 230, 15, 5, 241, + 182, 30, 252, 177, 15, 5, 241, 182, 30, 247, 188, 15, 5, 241, 182, 30, + 243, 127, 15, 5, 241, 182, 30, 234, 82, 15, 5, 241, 182, 30, 227, 195, + 15, 5, 241, 182, 30, 220, 64, 15, 5, 241, 182, 30, 70, 15, 5, 240, 223, + 15, 5, 240, 219, 15, 5, 240, 220, 30, 254, 124, 15, 5, 240, 220, 30, 242, + 31, 15, 5, 240, 220, 30, 234, 208, 15, 5, 240, 220, 30, 232, 198, 15, 5, + 240, 220, 30, 214, 219, 15, 5, 240, 216, 15, 5, 73, 15, 5, 240, 155, 61, + 15, 5, 240, 116, 15, 5, 236, 64, 15, 5, 236, 65, 117, 236, 65, 251, 99, + 15, 5, 236, 65, 117, 236, 65, 218, 234, 15, 5, 236, 39, 15, 5, 236, 36, + 15, 5, 236, 37, 247, 243, 15, 5, 236, 37, 223, 36, 15, 5, 236, 37, 117, + 236, 37, 220, 15, 117, 220, 15, 214, 220, 117, 214, 219, 15, 5, 236, 37, + 242, 95, 15, 5, 236, 28, 15, 5, 236, 29, 30, 243, 106, 216, 240, 15, 5, + 236, 27, 15, 5, 236, 17, 15, 5, 236, 18, 30, 217, 73, 15, 5, 236, 18, + 249, 126, 236, 17, 15, 5, 236, 18, 226, 165, 236, 17, 15, 5, 236, 18, + 218, 234, 15, 5, 236, 10, 15, 5, 236, 0, 15, 5, 235, 180, 15, 5, 235, + 166, 15, 5, 176, 15, 5, 235, 14, 30, 61, 15, 5, 235, 14, 30, 255, 0, 15, + 5, 235, 14, 30, 255, 1, 96, 233, 216, 15, 5, 235, 14, 30, 253, 230, 15, + 5, 235, 14, 30, 252, 177, 15, 5, 235, 14, 30, 252, 161, 15, 5, 235, 14, + 30, 130, 15, 5, 235, 14, 30, 252, 7, 15, 5, 235, 14, 30, 245, 88, 15, 5, + 235, 14, 30, 245, 73, 15, 5, 235, 14, 30, 243, 136, 15, 5, 235, 14, 30, + 243, 119, 15, 5, 235, 14, 30, 243, 106, 216, 240, 15, 5, 235, 14, 30, + 243, 97, 15, 5, 235, 14, 30, 243, 98, 96, 220, 102, 96, 61, 15, 5, 235, + 14, 30, 242, 215, 15, 5, 235, 14, 30, 242, 198, 15, 5, 235, 14, 30, 242, + 192, 96, 221, 232, 15, 5, 235, 14, 30, 242, 192, 249, 126, 242, 191, 15, + 5, 235, 14, 30, 242, 114, 15, 5, 235, 14, 30, 242, 88, 15, 5, 235, 14, + 30, 236, 36, 15, 5, 235, 14, 30, 236, 17, 15, 5, 235, 14, 30, 234, 243, + 15, 5, 235, 14, 30, 234, 93, 15, 5, 235, 14, 30, 234, 90, 15, 5, 235, 14, + 30, 232, 242, 15, 5, 235, 14, 30, 232, 99, 15, 5, 235, 14, 30, 231, 92, + 15, 5, 235, 14, 30, 231, 93, 96, 246, 79, 15, 5, 235, 14, 30, 231, 93, + 96, 242, 215, 15, 5, 235, 14, 30, 231, 93, 96, 217, 23, 15, 5, 235, 14, + 30, 230, 231, 15, 5, 235, 14, 30, 230, 232, 96, 227, 190, 15, 5, 235, 14, + 30, 229, 108, 15, 5, 235, 14, 30, 227, 195, 15, 5, 235, 14, 30, 225, 109, + 15, 5, 235, 14, 30, 222, 141, 15, 5, 235, 14, 30, 206, 15, 5, 235, 14, + 30, 221, 232, 15, 5, 235, 14, 30, 220, 103, 15, 5, 235, 14, 30, 220, 64, + 15, 5, 235, 14, 30, 220, 31, 15, 5, 235, 14, 30, 219, 226, 15, 5, 235, + 14, 30, 219, 183, 15, 5, 235, 14, 30, 218, 52, 15, 5, 235, 14, 30, 217, + 51, 15, 5, 235, 14, 30, 70, 15, 5, 235, 14, 30, 214, 230, 15, 5, 235, 14, + 30, 214, 219, 15, 5, 235, 14, 30, 214, 193, 30, 190, 15, 5, 235, 14, 30, + 214, 126, 15, 5, 235, 14, 30, 210, 44, 15, 5, 235, 12, 15, 5, 235, 13, + 249, 126, 235, 12, 15, 5, 235, 5, 15, 5, 235, 2, 15, 5, 235, 0, 15, 5, + 234, 255, 15, 5, 234, 253, 15, 5, 234, 254, 117, 234, 253, 15, 5, 234, + 243, 15, 5, 234, 244, 30, 236, 37, 242, 95, 15, 5, 234, 239, 15, 5, 234, + 240, 30, 252, 177, 15, 5, 234, 240, 249, 126, 234, 239, 15, 5, 234, 237, + 15, 5, 234, 236, 15, 5, 234, 208, 15, 5, 234, 209, 233, 119, 30, 104, + 117, 233, 119, 30, 70, 15, 5, 234, 209, 117, 234, 209, 233, 119, 30, 104, + 117, 233, 119, 30, 70, 15, 5, 234, 158, 15, 5, 234, 93, 15, 5, 234, 94, + 30, 252, 177, 15, 5, 234, 94, 30, 70, 15, 5, 234, 94, 30, 214, 219, 15, + 5, 234, 90, 15, 5, 234, 82, 15, 5, 234, 69, 15, 5, 234, 68, 15, 5, 234, + 66, 15, 5, 234, 67, 117, 234, 66, 15, 5, 233, 218, 15, 5, 233, 219, 117, + 241, 182, 30, 253, 231, 233, 219, 117, 241, 182, 30, 253, 230, 15, 5, + 233, 216, 15, 5, 233, 214, 15, 5, 233, 215, 214, 12, 17, 15, 5, 233, 213, + 15, 5, 233, 210, 15, 5, 233, 211, 242, 95, 15, 5, 233, 209, 15, 5, 233, + 197, 15, 5, 233, 198, 226, 165, 233, 197, 15, 5, 233, 192, 15, 5, 233, + 173, 15, 5, 233, 136, 15, 5, 233, 118, 15, 5, 233, 119, 30, 61, 15, 5, + 233, 119, 30, 115, 96, 248, 223, 96, 162, 15, 5, 233, 119, 30, 115, 96, + 243, 97, 15, 5, 233, 119, 30, 115, 96, 233, 105, 15, 5, 233, 119, 30, + 254, 179, 15, 5, 233, 119, 30, 254, 124, 15, 5, 233, 119, 30, 253, 233, + 210, 40, 216, 240, 15, 5, 233, 119, 30, 252, 177, 15, 5, 233, 119, 30, + 252, 7, 15, 5, 233, 119, 30, 248, 167, 15, 5, 233, 119, 30, 245, 151, 15, + 5, 233, 119, 30, 243, 136, 15, 5, 233, 119, 30, 243, 97, 15, 5, 233, 119, + 30, 242, 104, 15, 5, 233, 119, 30, 242, 105, 96, 242, 104, 15, 5, 233, + 119, 30, 162, 15, 5, 233, 119, 30, 242, 31, 15, 5, 233, 119, 30, 241, + 182, 30, 227, 195, 15, 5, 233, 119, 30, 236, 37, 242, 95, 15, 5, 233, + 119, 30, 236, 17, 15, 5, 233, 119, 30, 236, 18, 96, 162, 15, 5, 233, 119, + 30, 236, 18, 96, 232, 99, 15, 5, 233, 119, 30, 234, 93, 15, 5, 233, 119, + 30, 234, 82, 15, 5, 233, 119, 30, 233, 216, 15, 5, 233, 119, 30, 233, + 210, 15, 5, 233, 119, 30, 233, 211, 96, 241, 182, 96, 61, 15, 5, 233, + 119, 30, 233, 118, 15, 5, 233, 119, 30, 232, 198, 15, 5, 233, 119, 30, + 232, 99, 15, 5, 233, 119, 30, 232, 87, 15, 5, 233, 119, 30, 231, 92, 15, + 5, 233, 119, 30, 231, 93, 96, 245, 151, 15, 5, 233, 119, 30, 230, 62, 15, + 5, 233, 119, 30, 229, 108, 15, 5, 233, 119, 30, 220, 65, 96, 218, 44, 15, + 5, 233, 119, 30, 220, 11, 96, 242, 192, 96, 245, 88, 15, 5, 233, 119, 30, + 220, 11, 96, 242, 192, 216, 240, 15, 5, 233, 119, 30, 219, 224, 15, 5, + 233, 119, 30, 219, 225, 96, 219, 224, 15, 5, 233, 119, 30, 218, 44, 15, + 5, 233, 119, 30, 217, 85, 15, 5, 233, 119, 30, 217, 73, 15, 5, 233, 119, + 30, 217, 24, 96, 115, 96, 218, 85, 96, 197, 15, 5, 233, 119, 30, 70, 15, + 5, 233, 119, 30, 104, 96, 61, 15, 5, 233, 119, 30, 104, 96, 104, 96, 70, + 15, 5, 233, 119, 30, 214, 231, 96, 253, 232, 15, 5, 233, 119, 30, 214, + 219, 15, 5, 233, 119, 30, 214, 126, 15, 5, 233, 119, 218, 234, 15, 5, + 233, 116, 15, 5, 233, 117, 30, 220, 64, 15, 5, 233, 117, 30, 220, 65, 96, + 218, 44, 15, 5, 233, 117, 242, 95, 15, 5, 233, 117, 242, 96, 117, 233, + 117, 242, 96, 220, 64, 15, 5, 233, 112, 15, 5, 233, 105, 15, 5, 233, 106, + 30, 233, 105, 15, 5, 233, 103, 15, 5, 233, 104, 30, 233, 197, 15, 5, 233, + 104, 30, 233, 198, 96, 222, 141, 15, 5, 232, 242, 15, 5, 232, 227, 15, 5, + 232, 217, 15, 5, 232, 198, 15, 5, 232, 99, 15, 5, 232, 100, 30, 252, 177, + 15, 5, 232, 97, 15, 5, 232, 98, 30, 254, 179, 15, 5, 232, 98, 30, 252, + 177, 15, 5, 232, 98, 30, 245, 73, 15, 5, 232, 98, 30, 245, 74, 216, 240, + 15, 5, 232, 98, 30, 243, 106, 216, 240, 15, 5, 232, 98, 30, 241, 182, 30, + 252, 177, 15, 5, 232, 98, 30, 236, 17, 15, 5, 232, 98, 30, 235, 2, 15, 5, + 232, 98, 30, 235, 0, 15, 5, 232, 98, 30, 235, 1, 96, 253, 232, 15, 5, + 232, 98, 30, 234, 93, 15, 5, 232, 98, 30, 233, 137, 96, 253, 232, 15, 5, + 232, 98, 30, 233, 118, 15, 5, 232, 98, 30, 231, 93, 96, 245, 151, 15, 5, + 232, 98, 30, 229, 108, 15, 5, 232, 98, 30, 227, 238, 15, 5, 232, 98, 30, + 219, 193, 96, 253, 232, 15, 5, 232, 98, 30, 219, 175, 96, 251, 126, 15, + 5, 232, 98, 30, 215, 114, 15, 5, 232, 98, 216, 240, 15, 5, 232, 98, 249, + 126, 232, 97, 15, 5, 232, 98, 226, 165, 232, 97, 15, 5, 232, 98, 218, + 234, 15, 5, 232, 98, 220, 46, 15, 5, 232, 96, 15, 5, 232, 92, 15, 5, 232, + 93, 117, 232, 92, 15, 5, 232, 93, 226, 165, 232, 92, 15, 5, 232, 93, 220, + 46, 15, 5, 232, 90, 15, 5, 232, 87, 15, 5, 232, 85, 15, 5, 232, 86, 117, + 232, 85, 15, 5, 232, 86, 117, 232, 86, 243, 98, 117, 243, 97, 15, 5, 185, + 15, 5, 231, 240, 30, 217, 73, 15, 5, 231, 240, 242, 95, 15, 5, 231, 239, + 15, 5, 231, 211, 15, 5, 231, 167, 15, 5, 231, 148, 15, 5, 231, 147, 15, + 5, 231, 92, 15, 5, 231, 48, 15, 5, 230, 231, 15, 5, 230, 189, 15, 5, 230, + 103, 15, 5, 230, 104, 117, 230, 103, 15, 5, 230, 94, 15, 5, 230, 95, 242, + 95, 15, 5, 230, 79, 15, 5, 230, 65, 15, 5, 230, 62, 15, 5, 230, 63, 30, + 61, 15, 5, 230, 63, 30, 233, 197, 15, 5, 230, 63, 30, 210, 116, 15, 5, + 230, 63, 117, 230, 62, 15, 5, 230, 63, 117, 230, 63, 30, 115, 96, 197, + 15, 5, 230, 63, 249, 126, 230, 62, 15, 5, 230, 60, 15, 5, 230, 61, 30, + 61, 15, 5, 230, 61, 30, 115, 96, 248, 4, 15, 5, 230, 61, 30, 248, 4, 15, + 5, 230, 61, 242, 95, 15, 5, 197, 15, 5, 229, 228, 15, 5, 229, 217, 15, 5, + 229, 218, 235, 193, 15, 5, 229, 218, 30, 219, 227, 216, 240, 15, 5, 229, + 218, 226, 165, 229, 217, 15, 5, 229, 216, 15, 5, 229, 209, 227, 181, 15, + 5, 229, 208, 15, 5, 229, 207, 15, 5, 229, 108, 15, 5, 229, 109, 30, 61, + 15, 5, 229, 109, 30, 214, 219, 15, 5, 229, 109, 220, 46, 15, 5, 228, 234, + 15, 5, 228, 235, 30, 75, 15, 5, 228, 233, 15, 5, 228, 204, 15, 5, 228, + 205, 30, 243, 106, 216, 240, 15, 5, 228, 205, 30, 243, 98, 96, 243, 106, + 216, 240, 15, 5, 228, 202, 15, 5, 228, 203, 30, 254, 124, 15, 5, 228, + 203, 30, 253, 232, 15, 5, 228, 203, 30, 253, 233, 96, 253, 232, 15, 5, + 228, 203, 30, 242, 104, 15, 5, 228, 203, 30, 231, 93, 96, 243, 106, 216, + 240, 15, 5, 228, 203, 30, 229, 108, 15, 5, 228, 203, 30, 227, 195, 15, 5, + 228, 203, 30, 220, 64, 15, 5, 228, 203, 30, 220, 65, 96, 115, 254, 124, + 15, 5, 228, 203, 30, 220, 65, 96, 253, 232, 15, 5, 228, 203, 30, 220, 65, + 96, 253, 233, 96, 253, 232, 15, 5, 228, 203, 30, 214, 231, 96, 253, 232, + 15, 5, 228, 203, 30, 214, 126, 15, 5, 228, 191, 15, 5, 227, 238, 15, 5, + 227, 211, 15, 5, 227, 195, 15, 5, 227, 196, 233, 117, 30, 243, 97, 15, 5, + 227, 196, 233, 117, 30, 231, 148, 15, 5, 227, 196, 233, 117, 30, 222, 9, + 15, 5, 227, 196, 233, 117, 30, 222, 10, 117, 227, 196, 233, 117, 30, 222, + 9, 15, 5, 227, 196, 233, 117, 30, 214, 126, 15, 5, 227, 196, 216, 240, + 15, 5, 227, 196, 117, 227, 195, 15, 5, 227, 196, 249, 126, 227, 195, 15, + 5, 227, 196, 249, 126, 227, 196, 233, 117, 117, 233, 116, 15, 5, 227, + 190, 15, 5, 227, 191, 255, 25, 30, 253, 227, 15, 5, 227, 191, 255, 25, + 30, 252, 7, 15, 5, 227, 191, 255, 25, 30, 246, 75, 15, 5, 227, 191, 255, + 25, 30, 242, 104, 15, 5, 227, 191, 255, 25, 30, 236, 37, 242, 95, 15, 5, + 227, 191, 255, 25, 30, 235, 0, 15, 5, 227, 191, 255, 25, 30, 233, 136, + 15, 5, 227, 191, 255, 25, 30, 229, 108, 15, 5, 227, 191, 255, 25, 30, + 219, 172, 15, 5, 227, 191, 255, 25, 30, 214, 230, 15, 5, 227, 191, 234, + 67, 30, 252, 7, 15, 5, 227, 191, 234, 67, 30, 252, 8, 70, 15, 5, 190, 15, + 5, 226, 81, 15, 5, 226, 48, 15, 5, 226, 22, 15, 5, 225, 162, 15, 5, 225, + 109, 15, 5, 225, 110, 30, 61, 15, 5, 225, 110, 30, 255, 26, 15, 5, 225, + 110, 30, 252, 7, 15, 5, 225, 110, 30, 251, 126, 15, 5, 225, 110, 30, 75, + 15, 5, 225, 110, 30, 73, 15, 5, 225, 110, 30, 240, 116, 15, 5, 225, 110, + 30, 70, 15, 5, 225, 110, 30, 214, 230, 15, 5, 225, 110, 249, 126, 225, + 109, 15, 5, 225, 54, 15, 5, 225, 55, 30, 234, 239, 15, 5, 225, 55, 30, + 214, 219, 15, 5, 225, 55, 30, 210, 116, 15, 5, 225, 55, 226, 165, 225, + 54, 15, 5, 205, 15, 5, 223, 183, 15, 5, 223, 36, 15, 5, 222, 141, 15, 5, + 206, 15, 5, 222, 23, 227, 181, 15, 5, 222, 22, 15, 5, 222, 23, 30, 61, + 15, 5, 222, 23, 30, 246, 79, 15, 5, 222, 23, 30, 246, 77, 15, 5, 222, 23, + 30, 162, 15, 5, 222, 23, 30, 234, 243, 15, 5, 222, 23, 30, 233, 197, 15, + 5, 222, 23, 30, 232, 85, 15, 5, 222, 23, 30, 230, 231, 15, 5, 222, 23, + 30, 227, 195, 15, 5, 222, 23, 30, 222, 9, 15, 5, 222, 23, 30, 220, 31, + 15, 5, 222, 23, 30, 217, 94, 15, 5, 222, 23, 30, 214, 230, 15, 5, 222, + 23, 30, 214, 225, 15, 5, 222, 23, 30, 214, 197, 15, 5, 222, 23, 30, 214, + 150, 15, 5, 222, 23, 30, 214, 126, 15, 5, 222, 23, 117, 222, 22, 15, 5, + 222, 23, 242, 95, 15, 5, 222, 9, 15, 5, 222, 10, 233, 119, 30, 253, 230, + 15, 5, 221, 240, 15, 5, 221, 232, 15, 5, 220, 103, 15, 5, 220, 101, 15, + 5, 220, 102, 30, 61, 15, 5, 220, 102, 30, 252, 177, 15, 5, 220, 102, 30, + 242, 191, 15, 5, 220, 102, 30, 229, 108, 15, 5, 220, 102, 30, 219, 224, + 15, 5, 220, 102, 30, 215, 99, 15, 5, 220, 102, 30, 70, 15, 5, 220, 102, + 30, 104, 96, 61, 15, 5, 220, 100, 15, 5, 220, 98, 15, 5, 220, 79, 15, 5, + 220, 64, 15, 5, 220, 65, 240, 223, 15, 5, 220, 65, 117, 220, 65, 243, + 128, 117, 243, 128, 243, 98, 117, 243, 97, 15, 5, 220, 65, 117, 220, 65, + 217, 95, 117, 217, 95, 243, 98, 117, 243, 97, 15, 5, 220, 57, 15, 5, 220, + 52, 15, 5, 220, 49, 15, 5, 220, 48, 15, 5, 220, 45, 15, 5, 220, 31, 15, + 5, 220, 32, 30, 61, 15, 5, 220, 32, 30, 236, 17, 15, 5, 220, 25, 15, 5, + 220, 26, 30, 61, 15, 5, 220, 26, 30, 252, 162, 15, 5, 220, 26, 30, 251, + 110, 15, 5, 220, 26, 30, 247, 207, 15, 5, 220, 26, 30, 243, 97, 15, 5, + 220, 26, 30, 236, 36, 15, 5, 220, 26, 30, 236, 37, 242, 95, 15, 5, 220, + 26, 30, 233, 192, 15, 5, 220, 26, 30, 232, 87, 15, 5, 220, 26, 30, 230, + 94, 15, 5, 220, 26, 30, 222, 9, 15, 5, 220, 19, 15, 5, 220, 14, 15, 5, + 220, 15, 216, 240, 15, 5, 220, 15, 117, 220, 15, 251, 100, 117, 251, 99, + 15, 5, 220, 10, 15, 5, 219, 226, 15, 5, 219, 227, 117, 235, 194, 219, + 226, 15, 5, 219, 224, 15, 5, 219, 223, 15, 5, 219, 192, 15, 5, 219, 193, + 242, 95, 15, 5, 219, 183, 15, 5, 219, 181, 15, 5, 219, 182, 117, 219, + 182, 219, 224, 15, 5, 219, 174, 15, 5, 219, 172, 15, 5, 218, 84, 15, 5, + 218, 85, 117, 218, 84, 15, 5, 218, 55, 15, 5, 218, 54, 15, 5, 218, 52, + 15, 5, 218, 44, 15, 5, 218, 43, 15, 5, 218, 18, 15, 5, 218, 17, 15, 5, + 217, 106, 15, 5, 217, 107, 253, 217, 15, 5, 217, 107, 30, 241, 181, 15, + 5, 217, 107, 30, 230, 231, 15, 5, 217, 107, 242, 95, 15, 5, 217, 94, 15, + 5, 217, 95, 117, 217, 95, 228, 235, 117, 228, 235, 247, 189, 117, 247, + 188, 15, 5, 217, 95, 218, 234, 15, 5, 217, 85, 15, 5, 129, 30, 252, 7, + 15, 5, 129, 30, 242, 104, 15, 5, 129, 30, 220, 64, 15, 5, 129, 30, 219, + 226, 15, 5, 129, 30, 215, 114, 15, 5, 129, 30, 214, 219, 15, 5, 217, 73, + 15, 5, 217, 51, 15, 5, 217, 23, 15, 5, 217, 24, 242, 95, 15, 5, 216, 118, + 15, 5, 216, 119, 216, 240, 15, 5, 216, 91, 15, 5, 216, 73, 15, 5, 216, + 74, 30, 217, 73, 15, 5, 216, 74, 117, 216, 73, 15, 5, 216, 74, 117, 216, + 74, 243, 128, 117, 243, 128, 243, 98, 117, 243, 97, 15, 5, 215, 119, 15, + 5, 215, 114, 15, 5, 215, 112, 15, 5, 215, 109, 15, 5, 215, 99, 15, 5, + 215, 100, 117, 215, 100, 210, 117, 117, 210, 116, 15, 5, 70, 15, 5, 104, + 242, 104, 15, 5, 104, 104, 70, 15, 5, 104, 117, 104, 226, 91, 117, 226, + 91, 243, 98, 117, 243, 97, 15, 5, 104, 117, 104, 218, 19, 117, 218, 18, + 15, 5, 104, 117, 104, 104, 223, 50, 117, 104, 223, 49, 15, 5, 214, 230, + 15, 5, 214, 225, 15, 5, 214, 219, 15, 5, 214, 220, 233, 192, 15, 5, 214, + 220, 30, 252, 177, 15, 5, 214, 220, 30, 230, 231, 15, 5, 214, 220, 30, + 104, 96, 104, 96, 70, 15, 5, 214, 220, 30, 104, 96, 104, 96, 104, 242, + 95, 15, 5, 214, 220, 242, 95, 15, 5, 214, 220, 220, 46, 15, 5, 214, 220, + 220, 47, 30, 252, 177, 15, 5, 214, 215, 15, 5, 214, 197, 15, 5, 214, 198, + 30, 233, 118, 15, 5, 214, 198, 30, 231, 93, 96, 248, 222, 15, 5, 214, + 198, 30, 220, 101, 15, 5, 214, 198, 30, 70, 15, 5, 214, 196, 15, 5, 214, + 192, 15, 5, 214, 193, 30, 234, 208, 15, 5, 214, 193, 30, 190, 15, 5, 214, + 190, 15, 5, 214, 191, 242, 95, 15, 5, 214, 150, 15, 5, 214, 151, 249, + 126, 214, 150, 15, 5, 214, 151, 220, 46, 15, 5, 214, 148, 15, 5, 214, + 149, 30, 115, 96, 162, 15, 5, 214, 149, 30, 115, 96, 197, 15, 5, 214, + 149, 30, 254, 179, 15, 5, 214, 149, 30, 162, 15, 5, 214, 149, 30, 227, + 195, 15, 5, 214, 149, 30, 214, 230, 15, 5, 214, 149, 30, 214, 231, 96, + 253, 232, 15, 5, 214, 149, 30, 214, 231, 96, 252, 7, 15, 5, 214, 147, 15, + 5, 214, 144, 15, 5, 214, 143, 15, 5, 214, 139, 15, 5, 214, 140, 30, 61, + 15, 5, 214, 140, 30, 253, 227, 15, 5, 214, 140, 30, 130, 15, 5, 214, 140, + 30, 246, 69, 15, 5, 214, 140, 30, 243, 136, 15, 5, 214, 140, 30, 243, + 119, 15, 5, 214, 140, 30, 243, 106, 216, 240, 15, 5, 214, 140, 30, 243, + 97, 15, 5, 214, 140, 30, 242, 114, 15, 5, 214, 140, 30, 162, 15, 5, 214, + 140, 30, 236, 36, 15, 5, 214, 140, 30, 236, 17, 15, 5, 214, 140, 30, 235, + 166, 15, 5, 214, 140, 30, 234, 93, 15, 5, 214, 140, 30, 232, 85, 15, 5, + 214, 140, 30, 230, 189, 15, 5, 214, 140, 30, 190, 15, 5, 214, 140, 30, + 220, 64, 15, 5, 214, 140, 30, 219, 181, 15, 5, 214, 140, 30, 215, 119, + 15, 5, 214, 140, 30, 104, 96, 242, 104, 15, 5, 214, 140, 30, 214, 219, 15, 5, 214, 140, 30, 214, 137, 15, 5, 214, 137, 15, 5, 214, 138, 30, 70, - 15, 5, 214, 126, 15, 5, 214, 127, 30, 61, 15, 5, 214, 127, 30, 233, 217, - 15, 5, 214, 127, 30, 233, 196, 15, 5, 214, 127, 30, 217, 72, 15, 5, 214, + 15, 5, 214, 126, 15, 5, 214, 127, 30, 61, 15, 5, 214, 127, 30, 233, 218, + 15, 5, 214, 127, 30, 233, 197, 15, 5, 214, 127, 30, 217, 73, 15, 5, 214, 122, 15, 5, 214, 125, 15, 5, 214, 123, 15, 5, 214, 119, 15, 5, 214, 108, - 15, 5, 214, 109, 30, 234, 207, 15, 5, 214, 107, 15, 5, 210, 116, 15, 5, - 210, 117, 216, 239, 15, 5, 210, 117, 92, 30, 233, 196, 15, 5, 210, 113, + 15, 5, 214, 109, 30, 234, 208, 15, 5, 214, 107, 15, 5, 210, 116, 15, 5, + 210, 117, 216, 240, 15, 5, 210, 117, 92, 30, 233, 197, 15, 5, 210, 113, 15, 5, 210, 106, 15, 5, 210, 93, 15, 5, 210, 44, 15, 5, 210, 45, 117, - 210, 44, 15, 5, 210, 43, 15, 5, 210, 41, 15, 5, 210, 42, 235, 3, 216, - 239, 15, 5, 210, 36, 15, 5, 210, 28, 15, 5, 210, 13, 15, 5, 210, 11, 15, + 210, 44, 15, 5, 210, 43, 15, 5, 210, 41, 15, 5, 210, 42, 235, 4, 216, + 240, 15, 5, 210, 36, 15, 5, 210, 28, 15, 5, 210, 13, 15, 5, 210, 11, 15, 5, 210, 12, 30, 61, 15, 5, 210, 10, 15, 5, 210, 9, 15, 132, 5, 113, 253, - 231, 15, 132, 5, 134, 253, 231, 15, 132, 5, 244, 11, 253, 231, 15, 132, - 5, 244, 81, 253, 231, 15, 132, 5, 219, 125, 253, 231, 15, 132, 5, 220, - 122, 253, 231, 15, 132, 5, 245, 193, 253, 231, 15, 132, 5, 228, 200, 253, - 231, 15, 132, 5, 134, 247, 187, 15, 132, 5, 244, 11, 247, 187, 15, 132, - 5, 244, 81, 247, 187, 15, 132, 5, 219, 125, 247, 187, 15, 132, 5, 220, - 122, 247, 187, 15, 132, 5, 245, 193, 247, 187, 15, 132, 5, 228, 200, 247, - 187, 15, 132, 5, 244, 11, 70, 15, 132, 5, 244, 81, 70, 15, 132, 5, 219, - 125, 70, 15, 132, 5, 220, 122, 70, 15, 132, 5, 245, 193, 70, 15, 132, 5, - 228, 200, 70, 15, 132, 5, 123, 243, 38, 15, 132, 5, 113, 243, 38, 15, - 132, 5, 134, 243, 38, 15, 132, 5, 244, 11, 243, 38, 15, 132, 5, 244, 81, - 243, 38, 15, 132, 5, 219, 125, 243, 38, 15, 132, 5, 220, 122, 243, 38, - 15, 132, 5, 245, 193, 243, 38, 15, 132, 5, 228, 200, 243, 38, 15, 132, 5, - 123, 243, 35, 15, 132, 5, 113, 243, 35, 15, 132, 5, 134, 243, 35, 15, - 132, 5, 244, 11, 243, 35, 15, 132, 5, 244, 81, 243, 35, 15, 132, 5, 113, - 220, 78, 15, 132, 5, 134, 220, 78, 15, 132, 5, 134, 220, 79, 214, 12, 17, - 15, 132, 5, 244, 11, 220, 78, 15, 132, 5, 244, 81, 220, 78, 15, 132, 5, - 219, 125, 220, 78, 15, 132, 5, 220, 122, 220, 78, 15, 132, 5, 245, 193, - 220, 78, 15, 132, 5, 228, 200, 220, 78, 15, 132, 5, 123, 220, 73, 15, - 132, 5, 113, 220, 73, 15, 132, 5, 134, 220, 73, 15, 132, 5, 134, 220, 74, - 214, 12, 17, 15, 132, 5, 244, 11, 220, 73, 15, 132, 5, 244, 81, 220, 73, - 15, 132, 5, 220, 79, 30, 243, 119, 96, 247, 187, 15, 132, 5, 220, 79, 30, - 243, 119, 96, 230, 188, 15, 132, 5, 123, 251, 95, 15, 132, 5, 113, 251, - 95, 15, 132, 5, 134, 251, 95, 15, 132, 5, 134, 251, 96, 214, 12, 17, 15, - 132, 5, 244, 11, 251, 95, 15, 132, 5, 244, 81, 251, 95, 15, 132, 5, 134, - 214, 12, 244, 20, 245, 74, 15, 132, 5, 134, 214, 12, 244, 20, 245, 71, - 15, 132, 5, 244, 11, 214, 12, 244, 20, 232, 217, 15, 132, 5, 244, 11, - 214, 12, 244, 20, 232, 215, 15, 132, 5, 244, 11, 214, 12, 244, 20, 232, - 218, 61, 15, 132, 5, 244, 11, 214, 12, 244, 20, 232, 218, 253, 158, 15, - 132, 5, 219, 125, 214, 12, 244, 20, 253, 228, 15, 132, 5, 220, 122, 214, - 12, 244, 20, 236, 8, 15, 132, 5, 220, 122, 214, 12, 244, 20, 236, 10, 61, - 15, 132, 5, 220, 122, 214, 12, 244, 20, 236, 10, 253, 158, 15, 132, 5, - 245, 193, 214, 12, 244, 20, 214, 121, 15, 132, 5, 245, 193, 214, 12, 244, - 20, 214, 120, 15, 132, 5, 228, 200, 214, 12, 244, 20, 236, 24, 15, 132, - 5, 228, 200, 214, 12, 244, 20, 236, 23, 15, 132, 5, 228, 200, 214, 12, - 244, 20, 236, 22, 15, 132, 5, 228, 200, 214, 12, 244, 20, 236, 25, 61, - 15, 132, 5, 113, 253, 232, 216, 239, 15, 132, 5, 134, 253, 232, 216, 239, - 15, 132, 5, 244, 11, 253, 232, 216, 239, 15, 132, 5, 244, 81, 253, 232, - 216, 239, 15, 132, 5, 219, 125, 253, 232, 216, 239, 15, 132, 5, 123, 252, - 150, 15, 132, 5, 113, 252, 150, 15, 132, 5, 134, 252, 150, 15, 132, 5, - 244, 11, 252, 150, 15, 132, 5, 244, 11, 252, 151, 214, 12, 17, 15, 132, - 5, 244, 81, 252, 150, 15, 132, 5, 244, 81, 252, 151, 214, 12, 17, 15, - 132, 5, 228, 210, 15, 132, 5, 228, 211, 15, 132, 5, 123, 245, 70, 15, - 132, 5, 113, 245, 70, 15, 132, 5, 123, 216, 169, 247, 187, 15, 132, 5, - 113, 216, 167, 247, 187, 15, 132, 5, 244, 81, 219, 114, 247, 187, 15, - 132, 5, 123, 216, 169, 214, 12, 244, 20, 61, 15, 132, 5, 113, 216, 167, - 214, 12, 244, 20, 61, 15, 132, 5, 123, 245, 189, 253, 231, 15, 132, 5, - 123, 224, 22, 253, 231, 15, 132, 5, 55, 253, 219, 123, 219, 115, 15, 132, - 5, 55, 253, 219, 123, 224, 21, 15, 224, 141, 5, 55, 253, 219, 211, 209, - 247, 172, 15, 224, 141, 5, 67, 249, 226, 15, 224, 141, 5, 247, 255, 249, - 226, 15, 224, 141, 5, 247, 255, 215, 221, 12, 13, 255, 155, 12, 13, 255, - 154, 12, 13, 255, 153, 12, 13, 255, 152, 12, 13, 255, 151, 12, 13, 255, - 150, 12, 13, 255, 149, 12, 13, 255, 148, 12, 13, 255, 147, 12, 13, 255, - 146, 12, 13, 255, 145, 12, 13, 255, 144, 12, 13, 255, 143, 12, 13, 255, - 142, 12, 13, 255, 141, 12, 13, 255, 140, 12, 13, 255, 139, 12, 13, 255, - 138, 12, 13, 255, 137, 12, 13, 255, 136, 12, 13, 255, 135, 12, 13, 255, - 134, 12, 13, 255, 133, 12, 13, 255, 132, 12, 13, 255, 131, 12, 13, 255, - 130, 12, 13, 255, 129, 12, 13, 255, 128, 12, 13, 255, 127, 12, 13, 255, - 126, 12, 13, 255, 125, 12, 13, 255, 124, 12, 13, 255, 123, 12, 13, 255, - 122, 12, 13, 255, 121, 12, 13, 255, 120, 12, 13, 255, 119, 12, 13, 255, - 118, 12, 13, 255, 117, 12, 13, 255, 116, 12, 13, 255, 115, 12, 13, 255, - 114, 12, 13, 255, 113, 12, 13, 255, 112, 12, 13, 255, 111, 12, 13, 255, - 110, 12, 13, 255, 109, 12, 13, 255, 108, 12, 13, 255, 107, 12, 13, 255, - 106, 12, 13, 255, 105, 12, 13, 255, 104, 12, 13, 255, 103, 12, 13, 255, - 102, 12, 13, 255, 101, 12, 13, 255, 100, 12, 13, 255, 99, 12, 13, 255, - 98, 12, 13, 255, 97, 12, 13, 255, 96, 12, 13, 255, 95, 12, 13, 255, 94, - 12, 13, 255, 93, 12, 13, 255, 92, 12, 13, 255, 91, 12, 13, 255, 90, 12, - 13, 255, 89, 12, 13, 255, 88, 12, 13, 255, 87, 12, 13, 255, 86, 12, 13, - 255, 85, 12, 13, 255, 84, 12, 13, 255, 83, 12, 13, 255, 82, 12, 13, 255, - 81, 12, 13, 255, 80, 12, 13, 255, 79, 12, 13, 255, 78, 12, 13, 255, 77, - 12, 13, 255, 76, 12, 13, 253, 156, 12, 13, 253, 154, 12, 13, 253, 152, - 12, 13, 253, 150, 12, 13, 253, 148, 12, 13, 253, 147, 12, 13, 253, 145, - 12, 13, 253, 143, 12, 13, 253, 141, 12, 13, 253, 139, 12, 13, 251, 62, - 12, 13, 251, 61, 12, 13, 251, 60, 12, 13, 251, 59, 12, 13, 251, 58, 12, - 13, 251, 57, 12, 13, 251, 56, 12, 13, 251, 55, 12, 13, 251, 54, 12, 13, - 251, 53, 12, 13, 251, 52, 12, 13, 251, 51, 12, 13, 251, 50, 12, 13, 251, - 49, 12, 13, 251, 48, 12, 13, 251, 47, 12, 13, 251, 46, 12, 13, 251, 45, - 12, 13, 251, 44, 12, 13, 251, 43, 12, 13, 251, 42, 12, 13, 251, 41, 12, - 13, 251, 40, 12, 13, 251, 39, 12, 13, 251, 38, 12, 13, 251, 37, 12, 13, - 251, 36, 12, 13, 251, 35, 12, 13, 249, 59, 12, 13, 249, 58, 12, 13, 249, - 57, 12, 13, 249, 56, 12, 13, 249, 55, 12, 13, 249, 54, 12, 13, 249, 53, - 12, 13, 249, 52, 12, 13, 249, 51, 12, 13, 249, 50, 12, 13, 249, 49, 12, - 13, 249, 48, 12, 13, 249, 47, 12, 13, 249, 46, 12, 13, 249, 45, 12, 13, - 249, 44, 12, 13, 249, 43, 12, 13, 249, 42, 12, 13, 249, 41, 12, 13, 249, - 40, 12, 13, 249, 39, 12, 13, 249, 38, 12, 13, 249, 37, 12, 13, 249, 36, - 12, 13, 249, 35, 12, 13, 249, 34, 12, 13, 249, 33, 12, 13, 249, 32, 12, - 13, 249, 31, 12, 13, 249, 30, 12, 13, 249, 29, 12, 13, 249, 28, 12, 13, - 249, 27, 12, 13, 249, 26, 12, 13, 249, 25, 12, 13, 249, 24, 12, 13, 249, - 23, 12, 13, 249, 22, 12, 13, 249, 21, 12, 13, 249, 20, 12, 13, 249, 19, - 12, 13, 249, 18, 12, 13, 249, 17, 12, 13, 249, 16, 12, 13, 249, 15, 12, - 13, 249, 14, 12, 13, 249, 13, 12, 13, 249, 12, 12, 13, 249, 11, 12, 13, - 249, 10, 12, 13, 249, 9, 12, 13, 249, 8, 12, 13, 249, 7, 12, 13, 249, 6, - 12, 13, 249, 5, 12, 13, 249, 4, 12, 13, 249, 3, 12, 13, 249, 2, 12, 13, - 249, 1, 12, 13, 249, 0, 12, 13, 248, 255, 12, 13, 248, 254, 12, 13, 248, - 253, 12, 13, 248, 252, 12, 13, 248, 251, 12, 13, 248, 250, 12, 13, 248, - 249, 12, 13, 248, 248, 12, 13, 248, 247, 12, 13, 248, 246, 12, 13, 248, - 245, 12, 13, 248, 244, 12, 13, 248, 243, 12, 13, 248, 242, 12, 13, 248, - 241, 12, 13, 248, 240, 12, 13, 248, 239, 12, 13, 248, 238, 12, 13, 248, - 237, 12, 13, 248, 236, 12, 13, 248, 235, 12, 13, 248, 234, 12, 13, 248, - 233, 12, 13, 248, 232, 12, 13, 248, 231, 12, 13, 248, 230, 12, 13, 248, - 229, 12, 13, 248, 228, 12, 13, 248, 227, 12, 13, 248, 226, 12, 13, 248, - 225, 12, 13, 248, 224, 12, 13, 246, 23, 12, 13, 246, 22, 12, 13, 246, 21, - 12, 13, 246, 20, 12, 13, 246, 19, 12, 13, 246, 18, 12, 13, 246, 17, 12, - 13, 246, 16, 12, 13, 246, 15, 12, 13, 246, 14, 12, 13, 246, 13, 12, 13, - 246, 12, 12, 13, 246, 11, 12, 13, 246, 10, 12, 13, 246, 9, 12, 13, 246, - 8, 12, 13, 246, 7, 12, 13, 246, 6, 12, 13, 246, 5, 12, 13, 246, 4, 12, - 13, 246, 3, 12, 13, 246, 2, 12, 13, 246, 1, 12, 13, 246, 0, 12, 13, 245, - 255, 12, 13, 245, 254, 12, 13, 245, 253, 12, 13, 245, 252, 12, 13, 245, - 251, 12, 13, 245, 250, 12, 13, 245, 249, 12, 13, 245, 248, 12, 13, 245, - 247, 12, 13, 245, 246, 12, 13, 245, 245, 12, 13, 245, 244, 12, 13, 245, - 243, 12, 13, 245, 242, 12, 13, 245, 241, 12, 13, 245, 240, 12, 13, 245, - 239, 12, 13, 245, 238, 12, 13, 245, 237, 12, 13, 245, 236, 12, 13, 245, - 5, 12, 13, 245, 4, 12, 13, 245, 3, 12, 13, 245, 2, 12, 13, 245, 1, 12, - 13, 245, 0, 12, 13, 244, 255, 12, 13, 244, 254, 12, 13, 244, 253, 12, 13, - 244, 252, 12, 13, 244, 251, 12, 13, 244, 250, 12, 13, 244, 249, 12, 13, - 244, 248, 12, 13, 244, 247, 12, 13, 244, 246, 12, 13, 244, 245, 12, 13, - 244, 244, 12, 13, 244, 243, 12, 13, 244, 242, 12, 13, 244, 241, 12, 13, - 244, 240, 12, 13, 244, 239, 12, 13, 244, 238, 12, 13, 244, 237, 12, 13, - 244, 236, 12, 13, 244, 235, 12, 13, 244, 234, 12, 13, 244, 233, 12, 13, - 244, 232, 12, 13, 244, 231, 12, 13, 244, 230, 12, 13, 244, 229, 12, 13, - 244, 228, 12, 13, 244, 227, 12, 13, 244, 226, 12, 13, 244, 225, 12, 13, - 244, 224, 12, 13, 244, 223, 12, 13, 244, 222, 12, 13, 244, 221, 12, 13, - 244, 220, 12, 13, 244, 219, 12, 13, 244, 218, 12, 13, 244, 217, 12, 13, - 244, 216, 12, 13, 244, 215, 12, 13, 244, 214, 12, 13, 244, 213, 12, 13, - 244, 212, 12, 13, 244, 211, 12, 13, 244, 210, 12, 13, 244, 209, 12, 13, - 244, 208, 12, 13, 244, 207, 12, 13, 244, 206, 12, 13, 244, 205, 12, 13, - 244, 204, 12, 13, 244, 203, 12, 13, 244, 202, 12, 13, 244, 201, 12, 13, - 244, 200, 12, 13, 244, 199, 12, 13, 244, 198, 12, 13, 244, 197, 12, 13, - 243, 201, 12, 13, 243, 200, 12, 13, 243, 199, 12, 13, 243, 198, 12, 13, - 243, 197, 12, 13, 243, 196, 12, 13, 243, 195, 12, 13, 243, 194, 12, 13, - 243, 193, 12, 13, 243, 192, 12, 13, 243, 191, 12, 13, 243, 190, 12, 13, - 243, 189, 12, 13, 243, 188, 12, 13, 243, 187, 12, 13, 243, 186, 12, 13, - 243, 185, 12, 13, 243, 184, 12, 13, 243, 183, 12, 13, 243, 182, 12, 13, - 243, 181, 12, 13, 243, 180, 12, 13, 243, 179, 12, 13, 243, 178, 12, 13, - 243, 177, 12, 13, 243, 176, 12, 13, 243, 175, 12, 13, 243, 174, 12, 13, - 243, 173, 12, 13, 243, 172, 12, 13, 243, 171, 12, 13, 243, 170, 12, 13, - 243, 169, 12, 13, 243, 168, 12, 13, 243, 167, 12, 13, 243, 166, 12, 13, - 243, 165, 12, 13, 243, 164, 12, 13, 243, 163, 12, 13, 243, 162, 12, 13, - 243, 161, 12, 13, 243, 160, 12, 13, 243, 159, 12, 13, 243, 158, 12, 13, - 243, 157, 12, 13, 243, 156, 12, 13, 243, 155, 12, 13, 243, 154, 12, 13, - 243, 153, 12, 13, 243, 152, 12, 13, 243, 151, 12, 13, 243, 150, 12, 13, - 243, 149, 12, 13, 243, 148, 12, 13, 243, 147, 12, 13, 243, 146, 12, 13, - 243, 145, 12, 13, 243, 144, 12, 13, 243, 143, 12, 13, 243, 142, 12, 13, - 243, 141, 12, 13, 243, 140, 12, 13, 243, 139, 12, 13, 243, 138, 12, 13, - 242, 58, 12, 13, 242, 57, 12, 13, 242, 56, 12, 13, 242, 55, 12, 13, 242, - 54, 12, 13, 242, 53, 12, 13, 242, 52, 12, 13, 242, 51, 12, 13, 242, 50, - 12, 13, 240, 138, 12, 13, 240, 137, 12, 13, 240, 136, 12, 13, 240, 135, - 12, 13, 240, 134, 12, 13, 240, 133, 12, 13, 240, 132, 12, 13, 240, 131, - 12, 13, 240, 130, 12, 13, 240, 129, 12, 13, 240, 128, 12, 13, 240, 127, - 12, 13, 240, 126, 12, 13, 240, 125, 12, 13, 240, 124, 12, 13, 240, 123, - 12, 13, 240, 122, 12, 13, 240, 121, 12, 13, 240, 120, 12, 13, 235, 22, - 12, 13, 235, 21, 12, 13, 235, 20, 12, 13, 235, 19, 12, 13, 235, 18, 12, - 13, 235, 17, 12, 13, 235, 16, 12, 13, 235, 15, 12, 13, 233, 146, 12, 13, - 233, 145, 12, 13, 233, 144, 12, 13, 233, 143, 12, 13, 233, 142, 12, 13, - 233, 141, 12, 13, 233, 140, 12, 13, 233, 139, 12, 13, 233, 138, 12, 13, - 233, 137, 12, 13, 232, 49, 12, 13, 232, 48, 12, 13, 232, 47, 12, 13, 232, - 46, 12, 13, 232, 45, 12, 13, 232, 44, 12, 13, 232, 43, 12, 13, 232, 42, - 12, 13, 232, 41, 12, 13, 232, 40, 12, 13, 232, 39, 12, 13, 232, 38, 12, - 13, 232, 37, 12, 13, 232, 36, 12, 13, 232, 35, 12, 13, 232, 34, 12, 13, - 232, 33, 12, 13, 232, 32, 12, 13, 232, 31, 12, 13, 232, 30, 12, 13, 232, - 29, 12, 13, 232, 28, 12, 13, 232, 27, 12, 13, 232, 26, 12, 13, 232, 25, - 12, 13, 232, 24, 12, 13, 232, 23, 12, 13, 232, 22, 12, 13, 232, 21, 12, - 13, 232, 20, 12, 13, 232, 19, 12, 13, 232, 18, 12, 13, 232, 17, 12, 13, - 232, 16, 12, 13, 232, 15, 12, 13, 232, 14, 12, 13, 232, 13, 12, 13, 232, - 12, 12, 13, 232, 11, 12, 13, 232, 10, 12, 13, 232, 9, 12, 13, 232, 8, 12, - 13, 232, 7, 12, 13, 232, 6, 12, 13, 232, 5, 12, 13, 232, 4, 12, 13, 232, - 3, 12, 13, 232, 2, 12, 13, 232, 1, 12, 13, 232, 0, 12, 13, 231, 255, 12, - 13, 231, 254, 12, 13, 231, 253, 12, 13, 231, 252, 12, 13, 231, 251, 12, - 13, 231, 250, 12, 13, 231, 249, 12, 13, 231, 248, 12, 13, 231, 247, 12, - 13, 231, 246, 12, 13, 231, 245, 12, 13, 231, 244, 12, 13, 231, 243, 12, - 13, 231, 242, 12, 13, 231, 241, 12, 13, 231, 240, 12, 13, 230, 22, 12, - 13, 230, 21, 12, 13, 230, 20, 12, 13, 230, 19, 12, 13, 230, 18, 12, 13, - 230, 17, 12, 13, 230, 16, 12, 13, 230, 15, 12, 13, 230, 14, 12, 13, 230, - 13, 12, 13, 230, 12, 12, 13, 230, 11, 12, 13, 230, 10, 12, 13, 230, 9, - 12, 13, 230, 8, 12, 13, 230, 7, 12, 13, 230, 6, 12, 13, 230, 5, 12, 13, - 230, 4, 12, 13, 230, 3, 12, 13, 230, 2, 12, 13, 230, 1, 12, 13, 230, 0, - 12, 13, 229, 255, 12, 13, 229, 254, 12, 13, 229, 253, 12, 13, 229, 252, - 12, 13, 229, 251, 12, 13, 229, 250, 12, 13, 229, 249, 12, 13, 229, 248, - 12, 13, 229, 247, 12, 13, 229, 246, 12, 13, 229, 245, 12, 13, 229, 244, - 12, 13, 229, 243, 12, 13, 229, 242, 12, 13, 229, 241, 12, 13, 229, 240, - 12, 13, 229, 239, 12, 13, 229, 238, 12, 13, 229, 237, 12, 13, 229, 236, - 12, 13, 229, 235, 12, 13, 229, 234, 12, 13, 229, 233, 12, 13, 229, 232, - 12, 13, 229, 231, 12, 13, 229, 230, 12, 13, 228, 134, 12, 13, 228, 133, - 12, 13, 228, 132, 12, 13, 228, 131, 12, 13, 228, 130, 12, 13, 228, 129, - 12, 13, 228, 128, 12, 13, 228, 127, 12, 13, 228, 126, 12, 13, 228, 125, - 12, 13, 228, 124, 12, 13, 228, 123, 12, 13, 228, 122, 12, 13, 228, 121, - 12, 13, 228, 120, 12, 13, 228, 119, 12, 13, 228, 118, 12, 13, 228, 117, - 12, 13, 228, 116, 12, 13, 228, 115, 12, 13, 228, 114, 12, 13, 228, 113, - 12, 13, 227, 236, 12, 13, 227, 235, 12, 13, 227, 234, 12, 13, 227, 233, - 12, 13, 227, 232, 12, 13, 227, 231, 12, 13, 227, 230, 12, 13, 227, 229, - 12, 13, 227, 228, 12, 13, 227, 227, 12, 13, 227, 226, 12, 13, 227, 225, - 12, 13, 227, 224, 12, 13, 227, 223, 12, 13, 227, 222, 12, 13, 227, 221, - 12, 13, 227, 220, 12, 13, 227, 219, 12, 13, 227, 218, 12, 13, 227, 217, - 12, 13, 227, 216, 12, 13, 227, 215, 12, 13, 227, 214, 12, 13, 227, 213, - 12, 13, 227, 212, 12, 13, 227, 211, 12, 13, 227, 76, 12, 13, 227, 75, 12, - 13, 227, 74, 12, 13, 227, 73, 12, 13, 227, 72, 12, 13, 227, 71, 12, 13, - 227, 70, 12, 13, 227, 69, 12, 13, 227, 68, 12, 13, 227, 67, 12, 13, 227, - 66, 12, 13, 227, 65, 12, 13, 227, 64, 12, 13, 227, 63, 12, 13, 227, 62, - 12, 13, 227, 61, 12, 13, 227, 60, 12, 13, 227, 59, 12, 13, 227, 58, 12, - 13, 227, 57, 12, 13, 227, 56, 12, 13, 227, 55, 12, 13, 227, 54, 12, 13, - 227, 53, 12, 13, 227, 52, 12, 13, 227, 51, 12, 13, 227, 50, 12, 13, 227, - 49, 12, 13, 227, 48, 12, 13, 227, 47, 12, 13, 227, 46, 12, 13, 227, 45, - 12, 13, 227, 44, 12, 13, 227, 43, 12, 13, 227, 42, 12, 13, 227, 41, 12, - 13, 227, 40, 12, 13, 227, 39, 12, 13, 227, 38, 12, 13, 227, 37, 12, 13, - 227, 36, 12, 13, 227, 35, 12, 13, 227, 34, 12, 13, 227, 33, 12, 13, 227, - 32, 12, 13, 227, 31, 12, 13, 227, 30, 12, 13, 227, 29, 12, 13, 227, 28, - 12, 13, 227, 27, 12, 13, 227, 26, 12, 13, 227, 25, 12, 13, 227, 24, 12, - 13, 227, 23, 12, 13, 227, 22, 12, 13, 227, 21, 12, 13, 227, 20, 12, 13, - 227, 19, 12, 13, 227, 18, 12, 13, 227, 17, 12, 13, 227, 16, 12, 13, 227, - 15, 12, 13, 227, 14, 12, 13, 227, 13, 12, 13, 227, 12, 12, 13, 227, 11, - 12, 13, 227, 10, 12, 13, 227, 9, 12, 13, 227, 8, 12, 13, 227, 7, 12, 13, - 227, 6, 12, 13, 227, 5, 12, 13, 227, 4, 12, 13, 227, 3, 12, 13, 227, 2, - 12, 13, 226, 104, 12, 13, 226, 103, 12, 13, 226, 102, 12, 13, 226, 101, - 12, 13, 226, 100, 12, 13, 226, 99, 12, 13, 226, 98, 12, 13, 226, 97, 12, - 13, 226, 96, 12, 13, 226, 95, 12, 13, 226, 94, 12, 13, 226, 93, 12, 13, - 226, 92, 12, 13, 224, 95, 12, 13, 224, 94, 12, 13, 224, 93, 12, 13, 224, - 92, 12, 13, 224, 91, 12, 13, 224, 90, 12, 13, 224, 89, 12, 13, 223, 222, - 12, 13, 223, 221, 12, 13, 223, 220, 12, 13, 223, 219, 12, 13, 223, 218, - 12, 13, 223, 217, 12, 13, 223, 216, 12, 13, 223, 215, 12, 13, 223, 214, - 12, 13, 223, 213, 12, 13, 223, 212, 12, 13, 223, 211, 12, 13, 223, 210, - 12, 13, 223, 209, 12, 13, 223, 208, 12, 13, 223, 207, 12, 13, 223, 206, - 12, 13, 223, 205, 12, 13, 223, 204, 12, 13, 223, 203, 12, 13, 223, 202, - 12, 13, 223, 201, 12, 13, 223, 200, 12, 13, 223, 199, 12, 13, 223, 198, - 12, 13, 223, 197, 12, 13, 223, 196, 12, 13, 223, 195, 12, 13, 223, 194, - 12, 13, 223, 193, 12, 13, 223, 192, 12, 13, 223, 191, 12, 13, 223, 190, - 12, 13, 223, 189, 12, 13, 222, 88, 12, 13, 222, 87, 12, 13, 222, 86, 12, - 13, 222, 85, 12, 13, 222, 84, 12, 13, 222, 83, 12, 13, 222, 82, 12, 13, - 222, 81, 12, 13, 222, 80, 12, 13, 222, 79, 12, 13, 222, 78, 12, 13, 222, - 77, 12, 13, 222, 76, 12, 13, 222, 75, 12, 13, 222, 74, 12, 13, 222, 73, - 12, 13, 222, 72, 12, 13, 222, 71, 12, 13, 222, 70, 12, 13, 222, 69, 12, - 13, 222, 68, 12, 13, 222, 67, 12, 13, 222, 66, 12, 13, 222, 65, 12, 13, - 222, 64, 12, 13, 222, 63, 12, 13, 222, 62, 12, 13, 222, 61, 12, 13, 222, - 60, 12, 13, 222, 59, 12, 13, 222, 58, 12, 13, 222, 57, 12, 13, 222, 56, - 12, 13, 222, 55, 12, 13, 222, 54, 12, 13, 222, 53, 12, 13, 222, 52, 12, - 13, 222, 51, 12, 13, 222, 50, 12, 13, 222, 49, 12, 13, 222, 48, 12, 13, - 222, 47, 12, 13, 222, 46, 12, 13, 222, 45, 12, 13, 222, 44, 12, 13, 222, - 43, 12, 13, 222, 42, 12, 13, 222, 41, 12, 13, 222, 40, 12, 13, 222, 39, - 12, 13, 222, 38, 12, 13, 222, 37, 12, 13, 222, 36, 12, 13, 222, 35, 12, - 13, 217, 150, 12, 13, 217, 149, 12, 13, 217, 148, 12, 13, 217, 147, 12, - 13, 217, 146, 12, 13, 217, 145, 12, 13, 217, 144, 12, 13, 217, 143, 12, - 13, 217, 142, 12, 13, 217, 141, 12, 13, 217, 140, 12, 13, 217, 139, 12, - 13, 217, 138, 12, 13, 217, 137, 12, 13, 217, 136, 12, 13, 217, 135, 12, - 13, 217, 134, 12, 13, 217, 133, 12, 13, 217, 132, 12, 13, 217, 131, 12, - 13, 217, 130, 12, 13, 217, 129, 12, 13, 217, 128, 12, 13, 217, 127, 12, - 13, 217, 126, 12, 13, 217, 125, 12, 13, 217, 124, 12, 13, 217, 123, 12, - 13, 217, 122, 12, 13, 217, 121, 12, 13, 217, 120, 12, 13, 217, 119, 12, - 13, 217, 118, 12, 13, 217, 117, 12, 13, 217, 116, 12, 13, 217, 115, 12, - 13, 217, 114, 12, 13, 217, 113, 12, 13, 217, 112, 12, 13, 217, 111, 12, - 13, 217, 110, 12, 13, 217, 109, 12, 13, 217, 108, 12, 13, 217, 107, 12, + 232, 15, 132, 5, 134, 253, 232, 15, 132, 5, 244, 12, 253, 232, 15, 132, + 5, 244, 82, 253, 232, 15, 132, 5, 219, 126, 253, 232, 15, 132, 5, 220, + 123, 253, 232, 15, 132, 5, 245, 194, 253, 232, 15, 132, 5, 228, 201, 253, + 232, 15, 132, 5, 134, 247, 188, 15, 132, 5, 244, 12, 247, 188, 15, 132, + 5, 244, 82, 247, 188, 15, 132, 5, 219, 126, 247, 188, 15, 132, 5, 220, + 123, 247, 188, 15, 132, 5, 245, 194, 247, 188, 15, 132, 5, 228, 201, 247, + 188, 15, 132, 5, 244, 12, 70, 15, 132, 5, 244, 82, 70, 15, 132, 5, 219, + 126, 70, 15, 132, 5, 220, 123, 70, 15, 132, 5, 245, 194, 70, 15, 132, 5, + 228, 201, 70, 15, 132, 5, 123, 243, 39, 15, 132, 5, 113, 243, 39, 15, + 132, 5, 134, 243, 39, 15, 132, 5, 244, 12, 243, 39, 15, 132, 5, 244, 82, + 243, 39, 15, 132, 5, 219, 126, 243, 39, 15, 132, 5, 220, 123, 243, 39, + 15, 132, 5, 245, 194, 243, 39, 15, 132, 5, 228, 201, 243, 39, 15, 132, 5, + 123, 243, 36, 15, 132, 5, 113, 243, 36, 15, 132, 5, 134, 243, 36, 15, + 132, 5, 244, 12, 243, 36, 15, 132, 5, 244, 82, 243, 36, 15, 132, 5, 113, + 220, 79, 15, 132, 5, 134, 220, 79, 15, 132, 5, 134, 220, 80, 214, 12, 17, + 15, 132, 5, 244, 12, 220, 79, 15, 132, 5, 244, 82, 220, 79, 15, 132, 5, + 219, 126, 220, 79, 15, 132, 5, 220, 123, 220, 79, 15, 132, 5, 245, 194, + 220, 79, 15, 132, 5, 228, 201, 220, 79, 15, 132, 5, 123, 220, 74, 15, + 132, 5, 113, 220, 74, 15, 132, 5, 134, 220, 74, 15, 132, 5, 134, 220, 75, + 214, 12, 17, 15, 132, 5, 244, 12, 220, 74, 15, 132, 5, 244, 82, 220, 74, + 15, 132, 5, 220, 80, 30, 243, 120, 96, 247, 188, 15, 132, 5, 220, 80, 30, + 243, 120, 96, 230, 189, 15, 132, 5, 123, 251, 96, 15, 132, 5, 113, 251, + 96, 15, 132, 5, 134, 251, 96, 15, 132, 5, 134, 251, 97, 214, 12, 17, 15, + 132, 5, 244, 12, 251, 96, 15, 132, 5, 244, 82, 251, 96, 15, 132, 5, 134, + 214, 12, 244, 21, 245, 75, 15, 132, 5, 134, 214, 12, 244, 21, 245, 72, + 15, 132, 5, 244, 12, 214, 12, 244, 21, 232, 218, 15, 132, 5, 244, 12, + 214, 12, 244, 21, 232, 216, 15, 132, 5, 244, 12, 214, 12, 244, 21, 232, + 219, 61, 15, 132, 5, 244, 12, 214, 12, 244, 21, 232, 219, 253, 159, 15, + 132, 5, 219, 126, 214, 12, 244, 21, 253, 229, 15, 132, 5, 220, 123, 214, + 12, 244, 21, 236, 9, 15, 132, 5, 220, 123, 214, 12, 244, 21, 236, 11, 61, + 15, 132, 5, 220, 123, 214, 12, 244, 21, 236, 11, 253, 159, 15, 132, 5, + 245, 194, 214, 12, 244, 21, 214, 121, 15, 132, 5, 245, 194, 214, 12, 244, + 21, 214, 120, 15, 132, 5, 228, 201, 214, 12, 244, 21, 236, 25, 15, 132, + 5, 228, 201, 214, 12, 244, 21, 236, 24, 15, 132, 5, 228, 201, 214, 12, + 244, 21, 236, 23, 15, 132, 5, 228, 201, 214, 12, 244, 21, 236, 26, 61, + 15, 132, 5, 113, 253, 233, 216, 240, 15, 132, 5, 134, 253, 233, 216, 240, + 15, 132, 5, 244, 12, 253, 233, 216, 240, 15, 132, 5, 244, 82, 253, 233, + 216, 240, 15, 132, 5, 219, 126, 253, 233, 216, 240, 15, 132, 5, 123, 252, + 151, 15, 132, 5, 113, 252, 151, 15, 132, 5, 134, 252, 151, 15, 132, 5, + 244, 12, 252, 151, 15, 132, 5, 244, 12, 252, 152, 214, 12, 17, 15, 132, + 5, 244, 82, 252, 151, 15, 132, 5, 244, 82, 252, 152, 214, 12, 17, 15, + 132, 5, 228, 211, 15, 132, 5, 228, 212, 15, 132, 5, 123, 245, 71, 15, + 132, 5, 113, 245, 71, 15, 132, 5, 123, 216, 170, 247, 188, 15, 132, 5, + 113, 216, 168, 247, 188, 15, 132, 5, 244, 82, 219, 115, 247, 188, 15, + 132, 5, 123, 216, 170, 214, 12, 244, 21, 61, 15, 132, 5, 113, 216, 168, + 214, 12, 244, 21, 61, 15, 132, 5, 123, 245, 190, 253, 232, 15, 132, 5, + 123, 224, 23, 253, 232, 15, 132, 5, 55, 253, 220, 123, 219, 116, 15, 132, + 5, 55, 253, 220, 123, 224, 22, 15, 224, 142, 5, 55, 253, 220, 211, 209, + 247, 173, 15, 224, 142, 5, 67, 249, 227, 15, 224, 142, 5, 248, 0, 249, + 227, 15, 224, 142, 5, 248, 0, 215, 222, 12, 13, 255, 156, 12, 13, 255, + 155, 12, 13, 255, 154, 12, 13, 255, 153, 12, 13, 255, 152, 12, 13, 255, + 151, 12, 13, 255, 150, 12, 13, 255, 149, 12, 13, 255, 148, 12, 13, 255, + 147, 12, 13, 255, 146, 12, 13, 255, 145, 12, 13, 255, 144, 12, 13, 255, + 143, 12, 13, 255, 142, 12, 13, 255, 141, 12, 13, 255, 140, 12, 13, 255, + 139, 12, 13, 255, 138, 12, 13, 255, 137, 12, 13, 255, 136, 12, 13, 255, + 135, 12, 13, 255, 134, 12, 13, 255, 133, 12, 13, 255, 132, 12, 13, 255, + 131, 12, 13, 255, 130, 12, 13, 255, 129, 12, 13, 255, 128, 12, 13, 255, + 127, 12, 13, 255, 126, 12, 13, 255, 125, 12, 13, 255, 124, 12, 13, 255, + 123, 12, 13, 255, 122, 12, 13, 255, 121, 12, 13, 255, 120, 12, 13, 255, + 119, 12, 13, 255, 118, 12, 13, 255, 117, 12, 13, 255, 116, 12, 13, 255, + 115, 12, 13, 255, 114, 12, 13, 255, 113, 12, 13, 255, 112, 12, 13, 255, + 111, 12, 13, 255, 110, 12, 13, 255, 109, 12, 13, 255, 108, 12, 13, 255, + 107, 12, 13, 255, 106, 12, 13, 255, 105, 12, 13, 255, 104, 12, 13, 255, + 103, 12, 13, 255, 102, 12, 13, 255, 101, 12, 13, 255, 100, 12, 13, 255, + 99, 12, 13, 255, 98, 12, 13, 255, 97, 12, 13, 255, 96, 12, 13, 255, 95, + 12, 13, 255, 94, 12, 13, 255, 93, 12, 13, 255, 92, 12, 13, 255, 91, 12, + 13, 255, 90, 12, 13, 255, 89, 12, 13, 255, 88, 12, 13, 255, 87, 12, 13, + 255, 86, 12, 13, 255, 85, 12, 13, 255, 84, 12, 13, 255, 83, 12, 13, 255, + 82, 12, 13, 255, 81, 12, 13, 255, 80, 12, 13, 255, 79, 12, 13, 255, 78, + 12, 13, 255, 77, 12, 13, 253, 157, 12, 13, 253, 155, 12, 13, 253, 153, + 12, 13, 253, 151, 12, 13, 253, 149, 12, 13, 253, 148, 12, 13, 253, 146, + 12, 13, 253, 144, 12, 13, 253, 142, 12, 13, 253, 140, 12, 13, 251, 63, + 12, 13, 251, 62, 12, 13, 251, 61, 12, 13, 251, 60, 12, 13, 251, 59, 12, + 13, 251, 58, 12, 13, 251, 57, 12, 13, 251, 56, 12, 13, 251, 55, 12, 13, + 251, 54, 12, 13, 251, 53, 12, 13, 251, 52, 12, 13, 251, 51, 12, 13, 251, + 50, 12, 13, 251, 49, 12, 13, 251, 48, 12, 13, 251, 47, 12, 13, 251, 46, + 12, 13, 251, 45, 12, 13, 251, 44, 12, 13, 251, 43, 12, 13, 251, 42, 12, + 13, 251, 41, 12, 13, 251, 40, 12, 13, 251, 39, 12, 13, 251, 38, 12, 13, + 251, 37, 12, 13, 251, 36, 12, 13, 249, 60, 12, 13, 249, 59, 12, 13, 249, + 58, 12, 13, 249, 57, 12, 13, 249, 56, 12, 13, 249, 55, 12, 13, 249, 54, + 12, 13, 249, 53, 12, 13, 249, 52, 12, 13, 249, 51, 12, 13, 249, 50, 12, + 13, 249, 49, 12, 13, 249, 48, 12, 13, 249, 47, 12, 13, 249, 46, 12, 13, + 249, 45, 12, 13, 249, 44, 12, 13, 249, 43, 12, 13, 249, 42, 12, 13, 249, + 41, 12, 13, 249, 40, 12, 13, 249, 39, 12, 13, 249, 38, 12, 13, 249, 37, + 12, 13, 249, 36, 12, 13, 249, 35, 12, 13, 249, 34, 12, 13, 249, 33, 12, + 13, 249, 32, 12, 13, 249, 31, 12, 13, 249, 30, 12, 13, 249, 29, 12, 13, + 249, 28, 12, 13, 249, 27, 12, 13, 249, 26, 12, 13, 249, 25, 12, 13, 249, + 24, 12, 13, 249, 23, 12, 13, 249, 22, 12, 13, 249, 21, 12, 13, 249, 20, + 12, 13, 249, 19, 12, 13, 249, 18, 12, 13, 249, 17, 12, 13, 249, 16, 12, + 13, 249, 15, 12, 13, 249, 14, 12, 13, 249, 13, 12, 13, 249, 12, 12, 13, + 249, 11, 12, 13, 249, 10, 12, 13, 249, 9, 12, 13, 249, 8, 12, 13, 249, 7, + 12, 13, 249, 6, 12, 13, 249, 5, 12, 13, 249, 4, 12, 13, 249, 3, 12, 13, + 249, 2, 12, 13, 249, 1, 12, 13, 249, 0, 12, 13, 248, 255, 12, 13, 248, + 254, 12, 13, 248, 253, 12, 13, 248, 252, 12, 13, 248, 251, 12, 13, 248, + 250, 12, 13, 248, 249, 12, 13, 248, 248, 12, 13, 248, 247, 12, 13, 248, + 246, 12, 13, 248, 245, 12, 13, 248, 244, 12, 13, 248, 243, 12, 13, 248, + 242, 12, 13, 248, 241, 12, 13, 248, 240, 12, 13, 248, 239, 12, 13, 248, + 238, 12, 13, 248, 237, 12, 13, 248, 236, 12, 13, 248, 235, 12, 13, 248, + 234, 12, 13, 248, 233, 12, 13, 248, 232, 12, 13, 248, 231, 12, 13, 248, + 230, 12, 13, 248, 229, 12, 13, 248, 228, 12, 13, 248, 227, 12, 13, 248, + 226, 12, 13, 248, 225, 12, 13, 246, 24, 12, 13, 246, 23, 12, 13, 246, 22, + 12, 13, 246, 21, 12, 13, 246, 20, 12, 13, 246, 19, 12, 13, 246, 18, 12, + 13, 246, 17, 12, 13, 246, 16, 12, 13, 246, 15, 12, 13, 246, 14, 12, 13, + 246, 13, 12, 13, 246, 12, 12, 13, 246, 11, 12, 13, 246, 10, 12, 13, 246, + 9, 12, 13, 246, 8, 12, 13, 246, 7, 12, 13, 246, 6, 12, 13, 246, 5, 12, + 13, 246, 4, 12, 13, 246, 3, 12, 13, 246, 2, 12, 13, 246, 1, 12, 13, 246, + 0, 12, 13, 245, 255, 12, 13, 245, 254, 12, 13, 245, 253, 12, 13, 245, + 252, 12, 13, 245, 251, 12, 13, 245, 250, 12, 13, 245, 249, 12, 13, 245, + 248, 12, 13, 245, 247, 12, 13, 245, 246, 12, 13, 245, 245, 12, 13, 245, + 244, 12, 13, 245, 243, 12, 13, 245, 242, 12, 13, 245, 241, 12, 13, 245, + 240, 12, 13, 245, 239, 12, 13, 245, 238, 12, 13, 245, 237, 12, 13, 245, + 6, 12, 13, 245, 5, 12, 13, 245, 4, 12, 13, 245, 3, 12, 13, 245, 2, 12, + 13, 245, 1, 12, 13, 245, 0, 12, 13, 244, 255, 12, 13, 244, 254, 12, 13, + 244, 253, 12, 13, 244, 252, 12, 13, 244, 251, 12, 13, 244, 250, 12, 13, + 244, 249, 12, 13, 244, 248, 12, 13, 244, 247, 12, 13, 244, 246, 12, 13, + 244, 245, 12, 13, 244, 244, 12, 13, 244, 243, 12, 13, 244, 242, 12, 13, + 244, 241, 12, 13, 244, 240, 12, 13, 244, 239, 12, 13, 244, 238, 12, 13, + 244, 237, 12, 13, 244, 236, 12, 13, 244, 235, 12, 13, 244, 234, 12, 13, + 244, 233, 12, 13, 244, 232, 12, 13, 244, 231, 12, 13, 244, 230, 12, 13, + 244, 229, 12, 13, 244, 228, 12, 13, 244, 227, 12, 13, 244, 226, 12, 13, + 244, 225, 12, 13, 244, 224, 12, 13, 244, 223, 12, 13, 244, 222, 12, 13, + 244, 221, 12, 13, 244, 220, 12, 13, 244, 219, 12, 13, 244, 218, 12, 13, + 244, 217, 12, 13, 244, 216, 12, 13, 244, 215, 12, 13, 244, 214, 12, 13, + 244, 213, 12, 13, 244, 212, 12, 13, 244, 211, 12, 13, 244, 210, 12, 13, + 244, 209, 12, 13, 244, 208, 12, 13, 244, 207, 12, 13, 244, 206, 12, 13, + 244, 205, 12, 13, 244, 204, 12, 13, 244, 203, 12, 13, 244, 202, 12, 13, + 244, 201, 12, 13, 244, 200, 12, 13, 244, 199, 12, 13, 244, 198, 12, 13, + 243, 202, 12, 13, 243, 201, 12, 13, 243, 200, 12, 13, 243, 199, 12, 13, + 243, 198, 12, 13, 243, 197, 12, 13, 243, 196, 12, 13, 243, 195, 12, 13, + 243, 194, 12, 13, 243, 193, 12, 13, 243, 192, 12, 13, 243, 191, 12, 13, + 243, 190, 12, 13, 243, 189, 12, 13, 243, 188, 12, 13, 243, 187, 12, 13, + 243, 186, 12, 13, 243, 185, 12, 13, 243, 184, 12, 13, 243, 183, 12, 13, + 243, 182, 12, 13, 243, 181, 12, 13, 243, 180, 12, 13, 243, 179, 12, 13, + 243, 178, 12, 13, 243, 177, 12, 13, 243, 176, 12, 13, 243, 175, 12, 13, + 243, 174, 12, 13, 243, 173, 12, 13, 243, 172, 12, 13, 243, 171, 12, 13, + 243, 170, 12, 13, 243, 169, 12, 13, 243, 168, 12, 13, 243, 167, 12, 13, + 243, 166, 12, 13, 243, 165, 12, 13, 243, 164, 12, 13, 243, 163, 12, 13, + 243, 162, 12, 13, 243, 161, 12, 13, 243, 160, 12, 13, 243, 159, 12, 13, + 243, 158, 12, 13, 243, 157, 12, 13, 243, 156, 12, 13, 243, 155, 12, 13, + 243, 154, 12, 13, 243, 153, 12, 13, 243, 152, 12, 13, 243, 151, 12, 13, + 243, 150, 12, 13, 243, 149, 12, 13, 243, 148, 12, 13, 243, 147, 12, 13, + 243, 146, 12, 13, 243, 145, 12, 13, 243, 144, 12, 13, 243, 143, 12, 13, + 243, 142, 12, 13, 243, 141, 12, 13, 243, 140, 12, 13, 243, 139, 12, 13, + 242, 59, 12, 13, 242, 58, 12, 13, 242, 57, 12, 13, 242, 56, 12, 13, 242, + 55, 12, 13, 242, 54, 12, 13, 242, 53, 12, 13, 242, 52, 12, 13, 242, 51, + 12, 13, 240, 139, 12, 13, 240, 138, 12, 13, 240, 137, 12, 13, 240, 136, + 12, 13, 240, 135, 12, 13, 240, 134, 12, 13, 240, 133, 12, 13, 240, 132, + 12, 13, 240, 131, 12, 13, 240, 130, 12, 13, 240, 129, 12, 13, 240, 128, + 12, 13, 240, 127, 12, 13, 240, 126, 12, 13, 240, 125, 12, 13, 240, 124, + 12, 13, 240, 123, 12, 13, 240, 122, 12, 13, 240, 121, 12, 13, 235, 23, + 12, 13, 235, 22, 12, 13, 235, 21, 12, 13, 235, 20, 12, 13, 235, 19, 12, + 13, 235, 18, 12, 13, 235, 17, 12, 13, 235, 16, 12, 13, 233, 147, 12, 13, + 233, 146, 12, 13, 233, 145, 12, 13, 233, 144, 12, 13, 233, 143, 12, 13, + 233, 142, 12, 13, 233, 141, 12, 13, 233, 140, 12, 13, 233, 139, 12, 13, + 233, 138, 12, 13, 232, 50, 12, 13, 232, 49, 12, 13, 232, 48, 12, 13, 232, + 47, 12, 13, 232, 46, 12, 13, 232, 45, 12, 13, 232, 44, 12, 13, 232, 43, + 12, 13, 232, 42, 12, 13, 232, 41, 12, 13, 232, 40, 12, 13, 232, 39, 12, + 13, 232, 38, 12, 13, 232, 37, 12, 13, 232, 36, 12, 13, 232, 35, 12, 13, + 232, 34, 12, 13, 232, 33, 12, 13, 232, 32, 12, 13, 232, 31, 12, 13, 232, + 30, 12, 13, 232, 29, 12, 13, 232, 28, 12, 13, 232, 27, 12, 13, 232, 26, + 12, 13, 232, 25, 12, 13, 232, 24, 12, 13, 232, 23, 12, 13, 232, 22, 12, + 13, 232, 21, 12, 13, 232, 20, 12, 13, 232, 19, 12, 13, 232, 18, 12, 13, + 232, 17, 12, 13, 232, 16, 12, 13, 232, 15, 12, 13, 232, 14, 12, 13, 232, + 13, 12, 13, 232, 12, 12, 13, 232, 11, 12, 13, 232, 10, 12, 13, 232, 9, + 12, 13, 232, 8, 12, 13, 232, 7, 12, 13, 232, 6, 12, 13, 232, 5, 12, 13, + 232, 4, 12, 13, 232, 3, 12, 13, 232, 2, 12, 13, 232, 1, 12, 13, 232, 0, + 12, 13, 231, 255, 12, 13, 231, 254, 12, 13, 231, 253, 12, 13, 231, 252, + 12, 13, 231, 251, 12, 13, 231, 250, 12, 13, 231, 249, 12, 13, 231, 248, + 12, 13, 231, 247, 12, 13, 231, 246, 12, 13, 231, 245, 12, 13, 231, 244, + 12, 13, 231, 243, 12, 13, 231, 242, 12, 13, 231, 241, 12, 13, 230, 23, + 12, 13, 230, 22, 12, 13, 230, 21, 12, 13, 230, 20, 12, 13, 230, 19, 12, + 13, 230, 18, 12, 13, 230, 17, 12, 13, 230, 16, 12, 13, 230, 15, 12, 13, + 230, 14, 12, 13, 230, 13, 12, 13, 230, 12, 12, 13, 230, 11, 12, 13, 230, + 10, 12, 13, 230, 9, 12, 13, 230, 8, 12, 13, 230, 7, 12, 13, 230, 6, 12, + 13, 230, 5, 12, 13, 230, 4, 12, 13, 230, 3, 12, 13, 230, 2, 12, 13, 230, + 1, 12, 13, 230, 0, 12, 13, 229, 255, 12, 13, 229, 254, 12, 13, 229, 253, + 12, 13, 229, 252, 12, 13, 229, 251, 12, 13, 229, 250, 12, 13, 229, 249, + 12, 13, 229, 248, 12, 13, 229, 247, 12, 13, 229, 246, 12, 13, 229, 245, + 12, 13, 229, 244, 12, 13, 229, 243, 12, 13, 229, 242, 12, 13, 229, 241, + 12, 13, 229, 240, 12, 13, 229, 239, 12, 13, 229, 238, 12, 13, 229, 237, + 12, 13, 229, 236, 12, 13, 229, 235, 12, 13, 229, 234, 12, 13, 229, 233, + 12, 13, 229, 232, 12, 13, 229, 231, 12, 13, 228, 135, 12, 13, 228, 134, + 12, 13, 228, 133, 12, 13, 228, 132, 12, 13, 228, 131, 12, 13, 228, 130, + 12, 13, 228, 129, 12, 13, 228, 128, 12, 13, 228, 127, 12, 13, 228, 126, + 12, 13, 228, 125, 12, 13, 228, 124, 12, 13, 228, 123, 12, 13, 228, 122, + 12, 13, 228, 121, 12, 13, 228, 120, 12, 13, 228, 119, 12, 13, 228, 118, + 12, 13, 228, 117, 12, 13, 228, 116, 12, 13, 228, 115, 12, 13, 228, 114, + 12, 13, 227, 237, 12, 13, 227, 236, 12, 13, 227, 235, 12, 13, 227, 234, + 12, 13, 227, 233, 12, 13, 227, 232, 12, 13, 227, 231, 12, 13, 227, 230, + 12, 13, 227, 229, 12, 13, 227, 228, 12, 13, 227, 227, 12, 13, 227, 226, + 12, 13, 227, 225, 12, 13, 227, 224, 12, 13, 227, 223, 12, 13, 227, 222, + 12, 13, 227, 221, 12, 13, 227, 220, 12, 13, 227, 219, 12, 13, 227, 218, + 12, 13, 227, 217, 12, 13, 227, 216, 12, 13, 227, 215, 12, 13, 227, 214, + 12, 13, 227, 213, 12, 13, 227, 212, 12, 13, 227, 77, 12, 13, 227, 76, 12, + 13, 227, 75, 12, 13, 227, 74, 12, 13, 227, 73, 12, 13, 227, 72, 12, 13, + 227, 71, 12, 13, 227, 70, 12, 13, 227, 69, 12, 13, 227, 68, 12, 13, 227, + 67, 12, 13, 227, 66, 12, 13, 227, 65, 12, 13, 227, 64, 12, 13, 227, 63, + 12, 13, 227, 62, 12, 13, 227, 61, 12, 13, 227, 60, 12, 13, 227, 59, 12, + 13, 227, 58, 12, 13, 227, 57, 12, 13, 227, 56, 12, 13, 227, 55, 12, 13, + 227, 54, 12, 13, 227, 53, 12, 13, 227, 52, 12, 13, 227, 51, 12, 13, 227, + 50, 12, 13, 227, 49, 12, 13, 227, 48, 12, 13, 227, 47, 12, 13, 227, 46, + 12, 13, 227, 45, 12, 13, 227, 44, 12, 13, 227, 43, 12, 13, 227, 42, 12, + 13, 227, 41, 12, 13, 227, 40, 12, 13, 227, 39, 12, 13, 227, 38, 12, 13, + 227, 37, 12, 13, 227, 36, 12, 13, 227, 35, 12, 13, 227, 34, 12, 13, 227, + 33, 12, 13, 227, 32, 12, 13, 227, 31, 12, 13, 227, 30, 12, 13, 227, 29, + 12, 13, 227, 28, 12, 13, 227, 27, 12, 13, 227, 26, 12, 13, 227, 25, 12, + 13, 227, 24, 12, 13, 227, 23, 12, 13, 227, 22, 12, 13, 227, 21, 12, 13, + 227, 20, 12, 13, 227, 19, 12, 13, 227, 18, 12, 13, 227, 17, 12, 13, 227, + 16, 12, 13, 227, 15, 12, 13, 227, 14, 12, 13, 227, 13, 12, 13, 227, 12, + 12, 13, 227, 11, 12, 13, 227, 10, 12, 13, 227, 9, 12, 13, 227, 8, 12, 13, + 227, 7, 12, 13, 227, 6, 12, 13, 227, 5, 12, 13, 227, 4, 12, 13, 227, 3, + 12, 13, 226, 105, 12, 13, 226, 104, 12, 13, 226, 103, 12, 13, 226, 102, + 12, 13, 226, 101, 12, 13, 226, 100, 12, 13, 226, 99, 12, 13, 226, 98, 12, + 13, 226, 97, 12, 13, 226, 96, 12, 13, 226, 95, 12, 13, 226, 94, 12, 13, + 226, 93, 12, 13, 224, 96, 12, 13, 224, 95, 12, 13, 224, 94, 12, 13, 224, + 93, 12, 13, 224, 92, 12, 13, 224, 91, 12, 13, 224, 90, 12, 13, 223, 223, + 12, 13, 223, 222, 12, 13, 223, 221, 12, 13, 223, 220, 12, 13, 223, 219, + 12, 13, 223, 218, 12, 13, 223, 217, 12, 13, 223, 216, 12, 13, 223, 215, + 12, 13, 223, 214, 12, 13, 223, 213, 12, 13, 223, 212, 12, 13, 223, 211, + 12, 13, 223, 210, 12, 13, 223, 209, 12, 13, 223, 208, 12, 13, 223, 207, + 12, 13, 223, 206, 12, 13, 223, 205, 12, 13, 223, 204, 12, 13, 223, 203, + 12, 13, 223, 202, 12, 13, 223, 201, 12, 13, 223, 200, 12, 13, 223, 199, + 12, 13, 223, 198, 12, 13, 223, 197, 12, 13, 223, 196, 12, 13, 223, 195, + 12, 13, 223, 194, 12, 13, 223, 193, 12, 13, 223, 192, 12, 13, 223, 191, + 12, 13, 223, 190, 12, 13, 222, 89, 12, 13, 222, 88, 12, 13, 222, 87, 12, + 13, 222, 86, 12, 13, 222, 85, 12, 13, 222, 84, 12, 13, 222, 83, 12, 13, + 222, 82, 12, 13, 222, 81, 12, 13, 222, 80, 12, 13, 222, 79, 12, 13, 222, + 78, 12, 13, 222, 77, 12, 13, 222, 76, 12, 13, 222, 75, 12, 13, 222, 74, + 12, 13, 222, 73, 12, 13, 222, 72, 12, 13, 222, 71, 12, 13, 222, 70, 12, + 13, 222, 69, 12, 13, 222, 68, 12, 13, 222, 67, 12, 13, 222, 66, 12, 13, + 222, 65, 12, 13, 222, 64, 12, 13, 222, 63, 12, 13, 222, 62, 12, 13, 222, + 61, 12, 13, 222, 60, 12, 13, 222, 59, 12, 13, 222, 58, 12, 13, 222, 57, + 12, 13, 222, 56, 12, 13, 222, 55, 12, 13, 222, 54, 12, 13, 222, 53, 12, + 13, 222, 52, 12, 13, 222, 51, 12, 13, 222, 50, 12, 13, 222, 49, 12, 13, + 222, 48, 12, 13, 222, 47, 12, 13, 222, 46, 12, 13, 222, 45, 12, 13, 222, + 44, 12, 13, 222, 43, 12, 13, 222, 42, 12, 13, 222, 41, 12, 13, 222, 40, + 12, 13, 222, 39, 12, 13, 222, 38, 12, 13, 222, 37, 12, 13, 222, 36, 12, + 13, 217, 151, 12, 13, 217, 150, 12, 13, 217, 149, 12, 13, 217, 148, 12, + 13, 217, 147, 12, 13, 217, 146, 12, 13, 217, 145, 12, 13, 217, 144, 12, + 13, 217, 143, 12, 13, 217, 142, 12, 13, 217, 141, 12, 13, 217, 140, 12, + 13, 217, 139, 12, 13, 217, 138, 12, 13, 217, 137, 12, 13, 217, 136, 12, + 13, 217, 135, 12, 13, 217, 134, 12, 13, 217, 133, 12, 13, 217, 132, 12, + 13, 217, 131, 12, 13, 217, 130, 12, 13, 217, 129, 12, 13, 217, 128, 12, + 13, 217, 127, 12, 13, 217, 126, 12, 13, 217, 125, 12, 13, 217, 124, 12, + 13, 217, 123, 12, 13, 217, 122, 12, 13, 217, 121, 12, 13, 217, 120, 12, + 13, 217, 119, 12, 13, 217, 118, 12, 13, 217, 117, 12, 13, 217, 116, 12, + 13, 217, 115, 12, 13, 217, 114, 12, 13, 217, 113, 12, 13, 217, 112, 12, + 13, 217, 111, 12, 13, 217, 110, 12, 13, 217, 109, 12, 13, 217, 108, 12, 13, 215, 22, 12, 13, 215, 21, 12, 13, 215, 20, 12, 13, 215, 19, 12, 13, 215, 18, 12, 13, 215, 17, 12, 13, 215, 16, 12, 13, 215, 15, 12, 13, 215, 14, 12, 13, 215, 13, 12, 13, 215, 12, 12, 13, 215, 11, 12, 13, 215, 10, @@ -12174,1649 +12175,1650 @@ static unsigned char phrasebook[] = { 210, 131, 12, 13, 210, 130, 12, 13, 210, 129, 12, 13, 210, 128, 12, 13, 210, 127, 12, 13, 210, 126, 12, 13, 210, 125, 12, 13, 210, 124, 12, 13, 210, 123, 12, 13, 210, 122, 12, 13, 210, 121, 12, 13, 210, 120, 12, 13, - 210, 119, 12, 13, 210, 118, 12, 13, 255, 72, 12, 13, 255, 71, 12, 13, - 255, 70, 12, 13, 255, 69, 12, 13, 255, 68, 12, 13, 255, 67, 12, 13, 255, - 66, 12, 13, 255, 65, 12, 13, 255, 64, 12, 13, 255, 63, 12, 13, 255, 62, - 12, 13, 255, 61, 12, 13, 255, 60, 12, 13, 255, 59, 12, 13, 255, 58, 12, - 13, 255, 57, 12, 13, 255, 56, 12, 13, 255, 55, 12, 13, 255, 54, 12, 13, - 255, 53, 12, 13, 255, 52, 12, 13, 255, 51, 12, 13, 255, 50, 12, 13, 255, - 49, 12, 13, 255, 48, 12, 13, 255, 47, 12, 13, 255, 46, 12, 13, 255, 45, - 12, 13, 255, 44, 12, 13, 255, 43, 12, 13, 255, 42, 12, 13, 255, 41, 12, - 13, 255, 40, 12, 13, 255, 39, 20, 1, 167, 229, 12, 231, 16, 20, 1, 167, - 243, 70, 244, 36, 20, 1, 167, 224, 251, 231, 17, 225, 57, 20, 1, 167, - 224, 251, 231, 17, 225, 58, 20, 1, 167, 229, 226, 231, 16, 20, 1, 167, - 219, 221, 20, 1, 167, 216, 66, 231, 16, 20, 1, 167, 227, 118, 231, 16, - 20, 1, 167, 220, 19, 226, 90, 228, 169, 20, 1, 167, 224, 251, 226, 90, - 228, 170, 225, 57, 20, 1, 167, 224, 251, 226, 90, 228, 170, 225, 58, 20, - 1, 167, 231, 218, 20, 1, 167, 215, 119, 231, 219, 20, 1, 167, 229, 71, - 20, 1, 167, 231, 215, 20, 1, 167, 231, 176, 20, 1, 167, 230, 48, 20, 1, - 167, 220, 124, 20, 1, 167, 227, 241, 20, 1, 167, 234, 149, 20, 1, 167, - 228, 138, 20, 1, 167, 218, 4, 20, 1, 167, 229, 11, 20, 1, 167, 233, 87, - 20, 1, 167, 233, 12, 233, 189, 20, 1, 167, 227, 248, 231, 24, 20, 1, 167, - 231, 222, 20, 1, 167, 225, 246, 20, 1, 167, 242, 231, 20, 1, 167, 226, - 50, 20, 1, 167, 230, 151, 229, 45, 20, 1, 167, 227, 99, 231, 27, 20, 1, - 167, 104, 210, 188, 229, 220, 20, 1, 167, 242, 232, 20, 1, 167, 227, 248, - 227, 249, 20, 1, 167, 219, 128, 20, 1, 167, 231, 9, 20, 1, 167, 231, 30, - 20, 1, 167, 230, 130, 20, 1, 167, 234, 249, 20, 1, 167, 226, 90, 233, 47, - 20, 1, 167, 229, 149, 233, 47, 20, 1, 167, 225, 158, 20, 1, 167, 231, - 216, 20, 1, 167, 228, 207, 20, 1, 167, 224, 134, 20, 1, 167, 215, 116, - 20, 1, 167, 232, 94, 20, 1, 167, 219, 41, 20, 1, 167, 216, 216, 20, 1, - 167, 231, 213, 20, 1, 167, 234, 156, 20, 1, 167, 229, 145, 20, 1, 167, - 233, 201, 20, 1, 167, 230, 131, 20, 1, 167, 219, 218, 20, 1, 167, 232, - 138, 20, 1, 167, 244, 93, 20, 1, 167, 222, 199, 20, 1, 167, 233, 241, 20, - 1, 167, 219, 37, 20, 1, 167, 231, 173, 225, 99, 20, 1, 167, 220, 12, 20, - 1, 167, 227, 247, 20, 1, 167, 219, 253, 228, 2, 210, 196, 20, 1, 167, - 227, 138, 230, 148, 20, 1, 167, 226, 85, 20, 1, 167, 228, 139, 20, 1, - 167, 214, 170, 20, 1, 167, 229, 48, 20, 1, 167, 231, 212, 20, 1, 167, - 228, 181, 20, 1, 167, 231, 119, 20, 1, 167, 227, 151, 20, 1, 167, 216, - 220, 20, 1, 167, 219, 34, 20, 1, 167, 226, 86, 20, 1, 167, 228, 6, 20, 1, - 167, 231, 220, 20, 1, 167, 227, 148, 20, 1, 167, 234, 216, 20, 1, 167, - 228, 9, 20, 1, 167, 213, 250, 20, 1, 167, 232, 98, 20, 1, 167, 229, 98, - 20, 1, 167, 229, 196, 20, 1, 167, 231, 118, 20, 1, 225, 138, 228, 4, 20, - 1, 225, 138, 215, 119, 231, 217, 20, 1, 225, 138, 219, 185, 20, 1, 225, - 138, 220, 128, 215, 118, 20, 1, 225, 138, 232, 140, 227, 244, 20, 1, 225, - 138, 231, 125, 231, 221, 20, 1, 225, 138, 234, 87, 20, 1, 225, 138, 211, - 15, 20, 1, 225, 138, 231, 120, 20, 1, 225, 138, 234, 237, 20, 1, 225, - 138, 225, 208, 20, 1, 225, 138, 211, 89, 233, 47, 20, 1, 225, 138, 233, - 103, 228, 2, 227, 160, 20, 1, 225, 138, 227, 242, 220, 38, 20, 1, 225, - 138, 229, 116, 228, 184, 20, 1, 225, 138, 242, 229, 20, 1, 225, 138, 225, - 49, 20, 1, 225, 138, 215, 119, 228, 0, 20, 1, 225, 138, 220, 43, 228, - 179, 20, 1, 225, 138, 220, 39, 20, 1, 225, 138, 231, 17, 216, 219, 20, 1, - 225, 138, 231, 107, 231, 121, 20, 1, 225, 138, 227, 149, 227, 244, 20, 1, - 225, 138, 234, 145, 20, 1, 225, 138, 242, 230, 20, 1, 225, 138, 234, 141, - 20, 1, 225, 138, 233, 129, 20, 1, 225, 138, 225, 249, 20, 1, 225, 138, - 213, 182, 20, 1, 225, 138, 229, 13, 230, 46, 20, 1, 225, 138, 229, 47, - 231, 103, 20, 1, 225, 138, 211, 193, 20, 1, 225, 138, 222, 11, 20, 1, - 225, 138, 217, 97, 20, 1, 225, 138, 231, 29, 20, 1, 225, 138, 229, 32, - 20, 1, 225, 138, 229, 33, 233, 84, 20, 1, 225, 138, 231, 19, 20, 1, 225, - 138, 218, 52, 20, 1, 225, 138, 231, 111, 20, 1, 225, 138, 230, 133, 20, - 1, 225, 138, 227, 163, 20, 1, 225, 138, 224, 138, 20, 1, 225, 138, 231, - 28, 229, 49, 20, 1, 225, 138, 244, 126, 20, 1, 225, 138, 231, 98, 20, 1, - 225, 138, 244, 147, 20, 1, 225, 138, 234, 153, 20, 1, 225, 138, 231, 239, - 228, 173, 20, 1, 225, 138, 231, 239, 228, 149, 20, 1, 225, 138, 233, 11, - 20, 1, 225, 138, 229, 55, 20, 1, 225, 138, 228, 11, 20, 1, 225, 138, 184, - 20, 1, 225, 138, 234, 74, 20, 1, 225, 138, 229, 1, 20, 1, 137, 229, 12, - 231, 219, 20, 1, 137, 227, 117, 20, 1, 137, 210, 196, 20, 1, 137, 212, - 53, 20, 1, 137, 229, 48, 20, 1, 137, 229, 137, 20, 1, 137, 229, 19, 20, - 1, 137, 242, 239, 20, 1, 137, 231, 115, 20, 1, 137, 243, 77, 20, 1, 137, - 227, 140, 230, 170, 231, 31, 20, 1, 137, 227, 240, 231, 106, 20, 1, 137, - 231, 112, 20, 1, 137, 225, 55, 20, 1, 137, 229, 122, 20, 1, 137, 231, - 123, 251, 29, 20, 1, 137, 234, 143, 20, 1, 137, 242, 240, 20, 1, 137, - 234, 150, 20, 1, 137, 210, 213, 230, 76, 20, 1, 137, 227, 111, 20, 1, - 137, 231, 100, 20, 1, 137, 228, 10, 20, 1, 137, 231, 106, 20, 1, 137, - 211, 16, 20, 1, 137, 233, 249, 20, 1, 137, 235, 10, 20, 1, 137, 220, 123, - 20, 1, 137, 229, 131, 20, 1, 137, 217, 95, 20, 1, 137, 228, 153, 20, 1, - 137, 216, 66, 210, 198, 20, 1, 137, 218, 79, 20, 1, 137, 229, 39, 227, - 160, 20, 1, 137, 213, 181, 20, 1, 137, 229, 199, 20, 1, 137, 231, 239, - 234, 152, 20, 1, 137, 227, 249, 20, 1, 137, 229, 34, 20, 1, 137, 233, 88, - 20, 1, 137, 231, 108, 20, 1, 137, 231, 8, 20, 1, 137, 227, 243, 20, 1, - 137, 216, 215, 20, 1, 137, 229, 36, 20, 1, 137, 243, 233, 20, 1, 137, - 229, 136, 20, 1, 137, 228, 12, 20, 1, 137, 228, 8, 20, 1, 137, 251, 107, - 20, 1, 137, 213, 183, 20, 1, 137, 231, 113, 20, 1, 137, 222, 140, 20, 1, - 137, 228, 183, 20, 1, 137, 233, 102, 20, 1, 137, 216, 64, 20, 1, 137, - 227, 250, 229, 1, 20, 1, 137, 228, 175, 20, 1, 137, 234, 156, 20, 1, 137, - 229, 40, 20, 1, 137, 231, 212, 20, 1, 137, 231, 101, 20, 1, 137, 232, 98, - 20, 1, 137, 233, 189, 20, 1, 137, 228, 181, 20, 1, 137, 229, 1, 20, 1, - 137, 211, 184, 20, 1, 137, 229, 37, 20, 1, 137, 227, 253, 20, 1, 137, - 227, 245, 20, 1, 137, 233, 203, 228, 139, 20, 1, 137, 227, 251, 20, 1, - 137, 229, 144, 20, 1, 137, 231, 239, 228, 0, 20, 1, 137, 211, 103, 20, 1, - 137, 229, 143, 20, 1, 137, 219, 220, 20, 1, 137, 220, 126, 20, 1, 137, - 231, 109, 20, 1, 137, 231, 219, 20, 1, 137, 231, 119, 20, 1, 137, 234, - 144, 20, 1, 137, 231, 110, 20, 1, 137, 234, 148, 20, 1, 137, 231, 123, - 225, 103, 20, 1, 137, 210, 179, 20, 1, 137, 228, 171, 20, 1, 137, 230, - 220, 20, 1, 137, 230, 100, 20, 1, 137, 220, 15, 20, 1, 137, 234, 166, - 233, 70, 20, 1, 137, 234, 166, 244, 160, 20, 1, 137, 229, 69, 20, 1, 137, - 229, 196, 20, 1, 137, 232, 200, 20, 1, 137, 225, 65, 20, 1, 137, 225, - 199, 20, 1, 137, 216, 230, 20, 1, 107, 231, 99, 20, 1, 107, 212, 51, 20, - 1, 107, 228, 169, 20, 1, 107, 231, 16, 20, 1, 107, 228, 167, 20, 1, 107, - 232, 235, 20, 1, 107, 228, 172, 20, 1, 107, 228, 7, 20, 1, 107, 229, 54, - 20, 1, 107, 227, 160, 20, 1, 107, 211, 194, 20, 1, 107, 229, 9, 20, 1, - 107, 220, 61, 20, 1, 107, 229, 20, 20, 1, 107, 234, 151, 20, 1, 107, 216, - 217, 20, 1, 107, 220, 41, 20, 1, 107, 228, 180, 20, 1, 107, 218, 52, 20, - 1, 107, 234, 156, 20, 1, 107, 211, 91, 20, 1, 107, 233, 204, 20, 1, 107, - 221, 234, 20, 1, 107, 231, 21, 20, 1, 107, 229, 135, 20, 1, 107, 231, - 188, 20, 1, 107, 231, 27, 20, 1, 107, 220, 125, 20, 1, 107, 211, 39, 20, - 1, 107, 228, 174, 20, 1, 107, 234, 147, 231, 102, 20, 1, 107, 229, 16, - 20, 1, 107, 215, 118, 20, 1, 107, 242, 248, 20, 1, 107, 229, 6, 20, 1, - 107, 244, 127, 20, 1, 107, 229, 139, 20, 1, 107, 231, 0, 20, 1, 107, 233, - 5, 20, 1, 107, 229, 121, 20, 1, 107, 230, 147, 20, 1, 107, 231, 4, 20, 1, - 107, 224, 118, 20, 1, 107, 231, 2, 20, 1, 107, 231, 18, 20, 1, 107, 232, - 84, 20, 1, 107, 227, 255, 20, 1, 107, 231, 122, 20, 1, 107, 233, 180, 20, - 1, 107, 227, 151, 20, 1, 107, 216, 220, 20, 1, 107, 219, 34, 20, 1, 107, - 210, 179, 20, 1, 107, 234, 148, 20, 1, 107, 223, 170, 20, 1, 107, 217, - 10, 20, 1, 107, 229, 17, 20, 1, 107, 231, 23, 20, 1, 107, 227, 254, 20, - 1, 107, 234, 146, 20, 1, 107, 225, 59, 20, 1, 107, 225, 152, 20, 1, 107, - 227, 127, 20, 1, 107, 233, 11, 20, 1, 107, 229, 55, 20, 1, 107, 231, 20, - 20, 1, 107, 229, 29, 20, 1, 107, 210, 193, 20, 1, 107, 226, 21, 20, 1, - 107, 210, 192, 20, 1, 107, 229, 144, 20, 1, 107, 227, 244, 20, 1, 107, - 218, 81, 20, 1, 107, 233, 208, 20, 1, 107, 229, 44, 20, 1, 107, 229, 14, - 20, 1, 107, 215, 102, 20, 1, 107, 231, 31, 20, 1, 107, 233, 198, 20, 1, - 107, 227, 252, 20, 1, 107, 216, 218, 20, 1, 107, 231, 214, 20, 1, 107, - 229, 53, 20, 1, 107, 233, 4, 20, 1, 107, 229, 35, 20, 1, 107, 228, 1, 20, - 1, 107, 228, 153, 20, 1, 107, 242, 233, 20, 1, 107, 233, 217, 20, 1, 107, - 223, 84, 226, 209, 20, 1, 107, 217, 86, 20, 1, 107, 216, 10, 20, 1, 107, - 227, 148, 20, 1, 107, 222, 239, 20, 1, 107, 233, 49, 20, 1, 107, 231, 79, - 20, 1, 107, 193, 20, 1, 107, 218, 4, 20, 1, 107, 230, 102, 20, 1, 107, - 220, 27, 20, 1, 107, 220, 37, 20, 1, 107, 233, 155, 20, 1, 107, 227, 237, - 20, 1, 107, 219, 225, 20, 1, 107, 227, 246, 20, 1, 107, 225, 211, 20, 1, - 107, 228, 233, 20, 1, 107, 219, 252, 20, 1, 107, 224, 133, 20, 1, 107, - 230, 46, 20, 1, 107, 232, 119, 20, 1, 107, 223, 84, 230, 96, 20, 1, 107, - 216, 117, 20, 1, 107, 227, 238, 20, 1, 107, 231, 123, 198, 20, 1, 107, - 221, 232, 20, 1, 107, 244, 195, 20, 1, 82, 229, 143, 20, 1, 82, 216, 16, - 20, 1, 82, 231, 112, 20, 1, 82, 233, 88, 20, 1, 82, 213, 128, 20, 1, 82, - 232, 125, 20, 1, 82, 226, 89, 20, 1, 82, 219, 45, 20, 1, 82, 223, 145, - 20, 1, 82, 228, 3, 20, 1, 82, 229, 114, 20, 1, 82, 224, 147, 20, 1, 82, - 217, 62, 20, 1, 82, 229, 22, 20, 1, 82, 233, 245, 20, 1, 82, 211, 187, - 20, 1, 82, 221, 170, 20, 1, 82, 229, 45, 20, 1, 82, 226, 86, 20, 1, 82, - 216, 17, 20, 1, 82, 233, 202, 20, 1, 82, 232, 139, 20, 1, 82, 228, 6, 20, - 1, 82, 228, 254, 20, 1, 82, 231, 220, 20, 1, 82, 229, 15, 20, 1, 82, 228, - 253, 20, 1, 82, 228, 5, 20, 1, 82, 222, 237, 20, 1, 82, 228, 171, 20, 1, - 82, 225, 210, 20, 1, 82, 222, 31, 20, 1, 82, 229, 30, 20, 1, 82, 231, 10, - 20, 1, 82, 242, 227, 20, 1, 82, 229, 18, 20, 1, 82, 228, 182, 20, 1, 82, - 231, 172, 20, 1, 82, 232, 121, 20, 1, 82, 229, 50, 20, 1, 82, 229, 127, - 20, 1, 82, 217, 85, 227, 244, 20, 1, 82, 220, 127, 20, 1, 82, 224, 143, - 20, 1, 82, 229, 147, 219, 51, 20, 1, 82, 229, 38, 227, 160, 20, 1, 82, - 211, 4, 20, 1, 82, 242, 228, 20, 1, 82, 215, 117, 20, 1, 82, 211, 19, 20, - 1, 82, 225, 16, 20, 1, 82, 215, 107, 20, 1, 82, 234, 154, 20, 1, 82, 218, - 80, 20, 1, 82, 216, 219, 20, 1, 82, 213, 184, 20, 1, 82, 212, 6, 20, 1, - 82, 233, 132, 20, 1, 82, 224, 150, 20, 1, 82, 217, 96, 20, 1, 82, 242, - 247, 20, 1, 82, 229, 59, 20, 1, 82, 220, 40, 20, 1, 82, 231, 5, 20, 1, - 82, 231, 116, 20, 1, 82, 227, 115, 20, 1, 82, 228, 136, 20, 1, 82, 243, - 73, 20, 1, 82, 215, 108, 20, 1, 82, 233, 211, 20, 1, 82, 211, 67, 20, 1, - 82, 227, 149, 250, 16, 20, 1, 82, 210, 250, 20, 1, 82, 231, 22, 20, 1, - 82, 229, 132, 20, 1, 82, 225, 100, 20, 1, 82, 210, 197, 20, 1, 82, 233, - 6, 20, 1, 82, 243, 233, 20, 1, 82, 243, 72, 20, 1, 82, 229, 8, 20, 1, 82, - 234, 156, 20, 1, 82, 231, 223, 20, 1, 82, 229, 21, 20, 1, 82, 242, 234, - 20, 1, 82, 244, 196, 20, 1, 82, 227, 239, 20, 1, 82, 225, 153, 20, 1, 82, - 211, 17, 20, 1, 82, 229, 46, 20, 1, 82, 227, 149, 252, 23, 20, 1, 82, - 227, 95, 20, 1, 82, 224, 247, 20, 1, 82, 230, 220, 20, 1, 82, 243, 231, - 20, 1, 82, 229, 220, 20, 1, 82, 230, 100, 20, 1, 82, 242, 233, 20, 1, 82, - 243, 235, 73, 20, 1, 82, 230, 47, 20, 1, 82, 224, 146, 20, 1, 82, 229, - 10, 20, 1, 82, 233, 189, 20, 1, 82, 225, 97, 20, 1, 82, 227, 247, 20, 1, - 82, 211, 18, 20, 1, 82, 229, 31, 20, 1, 82, 226, 90, 225, 187, 20, 1, 82, - 243, 235, 251, 15, 20, 1, 82, 244, 37, 20, 1, 82, 228, 176, 20, 1, 82, - 61, 20, 1, 82, 216, 10, 20, 1, 82, 76, 20, 1, 82, 73, 20, 1, 82, 233, 86, - 20, 1, 82, 226, 90, 225, 23, 20, 1, 82, 217, 101, 20, 1, 82, 217, 51, 20, - 1, 82, 229, 147, 230, 34, 240, 234, 20, 1, 82, 220, 15, 20, 1, 82, 211, - 14, 20, 1, 82, 228, 247, 20, 1, 82, 210, 202, 20, 1, 82, 210, 227, 217, - 240, 20, 1, 82, 210, 227, 249, 147, 20, 1, 82, 210, 187, 20, 1, 82, 210, - 195, 20, 1, 82, 234, 142, 20, 1, 82, 225, 151, 20, 1, 82, 228, 177, 245, - 102, 20, 1, 82, 224, 144, 20, 1, 82, 211, 192, 20, 1, 82, 244, 147, 20, - 1, 82, 213, 250, 20, 1, 82, 232, 98, 20, 1, 82, 230, 230, 20, 1, 82, 223, - 51, 20, 1, 82, 223, 171, 20, 1, 82, 228, 246, 20, 1, 82, 229, 77, 20, 1, - 82, 220, 7, 20, 1, 82, 219, 252, 20, 1, 82, 243, 235, 223, 86, 20, 1, 82, - 197, 20, 1, 82, 225, 108, 20, 1, 82, 232, 119, 20, 1, 82, 234, 28, 20, 1, - 82, 231, 58, 20, 1, 82, 184, 20, 1, 82, 231, 169, 20, 1, 82, 216, 221, - 20, 1, 82, 234, 92, 20, 1, 82, 230, 150, 20, 1, 82, 216, 247, 20, 1, 82, - 244, 169, 20, 1, 82, 242, 223, 20, 1, 225, 137, 176, 20, 1, 225, 137, 70, - 20, 1, 225, 137, 233, 217, 20, 1, 225, 137, 245, 209, 20, 1, 225, 137, - 223, 108, 20, 1, 225, 137, 217, 86, 20, 1, 225, 137, 227, 148, 20, 1, - 225, 137, 233, 135, 20, 1, 225, 137, 222, 239, 20, 1, 225, 137, 223, 29, - 20, 1, 225, 137, 231, 79, 20, 1, 225, 137, 217, 101, 20, 1, 225, 137, - 229, 146, 20, 1, 225, 137, 228, 183, 20, 1, 225, 137, 193, 20, 1, 225, - 137, 218, 4, 20, 1, 225, 137, 220, 27, 20, 1, 225, 137, 219, 191, 20, 1, - 225, 137, 220, 123, 20, 1, 225, 137, 233, 155, 20, 1, 225, 137, 234, 156, - 20, 1, 225, 137, 227, 209, 20, 1, 225, 137, 227, 237, 20, 1, 225, 137, - 228, 154, 20, 1, 225, 137, 210, 226, 20, 1, 225, 137, 219, 225, 20, 1, - 225, 137, 191, 20, 1, 225, 137, 228, 9, 20, 1, 225, 137, 225, 151, 20, 1, - 225, 137, 227, 246, 20, 1, 225, 137, 211, 192, 20, 1, 225, 137, 225, 211, - 20, 1, 225, 137, 222, 140, 20, 1, 225, 137, 228, 233, 20, 1, 225, 137, - 223, 51, 20, 1, 225, 137, 234, 165, 20, 1, 225, 137, 229, 7, 20, 1, 225, - 137, 229, 56, 20, 1, 225, 137, 220, 7, 20, 1, 225, 137, 224, 147, 20, 1, - 225, 137, 244, 37, 20, 1, 225, 137, 212, 65, 20, 1, 225, 137, 232, 241, - 20, 1, 225, 137, 232, 119, 20, 1, 225, 137, 234, 28, 20, 1, 225, 137, - 231, 114, 20, 1, 225, 137, 223, 83, 20, 1, 225, 137, 184, 20, 1, 225, - 137, 230, 161, 20, 1, 225, 137, 231, 122, 20, 1, 225, 137, 216, 230, 20, - 1, 225, 137, 233, 251, 20, 1, 225, 137, 221, 251, 20, 1, 225, 137, 212, - 115, 95, 1, 190, 95, 1, 252, 191, 95, 1, 8, 190, 95, 1, 225, 42, 95, 1, - 184, 95, 1, 230, 233, 95, 1, 254, 23, 184, 95, 1, 244, 196, 95, 1, 214, - 27, 95, 1, 213, 177, 95, 1, 217, 105, 95, 1, 248, 221, 95, 1, 8, 215, - 156, 95, 1, 8, 217, 105, 95, 1, 215, 156, 95, 1, 248, 135, 95, 1, 197, - 95, 1, 228, 237, 95, 1, 8, 228, 110, 95, 1, 254, 23, 197, 95, 1, 228, - 110, 95, 1, 228, 96, 95, 1, 233, 135, 95, 1, 232, 61, 95, 1, 232, 254, - 95, 1, 232, 243, 95, 1, 216, 56, 95, 1, 247, 153, 95, 1, 216, 48, 95, 1, - 247, 152, 95, 1, 176, 95, 1, 243, 135, 95, 1, 8, 176, 95, 1, 224, 88, 95, - 1, 224, 66, 95, 1, 229, 77, 95, 1, 229, 28, 95, 1, 254, 23, 229, 77, 95, - 1, 162, 95, 1, 211, 165, 95, 1, 242, 249, 95, 1, 242, 226, 95, 1, 215, - 165, 95, 1, 246, 26, 95, 1, 227, 165, 95, 1, 227, 150, 95, 1, 215, 175, - 95, 1, 246, 33, 95, 1, 8, 215, 175, 95, 1, 8, 246, 33, 95, 1, 223, 106, - 215, 175, 95, 1, 220, 102, 95, 1, 218, 223, 95, 1, 210, 82, 95, 1, 210, - 14, 95, 1, 215, 183, 95, 1, 246, 38, 95, 1, 8, 215, 183, 95, 1, 206, 95, - 1, 210, 116, 95, 1, 210, 15, 95, 1, 209, 243, 95, 1, 209, 223, 95, 1, - 254, 23, 209, 243, 95, 1, 209, 215, 95, 1, 209, 222, 95, 1, 212, 65, 95, - 1, 254, 209, 95, 1, 241, 189, 95, 1, 229, 192, 95, 5, 253, 222, 95, 5, - 223, 106, 213, 133, 95, 5, 223, 106, 253, 222, 95, 25, 5, 61, 95, 25, 5, - 255, 73, 95, 25, 5, 254, 205, 95, 25, 5, 254, 123, 95, 25, 5, 254, 115, - 95, 25, 5, 76, 95, 25, 5, 226, 183, 95, 25, 5, 211, 227, 95, 25, 5, 212, - 98, 95, 25, 5, 75, 95, 25, 5, 245, 150, 95, 25, 5, 245, 138, 95, 25, 5, - 226, 232, 95, 25, 5, 73, 95, 25, 5, 240, 119, 95, 25, 5, 240, 118, 95, - 25, 5, 240, 117, 95, 25, 5, 235, 189, 95, 25, 5, 236, 60, 95, 25, 5, 236, - 33, 95, 25, 5, 235, 156, 95, 25, 5, 235, 231, 95, 25, 5, 70, 95, 25, 5, + 210, 119, 12, 13, 210, 118, 12, 13, 255, 73, 12, 13, 255, 72, 12, 13, + 255, 71, 12, 13, 255, 70, 12, 13, 255, 69, 12, 13, 255, 68, 12, 13, 255, + 67, 12, 13, 255, 66, 12, 13, 255, 65, 12, 13, 255, 64, 12, 13, 255, 63, + 12, 13, 255, 62, 12, 13, 255, 61, 12, 13, 255, 60, 12, 13, 255, 59, 12, + 13, 255, 58, 12, 13, 255, 57, 12, 13, 255, 56, 12, 13, 255, 55, 12, 13, + 255, 54, 12, 13, 255, 53, 12, 13, 255, 52, 12, 13, 255, 51, 12, 13, 255, + 50, 12, 13, 255, 49, 12, 13, 255, 48, 12, 13, 255, 47, 12, 13, 255, 46, + 12, 13, 255, 45, 12, 13, 255, 44, 12, 13, 255, 43, 12, 13, 255, 42, 12, + 13, 255, 41, 12, 13, 255, 40, 20, 1, 167, 229, 13, 231, 17, 20, 1, 167, + 243, 71, 244, 37, 20, 1, 167, 224, 252, 231, 18, 225, 58, 20, 1, 167, + 224, 252, 231, 18, 225, 59, 20, 1, 167, 229, 227, 231, 17, 20, 1, 167, + 219, 222, 20, 1, 167, 216, 67, 231, 17, 20, 1, 167, 227, 119, 231, 17, + 20, 1, 167, 220, 20, 226, 91, 228, 170, 20, 1, 167, 224, 252, 226, 91, + 228, 171, 225, 58, 20, 1, 167, 224, 252, 226, 91, 228, 171, 225, 59, 20, + 1, 167, 231, 219, 20, 1, 167, 215, 120, 231, 220, 20, 1, 167, 229, 72, + 20, 1, 167, 231, 216, 20, 1, 167, 231, 177, 20, 1, 167, 230, 49, 20, 1, + 167, 220, 125, 20, 1, 167, 227, 242, 20, 1, 167, 234, 150, 20, 1, 167, + 228, 139, 20, 1, 167, 218, 5, 20, 1, 167, 229, 12, 20, 1, 167, 233, 88, + 20, 1, 167, 233, 13, 233, 190, 20, 1, 167, 227, 249, 231, 25, 20, 1, 167, + 231, 223, 20, 1, 167, 225, 247, 20, 1, 167, 242, 232, 20, 1, 167, 226, + 51, 20, 1, 167, 230, 152, 229, 46, 20, 1, 167, 227, 100, 231, 28, 20, 1, + 167, 104, 210, 188, 229, 221, 20, 1, 167, 242, 233, 20, 1, 167, 227, 249, + 227, 250, 20, 1, 167, 219, 129, 20, 1, 167, 231, 10, 20, 1, 167, 231, 31, + 20, 1, 167, 230, 131, 20, 1, 167, 234, 250, 20, 1, 167, 226, 91, 233, 48, + 20, 1, 167, 229, 150, 233, 48, 20, 1, 167, 225, 159, 20, 1, 167, 231, + 217, 20, 1, 167, 228, 208, 20, 1, 167, 224, 135, 20, 1, 167, 215, 117, + 20, 1, 167, 232, 95, 20, 1, 167, 219, 42, 20, 1, 167, 216, 217, 20, 1, + 167, 231, 214, 20, 1, 167, 234, 157, 20, 1, 167, 229, 146, 20, 1, 167, + 233, 202, 20, 1, 167, 230, 132, 20, 1, 167, 219, 219, 20, 1, 167, 232, + 139, 20, 1, 167, 244, 94, 20, 1, 167, 222, 200, 20, 1, 167, 233, 242, 20, + 1, 167, 219, 38, 20, 1, 167, 231, 174, 225, 100, 20, 1, 167, 220, 13, 20, + 1, 167, 227, 248, 20, 1, 167, 219, 254, 228, 3, 210, 196, 20, 1, 167, + 227, 139, 230, 149, 20, 1, 167, 226, 86, 20, 1, 167, 228, 140, 20, 1, + 167, 214, 170, 20, 1, 167, 229, 49, 20, 1, 167, 231, 213, 20, 1, 167, + 228, 182, 20, 1, 167, 231, 120, 20, 1, 167, 227, 152, 20, 1, 167, 216, + 221, 20, 1, 167, 219, 35, 20, 1, 167, 226, 87, 20, 1, 167, 228, 7, 20, 1, + 167, 231, 221, 20, 1, 167, 227, 149, 20, 1, 167, 234, 217, 20, 1, 167, + 228, 10, 20, 1, 167, 213, 250, 20, 1, 167, 232, 99, 20, 1, 167, 229, 99, + 20, 1, 167, 229, 197, 20, 1, 167, 231, 119, 20, 1, 225, 139, 228, 5, 20, + 1, 225, 139, 215, 120, 231, 218, 20, 1, 225, 139, 219, 186, 20, 1, 225, + 139, 220, 129, 215, 119, 20, 1, 225, 139, 232, 141, 227, 245, 20, 1, 225, + 139, 231, 126, 231, 222, 20, 1, 225, 139, 234, 88, 20, 1, 225, 139, 211, + 15, 20, 1, 225, 139, 231, 121, 20, 1, 225, 139, 234, 238, 20, 1, 225, + 139, 225, 209, 20, 1, 225, 139, 211, 89, 233, 48, 20, 1, 225, 139, 233, + 104, 228, 3, 227, 161, 20, 1, 225, 139, 227, 243, 220, 39, 20, 1, 225, + 139, 229, 117, 228, 185, 20, 1, 225, 139, 242, 230, 20, 1, 225, 139, 225, + 50, 20, 1, 225, 139, 215, 120, 228, 1, 20, 1, 225, 139, 220, 44, 228, + 180, 20, 1, 225, 139, 220, 40, 20, 1, 225, 139, 231, 18, 216, 220, 20, 1, + 225, 139, 231, 108, 231, 122, 20, 1, 225, 139, 227, 150, 227, 245, 20, 1, + 225, 139, 234, 146, 20, 1, 225, 139, 242, 231, 20, 1, 225, 139, 234, 142, + 20, 1, 225, 139, 233, 130, 20, 1, 225, 139, 225, 250, 20, 1, 225, 139, + 213, 182, 20, 1, 225, 139, 229, 14, 230, 47, 20, 1, 225, 139, 229, 48, + 231, 104, 20, 1, 225, 139, 211, 193, 20, 1, 225, 139, 222, 12, 20, 1, + 225, 139, 217, 98, 20, 1, 225, 139, 231, 30, 20, 1, 225, 139, 229, 33, + 20, 1, 225, 139, 229, 34, 233, 85, 20, 1, 225, 139, 231, 20, 20, 1, 225, + 139, 218, 53, 20, 1, 225, 139, 231, 112, 20, 1, 225, 139, 230, 134, 20, + 1, 225, 139, 227, 164, 20, 1, 225, 139, 224, 139, 20, 1, 225, 139, 231, + 29, 229, 50, 20, 1, 225, 139, 244, 127, 20, 1, 225, 139, 231, 99, 20, 1, + 225, 139, 244, 148, 20, 1, 225, 139, 234, 154, 20, 1, 225, 139, 231, 240, + 228, 174, 20, 1, 225, 139, 231, 240, 228, 150, 20, 1, 225, 139, 233, 12, + 20, 1, 225, 139, 229, 56, 20, 1, 225, 139, 228, 12, 20, 1, 225, 139, 185, + 20, 1, 225, 139, 234, 75, 20, 1, 225, 139, 229, 2, 20, 1, 137, 229, 13, + 231, 220, 20, 1, 137, 227, 118, 20, 1, 137, 210, 196, 20, 1, 137, 212, + 53, 20, 1, 137, 229, 49, 20, 1, 137, 229, 138, 20, 1, 137, 229, 20, 20, + 1, 137, 242, 240, 20, 1, 137, 231, 116, 20, 1, 137, 243, 78, 20, 1, 137, + 227, 141, 230, 171, 231, 32, 20, 1, 137, 227, 241, 231, 107, 20, 1, 137, + 231, 113, 20, 1, 137, 225, 56, 20, 1, 137, 229, 123, 20, 1, 137, 231, + 124, 251, 30, 20, 1, 137, 234, 144, 20, 1, 137, 242, 241, 20, 1, 137, + 234, 151, 20, 1, 137, 210, 213, 230, 77, 20, 1, 137, 227, 112, 20, 1, + 137, 231, 101, 20, 1, 137, 228, 11, 20, 1, 137, 231, 107, 20, 1, 137, + 211, 16, 20, 1, 137, 233, 250, 20, 1, 137, 235, 11, 20, 1, 137, 220, 124, + 20, 1, 137, 229, 132, 20, 1, 137, 217, 96, 20, 1, 137, 228, 154, 20, 1, + 137, 216, 67, 210, 198, 20, 1, 137, 218, 80, 20, 1, 137, 229, 40, 227, + 161, 20, 1, 137, 213, 181, 20, 1, 137, 229, 200, 20, 1, 137, 231, 240, + 234, 153, 20, 1, 137, 227, 250, 20, 1, 137, 229, 35, 20, 1, 137, 233, 89, + 20, 1, 137, 231, 109, 20, 1, 137, 231, 9, 20, 1, 137, 227, 244, 20, 1, + 137, 216, 216, 20, 1, 137, 229, 37, 20, 1, 137, 243, 234, 20, 1, 137, + 229, 137, 20, 1, 137, 228, 13, 20, 1, 137, 228, 9, 20, 1, 137, 251, 108, + 20, 1, 137, 213, 183, 20, 1, 137, 231, 114, 20, 1, 137, 222, 141, 20, 1, + 137, 228, 184, 20, 1, 137, 233, 103, 20, 1, 137, 216, 65, 20, 1, 137, + 227, 251, 229, 2, 20, 1, 137, 228, 176, 20, 1, 137, 234, 157, 20, 1, 137, + 229, 41, 20, 1, 137, 231, 213, 20, 1, 137, 231, 102, 20, 1, 137, 232, 99, + 20, 1, 137, 233, 190, 20, 1, 137, 228, 182, 20, 1, 137, 229, 2, 20, 1, + 137, 211, 184, 20, 1, 137, 229, 38, 20, 1, 137, 227, 254, 20, 1, 137, + 227, 246, 20, 1, 137, 233, 204, 228, 140, 20, 1, 137, 227, 252, 20, 1, + 137, 229, 145, 20, 1, 137, 231, 240, 228, 1, 20, 1, 137, 211, 103, 20, 1, + 137, 229, 144, 20, 1, 137, 219, 221, 20, 1, 137, 220, 127, 20, 1, 137, + 231, 110, 20, 1, 137, 231, 220, 20, 1, 137, 231, 120, 20, 1, 137, 234, + 145, 20, 1, 137, 231, 111, 20, 1, 137, 234, 149, 20, 1, 137, 231, 124, + 225, 104, 20, 1, 137, 210, 179, 20, 1, 137, 228, 172, 20, 1, 137, 230, + 221, 20, 1, 137, 230, 101, 20, 1, 137, 220, 16, 20, 1, 137, 234, 167, + 233, 71, 20, 1, 137, 234, 167, 244, 161, 20, 1, 137, 229, 70, 20, 1, 137, + 229, 197, 20, 1, 137, 232, 201, 20, 1, 137, 225, 66, 20, 1, 137, 225, + 200, 20, 1, 137, 216, 231, 20, 1, 107, 231, 100, 20, 1, 107, 212, 51, 20, + 1, 107, 228, 170, 20, 1, 107, 231, 17, 20, 1, 107, 228, 168, 20, 1, 107, + 232, 236, 20, 1, 107, 228, 173, 20, 1, 107, 228, 8, 20, 1, 107, 229, 55, + 20, 1, 107, 227, 161, 20, 1, 107, 211, 194, 20, 1, 107, 229, 10, 20, 1, + 107, 220, 62, 20, 1, 107, 229, 21, 20, 1, 107, 234, 152, 20, 1, 107, 216, + 218, 20, 1, 107, 220, 42, 20, 1, 107, 228, 181, 20, 1, 107, 218, 53, 20, + 1, 107, 234, 157, 20, 1, 107, 211, 91, 20, 1, 107, 233, 205, 20, 1, 107, + 221, 235, 20, 1, 107, 231, 22, 20, 1, 107, 229, 136, 20, 1, 107, 231, + 189, 20, 1, 107, 231, 28, 20, 1, 107, 220, 126, 20, 1, 107, 211, 39, 20, + 1, 107, 228, 175, 20, 1, 107, 234, 148, 231, 103, 20, 1, 107, 229, 17, + 20, 1, 107, 215, 119, 20, 1, 107, 242, 249, 20, 1, 107, 229, 7, 20, 1, + 107, 244, 128, 20, 1, 107, 229, 140, 20, 1, 107, 231, 1, 20, 1, 107, 233, + 6, 20, 1, 107, 229, 122, 20, 1, 107, 230, 148, 20, 1, 107, 231, 5, 20, 1, + 107, 224, 119, 20, 1, 107, 231, 3, 20, 1, 107, 231, 19, 20, 1, 107, 232, + 85, 20, 1, 107, 228, 0, 20, 1, 107, 231, 123, 20, 1, 107, 233, 181, 20, + 1, 107, 227, 152, 20, 1, 107, 216, 221, 20, 1, 107, 219, 35, 20, 1, 107, + 210, 179, 20, 1, 107, 234, 149, 20, 1, 107, 223, 171, 20, 1, 107, 217, + 11, 20, 1, 107, 229, 18, 20, 1, 107, 231, 24, 20, 1, 107, 227, 255, 20, + 1, 107, 234, 147, 20, 1, 107, 225, 60, 20, 1, 107, 225, 153, 20, 1, 107, + 227, 128, 20, 1, 107, 233, 12, 20, 1, 107, 229, 56, 20, 1, 107, 231, 21, + 20, 1, 107, 229, 30, 20, 1, 107, 210, 193, 20, 1, 107, 226, 22, 20, 1, + 107, 210, 192, 20, 1, 107, 229, 145, 20, 1, 107, 227, 245, 20, 1, 107, + 218, 82, 20, 1, 107, 233, 209, 20, 1, 107, 229, 45, 20, 1, 107, 229, 15, + 20, 1, 107, 215, 103, 20, 1, 107, 231, 32, 20, 1, 107, 233, 199, 20, 1, + 107, 227, 253, 20, 1, 107, 216, 219, 20, 1, 107, 231, 215, 20, 1, 107, + 229, 54, 20, 1, 107, 233, 5, 20, 1, 107, 229, 36, 20, 1, 107, 228, 2, 20, + 1, 107, 228, 154, 20, 1, 107, 242, 234, 20, 1, 107, 233, 218, 20, 1, 107, + 223, 85, 226, 210, 20, 1, 107, 217, 87, 20, 1, 107, 216, 11, 20, 1, 107, + 227, 149, 20, 1, 107, 222, 240, 20, 1, 107, 233, 50, 20, 1, 107, 231, 80, + 20, 1, 107, 193, 20, 1, 107, 218, 5, 20, 1, 107, 230, 103, 20, 1, 107, + 220, 28, 20, 1, 107, 220, 38, 20, 1, 107, 233, 156, 20, 1, 107, 227, 238, + 20, 1, 107, 219, 226, 20, 1, 107, 227, 247, 20, 1, 107, 225, 212, 20, 1, + 107, 228, 234, 20, 1, 107, 219, 253, 20, 1, 107, 224, 134, 20, 1, 107, + 230, 47, 20, 1, 107, 232, 120, 20, 1, 107, 223, 85, 230, 97, 20, 1, 107, + 216, 118, 20, 1, 107, 227, 239, 20, 1, 107, 231, 124, 198, 20, 1, 107, + 221, 233, 20, 1, 107, 244, 196, 20, 1, 82, 229, 144, 20, 1, 82, 216, 17, + 20, 1, 82, 231, 113, 20, 1, 82, 233, 89, 20, 1, 82, 213, 128, 20, 1, 82, + 232, 126, 20, 1, 82, 226, 90, 20, 1, 82, 219, 46, 20, 1, 82, 223, 146, + 20, 1, 82, 228, 4, 20, 1, 82, 229, 115, 20, 1, 82, 224, 148, 20, 1, 82, + 217, 63, 20, 1, 82, 229, 23, 20, 1, 82, 233, 246, 20, 1, 82, 211, 187, + 20, 1, 82, 221, 171, 20, 1, 82, 229, 46, 20, 1, 82, 226, 87, 20, 1, 82, + 216, 18, 20, 1, 82, 233, 203, 20, 1, 82, 232, 140, 20, 1, 82, 228, 7, 20, + 1, 82, 228, 255, 20, 1, 82, 231, 221, 20, 1, 82, 229, 16, 20, 1, 82, 228, + 254, 20, 1, 82, 228, 6, 20, 1, 82, 222, 238, 20, 1, 82, 228, 172, 20, 1, + 82, 225, 211, 20, 1, 82, 222, 32, 20, 1, 82, 229, 31, 20, 1, 82, 231, 11, + 20, 1, 82, 242, 228, 20, 1, 82, 229, 19, 20, 1, 82, 228, 183, 20, 1, 82, + 231, 173, 20, 1, 82, 232, 122, 20, 1, 82, 229, 51, 20, 1, 82, 229, 128, + 20, 1, 82, 217, 86, 227, 245, 20, 1, 82, 220, 128, 20, 1, 82, 224, 144, + 20, 1, 82, 229, 148, 219, 52, 20, 1, 82, 229, 39, 227, 161, 20, 1, 82, + 211, 4, 20, 1, 82, 242, 229, 20, 1, 82, 215, 118, 20, 1, 82, 211, 19, 20, + 1, 82, 225, 17, 20, 1, 82, 215, 108, 20, 1, 82, 234, 155, 20, 1, 82, 218, + 81, 20, 1, 82, 216, 220, 20, 1, 82, 213, 184, 20, 1, 82, 212, 6, 20, 1, + 82, 233, 133, 20, 1, 82, 224, 151, 20, 1, 82, 217, 97, 20, 1, 82, 242, + 248, 20, 1, 82, 229, 60, 20, 1, 82, 220, 41, 20, 1, 82, 231, 6, 20, 1, + 82, 231, 117, 20, 1, 82, 227, 116, 20, 1, 82, 228, 137, 20, 1, 82, 243, + 74, 20, 1, 82, 215, 109, 20, 1, 82, 233, 212, 20, 1, 82, 211, 67, 20, 1, + 82, 227, 150, 250, 17, 20, 1, 82, 210, 250, 20, 1, 82, 231, 23, 20, 1, + 82, 229, 133, 20, 1, 82, 225, 101, 20, 1, 82, 210, 197, 20, 1, 82, 233, + 7, 20, 1, 82, 243, 234, 20, 1, 82, 243, 73, 20, 1, 82, 229, 9, 20, 1, 82, + 234, 157, 20, 1, 82, 231, 224, 20, 1, 82, 229, 22, 20, 1, 82, 242, 235, + 20, 1, 82, 244, 197, 20, 1, 82, 227, 240, 20, 1, 82, 225, 154, 20, 1, 82, + 211, 17, 20, 1, 82, 229, 47, 20, 1, 82, 227, 150, 252, 24, 20, 1, 82, + 227, 96, 20, 1, 82, 224, 248, 20, 1, 82, 230, 221, 20, 1, 82, 243, 232, + 20, 1, 82, 229, 221, 20, 1, 82, 230, 101, 20, 1, 82, 242, 234, 20, 1, 82, + 243, 236, 73, 20, 1, 82, 230, 48, 20, 1, 82, 224, 147, 20, 1, 82, 229, + 11, 20, 1, 82, 233, 190, 20, 1, 82, 225, 98, 20, 1, 82, 227, 248, 20, 1, + 82, 211, 18, 20, 1, 82, 229, 32, 20, 1, 82, 226, 91, 225, 188, 20, 1, 82, + 243, 236, 251, 16, 20, 1, 82, 244, 38, 20, 1, 82, 228, 177, 20, 1, 82, + 61, 20, 1, 82, 216, 11, 20, 1, 82, 76, 20, 1, 82, 73, 20, 1, 82, 233, 87, + 20, 1, 82, 226, 91, 225, 24, 20, 1, 82, 217, 102, 20, 1, 82, 217, 52, 20, + 1, 82, 229, 148, 230, 35, 240, 235, 20, 1, 82, 220, 16, 20, 1, 82, 211, + 14, 20, 1, 82, 228, 248, 20, 1, 82, 210, 202, 20, 1, 82, 210, 227, 217, + 241, 20, 1, 82, 210, 227, 249, 148, 20, 1, 82, 210, 187, 20, 1, 82, 210, + 195, 20, 1, 82, 234, 143, 20, 1, 82, 225, 152, 20, 1, 82, 228, 178, 245, + 103, 20, 1, 82, 224, 145, 20, 1, 82, 211, 192, 20, 1, 82, 244, 148, 20, + 1, 82, 213, 250, 20, 1, 82, 232, 99, 20, 1, 82, 230, 231, 20, 1, 82, 223, + 52, 20, 1, 82, 223, 172, 20, 1, 82, 228, 247, 20, 1, 82, 229, 78, 20, 1, + 82, 220, 8, 20, 1, 82, 219, 253, 20, 1, 82, 243, 236, 223, 87, 20, 1, 82, + 197, 20, 1, 82, 225, 109, 20, 1, 82, 232, 120, 20, 1, 82, 234, 29, 20, 1, + 82, 231, 59, 20, 1, 82, 185, 20, 1, 82, 231, 170, 20, 1, 82, 216, 222, + 20, 1, 82, 234, 93, 20, 1, 82, 230, 151, 20, 1, 82, 216, 248, 20, 1, 82, + 244, 170, 20, 1, 82, 242, 224, 20, 1, 225, 138, 176, 20, 1, 225, 138, 70, + 20, 1, 225, 138, 233, 218, 20, 1, 225, 138, 245, 210, 20, 1, 225, 138, + 223, 109, 20, 1, 225, 138, 217, 87, 20, 1, 225, 138, 227, 149, 20, 1, + 225, 138, 233, 136, 20, 1, 225, 138, 222, 240, 20, 1, 225, 138, 223, 30, + 20, 1, 225, 138, 231, 80, 20, 1, 225, 138, 217, 102, 20, 1, 225, 138, + 229, 147, 20, 1, 225, 138, 228, 184, 20, 1, 225, 138, 193, 20, 1, 225, + 138, 218, 5, 20, 1, 225, 138, 220, 28, 20, 1, 225, 138, 219, 192, 20, 1, + 225, 138, 220, 124, 20, 1, 225, 138, 233, 156, 20, 1, 225, 138, 234, 157, + 20, 1, 225, 138, 227, 210, 20, 1, 225, 138, 227, 238, 20, 1, 225, 138, + 228, 155, 20, 1, 225, 138, 210, 226, 20, 1, 225, 138, 219, 226, 20, 1, + 225, 138, 191, 20, 1, 225, 138, 228, 10, 20, 1, 225, 138, 225, 152, 20, + 1, 225, 138, 227, 247, 20, 1, 225, 138, 211, 192, 20, 1, 225, 138, 225, + 212, 20, 1, 225, 138, 222, 141, 20, 1, 225, 138, 228, 234, 20, 1, 225, + 138, 223, 52, 20, 1, 225, 138, 234, 166, 20, 1, 225, 138, 229, 8, 20, 1, + 225, 138, 229, 57, 20, 1, 225, 138, 220, 8, 20, 1, 225, 138, 224, 148, + 20, 1, 225, 138, 244, 38, 20, 1, 225, 138, 212, 65, 20, 1, 225, 138, 232, + 242, 20, 1, 225, 138, 232, 120, 20, 1, 225, 138, 234, 29, 20, 1, 225, + 138, 231, 115, 20, 1, 225, 138, 223, 84, 20, 1, 225, 138, 185, 20, 1, + 225, 138, 230, 162, 20, 1, 225, 138, 231, 123, 20, 1, 225, 138, 216, 231, + 20, 1, 225, 138, 233, 252, 20, 1, 225, 138, 221, 252, 20, 1, 225, 138, + 212, 115, 95, 1, 190, 95, 1, 252, 192, 95, 1, 8, 190, 95, 1, 225, 43, 95, + 1, 185, 95, 1, 230, 234, 95, 1, 254, 24, 185, 95, 1, 244, 197, 95, 1, + 214, 27, 95, 1, 213, 177, 95, 1, 217, 106, 95, 1, 248, 222, 95, 1, 8, + 215, 157, 95, 1, 8, 217, 106, 95, 1, 215, 157, 95, 1, 248, 136, 95, 1, + 197, 95, 1, 228, 238, 95, 1, 8, 228, 111, 95, 1, 254, 24, 197, 95, 1, + 228, 111, 95, 1, 228, 97, 95, 1, 233, 136, 95, 1, 232, 62, 95, 1, 232, + 255, 95, 1, 232, 244, 95, 1, 216, 57, 95, 1, 247, 154, 95, 1, 216, 49, + 95, 1, 247, 153, 95, 1, 176, 95, 1, 243, 136, 95, 1, 8, 176, 95, 1, 224, + 89, 95, 1, 224, 67, 95, 1, 229, 78, 95, 1, 229, 29, 95, 1, 254, 24, 229, + 78, 95, 1, 162, 95, 1, 211, 165, 95, 1, 242, 250, 95, 1, 242, 227, 95, 1, + 215, 166, 95, 1, 246, 27, 95, 1, 227, 166, 95, 1, 227, 151, 95, 1, 215, + 176, 95, 1, 246, 34, 95, 1, 8, 215, 176, 95, 1, 8, 246, 34, 95, 1, 223, + 107, 215, 176, 95, 1, 220, 103, 95, 1, 218, 224, 95, 1, 210, 82, 95, 1, + 210, 14, 95, 1, 215, 184, 95, 1, 246, 39, 95, 1, 8, 215, 184, 95, 1, 206, + 95, 1, 210, 116, 95, 1, 210, 15, 95, 1, 209, 243, 95, 1, 209, 223, 95, 1, + 254, 24, 209, 243, 95, 1, 209, 215, 95, 1, 209, 222, 95, 1, 212, 65, 95, + 1, 254, 210, 95, 1, 241, 190, 95, 1, 229, 193, 95, 5, 253, 223, 95, 5, + 223, 107, 213, 133, 95, 5, 223, 107, 253, 223, 95, 25, 5, 61, 95, 25, 5, + 255, 74, 95, 25, 5, 254, 206, 95, 25, 5, 254, 124, 95, 25, 5, 254, 116, + 95, 25, 5, 76, 95, 25, 5, 226, 184, 95, 25, 5, 211, 227, 95, 25, 5, 212, + 98, 95, 25, 5, 75, 95, 25, 5, 245, 151, 95, 25, 5, 245, 139, 95, 25, 5, + 226, 233, 95, 25, 5, 73, 95, 25, 5, 240, 120, 95, 25, 5, 240, 119, 95, + 25, 5, 240, 118, 95, 25, 5, 235, 190, 95, 25, 5, 236, 61, 95, 25, 5, 236, + 34, 95, 25, 5, 235, 157, 95, 25, 5, 235, 232, 95, 25, 5, 70, 95, 25, 5, 214, 229, 95, 25, 5, 214, 228, 95, 25, 5, 214, 227, 95, 25, 5, 214, 118, 95, 25, 5, 214, 211, 95, 25, 5, 214, 178, 95, 25, 5, 211, 117, 95, 25, 5, - 211, 8, 95, 25, 5, 254, 243, 95, 25, 5, 254, 239, 95, 25, 5, 245, 86, 95, - 25, 5, 222, 183, 245, 86, 95, 25, 5, 245, 92, 95, 25, 5, 222, 183, 245, - 92, 95, 25, 5, 254, 201, 95, 25, 5, 245, 195, 95, 25, 5, 253, 192, 95, - 25, 5, 226, 134, 95, 25, 5, 230, 25, 95, 25, 5, 229, 79, 95, 138, 222, - 251, 95, 138, 216, 14, 222, 251, 95, 138, 48, 95, 138, 51, 95, 1, 216, - 28, 95, 1, 216, 27, 95, 1, 216, 26, 95, 1, 216, 25, 95, 1, 216, 24, 95, - 1, 216, 23, 95, 1, 216, 22, 95, 1, 223, 106, 216, 29, 95, 1, 223, 106, - 216, 28, 95, 1, 223, 106, 216, 26, 95, 1, 223, 106, 216, 25, 95, 1, 223, - 106, 216, 24, 95, 1, 223, 106, 216, 22, 56, 1, 254, 23, 75, 141, 1, 254, - 23, 211, 47, 49, 28, 16, 224, 154, 49, 28, 16, 248, 158, 49, 28, 16, 225, - 175, 49, 28, 16, 226, 113, 245, 178, 49, 28, 16, 226, 113, 247, 201, 49, - 28, 16, 214, 16, 245, 178, 49, 28, 16, 214, 16, 247, 201, 49, 28, 16, - 234, 197, 49, 28, 16, 217, 169, 49, 28, 16, 226, 9, 49, 28, 16, 210, 217, - 49, 28, 16, 210, 218, 247, 201, 49, 28, 16, 233, 234, 49, 28, 16, 254, - 68, 245, 178, 49, 28, 16, 245, 26, 245, 178, 49, 28, 16, 217, 2, 49, 28, - 16, 234, 161, 49, 28, 16, 254, 58, 49, 28, 16, 254, 59, 247, 201, 49, 28, - 16, 217, 175, 49, 28, 16, 216, 159, 49, 28, 16, 226, 206, 254, 21, 49, - 28, 16, 242, 159, 254, 21, 49, 28, 16, 224, 153, 49, 28, 16, 250, 149, - 49, 28, 16, 214, 6, 49, 28, 16, 235, 164, 254, 21, 49, 28, 16, 234, 163, - 254, 21, 49, 28, 16, 234, 162, 254, 21, 49, 28, 16, 221, 213, 49, 28, 16, - 226, 0, 49, 28, 16, 218, 146, 254, 61, 49, 28, 16, 226, 112, 254, 21, 49, - 28, 16, 214, 15, 254, 21, 49, 28, 16, 254, 62, 254, 21, 49, 28, 16, 254, - 56, 49, 28, 16, 234, 37, 49, 28, 16, 223, 46, 49, 28, 16, 225, 106, 254, - 21, 49, 28, 16, 216, 83, 49, 28, 16, 254, 121, 49, 28, 16, 221, 159, 49, - 28, 16, 217, 178, 254, 21, 49, 28, 16, 217, 178, 231, 40, 218, 144, 49, - 28, 16, 226, 107, 254, 21, 49, 28, 16, 216, 190, 49, 28, 16, 233, 27, 49, - 28, 16, 246, 41, 49, 28, 16, 215, 227, 49, 28, 16, 216, 232, 49, 28, 16, - 233, 237, 49, 28, 16, 254, 68, 245, 26, 229, 95, 49, 28, 16, 243, 236, - 254, 21, 49, 28, 16, 236, 12, 49, 28, 16, 215, 199, 254, 21, 49, 28, 16, - 234, 200, 215, 198, 49, 28, 16, 225, 200, 49, 28, 16, 224, 158, 49, 28, - 16, 234, 11, 49, 28, 16, 250, 80, 254, 21, 49, 28, 16, 223, 146, 49, 28, - 16, 226, 12, 254, 21, 49, 28, 16, 226, 10, 254, 21, 49, 28, 16, 240, 109, - 49, 28, 16, 229, 203, 49, 28, 16, 225, 156, 49, 28, 16, 234, 12, 254, - 149, 49, 28, 16, 215, 199, 254, 149, 49, 28, 16, 218, 123, 49, 28, 16, - 242, 123, 49, 28, 16, 235, 164, 229, 95, 49, 28, 16, 226, 206, 229, 95, - 49, 28, 16, 226, 113, 229, 95, 49, 28, 16, 225, 155, 49, 28, 16, 233, - 254, 49, 28, 16, 225, 154, 49, 28, 16, 233, 236, 49, 28, 16, 225, 201, - 229, 95, 49, 28, 16, 234, 162, 229, 96, 254, 96, 49, 28, 16, 234, 163, - 229, 96, 254, 96, 49, 28, 16, 210, 215, 49, 28, 16, 254, 59, 229, 95, 49, - 28, 16, 254, 60, 217, 176, 229, 95, 49, 28, 16, 210, 216, 49, 28, 16, - 233, 235, 49, 28, 16, 245, 173, 49, 28, 16, 250, 150, 49, 28, 16, 230, - 198, 235, 163, 49, 28, 16, 214, 16, 229, 95, 49, 28, 16, 225, 106, 229, - 95, 49, 28, 16, 224, 159, 229, 95, 49, 28, 16, 226, 203, 49, 28, 16, 254, - 84, 49, 28, 16, 232, 58, 49, 28, 16, 226, 10, 229, 95, 49, 28, 16, 226, - 12, 229, 95, 49, 28, 16, 245, 60, 226, 11, 49, 28, 16, 233, 153, 49, 28, - 16, 254, 85, 49, 28, 16, 215, 199, 229, 95, 49, 28, 16, 245, 176, 49, 28, - 16, 217, 178, 229, 95, 49, 28, 16, 217, 170, 49, 28, 16, 250, 80, 229, - 95, 49, 28, 16, 245, 106, 49, 28, 16, 221, 160, 229, 95, 49, 28, 16, 211, - 151, 234, 37, 49, 28, 16, 215, 196, 49, 28, 16, 224, 160, 49, 28, 16, - 215, 200, 49, 28, 16, 215, 197, 49, 28, 16, 224, 157, 49, 28, 16, 215, - 195, 49, 28, 16, 224, 156, 49, 28, 16, 242, 158, 49, 28, 16, 254, 14, 49, - 28, 16, 245, 60, 254, 14, 49, 28, 16, 226, 107, 229, 95, 49, 28, 16, 216, - 189, 245, 69, 49, 28, 16, 216, 189, 245, 25, 49, 28, 16, 216, 191, 254, - 63, 49, 28, 16, 216, 184, 234, 247, 254, 55, 49, 28, 16, 234, 199, 49, - 28, 16, 245, 139, 49, 28, 16, 211, 11, 234, 196, 49, 28, 16, 211, 11, - 254, 96, 49, 28, 16, 218, 145, 49, 28, 16, 234, 38, 254, 96, 49, 28, 16, - 247, 202, 254, 21, 49, 28, 16, 233, 238, 254, 21, 49, 28, 16, 233, 238, - 254, 149, 49, 28, 16, 233, 238, 229, 95, 49, 28, 16, 254, 62, 229, 95, - 49, 28, 16, 254, 64, 49, 28, 16, 247, 201, 49, 28, 16, 215, 210, 49, 28, - 16, 216, 224, 49, 28, 16, 234, 2, 49, 28, 16, 233, 32, 245, 134, 250, 71, - 49, 28, 16, 233, 32, 246, 42, 250, 72, 49, 28, 16, 233, 32, 215, 212, - 250, 72, 49, 28, 16, 233, 32, 216, 234, 250, 72, 49, 28, 16, 233, 32, - 236, 7, 250, 71, 49, 28, 16, 242, 159, 229, 96, 254, 96, 49, 28, 16, 242, - 159, 226, 1, 254, 10, 49, 28, 16, 242, 159, 226, 1, 248, 29, 49, 28, 16, - 247, 225, 49, 28, 16, 247, 226, 226, 1, 254, 11, 234, 196, 49, 28, 16, - 247, 226, 226, 1, 254, 11, 254, 96, 49, 28, 16, 247, 226, 226, 1, 248, - 29, 49, 28, 16, 215, 216, 49, 28, 16, 254, 15, 49, 28, 16, 236, 14, 49, - 28, 16, 247, 246, 49, 28, 16, 254, 211, 225, 0, 254, 16, 49, 28, 16, 254, - 211, 254, 13, 49, 28, 16, 254, 211, 254, 16, 49, 28, 16, 254, 211, 231, - 34, 49, 28, 16, 254, 211, 231, 45, 49, 28, 16, 254, 211, 242, 160, 49, - 28, 16, 254, 211, 242, 157, 49, 28, 16, 254, 211, 225, 0, 242, 160, 49, - 28, 16, 231, 151, 224, 165, 240, 107, 49, 28, 16, 231, 151, 254, 151, - 224, 165, 240, 107, 49, 28, 16, 231, 151, 248, 28, 240, 107, 49, 28, 16, - 231, 151, 254, 151, 248, 28, 240, 107, 49, 28, 16, 231, 151, 215, 205, - 240, 107, 49, 28, 16, 231, 151, 215, 217, 49, 28, 16, 231, 151, 216, 228, - 240, 107, 49, 28, 16, 231, 151, 216, 228, 233, 35, 240, 107, 49, 28, 16, - 231, 151, 233, 35, 240, 107, 49, 28, 16, 231, 151, 225, 39, 240, 107, 49, - 28, 16, 235, 169, 216, 251, 240, 108, 49, 28, 16, 254, 60, 216, 251, 240, - 108, 49, 28, 16, 244, 172, 216, 225, 49, 28, 16, 244, 172, 230, 143, 49, - 28, 16, 244, 172, 247, 230, 49, 28, 16, 231, 151, 214, 10, 240, 107, 49, - 28, 16, 231, 151, 224, 164, 240, 107, 49, 28, 16, 231, 151, 225, 39, 216, - 228, 240, 107, 49, 28, 16, 242, 155, 230, 26, 254, 63, 49, 28, 16, 242, - 155, 230, 26, 247, 200, 49, 28, 16, 245, 148, 234, 247, 243, 236, 213, - 124, 49, 28, 16, 236, 13, 49, 28, 16, 236, 11, 49, 28, 16, 243, 236, 254, - 22, 248, 27, 240, 106, 49, 28, 16, 243, 236, 247, 244, 190, 49, 28, 16, - 243, 236, 247, 244, 229, 203, 49, 28, 16, 243, 236, 229, 198, 240, 107, - 49, 28, 16, 243, 236, 247, 244, 248, 3, 49, 28, 16, 243, 236, 219, 102, - 247, 243, 248, 3, 49, 28, 16, 243, 236, 247, 244, 234, 182, 49, 28, 16, - 243, 236, 247, 244, 210, 23, 49, 28, 16, 243, 236, 247, 244, 228, 234, - 234, 196, 49, 28, 16, 243, 236, 247, 244, 228, 234, 254, 96, 49, 28, 16, - 243, 236, 231, 191, 250, 73, 247, 230, 49, 28, 16, 243, 236, 231, 191, - 250, 73, 230, 143, 49, 28, 16, 244, 122, 219, 102, 250, 73, 214, 9, 49, - 28, 16, 243, 236, 219, 102, 250, 73, 217, 179, 49, 28, 16, 243, 236, 229, - 97, 49, 28, 16, 250, 74, 209, 249, 49, 28, 16, 250, 74, 234, 36, 49, 28, - 16, 250, 74, 219, 9, 49, 28, 16, 243, 236, 240, 154, 211, 10, 216, 229, - 49, 28, 16, 243, 236, 245, 149, 254, 86, 49, 28, 16, 211, 10, 215, 206, - 49, 28, 16, 247, 238, 215, 206, 49, 28, 16, 247, 238, 216, 229, 49, 28, - 16, 247, 238, 254, 65, 246, 42, 247, 139, 49, 28, 16, 247, 238, 230, 141, - 216, 233, 247, 139, 49, 28, 16, 247, 238, 247, 222, 245, 36, 247, 139, - 49, 28, 16, 247, 238, 215, 214, 226, 211, 247, 139, 49, 28, 16, 211, 10, - 254, 65, 246, 42, 247, 139, 49, 28, 16, 211, 10, 230, 141, 216, 233, 247, - 139, 49, 28, 16, 211, 10, 247, 222, 245, 36, 247, 139, 49, 28, 16, 211, - 10, 215, 214, 226, 211, 247, 139, 49, 28, 16, 243, 49, 247, 237, 49, 28, - 16, 243, 49, 211, 9, 49, 28, 16, 247, 245, 254, 65, 230, 199, 49, 28, 16, - 247, 245, 254, 65, 231, 73, 49, 28, 16, 247, 245, 247, 201, 49, 28, 16, - 247, 245, 216, 182, 49, 28, 16, 219, 163, 216, 182, 49, 28, 16, 219, 163, - 216, 183, 247, 186, 49, 28, 16, 219, 163, 216, 183, 215, 207, 49, 28, 16, - 219, 163, 216, 183, 216, 222, 49, 28, 16, 219, 163, 253, 244, 49, 28, 16, - 219, 163, 253, 245, 247, 186, 49, 28, 16, 219, 163, 253, 245, 215, 207, - 49, 28, 16, 219, 163, 253, 245, 216, 222, 49, 28, 16, 247, 223, 243, 30, - 49, 28, 16, 247, 229, 226, 134, 49, 28, 16, 218, 137, 49, 28, 16, 254, 7, - 190, 49, 28, 16, 254, 7, 213, 124, 49, 28, 16, 254, 7, 243, 135, 49, 28, - 16, 254, 7, 248, 3, 49, 28, 16, 254, 7, 234, 182, 49, 28, 16, 254, 7, - 210, 23, 49, 28, 16, 254, 7, 228, 233, 49, 28, 16, 234, 162, 229, 96, - 231, 44, 49, 28, 16, 234, 163, 229, 96, 231, 44, 49, 28, 16, 234, 162, - 229, 96, 234, 196, 49, 28, 16, 234, 163, 229, 96, 234, 196, 49, 28, 16, - 234, 38, 234, 196, 49, 28, 16, 242, 159, 229, 96, 234, 196, 28, 16, 219, - 155, 252, 135, 28, 16, 52, 252, 135, 28, 16, 40, 252, 135, 28, 16, 223, - 50, 40, 252, 135, 28, 16, 248, 155, 252, 135, 28, 16, 219, 251, 252, 135, - 28, 16, 43, 223, 77, 50, 28, 16, 44, 223, 77, 50, 28, 16, 223, 77, 247, - 118, 28, 16, 248, 196, 221, 163, 28, 16, 248, 222, 250, 249, 28, 16, 221, - 163, 28, 16, 249, 234, 28, 16, 223, 75, 244, 111, 28, 16, 223, 75, 244, - 110, 28, 16, 223, 75, 244, 109, 28, 16, 244, 131, 28, 16, 244, 132, 51, - 28, 16, 251, 148, 78, 28, 16, 251, 24, 28, 16, 251, 159, 28, 16, 127, 28, - 16, 226, 193, 218, 163, 28, 16, 215, 57, 218, 163, 28, 16, 216, 142, 218, - 163, 28, 16, 244, 10, 218, 163, 28, 16, 244, 80, 218, 163, 28, 16, 219, - 124, 218, 163, 28, 16, 219, 122, 243, 250, 28, 16, 244, 8, 243, 250, 28, - 16, 243, 203, 250, 14, 28, 16, 243, 203, 250, 15, 226, 136, 254, 142, 28, - 16, 243, 203, 250, 15, 226, 136, 252, 122, 28, 16, 251, 67, 250, 14, 28, - 16, 245, 7, 250, 14, 28, 16, 245, 7, 250, 15, 226, 136, 254, 142, 28, 16, - 245, 7, 250, 15, 226, 136, 252, 122, 28, 16, 246, 83, 250, 13, 28, 16, - 246, 83, 250, 12, 28, 16, 230, 85, 231, 90, 223, 61, 28, 16, 52, 220, 75, - 28, 16, 52, 244, 65, 28, 16, 244, 66, 214, 163, 28, 16, 244, 66, 246, - 106, 28, 16, 229, 188, 214, 163, 28, 16, 229, 188, 246, 106, 28, 16, 220, - 76, 214, 163, 28, 16, 220, 76, 246, 106, 28, 16, 224, 22, 138, 220, 75, - 28, 16, 224, 22, 138, 244, 65, 28, 16, 249, 216, 216, 87, 28, 16, 249, - 85, 216, 87, 28, 16, 226, 136, 254, 142, 28, 16, 226, 136, 252, 122, 28, - 16, 224, 4, 254, 142, 28, 16, 224, 4, 252, 122, 28, 16, 230, 88, 223, 61, - 28, 16, 211, 251, 223, 61, 28, 16, 163, 223, 61, 28, 16, 224, 22, 223, - 61, 28, 16, 245, 189, 223, 61, 28, 16, 219, 118, 223, 61, 28, 16, 216, - 160, 223, 61, 28, 16, 219, 110, 223, 61, 28, 16, 123, 240, 211, 215, 71, - 223, 61, 28, 16, 211, 179, 228, 43, 28, 16, 96, 228, 43, 28, 16, 250, 36, - 211, 179, 228, 43, 28, 16, 42, 228, 44, 211, 253, 28, 16, 42, 228, 44, - 251, 221, 28, 16, 215, 226, 228, 44, 120, 211, 253, 28, 16, 215, 226, - 228, 44, 120, 251, 221, 28, 16, 215, 226, 228, 44, 43, 211, 253, 28, 16, - 215, 226, 228, 44, 43, 251, 221, 28, 16, 215, 226, 228, 44, 44, 211, 253, - 28, 16, 215, 226, 228, 44, 44, 251, 221, 28, 16, 215, 226, 228, 44, 124, - 211, 253, 28, 16, 215, 226, 228, 44, 124, 251, 221, 28, 16, 215, 226, - 228, 44, 120, 44, 211, 253, 28, 16, 215, 226, 228, 44, 120, 44, 251, 221, - 28, 16, 230, 129, 228, 44, 211, 253, 28, 16, 230, 129, 228, 44, 251, 221, - 28, 16, 215, 223, 228, 44, 124, 211, 253, 28, 16, 215, 223, 228, 44, 124, - 251, 221, 28, 16, 226, 4, 228, 43, 28, 16, 213, 132, 228, 43, 28, 16, - 228, 44, 251, 221, 28, 16, 227, 203, 228, 43, 28, 16, 249, 241, 228, 44, - 211, 253, 28, 16, 249, 241, 228, 44, 251, 221, 28, 16, 251, 146, 28, 16, - 211, 251, 228, 47, 28, 16, 163, 228, 47, 28, 16, 224, 22, 228, 47, 28, - 16, 245, 189, 228, 47, 28, 16, 219, 118, 228, 47, 28, 16, 216, 160, 228, - 47, 28, 16, 219, 110, 228, 47, 28, 16, 123, 240, 211, 215, 71, 228, 47, - 28, 16, 38, 218, 139, 28, 16, 38, 218, 240, 218, 139, 28, 16, 38, 215, - 234, 28, 16, 38, 215, 233, 28, 16, 38, 215, 232, 28, 16, 244, 101, 215, - 234, 28, 16, 244, 101, 215, 233, 28, 16, 244, 101, 215, 232, 28, 16, 38, - 253, 189, 247, 120, 28, 16, 38, 244, 72, 28, 16, 38, 244, 71, 28, 16, 38, - 244, 70, 28, 16, 38, 244, 69, 28, 16, 38, 244, 68, 28, 16, 252, 58, 252, - 74, 28, 16, 245, 143, 252, 74, 28, 16, 252, 58, 216, 111, 28, 16, 245, - 143, 216, 111, 28, 16, 252, 58, 219, 80, 28, 16, 245, 143, 219, 80, 28, - 16, 252, 58, 225, 115, 28, 16, 245, 143, 225, 115, 28, 16, 38, 255, 14, - 28, 16, 38, 218, 165, 28, 16, 38, 216, 238, 28, 16, 38, 218, 166, 28, 16, - 38, 231, 162, 28, 16, 38, 231, 161, 28, 16, 38, 255, 13, 28, 16, 38, 232, - 112, 28, 16, 253, 254, 214, 163, 28, 16, 253, 254, 246, 106, 28, 16, 38, - 247, 135, 28, 16, 38, 222, 231, 28, 16, 38, 244, 58, 28, 16, 38, 219, 76, - 28, 16, 38, 252, 38, 28, 16, 38, 52, 216, 19, 28, 16, 38, 215, 211, 216, - 19, 28, 16, 222, 235, 28, 16, 218, 75, 28, 16, 210, 159, 28, 16, 225, - 107, 28, 16, 231, 25, 28, 16, 244, 17, 28, 16, 249, 138, 28, 16, 248, 78, - 28, 16, 242, 150, 228, 48, 219, 95, 28, 16, 242, 150, 228, 48, 228, 75, - 219, 95, 28, 16, 216, 0, 28, 16, 215, 95, 28, 16, 235, 193, 215, 95, 28, - 16, 215, 96, 219, 95, 28, 16, 215, 96, 214, 163, 28, 16, 226, 148, 218, - 102, 28, 16, 226, 148, 218, 99, 28, 16, 226, 148, 218, 98, 28, 16, 226, - 148, 218, 97, 28, 16, 226, 148, 218, 96, 28, 16, 226, 148, 218, 95, 28, - 16, 226, 148, 218, 94, 28, 16, 226, 148, 218, 93, 28, 16, 226, 148, 218, - 92, 28, 16, 226, 148, 218, 101, 28, 16, 226, 148, 218, 100, 28, 16, 241, - 245, 28, 16, 229, 105, 28, 16, 245, 143, 64, 218, 133, 28, 16, 248, 71, - 219, 95, 28, 16, 38, 124, 251, 169, 28, 16, 38, 120, 251, 169, 28, 16, - 38, 242, 0, 28, 16, 38, 219, 67, 225, 43, 28, 16, 225, 216, 78, 28, 16, - 225, 216, 120, 78, 28, 16, 163, 225, 216, 78, 28, 16, 242, 182, 214, 163, - 28, 16, 242, 182, 246, 106, 28, 16, 2, 244, 100, 28, 16, 248, 180, 28, - 16, 248, 181, 254, 154, 28, 16, 231, 133, 28, 16, 232, 129, 28, 16, 251, - 143, 28, 16, 220, 154, 211, 253, 28, 16, 220, 154, 251, 221, 28, 16, 230, - 184, 28, 16, 230, 185, 251, 221, 28, 16, 220, 148, 211, 253, 28, 16, 220, - 148, 251, 221, 28, 16, 243, 220, 211, 253, 28, 16, 243, 220, 251, 221, - 28, 16, 232, 130, 225, 180, 223, 61, 28, 16, 232, 130, 236, 4, 223, 61, - 28, 16, 251, 144, 223, 61, 28, 16, 220, 154, 223, 61, 28, 16, 230, 185, - 223, 61, 28, 16, 220, 148, 223, 61, 28, 16, 216, 249, 225, 178, 249, 107, - 224, 174, 225, 179, 28, 16, 216, 249, 225, 178, 249, 107, 224, 174, 236, - 3, 28, 16, 216, 249, 225, 178, 249, 107, 224, 174, 225, 180, 247, 211, - 28, 16, 216, 249, 236, 2, 249, 107, 224, 174, 225, 179, 28, 16, 216, 249, - 236, 2, 249, 107, 224, 174, 236, 3, 28, 16, 216, 249, 236, 2, 249, 107, - 224, 174, 236, 4, 247, 211, 28, 16, 216, 249, 236, 2, 249, 107, 224, 174, - 236, 4, 247, 210, 28, 16, 216, 249, 236, 2, 249, 107, 224, 174, 236, 4, - 247, 209, 28, 16, 249, 133, 28, 16, 242, 126, 251, 67, 250, 14, 28, 16, - 242, 126, 245, 7, 250, 14, 28, 16, 42, 253, 158, 28, 16, 213, 151, 28, - 16, 225, 14, 28, 16, 250, 5, 28, 16, 221, 203, 28, 16, 250, 9, 28, 16, - 216, 7, 28, 16, 224, 242, 28, 16, 224, 243, 244, 60, 28, 16, 221, 204, - 244, 60, 28, 16, 216, 8, 223, 58, 28, 16, 225, 163, 218, 66, 26, 213, - 137, 187, 217, 229, 26, 213, 137, 187, 217, 218, 26, 213, 137, 187, 217, - 208, 26, 213, 137, 187, 217, 201, 26, 213, 137, 187, 217, 193, 26, 213, - 137, 187, 217, 187, 26, 213, 137, 187, 217, 186, 26, 213, 137, 187, 217, - 185, 26, 213, 137, 187, 217, 184, 26, 213, 137, 187, 217, 228, 26, 213, - 137, 187, 217, 227, 26, 213, 137, 187, 217, 226, 26, 213, 137, 187, 217, - 225, 26, 213, 137, 187, 217, 224, 26, 213, 137, 187, 217, 223, 26, 213, - 137, 187, 217, 222, 26, 213, 137, 187, 217, 221, 26, 213, 137, 187, 217, - 220, 26, 213, 137, 187, 217, 219, 26, 213, 137, 187, 217, 217, 26, 213, - 137, 187, 217, 216, 26, 213, 137, 187, 217, 215, 26, 213, 137, 187, 217, - 214, 26, 213, 137, 187, 217, 213, 26, 213, 137, 187, 217, 192, 26, 213, - 137, 187, 217, 191, 26, 213, 137, 187, 217, 190, 26, 213, 137, 187, 217, - 189, 26, 213, 137, 187, 217, 188, 26, 235, 214, 187, 217, 229, 26, 235, - 214, 187, 217, 218, 26, 235, 214, 187, 217, 201, 26, 235, 214, 187, 217, - 193, 26, 235, 214, 187, 217, 186, 26, 235, 214, 187, 217, 185, 26, 235, - 214, 187, 217, 227, 26, 235, 214, 187, 217, 226, 26, 235, 214, 187, 217, - 225, 26, 235, 214, 187, 217, 224, 26, 235, 214, 187, 217, 221, 26, 235, - 214, 187, 217, 220, 26, 235, 214, 187, 217, 219, 26, 235, 214, 187, 217, - 214, 26, 235, 214, 187, 217, 213, 26, 235, 214, 187, 217, 212, 26, 235, - 214, 187, 217, 211, 26, 235, 214, 187, 217, 210, 26, 235, 214, 187, 217, - 209, 26, 235, 214, 187, 217, 207, 26, 235, 214, 187, 217, 206, 26, 235, - 214, 187, 217, 205, 26, 235, 214, 187, 217, 204, 26, 235, 214, 187, 217, - 203, 26, 235, 214, 187, 217, 202, 26, 235, 214, 187, 217, 200, 26, 235, - 214, 187, 217, 199, 26, 235, 214, 187, 217, 198, 26, 235, 214, 187, 217, - 197, 26, 235, 214, 187, 217, 196, 26, 235, 214, 187, 217, 195, 26, 235, - 214, 187, 217, 194, 26, 235, 214, 187, 217, 192, 26, 235, 214, 187, 217, - 191, 26, 235, 214, 187, 217, 190, 26, 235, 214, 187, 217, 189, 26, 235, - 214, 187, 217, 188, 38, 26, 28, 215, 208, 38, 26, 28, 216, 223, 38, 26, - 28, 225, 188, 26, 28, 233, 31, 230, 142, 31, 245, 223, 247, 224, 31, 241, - 222, 245, 223, 247, 224, 31, 240, 214, 245, 223, 247, 224, 31, 245, 222, - 241, 223, 247, 224, 31, 245, 222, 240, 213, 247, 224, 31, 245, 223, 180, - 31, 250, 174, 180, 31, 243, 229, 250, 35, 180, 31, 230, 177, 180, 31, - 252, 130, 180, 31, 234, 179, 219, 79, 180, 31, 249, 179, 180, 31, 253, - 233, 180, 31, 226, 163, 180, 31, 251, 153, 226, 130, 180, 31, 248, 73, - 177, 247, 179, 180, 31, 247, 176, 180, 31, 210, 222, 180, 31, 235, 247, - 180, 31, 225, 197, 180, 31, 223, 127, 180, 31, 249, 189, 180, 31, 241, - 60, 252, 184, 180, 31, 212, 59, 180, 31, 244, 39, 180, 31, 254, 246, 180, - 31, 223, 89, 180, 31, 223, 65, 180, 31, 245, 221, 180, 31, 235, 53, 180, - 31, 249, 184, 180, 31, 245, 142, 180, 31, 246, 52, 180, 31, 250, 145, - 180, 31, 248, 82, 180, 31, 23, 223, 64, 180, 31, 226, 81, 180, 31, 233, - 34, 180, 31, 249, 254, 180, 31, 234, 77, 180, 31, 243, 86, 180, 31, 218, - 112, 180, 31, 224, 130, 180, 31, 243, 228, 180, 31, 223, 66, 180, 31, - 233, 71, 177, 230, 157, 180, 31, 223, 62, 180, 31, 242, 168, 216, 42, - 231, 76, 180, 31, 245, 144, 180, 31, 218, 124, 180, 31, 242, 128, 180, - 31, 245, 136, 180, 31, 225, 235, 180, 31, 222, 225, 180, 31, 244, 59, - 180, 31, 214, 8, 177, 212, 44, 180, 31, 249, 193, 180, 31, 231, 89, 180, - 31, 245, 61, 180, 31, 214, 172, 180, 31, 247, 212, 180, 31, 250, 0, 230, - 110, 180, 31, 242, 106, 180, 31, 243, 87, 235, 255, 180, 31, 231, 141, - 180, 31, 255, 10, 180, 31, 245, 157, 180, 31, 246, 109, 180, 31, 212, 42, - 180, 31, 219, 150, 180, 31, 235, 222, 180, 31, 248, 42, 180, 31, 248, - 160, 180, 31, 247, 208, 180, 31, 245, 29, 180, 31, 220, 115, 180, 31, - 218, 128, 180, 31, 242, 2, 180, 31, 249, 212, 180, 31, 249, 251, 180, 31, - 244, 177, 180, 31, 254, 212, 180, 31, 249, 211, 180, 31, 226, 197, 216, - 196, 213, 242, 180, 31, 247, 232, 180, 31, 233, 124, 180, 31, 244, 13, - 249, 149, 222, 202, 214, 174, 21, 110, 249, 149, 222, 202, 214, 174, 21, - 105, 249, 149, 222, 202, 214, 174, 21, 158, 249, 149, 222, 202, 214, 174, - 21, 161, 249, 149, 222, 202, 214, 174, 21, 189, 249, 149, 222, 202, 214, - 174, 21, 194, 249, 149, 222, 202, 214, 174, 21, 198, 249, 149, 222, 202, - 214, 174, 21, 195, 249, 149, 222, 202, 214, 174, 21, 200, 249, 149, 222, - 202, 216, 243, 21, 110, 249, 149, 222, 202, 216, 243, 21, 105, 249, 149, - 222, 202, 216, 243, 21, 158, 249, 149, 222, 202, 216, 243, 21, 161, 249, - 149, 222, 202, 216, 243, 21, 189, 249, 149, 222, 202, 216, 243, 21, 194, - 249, 149, 222, 202, 216, 243, 21, 198, 249, 149, 222, 202, 216, 243, 21, - 195, 249, 149, 222, 202, 216, 243, 21, 200, 11, 23, 6, 61, 11, 23, 6, - 253, 158, 11, 23, 6, 251, 66, 11, 23, 6, 249, 60, 11, 23, 6, 75, 11, 23, - 6, 245, 6, 11, 23, 6, 243, 202, 11, 23, 6, 242, 60, 11, 23, 6, 73, 11, - 23, 6, 235, 144, 11, 23, 6, 235, 23, 11, 23, 6, 156, 11, 23, 6, 193, 11, - 23, 6, 230, 25, 11, 23, 6, 76, 11, 23, 6, 226, 105, 11, 23, 6, 224, 96, - 11, 23, 6, 153, 11, 23, 6, 222, 91, 11, 23, 6, 217, 152, 11, 23, 6, 70, - 11, 23, 6, 214, 105, 11, 23, 6, 212, 98, 11, 23, 6, 211, 178, 11, 23, 6, - 211, 117, 11, 23, 6, 210, 159, 11, 23, 4, 61, 11, 23, 4, 253, 158, 11, - 23, 4, 251, 66, 11, 23, 4, 249, 60, 11, 23, 4, 75, 11, 23, 4, 245, 6, 11, - 23, 4, 243, 202, 11, 23, 4, 242, 60, 11, 23, 4, 73, 11, 23, 4, 235, 144, - 11, 23, 4, 235, 23, 11, 23, 4, 156, 11, 23, 4, 193, 11, 23, 4, 230, 25, - 11, 23, 4, 76, 11, 23, 4, 226, 105, 11, 23, 4, 224, 96, 11, 23, 4, 153, - 11, 23, 4, 222, 91, 11, 23, 4, 217, 152, 11, 23, 4, 70, 11, 23, 4, 214, - 105, 11, 23, 4, 212, 98, 11, 23, 4, 211, 178, 11, 23, 4, 211, 117, 11, - 23, 4, 210, 159, 11, 32, 6, 61, 11, 32, 6, 253, 158, 11, 32, 6, 251, 66, - 11, 32, 6, 249, 60, 11, 32, 6, 75, 11, 32, 6, 245, 6, 11, 32, 6, 243, - 202, 11, 32, 6, 242, 60, 11, 32, 6, 73, 11, 32, 6, 235, 144, 11, 32, 6, - 235, 23, 11, 32, 6, 156, 11, 32, 6, 193, 11, 32, 6, 230, 25, 11, 32, 6, - 76, 11, 32, 6, 226, 105, 11, 32, 6, 224, 96, 11, 32, 6, 153, 11, 32, 6, - 222, 91, 11, 32, 6, 217, 152, 11, 32, 6, 70, 11, 32, 6, 214, 105, 11, 32, - 6, 212, 98, 11, 32, 6, 211, 178, 11, 32, 6, 211, 117, 11, 32, 6, 210, - 159, 11, 32, 4, 61, 11, 32, 4, 253, 158, 11, 32, 4, 251, 66, 11, 32, 4, - 249, 60, 11, 32, 4, 75, 11, 32, 4, 245, 6, 11, 32, 4, 243, 202, 11, 32, - 4, 73, 11, 32, 4, 235, 144, 11, 32, 4, 235, 23, 11, 32, 4, 156, 11, 32, - 4, 193, 11, 32, 4, 230, 25, 11, 32, 4, 76, 11, 32, 4, 226, 105, 11, 32, - 4, 224, 96, 11, 32, 4, 153, 11, 32, 4, 222, 91, 11, 32, 4, 217, 152, 11, - 32, 4, 70, 11, 32, 4, 214, 105, 11, 32, 4, 212, 98, 11, 32, 4, 211, 178, - 11, 32, 4, 211, 117, 11, 32, 4, 210, 159, 11, 23, 32, 6, 61, 11, 23, 32, - 6, 253, 158, 11, 23, 32, 6, 251, 66, 11, 23, 32, 6, 249, 60, 11, 23, 32, - 6, 75, 11, 23, 32, 6, 245, 6, 11, 23, 32, 6, 243, 202, 11, 23, 32, 6, - 242, 60, 11, 23, 32, 6, 73, 11, 23, 32, 6, 235, 144, 11, 23, 32, 6, 235, - 23, 11, 23, 32, 6, 156, 11, 23, 32, 6, 193, 11, 23, 32, 6, 230, 25, 11, - 23, 32, 6, 76, 11, 23, 32, 6, 226, 105, 11, 23, 32, 6, 224, 96, 11, 23, - 32, 6, 153, 11, 23, 32, 6, 222, 91, 11, 23, 32, 6, 217, 152, 11, 23, 32, - 6, 70, 11, 23, 32, 6, 214, 105, 11, 23, 32, 6, 212, 98, 11, 23, 32, 6, - 211, 178, 11, 23, 32, 6, 211, 117, 11, 23, 32, 6, 210, 159, 11, 23, 32, - 4, 61, 11, 23, 32, 4, 253, 158, 11, 23, 32, 4, 251, 66, 11, 23, 32, 4, - 249, 60, 11, 23, 32, 4, 75, 11, 23, 32, 4, 245, 6, 11, 23, 32, 4, 243, - 202, 11, 23, 32, 4, 242, 60, 11, 23, 32, 4, 73, 11, 23, 32, 4, 235, 144, - 11, 23, 32, 4, 235, 23, 11, 23, 32, 4, 156, 11, 23, 32, 4, 193, 11, 23, - 32, 4, 230, 25, 11, 23, 32, 4, 76, 11, 23, 32, 4, 226, 105, 11, 23, 32, - 4, 224, 96, 11, 23, 32, 4, 153, 11, 23, 32, 4, 222, 91, 11, 23, 32, 4, - 217, 152, 11, 23, 32, 4, 70, 11, 23, 32, 4, 214, 105, 11, 23, 32, 4, 212, - 98, 11, 23, 32, 4, 211, 178, 11, 23, 32, 4, 211, 117, 11, 23, 32, 4, 210, - 159, 11, 119, 6, 61, 11, 119, 6, 251, 66, 11, 119, 6, 249, 60, 11, 119, - 6, 243, 202, 11, 119, 6, 235, 144, 11, 119, 6, 235, 23, 11, 119, 6, 230, - 25, 11, 119, 6, 76, 11, 119, 6, 226, 105, 11, 119, 6, 224, 96, 11, 119, - 6, 222, 91, 11, 119, 6, 217, 152, 11, 119, 6, 70, 11, 119, 6, 214, 105, - 11, 119, 6, 212, 98, 11, 119, 6, 211, 178, 11, 119, 6, 211, 117, 11, 119, - 6, 210, 159, 11, 119, 4, 61, 11, 119, 4, 253, 158, 11, 119, 4, 251, 66, - 11, 119, 4, 249, 60, 11, 119, 4, 245, 6, 11, 119, 4, 242, 60, 11, 119, 4, - 73, 11, 119, 4, 235, 144, 11, 119, 4, 235, 23, 11, 119, 4, 156, 11, 119, - 4, 193, 11, 119, 4, 230, 25, 11, 119, 4, 226, 105, 11, 119, 4, 224, 96, - 11, 119, 4, 153, 11, 119, 4, 222, 91, 11, 119, 4, 217, 152, 11, 119, 4, - 70, 11, 119, 4, 214, 105, 11, 119, 4, 212, 98, 11, 119, 4, 211, 178, 11, - 119, 4, 211, 117, 11, 119, 4, 210, 159, 11, 23, 119, 6, 61, 11, 23, 119, - 6, 253, 158, 11, 23, 119, 6, 251, 66, 11, 23, 119, 6, 249, 60, 11, 23, - 119, 6, 75, 11, 23, 119, 6, 245, 6, 11, 23, 119, 6, 243, 202, 11, 23, - 119, 6, 242, 60, 11, 23, 119, 6, 73, 11, 23, 119, 6, 235, 144, 11, 23, - 119, 6, 235, 23, 11, 23, 119, 6, 156, 11, 23, 119, 6, 193, 11, 23, 119, - 6, 230, 25, 11, 23, 119, 6, 76, 11, 23, 119, 6, 226, 105, 11, 23, 119, 6, - 224, 96, 11, 23, 119, 6, 153, 11, 23, 119, 6, 222, 91, 11, 23, 119, 6, - 217, 152, 11, 23, 119, 6, 70, 11, 23, 119, 6, 214, 105, 11, 23, 119, 6, - 212, 98, 11, 23, 119, 6, 211, 178, 11, 23, 119, 6, 211, 117, 11, 23, 119, - 6, 210, 159, 11, 23, 119, 4, 61, 11, 23, 119, 4, 253, 158, 11, 23, 119, - 4, 251, 66, 11, 23, 119, 4, 249, 60, 11, 23, 119, 4, 75, 11, 23, 119, 4, - 245, 6, 11, 23, 119, 4, 243, 202, 11, 23, 119, 4, 242, 60, 11, 23, 119, - 4, 73, 11, 23, 119, 4, 235, 144, 11, 23, 119, 4, 235, 23, 11, 23, 119, 4, - 156, 11, 23, 119, 4, 193, 11, 23, 119, 4, 230, 25, 11, 23, 119, 4, 76, - 11, 23, 119, 4, 226, 105, 11, 23, 119, 4, 224, 96, 11, 23, 119, 4, 153, - 11, 23, 119, 4, 222, 91, 11, 23, 119, 4, 217, 152, 11, 23, 119, 4, 70, - 11, 23, 119, 4, 214, 105, 11, 23, 119, 4, 212, 98, 11, 23, 119, 4, 211, - 178, 11, 23, 119, 4, 211, 117, 11, 23, 119, 4, 210, 159, 11, 133, 6, 61, - 11, 133, 6, 253, 158, 11, 133, 6, 249, 60, 11, 133, 6, 75, 11, 133, 6, - 245, 6, 11, 133, 6, 243, 202, 11, 133, 6, 235, 144, 11, 133, 6, 235, 23, - 11, 133, 6, 156, 11, 133, 6, 193, 11, 133, 6, 230, 25, 11, 133, 6, 76, - 11, 133, 6, 226, 105, 11, 133, 6, 224, 96, 11, 133, 6, 222, 91, 11, 133, - 6, 217, 152, 11, 133, 6, 70, 11, 133, 6, 214, 105, 11, 133, 6, 212, 98, - 11, 133, 6, 211, 178, 11, 133, 6, 211, 117, 11, 133, 4, 61, 11, 133, 4, - 253, 158, 11, 133, 4, 251, 66, 11, 133, 4, 249, 60, 11, 133, 4, 75, 11, - 133, 4, 245, 6, 11, 133, 4, 243, 202, 11, 133, 4, 242, 60, 11, 133, 4, - 73, 11, 133, 4, 235, 144, 11, 133, 4, 235, 23, 11, 133, 4, 156, 11, 133, - 4, 193, 11, 133, 4, 230, 25, 11, 133, 4, 76, 11, 133, 4, 226, 105, 11, - 133, 4, 224, 96, 11, 133, 4, 153, 11, 133, 4, 222, 91, 11, 133, 4, 217, - 152, 11, 133, 4, 70, 11, 133, 4, 214, 105, 11, 133, 4, 212, 98, 11, 133, - 4, 211, 178, 11, 133, 4, 211, 117, 11, 133, 4, 210, 159, 11, 139, 6, 61, - 11, 139, 6, 253, 158, 11, 139, 6, 249, 60, 11, 139, 6, 75, 11, 139, 6, - 245, 6, 11, 139, 6, 243, 202, 11, 139, 6, 73, 11, 139, 6, 235, 144, 11, - 139, 6, 235, 23, 11, 139, 6, 156, 11, 139, 6, 193, 11, 139, 6, 76, 11, - 139, 6, 222, 91, 11, 139, 6, 217, 152, 11, 139, 6, 70, 11, 139, 6, 214, - 105, 11, 139, 6, 212, 98, 11, 139, 6, 211, 178, 11, 139, 6, 211, 117, 11, - 139, 4, 61, 11, 139, 4, 253, 158, 11, 139, 4, 251, 66, 11, 139, 4, 249, - 60, 11, 139, 4, 75, 11, 139, 4, 245, 6, 11, 139, 4, 243, 202, 11, 139, 4, - 242, 60, 11, 139, 4, 73, 11, 139, 4, 235, 144, 11, 139, 4, 235, 23, 11, - 139, 4, 156, 11, 139, 4, 193, 11, 139, 4, 230, 25, 11, 139, 4, 76, 11, - 139, 4, 226, 105, 11, 139, 4, 224, 96, 11, 139, 4, 153, 11, 139, 4, 222, - 91, 11, 139, 4, 217, 152, 11, 139, 4, 70, 11, 139, 4, 214, 105, 11, 139, - 4, 212, 98, 11, 139, 4, 211, 178, 11, 139, 4, 211, 117, 11, 139, 4, 210, - 159, 11, 23, 133, 6, 61, 11, 23, 133, 6, 253, 158, 11, 23, 133, 6, 251, - 66, 11, 23, 133, 6, 249, 60, 11, 23, 133, 6, 75, 11, 23, 133, 6, 245, 6, - 11, 23, 133, 6, 243, 202, 11, 23, 133, 6, 242, 60, 11, 23, 133, 6, 73, - 11, 23, 133, 6, 235, 144, 11, 23, 133, 6, 235, 23, 11, 23, 133, 6, 156, - 11, 23, 133, 6, 193, 11, 23, 133, 6, 230, 25, 11, 23, 133, 6, 76, 11, 23, - 133, 6, 226, 105, 11, 23, 133, 6, 224, 96, 11, 23, 133, 6, 153, 11, 23, - 133, 6, 222, 91, 11, 23, 133, 6, 217, 152, 11, 23, 133, 6, 70, 11, 23, - 133, 6, 214, 105, 11, 23, 133, 6, 212, 98, 11, 23, 133, 6, 211, 178, 11, - 23, 133, 6, 211, 117, 11, 23, 133, 6, 210, 159, 11, 23, 133, 4, 61, 11, - 23, 133, 4, 253, 158, 11, 23, 133, 4, 251, 66, 11, 23, 133, 4, 249, 60, - 11, 23, 133, 4, 75, 11, 23, 133, 4, 245, 6, 11, 23, 133, 4, 243, 202, 11, - 23, 133, 4, 242, 60, 11, 23, 133, 4, 73, 11, 23, 133, 4, 235, 144, 11, - 23, 133, 4, 235, 23, 11, 23, 133, 4, 156, 11, 23, 133, 4, 193, 11, 23, - 133, 4, 230, 25, 11, 23, 133, 4, 76, 11, 23, 133, 4, 226, 105, 11, 23, - 133, 4, 224, 96, 11, 23, 133, 4, 153, 11, 23, 133, 4, 222, 91, 11, 23, - 133, 4, 217, 152, 11, 23, 133, 4, 70, 11, 23, 133, 4, 214, 105, 11, 23, - 133, 4, 212, 98, 11, 23, 133, 4, 211, 178, 11, 23, 133, 4, 211, 117, 11, - 23, 133, 4, 210, 159, 11, 35, 6, 61, 11, 35, 6, 253, 158, 11, 35, 6, 251, - 66, 11, 35, 6, 249, 60, 11, 35, 6, 75, 11, 35, 6, 245, 6, 11, 35, 6, 243, - 202, 11, 35, 6, 242, 60, 11, 35, 6, 73, 11, 35, 6, 235, 144, 11, 35, 6, - 235, 23, 11, 35, 6, 156, 11, 35, 6, 193, 11, 35, 6, 230, 25, 11, 35, 6, - 76, 11, 35, 6, 226, 105, 11, 35, 6, 224, 96, 11, 35, 6, 153, 11, 35, 6, - 222, 91, 11, 35, 6, 217, 152, 11, 35, 6, 70, 11, 35, 6, 214, 105, 11, 35, - 6, 212, 98, 11, 35, 6, 211, 178, 11, 35, 6, 211, 117, 11, 35, 6, 210, - 159, 11, 35, 4, 61, 11, 35, 4, 253, 158, 11, 35, 4, 251, 66, 11, 35, 4, - 249, 60, 11, 35, 4, 75, 11, 35, 4, 245, 6, 11, 35, 4, 243, 202, 11, 35, - 4, 242, 60, 11, 35, 4, 73, 11, 35, 4, 235, 144, 11, 35, 4, 235, 23, 11, - 35, 4, 156, 11, 35, 4, 193, 11, 35, 4, 230, 25, 11, 35, 4, 76, 11, 35, 4, - 226, 105, 11, 35, 4, 224, 96, 11, 35, 4, 153, 11, 35, 4, 222, 91, 11, 35, - 4, 217, 152, 11, 35, 4, 70, 11, 35, 4, 214, 105, 11, 35, 4, 212, 98, 11, - 35, 4, 211, 178, 11, 35, 4, 211, 117, 11, 35, 4, 210, 159, 11, 35, 23, 6, - 61, 11, 35, 23, 6, 253, 158, 11, 35, 23, 6, 251, 66, 11, 35, 23, 6, 249, - 60, 11, 35, 23, 6, 75, 11, 35, 23, 6, 245, 6, 11, 35, 23, 6, 243, 202, - 11, 35, 23, 6, 242, 60, 11, 35, 23, 6, 73, 11, 35, 23, 6, 235, 144, 11, - 35, 23, 6, 235, 23, 11, 35, 23, 6, 156, 11, 35, 23, 6, 193, 11, 35, 23, - 6, 230, 25, 11, 35, 23, 6, 76, 11, 35, 23, 6, 226, 105, 11, 35, 23, 6, - 224, 96, 11, 35, 23, 6, 153, 11, 35, 23, 6, 222, 91, 11, 35, 23, 6, 217, - 152, 11, 35, 23, 6, 70, 11, 35, 23, 6, 214, 105, 11, 35, 23, 6, 212, 98, - 11, 35, 23, 6, 211, 178, 11, 35, 23, 6, 211, 117, 11, 35, 23, 6, 210, - 159, 11, 35, 23, 4, 61, 11, 35, 23, 4, 253, 158, 11, 35, 23, 4, 251, 66, - 11, 35, 23, 4, 249, 60, 11, 35, 23, 4, 75, 11, 35, 23, 4, 245, 6, 11, 35, - 23, 4, 243, 202, 11, 35, 23, 4, 242, 60, 11, 35, 23, 4, 73, 11, 35, 23, - 4, 235, 144, 11, 35, 23, 4, 235, 23, 11, 35, 23, 4, 156, 11, 35, 23, 4, - 193, 11, 35, 23, 4, 230, 25, 11, 35, 23, 4, 76, 11, 35, 23, 4, 226, 105, - 11, 35, 23, 4, 224, 96, 11, 35, 23, 4, 153, 11, 35, 23, 4, 222, 91, 11, - 35, 23, 4, 217, 152, 11, 35, 23, 4, 70, 11, 35, 23, 4, 214, 105, 11, 35, - 23, 4, 212, 98, 11, 35, 23, 4, 211, 178, 11, 35, 23, 4, 211, 117, 11, 35, - 23, 4, 210, 159, 11, 35, 32, 6, 61, 11, 35, 32, 6, 253, 158, 11, 35, 32, - 6, 251, 66, 11, 35, 32, 6, 249, 60, 11, 35, 32, 6, 75, 11, 35, 32, 6, - 245, 6, 11, 35, 32, 6, 243, 202, 11, 35, 32, 6, 242, 60, 11, 35, 32, 6, - 73, 11, 35, 32, 6, 235, 144, 11, 35, 32, 6, 235, 23, 11, 35, 32, 6, 156, - 11, 35, 32, 6, 193, 11, 35, 32, 6, 230, 25, 11, 35, 32, 6, 76, 11, 35, - 32, 6, 226, 105, 11, 35, 32, 6, 224, 96, 11, 35, 32, 6, 153, 11, 35, 32, - 6, 222, 91, 11, 35, 32, 6, 217, 152, 11, 35, 32, 6, 70, 11, 35, 32, 6, - 214, 105, 11, 35, 32, 6, 212, 98, 11, 35, 32, 6, 211, 178, 11, 35, 32, 6, - 211, 117, 11, 35, 32, 6, 210, 159, 11, 35, 32, 4, 61, 11, 35, 32, 4, 253, - 158, 11, 35, 32, 4, 251, 66, 11, 35, 32, 4, 249, 60, 11, 35, 32, 4, 75, - 11, 35, 32, 4, 245, 6, 11, 35, 32, 4, 243, 202, 11, 35, 32, 4, 242, 60, - 11, 35, 32, 4, 73, 11, 35, 32, 4, 235, 144, 11, 35, 32, 4, 235, 23, 11, - 35, 32, 4, 156, 11, 35, 32, 4, 193, 11, 35, 32, 4, 230, 25, 11, 35, 32, - 4, 76, 11, 35, 32, 4, 226, 105, 11, 35, 32, 4, 224, 96, 11, 35, 32, 4, - 153, 11, 35, 32, 4, 222, 91, 11, 35, 32, 4, 217, 152, 11, 35, 32, 4, 70, - 11, 35, 32, 4, 214, 105, 11, 35, 32, 4, 212, 98, 11, 35, 32, 4, 211, 178, - 11, 35, 32, 4, 211, 117, 11, 35, 32, 4, 210, 159, 11, 35, 23, 32, 6, 61, - 11, 35, 23, 32, 6, 253, 158, 11, 35, 23, 32, 6, 251, 66, 11, 35, 23, 32, - 6, 249, 60, 11, 35, 23, 32, 6, 75, 11, 35, 23, 32, 6, 245, 6, 11, 35, 23, - 32, 6, 243, 202, 11, 35, 23, 32, 6, 242, 60, 11, 35, 23, 32, 6, 73, 11, - 35, 23, 32, 6, 235, 144, 11, 35, 23, 32, 6, 235, 23, 11, 35, 23, 32, 6, - 156, 11, 35, 23, 32, 6, 193, 11, 35, 23, 32, 6, 230, 25, 11, 35, 23, 32, - 6, 76, 11, 35, 23, 32, 6, 226, 105, 11, 35, 23, 32, 6, 224, 96, 11, 35, - 23, 32, 6, 153, 11, 35, 23, 32, 6, 222, 91, 11, 35, 23, 32, 6, 217, 152, - 11, 35, 23, 32, 6, 70, 11, 35, 23, 32, 6, 214, 105, 11, 35, 23, 32, 6, - 212, 98, 11, 35, 23, 32, 6, 211, 178, 11, 35, 23, 32, 6, 211, 117, 11, - 35, 23, 32, 6, 210, 159, 11, 35, 23, 32, 4, 61, 11, 35, 23, 32, 4, 253, - 158, 11, 35, 23, 32, 4, 251, 66, 11, 35, 23, 32, 4, 249, 60, 11, 35, 23, - 32, 4, 75, 11, 35, 23, 32, 4, 245, 6, 11, 35, 23, 32, 4, 243, 202, 11, - 35, 23, 32, 4, 242, 60, 11, 35, 23, 32, 4, 73, 11, 35, 23, 32, 4, 235, - 144, 11, 35, 23, 32, 4, 235, 23, 11, 35, 23, 32, 4, 156, 11, 35, 23, 32, - 4, 193, 11, 35, 23, 32, 4, 230, 25, 11, 35, 23, 32, 4, 76, 11, 35, 23, - 32, 4, 226, 105, 11, 35, 23, 32, 4, 224, 96, 11, 35, 23, 32, 4, 153, 11, - 35, 23, 32, 4, 222, 91, 11, 35, 23, 32, 4, 217, 152, 11, 35, 23, 32, 4, - 70, 11, 35, 23, 32, 4, 214, 105, 11, 35, 23, 32, 4, 212, 98, 11, 35, 23, - 32, 4, 211, 178, 11, 35, 23, 32, 4, 211, 117, 11, 35, 23, 32, 4, 210, - 159, 11, 230, 138, 6, 61, 11, 230, 138, 6, 253, 158, 11, 230, 138, 6, - 251, 66, 11, 230, 138, 6, 249, 60, 11, 230, 138, 6, 75, 11, 230, 138, 6, - 245, 6, 11, 230, 138, 6, 243, 202, 11, 230, 138, 6, 242, 60, 11, 230, - 138, 6, 73, 11, 230, 138, 6, 235, 144, 11, 230, 138, 6, 235, 23, 11, 230, - 138, 6, 156, 11, 230, 138, 6, 193, 11, 230, 138, 6, 230, 25, 11, 230, - 138, 6, 76, 11, 230, 138, 6, 226, 105, 11, 230, 138, 6, 224, 96, 11, 230, - 138, 6, 153, 11, 230, 138, 6, 222, 91, 11, 230, 138, 6, 217, 152, 11, - 230, 138, 6, 70, 11, 230, 138, 6, 214, 105, 11, 230, 138, 6, 212, 98, 11, - 230, 138, 6, 211, 178, 11, 230, 138, 6, 211, 117, 11, 230, 138, 6, 210, - 159, 11, 230, 138, 4, 61, 11, 230, 138, 4, 253, 158, 11, 230, 138, 4, - 251, 66, 11, 230, 138, 4, 249, 60, 11, 230, 138, 4, 75, 11, 230, 138, 4, - 245, 6, 11, 230, 138, 4, 243, 202, 11, 230, 138, 4, 242, 60, 11, 230, - 138, 4, 73, 11, 230, 138, 4, 235, 144, 11, 230, 138, 4, 235, 23, 11, 230, - 138, 4, 156, 11, 230, 138, 4, 193, 11, 230, 138, 4, 230, 25, 11, 230, - 138, 4, 76, 11, 230, 138, 4, 226, 105, 11, 230, 138, 4, 224, 96, 11, 230, - 138, 4, 153, 11, 230, 138, 4, 222, 91, 11, 230, 138, 4, 217, 152, 11, - 230, 138, 4, 70, 11, 230, 138, 4, 214, 105, 11, 230, 138, 4, 212, 98, 11, - 230, 138, 4, 211, 178, 11, 230, 138, 4, 211, 117, 11, 230, 138, 4, 210, - 159, 11, 32, 4, 247, 119, 73, 11, 32, 4, 247, 119, 235, 144, 11, 23, 6, - 254, 143, 11, 23, 6, 252, 26, 11, 23, 6, 243, 107, 11, 23, 6, 248, 54, - 11, 23, 6, 245, 100, 11, 23, 6, 210, 85, 11, 23, 6, 245, 63, 11, 23, 6, - 216, 179, 11, 23, 6, 235, 185, 11, 23, 6, 234, 222, 11, 23, 6, 233, 98, - 11, 23, 6, 230, 102, 11, 23, 6, 227, 237, 11, 23, 6, 211, 157, 11, 23, 6, - 226, 199, 11, 23, 6, 225, 108, 11, 23, 6, 223, 37, 11, 23, 6, 216, 180, - 87, 11, 23, 6, 219, 177, 11, 23, 6, 217, 41, 11, 23, 6, 214, 157, 11, 23, - 6, 225, 133, 11, 23, 6, 250, 110, 11, 23, 6, 224, 161, 11, 23, 6, 226, - 201, 11, 23, 229, 221, 11, 23, 4, 254, 143, 11, 23, 4, 252, 26, 11, 23, - 4, 243, 107, 11, 23, 4, 248, 54, 11, 23, 4, 245, 100, 11, 23, 4, 210, 85, - 11, 23, 4, 245, 63, 11, 23, 4, 216, 179, 11, 23, 4, 235, 185, 11, 23, 4, - 234, 222, 11, 23, 4, 233, 98, 11, 23, 4, 230, 102, 11, 23, 4, 227, 237, - 11, 23, 4, 211, 157, 11, 23, 4, 226, 199, 11, 23, 4, 225, 108, 11, 23, 4, - 223, 37, 11, 23, 4, 40, 219, 177, 11, 23, 4, 219, 177, 11, 23, 4, 217, - 41, 11, 23, 4, 214, 157, 11, 23, 4, 225, 133, 11, 23, 4, 250, 110, 11, - 23, 4, 224, 161, 11, 23, 4, 226, 201, 11, 23, 225, 253, 247, 233, 11, 23, - 245, 101, 87, 11, 23, 216, 180, 87, 11, 23, 234, 223, 87, 11, 23, 225, - 134, 87, 11, 23, 223, 38, 87, 11, 23, 225, 109, 87, 11, 32, 6, 254, 143, - 11, 32, 6, 252, 26, 11, 32, 6, 243, 107, 11, 32, 6, 248, 54, 11, 32, 6, - 245, 100, 11, 32, 6, 210, 85, 11, 32, 6, 245, 63, 11, 32, 6, 216, 179, - 11, 32, 6, 235, 185, 11, 32, 6, 234, 222, 11, 32, 6, 233, 98, 11, 32, 6, - 230, 102, 11, 32, 6, 227, 237, 11, 32, 6, 211, 157, 11, 32, 6, 226, 199, - 11, 32, 6, 225, 108, 11, 32, 6, 223, 37, 11, 32, 6, 216, 180, 87, 11, 32, - 6, 219, 177, 11, 32, 6, 217, 41, 11, 32, 6, 214, 157, 11, 32, 6, 225, - 133, 11, 32, 6, 250, 110, 11, 32, 6, 224, 161, 11, 32, 6, 226, 201, 11, - 32, 229, 221, 11, 32, 4, 254, 143, 11, 32, 4, 252, 26, 11, 32, 4, 243, - 107, 11, 32, 4, 248, 54, 11, 32, 4, 245, 100, 11, 32, 4, 210, 85, 11, 32, - 4, 245, 63, 11, 32, 4, 216, 179, 11, 32, 4, 235, 185, 11, 32, 4, 234, - 222, 11, 32, 4, 233, 98, 11, 32, 4, 230, 102, 11, 32, 4, 227, 237, 11, - 32, 4, 211, 157, 11, 32, 4, 226, 199, 11, 32, 4, 225, 108, 11, 32, 4, - 223, 37, 11, 32, 4, 40, 219, 177, 11, 32, 4, 219, 177, 11, 32, 4, 217, - 41, 11, 32, 4, 214, 157, 11, 32, 4, 225, 133, 11, 32, 4, 250, 110, 11, - 32, 4, 224, 161, 11, 32, 4, 226, 201, 11, 32, 225, 253, 247, 233, 11, 32, - 245, 101, 87, 11, 32, 216, 180, 87, 11, 32, 234, 223, 87, 11, 32, 225, - 134, 87, 11, 32, 223, 38, 87, 11, 32, 225, 109, 87, 11, 23, 32, 6, 254, - 143, 11, 23, 32, 6, 252, 26, 11, 23, 32, 6, 243, 107, 11, 23, 32, 6, 248, - 54, 11, 23, 32, 6, 245, 100, 11, 23, 32, 6, 210, 85, 11, 23, 32, 6, 245, - 63, 11, 23, 32, 6, 216, 179, 11, 23, 32, 6, 235, 185, 11, 23, 32, 6, 234, - 222, 11, 23, 32, 6, 233, 98, 11, 23, 32, 6, 230, 102, 11, 23, 32, 6, 227, - 237, 11, 23, 32, 6, 211, 157, 11, 23, 32, 6, 226, 199, 11, 23, 32, 6, - 225, 108, 11, 23, 32, 6, 223, 37, 11, 23, 32, 6, 216, 180, 87, 11, 23, - 32, 6, 219, 177, 11, 23, 32, 6, 217, 41, 11, 23, 32, 6, 214, 157, 11, 23, - 32, 6, 225, 133, 11, 23, 32, 6, 250, 110, 11, 23, 32, 6, 224, 161, 11, - 23, 32, 6, 226, 201, 11, 23, 32, 229, 221, 11, 23, 32, 4, 254, 143, 11, - 23, 32, 4, 252, 26, 11, 23, 32, 4, 243, 107, 11, 23, 32, 4, 248, 54, 11, - 23, 32, 4, 245, 100, 11, 23, 32, 4, 210, 85, 11, 23, 32, 4, 245, 63, 11, - 23, 32, 4, 216, 179, 11, 23, 32, 4, 235, 185, 11, 23, 32, 4, 234, 222, - 11, 23, 32, 4, 233, 98, 11, 23, 32, 4, 230, 102, 11, 23, 32, 4, 227, 237, - 11, 23, 32, 4, 211, 157, 11, 23, 32, 4, 226, 199, 11, 23, 32, 4, 225, - 108, 11, 23, 32, 4, 223, 37, 11, 23, 32, 4, 40, 219, 177, 11, 23, 32, 4, - 219, 177, 11, 23, 32, 4, 217, 41, 11, 23, 32, 4, 214, 157, 11, 23, 32, 4, - 225, 133, 11, 23, 32, 4, 250, 110, 11, 23, 32, 4, 224, 161, 11, 23, 32, - 4, 226, 201, 11, 23, 32, 225, 253, 247, 233, 11, 23, 32, 245, 101, 87, - 11, 23, 32, 216, 180, 87, 11, 23, 32, 234, 223, 87, 11, 23, 32, 225, 134, - 87, 11, 23, 32, 223, 38, 87, 11, 23, 32, 225, 109, 87, 11, 35, 23, 6, - 254, 143, 11, 35, 23, 6, 252, 26, 11, 35, 23, 6, 243, 107, 11, 35, 23, 6, - 248, 54, 11, 35, 23, 6, 245, 100, 11, 35, 23, 6, 210, 85, 11, 35, 23, 6, - 245, 63, 11, 35, 23, 6, 216, 179, 11, 35, 23, 6, 235, 185, 11, 35, 23, 6, - 234, 222, 11, 35, 23, 6, 233, 98, 11, 35, 23, 6, 230, 102, 11, 35, 23, 6, - 227, 237, 11, 35, 23, 6, 211, 157, 11, 35, 23, 6, 226, 199, 11, 35, 23, - 6, 225, 108, 11, 35, 23, 6, 223, 37, 11, 35, 23, 6, 216, 180, 87, 11, 35, - 23, 6, 219, 177, 11, 35, 23, 6, 217, 41, 11, 35, 23, 6, 214, 157, 11, 35, - 23, 6, 225, 133, 11, 35, 23, 6, 250, 110, 11, 35, 23, 6, 224, 161, 11, - 35, 23, 6, 226, 201, 11, 35, 23, 229, 221, 11, 35, 23, 4, 254, 143, 11, - 35, 23, 4, 252, 26, 11, 35, 23, 4, 243, 107, 11, 35, 23, 4, 248, 54, 11, - 35, 23, 4, 245, 100, 11, 35, 23, 4, 210, 85, 11, 35, 23, 4, 245, 63, 11, - 35, 23, 4, 216, 179, 11, 35, 23, 4, 235, 185, 11, 35, 23, 4, 234, 222, - 11, 35, 23, 4, 233, 98, 11, 35, 23, 4, 230, 102, 11, 35, 23, 4, 227, 237, - 11, 35, 23, 4, 211, 157, 11, 35, 23, 4, 226, 199, 11, 35, 23, 4, 225, - 108, 11, 35, 23, 4, 223, 37, 11, 35, 23, 4, 40, 219, 177, 11, 35, 23, 4, - 219, 177, 11, 35, 23, 4, 217, 41, 11, 35, 23, 4, 214, 157, 11, 35, 23, 4, - 225, 133, 11, 35, 23, 4, 250, 110, 11, 35, 23, 4, 224, 161, 11, 35, 23, - 4, 226, 201, 11, 35, 23, 225, 253, 247, 233, 11, 35, 23, 245, 101, 87, - 11, 35, 23, 216, 180, 87, 11, 35, 23, 234, 223, 87, 11, 35, 23, 225, 134, - 87, 11, 35, 23, 223, 38, 87, 11, 35, 23, 225, 109, 87, 11, 35, 23, 32, 6, - 254, 143, 11, 35, 23, 32, 6, 252, 26, 11, 35, 23, 32, 6, 243, 107, 11, - 35, 23, 32, 6, 248, 54, 11, 35, 23, 32, 6, 245, 100, 11, 35, 23, 32, 6, - 210, 85, 11, 35, 23, 32, 6, 245, 63, 11, 35, 23, 32, 6, 216, 179, 11, 35, - 23, 32, 6, 235, 185, 11, 35, 23, 32, 6, 234, 222, 11, 35, 23, 32, 6, 233, - 98, 11, 35, 23, 32, 6, 230, 102, 11, 35, 23, 32, 6, 227, 237, 11, 35, 23, - 32, 6, 211, 157, 11, 35, 23, 32, 6, 226, 199, 11, 35, 23, 32, 6, 225, - 108, 11, 35, 23, 32, 6, 223, 37, 11, 35, 23, 32, 6, 216, 180, 87, 11, 35, - 23, 32, 6, 219, 177, 11, 35, 23, 32, 6, 217, 41, 11, 35, 23, 32, 6, 214, - 157, 11, 35, 23, 32, 6, 225, 133, 11, 35, 23, 32, 6, 250, 110, 11, 35, - 23, 32, 6, 224, 161, 11, 35, 23, 32, 6, 226, 201, 11, 35, 23, 32, 229, - 221, 11, 35, 23, 32, 4, 254, 143, 11, 35, 23, 32, 4, 252, 26, 11, 35, 23, - 32, 4, 243, 107, 11, 35, 23, 32, 4, 248, 54, 11, 35, 23, 32, 4, 245, 100, - 11, 35, 23, 32, 4, 210, 85, 11, 35, 23, 32, 4, 245, 63, 11, 35, 23, 32, - 4, 216, 179, 11, 35, 23, 32, 4, 235, 185, 11, 35, 23, 32, 4, 234, 222, - 11, 35, 23, 32, 4, 233, 98, 11, 35, 23, 32, 4, 230, 102, 11, 35, 23, 32, - 4, 227, 237, 11, 35, 23, 32, 4, 211, 157, 11, 35, 23, 32, 4, 226, 199, - 11, 35, 23, 32, 4, 225, 108, 11, 35, 23, 32, 4, 223, 37, 11, 35, 23, 32, - 4, 40, 219, 177, 11, 35, 23, 32, 4, 219, 177, 11, 35, 23, 32, 4, 217, 41, - 11, 35, 23, 32, 4, 214, 157, 11, 35, 23, 32, 4, 225, 133, 11, 35, 23, 32, - 4, 250, 110, 11, 35, 23, 32, 4, 224, 161, 11, 35, 23, 32, 4, 226, 201, - 11, 35, 23, 32, 225, 253, 247, 233, 11, 35, 23, 32, 245, 101, 87, 11, 35, - 23, 32, 216, 180, 87, 11, 35, 23, 32, 234, 223, 87, 11, 35, 23, 32, 225, - 134, 87, 11, 35, 23, 32, 223, 38, 87, 11, 35, 23, 32, 225, 109, 87, 11, - 23, 6, 247, 227, 11, 23, 4, 247, 227, 11, 23, 21, 210, 86, 11, 23, 21, - 110, 11, 23, 21, 105, 11, 23, 21, 158, 11, 23, 21, 161, 11, 23, 21, 189, - 11, 23, 21, 194, 11, 23, 21, 198, 11, 23, 21, 195, 11, 23, 21, 200, 11, - 139, 21, 210, 86, 11, 139, 21, 110, 11, 139, 21, 105, 11, 139, 21, 158, - 11, 139, 21, 161, 11, 139, 21, 189, 11, 139, 21, 194, 11, 139, 21, 198, - 11, 139, 21, 195, 11, 139, 21, 200, 11, 35, 21, 210, 86, 11, 35, 21, 110, - 11, 35, 21, 105, 11, 35, 21, 158, 11, 35, 21, 161, 11, 35, 21, 189, 11, - 35, 21, 194, 11, 35, 21, 198, 11, 35, 21, 195, 11, 35, 21, 200, 11, 35, - 23, 21, 210, 86, 11, 35, 23, 21, 110, 11, 35, 23, 21, 105, 11, 35, 23, - 21, 158, 11, 35, 23, 21, 161, 11, 35, 23, 21, 189, 11, 35, 23, 21, 194, - 11, 35, 23, 21, 198, 11, 35, 23, 21, 195, 11, 35, 23, 21, 200, 11, 230, - 138, 21, 210, 86, 11, 230, 138, 21, 110, 11, 230, 138, 21, 105, 11, 230, - 138, 21, 158, 11, 230, 138, 21, 161, 11, 230, 138, 21, 189, 11, 230, 138, - 21, 194, 11, 230, 138, 21, 198, 11, 230, 138, 21, 195, 11, 230, 138, 21, - 200, 10, 11, 254, 170, 10, 11, 252, 54, 10, 11, 235, 123, 10, 11, 248, - 195, 10, 11, 212, 30, 10, 11, 210, 108, 10, 11, 242, 37, 10, 11, 217, 80, - 10, 11, 211, 43, 10, 11, 234, 250, 10, 11, 233, 102, 10, 11, 231, 78, 10, - 11, 228, 62, 10, 11, 221, 166, 10, 11, 254, 196, 10, 11, 244, 142, 10, - 11, 222, 26, 10, 11, 224, 81, 10, 11, 223, 95, 10, 11, 220, 59, 10, 11, - 217, 7, 10, 11, 216, 192, 10, 11, 234, 129, 10, 11, 216, 202, 10, 11, - 248, 216, 10, 11, 210, 111, 10, 11, 242, 244, 10, 11, 247, 119, 252, 54, - 10, 11, 247, 119, 228, 62, 10, 11, 247, 119, 244, 142, 10, 11, 247, 119, - 224, 81, 10, 11, 65, 252, 54, 10, 11, 65, 235, 123, 10, 11, 65, 241, 218, - 10, 11, 65, 242, 37, 10, 11, 65, 211, 43, 10, 11, 65, 234, 250, 10, 11, - 65, 233, 102, 10, 11, 65, 231, 78, 10, 11, 65, 228, 62, 10, 11, 65, 221, - 166, 10, 11, 65, 254, 196, 10, 11, 65, 244, 142, 10, 11, 65, 222, 26, 10, - 11, 65, 224, 81, 10, 11, 65, 220, 59, 10, 11, 65, 217, 7, 10, 11, 65, - 216, 192, 10, 11, 65, 234, 129, 10, 11, 65, 248, 216, 10, 11, 65, 242, - 244, 10, 11, 217, 76, 235, 123, 10, 11, 217, 76, 242, 37, 10, 11, 217, - 76, 211, 43, 10, 11, 217, 76, 233, 102, 10, 11, 217, 76, 228, 62, 10, 11, - 217, 76, 221, 166, 10, 11, 217, 76, 254, 196, 10, 11, 217, 76, 222, 26, - 10, 11, 217, 76, 224, 81, 10, 11, 217, 76, 220, 59, 10, 11, 217, 76, 234, - 129, 10, 11, 217, 76, 248, 216, 10, 11, 217, 76, 242, 244, 10, 11, 217, - 76, 247, 119, 228, 62, 10, 11, 217, 76, 247, 119, 224, 81, 10, 11, 218, - 110, 252, 54, 10, 11, 218, 110, 235, 123, 10, 11, 218, 110, 241, 218, 10, - 11, 218, 110, 242, 37, 10, 11, 218, 110, 217, 80, 10, 11, 218, 110, 211, - 43, 10, 11, 218, 110, 234, 250, 10, 11, 218, 110, 231, 78, 10, 11, 218, - 110, 228, 62, 10, 11, 218, 110, 221, 166, 10, 11, 218, 110, 254, 196, 10, - 11, 218, 110, 244, 142, 10, 11, 218, 110, 222, 26, 10, 11, 218, 110, 224, - 81, 10, 11, 218, 110, 220, 59, 10, 11, 218, 110, 217, 7, 10, 11, 218, - 110, 216, 192, 10, 11, 218, 110, 234, 129, 10, 11, 218, 110, 248, 216, - 10, 11, 218, 110, 210, 111, 10, 11, 218, 110, 242, 244, 10, 11, 218, 110, - 247, 119, 252, 54, 10, 11, 218, 110, 247, 119, 244, 142, 10, 11, 232, - 122, 254, 170, 10, 11, 232, 122, 252, 54, 10, 11, 232, 122, 235, 123, 10, - 11, 232, 122, 248, 195, 10, 11, 232, 122, 241, 218, 10, 11, 232, 122, - 212, 30, 10, 11, 232, 122, 210, 108, 10, 11, 232, 122, 242, 37, 10, 11, - 232, 122, 217, 80, 10, 11, 232, 122, 211, 43, 10, 11, 232, 122, 233, 102, - 10, 11, 232, 122, 231, 78, 10, 11, 232, 122, 228, 62, 10, 11, 232, 122, - 221, 166, 10, 11, 232, 122, 254, 196, 10, 11, 232, 122, 244, 142, 10, 11, - 232, 122, 222, 26, 10, 11, 232, 122, 224, 81, 10, 11, 232, 122, 223, 95, - 10, 11, 232, 122, 220, 59, 10, 11, 232, 122, 217, 7, 10, 11, 232, 122, - 216, 192, 10, 11, 232, 122, 234, 129, 10, 11, 232, 122, 216, 202, 10, 11, - 232, 122, 248, 216, 10, 11, 232, 122, 210, 111, 10, 11, 232, 122, 242, - 244, 10, 11, 139, 252, 54, 10, 11, 139, 235, 123, 10, 11, 139, 248, 195, - 10, 11, 139, 212, 30, 10, 11, 139, 210, 108, 10, 11, 139, 242, 37, 10, - 11, 139, 217, 80, 10, 11, 139, 211, 43, 10, 11, 139, 233, 102, 10, 11, - 139, 231, 78, 10, 11, 139, 228, 62, 10, 11, 139, 221, 166, 10, 11, 139, - 254, 196, 10, 11, 139, 244, 142, 10, 11, 139, 222, 26, 10, 11, 139, 224, - 81, 10, 11, 139, 223, 95, 10, 11, 139, 220, 59, 10, 11, 139, 217, 7, 10, - 11, 139, 216, 192, 10, 11, 139, 234, 129, 10, 11, 139, 216, 202, 10, 11, - 139, 248, 216, 10, 11, 139, 210, 111, 10, 11, 139, 242, 244, 10, 11, 226, - 168, 66, 2, 122, 2, 217, 43, 10, 11, 226, 168, 122, 2, 248, 195, 231, - 205, 86, 245, 220, 211, 239, 231, 205, 86, 219, 28, 211, 239, 231, 205, - 86, 212, 9, 211, 239, 231, 205, 86, 228, 56, 211, 239, 231, 205, 86, 223, - 111, 246, 96, 231, 205, 86, 242, 127, 246, 96, 231, 205, 86, 71, 246, 96, - 231, 205, 86, 123, 64, 250, 141, 231, 205, 86, 113, 64, 250, 141, 231, - 205, 86, 134, 64, 250, 141, 231, 205, 86, 244, 11, 64, 250, 141, 231, - 205, 86, 244, 81, 64, 250, 141, 231, 205, 86, 219, 125, 64, 250, 141, - 231, 205, 86, 220, 122, 64, 250, 141, 231, 205, 86, 245, 193, 64, 250, - 141, 231, 205, 86, 228, 200, 64, 250, 141, 231, 205, 86, 123, 64, 252, - 153, 231, 205, 86, 113, 64, 252, 153, 231, 205, 86, 134, 64, 252, 153, - 231, 205, 86, 244, 11, 64, 252, 153, 231, 205, 86, 244, 81, 64, 252, 153, - 231, 205, 86, 219, 125, 64, 252, 153, 231, 205, 86, 220, 122, 64, 252, - 153, 231, 205, 86, 245, 193, 64, 252, 153, 231, 205, 86, 228, 200, 64, - 252, 153, 231, 205, 86, 123, 64, 250, 34, 231, 205, 86, 113, 64, 250, 34, - 231, 205, 86, 134, 64, 250, 34, 231, 205, 86, 244, 11, 64, 250, 34, 231, - 205, 86, 244, 81, 64, 250, 34, 231, 205, 86, 219, 125, 64, 250, 34, 231, - 205, 86, 220, 122, 64, 250, 34, 231, 205, 86, 245, 193, 64, 250, 34, 231, - 205, 86, 228, 200, 64, 250, 34, 231, 205, 86, 225, 25, 231, 205, 86, 226, - 156, 231, 205, 86, 252, 154, 231, 205, 86, 250, 70, 231, 205, 86, 218, - 239, 231, 205, 86, 218, 39, 231, 205, 86, 253, 179, 231, 205, 86, 211, - 232, 231, 205, 86, 235, 62, 231, 205, 86, 252, 184, 131, 86, 203, 252, - 184, 131, 86, 241, 43, 131, 86, 241, 42, 131, 86, 241, 41, 131, 86, 241, - 40, 131, 86, 241, 39, 131, 86, 241, 38, 131, 86, 241, 37, 131, 86, 241, - 36, 131, 86, 241, 35, 131, 86, 241, 34, 131, 86, 241, 33, 131, 86, 241, - 32, 131, 86, 241, 31, 131, 86, 241, 30, 131, 86, 241, 29, 131, 86, 241, - 28, 131, 86, 241, 27, 131, 86, 241, 26, 131, 86, 241, 25, 131, 86, 241, - 24, 131, 86, 241, 23, 131, 86, 241, 22, 131, 86, 241, 21, 131, 86, 241, - 20, 131, 86, 241, 19, 131, 86, 241, 18, 131, 86, 241, 17, 131, 86, 241, - 16, 131, 86, 241, 15, 131, 86, 241, 14, 131, 86, 241, 13, 131, 86, 241, - 12, 131, 86, 241, 11, 131, 86, 241, 10, 131, 86, 241, 9, 131, 86, 241, 8, - 131, 86, 241, 7, 131, 86, 241, 6, 131, 86, 241, 5, 131, 86, 241, 4, 131, - 86, 241, 3, 131, 86, 241, 2, 131, 86, 241, 1, 131, 86, 241, 0, 131, 86, - 240, 255, 131, 86, 240, 254, 131, 86, 240, 253, 131, 86, 240, 252, 131, - 86, 240, 251, 131, 86, 67, 252, 184, 131, 86, 213, 238, 131, 86, 213, - 237, 131, 86, 213, 236, 131, 86, 213, 235, 131, 86, 213, 234, 131, 86, - 213, 233, 131, 86, 213, 232, 131, 86, 213, 231, 131, 86, 213, 230, 131, - 86, 213, 229, 131, 86, 213, 228, 131, 86, 213, 227, 131, 86, 213, 226, - 131, 86, 213, 225, 131, 86, 213, 224, 131, 86, 213, 223, 131, 86, 213, - 222, 131, 86, 213, 221, 131, 86, 213, 220, 131, 86, 213, 219, 131, 86, - 213, 218, 131, 86, 213, 217, 131, 86, 213, 216, 131, 86, 213, 215, 131, - 86, 213, 214, 131, 86, 213, 213, 131, 86, 213, 212, 131, 86, 213, 211, - 131, 86, 213, 210, 131, 86, 213, 209, 131, 86, 213, 208, 131, 86, 213, - 207, 131, 86, 213, 206, 131, 86, 213, 205, 131, 86, 213, 204, 131, 86, - 213, 203, 131, 86, 213, 202, 131, 86, 213, 201, 131, 86, 213, 200, 131, - 86, 213, 199, 131, 86, 213, 198, 131, 86, 213, 197, 131, 86, 213, 196, - 131, 86, 213, 195, 131, 86, 213, 194, 131, 86, 213, 193, 131, 86, 213, - 192, 131, 86, 213, 191, 131, 86, 213, 190, 225, 33, 250, 243, 252, 184, - 225, 33, 250, 243, 255, 9, 64, 219, 15, 225, 33, 250, 243, 113, 64, 219, - 15, 225, 33, 250, 243, 134, 64, 219, 15, 225, 33, 250, 243, 244, 11, 64, - 219, 15, 225, 33, 250, 243, 244, 81, 64, 219, 15, 225, 33, 250, 243, 219, - 125, 64, 219, 15, 225, 33, 250, 243, 220, 122, 64, 219, 15, 225, 33, 250, - 243, 245, 193, 64, 219, 15, 225, 33, 250, 243, 228, 200, 64, 219, 15, - 225, 33, 250, 243, 216, 248, 64, 219, 15, 225, 33, 250, 243, 235, 139, - 64, 219, 15, 225, 33, 250, 243, 234, 31, 64, 219, 15, 225, 33, 250, 243, - 224, 15, 64, 219, 15, 225, 33, 250, 243, 234, 79, 64, 219, 15, 225, 33, - 250, 243, 255, 9, 64, 241, 225, 225, 33, 250, 243, 113, 64, 241, 225, - 225, 33, 250, 243, 134, 64, 241, 225, 225, 33, 250, 243, 244, 11, 64, - 241, 225, 225, 33, 250, 243, 244, 81, 64, 241, 225, 225, 33, 250, 243, - 219, 125, 64, 241, 225, 225, 33, 250, 243, 220, 122, 64, 241, 225, 225, - 33, 250, 243, 245, 193, 64, 241, 225, 225, 33, 250, 243, 228, 200, 64, - 241, 225, 225, 33, 250, 243, 216, 248, 64, 241, 225, 225, 33, 250, 243, - 235, 139, 64, 241, 225, 225, 33, 250, 243, 234, 31, 64, 241, 225, 225, - 33, 250, 243, 224, 15, 64, 241, 225, 225, 33, 250, 243, 234, 79, 64, 241, - 225, 225, 33, 250, 243, 255, 9, 64, 247, 247, 225, 33, 250, 243, 113, 64, - 247, 247, 225, 33, 250, 243, 134, 64, 247, 247, 225, 33, 250, 243, 244, - 11, 64, 247, 247, 225, 33, 250, 243, 244, 81, 64, 247, 247, 225, 33, 250, - 243, 219, 125, 64, 247, 247, 225, 33, 250, 243, 220, 122, 64, 247, 247, - 225, 33, 250, 243, 245, 193, 64, 247, 247, 225, 33, 250, 243, 228, 200, - 64, 247, 247, 225, 33, 250, 243, 216, 248, 64, 247, 247, 225, 33, 250, - 243, 235, 139, 64, 247, 247, 225, 33, 250, 243, 234, 31, 64, 247, 247, - 225, 33, 250, 243, 224, 15, 64, 247, 247, 225, 33, 250, 243, 234, 79, 64, - 247, 247, 225, 33, 250, 243, 85, 235, 62, 225, 33, 250, 243, 255, 9, 64, - 249, 242, 225, 33, 250, 243, 113, 64, 249, 242, 225, 33, 250, 243, 134, - 64, 249, 242, 225, 33, 250, 243, 244, 11, 64, 249, 242, 225, 33, 250, - 243, 244, 81, 64, 249, 242, 225, 33, 250, 243, 219, 125, 64, 249, 242, - 225, 33, 250, 243, 220, 122, 64, 249, 242, 225, 33, 250, 243, 245, 193, - 64, 249, 242, 225, 33, 250, 243, 228, 200, 64, 249, 242, 225, 33, 250, - 243, 216, 248, 64, 249, 242, 225, 33, 250, 243, 235, 139, 64, 249, 242, - 225, 33, 250, 243, 234, 31, 64, 249, 242, 225, 33, 250, 243, 224, 15, 64, - 249, 242, 225, 33, 250, 243, 234, 79, 64, 249, 242, 225, 33, 250, 243, - 71, 235, 62, 21, 210, 87, 243, 229, 218, 129, 21, 210, 87, 249, 219, 21, - 123, 249, 219, 21, 113, 249, 219, 21, 134, 249, 219, 21, 244, 11, 249, - 219, 21, 244, 81, 249, 219, 21, 219, 125, 249, 219, 21, 220, 122, 249, - 219, 21, 245, 193, 249, 219, 21, 228, 200, 249, 219, 88, 7, 6, 1, 61, 88, - 7, 6, 1, 253, 158, 88, 7, 6, 1, 251, 66, 88, 7, 6, 1, 249, 60, 88, 7, 6, - 1, 75, 88, 7, 6, 1, 245, 6, 88, 7, 6, 1, 243, 202, 88, 7, 6, 1, 242, 60, - 88, 7, 6, 1, 73, 88, 7, 6, 1, 235, 144, 88, 7, 6, 1, 235, 23, 88, 7, 6, - 1, 156, 88, 7, 6, 1, 193, 88, 7, 6, 1, 230, 25, 88, 7, 6, 1, 76, 88, 7, - 6, 1, 226, 105, 88, 7, 6, 1, 224, 96, 88, 7, 6, 1, 153, 88, 7, 6, 1, 222, - 91, 88, 7, 6, 1, 217, 152, 88, 7, 6, 1, 70, 88, 7, 6, 1, 214, 105, 88, 7, - 6, 1, 212, 98, 88, 7, 6, 1, 211, 178, 88, 7, 6, 1, 211, 117, 88, 7, 6, 1, - 210, 159, 216, 6, 220, 53, 251, 157, 7, 6, 1, 222, 91, 37, 32, 7, 6, 1, - 251, 66, 37, 32, 7, 6, 1, 153, 37, 250, 191, 37, 211, 180, 92, 7, 6, 1, - 61, 92, 7, 6, 1, 253, 158, 92, 7, 6, 1, 251, 66, 92, 7, 6, 1, 249, 60, - 92, 7, 6, 1, 75, 92, 7, 6, 1, 245, 6, 92, 7, 6, 1, 243, 202, 92, 7, 6, 1, - 242, 60, 92, 7, 6, 1, 73, 92, 7, 6, 1, 235, 144, 92, 7, 6, 1, 235, 23, - 92, 7, 6, 1, 156, 92, 7, 6, 1, 193, 92, 7, 6, 1, 230, 25, 92, 7, 6, 1, - 76, 92, 7, 6, 1, 226, 105, 92, 7, 6, 1, 224, 96, 92, 7, 6, 1, 153, 92, 7, - 6, 1, 222, 91, 92, 7, 6, 1, 217, 152, 92, 7, 6, 1, 70, 92, 7, 6, 1, 214, - 105, 92, 7, 6, 1, 212, 98, 92, 7, 6, 1, 211, 178, 92, 7, 6, 1, 211, 117, - 92, 7, 6, 1, 210, 159, 92, 240, 201, 92, 230, 49, 92, 221, 183, 92, 218, - 226, 92, 224, 218, 92, 212, 23, 152, 37, 7, 6, 1, 61, 152, 37, 7, 6, 1, - 253, 158, 152, 37, 7, 6, 1, 251, 66, 152, 37, 7, 6, 1, 249, 60, 152, 37, - 7, 6, 1, 75, 152, 37, 7, 6, 1, 245, 6, 152, 37, 7, 6, 1, 243, 202, 152, - 37, 7, 6, 1, 242, 60, 152, 37, 7, 6, 1, 73, 152, 37, 7, 6, 1, 235, 144, - 152, 37, 7, 6, 1, 235, 23, 152, 37, 7, 6, 1, 156, 152, 37, 7, 6, 1, 193, - 152, 37, 7, 6, 1, 230, 25, 152, 37, 7, 6, 1, 76, 152, 37, 7, 6, 1, 226, - 105, 152, 37, 7, 6, 1, 224, 96, 152, 37, 7, 6, 1, 153, 152, 37, 7, 6, 1, - 222, 91, 152, 37, 7, 6, 1, 217, 152, 152, 37, 7, 6, 1, 70, 152, 37, 7, 6, - 1, 214, 105, 152, 37, 7, 6, 1, 212, 98, 152, 37, 7, 6, 1, 211, 178, 152, - 37, 7, 6, 1, 211, 117, 152, 37, 7, 6, 1, 210, 159, 223, 157, 231, 97, 50, - 223, 157, 231, 94, 50, 152, 92, 7, 6, 1, 61, 152, 92, 7, 6, 1, 253, 158, - 152, 92, 7, 6, 1, 251, 66, 152, 92, 7, 6, 1, 249, 60, 152, 92, 7, 6, 1, - 75, 152, 92, 7, 6, 1, 245, 6, 152, 92, 7, 6, 1, 243, 202, 152, 92, 7, 6, - 1, 242, 60, 152, 92, 7, 6, 1, 73, 152, 92, 7, 6, 1, 235, 144, 152, 92, 7, - 6, 1, 235, 23, 152, 92, 7, 6, 1, 156, 152, 92, 7, 6, 1, 193, 152, 92, 7, - 6, 1, 230, 25, 152, 92, 7, 6, 1, 76, 152, 92, 7, 6, 1, 226, 105, 152, 92, - 7, 6, 1, 224, 96, 152, 92, 7, 6, 1, 153, 152, 92, 7, 6, 1, 222, 91, 152, - 92, 7, 6, 1, 217, 152, 152, 92, 7, 6, 1, 70, 152, 92, 7, 6, 1, 214, 105, - 152, 92, 7, 6, 1, 212, 98, 152, 92, 7, 6, 1, 211, 178, 152, 92, 7, 6, 1, - 211, 117, 152, 92, 7, 6, 1, 210, 159, 249, 128, 152, 92, 7, 6, 1, 226, - 105, 152, 92, 240, 113, 152, 92, 190, 152, 92, 206, 152, 92, 255, 25, - 152, 92, 212, 23, 42, 247, 164, 92, 250, 23, 92, 249, 170, 92, 243, 252, - 92, 240, 105, 92, 229, 86, 92, 229, 79, 92, 226, 214, 92, 219, 35, 92, - 120, 2, 245, 31, 78, 92, 213, 119, 223, 103, 235, 239, 16, 1, 61, 223, - 103, 235, 239, 16, 1, 253, 158, 223, 103, 235, 239, 16, 1, 251, 66, 223, - 103, 235, 239, 16, 1, 249, 60, 223, 103, 235, 239, 16, 1, 75, 223, 103, - 235, 239, 16, 1, 245, 6, 223, 103, 235, 239, 16, 1, 243, 202, 223, 103, - 235, 239, 16, 1, 242, 60, 223, 103, 235, 239, 16, 1, 73, 223, 103, 235, - 239, 16, 1, 235, 144, 223, 103, 235, 239, 16, 1, 235, 23, 223, 103, 235, - 239, 16, 1, 156, 223, 103, 235, 239, 16, 1, 193, 223, 103, 235, 239, 16, - 1, 230, 25, 223, 103, 235, 239, 16, 1, 76, 223, 103, 235, 239, 16, 1, - 226, 105, 223, 103, 235, 239, 16, 1, 224, 96, 223, 103, 235, 239, 16, 1, - 153, 223, 103, 235, 239, 16, 1, 222, 91, 223, 103, 235, 239, 16, 1, 217, - 152, 223, 103, 235, 239, 16, 1, 70, 223, 103, 235, 239, 16, 1, 214, 105, - 223, 103, 235, 239, 16, 1, 212, 98, 223, 103, 235, 239, 16, 1, 211, 178, - 223, 103, 235, 239, 16, 1, 211, 117, 223, 103, 235, 239, 16, 1, 210, 159, - 42, 141, 241, 63, 92, 56, 234, 18, 92, 56, 206, 92, 9, 214, 177, 238, 50, - 92, 9, 214, 177, 238, 54, 92, 9, 214, 177, 238, 62, 92, 56, 248, 90, 92, - 9, 214, 177, 238, 69, 92, 9, 214, 177, 238, 56, 92, 9, 214, 177, 238, 28, - 92, 9, 214, 177, 238, 55, 92, 9, 214, 177, 238, 68, 92, 9, 214, 177, 238, - 42, 92, 9, 214, 177, 238, 35, 92, 9, 214, 177, 238, 44, 92, 9, 214, 177, - 238, 65, 92, 9, 214, 177, 238, 51, 92, 9, 214, 177, 238, 67, 92, 9, 214, - 177, 238, 43, 92, 9, 214, 177, 238, 66, 92, 9, 214, 177, 238, 29, 92, 9, - 214, 177, 238, 34, 92, 9, 214, 177, 238, 27, 92, 9, 214, 177, 238, 57, - 92, 9, 214, 177, 238, 59, 92, 9, 214, 177, 238, 37, 92, 9, 214, 177, 238, - 48, 92, 9, 214, 177, 238, 46, 92, 9, 214, 177, 238, 72, 92, 9, 214, 177, - 238, 71, 92, 9, 214, 177, 238, 25, 92, 9, 214, 177, 238, 52, 92, 9, 214, - 177, 238, 70, 92, 9, 214, 177, 238, 61, 92, 9, 214, 177, 238, 47, 92, 9, - 214, 177, 238, 26, 92, 9, 214, 177, 238, 49, 92, 9, 214, 177, 238, 31, - 92, 9, 214, 177, 238, 30, 92, 9, 214, 177, 238, 60, 92, 9, 214, 177, 238, - 38, 92, 9, 214, 177, 238, 40, 92, 9, 214, 177, 238, 41, 92, 9, 214, 177, - 238, 33, 92, 9, 214, 177, 238, 64, 92, 9, 214, 177, 238, 58, 216, 6, 220, - 53, 251, 157, 9, 214, 177, 238, 39, 216, 6, 220, 53, 251, 157, 9, 214, - 177, 238, 71, 216, 6, 220, 53, 251, 157, 9, 214, 177, 238, 69, 216, 6, - 220, 53, 251, 157, 9, 214, 177, 238, 53, 216, 6, 220, 53, 251, 157, 9, - 214, 177, 238, 36, 216, 6, 220, 53, 251, 157, 9, 214, 177, 238, 49, 216, - 6, 220, 53, 251, 157, 9, 214, 177, 238, 32, 216, 6, 220, 53, 251, 157, 9, - 214, 177, 238, 63, 216, 6, 220, 53, 251, 157, 9, 214, 177, 238, 45, 37, - 154, 254, 245, 37, 154, 255, 12, 249, 71, 244, 42, 250, 0, 214, 194, 228, - 213, 2, 218, 153, 218, 33, 117, 230, 114, 218, 32, 250, 26, 253, 207, - 246, 54, 218, 31, 117, 251, 118, 223, 158, 251, 140, 253, 207, 228, 212, - 212, 41, 212, 35, 213, 131, 230, 195, 212, 25, 245, 224, 242, 181, 245, - 45, 245, 224, 242, 181, 254, 128, 245, 224, 242, 181, 253, 225, 242, 181, - 2, 231, 51, 166, 230, 129, 87, 212, 27, 249, 137, 230, 129, 87, 244, 92, - 224, 22, 230, 129, 87, 212, 27, 242, 210, 230, 129, 87, 243, 229, 230, - 129, 87, 212, 52, 242, 210, 230, 129, 87, 233, 80, 224, 22, 230, 129, 87, - 212, 52, 249, 137, 230, 129, 87, 249, 137, 230, 128, 166, 230, 129, 2, - 244, 190, 244, 92, 224, 22, 230, 129, 2, 244, 190, 233, 80, 224, 22, 230, - 129, 2, 244, 190, 243, 229, 230, 129, 2, 244, 190, 218, 38, 2, 244, 190, - 242, 179, 218, 156, 219, 255, 218, 156, 250, 116, 221, 168, 245, 39, 215, - 235, 248, 84, 215, 235, 226, 59, 215, 235, 251, 27, 215, 109, 250, 118, - 251, 210, 222, 191, 241, 179, 218, 36, 251, 210, 245, 228, 64, 231, 194, - 245, 228, 64, 223, 31, 241, 204, 244, 11, 233, 54, 249, 246, 231, 170, - 233, 53, 244, 176, 233, 53, 233, 54, 244, 47, 236, 0, 211, 239, 230, 58, - 216, 34, 253, 191, 242, 143, 231, 67, 212, 39, 217, 57, 233, 26, 252, - 149, 225, 62, 223, 111, 254, 54, 242, 127, 254, 54, 225, 217, 225, 218, - 250, 119, 218, 114, 242, 23, 219, 90, 64, 225, 44, 231, 87, 226, 197, - 251, 194, 224, 229, 233, 36, 223, 32, 249, 142, 223, 32, 252, 159, 249, - 173, 223, 31, 249, 95, 22, 223, 31, 218, 141, 251, 167, 219, 14, 251, - 151, 243, 251, 243, 247, 222, 207, 217, 246, 224, 231, 248, 175, 226, - 236, 218, 7, 243, 248, 219, 230, 244, 91, 251, 21, 2, 217, 239, 248, 35, - 219, 52, 240, 112, 249, 141, 220, 70, 240, 111, 240, 112, 249, 141, 246, - 108, 249, 172, 250, 84, 130, 250, 254, 232, 141, 249, 88, 241, 55, 224, - 233, 219, 240, 252, 36, 251, 163, 224, 234, 64, 244, 33, 249, 171, 244, - 24, 22, 234, 32, 217, 19, 211, 230, 242, 13, 222, 12, 251, 177, 22, 249, - 102, 211, 237, 242, 184, 249, 235, 242, 184, 215, 193, 246, 90, 252, 62, - 230, 93, 250, 7, 252, 62, 230, 92, 252, 187, 251, 176, 223, 33, 211, 201, - 224, 195, 251, 235, 251, 20, 235, 138, 250, 77, 215, 235, 244, 162, 250, - 76, 244, 94, 244, 95, 219, 12, 252, 158, 225, 250, 224, 244, 249, 204, - 252, 159, 217, 59, 215, 235, 249, 128, 244, 67, 225, 63, 248, 81, 235, - 131, 247, 131, 250, 232, 218, 113, 211, 240, 250, 98, 230, 129, 213, 164, - 250, 162, 221, 199, 221, 224, 242, 148, 250, 251, 250, 233, 240, 245, - 244, 130, 212, 0, 222, 200, 249, 236, 244, 86, 225, 2, 22, 244, 90, 230, - 227, 230, 108, 251, 10, 250, 39, 241, 232, 253, 241, 226, 62, 216, 14, - 241, 251, 250, 29, 216, 242, 216, 113, 250, 20, 251, 202, 225, 177, 253, - 240, 213, 172, 243, 110, 247, 197, 241, 156, 219, 84, 231, 234, 251, 245, - 243, 111, 247, 240, 251, 166, 244, 52, 225, 33, 250, 241, 28, 228, 47, - 230, 85, 28, 228, 42, 221, 212, 242, 99, 28, 234, 137, 215, 190, 213, - 154, 28, 221, 192, 222, 124, 220, 11, 2, 221, 227, 216, 244, 223, 178, - 22, 252, 159, 219, 105, 22, 219, 105, 251, 187, 252, 123, 22, 241, 49, - 250, 120, 244, 73, 219, 63, 222, 125, 218, 12, 215, 194, 240, 246, 223, - 179, 254, 129, 244, 31, 222, 136, 244, 31, 217, 241, 240, 235, 251, 119, - 240, 235, 2, 243, 94, 226, 229, 251, 119, 235, 131, 224, 239, 226, 228, - 245, 44, 224, 239, 226, 228, 240, 244, 252, 145, 253, 181, 216, 252, 231, - 234, 240, 240, 232, 111, 240, 240, 249, 176, 218, 125, 221, 198, 248, 43, - 218, 125, 244, 180, 235, 149, 233, 89, 235, 131, 250, 226, 245, 44, 250, - 226, 223, 141, 230, 112, 226, 114, 212, 41, 251, 123, 249, 145, 216, 106, - 233, 18, 223, 180, 250, 224, 246, 96, 249, 135, 212, 3, 219, 70, 219, 68, - 240, 245, 223, 153, 242, 170, 220, 57, 230, 145, 222, 194, 250, 108, 247, - 136, 225, 73, 251, 203, 245, 169, 226, 238, 218, 252, 220, 52, 251, 122, - 254, 92, 241, 54, 233, 121, 252, 60, 244, 90, 215, 193, 244, 90, 251, - 209, 215, 91, 241, 249, 250, 109, 252, 187, 250, 109, 243, 242, 252, 187, - 250, 109, 251, 237, 225, 195, 234, 26, 224, 248, 246, 87, 251, 11, 252, - 177, 251, 11, 247, 130, 230, 113, 244, 190, 249, 146, 244, 190, 216, 107, - 244, 190, 223, 181, 244, 190, 250, 225, 244, 190, 246, 97, 244, 190, 218, - 241, 212, 3, 240, 246, 244, 190, 230, 146, 244, 190, 247, 137, 244, 190, - 225, 74, 244, 190, 243, 245, 244, 190, 242, 20, 244, 190, 211, 224, 244, - 190, 252, 71, 244, 190, 226, 45, 244, 190, 225, 74, 228, 53, 225, 232, - 224, 186, 245, 13, 245, 227, 228, 53, 230, 110, 216, 19, 71, 120, 225, 7, - 252, 182, 235, 242, 71, 124, 225, 7, 252, 182, 235, 242, 71, 43, 225, 7, - 252, 182, 235, 242, 71, 44, 225, 7, 252, 182, 235, 242, 244, 84, 242, 16, - 50, 212, 33, 242, 16, 50, 226, 215, 242, 16, 50, 216, 135, 120, 50, 216, - 135, 124, 50, 250, 19, 242, 11, 50, 204, 242, 11, 50, 249, 123, 211, 220, - 241, 251, 245, 14, 229, 104, 217, 151, 235, 125, 246, 92, 234, 82, 251, - 247, 211, 220, 249, 249, 224, 127, 242, 14, 224, 230, 231, 177, 220, 4, - 253, 203, 220, 4, 241, 164, 220, 4, 211, 220, 221, 240, 211, 220, 251, - 186, 244, 29, 251, 90, 236, 0, 219, 169, 251, 89, 236, 0, 219, 169, 251, - 162, 242, 194, 231, 185, 211, 221, 244, 174, 231, 186, 22, 211, 222, 241, - 60, 242, 10, 113, 231, 59, 241, 60, 242, 10, 113, 211, 219, 241, 60, 242, - 10, 224, 255, 226, 227, 211, 222, 2, 251, 106, 245, 225, 251, 141, 2, - 213, 246, 225, 168, 2, 251, 212, 242, 34, 231, 186, 2, 242, 110, 225, - 109, 231, 174, 231, 186, 2, 215, 97, 226, 208, 231, 185, 226, 208, 211, - 221, 252, 186, 249, 190, 211, 205, 224, 189, 235, 131, 226, 223, 235, - 131, 242, 169, 242, 222, 252, 187, 254, 113, 245, 18, 254, 160, 254, 161, - 230, 136, 236, 5, 219, 100, 235, 232, 248, 34, 225, 167, 242, 105, 248, - 179, 232, 201, 229, 211, 224, 254, 244, 191, 231, 142, 242, 33, 252, 138, - 225, 1, 217, 171, 225, 66, 234, 64, 78, 232, 111, 233, 10, 222, 233, 243, - 54, 218, 131, 234, 63, 251, 171, 249, 148, 2, 241, 227, 212, 19, 252, 69, - 241, 227, 251, 135, 241, 227, 113, 241, 225, 219, 10, 241, 227, 242, 120, - 241, 227, 241, 228, 2, 74, 251, 208, 241, 227, 242, 127, 241, 227, 211, - 42, 241, 227, 224, 128, 241, 227, 241, 228, 2, 223, 33, 223, 44, 241, - 225, 241, 228, 248, 81, 247, 249, 220, 82, 2, 115, 59, 235, 215, 245, - 172, 192, 251, 116, 254, 112, 87, 251, 195, 219, 92, 87, 249, 228, 87, - 218, 246, 217, 248, 87, 246, 85, 248, 157, 87, 225, 67, 64, 224, 249, - 244, 61, 252, 3, 247, 165, 87, 219, 3, 252, 158, 216, 149, 252, 158, 71, - 244, 51, 240, 211, 225, 5, 87, 230, 149, 252, 172, 249, 98, 245, 32, 114, - 247, 132, 50, 249, 139, 250, 242, 252, 144, 2, 211, 40, 50, 252, 144, 2, - 247, 132, 50, 252, 144, 2, 245, 47, 50, 252, 144, 2, 224, 228, 50, 230, - 149, 2, 211, 235, 250, 138, 2, 214, 153, 215, 231, 22, 211, 40, 50, 221, - 178, 225, 166, 249, 208, 251, 139, 230, 186, 244, 56, 247, 185, 226, 161, - 247, 190, 246, 49, 244, 107, 244, 40, 204, 244, 107, 244, 40, 226, 76, 2, - 249, 100, 226, 76, 244, 183, 214, 163, 251, 16, 217, 18, 251, 16, 250, - 243, 235, 242, 250, 138, 2, 214, 153, 215, 230, 250, 138, 2, 246, 104, - 215, 230, 252, 141, 250, 137, 250, 6, 224, 123, 222, 185, 224, 123, 226, - 19, 218, 121, 222, 131, 215, 222, 222, 131, 251, 191, 217, 91, 233, 51, - 228, 45, 228, 46, 2, 248, 80, 249, 147, 250, 0, 251, 192, 204, 251, 192, - 242, 127, 251, 192, 251, 208, 251, 192, 226, 157, 251, 192, 251, 189, - 229, 205, 252, 175, 221, 186, 231, 60, 217, 1, 223, 123, 226, 74, 244, - 159, 231, 234, 221, 223, 254, 89, 224, 145, 254, 252, 232, 113, 250, 127, - 231, 72, 226, 129, 215, 238, 235, 252, 215, 238, 226, 82, 246, 24, 87, - 235, 249, 245, 119, 245, 120, 2, 246, 104, 80, 48, 250, 0, 231, 200, 2, - 232, 107, 244, 73, 250, 0, 231, 200, 2, 223, 157, 244, 73, 204, 231, 200, - 2, 223, 157, 244, 73, 204, 231, 200, 2, 232, 107, 244, 73, 224, 236, 224, - 237, 240, 248, 229, 84, 230, 159, 225, 117, 230, 159, 225, 118, 2, 97, - 80, 253, 207, 233, 46, 213, 175, 230, 158, 230, 159, 225, 118, 226, 230, - 228, 75, 230, 159, 225, 116, 254, 90, 2, 252, 129, 251, 10, 213, 172, - 251, 10, 216, 254, 223, 173, 213, 171, 215, 60, 97, 253, 247, 250, 2, 97, - 22, 140, 204, 250, 36, 253, 247, 250, 2, 97, 22, 140, 204, 250, 36, 253, - 248, 2, 37, 123, 226, 120, 250, 2, 246, 104, 22, 214, 153, 204, 250, 36, - 253, 247, 254, 88, 246, 104, 22, 214, 153, 204, 250, 36, 253, 247, 121, - 251, 138, 87, 125, 251, 138, 87, 219, 7, 2, 251, 4, 91, 219, 6, 219, 7, - 2, 123, 219, 31, 212, 35, 219, 7, 2, 134, 219, 31, 212, 34, 252, 115, - 245, 172, 225, 27, 233, 42, 231, 211, 242, 184, 222, 247, 231, 211, 242, - 184, 232, 152, 2, 235, 225, 225, 199, 250, 0, 232, 152, 2, 234, 138, 234, - 138, 232, 151, 204, 232, 151, 252, 44, 252, 45, 2, 251, 4, 91, 251, 190, - 232, 204, 87, 223, 174, 251, 86, 252, 185, 2, 140, 80, 48, 245, 143, 2, - 140, 80, 48, 226, 197, 2, 245, 31, 164, 2, 43, 44, 80, 48, 219, 39, 2, - 97, 80, 48, 216, 14, 2, 214, 153, 80, 48, 228, 75, 123, 214, 184, 245, - 191, 87, 234, 136, 216, 247, 235, 219, 16, 31, 7, 6, 233, 9, 235, 219, - 16, 31, 7, 4, 233, 9, 235, 219, 16, 31, 227, 199, 235, 219, 16, 31, 217, - 183, 235, 219, 16, 31, 7, 233, 9, 244, 96, 245, 172, 216, 9, 211, 199, - 242, 21, 227, 182, 22, 251, 197, 241, 66, 225, 50, 230, 226, 216, 255, - 249, 114, 252, 159, 219, 125, 225, 9, 218, 157, 2, 230, 224, 247, 120, - 235, 131, 16, 31, 252, 57, 215, 220, 245, 156, 85, 42, 251, 86, 71, 42, - 251, 86, 233, 85, 223, 111, 250, 35, 233, 85, 251, 208, 250, 35, 233, 85, - 226, 157, 247, 248, 233, 85, 251, 208, 247, 248, 4, 226, 157, 247, 248, - 4, 251, 208, 247, 248, 214, 162, 223, 111, 215, 225, 246, 105, 223, 111, - 215, 225, 214, 162, 4, 223, 111, 215, 225, 246, 105, 4, 223, 111, 215, - 225, 37, 249, 131, 224, 252, 249, 131, 224, 253, 2, 242, 26, 51, 249, - 131, 224, 252, 228, 49, 43, 220, 153, 2, 134, 247, 118, 250, 4, 244, 191, - 123, 226, 242, 250, 4, 244, 191, 113, 226, 242, 250, 4, 244, 191, 134, - 226, 242, 250, 4, 244, 191, 244, 11, 226, 242, 250, 4, 244, 191, 244, 81, - 226, 242, 250, 4, 244, 191, 219, 125, 226, 242, 250, 4, 244, 191, 220, - 122, 226, 242, 250, 4, 244, 191, 245, 193, 226, 242, 250, 4, 244, 191, - 228, 200, 226, 242, 250, 4, 244, 191, 216, 248, 226, 242, 250, 4, 244, - 191, 245, 168, 226, 242, 250, 4, 244, 191, 215, 77, 226, 242, 250, 4, - 244, 191, 226, 192, 250, 4, 244, 191, 215, 56, 250, 4, 244, 191, 216, - 140, 250, 4, 244, 191, 244, 7, 250, 4, 244, 191, 244, 79, 250, 4, 244, - 191, 219, 121, 250, 4, 244, 191, 220, 121, 250, 4, 244, 191, 245, 192, - 250, 4, 244, 191, 228, 199, 250, 4, 244, 191, 216, 246, 250, 4, 244, 191, - 245, 166, 250, 4, 244, 191, 215, 75, 230, 117, 243, 230, 216, 36, 216, 2, - 218, 148, 64, 232, 239, 219, 170, 64, 235, 132, 230, 106, 242, 124, 244, - 190, 242, 124, 244, 191, 2, 219, 74, 245, 13, 244, 191, 2, 217, 14, 64, - 235, 53, 219, 74, 244, 191, 2, 204, 230, 110, 219, 74, 244, 191, 2, 204, - 230, 111, 22, 219, 74, 245, 13, 219, 74, 244, 191, 2, 204, 230, 111, 22, - 249, 230, 217, 247, 219, 74, 244, 191, 2, 204, 230, 111, 22, 216, 104, - 245, 13, 219, 74, 244, 191, 2, 242, 25, 219, 74, 244, 191, 2, 240, 247, - 211, 233, 244, 190, 219, 74, 244, 191, 2, 219, 74, 245, 13, 244, 191, - 221, 217, 248, 62, 244, 33, 223, 88, 244, 190, 219, 74, 244, 191, 2, 241, - 226, 245, 13, 219, 74, 244, 191, 2, 218, 34, 219, 73, 244, 190, 229, 87, - 244, 190, 245, 23, 244, 190, 214, 188, 244, 190, 244, 191, 2, 249, 230, - 217, 247, 225, 192, 244, 190, 249, 201, 244, 190, 249, 202, 244, 190, - 234, 62, 244, 190, 244, 191, 216, 137, 115, 234, 63, 234, 62, 244, 191, - 2, 219, 74, 245, 13, 234, 62, 244, 191, 2, 250, 0, 245, 13, 244, 191, 2, - 218, 88, 216, 19, 244, 191, 2, 218, 88, 216, 20, 22, 211, 233, 245, 15, - 244, 191, 2, 218, 88, 216, 20, 22, 216, 104, 245, 13, 247, 192, 244, 190, - 211, 204, 244, 190, 254, 108, 244, 190, 224, 227, 244, 190, 249, 116, - 244, 190, 225, 170, 244, 190, 244, 191, 2, 232, 126, 64, 215, 204, 247, - 192, 251, 88, 223, 88, 244, 190, 243, 239, 244, 191, 2, 204, 230, 110, - 254, 106, 244, 190, 244, 152, 244, 190, 212, 20, 244, 190, 219, 91, 244, - 190, 216, 71, 244, 190, 242, 125, 244, 190, 232, 114, 249, 116, 244, 190, - 244, 191, 2, 204, 230, 110, 240, 203, 244, 190, 244, 191, 2, 204, 230, - 111, 22, 249, 230, 217, 247, 244, 191, 221, 190, 236, 0, 244, 153, 253, - 213, 244, 190, 244, 49, 244, 190, 219, 92, 244, 190, 247, 165, 244, 190, - 244, 191, 211, 230, 230, 110, 244, 191, 2, 231, 84, 231, 144, 242, 124, - 250, 225, 244, 191, 2, 219, 74, 245, 13, 250, 225, 244, 191, 2, 217, 14, - 64, 235, 53, 219, 74, 250, 225, 244, 191, 2, 204, 230, 110, 219, 74, 250, - 225, 244, 191, 2, 241, 226, 245, 13, 250, 225, 244, 191, 2, 211, 196, - 219, 75, 234, 62, 250, 225, 244, 191, 2, 250, 0, 245, 13, 224, 227, 250, - 225, 244, 190, 249, 116, 250, 225, 244, 190, 212, 20, 250, 225, 244, 190, - 244, 191, 2, 228, 75, 242, 163, 243, 34, 244, 191, 2, 226, 215, 243, 34, - 225, 168, 251, 168, 248, 75, 221, 169, 230, 145, 241, 229, 230, 145, 219, - 8, 230, 145, 242, 5, 225, 168, 223, 156, 123, 242, 15, 225, 168, 223, - 156, 251, 178, 242, 11, 236, 0, 250, 179, 225, 168, 243, 238, 225, 168, - 2, 224, 227, 244, 190, 225, 168, 2, 244, 41, 242, 10, 222, 203, 241, 214, - 218, 143, 232, 149, 223, 162, 250, 244, 241, 162, 215, 248, 241, 162, - 215, 249, 2, 251, 114, 228, 53, 215, 248, 231, 32, 192, 223, 163, 218, - 149, 215, 246, 215, 247, 250, 244, 251, 92, 226, 194, 251, 92, 215, 201, - 251, 93, 218, 129, 230, 187, 254, 130, 244, 97, 245, 137, 224, 255, 250, - 244, 226, 194, 224, 255, 250, 244, 217, 32, 226, 194, 217, 32, 253, 180, - 226, 194, 253, 180, 223, 118, 213, 247, 248, 58, 215, 192, 253, 242, 232, - 117, 215, 254, 230, 139, 230, 116, 223, 161, 218, 6, 223, 161, 230, 116, - 251, 28, 254, 229, 215, 245, 220, 16, 222, 182, 219, 1, 203, 215, 252, - 232, 230, 67, 215, 252, 232, 230, 249, 190, 50, 224, 255, 250, 229, 223, - 44, 232, 230, 215, 222, 244, 74, 226, 197, 224, 238, 247, 123, 228, 75, - 245, 125, 50, 219, 72, 87, 228, 75, 219, 72, 87, 224, 122, 232, 193, 236, - 0, 235, 157, 225, 41, 87, 247, 146, 228, 52, 232, 193, 87, 224, 232, 212, - 41, 87, 228, 66, 212, 41, 87, 252, 2, 228, 75, 252, 1, 252, 0, 230, 116, - 252, 0, 225, 213, 228, 75, 225, 212, 250, 100, 249, 124, 231, 56, 87, - 211, 218, 87, 223, 59, 252, 187, 87, 216, 37, 212, 41, 249, 253, 219, - 234, 252, 118, 252, 116, 225, 242, 249, 177, 249, 86, 252, 169, 250, 22, - 43, 232, 90, 108, 16, 31, 224, 3, 108, 16, 31, 254, 192, 108, 16, 31, - 244, 96, 108, 16, 31, 245, 223, 108, 16, 31, 212, 40, 108, 16, 31, 254, - 43, 108, 16, 31, 254, 44, 223, 105, 108, 16, 31, 254, 44, 223, 104, 108, - 16, 31, 254, 44, 213, 143, 108, 16, 31, 254, 44, 213, 142, 108, 16, 31, + 211, 8, 95, 25, 5, 254, 244, 95, 25, 5, 254, 240, 95, 25, 5, 245, 87, 95, + 25, 5, 222, 184, 245, 87, 95, 25, 5, 245, 93, 95, 25, 5, 222, 184, 245, + 93, 95, 25, 5, 254, 202, 95, 25, 5, 245, 196, 95, 25, 5, 253, 193, 95, + 25, 5, 226, 135, 95, 25, 5, 230, 26, 95, 25, 5, 229, 80, 95, 138, 222, + 252, 95, 138, 216, 15, 222, 252, 95, 138, 48, 95, 138, 51, 95, 1, 216, + 29, 95, 1, 216, 28, 95, 1, 216, 27, 95, 1, 216, 26, 95, 1, 216, 25, 95, + 1, 216, 24, 95, 1, 216, 23, 95, 1, 223, 107, 216, 30, 95, 1, 223, 107, + 216, 29, 95, 1, 223, 107, 216, 27, 95, 1, 223, 107, 216, 26, 95, 1, 223, + 107, 216, 25, 95, 1, 223, 107, 216, 23, 56, 1, 254, 24, 75, 141, 1, 254, + 24, 211, 47, 49, 28, 16, 224, 155, 49, 28, 16, 248, 159, 49, 28, 16, 225, + 176, 49, 28, 16, 226, 114, 245, 179, 49, 28, 16, 226, 114, 247, 202, 49, + 28, 16, 214, 16, 245, 179, 49, 28, 16, 214, 16, 247, 202, 49, 28, 16, + 234, 198, 49, 28, 16, 217, 170, 49, 28, 16, 226, 10, 49, 28, 16, 210, + 217, 49, 28, 16, 210, 218, 247, 202, 49, 28, 16, 233, 235, 49, 28, 16, + 254, 69, 245, 179, 49, 28, 16, 245, 27, 245, 179, 49, 28, 16, 217, 3, 49, + 28, 16, 234, 162, 49, 28, 16, 254, 59, 49, 28, 16, 254, 60, 247, 202, 49, + 28, 16, 217, 176, 49, 28, 16, 216, 160, 49, 28, 16, 226, 207, 254, 22, + 49, 28, 16, 242, 160, 254, 22, 49, 28, 16, 224, 154, 49, 28, 16, 250, + 150, 49, 28, 16, 214, 6, 49, 28, 16, 235, 165, 254, 22, 49, 28, 16, 234, + 164, 254, 22, 49, 28, 16, 234, 163, 254, 22, 49, 28, 16, 221, 214, 49, + 28, 16, 226, 1, 49, 28, 16, 218, 147, 254, 62, 49, 28, 16, 226, 113, 254, + 22, 49, 28, 16, 214, 15, 254, 22, 49, 28, 16, 254, 63, 254, 22, 49, 28, + 16, 254, 57, 49, 28, 16, 234, 38, 49, 28, 16, 223, 47, 49, 28, 16, 225, + 107, 254, 22, 49, 28, 16, 216, 84, 49, 28, 16, 254, 122, 49, 28, 16, 221, + 160, 49, 28, 16, 217, 179, 254, 22, 49, 28, 16, 217, 179, 231, 41, 218, + 145, 49, 28, 16, 226, 108, 254, 22, 49, 28, 16, 216, 191, 49, 28, 16, + 233, 28, 49, 28, 16, 246, 42, 49, 28, 16, 215, 228, 49, 28, 16, 216, 233, + 49, 28, 16, 233, 238, 49, 28, 16, 254, 69, 245, 27, 229, 96, 49, 28, 16, + 243, 237, 254, 22, 49, 28, 16, 236, 13, 49, 28, 16, 215, 200, 254, 22, + 49, 28, 16, 234, 201, 215, 199, 49, 28, 16, 225, 201, 49, 28, 16, 224, + 159, 49, 28, 16, 234, 12, 49, 28, 16, 250, 81, 254, 22, 49, 28, 16, 223, + 147, 49, 28, 16, 226, 13, 254, 22, 49, 28, 16, 226, 11, 254, 22, 49, 28, + 16, 240, 110, 49, 28, 16, 229, 204, 49, 28, 16, 225, 157, 49, 28, 16, + 234, 13, 254, 150, 49, 28, 16, 215, 200, 254, 150, 49, 28, 16, 218, 124, + 49, 28, 16, 242, 124, 49, 28, 16, 235, 165, 229, 96, 49, 28, 16, 226, + 207, 229, 96, 49, 28, 16, 226, 114, 229, 96, 49, 28, 16, 225, 156, 49, + 28, 16, 233, 255, 49, 28, 16, 225, 155, 49, 28, 16, 233, 237, 49, 28, 16, + 225, 202, 229, 96, 49, 28, 16, 234, 163, 229, 97, 254, 97, 49, 28, 16, + 234, 164, 229, 97, 254, 97, 49, 28, 16, 210, 215, 49, 28, 16, 254, 60, + 229, 96, 49, 28, 16, 254, 61, 217, 177, 229, 96, 49, 28, 16, 210, 216, + 49, 28, 16, 233, 236, 49, 28, 16, 245, 174, 49, 28, 16, 250, 151, 49, 28, + 16, 230, 199, 235, 164, 49, 28, 16, 214, 16, 229, 96, 49, 28, 16, 225, + 107, 229, 96, 49, 28, 16, 224, 160, 229, 96, 49, 28, 16, 226, 204, 49, + 28, 16, 254, 85, 49, 28, 16, 232, 59, 49, 28, 16, 226, 11, 229, 96, 49, + 28, 16, 226, 13, 229, 96, 49, 28, 16, 245, 61, 226, 12, 49, 28, 16, 233, + 154, 49, 28, 16, 254, 86, 49, 28, 16, 215, 200, 229, 96, 49, 28, 16, 245, + 177, 49, 28, 16, 217, 179, 229, 96, 49, 28, 16, 217, 171, 49, 28, 16, + 250, 81, 229, 96, 49, 28, 16, 245, 107, 49, 28, 16, 221, 161, 229, 96, + 49, 28, 16, 211, 151, 234, 38, 49, 28, 16, 215, 197, 49, 28, 16, 224, + 161, 49, 28, 16, 215, 201, 49, 28, 16, 215, 198, 49, 28, 16, 224, 158, + 49, 28, 16, 215, 196, 49, 28, 16, 224, 157, 49, 28, 16, 242, 159, 49, 28, + 16, 254, 15, 49, 28, 16, 245, 61, 254, 15, 49, 28, 16, 226, 108, 229, 96, + 49, 28, 16, 216, 190, 245, 70, 49, 28, 16, 216, 190, 245, 26, 49, 28, 16, + 216, 192, 254, 64, 49, 28, 16, 216, 185, 234, 248, 254, 56, 49, 28, 16, + 234, 200, 49, 28, 16, 245, 140, 49, 28, 16, 211, 11, 234, 197, 49, 28, + 16, 211, 11, 254, 97, 49, 28, 16, 218, 146, 49, 28, 16, 234, 39, 254, 97, + 49, 28, 16, 247, 203, 254, 22, 49, 28, 16, 233, 239, 254, 22, 49, 28, 16, + 233, 239, 254, 150, 49, 28, 16, 233, 239, 229, 96, 49, 28, 16, 254, 63, + 229, 96, 49, 28, 16, 254, 65, 49, 28, 16, 247, 202, 49, 28, 16, 215, 211, + 49, 28, 16, 216, 225, 49, 28, 16, 234, 3, 49, 28, 16, 233, 33, 245, 135, + 250, 72, 49, 28, 16, 233, 33, 246, 43, 250, 73, 49, 28, 16, 233, 33, 215, + 213, 250, 73, 49, 28, 16, 233, 33, 216, 235, 250, 73, 49, 28, 16, 233, + 33, 236, 8, 250, 72, 49, 28, 16, 242, 160, 229, 97, 254, 97, 49, 28, 16, + 242, 160, 226, 2, 254, 11, 49, 28, 16, 242, 160, 226, 2, 248, 30, 49, 28, + 16, 247, 226, 49, 28, 16, 247, 227, 226, 2, 254, 12, 234, 197, 49, 28, + 16, 247, 227, 226, 2, 254, 12, 254, 97, 49, 28, 16, 247, 227, 226, 2, + 248, 30, 49, 28, 16, 215, 217, 49, 28, 16, 254, 16, 49, 28, 16, 236, 15, + 49, 28, 16, 247, 247, 49, 28, 16, 254, 212, 225, 1, 254, 17, 49, 28, 16, + 254, 212, 254, 14, 49, 28, 16, 254, 212, 254, 17, 49, 28, 16, 254, 212, + 231, 35, 49, 28, 16, 254, 212, 231, 46, 49, 28, 16, 254, 212, 242, 161, + 49, 28, 16, 254, 212, 242, 158, 49, 28, 16, 254, 212, 225, 1, 242, 161, + 49, 28, 16, 231, 152, 224, 166, 240, 108, 49, 28, 16, 231, 152, 254, 152, + 224, 166, 240, 108, 49, 28, 16, 231, 152, 248, 29, 240, 108, 49, 28, 16, + 231, 152, 254, 152, 248, 29, 240, 108, 49, 28, 16, 231, 152, 215, 206, + 240, 108, 49, 28, 16, 231, 152, 215, 218, 49, 28, 16, 231, 152, 216, 229, + 240, 108, 49, 28, 16, 231, 152, 216, 229, 233, 36, 240, 108, 49, 28, 16, + 231, 152, 233, 36, 240, 108, 49, 28, 16, 231, 152, 225, 40, 240, 108, 49, + 28, 16, 235, 170, 216, 252, 240, 109, 49, 28, 16, 254, 61, 216, 252, 240, + 109, 49, 28, 16, 244, 173, 216, 226, 49, 28, 16, 244, 173, 230, 144, 49, + 28, 16, 244, 173, 247, 231, 49, 28, 16, 231, 152, 214, 10, 240, 108, 49, + 28, 16, 231, 152, 224, 165, 240, 108, 49, 28, 16, 231, 152, 225, 40, 216, + 229, 240, 108, 49, 28, 16, 242, 156, 230, 27, 254, 64, 49, 28, 16, 242, + 156, 230, 27, 247, 201, 49, 28, 16, 245, 149, 234, 248, 243, 237, 213, + 124, 49, 28, 16, 236, 14, 49, 28, 16, 236, 12, 49, 28, 16, 243, 237, 254, + 23, 248, 28, 240, 107, 49, 28, 16, 243, 237, 247, 245, 190, 49, 28, 16, + 243, 237, 247, 245, 229, 204, 49, 28, 16, 243, 237, 229, 199, 240, 108, + 49, 28, 16, 243, 237, 247, 245, 248, 4, 49, 28, 16, 243, 237, 219, 103, + 247, 244, 248, 4, 49, 28, 16, 243, 237, 247, 245, 234, 183, 49, 28, 16, + 243, 237, 247, 245, 210, 23, 49, 28, 16, 243, 237, 247, 245, 228, 235, + 234, 197, 49, 28, 16, 243, 237, 247, 245, 228, 235, 254, 97, 49, 28, 16, + 243, 237, 231, 192, 250, 74, 247, 231, 49, 28, 16, 243, 237, 231, 192, + 250, 74, 230, 144, 49, 28, 16, 244, 123, 219, 103, 250, 74, 214, 9, 49, + 28, 16, 243, 237, 219, 103, 250, 74, 217, 180, 49, 28, 16, 243, 237, 229, + 98, 49, 28, 16, 250, 75, 209, 249, 49, 28, 16, 250, 75, 234, 37, 49, 28, + 16, 250, 75, 219, 10, 49, 28, 16, 243, 237, 240, 155, 211, 10, 216, 230, + 49, 28, 16, 243, 237, 245, 150, 254, 87, 49, 28, 16, 211, 10, 215, 207, + 49, 28, 16, 247, 239, 215, 207, 49, 28, 16, 247, 239, 216, 230, 49, 28, + 16, 247, 239, 254, 66, 246, 43, 247, 140, 49, 28, 16, 247, 239, 230, 142, + 216, 234, 247, 140, 49, 28, 16, 247, 239, 247, 223, 245, 37, 247, 140, + 49, 28, 16, 247, 239, 215, 215, 226, 212, 247, 140, 49, 28, 16, 211, 10, + 254, 66, 246, 43, 247, 140, 49, 28, 16, 211, 10, 230, 142, 216, 234, 247, + 140, 49, 28, 16, 211, 10, 247, 223, 245, 37, 247, 140, 49, 28, 16, 211, + 10, 215, 215, 226, 212, 247, 140, 49, 28, 16, 243, 50, 247, 238, 49, 28, + 16, 243, 50, 211, 9, 49, 28, 16, 247, 246, 254, 66, 230, 200, 49, 28, 16, + 247, 246, 254, 66, 231, 74, 49, 28, 16, 247, 246, 247, 202, 49, 28, 16, + 247, 246, 216, 183, 49, 28, 16, 219, 164, 216, 183, 49, 28, 16, 219, 164, + 216, 184, 247, 187, 49, 28, 16, 219, 164, 216, 184, 215, 208, 49, 28, 16, + 219, 164, 216, 184, 216, 223, 49, 28, 16, 219, 164, 253, 245, 49, 28, 16, + 219, 164, 253, 246, 247, 187, 49, 28, 16, 219, 164, 253, 246, 215, 208, + 49, 28, 16, 219, 164, 253, 246, 216, 223, 49, 28, 16, 247, 224, 243, 31, + 49, 28, 16, 247, 230, 226, 135, 49, 28, 16, 218, 138, 49, 28, 16, 254, 8, + 190, 49, 28, 16, 254, 8, 213, 124, 49, 28, 16, 254, 8, 243, 136, 49, 28, + 16, 254, 8, 248, 4, 49, 28, 16, 254, 8, 234, 183, 49, 28, 16, 254, 8, + 210, 23, 49, 28, 16, 254, 8, 228, 234, 49, 28, 16, 234, 163, 229, 97, + 231, 45, 49, 28, 16, 234, 164, 229, 97, 231, 45, 49, 28, 16, 234, 163, + 229, 97, 234, 197, 49, 28, 16, 234, 164, 229, 97, 234, 197, 49, 28, 16, + 234, 39, 234, 197, 49, 28, 16, 242, 160, 229, 97, 234, 197, 28, 16, 219, + 156, 252, 136, 28, 16, 52, 252, 136, 28, 16, 40, 252, 136, 28, 16, 223, + 51, 40, 252, 136, 28, 16, 248, 156, 252, 136, 28, 16, 219, 252, 252, 136, + 28, 16, 43, 223, 78, 50, 28, 16, 44, 223, 78, 50, 28, 16, 223, 78, 247, + 119, 28, 16, 248, 197, 221, 164, 28, 16, 248, 223, 250, 250, 28, 16, 221, + 164, 28, 16, 249, 235, 28, 16, 223, 76, 244, 112, 28, 16, 223, 76, 244, + 111, 28, 16, 223, 76, 244, 110, 28, 16, 244, 132, 28, 16, 244, 133, 51, + 28, 16, 251, 149, 78, 28, 16, 251, 25, 28, 16, 251, 160, 28, 16, 127, 28, + 16, 226, 194, 218, 164, 28, 16, 215, 57, 218, 164, 28, 16, 216, 143, 218, + 164, 28, 16, 244, 11, 218, 164, 28, 16, 244, 81, 218, 164, 28, 16, 219, + 125, 218, 164, 28, 16, 219, 123, 243, 251, 28, 16, 244, 9, 243, 251, 28, + 16, 243, 204, 250, 15, 28, 16, 243, 204, 250, 16, 226, 137, 254, 143, 28, + 16, 243, 204, 250, 16, 226, 137, 252, 123, 28, 16, 251, 68, 250, 15, 28, + 16, 245, 8, 250, 15, 28, 16, 245, 8, 250, 16, 226, 137, 254, 143, 28, 16, + 245, 8, 250, 16, 226, 137, 252, 123, 28, 16, 246, 84, 250, 14, 28, 16, + 246, 84, 250, 13, 28, 16, 230, 86, 231, 91, 223, 62, 28, 16, 52, 220, 76, + 28, 16, 52, 244, 66, 28, 16, 244, 67, 214, 163, 28, 16, 244, 67, 246, + 107, 28, 16, 229, 189, 214, 163, 28, 16, 229, 189, 246, 107, 28, 16, 220, + 77, 214, 163, 28, 16, 220, 77, 246, 107, 28, 16, 224, 23, 138, 220, 76, + 28, 16, 224, 23, 138, 244, 66, 28, 16, 249, 217, 216, 88, 28, 16, 249, + 86, 216, 88, 28, 16, 226, 137, 254, 143, 28, 16, 226, 137, 252, 123, 28, + 16, 224, 5, 254, 143, 28, 16, 224, 5, 252, 123, 28, 16, 230, 89, 223, 62, + 28, 16, 211, 251, 223, 62, 28, 16, 163, 223, 62, 28, 16, 224, 23, 223, + 62, 28, 16, 245, 190, 223, 62, 28, 16, 219, 119, 223, 62, 28, 16, 216, + 161, 223, 62, 28, 16, 219, 111, 223, 62, 28, 16, 123, 240, 212, 215, 71, + 223, 62, 28, 16, 211, 179, 228, 44, 28, 16, 96, 228, 44, 28, 16, 250, 37, + 211, 179, 228, 44, 28, 16, 42, 228, 45, 211, 253, 28, 16, 42, 228, 45, + 251, 222, 28, 16, 215, 227, 228, 45, 120, 211, 253, 28, 16, 215, 227, + 228, 45, 120, 251, 222, 28, 16, 215, 227, 228, 45, 43, 211, 253, 28, 16, + 215, 227, 228, 45, 43, 251, 222, 28, 16, 215, 227, 228, 45, 44, 211, 253, + 28, 16, 215, 227, 228, 45, 44, 251, 222, 28, 16, 215, 227, 228, 45, 124, + 211, 253, 28, 16, 215, 227, 228, 45, 124, 251, 222, 28, 16, 215, 227, + 228, 45, 120, 44, 211, 253, 28, 16, 215, 227, 228, 45, 120, 44, 251, 222, + 28, 16, 230, 130, 228, 45, 211, 253, 28, 16, 230, 130, 228, 45, 251, 222, + 28, 16, 215, 224, 228, 45, 124, 211, 253, 28, 16, 215, 224, 228, 45, 124, + 251, 222, 28, 16, 226, 5, 228, 44, 28, 16, 213, 132, 228, 44, 28, 16, + 228, 45, 251, 222, 28, 16, 227, 204, 228, 44, 28, 16, 249, 242, 228, 45, + 211, 253, 28, 16, 249, 242, 228, 45, 251, 222, 28, 16, 251, 147, 28, 16, + 211, 251, 228, 48, 28, 16, 163, 228, 48, 28, 16, 224, 23, 228, 48, 28, + 16, 245, 190, 228, 48, 28, 16, 219, 119, 228, 48, 28, 16, 216, 161, 228, + 48, 28, 16, 219, 111, 228, 48, 28, 16, 123, 240, 212, 215, 71, 228, 48, + 28, 16, 38, 218, 140, 28, 16, 38, 218, 241, 218, 140, 28, 16, 38, 215, + 235, 28, 16, 38, 215, 234, 28, 16, 38, 215, 233, 28, 16, 244, 102, 215, + 235, 28, 16, 244, 102, 215, 234, 28, 16, 244, 102, 215, 233, 28, 16, 38, + 253, 190, 247, 121, 28, 16, 38, 244, 73, 28, 16, 38, 244, 72, 28, 16, 38, + 244, 71, 28, 16, 38, 244, 70, 28, 16, 38, 244, 69, 28, 16, 252, 59, 252, + 75, 28, 16, 245, 144, 252, 75, 28, 16, 252, 59, 216, 112, 28, 16, 245, + 144, 216, 112, 28, 16, 252, 59, 219, 81, 28, 16, 245, 144, 219, 81, 28, + 16, 252, 59, 225, 116, 28, 16, 245, 144, 225, 116, 28, 16, 38, 255, 15, + 28, 16, 38, 218, 166, 28, 16, 38, 216, 239, 28, 16, 38, 218, 167, 28, 16, + 38, 231, 163, 28, 16, 38, 231, 162, 28, 16, 38, 255, 14, 28, 16, 38, 232, + 113, 28, 16, 253, 255, 214, 163, 28, 16, 253, 255, 246, 107, 28, 16, 38, + 247, 136, 28, 16, 38, 222, 232, 28, 16, 38, 244, 59, 28, 16, 38, 219, 77, + 28, 16, 38, 252, 39, 28, 16, 38, 52, 216, 20, 28, 16, 38, 215, 212, 216, + 20, 28, 16, 222, 236, 28, 16, 218, 76, 28, 16, 210, 159, 28, 16, 225, + 108, 28, 16, 231, 26, 28, 16, 244, 18, 28, 16, 249, 139, 28, 16, 248, 79, + 28, 16, 242, 151, 228, 49, 219, 96, 28, 16, 242, 151, 228, 49, 228, 76, + 219, 96, 28, 16, 216, 1, 28, 16, 215, 95, 28, 16, 235, 194, 215, 95, 28, + 16, 215, 96, 219, 96, 28, 16, 215, 96, 214, 163, 28, 16, 226, 149, 218, + 103, 28, 16, 226, 149, 218, 100, 28, 16, 226, 149, 218, 99, 28, 16, 226, + 149, 218, 98, 28, 16, 226, 149, 218, 97, 28, 16, 226, 149, 218, 96, 28, + 16, 226, 149, 218, 95, 28, 16, 226, 149, 218, 94, 28, 16, 226, 149, 218, + 93, 28, 16, 226, 149, 218, 102, 28, 16, 226, 149, 218, 101, 28, 16, 241, + 246, 28, 16, 229, 106, 28, 16, 245, 144, 64, 218, 134, 28, 16, 248, 72, + 219, 96, 28, 16, 38, 124, 251, 170, 28, 16, 38, 120, 251, 170, 28, 16, + 38, 242, 1, 28, 16, 38, 219, 68, 225, 44, 28, 16, 225, 217, 78, 28, 16, + 225, 217, 120, 78, 28, 16, 163, 225, 217, 78, 28, 16, 242, 183, 214, 163, + 28, 16, 242, 183, 246, 107, 28, 16, 2, 244, 101, 28, 16, 248, 181, 28, + 16, 248, 182, 254, 155, 28, 16, 231, 134, 28, 16, 232, 130, 28, 16, 251, + 144, 28, 16, 220, 155, 211, 253, 28, 16, 220, 155, 251, 222, 28, 16, 230, + 185, 28, 16, 230, 186, 251, 222, 28, 16, 220, 149, 211, 253, 28, 16, 220, + 149, 251, 222, 28, 16, 243, 221, 211, 253, 28, 16, 243, 221, 251, 222, + 28, 16, 232, 131, 225, 181, 223, 62, 28, 16, 232, 131, 236, 5, 223, 62, + 28, 16, 251, 145, 223, 62, 28, 16, 220, 155, 223, 62, 28, 16, 230, 186, + 223, 62, 28, 16, 220, 149, 223, 62, 28, 16, 216, 250, 225, 179, 249, 108, + 224, 175, 225, 180, 28, 16, 216, 250, 225, 179, 249, 108, 224, 175, 236, + 4, 28, 16, 216, 250, 225, 179, 249, 108, 224, 175, 225, 181, 247, 212, + 28, 16, 216, 250, 236, 3, 249, 108, 224, 175, 225, 180, 28, 16, 216, 250, + 236, 3, 249, 108, 224, 175, 236, 4, 28, 16, 216, 250, 236, 3, 249, 108, + 224, 175, 236, 5, 247, 212, 28, 16, 216, 250, 236, 3, 249, 108, 224, 175, + 236, 5, 247, 211, 28, 16, 216, 250, 236, 3, 249, 108, 224, 175, 236, 5, + 247, 210, 28, 16, 249, 134, 28, 16, 242, 127, 251, 68, 250, 15, 28, 16, + 242, 127, 245, 8, 250, 15, 28, 16, 42, 253, 159, 28, 16, 213, 151, 28, + 16, 225, 15, 28, 16, 250, 6, 28, 16, 221, 204, 28, 16, 250, 10, 28, 16, + 216, 8, 28, 16, 224, 243, 28, 16, 224, 244, 244, 61, 28, 16, 221, 205, + 244, 61, 28, 16, 216, 9, 223, 59, 28, 16, 225, 164, 218, 67, 26, 213, + 137, 188, 217, 230, 26, 213, 137, 188, 217, 219, 26, 213, 137, 188, 217, + 209, 26, 213, 137, 188, 217, 202, 26, 213, 137, 188, 217, 194, 26, 213, + 137, 188, 217, 188, 26, 213, 137, 188, 217, 187, 26, 213, 137, 188, 217, + 186, 26, 213, 137, 188, 217, 185, 26, 213, 137, 188, 217, 229, 26, 213, + 137, 188, 217, 228, 26, 213, 137, 188, 217, 227, 26, 213, 137, 188, 217, + 226, 26, 213, 137, 188, 217, 225, 26, 213, 137, 188, 217, 224, 26, 213, + 137, 188, 217, 223, 26, 213, 137, 188, 217, 222, 26, 213, 137, 188, 217, + 221, 26, 213, 137, 188, 217, 220, 26, 213, 137, 188, 217, 218, 26, 213, + 137, 188, 217, 217, 26, 213, 137, 188, 217, 216, 26, 213, 137, 188, 217, + 215, 26, 213, 137, 188, 217, 214, 26, 213, 137, 188, 217, 193, 26, 213, + 137, 188, 217, 192, 26, 213, 137, 188, 217, 191, 26, 213, 137, 188, 217, + 190, 26, 213, 137, 188, 217, 189, 26, 235, 215, 188, 217, 230, 26, 235, + 215, 188, 217, 219, 26, 235, 215, 188, 217, 202, 26, 235, 215, 188, 217, + 194, 26, 235, 215, 188, 217, 187, 26, 235, 215, 188, 217, 186, 26, 235, + 215, 188, 217, 228, 26, 235, 215, 188, 217, 227, 26, 235, 215, 188, 217, + 226, 26, 235, 215, 188, 217, 225, 26, 235, 215, 188, 217, 222, 26, 235, + 215, 188, 217, 221, 26, 235, 215, 188, 217, 220, 26, 235, 215, 188, 217, + 215, 26, 235, 215, 188, 217, 214, 26, 235, 215, 188, 217, 213, 26, 235, + 215, 188, 217, 212, 26, 235, 215, 188, 217, 211, 26, 235, 215, 188, 217, + 210, 26, 235, 215, 188, 217, 208, 26, 235, 215, 188, 217, 207, 26, 235, + 215, 188, 217, 206, 26, 235, 215, 188, 217, 205, 26, 235, 215, 188, 217, + 204, 26, 235, 215, 188, 217, 203, 26, 235, 215, 188, 217, 201, 26, 235, + 215, 188, 217, 200, 26, 235, 215, 188, 217, 199, 26, 235, 215, 188, 217, + 198, 26, 235, 215, 188, 217, 197, 26, 235, 215, 188, 217, 196, 26, 235, + 215, 188, 217, 195, 26, 235, 215, 188, 217, 193, 26, 235, 215, 188, 217, + 192, 26, 235, 215, 188, 217, 191, 26, 235, 215, 188, 217, 190, 26, 235, + 215, 188, 217, 189, 38, 26, 28, 215, 209, 38, 26, 28, 216, 224, 38, 26, + 28, 225, 189, 26, 28, 233, 32, 230, 143, 31, 245, 224, 247, 225, 31, 241, + 223, 245, 224, 247, 225, 31, 240, 215, 245, 224, 247, 225, 31, 245, 223, + 241, 224, 247, 225, 31, 245, 223, 240, 214, 247, 225, 31, 245, 224, 180, + 31, 250, 175, 180, 31, 243, 230, 250, 36, 180, 31, 230, 178, 180, 31, + 252, 131, 180, 31, 234, 180, 219, 80, 180, 31, 249, 180, 180, 31, 253, + 234, 180, 31, 226, 164, 180, 31, 251, 154, 226, 131, 180, 31, 248, 74, + 177, 247, 180, 180, 31, 247, 177, 180, 31, 210, 222, 180, 31, 235, 248, + 180, 31, 225, 198, 180, 31, 223, 128, 180, 31, 249, 190, 180, 31, 241, + 61, 252, 185, 180, 31, 212, 59, 180, 31, 244, 40, 180, 31, 254, 247, 180, + 31, 223, 90, 180, 31, 223, 66, 180, 31, 245, 222, 180, 31, 235, 54, 180, + 31, 249, 185, 180, 31, 245, 143, 180, 31, 246, 53, 180, 31, 250, 146, + 180, 31, 248, 83, 180, 31, 23, 223, 65, 180, 31, 226, 82, 180, 31, 233, + 35, 180, 31, 249, 255, 180, 31, 234, 78, 180, 31, 243, 87, 180, 31, 218, + 113, 180, 31, 224, 131, 180, 31, 243, 229, 180, 31, 223, 67, 180, 31, + 233, 72, 177, 230, 158, 180, 31, 223, 63, 180, 31, 242, 169, 216, 43, + 231, 77, 180, 31, 245, 145, 180, 31, 218, 125, 180, 31, 242, 129, 180, + 31, 245, 137, 180, 31, 225, 236, 180, 31, 222, 226, 180, 31, 244, 60, + 180, 31, 214, 8, 177, 212, 44, 180, 31, 249, 194, 180, 31, 231, 90, 180, + 31, 245, 62, 180, 31, 214, 172, 180, 31, 247, 213, 180, 31, 250, 1, 230, + 111, 180, 31, 242, 107, 180, 31, 243, 88, 236, 0, 180, 31, 231, 142, 180, + 31, 255, 11, 180, 31, 245, 158, 180, 31, 246, 110, 180, 31, 212, 42, 180, + 31, 219, 151, 180, 31, 235, 223, 180, 31, 248, 43, 180, 31, 248, 161, + 180, 31, 247, 209, 180, 31, 245, 30, 180, 31, 220, 116, 180, 31, 218, + 129, 180, 31, 242, 3, 180, 31, 249, 213, 180, 31, 249, 252, 180, 31, 244, + 178, 180, 31, 254, 213, 180, 31, 249, 212, 180, 31, 226, 198, 216, 197, + 213, 242, 180, 31, 247, 233, 180, 31, 233, 125, 180, 31, 244, 14, 249, + 150, 222, 203, 214, 174, 21, 110, 249, 150, 222, 203, 214, 174, 21, 105, + 249, 150, 222, 203, 214, 174, 21, 158, 249, 150, 222, 203, 214, 174, 21, + 161, 249, 150, 222, 203, 214, 174, 21, 189, 249, 150, 222, 203, 214, 174, + 21, 194, 249, 150, 222, 203, 214, 174, 21, 198, 249, 150, 222, 203, 214, + 174, 21, 195, 249, 150, 222, 203, 214, 174, 21, 200, 249, 150, 222, 203, + 216, 244, 21, 110, 249, 150, 222, 203, 216, 244, 21, 105, 249, 150, 222, + 203, 216, 244, 21, 158, 249, 150, 222, 203, 216, 244, 21, 161, 249, 150, + 222, 203, 216, 244, 21, 189, 249, 150, 222, 203, 216, 244, 21, 194, 249, + 150, 222, 203, 216, 244, 21, 198, 249, 150, 222, 203, 216, 244, 21, 195, + 249, 150, 222, 203, 216, 244, 21, 200, 11, 23, 6, 61, 11, 23, 6, 253, + 159, 11, 23, 6, 251, 67, 11, 23, 6, 249, 61, 11, 23, 6, 75, 11, 23, 6, + 245, 7, 11, 23, 6, 243, 203, 11, 23, 6, 242, 61, 11, 23, 6, 73, 11, 23, + 6, 235, 145, 11, 23, 6, 235, 24, 11, 23, 6, 156, 11, 23, 6, 193, 11, 23, + 6, 230, 26, 11, 23, 6, 76, 11, 23, 6, 226, 106, 11, 23, 6, 224, 97, 11, + 23, 6, 153, 11, 23, 6, 222, 92, 11, 23, 6, 217, 153, 11, 23, 6, 70, 11, + 23, 6, 214, 105, 11, 23, 6, 212, 98, 11, 23, 6, 211, 178, 11, 23, 6, 211, + 117, 11, 23, 6, 210, 159, 11, 23, 4, 61, 11, 23, 4, 253, 159, 11, 23, 4, + 251, 67, 11, 23, 4, 249, 61, 11, 23, 4, 75, 11, 23, 4, 245, 7, 11, 23, 4, + 243, 203, 11, 23, 4, 242, 61, 11, 23, 4, 73, 11, 23, 4, 235, 145, 11, 23, + 4, 235, 24, 11, 23, 4, 156, 11, 23, 4, 193, 11, 23, 4, 230, 26, 11, 23, + 4, 76, 11, 23, 4, 226, 106, 11, 23, 4, 224, 97, 11, 23, 4, 153, 11, 23, + 4, 222, 92, 11, 23, 4, 217, 153, 11, 23, 4, 70, 11, 23, 4, 214, 105, 11, + 23, 4, 212, 98, 11, 23, 4, 211, 178, 11, 23, 4, 211, 117, 11, 23, 4, 210, + 159, 11, 32, 6, 61, 11, 32, 6, 253, 159, 11, 32, 6, 251, 67, 11, 32, 6, + 249, 61, 11, 32, 6, 75, 11, 32, 6, 245, 7, 11, 32, 6, 243, 203, 11, 32, + 6, 242, 61, 11, 32, 6, 73, 11, 32, 6, 235, 145, 11, 32, 6, 235, 24, 11, + 32, 6, 156, 11, 32, 6, 193, 11, 32, 6, 230, 26, 11, 32, 6, 76, 11, 32, 6, + 226, 106, 11, 32, 6, 224, 97, 11, 32, 6, 153, 11, 32, 6, 222, 92, 11, 32, + 6, 217, 153, 11, 32, 6, 70, 11, 32, 6, 214, 105, 11, 32, 6, 212, 98, 11, + 32, 6, 211, 178, 11, 32, 6, 211, 117, 11, 32, 6, 210, 159, 11, 32, 4, 61, + 11, 32, 4, 253, 159, 11, 32, 4, 251, 67, 11, 32, 4, 249, 61, 11, 32, 4, + 75, 11, 32, 4, 245, 7, 11, 32, 4, 243, 203, 11, 32, 4, 73, 11, 32, 4, + 235, 145, 11, 32, 4, 235, 24, 11, 32, 4, 156, 11, 32, 4, 193, 11, 32, 4, + 230, 26, 11, 32, 4, 76, 11, 32, 4, 226, 106, 11, 32, 4, 224, 97, 11, 32, + 4, 153, 11, 32, 4, 222, 92, 11, 32, 4, 217, 153, 11, 32, 4, 70, 11, 32, + 4, 214, 105, 11, 32, 4, 212, 98, 11, 32, 4, 211, 178, 11, 32, 4, 211, + 117, 11, 32, 4, 210, 159, 11, 23, 32, 6, 61, 11, 23, 32, 6, 253, 159, 11, + 23, 32, 6, 251, 67, 11, 23, 32, 6, 249, 61, 11, 23, 32, 6, 75, 11, 23, + 32, 6, 245, 7, 11, 23, 32, 6, 243, 203, 11, 23, 32, 6, 242, 61, 11, 23, + 32, 6, 73, 11, 23, 32, 6, 235, 145, 11, 23, 32, 6, 235, 24, 11, 23, 32, + 6, 156, 11, 23, 32, 6, 193, 11, 23, 32, 6, 230, 26, 11, 23, 32, 6, 76, + 11, 23, 32, 6, 226, 106, 11, 23, 32, 6, 224, 97, 11, 23, 32, 6, 153, 11, + 23, 32, 6, 222, 92, 11, 23, 32, 6, 217, 153, 11, 23, 32, 6, 70, 11, 23, + 32, 6, 214, 105, 11, 23, 32, 6, 212, 98, 11, 23, 32, 6, 211, 178, 11, 23, + 32, 6, 211, 117, 11, 23, 32, 6, 210, 159, 11, 23, 32, 4, 61, 11, 23, 32, + 4, 253, 159, 11, 23, 32, 4, 251, 67, 11, 23, 32, 4, 249, 61, 11, 23, 32, + 4, 75, 11, 23, 32, 4, 245, 7, 11, 23, 32, 4, 243, 203, 11, 23, 32, 4, + 242, 61, 11, 23, 32, 4, 73, 11, 23, 32, 4, 235, 145, 11, 23, 32, 4, 235, + 24, 11, 23, 32, 4, 156, 11, 23, 32, 4, 193, 11, 23, 32, 4, 230, 26, 11, + 23, 32, 4, 76, 11, 23, 32, 4, 226, 106, 11, 23, 32, 4, 224, 97, 11, 23, + 32, 4, 153, 11, 23, 32, 4, 222, 92, 11, 23, 32, 4, 217, 153, 11, 23, 32, + 4, 70, 11, 23, 32, 4, 214, 105, 11, 23, 32, 4, 212, 98, 11, 23, 32, 4, + 211, 178, 11, 23, 32, 4, 211, 117, 11, 23, 32, 4, 210, 159, 11, 119, 6, + 61, 11, 119, 6, 251, 67, 11, 119, 6, 249, 61, 11, 119, 6, 243, 203, 11, + 119, 6, 235, 145, 11, 119, 6, 235, 24, 11, 119, 6, 230, 26, 11, 119, 6, + 76, 11, 119, 6, 226, 106, 11, 119, 6, 224, 97, 11, 119, 6, 222, 92, 11, + 119, 6, 217, 153, 11, 119, 6, 70, 11, 119, 6, 214, 105, 11, 119, 6, 212, + 98, 11, 119, 6, 211, 178, 11, 119, 6, 211, 117, 11, 119, 6, 210, 159, 11, + 119, 4, 61, 11, 119, 4, 253, 159, 11, 119, 4, 251, 67, 11, 119, 4, 249, + 61, 11, 119, 4, 245, 7, 11, 119, 4, 242, 61, 11, 119, 4, 73, 11, 119, 4, + 235, 145, 11, 119, 4, 235, 24, 11, 119, 4, 156, 11, 119, 4, 193, 11, 119, + 4, 230, 26, 11, 119, 4, 226, 106, 11, 119, 4, 224, 97, 11, 119, 4, 153, + 11, 119, 4, 222, 92, 11, 119, 4, 217, 153, 11, 119, 4, 70, 11, 119, 4, + 214, 105, 11, 119, 4, 212, 98, 11, 119, 4, 211, 178, 11, 119, 4, 211, + 117, 11, 119, 4, 210, 159, 11, 23, 119, 6, 61, 11, 23, 119, 6, 253, 159, + 11, 23, 119, 6, 251, 67, 11, 23, 119, 6, 249, 61, 11, 23, 119, 6, 75, 11, + 23, 119, 6, 245, 7, 11, 23, 119, 6, 243, 203, 11, 23, 119, 6, 242, 61, + 11, 23, 119, 6, 73, 11, 23, 119, 6, 235, 145, 11, 23, 119, 6, 235, 24, + 11, 23, 119, 6, 156, 11, 23, 119, 6, 193, 11, 23, 119, 6, 230, 26, 11, + 23, 119, 6, 76, 11, 23, 119, 6, 226, 106, 11, 23, 119, 6, 224, 97, 11, + 23, 119, 6, 153, 11, 23, 119, 6, 222, 92, 11, 23, 119, 6, 217, 153, 11, + 23, 119, 6, 70, 11, 23, 119, 6, 214, 105, 11, 23, 119, 6, 212, 98, 11, + 23, 119, 6, 211, 178, 11, 23, 119, 6, 211, 117, 11, 23, 119, 6, 210, 159, + 11, 23, 119, 4, 61, 11, 23, 119, 4, 253, 159, 11, 23, 119, 4, 251, 67, + 11, 23, 119, 4, 249, 61, 11, 23, 119, 4, 75, 11, 23, 119, 4, 245, 7, 11, + 23, 119, 4, 243, 203, 11, 23, 119, 4, 242, 61, 11, 23, 119, 4, 73, 11, + 23, 119, 4, 235, 145, 11, 23, 119, 4, 235, 24, 11, 23, 119, 4, 156, 11, + 23, 119, 4, 193, 11, 23, 119, 4, 230, 26, 11, 23, 119, 4, 76, 11, 23, + 119, 4, 226, 106, 11, 23, 119, 4, 224, 97, 11, 23, 119, 4, 153, 11, 23, + 119, 4, 222, 92, 11, 23, 119, 4, 217, 153, 11, 23, 119, 4, 70, 11, 23, + 119, 4, 214, 105, 11, 23, 119, 4, 212, 98, 11, 23, 119, 4, 211, 178, 11, + 23, 119, 4, 211, 117, 11, 23, 119, 4, 210, 159, 11, 133, 6, 61, 11, 133, + 6, 253, 159, 11, 133, 6, 249, 61, 11, 133, 6, 75, 11, 133, 6, 245, 7, 11, + 133, 6, 243, 203, 11, 133, 6, 235, 145, 11, 133, 6, 235, 24, 11, 133, 6, + 156, 11, 133, 6, 193, 11, 133, 6, 230, 26, 11, 133, 6, 76, 11, 133, 6, + 226, 106, 11, 133, 6, 224, 97, 11, 133, 6, 222, 92, 11, 133, 6, 217, 153, + 11, 133, 6, 70, 11, 133, 6, 214, 105, 11, 133, 6, 212, 98, 11, 133, 6, + 211, 178, 11, 133, 6, 211, 117, 11, 133, 4, 61, 11, 133, 4, 253, 159, 11, + 133, 4, 251, 67, 11, 133, 4, 249, 61, 11, 133, 4, 75, 11, 133, 4, 245, 7, + 11, 133, 4, 243, 203, 11, 133, 4, 242, 61, 11, 133, 4, 73, 11, 133, 4, + 235, 145, 11, 133, 4, 235, 24, 11, 133, 4, 156, 11, 133, 4, 193, 11, 133, + 4, 230, 26, 11, 133, 4, 76, 11, 133, 4, 226, 106, 11, 133, 4, 224, 97, + 11, 133, 4, 153, 11, 133, 4, 222, 92, 11, 133, 4, 217, 153, 11, 133, 4, + 70, 11, 133, 4, 214, 105, 11, 133, 4, 212, 98, 11, 133, 4, 211, 178, 11, + 133, 4, 211, 117, 11, 133, 4, 210, 159, 11, 139, 6, 61, 11, 139, 6, 253, + 159, 11, 139, 6, 249, 61, 11, 139, 6, 75, 11, 139, 6, 245, 7, 11, 139, 6, + 243, 203, 11, 139, 6, 73, 11, 139, 6, 235, 145, 11, 139, 6, 235, 24, 11, + 139, 6, 156, 11, 139, 6, 193, 11, 139, 6, 76, 11, 139, 6, 222, 92, 11, + 139, 6, 217, 153, 11, 139, 6, 70, 11, 139, 6, 214, 105, 11, 139, 6, 212, + 98, 11, 139, 6, 211, 178, 11, 139, 6, 211, 117, 11, 139, 4, 61, 11, 139, + 4, 253, 159, 11, 139, 4, 251, 67, 11, 139, 4, 249, 61, 11, 139, 4, 75, + 11, 139, 4, 245, 7, 11, 139, 4, 243, 203, 11, 139, 4, 242, 61, 11, 139, + 4, 73, 11, 139, 4, 235, 145, 11, 139, 4, 235, 24, 11, 139, 4, 156, 11, + 139, 4, 193, 11, 139, 4, 230, 26, 11, 139, 4, 76, 11, 139, 4, 226, 106, + 11, 139, 4, 224, 97, 11, 139, 4, 153, 11, 139, 4, 222, 92, 11, 139, 4, + 217, 153, 11, 139, 4, 70, 11, 139, 4, 214, 105, 11, 139, 4, 212, 98, 11, + 139, 4, 211, 178, 11, 139, 4, 211, 117, 11, 139, 4, 210, 159, 11, 23, + 133, 6, 61, 11, 23, 133, 6, 253, 159, 11, 23, 133, 6, 251, 67, 11, 23, + 133, 6, 249, 61, 11, 23, 133, 6, 75, 11, 23, 133, 6, 245, 7, 11, 23, 133, + 6, 243, 203, 11, 23, 133, 6, 242, 61, 11, 23, 133, 6, 73, 11, 23, 133, 6, + 235, 145, 11, 23, 133, 6, 235, 24, 11, 23, 133, 6, 156, 11, 23, 133, 6, + 193, 11, 23, 133, 6, 230, 26, 11, 23, 133, 6, 76, 11, 23, 133, 6, 226, + 106, 11, 23, 133, 6, 224, 97, 11, 23, 133, 6, 153, 11, 23, 133, 6, 222, + 92, 11, 23, 133, 6, 217, 153, 11, 23, 133, 6, 70, 11, 23, 133, 6, 214, + 105, 11, 23, 133, 6, 212, 98, 11, 23, 133, 6, 211, 178, 11, 23, 133, 6, + 211, 117, 11, 23, 133, 6, 210, 159, 11, 23, 133, 4, 61, 11, 23, 133, 4, + 253, 159, 11, 23, 133, 4, 251, 67, 11, 23, 133, 4, 249, 61, 11, 23, 133, + 4, 75, 11, 23, 133, 4, 245, 7, 11, 23, 133, 4, 243, 203, 11, 23, 133, 4, + 242, 61, 11, 23, 133, 4, 73, 11, 23, 133, 4, 235, 145, 11, 23, 133, 4, + 235, 24, 11, 23, 133, 4, 156, 11, 23, 133, 4, 193, 11, 23, 133, 4, 230, + 26, 11, 23, 133, 4, 76, 11, 23, 133, 4, 226, 106, 11, 23, 133, 4, 224, + 97, 11, 23, 133, 4, 153, 11, 23, 133, 4, 222, 92, 11, 23, 133, 4, 217, + 153, 11, 23, 133, 4, 70, 11, 23, 133, 4, 214, 105, 11, 23, 133, 4, 212, + 98, 11, 23, 133, 4, 211, 178, 11, 23, 133, 4, 211, 117, 11, 23, 133, 4, + 210, 159, 11, 35, 6, 61, 11, 35, 6, 253, 159, 11, 35, 6, 251, 67, 11, 35, + 6, 249, 61, 11, 35, 6, 75, 11, 35, 6, 245, 7, 11, 35, 6, 243, 203, 11, + 35, 6, 242, 61, 11, 35, 6, 73, 11, 35, 6, 235, 145, 11, 35, 6, 235, 24, + 11, 35, 6, 156, 11, 35, 6, 193, 11, 35, 6, 230, 26, 11, 35, 6, 76, 11, + 35, 6, 226, 106, 11, 35, 6, 224, 97, 11, 35, 6, 153, 11, 35, 6, 222, 92, + 11, 35, 6, 217, 153, 11, 35, 6, 70, 11, 35, 6, 214, 105, 11, 35, 6, 212, + 98, 11, 35, 6, 211, 178, 11, 35, 6, 211, 117, 11, 35, 6, 210, 159, 11, + 35, 4, 61, 11, 35, 4, 253, 159, 11, 35, 4, 251, 67, 11, 35, 4, 249, 61, + 11, 35, 4, 75, 11, 35, 4, 245, 7, 11, 35, 4, 243, 203, 11, 35, 4, 242, + 61, 11, 35, 4, 73, 11, 35, 4, 235, 145, 11, 35, 4, 235, 24, 11, 35, 4, + 156, 11, 35, 4, 193, 11, 35, 4, 230, 26, 11, 35, 4, 76, 11, 35, 4, 226, + 106, 11, 35, 4, 224, 97, 11, 35, 4, 153, 11, 35, 4, 222, 92, 11, 35, 4, + 217, 153, 11, 35, 4, 70, 11, 35, 4, 214, 105, 11, 35, 4, 212, 98, 11, 35, + 4, 211, 178, 11, 35, 4, 211, 117, 11, 35, 4, 210, 159, 11, 35, 23, 6, 61, + 11, 35, 23, 6, 253, 159, 11, 35, 23, 6, 251, 67, 11, 35, 23, 6, 249, 61, + 11, 35, 23, 6, 75, 11, 35, 23, 6, 245, 7, 11, 35, 23, 6, 243, 203, 11, + 35, 23, 6, 242, 61, 11, 35, 23, 6, 73, 11, 35, 23, 6, 235, 145, 11, 35, + 23, 6, 235, 24, 11, 35, 23, 6, 156, 11, 35, 23, 6, 193, 11, 35, 23, 6, + 230, 26, 11, 35, 23, 6, 76, 11, 35, 23, 6, 226, 106, 11, 35, 23, 6, 224, + 97, 11, 35, 23, 6, 153, 11, 35, 23, 6, 222, 92, 11, 35, 23, 6, 217, 153, + 11, 35, 23, 6, 70, 11, 35, 23, 6, 214, 105, 11, 35, 23, 6, 212, 98, 11, + 35, 23, 6, 211, 178, 11, 35, 23, 6, 211, 117, 11, 35, 23, 6, 210, 159, + 11, 35, 23, 4, 61, 11, 35, 23, 4, 253, 159, 11, 35, 23, 4, 251, 67, 11, + 35, 23, 4, 249, 61, 11, 35, 23, 4, 75, 11, 35, 23, 4, 245, 7, 11, 35, 23, + 4, 243, 203, 11, 35, 23, 4, 242, 61, 11, 35, 23, 4, 73, 11, 35, 23, 4, + 235, 145, 11, 35, 23, 4, 235, 24, 11, 35, 23, 4, 156, 11, 35, 23, 4, 193, + 11, 35, 23, 4, 230, 26, 11, 35, 23, 4, 76, 11, 35, 23, 4, 226, 106, 11, + 35, 23, 4, 224, 97, 11, 35, 23, 4, 153, 11, 35, 23, 4, 222, 92, 11, 35, + 23, 4, 217, 153, 11, 35, 23, 4, 70, 11, 35, 23, 4, 214, 105, 11, 35, 23, + 4, 212, 98, 11, 35, 23, 4, 211, 178, 11, 35, 23, 4, 211, 117, 11, 35, 23, + 4, 210, 159, 11, 35, 32, 6, 61, 11, 35, 32, 6, 253, 159, 11, 35, 32, 6, + 251, 67, 11, 35, 32, 6, 249, 61, 11, 35, 32, 6, 75, 11, 35, 32, 6, 245, + 7, 11, 35, 32, 6, 243, 203, 11, 35, 32, 6, 242, 61, 11, 35, 32, 6, 73, + 11, 35, 32, 6, 235, 145, 11, 35, 32, 6, 235, 24, 11, 35, 32, 6, 156, 11, + 35, 32, 6, 193, 11, 35, 32, 6, 230, 26, 11, 35, 32, 6, 76, 11, 35, 32, 6, + 226, 106, 11, 35, 32, 6, 224, 97, 11, 35, 32, 6, 153, 11, 35, 32, 6, 222, + 92, 11, 35, 32, 6, 217, 153, 11, 35, 32, 6, 70, 11, 35, 32, 6, 214, 105, + 11, 35, 32, 6, 212, 98, 11, 35, 32, 6, 211, 178, 11, 35, 32, 6, 211, 117, + 11, 35, 32, 6, 210, 159, 11, 35, 32, 4, 61, 11, 35, 32, 4, 253, 159, 11, + 35, 32, 4, 251, 67, 11, 35, 32, 4, 249, 61, 11, 35, 32, 4, 75, 11, 35, + 32, 4, 245, 7, 11, 35, 32, 4, 243, 203, 11, 35, 32, 4, 242, 61, 11, 35, + 32, 4, 73, 11, 35, 32, 4, 235, 145, 11, 35, 32, 4, 235, 24, 11, 35, 32, + 4, 156, 11, 35, 32, 4, 193, 11, 35, 32, 4, 230, 26, 11, 35, 32, 4, 76, + 11, 35, 32, 4, 226, 106, 11, 35, 32, 4, 224, 97, 11, 35, 32, 4, 153, 11, + 35, 32, 4, 222, 92, 11, 35, 32, 4, 217, 153, 11, 35, 32, 4, 70, 11, 35, + 32, 4, 214, 105, 11, 35, 32, 4, 212, 98, 11, 35, 32, 4, 211, 178, 11, 35, + 32, 4, 211, 117, 11, 35, 32, 4, 210, 159, 11, 35, 23, 32, 6, 61, 11, 35, + 23, 32, 6, 253, 159, 11, 35, 23, 32, 6, 251, 67, 11, 35, 23, 32, 6, 249, + 61, 11, 35, 23, 32, 6, 75, 11, 35, 23, 32, 6, 245, 7, 11, 35, 23, 32, 6, + 243, 203, 11, 35, 23, 32, 6, 242, 61, 11, 35, 23, 32, 6, 73, 11, 35, 23, + 32, 6, 235, 145, 11, 35, 23, 32, 6, 235, 24, 11, 35, 23, 32, 6, 156, 11, + 35, 23, 32, 6, 193, 11, 35, 23, 32, 6, 230, 26, 11, 35, 23, 32, 6, 76, + 11, 35, 23, 32, 6, 226, 106, 11, 35, 23, 32, 6, 224, 97, 11, 35, 23, 32, + 6, 153, 11, 35, 23, 32, 6, 222, 92, 11, 35, 23, 32, 6, 217, 153, 11, 35, + 23, 32, 6, 70, 11, 35, 23, 32, 6, 214, 105, 11, 35, 23, 32, 6, 212, 98, + 11, 35, 23, 32, 6, 211, 178, 11, 35, 23, 32, 6, 211, 117, 11, 35, 23, 32, + 6, 210, 159, 11, 35, 23, 32, 4, 61, 11, 35, 23, 32, 4, 253, 159, 11, 35, + 23, 32, 4, 251, 67, 11, 35, 23, 32, 4, 249, 61, 11, 35, 23, 32, 4, 75, + 11, 35, 23, 32, 4, 245, 7, 11, 35, 23, 32, 4, 243, 203, 11, 35, 23, 32, + 4, 242, 61, 11, 35, 23, 32, 4, 73, 11, 35, 23, 32, 4, 235, 145, 11, 35, + 23, 32, 4, 235, 24, 11, 35, 23, 32, 4, 156, 11, 35, 23, 32, 4, 193, 11, + 35, 23, 32, 4, 230, 26, 11, 35, 23, 32, 4, 76, 11, 35, 23, 32, 4, 226, + 106, 11, 35, 23, 32, 4, 224, 97, 11, 35, 23, 32, 4, 153, 11, 35, 23, 32, + 4, 222, 92, 11, 35, 23, 32, 4, 217, 153, 11, 35, 23, 32, 4, 70, 11, 35, + 23, 32, 4, 214, 105, 11, 35, 23, 32, 4, 212, 98, 11, 35, 23, 32, 4, 211, + 178, 11, 35, 23, 32, 4, 211, 117, 11, 35, 23, 32, 4, 210, 159, 11, 230, + 139, 6, 61, 11, 230, 139, 6, 253, 159, 11, 230, 139, 6, 251, 67, 11, 230, + 139, 6, 249, 61, 11, 230, 139, 6, 75, 11, 230, 139, 6, 245, 7, 11, 230, + 139, 6, 243, 203, 11, 230, 139, 6, 242, 61, 11, 230, 139, 6, 73, 11, 230, + 139, 6, 235, 145, 11, 230, 139, 6, 235, 24, 11, 230, 139, 6, 156, 11, + 230, 139, 6, 193, 11, 230, 139, 6, 230, 26, 11, 230, 139, 6, 76, 11, 230, + 139, 6, 226, 106, 11, 230, 139, 6, 224, 97, 11, 230, 139, 6, 153, 11, + 230, 139, 6, 222, 92, 11, 230, 139, 6, 217, 153, 11, 230, 139, 6, 70, 11, + 230, 139, 6, 214, 105, 11, 230, 139, 6, 212, 98, 11, 230, 139, 6, 211, + 178, 11, 230, 139, 6, 211, 117, 11, 230, 139, 6, 210, 159, 11, 230, 139, + 4, 61, 11, 230, 139, 4, 253, 159, 11, 230, 139, 4, 251, 67, 11, 230, 139, + 4, 249, 61, 11, 230, 139, 4, 75, 11, 230, 139, 4, 245, 7, 11, 230, 139, + 4, 243, 203, 11, 230, 139, 4, 242, 61, 11, 230, 139, 4, 73, 11, 230, 139, + 4, 235, 145, 11, 230, 139, 4, 235, 24, 11, 230, 139, 4, 156, 11, 230, + 139, 4, 193, 11, 230, 139, 4, 230, 26, 11, 230, 139, 4, 76, 11, 230, 139, + 4, 226, 106, 11, 230, 139, 4, 224, 97, 11, 230, 139, 4, 153, 11, 230, + 139, 4, 222, 92, 11, 230, 139, 4, 217, 153, 11, 230, 139, 4, 70, 11, 230, + 139, 4, 214, 105, 11, 230, 139, 4, 212, 98, 11, 230, 139, 4, 211, 178, + 11, 230, 139, 4, 211, 117, 11, 230, 139, 4, 210, 159, 11, 32, 4, 247, + 120, 73, 11, 32, 4, 247, 120, 235, 145, 11, 23, 6, 254, 144, 11, 23, 6, + 252, 27, 11, 23, 6, 243, 108, 11, 23, 6, 248, 55, 11, 23, 6, 245, 101, + 11, 23, 6, 210, 85, 11, 23, 6, 245, 64, 11, 23, 6, 216, 180, 11, 23, 6, + 235, 186, 11, 23, 6, 234, 223, 11, 23, 6, 233, 99, 11, 23, 6, 230, 103, + 11, 23, 6, 227, 238, 11, 23, 6, 211, 157, 11, 23, 6, 226, 200, 11, 23, 6, + 225, 109, 11, 23, 6, 223, 38, 11, 23, 6, 216, 181, 87, 11, 23, 6, 219, + 178, 11, 23, 6, 217, 42, 11, 23, 6, 214, 157, 11, 23, 6, 225, 134, 11, + 23, 6, 250, 111, 11, 23, 6, 224, 162, 11, 23, 6, 226, 202, 11, 23, 229, + 222, 11, 23, 4, 254, 144, 11, 23, 4, 252, 27, 11, 23, 4, 243, 108, 11, + 23, 4, 248, 55, 11, 23, 4, 245, 101, 11, 23, 4, 210, 85, 11, 23, 4, 245, + 64, 11, 23, 4, 216, 180, 11, 23, 4, 235, 186, 11, 23, 4, 234, 223, 11, + 23, 4, 233, 99, 11, 23, 4, 230, 103, 11, 23, 4, 227, 238, 11, 23, 4, 211, + 157, 11, 23, 4, 226, 200, 11, 23, 4, 225, 109, 11, 23, 4, 223, 38, 11, + 23, 4, 40, 219, 178, 11, 23, 4, 219, 178, 11, 23, 4, 217, 42, 11, 23, 4, + 214, 157, 11, 23, 4, 225, 134, 11, 23, 4, 250, 111, 11, 23, 4, 224, 162, + 11, 23, 4, 226, 202, 11, 23, 225, 254, 247, 234, 11, 23, 245, 102, 87, + 11, 23, 216, 181, 87, 11, 23, 234, 224, 87, 11, 23, 225, 135, 87, 11, 23, + 223, 39, 87, 11, 23, 225, 110, 87, 11, 32, 6, 254, 144, 11, 32, 6, 252, + 27, 11, 32, 6, 243, 108, 11, 32, 6, 248, 55, 11, 32, 6, 245, 101, 11, 32, + 6, 210, 85, 11, 32, 6, 245, 64, 11, 32, 6, 216, 180, 11, 32, 6, 235, 186, + 11, 32, 6, 234, 223, 11, 32, 6, 233, 99, 11, 32, 6, 230, 103, 11, 32, 6, + 227, 238, 11, 32, 6, 211, 157, 11, 32, 6, 226, 200, 11, 32, 6, 225, 109, + 11, 32, 6, 223, 38, 11, 32, 6, 216, 181, 87, 11, 32, 6, 219, 178, 11, 32, + 6, 217, 42, 11, 32, 6, 214, 157, 11, 32, 6, 225, 134, 11, 32, 6, 250, + 111, 11, 32, 6, 224, 162, 11, 32, 6, 226, 202, 11, 32, 229, 222, 11, 32, + 4, 254, 144, 11, 32, 4, 252, 27, 11, 32, 4, 243, 108, 11, 32, 4, 248, 55, + 11, 32, 4, 245, 101, 11, 32, 4, 210, 85, 11, 32, 4, 245, 64, 11, 32, 4, + 216, 180, 11, 32, 4, 235, 186, 11, 32, 4, 234, 223, 11, 32, 4, 233, 99, + 11, 32, 4, 230, 103, 11, 32, 4, 227, 238, 11, 32, 4, 211, 157, 11, 32, 4, + 226, 200, 11, 32, 4, 225, 109, 11, 32, 4, 223, 38, 11, 32, 4, 40, 219, + 178, 11, 32, 4, 219, 178, 11, 32, 4, 217, 42, 11, 32, 4, 214, 157, 11, + 32, 4, 225, 134, 11, 32, 4, 250, 111, 11, 32, 4, 224, 162, 11, 32, 4, + 226, 202, 11, 32, 225, 254, 247, 234, 11, 32, 245, 102, 87, 11, 32, 216, + 181, 87, 11, 32, 234, 224, 87, 11, 32, 225, 135, 87, 11, 32, 223, 39, 87, + 11, 32, 225, 110, 87, 11, 23, 32, 6, 254, 144, 11, 23, 32, 6, 252, 27, + 11, 23, 32, 6, 243, 108, 11, 23, 32, 6, 248, 55, 11, 23, 32, 6, 245, 101, + 11, 23, 32, 6, 210, 85, 11, 23, 32, 6, 245, 64, 11, 23, 32, 6, 216, 180, + 11, 23, 32, 6, 235, 186, 11, 23, 32, 6, 234, 223, 11, 23, 32, 6, 233, 99, + 11, 23, 32, 6, 230, 103, 11, 23, 32, 6, 227, 238, 11, 23, 32, 6, 211, + 157, 11, 23, 32, 6, 226, 200, 11, 23, 32, 6, 225, 109, 11, 23, 32, 6, + 223, 38, 11, 23, 32, 6, 216, 181, 87, 11, 23, 32, 6, 219, 178, 11, 23, + 32, 6, 217, 42, 11, 23, 32, 6, 214, 157, 11, 23, 32, 6, 225, 134, 11, 23, + 32, 6, 250, 111, 11, 23, 32, 6, 224, 162, 11, 23, 32, 6, 226, 202, 11, + 23, 32, 229, 222, 11, 23, 32, 4, 254, 144, 11, 23, 32, 4, 252, 27, 11, + 23, 32, 4, 243, 108, 11, 23, 32, 4, 248, 55, 11, 23, 32, 4, 245, 101, 11, + 23, 32, 4, 210, 85, 11, 23, 32, 4, 245, 64, 11, 23, 32, 4, 216, 180, 11, + 23, 32, 4, 235, 186, 11, 23, 32, 4, 234, 223, 11, 23, 32, 4, 233, 99, 11, + 23, 32, 4, 230, 103, 11, 23, 32, 4, 227, 238, 11, 23, 32, 4, 211, 157, + 11, 23, 32, 4, 226, 200, 11, 23, 32, 4, 225, 109, 11, 23, 32, 4, 223, 38, + 11, 23, 32, 4, 40, 219, 178, 11, 23, 32, 4, 219, 178, 11, 23, 32, 4, 217, + 42, 11, 23, 32, 4, 214, 157, 11, 23, 32, 4, 225, 134, 11, 23, 32, 4, 250, + 111, 11, 23, 32, 4, 224, 162, 11, 23, 32, 4, 226, 202, 11, 23, 32, 225, + 254, 247, 234, 11, 23, 32, 245, 102, 87, 11, 23, 32, 216, 181, 87, 11, + 23, 32, 234, 224, 87, 11, 23, 32, 225, 135, 87, 11, 23, 32, 223, 39, 87, + 11, 23, 32, 225, 110, 87, 11, 35, 23, 6, 254, 144, 11, 35, 23, 6, 252, + 27, 11, 35, 23, 6, 243, 108, 11, 35, 23, 6, 248, 55, 11, 35, 23, 6, 245, + 101, 11, 35, 23, 6, 210, 85, 11, 35, 23, 6, 245, 64, 11, 35, 23, 6, 216, + 180, 11, 35, 23, 6, 235, 186, 11, 35, 23, 6, 234, 223, 11, 35, 23, 6, + 233, 99, 11, 35, 23, 6, 230, 103, 11, 35, 23, 6, 227, 238, 11, 35, 23, 6, + 211, 157, 11, 35, 23, 6, 226, 200, 11, 35, 23, 6, 225, 109, 11, 35, 23, + 6, 223, 38, 11, 35, 23, 6, 216, 181, 87, 11, 35, 23, 6, 219, 178, 11, 35, + 23, 6, 217, 42, 11, 35, 23, 6, 214, 157, 11, 35, 23, 6, 225, 134, 11, 35, + 23, 6, 250, 111, 11, 35, 23, 6, 224, 162, 11, 35, 23, 6, 226, 202, 11, + 35, 23, 229, 222, 11, 35, 23, 4, 254, 144, 11, 35, 23, 4, 252, 27, 11, + 35, 23, 4, 243, 108, 11, 35, 23, 4, 248, 55, 11, 35, 23, 4, 245, 101, 11, + 35, 23, 4, 210, 85, 11, 35, 23, 4, 245, 64, 11, 35, 23, 4, 216, 180, 11, + 35, 23, 4, 235, 186, 11, 35, 23, 4, 234, 223, 11, 35, 23, 4, 233, 99, 11, + 35, 23, 4, 230, 103, 11, 35, 23, 4, 227, 238, 11, 35, 23, 4, 211, 157, + 11, 35, 23, 4, 226, 200, 11, 35, 23, 4, 225, 109, 11, 35, 23, 4, 223, 38, + 11, 35, 23, 4, 40, 219, 178, 11, 35, 23, 4, 219, 178, 11, 35, 23, 4, 217, + 42, 11, 35, 23, 4, 214, 157, 11, 35, 23, 4, 225, 134, 11, 35, 23, 4, 250, + 111, 11, 35, 23, 4, 224, 162, 11, 35, 23, 4, 226, 202, 11, 35, 23, 225, + 254, 247, 234, 11, 35, 23, 245, 102, 87, 11, 35, 23, 216, 181, 87, 11, + 35, 23, 234, 224, 87, 11, 35, 23, 225, 135, 87, 11, 35, 23, 223, 39, 87, + 11, 35, 23, 225, 110, 87, 11, 35, 23, 32, 6, 254, 144, 11, 35, 23, 32, 6, + 252, 27, 11, 35, 23, 32, 6, 243, 108, 11, 35, 23, 32, 6, 248, 55, 11, 35, + 23, 32, 6, 245, 101, 11, 35, 23, 32, 6, 210, 85, 11, 35, 23, 32, 6, 245, + 64, 11, 35, 23, 32, 6, 216, 180, 11, 35, 23, 32, 6, 235, 186, 11, 35, 23, + 32, 6, 234, 223, 11, 35, 23, 32, 6, 233, 99, 11, 35, 23, 32, 6, 230, 103, + 11, 35, 23, 32, 6, 227, 238, 11, 35, 23, 32, 6, 211, 157, 11, 35, 23, 32, + 6, 226, 200, 11, 35, 23, 32, 6, 225, 109, 11, 35, 23, 32, 6, 223, 38, 11, + 35, 23, 32, 6, 216, 181, 87, 11, 35, 23, 32, 6, 219, 178, 11, 35, 23, 32, + 6, 217, 42, 11, 35, 23, 32, 6, 214, 157, 11, 35, 23, 32, 6, 225, 134, 11, + 35, 23, 32, 6, 250, 111, 11, 35, 23, 32, 6, 224, 162, 11, 35, 23, 32, 6, + 226, 202, 11, 35, 23, 32, 229, 222, 11, 35, 23, 32, 4, 254, 144, 11, 35, + 23, 32, 4, 252, 27, 11, 35, 23, 32, 4, 243, 108, 11, 35, 23, 32, 4, 248, + 55, 11, 35, 23, 32, 4, 245, 101, 11, 35, 23, 32, 4, 210, 85, 11, 35, 23, + 32, 4, 245, 64, 11, 35, 23, 32, 4, 216, 180, 11, 35, 23, 32, 4, 235, 186, + 11, 35, 23, 32, 4, 234, 223, 11, 35, 23, 32, 4, 233, 99, 11, 35, 23, 32, + 4, 230, 103, 11, 35, 23, 32, 4, 227, 238, 11, 35, 23, 32, 4, 211, 157, + 11, 35, 23, 32, 4, 226, 200, 11, 35, 23, 32, 4, 225, 109, 11, 35, 23, 32, + 4, 223, 38, 11, 35, 23, 32, 4, 40, 219, 178, 11, 35, 23, 32, 4, 219, 178, + 11, 35, 23, 32, 4, 217, 42, 11, 35, 23, 32, 4, 214, 157, 11, 35, 23, 32, + 4, 225, 134, 11, 35, 23, 32, 4, 250, 111, 11, 35, 23, 32, 4, 224, 162, + 11, 35, 23, 32, 4, 226, 202, 11, 35, 23, 32, 225, 254, 247, 234, 11, 35, + 23, 32, 245, 102, 87, 11, 35, 23, 32, 216, 181, 87, 11, 35, 23, 32, 234, + 224, 87, 11, 35, 23, 32, 225, 135, 87, 11, 35, 23, 32, 223, 39, 87, 11, + 35, 23, 32, 225, 110, 87, 11, 23, 6, 247, 228, 11, 23, 4, 247, 228, 11, + 23, 21, 210, 86, 11, 23, 21, 110, 11, 23, 21, 105, 11, 23, 21, 158, 11, + 23, 21, 161, 11, 23, 21, 189, 11, 23, 21, 194, 11, 23, 21, 198, 11, 23, + 21, 195, 11, 23, 21, 200, 11, 139, 21, 210, 86, 11, 139, 21, 110, 11, + 139, 21, 105, 11, 139, 21, 158, 11, 139, 21, 161, 11, 139, 21, 189, 11, + 139, 21, 194, 11, 139, 21, 198, 11, 139, 21, 195, 11, 139, 21, 200, 11, + 35, 21, 210, 86, 11, 35, 21, 110, 11, 35, 21, 105, 11, 35, 21, 158, 11, + 35, 21, 161, 11, 35, 21, 189, 11, 35, 21, 194, 11, 35, 21, 198, 11, 35, + 21, 195, 11, 35, 21, 200, 11, 35, 23, 21, 210, 86, 11, 35, 23, 21, 110, + 11, 35, 23, 21, 105, 11, 35, 23, 21, 158, 11, 35, 23, 21, 161, 11, 35, + 23, 21, 189, 11, 35, 23, 21, 194, 11, 35, 23, 21, 198, 11, 35, 23, 21, + 195, 11, 35, 23, 21, 200, 11, 230, 139, 21, 210, 86, 11, 230, 139, 21, + 110, 11, 230, 139, 21, 105, 11, 230, 139, 21, 158, 11, 230, 139, 21, 161, + 11, 230, 139, 21, 189, 11, 230, 139, 21, 194, 11, 230, 139, 21, 198, 11, + 230, 139, 21, 195, 11, 230, 139, 21, 200, 10, 11, 254, 171, 10, 11, 252, + 55, 10, 11, 235, 124, 10, 11, 248, 196, 10, 11, 212, 30, 10, 11, 210, + 108, 10, 11, 242, 38, 10, 11, 217, 81, 10, 11, 211, 43, 10, 11, 234, 251, + 10, 11, 233, 103, 10, 11, 231, 79, 10, 11, 228, 63, 10, 11, 221, 167, 10, + 11, 254, 197, 10, 11, 244, 143, 10, 11, 222, 27, 10, 11, 224, 82, 10, 11, + 223, 96, 10, 11, 220, 60, 10, 11, 217, 8, 10, 11, 216, 193, 10, 11, 234, + 130, 10, 11, 216, 203, 10, 11, 248, 217, 10, 11, 210, 111, 10, 11, 242, + 245, 10, 11, 247, 120, 252, 55, 10, 11, 247, 120, 228, 63, 10, 11, 247, + 120, 244, 143, 10, 11, 247, 120, 224, 82, 10, 11, 65, 252, 55, 10, 11, + 65, 235, 124, 10, 11, 65, 241, 219, 10, 11, 65, 242, 38, 10, 11, 65, 211, + 43, 10, 11, 65, 234, 251, 10, 11, 65, 233, 103, 10, 11, 65, 231, 79, 10, + 11, 65, 228, 63, 10, 11, 65, 221, 167, 10, 11, 65, 254, 197, 10, 11, 65, + 244, 143, 10, 11, 65, 222, 27, 10, 11, 65, 224, 82, 10, 11, 65, 220, 60, + 10, 11, 65, 217, 8, 10, 11, 65, 216, 193, 10, 11, 65, 234, 130, 10, 11, + 65, 248, 217, 10, 11, 65, 242, 245, 10, 11, 217, 77, 235, 124, 10, 11, + 217, 77, 242, 38, 10, 11, 217, 77, 211, 43, 10, 11, 217, 77, 233, 103, + 10, 11, 217, 77, 228, 63, 10, 11, 217, 77, 221, 167, 10, 11, 217, 77, + 254, 197, 10, 11, 217, 77, 222, 27, 10, 11, 217, 77, 224, 82, 10, 11, + 217, 77, 220, 60, 10, 11, 217, 77, 234, 130, 10, 11, 217, 77, 248, 217, + 10, 11, 217, 77, 242, 245, 10, 11, 217, 77, 247, 120, 228, 63, 10, 11, + 217, 77, 247, 120, 224, 82, 10, 11, 218, 111, 252, 55, 10, 11, 218, 111, + 235, 124, 10, 11, 218, 111, 241, 219, 10, 11, 218, 111, 242, 38, 10, 11, + 218, 111, 217, 81, 10, 11, 218, 111, 211, 43, 10, 11, 218, 111, 234, 251, + 10, 11, 218, 111, 231, 79, 10, 11, 218, 111, 228, 63, 10, 11, 218, 111, + 221, 167, 10, 11, 218, 111, 254, 197, 10, 11, 218, 111, 244, 143, 10, 11, + 218, 111, 222, 27, 10, 11, 218, 111, 224, 82, 10, 11, 218, 111, 220, 60, + 10, 11, 218, 111, 217, 8, 10, 11, 218, 111, 216, 193, 10, 11, 218, 111, + 234, 130, 10, 11, 218, 111, 248, 217, 10, 11, 218, 111, 210, 111, 10, 11, + 218, 111, 242, 245, 10, 11, 218, 111, 247, 120, 252, 55, 10, 11, 218, + 111, 247, 120, 244, 143, 10, 11, 232, 123, 254, 171, 10, 11, 232, 123, + 252, 55, 10, 11, 232, 123, 235, 124, 10, 11, 232, 123, 248, 196, 10, 11, + 232, 123, 241, 219, 10, 11, 232, 123, 212, 30, 10, 11, 232, 123, 210, + 108, 10, 11, 232, 123, 242, 38, 10, 11, 232, 123, 217, 81, 10, 11, 232, + 123, 211, 43, 10, 11, 232, 123, 233, 103, 10, 11, 232, 123, 231, 79, 10, + 11, 232, 123, 228, 63, 10, 11, 232, 123, 221, 167, 10, 11, 232, 123, 254, + 197, 10, 11, 232, 123, 244, 143, 10, 11, 232, 123, 222, 27, 10, 11, 232, + 123, 224, 82, 10, 11, 232, 123, 223, 96, 10, 11, 232, 123, 220, 60, 10, + 11, 232, 123, 217, 8, 10, 11, 232, 123, 216, 193, 10, 11, 232, 123, 234, + 130, 10, 11, 232, 123, 216, 203, 10, 11, 232, 123, 248, 217, 10, 11, 232, + 123, 210, 111, 10, 11, 232, 123, 242, 245, 10, 11, 139, 252, 55, 10, 11, + 139, 235, 124, 10, 11, 139, 248, 196, 10, 11, 139, 212, 30, 10, 11, 139, + 210, 108, 10, 11, 139, 242, 38, 10, 11, 139, 217, 81, 10, 11, 139, 211, + 43, 10, 11, 139, 233, 103, 10, 11, 139, 231, 79, 10, 11, 139, 228, 63, + 10, 11, 139, 221, 167, 10, 11, 139, 254, 197, 10, 11, 139, 244, 143, 10, + 11, 139, 222, 27, 10, 11, 139, 224, 82, 10, 11, 139, 223, 96, 10, 11, + 139, 220, 60, 10, 11, 139, 217, 8, 10, 11, 139, 216, 193, 10, 11, 139, + 234, 130, 10, 11, 139, 216, 203, 10, 11, 139, 248, 217, 10, 11, 139, 210, + 111, 10, 11, 139, 242, 245, 10, 11, 226, 169, 66, 2, 122, 2, 217, 44, 10, + 11, 226, 169, 122, 2, 248, 196, 231, 206, 86, 245, 221, 211, 239, 231, + 206, 86, 219, 29, 211, 239, 231, 206, 86, 212, 9, 211, 239, 231, 206, 86, + 228, 57, 211, 239, 231, 206, 86, 223, 112, 246, 97, 231, 206, 86, 242, + 128, 246, 97, 231, 206, 86, 71, 246, 97, 231, 206, 86, 123, 64, 250, 142, + 231, 206, 86, 113, 64, 250, 142, 231, 206, 86, 134, 64, 250, 142, 231, + 206, 86, 244, 12, 64, 250, 142, 231, 206, 86, 244, 82, 64, 250, 142, 231, + 206, 86, 219, 126, 64, 250, 142, 231, 206, 86, 220, 123, 64, 250, 142, + 231, 206, 86, 245, 194, 64, 250, 142, 231, 206, 86, 228, 201, 64, 250, + 142, 231, 206, 86, 123, 64, 252, 154, 231, 206, 86, 113, 64, 252, 154, + 231, 206, 86, 134, 64, 252, 154, 231, 206, 86, 244, 12, 64, 252, 154, + 231, 206, 86, 244, 82, 64, 252, 154, 231, 206, 86, 219, 126, 64, 252, + 154, 231, 206, 86, 220, 123, 64, 252, 154, 231, 206, 86, 245, 194, 64, + 252, 154, 231, 206, 86, 228, 201, 64, 252, 154, 231, 206, 86, 123, 64, + 250, 35, 231, 206, 86, 113, 64, 250, 35, 231, 206, 86, 134, 64, 250, 35, + 231, 206, 86, 244, 12, 64, 250, 35, 231, 206, 86, 244, 82, 64, 250, 35, + 231, 206, 86, 219, 126, 64, 250, 35, 231, 206, 86, 220, 123, 64, 250, 35, + 231, 206, 86, 245, 194, 64, 250, 35, 231, 206, 86, 228, 201, 64, 250, 35, + 231, 206, 86, 225, 26, 231, 206, 86, 226, 157, 231, 206, 86, 252, 155, + 231, 206, 86, 250, 71, 231, 206, 86, 218, 240, 231, 206, 86, 218, 40, + 231, 206, 86, 253, 180, 231, 206, 86, 211, 232, 231, 206, 86, 235, 63, + 231, 206, 86, 252, 185, 131, 86, 203, 252, 185, 131, 86, 241, 44, 131, + 86, 241, 43, 131, 86, 241, 42, 131, 86, 241, 41, 131, 86, 241, 40, 131, + 86, 241, 39, 131, 86, 241, 38, 131, 86, 241, 37, 131, 86, 241, 36, 131, + 86, 241, 35, 131, 86, 241, 34, 131, 86, 241, 33, 131, 86, 241, 32, 131, + 86, 241, 31, 131, 86, 241, 30, 131, 86, 241, 29, 131, 86, 241, 28, 131, + 86, 241, 27, 131, 86, 241, 26, 131, 86, 241, 25, 131, 86, 241, 24, 131, + 86, 241, 23, 131, 86, 241, 22, 131, 86, 241, 21, 131, 86, 241, 20, 131, + 86, 241, 19, 131, 86, 241, 18, 131, 86, 241, 17, 131, 86, 241, 16, 131, + 86, 241, 15, 131, 86, 241, 14, 131, 86, 241, 13, 131, 86, 241, 12, 131, + 86, 241, 11, 131, 86, 241, 10, 131, 86, 241, 9, 131, 86, 241, 8, 131, 86, + 241, 7, 131, 86, 241, 6, 131, 86, 241, 5, 131, 86, 241, 4, 131, 86, 241, + 3, 131, 86, 241, 2, 131, 86, 241, 1, 131, 86, 241, 0, 131, 86, 240, 255, + 131, 86, 240, 254, 131, 86, 240, 253, 131, 86, 240, 252, 131, 86, 67, + 252, 185, 131, 86, 213, 238, 131, 86, 213, 237, 131, 86, 213, 236, 131, + 86, 213, 235, 131, 86, 213, 234, 131, 86, 213, 233, 131, 86, 213, 232, + 131, 86, 213, 231, 131, 86, 213, 230, 131, 86, 213, 229, 131, 86, 213, + 228, 131, 86, 213, 227, 131, 86, 213, 226, 131, 86, 213, 225, 131, 86, + 213, 224, 131, 86, 213, 223, 131, 86, 213, 222, 131, 86, 213, 221, 131, + 86, 213, 220, 131, 86, 213, 219, 131, 86, 213, 218, 131, 86, 213, 217, + 131, 86, 213, 216, 131, 86, 213, 215, 131, 86, 213, 214, 131, 86, 213, + 213, 131, 86, 213, 212, 131, 86, 213, 211, 131, 86, 213, 210, 131, 86, + 213, 209, 131, 86, 213, 208, 131, 86, 213, 207, 131, 86, 213, 206, 131, + 86, 213, 205, 131, 86, 213, 204, 131, 86, 213, 203, 131, 86, 213, 202, + 131, 86, 213, 201, 131, 86, 213, 200, 131, 86, 213, 199, 131, 86, 213, + 198, 131, 86, 213, 197, 131, 86, 213, 196, 131, 86, 213, 195, 131, 86, + 213, 194, 131, 86, 213, 193, 131, 86, 213, 192, 131, 86, 213, 191, 131, + 86, 213, 190, 225, 34, 250, 244, 252, 185, 225, 34, 250, 244, 255, 10, + 64, 219, 16, 225, 34, 250, 244, 113, 64, 219, 16, 225, 34, 250, 244, 134, + 64, 219, 16, 225, 34, 250, 244, 244, 12, 64, 219, 16, 225, 34, 250, 244, + 244, 82, 64, 219, 16, 225, 34, 250, 244, 219, 126, 64, 219, 16, 225, 34, + 250, 244, 220, 123, 64, 219, 16, 225, 34, 250, 244, 245, 194, 64, 219, + 16, 225, 34, 250, 244, 228, 201, 64, 219, 16, 225, 34, 250, 244, 216, + 249, 64, 219, 16, 225, 34, 250, 244, 235, 140, 64, 219, 16, 225, 34, 250, + 244, 234, 32, 64, 219, 16, 225, 34, 250, 244, 224, 16, 64, 219, 16, 225, + 34, 250, 244, 234, 80, 64, 219, 16, 225, 34, 250, 244, 255, 10, 64, 241, + 226, 225, 34, 250, 244, 113, 64, 241, 226, 225, 34, 250, 244, 134, 64, + 241, 226, 225, 34, 250, 244, 244, 12, 64, 241, 226, 225, 34, 250, 244, + 244, 82, 64, 241, 226, 225, 34, 250, 244, 219, 126, 64, 241, 226, 225, + 34, 250, 244, 220, 123, 64, 241, 226, 225, 34, 250, 244, 245, 194, 64, + 241, 226, 225, 34, 250, 244, 228, 201, 64, 241, 226, 225, 34, 250, 244, + 216, 249, 64, 241, 226, 225, 34, 250, 244, 235, 140, 64, 241, 226, 225, + 34, 250, 244, 234, 32, 64, 241, 226, 225, 34, 250, 244, 224, 16, 64, 241, + 226, 225, 34, 250, 244, 234, 80, 64, 241, 226, 225, 34, 250, 244, 255, + 10, 64, 247, 248, 225, 34, 250, 244, 113, 64, 247, 248, 225, 34, 250, + 244, 134, 64, 247, 248, 225, 34, 250, 244, 244, 12, 64, 247, 248, 225, + 34, 250, 244, 244, 82, 64, 247, 248, 225, 34, 250, 244, 219, 126, 64, + 247, 248, 225, 34, 250, 244, 220, 123, 64, 247, 248, 225, 34, 250, 244, + 245, 194, 64, 247, 248, 225, 34, 250, 244, 228, 201, 64, 247, 248, 225, + 34, 250, 244, 216, 249, 64, 247, 248, 225, 34, 250, 244, 235, 140, 64, + 247, 248, 225, 34, 250, 244, 234, 32, 64, 247, 248, 225, 34, 250, 244, + 224, 16, 64, 247, 248, 225, 34, 250, 244, 234, 80, 64, 247, 248, 225, 34, + 250, 244, 85, 235, 63, 225, 34, 250, 244, 255, 10, 64, 249, 243, 225, 34, + 250, 244, 113, 64, 249, 243, 225, 34, 250, 244, 134, 64, 249, 243, 225, + 34, 250, 244, 244, 12, 64, 249, 243, 225, 34, 250, 244, 244, 82, 64, 249, + 243, 225, 34, 250, 244, 219, 126, 64, 249, 243, 225, 34, 250, 244, 220, + 123, 64, 249, 243, 225, 34, 250, 244, 245, 194, 64, 249, 243, 225, 34, + 250, 244, 228, 201, 64, 249, 243, 225, 34, 250, 244, 216, 249, 64, 249, + 243, 225, 34, 250, 244, 235, 140, 64, 249, 243, 225, 34, 250, 244, 234, + 32, 64, 249, 243, 225, 34, 250, 244, 224, 16, 64, 249, 243, 225, 34, 250, + 244, 234, 80, 64, 249, 243, 225, 34, 250, 244, 71, 235, 63, 21, 210, 87, + 243, 230, 218, 130, 21, 210, 87, 249, 220, 21, 123, 249, 220, 21, 113, + 249, 220, 21, 134, 249, 220, 21, 244, 12, 249, 220, 21, 244, 82, 249, + 220, 21, 219, 126, 249, 220, 21, 220, 123, 249, 220, 21, 245, 194, 249, + 220, 21, 228, 201, 249, 220, 88, 7, 6, 1, 61, 88, 7, 6, 1, 253, 159, 88, + 7, 6, 1, 251, 67, 88, 7, 6, 1, 249, 61, 88, 7, 6, 1, 75, 88, 7, 6, 1, + 245, 7, 88, 7, 6, 1, 243, 203, 88, 7, 6, 1, 242, 61, 88, 7, 6, 1, 73, 88, + 7, 6, 1, 235, 145, 88, 7, 6, 1, 235, 24, 88, 7, 6, 1, 156, 88, 7, 6, 1, + 193, 88, 7, 6, 1, 230, 26, 88, 7, 6, 1, 76, 88, 7, 6, 1, 226, 106, 88, 7, + 6, 1, 224, 97, 88, 7, 6, 1, 153, 88, 7, 6, 1, 222, 92, 88, 7, 6, 1, 217, + 153, 88, 7, 6, 1, 70, 88, 7, 6, 1, 214, 105, 88, 7, 6, 1, 212, 98, 88, 7, + 6, 1, 211, 178, 88, 7, 6, 1, 211, 117, 88, 7, 6, 1, 210, 159, 216, 7, + 220, 54, 251, 158, 7, 6, 1, 222, 92, 37, 32, 7, 6, 1, 251, 67, 37, 32, 7, + 6, 1, 153, 37, 250, 192, 37, 211, 180, 92, 7, 6, 1, 61, 92, 7, 6, 1, 253, + 159, 92, 7, 6, 1, 251, 67, 92, 7, 6, 1, 249, 61, 92, 7, 6, 1, 75, 92, 7, + 6, 1, 245, 7, 92, 7, 6, 1, 243, 203, 92, 7, 6, 1, 242, 61, 92, 7, 6, 1, + 73, 92, 7, 6, 1, 235, 145, 92, 7, 6, 1, 235, 24, 92, 7, 6, 1, 156, 92, 7, + 6, 1, 193, 92, 7, 6, 1, 230, 26, 92, 7, 6, 1, 76, 92, 7, 6, 1, 226, 106, + 92, 7, 6, 1, 224, 97, 92, 7, 6, 1, 153, 92, 7, 6, 1, 222, 92, 92, 7, 6, + 1, 217, 153, 92, 7, 6, 1, 70, 92, 7, 6, 1, 214, 105, 92, 7, 6, 1, 212, + 98, 92, 7, 6, 1, 211, 178, 92, 7, 6, 1, 211, 117, 92, 7, 6, 1, 210, 159, + 92, 240, 202, 92, 230, 50, 92, 221, 184, 92, 218, 227, 92, 224, 219, 92, + 212, 23, 152, 37, 7, 6, 1, 61, 152, 37, 7, 6, 1, 253, 159, 152, 37, 7, 6, + 1, 251, 67, 152, 37, 7, 6, 1, 249, 61, 152, 37, 7, 6, 1, 75, 152, 37, 7, + 6, 1, 245, 7, 152, 37, 7, 6, 1, 243, 203, 152, 37, 7, 6, 1, 242, 61, 152, + 37, 7, 6, 1, 73, 152, 37, 7, 6, 1, 235, 145, 152, 37, 7, 6, 1, 235, 24, + 152, 37, 7, 6, 1, 156, 152, 37, 7, 6, 1, 193, 152, 37, 7, 6, 1, 230, 26, + 152, 37, 7, 6, 1, 76, 152, 37, 7, 6, 1, 226, 106, 152, 37, 7, 6, 1, 224, + 97, 152, 37, 7, 6, 1, 153, 152, 37, 7, 6, 1, 222, 92, 152, 37, 7, 6, 1, + 217, 153, 152, 37, 7, 6, 1, 70, 152, 37, 7, 6, 1, 214, 105, 152, 37, 7, + 6, 1, 212, 98, 152, 37, 7, 6, 1, 211, 178, 152, 37, 7, 6, 1, 211, 117, + 152, 37, 7, 6, 1, 210, 159, 223, 158, 231, 98, 50, 223, 158, 231, 95, 50, + 152, 92, 7, 6, 1, 61, 152, 92, 7, 6, 1, 253, 159, 152, 92, 7, 6, 1, 251, + 67, 152, 92, 7, 6, 1, 249, 61, 152, 92, 7, 6, 1, 75, 152, 92, 7, 6, 1, + 245, 7, 152, 92, 7, 6, 1, 243, 203, 152, 92, 7, 6, 1, 242, 61, 152, 92, + 7, 6, 1, 73, 152, 92, 7, 6, 1, 235, 145, 152, 92, 7, 6, 1, 235, 24, 152, + 92, 7, 6, 1, 156, 152, 92, 7, 6, 1, 193, 152, 92, 7, 6, 1, 230, 26, 152, + 92, 7, 6, 1, 76, 152, 92, 7, 6, 1, 226, 106, 152, 92, 7, 6, 1, 224, 97, + 152, 92, 7, 6, 1, 153, 152, 92, 7, 6, 1, 222, 92, 152, 92, 7, 6, 1, 217, + 153, 152, 92, 7, 6, 1, 70, 152, 92, 7, 6, 1, 214, 105, 152, 92, 7, 6, 1, + 212, 98, 152, 92, 7, 6, 1, 211, 178, 152, 92, 7, 6, 1, 211, 117, 152, 92, + 7, 6, 1, 210, 159, 249, 129, 152, 92, 7, 6, 1, 226, 106, 152, 92, 240, + 114, 152, 92, 190, 152, 92, 206, 152, 92, 255, 26, 152, 92, 212, 23, 42, + 247, 165, 92, 250, 24, 92, 249, 171, 92, 243, 253, 92, 240, 106, 92, 229, + 87, 92, 229, 80, 92, 226, 215, 92, 219, 36, 92, 120, 2, 245, 32, 78, 92, + 213, 119, 223, 104, 235, 240, 16, 1, 61, 223, 104, 235, 240, 16, 1, 253, + 159, 223, 104, 235, 240, 16, 1, 251, 67, 223, 104, 235, 240, 16, 1, 249, + 61, 223, 104, 235, 240, 16, 1, 75, 223, 104, 235, 240, 16, 1, 245, 7, + 223, 104, 235, 240, 16, 1, 243, 203, 223, 104, 235, 240, 16, 1, 242, 61, + 223, 104, 235, 240, 16, 1, 73, 223, 104, 235, 240, 16, 1, 235, 145, 223, + 104, 235, 240, 16, 1, 235, 24, 223, 104, 235, 240, 16, 1, 156, 223, 104, + 235, 240, 16, 1, 193, 223, 104, 235, 240, 16, 1, 230, 26, 223, 104, 235, + 240, 16, 1, 76, 223, 104, 235, 240, 16, 1, 226, 106, 223, 104, 235, 240, + 16, 1, 224, 97, 223, 104, 235, 240, 16, 1, 153, 223, 104, 235, 240, 16, + 1, 222, 92, 223, 104, 235, 240, 16, 1, 217, 153, 223, 104, 235, 240, 16, + 1, 70, 223, 104, 235, 240, 16, 1, 214, 105, 223, 104, 235, 240, 16, 1, + 212, 98, 223, 104, 235, 240, 16, 1, 211, 178, 223, 104, 235, 240, 16, 1, + 211, 117, 223, 104, 235, 240, 16, 1, 210, 159, 42, 141, 241, 64, 92, 56, + 234, 19, 92, 56, 206, 92, 9, 214, 177, 238, 51, 92, 9, 214, 177, 238, 55, + 92, 9, 214, 177, 238, 63, 92, 56, 248, 91, 92, 9, 214, 177, 238, 70, 92, + 9, 214, 177, 238, 57, 92, 9, 214, 177, 238, 29, 92, 9, 214, 177, 238, 56, + 92, 9, 214, 177, 238, 69, 92, 9, 214, 177, 238, 43, 92, 9, 214, 177, 238, + 36, 92, 9, 214, 177, 238, 45, 92, 9, 214, 177, 238, 66, 92, 9, 214, 177, + 238, 52, 92, 9, 214, 177, 238, 68, 92, 9, 214, 177, 238, 44, 92, 9, 214, + 177, 238, 67, 92, 9, 214, 177, 238, 30, 92, 9, 214, 177, 238, 35, 92, 9, + 214, 177, 238, 28, 92, 9, 214, 177, 238, 58, 92, 9, 214, 177, 238, 60, + 92, 9, 214, 177, 238, 38, 92, 9, 214, 177, 238, 49, 92, 9, 214, 177, 238, + 47, 92, 9, 214, 177, 238, 73, 92, 9, 214, 177, 238, 72, 92, 9, 214, 177, + 238, 26, 92, 9, 214, 177, 238, 53, 92, 9, 214, 177, 238, 71, 92, 9, 214, + 177, 238, 62, 92, 9, 214, 177, 238, 48, 92, 9, 214, 177, 238, 27, 92, 9, + 214, 177, 238, 50, 92, 9, 214, 177, 238, 32, 92, 9, 214, 177, 238, 31, + 92, 9, 214, 177, 238, 61, 92, 9, 214, 177, 238, 39, 92, 9, 214, 177, 238, + 41, 92, 9, 214, 177, 238, 42, 92, 9, 214, 177, 238, 34, 92, 9, 214, 177, + 238, 65, 92, 9, 214, 177, 238, 59, 216, 7, 220, 54, 251, 158, 9, 214, + 177, 238, 40, 216, 7, 220, 54, 251, 158, 9, 214, 177, 238, 72, 216, 7, + 220, 54, 251, 158, 9, 214, 177, 238, 70, 216, 7, 220, 54, 251, 158, 9, + 214, 177, 238, 54, 216, 7, 220, 54, 251, 158, 9, 214, 177, 238, 37, 216, + 7, 220, 54, 251, 158, 9, 214, 177, 238, 50, 216, 7, 220, 54, 251, 158, 9, + 214, 177, 238, 33, 216, 7, 220, 54, 251, 158, 9, 214, 177, 238, 64, 216, + 7, 220, 54, 251, 158, 9, 214, 177, 238, 46, 37, 154, 254, 246, 37, 154, + 255, 13, 249, 72, 244, 43, 250, 1, 214, 194, 228, 214, 2, 218, 154, 218, + 34, 117, 230, 115, 218, 33, 250, 27, 253, 208, 246, 55, 218, 32, 117, + 251, 119, 223, 159, 251, 141, 253, 208, 228, 213, 212, 41, 212, 35, 213, + 131, 230, 196, 212, 25, 245, 225, 242, 182, 245, 46, 245, 225, 242, 182, + 254, 129, 245, 225, 242, 182, 253, 226, 242, 182, 2, 231, 52, 166, 230, + 130, 87, 212, 27, 249, 138, 230, 130, 87, 244, 93, 224, 23, 230, 130, 87, + 212, 27, 242, 211, 230, 130, 87, 243, 230, 230, 130, 87, 212, 52, 242, + 211, 230, 130, 87, 233, 81, 224, 23, 230, 130, 87, 212, 52, 249, 138, + 230, 130, 87, 249, 138, 230, 129, 166, 230, 130, 2, 244, 191, 244, 93, + 224, 23, 230, 130, 2, 244, 191, 233, 81, 224, 23, 230, 130, 2, 244, 191, + 243, 230, 230, 130, 2, 244, 191, 218, 39, 2, 244, 191, 242, 180, 218, + 157, 220, 0, 218, 157, 250, 117, 221, 169, 245, 40, 215, 236, 248, 85, + 215, 236, 226, 60, 215, 236, 251, 28, 215, 110, 250, 119, 251, 211, 222, + 192, 241, 180, 218, 37, 251, 211, 245, 229, 64, 231, 195, 245, 229, 64, + 223, 32, 241, 205, 244, 12, 233, 55, 249, 247, 231, 171, 233, 54, 244, + 177, 233, 54, 233, 55, 244, 48, 236, 1, 211, 239, 230, 59, 216, 35, 253, + 192, 242, 144, 231, 68, 212, 39, 217, 58, 233, 27, 252, 150, 225, 63, + 223, 112, 254, 55, 242, 128, 254, 55, 225, 218, 225, 219, 250, 120, 218, + 115, 242, 24, 219, 91, 64, 225, 45, 231, 88, 226, 198, 251, 195, 224, + 230, 233, 37, 223, 33, 249, 143, 223, 33, 252, 160, 249, 174, 223, 32, + 249, 96, 22, 223, 32, 218, 142, 251, 168, 219, 15, 251, 152, 243, 252, + 243, 248, 222, 208, 217, 247, 224, 232, 248, 176, 226, 237, 218, 8, 243, + 249, 219, 231, 244, 92, 251, 22, 2, 217, 240, 248, 36, 219, 53, 240, 113, + 249, 142, 220, 71, 240, 112, 240, 113, 249, 142, 246, 109, 249, 173, 250, + 85, 130, 250, 255, 232, 142, 249, 89, 241, 56, 224, 234, 219, 241, 252, + 37, 251, 164, 224, 235, 64, 244, 34, 249, 172, 244, 25, 22, 234, 33, 217, + 20, 211, 230, 242, 14, 222, 13, 251, 178, 22, 249, 103, 211, 237, 242, + 185, 249, 236, 242, 185, 215, 194, 246, 91, 252, 63, 230, 94, 250, 8, + 252, 63, 230, 93, 252, 188, 251, 177, 223, 34, 211, 201, 224, 196, 251, + 236, 251, 21, 235, 139, 250, 78, 215, 236, 244, 163, 250, 77, 244, 95, + 244, 96, 219, 13, 252, 159, 225, 251, 224, 245, 249, 205, 252, 160, 217, + 60, 215, 236, 249, 129, 244, 68, 225, 64, 248, 82, 235, 132, 247, 132, + 250, 233, 218, 114, 211, 240, 250, 99, 230, 130, 213, 164, 250, 163, 221, + 200, 221, 225, 242, 149, 250, 252, 250, 234, 240, 246, 244, 131, 212, 0, + 222, 201, 249, 237, 244, 87, 225, 3, 22, 244, 91, 230, 228, 230, 109, + 251, 11, 250, 40, 241, 233, 253, 242, 226, 63, 216, 15, 241, 252, 250, + 30, 216, 243, 216, 114, 250, 21, 251, 203, 225, 178, 253, 241, 213, 172, + 243, 111, 247, 198, 241, 157, 219, 85, 231, 235, 251, 246, 243, 112, 247, + 241, 251, 167, 244, 53, 225, 34, 250, 242, 28, 228, 48, 230, 86, 28, 228, + 43, 221, 213, 242, 100, 28, 234, 138, 215, 191, 213, 154, 28, 221, 193, + 222, 125, 220, 12, 2, 221, 228, 216, 245, 223, 179, 22, 252, 160, 219, + 106, 22, 219, 106, 251, 188, 252, 124, 22, 241, 50, 250, 121, 244, 74, + 219, 64, 222, 126, 218, 13, 215, 195, 240, 247, 223, 180, 254, 130, 244, + 32, 222, 137, 244, 32, 217, 242, 240, 236, 251, 120, 240, 236, 2, 243, + 95, 226, 230, 251, 120, 235, 132, 224, 240, 226, 229, 245, 45, 224, 240, + 226, 229, 240, 245, 252, 146, 253, 182, 216, 253, 231, 235, 240, 241, + 232, 112, 240, 241, 249, 177, 218, 126, 221, 199, 248, 44, 218, 126, 244, + 181, 235, 150, 233, 90, 235, 132, 250, 227, 245, 45, 250, 227, 223, 142, + 230, 113, 226, 115, 212, 41, 251, 124, 249, 146, 216, 107, 233, 19, 223, + 181, 250, 225, 246, 97, 249, 136, 212, 3, 219, 71, 219, 69, 240, 246, + 223, 154, 242, 171, 220, 58, 230, 146, 222, 195, 250, 109, 247, 137, 225, + 74, 251, 204, 245, 170, 226, 239, 218, 253, 220, 53, 251, 123, 254, 93, + 241, 55, 233, 122, 252, 61, 244, 91, 215, 194, 244, 91, 251, 210, 215, + 91, 241, 250, 250, 110, 252, 188, 250, 110, 243, 243, 252, 188, 250, 110, + 251, 238, 225, 196, 234, 27, 224, 249, 246, 88, 251, 12, 252, 178, 251, + 12, 247, 131, 230, 114, 244, 191, 249, 147, 244, 191, 216, 108, 244, 191, + 223, 182, 244, 191, 250, 226, 244, 191, 246, 98, 244, 191, 218, 242, 212, + 3, 240, 247, 244, 191, 230, 147, 244, 191, 247, 138, 244, 191, 225, 75, + 244, 191, 243, 246, 244, 191, 242, 21, 244, 191, 211, 224, 244, 191, 252, + 72, 244, 191, 226, 46, 244, 191, 225, 75, 228, 54, 225, 233, 224, 187, + 245, 14, 245, 228, 228, 54, 230, 111, 216, 20, 71, 120, 225, 8, 252, 183, + 235, 243, 71, 124, 225, 8, 252, 183, 235, 243, 71, 43, 225, 8, 252, 183, + 235, 243, 71, 44, 225, 8, 252, 183, 235, 243, 244, 85, 242, 17, 50, 212, + 33, 242, 17, 50, 226, 216, 242, 17, 50, 216, 136, 120, 50, 216, 136, 124, + 50, 250, 20, 242, 12, 50, 204, 242, 12, 50, 249, 124, 211, 220, 241, 252, + 245, 15, 229, 105, 217, 152, 235, 126, 246, 93, 234, 83, 251, 248, 211, + 220, 249, 250, 224, 128, 242, 15, 224, 231, 231, 178, 220, 5, 253, 204, + 220, 5, 241, 165, 220, 5, 211, 220, 221, 241, 211, 220, 251, 187, 244, + 30, 251, 91, 236, 1, 219, 170, 251, 90, 236, 1, 219, 170, 251, 163, 242, + 195, 231, 186, 211, 221, 244, 175, 231, 187, 22, 211, 222, 241, 61, 242, + 11, 113, 231, 60, 241, 61, 242, 11, 113, 211, 219, 241, 61, 242, 11, 225, + 0, 226, 228, 211, 222, 2, 251, 107, 245, 226, 251, 142, 2, 213, 246, 225, + 169, 2, 251, 213, 242, 35, 231, 187, 2, 242, 111, 225, 110, 231, 175, + 231, 187, 2, 215, 98, 226, 209, 231, 186, 226, 209, 211, 221, 252, 187, + 249, 191, 211, 205, 224, 190, 235, 132, 226, 224, 235, 132, 242, 170, + 242, 223, 252, 188, 254, 114, 245, 19, 254, 161, 254, 162, 230, 137, 236, + 6, 219, 101, 235, 233, 248, 35, 225, 168, 242, 106, 248, 180, 232, 202, + 229, 212, 224, 255, 244, 192, 231, 143, 242, 34, 252, 139, 225, 2, 217, + 172, 225, 67, 234, 65, 78, 232, 112, 233, 11, 222, 234, 243, 55, 218, + 132, 234, 64, 251, 172, 249, 149, 2, 241, 228, 212, 19, 252, 70, 241, + 228, 251, 136, 241, 228, 113, 241, 226, 219, 11, 241, 228, 242, 121, 241, + 228, 241, 229, 2, 74, 251, 209, 241, 228, 242, 128, 241, 228, 211, 42, + 241, 228, 224, 129, 241, 228, 241, 229, 2, 223, 34, 223, 45, 241, 226, + 241, 229, 248, 82, 247, 250, 220, 83, 2, 115, 59, 235, 216, 245, 173, + 192, 251, 117, 254, 113, 87, 251, 196, 219, 93, 87, 249, 229, 87, 218, + 247, 217, 249, 87, 246, 86, 248, 158, 87, 225, 68, 64, 224, 250, 244, 62, + 252, 4, 247, 166, 87, 219, 4, 252, 159, 216, 150, 252, 159, 71, 244, 52, + 240, 212, 225, 6, 87, 230, 150, 252, 173, 249, 99, 245, 33, 114, 247, + 133, 50, 249, 140, 250, 243, 252, 145, 2, 211, 40, 50, 252, 145, 2, 247, + 133, 50, 252, 145, 2, 245, 48, 50, 252, 145, 2, 224, 229, 50, 230, 150, + 2, 211, 235, 250, 139, 2, 214, 153, 215, 232, 22, 211, 40, 50, 221, 179, + 225, 167, 249, 209, 251, 140, 230, 187, 244, 57, 247, 186, 226, 162, 247, + 191, 246, 50, 244, 108, 244, 41, 204, 244, 108, 244, 41, 226, 77, 2, 249, + 101, 226, 77, 244, 184, 214, 163, 251, 17, 217, 19, 251, 17, 250, 244, + 235, 243, 250, 139, 2, 214, 153, 215, 231, 250, 139, 2, 246, 105, 215, + 231, 252, 142, 250, 138, 250, 7, 224, 124, 222, 186, 224, 124, 226, 20, + 218, 122, 222, 132, 215, 223, 222, 132, 251, 192, 217, 92, 233, 52, 228, + 46, 228, 47, 2, 248, 81, 249, 148, 250, 1, 251, 193, 204, 251, 193, 242, + 128, 251, 193, 251, 209, 251, 193, 226, 158, 251, 193, 251, 190, 229, + 206, 252, 176, 221, 187, 231, 61, 217, 2, 223, 124, 226, 75, 244, 160, + 231, 235, 221, 224, 254, 90, 224, 146, 254, 253, 232, 114, 250, 128, 231, + 73, 226, 130, 215, 239, 235, 253, 215, 239, 226, 83, 246, 25, 87, 235, + 250, 245, 120, 245, 121, 2, 246, 105, 80, 48, 250, 1, 231, 201, 2, 232, + 108, 244, 74, 250, 1, 231, 201, 2, 223, 158, 244, 74, 204, 231, 201, 2, + 223, 158, 244, 74, 204, 231, 201, 2, 232, 108, 244, 74, 224, 237, 224, + 238, 240, 249, 229, 85, 230, 160, 225, 118, 230, 160, 225, 119, 2, 97, + 80, 253, 208, 233, 47, 213, 175, 230, 159, 230, 160, 225, 119, 226, 231, + 228, 76, 230, 160, 225, 117, 254, 91, 2, 252, 130, 251, 11, 213, 172, + 251, 11, 216, 255, 223, 174, 213, 171, 215, 60, 97, 253, 248, 250, 3, 97, + 22, 140, 204, 250, 37, 253, 248, 250, 3, 97, 22, 140, 204, 250, 37, 253, + 249, 2, 37, 123, 226, 121, 250, 3, 246, 105, 22, 214, 153, 204, 250, 37, + 253, 248, 254, 89, 246, 105, 22, 214, 153, 204, 250, 37, 253, 248, 121, + 251, 139, 87, 125, 251, 139, 87, 219, 8, 2, 251, 5, 91, 219, 7, 219, 8, + 2, 123, 219, 32, 212, 35, 219, 8, 2, 134, 219, 32, 212, 34, 252, 116, + 245, 173, 225, 28, 233, 43, 231, 212, 242, 185, 222, 248, 231, 212, 242, + 185, 232, 153, 2, 235, 226, 225, 200, 250, 1, 232, 153, 2, 234, 139, 234, + 139, 232, 152, 204, 232, 152, 252, 45, 252, 46, 2, 251, 5, 91, 251, 191, + 232, 205, 87, 223, 175, 251, 87, 252, 186, 2, 140, 80, 48, 245, 144, 2, + 140, 80, 48, 226, 198, 2, 245, 32, 164, 2, 43, 44, 80, 48, 219, 40, 2, + 97, 80, 48, 216, 15, 2, 214, 153, 80, 48, 228, 76, 123, 214, 184, 245, + 192, 87, 234, 137, 216, 248, 235, 220, 16, 31, 7, 6, 233, 10, 235, 220, + 16, 31, 7, 4, 233, 10, 235, 220, 16, 31, 227, 200, 235, 220, 16, 31, 217, + 184, 235, 220, 16, 31, 7, 233, 10, 244, 97, 245, 173, 216, 10, 211, 199, + 242, 22, 227, 183, 22, 251, 198, 241, 67, 225, 51, 230, 227, 217, 0, 249, + 115, 252, 160, 219, 126, 225, 10, 218, 158, 2, 230, 225, 247, 121, 235, + 132, 16, 31, 252, 58, 215, 221, 245, 157, 85, 42, 251, 87, 71, 42, 251, + 87, 233, 86, 223, 112, 250, 36, 233, 86, 251, 209, 250, 36, 233, 86, 226, + 158, 247, 249, 233, 86, 251, 209, 247, 249, 4, 226, 158, 247, 249, 4, + 251, 209, 247, 249, 214, 162, 223, 112, 215, 226, 246, 106, 223, 112, + 215, 226, 214, 162, 4, 223, 112, 215, 226, 246, 106, 4, 223, 112, 215, + 226, 37, 249, 132, 224, 253, 249, 132, 224, 254, 2, 242, 27, 51, 249, + 132, 224, 253, 228, 50, 43, 220, 154, 2, 134, 247, 119, 250, 5, 244, 192, + 123, 226, 243, 250, 5, 244, 192, 113, 226, 243, 250, 5, 244, 192, 134, + 226, 243, 250, 5, 244, 192, 244, 12, 226, 243, 250, 5, 244, 192, 244, 82, + 226, 243, 250, 5, 244, 192, 219, 126, 226, 243, 250, 5, 244, 192, 220, + 123, 226, 243, 250, 5, 244, 192, 245, 194, 226, 243, 250, 5, 244, 192, + 228, 201, 226, 243, 250, 5, 244, 192, 216, 249, 226, 243, 250, 5, 244, + 192, 245, 169, 226, 243, 250, 5, 244, 192, 215, 77, 226, 243, 250, 5, + 244, 192, 226, 193, 250, 5, 244, 192, 215, 56, 250, 5, 244, 192, 216, + 141, 250, 5, 244, 192, 244, 8, 250, 5, 244, 192, 244, 80, 250, 5, 244, + 192, 219, 122, 250, 5, 244, 192, 220, 122, 250, 5, 244, 192, 245, 193, + 250, 5, 244, 192, 228, 200, 250, 5, 244, 192, 216, 247, 250, 5, 244, 192, + 245, 167, 250, 5, 244, 192, 215, 75, 230, 118, 243, 231, 216, 37, 216, 3, + 218, 149, 64, 232, 240, 219, 171, 64, 235, 133, 230, 107, 242, 125, 244, + 191, 242, 125, 244, 192, 2, 219, 75, 245, 14, 244, 192, 2, 217, 15, 64, + 235, 54, 219, 75, 244, 192, 2, 204, 230, 111, 219, 75, 244, 192, 2, 204, + 230, 112, 22, 219, 75, 245, 14, 219, 75, 244, 192, 2, 204, 230, 112, 22, + 249, 231, 217, 248, 219, 75, 244, 192, 2, 204, 230, 112, 22, 216, 105, + 245, 14, 219, 75, 244, 192, 2, 242, 26, 219, 75, 244, 192, 2, 240, 248, + 211, 233, 244, 191, 219, 75, 244, 192, 2, 219, 75, 245, 14, 244, 192, + 221, 218, 248, 63, 244, 34, 223, 89, 244, 191, 219, 75, 244, 192, 2, 241, + 227, 245, 14, 219, 75, 244, 192, 2, 218, 35, 219, 74, 244, 191, 229, 88, + 244, 191, 245, 24, 244, 191, 214, 188, 244, 191, 244, 192, 2, 249, 231, + 217, 248, 225, 193, 244, 191, 249, 202, 244, 191, 249, 203, 244, 191, + 234, 63, 244, 191, 244, 192, 216, 138, 115, 234, 64, 234, 63, 244, 192, + 2, 219, 75, 245, 14, 234, 63, 244, 192, 2, 250, 1, 245, 14, 244, 192, 2, + 218, 89, 216, 20, 244, 192, 2, 218, 89, 216, 21, 22, 211, 233, 245, 16, + 244, 192, 2, 218, 89, 216, 21, 22, 216, 105, 245, 14, 247, 193, 244, 191, + 211, 204, 244, 191, 254, 109, 244, 191, 224, 228, 244, 191, 249, 117, + 244, 191, 225, 171, 244, 191, 244, 192, 2, 232, 127, 64, 215, 205, 247, + 193, 251, 89, 223, 89, 244, 191, 243, 240, 244, 192, 2, 204, 230, 111, + 254, 107, 244, 191, 244, 153, 244, 191, 212, 20, 244, 191, 219, 92, 244, + 191, 216, 72, 244, 191, 242, 126, 244, 191, 232, 115, 249, 117, 244, 191, + 244, 192, 2, 204, 230, 111, 240, 204, 244, 191, 244, 192, 2, 204, 230, + 112, 22, 249, 231, 217, 248, 244, 192, 221, 191, 236, 1, 244, 154, 253, + 214, 244, 191, 244, 50, 244, 191, 219, 93, 244, 191, 247, 166, 244, 191, + 244, 192, 211, 230, 230, 111, 244, 192, 2, 231, 85, 231, 145, 242, 125, + 250, 226, 244, 192, 2, 219, 75, 245, 14, 250, 226, 244, 192, 2, 217, 15, + 64, 235, 54, 219, 75, 250, 226, 244, 192, 2, 204, 230, 111, 219, 75, 250, + 226, 244, 192, 2, 241, 227, 245, 14, 250, 226, 244, 192, 2, 211, 196, + 219, 76, 234, 63, 250, 226, 244, 192, 2, 250, 1, 245, 14, 224, 228, 250, + 226, 244, 191, 249, 117, 250, 226, 244, 191, 212, 20, 250, 226, 244, 191, + 244, 192, 2, 228, 76, 242, 164, 243, 35, 244, 192, 2, 226, 216, 243, 35, + 225, 169, 251, 169, 248, 76, 221, 170, 230, 146, 241, 230, 230, 146, 219, + 9, 230, 146, 242, 6, 225, 169, 223, 157, 123, 242, 16, 225, 169, 223, + 157, 251, 179, 242, 12, 236, 1, 250, 180, 225, 169, 243, 239, 225, 169, + 2, 224, 228, 244, 191, 225, 169, 2, 244, 42, 242, 11, 222, 204, 241, 215, + 218, 144, 232, 150, 223, 163, 250, 245, 241, 163, 215, 249, 241, 163, + 215, 250, 2, 251, 115, 228, 54, 215, 249, 231, 33, 192, 223, 164, 218, + 150, 215, 247, 215, 248, 250, 245, 251, 93, 226, 195, 251, 93, 215, 202, + 251, 94, 218, 130, 230, 188, 254, 131, 244, 98, 245, 138, 225, 0, 250, + 245, 226, 195, 225, 0, 250, 245, 217, 33, 226, 195, 217, 33, 253, 181, + 226, 195, 253, 181, 223, 119, 213, 247, 248, 59, 215, 193, 253, 243, 232, + 118, 215, 255, 230, 140, 230, 117, 223, 162, 218, 7, 223, 162, 230, 117, + 251, 29, 254, 230, 215, 246, 220, 17, 222, 183, 219, 2, 203, 215, 253, + 232, 231, 67, 215, 253, 232, 231, 249, 191, 50, 225, 0, 250, 230, 223, + 45, 232, 231, 215, 223, 244, 75, 226, 198, 224, 239, 247, 124, 228, 76, + 245, 126, 50, 219, 73, 87, 228, 76, 219, 73, 87, 224, 123, 232, 194, 236, + 1, 235, 158, 225, 42, 87, 247, 147, 228, 53, 232, 194, 87, 224, 233, 212, + 41, 87, 228, 67, 212, 41, 87, 252, 3, 228, 76, 252, 2, 252, 1, 230, 117, + 252, 1, 225, 214, 228, 76, 225, 213, 250, 101, 249, 125, 231, 57, 87, + 211, 218, 87, 223, 60, 252, 188, 87, 216, 38, 212, 41, 249, 254, 219, + 235, 252, 119, 252, 117, 225, 243, 249, 178, 249, 87, 252, 170, 250, 23, + 43, 232, 91, 108, 16, 31, 224, 4, 108, 16, 31, 254, 193, 108, 16, 31, + 244, 97, 108, 16, 31, 245, 224, 108, 16, 31, 212, 40, 108, 16, 31, 254, + 44, 108, 16, 31, 254, 45, 223, 106, 108, 16, 31, 254, 45, 223, 105, 108, + 16, 31, 254, 45, 213, 143, 108, 16, 31, 254, 45, 213, 142, 108, 16, 31, 213, 157, 108, 16, 31, 213, 156, 108, 16, 31, 213, 155, 108, 16, 31, 218, - 44, 108, 16, 31, 225, 125, 218, 44, 108, 16, 31, 85, 218, 44, 108, 16, - 31, 231, 55, 218, 71, 108, 16, 31, 231, 55, 218, 70, 108, 16, 31, 231, - 55, 218, 69, 108, 16, 31, 250, 38, 108, 16, 31, 222, 1, 108, 16, 31, 228, - 188, 108, 16, 31, 213, 141, 108, 16, 31, 213, 140, 108, 16, 31, 222, 204, - 222, 1, 108, 16, 31, 222, 204, 222, 0, 108, 16, 31, 242, 166, 108, 16, - 31, 219, 166, 108, 16, 31, 235, 177, 226, 153, 108, 16, 31, 235, 177, - 226, 152, 108, 16, 31, 249, 134, 64, 235, 176, 108, 16, 31, 223, 101, 64, - 235, 176, 108, 16, 31, 249, 168, 226, 153, 108, 16, 31, 235, 175, 226, - 153, 108, 16, 31, 218, 72, 64, 249, 167, 108, 16, 31, 249, 134, 64, 249, - 167, 108, 16, 31, 249, 134, 64, 249, 166, 108, 16, 31, 249, 168, 254, 83, - 108, 16, 31, 222, 2, 64, 249, 168, 254, 83, 108, 16, 31, 218, 72, 64, - 222, 2, 64, 249, 167, 108, 16, 31, 213, 243, 108, 16, 31, 216, 84, 226, - 153, 108, 16, 31, 233, 57, 226, 153, 108, 16, 31, 254, 82, 226, 153, 108, - 16, 31, 218, 72, 64, 254, 81, 108, 16, 31, 222, 2, 64, 254, 81, 108, 16, - 31, 218, 72, 64, 222, 2, 64, 254, 81, 108, 16, 31, 213, 158, 64, 254, 81, - 108, 16, 31, 223, 101, 64, 254, 81, 108, 16, 31, 223, 101, 64, 254, 80, - 108, 16, 31, 223, 100, 108, 16, 31, 223, 99, 108, 16, 31, 223, 98, 108, - 16, 31, 223, 97, 108, 16, 31, 254, 157, 108, 16, 31, 254, 156, 108, 16, - 31, 231, 163, 108, 16, 31, 222, 7, 108, 16, 31, 253, 246, 108, 16, 31, - 223, 125, 108, 16, 31, 223, 124, 108, 16, 31, 253, 183, 108, 16, 31, 251, - 229, 226, 153, 108, 16, 31, 217, 49, 108, 16, 31, 217, 48, 108, 16, 31, - 224, 8, 232, 222, 108, 16, 31, 251, 183, 108, 16, 31, 251, 182, 108, 16, - 31, 251, 181, 108, 16, 31, 254, 138, 108, 16, 31, 226, 218, 108, 16, 31, - 218, 248, 108, 16, 31, 216, 82, 108, 16, 31, 242, 96, 108, 16, 31, 212, - 28, 108, 16, 31, 224, 226, 108, 16, 31, 251, 14, 108, 16, 31, 215, 86, - 108, 16, 31, 250, 246, 230, 122, 108, 16, 31, 221, 202, 64, 235, 55, 108, - 16, 31, 251, 25, 108, 16, 31, 215, 219, 108, 16, 31, 218, 154, 215, 219, - 108, 16, 31, 232, 148, 108, 16, 31, 219, 56, 108, 16, 31, 214, 142, 108, - 16, 31, 240, 246, 246, 64, 108, 16, 31, 253, 227, 108, 16, 31, 224, 234, - 253, 227, 108, 16, 31, 251, 142, 108, 16, 31, 224, 225, 251, 142, 108, - 16, 31, 254, 135, 108, 16, 31, 218, 117, 218, 26, 218, 116, 108, 16, 31, - 218, 117, 218, 26, 218, 115, 108, 16, 31, 218, 68, 108, 16, 31, 224, 200, - 108, 16, 31, 247, 181, 108, 16, 31, 247, 183, 108, 16, 31, 247, 182, 108, - 16, 31, 224, 131, 108, 16, 31, 224, 120, 108, 16, 31, 249, 122, 108, 16, - 31, 249, 121, 108, 16, 31, 249, 120, 108, 16, 31, 249, 119, 108, 16, 31, - 249, 118, 108, 16, 31, 254, 169, 108, 16, 31, 252, 119, 64, 231, 149, - 108, 16, 31, 252, 119, 64, 214, 17, 108, 16, 31, 223, 57, 108, 16, 31, - 240, 238, 108, 16, 31, 228, 212, 108, 16, 31, 248, 145, 108, 16, 31, 230, - 134, 108, 16, 31, 163, 246, 94, 108, 16, 31, 163, 226, 132, 9, 14, 240, - 102, 9, 14, 240, 101, 9, 14, 240, 100, 9, 14, 240, 99, 9, 14, 240, 98, 9, - 14, 240, 97, 9, 14, 240, 96, 9, 14, 240, 95, 9, 14, 240, 94, 9, 14, 240, - 93, 9, 14, 240, 92, 9, 14, 240, 91, 9, 14, 240, 90, 9, 14, 240, 89, 9, - 14, 240, 88, 9, 14, 240, 87, 9, 14, 240, 86, 9, 14, 240, 85, 9, 14, 240, - 84, 9, 14, 240, 83, 9, 14, 240, 82, 9, 14, 240, 81, 9, 14, 240, 80, 9, - 14, 240, 79, 9, 14, 240, 78, 9, 14, 240, 77, 9, 14, 240, 76, 9, 14, 240, - 75, 9, 14, 240, 74, 9, 14, 240, 73, 9, 14, 240, 72, 9, 14, 240, 71, 9, - 14, 240, 70, 9, 14, 240, 69, 9, 14, 240, 68, 9, 14, 240, 67, 9, 14, 240, - 66, 9, 14, 240, 65, 9, 14, 240, 64, 9, 14, 240, 63, 9, 14, 240, 62, 9, - 14, 240, 61, 9, 14, 240, 60, 9, 14, 240, 59, 9, 14, 240, 58, 9, 14, 240, - 57, 9, 14, 240, 56, 9, 14, 240, 55, 9, 14, 240, 54, 9, 14, 240, 53, 9, - 14, 240, 52, 9, 14, 240, 51, 9, 14, 240, 50, 9, 14, 240, 49, 9, 14, 240, - 48, 9, 14, 240, 47, 9, 14, 240, 46, 9, 14, 240, 45, 9, 14, 240, 44, 9, - 14, 240, 43, 9, 14, 240, 42, 9, 14, 240, 41, 9, 14, 240, 40, 9, 14, 240, - 39, 9, 14, 240, 38, 9, 14, 240, 37, 9, 14, 240, 36, 9, 14, 240, 35, 9, - 14, 240, 34, 9, 14, 240, 33, 9, 14, 240, 32, 9, 14, 240, 31, 9, 14, 240, - 30, 9, 14, 240, 29, 9, 14, 240, 28, 9, 14, 240, 27, 9, 14, 240, 26, 9, - 14, 240, 25, 9, 14, 240, 24, 9, 14, 240, 23, 9, 14, 240, 22, 9, 14, 240, - 21, 9, 14, 240, 20, 9, 14, 240, 19, 9, 14, 240, 18, 9, 14, 240, 17, 9, - 14, 240, 16, 9, 14, 240, 15, 9, 14, 240, 14, 9, 14, 240, 13, 9, 14, 240, - 12, 9, 14, 240, 11, 9, 14, 240, 10, 9, 14, 240, 9, 9, 14, 240, 8, 9, 14, - 240, 7, 9, 14, 240, 6, 9, 14, 240, 5, 9, 14, 240, 4, 9, 14, 240, 3, 9, - 14, 240, 2, 9, 14, 240, 1, 9, 14, 240, 0, 9, 14, 239, 255, 9, 14, 239, - 254, 9, 14, 239, 253, 9, 14, 239, 252, 9, 14, 239, 251, 9, 14, 239, 250, - 9, 14, 239, 249, 9, 14, 239, 248, 9, 14, 239, 247, 9, 14, 239, 246, 9, - 14, 239, 245, 9, 14, 239, 244, 9, 14, 239, 243, 9, 14, 239, 242, 9, 14, - 239, 241, 9, 14, 239, 240, 9, 14, 239, 239, 9, 14, 239, 238, 9, 14, 239, - 237, 9, 14, 239, 236, 9, 14, 239, 235, 9, 14, 239, 234, 9, 14, 239, 233, - 9, 14, 239, 232, 9, 14, 239, 231, 9, 14, 239, 230, 9, 14, 239, 229, 9, - 14, 239, 228, 9, 14, 239, 227, 9, 14, 239, 226, 9, 14, 239, 225, 9, 14, - 239, 224, 9, 14, 239, 223, 9, 14, 239, 222, 9, 14, 239, 221, 9, 14, 239, - 220, 9, 14, 239, 219, 9, 14, 239, 218, 9, 14, 239, 217, 9, 14, 239, 216, - 9, 14, 239, 215, 9, 14, 239, 214, 9, 14, 239, 213, 9, 14, 239, 212, 9, - 14, 239, 211, 9, 14, 239, 210, 9, 14, 239, 209, 9, 14, 239, 208, 9, 14, - 239, 207, 9, 14, 239, 206, 9, 14, 239, 205, 9, 14, 239, 204, 9, 14, 239, - 203, 9, 14, 239, 202, 9, 14, 239, 201, 9, 14, 239, 200, 9, 14, 239, 199, - 9, 14, 239, 198, 9, 14, 239, 197, 9, 14, 239, 196, 9, 14, 239, 195, 9, - 14, 239, 194, 9, 14, 239, 193, 9, 14, 239, 192, 9, 14, 239, 191, 9, 14, - 239, 190, 9, 14, 239, 189, 9, 14, 239, 188, 9, 14, 239, 187, 9, 14, 239, - 186, 9, 14, 239, 185, 9, 14, 239, 184, 9, 14, 239, 183, 9, 14, 239, 182, - 9, 14, 239, 181, 9, 14, 239, 180, 9, 14, 239, 179, 9, 14, 239, 178, 9, - 14, 239, 177, 9, 14, 239, 176, 9, 14, 239, 175, 9, 14, 239, 174, 9, 14, - 239, 173, 9, 14, 239, 172, 9, 14, 239, 171, 9, 14, 239, 170, 9, 14, 239, - 169, 9, 14, 239, 168, 9, 14, 239, 167, 9, 14, 239, 166, 9, 14, 239, 165, - 9, 14, 239, 164, 9, 14, 239, 163, 9, 14, 239, 162, 9, 14, 239, 161, 9, - 14, 239, 160, 9, 14, 239, 159, 9, 14, 239, 158, 9, 14, 239, 157, 9, 14, - 239, 156, 9, 14, 239, 155, 9, 14, 239, 154, 9, 14, 239, 153, 9, 14, 239, - 152, 9, 14, 239, 151, 9, 14, 239, 150, 9, 14, 239, 149, 9, 14, 239, 148, - 9, 14, 239, 147, 9, 14, 239, 146, 9, 14, 239, 145, 9, 14, 239, 144, 9, - 14, 239, 143, 9, 14, 239, 142, 9, 14, 239, 141, 9, 14, 239, 140, 9, 14, - 239, 139, 9, 14, 239, 138, 9, 14, 239, 137, 9, 14, 239, 136, 9, 14, 239, - 135, 9, 14, 239, 134, 9, 14, 239, 133, 9, 14, 239, 132, 9, 14, 239, 131, - 9, 14, 239, 130, 9, 14, 239, 129, 9, 14, 239, 128, 9, 14, 239, 127, 9, - 14, 239, 126, 9, 14, 239, 125, 9, 14, 239, 124, 9, 14, 239, 123, 9, 14, - 239, 122, 9, 14, 239, 121, 9, 14, 239, 120, 9, 14, 239, 119, 9, 14, 239, - 118, 9, 14, 239, 117, 9, 14, 239, 116, 9, 14, 239, 115, 9, 14, 239, 114, - 9, 14, 239, 113, 9, 14, 239, 112, 9, 14, 239, 111, 9, 14, 239, 110, 9, - 14, 239, 109, 9, 14, 239, 108, 9, 14, 239, 107, 9, 14, 239, 106, 9, 14, - 239, 105, 9, 14, 239, 104, 9, 14, 239, 103, 9, 14, 239, 102, 9, 14, 239, - 101, 9, 14, 239, 100, 9, 14, 239, 99, 9, 14, 239, 98, 9, 14, 239, 97, 9, - 14, 239, 96, 9, 14, 239, 95, 9, 14, 239, 94, 9, 14, 239, 93, 9, 14, 239, - 92, 9, 14, 239, 91, 9, 14, 239, 90, 9, 14, 239, 89, 9, 14, 239, 88, 9, - 14, 239, 87, 9, 14, 239, 86, 9, 14, 239, 85, 9, 14, 239, 84, 9, 14, 239, - 83, 9, 14, 239, 82, 9, 14, 239, 81, 9, 14, 239, 80, 9, 14, 239, 79, 9, - 14, 239, 78, 9, 14, 239, 77, 9, 14, 239, 76, 9, 14, 239, 75, 9, 14, 239, - 74, 9, 14, 239, 73, 9, 14, 239, 72, 9, 14, 239, 71, 9, 14, 239, 70, 9, - 14, 239, 69, 9, 14, 239, 68, 9, 14, 239, 67, 9, 14, 239, 66, 9, 14, 239, - 65, 9, 14, 239, 64, 9, 14, 239, 63, 9, 14, 239, 62, 9, 14, 239, 61, 9, - 14, 239, 60, 9, 14, 239, 59, 9, 14, 239, 58, 9, 14, 239, 57, 9, 14, 239, - 56, 9, 14, 239, 55, 9, 14, 239, 54, 9, 14, 239, 53, 9, 14, 239, 52, 9, - 14, 239, 51, 9, 14, 239, 50, 9, 14, 239, 49, 9, 14, 239, 48, 9, 14, 239, - 47, 9, 14, 239, 46, 9, 14, 239, 45, 9, 14, 239, 44, 9, 14, 239, 43, 9, - 14, 239, 42, 9, 14, 239, 41, 9, 14, 239, 40, 9, 14, 239, 39, 9, 14, 239, - 38, 9, 14, 239, 37, 9, 14, 239, 36, 9, 14, 239, 35, 9, 14, 239, 34, 9, - 14, 239, 33, 9, 14, 239, 32, 9, 14, 239, 31, 9, 14, 239, 30, 9, 14, 239, - 29, 9, 14, 239, 28, 9, 14, 239, 27, 9, 14, 239, 26, 9, 14, 239, 25, 9, - 14, 239, 24, 9, 14, 239, 23, 9, 14, 239, 22, 9, 14, 239, 21, 9, 14, 239, - 20, 9, 14, 239, 19, 9, 14, 239, 18, 9, 14, 239, 17, 9, 14, 239, 16, 9, - 14, 239, 15, 9, 14, 239, 14, 9, 14, 239, 13, 9, 14, 239, 12, 9, 14, 239, - 11, 9, 14, 239, 10, 9, 14, 239, 9, 9, 14, 239, 8, 9, 14, 239, 7, 9, 14, - 239, 6, 9, 14, 239, 5, 9, 14, 239, 4, 9, 14, 239, 3, 9, 14, 239, 2, 9, - 14, 239, 1, 9, 14, 239, 0, 9, 14, 238, 255, 9, 14, 238, 254, 9, 14, 238, - 253, 9, 14, 238, 252, 9, 14, 238, 251, 9, 14, 238, 250, 9, 14, 238, 249, - 9, 14, 238, 248, 9, 14, 238, 247, 9, 14, 238, 246, 9, 14, 238, 245, 9, - 14, 238, 244, 9, 14, 238, 243, 9, 14, 238, 242, 9, 14, 238, 241, 9, 14, - 238, 240, 9, 14, 238, 239, 9, 14, 238, 238, 9, 14, 238, 237, 9, 14, 238, - 236, 9, 14, 238, 235, 9, 14, 238, 234, 9, 14, 238, 233, 9, 14, 238, 232, - 9, 14, 238, 231, 9, 14, 238, 230, 9, 14, 238, 229, 9, 14, 238, 228, 9, - 14, 238, 227, 9, 14, 238, 226, 9, 14, 238, 225, 9, 14, 238, 224, 9, 14, - 238, 223, 9, 14, 238, 222, 9, 14, 238, 221, 9, 14, 238, 220, 9, 14, 238, - 219, 9, 14, 238, 218, 9, 14, 238, 217, 9, 14, 238, 216, 9, 14, 238, 215, - 9, 14, 238, 214, 9, 14, 238, 213, 9, 14, 238, 212, 9, 14, 238, 211, 9, - 14, 238, 210, 9, 14, 238, 209, 9, 14, 238, 208, 9, 14, 238, 207, 9, 14, - 238, 206, 9, 14, 238, 205, 9, 14, 238, 204, 9, 14, 238, 203, 9, 14, 238, - 202, 9, 14, 238, 201, 9, 14, 238, 200, 9, 14, 238, 199, 9, 14, 238, 198, - 9, 14, 238, 197, 9, 14, 238, 196, 9, 14, 238, 195, 9, 14, 238, 194, 9, - 14, 238, 193, 9, 14, 238, 192, 9, 14, 238, 191, 9, 14, 238, 190, 9, 14, - 238, 189, 9, 14, 238, 188, 9, 14, 238, 187, 9, 14, 238, 186, 9, 14, 238, - 185, 9, 14, 238, 184, 9, 14, 238, 183, 9, 14, 238, 182, 9, 14, 238, 181, - 9, 14, 238, 180, 9, 14, 238, 179, 9, 14, 238, 178, 9, 14, 238, 177, 9, - 14, 238, 176, 9, 14, 238, 175, 9, 14, 238, 174, 9, 14, 238, 173, 9, 14, - 238, 172, 9, 14, 238, 171, 9, 14, 238, 170, 9, 14, 238, 169, 9, 14, 238, - 168, 9, 14, 238, 167, 9, 14, 238, 166, 9, 14, 238, 165, 9, 14, 238, 164, - 9, 14, 238, 163, 9, 14, 238, 162, 9, 14, 238, 161, 9, 14, 238, 160, 9, - 14, 238, 159, 9, 14, 238, 158, 9, 14, 238, 157, 9, 14, 238, 156, 9, 14, - 238, 155, 9, 14, 238, 154, 9, 14, 238, 153, 9, 14, 238, 152, 9, 14, 238, - 151, 9, 14, 238, 150, 9, 14, 238, 149, 9, 14, 238, 148, 9, 14, 238, 147, - 9, 14, 238, 146, 9, 14, 238, 145, 9, 14, 238, 144, 9, 14, 238, 143, 9, - 14, 238, 142, 9, 14, 238, 141, 9, 14, 238, 140, 9, 14, 238, 139, 9, 14, - 238, 138, 9, 14, 238, 137, 9, 14, 238, 136, 9, 14, 238, 135, 9, 14, 238, - 134, 9, 14, 238, 133, 9, 14, 238, 132, 9, 14, 238, 131, 9, 14, 238, 130, - 9, 14, 238, 129, 9, 14, 238, 128, 9, 14, 238, 127, 9, 14, 238, 126, 9, - 14, 238, 125, 9, 14, 238, 124, 9, 14, 238, 123, 9, 14, 238, 122, 9, 14, - 238, 121, 9, 14, 238, 120, 9, 14, 238, 119, 9, 14, 238, 118, 9, 14, 238, - 117, 9, 14, 238, 116, 9, 14, 238, 115, 9, 14, 238, 114, 9, 14, 238, 113, - 9, 14, 238, 112, 9, 14, 238, 111, 9, 14, 238, 110, 9, 14, 238, 109, 9, - 14, 238, 108, 9, 14, 238, 107, 9, 14, 238, 106, 9, 14, 238, 105, 9, 14, - 238, 104, 9, 14, 238, 103, 9, 14, 238, 102, 9, 14, 238, 101, 9, 14, 238, - 100, 9, 14, 238, 99, 9, 14, 238, 98, 9, 14, 238, 97, 9, 14, 238, 96, 9, - 14, 238, 95, 9, 14, 238, 94, 9, 14, 238, 93, 9, 14, 238, 92, 9, 14, 238, - 91, 9, 14, 238, 90, 9, 14, 238, 89, 9, 14, 238, 88, 9, 14, 238, 87, 9, - 14, 238, 86, 9, 14, 238, 85, 9, 14, 238, 84, 9, 14, 238, 83, 9, 14, 238, - 82, 9, 14, 238, 81, 9, 14, 238, 80, 9, 14, 238, 79, 9, 14, 238, 78, 9, - 14, 238, 77, 9, 14, 238, 76, 9, 14, 238, 75, 9, 14, 238, 74, 9, 14, 238, - 73, 233, 90, 217, 84, 129, 219, 18, 129, 245, 31, 78, 129, 223, 254, 78, - 129, 54, 50, 129, 247, 132, 50, 129, 225, 182, 50, 129, 254, 126, 129, - 254, 57, 129, 43, 226, 3, 129, 44, 226, 3, 129, 253, 216, 129, 96, 50, - 129, 249, 219, 129, 240, 167, 129, 243, 229, 218, 129, 129, 219, 46, 129, - 21, 210, 86, 129, 21, 110, 129, 21, 105, 129, 21, 158, 129, 21, 161, 129, - 21, 189, 129, 21, 194, 129, 21, 198, 129, 21, 195, 129, 21, 200, 129, - 249, 226, 129, 220, 150, 129, 233, 15, 50, 129, 245, 98, 50, 129, 242, - 130, 50, 129, 224, 13, 78, 129, 249, 217, 253, 206, 129, 7, 6, 1, 61, - 129, 7, 6, 1, 253, 158, 129, 7, 6, 1, 251, 66, 129, 7, 6, 1, 249, 60, - 129, 7, 6, 1, 75, 129, 7, 6, 1, 245, 6, 129, 7, 6, 1, 243, 202, 129, 7, - 6, 1, 242, 60, 129, 7, 6, 1, 73, 129, 7, 6, 1, 235, 144, 129, 7, 6, 1, - 235, 23, 129, 7, 6, 1, 156, 129, 7, 6, 1, 193, 129, 7, 6, 1, 230, 25, - 129, 7, 6, 1, 76, 129, 7, 6, 1, 226, 105, 129, 7, 6, 1, 224, 96, 129, 7, - 6, 1, 153, 129, 7, 6, 1, 222, 91, 129, 7, 6, 1, 217, 152, 129, 7, 6, 1, + 45, 108, 16, 31, 225, 126, 218, 45, 108, 16, 31, 85, 218, 45, 108, 16, + 31, 231, 56, 218, 72, 108, 16, 31, 231, 56, 218, 71, 108, 16, 31, 231, + 56, 218, 70, 108, 16, 31, 250, 39, 108, 16, 31, 222, 2, 108, 16, 31, 228, + 189, 108, 16, 31, 213, 141, 108, 16, 31, 213, 140, 108, 16, 31, 222, 205, + 222, 2, 108, 16, 31, 222, 205, 222, 1, 108, 16, 31, 242, 167, 108, 16, + 31, 219, 167, 108, 16, 31, 235, 178, 226, 154, 108, 16, 31, 235, 178, + 226, 153, 108, 16, 31, 249, 135, 64, 235, 177, 108, 16, 31, 223, 102, 64, + 235, 177, 108, 16, 31, 249, 169, 226, 154, 108, 16, 31, 235, 176, 226, + 154, 108, 16, 31, 218, 73, 64, 249, 168, 108, 16, 31, 249, 135, 64, 249, + 168, 108, 16, 31, 249, 135, 64, 249, 167, 108, 16, 31, 249, 169, 254, 84, + 108, 16, 31, 222, 3, 64, 249, 169, 254, 84, 108, 16, 31, 218, 73, 64, + 222, 3, 64, 249, 168, 108, 16, 31, 213, 243, 108, 16, 31, 216, 85, 226, + 154, 108, 16, 31, 233, 58, 226, 154, 108, 16, 31, 254, 83, 226, 154, 108, + 16, 31, 218, 73, 64, 254, 82, 108, 16, 31, 222, 3, 64, 254, 82, 108, 16, + 31, 218, 73, 64, 222, 3, 64, 254, 82, 108, 16, 31, 213, 158, 64, 254, 82, + 108, 16, 31, 223, 102, 64, 254, 82, 108, 16, 31, 223, 102, 64, 254, 81, + 108, 16, 31, 223, 101, 108, 16, 31, 223, 100, 108, 16, 31, 223, 99, 108, + 16, 31, 223, 98, 108, 16, 31, 254, 158, 108, 16, 31, 254, 157, 108, 16, + 31, 231, 164, 108, 16, 31, 222, 8, 108, 16, 31, 253, 247, 108, 16, 31, + 223, 126, 108, 16, 31, 223, 125, 108, 16, 31, 253, 184, 108, 16, 31, 251, + 230, 226, 154, 108, 16, 31, 217, 50, 108, 16, 31, 217, 49, 108, 16, 31, + 224, 9, 232, 223, 108, 16, 31, 251, 184, 108, 16, 31, 251, 183, 108, 16, + 31, 251, 182, 108, 16, 31, 254, 139, 108, 16, 31, 226, 219, 108, 16, 31, + 218, 249, 108, 16, 31, 216, 83, 108, 16, 31, 242, 97, 108, 16, 31, 212, + 28, 108, 16, 31, 224, 227, 108, 16, 31, 251, 15, 108, 16, 31, 215, 86, + 108, 16, 31, 250, 247, 230, 123, 108, 16, 31, 221, 203, 64, 235, 56, 108, + 16, 31, 251, 26, 108, 16, 31, 215, 220, 108, 16, 31, 218, 155, 215, 220, + 108, 16, 31, 232, 149, 108, 16, 31, 219, 57, 108, 16, 31, 214, 142, 108, + 16, 31, 240, 247, 246, 65, 108, 16, 31, 253, 228, 108, 16, 31, 224, 235, + 253, 228, 108, 16, 31, 251, 143, 108, 16, 31, 224, 226, 251, 143, 108, + 16, 31, 254, 136, 108, 16, 31, 218, 118, 218, 27, 218, 117, 108, 16, 31, + 218, 118, 218, 27, 218, 116, 108, 16, 31, 218, 69, 108, 16, 31, 224, 201, + 108, 16, 31, 247, 182, 108, 16, 31, 247, 184, 108, 16, 31, 247, 183, 108, + 16, 31, 224, 132, 108, 16, 31, 224, 121, 108, 16, 31, 249, 123, 108, 16, + 31, 249, 122, 108, 16, 31, 249, 121, 108, 16, 31, 249, 120, 108, 16, 31, + 249, 119, 108, 16, 31, 254, 170, 108, 16, 31, 252, 120, 64, 231, 150, + 108, 16, 31, 252, 120, 64, 214, 17, 108, 16, 31, 223, 58, 108, 16, 31, + 240, 239, 108, 16, 31, 228, 213, 108, 16, 31, 248, 146, 108, 16, 31, 230, + 135, 108, 16, 31, 163, 246, 95, 108, 16, 31, 163, 226, 133, 9, 14, 240, + 103, 9, 14, 240, 102, 9, 14, 240, 101, 9, 14, 240, 100, 9, 14, 240, 99, + 9, 14, 240, 98, 9, 14, 240, 97, 9, 14, 240, 96, 9, 14, 240, 95, 9, 14, + 240, 94, 9, 14, 240, 93, 9, 14, 240, 92, 9, 14, 240, 91, 9, 14, 240, 90, + 9, 14, 240, 89, 9, 14, 240, 88, 9, 14, 240, 87, 9, 14, 240, 86, 9, 14, + 240, 85, 9, 14, 240, 84, 9, 14, 240, 83, 9, 14, 240, 82, 9, 14, 240, 81, + 9, 14, 240, 80, 9, 14, 240, 79, 9, 14, 240, 78, 9, 14, 240, 77, 9, 14, + 240, 76, 9, 14, 240, 75, 9, 14, 240, 74, 9, 14, 240, 73, 9, 14, 240, 72, + 9, 14, 240, 71, 9, 14, 240, 70, 9, 14, 240, 69, 9, 14, 240, 68, 9, 14, + 240, 67, 9, 14, 240, 66, 9, 14, 240, 65, 9, 14, 240, 64, 9, 14, 240, 63, + 9, 14, 240, 62, 9, 14, 240, 61, 9, 14, 240, 60, 9, 14, 240, 59, 9, 14, + 240, 58, 9, 14, 240, 57, 9, 14, 240, 56, 9, 14, 240, 55, 9, 14, 240, 54, + 9, 14, 240, 53, 9, 14, 240, 52, 9, 14, 240, 51, 9, 14, 240, 50, 9, 14, + 240, 49, 9, 14, 240, 48, 9, 14, 240, 47, 9, 14, 240, 46, 9, 14, 240, 45, + 9, 14, 240, 44, 9, 14, 240, 43, 9, 14, 240, 42, 9, 14, 240, 41, 9, 14, + 240, 40, 9, 14, 240, 39, 9, 14, 240, 38, 9, 14, 240, 37, 9, 14, 240, 36, + 9, 14, 240, 35, 9, 14, 240, 34, 9, 14, 240, 33, 9, 14, 240, 32, 9, 14, + 240, 31, 9, 14, 240, 30, 9, 14, 240, 29, 9, 14, 240, 28, 9, 14, 240, 27, + 9, 14, 240, 26, 9, 14, 240, 25, 9, 14, 240, 24, 9, 14, 240, 23, 9, 14, + 240, 22, 9, 14, 240, 21, 9, 14, 240, 20, 9, 14, 240, 19, 9, 14, 240, 18, + 9, 14, 240, 17, 9, 14, 240, 16, 9, 14, 240, 15, 9, 14, 240, 14, 9, 14, + 240, 13, 9, 14, 240, 12, 9, 14, 240, 11, 9, 14, 240, 10, 9, 14, 240, 9, + 9, 14, 240, 8, 9, 14, 240, 7, 9, 14, 240, 6, 9, 14, 240, 5, 9, 14, 240, + 4, 9, 14, 240, 3, 9, 14, 240, 2, 9, 14, 240, 1, 9, 14, 240, 0, 9, 14, + 239, 255, 9, 14, 239, 254, 9, 14, 239, 253, 9, 14, 239, 252, 9, 14, 239, + 251, 9, 14, 239, 250, 9, 14, 239, 249, 9, 14, 239, 248, 9, 14, 239, 247, + 9, 14, 239, 246, 9, 14, 239, 245, 9, 14, 239, 244, 9, 14, 239, 243, 9, + 14, 239, 242, 9, 14, 239, 241, 9, 14, 239, 240, 9, 14, 239, 239, 9, 14, + 239, 238, 9, 14, 239, 237, 9, 14, 239, 236, 9, 14, 239, 235, 9, 14, 239, + 234, 9, 14, 239, 233, 9, 14, 239, 232, 9, 14, 239, 231, 9, 14, 239, 230, + 9, 14, 239, 229, 9, 14, 239, 228, 9, 14, 239, 227, 9, 14, 239, 226, 9, + 14, 239, 225, 9, 14, 239, 224, 9, 14, 239, 223, 9, 14, 239, 222, 9, 14, + 239, 221, 9, 14, 239, 220, 9, 14, 239, 219, 9, 14, 239, 218, 9, 14, 239, + 217, 9, 14, 239, 216, 9, 14, 239, 215, 9, 14, 239, 214, 9, 14, 239, 213, + 9, 14, 239, 212, 9, 14, 239, 211, 9, 14, 239, 210, 9, 14, 239, 209, 9, + 14, 239, 208, 9, 14, 239, 207, 9, 14, 239, 206, 9, 14, 239, 205, 9, 14, + 239, 204, 9, 14, 239, 203, 9, 14, 239, 202, 9, 14, 239, 201, 9, 14, 239, + 200, 9, 14, 239, 199, 9, 14, 239, 198, 9, 14, 239, 197, 9, 14, 239, 196, + 9, 14, 239, 195, 9, 14, 239, 194, 9, 14, 239, 193, 9, 14, 239, 192, 9, + 14, 239, 191, 9, 14, 239, 190, 9, 14, 239, 189, 9, 14, 239, 188, 9, 14, + 239, 187, 9, 14, 239, 186, 9, 14, 239, 185, 9, 14, 239, 184, 9, 14, 239, + 183, 9, 14, 239, 182, 9, 14, 239, 181, 9, 14, 239, 180, 9, 14, 239, 179, + 9, 14, 239, 178, 9, 14, 239, 177, 9, 14, 239, 176, 9, 14, 239, 175, 9, + 14, 239, 174, 9, 14, 239, 173, 9, 14, 239, 172, 9, 14, 239, 171, 9, 14, + 239, 170, 9, 14, 239, 169, 9, 14, 239, 168, 9, 14, 239, 167, 9, 14, 239, + 166, 9, 14, 239, 165, 9, 14, 239, 164, 9, 14, 239, 163, 9, 14, 239, 162, + 9, 14, 239, 161, 9, 14, 239, 160, 9, 14, 239, 159, 9, 14, 239, 158, 9, + 14, 239, 157, 9, 14, 239, 156, 9, 14, 239, 155, 9, 14, 239, 154, 9, 14, + 239, 153, 9, 14, 239, 152, 9, 14, 239, 151, 9, 14, 239, 150, 9, 14, 239, + 149, 9, 14, 239, 148, 9, 14, 239, 147, 9, 14, 239, 146, 9, 14, 239, 145, + 9, 14, 239, 144, 9, 14, 239, 143, 9, 14, 239, 142, 9, 14, 239, 141, 9, + 14, 239, 140, 9, 14, 239, 139, 9, 14, 239, 138, 9, 14, 239, 137, 9, 14, + 239, 136, 9, 14, 239, 135, 9, 14, 239, 134, 9, 14, 239, 133, 9, 14, 239, + 132, 9, 14, 239, 131, 9, 14, 239, 130, 9, 14, 239, 129, 9, 14, 239, 128, + 9, 14, 239, 127, 9, 14, 239, 126, 9, 14, 239, 125, 9, 14, 239, 124, 9, + 14, 239, 123, 9, 14, 239, 122, 9, 14, 239, 121, 9, 14, 239, 120, 9, 14, + 239, 119, 9, 14, 239, 118, 9, 14, 239, 117, 9, 14, 239, 116, 9, 14, 239, + 115, 9, 14, 239, 114, 9, 14, 239, 113, 9, 14, 239, 112, 9, 14, 239, 111, + 9, 14, 239, 110, 9, 14, 239, 109, 9, 14, 239, 108, 9, 14, 239, 107, 9, + 14, 239, 106, 9, 14, 239, 105, 9, 14, 239, 104, 9, 14, 239, 103, 9, 14, + 239, 102, 9, 14, 239, 101, 9, 14, 239, 100, 9, 14, 239, 99, 9, 14, 239, + 98, 9, 14, 239, 97, 9, 14, 239, 96, 9, 14, 239, 95, 9, 14, 239, 94, 9, + 14, 239, 93, 9, 14, 239, 92, 9, 14, 239, 91, 9, 14, 239, 90, 9, 14, 239, + 89, 9, 14, 239, 88, 9, 14, 239, 87, 9, 14, 239, 86, 9, 14, 239, 85, 9, + 14, 239, 84, 9, 14, 239, 83, 9, 14, 239, 82, 9, 14, 239, 81, 9, 14, 239, + 80, 9, 14, 239, 79, 9, 14, 239, 78, 9, 14, 239, 77, 9, 14, 239, 76, 9, + 14, 239, 75, 9, 14, 239, 74, 9, 14, 239, 73, 9, 14, 239, 72, 9, 14, 239, + 71, 9, 14, 239, 70, 9, 14, 239, 69, 9, 14, 239, 68, 9, 14, 239, 67, 9, + 14, 239, 66, 9, 14, 239, 65, 9, 14, 239, 64, 9, 14, 239, 63, 9, 14, 239, + 62, 9, 14, 239, 61, 9, 14, 239, 60, 9, 14, 239, 59, 9, 14, 239, 58, 9, + 14, 239, 57, 9, 14, 239, 56, 9, 14, 239, 55, 9, 14, 239, 54, 9, 14, 239, + 53, 9, 14, 239, 52, 9, 14, 239, 51, 9, 14, 239, 50, 9, 14, 239, 49, 9, + 14, 239, 48, 9, 14, 239, 47, 9, 14, 239, 46, 9, 14, 239, 45, 9, 14, 239, + 44, 9, 14, 239, 43, 9, 14, 239, 42, 9, 14, 239, 41, 9, 14, 239, 40, 9, + 14, 239, 39, 9, 14, 239, 38, 9, 14, 239, 37, 9, 14, 239, 36, 9, 14, 239, + 35, 9, 14, 239, 34, 9, 14, 239, 33, 9, 14, 239, 32, 9, 14, 239, 31, 9, + 14, 239, 30, 9, 14, 239, 29, 9, 14, 239, 28, 9, 14, 239, 27, 9, 14, 239, + 26, 9, 14, 239, 25, 9, 14, 239, 24, 9, 14, 239, 23, 9, 14, 239, 22, 9, + 14, 239, 21, 9, 14, 239, 20, 9, 14, 239, 19, 9, 14, 239, 18, 9, 14, 239, + 17, 9, 14, 239, 16, 9, 14, 239, 15, 9, 14, 239, 14, 9, 14, 239, 13, 9, + 14, 239, 12, 9, 14, 239, 11, 9, 14, 239, 10, 9, 14, 239, 9, 9, 14, 239, + 8, 9, 14, 239, 7, 9, 14, 239, 6, 9, 14, 239, 5, 9, 14, 239, 4, 9, 14, + 239, 3, 9, 14, 239, 2, 9, 14, 239, 1, 9, 14, 239, 0, 9, 14, 238, 255, 9, + 14, 238, 254, 9, 14, 238, 253, 9, 14, 238, 252, 9, 14, 238, 251, 9, 14, + 238, 250, 9, 14, 238, 249, 9, 14, 238, 248, 9, 14, 238, 247, 9, 14, 238, + 246, 9, 14, 238, 245, 9, 14, 238, 244, 9, 14, 238, 243, 9, 14, 238, 242, + 9, 14, 238, 241, 9, 14, 238, 240, 9, 14, 238, 239, 9, 14, 238, 238, 9, + 14, 238, 237, 9, 14, 238, 236, 9, 14, 238, 235, 9, 14, 238, 234, 9, 14, + 238, 233, 9, 14, 238, 232, 9, 14, 238, 231, 9, 14, 238, 230, 9, 14, 238, + 229, 9, 14, 238, 228, 9, 14, 238, 227, 9, 14, 238, 226, 9, 14, 238, 225, + 9, 14, 238, 224, 9, 14, 238, 223, 9, 14, 238, 222, 9, 14, 238, 221, 9, + 14, 238, 220, 9, 14, 238, 219, 9, 14, 238, 218, 9, 14, 238, 217, 9, 14, + 238, 216, 9, 14, 238, 215, 9, 14, 238, 214, 9, 14, 238, 213, 9, 14, 238, + 212, 9, 14, 238, 211, 9, 14, 238, 210, 9, 14, 238, 209, 9, 14, 238, 208, + 9, 14, 238, 207, 9, 14, 238, 206, 9, 14, 238, 205, 9, 14, 238, 204, 9, + 14, 238, 203, 9, 14, 238, 202, 9, 14, 238, 201, 9, 14, 238, 200, 9, 14, + 238, 199, 9, 14, 238, 198, 9, 14, 238, 197, 9, 14, 238, 196, 9, 14, 238, + 195, 9, 14, 238, 194, 9, 14, 238, 193, 9, 14, 238, 192, 9, 14, 238, 191, + 9, 14, 238, 190, 9, 14, 238, 189, 9, 14, 238, 188, 9, 14, 238, 187, 9, + 14, 238, 186, 9, 14, 238, 185, 9, 14, 238, 184, 9, 14, 238, 183, 9, 14, + 238, 182, 9, 14, 238, 181, 9, 14, 238, 180, 9, 14, 238, 179, 9, 14, 238, + 178, 9, 14, 238, 177, 9, 14, 238, 176, 9, 14, 238, 175, 9, 14, 238, 174, + 9, 14, 238, 173, 9, 14, 238, 172, 9, 14, 238, 171, 9, 14, 238, 170, 9, + 14, 238, 169, 9, 14, 238, 168, 9, 14, 238, 167, 9, 14, 238, 166, 9, 14, + 238, 165, 9, 14, 238, 164, 9, 14, 238, 163, 9, 14, 238, 162, 9, 14, 238, + 161, 9, 14, 238, 160, 9, 14, 238, 159, 9, 14, 238, 158, 9, 14, 238, 157, + 9, 14, 238, 156, 9, 14, 238, 155, 9, 14, 238, 154, 9, 14, 238, 153, 9, + 14, 238, 152, 9, 14, 238, 151, 9, 14, 238, 150, 9, 14, 238, 149, 9, 14, + 238, 148, 9, 14, 238, 147, 9, 14, 238, 146, 9, 14, 238, 145, 9, 14, 238, + 144, 9, 14, 238, 143, 9, 14, 238, 142, 9, 14, 238, 141, 9, 14, 238, 140, + 9, 14, 238, 139, 9, 14, 238, 138, 9, 14, 238, 137, 9, 14, 238, 136, 9, + 14, 238, 135, 9, 14, 238, 134, 9, 14, 238, 133, 9, 14, 238, 132, 9, 14, + 238, 131, 9, 14, 238, 130, 9, 14, 238, 129, 9, 14, 238, 128, 9, 14, 238, + 127, 9, 14, 238, 126, 9, 14, 238, 125, 9, 14, 238, 124, 9, 14, 238, 123, + 9, 14, 238, 122, 9, 14, 238, 121, 9, 14, 238, 120, 9, 14, 238, 119, 9, + 14, 238, 118, 9, 14, 238, 117, 9, 14, 238, 116, 9, 14, 238, 115, 9, 14, + 238, 114, 9, 14, 238, 113, 9, 14, 238, 112, 9, 14, 238, 111, 9, 14, 238, + 110, 9, 14, 238, 109, 9, 14, 238, 108, 9, 14, 238, 107, 9, 14, 238, 106, + 9, 14, 238, 105, 9, 14, 238, 104, 9, 14, 238, 103, 9, 14, 238, 102, 9, + 14, 238, 101, 9, 14, 238, 100, 9, 14, 238, 99, 9, 14, 238, 98, 9, 14, + 238, 97, 9, 14, 238, 96, 9, 14, 238, 95, 9, 14, 238, 94, 9, 14, 238, 93, + 9, 14, 238, 92, 9, 14, 238, 91, 9, 14, 238, 90, 9, 14, 238, 89, 9, 14, + 238, 88, 9, 14, 238, 87, 9, 14, 238, 86, 9, 14, 238, 85, 9, 14, 238, 84, + 9, 14, 238, 83, 9, 14, 238, 82, 9, 14, 238, 81, 9, 14, 238, 80, 9, 14, + 238, 79, 9, 14, 238, 78, 9, 14, 238, 77, 9, 14, 238, 76, 9, 14, 238, 75, + 9, 14, 238, 74, 233, 91, 217, 85, 129, 219, 19, 129, 245, 32, 78, 129, + 223, 255, 78, 129, 54, 50, 129, 247, 133, 50, 129, 225, 183, 50, 129, + 254, 127, 129, 254, 58, 129, 43, 226, 4, 129, 44, 226, 4, 129, 253, 217, + 129, 96, 50, 129, 249, 220, 129, 240, 168, 129, 243, 230, 218, 130, 129, + 219, 47, 129, 21, 210, 86, 129, 21, 110, 129, 21, 105, 129, 21, 158, 129, + 21, 161, 129, 21, 189, 129, 21, 194, 129, 21, 198, 129, 21, 195, 129, 21, + 200, 129, 249, 227, 129, 220, 151, 129, 233, 16, 50, 129, 245, 99, 50, + 129, 242, 131, 50, 129, 224, 14, 78, 129, 249, 218, 253, 207, 129, 7, 6, + 1, 61, 129, 7, 6, 1, 253, 159, 129, 7, 6, 1, 251, 67, 129, 7, 6, 1, 249, + 61, 129, 7, 6, 1, 75, 129, 7, 6, 1, 245, 7, 129, 7, 6, 1, 243, 203, 129, + 7, 6, 1, 242, 61, 129, 7, 6, 1, 73, 129, 7, 6, 1, 235, 145, 129, 7, 6, 1, + 235, 24, 129, 7, 6, 1, 156, 129, 7, 6, 1, 193, 129, 7, 6, 1, 230, 26, + 129, 7, 6, 1, 76, 129, 7, 6, 1, 226, 106, 129, 7, 6, 1, 224, 97, 129, 7, + 6, 1, 153, 129, 7, 6, 1, 222, 92, 129, 7, 6, 1, 217, 153, 129, 7, 6, 1, 70, 129, 7, 6, 1, 214, 105, 129, 7, 6, 1, 212, 98, 129, 7, 6, 1, 211, 178, 129, 7, 6, 1, 211, 117, 129, 7, 6, 1, 210, 159, 129, 43, 42, 127, - 129, 223, 50, 219, 46, 129, 44, 42, 127, 129, 250, 31, 255, 14, 129, 121, - 232, 213, 129, 242, 137, 255, 14, 129, 7, 4, 1, 61, 129, 7, 4, 1, 253, - 158, 129, 7, 4, 1, 251, 66, 129, 7, 4, 1, 249, 60, 129, 7, 4, 1, 75, 129, - 7, 4, 1, 245, 6, 129, 7, 4, 1, 243, 202, 129, 7, 4, 1, 242, 60, 129, 7, - 4, 1, 73, 129, 7, 4, 1, 235, 144, 129, 7, 4, 1, 235, 23, 129, 7, 4, 1, - 156, 129, 7, 4, 1, 193, 129, 7, 4, 1, 230, 25, 129, 7, 4, 1, 76, 129, 7, - 4, 1, 226, 105, 129, 7, 4, 1, 224, 96, 129, 7, 4, 1, 153, 129, 7, 4, 1, - 222, 91, 129, 7, 4, 1, 217, 152, 129, 7, 4, 1, 70, 129, 7, 4, 1, 214, + 129, 223, 51, 219, 47, 129, 44, 42, 127, 129, 250, 32, 255, 15, 129, 121, + 232, 214, 129, 242, 138, 255, 15, 129, 7, 4, 1, 61, 129, 7, 4, 1, 253, + 159, 129, 7, 4, 1, 251, 67, 129, 7, 4, 1, 249, 61, 129, 7, 4, 1, 75, 129, + 7, 4, 1, 245, 7, 129, 7, 4, 1, 243, 203, 129, 7, 4, 1, 242, 61, 129, 7, + 4, 1, 73, 129, 7, 4, 1, 235, 145, 129, 7, 4, 1, 235, 24, 129, 7, 4, 1, + 156, 129, 7, 4, 1, 193, 129, 7, 4, 1, 230, 26, 129, 7, 4, 1, 76, 129, 7, + 4, 1, 226, 106, 129, 7, 4, 1, 224, 97, 129, 7, 4, 1, 153, 129, 7, 4, 1, + 222, 92, 129, 7, 4, 1, 217, 153, 129, 7, 4, 1, 70, 129, 7, 4, 1, 214, 105, 129, 7, 4, 1, 212, 98, 129, 7, 4, 1, 211, 178, 129, 7, 4, 1, 211, - 117, 129, 7, 4, 1, 210, 159, 129, 43, 249, 99, 127, 129, 67, 232, 213, - 129, 44, 249, 99, 127, 129, 182, 251, 6, 217, 84, 45, 221, 78, 45, 221, - 67, 45, 221, 56, 45, 221, 44, 45, 221, 33, 45, 221, 22, 45, 221, 11, 45, - 221, 0, 45, 220, 245, 45, 220, 237, 45, 220, 236, 45, 220, 235, 45, 220, - 234, 45, 220, 232, 45, 220, 231, 45, 220, 230, 45, 220, 229, 45, 220, - 228, 45, 220, 227, 45, 220, 226, 45, 220, 225, 45, 220, 224, 45, 220, - 223, 45, 220, 221, 45, 220, 220, 45, 220, 219, 45, 220, 218, 45, 220, - 217, 45, 220, 216, 45, 220, 215, 45, 220, 214, 45, 220, 213, 45, 220, - 212, 45, 220, 210, 45, 220, 209, 45, 220, 208, 45, 220, 207, 45, 220, - 206, 45, 220, 205, 45, 220, 204, 45, 220, 203, 45, 220, 202, 45, 220, - 201, 45, 220, 199, 45, 220, 198, 45, 220, 197, 45, 220, 196, 45, 220, - 195, 45, 220, 194, 45, 220, 193, 45, 220, 192, 45, 220, 191, 45, 220, - 190, 45, 220, 188, 45, 220, 187, 45, 220, 186, 45, 220, 185, 45, 220, - 184, 45, 220, 183, 45, 220, 182, 45, 220, 181, 45, 220, 180, 45, 220, - 179, 45, 220, 177, 45, 220, 176, 45, 220, 175, 45, 220, 174, 45, 220, - 173, 45, 220, 172, 45, 220, 171, 45, 220, 170, 45, 220, 169, 45, 220, - 168, 45, 220, 166, 45, 220, 165, 45, 220, 164, 45, 220, 163, 45, 220, - 162, 45, 220, 161, 45, 220, 160, 45, 220, 159, 45, 220, 158, 45, 220, - 157, 45, 221, 154, 45, 221, 153, 45, 221, 152, 45, 221, 151, 45, 221, - 150, 45, 221, 149, 45, 221, 148, 45, 221, 147, 45, 221, 146, 45, 221, - 145, 45, 221, 143, 45, 221, 142, 45, 221, 141, 45, 221, 140, 45, 221, - 139, 45, 221, 138, 45, 221, 137, 45, 221, 136, 45, 221, 135, 45, 221, - 134, 45, 221, 132, 45, 221, 131, 45, 221, 130, 45, 221, 129, 45, 221, - 128, 45, 221, 127, 45, 221, 126, 45, 221, 125, 45, 221, 124, 45, 221, - 123, 45, 221, 121, 45, 221, 120, 45, 221, 119, 45, 221, 118, 45, 221, - 117, 45, 221, 116, 45, 221, 115, 45, 221, 114, 45, 221, 113, 45, 221, - 112, 45, 221, 110, 45, 221, 109, 45, 221, 108, 45, 221, 107, 45, 221, - 106, 45, 221, 105, 45, 221, 104, 45, 221, 103, 45, 221, 102, 45, 221, - 101, 45, 221, 99, 45, 221, 98, 45, 221, 97, 45, 221, 96, 45, 221, 95, 45, - 221, 94, 45, 221, 93, 45, 221, 92, 45, 221, 91, 45, 221, 90, 45, 221, 88, - 45, 221, 87, 45, 221, 86, 45, 221, 85, 45, 221, 84, 45, 221, 83, 45, 221, - 82, 45, 221, 81, 45, 221, 80, 45, 221, 79, 45, 221, 77, 45, 221, 76, 45, - 221, 75, 45, 221, 74, 45, 221, 73, 45, 221, 72, 45, 221, 71, 45, 221, 70, - 45, 221, 69, 45, 221, 68, 45, 221, 66, 45, 221, 65, 45, 221, 64, 45, 221, - 63, 45, 221, 62, 45, 221, 61, 45, 221, 60, 45, 221, 59, 45, 221, 58, 45, - 221, 57, 45, 221, 55, 45, 221, 54, 45, 221, 53, 45, 221, 52, 45, 221, 51, - 45, 221, 50, 45, 221, 49, 45, 221, 48, 45, 221, 47, 45, 221, 46, 45, 221, - 43, 45, 221, 42, 45, 221, 41, 45, 221, 40, 45, 221, 39, 45, 221, 38, 45, - 221, 37, 45, 221, 36, 45, 221, 35, 45, 221, 34, 45, 221, 32, 45, 221, 31, - 45, 221, 30, 45, 221, 29, 45, 221, 28, 45, 221, 27, 45, 221, 26, 45, 221, - 25, 45, 221, 24, 45, 221, 23, 45, 221, 21, 45, 221, 20, 45, 221, 19, 45, - 221, 18, 45, 221, 17, 45, 221, 16, 45, 221, 15, 45, 221, 14, 45, 221, 13, - 45, 221, 12, 45, 221, 10, 45, 221, 9, 45, 221, 8, 45, 221, 7, 45, 221, 6, - 45, 221, 5, 45, 221, 4, 45, 221, 3, 45, 221, 2, 45, 221, 1, 45, 220, 255, - 45, 220, 254, 45, 220, 253, 45, 220, 252, 45, 220, 251, 45, 220, 250, 45, - 220, 249, 45, 220, 248, 45, 220, 247, 45, 220, 246, 45, 220, 244, 45, - 220, 243, 45, 220, 242, 45, 220, 241, 45, 220, 240, 45, 220, 239, 45, - 220, 238, 227, 202, 227, 204, 218, 152, 64, 241, 233, 219, 48, 218, 152, - 64, 216, 212, 218, 85, 245, 143, 64, 216, 212, 245, 56, 245, 143, 64, - 215, 243, 245, 109, 245, 132, 245, 133, 255, 7, 255, 8, 254, 167, 252, - 47, 252, 179, 251, 131, 135, 217, 89, 203, 217, 89, 240, 227, 217, 93, - 232, 214, 244, 145, 166, 232, 213, 245, 143, 64, 232, 213, 233, 0, 228, - 135, 245, 112, 232, 214, 217, 89, 67, 217, 89, 212, 118, 244, 20, 244, - 145, 244, 125, 250, 230, 223, 53, 249, 143, 220, 28, 226, 130, 232, 150, - 110, 219, 58, 220, 28, 235, 255, 232, 150, 210, 86, 219, 191, 248, 151, - 232, 204, 245, 77, 247, 155, 248, 31, 249, 178, 110, 248, 141, 248, 31, - 249, 178, 105, 248, 140, 248, 31, 249, 178, 158, 248, 139, 248, 31, 249, - 178, 161, 248, 138, 152, 255, 7, 229, 209, 217, 177, 236, 62, 217, 180, - 245, 143, 64, 215, 244, 251, 213, 245, 62, 251, 5, 251, 7, 245, 143, 64, - 231, 81, 245, 110, 218, 61, 218, 78, 245, 77, 245, 78, 235, 232, 220, - 138, 161, 244, 107, 220, 137, 243, 237, 235, 232, 220, 138, 158, 242, - 121, 220, 137, 242, 118, 235, 232, 220, 138, 105, 223, 121, 220, 137, - 222, 145, 235, 232, 220, 138, 110, 214, 174, 220, 137, 214, 133, 219, 21, - 248, 63, 248, 65, 226, 78, 250, 142, 226, 80, 125, 226, 240, 224, 193, - 241, 47, 251, 150, 225, 173, 241, 203, 251, 161, 228, 75, 251, 150, 241, - 203, 229, 175, 235, 242, 235, 244, 229, 82, 232, 213, 229, 99, 218, 152, - 64, 221, 158, 254, 18, 218, 223, 245, 143, 64, 221, 158, 254, 18, 245, - 80, 135, 217, 90, 220, 127, 203, 217, 90, 220, 127, 240, 224, 135, 217, - 90, 2, 235, 35, 203, 217, 90, 2, 235, 35, 240, 225, 232, 214, 217, 90, - 220, 127, 67, 217, 90, 220, 127, 212, 117, 225, 253, 232, 214, 244, 14, - 225, 253, 232, 214, 246, 106, 225, 32, 225, 253, 232, 214, 252, 178, 225, - 253, 232, 214, 214, 163, 225, 28, 223, 50, 232, 214, 244, 145, 223, 50, - 235, 242, 223, 35, 219, 155, 220, 28, 105, 219, 152, 218, 225, 219, 155, - 220, 28, 158, 219, 151, 218, 224, 248, 31, 249, 178, 218, 105, 248, 137, - 224, 183, 214, 132, 110, 224, 183, 214, 130, 224, 149, 224, 183, 214, - 132, 105, 224, 183, 214, 129, 224, 148, 220, 128, 215, 242, 218, 151, - 218, 89, 251, 6, 250, 142, 250, 209, 231, 43, 212, 59, 230, 43, 218, 152, - 64, 242, 107, 254, 18, 218, 152, 64, 224, 166, 254, 18, 219, 20, 245, - 143, 64, 242, 107, 254, 18, 245, 143, 64, 224, 166, 254, 18, 245, 107, - 218, 152, 64, 218, 105, 219, 35, 219, 155, 242, 141, 135, 235, 195, 220, - 107, 219, 155, 135, 235, 195, 221, 194, 249, 178, 220, 135, 235, 195, - 249, 113, 218, 106, 216, 236, 218, 168, 226, 169, 217, 167, 249, 218, - 226, 142, 224, 184, 231, 42, 225, 19, 254, 53, 224, 178, 249, 218, 254, - 69, 229, 163, 219, 200, 7, 6, 1, 242, 249, 7, 4, 1, 242, 249, 250, 159, - 165, 1, 232, 175, 209, 209, 1, 244, 44, 244, 36, 209, 209, 1, 244, 44, - 244, 157, 209, 209, 1, 222, 211, 209, 209, 1, 232, 156, 63, 164, 251, - 223, 220, 3, 242, 215, 230, 248, 223, 41, 243, 216, 243, 215, 243, 214, - 230, 45, 209, 251, 209, 252, 209, 254, 232, 102, 222, 219, 232, 103, 222, - 220, 225, 223, 232, 101, 222, 218, 228, 106, 230, 165, 211, 229, 212, 15, - 245, 162, 243, 226, 230, 229, 226, 197, 214, 134, 87, 230, 229, 248, 157, - 87, 8, 3, 235, 158, 78, 224, 194, 244, 20, 31, 67, 44, 71, 233, 20, 127, - 213, 118, 213, 7, 212, 195, 212, 184, 212, 173, 212, 162, 212, 151, 212, - 140, 212, 129, 213, 117, 213, 106, 213, 95, 213, 84, 213, 73, 213, 62, - 213, 51, 251, 71, 226, 155, 78, 251, 196, 209, 253, 49, 28, 16, 243, 236, - 219, 102, 250, 73, 214, 9, 213, 40, 213, 29, 213, 18, 213, 6, 212, 251, - 212, 240, 212, 229, 212, 218, 212, 207, 212, 199, 212, 198, 212, 197, - 212, 196, 212, 194, 212, 193, 212, 192, 212, 191, 212, 190, 212, 189, - 212, 188, 212, 187, 212, 186, 212, 185, 212, 183, 212, 182, 212, 181, - 212, 180, 212, 179, 212, 178, 212, 177, 212, 176, 212, 175, 212, 174, - 212, 172, 212, 171, 212, 170, 212, 169, 212, 168, 212, 167, 212, 166, - 212, 165, 212, 164, 212, 163, 212, 161, 212, 160, 212, 159, 212, 158, - 212, 157, 212, 156, 212, 155, 212, 154, 212, 153, 212, 152, 212, 150, - 212, 149, 212, 148, 212, 147, 212, 146, 212, 145, 212, 144, 212, 143, - 212, 142, 212, 141, 212, 139, 212, 138, 212, 137, 212, 136, 212, 135, - 212, 134, 212, 133, 212, 132, 212, 131, 212, 130, 212, 128, 212, 127, - 212, 126, 212, 125, 212, 124, 212, 123, 212, 122, 212, 121, 212, 120, - 212, 119, 213, 116, 213, 115, 213, 114, 213, 113, 213, 112, 213, 111, - 213, 110, 213, 109, 213, 108, 213, 107, 213, 105, 213, 104, 213, 103, - 213, 102, 213, 101, 213, 100, 213, 99, 213, 98, 213, 97, 213, 96, 213, - 94, 213, 93, 213, 92, 213, 91, 213, 90, 213, 89, 213, 88, 213, 87, 213, - 86, 213, 85, 213, 83, 213, 82, 213, 81, 213, 80, 213, 79, 213, 78, 213, - 77, 213, 76, 213, 75, 213, 74, 213, 72, 213, 71, 213, 70, 213, 69, 213, - 68, 213, 67, 213, 66, 213, 65, 213, 64, 213, 63, 213, 61, 213, 60, 213, - 59, 213, 58, 213, 57, 213, 56, 213, 55, 213, 54, 213, 53, 213, 52, 213, - 50, 213, 49, 213, 48, 213, 47, 213, 46, 213, 45, 213, 44, 213, 43, 213, - 42, 213, 41, 213, 39, 213, 38, 213, 37, 213, 36, 213, 35, 213, 34, 213, - 33, 213, 32, 213, 31, 213, 30, 213, 28, 213, 27, 213, 26, 213, 25, 213, - 24, 213, 23, 213, 22, 213, 21, 213, 20, 213, 19, 213, 17, 213, 16, 213, - 15, 213, 14, 213, 13, 213, 12, 213, 11, 213, 10, 213, 9, 213, 8, 213, 5, - 213, 4, 213, 3, 213, 2, 213, 1, 213, 0, 212, 255, 212, 254, 212, 253, - 212, 252, 212, 250, 212, 249, 212, 248, 212, 247, 212, 246, 212, 245, - 212, 244, 212, 243, 212, 242, 212, 241, 212, 239, 212, 238, 212, 237, - 212, 236, 212, 235, 212, 234, 212, 233, 212, 232, 212, 231, 212, 230, - 212, 228, 212, 227, 212, 226, 212, 225, 212, 224, 212, 223, 212, 222, - 212, 221, 212, 220, 212, 219, 212, 217, 212, 216, 212, 215, 212, 214, - 212, 213, 212, 212, 212, 211, 212, 210, 212, 209, 212, 208, 212, 206, - 212, 205, 212, 204, 212, 203, 212, 202, 212, 201, 212, 200, 7, 6, 1, 115, - 2, 231, 233, 22, 242, 136, 7, 4, 1, 115, 2, 231, 233, 22, 242, 136, 7, 6, - 1, 160, 2, 67, 232, 214, 51, 7, 4, 1, 160, 2, 67, 232, 214, 51, 7, 6, 1, - 160, 2, 67, 232, 214, 252, 43, 22, 242, 136, 7, 4, 1, 160, 2, 67, 232, - 214, 252, 43, 22, 242, 136, 7, 6, 1, 160, 2, 67, 232, 214, 252, 43, 22, - 142, 7, 4, 1, 160, 2, 67, 232, 214, 252, 43, 22, 142, 7, 6, 1, 160, 2, - 250, 31, 22, 231, 232, 7, 4, 1, 160, 2, 250, 31, 22, 231, 232, 7, 6, 1, - 160, 2, 250, 31, 22, 250, 234, 7, 4, 1, 160, 2, 250, 31, 22, 250, 234, 7, - 6, 1, 240, 154, 2, 231, 233, 22, 242, 136, 7, 4, 1, 240, 154, 2, 231, - 233, 22, 242, 136, 7, 4, 1, 240, 154, 2, 59, 77, 22, 142, 7, 4, 1, 229, - 80, 2, 216, 89, 48, 7, 6, 1, 144, 2, 67, 232, 214, 51, 7, 4, 1, 144, 2, - 67, 232, 214, 51, 7, 6, 1, 144, 2, 67, 232, 214, 252, 43, 22, 242, 136, - 7, 4, 1, 144, 2, 67, 232, 214, 252, 43, 22, 242, 136, 7, 6, 1, 144, 2, - 67, 232, 214, 252, 43, 22, 142, 7, 4, 1, 144, 2, 67, 232, 214, 252, 43, - 22, 142, 7, 6, 1, 222, 92, 2, 67, 232, 214, 51, 7, 4, 1, 222, 92, 2, 67, - 232, 214, 51, 7, 6, 1, 104, 2, 231, 233, 22, 242, 136, 7, 4, 1, 104, 2, - 231, 233, 22, 242, 136, 7, 6, 1, 115, 2, 226, 225, 22, 142, 7, 4, 1, 115, - 2, 226, 225, 22, 142, 7, 6, 1, 115, 2, 226, 225, 22, 182, 7, 4, 1, 115, - 2, 226, 225, 22, 182, 7, 6, 1, 160, 2, 226, 225, 22, 142, 7, 4, 1, 160, - 2, 226, 225, 22, 142, 7, 6, 1, 160, 2, 226, 225, 22, 182, 7, 4, 1, 160, - 2, 226, 225, 22, 182, 7, 6, 1, 160, 2, 59, 77, 22, 142, 7, 4, 1, 160, 2, - 59, 77, 22, 142, 7, 6, 1, 160, 2, 59, 77, 22, 182, 7, 4, 1, 160, 2, 59, - 77, 22, 182, 7, 4, 1, 240, 154, 2, 59, 77, 22, 242, 136, 7, 4, 1, 240, - 154, 2, 59, 77, 22, 182, 7, 6, 1, 240, 154, 2, 226, 225, 22, 142, 7, 4, - 1, 240, 154, 2, 226, 225, 22, 59, 77, 22, 142, 7, 6, 1, 240, 154, 2, 226, - 225, 22, 182, 7, 4, 1, 240, 154, 2, 226, 225, 22, 59, 77, 22, 182, 7, 6, - 1, 235, 145, 2, 182, 7, 4, 1, 235, 145, 2, 59, 77, 22, 182, 7, 6, 1, 233, - 149, 2, 182, 7, 4, 1, 233, 149, 2, 182, 7, 6, 1, 232, 50, 2, 182, 7, 4, - 1, 232, 50, 2, 182, 7, 6, 1, 223, 224, 2, 182, 7, 4, 1, 223, 224, 2, 182, - 7, 6, 1, 104, 2, 226, 225, 22, 142, 7, 4, 1, 104, 2, 226, 225, 22, 142, - 7, 6, 1, 104, 2, 226, 225, 22, 182, 7, 4, 1, 104, 2, 226, 225, 22, 182, - 7, 6, 1, 104, 2, 231, 233, 22, 142, 7, 4, 1, 104, 2, 231, 233, 22, 142, - 7, 6, 1, 104, 2, 231, 233, 22, 182, 7, 4, 1, 104, 2, 231, 233, 22, 182, - 7, 4, 1, 254, 244, 2, 242, 136, 7, 4, 1, 204, 144, 2, 242, 136, 7, 4, 1, - 204, 144, 2, 142, 7, 4, 1, 215, 94, 214, 106, 2, 242, 136, 7, 4, 1, 215, - 94, 214, 106, 2, 142, 7, 4, 1, 221, 196, 2, 242, 136, 7, 4, 1, 221, 196, - 2, 142, 7, 4, 1, 241, 51, 221, 196, 2, 242, 136, 7, 4, 1, 241, 51, 221, - 196, 2, 142, 146, 1, 234, 109, 36, 116, 235, 23, 36, 116, 229, 79, 36, - 116, 251, 66, 36, 116, 227, 167, 36, 116, 215, 159, 36, 116, 228, 111, - 36, 116, 217, 152, 36, 116, 230, 25, 36, 116, 226, 105, 36, 116, 193, 36, - 116, 211, 117, 36, 116, 153, 36, 116, 156, 36, 116, 214, 105, 36, 116, - 232, 176, 36, 116, 232, 185, 36, 116, 222, 180, 36, 116, 228, 93, 36, - 116, 235, 144, 36, 116, 220, 104, 36, 116, 218, 226, 36, 116, 222, 91, - 36, 116, 242, 60, 36, 116, 233, 232, 36, 3, 235, 10, 36, 3, 234, 92, 36, - 3, 234, 83, 36, 3, 233, 217, 36, 3, 233, 188, 36, 3, 234, 182, 36, 3, - 234, 181, 36, 3, 234, 246, 36, 3, 234, 28, 36, 3, 234, 10, 36, 3, 234, - 195, 36, 3, 229, 76, 36, 3, 229, 27, 36, 3, 229, 23, 36, 3, 228, 248, 36, - 3, 228, 241, 36, 3, 229, 64, 36, 3, 229, 62, 36, 3, 229, 73, 36, 3, 229, - 4, 36, 3, 228, 255, 36, 3, 229, 66, 36, 3, 251, 32, 36, 3, 250, 51, 36, - 3, 250, 41, 36, 3, 249, 112, 36, 3, 249, 83, 36, 3, 250, 190, 36, 3, 250, - 182, 36, 3, 251, 22, 36, 3, 249, 238, 36, 3, 249, 174, 36, 3, 250, 222, - 36, 3, 227, 164, 36, 3, 227, 148, 36, 3, 227, 143, 36, 3, 227, 128, 36, - 3, 227, 121, 36, 3, 227, 156, 36, 3, 227, 155, 36, 3, 227, 161, 36, 3, - 227, 134, 36, 3, 227, 132, 36, 3, 227, 159, 36, 3, 215, 155, 36, 3, 215, - 135, 36, 3, 215, 134, 36, 3, 215, 123, 36, 3, 215, 120, 36, 3, 215, 151, - 36, 3, 215, 150, 36, 3, 215, 154, 36, 3, 215, 133, 36, 3, 215, 132, 36, - 3, 215, 153, 36, 3, 228, 109, 36, 3, 228, 95, 36, 3, 228, 94, 36, 3, 228, - 78, 36, 3, 228, 77, 36, 3, 228, 105, 36, 3, 228, 104, 36, 3, 228, 108, - 36, 3, 228, 80, 36, 3, 228, 79, 36, 3, 228, 107, 36, 3, 217, 101, 36, 3, - 216, 117, 36, 3, 216, 103, 36, 3, 215, 118, 36, 3, 215, 85, 36, 3, 217, - 22, 36, 3, 217, 11, 36, 3, 217, 79, 36, 3, 111, 36, 3, 216, 17, 36, 3, - 217, 41, 36, 3, 229, 225, 36, 3, 228, 233, 36, 3, 228, 208, 36, 3, 227, - 237, 36, 3, 227, 179, 36, 3, 229, 107, 36, 3, 229, 103, 36, 3, 229, 212, - 36, 3, 228, 74, 36, 3, 228, 64, 36, 3, 229, 187, 36, 3, 226, 89, 36, 3, - 225, 108, 36, 3, 225, 71, 36, 3, 224, 150, 36, 3, 224, 119, 36, 3, 225, - 221, 36, 3, 225, 211, 36, 3, 226, 71, 36, 3, 225, 16, 36, 3, 224, 249, - 36, 3, 225, 234, 36, 3, 231, 237, 36, 3, 230, 230, 36, 3, 230, 201, 36, - 3, 230, 102, 36, 3, 230, 54, 36, 3, 231, 91, 36, 3, 231, 80, 36, 3, 231, - 203, 36, 3, 230, 161, 36, 3, 230, 132, 36, 3, 231, 135, 36, 3, 211, 103, - 36, 3, 211, 8, 36, 3, 210, 255, 36, 3, 210, 212, 36, 3, 210, 181, 36, 3, - 211, 47, 36, 3, 211, 44, 36, 3, 211, 82, 36, 3, 210, 244, 36, 3, 210, - 229, 36, 3, 211, 55, 36, 3, 223, 184, 36, 3, 223, 35, 36, 3, 222, 239, - 36, 3, 222, 140, 36, 3, 222, 112, 36, 3, 223, 128, 36, 3, 223, 108, 36, - 3, 223, 166, 36, 3, 222, 211, 36, 3, 222, 197, 36, 3, 223, 136, 36, 3, - 233, 134, 36, 3, 232, 241, 36, 3, 232, 227, 36, 3, 232, 98, 36, 3, 232, - 73, 36, 3, 233, 58, 36, 3, 233, 50, 36, 3, 233, 109, 36, 3, 232, 156, 36, - 3, 232, 127, 36, 3, 233, 74, 36, 3, 214, 26, 36, 3, 213, 176, 36, 3, 213, - 162, 36, 3, 212, 116, 36, 3, 212, 109, 36, 3, 213, 255, 36, 3, 213, 250, - 36, 3, 214, 23, 36, 3, 213, 138, 36, 3, 213, 127, 36, 3, 214, 5, 36, 3, - 232, 174, 36, 3, 232, 169, 36, 3, 232, 168, 36, 3, 232, 165, 36, 3, 232, - 164, 36, 3, 232, 171, 36, 3, 232, 170, 36, 3, 232, 173, 36, 3, 232, 167, - 36, 3, 232, 166, 36, 3, 232, 172, 36, 3, 232, 183, 36, 3, 232, 178, 36, - 3, 232, 177, 36, 3, 232, 161, 36, 3, 232, 160, 36, 3, 232, 180, 36, 3, - 232, 179, 36, 3, 232, 182, 36, 3, 232, 163, 36, 3, 232, 162, 36, 3, 232, - 181, 36, 3, 222, 178, 36, 3, 222, 167, 36, 3, 222, 166, 36, 3, 222, 160, - 36, 3, 222, 153, 36, 3, 222, 174, 36, 3, 222, 173, 36, 3, 222, 177, 36, - 3, 222, 165, 36, 3, 222, 164, 36, 3, 222, 176, 36, 3, 228, 91, 36, 3, - 228, 86, 36, 3, 228, 85, 36, 3, 228, 82, 36, 3, 228, 81, 36, 3, 228, 88, - 36, 3, 228, 87, 36, 3, 228, 90, 36, 3, 228, 84, 36, 3, 228, 83, 36, 3, - 228, 89, 36, 3, 235, 140, 36, 3, 235, 108, 36, 3, 235, 101, 36, 3, 235, - 51, 36, 3, 235, 33, 36, 3, 235, 126, 36, 3, 235, 124, 36, 3, 235, 135, - 36, 3, 235, 68, 36, 3, 235, 59, 36, 3, 235, 129, 36, 3, 220, 98, 36, 3, - 220, 32, 36, 3, 220, 27, 36, 3, 219, 225, 36, 3, 219, 210, 36, 3, 220, - 63, 36, 3, 220, 61, 36, 3, 220, 90, 36, 3, 220, 7, 36, 3, 220, 1, 36, 3, - 220, 71, 36, 3, 218, 222, 36, 3, 218, 192, 36, 3, 218, 188, 36, 3, 218, - 179, 36, 3, 218, 176, 36, 3, 218, 197, 36, 3, 218, 196, 36, 3, 218, 221, - 36, 3, 218, 184, 36, 3, 218, 183, 36, 3, 218, 199, 36, 3, 222, 31, 36, 3, - 219, 191, 36, 3, 219, 175, 36, 3, 218, 83, 36, 3, 218, 4, 36, 3, 221, - 181, 36, 3, 221, 170, 36, 3, 222, 17, 36, 3, 219, 58, 36, 3, 219, 40, 36, - 3, 221, 219, 36, 3, 242, 46, 36, 3, 241, 180, 36, 3, 241, 161, 36, 3, - 240, 222, 36, 3, 240, 202, 36, 3, 241, 238, 36, 3, 241, 220, 36, 3, 242, - 36, 36, 3, 241, 68, 36, 3, 241, 53, 36, 3, 241, 246, 36, 3, 233, 231, 36, - 3, 233, 230, 36, 3, 233, 225, 36, 3, 233, 224, 36, 3, 233, 221, 36, 3, - 233, 220, 36, 3, 233, 227, 36, 3, 233, 226, 36, 3, 233, 229, 36, 3, 233, - 223, 36, 3, 233, 222, 36, 3, 233, 228, 36, 3, 219, 231, 175, 116, 5, 211, - 68, 175, 116, 5, 223, 155, 175, 116, 5, 223, 78, 98, 1, 215, 28, 69, 116, - 5, 249, 233, 176, 69, 116, 5, 249, 233, 234, 132, 69, 116, 5, 249, 233, - 234, 28, 69, 116, 5, 249, 233, 234, 105, 69, 116, 5, 249, 233, 229, 4, - 69, 116, 5, 249, 233, 251, 33, 69, 116, 5, 249, 233, 250, 157, 69, 116, - 5, 249, 233, 249, 238, 69, 116, 5, 249, 233, 250, 86, 69, 116, 5, 249, - 233, 227, 134, 69, 116, 5, 249, 233, 248, 221, 69, 116, 5, 249, 233, 215, - 144, 69, 116, 5, 249, 233, 247, 145, 69, 116, 5, 249, 233, 215, 139, 69, - 116, 5, 249, 233, 197, 69, 116, 5, 249, 233, 217, 105, 69, 116, 5, 249, - 233, 216, 208, 69, 116, 5, 249, 233, 111, 69, 116, 5, 249, 233, 216, 156, - 69, 116, 5, 249, 233, 228, 74, 69, 116, 5, 249, 233, 252, 191, 69, 116, - 5, 249, 233, 225, 147, 69, 116, 5, 249, 233, 225, 16, 69, 116, 5, 249, - 233, 225, 121, 69, 116, 5, 249, 233, 230, 161, 69, 116, 5, 249, 233, 210, - 244, 69, 116, 5, 249, 233, 222, 211, 69, 116, 5, 249, 233, 232, 156, 69, - 116, 5, 249, 233, 213, 138, 69, 116, 5, 249, 233, 220, 102, 69, 116, 5, - 249, 233, 218, 223, 69, 116, 5, 249, 233, 206, 69, 116, 5, 249, 233, 162, - 69, 116, 5, 249, 233, 233, 135, 69, 25, 5, 249, 233, 224, 88, 69, 235, - 243, 25, 5, 249, 233, 224, 30, 69, 235, 243, 25, 5, 249, 233, 222, 100, - 69, 235, 243, 25, 5, 249, 233, 222, 93, 69, 235, 243, 25, 5, 249, 233, - 224, 69, 69, 25, 5, 226, 204, 69, 25, 5, 255, 34, 141, 1, 251, 255, 229, - 77, 141, 1, 251, 255, 229, 27, 141, 1, 251, 255, 228, 248, 141, 1, 251, - 255, 229, 64, 141, 1, 251, 255, 229, 4, 56, 1, 251, 255, 229, 77, 56, 1, - 251, 255, 229, 27, 56, 1, 251, 255, 228, 248, 56, 1, 251, 255, 229, 64, - 56, 1, 251, 255, 229, 4, 56, 1, 254, 194, 250, 190, 56, 1, 254, 194, 215, - 118, 56, 1, 254, 194, 111, 56, 1, 254, 194, 226, 105, 58, 1, 245, 20, - 245, 19, 249, 182, 138, 130, 58, 1, 245, 19, 245, 20, 249, 182, 138, 130, + 117, 129, 7, 4, 1, 210, 159, 129, 43, 249, 100, 127, 129, 67, 232, 214, + 129, 44, 249, 100, 127, 129, 183, 251, 7, 217, 85, 45, 221, 79, 45, 221, + 68, 45, 221, 57, 45, 221, 45, 45, 221, 34, 45, 221, 23, 45, 221, 12, 45, + 221, 1, 45, 220, 246, 45, 220, 238, 45, 220, 237, 45, 220, 236, 45, 220, + 235, 45, 220, 233, 45, 220, 232, 45, 220, 231, 45, 220, 230, 45, 220, + 229, 45, 220, 228, 45, 220, 227, 45, 220, 226, 45, 220, 225, 45, 220, + 224, 45, 220, 222, 45, 220, 221, 45, 220, 220, 45, 220, 219, 45, 220, + 218, 45, 220, 217, 45, 220, 216, 45, 220, 215, 45, 220, 214, 45, 220, + 213, 45, 220, 211, 45, 220, 210, 45, 220, 209, 45, 220, 208, 45, 220, + 207, 45, 220, 206, 45, 220, 205, 45, 220, 204, 45, 220, 203, 45, 220, + 202, 45, 220, 200, 45, 220, 199, 45, 220, 198, 45, 220, 197, 45, 220, + 196, 45, 220, 195, 45, 220, 194, 45, 220, 193, 45, 220, 192, 45, 220, + 191, 45, 220, 189, 45, 220, 188, 45, 220, 187, 45, 220, 186, 45, 220, + 185, 45, 220, 184, 45, 220, 183, 45, 220, 182, 45, 220, 181, 45, 220, + 180, 45, 220, 178, 45, 220, 177, 45, 220, 176, 45, 220, 175, 45, 220, + 174, 45, 220, 173, 45, 220, 172, 45, 220, 171, 45, 220, 170, 45, 220, + 169, 45, 220, 167, 45, 220, 166, 45, 220, 165, 45, 220, 164, 45, 220, + 163, 45, 220, 162, 45, 220, 161, 45, 220, 160, 45, 220, 159, 45, 220, + 158, 45, 221, 155, 45, 221, 154, 45, 221, 153, 45, 221, 152, 45, 221, + 151, 45, 221, 150, 45, 221, 149, 45, 221, 148, 45, 221, 147, 45, 221, + 146, 45, 221, 144, 45, 221, 143, 45, 221, 142, 45, 221, 141, 45, 221, + 140, 45, 221, 139, 45, 221, 138, 45, 221, 137, 45, 221, 136, 45, 221, + 135, 45, 221, 133, 45, 221, 132, 45, 221, 131, 45, 221, 130, 45, 221, + 129, 45, 221, 128, 45, 221, 127, 45, 221, 126, 45, 221, 125, 45, 221, + 124, 45, 221, 122, 45, 221, 121, 45, 221, 120, 45, 221, 119, 45, 221, + 118, 45, 221, 117, 45, 221, 116, 45, 221, 115, 45, 221, 114, 45, 221, + 113, 45, 221, 111, 45, 221, 110, 45, 221, 109, 45, 221, 108, 45, 221, + 107, 45, 221, 106, 45, 221, 105, 45, 221, 104, 45, 221, 103, 45, 221, + 102, 45, 221, 100, 45, 221, 99, 45, 221, 98, 45, 221, 97, 45, 221, 96, + 45, 221, 95, 45, 221, 94, 45, 221, 93, 45, 221, 92, 45, 221, 91, 45, 221, + 89, 45, 221, 88, 45, 221, 87, 45, 221, 86, 45, 221, 85, 45, 221, 84, 45, + 221, 83, 45, 221, 82, 45, 221, 81, 45, 221, 80, 45, 221, 78, 45, 221, 77, + 45, 221, 76, 45, 221, 75, 45, 221, 74, 45, 221, 73, 45, 221, 72, 45, 221, + 71, 45, 221, 70, 45, 221, 69, 45, 221, 67, 45, 221, 66, 45, 221, 65, 45, + 221, 64, 45, 221, 63, 45, 221, 62, 45, 221, 61, 45, 221, 60, 45, 221, 59, + 45, 221, 58, 45, 221, 56, 45, 221, 55, 45, 221, 54, 45, 221, 53, 45, 221, + 52, 45, 221, 51, 45, 221, 50, 45, 221, 49, 45, 221, 48, 45, 221, 47, 45, + 221, 44, 45, 221, 43, 45, 221, 42, 45, 221, 41, 45, 221, 40, 45, 221, 39, + 45, 221, 38, 45, 221, 37, 45, 221, 36, 45, 221, 35, 45, 221, 33, 45, 221, + 32, 45, 221, 31, 45, 221, 30, 45, 221, 29, 45, 221, 28, 45, 221, 27, 45, + 221, 26, 45, 221, 25, 45, 221, 24, 45, 221, 22, 45, 221, 21, 45, 221, 20, + 45, 221, 19, 45, 221, 18, 45, 221, 17, 45, 221, 16, 45, 221, 15, 45, 221, + 14, 45, 221, 13, 45, 221, 11, 45, 221, 10, 45, 221, 9, 45, 221, 8, 45, + 221, 7, 45, 221, 6, 45, 221, 5, 45, 221, 4, 45, 221, 3, 45, 221, 2, 45, + 221, 0, 45, 220, 255, 45, 220, 254, 45, 220, 253, 45, 220, 252, 45, 220, + 251, 45, 220, 250, 45, 220, 249, 45, 220, 248, 45, 220, 247, 45, 220, + 245, 45, 220, 244, 45, 220, 243, 45, 220, 242, 45, 220, 241, 45, 220, + 240, 45, 220, 239, 227, 203, 227, 205, 218, 153, 64, 241, 234, 219, 49, + 218, 153, 64, 216, 213, 218, 86, 245, 144, 64, 216, 213, 245, 57, 245, + 144, 64, 215, 244, 245, 110, 245, 133, 245, 134, 255, 8, 255, 9, 254, + 168, 252, 48, 252, 180, 251, 132, 135, 217, 90, 203, 217, 90, 240, 228, + 217, 94, 232, 215, 244, 146, 166, 232, 214, 245, 144, 64, 232, 214, 233, + 1, 228, 136, 245, 113, 232, 215, 217, 90, 67, 217, 90, 212, 118, 244, 21, + 244, 146, 244, 126, 250, 231, 223, 54, 249, 144, 220, 29, 226, 131, 232, + 151, 110, 219, 59, 220, 29, 236, 0, 232, 151, 210, 86, 219, 192, 248, + 152, 232, 205, 245, 78, 247, 156, 248, 32, 249, 179, 110, 248, 142, 248, + 32, 249, 179, 105, 248, 141, 248, 32, 249, 179, 158, 248, 140, 248, 32, + 249, 179, 161, 248, 139, 152, 255, 8, 229, 210, 217, 178, 236, 63, 217, + 181, 245, 144, 64, 215, 245, 251, 214, 245, 63, 251, 6, 251, 8, 245, 144, + 64, 231, 82, 245, 111, 218, 62, 218, 79, 245, 78, 245, 79, 235, 233, 220, + 139, 161, 244, 108, 220, 138, 243, 238, 235, 233, 220, 139, 158, 242, + 122, 220, 138, 242, 119, 235, 233, 220, 139, 105, 223, 122, 220, 138, + 222, 146, 235, 233, 220, 139, 110, 214, 174, 220, 138, 214, 133, 219, 22, + 248, 64, 248, 66, 226, 79, 250, 143, 226, 81, 125, 226, 241, 224, 194, + 241, 48, 251, 151, 225, 174, 241, 204, 251, 162, 228, 76, 251, 151, 241, + 204, 229, 176, 235, 243, 235, 245, 229, 83, 232, 214, 229, 100, 218, 153, + 64, 221, 159, 254, 19, 218, 224, 245, 144, 64, 221, 159, 254, 19, 245, + 81, 135, 217, 91, 220, 128, 203, 217, 91, 220, 128, 240, 225, 135, 217, + 91, 2, 235, 36, 203, 217, 91, 2, 235, 36, 240, 226, 232, 215, 217, 91, + 220, 128, 67, 217, 91, 220, 128, 212, 117, 225, 254, 232, 215, 244, 15, + 225, 254, 232, 215, 246, 107, 225, 33, 225, 254, 232, 215, 252, 179, 225, + 254, 232, 215, 214, 163, 225, 29, 223, 51, 232, 215, 244, 146, 223, 51, + 235, 243, 223, 36, 219, 156, 220, 29, 105, 219, 153, 218, 226, 219, 156, + 220, 29, 158, 219, 152, 218, 225, 248, 32, 249, 179, 218, 106, 248, 138, + 224, 184, 214, 132, 110, 224, 184, 214, 130, 224, 150, 224, 184, 214, + 132, 105, 224, 184, 214, 129, 224, 149, 220, 129, 215, 243, 218, 152, + 218, 90, 251, 7, 250, 143, 250, 210, 231, 44, 212, 59, 230, 44, 218, 153, + 64, 242, 108, 254, 19, 218, 153, 64, 224, 167, 254, 19, 219, 21, 245, + 144, 64, 242, 108, 254, 19, 245, 144, 64, 224, 167, 254, 19, 245, 108, + 218, 153, 64, 218, 106, 219, 36, 219, 156, 242, 142, 135, 235, 196, 220, + 108, 219, 156, 135, 235, 196, 221, 195, 249, 179, 220, 136, 235, 196, + 249, 114, 218, 107, 216, 237, 218, 169, 226, 170, 217, 168, 249, 219, + 226, 143, 224, 185, 231, 43, 225, 20, 254, 54, 224, 179, 249, 219, 254, + 70, 229, 164, 219, 201, 7, 6, 1, 242, 250, 7, 4, 1, 242, 250, 250, 160, + 182, 218, 68, 249, 228, 219, 107, 233, 47, 165, 1, 232, 176, 209, 209, 1, + 244, 45, 244, 37, 209, 209, 1, 244, 45, 244, 158, 209, 209, 1, 222, 212, + 209, 209, 1, 232, 157, 63, 164, 251, 224, 220, 4, 242, 216, 230, 249, + 223, 42, 243, 217, 243, 216, 243, 215, 230, 46, 209, 251, 209, 252, 209, + 254, 232, 103, 222, 220, 232, 104, 222, 221, 225, 224, 232, 102, 222, + 219, 228, 107, 230, 166, 211, 229, 212, 15, 245, 163, 243, 227, 230, 230, + 226, 198, 214, 134, 87, 230, 230, 248, 158, 87, 8, 3, 235, 159, 78, 224, + 195, 244, 21, 31, 67, 44, 71, 233, 21, 127, 213, 118, 213, 7, 212, 195, + 212, 184, 212, 173, 212, 162, 212, 151, 212, 140, 212, 129, 213, 117, + 213, 106, 213, 95, 213, 84, 213, 73, 213, 62, 213, 51, 251, 72, 226, 156, + 78, 251, 197, 209, 253, 49, 28, 16, 243, 237, 219, 103, 250, 74, 214, 9, + 213, 40, 213, 29, 213, 18, 213, 6, 212, 251, 212, 240, 212, 229, 212, + 218, 212, 207, 212, 199, 212, 198, 212, 197, 212, 196, 212, 194, 212, + 193, 212, 192, 212, 191, 212, 190, 212, 189, 212, 188, 212, 187, 212, + 186, 212, 185, 212, 183, 212, 182, 212, 181, 212, 180, 212, 179, 212, + 178, 212, 177, 212, 176, 212, 175, 212, 174, 212, 172, 212, 171, 212, + 170, 212, 169, 212, 168, 212, 167, 212, 166, 212, 165, 212, 164, 212, + 163, 212, 161, 212, 160, 212, 159, 212, 158, 212, 157, 212, 156, 212, + 155, 212, 154, 212, 153, 212, 152, 212, 150, 212, 149, 212, 148, 212, + 147, 212, 146, 212, 145, 212, 144, 212, 143, 212, 142, 212, 141, 212, + 139, 212, 138, 212, 137, 212, 136, 212, 135, 212, 134, 212, 133, 212, + 132, 212, 131, 212, 130, 212, 128, 212, 127, 212, 126, 212, 125, 212, + 124, 212, 123, 212, 122, 212, 121, 212, 120, 212, 119, 213, 116, 213, + 115, 213, 114, 213, 113, 213, 112, 213, 111, 213, 110, 213, 109, 213, + 108, 213, 107, 213, 105, 213, 104, 213, 103, 213, 102, 213, 101, 213, + 100, 213, 99, 213, 98, 213, 97, 213, 96, 213, 94, 213, 93, 213, 92, 213, + 91, 213, 90, 213, 89, 213, 88, 213, 87, 213, 86, 213, 85, 213, 83, 213, + 82, 213, 81, 213, 80, 213, 79, 213, 78, 213, 77, 213, 76, 213, 75, 213, + 74, 213, 72, 213, 71, 213, 70, 213, 69, 213, 68, 213, 67, 213, 66, 213, + 65, 213, 64, 213, 63, 213, 61, 213, 60, 213, 59, 213, 58, 213, 57, 213, + 56, 213, 55, 213, 54, 213, 53, 213, 52, 213, 50, 213, 49, 213, 48, 213, + 47, 213, 46, 213, 45, 213, 44, 213, 43, 213, 42, 213, 41, 213, 39, 213, + 38, 213, 37, 213, 36, 213, 35, 213, 34, 213, 33, 213, 32, 213, 31, 213, + 30, 213, 28, 213, 27, 213, 26, 213, 25, 213, 24, 213, 23, 213, 22, 213, + 21, 213, 20, 213, 19, 213, 17, 213, 16, 213, 15, 213, 14, 213, 13, 213, + 12, 213, 11, 213, 10, 213, 9, 213, 8, 213, 5, 213, 4, 213, 3, 213, 2, + 213, 1, 213, 0, 212, 255, 212, 254, 212, 253, 212, 252, 212, 250, 212, + 249, 212, 248, 212, 247, 212, 246, 212, 245, 212, 244, 212, 243, 212, + 242, 212, 241, 212, 239, 212, 238, 212, 237, 212, 236, 212, 235, 212, + 234, 212, 233, 212, 232, 212, 231, 212, 230, 212, 228, 212, 227, 212, + 226, 212, 225, 212, 224, 212, 223, 212, 222, 212, 221, 212, 220, 212, + 219, 212, 217, 212, 216, 212, 215, 212, 214, 212, 213, 212, 212, 212, + 211, 212, 210, 212, 209, 212, 208, 212, 206, 212, 205, 212, 204, 212, + 203, 212, 202, 212, 201, 212, 200, 7, 6, 1, 115, 2, 231, 234, 22, 242, + 137, 7, 4, 1, 115, 2, 231, 234, 22, 242, 137, 7, 6, 1, 160, 2, 67, 232, + 215, 51, 7, 4, 1, 160, 2, 67, 232, 215, 51, 7, 6, 1, 160, 2, 67, 232, + 215, 252, 44, 22, 242, 137, 7, 4, 1, 160, 2, 67, 232, 215, 252, 44, 22, + 242, 137, 7, 6, 1, 160, 2, 67, 232, 215, 252, 44, 22, 142, 7, 4, 1, 160, + 2, 67, 232, 215, 252, 44, 22, 142, 7, 6, 1, 160, 2, 250, 32, 22, 231, + 233, 7, 4, 1, 160, 2, 250, 32, 22, 231, 233, 7, 6, 1, 160, 2, 250, 32, + 22, 250, 235, 7, 4, 1, 160, 2, 250, 32, 22, 250, 235, 7, 6, 1, 240, 155, + 2, 231, 234, 22, 242, 137, 7, 4, 1, 240, 155, 2, 231, 234, 22, 242, 137, + 7, 4, 1, 240, 155, 2, 59, 77, 22, 142, 7, 4, 1, 229, 81, 2, 216, 90, 48, + 7, 6, 1, 144, 2, 67, 232, 215, 51, 7, 4, 1, 144, 2, 67, 232, 215, 51, 7, + 6, 1, 144, 2, 67, 232, 215, 252, 44, 22, 242, 137, 7, 4, 1, 144, 2, 67, + 232, 215, 252, 44, 22, 242, 137, 7, 6, 1, 144, 2, 67, 232, 215, 252, 44, + 22, 142, 7, 4, 1, 144, 2, 67, 232, 215, 252, 44, 22, 142, 7, 6, 1, 222, + 93, 2, 67, 232, 215, 51, 7, 4, 1, 222, 93, 2, 67, 232, 215, 51, 7, 6, 1, + 104, 2, 231, 234, 22, 242, 137, 7, 4, 1, 104, 2, 231, 234, 22, 242, 137, + 7, 6, 1, 115, 2, 226, 226, 22, 142, 7, 4, 1, 115, 2, 226, 226, 22, 142, + 7, 6, 1, 115, 2, 226, 226, 22, 183, 7, 4, 1, 115, 2, 226, 226, 22, 183, + 7, 6, 1, 160, 2, 226, 226, 22, 142, 7, 4, 1, 160, 2, 226, 226, 22, 142, + 7, 6, 1, 160, 2, 226, 226, 22, 183, 7, 4, 1, 160, 2, 226, 226, 22, 183, + 7, 6, 1, 160, 2, 59, 77, 22, 142, 7, 4, 1, 160, 2, 59, 77, 22, 142, 7, 6, + 1, 160, 2, 59, 77, 22, 183, 7, 4, 1, 160, 2, 59, 77, 22, 183, 7, 4, 1, + 240, 155, 2, 59, 77, 22, 242, 137, 7, 4, 1, 240, 155, 2, 59, 77, 22, 183, + 7, 6, 1, 240, 155, 2, 226, 226, 22, 142, 7, 4, 1, 240, 155, 2, 226, 226, + 22, 59, 77, 22, 142, 7, 6, 1, 240, 155, 2, 226, 226, 22, 183, 7, 4, 1, + 240, 155, 2, 226, 226, 22, 59, 77, 22, 183, 7, 6, 1, 235, 146, 2, 183, 7, + 4, 1, 235, 146, 2, 59, 77, 22, 183, 7, 6, 1, 233, 150, 2, 183, 7, 4, 1, + 233, 150, 2, 183, 7, 6, 1, 232, 51, 2, 183, 7, 4, 1, 232, 51, 2, 183, 7, + 6, 1, 223, 225, 2, 183, 7, 4, 1, 223, 225, 2, 183, 7, 6, 1, 104, 2, 226, + 226, 22, 142, 7, 4, 1, 104, 2, 226, 226, 22, 142, 7, 6, 1, 104, 2, 226, + 226, 22, 183, 7, 4, 1, 104, 2, 226, 226, 22, 183, 7, 6, 1, 104, 2, 231, + 234, 22, 142, 7, 4, 1, 104, 2, 231, 234, 22, 142, 7, 6, 1, 104, 2, 231, + 234, 22, 183, 7, 4, 1, 104, 2, 231, 234, 22, 183, 7, 4, 1, 254, 245, 2, + 242, 137, 7, 4, 1, 204, 144, 2, 242, 137, 7, 4, 1, 204, 144, 2, 142, 7, + 4, 1, 215, 94, 214, 106, 2, 242, 137, 7, 4, 1, 215, 94, 214, 106, 2, 142, + 7, 4, 1, 221, 197, 2, 242, 137, 7, 4, 1, 221, 197, 2, 142, 7, 4, 1, 241, + 52, 221, 197, 2, 242, 137, 7, 4, 1, 241, 52, 221, 197, 2, 142, 146, 1, + 234, 110, 36, 116, 235, 24, 36, 116, 229, 80, 36, 116, 251, 67, 36, 116, + 227, 168, 36, 116, 215, 160, 36, 116, 228, 112, 36, 116, 217, 153, 36, + 116, 230, 26, 36, 116, 226, 106, 36, 116, 193, 36, 116, 211, 117, 36, + 116, 153, 36, 116, 156, 36, 116, 214, 105, 36, 116, 232, 177, 36, 116, + 232, 186, 36, 116, 222, 181, 36, 116, 228, 94, 36, 116, 235, 145, 36, + 116, 220, 105, 36, 116, 218, 227, 36, 116, 222, 92, 36, 116, 242, 61, 36, + 116, 233, 233, 36, 3, 235, 11, 36, 3, 234, 93, 36, 3, 234, 84, 36, 3, + 233, 218, 36, 3, 233, 189, 36, 3, 234, 183, 36, 3, 234, 182, 36, 3, 234, + 247, 36, 3, 234, 29, 36, 3, 234, 11, 36, 3, 234, 196, 36, 3, 229, 77, 36, + 3, 229, 28, 36, 3, 229, 24, 36, 3, 228, 249, 36, 3, 228, 242, 36, 3, 229, + 65, 36, 3, 229, 63, 36, 3, 229, 74, 36, 3, 229, 5, 36, 3, 229, 0, 36, 3, + 229, 67, 36, 3, 251, 33, 36, 3, 250, 52, 36, 3, 250, 42, 36, 3, 249, 113, + 36, 3, 249, 84, 36, 3, 250, 191, 36, 3, 250, 183, 36, 3, 251, 23, 36, 3, + 249, 239, 36, 3, 249, 175, 36, 3, 250, 223, 36, 3, 227, 165, 36, 3, 227, + 149, 36, 3, 227, 144, 36, 3, 227, 129, 36, 3, 227, 122, 36, 3, 227, 157, + 36, 3, 227, 156, 36, 3, 227, 162, 36, 3, 227, 135, 36, 3, 227, 133, 36, + 3, 227, 160, 36, 3, 215, 156, 36, 3, 215, 136, 36, 3, 215, 135, 36, 3, + 215, 124, 36, 3, 215, 121, 36, 3, 215, 152, 36, 3, 215, 151, 36, 3, 215, + 155, 36, 3, 215, 134, 36, 3, 215, 133, 36, 3, 215, 154, 36, 3, 228, 110, + 36, 3, 228, 96, 36, 3, 228, 95, 36, 3, 228, 79, 36, 3, 228, 78, 36, 3, + 228, 106, 36, 3, 228, 105, 36, 3, 228, 109, 36, 3, 228, 81, 36, 3, 228, + 80, 36, 3, 228, 108, 36, 3, 217, 102, 36, 3, 216, 118, 36, 3, 216, 104, + 36, 3, 215, 119, 36, 3, 215, 85, 36, 3, 217, 23, 36, 3, 217, 12, 36, 3, + 217, 80, 36, 3, 111, 36, 3, 216, 18, 36, 3, 217, 42, 36, 3, 229, 226, 36, + 3, 228, 234, 36, 3, 228, 209, 36, 3, 227, 238, 36, 3, 227, 180, 36, 3, + 229, 108, 36, 3, 229, 104, 36, 3, 229, 213, 36, 3, 228, 75, 36, 3, 228, + 65, 36, 3, 229, 188, 36, 3, 226, 90, 36, 3, 225, 109, 36, 3, 225, 72, 36, + 3, 224, 151, 36, 3, 224, 120, 36, 3, 225, 222, 36, 3, 225, 212, 36, 3, + 226, 72, 36, 3, 225, 17, 36, 3, 224, 250, 36, 3, 225, 235, 36, 3, 231, + 238, 36, 3, 230, 231, 36, 3, 230, 202, 36, 3, 230, 103, 36, 3, 230, 55, + 36, 3, 231, 92, 36, 3, 231, 81, 36, 3, 231, 204, 36, 3, 230, 162, 36, 3, + 230, 133, 36, 3, 231, 136, 36, 3, 211, 103, 36, 3, 211, 8, 36, 3, 210, + 255, 36, 3, 210, 212, 36, 3, 210, 181, 36, 3, 211, 47, 36, 3, 211, 44, + 36, 3, 211, 82, 36, 3, 210, 244, 36, 3, 210, 229, 36, 3, 211, 55, 36, 3, + 223, 185, 36, 3, 223, 36, 36, 3, 222, 240, 36, 3, 222, 141, 36, 3, 222, + 113, 36, 3, 223, 129, 36, 3, 223, 109, 36, 3, 223, 167, 36, 3, 222, 212, + 36, 3, 222, 198, 36, 3, 223, 137, 36, 3, 233, 135, 36, 3, 232, 242, 36, + 3, 232, 228, 36, 3, 232, 99, 36, 3, 232, 74, 36, 3, 233, 59, 36, 3, 233, + 51, 36, 3, 233, 110, 36, 3, 232, 157, 36, 3, 232, 128, 36, 3, 233, 75, + 36, 3, 214, 26, 36, 3, 213, 176, 36, 3, 213, 162, 36, 3, 212, 116, 36, 3, + 212, 109, 36, 3, 213, 255, 36, 3, 213, 250, 36, 3, 214, 23, 36, 3, 213, + 138, 36, 3, 213, 127, 36, 3, 214, 5, 36, 3, 232, 175, 36, 3, 232, 170, + 36, 3, 232, 169, 36, 3, 232, 166, 36, 3, 232, 165, 36, 3, 232, 172, 36, + 3, 232, 171, 36, 3, 232, 174, 36, 3, 232, 168, 36, 3, 232, 167, 36, 3, + 232, 173, 36, 3, 232, 184, 36, 3, 232, 179, 36, 3, 232, 178, 36, 3, 232, + 162, 36, 3, 232, 161, 36, 3, 232, 181, 36, 3, 232, 180, 36, 3, 232, 183, + 36, 3, 232, 164, 36, 3, 232, 163, 36, 3, 232, 182, 36, 3, 222, 179, 36, + 3, 222, 168, 36, 3, 222, 167, 36, 3, 222, 161, 36, 3, 222, 154, 36, 3, + 222, 175, 36, 3, 222, 174, 36, 3, 222, 178, 36, 3, 222, 166, 36, 3, 222, + 165, 36, 3, 222, 177, 36, 3, 228, 92, 36, 3, 228, 87, 36, 3, 228, 86, 36, + 3, 228, 83, 36, 3, 228, 82, 36, 3, 228, 89, 36, 3, 228, 88, 36, 3, 228, + 91, 36, 3, 228, 85, 36, 3, 228, 84, 36, 3, 228, 90, 36, 3, 235, 141, 36, + 3, 235, 109, 36, 3, 235, 102, 36, 3, 235, 52, 36, 3, 235, 34, 36, 3, 235, + 127, 36, 3, 235, 125, 36, 3, 235, 136, 36, 3, 235, 69, 36, 3, 235, 60, + 36, 3, 235, 130, 36, 3, 220, 99, 36, 3, 220, 33, 36, 3, 220, 28, 36, 3, + 219, 226, 36, 3, 219, 211, 36, 3, 220, 64, 36, 3, 220, 62, 36, 3, 220, + 91, 36, 3, 220, 8, 36, 3, 220, 2, 36, 3, 220, 72, 36, 3, 218, 223, 36, 3, + 218, 193, 36, 3, 218, 189, 36, 3, 218, 180, 36, 3, 218, 177, 36, 3, 218, + 198, 36, 3, 218, 197, 36, 3, 218, 222, 36, 3, 218, 185, 36, 3, 218, 184, + 36, 3, 218, 200, 36, 3, 222, 32, 36, 3, 219, 192, 36, 3, 219, 176, 36, 3, + 218, 84, 36, 3, 218, 5, 36, 3, 221, 182, 36, 3, 221, 171, 36, 3, 222, 18, + 36, 3, 219, 59, 36, 3, 219, 41, 36, 3, 221, 220, 36, 3, 242, 47, 36, 3, + 241, 181, 36, 3, 241, 162, 36, 3, 240, 223, 36, 3, 240, 203, 36, 3, 241, + 239, 36, 3, 241, 221, 36, 3, 242, 37, 36, 3, 241, 69, 36, 3, 241, 54, 36, + 3, 241, 247, 36, 3, 233, 232, 36, 3, 233, 231, 36, 3, 233, 226, 36, 3, + 233, 225, 36, 3, 233, 222, 36, 3, 233, 221, 36, 3, 233, 228, 36, 3, 233, + 227, 36, 3, 233, 230, 36, 3, 233, 224, 36, 3, 233, 223, 36, 3, 233, 229, + 36, 3, 219, 232, 175, 116, 5, 211, 68, 175, 116, 5, 223, 156, 175, 116, + 5, 223, 79, 98, 1, 215, 28, 69, 116, 5, 249, 234, 176, 69, 116, 5, 249, + 234, 234, 133, 69, 116, 5, 249, 234, 234, 29, 69, 116, 5, 249, 234, 234, + 106, 69, 116, 5, 249, 234, 229, 5, 69, 116, 5, 249, 234, 251, 34, 69, + 116, 5, 249, 234, 250, 158, 69, 116, 5, 249, 234, 249, 239, 69, 116, 5, + 249, 234, 250, 87, 69, 116, 5, 249, 234, 227, 135, 69, 116, 5, 249, 234, + 248, 222, 69, 116, 5, 249, 234, 215, 145, 69, 116, 5, 249, 234, 247, 146, + 69, 116, 5, 249, 234, 215, 140, 69, 116, 5, 249, 234, 197, 69, 116, 5, + 249, 234, 217, 106, 69, 116, 5, 249, 234, 216, 209, 69, 116, 5, 249, 234, + 111, 69, 116, 5, 249, 234, 216, 157, 69, 116, 5, 249, 234, 228, 75, 69, + 116, 5, 249, 234, 252, 192, 69, 116, 5, 249, 234, 225, 148, 69, 116, 5, + 249, 234, 225, 17, 69, 116, 5, 249, 234, 225, 122, 69, 116, 5, 249, 234, + 230, 162, 69, 116, 5, 249, 234, 210, 244, 69, 116, 5, 249, 234, 222, 212, + 69, 116, 5, 249, 234, 232, 157, 69, 116, 5, 249, 234, 213, 138, 69, 116, + 5, 249, 234, 220, 103, 69, 116, 5, 249, 234, 218, 224, 69, 116, 5, 249, + 234, 206, 69, 116, 5, 249, 234, 162, 69, 116, 5, 249, 234, 233, 136, 69, + 25, 5, 249, 234, 224, 89, 69, 235, 244, 25, 5, 249, 234, 224, 31, 69, + 235, 244, 25, 5, 249, 234, 222, 101, 69, 235, 244, 25, 5, 249, 234, 222, + 94, 69, 235, 244, 25, 5, 249, 234, 224, 70, 69, 25, 5, 226, 205, 69, 25, + 5, 255, 35, 141, 1, 252, 0, 229, 78, 141, 1, 252, 0, 229, 28, 141, 1, + 252, 0, 228, 249, 141, 1, 252, 0, 229, 65, 141, 1, 252, 0, 229, 5, 56, 1, + 252, 0, 229, 78, 56, 1, 252, 0, 229, 28, 56, 1, 252, 0, 228, 249, 56, 1, + 252, 0, 229, 65, 56, 1, 252, 0, 229, 5, 56, 1, 254, 195, 250, 191, 56, 1, + 254, 195, 215, 119, 56, 1, 254, 195, 111, 56, 1, 254, 195, 226, 106, 58, + 1, 245, 21, 245, 20, 249, 183, 138, 130, 58, 1, 245, 20, 245, 21, 249, + 183, 138, 130, }; static unsigned char phrasebook_offset1[] = { @@ -15040,2044 +15042,2044 @@ static unsigned int phrasebook_offset2[] = { 39251, 39258, 39265, 39272, 39279, 39285, 39291, 39298, 39305, 39312, 0, 0, 0, 39319, 39322, 39325, 39328, 39333, 39336, 39339, 39342, 39345, 39348, 39351, 39355, 39358, 39361, 39364, 39367, 39370, 39375, 39378, - 39381, 39384, 39387, 39390, 39395, 39398, 39401, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39406, 39411, 39416, 39423, - 39431, 39436, 39441, 39445, 39449, 39454, 39461, 39468, 39472, 39477, - 39482, 39487, 39492, 39499, 39504, 39509, 39514, 39523, 39530, 39537, - 39541, 39546, 39552, 39557, 39564, 39573, 39582, 39586, 39590, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39594, 39598, 39606, 39610, 39614, - 39619, 39623, 39627, 39631, 39633, 39637, 39641, 39645, 39650, 39654, - 39658, 39666, 39669, 39673, 39676, 39679, 39685, 39689, 39692, 39698, - 39702, 39706, 39710, 39713, 39717, 39720, 39724, 39726, 39729, 39732, - 39736, 39738, 39742, 39745, 39748, 39753, 39758, 39765, 39768, 39771, - 39775, 39780, 39783, 39786, 39789, 39793, 39798, 39801, 39804, 39806, - 39809, 39812, 39815, 39819, 39824, 39827, 39831, 39835, 39839, 39843, - 39848, 39854, 39859, 39864, 39870, 39875, 39880, 39884, 39888, 39893, - 39897, 39901, 39904, 39906, 39911, 39917, 39924, 39931, 39938, 39945, - 39952, 39959, 39966, 39973, 39981, 39988, 39996, 40003, 40010, 40018, - 40026, 40031, 40036, 40041, 40046, 40051, 40056, 40061, 40066, 40071, - 40076, 40082, 40088, 40094, 40100, 40107, 40115, 40122, 40128, 40134, - 40140, 40146, 40152, 40158, 40164, 40170, 40176, 40183, 40190, 40197, - 40204, 40212, 40221, 40229, 40240, 40248, 40256, 40265, 40272, 40281, - 40290, 40298, 40307, 0, 0, 0, 0, 0, 0, 40315, 40317, 40320, 40322, 40325, - 40328, 40331, 40336, 40341, 40346, 40351, 40355, 40359, 40363, 40367, - 40372, 40378, 40383, 40389, 40394, 40399, 40404, 40410, 40415, 40421, - 40427, 40431, 40435, 40440, 40445, 40450, 40455, 40460, 40468, 40476, - 40484, 40492, 40499, 40507, 40514, 40521, 40530, 40542, 40548, 40554, - 40562, 40570, 40579, 40588, 40596, 40604, 40613, 40622, 40627, 40635, - 40640, 40645, 40651, 40656, 40662, 40669, 40676, 40681, 40687, 40692, - 40695, 40699, 40702, 40706, 40710, 40714, 40720, 40726, 40732, 40738, - 40742, 40746, 40750, 40754, 40760, 40766, 40770, 40775, 40779, 40784, - 40789, 40794, 40797, 40801, 40804, 40808, 40815, 40823, 40834, 40845, - 40850, 40859, 40866, 40875, 40884, 40888, 40894, 40902, 40906, 40911, - 40916, 40922, 40928, 40934, 40941, 40945, 40949, 40954, 40957, 40959, - 40963, 40967, 40975, 40979, 40981, 40983, 40987, 40995, 41000, 41006, - 41016, 41023, 41028, 41032, 41036, 41040, 41043, 41046, 41049, 41053, - 41057, 41061, 41065, 41069, 41072, 41076, 41080, 41083, 41085, 41088, - 41090, 41094, 41098, 41100, 41106, 41109, 41114, 41118, 41122, 41124, - 41126, 41128, 41131, 41135, 41139, 41143, 41147, 41151, 41157, 41163, - 41165, 41167, 41169, 41171, 41174, 41176, 41180, 41182, 41186, 41189, - 41195, 41199, 41203, 41206, 41209, 41213, 41219, 41223, 41233, 41243, - 41247, 41253, 41259, 41262, 41266, 41269, 41274, 41278, 41284, 41288, - 41300, 41308, 41312, 41316, 41322, 41326, 41329, 41331, 41334, 41338, - 41342, 41349, 41353, 41357, 41361, 41364, 41369, 41374, 41379, 41384, - 41389, 41394, 41402, 41410, 41414, 41418, 41420, 41425, 41429, 41433, - 41441, 41449, 41455, 41461, 41470, 41479, 41484, 41489, 41497, 41505, - 41507, 41509, 41514, 41519, 41525, 41531, 41537, 41543, 41547, 41551, - 41558, 41565, 41571, 41577, 41587, 41597, 41605, 41613, 41615, 41619, - 41623, 41628, 41633, 41640, 41647, 41650, 41653, 41656, 41659, 41662, - 41667, 41671, 41676, 41681, 41684, 41687, 41690, 41693, 41696, 41700, - 41703, 41706, 41709, 41712, 41714, 41716, 41718, 41720, 41728, 41736, - 41742, 41746, 41752, 41762, 41768, 41774, 41780, 41788, 41796, 41807, - 41811, 41815, 41817, 41823, 41825, 41827, 41829, 41831, 41837, 41840, - 41846, 41852, 41856, 41860, 41864, 41867, 41871, 41875, 41877, 41886, - 41895, 41900, 41905, 41911, 41917, 41923, 41926, 41929, 41932, 41935, - 41937, 41942, 41947, 41952, 41958, 41964, 41972, 41980, 41986, 41992, - 41998, 42004, 42013, 42022, 42031, 42040, 42049, 42058, 42067, 42076, - 42085, 42094, 42102, 42114, 42124, 42139, 42142, 42147, 42153, 42159, - 42166, 42180, 42195, 42201, 42207, 42214, 42220, 42228, 42234, 42247, - 42261, 42266, 42272, 42279, 42282, 42285, 42287, 42290, 42293, 42295, - 42297, 42301, 42304, 42307, 42310, 42313, 42318, 42323, 42328, 42333, - 42338, 42341, 42343, 42345, 42347, 42351, 42355, 42359, 42365, 42370, - 42372, 42374, 42379, 42384, 42389, 42394, 42399, 42404, 42406, 42408, - 42417, 42421, 42429, 42438, 42440, 42445, 42450, 42458, 42462, 42464, - 42468, 42470, 42474, 42478, 42482, 42484, 42486, 42488, 42495, 42504, - 42513, 42522, 42531, 42540, 42549, 42558, 42567, 42575, 42583, 42592, - 42601, 42610, 42619, 42627, 42635, 42644, 42653, 42662, 42672, 42681, - 42691, 42700, 42710, 42719, 42729, 42739, 42748, 42758, 42767, 42777, - 42786, 42796, 42805, 42814, 42823, 42832, 42841, 42851, 42860, 42869, - 42878, 42888, 42897, 42906, 42915, 42924, 42934, 42944, 42953, 42962, - 42970, 42978, 42985, 42993, 43002, 43013, 43022, 43031, 43040, 43047, - 43054, 43061, 43070, 43079, 43088, 43097, 43104, 43109, 43118, 43123, - 43126, 43134, 43137, 43142, 43147, 43150, 43153, 43161, 43164, 43169, - 43172, 43179, 43184, 43192, 43195, 43198, 43201, 43206, 43211, 43214, - 43217, 43225, 43228, 43235, 43242, 43246, 43250, 43255, 43260, 43266, - 43271, 43277, 43283, 43288, 43294, 43302, 43308, 43316, 43324, 43330, - 43338, 43346, 43355, 43363, 43369, 43377, 43386, 43394, 43398, 43403, - 43416, 43429, 43433, 43437, 43441, 43445, 43455, 43459, 43464, 43469, - 43474, 43479, 43484, 43489, 43499, 43509, 43517, 43527, 43537, 43545, - 43555, 43565, 43573, 43583, 43593, 43601, 43609, 43619, 43629, 43632, - 43635, 43638, 43643, 43647, 43653, 43660, 43667, 43675, 43682, 43686, - 43690, 43694, 43698, 43700, 43704, 43708, 43713, 43718, 43725, 43732, - 43735, 43742, 43744, 43746, 43750, 43754, 43759, 43765, 43771, 43777, - 43783, 43792, 43801, 43810, 43814, 43816, 43820, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 43827, 43831, 43838, 43845, 43852, 43859, 43863, 43867, - 43871, 43875, 43880, 43886, 43891, 43897, 43903, 43909, 43915, 43923, - 43930, 43937, 43944, 43951, 43956, 43962, 43971, 43975, 43982, 43986, - 43990, 43996, 44002, 44008, 44014, 44018, 44022, 44025, 44028, 44032, - 44039, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 44046, 44049, 44053, 44057, 44063, 44069, 44075, 44083, 44090, - 44094, 44102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 44107, 44110, 44113, 44116, 44119, 44122, 44125, 44128, 44131, 44134, - 44138, 44142, 44146, 44150, 44154, 44158, 44162, 44166, 44170, 44174, - 44178, 44181, 44184, 44187, 44190, 44193, 44196, 44199, 44202, 44205, - 44209, 44213, 44217, 44221, 44225, 44229, 44233, 44237, 44241, 44245, - 44249, 44255, 44261, 44267, 44274, 44281, 44288, 44295, 44302, 44309, - 44316, 44323, 44330, 44337, 44344, 44351, 44358, 44365, 44372, 44379, - 44386, 44391, 44397, 44403, 44409, 44414, 44420, 44426, 44432, 44437, - 44443, 44449, 44454, 44459, 44465, 44470, 44476, 44482, 44487, 44493, - 44499, 44504, 44510, 44516, 44522, 44528, 44534, 44539, 44545, 44551, - 44557, 44562, 44568, 44574, 44580, 44585, 44591, 44597, 44602, 44607, - 44613, 44618, 44624, 44630, 44635, 44641, 44647, 44652, 44658, 44664, - 44670, 44676, 44682, 44687, 44693, 44699, 44705, 44710, 44716, 44722, - 44728, 44733, 44739, 44745, 44750, 44755, 44761, 44766, 44772, 44778, - 44783, 44789, 44795, 44800, 44806, 44812, 44818, 44824, 44830, 44834, - 44839, 44844, 44849, 44854, 44859, 44864, 44869, 44874, 44879, 44884, - 44888, 44892, 44896, 44900, 44904, 44908, 44912, 44916, 44920, 44925, - 44930, 44935, 44940, 44945, 44950, 44959, 44968, 44977, 44986, 44995, - 45004, 45013, 45022, 45029, 45037, 45045, 45052, 45059, 45067, 45075, - 45082, 45089, 45097, 45105, 45112, 45119, 45127, 45135, 45142, 45149, - 45157, 45166, 45175, 45183, 45192, 45201, 45208, 45215, 45223, 45232, - 45241, 45249, 45258, 45267, 45274, 45281, 45290, 45299, 45307, 45315, - 45324, 45333, 45340, 45347, 45356, 45365, 45373, 45381, 45390, 45399, - 45406, 45413, 45422, 45431, 45439, 45448, 45457, 45465, 45475, 45485, - 45495, 45505, 45514, 45523, 45532, 45541, 45548, 45556, 45564, 45572, - 45580, 45585, 45590, 45599, 45607, 45614, 45623, 45631, 45638, 45647, - 45655, 45662, 45671, 45679, 45686, 45695, 45703, 45710, 45719, 45727, - 45734, 45743, 45751, 45758, 45767, 45775, 45782, 45791, 45799, 45806, - 45815, 45824, 45833, 45842, 45856, 45870, 45877, 45882, 45887, 45892, - 45897, 45902, 45907, 45912, 45917, 45925, 45933, 45941, 45949, 45954, - 45961, 45968, 45975, 45980, 45988, 45995, 46003, 46007, 46014, 46020, - 46027, 46031, 46037, 46043, 46049, 46053, 46056, 46060, 46064, 46071, - 46077, 46083, 46089, 46095, 46109, 46119, 46133, 46147, 46153, 46163, - 46177, 46180, 46183, 46190, 46198, 46203, 46208, 46216, 46228, 46240, - 46248, 46252, 46256, 46259, 46262, 46266, 46270, 46273, 46276, 46281, - 46286, 46292, 46298, 46303, 46308, 46314, 46320, 46325, 46330, 46335, - 46340, 46346, 46352, 46357, 46362, 46368, 46374, 46379, 46384, 46387, - 46390, 46399, 46401, 46403, 46406, 46410, 46416, 46418, 46421, 46428, - 46435, 46443, 46451, 46461, 46475, 46480, 46485, 46489, 46494, 46502, - 46510, 46519, 46528, 46537, 46546, 46551, 46556, 46562, 46568, 46574, - 46580, 46583, 46589, 46595, 46605, 46615, 46623, 46631, 46640, 46649, - 46653, 46661, 46669, 46677, 46685, 46694, 46703, 46712, 46721, 46726, - 46731, 46736, 46741, 46746, 46752, 46758, 46763, 46769, 46771, 46773, - 46775, 46777, 46780, 46783, 46785, 46787, 46789, 46793, 46797, 46799, - 46801, 46804, 46807, 46811, 46817, 46823, 46825, 46832, 46836, 46841, - 46846, 46848, 46858, 46864, 46870, 46876, 46882, 46888, 46894, 46899, - 46902, 46905, 46908, 46910, 46912, 46916, 46920, 46925, 46930, 46935, - 46938, 46942, 46947, 46950, 46954, 46959, 46964, 46969, 46974, 46979, - 46984, 46989, 46994, 46999, 47004, 47009, 47014, 47020, 47026, 47032, - 47034, 47037, 47039, 47042, 47044, 47046, 47048, 47050, 47052, 47054, - 47056, 47058, 47060, 47062, 47064, 47066, 47068, 47070, 47072, 47074, - 47076, 47081, 47086, 47091, 47096, 47101, 47106, 47111, 47116, 47121, - 47126, 47131, 47136, 47141, 47146, 47151, 47156, 47161, 47166, 47171, - 47176, 47180, 47184, 47188, 47194, 47200, 47205, 47210, 47215, 47220, - 47225, 47230, 47238, 47246, 47254, 47262, 47270, 47278, 47286, 47294, - 47300, 47305, 47310, 47315, 47318, 47322, 47326, 47330, 47334, 47338, - 47342, 47349, 47356, 47364, 47372, 47377, 47382, 47389, 47396, 47403, - 47410, 47413, 47416, 47421, 47423, 47427, 47432, 47434, 47436, 47438, - 47440, 47445, 47448, 47450, 47455, 47462, 47469, 47472, 47476, 47481, - 47486, 47494, 47500, 47506, 47518, 47525, 47532, 47537, 47542, 47548, - 47551, 47554, 47559, 47561, 47565, 47567, 47569, 47571, 47573, 47575, - 47577, 47582, 47584, 47586, 47588, 47590, 47594, 47596, 47599, 47604, - 47609, 47614, 47619, 47625, 47631, 47633, 47636, 47643, 47650, 47657, - 47664, 47668, 47672, 47674, 47676, 47680, 47686, 47691, 47693, 47697, - 47706, 47714, 47722, 47728, 47734, 47739, 47745, 47750, 47753, 47767, - 47770, 47775, 47780, 47786, 47796, 47798, 47804, 47810, 47814, 47821, - 47825, 47827, 47829, 47833, 47839, 47844, 47850, 47852, 47858, 47860, - 47866, 47868, 47870, 47875, 47877, 47881, 47886, 47888, 47893, 47898, - 47902, 47909, 0, 47919, 47925, 47928, 47934, 47937, 47942, 47947, 47951, - 47953, 47955, 47959, 47963, 47967, 47971, 47976, 47978, 47983, 47986, - 47989, 47992, 47996, 48000, 48005, 48009, 48014, 48019, 48023, 48028, - 48034, 48037, 48043, 48048, 48052, 48057, 48063, 48069, 48076, 48082, - 48089, 48096, 48098, 48105, 48109, 48115, 48121, 48126, 48132, 48136, - 48141, 48144, 48149, 48155, 48162, 48170, 48177, 48186, 48196, 48203, - 48209, 48213, 48220, 48225, 48234, 48237, 48240, 48249, 48259, 48266, - 48268, 48274, 48279, 48281, 48284, 48288, 48296, 48305, 48308, 48313, - 48318, 48326, 48334, 48342, 48350, 48356, 48362, 48368, 48376, 48381, - 48384, 48388, 48391, 48403, 48413, 48424, 48433, 48444, 48454, 48463, - 48469, 48477, 48481, 48489, 48493, 48501, 48508, 48515, 48524, 48533, - 48543, 48553, 48563, 48573, 48582, 48591, 48601, 48611, 48620, 48629, - 48635, 48641, 48647, 48653, 48659, 48665, 48671, 48677, 48683, 48690, - 48696, 48702, 48708, 48714, 48720, 48726, 48732, 48738, 48744, 48751, - 48758, 48765, 48772, 48779, 48786, 48793, 48800, 48807, 48814, 48822, - 48827, 48830, 48834, 48838, 48844, 48847, 48853, 48859, 48864, 48868, - 48873, 48879, 48886, 48889, 48896, 48903, 48907, 48916, 48925, 48930, - 48936, 48941, 48946, 48953, 48960, 48968, 48976, 48985, 48989, 48998, - 49003, 49007, 49014, 49018, 49025, 49033, 49038, 49046, 49050, 49055, - 49059, 49064, 49068, 49073, 49078, 49087, 49089, 49092, 49095, 49102, - 49109, 49114, 49122, 49128, 49134, 49139, 49142, 49147, 49152, 49157, - 49165, 49169, 49176, 49184, 49192, 49197, 49202, 49208, 49213, 49218, - 49224, 49229, 49232, 49236, 49240, 49247, 49256, 49261, 49270, 49279, - 49285, 49291, 49296, 49301, 49306, 49311, 49317, 49323, 49331, 49339, - 49345, 49351, 49356, 49361, 49368, 49375, 49381, 49384, 49387, 49391, - 49395, 49399, 49404, 49410, 49416, 49423, 49430, 49435, 49439, 49443, - 49447, 49451, 49455, 49459, 49463, 49467, 49471, 49475, 49479, 49483, - 49487, 49491, 49495, 49499, 49503, 49507, 49511, 49515, 49519, 49523, - 49527, 49531, 49535, 49539, 49543, 49547, 49551, 49555, 49559, 49563, - 49567, 49571, 49575, 49579, 49583, 49587, 49591, 49595, 49599, 49603, - 49607, 49611, 49615, 49619, 49623, 49627, 49631, 49635, 49639, 49643, - 49647, 49651, 49655, 49659, 49663, 49667, 49671, 49675, 49679, 49683, - 49687, 49691, 49695, 49699, 49703, 49707, 49711, 49715, 49719, 49723, - 49727, 49731, 49735, 49739, 49743, 49747, 49751, 49755, 49759, 49763, - 49767, 49771, 49775, 49779, 49783, 49787, 49791, 49795, 49799, 49803, - 49807, 49811, 49815, 49819, 49823, 49827, 49831, 49835, 49839, 49843, - 49847, 49851, 49855, 49859, 49863, 49867, 49871, 49875, 49879, 49883, - 49887, 49891, 49895, 49899, 49903, 49907, 49911, 49915, 49919, 49923, - 49927, 49931, 49935, 49939, 49943, 49947, 49951, 49955, 49959, 49963, - 49967, 49971, 49975, 49979, 49983, 49987, 49991, 49995, 49999, 50003, - 50007, 50011, 50015, 50019, 50023, 50027, 50031, 50035, 50039, 50043, - 50047, 50051, 50055, 50059, 50063, 50067, 50071, 50075, 50079, 50083, - 50087, 50091, 50095, 50099, 50103, 50107, 50111, 50115, 50119, 50123, - 50127, 50131, 50135, 50139, 50143, 50147, 50151, 50155, 50159, 50163, - 50167, 50171, 50175, 50179, 50183, 50187, 50191, 50195, 50199, 50203, - 50207, 50211, 50215, 50219, 50223, 50227, 50231, 50235, 50239, 50243, - 50247, 50251, 50255, 50259, 50263, 50267, 50271, 50275, 50279, 50283, - 50287, 50291, 50295, 50299, 50303, 50307, 50311, 50315, 50319, 50323, - 50327, 50331, 50335, 50339, 50343, 50347, 50351, 50355, 50359, 50363, - 50367, 50371, 50375, 50379, 50383, 50387, 50391, 50395, 50399, 50403, - 50407, 50411, 50415, 50419, 50423, 50427, 50431, 50435, 50439, 50443, - 50447, 50451, 50455, 50459, 50466, 50474, 50480, 50486, 50493, 50500, - 50506, 50512, 50518, 50524, 50529, 50534, 50539, 50544, 50550, 50556, - 50564, 50571, 50577, 50583, 50591, 50600, 50607, 50617, 50628, 50631, - 50634, 50638, 50642, 50649, 50656, 50667, 50678, 50688, 50698, 50705, - 50712, 50719, 50726, 50737, 50748, 50759, 50770, 50780, 50790, 50802, - 50814, 50825, 50836, 50848, 50860, 50869, 50879, 50889, 50900, 50911, - 50918, 50925, 50932, 50939, 50949, 50959, 50967, 50975, 50982, 50989, - 50996, 51003, 51010, 51015, 51020, 51026, 51034, 51044, 51054, 51064, - 51074, 51084, 51094, 51104, 51114, 51124, 51134, 51144, 51155, 51166, - 51176, 51186, 51197, 51208, 51218, 51228, 51239, 51250, 51260, 51270, - 51281, 51292, 51308, 51327, 51343, 51362, 51378, 51394, 51410, 51426, - 51437, 51449, 51460, 51472, 51491, 51510, 51518, 51524, 51531, 51538, - 51545, 51552, 51557, 51563, 51568, 51573, 51579, 51584, 51589, 51594, - 51599, 51604, 51611, 51616, 51623, 51628, 51633, 51637, 51641, 51648, - 51655, 51662, 51669, 51676, 51683, 51696, 51709, 51722, 51735, 51743, - 51751, 51757, 51763, 51770, 51777, 51784, 51791, 51795, 51800, 51808, - 51816, 51824, 51831, 51835, 51843, 51851, 51855, 51859, 51864, 51871, - 51879, 51887, 51906, 51925, 51944, 51963, 51982, 52001, 52020, 52039, - 52045, 52052, 52061, 52069, 52077, 52082, 52085, 52088, 52093, 52096, - 52115, 52122, 52128, 52134, 52138, 52141, 52144, 52147, 52159, 52172, - 52179, 52186, 52189, 52193, 52196, 52201, 52206, 52211, 52217, 52226, - 52233, 52240, 52248, 52255, 52262, 52265, 52271, 52277, 52280, 52283, - 52288, 52293, 52299, 52305, 52309, 52314, 52321, 52325, 52331, 52335, - 52339, 52347, 52359, 52368, 52372, 52374, 52383, 52392, 52398, 52401, - 52407, 52413, 52418, 52423, 52428, 52433, 52438, 52443, 52445, 52451, - 52456, 52463, 52467, 52473, 52476, 52480, 52487, 52494, 52496, 52498, - 52504, 52510, 52516, 52525, 52534, 52541, 52548, 52554, 52560, 52565, - 52570, 52575, 52581, 52587, 52592, 52599, 52603, 52607, 52620, 52633, - 52645, 52654, 52660, 52667, 52672, 52677, 52682, 52687, 52692, 52694, - 52701, 52708, 52715, 52722, 52729, 52737, 52743, 52748, 52754, 52760, - 52766, 52773, 52779, 52787, 52795, 52803, 52811, 52818, 52824, 52830, - 52839, 52843, 52852, 52861, 52870, 52878, 52882, 52888, 52895, 52902, - 52906, 52912, 52919, 52924, 52929, 52935, 52940, 52945, 52952, 52959, - 52964, 52969, 52977, 52985, 52995, 53005, 53012, 53019, 53023, 53027, - 53039, 53045, 53051, 53056, 53061, 53068, 53075, 53081, 53087, 53096, - 53104, 53112, 53119, 53126, 53133, 53139, 53146, 53152, 53159, 53166, - 53173, 53180, 53186, 53191, 53200, 53210, 53217, 53226, 53232, 53237, - 53242, 53252, 53258, 53264, 53270, 53278, 53283, 53290, 53297, 53308, - 53315, 53322, 53329, 53336, 53343, 53350, 53357, 53369, 53381, 53392, - 53403, 53416, 53429, 53434, 53439, 53448, 53457, 53464, 53471, 53480, - 53489, 53497, 53505, 53513, 53521, 53531, 53541, 53555, 53569, 53577, - 53585, 53597, 53609, 53617, 53625, 53635, 53645, 53650, 53655, 53664, - 53673, 53678, 53683, 53691, 53697, 53703, 53711, 53719, 53732, 53745, - 53749, 53753, 53760, 53767, 53774, 53782, 53790, 53799, 53808, 53814, - 53820, 53827, 53834, 53841, 53848, 53857, 53866, 53869, 53872, 53877, - 53882, 53888, 53894, 53901, 53908, 53918, 53928, 53935, 53942, 53950, - 53958, 53966, 53974, 53982, 53990, 53996, 54002, 54006, 54010, 54017, - 54024, 54029, 54034, 54039, 54044, 54050, 54064, 54071, 54078, 54082, - 54084, 54086, 54091, 54096, 54101, 54106, 54114, 54121, 54128, 54136, - 54148, 54156, 54164, 54175, 54179, 54183, 54189, 54197, 54210, 54217, - 54224, 54231, 54236, 54243, 54252, 54260, 54266, 54272, 54278, 54287, - 54296, 54304, 54313, 54318, 54321, 54326, 54332, 54338, 54344, 54350, - 54354, 54357, 54361, 54365, 54371, 54377, 54383, 54389, 54393, 54397, - 54404, 54411, 54418, 54425, 54432, 54439, 54449, 54459, 54466, 54473, - 54481, 54489, 54493, 54498, 54503, 54509, 54515, 54518, 54521, 54524, - 54527, 54531, 54536, 54541, 54546, 54551, 54556, 54560, 54564, 54568, - 54572, 54576, 54580, 54584, 54590, 54594, 54600, 54605, 54612, 54620, - 54627, 54635, 54642, 54650, 54659, 54666, 54676, 54687, 54693, 54702, - 54708, 54717, 54726, 54732, 54738, 54742, 54746, 54755, 54764, 54771, - 54778, 54787, 0, 0, 0, 54796, 54801, 54805, 54809, 54814, 54819, 54824, - 54832, 54840, 54843, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 39381, 39384, 39387, 39390, 39395, 39398, 39401, 39406, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39411, 39416, 39421, 39428, + 39436, 39441, 39446, 39450, 39454, 39459, 39466, 39473, 39477, 39482, + 39487, 39492, 39497, 39504, 39509, 39514, 39519, 39528, 39535, 39542, + 39546, 39551, 39557, 39562, 39569, 39578, 39587, 39591, 39595, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39599, 39603, 39611, 39615, 39619, + 39624, 39628, 39632, 39636, 39638, 39642, 39646, 39650, 39655, 39659, + 39663, 39671, 39674, 39678, 39681, 39684, 39690, 39694, 39697, 39703, + 39707, 39711, 39715, 39718, 39722, 39725, 39729, 39731, 39734, 39737, + 39741, 39743, 39747, 39750, 39753, 39758, 39763, 39770, 39773, 39776, + 39780, 39785, 39788, 39791, 39794, 39798, 39803, 39806, 39809, 39811, + 39814, 39817, 39820, 39824, 39829, 39832, 39836, 39840, 39844, 39848, + 39853, 39859, 39864, 39869, 39875, 39880, 39885, 39889, 39893, 39898, + 39902, 39906, 39909, 39911, 39916, 39922, 39929, 39936, 39943, 39950, + 39957, 39964, 39971, 39978, 39986, 39993, 40001, 40008, 40015, 40023, + 40031, 40036, 40041, 40046, 40051, 40056, 40061, 40066, 40071, 40076, + 40081, 40087, 40093, 40099, 40105, 40112, 40120, 40127, 40133, 40139, + 40145, 40151, 40157, 40163, 40169, 40175, 40181, 40188, 40195, 40202, + 40209, 40217, 40226, 40234, 40245, 40253, 40261, 40270, 40277, 40286, + 40295, 40303, 40312, 0, 0, 0, 0, 0, 0, 40320, 40322, 40325, 40327, 40330, + 40333, 40336, 40341, 40346, 40351, 40356, 40360, 40364, 40368, 40372, + 40377, 40383, 40388, 40394, 40399, 40404, 40409, 40415, 40420, 40426, + 40432, 40436, 40440, 40445, 40450, 40455, 40460, 40465, 40473, 40481, + 40489, 40497, 40504, 40512, 40519, 40526, 40535, 40547, 40553, 40559, + 40567, 40575, 40584, 40593, 40601, 40609, 40618, 40627, 40632, 40640, + 40645, 40650, 40656, 40661, 40667, 40674, 40681, 40686, 40692, 40697, + 40700, 40704, 40707, 40711, 40715, 40719, 40725, 40731, 40737, 40743, + 40747, 40751, 40755, 40759, 40765, 40771, 40775, 40780, 40784, 40789, + 40794, 40799, 40802, 40806, 40809, 40813, 40820, 40828, 40839, 40850, + 40855, 40864, 40871, 40880, 40889, 40893, 40899, 40907, 40911, 40916, + 40921, 40927, 40933, 40939, 40946, 40950, 40954, 40959, 40962, 40964, + 40968, 40972, 40980, 40984, 40986, 40988, 40992, 41000, 41005, 41011, + 41021, 41028, 41033, 41037, 41041, 41045, 41048, 41051, 41054, 41058, + 41062, 41066, 41070, 41074, 41077, 41081, 41085, 41088, 41090, 41093, + 41095, 41099, 41103, 41105, 41111, 41114, 41119, 41123, 41127, 41129, + 41131, 41133, 41136, 41140, 41144, 41148, 41152, 41156, 41162, 41168, + 41170, 41172, 41174, 41176, 41179, 41181, 41185, 41187, 41191, 41194, + 41200, 41204, 41208, 41211, 41214, 41218, 41224, 41228, 41238, 41248, + 41252, 41258, 41264, 41267, 41271, 41274, 41279, 41283, 41289, 41293, + 41305, 41313, 41317, 41321, 41327, 41331, 41334, 41336, 41339, 41343, + 41347, 41354, 41358, 41362, 41366, 41369, 41374, 41379, 41384, 41389, + 41394, 41399, 41407, 41415, 41419, 41423, 41425, 41430, 41434, 41438, + 41446, 41454, 41460, 41466, 41475, 41484, 41489, 41494, 41502, 41510, + 41512, 41514, 41519, 41524, 41530, 41536, 41542, 41548, 41552, 41556, + 41563, 41570, 41576, 41582, 41592, 41602, 41610, 41618, 41620, 41624, + 41628, 41633, 41638, 41645, 41652, 41655, 41658, 41661, 41664, 41667, + 41672, 41676, 41681, 41686, 41689, 41692, 41695, 41698, 41701, 41705, + 41708, 41711, 41714, 41717, 41719, 41721, 41723, 41725, 41733, 41741, + 41747, 41751, 41757, 41767, 41773, 41779, 41785, 41793, 41801, 41812, + 41816, 41820, 41822, 41828, 41830, 41832, 41834, 41836, 41842, 41845, + 41851, 41857, 41861, 41865, 41869, 41872, 41876, 41880, 41882, 41891, + 41900, 41905, 41910, 41916, 41922, 41928, 41931, 41934, 41937, 41940, + 41942, 41947, 41952, 41957, 41963, 41969, 41977, 41985, 41991, 41997, + 42003, 42009, 42018, 42027, 42036, 42045, 42054, 42063, 42072, 42081, + 42090, 42099, 42107, 42119, 42129, 42144, 42147, 42152, 42158, 42164, + 42171, 42185, 42200, 42206, 42212, 42219, 42225, 42233, 42239, 42252, + 42266, 42271, 42277, 42284, 42287, 42290, 42292, 42295, 42298, 42300, + 42302, 42306, 42309, 42312, 42315, 42318, 42323, 42328, 42333, 42338, + 42343, 42346, 42348, 42350, 42352, 42356, 42360, 42364, 42370, 42375, + 42377, 42379, 42384, 42389, 42394, 42399, 42404, 42409, 42411, 42413, + 42422, 42426, 42434, 42443, 42445, 42450, 42455, 42463, 42467, 42469, + 42473, 42475, 42479, 42483, 42487, 42489, 42491, 42493, 42500, 42509, + 42518, 42527, 42536, 42545, 42554, 42563, 42572, 42580, 42588, 42597, + 42606, 42615, 42624, 42632, 42640, 42649, 42658, 42667, 42677, 42686, + 42696, 42705, 42715, 42724, 42734, 42744, 42753, 42763, 42772, 42782, + 42791, 42801, 42810, 42819, 42828, 42837, 42846, 42856, 42865, 42874, + 42883, 42893, 42902, 42911, 42920, 42929, 42939, 42949, 42958, 42967, + 42975, 42983, 42990, 42998, 43007, 43018, 43027, 43036, 43045, 43052, + 43059, 43066, 43075, 43084, 43093, 43102, 43109, 43114, 43123, 43128, + 43131, 43139, 43142, 43147, 43152, 43155, 43158, 43166, 43169, 43174, + 43177, 43184, 43189, 43197, 43200, 43203, 43206, 43211, 43216, 43219, + 43222, 43230, 43233, 43240, 43247, 43251, 43255, 43260, 43265, 43271, + 43276, 43282, 43288, 43293, 43299, 43307, 43313, 43321, 43329, 43335, + 43343, 43351, 43360, 43368, 43374, 43382, 43391, 43399, 43403, 43408, + 43421, 43434, 43438, 43442, 43446, 43450, 43460, 43464, 43469, 43474, + 43479, 43484, 43489, 43494, 43504, 43514, 43522, 43532, 43542, 43550, + 43560, 43570, 43578, 43588, 43598, 43606, 43614, 43624, 43634, 43637, + 43640, 43643, 43648, 43652, 43658, 43665, 43672, 43680, 43687, 43691, + 43695, 43699, 43703, 43705, 43709, 43713, 43718, 43723, 43730, 43737, + 43740, 43747, 43749, 43751, 43755, 43759, 43764, 43770, 43776, 43782, + 43788, 43797, 43806, 43815, 43819, 43821, 43825, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 43832, 43836, 43843, 43850, 43857, 43864, 43868, 43872, + 43876, 43880, 43885, 43891, 43896, 43902, 43908, 43914, 43920, 43928, + 43935, 43942, 43949, 43956, 43961, 43967, 43976, 43980, 43987, 43991, + 43995, 44001, 44007, 44013, 44019, 44023, 44027, 44030, 44033, 44037, + 44044, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 44051, 44054, 44058, 44062, 44068, 44074, 44080, 44088, 44095, + 44099, 44107, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 44112, 44115, 44118, 44121, 44124, 44127, 44130, 44133, 44136, 44139, + 44143, 44147, 44151, 44155, 44159, 44163, 44167, 44171, 44175, 44179, + 44183, 44186, 44189, 44192, 44195, 44198, 44201, 44204, 44207, 44210, + 44214, 44218, 44222, 44226, 44230, 44234, 44238, 44242, 44246, 44250, + 44254, 44260, 44266, 44272, 44279, 44286, 44293, 44300, 44307, 44314, + 44321, 44328, 44335, 44342, 44349, 44356, 44363, 44370, 44377, 44384, + 44391, 44396, 44402, 44408, 44414, 44419, 44425, 44431, 44437, 44442, + 44448, 44454, 44459, 44464, 44470, 44475, 44481, 44487, 44492, 44498, + 44504, 44509, 44515, 44521, 44527, 44533, 44539, 44544, 44550, 44556, + 44562, 44567, 44573, 44579, 44585, 44590, 44596, 44602, 44607, 44612, + 44618, 44623, 44629, 44635, 44640, 44646, 44652, 44657, 44663, 44669, + 44675, 44681, 44687, 44692, 44698, 44704, 44710, 44715, 44721, 44727, + 44733, 44738, 44744, 44750, 44755, 44760, 44766, 44771, 44777, 44783, + 44788, 44794, 44800, 44805, 44811, 44817, 44823, 44829, 44835, 44839, + 44844, 44849, 44854, 44859, 44864, 44869, 44874, 44879, 44884, 44889, + 44893, 44897, 44901, 44905, 44909, 44913, 44917, 44921, 44925, 44930, + 44935, 44940, 44945, 44950, 44955, 44964, 44973, 44982, 44991, 45000, + 45009, 45018, 45027, 45034, 45042, 45050, 45057, 45064, 45072, 45080, + 45087, 45094, 45102, 45110, 45117, 45124, 45132, 45140, 45147, 45154, + 45162, 45171, 45180, 45188, 45197, 45206, 45213, 45220, 45228, 45237, + 45246, 45254, 45263, 45272, 45279, 45286, 45295, 45304, 45312, 45320, + 45329, 45338, 45345, 45352, 45361, 45370, 45378, 45386, 45395, 45404, + 45411, 45418, 45427, 45436, 45444, 45453, 45462, 45470, 45480, 45490, + 45500, 45510, 45519, 45528, 45537, 45546, 45553, 45561, 45569, 45577, + 45585, 45590, 45595, 45604, 45612, 45619, 45628, 45636, 45643, 45652, + 45660, 45667, 45676, 45684, 45691, 45700, 45708, 45715, 45724, 45732, + 45739, 45748, 45756, 45763, 45772, 45780, 45787, 45796, 45804, 45811, + 45820, 45829, 45838, 45847, 45861, 45875, 45882, 45887, 45892, 45897, + 45902, 45907, 45912, 45917, 45922, 45930, 45938, 45946, 45954, 45959, + 45966, 45973, 45980, 45985, 45993, 46000, 46008, 46012, 46019, 46025, + 46032, 46036, 46042, 46048, 46054, 46058, 46061, 46065, 46069, 46076, + 46082, 46088, 46094, 46100, 46114, 46124, 46138, 46152, 46158, 46168, + 46182, 46185, 46188, 46195, 46203, 46208, 46213, 46221, 46233, 46245, + 46253, 46257, 46261, 46264, 46267, 46271, 46275, 46278, 46281, 46286, + 46291, 46297, 46303, 46308, 46313, 46319, 46325, 46330, 46335, 46340, + 46345, 46351, 46357, 46362, 46367, 46373, 46379, 46384, 46389, 46392, + 46395, 46404, 46406, 46408, 46411, 46415, 46421, 46423, 46426, 46433, + 46440, 46448, 46456, 46466, 46480, 46485, 46490, 46494, 46499, 46507, + 46515, 46524, 46533, 46542, 46551, 46556, 46561, 46567, 46573, 46579, + 46585, 46588, 46594, 46600, 46610, 46620, 46628, 46636, 46645, 46654, + 46658, 46666, 46674, 46682, 46690, 46699, 46708, 46717, 46726, 46731, + 46736, 46741, 46746, 46751, 46757, 46763, 46768, 46774, 46776, 46778, + 46780, 46782, 46785, 46788, 46790, 46792, 46794, 46798, 46802, 46804, + 46806, 46809, 46812, 46816, 46822, 46828, 46830, 46837, 46841, 46846, + 46851, 46853, 46863, 46869, 46875, 46881, 46887, 46893, 46899, 46904, + 46907, 46910, 46913, 46915, 46917, 46921, 46925, 46930, 46935, 46940, + 46943, 46947, 46952, 46955, 46959, 46964, 46969, 46974, 46979, 46984, + 46989, 46994, 46999, 47004, 47009, 47014, 47019, 47025, 47031, 47037, + 47039, 47042, 47044, 47047, 47049, 47051, 47053, 47055, 47057, 47059, + 47061, 47063, 47065, 47067, 47069, 47071, 47073, 47075, 47077, 47079, + 47081, 47086, 47091, 47096, 47101, 47106, 47111, 47116, 47121, 47126, + 47131, 47136, 47141, 47146, 47151, 47156, 47161, 47166, 47171, 47176, + 47181, 47185, 47189, 47193, 47199, 47205, 47210, 47215, 47220, 47225, + 47230, 47235, 47243, 47251, 47259, 47267, 47275, 47283, 47291, 47299, + 47305, 47310, 47315, 47320, 47323, 47327, 47331, 47335, 47339, 47343, + 47347, 47354, 47361, 47369, 47377, 47382, 47387, 47394, 47401, 47408, + 47415, 47418, 47421, 47426, 47428, 47432, 47437, 47439, 47441, 47443, + 47445, 47450, 47453, 47455, 47460, 47467, 47474, 47477, 47481, 47486, + 47491, 47499, 47505, 47511, 47523, 47530, 47537, 47542, 47547, 47553, + 47556, 47559, 47564, 47566, 47570, 47572, 47574, 47576, 47578, 47580, + 47582, 47587, 47589, 47591, 47593, 47595, 47599, 47601, 47604, 47609, + 47614, 47619, 47624, 47630, 47636, 47638, 47641, 47648, 47655, 47662, + 47669, 47673, 47677, 47679, 47681, 47685, 47691, 47696, 47698, 47702, + 47711, 47719, 47727, 47733, 47739, 47744, 47750, 47755, 47758, 47772, + 47775, 47780, 47785, 47791, 47801, 47803, 47809, 47815, 47819, 47826, + 47830, 47832, 47834, 47838, 47844, 47849, 47855, 47857, 47863, 47865, + 47871, 47873, 47875, 47880, 47882, 47886, 47891, 47893, 47898, 47903, + 47907, 47914, 0, 47924, 47930, 47933, 47939, 47942, 47947, 47952, 47956, + 47958, 47960, 47964, 47968, 47972, 47976, 47981, 47983, 47988, 47991, + 47994, 47997, 48001, 48005, 48010, 48014, 48019, 48024, 48028, 48033, + 48039, 48042, 48048, 48053, 48057, 48062, 48068, 48074, 48081, 48087, + 48094, 48101, 48103, 48110, 48114, 48120, 48126, 48131, 48137, 48141, + 48146, 48149, 48154, 48160, 48167, 48175, 48182, 48191, 48201, 48208, + 48214, 48218, 48225, 48230, 48239, 48242, 48245, 48254, 48264, 48271, + 48273, 48279, 48284, 48286, 48289, 48293, 48301, 48310, 48313, 48318, + 48323, 48331, 48339, 48347, 48355, 48361, 48367, 48373, 48381, 48386, + 48389, 48393, 48396, 48408, 48418, 48429, 48438, 48449, 48459, 48468, + 48474, 48482, 48486, 48494, 48498, 48506, 48513, 48520, 48529, 48538, + 48548, 48558, 48568, 48578, 48587, 48596, 48606, 48616, 48625, 48634, + 48640, 48646, 48652, 48658, 48664, 48670, 48676, 48682, 48688, 48695, + 48701, 48707, 48713, 48719, 48725, 48731, 48737, 48743, 48749, 48756, + 48763, 48770, 48777, 48784, 48791, 48798, 48805, 48812, 48819, 48827, + 48832, 48835, 48839, 48843, 48849, 48852, 48858, 48864, 48869, 48873, + 48878, 48884, 48891, 48894, 48901, 48908, 48912, 48921, 48930, 48935, + 48941, 48946, 48951, 48958, 48965, 48973, 48981, 48990, 48994, 49003, + 49008, 49012, 49019, 49023, 49030, 49038, 49043, 49051, 49055, 49060, + 49064, 49069, 49073, 49078, 49083, 49092, 49094, 49097, 49100, 49107, + 49114, 49119, 49127, 49133, 49139, 49144, 49147, 49152, 49157, 49162, + 49170, 49174, 49181, 49189, 49197, 49202, 49207, 49213, 49218, 49223, + 49229, 49234, 49237, 49241, 49245, 49252, 49261, 49266, 49275, 49284, + 49290, 49296, 49301, 49306, 49311, 49316, 49322, 49328, 49336, 49344, + 49350, 49356, 49361, 49366, 49373, 49380, 49386, 49389, 49392, 49396, + 49400, 49404, 49409, 49415, 49421, 49428, 49435, 49440, 49444, 49448, + 49452, 49456, 49460, 49464, 49468, 49472, 49476, 49480, 49484, 49488, + 49492, 49496, 49500, 49504, 49508, 49512, 49516, 49520, 49524, 49528, + 49532, 49536, 49540, 49544, 49548, 49552, 49556, 49560, 49564, 49568, + 49572, 49576, 49580, 49584, 49588, 49592, 49596, 49600, 49604, 49608, + 49612, 49616, 49620, 49624, 49628, 49632, 49636, 49640, 49644, 49648, + 49652, 49656, 49660, 49664, 49668, 49672, 49676, 49680, 49684, 49688, + 49692, 49696, 49700, 49704, 49708, 49712, 49716, 49720, 49724, 49728, + 49732, 49736, 49740, 49744, 49748, 49752, 49756, 49760, 49764, 49768, + 49772, 49776, 49780, 49784, 49788, 49792, 49796, 49800, 49804, 49808, + 49812, 49816, 49820, 49824, 49828, 49832, 49836, 49840, 49844, 49848, + 49852, 49856, 49860, 49864, 49868, 49872, 49876, 49880, 49884, 49888, + 49892, 49896, 49900, 49904, 49908, 49912, 49916, 49920, 49924, 49928, + 49932, 49936, 49940, 49944, 49948, 49952, 49956, 49960, 49964, 49968, + 49972, 49976, 49980, 49984, 49988, 49992, 49996, 50000, 50004, 50008, + 50012, 50016, 50020, 50024, 50028, 50032, 50036, 50040, 50044, 50048, + 50052, 50056, 50060, 50064, 50068, 50072, 50076, 50080, 50084, 50088, + 50092, 50096, 50100, 50104, 50108, 50112, 50116, 50120, 50124, 50128, + 50132, 50136, 50140, 50144, 50148, 50152, 50156, 50160, 50164, 50168, + 50172, 50176, 50180, 50184, 50188, 50192, 50196, 50200, 50204, 50208, + 50212, 50216, 50220, 50224, 50228, 50232, 50236, 50240, 50244, 50248, + 50252, 50256, 50260, 50264, 50268, 50272, 50276, 50280, 50284, 50288, + 50292, 50296, 50300, 50304, 50308, 50312, 50316, 50320, 50324, 50328, + 50332, 50336, 50340, 50344, 50348, 50352, 50356, 50360, 50364, 50368, + 50372, 50376, 50380, 50384, 50388, 50392, 50396, 50400, 50404, 50408, + 50412, 50416, 50420, 50424, 50428, 50432, 50436, 50440, 50444, 50448, + 50452, 50456, 50460, 50464, 50471, 50479, 50485, 50491, 50498, 50505, + 50511, 50517, 50523, 50529, 50534, 50539, 50544, 50549, 50555, 50561, + 50569, 50576, 50582, 50588, 50596, 50605, 50612, 50622, 50633, 50636, + 50639, 50643, 50647, 50654, 50661, 50672, 50683, 50693, 50703, 50710, + 50717, 50724, 50731, 50742, 50753, 50764, 50775, 50785, 50795, 50807, + 50819, 50830, 50841, 50853, 50865, 50874, 50884, 50894, 50905, 50916, + 50923, 50930, 50937, 50944, 50954, 50964, 50972, 50980, 50987, 50994, + 51001, 51008, 51015, 51020, 51025, 51031, 51039, 51049, 51059, 51069, + 51079, 51089, 51099, 51109, 51119, 51129, 51139, 51149, 51160, 51171, + 51181, 51191, 51202, 51213, 51223, 51233, 51244, 51255, 51265, 51275, + 51286, 51297, 51313, 51332, 51348, 51367, 51383, 51399, 51415, 51431, + 51442, 51454, 51465, 51477, 51496, 51515, 51523, 51529, 51536, 51543, + 51550, 51557, 51562, 51568, 51573, 51578, 51584, 51589, 51594, 51599, + 51604, 51609, 51616, 51621, 51628, 51633, 51638, 51642, 51646, 51653, + 51660, 51667, 51674, 51681, 51688, 51701, 51714, 51727, 51740, 51748, + 51756, 51762, 51768, 51775, 51782, 51789, 51796, 51800, 51805, 51813, + 51821, 51829, 51836, 51840, 51848, 51856, 51860, 51864, 51869, 51876, + 51884, 51892, 51911, 51930, 51949, 51968, 51987, 52006, 52025, 52044, + 52050, 52057, 52066, 52074, 52082, 52087, 52090, 52093, 52098, 52101, + 52120, 52127, 52133, 52139, 52143, 52146, 52149, 52152, 52164, 52177, + 52184, 52191, 52194, 52198, 52201, 52206, 52211, 52216, 52222, 52231, + 52238, 52245, 52253, 52260, 52267, 52270, 52276, 52282, 52285, 52288, + 52293, 52298, 52304, 52310, 52314, 52319, 52326, 52330, 52336, 52340, + 52344, 52352, 52364, 52373, 52377, 52379, 52388, 52397, 52403, 52406, + 52412, 52418, 52423, 52428, 52433, 52438, 52443, 52448, 52450, 52456, + 52461, 52468, 52472, 52478, 52481, 52485, 52492, 52499, 52501, 52503, + 52509, 52515, 52521, 52530, 52539, 52546, 52553, 52559, 52565, 52570, + 52575, 52580, 52586, 52592, 52597, 52604, 52608, 52612, 52625, 52638, + 52650, 52659, 52665, 52672, 52677, 52682, 52687, 52692, 52697, 52699, + 52706, 52713, 52720, 52727, 52734, 52742, 52748, 52753, 52759, 52765, + 52771, 52778, 52784, 52792, 52800, 52808, 52816, 52823, 52829, 52835, + 52844, 52848, 52857, 52866, 52875, 52883, 52887, 52893, 52900, 52907, + 52911, 52917, 52924, 52929, 52934, 52940, 52945, 52950, 52957, 52964, + 52969, 52974, 52982, 52990, 53000, 53010, 53017, 53024, 53028, 53032, + 53044, 53050, 53056, 53061, 53066, 53073, 53080, 53086, 53092, 53101, + 53109, 53117, 53124, 53131, 53138, 53144, 53151, 53157, 53164, 53171, + 53178, 53185, 53191, 53196, 53205, 53215, 53222, 53231, 53237, 53242, + 53247, 53257, 53263, 53269, 53275, 53283, 53288, 53295, 53302, 53313, + 53320, 53327, 53334, 53341, 53348, 53355, 53362, 53374, 53386, 53397, + 53408, 53421, 53434, 53439, 53444, 53453, 53462, 53469, 53476, 53485, + 53494, 53502, 53510, 53518, 53526, 53536, 53546, 53560, 53574, 53582, + 53590, 53602, 53614, 53622, 53630, 53640, 53650, 53655, 53660, 53669, + 53678, 53683, 53688, 53696, 53702, 53708, 53716, 53724, 53737, 53750, + 53754, 53758, 53765, 53772, 53779, 53787, 53795, 53804, 53813, 53819, + 53825, 53832, 53839, 53846, 53853, 53862, 53871, 53874, 53877, 53882, + 53887, 53893, 53899, 53906, 53913, 53923, 53933, 53940, 53947, 53955, + 53963, 53971, 53979, 53987, 53995, 54001, 54007, 54011, 54015, 54022, + 54029, 54034, 54039, 54044, 54049, 54055, 54069, 54076, 54083, 54087, + 54089, 54091, 54096, 54101, 54106, 54111, 54119, 54126, 54133, 54141, + 54153, 54161, 54169, 54180, 54184, 54188, 54194, 54202, 54215, 54222, + 54229, 54236, 54241, 54248, 54257, 54265, 54271, 54277, 54283, 54292, + 54301, 54309, 54318, 54323, 54326, 54331, 54337, 54343, 54349, 54355, + 54359, 54362, 54366, 54370, 54376, 54382, 54388, 54394, 54398, 54402, + 54409, 54416, 54423, 54430, 54437, 54444, 54454, 54464, 54471, 54478, + 54486, 54494, 54498, 54503, 54508, 54514, 54520, 54523, 54526, 54529, + 54532, 54536, 54541, 54546, 54551, 54556, 54561, 54565, 54569, 54573, + 54577, 54581, 54585, 54589, 54595, 54599, 54605, 54610, 54617, 54625, + 54632, 54640, 54647, 54655, 54664, 54671, 54681, 54692, 54698, 54707, + 54713, 54722, 54731, 54737, 54743, 54747, 54751, 54760, 54769, 54776, + 54783, 54792, 0, 0, 0, 54801, 54806, 54810, 54814, 54819, 54824, 54829, + 54837, 54845, 54848, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 54847, 54852, 54857, 54862, 54867, 54872, 54877, 54882, - 54887, 54892, 54897, 54903, 54907, 54912, 54917, 54922, 54927, 54932, - 54937, 54942, 54947, 54952, 54957, 54962, 54967, 54972, 54977, 54982, - 54987, 54992, 54997, 55002, 55007, 55012, 55017, 55023, 55028, 55034, - 55043, 55048, 55056, 55063, 55072, 55077, 55082, 55087, 55093, 0, 55100, - 55105, 55110, 55115, 55120, 55125, 55130, 55135, 55140, 55145, 55150, - 55156, 55160, 55165, 55170, 55175, 55180, 55185, 55190, 55195, 55200, - 55205, 55210, 55215, 55220, 55225, 55230, 55235, 55240, 55245, 55250, - 55255, 55260, 55265, 55270, 55276, 55281, 55287, 55296, 55301, 55309, - 55316, 55325, 55330, 55335, 55340, 55346, 0, 55353, 55361, 55369, 55378, - 55385, 55393, 55399, 55408, 55416, 55424, 55432, 55440, 55448, 55456, - 55461, 55468, 55474, 55481, 55489, 55496, 55503, 55511, 55517, 55523, - 55530, 55537, 55547, 55557, 55564, 55571, 55576, 55586, 55596, 55601, - 55606, 55611, 55616, 55621, 55626, 55631, 55636, 55641, 55646, 55651, - 55656, 55661, 55666, 55671, 55676, 55681, 55686, 55691, 55696, 55701, - 55706, 55711, 55716, 55721, 55726, 55731, 55736, 55741, 55746, 55750, - 55754, 55759, 55764, 55769, 55774, 55779, 55784, 55789, 55794, 55799, - 55804, 55809, 55814, 55819, 55824, 55829, 55834, 55839, 55844, 55851, - 55858, 55865, 55872, 55879, 55886, 55893, 55900, 55907, 55914, 55921, - 55928, 55935, 55942, 55947, 55952, 55959, 55966, 55973, 55980, 55987, - 55994, 56001, 56008, 56015, 56022, 56029, 56036, 56042, 56048, 56054, - 56060, 56067, 56074, 56081, 56088, 56095, 56102, 56109, 56116, 56123, - 56130, 56138, 56146, 56154, 56162, 56170, 56178, 56186, 56194, 56198, - 56204, 56210, 56214, 56220, 56226, 56232, 56239, 56246, 56253, 56260, - 56265, 56271, 56277, 56284, 0, 0, 0, 0, 0, 56291, 56299, 56308, 56317, - 56325, 56331, 56336, 56341, 56346, 56351, 56356, 56361, 56366, 56371, - 56376, 56381, 56386, 56391, 56396, 56401, 56406, 56411, 56416, 56421, - 56426, 56431, 56436, 56441, 56446, 56451, 56456, 56461, 56466, 56471, - 56476, 56481, 56486, 56491, 56496, 56501, 56506, 56511, 56516, 56521, - 56526, 0, 56531, 0, 0, 0, 0, 0, 56536, 0, 0, 56541, 56545, 56550, 56555, - 56560, 56565, 56574, 56579, 56584, 56589, 56594, 56599, 56604, 56609, - 56614, 56621, 56626, 56631, 56640, 56647, 56652, 56657, 56662, 56669, - 56674, 56681, 56686, 56691, 56698, 56705, 56710, 56715, 56720, 56727, - 56734, 56739, 56744, 56749, 56754, 56759, 56766, 56773, 56778, 56783, - 56788, 56793, 56798, 56803, 56808, 56813, 56818, 56823, 56828, 56835, - 56840, 56845, 0, 0, 0, 0, 0, 0, 0, 56850, 56857, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 56862, 56867, 56871, 56875, 56879, 56883, 56887, 56891, - 56895, 56899, 56903, 56907, 56913, 56917, 56921, 56925, 56929, 56933, - 56937, 56941, 56945, 56949, 56953, 56957, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 56961, 56965, 56969, 56973, 56977, 56981, 56985, 0, 56989, 56993, 56997, - 57001, 57005, 57009, 57013, 0, 57017, 57021, 57025, 57029, 57033, 57037, - 57041, 0, 57045, 57049, 57053, 57057, 57061, 57065, 57069, 0, 57073, - 57077, 57081, 57085, 57089, 57093, 57097, 0, 57101, 57105, 57109, 57113, - 57117, 57121, 57125, 0, 57129, 57133, 57137, 57141, 57145, 57149, 57153, - 0, 57157, 57161, 57165, 57169, 57173, 57177, 57181, 0, 57185, 57190, - 57195, 57200, 57205, 57210, 57215, 57219, 57224, 57229, 57234, 57238, - 57243, 57248, 57253, 57258, 57262, 57267, 57272, 57277, 57282, 57287, - 57292, 57296, 57301, 57306, 57313, 57318, 57323, 57329, 57336, 57343, - 57352, 57359, 57368, 57372, 57376, 57382, 57388, 57394, 57402, 57408, - 57412, 57416, 57420, 57426, 57432, 57436, 57438, 57442, 57448, 57450, - 57454, 57458, 57462, 57468, 57473, 57477, 57481, 57486, 57492, 57497, - 57502, 57507, 57512, 57519, 57526, 57531, 57536, 57541, 57546, 57551, - 57556, 57560, 57564, 57571, 57578, 57584, 57588, 57593, 57595, 57599, - 57607, 57611, 57615, 57619, 57623, 57629, 57635, 57639, 57645, 57649, 0, + 0, 0, 0, 0, 0, 54852, 54857, 54862, 54867, 54872, 54877, 54882, 54887, + 54892, 54897, 54902, 54908, 54912, 54917, 54922, 54927, 54932, 54937, + 54942, 54947, 54952, 54957, 54962, 54967, 54972, 54977, 54982, 54987, + 54992, 54997, 55002, 55007, 55012, 55017, 55022, 55028, 55033, 55039, + 55048, 55053, 55061, 55068, 55077, 55082, 55087, 55092, 55098, 0, 55105, + 55110, 55115, 55120, 55125, 55130, 55135, 55140, 55145, 55150, 55155, + 55161, 55165, 55170, 55175, 55180, 55185, 55190, 55195, 55200, 55205, + 55210, 55215, 55220, 55225, 55230, 55235, 55240, 55245, 55250, 55255, + 55260, 55265, 55270, 55275, 55281, 55286, 55292, 55301, 55306, 55314, + 55321, 55330, 55335, 55340, 55345, 55351, 0, 55358, 55366, 55374, 55383, + 55390, 55398, 55404, 55413, 55421, 55429, 55437, 55445, 55453, 55461, + 55466, 55473, 55479, 55486, 55494, 55501, 55508, 55516, 55522, 55528, + 55535, 55542, 55552, 55562, 55569, 55576, 55581, 55591, 55601, 55606, + 55611, 55616, 55621, 55626, 55631, 55636, 55641, 55646, 55651, 55656, + 55661, 55666, 55671, 55676, 55681, 55686, 55691, 55696, 55701, 55706, + 55711, 55716, 55721, 55726, 55731, 55736, 55741, 55746, 55751, 55755, + 55759, 55764, 55769, 55774, 55779, 55784, 55789, 55794, 55799, 55804, + 55809, 55814, 55819, 55824, 55829, 55834, 55839, 55844, 55849, 55856, + 55863, 55870, 55877, 55884, 55891, 55898, 55905, 55912, 55919, 55926, + 55933, 55940, 55947, 55952, 55957, 55964, 55971, 55978, 55985, 55992, + 55999, 56006, 56013, 56020, 56027, 56034, 56041, 56047, 56053, 56059, + 56065, 56072, 56079, 56086, 56093, 56100, 56107, 56114, 56121, 56128, + 56135, 56143, 56151, 56159, 56167, 56175, 56183, 56191, 56199, 56203, + 56209, 56215, 56219, 56225, 56231, 56237, 56244, 56251, 56258, 56265, + 56270, 56276, 56282, 56289, 0, 0, 0, 0, 0, 56296, 56304, 56313, 56322, + 56330, 56336, 56341, 56346, 56351, 56356, 56361, 56366, 56371, 56376, + 56381, 56386, 56391, 56396, 56401, 56406, 56411, 56416, 56421, 56426, + 56431, 56436, 56441, 56446, 56451, 56456, 56461, 56466, 56471, 56476, + 56481, 56486, 56491, 56496, 56501, 56506, 56511, 56516, 56521, 56526, + 56531, 0, 56536, 0, 0, 0, 0, 0, 56541, 0, 0, 56546, 56550, 56555, 56560, + 56565, 56570, 56579, 56584, 56589, 56594, 56599, 56604, 56609, 56614, + 56619, 56626, 56631, 56636, 56645, 56652, 56657, 56662, 56667, 56674, + 56679, 56686, 56691, 56696, 56703, 56710, 56715, 56720, 56725, 56732, + 56739, 56744, 56749, 56754, 56759, 56764, 56771, 56778, 56783, 56788, + 56793, 56798, 56803, 56808, 56813, 56818, 56823, 56828, 56833, 56840, + 56845, 56850, 0, 0, 0, 0, 0, 0, 0, 56855, 56862, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 56867, 56872, 56876, 56880, 56884, 56888, 56892, 56896, + 56900, 56904, 56908, 56912, 56918, 56922, 56926, 56930, 56934, 56938, + 56942, 56946, 56950, 56954, 56958, 56962, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 56966, 56970, 56974, 56978, 56982, 56986, 56990, 0, 56994, 56998, 57002, + 57006, 57010, 57014, 57018, 0, 57022, 57026, 57030, 57034, 57038, 57042, + 57046, 0, 57050, 57054, 57058, 57062, 57066, 57070, 57074, 0, 57078, + 57082, 57086, 57090, 57094, 57098, 57102, 0, 57106, 57110, 57114, 57118, + 57122, 57126, 57130, 0, 57134, 57138, 57142, 57146, 57150, 57154, 57158, + 0, 57162, 57166, 57170, 57174, 57178, 57182, 57186, 0, 57190, 57195, + 57200, 57205, 57210, 57215, 57220, 57224, 57229, 57234, 57239, 57243, + 57248, 57253, 57258, 57263, 57267, 57272, 57277, 57282, 57287, 57292, + 57297, 57301, 57306, 57311, 57318, 57323, 57328, 57334, 57341, 57348, + 57357, 57364, 57373, 57377, 57381, 57387, 57393, 57399, 57407, 57413, + 57417, 57421, 57425, 57431, 57437, 57441, 57443, 57447, 57453, 57455, + 57459, 57463, 57467, 57473, 57478, 57482, 57486, 57491, 57497, 57502, + 57507, 57512, 57517, 57524, 57531, 57536, 57541, 57546, 57551, 57556, + 57561, 57565, 57569, 57576, 57583, 57589, 57593, 57598, 57600, 57604, + 57612, 57616, 57620, 57624, 57628, 57634, 57640, 57644, 57650, 57654, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57653, 57657, - 57661, 57666, 57671, 57676, 57680, 57684, 57688, 57693, 57698, 57702, - 57706, 57710, 57714, 57719, 57724, 57729, 57734, 57738, 57742, 57747, - 57752, 57757, 57762, 57766, 0, 57770, 57774, 57778, 57782, 57786, 57790, - 57794, 57799, 57804, 57808, 57813, 57818, 57827, 57831, 57835, 57839, - 57846, 57850, 57855, 57860, 57864, 57868, 57874, 57879, 57884, 57889, - 57894, 57898, 57902, 57906, 57910, 57914, 57919, 57924, 57928, 57932, - 57937, 57942, 57947, 57951, 57955, 57960, 57965, 57971, 57977, 57981, - 57987, 57993, 57997, 58003, 58009, 58014, 58019, 58023, 58029, 58033, - 58037, 58043, 58049, 58054, 58059, 58063, 58067, 58075, 58081, 58087, - 58093, 58098, 58103, 58108, 58114, 58118, 58124, 58128, 58132, 58138, - 58144, 58150, 58156, 58162, 58168, 58174, 58180, 58186, 58192, 58198, - 58204, 58208, 58214, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58220, 58223, - 58227, 58231, 58235, 58239, 58242, 58245, 58249, 58253, 58257, 58261, - 58264, 58269, 58273, 58277, 58281, 58286, 58290, 58294, 58298, 58302, - 58308, 58314, 58318, 58322, 58326, 58330, 58334, 58338, 58342, 58346, - 58350, 58354, 58358, 58364, 58368, 58372, 58376, 58380, 58384, 58388, - 58392, 58396, 58400, 58404, 58408, 58412, 58416, 58420, 58424, 58428, - 58434, 58440, 58445, 58450, 58454, 58458, 58462, 58466, 58470, 58474, - 58478, 58482, 58486, 58490, 58494, 58498, 58502, 58506, 58510, 58514, - 58518, 58522, 58526, 58530, 58534, 58538, 58542, 58546, 58552, 58556, - 58560, 58564, 58568, 58572, 58576, 58580, 58584, 58589, 58596, 58600, - 58604, 58608, 58612, 58616, 58620, 58624, 58628, 58632, 58636, 58640, - 58644, 58651, 58655, 58661, 58665, 58669, 58673, 58677, 58681, 58684, - 58688, 58692, 58696, 58700, 58704, 58708, 58712, 58716, 58720, 58724, - 58728, 58732, 58736, 58740, 58744, 58748, 58752, 58756, 58760, 58764, - 58768, 58772, 58776, 58780, 58784, 58788, 58792, 58796, 58800, 58804, - 58808, 58812, 58818, 58822, 58826, 58830, 58834, 58838, 58842, 58846, - 58850, 58854, 58858, 58862, 58866, 58870, 58874, 58878, 58882, 58886, - 58890, 58894, 58898, 58902, 58906, 58910, 58914, 58918, 58922, 58926, - 58934, 58938, 58942, 58946, 58950, 58954, 58960, 58964, 58968, 58972, - 58976, 58980, 58984, 58988, 58992, 58996, 59000, 59004, 59008, 59012, - 59018, 59022, 59026, 59030, 59034, 59038, 59042, 59046, 59050, 59054, - 59058, 59062, 59066, 59070, 59074, 59078, 59082, 59086, 59090, 59094, - 59098, 59102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 59106, 59115, 59123, 59135, 59146, 59154, 59163, 59172, - 59182, 59194, 59206, 59218, 0, 0, 0, 0, 59224, 59227, 59230, 59235, - 59238, 59245, 59249, 59253, 59257, 59261, 59265, 59270, 59275, 59279, - 59283, 59288, 59293, 59298, 59303, 59306, 59309, 59315, 59321, 59326, - 59331, 59338, 59345, 59349, 59353, 59357, 59365, 59371, 59378, 59383, - 59388, 59393, 59398, 59403, 59408, 59413, 59418, 59423, 59428, 59433, - 59438, 59443, 59448, 59454, 59459, 59463, 59469, 59480, 59490, 59505, - 59515, 59519, 59529, 59535, 59541, 59547, 59552, 59555, 59560, 59564, 0, - 59570, 59574, 59577, 59581, 59584, 59588, 59591, 59595, 59598, 59602, - 59605, 59608, 59612, 59616, 59620, 59624, 59628, 59632, 59636, 59640, - 59644, 59647, 59651, 59655, 59659, 59663, 59667, 59671, 59675, 59679, - 59683, 59687, 59691, 59695, 59699, 59704, 59708, 59712, 59716, 59720, - 59723, 59727, 59730, 59734, 59738, 59742, 59746, 59749, 59753, 59756, - 59760, 59764, 59768, 59772, 59776, 59780, 59784, 59788, 59792, 59796, - 59800, 59804, 59807, 59811, 59815, 59819, 59823, 59827, 59830, 59835, - 59839, 59844, 59848, 59851, 59855, 59859, 59863, 59867, 59872, 59876, - 59880, 59884, 59888, 59892, 59896, 59900, 0, 0, 59905, 59913, 59921, - 59928, 59935, 59939, 59945, 59950, 59955, 59959, 59962, 59966, 59969, - 59973, 59976, 59980, 59983, 59987, 59990, 59993, 59997, 60001, 60005, - 60009, 60013, 60017, 60021, 60025, 60029, 60032, 60036, 60040, 60044, - 60048, 60052, 60056, 60060, 60064, 60068, 60072, 60076, 60080, 60084, - 60089, 60093, 60097, 60101, 60105, 60108, 60112, 60115, 60119, 60123, - 60127, 60131, 60134, 60138, 60141, 60145, 60149, 60153, 60157, 60161, - 60165, 60169, 60173, 60177, 60181, 60185, 60189, 60192, 60196, 60200, - 60204, 60208, 60212, 60215, 60220, 60224, 60229, 60233, 60236, 60240, - 60244, 60248, 60252, 60257, 60261, 60265, 60269, 60273, 60277, 60281, - 60285, 60290, 60294, 60298, 60302, 60306, 60311, 60318, 60322, 60328, 0, - 0, 0, 0, 0, 60333, 60338, 60343, 60347, 60352, 60357, 60362, 60367, - 60371, 60376, 60381, 60386, 60391, 60396, 60401, 60406, 60411, 60416, - 60420, 60425, 60430, 60435, 60439, 60443, 60447, 60452, 60457, 60462, - 60467, 60472, 60477, 60482, 60487, 60492, 60497, 60501, 60505, 60510, - 60515, 60520, 60525, 0, 0, 0, 60530, 60534, 60538, 60542, 60546, 60550, - 60554, 60558, 60562, 60566, 60570, 60574, 60578, 60582, 60586, 60590, - 60594, 60598, 60602, 60606, 60610, 60614, 60618, 60622, 60626, 60630, - 60634, 60638, 60642, 60646, 60650, 60653, 60657, 60660, 60664, 60668, - 60671, 60675, 60679, 60682, 60686, 60690, 60694, 60698, 60701, 60705, - 60709, 60713, 60717, 60721, 60725, 60728, 60731, 60735, 60739, 60743, - 60747, 60751, 60755, 60759, 60763, 60767, 60771, 60775, 60779, 60783, - 60787, 60791, 60795, 60799, 60803, 60807, 60811, 60815, 60819, 60823, - 60827, 60831, 60835, 60839, 60843, 60847, 60851, 60855, 60859, 60863, - 60867, 60871, 60875, 60879, 60883, 60887, 60891, 60895, 0, 60899, 60905, - 60911, 60916, 60921, 60926, 60932, 60938, 60944, 60950, 60956, 60962, - 60968, 60974, 60980, 60986, 60992, 60997, 61002, 61007, 61012, 61017, - 61022, 61027, 61032, 61037, 61042, 61047, 61052, 61057, 61062, 61067, - 61072, 61077, 61082, 61087, 61092, 61098, 61104, 61110, 61116, 61121, - 61126, 0, 0, 0, 0, 0, 61131, 61136, 61141, 61146, 61151, 61156, 61161, - 61166, 61171, 61176, 61181, 61186, 61191, 61196, 61201, 61206, 61211, - 61216, 61221, 61226, 61231, 61236, 61241, 61246, 61251, 61256, 61261, - 61266, 61271, 61276, 61281, 61286, 61291, 61296, 61301, 61306, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 61311, 61316, 61321, 61326, 61330, 61335, - 61339, 61344, 61349, 61354, 61359, 61364, 61368, 61373, 61378, 61383, - 61388, 61392, 61396, 61400, 61404, 61408, 61412, 61416, 61420, 61424, - 61428, 61432, 61436, 61440, 61444, 61449, 61454, 61459, 61464, 61469, - 61474, 61479, 61484, 61489, 61494, 61499, 61504, 61509, 61514, 61519, - 61525, 0, 61532, 61535, 61538, 61541, 61544, 61547, 61550, 61553, 61556, - 61559, 61563, 61567, 61571, 61575, 61579, 61583, 61587, 61591, 61595, - 61599, 61603, 61607, 61611, 61615, 61619, 61623, 61627, 61631, 61635, - 61639, 61643, 61647, 61651, 61655, 61659, 61663, 61667, 61671, 61675, - 61679, 61683, 61692, 61701, 61710, 61719, 61728, 61737, 61746, 61755, - 61758, 61763, 61768, 61773, 61778, 61783, 61788, 61793, 61798, 61803, - 61807, 61812, 61817, 61822, 61827, 61832, 61836, 61840, 61844, 61848, - 61852, 61856, 61860, 61864, 61868, 61872, 61876, 61880, 61884, 61888, - 61893, 61898, 61903, 61908, 61913, 61918, 61923, 61928, 61933, 61938, - 61943, 61948, 61953, 61958, 61964, 61970, 61975, 61980, 61983, 61986, - 61989, 61992, 61995, 61998, 62001, 62004, 62007, 62011, 62015, 62019, - 62023, 62027, 62031, 62035, 62039, 62043, 62047, 62051, 62055, 62059, - 62063, 62067, 62071, 62075, 62079, 62083, 62087, 62091, 62095, 62099, - 62103, 62107, 62111, 62115, 62119, 62123, 62127, 62131, 62135, 62139, - 62143, 62147, 62151, 62155, 62159, 62163, 62167, 62172, 62177, 62182, - 62187, 62191, 62196, 62201, 62206, 62211, 62216, 62221, 62226, 62231, - 62236, 62240, 62247, 62254, 62261, 62268, 62275, 62282, 62289, 62296, - 62303, 62310, 62317, 62324, 62327, 62330, 62333, 62338, 62341, 62344, - 62347, 62350, 62353, 62356, 62360, 62364, 62368, 62372, 62375, 62379, - 62383, 62387, 62391, 62395, 62399, 62403, 62407, 62410, 62413, 62417, - 62421, 62425, 62429, 62432, 62436, 62440, 62444, 62448, 62451, 62455, - 62459, 62463, 62467, 62470, 62474, 62478, 62481, 62485, 62489, 62493, - 62497, 62501, 62505, 62509, 0, 62513, 62516, 62519, 62522, 62525, 62528, - 62531, 62534, 62537, 62540, 62543, 62546, 62549, 62552, 62555, 62558, - 62561, 62564, 62567, 62570, 62573, 62576, 62579, 62582, 62585, 62588, - 62591, 62594, 62597, 62600, 62603, 62606, 62609, 62612, 62615, 62618, - 62621, 62624, 62627, 62630, 62633, 62636, 62639, 62642, 62645, 62648, - 62651, 62654, 62657, 62660, 62663, 62666, 62669, 62672, 62675, 62678, - 62681, 62684, 62687, 62690, 62693, 62696, 62699, 62702, 62705, 62708, - 62711, 62714, 62717, 62720, 62723, 62726, 62729, 62732, 62735, 62738, - 62741, 62744, 62747, 62750, 62753, 62756, 62759, 62762, 62765, 62768, - 62771, 62774, 62777, 62786, 62794, 62802, 62810, 62818, 62826, 62834, - 62842, 62850, 62858, 62867, 62876, 62885, 62894, 62903, 62912, 62921, - 62930, 62939, 62948, 62957, 62966, 62975, 62984, 62993, 62996, 62999, - 63002, 63004, 63007, 63010, 63013, 63018, 63023, 63026, 63033, 63040, - 63047, 63054, 63057, 63062, 63064, 63068, 63070, 63072, 63075, 63078, - 63081, 63084, 63087, 63090, 63093, 63098, 63103, 63106, 63109, 63112, - 63115, 63118, 63121, 63124, 63128, 63131, 63134, 63137, 63140, 63143, - 63147, 63150, 63153, 63156, 63161, 63166, 63171, 63176, 63181, 63186, - 63191, 63196, 63202, 63210, 63212, 63215, 63218, 63221, 63224, 63230, - 63238, 63241, 63244, 63249, 63252, 63255, 63258, 63263, 63266, 63269, - 63274, 63277, 63280, 63285, 63288, 63291, 63296, 63301, 63306, 63309, - 63312, 63315, 63318, 63324, 63327, 63330, 63333, 63335, 63338, 63341, - 63344, 63349, 63352, 63355, 63358, 63361, 63364, 63369, 63372, 63375, - 63378, 63381, 63384, 63387, 63390, 63393, 63396, 63401, 63405, 63413, - 63421, 63429, 63437, 63445, 63453, 63461, 63469, 63477, 63486, 63495, - 63504, 63513, 63522, 63531, 63540, 63549, 63558, 63567, 63576, 63585, - 63594, 63603, 63612, 63621, 63630, 63639, 63648, 63657, 63666, 63675, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57658, 57662, + 57666, 57671, 57676, 57681, 57685, 57689, 57693, 57698, 57703, 57707, + 57711, 57715, 57719, 57724, 57729, 57734, 57739, 57743, 57747, 57752, + 57757, 57762, 57767, 57771, 0, 57775, 57779, 57783, 57787, 57791, 57795, + 57799, 57804, 57809, 57813, 57818, 57823, 57832, 57836, 57840, 57844, + 57851, 57855, 57860, 57865, 57869, 57873, 57879, 57884, 57889, 57894, + 57899, 57903, 57907, 57911, 57915, 57919, 57924, 57929, 57933, 57937, + 57942, 57947, 57952, 57956, 57960, 57965, 57970, 57976, 57982, 57986, + 57992, 57998, 58002, 58008, 58014, 58019, 58024, 58028, 58034, 58038, + 58042, 58048, 58054, 58059, 58064, 58068, 58072, 58080, 58086, 58092, + 58098, 58103, 58108, 58113, 58119, 58123, 58129, 58133, 58137, 58143, + 58149, 58155, 58161, 58167, 58173, 58179, 58185, 58191, 58197, 58203, + 58209, 58213, 58219, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58225, 58228, + 58232, 58236, 58240, 58244, 58247, 58250, 58254, 58258, 58262, 58266, + 58269, 58274, 58278, 58282, 58286, 58291, 58295, 58299, 58303, 58307, + 58313, 58319, 58323, 58327, 58331, 58335, 58339, 58343, 58347, 58351, + 58355, 58359, 58363, 58369, 58373, 58377, 58381, 58385, 58389, 58393, + 58397, 58401, 58405, 58409, 58413, 58417, 58421, 58425, 58429, 58433, + 58439, 58445, 58450, 58455, 58459, 58463, 58467, 58471, 58475, 58479, + 58483, 58487, 58491, 58495, 58499, 58503, 58507, 58511, 58515, 58519, + 58523, 58527, 58531, 58535, 58539, 58543, 58547, 58551, 58557, 58561, + 58565, 58569, 58573, 58577, 58581, 58585, 58589, 58594, 58601, 58605, + 58609, 58613, 58617, 58621, 58625, 58629, 58633, 58637, 58641, 58645, + 58649, 58656, 58660, 58666, 58670, 58674, 58678, 58682, 58686, 58689, + 58693, 58697, 58701, 58705, 58709, 58713, 58717, 58721, 58725, 58729, + 58733, 58737, 58741, 58745, 58749, 58753, 58757, 58761, 58765, 58769, + 58773, 58777, 58781, 58785, 58789, 58793, 58797, 58801, 58805, 58809, + 58813, 58817, 58823, 58827, 58831, 58835, 58839, 58843, 58847, 58851, + 58855, 58859, 58863, 58867, 58871, 58875, 58879, 58883, 58887, 58891, + 58895, 58899, 58903, 58907, 58911, 58915, 58919, 58923, 58927, 58931, + 58939, 58943, 58947, 58951, 58955, 58959, 58965, 58969, 58973, 58977, + 58981, 58985, 58989, 58993, 58997, 59001, 59005, 59009, 59013, 59017, + 59023, 59027, 59031, 59035, 59039, 59043, 59047, 59051, 59055, 59059, + 59063, 59067, 59071, 59075, 59079, 59083, 59087, 59091, 59095, 59099, + 59103, 59107, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 59111, 59120, 59128, 59140, 59151, 59159, 59168, 59177, + 59187, 59199, 59211, 59223, 0, 0, 0, 0, 59229, 59232, 59235, 59240, + 59243, 59250, 59254, 59258, 59262, 59266, 59270, 59275, 59280, 59284, + 59288, 59293, 59298, 59303, 59308, 59311, 59314, 59320, 59326, 59331, + 59336, 59343, 59350, 59354, 59358, 59362, 59370, 59376, 59383, 59388, + 59393, 59398, 59403, 59408, 59413, 59418, 59423, 59428, 59433, 59438, + 59443, 59448, 59453, 59459, 59464, 59468, 59474, 59485, 59495, 59510, + 59520, 59524, 59534, 59540, 59546, 59552, 59557, 59560, 59565, 59569, 0, + 59575, 59579, 59582, 59586, 59589, 59593, 59596, 59600, 59603, 59607, + 59610, 59613, 59617, 59621, 59625, 59629, 59633, 59637, 59641, 59645, + 59649, 59652, 59656, 59660, 59664, 59668, 59672, 59676, 59680, 59684, + 59688, 59692, 59696, 59700, 59704, 59709, 59713, 59717, 59721, 59725, + 59728, 59732, 59735, 59739, 59743, 59747, 59751, 59754, 59758, 59761, + 59765, 59769, 59773, 59777, 59781, 59785, 59789, 59793, 59797, 59801, + 59805, 59809, 59812, 59816, 59820, 59824, 59828, 59832, 59835, 59840, + 59844, 59849, 59853, 59856, 59860, 59864, 59868, 59872, 59877, 59881, + 59885, 59889, 59893, 59897, 59901, 59905, 0, 0, 59910, 59918, 59926, + 59933, 59940, 59944, 59950, 59955, 59960, 59964, 59967, 59971, 59974, + 59978, 59981, 59985, 59988, 59992, 59995, 59998, 60002, 60006, 60010, + 60014, 60018, 60022, 60026, 60030, 60034, 60037, 60041, 60045, 60049, + 60053, 60057, 60061, 60065, 60069, 60073, 60077, 60081, 60085, 60089, + 60094, 60098, 60102, 60106, 60110, 60113, 60117, 60120, 60124, 60128, + 60132, 60136, 60139, 60143, 60146, 60150, 60154, 60158, 60162, 60166, + 60170, 60174, 60178, 60182, 60186, 60190, 60194, 60197, 60201, 60205, + 60209, 60213, 60217, 60220, 60225, 60229, 60234, 60238, 60241, 60245, + 60249, 60253, 60257, 60262, 60266, 60270, 60274, 60278, 60282, 60286, + 60290, 60295, 60299, 60303, 60307, 60311, 60316, 60323, 60327, 60333, 0, + 0, 0, 0, 0, 60338, 60343, 60348, 60352, 60357, 60362, 60367, 60372, + 60376, 60381, 60386, 60391, 60396, 60401, 60406, 60411, 60416, 60421, + 60425, 60430, 60435, 60440, 60444, 60448, 60452, 60457, 60462, 60467, + 60472, 60477, 60482, 60487, 60492, 60497, 60502, 60506, 60510, 60515, + 60520, 60525, 60530, 0, 0, 0, 60535, 60539, 60543, 60547, 60551, 60555, + 60559, 60563, 60567, 60571, 60575, 60579, 60583, 60587, 60591, 60595, + 60599, 60603, 60607, 60611, 60615, 60619, 60623, 60627, 60631, 60635, + 60639, 60643, 60647, 60651, 60655, 60658, 60662, 60665, 60669, 60673, + 60676, 60680, 60684, 60687, 60691, 60695, 60699, 60703, 60706, 60710, + 60714, 60718, 60722, 60726, 60730, 60733, 60736, 60740, 60744, 60748, + 60752, 60756, 60760, 60764, 60768, 60772, 60776, 60780, 60784, 60788, + 60792, 60796, 60800, 60804, 60808, 60812, 60816, 60820, 60824, 60828, + 60832, 60836, 60840, 60844, 60848, 60852, 60856, 60860, 60864, 60868, + 60872, 60876, 60880, 60884, 60888, 60892, 60896, 60900, 0, 60904, 60910, + 60916, 60921, 60926, 60931, 60937, 60943, 60949, 60955, 60961, 60967, + 60973, 60979, 60985, 60991, 60997, 61002, 61007, 61012, 61017, 61022, + 61027, 61032, 61037, 61042, 61047, 61052, 61057, 61062, 61067, 61072, + 61077, 61082, 61087, 61092, 61097, 61103, 61109, 61115, 61121, 61126, + 61131, 0, 0, 0, 0, 0, 61136, 61141, 61146, 61151, 61156, 61161, 61166, + 61171, 61176, 61181, 61186, 61191, 61196, 61201, 61206, 61211, 61216, + 61221, 61226, 61231, 61236, 61241, 61246, 61251, 61256, 61261, 61266, + 61271, 61276, 61281, 61286, 61291, 61296, 61301, 61306, 61311, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 61316, 61321, 61326, 61331, 61335, 61340, + 61344, 61349, 61354, 61359, 61364, 61369, 61373, 61378, 61383, 61388, + 61393, 61397, 61401, 61405, 61409, 61413, 61417, 61421, 61425, 61429, + 61433, 61437, 61441, 61445, 61449, 61454, 61459, 61464, 61469, 61474, + 61479, 61484, 61489, 61494, 61499, 61504, 61509, 61514, 61519, 61524, + 61530, 0, 61537, 61540, 61543, 61546, 61549, 61552, 61555, 61558, 61561, + 61564, 61568, 61572, 61576, 61580, 61584, 61588, 61592, 61596, 61600, + 61604, 61608, 61612, 61616, 61620, 61624, 61628, 61632, 61636, 61640, + 61644, 61648, 61652, 61656, 61660, 61664, 61668, 61672, 61676, 61680, + 61684, 61688, 61697, 61706, 61715, 61724, 61733, 61742, 61751, 61760, + 61763, 61768, 61773, 61778, 61783, 61788, 61793, 61798, 61803, 61808, + 61812, 61817, 61822, 61827, 61832, 61837, 61841, 61845, 61849, 61853, + 61857, 61861, 61865, 61869, 61873, 61877, 61881, 61885, 61889, 61893, + 61898, 61903, 61908, 61913, 61918, 61923, 61928, 61933, 61938, 61943, + 61948, 61953, 61958, 61963, 61969, 61975, 61980, 61985, 61988, 61991, + 61994, 61997, 62000, 62003, 62006, 62009, 62012, 62016, 62020, 62024, + 62028, 62032, 62036, 62040, 62044, 62048, 62052, 62056, 62060, 62064, + 62068, 62072, 62076, 62080, 62084, 62088, 62092, 62096, 62100, 62104, + 62108, 62112, 62116, 62120, 62124, 62128, 62132, 62136, 62140, 62144, + 62148, 62152, 62156, 62160, 62164, 62168, 62172, 62177, 62182, 62187, + 62192, 62196, 62201, 62206, 62211, 62216, 62221, 62226, 62231, 62236, + 62241, 62245, 62252, 62259, 62266, 62273, 62280, 62287, 62294, 62301, + 62308, 62315, 62322, 62329, 62332, 62335, 62338, 62343, 62346, 62349, + 62352, 62355, 62358, 62361, 62365, 62369, 62373, 62377, 62380, 62384, + 62388, 62392, 62396, 62400, 62404, 62408, 62412, 62415, 62418, 62422, + 62426, 62430, 62434, 62437, 62441, 62445, 62449, 62453, 62456, 62460, + 62464, 62468, 62472, 62475, 62479, 62483, 62486, 62490, 62494, 62498, + 62502, 62506, 62510, 62514, 0, 62518, 62521, 62524, 62527, 62530, 62533, + 62536, 62539, 62542, 62545, 62548, 62551, 62554, 62557, 62560, 62563, + 62566, 62569, 62572, 62575, 62578, 62581, 62584, 62587, 62590, 62593, + 62596, 62599, 62602, 62605, 62608, 62611, 62614, 62617, 62620, 62623, + 62626, 62629, 62632, 62635, 62638, 62641, 62644, 62647, 62650, 62653, + 62656, 62659, 62662, 62665, 62668, 62671, 62674, 62677, 62680, 62683, + 62686, 62689, 62692, 62695, 62698, 62701, 62704, 62707, 62710, 62713, + 62716, 62719, 62722, 62725, 62728, 62731, 62734, 62737, 62740, 62743, + 62746, 62749, 62752, 62755, 62758, 62761, 62764, 62767, 62770, 62773, + 62776, 62779, 62782, 62791, 62799, 62807, 62815, 62823, 62831, 62839, + 62847, 62855, 62863, 62872, 62881, 62890, 62899, 62908, 62917, 62926, + 62935, 62944, 62953, 62962, 62971, 62980, 62989, 62998, 63001, 63004, + 63007, 63009, 63012, 63015, 63018, 63023, 63028, 63031, 63038, 63045, + 63052, 63059, 63062, 63067, 63069, 63073, 63075, 63077, 63080, 63083, + 63086, 63089, 63092, 63095, 63098, 63103, 63108, 63111, 63114, 63117, + 63120, 63123, 63126, 63129, 63133, 63136, 63139, 63142, 63145, 63148, + 63152, 63155, 63158, 63161, 63166, 63171, 63176, 63181, 63186, 63191, + 63196, 63201, 63207, 63215, 63217, 63220, 63223, 63226, 63229, 63235, + 63243, 63246, 63249, 63254, 63257, 63260, 63263, 63268, 63271, 63274, + 63279, 63282, 63285, 63290, 63293, 63296, 63301, 63306, 63311, 63314, + 63317, 63320, 63323, 63329, 63332, 63335, 63338, 63340, 63343, 63346, + 63349, 63354, 63357, 63360, 63363, 63366, 63369, 63374, 63377, 63380, + 63383, 63386, 63389, 63392, 63395, 63398, 63401, 63406, 63410, 63418, + 63426, 63434, 63442, 63450, 63458, 63466, 63474, 63482, 63491, 63500, + 63509, 63518, 63527, 63536, 63545, 63554, 63563, 63572, 63581, 63590, + 63599, 63608, 63617, 63626, 63635, 63644, 63653, 63662, 63671, 63680, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63678, 63687, 63696, 63707, - 63714, 63719, 63724, 63731, 63738, 63744, 63749, 63754, 63759, 63764, - 63771, 63776, 63781, 63786, 63797, 63802, 63807, 63814, 63819, 63826, - 63831, 63836, 63843, 63850, 63857, 63866, 63875, 63880, 63885, 63890, - 63897, 63902, 63912, 63919, 63924, 63929, 63934, 63939, 63944, 63949, - 63958, 63965, 63972, 63977, 63984, 63989, 63996, 64005, 64016, 64021, - 64030, 64035, 64042, 64051, 64060, 64065, 64070, 64077, 64083, 64090, - 64097, 64101, 64105, 64108, 64112, 64116, 64120, 64124, 64128, 64132, - 64136, 64139, 64143, 64147, 64151, 64155, 64159, 64163, 64166, 64170, - 64174, 64177, 64181, 64185, 64189, 64193, 64197, 64201, 64205, 64209, - 64213, 64217, 64221, 64225, 64229, 64233, 64237, 64241, 64245, 64249, - 64253, 64257, 64261, 64265, 64269, 64273, 64277, 64281, 64285, 64289, - 64293, 64297, 64301, 64305, 64309, 64313, 64317, 64321, 64325, 64329, - 64333, 64337, 64341, 64345, 64349, 64353, 64356, 64360, 64364, 64368, - 64372, 64376, 64380, 64384, 64388, 64392, 64396, 64400, 64404, 64408, - 64412, 64416, 64420, 64424, 64428, 64432, 64436, 64440, 64444, 64448, - 64452, 64456, 64460, 64464, 64468, 64472, 64476, 64480, 64484, 64488, - 64492, 64496, 64500, 64504, 64508, 64512, 64516, 64520, 64524, 64528, - 64532, 64536, 64540, 64544, 64548, 64552, 64556, 64560, 64564, 64568, - 64572, 64576, 64580, 64584, 64588, 64592, 64596, 64600, 64604, 64608, - 64612, 64616, 64620, 64624, 64628, 64632, 64636, 64640, 64644, 64648, - 64652, 64656, 64660, 64664, 64668, 64672, 64676, 64680, 64684, 64688, - 64692, 64696, 64700, 64704, 64708, 64712, 64716, 64720, 64724, 64728, - 64732, 64736, 64740, 64744, 64748, 64752, 64756, 64760, 64764, 64768, - 64772, 64776, 64780, 64784, 64788, 64792, 64796, 64800, 64804, 64808, - 64812, 64816, 64820, 64824, 64827, 64831, 64835, 64839, 64843, 64847, - 64851, 64855, 64859, 64863, 64867, 64871, 64875, 64879, 64883, 64887, - 64891, 64895, 64899, 64903, 64907, 64911, 64915, 64919, 64923, 64927, - 64931, 64935, 64939, 64943, 64947, 64951, 64955, 64959, 64963, 64967, - 64971, 64975, 64979, 64983, 64987, 64991, 64995, 64999, 65003, 65007, - 65011, 65015, 65019, 65023, 65027, 65031, 65035, 65039, 65043, 65047, - 65051, 65055, 65059, 65063, 65067, 65071, 65075, 65079, 65083, 65087, - 65091, 65095, 65099, 65103, 65107, 65111, 65115, 65119, 65123, 65127, - 65131, 65135, 65139, 65143, 65147, 65151, 65155, 65159, 65163, 65167, - 65171, 65175, 65179, 65183, 65187, 65191, 65195, 65199, 65203, 65207, - 65211, 65215, 65219, 65223, 65227, 65231, 65235, 65239, 65243, 65247, - 65251, 65255, 65259, 65263, 65267, 65271, 65275, 65279, 65283, 65287, - 65290, 65294, 65298, 65302, 65306, 65310, 65314, 65318, 65322, 65326, - 65330, 65334, 65338, 65342, 65346, 65350, 65354, 65358, 65362, 65366, - 65370, 65374, 65378, 65382, 65386, 65390, 65394, 65398, 65402, 65406, - 65410, 65414, 65418, 65422, 65426, 65430, 65434, 65438, 65442, 65446, - 65450, 65454, 65458, 65462, 65466, 65470, 65474, 65478, 65482, 65486, - 65490, 65494, 65498, 65502, 65506, 65510, 65514, 65518, 65522, 65526, - 65530, 65534, 65538, 65542, 65546, 65550, 65554, 65558, 65562, 65566, - 65570, 65574, 65578, 65582, 65586, 65590, 65594, 65598, 65602, 65606, - 65610, 65614, 65618, 65622, 65626, 65630, 65634, 65638, 65642, 65646, - 65649, 65653, 65657, 65661, 65665, 65669, 65673, 65677, 65681, 65685, - 65689, 65693, 65697, 65701, 65705, 65709, 65713, 65717, 65721, 65725, - 65729, 65733, 65737, 65741, 65745, 65749, 65753, 65757, 65761, 65765, - 65769, 65773, 65777, 65781, 65785, 65789, 65793, 65797, 65801, 65805, - 65809, 65813, 65817, 65821, 65825, 65829, 65833, 65837, 65841, 65845, - 65849, 65853, 65857, 65861, 65865, 65869, 65873, 65877, 65881, 65885, - 65889, 65893, 65897, 65901, 65905, 65909, 65913, 65917, 65921, 65925, - 65929, 65933, 65937, 65941, 65945, 65949, 65953, 65957, 65961, 65965, - 65969, 65973, 65977, 65981, 65985, 65989, 65993, 65997, 66001, 66005, - 66009, 66013, 66017, 66021, 66025, 66029, 66033, 66037, 66041, 66045, - 66049, 66053, 66057, 66061, 66065, 66069, 66073, 66077, 66081, 66085, - 66089, 66093, 66097, 66101, 66105, 66109, 66113, 66117, 66121, 66125, - 66129, 66133, 66137, 66141, 66144, 66148, 66152, 66156, 66160, 66164, - 66168, 66172, 66176, 66180, 66184, 66188, 66192, 66196, 66200, 66204, - 66208, 66212, 66216, 66220, 66224, 66228, 66232, 66236, 66240, 66244, - 66248, 66252, 66256, 66260, 66264, 66268, 66272, 66276, 66280, 66284, - 66288, 66292, 66296, 66300, 66304, 66308, 66312, 66316, 66320, 66324, - 66328, 66332, 66336, 66340, 66344, 66348, 66352, 66356, 66360, 66364, - 66368, 66372, 66376, 66380, 66384, 66388, 66392, 66396, 66400, 66404, - 66408, 66412, 66416, 66420, 66424, 66428, 66432, 66436, 66440, 66444, - 66448, 66452, 66456, 66460, 66464, 66468, 66472, 66476, 66480, 66484, - 66488, 66492, 66496, 66500, 66504, 66508, 66512, 66516, 66520, 66524, - 66528, 66532, 66536, 66540, 66544, 66548, 66552, 66556, 66560, 66564, - 66568, 66572, 66576, 66580, 66584, 66588, 66592, 66596, 66599, 66603, - 66607, 66611, 66615, 66619, 66623, 66627, 66631, 66635, 66639, 66643, - 66647, 66651, 66655, 66659, 66663, 66667, 66671, 66675, 66679, 66683, - 66687, 66691, 66695, 66699, 66703, 66707, 66711, 66715, 66719, 66723, - 66727, 66731, 66735, 66739, 66743, 66747, 66751, 66755, 66759, 66763, - 66767, 66771, 66775, 66779, 66783, 66787, 66791, 66795, 66799, 66803, - 66807, 66811, 66815, 66819, 66823, 66827, 66831, 66835, 66839, 66843, - 66847, 66851, 66855, 66859, 66863, 66867, 66871, 66875, 66879, 66883, - 66887, 66891, 66895, 66899, 66903, 66907, 66911, 66915, 66919, 66923, - 66927, 66931, 66935, 66939, 66943, 66947, 66951, 66955, 66959, 66963, - 66967, 66971, 66975, 66979, 66983, 66987, 66991, 66995, 66999, 67003, - 67007, 67011, 67015, 67019, 67023, 67027, 67031, 67035, 67039, 67043, - 67047, 67051, 67055, 67059, 67063, 67067, 67071, 67075, 67079, 67083, - 67087, 67091, 67095, 67099, 67103, 67107, 67111, 67115, 67119, 67123, - 67127, 67131, 67135, 67139, 67143, 67147, 67151, 67155, 67159, 67163, - 67167, 67171, 67175, 67179, 67183, 67187, 67191, 67195, 67199, 67202, - 67206, 67210, 67214, 67218, 67222, 67226, 67230, 67233, 67237, 67241, - 67245, 67249, 67253, 67257, 67261, 67265, 67269, 67273, 67277, 67281, - 67285, 67289, 67293, 67297, 67301, 67305, 67309, 67313, 67317, 67321, - 67325, 67329, 67333, 67337, 67341, 67345, 67349, 67353, 67357, 67361, - 67365, 67369, 67373, 67377, 67381, 67385, 67389, 67393, 67397, 67401, - 67405, 67409, 67413, 67417, 67421, 67425, 67429, 67433, 67437, 67441, - 67445, 67449, 67453, 67457, 67461, 67465, 67469, 67473, 67477, 67481, - 67485, 67489, 67493, 67497, 67501, 67505, 67509, 67513, 67517, 67521, - 67525, 67529, 67533, 67537, 67541, 67545, 67549, 67553, 67557, 67561, - 67565, 67569, 67573, 67577, 67581, 67585, 67589, 67593, 67597, 67601, - 67605, 67609, 67613, 67617, 67621, 67625, 67629, 67633, 67637, 67641, - 67645, 67649, 67653, 67657, 67661, 67665, 67669, 67673, 67677, 67681, - 67685, 67689, 67693, 67697, 67701, 67705, 67709, 67713, 67717, 67721, - 67725, 67729, 67733, 67737, 67741, 67745, 67749, 67753, 67757, 67761, - 67765, 67769, 67773, 67777, 67781, 67785, 67789, 67793, 67797, 67801, - 67805, 67809, 67813, 67817, 67821, 67825, 67829, 67833, 67837, 67841, - 67845, 67849, 67853, 67857, 67861, 67865, 67869, 67873, 67877, 67881, - 67885, 67889, 67893, 67897, 67901, 67905, 67909, 67913, 67917, 67921, - 67925, 67929, 67933, 67937, 67941, 67945, 67949, 67953, 67957, 67960, - 67964, 67968, 67972, 67976, 67980, 67984, 67988, 67992, 67996, 68000, - 68004, 68008, 68012, 68016, 68020, 68024, 68028, 68032, 68036, 68040, - 68044, 68048, 68052, 68056, 68060, 68064, 68068, 68072, 68076, 68080, - 68084, 68088, 68092, 68096, 68100, 68104, 68108, 68112, 68116, 68120, - 68124, 68128, 68132, 68136, 68140, 68144, 68148, 68152, 68156, 68160, - 68164, 68168, 68172, 68176, 68180, 68184, 68188, 68192, 68196, 68200, - 68204, 68208, 68212, 68216, 68220, 68224, 68228, 68232, 68236, 68240, - 68244, 68248, 68252, 68256, 68260, 68264, 68268, 68272, 68276, 68280, - 68284, 68288, 68292, 68296, 68300, 68304, 68308, 68312, 68316, 68320, - 68324, 68328, 68332, 68336, 68340, 68344, 68348, 68352, 68356, 68360, - 68364, 68368, 68372, 68376, 68380, 68384, 68388, 68392, 68396, 68400, - 68404, 68408, 68412, 68416, 68420, 68424, 68428, 68432, 68436, 68440, - 68444, 68448, 68452, 68456, 68460, 68464, 68468, 68472, 68476, 68480, - 68484, 68488, 68492, 68496, 68500, 68504, 68508, 68512, 68516, 68520, - 68524, 68528, 68532, 68536, 68540, 68544, 68548, 68552, 68556, 68560, - 68564, 68568, 68572, 68576, 68580, 68584, 68588, 68592, 68596, 68600, - 68604, 68608, 68612, 68616, 68620, 68624, 68628, 68632, 68636, 68640, - 68644, 68648, 68652, 68656, 68660, 68664, 68668, 68672, 68676, 68680, - 68684, 68688, 68692, 68696, 68700, 68704, 68708, 68712, 68716, 68720, - 68724, 68728, 68732, 68736, 68740, 0, 0, 0, 68744, 68748, 68752, 68756, - 68760, 68764, 68768, 68772, 68776, 68780, 68784, 68788, 68792, 68796, - 68800, 68804, 68808, 68812, 68816, 68820, 68824, 68828, 68832, 68836, - 68840, 68844, 68848, 68852, 68856, 68860, 68864, 68868, 68872, 68876, - 68880, 68884, 68888, 68892, 68896, 68900, 68904, 68908, 68912, 68916, - 68920, 68924, 68928, 68932, 68936, 68940, 68944, 68948, 68952, 68956, - 68960, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68964, 68969, 68973, 68978, 68983, - 68988, 68993, 68998, 69002, 69007, 69012, 69017, 69022, 69027, 69032, - 69037, 69041, 69045, 69050, 69054, 69059, 69064, 69069, 69073, 69078, - 69083, 69088, 69093, 69098, 69102, 69107, 69111, 69116, 69120, 69125, - 69129, 69133, 69137, 69142, 69147, 69152, 69160, 69168, 69176, 69184, - 69191, 69199, 69205, 69213, 69217, 69221, 69225, 69229, 69233, 69237, - 69241, 69245, 69249, 69253, 69257, 69261, 69265, 69269, 69273, 69277, - 69281, 69285, 69289, 69293, 69297, 69301, 69305, 69309, 69313, 69317, - 69321, 69325, 69329, 69333, 69337, 69341, 69345, 69349, 69353, 69357, - 69360, 69364, 69368, 69372, 69376, 69380, 69384, 69388, 69392, 69396, - 69400, 69404, 69408, 69412, 69416, 69420, 69424, 69428, 69432, 69436, - 69440, 69444, 69448, 69452, 69456, 69460, 69464, 69468, 69472, 69476, - 69480, 69484, 69488, 69492, 69496, 69500, 69504, 69507, 69511, 69515, - 69518, 69522, 69526, 69530, 69533, 69537, 69541, 69545, 69549, 69553, - 69557, 69561, 69565, 69569, 69573, 69577, 69581, 69585, 69589, 69592, - 69596, 69600, 69603, 69607, 69611, 69615, 69619, 69623, 69627, 69630, - 69633, 69637, 69641, 69645, 69648, 69651, 69655, 69659, 69663, 69667, - 69671, 69675, 69679, 69683, 69687, 69691, 69695, 69699, 69703, 69707, - 69711, 69715, 69719, 69723, 69727, 69731, 69735, 69739, 69743, 69747, - 69751, 69755, 69759, 69763, 69767, 69771, 69775, 69779, 69783, 69787, - 69791, 69795, 69799, 69802, 69806, 69810, 69814, 69818, 69822, 69826, - 69830, 69834, 69838, 69842, 69846, 69850, 69854, 69858, 69862, 69866, - 69870, 69874, 69878, 69882, 69886, 69890, 69894, 69898, 69902, 69906, - 69910, 69914, 69918, 69922, 69926, 69930, 69934, 69938, 69942, 69946, - 69949, 69953, 69957, 69961, 69965, 69969, 69973, 69977, 69981, 69985, - 69989, 69993, 69997, 70001, 70005, 70009, 70013, 70016, 70020, 70024, - 70028, 70032, 70036, 70040, 70044, 70048, 70052, 70056, 70060, 70064, - 70068, 70072, 70076, 70080, 70084, 70088, 70092, 70096, 70100, 70103, - 70107, 70111, 70115, 70119, 70123, 70127, 70131, 70135, 70139, 70143, - 70147, 70151, 70155, 70159, 70163, 70167, 70171, 70175, 70179, 70183, - 70187, 70191, 70195, 70199, 70203, 70207, 70211, 70215, 70219, 70223, - 70227, 70231, 70235, 70239, 70243, 70247, 70251, 70255, 70259, 70263, - 70267, 70271, 70275, 70278, 70283, 70287, 70293, 70298, 70304, 70308, - 70312, 70316, 70320, 70324, 70328, 70332, 70336, 70340, 70344, 70348, - 70352, 70356, 70360, 70363, 70366, 70369, 70372, 70375, 70378, 70381, - 70384, 70387, 70392, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 70398, 70403, 70408, 70413, 70418, 70425, 70432, 70437, 70442, - 70447, 70452, 70459, 70466, 70473, 70480, 70487, 70494, 70504, 70514, - 70521, 70528, 70535, 70542, 70548, 70554, 70563, 70572, 70579, 70586, - 70597, 70608, 70613, 70618, 70625, 70632, 70639, 70646, 70653, 70660, - 70667, 70674, 70680, 70686, 70692, 70698, 70705, 70712, 70717, 70721, - 70728, 70735, 70742, 70746, 70753, 70757, 70762, 70766, 70772, 70777, - 70783, 70788, 70792, 70796, 70799, 70802, 70807, 70812, 70817, 70822, - 70827, 70832, 70837, 70842, 70847, 70852, 70861, 70870, 70875, 70880, - 70885, 70890, 70895, 70900, 70905, 70910, 70915, 70920, 70925, 0, 0, 0, - 0, 0, 0, 0, 70930, 70936, 70939, 70942, 70945, 70949, 70953, 70957, - 70961, 70964, 70968, 70971, 70975, 70978, 70982, 70986, 70990, 70994, - 70998, 71002, 71006, 71009, 71013, 71017, 71021, 71025, 71029, 71033, - 71037, 71041, 71045, 71049, 71053, 71057, 71061, 71065, 71068, 71072, - 71076, 71080, 71084, 71088, 71092, 71096, 71100, 71104, 71108, 71112, - 71116, 71120, 71124, 71128, 71132, 71136, 71140, 71144, 71148, 71152, - 71156, 71160, 71164, 71167, 71171, 71175, 71179, 71183, 71187, 71191, - 71195, 71198, 71202, 71206, 71210, 71214, 71218, 71222, 71226, 71230, - 71234, 71238, 71242, 71246, 71251, 71256, 71259, 71264, 71267, 71270, - 71273, 0, 0, 0, 0, 0, 0, 0, 0, 71277, 71286, 71295, 71304, 71313, 71322, - 71331, 71340, 71349, 71357, 71364, 71372, 71379, 71387, 71397, 71406, - 71416, 71425, 71435, 71443, 71450, 71458, 71465, 71473, 71478, 71483, - 71488, 71497, 71503, 71509, 71516, 71525, 71533, 71541, 71549, 71556, - 71563, 71570, 71577, 71582, 71587, 71592, 71597, 71602, 71607, 71612, - 71617, 71625, 71633, 71639, 71645, 71650, 71655, 71660, 71665, 71670, - 71675, 71680, 71685, 71693, 71701, 71706, 71711, 71721, 71731, 71738, - 71745, 71754, 71763, 71775, 71787, 71793, 71799, 71807, 71815, 71825, - 71835, 71842, 71849, 71854, 71859, 71871, 71883, 71891, 71899, 71909, - 71919, 71931, 71943, 71952, 71961, 71968, 71975, 71982, 71989, 71998, - 72007, 72012, 72017, 72024, 72031, 72038, 72045, 72057, 72069, 72074, - 72079, 72084, 72089, 72094, 72099, 72104, 72109, 72113, 72118, 72123, - 72128, 72133, 72138, 72144, 72149, 72154, 72161, 72168, 72175, 72182, - 72189, 72198, 72207, 72213, 72219, 72225, 72231, 72238, 72245, 72252, - 72259, 72266, 72270, 72277, 72282, 72287, 72294, 0, 72307, 72315, 72323, - 72330, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72337, 72346, 72355, 72364, - 72373, 72382, 72391, 72400, 72409, 72418, 72427, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63683, 63692, 63701, 63712, + 63719, 63724, 63729, 63736, 63743, 63749, 63754, 63759, 63764, 63769, + 63776, 63781, 63786, 63791, 63802, 63807, 63812, 63819, 63824, 63831, + 63836, 63841, 63848, 63855, 63862, 63871, 63880, 63885, 63890, 63895, + 63902, 63907, 63917, 63924, 63929, 63934, 63939, 63944, 63949, 63954, + 63963, 63970, 63977, 63982, 63989, 63994, 64001, 64010, 64021, 64026, + 64035, 64040, 64047, 64056, 64065, 64070, 64075, 64082, 64088, 64095, + 64102, 64106, 64110, 64113, 64117, 64121, 64125, 64129, 64133, 64137, + 64141, 64144, 64148, 64152, 64156, 64160, 64164, 64168, 64171, 64175, + 64179, 64182, 64186, 64190, 64194, 64198, 64202, 64206, 64210, 64214, + 64218, 64222, 64226, 64230, 64234, 64238, 64242, 64246, 64250, 64254, + 64258, 64262, 64266, 64270, 64274, 64278, 64282, 64286, 64290, 64294, + 64298, 64302, 64306, 64310, 64314, 64318, 64322, 64326, 64330, 64334, + 64338, 64342, 64346, 64350, 64354, 64358, 64361, 64365, 64369, 64373, + 64377, 64381, 64385, 64389, 64393, 64397, 64401, 64405, 64409, 64413, + 64417, 64421, 64425, 64429, 64433, 64437, 64441, 64445, 64449, 64453, + 64457, 64461, 64465, 64469, 64473, 64477, 64481, 64485, 64489, 64493, + 64497, 64501, 64505, 64509, 64513, 64517, 64521, 64525, 64529, 64533, + 64537, 64541, 64545, 64549, 64553, 64557, 64561, 64565, 64569, 64573, + 64577, 64581, 64585, 64589, 64593, 64597, 64601, 64605, 64609, 64613, + 64617, 64621, 64625, 64629, 64633, 64637, 64641, 64645, 64649, 64653, + 64657, 64661, 64665, 64669, 64673, 64677, 64681, 64685, 64689, 64693, + 64697, 64701, 64705, 64709, 64713, 64717, 64721, 64725, 64729, 64733, + 64737, 64741, 64745, 64749, 64753, 64757, 64761, 64765, 64769, 64773, + 64777, 64781, 64785, 64789, 64793, 64797, 64801, 64805, 64809, 64813, + 64817, 64821, 64825, 64829, 64832, 64836, 64840, 64844, 64848, 64852, + 64856, 64860, 64864, 64868, 64872, 64876, 64880, 64884, 64888, 64892, + 64896, 64900, 64904, 64908, 64912, 64916, 64920, 64924, 64928, 64932, + 64936, 64940, 64944, 64948, 64952, 64956, 64960, 64964, 64968, 64972, + 64976, 64980, 64984, 64988, 64992, 64996, 65000, 65004, 65008, 65012, + 65016, 65020, 65024, 65028, 65032, 65036, 65040, 65044, 65048, 65052, + 65056, 65060, 65064, 65068, 65072, 65076, 65080, 65084, 65088, 65092, + 65096, 65100, 65104, 65108, 65112, 65116, 65120, 65124, 65128, 65132, + 65136, 65140, 65144, 65148, 65152, 65156, 65160, 65164, 65168, 65172, + 65176, 65180, 65184, 65188, 65192, 65196, 65200, 65204, 65208, 65212, + 65216, 65220, 65224, 65228, 65232, 65236, 65240, 65244, 65248, 65252, + 65256, 65260, 65264, 65268, 65272, 65276, 65280, 65284, 65288, 65292, + 65295, 65299, 65303, 65307, 65311, 65315, 65319, 65323, 65327, 65331, + 65335, 65339, 65343, 65347, 65351, 65355, 65359, 65363, 65367, 65371, + 65375, 65379, 65383, 65387, 65391, 65395, 65399, 65403, 65407, 65411, + 65415, 65419, 65423, 65427, 65431, 65435, 65439, 65443, 65447, 65451, + 65455, 65459, 65463, 65467, 65471, 65475, 65479, 65483, 65487, 65491, + 65495, 65499, 65503, 65507, 65511, 65515, 65519, 65523, 65527, 65531, + 65535, 65539, 65543, 65547, 65551, 65555, 65559, 65563, 65567, 65571, + 65575, 65579, 65583, 65587, 65591, 65595, 65599, 65603, 65607, 65611, + 65615, 65619, 65623, 65627, 65631, 65635, 65639, 65643, 65647, 65651, + 65654, 65658, 65662, 65666, 65670, 65674, 65678, 65682, 65686, 65690, + 65694, 65698, 65702, 65706, 65710, 65714, 65718, 65722, 65726, 65730, + 65734, 65738, 65742, 65746, 65750, 65754, 65758, 65762, 65766, 65770, + 65774, 65778, 65782, 65786, 65790, 65794, 65798, 65802, 65806, 65810, + 65814, 65818, 65822, 65826, 65830, 65834, 65838, 65842, 65846, 65850, + 65854, 65858, 65862, 65866, 65870, 65874, 65878, 65882, 65886, 65890, + 65894, 65898, 65902, 65906, 65910, 65914, 65918, 65922, 65926, 65930, + 65934, 65938, 65942, 65946, 65950, 65954, 65958, 65962, 65966, 65970, + 65974, 65978, 65982, 65986, 65990, 65994, 65998, 66002, 66006, 66010, + 66014, 66018, 66022, 66026, 66030, 66034, 66038, 66042, 66046, 66050, + 66054, 66058, 66062, 66066, 66070, 66074, 66078, 66082, 66086, 66090, + 66094, 66098, 66102, 66106, 66110, 66114, 66118, 66122, 66126, 66130, + 66134, 66138, 66142, 66146, 66149, 66153, 66157, 66161, 66165, 66169, + 66173, 66177, 66181, 66185, 66189, 66193, 66197, 66201, 66205, 66209, + 66213, 66217, 66221, 66225, 66229, 66233, 66237, 66241, 66245, 66249, + 66253, 66257, 66261, 66265, 66269, 66273, 66277, 66281, 66285, 66289, + 66293, 66297, 66301, 66305, 66309, 66313, 66317, 66321, 66325, 66329, + 66333, 66337, 66341, 66345, 66349, 66353, 66357, 66361, 66365, 66369, + 66373, 66377, 66381, 66385, 66389, 66393, 66397, 66401, 66405, 66409, + 66413, 66417, 66421, 66425, 66429, 66433, 66437, 66441, 66445, 66449, + 66453, 66457, 66461, 66465, 66469, 66473, 66477, 66481, 66485, 66489, + 66493, 66497, 66501, 66505, 66509, 66513, 66517, 66521, 66525, 66529, + 66533, 66537, 66541, 66545, 66549, 66553, 66557, 66561, 66565, 66569, + 66573, 66577, 66581, 66585, 66589, 66593, 66597, 66601, 66604, 66608, + 66612, 66616, 66620, 66624, 66628, 66632, 66636, 66640, 66644, 66648, + 66652, 66656, 66660, 66664, 66668, 66672, 66676, 66680, 66684, 66688, + 66692, 66696, 66700, 66704, 66708, 66712, 66716, 66720, 66724, 66728, + 66732, 66736, 66740, 66744, 66748, 66752, 66756, 66760, 66764, 66768, + 66772, 66776, 66780, 66784, 66788, 66792, 66796, 66800, 66804, 66808, + 66812, 66816, 66820, 66824, 66828, 66832, 66836, 66840, 66844, 66848, + 66852, 66856, 66860, 66864, 66868, 66872, 66876, 66880, 66884, 66888, + 66892, 66896, 66900, 66904, 66908, 66912, 66916, 66920, 66924, 66928, + 66932, 66936, 66940, 66944, 66948, 66952, 66956, 66960, 66964, 66968, + 66972, 66976, 66980, 66984, 66988, 66992, 66996, 67000, 67004, 67008, + 67012, 67016, 67020, 67024, 67028, 67032, 67036, 67040, 67044, 67048, + 67052, 67056, 67060, 67064, 67068, 67072, 67076, 67080, 67084, 67088, + 67092, 67096, 67100, 67104, 67108, 67112, 67116, 67120, 67124, 67128, + 67132, 67136, 67140, 67144, 67148, 67152, 67156, 67160, 67164, 67168, + 67172, 67176, 67180, 67184, 67188, 67192, 67196, 67200, 67204, 67207, + 67211, 67215, 67219, 67223, 67227, 67231, 67235, 67238, 67242, 67246, + 67250, 67254, 67258, 67262, 67266, 67270, 67274, 67278, 67282, 67286, + 67290, 67294, 67298, 67302, 67306, 67310, 67314, 67318, 67322, 67326, + 67330, 67334, 67338, 67342, 67346, 67350, 67354, 67358, 67362, 67366, + 67370, 67374, 67378, 67382, 67386, 67390, 67394, 67398, 67402, 67406, + 67410, 67414, 67418, 67422, 67426, 67430, 67434, 67438, 67442, 67446, + 67450, 67454, 67458, 67462, 67466, 67470, 67474, 67478, 67482, 67486, + 67490, 67494, 67498, 67502, 67506, 67510, 67514, 67518, 67522, 67526, + 67530, 67534, 67538, 67542, 67546, 67550, 67554, 67558, 67562, 67566, + 67570, 67574, 67578, 67582, 67586, 67590, 67594, 67598, 67602, 67606, + 67610, 67614, 67618, 67622, 67626, 67630, 67634, 67638, 67642, 67646, + 67650, 67654, 67658, 67662, 67666, 67670, 67674, 67678, 67682, 67686, + 67690, 67694, 67698, 67702, 67706, 67710, 67714, 67718, 67722, 67726, + 67730, 67734, 67738, 67742, 67746, 67750, 67754, 67758, 67762, 67766, + 67770, 67774, 67778, 67782, 67786, 67790, 67794, 67798, 67802, 67806, + 67810, 67814, 67818, 67822, 67826, 67830, 67834, 67838, 67842, 67846, + 67850, 67854, 67858, 67862, 67866, 67870, 67874, 67878, 67882, 67886, + 67890, 67894, 67898, 67902, 67906, 67910, 67914, 67918, 67922, 67926, + 67930, 67934, 67938, 67942, 67946, 67950, 67954, 67958, 67962, 67965, + 67969, 67973, 67977, 67981, 67985, 67989, 67993, 67997, 68001, 68005, + 68009, 68013, 68017, 68021, 68025, 68029, 68033, 68037, 68041, 68045, + 68049, 68053, 68057, 68061, 68065, 68069, 68073, 68077, 68081, 68085, + 68089, 68093, 68097, 68101, 68105, 68109, 68113, 68117, 68121, 68125, + 68129, 68133, 68137, 68141, 68145, 68149, 68153, 68157, 68161, 68165, + 68169, 68173, 68177, 68181, 68185, 68189, 68193, 68197, 68201, 68205, + 68209, 68213, 68217, 68221, 68225, 68229, 68233, 68237, 68241, 68245, + 68249, 68253, 68257, 68261, 68265, 68269, 68273, 68277, 68281, 68285, + 68289, 68293, 68297, 68301, 68305, 68309, 68313, 68317, 68321, 68325, + 68329, 68333, 68337, 68341, 68345, 68349, 68353, 68357, 68361, 68365, + 68369, 68373, 68377, 68381, 68385, 68389, 68393, 68397, 68401, 68405, + 68409, 68413, 68417, 68421, 68425, 68429, 68433, 68437, 68441, 68445, + 68449, 68453, 68457, 68461, 68465, 68469, 68473, 68477, 68481, 68485, + 68489, 68493, 68497, 68501, 68505, 68509, 68513, 68517, 68521, 68525, + 68529, 68533, 68537, 68541, 68545, 68549, 68553, 68557, 68561, 68565, + 68569, 68573, 68577, 68581, 68585, 68589, 68593, 68597, 68601, 68605, + 68609, 68613, 68617, 68621, 68625, 68629, 68633, 68637, 68641, 68645, + 68649, 68653, 68657, 68661, 68665, 68669, 68673, 68677, 68681, 68685, + 68689, 68693, 68697, 68701, 68705, 68709, 68713, 68717, 68721, 68725, + 68729, 68733, 68737, 68741, 68745, 0, 0, 0, 68749, 68753, 68757, 68761, + 68765, 68769, 68773, 68777, 68781, 68785, 68789, 68793, 68797, 68801, + 68805, 68809, 68813, 68817, 68821, 68825, 68829, 68833, 68837, 68841, + 68845, 68849, 68853, 68857, 68861, 68865, 68869, 68873, 68877, 68881, + 68885, 68889, 68893, 68897, 68901, 68905, 68909, 68913, 68917, 68921, + 68925, 68929, 68933, 68937, 68941, 68945, 68949, 68953, 68957, 68961, + 68965, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68969, 68974, 68978, 68983, 68988, + 68993, 68998, 69003, 69007, 69012, 69017, 69022, 69027, 69032, 69037, + 69042, 69046, 69050, 69055, 69059, 69064, 69069, 69074, 69078, 69083, + 69088, 69093, 69098, 69103, 69107, 69112, 69116, 69121, 69125, 69130, + 69134, 69138, 69142, 69147, 69152, 69157, 69165, 69173, 69181, 69189, + 69196, 69204, 69210, 69218, 69222, 69226, 69230, 69234, 69238, 69242, + 69246, 69250, 69254, 69258, 69262, 69266, 69270, 69274, 69278, 69282, + 69286, 69290, 69294, 69298, 69302, 69306, 69310, 69314, 69318, 69322, + 69326, 69330, 69334, 69338, 69342, 69346, 69350, 69354, 69358, 69362, + 69365, 69369, 69373, 69377, 69381, 69385, 69389, 69393, 69397, 69401, + 69405, 69409, 69413, 69417, 69421, 69425, 69429, 69433, 69437, 69441, + 69445, 69449, 69453, 69457, 69461, 69465, 69469, 69473, 69477, 69481, + 69485, 69489, 69493, 69497, 69501, 69505, 69509, 69512, 69516, 69520, + 69523, 69527, 69531, 69535, 69538, 69542, 69546, 69550, 69554, 69558, + 69562, 69566, 69570, 69574, 69578, 69582, 69586, 69590, 69594, 69597, + 69601, 69605, 69608, 69612, 69616, 69620, 69624, 69628, 69632, 69635, + 69638, 69642, 69646, 69650, 69653, 69656, 69660, 69664, 69668, 69672, + 69676, 69680, 69684, 69688, 69692, 69696, 69700, 69704, 69708, 69712, + 69716, 69720, 69724, 69728, 69732, 69736, 69740, 69744, 69748, 69752, + 69756, 69760, 69764, 69768, 69772, 69776, 69780, 69784, 69788, 69792, + 69796, 69800, 69804, 69807, 69811, 69815, 69819, 69823, 69827, 69831, + 69835, 69839, 69843, 69847, 69851, 69855, 69859, 69863, 69867, 69871, + 69875, 69879, 69883, 69887, 69891, 69895, 69899, 69903, 69907, 69911, + 69915, 69919, 69923, 69927, 69931, 69935, 69939, 69943, 69947, 69951, + 69954, 69958, 69962, 69966, 69970, 69974, 69978, 69982, 69986, 69990, + 69994, 69998, 70002, 70006, 70010, 70014, 70018, 70021, 70025, 70029, + 70033, 70037, 70041, 70045, 70049, 70053, 70057, 70061, 70065, 70069, + 70073, 70077, 70081, 70085, 70089, 70093, 70097, 70101, 70105, 70108, + 70112, 70116, 70120, 70124, 70128, 70132, 70136, 70140, 70144, 70148, + 70152, 70156, 70160, 70164, 70168, 70172, 70176, 70180, 70184, 70188, + 70192, 70196, 70200, 70204, 70208, 70212, 70216, 70220, 70224, 70228, + 70232, 70236, 70240, 70244, 70248, 70252, 70256, 70260, 70264, 70268, + 70272, 70276, 70280, 70283, 70288, 70292, 70298, 70303, 70309, 70313, + 70317, 70321, 70325, 70329, 70333, 70337, 70341, 70345, 70349, 70353, + 70357, 70361, 70365, 70368, 70371, 70374, 70377, 70380, 70383, 70386, + 70389, 70392, 70397, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 70403, 70408, 70413, 70418, 70423, 70430, 70437, 70442, 70447, + 70452, 70457, 70464, 70471, 70478, 70485, 70492, 70499, 70509, 70519, + 70526, 70533, 70540, 70547, 70553, 70559, 70568, 70577, 70584, 70591, + 70602, 70613, 70618, 70623, 70630, 70637, 70644, 70651, 70658, 70665, + 70672, 70679, 70685, 70691, 70697, 70703, 70710, 70717, 70722, 70726, + 70733, 70740, 70747, 70751, 70758, 70762, 70767, 70771, 70777, 70782, + 70788, 70793, 70797, 70801, 70804, 70807, 70812, 70817, 70822, 70827, + 70832, 70837, 70842, 70847, 70852, 70857, 70866, 70875, 70880, 70885, + 70890, 70895, 70900, 70905, 70910, 70915, 70920, 70925, 70930, 0, 0, 0, + 0, 0, 0, 0, 70935, 70941, 70944, 70947, 70950, 70954, 70958, 70962, + 70966, 70969, 70973, 70976, 70980, 70983, 70987, 70991, 70995, 70999, + 71003, 71007, 71011, 71014, 71018, 71022, 71026, 71030, 71034, 71038, + 71042, 71046, 71050, 71054, 71058, 71062, 71066, 71070, 71073, 71077, + 71081, 71085, 71089, 71093, 71097, 71101, 71105, 71109, 71113, 71117, + 71121, 71125, 71129, 71133, 71137, 71141, 71145, 71149, 71153, 71157, + 71161, 71165, 71169, 71172, 71176, 71180, 71184, 71188, 71192, 71196, + 71200, 71203, 71207, 71211, 71215, 71219, 71223, 71227, 71231, 71235, + 71239, 71243, 71247, 71251, 71256, 71261, 71264, 71269, 71272, 71275, + 71278, 0, 0, 0, 0, 0, 0, 0, 0, 71282, 71291, 71300, 71309, 71318, 71327, + 71336, 71345, 71354, 71362, 71369, 71377, 71384, 71392, 71402, 71411, + 71421, 71430, 71440, 71448, 71455, 71463, 71470, 71478, 71483, 71488, + 71493, 71502, 71508, 71514, 71521, 71530, 71538, 71546, 71554, 71561, + 71568, 71575, 71582, 71587, 71592, 71597, 71602, 71607, 71612, 71617, + 71622, 71630, 71638, 71644, 71650, 71655, 71660, 71665, 71670, 71675, + 71680, 71685, 71690, 71698, 71706, 71711, 71716, 71726, 71736, 71743, + 71750, 71759, 71768, 71780, 71792, 71798, 71804, 71812, 71820, 71830, + 71840, 71847, 71854, 71859, 71864, 71876, 71888, 71896, 71904, 71914, + 71924, 71936, 71948, 71957, 71966, 71973, 71980, 71987, 71994, 72003, + 72012, 72017, 72022, 72029, 72036, 72043, 72050, 72062, 72074, 72079, + 72084, 72089, 72094, 72099, 72104, 72109, 72114, 72118, 72123, 72128, + 72133, 72138, 72143, 72149, 72154, 72159, 72166, 72173, 72180, 72187, + 72194, 72203, 72212, 72218, 72224, 72230, 72236, 72243, 72250, 72257, + 72264, 72271, 72275, 72282, 72287, 72292, 72299, 0, 72312, 72320, 72328, + 72335, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72342, 72351, 72360, 72369, + 72378, 72387, 72396, 72405, 72414, 72423, 72432, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72434, - 72441, 72447, 72454, 72462, 72470, 72477, 72485, 72492, 72498, 72504, - 72511, 72517, 72523, 72529, 72536, 72543, 72550, 72557, 72564, 72571, - 72578, 72585, 72592, 72599, 72606, 72613, 72620, 72627, 72633, 72640, - 72647, 72654, 72661, 72668, 72675, 72682, 72689, 72696, 72703, 72710, - 72717, 72724, 72731, 72738, 72745, 72752, 72759, 72767, 72775, 72783, - 72791, 0, 0, 0, 0, 72799, 72808, 72817, 72826, 72835, 72844, 72853, - 72860, 72867, 72874, 0, 0, 0, 0, 0, 0, 72881, 72885, 72890, 72895, 72900, - 72905, 72910, 72915, 72920, 72925, 72930, 72935, 72939, 72943, 72948, - 72953, 72957, 72962, 72967, 72972, 72977, 72982, 72987, 72992, 72996, - 73000, 73005, 73010, 73014, 73018, 73022, 73026, 73030, 73034, 73038, - 73043, 73048, 73053, 73058, 73063, 73070, 73076, 73081, 73086, 73091, - 73096, 73102, 73109, 73115, 73122, 73128, 73134, 73139, 73146, 73152, - 73157, 0, 0, 0, 0, 0, 0, 0, 0, 73163, 73167, 73171, 73174, 73178, 73181, - 73185, 73188, 73192, 73196, 73201, 73205, 73210, 73213, 73217, 73221, - 73224, 73228, 73232, 73235, 73239, 73243, 73247, 73251, 73255, 73259, - 73263, 73267, 73271, 73275, 73279, 73283, 73287, 73291, 73295, 73299, - 73303, 73307, 73310, 73313, 73317, 73321, 73325, 73328, 73331, 73334, - 73338, 73342, 73346, 73350, 73353, 73356, 73360, 73365, 73370, 73374, - 73379, 73383, 73388, 73393, 73399, 73404, 73410, 73414, 73419, 73424, - 73428, 73433, 73438, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73442, 73445, 73449, - 73453, 73456, 73459, 73462, 73465, 73468, 73471, 73474, 73477, 0, 0, 0, - 0, 0, 0, 73480, 73485, 73489, 73493, 73497, 73501, 73505, 73509, 73513, - 73517, 73521, 73525, 73529, 73533, 73537, 73541, 73545, 73550, 73555, - 73561, 73567, 73574, 73579, 73584, 73590, 73594, 73599, 73602, 0, 0, 0, - 0, 73605, 73612, 73618, 73624, 73630, 73636, 73642, 73648, 73654, 73660, - 73666, 73672, 73679, 73686, 73693, 73699, 73706, 73713, 73720, 73727, - 73734, 73740, 73746, 73753, 73759, 73766, 73773, 73779, 73785, 73792, - 73799, 73806, 73812, 73819, 73826, 73832, 73839, 73845, 73852, 73859, - 73865, 73871, 73878, 73884, 73891, 73898, 73907, 73914, 73921, 73925, - 73930, 73935, 73940, 73945, 73949, 73953, 73958, 73962, 73967, 73972, - 73977, 73981, 73985, 73990, 73994, 73999, 74003, 74008, 74013, 74018, - 74023, 74027, 74032, 74037, 74042, 74048, 74053, 74059, 74065, 74071, - 74077, 74083, 74088, 74094, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 74098, - 74103, 74107, 74111, 74115, 74119, 74123, 74127, 74131, 74135, 74139, - 74143, 74147, 74151, 74155, 74159, 74163, 74167, 74171, 74175, 74179, - 74183, 74187, 74191, 74195, 74199, 74203, 74207, 74211, 74215, 0, 0, 0, - 74219, 74223, 74227, 74231, 74235, 74238, 74244, 74247, 74251, 74254, - 74260, 74266, 74274, 74277, 74281, 74284, 74287, 74293, 74299, 74303, - 74309, 74313, 74317, 74323, 74327, 74333, 74339, 74343, 74347, 74353, - 74357, 74363, 74369, 74373, 74379, 74383, 74389, 74392, 74395, 74401, - 74405, 74411, 74414, 74417, 74420, 74426, 74430, 74434, 74440, 74446, - 74449, 74452, 74458, 74463, 74468, 74473, 74480, 74485, 74492, 74497, - 74504, 74509, 74514, 74519, 74524, 74527, 74531, 74535, 74540, 74545, - 74550, 74555, 74560, 74565, 74570, 74575, 74582, 74587, 0, 74594, 74597, - 74601, 74604, 74607, 74610, 74613, 74616, 74619, 74622, 74625, 0, 0, 0, - 0, 74628, 74635, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 74640, 74643, 74646, 74649, 74652, - 74656, 74659, 74662, 74666, 74670, 74674, 74678, 74682, 74686, 74690, - 74694, 74698, 74702, 74706, 74710, 74714, 74718, 74722, 74726, 74730, - 74733, 74737, 74740, 74744, 74748, 74752, 74756, 74760, 74763, 74767, - 74770, 74773, 74777, 74781, 74785, 74788, 74791, 74796, 74800, 74805, - 74810, 74814, 74819, 74823, 74828, 74833, 74838, 74842, 74846, 74851, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 74856, 74861, 74866, 74871, 74877, 74882, 74887, - 74892, 74897, 74902, 74906, 74910, 74915, 74920, 0, 0, 74926, 74930, - 74933, 74936, 74939, 74942, 74945, 74948, 74951, 74954, 0, 0, 74957, - 74962, 74967, 74973, 74980, 74986, 74992, 74998, 75004, 75010, 75016, - 75022, 75028, 75034, 75040, 75046, 75051, 75056, 75061, 75067, 75073, - 75080, 75086, 75092, 75097, 75104, 75111, 75118, 75124, 75129, 75134, - 75139, 0, 0, 0, 0, 75147, 75153, 75159, 75165, 75171, 75177, 75183, - 75189, 75195, 75201, 75207, 75213, 75219, 75225, 75231, 75237, 75243, - 75249, 75255, 75261, 75267, 75272, 75277, 75283, 75289, 75295, 75301, - 75307, 75313, 75319, 75325, 75331, 75337, 75343, 75349, 75355, 75361, - 75367, 75373, 75379, 75385, 75391, 75397, 75403, 75409, 75415, 75421, - 75426, 75431, 75437, 75442, 75446, 75451, 75455, 75459, 75463, 75469, - 75474, 75479, 75484, 75489, 75494, 75499, 75504, 75511, 75518, 75525, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72439, + 72446, 72452, 72459, 72467, 72475, 72482, 72490, 72497, 72503, 72509, + 72516, 72522, 72528, 72534, 72541, 72548, 72555, 72562, 72569, 72576, + 72583, 72590, 72597, 72604, 72611, 72618, 72625, 72632, 72638, 72645, + 72652, 72659, 72666, 72673, 72680, 72687, 72694, 72701, 72708, 72715, + 72722, 72729, 72736, 72743, 72750, 72757, 72764, 72772, 72780, 72788, + 72796, 0, 0, 0, 0, 72804, 72813, 72822, 72831, 72840, 72849, 72858, + 72865, 72872, 72879, 0, 0, 0, 0, 0, 0, 72886, 72890, 72895, 72900, 72905, + 72910, 72915, 72920, 72925, 72930, 72935, 72940, 72944, 72948, 72953, + 72958, 72962, 72967, 72972, 72977, 72982, 72987, 72992, 72997, 73001, + 73005, 73010, 73015, 73019, 73023, 73027, 73031, 73035, 73039, 73043, + 73048, 73053, 73058, 73063, 73068, 73075, 73081, 73086, 73091, 73096, + 73101, 73107, 73114, 73120, 73127, 73133, 73139, 73144, 73151, 73157, + 73162, 0, 0, 0, 0, 0, 0, 0, 0, 73168, 73172, 73176, 73179, 73183, 73186, + 73190, 73193, 73197, 73201, 73206, 73210, 73215, 73218, 73222, 73226, + 73229, 73233, 73237, 73240, 73244, 73248, 73252, 73256, 73260, 73264, + 73268, 73272, 73276, 73280, 73284, 73288, 73292, 73296, 73300, 73304, + 73308, 73312, 73315, 73318, 73322, 73326, 73330, 73333, 73336, 73339, + 73343, 73347, 73351, 73355, 73358, 73361, 73365, 73370, 73375, 73379, + 73384, 73388, 73393, 73398, 73404, 73409, 73415, 73419, 73424, 73429, + 73433, 73438, 73443, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73447, 73450, 73454, + 73458, 73461, 73464, 73467, 73470, 73473, 73476, 73479, 73482, 0, 0, 0, + 0, 0, 0, 73485, 73490, 73494, 73498, 73502, 73506, 73510, 73514, 73518, + 73522, 73526, 73530, 73534, 73538, 73542, 73546, 73550, 73555, 73560, + 73566, 73572, 73579, 73584, 73589, 73595, 73599, 73604, 73607, 0, 0, 0, + 0, 73610, 73617, 73623, 73629, 73635, 73641, 73647, 73653, 73659, 73665, + 73671, 73677, 73684, 73691, 73698, 73704, 73711, 73718, 73725, 73732, + 73739, 73745, 73751, 73758, 73764, 73771, 73778, 73784, 73790, 73797, + 73804, 73811, 73817, 73824, 73831, 73837, 73844, 73850, 73857, 73864, + 73870, 73876, 73883, 73889, 73896, 73903, 73912, 73919, 73926, 73930, + 73935, 73940, 73945, 73950, 73954, 73958, 73963, 73967, 73972, 73977, + 73982, 73986, 73990, 73995, 73999, 74004, 74008, 74013, 74018, 74023, + 74028, 74032, 74037, 74042, 74047, 74053, 74058, 74064, 74070, 74076, + 74082, 74088, 74093, 74099, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 74103, + 74108, 74112, 74116, 74120, 74124, 74128, 74132, 74136, 74140, 74144, + 74148, 74152, 74156, 74160, 74164, 74168, 74172, 74176, 74180, 74184, + 74188, 74192, 74196, 74200, 74204, 74208, 74212, 74216, 74220, 0, 0, 0, + 74224, 74228, 74232, 74236, 74240, 74243, 74249, 74252, 74256, 74259, + 74265, 74271, 74279, 74282, 74286, 74289, 74292, 74298, 74304, 74308, + 74314, 74318, 74322, 74328, 74332, 74338, 74344, 74348, 74352, 74358, + 74362, 74368, 74374, 74378, 74384, 74388, 74394, 74397, 74400, 74406, + 74410, 74416, 74419, 74422, 74425, 74431, 74435, 74439, 74445, 74451, + 74454, 74457, 74463, 74468, 74473, 74478, 74485, 74490, 74497, 74502, + 74509, 74514, 74519, 74524, 74529, 74532, 74536, 74540, 74545, 74550, + 74555, 74560, 74565, 74570, 74575, 74580, 74587, 74592, 0, 74599, 74602, + 74606, 74609, 74612, 74615, 74618, 74621, 74624, 74627, 74630, 0, 0, 0, + 0, 74633, 74640, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 74645, 74648, 74651, 74654, 74657, + 74661, 74664, 74667, 74671, 74675, 74679, 74683, 74687, 74691, 74695, + 74699, 74703, 74707, 74711, 74715, 74719, 74723, 74727, 74731, 74735, + 74738, 74742, 74745, 74749, 74753, 74757, 74761, 74765, 74768, 74772, + 74775, 74778, 74782, 74786, 74790, 74793, 74796, 74801, 74805, 74810, + 74815, 74819, 74824, 74828, 74833, 74838, 74843, 74847, 74851, 74856, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 74861, 74866, 74871, 74876, 74882, 74887, 74892, + 74897, 74902, 74907, 74911, 74915, 74920, 74925, 0, 0, 74931, 74935, + 74938, 74941, 74944, 74947, 74950, 74953, 74956, 74959, 0, 0, 74962, + 74967, 74972, 74978, 74985, 74991, 74997, 75003, 75009, 75015, 75021, + 75027, 75033, 75039, 75045, 75051, 75056, 75061, 75066, 75072, 75078, + 75085, 75091, 75097, 75102, 75109, 75116, 75123, 75129, 75134, 75139, + 75144, 0, 0, 0, 0, 75152, 75158, 75164, 75170, 75176, 75182, 75188, + 75194, 75200, 75206, 75212, 75218, 75224, 75230, 75236, 75242, 75248, + 75254, 75260, 75266, 75272, 75277, 75282, 75288, 75294, 75300, 75306, + 75312, 75318, 75324, 75330, 75336, 75342, 75348, 75354, 75360, 75366, + 75372, 75378, 75384, 75390, 75396, 75402, 75408, 75414, 75420, 75426, + 75431, 75436, 75442, 75447, 75451, 75456, 75460, 75464, 75468, 75474, + 75479, 75484, 75489, 75494, 75499, 75504, 75509, 75516, 75523, 75530, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 75532, 75537, 75542, 75547, 75554, 75561, 75565, 75569, 75574, 75579, - 75584, 75589, 75594, 75599, 75604, 75609, 75614, 75620, 75626, 75632, - 75638, 75644, 75648, 75654, 75658, 75664, 75671, 75677, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 75681, 75685, 75689, 75693, 75697, 75701, 0, 0, 75705, 75709, - 75713, 75717, 75721, 75725, 0, 0, 75729, 75733, 75737, 75741, 75745, - 75749, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75753, 75757, 75761, 75765, 75769, - 75773, 75777, 0, 75781, 75785, 75789, 75793, 75797, 75801, 75805, 0, 0, + 75537, 75542, 75547, 75552, 75559, 75566, 75570, 75574, 75579, 75584, + 75589, 75594, 75599, 75604, 75609, 75614, 75619, 75625, 75631, 75637, + 75643, 75649, 75653, 75659, 75663, 75669, 75676, 75682, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 75686, 75690, 75694, 75698, 75702, 75706, 0, 0, 75710, 75714, + 75718, 75722, 75726, 75730, 0, 0, 75734, 75738, 75742, 75746, 75750, + 75754, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75758, 75762, 75766, 75770, 75774, + 75778, 75782, 0, 75786, 75790, 75794, 75798, 75802, 75806, 75810, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 75809, 75814, 75819, 75824, 75829, 75833, 75837, 75842, 75847, 75852, - 75857, 75862, 75867, 75872, 75877, 75882, 75886, 75891, 75896, 75901, - 75906, 75911, 75916, 75921, 75926, 75931, 75936, 75941, 75948, 75955, - 75962, 75969, 75976, 75983, 75990, 75997, 76003, 76009, 76015, 76021, - 76027, 76033, 76039, 76045, 76049, 76055, 0, 0, 76061, 76066, 76070, - 76074, 76078, 76082, 76086, 76090, 76094, 76098, 0, 0, 0, 0, 0, 0, 0, 0, + 75814, 75819, 75824, 75829, 75834, 75838, 75842, 75847, 75852, 75857, + 75862, 75867, 75872, 75877, 75882, 75887, 75891, 75896, 75901, 75906, + 75911, 75916, 75921, 75926, 75931, 75936, 75941, 75946, 75953, 75960, + 75967, 75974, 75981, 75988, 75995, 76002, 76008, 76014, 76020, 76026, + 76032, 76038, 76044, 76050, 76054, 76060, 0, 0, 76066, 76071, 76075, + 76079, 76083, 76087, 76091, 76095, 76099, 76103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76102, - 76106, 76110, 76114, 76118, 76122, 76126, 76130, 76134, 76138, 76142, - 76146, 76150, 76154, 76158, 76162, 76166, 76170, 76174, 76178, 76182, - 76186, 76190, 0, 0, 0, 0, 76194, 76198, 76202, 76206, 76210, 76214, - 76218, 76222, 76226, 76230, 76234, 76238, 76242, 76246, 76250, 76254, - 76258, 76262, 76266, 76270, 76274, 76278, 76282, 76286, 76290, 76294, - 76298, 76302, 76306, 76310, 76314, 76318, 76322, 76326, 76330, 76334, - 76338, 76342, 76346, 76350, 76354, 76358, 76362, 76366, 76370, 76374, - 76378, 76382, 76386, 0, 0, 0, 0, 76390, 76394, 76398, 76402, 76406, - 76410, 76414, 76418, 76422, 76426, 76430, 76434, 76438, 76442, 76446, - 76450, 76454, 76458, 76462, 76466, 76470, 76474, 76478, 76482, 76486, - 76490, 76494, 76498, 76502, 76506, 76510, 76514, 76518, 76522, 76526, - 76530, 76534, 76538, 76542, 76546, 76550, 76554, 76558, 76562, 76566, - 76570, 76574, 76578, 76582, 76586, 76590, 76594, 76598, 76602, 76606, - 76610, 76614, 76618, 76622, 76626, 76630, 76634, 76638, 76642, 76646, - 76650, 76654, 76658, 76662, 76666, 76670, 76674, 76678, 76682, 76686, - 76690, 76694, 76698, 76702, 76706, 76710, 76714, 76718, 76722, 76726, - 76730, 76734, 76738, 76742, 76746, 76750, 76754, 76758, 76762, 76766, - 76770, 76774, 76778, 76782, 76786, 76790, 76794, 76798, 76802, 76806, - 76810, 76814, 76818, 76822, 76826, 76830, 76834, 76838, 76842, 76846, - 76850, 76854, 76858, 76862, 76866, 76870, 76874, 76878, 76882, 76886, - 76890, 76894, 76898, 76902, 76906, 76910, 76914, 76918, 76922, 76926, - 76930, 76934, 76938, 76942, 76946, 76950, 76954, 76958, 76962, 76966, - 76970, 76974, 76978, 76982, 76986, 76990, 76994, 76998, 77002, 77006, - 77010, 77014, 77018, 77022, 77026, 77030, 77034, 77038, 77042, 77046, - 77050, 77054, 77058, 77062, 77066, 77070, 77074, 77078, 77082, 77086, - 77090, 77094, 77098, 77102, 77106, 77110, 77114, 77118, 77122, 77126, - 77130, 77134, 77138, 77142, 77146, 77150, 77154, 77158, 77162, 77166, - 77170, 77174, 77178, 77182, 77186, 77190, 77194, 77198, 77202, 77206, - 77210, 77214, 77218, 77222, 77226, 77230, 77234, 77238, 77242, 77246, - 77250, 77254, 77258, 77262, 77266, 77270, 77274, 77278, 77282, 77286, - 77290, 77294, 77298, 77302, 77306, 77310, 77314, 77318, 77322, 77326, - 77330, 77334, 77338, 77342, 77346, 77350, 77354, 77358, 77362, 77366, - 77370, 77374, 77378, 77382, 77386, 77390, 77394, 77398, 77402, 77406, - 77410, 77414, 77418, 77422, 77426, 77430, 77434, 77438, 77442, 77446, - 77450, 77454, 77458, 77462, 77466, 77470, 77474, 77478, 77482, 77486, - 77490, 77494, 77498, 77502, 77506, 77510, 77514, 77518, 77522, 77526, - 77530, 77534, 77538, 77542, 77546, 77550, 77554, 77558, 77562, 77566, - 77570, 77574, 77578, 77582, 77586, 77590, 77594, 77598, 77602, 77606, - 77610, 77614, 77618, 77622, 77626, 77630, 77634, 77638, 77642, 77646, - 77650, 77654, 77658, 77662, 77666, 77670, 77674, 77678, 77682, 77686, - 77690, 77694, 77698, 77702, 77706, 77710, 77714, 77718, 77722, 77726, - 77730, 77734, 77738, 77742, 77746, 77750, 77754, 77758, 77762, 77766, - 77770, 77774, 77778, 77782, 77786, 77790, 77794, 77798, 77802, 77806, - 77810, 77814, 77818, 77822, 77826, 77830, 77834, 77838, 77842, 77846, - 77850, 0, 0, 77854, 77858, 77862, 77866, 77870, 77874, 77878, 77882, - 77886, 77890, 77894, 77898, 77902, 77906, 77910, 77914, 77918, 77922, - 77926, 77930, 77934, 77938, 77942, 77946, 77950, 77954, 77958, 77962, - 77966, 77970, 77974, 77978, 77982, 77986, 77990, 77994, 77998, 78002, - 78006, 78010, 78014, 78018, 78022, 78026, 78030, 78034, 78038, 78042, - 78046, 78050, 78054, 78058, 78062, 78066, 78070, 78074, 78078, 78082, - 78086, 78090, 78094, 78098, 78102, 78106, 78110, 78114, 78118, 78122, - 78126, 78130, 78134, 78138, 78142, 78146, 78150, 78154, 78158, 78162, - 78166, 78170, 78174, 78178, 78182, 78186, 78190, 78194, 78198, 78202, - 78206, 78210, 78214, 78218, 78222, 78226, 78230, 78234, 78238, 78242, - 78246, 78250, 78254, 78258, 78262, 78266, 78270, 78274, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76107, + 76111, 76115, 76119, 76123, 76127, 76131, 76135, 76139, 76143, 76147, + 76151, 76155, 76159, 76163, 76167, 76171, 76175, 76179, 76183, 76187, + 76191, 76195, 0, 0, 0, 0, 76199, 76203, 76207, 76211, 76215, 76219, + 76223, 76227, 76231, 76235, 76239, 76243, 76247, 76251, 76255, 76259, + 76263, 76267, 76271, 76275, 76279, 76283, 76287, 76291, 76295, 76299, + 76303, 76307, 76311, 76315, 76319, 76323, 76327, 76331, 76335, 76339, + 76343, 76347, 76351, 76355, 76359, 76363, 76367, 76371, 76375, 76379, + 76383, 76387, 76391, 0, 0, 0, 0, 76395, 76399, 76403, 76407, 76411, + 76415, 76419, 76423, 76427, 76431, 76435, 76439, 76443, 76447, 76451, + 76455, 76459, 76463, 76467, 76471, 76475, 76479, 76483, 76487, 76491, + 76495, 76499, 76503, 76507, 76511, 76515, 76519, 76523, 76527, 76531, + 76535, 76539, 76543, 76547, 76551, 76555, 76559, 76563, 76567, 76571, + 76575, 76579, 76583, 76587, 76591, 76595, 76599, 76603, 76607, 76611, + 76615, 76619, 76623, 76627, 76631, 76635, 76639, 76643, 76647, 76651, + 76655, 76659, 76663, 76667, 76671, 76675, 76679, 76683, 76687, 76691, + 76695, 76699, 76703, 76707, 76711, 76715, 76719, 76723, 76727, 76731, + 76735, 76739, 76743, 76747, 76751, 76755, 76759, 76763, 76767, 76771, + 76775, 76779, 76783, 76787, 76791, 76795, 76799, 76803, 76807, 76811, + 76815, 76819, 76823, 76827, 76831, 76835, 76839, 76843, 76847, 76851, + 76855, 76859, 76863, 76867, 76871, 76875, 76879, 76883, 76887, 76891, + 76895, 76899, 76903, 76907, 76911, 76915, 76919, 76923, 76927, 76931, + 76935, 76939, 76943, 76947, 76951, 76955, 76959, 76963, 76967, 76971, + 76975, 76979, 76983, 76987, 76991, 76995, 76999, 77003, 77007, 77011, + 77015, 77019, 77023, 77027, 77031, 77035, 77039, 77043, 77047, 77051, + 77055, 77059, 77063, 77067, 77071, 77075, 77079, 77083, 77087, 77091, + 77095, 77099, 77103, 77107, 77111, 77115, 77119, 77123, 77127, 77131, + 77135, 77139, 77143, 77147, 77151, 77155, 77159, 77163, 77167, 77171, + 77175, 77179, 77183, 77187, 77191, 77195, 77199, 77203, 77207, 77211, + 77215, 77219, 77223, 77227, 77231, 77235, 77239, 77243, 77247, 77251, + 77255, 77259, 77263, 77267, 77271, 77275, 77279, 77283, 77287, 77291, + 77295, 77299, 77303, 77307, 77311, 77315, 77319, 77323, 77327, 77331, + 77335, 77339, 77343, 77347, 77351, 77355, 77359, 77363, 77367, 77371, + 77375, 77379, 77383, 77387, 77391, 77395, 77399, 77403, 77407, 77411, + 77415, 77419, 77423, 77427, 77431, 77435, 77439, 77443, 77447, 77451, + 77455, 77459, 77463, 77467, 77471, 77475, 77479, 77483, 77487, 77491, + 77495, 77499, 77503, 77507, 77511, 77515, 77519, 77523, 77527, 77531, + 77535, 77539, 77543, 77547, 77551, 77555, 77559, 77563, 77567, 77571, + 77575, 77579, 77583, 77587, 77591, 77595, 77599, 77603, 77607, 77611, + 77615, 77619, 77623, 77627, 77631, 77635, 77639, 77643, 77647, 77651, + 77655, 77659, 77663, 77667, 77671, 77675, 77679, 77683, 77687, 77691, + 77695, 77699, 77703, 77707, 77711, 77715, 77719, 77723, 77727, 77731, + 77735, 77739, 77743, 77747, 77751, 77755, 77759, 77763, 77767, 77771, + 77775, 77779, 77783, 77787, 77791, 77795, 77799, 77803, 77807, 77811, + 77815, 77819, 77823, 77827, 77831, 77835, 77839, 77843, 77847, 77851, + 77855, 0, 0, 77859, 77863, 77867, 77871, 77875, 77879, 77883, 77887, + 77891, 77895, 77899, 77903, 77907, 77911, 77915, 77919, 77923, 77927, + 77931, 77935, 77939, 77943, 77947, 77951, 77955, 77959, 77963, 77967, + 77971, 77975, 77979, 77983, 77987, 77991, 77995, 77999, 78003, 78007, + 78011, 78015, 78019, 78023, 78027, 78031, 78035, 78039, 78043, 78047, + 78051, 78055, 78059, 78063, 78067, 78071, 78075, 78079, 78083, 78087, + 78091, 78095, 78099, 78103, 78107, 78111, 78115, 78119, 78123, 78127, + 78131, 78135, 78139, 78143, 78147, 78151, 78155, 78159, 78163, 78167, + 78171, 78175, 78179, 78183, 78187, 78191, 78195, 78199, 78203, 78207, + 78211, 78215, 78219, 78223, 78227, 78231, 78235, 78239, 78243, 78247, + 78251, 78255, 78259, 78263, 78267, 78271, 78275, 78279, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 78278, 78283, 78288, 78293, 78298, 78303, 78311, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 78316, 78323, 78330, 78337, 78344, 0, - 0, 0, 0, 0, 78351, 78358, 78365, 78375, 78381, 78387, 78393, 78399, - 78405, 78411, 78418, 78424, 78430, 78436, 78445, 78454, 78466, 78478, - 78484, 78490, 78496, 78503, 78510, 78517, 78524, 78531, 0, 78538, 78545, - 78552, 78560, 78567, 0, 78574, 0, 78581, 78588, 0, 78595, 78603, 0, - 78610, 78617, 78624, 78631, 78638, 78645, 78652, 78659, 78666, 78673, - 78678, 78685, 78692, 78698, 78704, 78710, 78716, 78722, 78728, 78734, - 78740, 78746, 78752, 78758, 78764, 78770, 78776, 78782, 78788, 78794, - 78800, 78806, 78812, 78818, 78824, 78830, 78836, 78842, 78848, 78854, - 78860, 78866, 78872, 78878, 78884, 78890, 78896, 78902, 78908, 78914, - 78920, 78926, 78932, 78938, 78944, 78950, 78956, 78962, 78968, 78974, - 78980, 78986, 78992, 78998, 79004, 79010, 79016, 79022, 79028, 79034, - 79040, 79046, 79052, 79058, 79064, 79070, 79076, 79082, 79088, 79094, - 79100, 79106, 79112, 79118, 79124, 79130, 79136, 79142, 79148, 79156, - 79164, 79170, 79176, 79182, 79188, 79197, 79206, 79214, 79222, 79230, - 79238, 79246, 79254, 79262, 79270, 79277, 79284, 79294, 79304, 79308, - 79312, 79317, 79322, 79327, 79332, 79341, 79350, 79356, 79362, 79369, - 79376, 79383, 79387, 79393, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 79399, 79405, 79411, 79417, 79423, 79428, 79433, 79439, 79445, - 79451, 79457, 79465, 79471, 79477, 79485, 79493, 79501, 79509, 79514, - 79519, 79524, 79529, 79542, 79555, 79565, 79575, 79586, 79597, 79608, - 79619, 79629, 79639, 79650, 79661, 79672, 79683, 79693, 79703, 79713, - 79729, 79745, 79761, 79768, 79775, 79782, 79789, 79799, 79809, 79819, - 79831, 79841, 79849, 79857, 79866, 79874, 79884, 79892, 79900, 79908, - 79917, 79925, 79935, 79943, 79951, 79959, 79969, 79977, 79984, 79991, - 79998, 80005, 80013, 80021, 80029, 80037, 80045, 80054, 80062, 80070, - 80078, 80086, 80094, 80103, 80111, 80119, 80127, 80135, 80143, 80151, - 80159, 80167, 80175, 80183, 80192, 80200, 80210, 80218, 80226, 80234, - 80244, 80252, 80260, 80268, 80276, 80285, 80294, 80302, 80312, 80320, - 80328, 80336, 80345, 80353, 80363, 80371, 80378, 80385, 80393, 80400, - 80409, 80416, 80424, 80432, 80441, 80449, 80459, 80467, 80475, 80483, - 80493, 80501, 80508, 80515, 80523, 80530, 80539, 80546, 80556, 80566, - 80577, 80586, 80595, 80604, 80613, 80622, 80632, 80643, 80654, 80664, - 80675, 80687, 80697, 80706, 80715, 80723, 80732, 80742, 80750, 80759, - 80768, 80776, 80785, 80795, 80803, 80812, 80821, 80829, 80838, 80848, - 80856, 80866, 80874, 80884, 80892, 80900, 80909, 80917, 80927, 80935, - 80943, 80953, 80961, 80968, 80975, 80984, 80993, 81001, 81010, 81020, - 81028, 81039, 81047, 81055, 81062, 81070, 81079, 81086, 81096, 81106, - 81117, 81127, 81138, 81146, 81154, 81163, 81171, 81180, 81188, 81196, - 81205, 81213, 81222, 81230, 81237, 81244, 81251, 81258, 81266, 81274, - 81282, 81290, 81299, 81307, 81315, 81324, 81332, 81340, 81348, 81357, - 81365, 81373, 81381, 81389, 81397, 81405, 81413, 81421, 81429, 81438, - 81446, 81454, 81462, 81470, 81478, 81487, 81496, 81504, 81512, 81520, - 81529, 81537, 81546, 81553, 81560, 81568, 81575, 81583, 81591, 81600, - 81608, 81617, 81625, 81633, 81643, 81650, 81657, 81665, 81672, 81680, - 81690, 81701, 81709, 81718, 81726, 81735, 81743, 81752, 81760, 81769, - 81777, 81786, 81795, 81803, 81811, 81819, 81828, 81835, 81843, 81852, - 81861, 81870, 81880, 81888, 81898, 81906, 81916, 81924, 81934, 81942, - 81952, 81960, 81969, 81976, 81985, 81992, 82002, 82010, 82020, 82028, - 82038, 82046, 82054, 82062, 82071, 82079, 82088, 82097, 82106, 82115, - 82125, 82133, 82143, 82151, 82161, 82169, 82179, 82187, 82197, 82205, - 82214, 82221, 82230, 82237, 82247, 82255, 82265, 82273, 82283, 82291, - 82299, 82307, 82316, 82324, 82333, 82342, 82351, 82360, 82368, 82376, - 82385, 82393, 82402, 82411, 82419, 82427, 82435, 82444, 82452, 82460, - 82469, 82477, 82485, 82493, 82501, 82506, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 82511, 82521, 82531, 82541, 82551, 82562, 82572, 82582, - 82593, 82602, 82611, 82620, 82631, 82641, 82651, 82663, 82673, 82683, - 82693, 82703, 82713, 82723, 82733, 82743, 82753, 82763, 82773, 82784, - 82795, 82805, 82815, 82827, 82838, 82849, 82859, 82869, 82879, 82889, - 82899, 82909, 82919, 82931, 82941, 82951, 82963, 82974, 82985, 82995, - 83005, 83015, 83025, 83037, 83047, 83057, 83068, 83079, 83089, 83099, - 83108, 83117, 83126, 83135, 83144, 83154, 0, 0, 83164, 83174, 83184, - 83194, 83204, 83216, 83226, 83236, 83248, 83258, 83270, 83279, 83288, - 83299, 83309, 83321, 83332, 83345, 83355, 83367, 83376, 83387, 83398, - 83411, 83421, 83431, 83441, 83451, 83461, 83470, 83479, 83488, 83497, - 83507, 83517, 83527, 83537, 83547, 83557, 83567, 83577, 83587, 83597, - 83607, 83617, 83626, 83635, 83644, 83654, 83664, 83674, 83684, 83694, - 83705, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83715, 83730, - 83745, 83751, 83757, 83763, 83769, 83775, 83781, 83787, 83793, 83801, - 83805, 83808, 0, 0, 83816, 83819, 83822, 83825, 83828, 83831, 83834, - 83837, 83840, 83843, 83846, 83849, 83852, 83855, 83858, 83861, 83864, - 83872, 83881, 83892, 83900, 83908, 83917, 83926, 83937, 83949, 0, 0, 0, - 0, 0, 0, 83958, 83963, 83968, 83975, 83982, 83988, 83994, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 83999, 84009, 84019, 84029, 84038, 84049, 84058, 84067, - 84077, 84087, 84099, 84111, 84122, 84133, 84144, 84155, 84165, 84175, - 84185, 84195, 84206, 84217, 84221, 84226, 84235, 84244, 84248, 84252, - 84256, 84261, 84266, 84271, 84276, 84279, 84283, 0, 84288, 84291, 84294, - 84298, 84302, 84307, 84311, 84315, 84320, 84325, 84332, 84339, 84342, - 84345, 84348, 84351, 84354, 84358, 84362, 0, 84366, 84371, 84375, 84379, - 0, 0, 0, 0, 84384, 84389, 84396, 84401, 84406, 0, 84411, 84416, 84421, - 84426, 84431, 84436, 84441, 84446, 84451, 84456, 84461, 84466, 84475, - 84484, 84492, 84500, 84509, 84518, 84527, 84536, 84544, 84552, 84560, - 84568, 84573, 84578, 84584, 84590, 84596, 84602, 84610, 84618, 84624, - 84630, 84636, 84642, 84648, 84654, 84660, 84666, 84671, 84676, 84681, - 84686, 84691, 84696, 84701, 84706, 84712, 84718, 84724, 84730, 84736, - 84742, 84748, 84754, 84760, 84766, 84772, 84778, 84784, 84790, 84796, - 84802, 84808, 84814, 84820, 84826, 84832, 84838, 84844, 84850, 84856, - 84862, 84868, 84874, 84880, 84886, 84892, 84898, 84904, 84910, 84916, - 84922, 84928, 84934, 84940, 84946, 84952, 84958, 84964, 84970, 84976, - 84982, 84988, 84994, 85000, 85006, 85012, 85018, 85024, 85030, 85036, - 85042, 85048, 85054, 85060, 85066, 85071, 85076, 85081, 85086, 85092, - 85098, 85104, 85110, 85116, 85122, 85128, 85134, 85140, 85146, 85153, - 85160, 85165, 85170, 85175, 85180, 85192, 85204, 85215, 85226, 85238, - 85250, 85258, 0, 0, 85266, 0, 85274, 85278, 85282, 85285, 85289, 85293, - 85296, 85299, 85303, 85307, 85310, 85313, 85316, 85319, 85324, 85327, - 85331, 85334, 85337, 85340, 85343, 85346, 85349, 85352, 85355, 85358, - 85361, 85364, 85368, 85372, 85376, 85380, 85385, 85390, 85396, 85402, - 85408, 85413, 85419, 85425, 85431, 85436, 85442, 85448, 85453, 85458, - 85464, 85469, 85475, 85481, 85486, 85492, 85498, 85503, 85509, 85515, - 85521, 85527, 85533, 85537, 85542, 85546, 85551, 85555, 85560, 85565, - 85571, 85577, 85583, 85588, 85594, 85600, 85606, 85611, 85617, 85623, - 85628, 85633, 85639, 85644, 85650, 85656, 85661, 85667, 85673, 85678, - 85684, 85690, 85696, 85702, 85708, 85713, 85717, 85722, 85724, 85729, - 85734, 85740, 85745, 85750, 85754, 85760, 85765, 85770, 85775, 85780, - 85785, 85790, 85795, 85801, 85807, 85813, 85821, 85825, 85829, 85833, - 85837, 85841, 85845, 85850, 85855, 85860, 85865, 85869, 85874, 85879, - 85884, 85889, 85894, 85899, 85904, 85909, 85913, 85917, 85922, 85927, - 85932, 85937, 85941, 85946, 85951, 85956, 85961, 85965, 85970, 85975, - 85980, 85985, 85989, 85994, 85999, 86003, 86008, 86013, 86018, 86023, - 86028, 86033, 86040, 86047, 86051, 86056, 86061, 86066, 86071, 86076, - 86081, 86086, 86091, 86096, 86101, 86106, 86111, 86116, 86121, 86126, - 86131, 86136, 86141, 86146, 86151, 86156, 86161, 86166, 86171, 86176, - 86181, 86186, 86191, 86196, 0, 0, 0, 86201, 86205, 86210, 86214, 86219, - 86224, 0, 0, 86228, 86233, 86238, 86242, 86247, 86252, 0, 0, 86257, - 86262, 86266, 86271, 86276, 86281, 0, 0, 86286, 86291, 86296, 0, 0, 0, - 86300, 86304, 86308, 86312, 86315, 86319, 86323, 0, 86327, 86333, 86336, - 86340, 86343, 86347, 86351, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86355, 86361, - 86367, 86373, 86379, 0, 0, 86383, 86389, 86395, 86401, 86407, 86413, - 86420, 86427, 86434, 86441, 86448, 86455, 0, 86462, 86469, 86476, 86482, - 86489, 86496, 86503, 86510, 86516, 86523, 86530, 86537, 86544, 86550, - 86557, 86564, 86571, 86578, 86584, 86591, 86598, 86605, 86612, 86619, - 86626, 86633, 0, 86640, 86646, 86653, 86660, 86667, 86674, 86680, 86687, - 86694, 86701, 86708, 86715, 86722, 86729, 86735, 86742, 86749, 86756, - 86763, 0, 86770, 86777, 0, 86784, 86791, 86798, 86805, 86812, 86819, - 86826, 86833, 86840, 86847, 86854, 86861, 86868, 86875, 86882, 0, 0, - 86888, 86893, 86898, 86903, 86908, 86913, 86918, 86923, 86928, 86933, - 86938, 86943, 86948, 86953, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86958, 86965, - 86972, 86979, 86986, 86993, 87000, 87007, 87014, 87021, 87028, 87035, - 87042, 87049, 87056, 87063, 87070, 87077, 87084, 87091, 87099, 87107, - 87114, 87121, 87126, 87134, 87142, 87149, 87156, 87161, 87168, 87173, - 87178, 87185, 87190, 87195, 87200, 87208, 87213, 87218, 87225, 87230, - 87235, 87242, 87249, 87254, 87259, 87264, 87269, 87274, 87279, 87284, - 87289, 87294, 87301, 87306, 87313, 87318, 87323, 87328, 87333, 87338, - 87343, 87348, 87353, 87358, 87363, 87368, 87375, 87382, 87389, 87396, - 87402, 87407, 87414, 87419, 87424, 87433, 87440, 87449, 87456, 87461, - 87466, 87474, 87479, 87484, 87489, 87494, 87499, 87506, 87511, 87516, - 87521, 87526, 87531, 87538, 87545, 87552, 87559, 87566, 87573, 87580, - 87587, 87594, 87601, 87608, 87615, 87622, 87629, 87636, 87643, 87650, - 87657, 87664, 87671, 87678, 87685, 87692, 87699, 87706, 87713, 87720, - 87727, 0, 0, 0, 0, 0, 87734, 87742, 87750, 0, 0, 0, 0, 87755, 87759, - 87763, 87767, 87771, 87775, 87779, 87783, 87787, 87791, 87796, 87801, - 87806, 87811, 87816, 87821, 87826, 87831, 87836, 87842, 87848, 87854, - 87861, 87868, 87875, 87882, 87889, 87896, 87902, 87908, 87914, 87921, - 87928, 87935, 87942, 87949, 87956, 87963, 87970, 87977, 87984, 87991, - 87998, 88005, 88012, 0, 0, 0, 88019, 88027, 88035, 88043, 88051, 88059, - 88069, 88079, 88087, 88095, 88103, 88111, 88119, 88125, 88132, 88141, - 88150, 88159, 88168, 88177, 88186, 88196, 88207, 88217, 88228, 88237, - 88246, 88255, 88265, 88276, 88286, 88297, 88308, 88317, 88325, 88331, - 88337, 88343, 88349, 88357, 88365, 88371, 88378, 88388, 88395, 88402, - 88409, 88416, 88423, 88433, 88440, 88447, 88455, 88463, 88472, 88481, - 88490, 88499, 88508, 88516, 88525, 88534, 88543, 88547, 88554, 88559, - 88564, 88568, 88572, 88576, 88580, 88585, 88590, 88596, 88602, 88606, - 88612, 88616, 88620, 88624, 88628, 88632, 88636, 88642, 0, 0, 0, 0, 0, - 88646, 88651, 88656, 88661, 88666, 88673, 88678, 88683, 88688, 88693, - 88698, 88703, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 78283, 78288, 78293, 78298, 78303, 78308, 78316, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 78321, 78328, 78335, 78342, 78349, 0, + 0, 0, 0, 0, 78356, 78363, 78370, 78380, 78386, 78392, 78398, 78404, + 78410, 78416, 78423, 78429, 78435, 78441, 78450, 78459, 78471, 78483, + 78489, 78495, 78501, 78508, 78515, 78522, 78529, 78536, 0, 78543, 78550, + 78557, 78565, 78572, 0, 78579, 0, 78586, 78593, 0, 78600, 78608, 0, + 78615, 78622, 78629, 78636, 78643, 78650, 78657, 78664, 78671, 78678, + 78683, 78690, 78697, 78703, 78709, 78715, 78721, 78727, 78733, 78739, + 78745, 78751, 78757, 78763, 78769, 78775, 78781, 78787, 78793, 78799, + 78805, 78811, 78817, 78823, 78829, 78835, 78841, 78847, 78853, 78859, + 78865, 78871, 78877, 78883, 78889, 78895, 78901, 78907, 78913, 78919, + 78925, 78931, 78937, 78943, 78949, 78955, 78961, 78967, 78973, 78979, + 78985, 78991, 78997, 79003, 79009, 79015, 79021, 79027, 79033, 79039, + 79045, 79051, 79057, 79063, 79069, 79075, 79081, 79087, 79093, 79099, + 79105, 79111, 79117, 79123, 79129, 79135, 79141, 79147, 79153, 79161, + 79169, 79175, 79181, 79187, 79193, 79202, 79211, 79219, 79227, 79235, + 79243, 79251, 79259, 79267, 79275, 79282, 79289, 79299, 79309, 79313, + 79317, 79322, 79327, 79332, 79337, 79346, 79355, 79361, 79367, 79374, + 79381, 79388, 79392, 79398, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 79404, 79410, 79416, 79422, 79428, 79433, 79438, 79444, 79450, + 79456, 79462, 79470, 79476, 79482, 79490, 79498, 79506, 79514, 79519, + 79524, 79529, 79534, 79547, 79560, 79570, 79580, 79591, 79602, 79613, + 79624, 79634, 79644, 79655, 79666, 79677, 79688, 79698, 79708, 79718, + 79734, 79750, 79766, 79773, 79780, 79787, 79794, 79804, 79814, 79824, + 79836, 79846, 79854, 79862, 79871, 79879, 79889, 79897, 79905, 79913, + 79922, 79930, 79940, 79948, 79956, 79964, 79974, 79982, 79989, 79996, + 80003, 80010, 80018, 80026, 80034, 80042, 80050, 80059, 80067, 80075, + 80083, 80091, 80099, 80108, 80116, 80124, 80132, 80140, 80148, 80156, + 80164, 80172, 80180, 80188, 80197, 80205, 80215, 80223, 80231, 80239, + 80249, 80257, 80265, 80273, 80281, 80290, 80299, 80307, 80317, 80325, + 80333, 80341, 80350, 80358, 80368, 80376, 80383, 80390, 80398, 80405, + 80414, 80421, 80429, 80437, 80446, 80454, 80464, 80472, 80480, 80488, + 80498, 80506, 80513, 80520, 80528, 80535, 80544, 80551, 80561, 80571, + 80582, 80591, 80600, 80609, 80618, 80627, 80637, 80648, 80659, 80669, + 80680, 80692, 80702, 80711, 80720, 80728, 80737, 80747, 80755, 80764, + 80773, 80781, 80790, 80800, 80808, 80817, 80826, 80834, 80843, 80853, + 80861, 80871, 80879, 80889, 80897, 80905, 80914, 80922, 80932, 80940, + 80948, 80958, 80966, 80973, 80980, 80989, 80998, 81006, 81015, 81025, + 81033, 81044, 81052, 81060, 81067, 81075, 81084, 81091, 81101, 81111, + 81122, 81132, 81143, 81151, 81159, 81168, 81176, 81185, 81193, 81201, + 81210, 81218, 81227, 81235, 81242, 81249, 81256, 81263, 81271, 81279, + 81287, 81295, 81304, 81312, 81320, 81329, 81337, 81345, 81353, 81362, + 81370, 81378, 81386, 81394, 81402, 81410, 81418, 81426, 81434, 81443, + 81451, 81459, 81467, 81475, 81483, 81492, 81501, 81509, 81517, 81525, + 81534, 81542, 81551, 81558, 81565, 81573, 81580, 81588, 81596, 81605, + 81613, 81622, 81630, 81638, 81648, 81655, 81662, 81670, 81677, 81685, + 81695, 81706, 81714, 81723, 81731, 81740, 81748, 81757, 81765, 81774, + 81782, 81791, 81800, 81808, 81816, 81824, 81833, 81840, 81848, 81857, + 81866, 81875, 81885, 81893, 81903, 81911, 81921, 81929, 81939, 81947, + 81957, 81965, 81974, 81981, 81990, 81997, 82007, 82015, 82025, 82033, + 82043, 82051, 82059, 82067, 82076, 82084, 82093, 82102, 82111, 82120, + 82130, 82138, 82148, 82156, 82166, 82174, 82184, 82192, 82202, 82210, + 82219, 82226, 82235, 82242, 82252, 82260, 82270, 82278, 82288, 82296, + 82304, 82312, 82321, 82329, 82338, 82347, 82356, 82365, 82373, 82381, + 82390, 82398, 82407, 82416, 82424, 82432, 82440, 82449, 82457, 82465, + 82474, 82482, 82490, 82498, 82506, 82511, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 82516, 82526, 82536, 82546, 82556, 82567, 82577, 82587, + 82598, 82607, 82616, 82625, 82636, 82646, 82656, 82668, 82678, 82688, + 82698, 82708, 82718, 82728, 82738, 82748, 82758, 82768, 82778, 82789, + 82800, 82810, 82820, 82832, 82843, 82854, 82864, 82874, 82884, 82894, + 82904, 82914, 82924, 82936, 82946, 82956, 82968, 82979, 82990, 83000, + 83010, 83020, 83030, 83042, 83052, 83062, 83073, 83084, 83094, 83104, + 83113, 83122, 83131, 83140, 83149, 83159, 0, 0, 83169, 83179, 83189, + 83199, 83209, 83221, 83231, 83241, 83253, 83263, 83275, 83284, 83293, + 83304, 83314, 83326, 83337, 83350, 83360, 83372, 83381, 83392, 83403, + 83416, 83426, 83436, 83446, 83456, 83466, 83475, 83484, 83493, 83502, + 83512, 83522, 83532, 83542, 83552, 83562, 83572, 83582, 83592, 83602, + 83612, 83622, 83631, 83640, 83649, 83659, 83669, 83679, 83689, 83699, + 83710, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83720, 83735, + 83750, 83756, 83762, 83768, 83774, 83780, 83786, 83792, 83798, 83806, + 83810, 83813, 0, 0, 83821, 83824, 83827, 83830, 83833, 83836, 83839, + 83842, 83845, 83848, 83851, 83854, 83857, 83860, 83863, 83866, 83869, + 83877, 83886, 83897, 83905, 83913, 83922, 83931, 83942, 83954, 0, 0, 0, + 0, 0, 0, 83963, 83968, 83973, 83980, 83987, 83993, 83999, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 84004, 84014, 84024, 84034, 84043, 84054, 84063, 84072, + 84082, 84092, 84104, 84116, 84127, 84138, 84149, 84160, 84170, 84180, + 84190, 84200, 84211, 84222, 84226, 84231, 84240, 84249, 84253, 84257, + 84261, 84266, 84271, 84276, 84281, 84284, 84288, 0, 84293, 84296, 84299, + 84303, 84307, 84312, 84316, 84320, 84325, 84330, 84337, 84344, 84347, + 84350, 84353, 84356, 84359, 84363, 84367, 0, 84371, 84376, 84380, 84384, + 0, 0, 0, 0, 84389, 84394, 84401, 84406, 84411, 0, 84416, 84421, 84426, + 84431, 84436, 84441, 84446, 84451, 84456, 84461, 84466, 84471, 84480, + 84489, 84497, 84505, 84514, 84523, 84532, 84541, 84549, 84557, 84565, + 84573, 84578, 84583, 84589, 84595, 84601, 84607, 84615, 84623, 84629, + 84635, 84641, 84647, 84653, 84659, 84665, 84671, 84676, 84681, 84686, + 84691, 84696, 84701, 84706, 84711, 84717, 84723, 84729, 84735, 84741, + 84747, 84753, 84759, 84765, 84771, 84777, 84783, 84789, 84795, 84801, + 84807, 84813, 84819, 84825, 84831, 84837, 84843, 84849, 84855, 84861, + 84867, 84873, 84879, 84885, 84891, 84897, 84903, 84909, 84915, 84921, + 84927, 84933, 84939, 84945, 84951, 84957, 84963, 84969, 84975, 84981, + 84987, 84993, 84999, 85005, 85011, 85017, 85023, 85029, 85035, 85041, + 85047, 85053, 85059, 85065, 85071, 85076, 85081, 85086, 85091, 85097, + 85103, 85109, 85115, 85121, 85127, 85133, 85139, 85145, 85151, 85158, + 85165, 85170, 85175, 85180, 85185, 85197, 85209, 85220, 85231, 85243, + 85255, 85263, 0, 0, 85271, 0, 85279, 85283, 85287, 85290, 85294, 85298, + 85301, 85304, 85308, 85312, 85315, 85318, 85321, 85324, 85329, 85332, + 85336, 85339, 85342, 85345, 85348, 85351, 85354, 85357, 85360, 85363, + 85366, 85369, 85373, 85377, 85381, 85385, 85390, 85395, 85401, 85407, + 85413, 85418, 85424, 85430, 85436, 85441, 85447, 85453, 85458, 85463, + 85469, 85474, 85480, 85486, 85491, 85497, 85503, 85508, 85514, 85520, + 85526, 85532, 85538, 85542, 85547, 85551, 85556, 85560, 85565, 85570, + 85576, 85582, 85588, 85593, 85599, 85605, 85611, 85616, 85622, 85628, + 85633, 85638, 85644, 85649, 85655, 85661, 85666, 85672, 85678, 85683, + 85689, 85695, 85701, 85707, 85713, 85718, 85722, 85727, 85729, 85734, + 85739, 85745, 85750, 85755, 85759, 85765, 85770, 85775, 85780, 85785, + 85790, 85795, 85800, 85806, 85812, 85818, 85826, 85830, 85834, 85838, + 85842, 85846, 85850, 85855, 85860, 85865, 85870, 85874, 85879, 85884, + 85889, 85894, 85899, 85904, 85909, 85914, 85918, 85922, 85927, 85932, + 85937, 85942, 85946, 85951, 85956, 85961, 85966, 85970, 85975, 85980, + 85985, 85990, 85994, 85999, 86004, 86008, 86013, 86018, 86023, 86028, + 86033, 86038, 86045, 86052, 86056, 86061, 86066, 86071, 86076, 86081, + 86086, 86091, 86096, 86101, 86106, 86111, 86116, 86121, 86126, 86131, + 86136, 86141, 86146, 86151, 86156, 86161, 86166, 86171, 86176, 86181, + 86186, 86191, 86196, 86201, 0, 0, 0, 86206, 86210, 86215, 86219, 86224, + 86229, 0, 0, 86233, 86238, 86243, 86247, 86252, 86257, 0, 0, 86262, + 86267, 86271, 86276, 86281, 86286, 0, 0, 86291, 86296, 86301, 0, 0, 0, + 86305, 86309, 86313, 86317, 86320, 86324, 86328, 0, 86332, 86338, 86341, + 86345, 86348, 86352, 86356, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86360, 86366, + 86372, 86378, 86384, 0, 0, 86388, 86394, 86400, 86406, 86412, 86418, + 86425, 86432, 86439, 86446, 86453, 86460, 0, 86467, 86474, 86481, 86487, + 86494, 86501, 86508, 86515, 86521, 86528, 86535, 86542, 86549, 86555, + 86562, 86569, 86576, 86583, 86589, 86596, 86603, 86610, 86617, 86624, + 86631, 86638, 0, 86645, 86651, 86658, 86665, 86672, 86679, 86685, 86692, + 86699, 86706, 86713, 86720, 86727, 86734, 86740, 86747, 86754, 86761, + 86768, 0, 86775, 86782, 0, 86789, 86796, 86803, 86810, 86817, 86824, + 86831, 86838, 86845, 86852, 86859, 86866, 86873, 86880, 86887, 0, 0, + 86893, 86898, 86903, 86908, 86913, 86918, 86923, 86928, 86933, 86938, + 86943, 86948, 86953, 86958, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86963, 86970, + 86977, 86984, 86991, 86998, 87005, 87012, 87019, 87026, 87033, 87040, + 87047, 87054, 87061, 87068, 87075, 87082, 87089, 87096, 87104, 87112, + 87119, 87126, 87131, 87139, 87147, 87154, 87161, 87166, 87173, 87178, + 87183, 87190, 87195, 87200, 87205, 87213, 87218, 87223, 87230, 87235, + 87240, 87247, 87254, 87259, 87264, 87269, 87274, 87279, 87284, 87289, + 87294, 87299, 87306, 87311, 87318, 87323, 87328, 87333, 87338, 87343, + 87348, 87353, 87358, 87363, 87368, 87373, 87380, 87387, 87394, 87401, + 87407, 87412, 87419, 87424, 87429, 87438, 87445, 87454, 87461, 87466, + 87471, 87479, 87484, 87489, 87494, 87499, 87504, 87511, 87516, 87521, + 87526, 87531, 87536, 87543, 87550, 87557, 87564, 87571, 87578, 87585, + 87592, 87599, 87606, 87613, 87620, 87627, 87634, 87641, 87648, 87655, + 87662, 87669, 87676, 87683, 87690, 87697, 87704, 87711, 87718, 87725, + 87732, 0, 0, 0, 0, 0, 87739, 87747, 87755, 0, 0, 0, 0, 87760, 87764, + 87768, 87772, 87776, 87780, 87784, 87788, 87792, 87796, 87801, 87806, + 87811, 87816, 87821, 87826, 87831, 87836, 87841, 87847, 87853, 87859, + 87866, 87873, 87880, 87887, 87894, 87901, 87907, 87913, 87919, 87926, + 87933, 87940, 87947, 87954, 87961, 87968, 87975, 87982, 87989, 87996, + 88003, 88010, 88017, 0, 0, 0, 88024, 88032, 88040, 88048, 88056, 88064, + 88074, 88084, 88092, 88100, 88108, 88116, 88124, 88130, 88137, 88146, + 88155, 88164, 88173, 88182, 88191, 88201, 88212, 88222, 88233, 88242, + 88251, 88260, 88270, 88281, 88291, 88302, 88313, 88322, 88330, 88336, + 88342, 88348, 88354, 88362, 88370, 88376, 88383, 88393, 88400, 88407, + 88414, 88421, 88428, 88438, 88445, 88452, 88460, 88468, 88477, 88486, + 88495, 88504, 88513, 88521, 88530, 88539, 88548, 88552, 88559, 88564, + 88569, 88573, 88577, 88581, 88585, 88590, 88595, 88601, 88607, 88611, + 88617, 88621, 88625, 88629, 88633, 88637, 88641, 88647, 0, 0, 0, 0, 0, + 88651, 88656, 88661, 88666, 88671, 88678, 88683, 88688, 88693, 88698, + 88703, 88708, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 88708, 88715, 88724, 88733, 88740, 88747, 88754, - 88761, 88768, 88775, 88781, 88788, 88795, 88802, 88809, 88816, 88823, - 88830, 88837, 88846, 88853, 88860, 88867, 88874, 88881, 88888, 88895, - 88902, 88911, 88918, 88925, 88932, 88939, 88946, 88953, 88962, 88969, - 88976, 88983, 88990, 88999, 89006, 89013, 89020, 89028, 89037, 0, 0, - 89046, 89050, 89054, 89059, 89064, 89069, 89074, 89078, 89083, 89088, - 89093, 89098, 89103, 89108, 89112, 89116, 89121, 89126, 89131, 89135, - 89140, 89145, 89149, 89154, 89159, 89164, 89169, 89174, 89179, 0, 0, 0, - 89184, 89188, 89193, 89198, 89202, 89207, 89211, 89216, 89221, 89226, - 89231, 89235, 89239, 89244, 89249, 89254, 89259, 89264, 89269, 89273, - 89278, 89283, 89288, 89293, 89298, 89303, 89307, 89311, 89316, 89321, - 89326, 89331, 89336, 89341, 89346, 89351, 89356, 89361, 89366, 89371, - 89376, 89381, 89386, 89391, 89396, 89401, 89406, 89411, 89416, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 88713, 88720, 88729, 88738, 88745, 88752, 88759, + 88766, 88773, 88780, 88786, 88793, 88800, 88807, 88814, 88821, 88828, + 88835, 88842, 88851, 88858, 88865, 88872, 88879, 88886, 88893, 88900, + 88907, 88916, 88923, 88930, 88937, 88944, 88951, 88958, 88967, 88974, + 88981, 88988, 88995, 89004, 89011, 89018, 89025, 89033, 89042, 0, 0, + 89051, 89055, 89059, 89064, 89069, 89074, 89079, 89083, 89088, 89093, + 89098, 89103, 89108, 89113, 89117, 89121, 89126, 89131, 89136, 89140, + 89145, 89150, 89154, 89159, 89164, 89169, 89174, 89179, 89184, 0, 0, 0, + 89189, 89193, 89198, 89203, 89207, 89212, 89216, 89221, 89226, 89231, + 89236, 89240, 89244, 89249, 89254, 89259, 89264, 89269, 89274, 89278, + 89283, 89288, 89293, 89298, 89303, 89308, 89312, 89316, 89321, 89326, + 89331, 89336, 89341, 89346, 89351, 89356, 89361, 89366, 89371, 89376, + 89381, 89386, 89391, 89396, 89401, 89406, 89411, 89416, 89421, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 89421, 89425, - 89430, 89435, 89440, 89444, 89449, 89454, 89459, 89464, 89468, 89472, - 89477, 89482, 89487, 89492, 89496, 89501, 89506, 89511, 89516, 89521, - 89526, 89530, 89535, 89540, 89545, 89550, 89555, 89560, 89565, 0, 89570, - 89575, 89580, 89586, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 89592, 89597, - 89602, 89607, 89612, 89617, 89622, 89627, 89632, 89637, 89642, 89647, - 89652, 89657, 89662, 89667, 89672, 89677, 89682, 89687, 89692, 89697, - 89702, 89707, 89712, 89717, 89722, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 89426, 89430, + 89435, 89440, 89445, 89449, 89454, 89459, 89464, 89469, 89473, 89477, + 89482, 89487, 89492, 89497, 89501, 89506, 89511, 89516, 89521, 89526, + 89531, 89535, 89540, 89545, 89550, 89555, 89560, 89565, 89570, 0, 89575, + 89580, 89585, 89591, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 89597, 89602, + 89607, 89612, 89617, 89622, 89627, 89632, 89637, 89642, 89647, 89652, + 89657, 89662, 89667, 89672, 89677, 89682, 89687, 89692, 89697, 89702, + 89707, 89712, 89717, 89722, 89727, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 89729, 89734, 89739, - 89744, 89749, 89754, 89759, 89764, 89769, 89774, 89779, 89784, 89789, - 89794, 89799, 89804, 89809, 89814, 89819, 89824, 89829, 89834, 89839, - 89844, 89849, 89854, 89859, 89863, 89867, 89871, 0, 89876, 89882, 89887, - 89892, 89897, 89902, 89908, 89914, 89920, 89926, 89932, 89938, 89944, - 89950, 89956, 89962, 89968, 89974, 89980, 89985, 89991, 89997, 90002, - 90008, 90013, 90019, 90025, 90030, 90036, 90042, 90047, 90053, 90059, - 90064, 90070, 90076, 90082, 0, 0, 0, 0, 90087, 90093, 90099, 90105, - 90111, 90117, 90123, 90129, 90135, 90142, 90147, 90152, 90158, 90164, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 89734, 89739, 89744, + 89749, 89754, 89759, 89764, 89769, 89774, 89779, 89784, 89789, 89794, + 89799, 89804, 89809, 89814, 89819, 89824, 89829, 89834, 89839, 89844, + 89849, 89854, 89859, 89864, 89868, 89872, 89876, 0, 89881, 89887, 89892, + 89897, 89902, 89907, 89913, 89919, 89925, 89931, 89937, 89943, 89949, + 89955, 89961, 89967, 89973, 89979, 89985, 89990, 89996, 90002, 90007, + 90013, 90018, 90024, 90030, 90035, 90041, 90047, 90052, 90058, 90064, + 90069, 90075, 90081, 90087, 0, 0, 0, 0, 90092, 90098, 90104, 90110, + 90116, 90122, 90128, 90134, 90140, 90147, 90152, 90157, 90163, 90169, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 90170, 90175, 90180, - 90185, 90191, 90196, 90202, 90208, 90214, 90220, 90227, 90233, 90240, - 90245, 90250, 90255, 90260, 90265, 90270, 90275, 90280, 90285, 90290, - 90295, 90300, 90305, 90310, 90315, 90320, 90325, 90330, 90335, 90340, - 90345, 90350, 90355, 90360, 90365, 90370, 90375, 90380, 90385, 90390, - 90395, 90401, 90406, 90412, 90418, 90424, 90430, 90437, 90443, 90450, - 90455, 90460, 90465, 90470, 90475, 90480, 90485, 90490, 90495, 90500, - 90505, 90510, 90515, 90520, 90525, 90530, 90535, 90540, 90545, 90550, - 90555, 90560, 90565, 90570, 90575, 90580, 90585, 90590, 90595, 90600, - 90605, 90610, 90615, 90620, 90625, 90630, 90635, 90640, 90645, 90650, - 90655, 90660, 90665, 90670, 90675, 90680, 90685, 90690, 90695, 90700, - 90705, 90710, 90715, 90720, 90725, 90730, 90735, 90740, 90745, 90750, - 90755, 90760, 90765, 90770, 90775, 90780, 90785, 90790, 90795, 90800, - 90805, 90810, 90815, 90820, 90825, 90830, 90835, 90840, 90845, 90850, - 90855, 90860, 90865, 90869, 90873, 90878, 90883, 90888, 90893, 90898, - 90903, 90908, 90913, 90918, 90923, 90928, 90932, 90936, 90940, 90944, - 90948, 90952, 90956, 90961, 90966, 0, 0, 90971, 90976, 90980, 90984, - 90988, 90992, 90996, 91000, 91004, 91008, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 90175, 90180, 90185, + 90190, 90196, 90201, 90207, 90213, 90219, 90225, 90232, 90238, 90245, + 90250, 90255, 90260, 90265, 90270, 90275, 90280, 90285, 90290, 90295, + 90300, 90305, 90310, 90315, 90320, 90325, 90330, 90335, 90340, 90345, + 90350, 90355, 90360, 90365, 90370, 90375, 90380, 90385, 90390, 90395, + 90400, 90406, 90411, 90417, 90423, 90429, 90435, 90442, 90448, 90455, + 90460, 90465, 90470, 90475, 90480, 90485, 90490, 90495, 90500, 90505, + 90510, 90515, 90520, 90525, 90530, 90535, 90540, 90545, 90550, 90555, + 90560, 90565, 90570, 90575, 90580, 90585, 90590, 90595, 90600, 90605, + 90610, 90615, 90620, 90625, 90630, 90635, 90640, 90645, 90650, 90655, + 90660, 90665, 90670, 90675, 90680, 90685, 90690, 90695, 90700, 90705, + 90710, 90715, 90720, 90725, 90730, 90735, 90740, 90745, 90750, 90755, + 90760, 90765, 90770, 90775, 90780, 90785, 90790, 90795, 90800, 90805, + 90810, 90815, 90820, 90825, 90830, 90835, 90840, 90845, 90850, 90855, + 90860, 90865, 90870, 90874, 90878, 90883, 90888, 90893, 90898, 90903, + 90908, 90913, 90918, 90923, 90928, 90933, 90937, 90941, 90945, 90949, + 90953, 90957, 90961, 90966, 90971, 0, 0, 90976, 90981, 90985, 90989, + 90993, 90997, 91001, 91005, 91009, 91013, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 91012, 91016, 91020, 91024, 91028, 91032, 0, 0, 91037, 0, - 91042, 91046, 91051, 91056, 91061, 91066, 91071, 91076, 91081, 91086, - 91091, 91095, 91100, 91105, 91110, 91115, 91119, 91124, 91129, 91134, - 91139, 91143, 91148, 91153, 91158, 91163, 91167, 91172, 91177, 91182, - 91187, 91191, 91196, 91201, 91206, 91211, 91216, 91221, 91226, 91230, - 91235, 91240, 91245, 91250, 0, 91255, 91260, 0, 0, 0, 91265, 0, 0, 91270, - 91275, 91282, 91289, 91296, 91303, 91310, 91317, 91324, 91331, 91338, - 91345, 91352, 91359, 91366, 91373, 91380, 91387, 91394, 91401, 91408, - 91415, 91422, 0, 91429, 91436, 91442, 91448, 91454, 91461, 91468, 91476, - 91484, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 91493, 91498, 91503, 91508, 91513, 91518, - 91523, 91528, 91533, 91538, 91543, 91548, 91553, 91558, 91563, 91568, - 91573, 91578, 91583, 91588, 91593, 91598, 91603, 91607, 91612, 91617, - 91623, 91627, 0, 0, 0, 91631, 91637, 91641, 91646, 91651, 91656, 91660, - 91665, 91669, 91674, 91679, 91683, 91687, 91692, 91696, 91700, 91705, - 91710, 91714, 91719, 91724, 91729, 91734, 91739, 91744, 91749, 91754, 0, - 0, 0, 0, 0, 91759, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 91017, 91021, 91025, 91029, 91033, 91037, 0, 0, 91042, 0, + 91047, 91051, 91056, 91061, 91066, 91071, 91076, 91081, 91086, 91091, + 91096, 91100, 91105, 91110, 91115, 91120, 91124, 91129, 91134, 91139, + 91144, 91148, 91153, 91158, 91163, 91168, 91172, 91177, 91182, 91187, + 91192, 91196, 91201, 91206, 91211, 91216, 91221, 91226, 91231, 91235, + 91240, 91245, 91250, 91255, 0, 91260, 91265, 0, 0, 0, 91270, 0, 0, 91275, + 91280, 91287, 91294, 91301, 91308, 91315, 91322, 91329, 91336, 91343, + 91350, 91357, 91364, 91371, 91378, 91385, 91392, 91399, 91406, 91413, + 91420, 91427, 0, 91434, 91441, 91447, 91453, 91459, 91466, 91473, 91481, + 91489, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 91498, 91503, 91508, 91513, 91518, 91523, + 91528, 91533, 91538, 91543, 91548, 91553, 91558, 91563, 91568, 91573, + 91578, 91583, 91588, 91593, 91598, 91603, 91608, 91612, 91617, 91622, + 91628, 91632, 0, 0, 0, 91636, 91642, 91646, 91651, 91656, 91661, 91665, + 91670, 91674, 91679, 91684, 91688, 91692, 91697, 91701, 91705, 91710, + 91715, 91719, 91724, 91729, 91734, 91739, 91744, 91749, 91754, 91759, 0, + 0, 0, 0, 0, 91764, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 91764, - 91770, 91776, 91782, 91788, 91794, 91801, 91808, 91815, 91821, 91827, - 91833, 91840, 91847, 91854, 91860, 91867, 91874, 91881, 91888, 91894, - 91901, 91908, 91914, 91921, 91928, 91935, 91942, 91949, 91955, 91962, - 91969, 91976, 91982, 91988, 91994, 92000, 92006, 92013, 92020, 92026, - 92032, 92038, 92045, 92051, 92058, 92065, 92072, 92078, 92086, 92093, - 92099, 92106, 92113, 92120, 92126, 0, 0, 0, 0, 0, 0, 92133, 92141, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 91769, + 91775, 91781, 91787, 91793, 91799, 91806, 91813, 91820, 91826, 91832, + 91838, 91845, 91852, 91859, 91865, 91872, 91879, 91886, 91893, 91899, + 91906, 91913, 91919, 91926, 91933, 91940, 91947, 91954, 91960, 91967, + 91974, 91981, 91987, 91993, 91999, 92005, 92011, 92018, 92025, 92031, + 92037, 92043, 92050, 92056, 92063, 92070, 92077, 92083, 92091, 92098, + 92104, 92111, 92118, 92125, 92131, 0, 0, 0, 0, 0, 0, 92138, 92146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92149, 92153, 92158, 92163, 0, - 92169, 92174, 0, 0, 0, 0, 0, 92179, 92185, 92192, 92197, 92202, 92206, - 92211, 92216, 0, 92221, 92226, 92231, 0, 92236, 92241, 92246, 92251, - 92256, 92261, 92266, 92271, 92276, 92281, 92286, 92290, 92294, 92299, - 92304, 92309, 92313, 92317, 92321, 92326, 92331, 92336, 92341, 92345, - 92350, 92354, 92359, 0, 0, 0, 0, 92364, 92370, 92375, 0, 0, 0, 0, 92380, - 92384, 92388, 92392, 92396, 92400, 92405, 92410, 92416, 0, 0, 0, 0, 0, 0, - 0, 0, 92422, 92428, 92435, 92441, 92448, 92454, 92460, 92466, 92473, 0, - 0, 0, 0, 0, 0, 0, 92479, 92487, 92495, 92503, 92511, 92519, 92527, 92535, - 92543, 92551, 92559, 92567, 92575, 92583, 92591, 92599, 92607, 92615, - 92623, 92631, 92639, 92647, 92655, 92663, 92671, 92679, 92687, 92695, - 92703, 92711, 92718, 92726, 92734, 92738, 92743, 92748, 92753, 92758, - 92763, 92768, 92773, 92777, 92782, 92786, 92791, 92795, 92800, 92804, - 92809, 92814, 92819, 92824, 92829, 92834, 92839, 92844, 92849, 92854, - 92859, 92864, 92869, 92874, 92879, 92884, 92889, 92894, 92899, 92904, - 92909, 92914, 92919, 92924, 92929, 92934, 92939, 92944, 92949, 92954, - 92959, 92964, 92969, 92974, 92979, 92984, 92989, 92994, 0, 0, 0, 92999, - 93004, 93013, 93021, 93030, 93039, 93050, 93061, 93068, 93075, 93082, - 93089, 93096, 93103, 93110, 93117, 93124, 93131, 93138, 93145, 93152, - 93159, 93166, 93173, 93180, 93187, 93194, 93201, 93208, 0, 0, 93215, - 93221, 93227, 93233, 93239, 93246, 93253, 93261, 93269, 93276, 93283, - 93290, 93297, 93304, 93311, 93318, 93325, 93332, 93339, 93346, 93353, - 93360, 93367, 93374, 93381, 93388, 93395, 0, 0, 0, 0, 0, 93402, 93408, - 93414, 93420, 93426, 93433, 93440, 93448, 93456, 93462, 93468, 93475, - 93481, 93487, 93493, 93499, 93506, 93513, 93520, 93527, 93534, 93541, - 93548, 93555, 93562, 93569, 93576, 93583, 93590, 93597, 93604, 93611, - 93618, 93625, 93632, 93639, 93646, 93653, 93660, 93667, 93674, 93681, - 93688, 93695, 93702, 93709, 93716, 93723, 93730, 93737, 93744, 93751, - 93758, 93765, 93772, 93779, 93786, 93793, 93800, 93807, 93814, 93821, - 93828, 93835, 93842, 93849, 93856, 93863, 93870, 93877, 93884, 93891, - 93898, 93905, 93912, 93919, 93926, 93933, 93940, 93947, 93954, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92154, 92158, 92163, 92168, 0, + 92174, 92179, 0, 0, 0, 0, 0, 92184, 92190, 92197, 92202, 92207, 92211, + 92216, 92221, 0, 92226, 92231, 92236, 0, 92241, 92246, 92251, 92256, + 92261, 92266, 92271, 92276, 92281, 92286, 92291, 92295, 92299, 92304, + 92309, 92314, 92318, 92322, 92326, 92331, 92336, 92341, 92346, 92350, + 92355, 92359, 92364, 0, 0, 0, 0, 92369, 92375, 92380, 0, 0, 0, 0, 92385, + 92389, 92393, 92397, 92401, 92405, 92410, 92415, 92421, 0, 0, 0, 0, 0, 0, + 0, 0, 92427, 92433, 92440, 92446, 92453, 92459, 92465, 92471, 92478, 0, + 0, 0, 0, 0, 0, 0, 92484, 92492, 92500, 92508, 92516, 92524, 92532, 92540, + 92548, 92556, 92564, 92572, 92580, 92588, 92596, 92604, 92612, 92620, + 92628, 92636, 92644, 92652, 92660, 92668, 92676, 92684, 92692, 92700, + 92708, 92716, 92723, 92731, 92739, 92743, 92748, 92753, 92758, 92763, + 92768, 92773, 92778, 92782, 92787, 92791, 92796, 92800, 92805, 92809, + 92814, 92819, 92824, 92829, 92834, 92839, 92844, 92849, 92854, 92859, + 92864, 92869, 92874, 92879, 92884, 92889, 92894, 92899, 92904, 92909, + 92914, 92919, 92924, 92929, 92934, 92939, 92944, 92949, 92954, 92959, + 92964, 92969, 92974, 92979, 92984, 92989, 92994, 92999, 0, 0, 0, 93004, + 93009, 93018, 93026, 93035, 93044, 93055, 93066, 93073, 93080, 93087, + 93094, 93101, 93108, 93115, 93122, 93129, 93136, 93143, 93150, 93157, + 93164, 93171, 93178, 93185, 93192, 93199, 93206, 93213, 0, 0, 93220, + 93226, 93232, 93238, 93244, 93251, 93258, 93266, 93274, 93281, 93288, + 93295, 93302, 93309, 93316, 93323, 93330, 93337, 93344, 93351, 93358, + 93365, 93372, 93379, 93386, 93393, 93400, 0, 0, 0, 0, 0, 93407, 93413, + 93419, 93425, 93431, 93438, 93445, 93453, 93461, 93467, 93473, 93480, + 93486, 93492, 93498, 93504, 93511, 93518, 93525, 93532, 93539, 93546, + 93553, 93560, 93567, 93574, 93581, 93588, 93595, 93602, 93609, 93616, + 93623, 93630, 93637, 93644, 93651, 93658, 93665, 93672, 93679, 93686, + 93693, 93700, 93707, 93714, 93721, 93728, 93735, 93742, 93749, 93756, + 93763, 93770, 93777, 93784, 93791, 93798, 93805, 93812, 93819, 93826, + 93833, 93840, 93847, 93854, 93861, 93868, 93875, 93882, 93889, 93896, + 93903, 93910, 93917, 93924, 93931, 93938, 93945, 93952, 93959, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 93961, 93965, 93969, 93973, 93977, 93981, 93985, 93989, - 93993, 93997, 94002, 94007, 94012, 94017, 94022, 94027, 94032, 94037, - 94042, 94048, 94054, 94060, 94067, 94074, 94081, 94088, 94095, 94102, - 94109, 94116, 94123, 0, 94130, 94134, 94138, 94142, 94146, 94150, 94153, - 94157, 94160, 94164, 94167, 94171, 94175, 94180, 94184, 94189, 94192, - 94196, 94199, 94203, 94206, 94210, 94214, 94218, 94222, 94226, 94230, - 94234, 94238, 94242, 94246, 94250, 94254, 94258, 94262, 94266, 94270, - 94274, 94278, 94281, 94284, 94288, 94292, 94296, 94299, 94302, 94305, - 94309, 94313, 94317, 94321, 94324, 94327, 94331, 94337, 94343, 94349, - 94354, 94361, 94365, 94370, 94374, 94379, 94384, 94390, 94395, 94401, - 94405, 94410, 94414, 94419, 94422, 94425, 94429, 94434, 94440, 94445, - 94451, 0, 0, 0, 0, 94456, 94459, 94462, 94465, 94468, 94471, 94474, - 94477, 94480, 94483, 94487, 94491, 94495, 94499, 94503, 94507, 94511, - 94515, 94519, 94524, 94529, 94533, 94536, 94539, 94542, 94545, 94548, - 94551, 94554, 94557, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 94560, 94565, 94570, 94575, 94579, 94584, 94588, 94593, 94597, 94602, - 94606, 94611, 94615, 94620, 94624, 94629, 94634, 94639, 94644, 94649, - 94654, 94659, 94664, 94669, 94674, 94679, 94684, 94689, 94694, 94699, - 94704, 94709, 94714, 94719, 94724, 94728, 94732, 94737, 94742, 94747, - 94751, 94755, 94759, 94764, 94769, 94774, 94779, 94783, 94787, 94793, - 94798, 94804, 94809, 94815, 94820, 94826, 94831, 94837, 94842, 94847, - 94852, 94857, 94861, 94866, 94872, 94876, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 94881, 94888, 94895, 94902, 94909, 94916, 94923, 94930, - 94937, 94944, 94951, 94958, 94965, 94972, 94979, 94986, 94993, 95000, - 95007, 95014, 95021, 95028, 95035, 95042, 95049, 0, 0, 0, 0, 0, 0, 0, - 95056, 95063, 95069, 95075, 95081, 95087, 95093, 95099, 95105, 95111, 0, - 0, 0, 0, 0, 0, 95117, 95122, 95127, 95132, 95137, 95141, 95145, 95149, - 95154, 95159, 95164, 95169, 95174, 95179, 95184, 95189, 95194, 95199, - 95204, 95209, 95214, 95219, 95224, 95229, 95234, 95239, 95244, 95249, - 95254, 95259, 95264, 95269, 95274, 95279, 95284, 95289, 95294, 95299, - 95304, 95309, 95314, 95319, 95325, 95330, 95336, 95341, 95347, 95352, - 95358, 95364, 95368, 95373, 95377, 0, 95381, 95386, 95390, 95394, 95398, - 95402, 95406, 95410, 95414, 95418, 95422, 95427, 95431, 95436, 0, 0, 0, + 0, 0, 0, 0, 93966, 93970, 93974, 93978, 93982, 93986, 93990, 93994, + 93998, 94002, 94007, 94012, 94017, 94022, 94027, 94032, 94037, 94042, + 94047, 94053, 94059, 94065, 94072, 94079, 94086, 94093, 94100, 94107, + 94114, 94121, 94128, 0, 94135, 94139, 94143, 94147, 94151, 94155, 94158, + 94162, 94165, 94169, 94172, 94176, 94180, 94185, 94189, 94194, 94197, + 94201, 94204, 94208, 94211, 94215, 94219, 94223, 94227, 94231, 94235, + 94239, 94243, 94247, 94251, 94255, 94259, 94263, 94267, 94271, 94275, + 94279, 94283, 94286, 94289, 94293, 94297, 94301, 94304, 94307, 94310, + 94314, 94318, 94322, 94326, 94329, 94332, 94336, 94342, 94348, 94354, + 94359, 94366, 94370, 94375, 94379, 94384, 94389, 94395, 94400, 94406, + 94410, 94415, 94419, 94424, 94427, 94430, 94434, 94439, 94445, 94450, + 94456, 0, 0, 0, 0, 94461, 94464, 94467, 94470, 94473, 94476, 94479, + 94482, 94485, 94488, 94492, 94496, 94500, 94504, 94508, 94512, 94516, + 94520, 94524, 94529, 94534, 94538, 94541, 94544, 94547, 94550, 94553, + 94556, 94559, 94562, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 94565, 94570, 94575, 94580, 94584, 94589, 94593, 94598, 94602, 94607, + 94611, 94616, 94620, 94625, 94629, 94634, 94639, 94644, 94649, 94654, + 94659, 94664, 94669, 94674, 94679, 94684, 94689, 94694, 94699, 94704, + 94709, 94714, 94719, 94724, 94729, 94733, 94737, 94742, 94747, 94752, + 94756, 94760, 94764, 94769, 94774, 94779, 94784, 94788, 94792, 94798, + 94803, 94809, 94814, 94820, 94825, 94831, 94836, 94842, 94847, 94852, + 94857, 94862, 94866, 94871, 94877, 94881, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 94886, 94893, 94900, 94907, 94914, 94921, 94928, 94935, + 94942, 94949, 94956, 94963, 94970, 94977, 94984, 94991, 94998, 95005, + 95012, 95019, 95026, 95033, 95040, 95047, 95054, 0, 0, 0, 0, 0, 0, 0, + 95061, 95068, 95074, 95080, 95086, 95092, 95098, 95104, 95110, 95116, 0, + 0, 0, 0, 0, 0, 95122, 95127, 95132, 95137, 95142, 95146, 95150, 95154, + 95159, 95164, 95169, 95174, 95179, 95184, 95189, 95194, 95199, 95204, + 95209, 95214, 95219, 95224, 95229, 95234, 95239, 95244, 95249, 95254, + 95259, 95264, 95269, 95274, 95279, 95284, 95289, 95294, 95299, 95304, + 95309, 95314, 95319, 95324, 95330, 95335, 95341, 95346, 95352, 95357, + 95363, 95369, 95373, 95378, 95382, 0, 95386, 95391, 95395, 95399, 95403, + 95407, 95411, 95415, 95419, 95423, 95427, 95432, 95436, 95441, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 95441, 95445, 95449, 95453, 95456, 95460, - 95463, 95467, 95470, 95474, 95478, 95483, 95487, 95492, 95495, 95499, - 95502, 95506, 95509, 95513, 95517, 95521, 95525, 95529, 95533, 95537, - 95541, 95545, 95549, 95553, 95557, 95561, 95565, 95569, 95573, 95577, - 95581, 95584, 95587, 95591, 95595, 95599, 95602, 95605, 95608, 95612, - 95616, 95620, 95624, 95628, 95631, 95634, 95639, 95643, 95648, 95652, - 95657, 95662, 95668, 95673, 95679, 95683, 95688, 95692, 95697, 95701, - 95705, 95709, 95713, 95716, 95719, 95723, 95727, 0, 0, 0, 0, 0, 0, 0, - 95730, 95734, 95737, 95740, 95743, 95746, 95749, 95752, 95755, 95758, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 95446, 95450, 95454, 95458, 95461, 95465, + 95468, 95472, 95475, 95479, 95483, 95488, 95492, 95497, 95500, 95504, + 95507, 95511, 95514, 95518, 95522, 95526, 95530, 95534, 95538, 95542, + 95546, 95550, 95554, 95558, 95562, 95566, 95570, 95574, 95578, 95582, + 95586, 95589, 95592, 95596, 95600, 95604, 95607, 95610, 95613, 95617, + 95621, 95625, 95629, 95633, 95636, 95639, 95644, 95648, 95653, 95657, + 95662, 95667, 95673, 95678, 95684, 95688, 95693, 95697, 95702, 95706, + 95710, 95714, 95718, 95721, 95724, 95728, 95732, 0, 0, 0, 0, 0, 0, 0, + 95735, 95739, 95742, 95745, 95748, 95751, 95754, 95757, 95760, 95763, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 95761, 95765, 95770, 95774, 95779, - 95783, 95788, 95792, 95797, 95801, 95806, 95810, 95815, 95820, 95825, - 95830, 95835, 95840, 95845, 95850, 95855, 95860, 95865, 95870, 95875, - 95880, 95885, 95890, 95895, 95900, 95904, 95908, 95913, 95918, 95923, - 95927, 95931, 95935, 95940, 95945, 95950, 95954, 95958, 95963, 95968, - 95973, 95979, 95984, 95990, 95995, 96001, 96006, 96012, 96017, 96023, - 96028, 0, 0, 0, 0, 0, 0, 0, 0, 96033, 96038, 96042, 96046, 96050, 96054, - 96058, 96062, 96066, 96070, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 95766, 95770, 95775, 95779, 95784, + 95788, 95793, 95797, 95802, 95806, 95811, 95815, 95820, 95825, 95830, + 95835, 95840, 95845, 95850, 95855, 95860, 95865, 95870, 95875, 95880, + 95885, 95890, 95895, 95900, 95905, 95909, 95913, 95918, 95923, 95928, + 95932, 95936, 95940, 95945, 95950, 95955, 95959, 95963, 95968, 95973, + 95978, 95984, 95989, 95995, 96000, 96006, 96011, 96017, 96022, 96028, + 96033, 0, 0, 0, 0, 0, 0, 0, 0, 96038, 96043, 96047, 96051, 96055, 96059, + 96063, 96067, 96071, 96075, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96074, 96077, 96082, 96088, - 96096, 96101, 96107, 96115, 96121, 96127, 96131, 96135, 96142, 96151, - 96158, 96167, 96173, 96182, 96189, 96196, 96203, 96213, 96219, 96223, - 96230, 96239, 96249, 96256, 96263, 96267, 96271, 96278, 96288, 96292, - 96299, 96306, 96313, 96319, 96326, 96333, 96340, 96347, 96351, 96355, - 96359, 96366, 96370, 96377, 96384, 96398, 96407, 96411, 96415, 96419, - 96426, 96430, 96434, 96438, 96446, 96454, 96473, 96483, 96503, 96507, - 96511, 96515, 96519, 96523, 96527, 96531, 96538, 96542, 96545, 96549, - 96553, 96559, 96566, 96575, 96579, 96588, 96597, 96605, 96609, 96616, - 96620, 96624, 96628, 96632, 96643, 96652, 96661, 96670, 96679, 96691, - 96700, 96709, 96718, 96726, 96735, 96747, 96756, 96765, 96774, 96786, - 96795, 96804, 96816, 96825, 96834, 96846, 96855, 96859, 96863, 96867, - 96871, 96875, 96879, 96883, 96890, 96894, 96898, 96909, 96913, 96917, - 96924, 96930, 96936, 96940, 96947, 96951, 96955, 96959, 96963, 96967, - 96971, 96977, 96985, 96989, 96993, 96996, 97002, 97012, 97016, 97028, - 97035, 97042, 97049, 97056, 97062, 97066, 97070, 97074, 97078, 97085, - 97094, 97101, 97109, 97117, 97123, 97127, 97131, 97135, 97139, 97145, - 97154, 97166, 97173, 97180, 97189, 97200, 97206, 97215, 97224, 97231, - 97240, 97247, 97254, 97264, 97271, 97278, 97285, 97292, 97296, 97302, - 97306, 97317, 97325, 97334, 97346, 97353, 97360, 97370, 97377, 97386, - 97393, 97402, 97409, 97416, 97426, 97433, 97440, 97450, 97457, 97469, - 97478, 97485, 97492, 97499, 97508, 97518, 97531, 97538, 97548, 97558, - 97565, 97574, 97587, 97594, 97601, 97608, 97618, 97628, 97635, 97645, - 97652, 97659, 97669, 97675, 97682, 97689, 97696, 97706, 97713, 97720, - 97727, 97733, 97740, 97750, 97757, 97761, 97769, 97773, 97785, 97789, - 97803, 97807, 97811, 97815, 97819, 97825, 97832, 97840, 97844, 97848, - 97852, 97856, 97863, 97867, 97873, 97879, 97887, 97891, 97898, 97906, - 97910, 97914, 97920, 97924, 97933, 97942, 97949, 97959, 97965, 97969, - 97973, 97981, 97988, 97995, 98001, 98005, 98013, 98017, 98024, 98036, - 98043, 98053, 98059, 98063, 98072, 98079, 98088, 98092, 98096, 98103, - 98107, 98111, 98115, 98119, 98122, 98128, 98134, 98138, 98142, 98149, - 98156, 98163, 98170, 98177, 98184, 98191, 98198, 98204, 98208, 98212, - 98219, 98226, 98233, 98240, 98247, 98251, 98254, 98259, 98263, 98267, - 98276, 98285, 98289, 98293, 98299, 98305, 98322, 98328, 98332, 98341, - 98345, 98349, 98356, 98364, 98372, 98378, 98382, 98386, 98390, 98394, - 98397, 98403, 98410, 98420, 98427, 98434, 98441, 98447, 98454, 98461, - 98468, 98475, 98482, 98491, 98498, 98510, 98517, 98524, 98534, 98545, - 98552, 98559, 98566, 98573, 98580, 98587, 98594, 98601, 98608, 98615, - 98625, 98635, 98645, 98652, 98662, 98669, 98676, 98683, 98690, 98696, - 98703, 98710, 98717, 98724, 98731, 98738, 98745, 98752, 98758, 98765, - 98772, 98781, 98788, 98795, 98799, 98807, 98811, 98815, 98819, 98823, - 98827, 98834, 98838, 98847, 98851, 98858, 98866, 98870, 98874, 98878, - 98891, 98907, 98911, 98915, 98922, 98928, 98935, 98939, 98943, 98947, - 98951, 98955, 98962, 98966, 98984, 98988, 98992, 98999, 99003, 99007, - 99013, 99017, 99021, 99029, 99033, 99037, 99041, 99045, 99051, 99062, - 99071, 99080, 99087, 99094, 99105, 99112, 99119, 99126, 99133, 99140, - 99147, 99154, 99164, 99170, 99177, 99187, 99196, 99203, 99212, 99222, - 99229, 99236, 99243, 99250, 99262, 99269, 99276, 99283, 99290, 99297, - 99307, 99314, 99321, 99331, 99344, 99356, 99363, 99373, 99380, 99387, - 99394, 99408, 99414, 99422, 99432, 99442, 99449, 99456, 99462, 99466, - 99473, 99483, 99489, 99502, 99506, 99510, 99517, 99521, 99528, 99538, - 99542, 99546, 99550, 99554, 99558, 99565, 99569, 99576, 99583, 99590, - 99599, 99608, 99618, 99625, 99632, 99639, 99649, 99656, 99666, 99673, - 99683, 99690, 99697, 99707, 99717, 99724, 99730, 99738, 99746, 99752, - 99758, 99762, 99766, 99773, 99781, 99787, 99791, 99795, 99799, 99806, - 99818, 99821, 99828, 99834, 99838, 99842, 99846, 99850, 99854, 99858, - 99862, 99866, 99870, 99874, 99881, 99885, 99891, 99895, 99899, 99903, - 99909, 99916, 99923, 99930, 99941, 99949, 99953, 99959, 99968, 99975, - 99981, 99984, 99988, 99992, 99998, 100007, 100015, 100019, 100025, - 100029, 100033, 100037, 100043, 100050, 100056, 100060, 100066, 100070, - 100074, 100083, 100095, 100099, 100106, 100113, 100123, 100130, 100142, - 100149, 100156, 100163, 100174, 100184, 100197, 100207, 100214, 100218, - 100222, 100226, 100230, 100239, 100248, 100257, 100274, 100283, 100289, - 100296, 100304, 100317, 100321, 100330, 100339, 100348, 100357, 100368, - 100377, 100386, 100395, 100404, 100413, 100422, 100432, 100435, 100439, - 100443, 100447, 100451, 100455, 100461, 100468, 100475, 100482, 100488, - 100494, 100501, 100507, 100514, 100522, 100526, 100533, 100540, 100547, - 100555, 100558, 100562, 100566, 100570, 100573, 100579, 100583, 100589, - 100596, 100603, 100609, 100616, 100623, 100630, 100637, 100644, 100651, - 100658, 100665, 100672, 100679, 100686, 100693, 100700, 100707, 100713, - 100717, 100726, 100730, 100734, 100738, 100742, 100748, 100755, 100762, - 100769, 100776, 100783, 100789, 100797, 100801, 100805, 100809, 100813, - 100819, 100836, 100853, 100857, 100861, 100865, 100869, 100873, 100877, - 100883, 100890, 100894, 100900, 100907, 100914, 100921, 100928, 100935, - 100944, 100951, 100958, 100965, 100972, 100976, 100980, 100986, 100998, - 101002, 101006, 101015, 101019, 101023, 101027, 101033, 101037, 101041, - 101050, 101054, 101058, 101062, 101069, 101073, 101077, 101081, 101085, - 101089, 101093, 101097, 101101, 101107, 101114, 101121, 101127, 101131, - 101148, 101154, 101158, 101164, 101170, 101176, 101182, 101188, 101194, - 101198, 101202, 101206, 101212, 101216, 101222, 101226, 101230, 101237, - 101244, 101261, 101265, 101269, 101273, 101277, 101281, 101293, 101296, - 101301, 101306, 101321, 101331, 101343, 101347, 101351, 101355, 101361, - 101368, 101375, 101385, 101397, 101403, 101409, 101418, 101422, 101426, - 101433, 101443, 101450, 101456, 101460, 101464, 101471, 101477, 101481, - 101487, 101491, 101499, 101505, 101509, 101517, 101525, 101532, 101538, - 101545, 101552, 101562, 101572, 101576, 101580, 101584, 101588, 101594, - 101601, 101607, 101614, 101621, 101628, 101637, 101644, 101651, 101657, - 101664, 101671, 101678, 101685, 101692, 101699, 101705, 101712, 101719, - 101726, 101735, 101742, 101749, 101753, 101759, 101763, 101769, 101776, - 101783, 101790, 101794, 101798, 101802, 101806, 101810, 101817, 101821, - 101825, 101831, 101839, 101843, 101847, 101851, 101855, 101862, 101866, - 101870, 101878, 101882, 101886, 101890, 101894, 101900, 101904, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 101908, 101914, 101920, 101927, - 101934, 101941, 101948, 101955, 101962, 101968, 101975, 101982, 101989, - 101996, 102003, 102010, 102016, 102022, 102028, 102034, 102040, 102046, - 102052, 102058, 102064, 102071, 102078, 102085, 102092, 102099, 102106, - 102112, 102118, 102124, 102131, 102138, 102144, 102150, 102159, 102166, - 102173, 102180, 102187, 102194, 102201, 102207, 102213, 102219, 102228, - 102235, 102242, 102253, 102264, 102270, 102276, 102282, 102291, 102298, - 102305, 102315, 102325, 102336, 102347, 102359, 102372, 102383, 102394, - 102406, 102419, 102430, 102441, 102452, 102463, 102474, 102486, 102494, - 102502, 102511, 102520, 102529, 102535, 102541, 102547, 102554, 102564, - 102571, 102581, 102586, 102591, 102597, 102603, 102611, 102619, 102628, - 102639, 102650, 102658, 102666, 102675, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 102684, 102695, 102702, 102710, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 102718, 102722, 102726, 102730, 102734, 102738, 102742, 102746, 102750, - 102754, 102758, 102762, 102766, 102770, 102774, 102778, 102782, 102786, - 102790, 102794, 102798, 102802, 102806, 102810, 102814, 102818, 102822, - 102826, 102830, 102834, 102838, 102842, 102846, 102850, 102854, 102858, - 102862, 102866, 102870, 102874, 102878, 102882, 102886, 102890, 102894, - 102898, 102902, 102906, 102910, 102914, 102918, 102922, 102926, 102930, - 102934, 102938, 102942, 102946, 102950, 102954, 102958, 102962, 102966, - 102970, 102974, 102978, 102982, 102986, 102990, 102994, 102998, 103002, - 103006, 103010, 103014, 103018, 103022, 103026, 103030, 103034, 103038, - 103042, 103046, 103050, 103054, 103058, 103062, 103066, 103070, 103074, - 103078, 103082, 103086, 103090, 103094, 103098, 103102, 103106, 103110, - 103114, 103118, 103122, 103126, 103130, 103134, 103138, 103142, 103146, - 103150, 103154, 103158, 103162, 103166, 103170, 103174, 103178, 103182, - 103186, 103190, 103194, 103198, 103202, 103206, 103210, 103214, 103218, - 103222, 103226, 103230, 103234, 103238, 103242, 103246, 103250, 103254, - 103258, 103262, 103266, 103270, 103274, 103278, 103282, 103286, 103290, - 103294, 103298, 103302, 103306, 103310, 103314, 103318, 103322, 103326, - 103330, 103334, 103338, 103342, 103346, 103350, 103354, 103358, 103362, - 103366, 103370, 103374, 103378, 103382, 103386, 103390, 103394, 103398, - 103402, 103406, 103410, 103414, 103418, 103422, 103426, 103430, 103434, - 103438, 103442, 103446, 103450, 103454, 103458, 103462, 103466, 103470, - 103474, 103478, 103482, 103486, 103490, 103494, 103498, 103502, 103506, - 103510, 103514, 103518, 103522, 103526, 103530, 103534, 103538, 103542, - 103546, 103550, 103554, 103558, 103562, 103566, 103570, 103574, 103578, - 103582, 103586, 103590, 103594, 103598, 103602, 103606, 103610, 103614, - 103618, 103622, 103626, 103630, 103634, 103638, 103642, 103646, 103650, - 103654, 103658, 103662, 103666, 103670, 103674, 103678, 103682, 103686, - 103690, 103694, 103698, 103702, 103706, 103710, 103714, 103718, 103722, - 103726, 103730, 103734, 103738, 103742, 103746, 103750, 103754, 103758, - 103762, 103766, 103770, 103774, 103778, 103782, 103786, 103790, 103794, - 103798, 103802, 103806, 103810, 103814, 103818, 103822, 103826, 103830, - 103834, 103838, 103842, 103846, 103850, 103854, 103858, 103862, 103866, - 103870, 103874, 103878, 103882, 103886, 103890, 103894, 103898, 103902, - 103906, 103910, 103914, 103918, 103922, 103926, 103930, 103934, 103938, - 103942, 103946, 103950, 103954, 103958, 103962, 103966, 103970, 103974, - 103978, 103982, 103986, 103990, 103994, 103998, 104002, 104006, 104010, - 104014, 104018, 104022, 104026, 104030, 104034, 104038, 104042, 104046, - 104050, 104054, 104058, 104062, 104066, 104070, 104074, 104078, 104082, - 104086, 104090, 104094, 104098, 104102, 104106, 104110, 104114, 104118, - 104122, 104126, 104130, 104134, 104138, 104142, 104146, 104150, 104154, - 104158, 104162, 104166, 104170, 104174, 104178, 104182, 104186, 104190, - 104194, 104198, 104202, 104206, 104210, 104214, 104218, 104222, 104226, - 104230, 104234, 104238, 104242, 104246, 104250, 104254, 104258, 104262, - 104266, 104270, 104274, 104278, 104282, 104286, 104290, 104294, 104298, - 104302, 104306, 104310, 104314, 104318, 104322, 104326, 104330, 104334, - 104338, 104342, 104346, 104350, 104354, 104358, 104362, 104366, 104370, - 104374, 104378, 104382, 104386, 104390, 104394, 104398, 104402, 104406, - 104410, 104414, 104418, 104422, 104426, 104430, 104434, 104438, 104442, - 104446, 104450, 104454, 104458, 104462, 104466, 104470, 104474, 104478, - 104482, 104486, 104490, 104494, 104498, 104502, 104506, 104510, 104514, - 104518, 104522, 104526, 104530, 104534, 104538, 104542, 104546, 104550, - 104554, 104558, 104562, 104566, 104570, 104574, 104578, 104582, 104586, - 104590, 104594, 104598, 104602, 104606, 104610, 104614, 104618, 104622, - 104626, 104630, 104634, 104638, 104642, 104646, 104650, 104654, 104658, - 104662, 104666, 104670, 104674, 104678, 104682, 104686, 104690, 104694, - 104698, 104702, 104706, 104710, 104714, 104718, 104722, 104726, 104730, - 104734, 104738, 104742, 104746, 104750, 104754, 104758, 104762, 104766, - 104770, 104774, 104778, 104782, 104786, 104790, 104794, 104798, 104802, - 104806, 104810, 104814, 104818, 104822, 104826, 104830, 104834, 104838, - 104842, 104846, 104850, 104854, 104858, 104862, 104866, 104870, 104874, - 104878, 104882, 104886, 104890, 104894, 104898, 104902, 104906, 104910, - 104914, 104918, 104922, 104926, 104930, 104934, 104938, 104942, 104946, - 104950, 104954, 104958, 104962, 104966, 104970, 104974, 104978, 104982, - 104986, 104990, 104994, 104998, 105002, 105006, 105010, 105014, 105018, - 105022, 105026, 105030, 105034, 105038, 105042, 105046, 105050, 105054, - 105058, 105062, 105066, 105070, 105074, 105078, 105082, 105086, 105090, - 105094, 105098, 105102, 105106, 105110, 105114, 105118, 105122, 105126, - 105130, 105134, 105138, 105142, 105146, 105150, 105154, 105158, 105162, - 105166, 105170, 105174, 105178, 105182, 105186, 105190, 105194, 105198, - 105202, 105206, 105210, 105214, 105218, 105222, 105226, 105230, 105234, - 105238, 105242, 105246, 105250, 105254, 105258, 105262, 105266, 105270, - 105274, 105278, 105282, 105286, 105290, 105294, 105298, 105302, 105306, - 105310, 105314, 105318, 105322, 105326, 105330, 105334, 105338, 105342, - 105346, 105350, 105354, 105358, 105362, 105366, 105370, 105374, 105378, - 105382, 105386, 105390, 105394, 105398, 105402, 105406, 105410, 105414, - 105418, 105422, 105426, 105430, 105434, 105438, 105442, 105446, 105450, - 105454, 105458, 105462, 105466, 105470, 105474, 105478, 105482, 105486, - 105490, 105494, 105498, 105502, 105506, 105510, 105514, 105518, 105522, - 105526, 105530, 105534, 105538, 105542, 105546, 105550, 105554, 105558, - 105562, 105566, 105570, 105574, 105578, 105582, 105586, 105590, 105594, - 105598, 105602, 105606, 105610, 105614, 105618, 105622, 105626, 105630, - 105634, 105638, 105642, 105646, 105650, 105654, 105658, 105662, 105666, - 105670, 105674, 105678, 105682, 105686, 105690, 105694, 105698, 105702, - 105706, 105710, 105714, 105718, 105722, 105726, 105730, 105734, 105738, - 105742, 105746, 105750, 105754, 105758, 105762, 105766, 105770, 105774, - 105778, 105782, 105786, 105790, 105794, 105798, 105802, 105806, 105810, - 105814, 105818, 105822, 105826, 105830, 105834, 105838, 105842, 105846, - 105850, 105854, 105858, 105862, 105866, 105870, 105874, 105878, 105882, - 105886, 105890, 105894, 105898, 105902, 105906, 105910, 105914, 105918, - 105922, 105926, 105930, 105934, 105938, 105942, 105946, 105950, 105954, - 105958, 105962, 105966, 105970, 105974, 105978, 105982, 105986, 105990, - 105994, 105998, 106002, 106006, 106010, 106014, 106018, 106022, 106026, - 106030, 106034, 106038, 106042, 106046, 106050, 106054, 106058, 106062, - 106066, 106070, 106074, 106078, 106082, 106086, 106090, 106094, 106098, - 106102, 106106, 106110, 106114, 106118, 106122, 106126, 106130, 106134, - 106138, 106142, 106146, 106150, 106154, 106158, 106162, 106166, 106170, - 106174, 106178, 106182, 106186, 106190, 106194, 106198, 106202, 106206, - 106210, 106214, 106218, 106222, 106226, 106230, 106234, 106238, 106242, - 106246, 106250, 106254, 106258, 106262, 106266, 106270, 106274, 106278, - 106282, 106286, 106290, 106294, 106298, 106302, 106306, 106310, 106314, - 106318, 106322, 106326, 106330, 106334, 106338, 106342, 106346, 106350, - 106354, 106358, 106362, 106366, 106370, 106374, 106378, 106382, 106386, - 106390, 106394, 106398, 106402, 106406, 106410, 106414, 106418, 106422, - 106426, 106430, 106434, 106438, 106442, 106446, 106450, 106454, 106458, - 106462, 106466, 106470, 106474, 106478, 106482, 106486, 106490, 106494, - 106498, 106502, 106506, 106510, 106514, 106518, 106522, 106526, 106530, - 106534, 106538, 106542, 106546, 106550, 106554, 106558, 106562, 106566, - 106570, 106574, 106578, 106582, 106586, 106590, 106594, 106598, 106602, - 106606, 106610, 106614, 106618, 106622, 106626, 106630, 106634, 106638, - 106642, 106646, 106650, 106654, 106658, 106662, 106666, 106670, 106674, - 106678, 106682, 106686, 106690, 106694, 106698, 106702, 106706, 106710, - 106714, 106718, 106722, 106726, 106730, 106734, 106738, 106742, 106746, - 106750, 106754, 106758, 106762, 106766, 106770, 106774, 106778, 106782, - 106786, 106790, 106794, 106798, 106802, 106806, 106810, 106814, 106818, - 106822, 106826, 106830, 106834, 106838, 106842, 106846, 106850, 106854, - 106858, 106862, 106866, 106870, 106874, 106878, 106882, 106886, 106890, - 106894, 106898, 106902, 106906, 106910, 106914, 106918, 106922, 106926, - 106930, 106934, 106938, 106942, 106946, 106950, 106954, 106958, 106962, - 106966, 106970, 106974, 106978, 106982, 106986, 106990, 106994, 106998, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96079, 96082, 96087, 96093, + 96101, 96106, 96112, 96120, 96126, 96132, 96136, 96140, 96147, 96156, + 96163, 96172, 96178, 96187, 96194, 96201, 96208, 96218, 96224, 96228, + 96235, 96244, 96254, 96261, 96268, 96272, 96276, 96283, 96293, 96297, + 96304, 96311, 96318, 96324, 96331, 96338, 96345, 96352, 96356, 96360, + 96364, 96371, 96375, 96382, 96389, 96403, 96412, 96416, 96420, 96424, + 96431, 96435, 96439, 96443, 96451, 96459, 96478, 96488, 96508, 96512, + 96516, 96520, 96524, 96528, 96532, 96536, 96543, 96547, 96550, 96554, + 96558, 96564, 96571, 96580, 96584, 96593, 96602, 96610, 96614, 96621, + 96625, 96629, 96633, 96637, 96648, 96657, 96666, 96675, 96684, 96696, + 96705, 96714, 96723, 96731, 96740, 96752, 96761, 96770, 96779, 96791, + 96800, 96809, 96821, 96830, 96839, 96851, 96860, 96864, 96868, 96872, + 96876, 96880, 96884, 96888, 96895, 96899, 96903, 96914, 96918, 96922, + 96929, 96935, 96941, 96945, 96952, 96956, 96960, 96964, 96968, 96972, + 96976, 96982, 96990, 96994, 96998, 97001, 97007, 97017, 97021, 97033, + 97040, 97047, 97054, 97061, 97067, 97071, 97075, 97079, 97083, 97090, + 97099, 97106, 97114, 97122, 97128, 97132, 97136, 97140, 97144, 97150, + 97159, 97171, 97178, 97185, 97194, 97205, 97211, 97220, 97229, 97236, + 97245, 97252, 97259, 97269, 97276, 97283, 97290, 97297, 97301, 97307, + 97311, 97322, 97330, 97339, 97351, 97358, 97365, 97375, 97382, 97391, + 97398, 97407, 97414, 97421, 97431, 97438, 97445, 97455, 97462, 97474, + 97483, 97490, 97497, 97504, 97513, 97523, 97536, 97543, 97553, 97563, + 97570, 97579, 97592, 97599, 97606, 97613, 97623, 97633, 97640, 97650, + 97657, 97664, 97674, 97680, 97687, 97694, 97701, 97711, 97718, 97725, + 97732, 97738, 97745, 97755, 97762, 97766, 97774, 97778, 97790, 97794, + 97808, 97812, 97816, 97820, 97824, 97830, 97837, 97845, 97849, 97853, + 97857, 97861, 97868, 97872, 97878, 97884, 97892, 97896, 97903, 97911, + 97915, 97919, 97925, 97929, 97938, 97947, 97954, 97964, 97970, 97974, + 97978, 97986, 97993, 98000, 98006, 98010, 98018, 98022, 98029, 98041, + 98048, 98058, 98064, 98068, 98077, 98084, 98093, 98097, 98101, 98108, + 98112, 98116, 98120, 98124, 98127, 98133, 98139, 98143, 98147, 98154, + 98161, 98168, 98175, 98182, 98189, 98196, 98203, 98209, 98213, 98217, + 98224, 98231, 98238, 98245, 98252, 98256, 98259, 98264, 98268, 98272, + 98281, 98290, 98294, 98298, 98304, 98310, 98327, 98333, 98337, 98346, + 98350, 98354, 98361, 98369, 98377, 98383, 98387, 98391, 98395, 98399, + 98402, 98408, 98415, 98425, 98432, 98439, 98446, 98452, 98459, 98466, + 98473, 98480, 98487, 98496, 98503, 98515, 98522, 98529, 98539, 98550, + 98557, 98564, 98571, 98578, 98585, 98592, 98599, 98606, 98613, 98620, + 98630, 98640, 98650, 98657, 98667, 98674, 98681, 98688, 98695, 98701, + 98708, 98715, 98722, 98729, 98736, 98743, 98750, 98757, 98763, 98770, + 98777, 98786, 98793, 98800, 98804, 98812, 98816, 98820, 98824, 98828, + 98832, 98839, 98843, 98852, 98856, 98863, 98871, 98875, 98879, 98883, + 98896, 98912, 98916, 98920, 98927, 98933, 98940, 98944, 98948, 98952, + 98956, 98960, 98967, 98971, 98989, 98993, 98997, 99004, 99008, 99012, + 99018, 99022, 99026, 99034, 99038, 99042, 99046, 99050, 99056, 99067, + 99076, 99085, 99092, 99099, 99110, 99117, 99124, 99131, 99138, 99145, + 99152, 99159, 99169, 99175, 99182, 99192, 99201, 99208, 99217, 99227, + 99234, 99241, 99248, 99255, 99267, 99274, 99281, 99288, 99295, 99302, + 99312, 99319, 99326, 99336, 99349, 99361, 99368, 99378, 99385, 99392, + 99399, 99413, 99419, 99427, 99437, 99447, 99454, 99461, 99467, 99471, + 99478, 99488, 99494, 99507, 99511, 99515, 99522, 99526, 99533, 99543, + 99547, 99551, 99555, 99559, 99563, 99570, 99574, 99581, 99588, 99595, + 99604, 99613, 99623, 99630, 99637, 99644, 99654, 99661, 99671, 99678, + 99688, 99695, 99702, 99712, 99722, 99729, 99735, 99743, 99751, 99757, + 99763, 99767, 99771, 99778, 99786, 99792, 99796, 99800, 99804, 99811, + 99823, 99826, 99833, 99839, 99843, 99847, 99851, 99855, 99859, 99863, + 99867, 99871, 99875, 99879, 99886, 99890, 99896, 99900, 99904, 99908, + 99914, 99921, 99928, 99935, 99946, 99954, 99958, 99964, 99973, 99980, + 99986, 99989, 99993, 99997, 100003, 100012, 100020, 100024, 100030, + 100034, 100038, 100042, 100048, 100055, 100061, 100065, 100071, 100075, + 100079, 100088, 100100, 100104, 100111, 100118, 100128, 100135, 100147, + 100154, 100161, 100168, 100179, 100189, 100202, 100212, 100219, 100223, + 100227, 100231, 100235, 100244, 100253, 100262, 100279, 100288, 100294, + 100301, 100309, 100322, 100326, 100335, 100344, 100353, 100362, 100373, + 100382, 100391, 100400, 100409, 100418, 100427, 100437, 100440, 100444, + 100448, 100452, 100456, 100460, 100466, 100473, 100480, 100487, 100493, + 100499, 100506, 100512, 100519, 100527, 100531, 100538, 100545, 100552, + 100560, 100563, 100567, 100571, 100575, 100578, 100584, 100588, 100594, + 100601, 100608, 100614, 100621, 100628, 100635, 100642, 100649, 100656, + 100663, 100670, 100677, 100684, 100691, 100698, 100705, 100712, 100718, + 100722, 100731, 100735, 100739, 100743, 100747, 100753, 100760, 100767, + 100774, 100781, 100788, 100794, 100802, 100806, 100810, 100814, 100818, + 100824, 100841, 100858, 100862, 100866, 100870, 100874, 100878, 100882, + 100888, 100895, 100899, 100905, 100912, 100919, 100926, 100933, 100940, + 100949, 100956, 100963, 100970, 100977, 100981, 100985, 100991, 101003, + 101007, 101011, 101020, 101024, 101028, 101032, 101038, 101042, 101046, + 101055, 101059, 101063, 101067, 101074, 101078, 101082, 101086, 101090, + 101094, 101098, 101102, 101106, 101112, 101119, 101126, 101132, 101136, + 101153, 101159, 101163, 101169, 101175, 101181, 101187, 101193, 101199, + 101203, 101207, 101211, 101217, 101221, 101227, 101231, 101235, 101242, + 101249, 101266, 101270, 101274, 101278, 101282, 101286, 101298, 101301, + 101306, 101311, 101326, 101336, 101348, 101352, 101356, 101360, 101366, + 101373, 101380, 101390, 101402, 101408, 101414, 101423, 101427, 101431, + 101438, 101448, 101455, 101461, 101465, 101469, 101476, 101482, 101486, + 101492, 101496, 101504, 101510, 101514, 101522, 101530, 101537, 101543, + 101550, 101557, 101567, 101577, 101581, 101585, 101589, 101593, 101599, + 101606, 101612, 101619, 101626, 101633, 101642, 101649, 101656, 101662, + 101669, 101676, 101683, 101690, 101697, 101704, 101710, 101717, 101724, + 101731, 101740, 101747, 101754, 101758, 101764, 101768, 101774, 101781, + 101788, 101795, 101799, 101803, 101807, 101811, 101815, 101822, 101826, + 101830, 101836, 101844, 101848, 101852, 101856, 101860, 101867, 101871, + 101875, 101883, 101887, 101891, 101895, 101899, 101905, 101909, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 101913, 101919, 101925, 101932, + 101939, 101946, 101953, 101960, 101967, 101973, 101980, 101987, 101994, + 102001, 102008, 102015, 102021, 102027, 102033, 102039, 102045, 102051, + 102057, 102063, 102069, 102076, 102083, 102090, 102097, 102104, 102111, + 102117, 102123, 102129, 102136, 102143, 102149, 102155, 102164, 102171, + 102178, 102185, 102192, 102199, 102206, 102212, 102218, 102224, 102233, + 102240, 102247, 102258, 102269, 102275, 102281, 102287, 102296, 102303, + 102310, 102320, 102330, 102341, 102352, 102364, 102377, 102388, 102399, + 102411, 102424, 102435, 102446, 102457, 102468, 102479, 102491, 102499, + 102507, 102516, 102525, 102534, 102540, 102546, 102552, 102559, 102569, + 102576, 102586, 102591, 102596, 102602, 102608, 102616, 102624, 102633, + 102644, 102655, 102663, 102671, 102680, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 102689, 102700, 102707, 102715, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 102723, 102727, 102731, 102735, 102739, 102743, 102747, 102751, 102755, + 102759, 102763, 102767, 102771, 102775, 102779, 102783, 102787, 102791, + 102795, 102799, 102803, 102807, 102811, 102815, 102819, 102823, 102827, + 102831, 102835, 102839, 102843, 102847, 102851, 102855, 102859, 102863, + 102867, 102871, 102875, 102879, 102883, 102887, 102891, 102895, 102899, + 102903, 102907, 102911, 102915, 102919, 102923, 102927, 102931, 102935, + 102939, 102943, 102947, 102951, 102955, 102959, 102963, 102967, 102971, + 102975, 102979, 102983, 102987, 102991, 102995, 102999, 103003, 103007, + 103011, 103015, 103019, 103023, 103027, 103031, 103035, 103039, 103043, + 103047, 103051, 103055, 103059, 103063, 103067, 103071, 103075, 103079, + 103083, 103087, 103091, 103095, 103099, 103103, 103107, 103111, 103115, + 103119, 103123, 103127, 103131, 103135, 103139, 103143, 103147, 103151, + 103155, 103159, 103163, 103167, 103171, 103175, 103179, 103183, 103187, + 103191, 103195, 103199, 103203, 103207, 103211, 103215, 103219, 103223, + 103227, 103231, 103235, 103239, 103243, 103247, 103251, 103255, 103259, + 103263, 103267, 103271, 103275, 103279, 103283, 103287, 103291, 103295, + 103299, 103303, 103307, 103311, 103315, 103319, 103323, 103327, 103331, + 103335, 103339, 103343, 103347, 103351, 103355, 103359, 103363, 103367, + 103371, 103375, 103379, 103383, 103387, 103391, 103395, 103399, 103403, + 103407, 103411, 103415, 103419, 103423, 103427, 103431, 103435, 103439, + 103443, 103447, 103451, 103455, 103459, 103463, 103467, 103471, 103475, + 103479, 103483, 103487, 103491, 103495, 103499, 103503, 103507, 103511, + 103515, 103519, 103523, 103527, 103531, 103535, 103539, 103543, 103547, + 103551, 103555, 103559, 103563, 103567, 103571, 103575, 103579, 103583, + 103587, 103591, 103595, 103599, 103603, 103607, 103611, 103615, 103619, + 103623, 103627, 103631, 103635, 103639, 103643, 103647, 103651, 103655, + 103659, 103663, 103667, 103671, 103675, 103679, 103683, 103687, 103691, + 103695, 103699, 103703, 103707, 103711, 103715, 103719, 103723, 103727, + 103731, 103735, 103739, 103743, 103747, 103751, 103755, 103759, 103763, + 103767, 103771, 103775, 103779, 103783, 103787, 103791, 103795, 103799, + 103803, 103807, 103811, 103815, 103819, 103823, 103827, 103831, 103835, + 103839, 103843, 103847, 103851, 103855, 103859, 103863, 103867, 103871, + 103875, 103879, 103883, 103887, 103891, 103895, 103899, 103903, 103907, + 103911, 103915, 103919, 103923, 103927, 103931, 103935, 103939, 103943, + 103947, 103951, 103955, 103959, 103963, 103967, 103971, 103975, 103979, + 103983, 103987, 103991, 103995, 103999, 104003, 104007, 104011, 104015, + 104019, 104023, 104027, 104031, 104035, 104039, 104043, 104047, 104051, + 104055, 104059, 104063, 104067, 104071, 104075, 104079, 104083, 104087, + 104091, 104095, 104099, 104103, 104107, 104111, 104115, 104119, 104123, + 104127, 104131, 104135, 104139, 104143, 104147, 104151, 104155, 104159, + 104163, 104167, 104171, 104175, 104179, 104183, 104187, 104191, 104195, + 104199, 104203, 104207, 104211, 104215, 104219, 104223, 104227, 104231, + 104235, 104239, 104243, 104247, 104251, 104255, 104259, 104263, 104267, + 104271, 104275, 104279, 104283, 104287, 104291, 104295, 104299, 104303, + 104307, 104311, 104315, 104319, 104323, 104327, 104331, 104335, 104339, + 104343, 104347, 104351, 104355, 104359, 104363, 104367, 104371, 104375, + 104379, 104383, 104387, 104391, 104395, 104399, 104403, 104407, 104411, + 104415, 104419, 104423, 104427, 104431, 104435, 104439, 104443, 104447, + 104451, 104455, 104459, 104463, 104467, 104471, 104475, 104479, 104483, + 104487, 104491, 104495, 104499, 104503, 104507, 104511, 104515, 104519, + 104523, 104527, 104531, 104535, 104539, 104543, 104547, 104551, 104555, + 104559, 104563, 104567, 104571, 104575, 104579, 104583, 104587, 104591, + 104595, 104599, 104603, 104607, 104611, 104615, 104619, 104623, 104627, + 104631, 104635, 104639, 104643, 104647, 104651, 104655, 104659, 104663, + 104667, 104671, 104675, 104679, 104683, 104687, 104691, 104695, 104699, + 104703, 104707, 104711, 104715, 104719, 104723, 104727, 104731, 104735, + 104739, 104743, 104747, 104751, 104755, 104759, 104763, 104767, 104771, + 104775, 104779, 104783, 104787, 104791, 104795, 104799, 104803, 104807, + 104811, 104815, 104819, 104823, 104827, 104831, 104835, 104839, 104843, + 104847, 104851, 104855, 104859, 104863, 104867, 104871, 104875, 104879, + 104883, 104887, 104891, 104895, 104899, 104903, 104907, 104911, 104915, + 104919, 104923, 104927, 104931, 104935, 104939, 104943, 104947, 104951, + 104955, 104959, 104963, 104967, 104971, 104975, 104979, 104983, 104987, + 104991, 104995, 104999, 105003, 105007, 105011, 105015, 105019, 105023, + 105027, 105031, 105035, 105039, 105043, 105047, 105051, 105055, 105059, + 105063, 105067, 105071, 105075, 105079, 105083, 105087, 105091, 105095, + 105099, 105103, 105107, 105111, 105115, 105119, 105123, 105127, 105131, + 105135, 105139, 105143, 105147, 105151, 105155, 105159, 105163, 105167, + 105171, 105175, 105179, 105183, 105187, 105191, 105195, 105199, 105203, + 105207, 105211, 105215, 105219, 105223, 105227, 105231, 105235, 105239, + 105243, 105247, 105251, 105255, 105259, 105263, 105267, 105271, 105275, + 105279, 105283, 105287, 105291, 105295, 105299, 105303, 105307, 105311, + 105315, 105319, 105323, 105327, 105331, 105335, 105339, 105343, 105347, + 105351, 105355, 105359, 105363, 105367, 105371, 105375, 105379, 105383, + 105387, 105391, 105395, 105399, 105403, 105407, 105411, 105415, 105419, + 105423, 105427, 105431, 105435, 105439, 105443, 105447, 105451, 105455, + 105459, 105463, 105467, 105471, 105475, 105479, 105483, 105487, 105491, + 105495, 105499, 105503, 105507, 105511, 105515, 105519, 105523, 105527, + 105531, 105535, 105539, 105543, 105547, 105551, 105555, 105559, 105563, + 105567, 105571, 105575, 105579, 105583, 105587, 105591, 105595, 105599, + 105603, 105607, 105611, 105615, 105619, 105623, 105627, 105631, 105635, + 105639, 105643, 105647, 105651, 105655, 105659, 105663, 105667, 105671, + 105675, 105679, 105683, 105687, 105691, 105695, 105699, 105703, 105707, + 105711, 105715, 105719, 105723, 105727, 105731, 105735, 105739, 105743, + 105747, 105751, 105755, 105759, 105763, 105767, 105771, 105775, 105779, + 105783, 105787, 105791, 105795, 105799, 105803, 105807, 105811, 105815, + 105819, 105823, 105827, 105831, 105835, 105839, 105843, 105847, 105851, + 105855, 105859, 105863, 105867, 105871, 105875, 105879, 105883, 105887, + 105891, 105895, 105899, 105903, 105907, 105911, 105915, 105919, 105923, + 105927, 105931, 105935, 105939, 105943, 105947, 105951, 105955, 105959, + 105963, 105967, 105971, 105975, 105979, 105983, 105987, 105991, 105995, + 105999, 106003, 106007, 106011, 106015, 106019, 106023, 106027, 106031, + 106035, 106039, 106043, 106047, 106051, 106055, 106059, 106063, 106067, + 106071, 106075, 106079, 106083, 106087, 106091, 106095, 106099, 106103, + 106107, 106111, 106115, 106119, 106123, 106127, 106131, 106135, 106139, + 106143, 106147, 106151, 106155, 106159, 106163, 106167, 106171, 106175, + 106179, 106183, 106187, 106191, 106195, 106199, 106203, 106207, 106211, + 106215, 106219, 106223, 106227, 106231, 106235, 106239, 106243, 106247, + 106251, 106255, 106259, 106263, 106267, 106271, 106275, 106279, 106283, + 106287, 106291, 106295, 106299, 106303, 106307, 106311, 106315, 106319, + 106323, 106327, 106331, 106335, 106339, 106343, 106347, 106351, 106355, + 106359, 106363, 106367, 106371, 106375, 106379, 106383, 106387, 106391, + 106395, 106399, 106403, 106407, 106411, 106415, 106419, 106423, 106427, + 106431, 106435, 106439, 106443, 106447, 106451, 106455, 106459, 106463, + 106467, 106471, 106475, 106479, 106483, 106487, 106491, 106495, 106499, + 106503, 106507, 106511, 106515, 106519, 106523, 106527, 106531, 106535, + 106539, 106543, 106547, 106551, 106555, 106559, 106563, 106567, 106571, + 106575, 106579, 106583, 106587, 106591, 106595, 106599, 106603, 106607, + 106611, 106615, 106619, 106623, 106627, 106631, 106635, 106639, 106643, + 106647, 106651, 106655, 106659, 106663, 106667, 106671, 106675, 106679, + 106683, 106687, 106691, 106695, 106699, 106703, 106707, 106711, 106715, + 106719, 106723, 106727, 106731, 106735, 106739, 106743, 106747, 106751, + 106755, 106759, 106763, 106767, 106771, 106775, 106779, 106783, 106787, + 106791, 106795, 106799, 106803, 106807, 106811, 106815, 106819, 106823, + 106827, 106831, 106835, 106839, 106843, 106847, 106851, 106855, 106859, + 106863, 106867, 106871, 106875, 106879, 106883, 106887, 106891, 106895, + 106899, 106903, 106907, 106911, 106915, 106919, 106923, 106927, 106931, + 106935, 106939, 106943, 106947, 106951, 106955, 106959, 106963, 106967, + 106971, 106975, 106979, 106983, 106987, 106991, 106995, 106999, 107003, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 107002, 107009, 107016, 107025, 107034, - 107041, 107046, 107053, 107060, 107069, 107080, 107091, 107096, 107103, - 107108, 107113, 107118, 107123, 107128, 107133, 107138, 107143, 107148, - 107153, 107158, 107165, 107172, 107177, 107182, 107187, 107192, 107199, - 107206, 107214, 107219, 107226, 107231, 107236, 107241, 107246, 107251, - 107258, 107265, 107270, 107275, 107280, 107285, 107290, 107295, 107300, - 107305, 107310, 107315, 107320, 107325, 107330, 107335, 107340, 107345, - 107350, 107355, 107360, 107367, 107372, 107377, 107386, 107393, 107398, - 107403, 107408, 107413, 107418, 107423, 107428, 107433, 107438, 107443, - 107448, 107453, 107458, 107463, 107468, 107473, 107478, 107483, 107488, - 107493, 107498, 107504, 107512, 107518, 107526, 107534, 107542, 107548, - 107554, 107560, 107566, 107572, 107580, 107590, 107598, 107606, 107612, - 107618, 107626, 107634, 107640, 107648, 107656, 107664, 107670, 107676, - 107682, 107688, 107694, 107700, 107708, 107716, 107722, 107728, 107734, - 107740, 107746, 107754, 107760, 107766, 107772, 107778, 107784, 107790, - 107798, 107804, 107810, 107816, 107822, 107830, 107838, 107844, 107850, - 107856, 107861, 107867, 107873, 107880, 107885, 107890, 107895, 107900, - 107905, 107910, 107915, 107920, 107925, 107934, 107941, 107946, 107951, - 107956, 107963, 107968, 107973, 107978, 107985, 107990, 107995, 108000, - 108005, 108010, 108015, 108020, 108025, 108030, 108035, 108040, 108047, - 108052, 108059, 108064, 108069, 108076, 108081, 108086, 108091, 108096, - 108101, 108106, 108111, 108116, 108121, 108126, 108131, 108136, 108141, - 108146, 108151, 108156, 108161, 108166, 108171, 108178, 108183, 108188, - 108193, 108198, 108203, 108208, 108213, 108218, 108223, 108228, 108233, - 108238, 108243, 108250, 108255, 108260, 108267, 108272, 108277, 108282, - 108287, 108292, 108297, 108302, 108307, 108312, 108317, 108324, 108329, - 108334, 108339, 108344, 108349, 108356, 108363, 108368, 108373, 108378, - 108383, 108388, 108393, 108398, 108403, 108408, 108413, 108418, 108423, - 108428, 108433, 108438, 108443, 108448, 108453, 108458, 108463, 108468, - 108473, 108478, 108483, 108488, 108493, 108498, 108503, 108508, 108513, - 108518, 108523, 108528, 108533, 108538, 108543, 108550, 108555, 108560, - 108565, 108570, 108575, 108580, 108585, 108590, 108595, 108600, 108605, - 108610, 108615, 108620, 108625, 108630, 108635, 108640, 108645, 108650, - 108655, 108660, 108665, 108670, 108675, 108680, 108685, 108690, 108695, - 108700, 108705, 108710, 108715, 108720, 108725, 108730, 108735, 108740, - 108745, 108750, 108755, 108760, 108765, 108770, 108775, 108780, 108785, - 108790, 108795, 108800, 108805, 108810, 108815, 108820, 108825, 108830, - 108835, 108840, 108847, 108852, 108857, 108862, 108867, 108872, 108877, - 108881, 108886, 108891, 108896, 108901, 108906, 108911, 108916, 108921, - 108926, 108931, 108936, 108941, 108946, 108951, 108958, 108963, 108968, - 108974, 108979, 108984, 108989, 108994, 108999, 109004, 109009, 109014, - 109019, 109024, 109029, 109034, 109039, 109044, 109049, 109054, 109059, - 109064, 109069, 109074, 109079, 109084, 109089, 109094, 109099, 109104, - 109109, 109114, 109119, 109124, 109129, 109134, 109139, 109144, 109149, - 109154, 109159, 109164, 109169, 109174, 109179, 109184, 109189, 109196, - 109201, 109206, 109213, 109220, 109225, 109230, 109235, 109240, 109245, - 109250, 109255, 109260, 109265, 109270, 109275, 109280, 109285, 109290, - 109295, 109300, 109305, 109310, 109315, 109320, 109325, 109330, 109335, - 109340, 109345, 109352, 109357, 109362, 109367, 109372, 109377, 109382, - 109387, 109392, 109397, 109402, 109407, 109412, 109417, 109422, 109427, - 109432, 109437, 109442, 109449, 109454, 109459, 109464, 109469, 109474, - 109479, 109484, 109490, 109495, 109500, 109505, 109510, 109515, 109520, - 109525, 109530, 109537, 109544, 109549, 109554, 109558, 109563, 109567, - 109571, 109576, 109583, 109588, 109593, 109602, 109607, 109612, 109617, - 109622, 109629, 109636, 109641, 109646, 109651, 109656, 109663, 109668, - 109673, 109678, 109683, 109688, 109693, 109698, 109703, 109708, 109713, - 109718, 109723, 109730, 109734, 109739, 109744, 109749, 109754, 109758, - 109763, 109768, 109773, 109778, 109783, 109788, 109793, 109798, 109803, - 109809, 109815, 109821, 109827, 109833, 109839, 109845, 109851, 109857, - 109863, 109869, 109875, 109880, 109886, 109892, 109898, 109904, 109910, - 109916, 109922, 109928, 109934, 109940, 109946, 109951, 109957, 109963, - 109969, 109975, 109981, 109987, 109993, 109999, 110005, 110011, 110017, - 110023, 110029, 110035, 110041, 110047, 110053, 110059, 110065, 110071, - 110076, 110082, 110088, 110094, 110100, 110106, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 107007, 107014, 107021, 107030, 107039, + 107046, 107051, 107058, 107065, 107074, 107085, 107096, 107101, 107108, + 107113, 107118, 107123, 107128, 107133, 107138, 107143, 107148, 107153, + 107158, 107163, 107170, 107177, 107182, 107187, 107192, 107197, 107204, + 107211, 107219, 107224, 107231, 107236, 107241, 107246, 107251, 107256, + 107263, 107270, 107275, 107280, 107285, 107290, 107295, 107300, 107305, + 107310, 107315, 107320, 107325, 107330, 107335, 107340, 107345, 107350, + 107355, 107360, 107365, 107372, 107377, 107382, 107391, 107398, 107403, + 107408, 107413, 107418, 107423, 107428, 107433, 107438, 107443, 107448, + 107453, 107458, 107463, 107468, 107473, 107478, 107483, 107488, 107493, + 107498, 107503, 107509, 107517, 107523, 107531, 107539, 107547, 107553, + 107559, 107565, 107571, 107577, 107585, 107595, 107603, 107611, 107617, + 107623, 107631, 107639, 107645, 107653, 107661, 107669, 107675, 107681, + 107687, 107693, 107699, 107705, 107713, 107721, 107727, 107733, 107739, + 107745, 107751, 107759, 107765, 107771, 107777, 107783, 107789, 107795, + 107803, 107809, 107815, 107821, 107827, 107835, 107843, 107849, 107855, + 107861, 107866, 107872, 107878, 107885, 107890, 107895, 107900, 107905, + 107910, 107915, 107920, 107925, 107930, 107939, 107946, 107951, 107956, + 107961, 107968, 107973, 107978, 107983, 107990, 107995, 108000, 108005, + 108010, 108015, 108020, 108025, 108030, 108035, 108040, 108045, 108052, + 108057, 108064, 108069, 108074, 108081, 108086, 108091, 108096, 108101, + 108106, 108111, 108116, 108121, 108126, 108131, 108136, 108141, 108146, + 108151, 108156, 108161, 108166, 108171, 108176, 108183, 108188, 108193, + 108198, 108203, 108208, 108213, 108218, 108223, 108228, 108233, 108238, + 108243, 108248, 108255, 108260, 108265, 108272, 108277, 108282, 108287, + 108292, 108297, 108302, 108307, 108312, 108317, 108322, 108329, 108334, + 108339, 108344, 108349, 108354, 108361, 108368, 108373, 108378, 108383, + 108388, 108393, 108398, 108403, 108408, 108413, 108418, 108423, 108428, + 108433, 108438, 108443, 108448, 108453, 108458, 108463, 108468, 108473, + 108478, 108483, 108488, 108493, 108498, 108503, 108508, 108513, 108518, + 108523, 108528, 108533, 108538, 108543, 108548, 108555, 108560, 108565, + 108570, 108575, 108580, 108585, 108590, 108595, 108600, 108605, 108610, + 108615, 108620, 108625, 108630, 108635, 108640, 108645, 108650, 108655, + 108660, 108665, 108670, 108675, 108680, 108685, 108690, 108695, 108700, + 108705, 108710, 108715, 108720, 108725, 108730, 108735, 108740, 108745, + 108750, 108755, 108760, 108765, 108770, 108775, 108780, 108785, 108790, + 108795, 108800, 108805, 108810, 108815, 108820, 108825, 108830, 108835, + 108840, 108845, 108852, 108857, 108862, 108867, 108872, 108877, 108882, + 108886, 108891, 108896, 108901, 108906, 108911, 108916, 108921, 108926, + 108931, 108936, 108941, 108946, 108951, 108956, 108963, 108968, 108973, + 108979, 108984, 108989, 108994, 108999, 109004, 109009, 109014, 109019, + 109024, 109029, 109034, 109039, 109044, 109049, 109054, 109059, 109064, + 109069, 109074, 109079, 109084, 109089, 109094, 109099, 109104, 109109, + 109114, 109119, 109124, 109129, 109134, 109139, 109144, 109149, 109154, + 109159, 109164, 109169, 109174, 109179, 109184, 109189, 109194, 109201, + 109206, 109211, 109218, 109225, 109230, 109235, 109240, 109245, 109250, + 109255, 109260, 109265, 109270, 109275, 109280, 109285, 109290, 109295, + 109300, 109305, 109310, 109315, 109320, 109325, 109330, 109335, 109340, + 109345, 109350, 109357, 109362, 109367, 109372, 109377, 109382, 109387, + 109392, 109397, 109402, 109407, 109412, 109417, 109422, 109427, 109432, + 109437, 109442, 109447, 109454, 109459, 109464, 109469, 109474, 109479, + 109484, 109489, 109495, 109500, 109505, 109510, 109515, 109520, 109525, + 109530, 109535, 109542, 109549, 109554, 109559, 109563, 109568, 109572, + 109576, 109581, 109588, 109593, 109598, 109607, 109612, 109617, 109622, + 109627, 109634, 109641, 109646, 109651, 109656, 109661, 109668, 109673, + 109678, 109683, 109688, 109693, 109698, 109703, 109708, 109713, 109718, + 109723, 109728, 109735, 109739, 109744, 109749, 109754, 109759, 109763, + 109768, 109773, 109778, 109783, 109788, 109793, 109798, 109803, 109808, + 109814, 109820, 109826, 109832, 109838, 109844, 109850, 109856, 109862, + 109868, 109874, 109880, 109885, 109891, 109897, 109903, 109909, 109915, + 109921, 109927, 109933, 109939, 109945, 109951, 109956, 109962, 109968, + 109974, 109980, 109986, 109992, 109998, 110004, 110010, 110016, 110022, + 110028, 110034, 110040, 110046, 110052, 110058, 110064, 110070, 110076, + 110081, 110087, 110093, 110099, 110105, 110111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 110112, 110115, 110119, - 110123, 110127, 110130, 110134, 110139, 110143, 110147, 110151, 110155, - 110159, 110164, 110169, 110173, 110177, 110180, 110184, 110189, 110194, - 110198, 110202, 110206, 110210, 110214, 110218, 110222, 110226, 110230, - 110234, 110237, 110241, 110245, 110249, 110253, 110257, 110261, 110267, - 110270, 110274, 110278, 110282, 110286, 110290, 110294, 110298, 110302, - 110306, 110311, 110316, 110322, 110326, 110330, 110334, 110338, 110342, - 110346, 110351, 110354, 110358, 110362, 110366, 110370, 110376, 110380, - 110384, 110388, 110392, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 110396, 110400, - 110404, 110410, 110416, 110420, 110425, 110430, 110435, 110440, 110444, - 110449, 110454, 110459, 110463, 110468, 110473, 110478, 110482, 110487, - 110492, 110497, 110502, 110507, 110512, 110517, 110522, 110526, 110531, - 110536, 110541, 110546, 110551, 110556, 110561, 110566, 110571, 110576, - 110581, 110588, 110593, 110600, 110605, 110610, 110615, 110620, 110625, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 110630, 110634, 110640, - 110643, 110646, 110650, 110654, 110658, 110662, 110666, 110670, 110674, - 110680, 110686, 110692, 110698, 110704, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 110117, 110120, 110124, + 110128, 110132, 110135, 110139, 110144, 110148, 110152, 110156, 110160, + 110164, 110169, 110174, 110178, 110182, 110185, 110189, 110194, 110199, + 110203, 110207, 110211, 110215, 110219, 110223, 110227, 110231, 110235, + 110239, 110242, 110246, 110250, 110254, 110258, 110262, 110266, 110272, + 110275, 110279, 110283, 110287, 110291, 110295, 110299, 110303, 110307, + 110311, 110316, 110321, 110327, 110331, 110335, 110339, 110343, 110347, + 110351, 110356, 110359, 110363, 110367, 110371, 110375, 110381, 110385, + 110389, 110393, 110397, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 110401, 110405, + 110409, 110415, 110421, 110425, 110430, 110435, 110440, 110445, 110449, + 110454, 110459, 110464, 110468, 110473, 110478, 110483, 110487, 110492, + 110497, 110502, 110507, 110512, 110517, 110522, 110527, 110531, 110536, + 110541, 110546, 110551, 110556, 110561, 110566, 110571, 110576, 110581, + 110586, 110593, 110598, 110605, 110610, 110615, 110620, 110625, 110630, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 110635, 110639, 110645, + 110648, 110651, 110655, 110659, 110663, 110667, 110671, 110675, 110679, + 110685, 110691, 110697, 110703, 110709, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 110710, 110715, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 110715, 110720, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 110721, 110726, 110731, 110736, 110743, 110750, 110757, 110764, 110769, - 110774, 110779, 110784, 110791, 110796, 110803, 110810, 110815, 110820, - 110825, 110832, 110837, 110842, 110849, 110856, 110861, 110866, 110871, - 110878, 110885, 110892, 110897, 110902, 110909, 110916, 110923, 110930, - 110935, 110940, 110945, 110952, 110957, 110962, 110967, 110974, 110983, - 110990, 110995, 111000, 111005, 111010, 111015, 111020, 111029, 111036, - 111041, 111048, 111055, 111060, 111065, 111070, 111077, 111082, 111089, - 111096, 111101, 111106, 111111, 111118, 111125, 111130, 111135, 111142, - 111149, 111156, 111161, 111166, 111171, 111176, 111183, 111192, 111201, - 111206, 111213, 111222, 111227, 111232, 111237, 111242, 111249, 111256, - 111263, 111270, 111275, 111280, 111285, 111292, 111299, 111306, 111311, - 111316, 111323, 111328, 111335, 111340, 111347, 111352, 111359, 111366, - 111371, 111376, 111381, 111386, 111391, 111396, 111401, 111406, 111411, - 111418, 111425, 111432, 111439, 111446, 111455, 111460, 111465, 111472, - 111479, 111484, 111491, 111498, 111505, 111512, 111519, 111526, 111531, - 111536, 111541, 111546, 111551, 111560, 111569, 111578, 111587, 111596, - 111605, 111614, 111623, 111628, 111639, 111650, 111659, 111664, 111669, - 111674, 111679, 111688, 111695, 111702, 111709, 111716, 111723, 111730, - 111739, 111748, 111759, 111768, 111779, 111788, 111795, 111804, 111815, - 111824, 111833, 111842, 111851, 111858, 111865, 111872, 111881, 111890, - 111901, 111910, 111919, 111930, 111935, 111940, 111951, 111959, 111968, - 111977, 111986, 111997, 112006, 112015, 112026, 112037, 112048, 112059, - 112070, 112081, 112088, 112095, 112102, 112109, 112120, 112129, 112136, - 112143, 112150, 112161, 112172, 112183, 112194, 112205, 112216, 112227, - 112238, 112245, 112252, 112261, 112270, 112277, 112284, 112291, 112300, - 112309, 112318, 112325, 112334, 112343, 112352, 112359, 112366, 112371, - 112377, 112384, 112391, 112398, 112405, 112412, 112419, 112428, 112437, - 112446, 112455, 112462, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 112471, 112477, - 112482, 112487, 112494, 112500, 112506, 112512, 112518, 112524, 112530, - 112536, 112540, 112544, 112550, 112556, 112562, 112566, 112571, 112576, - 112580, 112584, 112587, 112593, 112599, 112605, 112611, 112617, 112623, - 112629, 112635, 112641, 112651, 112661, 112667, 112673, 112683, 112693, - 112699, 0, 0, 112705, 112713, 112718, 112723, 112729, 112735, 112741, - 112747, 112753, 112759, 112766, 112773, 112779, 112785, 112791, 112797, - 112803, 112809, 112815, 112821, 112826, 112832, 112838, 112844, 112850, - 112856, 112865, 112871, 112876, 112884, 112891, 112898, 112907, 112916, - 112925, 112934, 112943, 112952, 112961, 112970, 112980, 112990, 112998, - 113006, 113015, 113024, 113030, 113036, 113042, 113048, 113056, 113064, - 113068, 113074, 113079, 113085, 113091, 113097, 113103, 113109, 113118, - 113123, 113130, 113135, 113140, 113145, 113151, 113157, 113163, 113170, - 113175, 113180, 113185, 113190, 113195, 113201, 113207, 113213, 113219, - 113225, 113231, 113237, 113243, 113248, 113253, 113258, 113263, 113268, - 113273, 113278, 113283, 113289, 113295, 113300, 113305, 113310, 113315, - 113320, 113326, 113333, 113337, 113341, 113345, 113349, 113353, 113357, - 113361, 113365, 113373, 113383, 113387, 113391, 113397, 113403, 113409, - 113415, 113421, 113427, 113433, 113439, 113445, 113451, 113457, 113463, - 113469, 113475, 113479, 113483, 113490, 113496, 113502, 113508, 113513, - 113520, 113525, 113531, 113537, 113543, 113549, 113554, 113558, 113564, - 113568, 113572, 113576, 113582, 113588, 113592, 113598, 113604, 113610, - 113616, 113622, 113630, 113638, 113644, 113650, 113656, 113662, 113674, - 113686, 113700, 113712, 113724, 113738, 113752, 113766, 113770, 113778, - 113786, 113791, 113795, 113799, 113803, 113807, 113811, 113815, 113819, - 113825, 113831, 113837, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 113843, 113849, - 113855, 113861, 113867, 113873, 113879, 113885, 113891, 113897, 113903, - 113909, 113915, 113921, 113927, 113933, 113939, 113945, 113951, 113957, - 113963, 113969, 113975, 113981, 113987, 113993, 113999, 114005, 114011, - 114017, 114023, 114029, 114035, 114041, 114047, 114053, 114059, 114065, - 114071, 114077, 114083, 114089, 114095, 114101, 114107, 114113, 114119, - 114125, 114131, 114137, 114143, 114149, 114155, 114161, 114167, 114173, - 114179, 114185, 114191, 114197, 114203, 114209, 114215, 114221, 114227, - 114233, 114239, 114244, 114249, 114254, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 110726, 110731, 110736, 110741, 110748, 110755, 110762, 110769, 110774, + 110779, 110784, 110789, 110796, 110801, 110808, 110815, 110820, 110825, + 110830, 110837, 110842, 110847, 110854, 110861, 110866, 110871, 110876, + 110883, 110890, 110897, 110902, 110907, 110914, 110921, 110928, 110935, + 110940, 110945, 110950, 110957, 110962, 110967, 110972, 110979, 110988, + 110995, 111000, 111005, 111010, 111015, 111020, 111025, 111034, 111041, + 111046, 111053, 111060, 111065, 111070, 111075, 111082, 111087, 111094, + 111101, 111106, 111111, 111116, 111123, 111130, 111135, 111140, 111147, + 111154, 111161, 111166, 111171, 111176, 111181, 111188, 111197, 111206, + 111211, 111218, 111227, 111232, 111237, 111242, 111247, 111254, 111261, + 111268, 111275, 111280, 111285, 111290, 111297, 111304, 111311, 111316, + 111321, 111328, 111333, 111340, 111345, 111352, 111357, 111364, 111371, + 111376, 111381, 111386, 111391, 111396, 111401, 111406, 111411, 111416, + 111423, 111430, 111437, 111444, 111451, 111460, 111465, 111470, 111477, + 111484, 111489, 111496, 111503, 111510, 111517, 111524, 111531, 111536, + 111541, 111546, 111551, 111556, 111565, 111574, 111583, 111592, 111601, + 111610, 111619, 111628, 111633, 111644, 111655, 111664, 111669, 111674, + 111679, 111684, 111693, 111700, 111707, 111714, 111721, 111728, 111735, + 111744, 111753, 111764, 111773, 111784, 111793, 111800, 111809, 111820, + 111829, 111838, 111847, 111856, 111863, 111870, 111877, 111886, 111895, + 111906, 111915, 111924, 111935, 111940, 111945, 111956, 111964, 111973, + 111982, 111991, 112002, 112011, 112020, 112031, 112042, 112053, 112064, + 112075, 112086, 112093, 112100, 112107, 112114, 112125, 112134, 112141, + 112148, 112155, 112166, 112177, 112188, 112199, 112210, 112221, 112232, + 112243, 112250, 112257, 112266, 112275, 112282, 112289, 112296, 112305, + 112314, 112323, 112330, 112339, 112348, 112357, 112364, 112371, 112376, + 112382, 112389, 112396, 112403, 112410, 112417, 112424, 112433, 112442, + 112451, 112460, 112467, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 112476, 112482, + 112487, 112492, 112499, 112505, 112511, 112517, 112523, 112529, 112535, + 112541, 112545, 112549, 112555, 112561, 112567, 112571, 112576, 112581, + 112585, 112589, 112592, 112598, 112604, 112610, 112616, 112622, 112628, + 112634, 112640, 112646, 112656, 112666, 112672, 112678, 112688, 112698, + 112704, 0, 0, 112710, 112718, 112723, 112728, 112734, 112740, 112746, + 112752, 112758, 112764, 112771, 112778, 112784, 112790, 112796, 112802, + 112808, 112814, 112820, 112826, 112831, 112837, 112843, 112849, 112855, + 112861, 112870, 112876, 112881, 112889, 112896, 112903, 112912, 112921, + 112930, 112939, 112948, 112957, 112966, 112975, 112985, 112995, 113003, + 113011, 113020, 113029, 113035, 113041, 113047, 113053, 113061, 113069, + 113073, 113079, 113084, 113090, 113096, 113102, 113108, 113114, 113123, + 113128, 113135, 113140, 113145, 113150, 113156, 113162, 113168, 113175, + 113180, 113185, 113190, 113195, 113200, 113206, 113212, 113218, 113224, + 113230, 113236, 113242, 113248, 113253, 113258, 113263, 113268, 113273, + 113278, 113283, 113288, 113294, 113300, 113305, 113310, 113315, 113320, + 113325, 113331, 113338, 113342, 113346, 113350, 113354, 113358, 113362, + 113366, 113370, 113378, 113388, 113392, 113396, 113402, 113408, 113414, + 113420, 113426, 113432, 113438, 113444, 113450, 113456, 113462, 113468, + 113474, 113480, 113484, 113488, 113495, 113501, 113507, 113513, 113518, + 113525, 113530, 113536, 113542, 113548, 113554, 113559, 113563, 113569, + 113573, 113577, 113581, 113587, 113593, 113597, 113603, 113609, 113615, + 113621, 113627, 113635, 113643, 113649, 113655, 113661, 113667, 113679, + 113691, 113705, 113717, 113729, 113743, 113757, 113771, 113775, 113783, + 113791, 113796, 113800, 113804, 113808, 113812, 113816, 113820, 113824, + 113830, 113836, 113842, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 113848, 113854, + 113860, 113866, 113872, 113878, 113884, 113890, 113896, 113902, 113908, + 113914, 113920, 113926, 113932, 113938, 113944, 113950, 113956, 113962, + 113968, 113974, 113980, 113986, 113992, 113998, 114004, 114010, 114016, + 114022, 114028, 114034, 114040, 114046, 114052, 114058, 114064, 114070, + 114076, 114082, 114088, 114094, 114100, 114106, 114112, 114118, 114124, + 114130, 114136, 114142, 114148, 114154, 114160, 114166, 114172, 114178, + 114184, 114190, 114196, 114202, 114208, 114214, 114220, 114226, 114232, + 114238, 114244, 114249, 114254, 114259, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 114258, 114263, 114270, 114277, 114284, 114291, 114296, 114300, 114306, - 114310, 114314, 114320, 114324, 114328, 114332, 114338, 114345, 114349, - 114353, 114357, 114361, 114365, 114369, 114375, 114379, 114383, 114387, - 114391, 114395, 114399, 114403, 114407, 114411, 114415, 114419, 114423, - 114428, 114432, 114436, 114440, 114444, 114448, 114452, 114456, 114460, - 114464, 114471, 114475, 114483, 114487, 114491, 114495, 114499, 114503, - 114507, 114511, 114518, 114522, 114526, 114530, 114534, 114538, 114544, - 114548, 114554, 114558, 114562, 114566, 114570, 114574, 114578, 114582, - 114586, 114590, 114594, 114598, 114602, 114606, 114610, 114614, 114618, - 114622, 114626, 114630, 114638, 114642, 114646, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 114650, 114658, 114666, 114674, 114682, 114690, 114698, 114706, - 114714, 114722, 114730, 114738, 114746, 114754, 114762, 114770, 114778, - 114786, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 114794, 114798, 114803, - 114808, 114813, 114817, 114822, 114827, 114832, 114836, 114841, 114846, - 114850, 114854, 114859, 114863, 114868, 114873, 114877, 114882, 114887, - 114891, 114896, 114901, 114906, 114911, 114916, 114920, 114925, 114930, - 114935, 114939, 114944, 114949, 114954, 114958, 114963, 114968, 114972, - 114976, 114981, 114985, 114990, 114995, 114999, 115004, 115009, 115013, - 115018, 115023, 115028, 115033, 115038, 115042, 115047, 115052, 115057, - 115061, 115066, 115071, 115076, 115080, 115085, 115090, 115094, 115098, - 115103, 115107, 115112, 115117, 115121, 115126, 115131, 115135, 115140, - 115145, 115150, 115155, 115160, 115164, 115169, 115174, 115179, 115183, - 115188, 0, 115193, 115197, 115202, 115207, 115211, 115215, 115220, - 115224, 115229, 115234, 115238, 115243, 115248, 115252, 115257, 115262, - 115267, 115272, 115277, 115282, 115288, 115294, 115300, 115305, 115311, - 115317, 115323, 115328, 115334, 115340, 115345, 115350, 115356, 115361, - 115367, 115373, 115378, 115384, 115390, 115395, 115401, 115407, 115413, - 115419, 115425, 115430, 115436, 115442, 115448, 115453, 115459, 115465, - 115471, 115476, 115482, 115488, 115493, 115498, 115504, 115509, 115515, - 115521, 115526, 115532, 115538, 115543, 115549, 115555, 115561, 115567, - 115573, 0, 115577, 115582, 0, 0, 115587, 0, 0, 115592, 115597, 0, 0, - 115602, 115607, 115611, 115616, 0, 115621, 115626, 115631, 115635, - 115640, 115645, 115650, 115655, 115660, 115664, 115669, 115674, 0, - 115679, 0, 115684, 115689, 115693, 115698, 115703, 115707, 115711, 0, - 115716, 115721, 115726, 115730, 115735, 115740, 115744, 115749, 115754, - 115759, 115764, 115769, 115774, 115780, 115786, 115792, 115797, 115803, - 115809, 115815, 115820, 115826, 115832, 115837, 115842, 115848, 115853, - 115859, 115865, 115870, 115876, 115882, 115887, 115893, 115899, 115905, - 115911, 115917, 115922, 115928, 115934, 115940, 115945, 115951, 115957, - 115963, 115968, 115974, 115980, 115985, 115990, 115996, 116001, 116007, - 116013, 116018, 116024, 116030, 116035, 116041, 116047, 116053, 116059, - 116065, 116069, 0, 116074, 116079, 116083, 116088, 0, 0, 116093, 116098, - 116103, 116107, 116111, 116116, 116120, 116125, 0, 116130, 116135, - 116140, 116144, 116149, 116154, 116159, 0, 116164, 116168, 116173, - 116178, 116183, 116187, 116192, 116197, 116202, 116206, 116211, 116216, - 116220, 116224, 116229, 116233, 116238, 116243, 116247, 116252, 116257, - 116261, 116266, 116271, 116276, 116281, 116286, 116290, 0, 116295, - 116300, 116304, 116309, 0, 116314, 116318, 116323, 116328, 116332, 0, - 116336, 0, 0, 0, 116340, 116345, 116350, 116354, 116359, 116364, 116369, - 0, 116374, 116378, 116383, 116388, 116393, 116397, 116402, 116407, - 116412, 116416, 116421, 116426, 116430, 116434, 116439, 116443, 116448, - 116453, 116457, 116462, 116467, 116471, 116476, 116481, 116486, 116491, - 116496, 116501, 116507, 116513, 116519, 116524, 116530, 116536, 116542, - 116547, 116553, 116559, 116564, 116569, 116575, 116580, 116586, 116592, - 116597, 116603, 116609, 116614, 116620, 116626, 116632, 116638, 116644, - 116649, 116655, 116661, 116667, 116672, 116678, 116684, 116690, 116695, - 116701, 116707, 116712, 116717, 116723, 116728, 116734, 116740, 116745, - 116751, 116757, 116762, 116768, 116774, 116780, 116786, 116792, 116796, - 116801, 116806, 116811, 116815, 116820, 116825, 116830, 116834, 116839, - 116844, 116848, 116852, 116857, 116861, 116866, 116871, 116875, 116880, - 116885, 116889, 116894, 116899, 116904, 116909, 116914, 116918, 116923, - 116928, 116933, 116937, 116942, 116947, 116952, 116956, 116961, 116966, - 116970, 116974, 116979, 116983, 116988, 116993, 116997, 117002, 117007, - 117011, 117016, 117021, 117026, 117031, 117036, 117041, 117047, 117053, - 117059, 117064, 117070, 117076, 117082, 117087, 117093, 117099, 117104, - 117109, 117115, 117120, 117126, 117132, 117137, 117143, 117149, 117154, - 117160, 117166, 117172, 117178, 117184, 117189, 117195, 117201, 117207, - 117212, 117218, 117224, 117230, 117235, 117241, 117247, 117252, 117257, - 117263, 117268, 117274, 117280, 117285, 117291, 117297, 117302, 117308, - 117314, 117320, 117326, 117332, 117337, 117343, 117349, 117355, 117360, - 117366, 117372, 117378, 117383, 117389, 117395, 117400, 117405, 117411, - 117416, 117422, 117428, 117433, 117439, 117445, 117450, 117456, 117462, - 117468, 117474, 117480, 117485, 117491, 117497, 117503, 117508, 117514, - 117520, 117526, 117531, 117537, 117543, 117548, 117553, 117559, 117564, - 117570, 117576, 117581, 117587, 117593, 117598, 117604, 117610, 117616, - 117622, 117628, 117634, 117641, 117648, 117655, 117661, 117668, 117675, - 117682, 117688, 117695, 117702, 117708, 117714, 117721, 117727, 117734, - 117741, 117747, 117754, 117761, 117767, 117774, 117781, 117788, 117795, - 117802, 117808, 117815, 117822, 117829, 117835, 117842, 117849, 117856, - 117862, 117869, 117876, 117882, 117888, 117895, 117901, 117908, 117915, - 117921, 117928, 117935, 117941, 117948, 117955, 117962, 117969, 117976, - 117981, 117987, 117993, 117999, 118004, 118010, 118016, 118022, 118027, - 118033, 118039, 118044, 118049, 118055, 118060, 118066, 118072, 118077, - 118083, 118089, 118094, 118100, 118106, 118112, 118118, 118124, 118129, - 118135, 118141, 118147, 118152, 118158, 118164, 118170, 118175, 118181, - 118187, 118192, 118197, 118203, 118208, 118214, 118220, 118225, 118231, - 118237, 118242, 118248, 118254, 118260, 118266, 118272, 118278, 0, 0, - 118285, 118290, 118295, 118300, 118305, 118310, 118315, 118320, 118325, - 118330, 118335, 118340, 118345, 118350, 118355, 118360, 118365, 118370, - 118376, 118381, 118386, 118391, 118396, 118401, 118406, 118411, 118415, - 118420, 118425, 118430, 118435, 118440, 118445, 118450, 118455, 118460, - 118465, 118470, 118475, 118480, 118485, 118490, 118495, 118500, 118506, - 118511, 118516, 118521, 118526, 118531, 118536, 118541, 118547, 118552, - 118557, 118562, 118567, 118572, 118577, 118582, 118587, 118592, 118597, - 118602, 118607, 118612, 118617, 118622, 118627, 118632, 118637, 118642, - 118647, 118652, 118657, 118662, 118668, 118673, 118678, 118683, 118688, - 118693, 118698, 118703, 118707, 118712, 118717, 118722, 118727, 118732, - 118737, 118742, 118747, 118752, 118757, 118762, 118767, 118772, 118777, - 118782, 118787, 118792, 118798, 118803, 118808, 118813, 118818, 118823, - 118828, 118833, 118839, 118844, 118849, 118854, 118859, 118864, 118869, - 118875, 118881, 118887, 118893, 118899, 118905, 118911, 118917, 118923, - 118929, 118935, 118941, 118947, 118953, 118959, 118965, 118971, 118978, - 118984, 118990, 118996, 119002, 119008, 119014, 119020, 119025, 119031, - 119037, 119043, 119049, 119055, 119061, 119067, 119073, 119079, 119085, - 119091, 119097, 119103, 119109, 119115, 119121, 119127, 119134, 119140, - 119146, 119152, 119158, 119164, 119170, 119176, 119183, 119189, 119195, - 119201, 119207, 119213, 119219, 119225, 119231, 119237, 119243, 119249, - 119255, 119261, 119267, 119273, 119279, 119285, 119291, 119297, 119303, - 119309, 119315, 119321, 119328, 119334, 119340, 119346, 119352, 119358, - 119364, 119370, 119375, 119381, 119387, 119393, 119399, 119405, 119411, - 119417, 119423, 119429, 119435, 119441, 119447, 119453, 119459, 119465, - 119471, 119477, 119484, 119490, 119496, 119502, 119508, 119514, 119520, - 119526, 119533, 119539, 119545, 119551, 119557, 119563, 119569, 119576, - 119583, 119590, 119597, 119604, 119611, 119618, 119625, 119632, 119639, - 119646, 119653, 119660, 119667, 119674, 119681, 119688, 119696, 119703, - 119710, 119717, 119724, 119731, 119738, 119745, 119751, 119758, 119765, - 119772, 119779, 119786, 119793, 119800, 119807, 119814, 119821, 119828, - 119835, 119842, 119849, 119856, 119863, 119870, 119878, 119885, 119892, - 119899, 119906, 119913, 119920, 119927, 119935, 119942, 119949, 119956, - 119963, 119970, 119977, 119982, 0, 0, 119987, 119992, 119996, 120000, - 120004, 120008, 120012, 120016, 120020, 120024, 120028, 120033, 120037, - 120041, 120045, 120049, 120053, 120057, 120061, 120065, 120069, 120074, - 120078, 120082, 120086, 120090, 120094, 120098, 120102, 120106, 120110, - 120116, 120121, 120126, 120131, 120136, 120141, 120146, 120151, 120156, - 120161, 120167, 120172, 120177, 120182, 120187, 120192, 120197, 120202, - 120207, 120212, 120216, 120220, 120224, 0, 120228, 120232, 120236, - 120240, 120244, 120248, 120252, 120256, 120260, 120264, 120268, 120272, - 120276, 120280, 120284, 120288, 120292, 120296, 120300, 120304, 120308, - 120312, 120316, 120320, 120326, 120332, 120338, 0, 120344, 120349, 0, - 120354, 0, 0, 120359, 0, 120364, 120369, 120374, 120379, 120384, 120389, - 120394, 120399, 120404, 120409, 0, 120414, 120419, 120424, 120429, 0, - 120434, 0, 120439, 0, 0, 0, 0, 0, 0, 120444, 0, 0, 0, 0, 120450, 0, - 120456, 0, 120462, 0, 120468, 120474, 120480, 0, 120486, 120492, 0, - 120498, 0, 0, 120504, 0, 120510, 0, 120516, 0, 120522, 0, 120530, 0, - 120538, 120544, 0, 120550, 0, 0, 120556, 120562, 120568, 120574, 0, - 120580, 120586, 120592, 120598, 120604, 120610, 120616, 0, 120622, - 120628, 120634, 120640, 0, 120646, 120652, 120658, 120664, 0, 120672, 0, - 120680, 120686, 120692, 120698, 120704, 120710, 120716, 120722, 120728, - 120734, 0, 120740, 120746, 120752, 120758, 120764, 120770, 120776, - 120782, 120788, 120794, 120800, 120806, 120812, 120818, 120824, 120830, - 120836, 0, 0, 0, 0, 0, 120842, 120847, 120852, 0, 120857, 120862, 120867, - 120872, 120877, 0, 120882, 120887, 120892, 120897, 120902, 120907, - 120912, 120917, 120922, 120927, 120932, 120937, 120942, 120947, 120952, - 120957, 120962, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 114263, 114268, 114275, 114282, 114289, 114296, 114301, 114305, 114311, + 114315, 114319, 114325, 114329, 114333, 114337, 114343, 114350, 114354, + 114358, 114362, 114366, 114370, 114374, 114380, 114384, 114388, 114392, + 114396, 114400, 114404, 114408, 114412, 114416, 114420, 114424, 114428, + 114433, 114437, 114441, 114445, 114449, 114453, 114457, 114461, 114465, + 114469, 114476, 114480, 114488, 114492, 114496, 114500, 114504, 114508, + 114512, 114516, 114523, 114527, 114531, 114535, 114539, 114543, 114549, + 114553, 114559, 114563, 114567, 114571, 114575, 114579, 114583, 114587, + 114591, 114595, 114599, 114603, 114607, 114611, 114615, 114619, 114623, + 114627, 114631, 114635, 114643, 114647, 114651, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 114655, 114663, 114671, 114679, 114687, 114695, 114703, 114711, + 114719, 114727, 114735, 114743, 114751, 114759, 114767, 114775, 114783, + 114791, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 114799, 114803, 114808, + 114813, 114818, 114822, 114827, 114832, 114837, 114841, 114846, 114851, + 114855, 114859, 114864, 114868, 114873, 114878, 114882, 114887, 114892, + 114896, 114901, 114906, 114911, 114916, 114921, 114925, 114930, 114935, + 114940, 114944, 114949, 114954, 114959, 114963, 114968, 114973, 114977, + 114981, 114986, 114990, 114995, 115000, 115004, 115009, 115014, 115018, + 115023, 115028, 115033, 115038, 115043, 115047, 115052, 115057, 115062, + 115066, 115071, 115076, 115081, 115085, 115090, 115095, 115099, 115103, + 115108, 115112, 115117, 115122, 115126, 115131, 115136, 115140, 115145, + 115150, 115155, 115160, 115165, 115169, 115174, 115179, 115184, 115188, + 115193, 0, 115198, 115202, 115207, 115212, 115216, 115220, 115225, + 115229, 115234, 115239, 115243, 115248, 115253, 115257, 115262, 115267, + 115272, 115277, 115282, 115287, 115293, 115299, 115305, 115310, 115316, + 115322, 115328, 115333, 115339, 115345, 115350, 115355, 115361, 115366, + 115372, 115378, 115383, 115389, 115395, 115400, 115406, 115412, 115418, + 115424, 115430, 115435, 115441, 115447, 115453, 115458, 115464, 115470, + 115476, 115481, 115487, 115493, 115498, 115503, 115509, 115514, 115520, + 115526, 115531, 115537, 115543, 115548, 115554, 115560, 115566, 115572, + 115578, 0, 115582, 115587, 0, 0, 115592, 0, 0, 115597, 115602, 0, 0, + 115607, 115612, 115616, 115621, 0, 115626, 115631, 115636, 115640, + 115645, 115650, 115655, 115660, 115665, 115669, 115674, 115679, 0, + 115684, 0, 115689, 115694, 115698, 115703, 115708, 115712, 115716, 0, + 115721, 115726, 115731, 115735, 115740, 115745, 115749, 115754, 115759, + 115764, 115769, 115774, 115779, 115785, 115791, 115797, 115802, 115808, + 115814, 115820, 115825, 115831, 115837, 115842, 115847, 115853, 115858, + 115864, 115870, 115875, 115881, 115887, 115892, 115898, 115904, 115910, + 115916, 115922, 115927, 115933, 115939, 115945, 115950, 115956, 115962, + 115968, 115973, 115979, 115985, 115990, 115995, 116001, 116006, 116012, + 116018, 116023, 116029, 116035, 116040, 116046, 116052, 116058, 116064, + 116070, 116074, 0, 116079, 116084, 116088, 116093, 0, 0, 116098, 116103, + 116108, 116112, 116116, 116121, 116125, 116130, 0, 116135, 116140, + 116145, 116149, 116154, 116159, 116164, 0, 116169, 116173, 116178, + 116183, 116188, 116192, 116197, 116202, 116207, 116211, 116216, 116221, + 116225, 116229, 116234, 116238, 116243, 116248, 116252, 116257, 116262, + 116266, 116271, 116276, 116281, 116286, 116291, 116295, 0, 116300, + 116305, 116309, 116314, 0, 116319, 116323, 116328, 116333, 116337, 0, + 116341, 0, 0, 0, 116345, 116350, 116355, 116359, 116364, 116369, 116374, + 0, 116379, 116383, 116388, 116393, 116398, 116402, 116407, 116412, + 116417, 116421, 116426, 116431, 116435, 116439, 116444, 116448, 116453, + 116458, 116462, 116467, 116472, 116476, 116481, 116486, 116491, 116496, + 116501, 116506, 116512, 116518, 116524, 116529, 116535, 116541, 116547, + 116552, 116558, 116564, 116569, 116574, 116580, 116585, 116591, 116597, + 116602, 116608, 116614, 116619, 116625, 116631, 116637, 116643, 116649, + 116654, 116660, 116666, 116672, 116677, 116683, 116689, 116695, 116700, + 116706, 116712, 116717, 116722, 116728, 116733, 116739, 116745, 116750, + 116756, 116762, 116767, 116773, 116779, 116785, 116791, 116797, 116801, + 116806, 116811, 116816, 116820, 116825, 116830, 116835, 116839, 116844, + 116849, 116853, 116857, 116862, 116866, 116871, 116876, 116880, 116885, + 116890, 116894, 116899, 116904, 116909, 116914, 116919, 116923, 116928, + 116933, 116938, 116942, 116947, 116952, 116957, 116961, 116966, 116971, + 116975, 116979, 116984, 116988, 116993, 116998, 117002, 117007, 117012, + 117016, 117021, 117026, 117031, 117036, 117041, 117046, 117052, 117058, + 117064, 117069, 117075, 117081, 117087, 117092, 117098, 117104, 117109, + 117114, 117120, 117125, 117131, 117137, 117142, 117148, 117154, 117159, + 117165, 117171, 117177, 117183, 117189, 117194, 117200, 117206, 117212, + 117217, 117223, 117229, 117235, 117240, 117246, 117252, 117257, 117262, + 117268, 117273, 117279, 117285, 117290, 117296, 117302, 117307, 117313, + 117319, 117325, 117331, 117337, 117342, 117348, 117354, 117360, 117365, + 117371, 117377, 117383, 117388, 117394, 117400, 117405, 117410, 117416, + 117421, 117427, 117433, 117438, 117444, 117450, 117455, 117461, 117467, + 117473, 117479, 117485, 117490, 117496, 117502, 117508, 117513, 117519, + 117525, 117531, 117536, 117542, 117548, 117553, 117558, 117564, 117569, + 117575, 117581, 117586, 117592, 117598, 117603, 117609, 117615, 117621, + 117627, 117633, 117639, 117646, 117653, 117660, 117666, 117673, 117680, + 117687, 117693, 117700, 117707, 117713, 117719, 117726, 117732, 117739, + 117746, 117752, 117759, 117766, 117772, 117779, 117786, 117793, 117800, + 117807, 117813, 117820, 117827, 117834, 117840, 117847, 117854, 117861, + 117867, 117874, 117881, 117887, 117893, 117900, 117906, 117913, 117920, + 117926, 117933, 117940, 117946, 117953, 117960, 117967, 117974, 117981, + 117986, 117992, 117998, 118004, 118009, 118015, 118021, 118027, 118032, + 118038, 118044, 118049, 118054, 118060, 118065, 118071, 118077, 118082, + 118088, 118094, 118099, 118105, 118111, 118117, 118123, 118129, 118134, + 118140, 118146, 118152, 118157, 118163, 118169, 118175, 118180, 118186, + 118192, 118197, 118202, 118208, 118213, 118219, 118225, 118230, 118236, + 118242, 118247, 118253, 118259, 118265, 118271, 118277, 118283, 0, 0, + 118290, 118295, 118300, 118305, 118310, 118315, 118320, 118325, 118330, + 118335, 118340, 118345, 118350, 118355, 118360, 118365, 118370, 118375, + 118381, 118386, 118391, 118396, 118401, 118406, 118411, 118416, 118420, + 118425, 118430, 118435, 118440, 118445, 118450, 118455, 118460, 118465, + 118470, 118475, 118480, 118485, 118490, 118495, 118500, 118505, 118511, + 118516, 118521, 118526, 118531, 118536, 118541, 118546, 118552, 118557, + 118562, 118567, 118572, 118577, 118582, 118587, 118592, 118597, 118602, + 118607, 118612, 118617, 118622, 118627, 118632, 118637, 118642, 118647, + 118652, 118657, 118662, 118667, 118673, 118678, 118683, 118688, 118693, + 118698, 118703, 118708, 118712, 118717, 118722, 118727, 118732, 118737, + 118742, 118747, 118752, 118757, 118762, 118767, 118772, 118777, 118782, + 118787, 118792, 118797, 118803, 118808, 118813, 118818, 118823, 118828, + 118833, 118838, 118844, 118849, 118854, 118859, 118864, 118869, 118874, + 118880, 118886, 118892, 118898, 118904, 118910, 118916, 118922, 118928, + 118934, 118940, 118946, 118952, 118958, 118964, 118970, 118976, 118983, + 118989, 118995, 119001, 119007, 119013, 119019, 119025, 119030, 119036, + 119042, 119048, 119054, 119060, 119066, 119072, 119078, 119084, 119090, + 119096, 119102, 119108, 119114, 119120, 119126, 119132, 119139, 119145, + 119151, 119157, 119163, 119169, 119175, 119181, 119188, 119194, 119200, + 119206, 119212, 119218, 119224, 119230, 119236, 119242, 119248, 119254, + 119260, 119266, 119272, 119278, 119284, 119290, 119296, 119302, 119308, + 119314, 119320, 119326, 119333, 119339, 119345, 119351, 119357, 119363, + 119369, 119375, 119380, 119386, 119392, 119398, 119404, 119410, 119416, + 119422, 119428, 119434, 119440, 119446, 119452, 119458, 119464, 119470, + 119476, 119482, 119489, 119495, 119501, 119507, 119513, 119519, 119525, + 119531, 119538, 119544, 119550, 119556, 119562, 119568, 119574, 119581, + 119588, 119595, 119602, 119609, 119616, 119623, 119630, 119637, 119644, + 119651, 119658, 119665, 119672, 119679, 119686, 119693, 119701, 119708, + 119715, 119722, 119729, 119736, 119743, 119750, 119756, 119763, 119770, + 119777, 119784, 119791, 119798, 119805, 119812, 119819, 119826, 119833, + 119840, 119847, 119854, 119861, 119868, 119875, 119883, 119890, 119897, + 119904, 119911, 119918, 119925, 119932, 119940, 119947, 119954, 119961, + 119968, 119975, 119982, 119987, 0, 0, 119992, 119997, 120001, 120005, + 120009, 120013, 120017, 120021, 120025, 120029, 120033, 120038, 120042, + 120046, 120050, 120054, 120058, 120062, 120066, 120070, 120074, 120079, + 120083, 120087, 120091, 120095, 120099, 120103, 120107, 120111, 120115, + 120121, 120126, 120131, 120136, 120141, 120146, 120151, 120156, 120161, + 120166, 120172, 120177, 120182, 120187, 120192, 120197, 120202, 120207, + 120212, 120217, 120221, 120225, 120229, 0, 120233, 120237, 120241, + 120245, 120249, 120253, 120257, 120261, 120265, 120269, 120273, 120277, + 120281, 120285, 120289, 120293, 120297, 120301, 120305, 120309, 120313, + 120317, 120321, 120325, 120331, 120337, 120343, 0, 120349, 120354, 0, + 120359, 0, 0, 120364, 0, 120369, 120374, 120379, 120384, 120389, 120394, + 120399, 120404, 120409, 120414, 0, 120419, 120424, 120429, 120434, 0, + 120439, 0, 120444, 0, 0, 0, 0, 0, 0, 120449, 0, 0, 0, 0, 120455, 0, + 120461, 0, 120467, 0, 120473, 120479, 120485, 0, 120491, 120497, 0, + 120503, 0, 0, 120509, 0, 120515, 0, 120521, 0, 120527, 0, 120535, 0, + 120543, 120549, 0, 120555, 0, 0, 120561, 120567, 120573, 120579, 0, + 120585, 120591, 120597, 120603, 120609, 120615, 120621, 0, 120627, + 120633, 120639, 120645, 0, 120651, 120657, 120663, 120669, 0, 120677, 0, + 120685, 120691, 120697, 120703, 120709, 120715, 120721, 120727, 120733, + 120739, 0, 120745, 120751, 120757, 120763, 120769, 120775, 120781, + 120787, 120793, 120799, 120805, 120811, 120817, 120823, 120829, 120835, + 120841, 0, 0, 0, 0, 0, 120847, 120852, 120857, 0, 120862, 120867, 120872, + 120877, 120882, 0, 120887, 120892, 120897, 120902, 120907, 120912, + 120917, 120922, 120927, 120932, 120937, 120942, 120947, 120952, 120957, + 120962, 120967, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 120967, 120977, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 120985, 120992, 120999, 121006, 121013, 121020, 121027, - 121033, 121040, 121047, 121054, 121062, 121070, 121078, 121086, 121094, - 121102, 121109, 121116, 121123, 121131, 121139, 121147, 121155, 121163, - 121171, 121178, 121185, 121192, 121200, 121208, 121216, 121224, 121232, - 121240, 121245, 121250, 121255, 121260, 121265, 121270, 121275, 121280, - 121285, 0, 0, 0, 0, 121290, 121295, 121299, 121303, 121307, 121311, - 121315, 121319, 121323, 121327, 121331, 121335, 121339, 121343, 121347, - 121351, 121355, 121359, 121363, 121367, 121371, 121375, 121379, 121383, - 121387, 121391, 121395, 121399, 121403, 121407, 121411, 121415, 121419, - 121423, 121427, 121431, 121435, 121439, 121443, 121447, 121451, 121455, - 121459, 121463, 121467, 121471, 121475, 121479, 121483, 121487, 121491, - 121496, 121500, 121504, 121508, 121512, 121516, 121520, 121524, 121528, - 121532, 121536, 121540, 121544, 121548, 121552, 121556, 121560, 121564, - 121568, 121572, 121576, 121580, 121584, 121588, 121592, 121596, 121600, - 121604, 121608, 121612, 121616, 121620, 121624, 121628, 121632, 121636, - 121640, 121644, 121648, 121652, 121656, 121660, 121664, 121668, 121672, - 121676, 121680, 121684, 121688, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 121692, 121698, 121707, 121715, 121723, 121732, 121741, 121750, 121759, - 121768, 121777, 121786, 121795, 121804, 121813, 0, 0, 121822, 121831, - 121839, 121847, 121856, 121865, 121874, 121883, 121892, 121901, 121910, - 121919, 121928, 121937, 0, 0, 121946, 121955, 121963, 121971, 121980, - 121989, 121998, 122007, 122016, 122025, 122034, 122043, 122052, 122061, - 122070, 0, 122077, 122086, 122094, 122102, 122111, 122120, 122129, - 122138, 122147, 122156, 122165, 122174, 122183, 122192, 122201, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 120972, 120982, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 120990, 120997, 121004, 121011, 121018, 121025, 121032, + 121038, 121045, 121052, 121059, 121067, 121075, 121083, 121091, 121099, + 121107, 121114, 121121, 121128, 121136, 121144, 121152, 121160, 121168, + 121176, 121183, 121190, 121197, 121205, 121213, 121221, 121229, 121237, + 121245, 121250, 121255, 121260, 121265, 121270, 121275, 121280, 121285, + 121290, 0, 0, 0, 0, 121295, 121300, 121304, 121308, 121312, 121316, + 121320, 121324, 121328, 121332, 121336, 121340, 121344, 121348, 121352, + 121356, 121360, 121364, 121368, 121372, 121376, 121380, 121384, 121388, + 121392, 121396, 121400, 121404, 121408, 121412, 121416, 121420, 121424, + 121428, 121432, 121436, 121440, 121444, 121448, 121452, 121456, 121460, + 121464, 121468, 121472, 121476, 121480, 121484, 121488, 121492, 121496, + 121501, 121505, 121509, 121513, 121517, 121521, 121525, 121529, 121533, + 121537, 121541, 121545, 121549, 121553, 121557, 121561, 121565, 121569, + 121573, 121577, 121581, 121585, 121589, 121593, 121597, 121601, 121605, + 121609, 121613, 121617, 121621, 121625, 121629, 121633, 121637, 121641, + 121645, 121649, 121653, 121657, 121661, 121665, 121669, 121673, 121677, + 121681, 121685, 121689, 121693, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 121697, 121703, 121712, 121720, 121728, 121737, 121746, 121755, 121764, + 121773, 121782, 121791, 121800, 121809, 121818, 0, 0, 121827, 121836, + 121844, 121852, 121861, 121870, 121879, 121888, 121897, 121906, 121915, + 121924, 121933, 121942, 0, 0, 121951, 121960, 121968, 121976, 121985, + 121994, 122003, 122012, 122021, 122030, 122039, 122048, 122057, 122066, + 122075, 0, 122082, 122091, 122099, 122107, 122116, 122125, 122134, + 122143, 122152, 122161, 122170, 122179, 122188, 122197, 122206, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 122208, 122215, 122220, 122224, 122228, 122232, 122237, - 122242, 122247, 122252, 122257, 0, 0, 0, 0, 0, 122262, 122267, 122273, - 122279, 122285, 122290, 122296, 122302, 122308, 122313, 122319, 122325, - 122330, 122335, 122341, 122346, 122352, 122358, 122363, 122369, 122375, - 122380, 122386, 122392, 122398, 122404, 122410, 122421, 122428, 122434, - 122437, 0, 122440, 122445, 122451, 122457, 122463, 122468, 122474, - 122480, 122486, 122491, 122497, 122503, 122508, 122513, 122519, 122524, - 122530, 122536, 122541, 122547, 122553, 122558, 122564, 122570, 122576, - 122582, 122588, 122591, 122594, 122597, 122600, 122603, 122606, 122612, - 122619, 122626, 122633, 122639, 122646, 122653, 122660, 122666, 122673, - 122680, 122686, 122692, 122699, 122705, 122712, 122719, 122725, 122732, - 122739, 122745, 122752, 122759, 122766, 122773, 122780, 122785, 0, 0, 0, - 0, 122790, 122796, 122803, 122810, 122817, 122823, 122830, 122837, - 122844, 122850, 122857, 122864, 122870, 122876, 122883, 122889, 122896, - 122903, 122909, 122916, 122923, 122929, 122936, 122943, 122950, 122957, - 122964, 122973, 122977, 122980, 122983, 122987, 122991, 122994, 122997, - 123000, 123003, 123006, 123009, 123012, 123015, 123018, 123024, 0, 0, 0, + 0, 0, 0, 0, 0, 122213, 122220, 122225, 122229, 122233, 122237, 122242, + 122247, 122252, 122257, 122262, 0, 0, 0, 0, 0, 122267, 122272, 122278, + 122284, 122290, 122295, 122301, 122307, 122313, 122318, 122324, 122330, + 122335, 122340, 122346, 122351, 122357, 122363, 122368, 122374, 122380, + 122385, 122391, 122397, 122403, 122409, 122415, 122426, 122433, 122439, + 122442, 0, 122445, 122450, 122456, 122462, 122468, 122473, 122479, + 122485, 122491, 122496, 122502, 122508, 122513, 122518, 122524, 122529, + 122535, 122541, 122546, 122552, 122558, 122563, 122569, 122575, 122581, + 122587, 122593, 122596, 122599, 122602, 122605, 122608, 122611, 122617, + 122624, 122631, 122638, 122644, 122651, 122658, 122665, 122671, 122678, + 122685, 122691, 122697, 122704, 122710, 122717, 122724, 122730, 122737, + 122744, 122750, 122757, 122764, 122771, 122778, 122785, 122790, 0, 0, 0, + 0, 122795, 122801, 122808, 122815, 122822, 122828, 122835, 122842, + 122849, 122855, 122862, 122869, 122875, 122881, 122888, 122894, 122901, + 122908, 122914, 122921, 122928, 122934, 122941, 122948, 122955, 122962, + 122969, 122978, 122982, 122985, 122988, 122992, 122996, 122999, 123002, + 123005, 123008, 123011, 123014, 123017, 123020, 123023, 123029, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 123027, 123034, 123042, 123050, 123058, 123065, 123073, 123081, 123089, - 123096, 123104, 123112, 123119, 123126, 123134, 123141, 123149, 123157, - 123164, 123172, 123180, 123187, 123195, 123203, 123211, 123219, 123227, - 123231, 123235, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 123238, 123244, - 123250, 123256, 123260, 123266, 123272, 123278, 123284, 123290, 123296, - 123302, 123308, 123314, 123320, 123326, 123332, 123338, 123344, 123350, - 123356, 123362, 123368, 123374, 123380, 123386, 123392, 123398, 123404, - 123410, 123416, 123422, 123428, 123434, 123440, 123446, 123452, 123458, - 123464, 123470, 123476, 123482, 123488, 0, 0, 0, 0, 0, 123494, 123505, - 123516, 123527, 123538, 123549, 123560, 123571, 123582, 0, 0, 0, 0, 0, 0, - 0, 123593, 123597, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 123032, 123039, 123047, 123055, 123063, 123070, 123078, 123086, 123094, + 123101, 123109, 123117, 123124, 123131, 123139, 123146, 123154, 123162, + 123169, 123177, 123185, 123192, 123200, 123208, 123216, 123224, 123232, + 123236, 123240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 123243, 123249, + 123255, 123261, 123265, 123271, 123277, 123283, 123289, 123295, 123301, + 123307, 123313, 123319, 123325, 123331, 123337, 123343, 123349, 123355, + 123361, 123367, 123373, 123379, 123385, 123391, 123397, 123403, 123409, + 123415, 123421, 123427, 123433, 123439, 123445, 123451, 123457, 123463, + 123469, 123475, 123481, 123487, 123493, 0, 0, 0, 0, 0, 123499, 123510, + 123521, 123532, 123543, 123554, 123565, 123576, 123587, 0, 0, 0, 0, 0, 0, + 0, 123598, 123602, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 123601, 123603, 123605, 123609, 123614, 123619, 123621, - 123627, 123632, 123634, 123640, 123644, 123646, 123650, 123656, 123662, - 123668, 123673, 123677, 123684, 123691, 123698, 123703, 123710, 123717, - 123724, 123728, 123734, 123743, 123752, 123759, 123764, 123768, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 123772, 123774, 123776, 123780, - 123784, 123788, 0, 123790, 123792, 123796, 123798, 123800, 123802, - 123804, 123809, 123814, 123816, 123822, 123826, 123830, 123838, 123840, - 123842, 123844, 123846, 123848, 123850, 123852, 123854, 123856, 123858, - 123862, 123866, 123868, 123870, 123872, 123874, 123876, 123881, 123887, - 123891, 123895, 123899, 123903, 123908, 123912, 123914, 123916, 123920, - 123926, 123928, 123930, 123932, 123936, 123945, 123951, 123955, 123959, - 123961, 123963, 123966, 123968, 123970, 123972, 123976, 123978, 123982, - 123987, 123989, 123994, 124000, 124007, 124011, 124015, 124019, 124023, - 124029, 0, 0, 0, 124033, 124035, 124039, 124043, 124045, 124049, 124053, - 124055, 124059, 124061, 124065, 124069, 124073, 124077, 124081, 124085, - 124089, 124093, 124099, 124103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 124107, 124111, 124115, 124119, 124126, 124128, 124132, 124134, 124136, - 124140, 124144, 124148, 124150, 124154, 124158, 124162, 124166, 124170, - 124172, 124176, 124178, 124184, 124187, 124192, 124194, 124196, 124199, - 124201, 124203, 124206, 124213, 124220, 124227, 124232, 124236, 124238, - 124240, 0, 124242, 124244, 124248, 124252, 124256, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 124258, 124262, 124267, 124271, - 124277, 124283, 124285, 124287, 124293, 124295, 124299, 124303, 124305, - 124309, 124311, 124315, 124319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 124323, 124325, 124327, 124329, 124333, 124335, 124337, 124339, - 124341, 124343, 124345, 124347, 124349, 124351, 124353, 124355, 124357, - 124359, 124361, 124363, 124365, 124367, 124369, 124371, 124373, 124375, - 124377, 124381, 124383, 124385, 124387, 124391, 124393, 124397, 124399, - 124401, 124405, 124409, 124415, 124417, 124419, 124421, 124423, 124427, - 124431, 124433, 124437, 124441, 124445, 124449, 124453, 124457, 124461, - 124465, 124469, 124473, 124477, 124481, 124485, 124489, 124493, 124497, - 124501, 0, 124505, 0, 124507, 124509, 124511, 124513, 124515, 124523, - 124531, 124539, 124547, 124552, 124557, 124562, 124566, 124570, 124575, - 124579, 124581, 124585, 124587, 124589, 124591, 124593, 124595, 124597, - 124599, 124603, 124605, 124607, 124609, 124613, 124617, 124621, 124625, - 124629, 124631, 124637, 124643, 124645, 124647, 124649, 124651, 124653, - 124662, 124669, 124676, 124680, 124687, 124692, 124699, 124708, 124713, - 124717, 124721, 124723, 124727, 124729, 124733, 124737, 124739, 124743, - 124747, 124751, 124753, 124755, 124761, 124763, 124765, 124767, 124771, - 124775, 124777, 124781, 124783, 124785, 124788, 124792, 124794, 124798, - 124800, 124802, 124807, 124809, 124813, 124817, 124820, 124824, 124828, - 124832, 124836, 124840, 124844, 124848, 124853, 124857, 124861, 124870, - 124875, 124878, 124880, 124883, 124886, 124891, 124893, 124896, 124901, - 124905, 124908, 124912, 124916, 124919, 124924, 124928, 124932, 124936, - 124940, 124946, 124952, 124958, 124964, 124969, 124980, 124982, 124986, - 124988, 124990, 124994, 124998, 125000, 125004, 125009, 125014, 125020, - 125022, 125026, 125030, 125037, 125044, 125048, 125050, 125052, 125056, - 125058, 125062, 125066, 125070, 125072, 125074, 125081, 125085, 125088, - 125092, 125096, 125100, 125102, 125106, 125108, 125110, 125114, 125116, - 125120, 125124, 125130, 125134, 125138, 125142, 125144, 125147, 125151, - 125158, 125167, 125176, 125184, 125192, 125194, 125198, 125200, 125204, - 125215, 125219, 125225, 125231, 125236, 0, 125238, 125242, 125244, - 125246, 0, 0, 0, 125248, 125253, 125263, 125278, 125290, 125302, 125306, - 125310, 125316, 125318, 125326, 125334, 125336, 125340, 125346, 125352, - 125359, 125366, 125368, 125370, 125373, 125375, 125381, 125383, 125386, - 125390, 125396, 125402, 125413, 125419, 125426, 125434, 125438, 125446, - 125454, 125460, 125466, 125473, 125475, 125479, 125481, 125483, 125488, - 125490, 125492, 125494, 125496, 125500, 125511, 125517, 125521, 125525, - 125529, 125535, 125541, 125547, 125553, 125558, 125563, 125569, 125575, - 125582, 0, 0, 125589, 125594, 125602, 125606, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 125615, 125622, 125629, 125636, 125644, 125652, 125660, 125668, - 125676, 125684, 125692, 125700, 125708, 125714, 125720, 125726, 125732, - 125738, 125744, 125750, 125756, 125762, 125768, 125774, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 123606, 123608, 123610, 123614, 123619, 123624, 123626, + 123632, 123637, 123639, 123645, 123649, 123651, 123655, 123661, 123667, + 123673, 123678, 123682, 123689, 123696, 123703, 123708, 123715, 123722, + 123729, 123733, 123739, 123748, 123757, 123764, 123769, 123773, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 123777, 123779, 123781, 123785, + 123789, 123793, 0, 123795, 123797, 123801, 123803, 123805, 123807, + 123809, 123814, 123819, 123821, 123827, 123831, 123835, 123843, 123845, + 123847, 123849, 123851, 123853, 123855, 123857, 123859, 123861, 123863, + 123867, 123871, 123873, 123875, 123877, 123879, 123881, 123886, 123892, + 123896, 123900, 123904, 123908, 123913, 123917, 123919, 123921, 123925, + 123931, 123933, 123935, 123937, 123941, 123950, 123956, 123960, 123964, + 123966, 123968, 123971, 123973, 123975, 123977, 123981, 123983, 123987, + 123992, 123994, 123999, 124005, 124012, 124016, 124020, 124024, 124028, + 124034, 0, 0, 0, 124038, 124040, 124044, 124048, 124050, 124054, 124058, + 124060, 124064, 124066, 124070, 124074, 124078, 124082, 124086, 124090, + 124094, 124098, 124104, 124108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 124112, 124116, 124120, 124124, 124131, 124133, 124137, 124139, 124141, + 124145, 124149, 124153, 124155, 124159, 124163, 124167, 124171, 124175, + 124177, 124181, 124183, 124189, 124192, 124197, 124199, 124201, 124204, + 124206, 124208, 124211, 124218, 124225, 124232, 124237, 124241, 124243, + 124245, 0, 124247, 124249, 124253, 124257, 124261, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 124263, 124267, 124272, 124276, + 124282, 124288, 124290, 124292, 124298, 124300, 124304, 124308, 124310, + 124314, 124316, 124320, 124324, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 124328, 124330, 124332, 124334, 124338, 124340, 124342, 124344, + 124346, 124348, 124350, 124352, 124354, 124356, 124358, 124360, 124362, + 124364, 124366, 124368, 124370, 124372, 124374, 124376, 124378, 124380, + 124382, 124386, 124388, 124390, 124392, 124396, 124398, 124402, 124404, + 124406, 124410, 124414, 124420, 124422, 124424, 124426, 124428, 124432, + 124436, 124438, 124442, 124446, 124450, 124454, 124458, 124462, 124466, + 124470, 124474, 124478, 124482, 124486, 124490, 124494, 124498, 124502, + 124506, 0, 124510, 0, 124512, 124514, 124516, 124518, 124520, 124528, + 124536, 124544, 124552, 124557, 124562, 124567, 124571, 124575, 124580, + 124584, 124586, 124590, 124592, 124594, 124596, 124598, 124600, 124602, + 124604, 124608, 124610, 124612, 124614, 124618, 124622, 124626, 124630, + 124634, 124636, 124642, 124648, 124650, 124652, 124654, 124656, 124658, + 124667, 124674, 124681, 124685, 124692, 124697, 124704, 124713, 124718, + 124722, 124726, 124728, 124732, 124734, 124738, 124742, 124744, 124748, + 124752, 124756, 124758, 124760, 124766, 124768, 124770, 124772, 124776, + 124780, 124782, 124786, 124788, 124790, 124793, 124797, 124799, 124803, + 124805, 124807, 124812, 124814, 124818, 124822, 124825, 124829, 124833, + 124837, 124841, 124845, 124849, 124853, 124858, 124862, 124866, 124875, + 124880, 124883, 124885, 124888, 124891, 124896, 124898, 124901, 124906, + 124910, 124913, 124917, 124921, 124924, 124929, 124933, 124937, 124941, + 124945, 124951, 124957, 124963, 124969, 124974, 124985, 124987, 124991, + 124993, 124995, 124999, 125003, 125005, 125009, 125014, 125019, 125025, + 125027, 125031, 125035, 125042, 125049, 125053, 125055, 125057, 125061, + 125063, 125067, 125071, 125075, 125077, 125079, 125086, 125090, 125093, + 125097, 125101, 125105, 125107, 125111, 125113, 125115, 125119, 125121, + 125125, 125129, 125135, 125139, 125143, 125147, 125149, 125152, 125156, + 125163, 125172, 125181, 125189, 125197, 125199, 125203, 125205, 125209, + 125220, 125224, 125230, 125236, 125241, 0, 125243, 125247, 125249, + 125251, 0, 0, 0, 125253, 125258, 125268, 125283, 125295, 125307, 125311, + 125315, 125321, 125323, 125331, 125339, 125341, 125345, 125351, 125357, + 125364, 125371, 125373, 125375, 125378, 125380, 125386, 125388, 125391, + 125395, 125401, 125407, 125418, 125424, 125431, 125439, 125443, 125451, + 125459, 125465, 125471, 125478, 125480, 125484, 125486, 125488, 125493, + 125495, 125497, 125499, 125501, 125505, 125516, 125522, 125526, 125530, + 125534, 125540, 125546, 125552, 125558, 125563, 125568, 125574, 125580, + 125587, 0, 0, 125594, 125599, 125607, 125611, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 125620, 125627, 125634, 125641, 125649, 125657, 125665, 125673, + 125681, 125689, 125697, 125705, 125713, 125719, 125725, 125731, 125737, + 125743, 125749, 125755, 125761, 125767, 125773, 125779, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 125780, - 125784, 125788, 125793, 125798, 125800, 125804, 125813, 125821, 125829, - 125842, 125855, 125868, 125875, 125882, 125886, 125895, 125903, 125907, - 125916, 125923, 125927, 125931, 125935, 125939, 125946, 125950, 125954, - 125958, 125962, 125969, 125978, 125987, 125994, 126006, 126018, 126022, - 126026, 126030, 126034, 126038, 126042, 126050, 126058, 126066, 126070, - 126074, 126078, 126082, 126086, 126090, 126096, 126102, 126106, 126117, - 126125, 126129, 126133, 126137, 126141, 126147, 126154, 126165, 126175, - 126185, 126196, 126205, 126216, 126222, 126228, 0, 0, 0, 0, 126234, - 126243, 126250, 126256, 126260, 126264, 126268, 126277, 126289, 126293, - 126300, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 125785, + 125789, 125793, 125798, 125803, 125805, 125809, 125818, 125826, 125834, + 125847, 125860, 125873, 125880, 125887, 125891, 125900, 125908, 125912, + 125921, 125928, 125932, 125936, 125940, 125944, 125951, 125955, 125959, + 125963, 125967, 125974, 125983, 125992, 125999, 126011, 126023, 126027, + 126031, 126035, 126039, 126043, 126047, 126055, 126063, 126071, 126075, + 126079, 126083, 126087, 126091, 126095, 126101, 126107, 126111, 126122, + 126130, 126134, 126138, 126142, 126146, 126152, 126159, 126170, 126180, + 126190, 126201, 126210, 126221, 126227, 126233, 0, 0, 0, 0, 126239, + 126248, 126255, 126261, 126265, 126269, 126273, 126282, 126294, 126298, + 126305, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 126307, 126309, 126311, 126315, 126319, 126323, 126332, 126334, - 126336, 126339, 126341, 126343, 126347, 126349, 126353, 126355, 126359, - 126361, 126363, 126367, 126371, 126377, 126379, 126383, 126385, 126389, - 126393, 126397, 126401, 126403, 126405, 126409, 126413, 126417, 126421, - 126423, 126425, 126427, 126432, 126437, 126440, 126448, 126456, 126458, - 126463, 126466, 126471, 126482, 126489, 126494, 126499, 126501, 126505, - 126507, 126511, 126513, 126517, 126521, 126524, 126527, 126529, 126532, - 126534, 126538, 126540, 126542, 126544, 126548, 126550, 126554, 0, 0, 0, + 0, 0, 126312, 126314, 126316, 126320, 126324, 126328, 126337, 126339, + 126341, 126344, 126346, 126348, 126352, 126354, 126358, 126360, 126364, + 126366, 126368, 126372, 126376, 126382, 126384, 126388, 126390, 126394, + 126398, 126402, 126406, 126408, 126410, 126414, 126418, 126422, 126426, + 126428, 126430, 126432, 126437, 126442, 126445, 126453, 126461, 126463, + 126468, 126471, 126476, 126487, 126494, 126499, 126504, 126506, 126510, + 126512, 126516, 126518, 126522, 126526, 126529, 126532, 126534, 126537, + 126539, 126543, 126545, 126547, 126549, 126553, 126555, 126559, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 126557, 126562, 126567, 126572, 126577, 126582, - 126587, 126594, 126601, 126608, 126615, 126620, 126625, 126630, 126635, - 126642, 126648, 126655, 126662, 126669, 126674, 126679, 126684, 126689, - 126694, 126701, 126708, 126713, 126718, 126725, 126732, 126740, 126748, - 126755, 126762, 126770, 126778, 126786, 126793, 126803, 126814, 126819, - 126826, 126833, 126840, 126848, 126856, 126867, 126875, 126883, 126891, - 126896, 126901, 126906, 126911, 126916, 126921, 126926, 126931, 126936, - 126941, 126946, 126951, 126958, 126963, 126968, 126975, 126980, 126985, - 126990, 126995, 127000, 127005, 127010, 127015, 127020, 127025, 127030, - 127035, 127042, 127050, 127055, 127060, 127067, 127072, 127077, 127082, - 127089, 127094, 127101, 127106, 127113, 127118, 127127, 127136, 127141, - 127146, 127151, 127156, 127161, 127166, 127171, 127176, 127181, 127186, - 127191, 127196, 127201, 127209, 127217, 127222, 127227, 127232, 127237, - 127242, 127248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 127254, 127258, - 127262, 127266, 127270, 127274, 127278, 127282, 127286, 127290, 127294, - 127298, 127302, 127306, 127310, 127314, 127318, 127322, 127326, 127330, - 127334, 127338, 127342, 127346, 127350, 127354, 127358, 127362, 127366, - 127370, 127374, 127378, 127382, 127386, 127390, 127394, 127398, 127402, - 127406, 127410, 127414, 127418, 127422, 127426, 127430, 127434, 127438, - 127442, 127446, 127450, 127454, 127458, 127462, 127466, 127470, 127474, - 127478, 127482, 127486, 127490, 127494, 127498, 127502, 127506, 127510, - 127514, 127518, 127522, 127526, 127530, 127534, 127538, 127542, 127546, - 127550, 127554, 127558, 127562, 127566, 127570, 127574, 127578, 127582, - 127586, 127590, 127594, 127598, 127602, 127606, 127610, 127614, 127618, - 127622, 127626, 127630, 127634, 127638, 127642, 127646, 127650, 127654, - 127658, 127662, 127666, 127670, 127674, 127678, 127682, 127686, 127690, - 127694, 127698, 127702, 127706, 127710, 127714, 127718, 127722, 127726, - 127730, 127734, 127738, 127742, 127746, 127750, 127754, 127758, 127762, - 127766, 127770, 127774, 127778, 127782, 127786, 127790, 127794, 127798, - 127802, 127806, 127810, 127814, 127818, 127822, 127826, 127830, 127834, - 127838, 127842, 127846, 127850, 127854, 127858, 127862, 127866, 127870, - 127874, 127878, 127882, 127886, 127890, 127894, 127898, 127902, 127906, - 127910, 127914, 127918, 127922, 127926, 127930, 127934, 127938, 127942, - 127946, 127950, 127954, 127958, 127962, 127966, 127970, 127974, 127978, - 127982, 127986, 127990, 127994, 127998, 128002, 128006, 128010, 128014, - 128018, 128022, 128026, 128030, 128034, 128038, 128042, 128046, 128050, - 128054, 128058, 128062, 128066, 128070, 128074, 128078, 128082, 128086, - 128090, 128094, 128098, 128102, 128106, 128110, 128114, 128118, 128122, - 128126, 128130, 128134, 128138, 128142, 128146, 128150, 128154, 128158, - 128162, 128166, 128170, 128174, 128178, 128182, 128186, 128190, 128194, - 128198, 128202, 128206, 128210, 128214, 128218, 128222, 128226, 128230, - 128234, 128238, 128242, 128246, 128250, 128254, 128258, 128262, 128266, - 128270, 128274, 128278, 128282, 128286, 128290, 128294, 128298, 128302, - 128306, 128310, 128314, 128318, 128322, 128326, 128330, 128334, 128338, - 128342, 128346, 128350, 128354, 128358, 128362, 128366, 128370, 128374, - 128378, 128382, 128386, 128390, 128394, 128398, 128402, 128406, 128410, - 128414, 128418, 128422, 128426, 128430, 128434, 128438, 128442, 128446, - 128450, 128454, 128458, 128462, 128466, 128470, 128474, 128478, 128482, - 128486, 128490, 128494, 128498, 128502, 128506, 128510, 128514, 128518, - 128522, 128526, 128530, 128534, 128538, 128542, 128546, 128550, 128554, - 128558, 128562, 128566, 128570, 128574, 128578, 128582, 128586, 128590, - 128594, 128598, 128602, 128606, 128610, 128614, 128618, 128622, 128626, - 128630, 128634, 128638, 128642, 128646, 128650, 128654, 128658, 128662, - 128666, 128670, 128674, 128678, 128682, 128686, 128690, 128694, 128698, - 128702, 128706, 128710, 128714, 128718, 128722, 128726, 128730, 128734, - 128738, 128742, 128746, 128750, 128754, 128758, 128762, 128766, 128770, - 128774, 128778, 128782, 128786, 128790, 128794, 128798, 128802, 128806, - 128810, 128814, 128818, 128822, 128826, 128830, 128834, 128838, 128842, - 128846, 128850, 128854, 128858, 128862, 128866, 128870, 128874, 128878, - 128882, 128886, 128890, 128894, 128898, 128902, 128906, 128910, 128914, - 128918, 128922, 128926, 128930, 128934, 128938, 128942, 128946, 128950, - 128954, 128958, 128962, 128966, 128970, 128974, 128978, 128982, 128986, - 128990, 128994, 128998, 129002, 129006, 129010, 129014, 129018, 129022, - 129026, 129030, 129034, 129038, 129042, 129046, 129050, 129054, 129058, - 129062, 129066, 129070, 129074, 129078, 129082, 129086, 129090, 129094, - 129098, 129102, 129106, 129110, 129114, 129118, 129122, 129126, 129130, - 129134, 129138, 129142, 129146, 129150, 129154, 129158, 129162, 129166, - 129170, 129174, 129178, 129182, 129186, 129190, 129194, 129198, 129202, - 129206, 129210, 129214, 129218, 129222, 129226, 129230, 129234, 129238, - 129242, 129246, 129250, 129254, 129258, 129262, 129266, 129270, 129274, - 129278, 129282, 129286, 129290, 129294, 129298, 129302, 129306, 129310, - 129314, 129318, 129322, 129326, 129330, 129334, 129338, 129342, 129346, - 129350, 129354, 129358, 129362, 129366, 129370, 129374, 129378, 129382, - 129386, 129390, 129394, 129398, 129402, 129406, 129410, 129414, 129418, + 0, 0, 0, 0, 0, 0, 0, 126562, 126567, 126572, 126577, 126582, 126587, + 126592, 126599, 126606, 126613, 126620, 126625, 126630, 126635, 126640, + 126647, 126653, 126660, 126667, 126674, 126679, 126684, 126689, 126694, + 126699, 126706, 126713, 126718, 126723, 126730, 126737, 126745, 126753, + 126760, 126767, 126775, 126783, 126791, 126798, 126808, 126819, 126824, + 126831, 126838, 126845, 126853, 126861, 126872, 126880, 126888, 126896, + 126901, 126906, 126911, 126916, 126921, 126926, 126931, 126936, 126941, + 126946, 126951, 126956, 126963, 126968, 126973, 126980, 126985, 126990, + 126995, 127000, 127005, 127010, 127015, 127020, 127025, 127030, 127035, + 127040, 127047, 127055, 127060, 127065, 127072, 127077, 127082, 127087, + 127094, 127099, 127106, 127111, 127118, 127123, 127132, 127141, 127146, + 127151, 127156, 127161, 127166, 127171, 127176, 127181, 127186, 127191, + 127196, 127201, 127206, 127214, 127222, 127227, 127232, 127237, 127242, + 127247, 127253, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 127259, 127263, + 127267, 127271, 127275, 127279, 127283, 127287, 127291, 127295, 127299, + 127303, 127307, 127311, 127315, 127319, 127323, 127327, 127331, 127335, + 127339, 127343, 127347, 127351, 127355, 127359, 127363, 127367, 127371, + 127375, 127379, 127383, 127387, 127391, 127395, 127399, 127403, 127407, + 127411, 127415, 127419, 127423, 127427, 127431, 127435, 127439, 127443, + 127447, 127451, 127455, 127459, 127463, 127467, 127471, 127475, 127479, + 127483, 127487, 127491, 127495, 127499, 127503, 127507, 127511, 127515, + 127519, 127523, 127527, 127531, 127535, 127539, 127543, 127547, 127551, + 127555, 127559, 127563, 127567, 127571, 127575, 127579, 127583, 127587, + 127591, 127595, 127599, 127603, 127607, 127611, 127615, 127619, 127623, + 127627, 127631, 127635, 127639, 127643, 127647, 127651, 127655, 127659, + 127663, 127667, 127671, 127675, 127679, 127683, 127687, 127691, 127695, + 127699, 127703, 127707, 127711, 127715, 127719, 127723, 127727, 127731, + 127735, 127739, 127743, 127747, 127751, 127755, 127759, 127763, 127767, + 127771, 127775, 127779, 127783, 127787, 127791, 127795, 127799, 127803, + 127807, 127811, 127815, 127819, 127823, 127827, 127831, 127835, 127839, + 127843, 127847, 127851, 127855, 127859, 127863, 127867, 127871, 127875, + 127879, 127883, 127887, 127891, 127895, 127899, 127903, 127907, 127911, + 127915, 127919, 127923, 127927, 127931, 127935, 127939, 127943, 127947, + 127951, 127955, 127959, 127963, 127967, 127971, 127975, 127979, 127983, + 127987, 127991, 127995, 127999, 128003, 128007, 128011, 128015, 128019, + 128023, 128027, 128031, 128035, 128039, 128043, 128047, 128051, 128055, + 128059, 128063, 128067, 128071, 128075, 128079, 128083, 128087, 128091, + 128095, 128099, 128103, 128107, 128111, 128115, 128119, 128123, 128127, + 128131, 128135, 128139, 128143, 128147, 128151, 128155, 128159, 128163, + 128167, 128171, 128175, 128179, 128183, 128187, 128191, 128195, 128199, + 128203, 128207, 128211, 128215, 128219, 128223, 128227, 128231, 128235, + 128239, 128243, 128247, 128251, 128255, 128259, 128263, 128267, 128271, + 128275, 128279, 128283, 128287, 128291, 128295, 128299, 128303, 128307, + 128311, 128315, 128319, 128323, 128327, 128331, 128335, 128339, 128343, + 128347, 128351, 128355, 128359, 128363, 128367, 128371, 128375, 128379, + 128383, 128387, 128391, 128395, 128399, 128403, 128407, 128411, 128415, + 128419, 128423, 128427, 128431, 128435, 128439, 128443, 128447, 128451, + 128455, 128459, 128463, 128467, 128471, 128475, 128479, 128483, 128487, + 128491, 128495, 128499, 128503, 128507, 128511, 128515, 128519, 128523, + 128527, 128531, 128535, 128539, 128543, 128547, 128551, 128555, 128559, + 128563, 128567, 128571, 128575, 128579, 128583, 128587, 128591, 128595, + 128599, 128603, 128607, 128611, 128615, 128619, 128623, 128627, 128631, + 128635, 128639, 128643, 128647, 128651, 128655, 128659, 128663, 128667, + 128671, 128675, 128679, 128683, 128687, 128691, 128695, 128699, 128703, + 128707, 128711, 128715, 128719, 128723, 128727, 128731, 128735, 128739, + 128743, 128747, 128751, 128755, 128759, 128763, 128767, 128771, 128775, + 128779, 128783, 128787, 128791, 128795, 128799, 128803, 128807, 128811, + 128815, 128819, 128823, 128827, 128831, 128835, 128839, 128843, 128847, + 128851, 128855, 128859, 128863, 128867, 128871, 128875, 128879, 128883, + 128887, 128891, 128895, 128899, 128903, 128907, 128911, 128915, 128919, + 128923, 128927, 128931, 128935, 128939, 128943, 128947, 128951, 128955, + 128959, 128963, 128967, 128971, 128975, 128979, 128983, 128987, 128991, + 128995, 128999, 129003, 129007, 129011, 129015, 129019, 129023, 129027, + 129031, 129035, 129039, 129043, 129047, 129051, 129055, 129059, 129063, + 129067, 129071, 129075, 129079, 129083, 129087, 129091, 129095, 129099, + 129103, 129107, 129111, 129115, 129119, 129123, 129127, 129131, 129135, + 129139, 129143, 129147, 129151, 129155, 129159, 129163, 129167, 129171, + 129175, 129179, 129183, 129187, 129191, 129195, 129199, 129203, 129207, + 129211, 129215, 129219, 129223, 129227, 129231, 129235, 129239, 129243, + 129247, 129251, 129255, 129259, 129263, 129267, 129271, 129275, 129279, + 129283, 129287, 129291, 129295, 129299, 129303, 129307, 129311, 129315, + 129319, 129323, 129327, 129331, 129335, 129339, 129343, 129347, 129351, + 129355, 129359, 129363, 129367, 129371, 129375, 129379, 129383, 129387, + 129391, 129395, 129399, 129403, 129407, 129411, 129415, 129419, 129423, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 129422, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 129426, 129429, 129433, 129437, 129440, - 129444, 129448, 129451, 129454, 129458, 129462, 129465, 129468, 129471, - 129474, 129479, 129482, 129486, 129489, 129492, 129495, 129498, 129501, - 129504, 129507, 129510, 129513, 129516, 129519, 129523, 129527, 129531, - 129535, 129540, 129545, 129551, 129557, 129563, 129568, 129574, 129580, - 129586, 129591, 129597, 129603, 129608, 129613, 129619, 129624, 129630, - 129636, 129641, 129647, 129653, 129658, 129664, 129670, 129676, 129682, - 129688, 129692, 129697, 129701, 129706, 129710, 129715, 129720, 129726, - 129732, 129738, 129743, 129749, 129755, 129761, 129766, 129772, 129778, - 129783, 129788, 129794, 129799, 129805, 129811, 129816, 129822, 129828, - 129833, 129839, 129845, 129851, 129857, 129863, 129868, 129872, 129877, - 129879, 129883, 129886, 129889, 129892, 129895, 129898, 129901, 129904, - 129907, 129910, 129913, 129916, 129919, 129922, 129925, 129928, 129931, - 129934, 129937, 129940, 129943, 129946, 129949, 129952, 129955, 129958, - 129961, 129964, 129967, 129970, 129973, 129976, 129979, 129982, 129985, - 129988, 129991, 129994, 129997, 130000, 130003, 130006, 130009, 130012, - 130015, 130018, 130021, 130024, 130027, 130030, 130033, 130036, 130039, - 130042, 130045, 130048, 130051, 130054, 130057, 130060, 130063, 130066, - 130069, 130072, 130075, 130078, 130081, 130084, 130087, 130090, 130093, - 130096, 130099, 130102, 130105, 130108, 130111, 130114, 130117, 130120, - 130123, 130126, 130129, 130132, 130135, 130138, 130141, 130144, 130147, - 130150, 130153, 130156, 130159, 130162, 130165, 130168, 130171, 130174, - 130177, 130180, 130183, 130186, 130189, 130192, 130195, 130198, 130201, - 130204, 130207, 130210, 130213, 130216, 130219, 130222, 130225, 130228, - 130231, 130234, 130237, 130240, 130243, 130246, 130249, 130252, 130255, - 130258, 130261, 130264, 130267, 130270, 130273, 130276, 130279, 130282, - 130285, 130288, 130291, 130294, 130297, 130300, 130303, 130306, 130309, - 130312, 130315, 130318, 130321, 130324, 130327, 130330, 130333, 130336, - 130339, 130342, 130345, 130348, 130351, 130354, 130357, 130360, 130363, - 130366, 130369, 130372, 130375, 130378, 130381, 130384, 130387, 130390, - 130393, 130396, 130399, 130402, 130405, 130408, 130411, 130414, 130417, - 130420, 130423, 130426, 130429, 130432, 130435, 130438, 130441, 130444, - 130447, 130450, 130453, 130456, 130459, 130462, 130465, 130468, 130471, - 130474, 130477, 130480, 130483, 130486, 130489, 130492, 130495, 130498, - 130501, 130504, 130507, 130510, 130513, 130516, 130519, 130522, 130525, - 130528, 130531, 130534, 130537, 130540, 130543, 130546, 130549, 130552, - 130555, 130558, 130561, 130564, 130567, 130570, 130573, 130576, 130579, - 130582, 130585, 130588, 130591, 130594, 130597, 130600, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 130603, 130605, 130607, 130612, 130614, - 130619, 130621, 130626, 130628, 130633, 130635, 130637, 130639, 130641, - 130643, 130645, 130647, 130649, 130651, 130654, 130657, 130659, 130661, - 130665, 130668, 130673, 130675, 130677, 130679, 130683, 130686, 130688, - 130692, 130694, 130698, 130700, 130704, 130707, 130709, 130713, 130717, - 130719, 130725, 130727, 130732, 130734, 130739, 130741, 130746, 130748, - 130753, 130755, 130758, 130760, 130764, 130766, 130773, 130775, 130777, - 130779, 130784, 130786, 130788, 130790, 130792, 130794, 130799, 130803, - 130805, 130810, 130814, 130816, 130821, 130825, 130827, 130832, 130836, - 130838, 130840, 130842, 130844, 130848, 130850, 130855, 130857, 130863, - 130865, 130871, 130873, 130875, 130877, 130881, 130883, 130890, 130892, - 130899, 130901, 130906, 130911, 130913, 130919, 130925, 130927, 130933, - 130938, 130940, 130946, 130952, 130954, 130960, 130966, 130968, 130974, - 130978, 130980, 130985, 130987, 130989, 130994, 130996, 130998, 131004, - 131006, 131011, 131015, 131017, 131022, 131026, 131028, 131034, 131036, - 131040, 131042, 131046, 131048, 131055, 131062, 131064, 131071, 131078, - 131080, 131085, 131087, 131094, 131096, 131101, 131103, 131109, 131111, - 131115, 131117, 131123, 131125, 131129, 131131, 131137, 131139, 131141, - 131143, 131148, 131153, 131155, 131159, 131166, 131173, 131178, 131183, - 131195, 131197, 131199, 131201, 131203, 131205, 131207, 131209, 131211, - 131213, 131215, 131217, 131219, 131221, 131223, 131225, 131227, 131229, - 131235, 131242, 131247, 131252, 131263, 131265, 131267, 131269, 131271, - 131273, 131275, 131277, 131279, 131281, 131283, 131285, 131287, 131289, - 131291, 131293, 131295, 131300, 131302, 131304, 131315, 131317, 131319, - 131321, 131323, 131325, 131327, 131329, 131331, 131333, 131335, 131337, - 131339, 131341, 131343, 131345, 131347, 131349, 131351, 131353, 131355, - 131357, 131359, 131361, 131363, 131365, 131367, 131369, 131371, 131373, - 131375, 131377, 131379, 131381, 131383, 131385, 131387, 131389, 131391, - 131393, 131395, 131397, 131399, 131401, 131403, 131405, 131407, 131409, - 131411, 131413, 131415, 131417, 131419, 131421, 131423, 131425, 131427, - 131429, 131431, 131433, 131435, 131437, 131439, 131441, 131443, 131445, - 131447, 131449, 131451, 131453, 131455, 131457, 131459, 131461, 131463, - 131465, 131467, 131469, 131471, 131473, 131475, 131477, 131479, 131481, - 131483, 131485, 131487, 131489, 131491, 131493, 131495, 131497, 131499, - 131501, 131503, 131505, 131507, 131509, 131511, 131513, 131515, 131517, - 131519, 131521, 131523, 131525, 131527, 131529, 131531, 131533, 131535, - 131537, 131539, 131541, 131543, 131545, 131547, 131549, 131551, 131553, - 131555, 131557, 131559, 131561, 131563, 131565, 131567, 131569, 131571, - 131573, 131575, 131577, 131579, 131581, 131583, 131585, 131587, 131589, - 131591, 131593, 131595, 131597, 131599, 131601, 131603, 131605, 131607, - 131609, 131611, 131613, 131615, 131617, 131619, 131621, 131623, 131625, - 131627, 131629, 131631, 131633, 131635, 131637, 131639, 131641, 131643, - 131645, 131647, 131649, 131651, 131653, 131655, 131657, 131659, 131661, - 131663, 131665, 131667, 131669, 131671, 131673, 131675, 131677, 131679, - 131681, 131683, 131685, 131687, 131689, 131691, 131693, 131695, 131697, - 131699, 131701, 131703, 131705, 131707, 131709, 131711, 131713, 131715, - 131717, 131719, 131721, 131723, 131725, 131727, 131729, 131731, 131733, - 131735, 131737, 131739, 131741, 131743, 131745, 131747, 131749, 131751, - 131753, 131755, 131757, 131759, 131761, 131763, 131765, 131767, 131769, - 131771, 131773, 131775, 131777, 131779, 131781, 131783, 131785, 131787, - 131789, 131791, 131793, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 129427, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 129431, 129434, 129438, 129442, 129445, + 129449, 129453, 129456, 129459, 129463, 129467, 129470, 129473, 129476, + 129479, 129484, 129487, 129491, 129494, 129497, 129500, 129503, 129506, + 129509, 129512, 129515, 129518, 129521, 129524, 129528, 129532, 129536, + 129540, 129545, 129550, 129556, 129562, 129568, 129573, 129579, 129585, + 129591, 129596, 129602, 129608, 129613, 129618, 129624, 129629, 129635, + 129641, 129646, 129652, 129658, 129663, 129669, 129675, 129681, 129687, + 129693, 129697, 129702, 129706, 129711, 129715, 129720, 129725, 129731, + 129737, 129743, 129748, 129754, 129760, 129766, 129771, 129777, 129783, + 129788, 129793, 129799, 129804, 129810, 129816, 129821, 129827, 129833, + 129838, 129844, 129850, 129856, 129862, 129868, 129873, 129877, 129882, + 129884, 129888, 129891, 129894, 129897, 129900, 129903, 129906, 129909, + 129912, 129915, 129918, 129921, 129924, 129927, 129930, 129933, 129936, + 129939, 129942, 129945, 129948, 129951, 129954, 129957, 129960, 129963, + 129966, 129969, 129972, 129975, 129978, 129981, 129984, 129987, 129990, + 129993, 129996, 129999, 130002, 130005, 130008, 130011, 130014, 130017, + 130020, 130023, 130026, 130029, 130032, 130035, 130038, 130041, 130044, + 130047, 130050, 130053, 130056, 130059, 130062, 130065, 130068, 130071, + 130074, 130077, 130080, 130083, 130086, 130089, 130092, 130095, 130098, + 130101, 130104, 130107, 130110, 130113, 130116, 130119, 130122, 130125, + 130128, 130131, 130134, 130137, 130140, 130143, 130146, 130149, 130152, + 130155, 130158, 130161, 130164, 130167, 130170, 130173, 130176, 130179, + 130182, 130185, 130188, 130191, 130194, 130197, 130200, 130203, 130206, + 130209, 130212, 130215, 130218, 130221, 130224, 130227, 130230, 130233, + 130236, 130239, 130242, 130245, 130248, 130251, 130254, 130257, 130260, + 130263, 130266, 130269, 130272, 130275, 130278, 130281, 130284, 130287, + 130290, 130293, 130296, 130299, 130302, 130305, 130308, 130311, 130314, + 130317, 130320, 130323, 130326, 130329, 130332, 130335, 130338, 130341, + 130344, 130347, 130350, 130353, 130356, 130359, 130362, 130365, 130368, + 130371, 130374, 130377, 130380, 130383, 130386, 130389, 130392, 130395, + 130398, 130401, 130404, 130407, 130410, 130413, 130416, 130419, 130422, + 130425, 130428, 130431, 130434, 130437, 130440, 130443, 130446, 130449, + 130452, 130455, 130458, 130461, 130464, 130467, 130470, 130473, 130476, + 130479, 130482, 130485, 130488, 130491, 130494, 130497, 130500, 130503, + 130506, 130509, 130512, 130515, 130518, 130521, 130524, 130527, 130530, + 130533, 130536, 130539, 130542, 130545, 130548, 130551, 130554, 130557, + 130560, 130563, 130566, 130569, 130572, 130575, 130578, 130581, 130584, + 130587, 130590, 130593, 130596, 130599, 130602, 130605, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 130608, 130610, 130612, 130617, 130619, + 130624, 130626, 130631, 130633, 130638, 130640, 130642, 130644, 130646, + 130648, 130650, 130652, 130654, 130656, 130659, 130662, 130664, 130666, + 130670, 130673, 130678, 130680, 130682, 130684, 130688, 130691, 130693, + 130697, 130699, 130703, 130705, 130709, 130712, 130714, 130718, 130722, + 130724, 130730, 130732, 130737, 130739, 130744, 130746, 130751, 130753, + 130758, 130760, 130763, 130765, 130769, 130771, 130778, 130780, 130782, + 130784, 130789, 130791, 130793, 130795, 130797, 130799, 130804, 130808, + 130810, 130815, 130819, 130821, 130826, 130830, 130832, 130837, 130841, + 130843, 130845, 130847, 130849, 130853, 130855, 130860, 130862, 130868, + 130870, 130876, 130878, 130880, 130882, 130886, 130888, 130895, 130897, + 130904, 130906, 130911, 130916, 130918, 130924, 130930, 130932, 130938, + 130943, 130945, 130951, 130957, 130959, 130965, 130971, 130973, 130979, + 130983, 130985, 130990, 130992, 130994, 130999, 131001, 131003, 131009, + 131011, 131016, 131020, 131022, 131027, 131031, 131033, 131039, 131041, + 131045, 131047, 131051, 131053, 131060, 131067, 131069, 131076, 131083, + 131085, 131090, 131092, 131099, 131101, 131106, 131108, 131114, 131116, + 131120, 131122, 131128, 131130, 131134, 131136, 131142, 131144, 131146, + 131148, 131153, 131158, 131160, 131169, 131173, 131180, 131187, 131192, + 131197, 131209, 131211, 131213, 131215, 131217, 131219, 131221, 131223, + 131225, 131227, 131229, 131231, 131233, 131235, 131237, 131239, 131241, + 131243, 131249, 131256, 131261, 131266, 131277, 131279, 131281, 131283, + 131285, 131287, 131289, 131291, 131293, 131295, 131297, 131299, 131301, + 131303, 131305, 131307, 131309, 131314, 131316, 131318, 131329, 131331, + 131333, 131335, 131337, 131339, 131341, 131343, 131345, 131347, 131349, + 131351, 131353, 131355, 131357, 131359, 131361, 131363, 131365, 131367, + 131369, 131371, 131373, 131375, 131377, 131379, 131381, 131383, 131385, + 131387, 131389, 131391, 131393, 131395, 131397, 131399, 131401, 131403, + 131405, 131407, 131409, 131411, 131413, 131415, 131417, 131419, 131421, + 131423, 131425, 131427, 131429, 131431, 131433, 131435, 131437, 131439, + 131441, 131443, 131445, 131447, 131449, 131451, 131453, 131455, 131457, + 131459, 131461, 131463, 131465, 131467, 131469, 131471, 131473, 131475, + 131477, 131479, 131481, 131483, 131485, 131487, 131489, 131491, 131493, + 131495, 131497, 131499, 131501, 131503, 131505, 131507, 131509, 131511, + 131513, 131515, 131517, 131519, 131521, 131523, 131525, 131527, 131529, + 131531, 131533, 131535, 131537, 131539, 131541, 131543, 131545, 131547, + 131549, 131551, 131553, 131555, 131557, 131559, 131561, 131563, 131565, + 131567, 131569, 131571, 131573, 131575, 131577, 131579, 131581, 131583, + 131585, 131587, 131589, 131591, 131593, 131595, 131597, 131599, 131601, + 131603, 131605, 131607, 131609, 131611, 131613, 131615, 131617, 131619, + 131621, 131623, 131625, 131627, 131629, 131631, 131633, 131635, 131637, + 131639, 131641, 131643, 131645, 131647, 131649, 131651, 131653, 131655, + 131657, 131659, 131661, 131663, 131665, 131667, 131669, 131671, 131673, + 131675, 131677, 131679, 131681, 131683, 131685, 131687, 131689, 131691, + 131693, 131695, 131697, 131699, 131701, 131703, 131705, 131707, 131709, + 131711, 131713, 131715, 131717, 131719, 131721, 131723, 131725, 131727, + 131729, 131731, 131733, 131735, 131737, 131739, 131741, 131743, 131745, + 131747, 131749, 131751, 131753, 131755, 131757, 131759, 131761, 131763, + 131765, 131767, 131769, 131771, 131773, 131775, 131777, 131779, 131781, + 131783, 131785, 131787, 131789, 131791, 131793, 131795, 131797, 131799, + 131801, 131803, 131805, 131807, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 131795, 131805, 131815, 131824, 131833, 131846, 131859, 131871, 131883, - 131893, 131903, 131913, 131923, 131934, 131945, 131955, 131964, 131973, - 131982, 131995, 132008, 132020, 132032, 132042, 132052, 132062, 132072, - 132081, 132090, 132099, 132108, 132117, 132126, 132135, 132144, 132153, - 132162, 132171, 132180, 132191, 132201, 132211, 132224, 132234, 132247, - 132254, 132264, 132271, 132278, 132285, 132292, 132299, 132306, 132315, - 132324, 132333, 132342, 132351, 132360, 132369, 132378, 132386, 132394, - 132401, 132411, 132420, 132428, 132435, 132445, 132454, 132458, 132462, - 132466, 132470, 132474, 132478, 132482, 132486, 132490, 132494, 132497, - 132501, 132504, 132507, 132511, 132515, 132519, 132523, 132527, 132531, - 132535, 132539, 132543, 132547, 132551, 132555, 132559, 132563, 132567, - 132571, 132575, 132579, 132583, 132587, 132591, 132595, 132599, 132603, - 132607, 132611, 132615, 132619, 132623, 132627, 132631, 132635, 132639, - 132643, 132647, 132651, 132655, 132659, 132663, 132667, 132671, 132675, - 132679, 132683, 132687, 132691, 132695, 132699, 132703, 132707, 132711, - 132715, 132719, 132723, 132727, 132731, 132735, 132739, 132743, 132747, - 132751, 132755, 132759, 132763, 132767, 132771, 132775, 132779, 132783, - 132787, 132791, 132795, 132799, 132803, 132807, 132811, 132815, 132819, - 132823, 132827, 132831, 132835, 132839, 132843, 132847, 132850, 132854, - 132858, 132862, 132866, 132870, 132874, 132878, 132882, 132886, 132890, - 132894, 132898, 132902, 132906, 132910, 132914, 132918, 132922, 132926, - 132930, 132934, 132938, 132942, 132946, 132950, 132954, 132958, 132962, - 132966, 132970, 132974, 132978, 132982, 132986, 132990, 132994, 132998, - 133002, 133006, 133010, 133014, 133018, 133022, 133026, 133030, 133034, - 133038, 133042, 133046, 133050, 133054, 133058, 133062, 133066, 133070, - 133074, 133078, 133082, 133086, 133090, 133094, 133098, 133102, 133106, - 133110, 133114, 133118, 133122, 133126, 133130, 133134, 133138, 133142, - 133146, 133150, 133154, 133158, 133162, 133166, 133170, 133174, 133178, - 133182, 133186, 133190, 133194, 133198, 133202, 133206, 133210, 133214, - 133218, 133222, 133226, 133230, 133234, 133238, 133242, 133246, 133250, - 133254, 133258, 133262, 133266, 133270, 133274, 133278, 133282, 133286, - 133290, 133294, 133298, 133302, 133306, 133310, 133314, 133318, 133322, - 133326, 133330, 133334, 133338, 133342, 133346, 133350, 133354, 133358, - 133362, 133366, 133370, 133374, 133378, 133382, 133386, 133390, 133394, - 133398, 133402, 133406, 133410, 133414, 133418, 133422, 133426, 133430, - 133434, 133438, 133442, 133446, 133450, 133454, 133458, 133462, 133466, - 133470, 133474, 133478, 133482, 133486, 133490, 133494, 133498, 133502, - 133506, 133510, 133514, 133518, 133522, 133526, 133530, 133534, 133538, - 133542, 133546, 133550, 133554, 133558, 133562, 133566, 133570, 133574, - 133578, 133582, 133586, 133590, 133594, 133598, 133602, 133606, 133610, - 133614, 133619, 133624, 133629, 133633, 133639, 133646, 133653, 133660, - 133667, 133674, 133681, 133688, 133695, 133702, 133709, 133716, 133723, - 133730, 133736, 133743, 133750, 133756, 133763, 133770, 133777, 133784, - 133791, 133798, 133805, 133812, 133819, 133826, 133833, 133840, 133847, - 133853, 133859, 133866, 133873, 133882, 133891, 133900, 133909, 133914, - 133919, 133925, 133931, 133937, 133943, 133949, 133955, 133961, 133967, - 133973, 133979, 133985, 133991, 133996, 134002, 134012, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 131809, 131819, 131829, 131838, 131847, 131860, 131873, 131885, 131897, + 131907, 131917, 131927, 131937, 131948, 131959, 131969, 131978, 131987, + 131996, 132009, 132022, 132034, 132046, 132056, 132066, 132076, 132086, + 132095, 132104, 132113, 132122, 132131, 132140, 132149, 132158, 132167, + 132176, 132185, 132194, 132205, 132215, 132225, 132238, 132248, 132261, + 132268, 132278, 132285, 132292, 132299, 132306, 132313, 132320, 132329, + 132338, 132347, 132356, 132365, 132374, 132383, 132392, 132400, 132408, + 132415, 132425, 132434, 132442, 132449, 132459, 132468, 132472, 132476, + 132480, 132484, 132488, 132492, 132496, 132500, 132504, 132508, 132511, + 132515, 132518, 132521, 132525, 132529, 132533, 132537, 132541, 132545, + 132549, 132553, 132557, 132561, 132565, 132569, 132573, 132577, 132581, + 132585, 132589, 132593, 132597, 132601, 132605, 132609, 132613, 132617, + 132621, 132625, 132629, 132633, 132637, 132641, 132645, 132649, 132653, + 132657, 132661, 132665, 132669, 132673, 132677, 132681, 132685, 132689, + 132693, 132697, 132701, 132705, 132709, 132713, 132717, 132721, 132725, + 132729, 132733, 132737, 132741, 132745, 132749, 132753, 132757, 132761, + 132765, 132769, 132773, 132777, 132781, 132785, 132789, 132793, 132797, + 132801, 132805, 132809, 132813, 132817, 132821, 132825, 132829, 132833, + 132837, 132841, 132845, 132849, 132853, 132857, 132861, 132864, 132868, + 132872, 132876, 132880, 132884, 132888, 132892, 132896, 132900, 132904, + 132908, 132912, 132916, 132920, 132924, 132928, 132932, 132936, 132940, + 132944, 132948, 132952, 132956, 132960, 132964, 132968, 132972, 132976, + 132980, 132984, 132988, 132992, 132996, 133000, 133004, 133008, 133012, + 133016, 133020, 133024, 133028, 133032, 133036, 133040, 133044, 133048, + 133052, 133056, 133060, 133064, 133068, 133072, 133076, 133080, 133084, + 133088, 133092, 133096, 133100, 133104, 133108, 133112, 133116, 133120, + 133124, 133128, 133132, 133136, 133140, 133144, 133148, 133152, 133156, + 133160, 133164, 133168, 133172, 133176, 133180, 133184, 133188, 133192, + 133196, 133200, 133204, 133208, 133212, 133216, 133220, 133224, 133228, + 133232, 133236, 133240, 133244, 133248, 133252, 133256, 133260, 133264, + 133268, 133272, 133276, 133280, 133284, 133288, 133292, 133296, 133300, + 133304, 133308, 133312, 133316, 133320, 133324, 133328, 133332, 133336, + 133340, 133344, 133348, 133352, 133356, 133360, 133364, 133368, 133372, + 133376, 133380, 133384, 133388, 133392, 133396, 133400, 133404, 133408, + 133412, 133416, 133420, 133424, 133428, 133432, 133436, 133440, 133444, + 133448, 133452, 133456, 133460, 133464, 133468, 133472, 133476, 133480, + 133484, 133488, 133492, 133496, 133500, 133504, 133508, 133512, 133516, + 133520, 133524, 133528, 133532, 133536, 133540, 133544, 133548, 133552, + 133556, 133560, 133564, 133568, 133572, 133576, 133580, 133584, 133588, + 133592, 133596, 133600, 133604, 133608, 133612, 133616, 133620, 133624, + 133628, 133633, 133638, 133643, 133647, 133653, 133660, 133667, 133674, + 133681, 133688, 133695, 133702, 133709, 133716, 133723, 133730, 133737, + 133744, 133750, 133757, 133764, 133770, 133777, 133784, 133791, 133798, + 133805, 133812, 133819, 133826, 133833, 133840, 133847, 133854, 133861, + 133867, 133873, 133880, 133887, 133896, 133905, 133914, 133923, 133928, + 133933, 133939, 133945, 133951, 133957, 133963, 133969, 133975, 133981, + 133987, 133993, 133999, 134005, 134010, 134016, 134026, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -17117,9 +17119,9 @@ static unsigned int code_hash[] = { 64065, 64072, 64071, 63, 7233, 92212, 0, 41904, 6639, 64064, 983766, 128344, 0, 1176, 118959, 127930, 8162, 128667, 983822, 0, 120519, 66376, 66242, 11415, 4333, 9855, 64112, 64642, 0, 5388, 0, 0, 0, 7714, 66222, - 69902, 7768, 0, 4199, 64708, 983413, 0, 0, 8708, 9560, 64077, 64076, + 69902, 7768, 0, 4199, 64708, 983414, 0, 0, 8708, 9560, 64077, 64076, 8996, 4992, 4471, 42622, 64079, 64078, 92179, 0, 126570, 0, 64615, 41915, - 0, 12075, 70062, 0, 5174, 983215, 0, 127557, 3123, 0, 12685, 127904, + 0, 12075, 70062, 0, 5174, 983216, 0, 127557, 3123, 0, 12685, 127904, 8408, 64704, 0, 0, 9223, 0, 41616, 67999, 73797, 0, 1116, 128204, 43049, 7136, 43050, 8548, 120485, 0, 119061, 917999, 0, 13115, 43675, 64091, 9322, 0, 120595, 64095, 64094, 8111, 66247, 42332, 64089, 64088, 6199, 0, @@ -17127,10 +17129,10 @@ static unsigned int code_hash[] = { 9927, 41335, 4118, 1797, 0, 41334, 0, 46, 43448, 127881, 298, 0, 128114, 0, 42627, 0, 32, 6187, 119052, 11495, 11459, 3665, 983600, 42871, 0, 19923, 74335, 0, 127192, 66239, 42264, 64403, 4412, 7240, 92495, 0, - 983458, 65758, 12750, 4181, 8544, 0, 120199, 917897, 120198, 69809, 6181, + 983459, 65758, 12750, 4181, 8544, 0, 120199, 917897, 120198, 69809, 6181, 65014, 0, 0, 983196, 3639, 119588, 0, 0, 118904, 10073, 120206, 128862, 127186, 68409, 42844, 7498, 1098, 92565, 120205, 0, 983118, 10207, 8789, - 983223, 0, 0, 983464, 9234, 0, 6182, 983466, 65058, 0, 983470, 983467, 0, + 983224, 0, 0, 983465, 9234, 0, 6182, 983467, 65058, 0, 983471, 983468, 0, 5471, 9461, 5573, 118936, 5473, 44, 0, 66244, 94072, 0, 66238, 12844, 0, 1622, 7767, 1900, 41339, 11458, 0, 0, 6581, 5576, 0, 64405, 41337, 0, 41631, 8947, 68390, 127844, 41694, 0, 0, 7908, 0, 10408, 6579, 0, 64618, @@ -17177,7 +17179,7 @@ static unsigned int code_hash[] = { 12084, 127324, 127321, 92279, 127319, 127320, 127317, 127318, 127315, 12283, 1616, 3795, 0, 8795, 66245, 0, 0, 0, 1138, 73905, 12677, 0, 0, 3239, 127311, 0, 0, 8431, 0, 42164, 0, 11778, 12620, 6826, 73773, 119073, - 5040, 0, 0, 983435, 78420, 0, 5039, 0, 78418, 0, 5038, 0, 0, 13184, + 5040, 0, 0, 983436, 78420, 0, 5039, 0, 78418, 0, 5038, 0, 0, 13184, 74293, 0, 64648, 0, 9359, 78416, 0, 128770, 65157, 6662, 0, 0, 3863, 73909, 4835, 55266, 43432, 127822, 4309, 7127, 194569, 0, 194568, 1301, 0, 42589, 569, 0, 73813, 711, 4389, 7133, 0, 73880, 11610, 11368, 0, @@ -17202,16 +17204,16 @@ static unsigned int code_hash[] = { 6183, 0, 0, 0, 120448, 7623, 118925, 118889, 9235, 12760, 74176, 69662, 66445, 43540, 10062, 3743, 11514, 11078, 0, 12136, 0, 126597, 120435, 0, 7726, 0, 19922, 267, 3393, 42198, 1371, 194849, 69233, 2458, 0, 6201, 0, - 41074, 4266, 10652, 41612, 41077, 3402, 9050, 3398, 0, 983340, 0, 3391, + 41074, 4266, 10652, 41612, 41077, 3402, 9050, 3398, 0, 983341, 0, 3391, 41075, 2476, 0, 128017, 0, 10625, 0, 12767, 13017, 78743, 64261, 64934, - 127537, 13014, 13013, 0, 6673, 0, 0, 0, 12438, 0, 983334, 0, 983871, + 127537, 13014, 13013, 0, 6673, 0, 0, 0, 12438, 0, 983335, 0, 983871, 126638, 9053, 13015, 74523, 0, 704, 66215, 6195, 983819, 6660, 78758, - 917760, 917793, 42212, 12629, 11435, 0, 55256, 65538, 0, 127940, 983333, + 917760, 917793, 42212, 12629, 11435, 0, 55256, 65538, 0, 127940, 983334, 74547, 126585, 65448, 78100, 12948, 119001, 195002, 119238, 195004, 78099, 127085, 0, 128320, 4287, 8276, 4902, 1131, 0, 78458, 66728, 1816, 0, 42533, 168, 42845, 4898, 64298, 983141, 0, 4901, 1821, 0, 578, 3653, 0, 791, 9162, 6977, 0, 78889, 74561, 0, 73731, 8354, 43590, 119303, - 983441, 7557, 119339, 119301, 8234, 7241, 0, 120671, 119167, 194996, + 983442, 7557, 119339, 119301, 8234, 7241, 0, 120671, 119167, 194996, 12811, 65925, 3946, 78078, 10998, 78080, 673, 194867, 64397, 128276, 74599, 78449, 8890, 194977, 194976, 2448, 78085, 10267, 8424, 2452, 78083, 128824, 8729, 78456, 0, 7845, 917917, 71302, 4408, 4122, 6772, @@ -17267,12 +17269,12 @@ static unsigned int code_hash[] = { 194587, 0, 1211, 0, 0, 0, 118832, 12318, 0, 0, 68005, 10622, 983770, 0, 78654, 6566, 78659, 0, 73780, 119196, 64864, 0, 78660, 0, 8284, 13081, 0, 3589, 42051, 4035, 6492, 92236, 4265, 6642, 3977, 74186, 41778, 836, - 119216, 2488, 0, 4582, 0, 0, 41777, 12926, 983369, 7528, 10550, 0, 92706, + 119216, 2488, 0, 4582, 0, 0, 41777, 12926, 983370, 7528, 10550, 0, 92706, 0, 10961, 0, 1374, 64878, 119014, 0, 42389, 41374, 2286, 0, 78492, 41377, 127909, 0, 400, 12597, 120586, 0, 0, 6661, 983145, 64827, 0, 73817, 390, - 0, 71301, 983853, 3473, 7718, 0, 0, 0, 55285, 0, 0, 0, 11969, 983382, - 127841, 6365, 1887, 6763, 983362, 8080, 7006, 0, 983363, 6757, 64351, - 1544, 0, 6766, 64677, 120716, 983364, 6146, 0, 771, 983365, 0, 12812, + 0, 71301, 983853, 3473, 7718, 0, 0, 0, 55285, 0, 0, 0, 11969, 983383, + 127841, 6365, 1887, 6763, 983363, 8080, 7006, 0, 983364, 6757, 64351, + 1544, 0, 6766, 64677, 120716, 983365, 6146, 0, 771, 983366, 0, 12812, 13168, 42272, 12200, 917927, 7904, 0, 953, 12917, 119560, 12300, 0, 11491, 9724, 10341, 983764, 9524, 7490, 11389, 7489, 3379, 0, 7487, 0, 471, 7484, 7482, 6753, 7480, 5764, 7478, 7477, 6501, 7475, 6918, 7473, @@ -17286,11 +17288,11 @@ static unsigned int code_hash[] = { 118928, 1118, 71334, 0, 0, 1081, 7436, 68420, 7252, 0, 5996, 69921, 4903, 0, 41386, 5162, 119189, 1330, 0, 7139, 0, 12047, 41384, 0, 0, 1848, 4334, 6324, 41975, 64777, 10674, 12308, 12186, 0, 0, 983732, 12715, 68002, - 983471, 126630, 2018, 66672, 41979, 66685, 119157, 68000, 92464, 0, + 983472, 126630, 2018, 66672, 41979, 66685, 119157, 68000, 92464, 0, 126984, 68001, 9334, 92705, 92315, 70101, 7975, 0, 77957, 0, 66621, 4884, 66597, 69732, 0, 0, 6313, 65513, 69857, 0, 0, 0, 2345, 43697, 463, 0, 0, - 119607, 3117, 5460, 0, 0, 983379, 0, 42279, 194577, 0, 78415, 0, 195008, - 983376, 13248, 0, 0, 0, 0, 0, 0, 5663, 0, 0, 0, 0, 2482, 1471, 0, 0, + 119607, 3117, 5460, 0, 0, 983380, 0, 42279, 194577, 0, 78415, 0, 195008, + 983377, 13248, 0, 0, 0, 0, 0, 0, 5663, 0, 0, 0, 0, 2482, 1471, 0, 0, 42247, 12378, 73925, 69664, 0, 12374, 0, 0, 0, 983685, 2460, 0, 11944, 12376, 127868, 64679, 0, 12380, 10557, 64473, 5870, 0, 2024, 127180, 0, 0, 539, 0, 127765, 94052, 3853, 65180, 127923, 120796, 120245, 92324, 0, @@ -17298,20 +17300,20 @@ static unsigned int code_hash[] = { 69633, 120089, 12470, 0, 74189, 2742, 12476, 11798, 10946, 127310, 5000, 0, 983579, 0, 69672, 8213, 74017, 7771, 6161, 68018, 6709, 0, 78885, 983699, 127971, 120582, 78547, 0, 10301, 10333, 10397, 0, 0, 73791, 0, 0, - 0, 0, 119123, 4014, 12842, 73952, 12015, 127290, 8275, 3893, 983256, 0, + 0, 0, 119123, 4014, 12842, 73952, 12015, 127290, 8275, 3893, 983257, 0, 12210, 7221, 42147, 0, 74550, 74465, 64747, 118841, 0, 12516, 4444, 0, 92271, 74537, 10892, 8231, 0, 6473, 41968, 78388, 41973, 3591, 41969, 0, 2453, 128549, 92666, 64705, 0, 0, 10349, 10413, 43591, 41962, 3202, 74353, 0, 8316, 0, 0, 94060, 687, 0, 0, 0, 1840, 0, 68671, 119809, 4883, 285, 4723, 70099, 92692, 4459, 74577, 42921, 41720, 11089, 240, 19906, 0, - 42323, 0, 9743, 120232, 13134, 126535, 0, 0, 0, 0, 42634, 983335, 43437, + 42323, 0, 9743, 120232, 13134, 126535, 0, 0, 0, 0, 42634, 983336, 43437, 3081, 11463, 120154, 0, 0, 10445, 0, 0, 66717, 2614, 9125, 119023, 1729, 0, 120236, 65221, 63883, 43334, 64852, 0, 65194, 66201, 0, 66578, 5001, 41879, 74427, 4121, 5003, 884, 66700, 63879, 4943, 5150, 73889, 74182, 127915, 643, 3086, 0, 42448, 42299, 58, 0, 917952, 120083, 63873, 8491, 0, 0, 0, 4530, 42409, 7126, 194575, 2721, 120074, 119096, 19929, 0, 194574, 0, 4242, 4264, 120077, 120530, 66179, 42412, 65941, 13114, 64522, - 10740, 3094, 0, 9754, 119102, 4437, 73948, 127074, 983232, 55280, 42174, + 10740, 3094, 0, 9754, 119102, 4437, 73948, 127074, 983233, 55280, 42174, 194925, 42430, 0, 0, 42355, 66026, 4306, 41380, 68432, 92586, 0, 66667, 127309, 0, 126521, 42200, 42566, 0, 0, 5088, 6948, 0, 8524, 0, 0, 12385, 0, 0, 69646, 1386, 64580, 11480, 6116, 65039, 65038, 12392, 65036, 8064, @@ -17337,7 +17339,7 @@ static unsigned int code_hash[] = { 917776, 65148, 12433, 917781, 127276, 917779, 12431, 8668, 12434, 983826, 917782, 5999, 0, 7712, 12432, 128243, 43653, 1726, 1015, 0, 8212, 0, 128014, 42423, 119066, 0, 128108, 66709, 0, 8811, 927, 0, 0, 12436, - 983239, 42021, 0, 0, 1299, 12240, 42350, 65143, 0, 195016, 0, 78197, + 983240, 42021, 0, 0, 1299, 12240, 42350, 65143, 0, 195016, 0, 78197, 11348, 0, 78037, 9194, 983184, 0, 19914, 12179, 983803, 2296, 194923, 63836, 63832, 917773, 10967, 63816, 2594, 3444, 63817, 64651, 0, 41503, 127478, 11265, 0, 120756, 194922, 0, 5664, 3972, 0, 0, 0, 128508, 12416, @@ -17348,7 +17350,7 @@ static unsigned int code_hash[] = { 9171, 12741, 11400, 71305, 194799, 0, 128239, 0, 128881, 119604, 127523, 120190, 194773, 67608, 128214, 42368, 0, 7715, 3881, 41487, 12118, 42514, 68651, 0, 983886, 3009, 41476, 41489, 69825, 3007, 1448, 3018, 194809, - 3889, 8521, 5083, 5082, 119859, 120184, 8519, 983235, 3014, 5081, 65853, + 3889, 8521, 5083, 5082, 119859, 120184, 8519, 983236, 3014, 5081, 65853, 120715, 0, 68014, 69951, 5079, 64802, 42210, 4597, 65532, 11828, 120185, 12371, 0, 8407, 0, 10805, 8518, 10779, 120188, 71303, 983924, 12367, 42170, 0, 92557, 629, 1924, 0, 12037, 74366, 5987, 8462, 8005, 12365, @@ -17400,7 +17402,7 @@ static unsigned int code_hash[] = { 9594, 0, 0, 43527, 0, 727, 194703, 195023, 5805, 0, 6726, 0, 42176, 12370, 11655, 119095, 10591, 2280, 0, 12372, 120642, 120307, 0, 92343, 0, 12366, 10963, 6066, 1329, 0, 3052, 9220, 0, 64478, 194701, 10803, 4132, - 120306, 68474, 92473, 0, 983305, 74837, 120155, 1499, 0, 8055, 42740, + 120306, 68474, 92473, 0, 983306, 74837, 120155, 1499, 0, 8055, 42740, 63965, 0, 63962, 74042, 8924, 43123, 5988, 3660, 63969, 11781, 42718, 8788, 1357, 64851, 65743, 0, 8774, 0, 127086, 9941, 120172, 0, 1933, 69655, 9564, 0, 92435, 73866, 0, 0, 2487, 67614, 3121, 1804, 3311, 67615, @@ -17452,7 +17454,7 @@ static unsigned int code_hash[] = { 64436, 3601, 195094, 128073, 983562, 609, 11555, 983099, 12496, 127839, 74181, 4343, 12505, 0, 127863, 0, 11377, 239, 0, 637, 0, 0, 42671, 0, 0, 0, 43565, 71306, 126493, 12696, 128256, 0, 94062, 12929, 0, 712, 0, 4197, - 983204, 42818, 126632, 0, 120490, 0, 119137, 1506, 43562, 0, 92491, 0, + 983205, 42818, 126632, 0, 120490, 0, 119137, 1506, 43562, 0, 92491, 0, 12651, 0, 64628, 74517, 12058, 74084, 917838, 7494, 0, 4924, 65592, 118844, 0, 127088, 355, 9719, 127087, 13066, 64796, 0, 0, 12033, 42178, 0, 69760, 42571, 92635, 0, 0, 0, 0, 0, 127176, 3178, 0, 0, 92704, 0, @@ -17485,7 +17487,7 @@ static unsigned int code_hash[] = { 66489, 224, 0, 68670, 9332, 4966, 68677, 0, 68644, 0, 3841, 68634, 0, 10732, 68640, 850, 4972, 0, 12890, 2909, 68619, 44008, 68627, 983709, 11544, 10203, 9608, 0, 0, 11962, 194694, 12507, 1196, 128687, 128311, - 777, 120187, 4375, 65271, 67678, 0, 12198, 0, 64824, 119343, 983230, + 777, 120187, 4375, 65271, 67678, 0, 12198, 0, 64824, 119343, 983231, 9454, 63778, 8658, 42528, 78000, 2705, 917975, 41520, 0, 0, 11986, 7765, 42502, 8280, 74520, 2701, 0, 127002, 5767, 0, 0, 9809, 8353, 63747, 66701, 63772, 983805, 63745, 1748, 63770, 0, 0, 0, 65542, 63766, 55244, @@ -17495,7 +17497,7 @@ static unsigned int code_hash[] = { 10996, 92247, 1922, 0, 12498, 10987, 69936, 69939, 3894, 65543, 0, 194842, 983588, 493, 0, 43197, 1717, 4228, 479, 10303, 74020, 0, 917935, 10335, 3520, 917932, 12490, 64315, 0, 127039, 12493, 6233, 42681, 1002, - 12491, 0, 64911, 92615, 2096, 65120, 0, 78219, 983081, 11611, 11632, + 12491, 0, 64911, 92615, 2096, 65120, 0, 78219, 983081, 8378, 11632, 127041, 66213, 63864, 66221, 66226, 66229, 13218, 66231, 66216, 8507, 66236, 66211, 66218, 92672, 66240, 78041, 66233, 8928, 983552, 7909, 66234, 11605, 63759, 983645, 66208, 73999, 63799, 63803, 244, 11542, @@ -17515,7 +17517,7 @@ static unsigned int code_hash[] = { 9382, 9379, 9380, 9377, 9378, 9375, 9376, 1683, 9374, 983769, 9372, 12444, 0, 0, 13016, 8210, 983949, 42029, 11079, 12331, 43451, 42032, 8744, 726, 0, 983828, 4155, 0, 0, 42030, 5007, 12522, 43088, 0, 4951, - 127805, 127240, 0, 9922, 43309, 983832, 12525, 983463, 12016, 65770, + 127805, 127240, 0, 9922, 43309, 983832, 12525, 983464, 12016, 65770, 9548, 67665, 403, 78230, 12503, 0, 0, 11030, 0, 92567, 65691, 63998, 1819, 10496, 0, 0, 119920, 0, 194668, 0, 12506, 0, 12231, 0, 12500, 44023, 12509, 64393, 78830, 3389, 10589, 6608, 41047, 120321, 78395, @@ -17557,7 +17559,7 @@ static unsigned int code_hash[] = { 13043, 8056, 92494, 65681, 208, 127382, 41514, 0, 0, 0, 10699, 6408, 92227, 7825, 5661, 0, 120630, 3603, 41109, 2398, 3548, 126596, 0, 119933, 0, 3115, 9918, 0, 11321, 42912, 0, 0, 194726, 4876, 65804, 0, 0, 43468, - 983266, 41558, 41471, 73950, 8158, 9944, 41472, 120298, 13051, 78689, + 983267, 41558, 41471, 73950, 8158, 9944, 41472, 120298, 13051, 78689, 3143, 194674, 6701, 41559, 1896, 66256, 13052, 194680, 5665, 0, 119071, 7025, 63974, 0, 74352, 74161, 4154, 9863, 43550, 12310, 5662, 42382, 194686, 73924, 1121, 78319, 63959, 0, 9942, 13231, 0, 64752, 4732, @@ -17587,7 +17589,7 @@ static unsigned int code_hash[] = { 6153, 2867, 194708, 66312, 698, 128007, 194606, 10356, 70017, 194713, 651, 12641, 0, 0, 0, 0, 41552, 65115, 78465, 78467, 78463, 78464, 128851, 78461, 194697, 74356, 64945, 4716, 43277, 0, 78474, 12340, 120568, 0, - 194700, 55264, 41211, 120676, 8703, 5462, 917629, 983487, 10101, 0, + 194700, 55264, 41211, 120676, 8703, 5462, 917629, 983488, 10101, 0, 70049, 8479, 4151, 41933, 0, 0, 66254, 120821, 0, 0, 128654, 0, 119194, 74050, 92701, 0, 0, 0, 0, 0, 12278, 0, 0, 0, 2700, 12576, 7842, 12899, 0, 0, 2699, 0, 73845, 2985, 92568, 126475, 917845, 12192, 119314, 0, 119312, @@ -17602,8 +17604,8 @@ static unsigned int code_hash[] = { 9632, 92323, 74761, 64323, 127335, 0, 0, 0, 310, 0, 41281, 10976, 0, 71325, 0, 74266, 10054, 6497, 8574, 0, 9012, 19958, 74420, 65089, 13215, 12730, 65163, 74044, 374, 43195, 816, 120161, 0, 0, 41934, 7465, 0, - 128168, 983260, 4715, 6101, 94106, 41936, 0, 4879, 0, 65446, 0, 307, - 127147, 9585, 5374, 983259, 128059, 0, 0, 126618, 120390, 0, 65567, + 128168, 983261, 4715, 6101, 94106, 41936, 0, 4879, 0, 65446, 0, 307, + 127147, 9585, 5374, 983260, 128059, 0, 0, 126618, 120390, 0, 65567, 120614, 1929, 0, 12142, 0, 12236, 41419, 194618, 120610, 12982, 194623, 5378, 78791, 128679, 41421, 0, 4462, 0, 126599, 128092, 821, 0, 2498, 5800, 120157, 983115, 1760, 2421, 4469, 2324, 828, 3611, 78400, 757, @@ -17620,7 +17622,7 @@ static unsigned int code_hash[] = { 77950, 194578, 7074, 92648, 194579, 194582, 11414, 128868, 2531, 13034, 0, 0, 4211, 1259, 7517, 0, 0, 194561, 40996, 13037, 7092, 641, 5219, 94034, 194566, 11064, 41129, 0, 42850, 13035, 9075, 92387, 5466, 128153, - 0, 64098, 65793, 4535, 194573, 4271, 78417, 128357, 6769, 41410, 983444, + 0, 64098, 65793, 4535, 194573, 4271, 78417, 128357, 6769, 41410, 983445, 64262, 6767, 41407, 0, 0, 6755, 118864, 9046, 127934, 126608, 0, 0, 0, 0, 67675, 0, 0, 0, 64338, 2563, 13033, 247, 118915, 0, 12338, 4651, 69895, 11270, 0, 0, 11933, 0, 0, 41903, 43447, 11001, 0, 42255, 0, 92661, 69821, @@ -17650,7 +17652,7 @@ static unsigned int code_hash[] = { 1091, 12638, 7977, 4501, 41099, 0, 66309, 0, 0, 1494, 983146, 126613, 0, 11693, 126513, 10494, 92655, 65872, 12363, 11386, 0, 0, 0, 0, 64582, 0, 73794, 0, 8022, 0, 120462, 74106, 12413, 94069, 917994, 917993, 917995, - 5570, 1881, 7210, 0, 1012, 43752, 0, 120709, 7208, 66442, 5569, 983236, + 5570, 1881, 7210, 0, 1012, 43752, 0, 120709, 7208, 66442, 5569, 983237, 42339, 0, 6063, 0, 78383, 119594, 6053, 65602, 0, 92201, 64727, 9160, 194827, 0, 0, 92180, 10503, 118810, 6055, 3870, 4279, 8490, 120114, 4319, 64786, 8602, 120110, 11326, 92204, 983116, 0, 120119, 78333, 120117, @@ -17658,7 +17660,7 @@ static unsigned int code_hash[] = { 120108, 42085, 10107, 42159, 42870, 120101, 589, 7050, 983791, 43281, 10233, 41263, 66251, 65729, 66253, 126497, 74099, 42645, 0, 194815, 8583, 0, 5847, 6928, 128074, 0, 0, 0, 0, 66592, 12204, 917962, 19966, 77856, - 42561, 120626, 983245, 0, 8120, 120701, 0, 0, 128012, 41063, 0, 10664, 0, + 42561, 120626, 983246, 0, 8120, 120701, 0, 0, 128012, 41063, 0, 10664, 0, 8369, 0, 4551, 194964, 3369, 0, 0, 9673, 66334, 65580, 10478, 118960, 12517, 557, 9457, 12034, 983662, 6355, 12519, 41004, 0, 195025, 74094, 0, 0, 77970, 983560, 0, 128175, 12111, 3927, 0, 12515, 1474, 67893, 5492, @@ -17681,7 +17683,7 @@ static unsigned int code_hash[] = { 73898, 11979, 70051, 118900, 917894, 0, 9635, 12600, 8871, 0, 0, 0, 6469, 74227, 0, 65304, 4679, 10230, 64300, 64867, 3427, 4240, 0, 0, 0, 0, 42916, 0, 0, 0, 7282, 78728, 65733, 4445, 127138, 128082, 3494, 74606, - 6555, 0, 77976, 0, 0, 78566, 0, 983189, 65898, 983238, 65312, 5447, 0, + 6555, 0, 77976, 0, 0, 78566, 0, 983189, 65898, 983239, 65312, 5447, 0, 12895, 65593, 4010, 0, 41106, 0, 64448, 0, 41105, 0, 65820, 6232, 0, 128280, 0, 43608, 119091, 0, 6538, 4335, 78364, 3941, 41122, 11061, 78363, 64892, 9113, 1954, 12155, 983665, 42878, 11500, 0, 0, 74578, 0, @@ -17695,9 +17697,9 @@ static unsigned int code_hash[] = { 11428, 1730, 2457, 917808, 19918, 10469, 0, 0, 7703, 8840, 8035, 0, 0, 92230, 0, 6129, 0, 128528, 128268, 0, 7874, 8681, 119092, 0, 13136, 0, 0, 70102, 63886, 118881, 9605, 71308, 13220, 128776, 120274, 5514, 0, 9228, - 0, 0, 0, 5240, 9811, 10012, 3096, 0, 0, 983343, 66676, 65873, 0, 0, 0, + 0, 0, 0, 5240, 9811, 10012, 3096, 0, 0, 983344, 66676, 65873, 0, 0, 0, 9501, 0, 1272, 64536, 65465, 64654, 7467, 0, 1467, 10158, 10040, 0, 9519, - 0, 917812, 0, 118899, 12193, 0, 0, 0, 0, 983345, 19935, 0, 92162, 69676, + 0, 917812, 0, 118899, 12193, 0, 0, 0, 0, 983346, 19935, 0, 92162, 69676, 0, 0, 0, 5275, 0, 0, 8637, 0, 0, 3789, 63880, 11471, 43554, 65862, 11474, 66332, 66603, 128138, 2426, 12042, 92194, 983902, 9537, 3961, 12115, 77953, 2605, 4500, 64561, 55224, 4981, 0, 0, 63876, 11667, 42686, 77973, @@ -17748,14 +17750,14 @@ static unsigned int code_hash[] = { 7142, 119881, 12350, 65554, 119882, 119877, 119876, 12785, 63863, 43795, 7770, 10712, 64853, 12686, 118916, 42375, 0, 127238, 66352, 10470, 0, 11059, 10791, 917944, 450, 119328, 0, 10432, 12097, 5450, 64691, 1233, 0, - 44009, 78284, 66338, 0, 0, 1839, 118799, 983217, 10927, 1701, 983655, + 44009, 78284, 66338, 0, 0, 1839, 118799, 983218, 10927, 1701, 983655, 2388, 41749, 41761, 5453, 8361, 119865, 41758, 5444, 41763, 64889, 7143, 92493, 78677, 0, 92429, 78174, 66432, 8801, 3053, 4340, 983044, 0, 65812, 917831, 0, 41824, 67985, 120203, 194800, 194803, 42700, 194805, 127980, 194807, 78676, 92356, 194808, 0, 0, 4493, 4336, 0, 2314, 43602, 78826, 119325, 194811, 42439, 64638, 42327, 43528, 4489, 71331, 0, 194793, 1912, 42385, 10306, 10370, 0, 0, 8867, 10250, 10258, 2712, 1635, 78821, 1410, - 92671, 983244, 118878, 0, 0, 9919, 120528, 559, 128157, 41825, 127975, + 92671, 983245, 118878, 0, 0, 9919, 120528, 559, 128157, 41825, 127975, 78188, 4892, 74016, 194781, 6542, 41957, 128865, 5777, 0, 759, 65749, 2079, 65248, 12788, 64487, 64552, 0, 10223, 42062, 0, 0, 126573, 3668, 65754, 43560, 12226, 67991, 65149, 2340, 41959, 194786, 194785, 194788, @@ -17765,7 +17767,7 @@ static unsigned int code_hash[] = { 42809, 42807, 0, 120046, 10198, 4150, 64371, 8318, 41790, 67976, 41898, 2360, 41794, 917942, 71314, 127818, 0, 0, 2418, 983098, 2411, 11336, 799, 63823, 10276, 10308, 10372, 917541, 41772, 42813, 2317, 10260, 118980, - 55284, 92203, 0, 10384, 983218, 0, 0, 7753, 2351, 6655, 64489, 69931, 0, + 55284, 92203, 0, 10384, 983219, 0, 0, 7753, 2351, 6655, 64489, 69931, 0, 77872, 4443, 42779, 230, 0, 0, 43549, 4855, 42150, 65739, 5441, 41896, 10288, 10320, 0, 855, 7046, 6109, 65045, 63839, 78198, 2049, 10098, 0, 74145, 127943, 10264, 10280, 9184, 10376, 7013, 4467, 0, 0, 0, 41887, 0, @@ -17776,7 +17778,7 @@ static unsigned int code_hash[] = { 78167, 10088, 6548, 0, 120156, 43978, 8988, 8888, 0, 0, 0, 0, 10666, 0, 73902, 69740, 0, 0, 9975, 128039, 119902, 4689, 8932, 0, 65560, 119209, 74441, 78810, 0, 0, 67987, 0, 0, 0, 67989, 0, 10065, 8207, 0, 92613, - 128011, 0, 662, 0, 9244, 194863, 0, 119261, 983420, 0, 0, 0, 41929, 0, 0, + 128011, 0, 662, 0, 9244, 194863, 0, 119261, 983421, 0, 0, 0, 41929, 0, 0, 66674, 41926, 120408, 120443, 10513, 64637, 194862, 68013, 52, 13118, 6475, 0, 120341, 12095, 10225, 4812, 92578, 0, 67992, 74085, 0, 3978, 0, 917945, 127823, 11582, 120761, 12281, 0, 6544, 13241, 93961, 69782, @@ -17786,7 +17788,7 @@ static unsigned int code_hash[] = { 120410, 0, 120453, 64821, 9478, 2508, 92683, 0, 202, 128246, 74131, 1242, 65514, 0, 63940, 128706, 64533, 120129, 0, 67842, 11990, 92430, 63939, 43375, 65440, 2504, 0, 78671, 64829, 983901, 6943, 917934, 5859, 0, 2858, - 983353, 74294, 983905, 69239, 0, 119027, 12992, 2753, 1936, 70078, 92574, + 983354, 74294, 983905, 69239, 0, 119027, 12992, 2753, 1936, 70078, 92574, 2751, 12662, 2763, 8953, 64701, 10731, 12922, 7052, 917839, 0, 0, 0, 63920, 74128, 2856, 119910, 47, 69908, 126986, 65858, 0, 0, 0, 7899, 0, 8417, 43798, 7072, 0, 0, 4033, 128164, 43992, 0, 0, 212, 64600, 1903, @@ -17797,13 +17799,13 @@ static unsigned int code_hash[] = { 12624, 0, 1673, 4811, 92383, 5986, 9338, 3046, 74480, 5985, 917928, 119598, 9820, 0, 12187, 0, 0, 5984, 0, 43308, 4393, 67650, 0, 0, 0, 0, 74826, 64733, 0, 0, 3491, 0, 0, 128219, 3514, 65485, 0, 7492, 0, 74605, - 92483, 7514, 983359, 0, 194731, 7502, 7587, 68353, 0, 0, 63925, 0, 7610, + 92483, 7514, 983360, 0, 194731, 7502, 7587, 68353, 0, 0, 63925, 0, 7610, 219, 0, 0, 692, 43588, 74433, 41635, 43241, 9688, 7147, 9535, 0, 93991, 0, 64530, 0, 64610, 11804, 0, 7149, 7453, 0, 8013, 0, 92301, 0, 8895, 5253, 70025, 5458, 0, 2866, 0, 127860, 65111, 68433, 6700, 120484, 0, 120583, 0, 8962, 77960, 9641, 43694, 7059, 983668, 0, 9604, 78700, 7441, 63826, 67970, 118941, 64392, 194735, 983678, 2844, 983932, 41974, 0, - 12139, 67971, 0, 0, 3358, 65295, 0, 3104, 194734, 0, 194765, 983227, + 12139, 67971, 0, 0, 3358, 65295, 0, 3104, 194734, 0, 194765, 983228, 5308, 0, 290, 0, 0, 2862, 2792, 195088, 983070, 0, 3268, 66591, 0, 6552, 42367, 7035, 120558, 0, 0, 1814, 0, 10240, 92338, 74305, 0, 74528, 65903, 0, 42646, 7606, 2591, 2837, 4341, 77956, 64482, 127337, 8163, 65270, 0, @@ -17864,7 +17866,7 @@ static unsigned int code_hash[] = { 93998, 5506, 0, 1911, 66652, 0, 9961, 8845, 66698, 0, 10792, 8889, 0, 2098, 0, 64751, 0, 66622, 0, 0, 74364, 0, 0, 983796, 74365, 7552, 0, 0, 65384, 7223, 4559, 0, 1956, 43138, 7024, 65728, 64501, 1210, 195077, - 65175, 10184, 43140, 43654, 0, 0, 0, 38, 8533, 66669, 119124, 983285, + 65175, 10184, 43140, 43654, 0, 0, 0, 38, 8533, 66669, 119124, 983286, 983783, 0, 4357, 0, 119837, 917863, 74233, 9967, 78884, 42860, 119838, 10941, 65721, 6962, 0, 0, 119324, 0, 11014, 127972, 8942, 12000, 69224, 92267, 128536, 11974, 92213, 42772, 127518, 11650, 5013, 92663, 126583, @@ -17882,7 +17884,7 @@ static unsigned int code_hash[] = { 41869, 12619, 0, 10154, 983043, 74439, 2039, 0, 7446, 1684, 63979, 10974, 458, 120620, 0, 69791, 127161, 11916, 65016, 0, 69671, 42115, 983133, 12288, 78057, 0, 1493, 42111, 7553, 4097, 128199, 13080, 0, 65808, 6610, - 6030, 8059, 7508, 13131, 0, 983423, 0, 8794, 41278, 41629, 12154, 128192, + 6030, 8059, 7508, 13131, 0, 983424, 0, 8794, 41278, 41629, 12154, 128192, 41277, 64658, 0, 64380, 6625, 74354, 19904, 0, 0, 0, 65371, 7078, 0, 833, 0, 6369, 0, 10979, 41953, 0, 41434, 6062, 0, 0, 19916, 6913, 933, 1341, 9842, 6720, 65744, 0, 983592, 128295, 0, 7405, 10105, 65810, 0, 41632, @@ -17897,7 +17899,7 @@ static unsigned int code_hash[] = { 6741, 43047, 0, 13180, 128517, 418, 917972, 64495, 10295, 10327, 10391, 41752, 74339, 8641, 41449, 0, 74100, 0, 10911, 6942, 0, 1024, 42849, 41751, 69776, 8941, 983556, 4554, 0, 9023, 11685, 0, 9928, 78617, 0, - 11437, 43741, 92163, 120700, 63967, 983475, 41206, 120724, 9049, 41185, + 11437, 43741, 92163, 120700, 63967, 983476, 41206, 120724, 9049, 41185, 43166, 0, 11680, 92619, 11686, 78544, 65224, 4565, 4655, 119553, 0, 92183, 64523, 10343, 10407, 0, 66671, 11466, 0, 128003, 42890, 74013, 12050, 68201, 2860, 0, 0, 0, 42792, 5743, 10424, 12065, 42872, 0, 92342, @@ -17913,7 +17915,7 @@ static unsigned int code_hash[] = { 42690, 9880, 42010, 74824, 64589, 10111, 64875, 127880, 68399, 43998, 11360, 0, 0, 0, 118826, 42149, 0, 0, 0, 64941, 77919, 120421, 128077, 0, 55247, 4110, 66005, 6959, 10929, 119110, 0, 66703, 77921, 8617, 41982, - 6025, 69242, 983176, 0, 0, 0, 9597, 42099, 43172, 983368, 10117, 983169, + 6025, 69242, 983176, 0, 0, 0, 9597, 42099, 43172, 983369, 10117, 983169, 92297, 41636, 0, 0, 120681, 8301, 0, 0, 187, 0, 65669, 128339, 4963, 0, 127517, 0, 8964, 65676, 7775, 0, 41948, 0, 0, 0, 41942, 65449, 3160, 10081, 13226, 42121, 42475, 42663, 128210, 41766, 119114, 65882, 78849, @@ -17928,15 +17930,15 @@ static unsigned int code_hash[] = { 10716, 0, 42822, 0, 6434, 0, 6939, 7766, 6432, 128106, 69932, 916, 769, 41742, 11968, 74805, 6433, 5563, 547, 1943, 6439, 5560, 4994, 487, 126537, 4497, 3754, 127056, 120424, 9039, 0, 41776, 0, 8716, 1595, 41615, - 0, 0, 74260, 0, 42854, 43219, 128709, 983452, 12185, 128879, 70072, - 68355, 68357, 0, 42856, 8634, 0, 983389, 4209, 120702, 0, 65879, 41538, - 65612, 127543, 669, 5679, 0, 69786, 92540, 0, 983456, 5678, 11821, 0, - 6711, 460, 0, 0, 983453, 0, 120747, 0, 0, 78050, 119022, 0, 983454, 0, + 0, 0, 74260, 0, 42854, 43219, 128709, 983453, 12185, 128879, 70072, + 68355, 68357, 0, 42856, 8634, 0, 983390, 4209, 120702, 0, 65879, 41538, + 65612, 127543, 669, 5679, 0, 69786, 92540, 0, 983457, 5678, 11821, 0, + 6711, 460, 0, 0, 983454, 0, 120747, 0, 0, 78050, 119022, 0, 983455, 0, 7782, 9044, 4974, 11760, 78494, 7577, 65711, 41912, 1216, 0, 128079, - 5792, 0, 0, 78501, 0, 2933, 12244, 0, 5683, 983384, 0, 78119, 1549, 0, 0, + 5792, 0, 0, 78501, 0, 2933, 12244, 0, 5683, 983385, 0, 78119, 1549, 0, 0, 120398, 5682, 6206, 8670, 10256, 5680, 69935, 10001, 128512, 69768, 1449, 10241, 78290, 128228, 0, 10552, 64342, 41922, 128548, 8584, 68030, 5567, - 2717, 0, 0, 5564, 42886, 41908, 42882, 5565, 983248, 128026, 0, 65708, + 2717, 0, 0, 5564, 42886, 41908, 42882, 5565, 983249, 128026, 0, 65708, 65709, 5566, 69803, 65704, 65705, 11904, 42875, 43373, 42539, 5942, 8468, 120561, 10361, 10425, 65697, 65698, 65699, 0, 66598, 0, 64664, 10647, 78702, 78703, 78690, 457, 78502, 65701, 1934, 43006, 119903, 8802, 78710, @@ -17950,12 +17952,12 @@ static unsigned int code_hash[] = { 119570, 42239, 8536, 78740, 78324, 78726, 74432, 724, 0, 1455, 78749, 7183, 64583, 78747, 68443, 4175, 78741, 43614, 69801, 939, 0, 43520, 68613, 74569, 917958, 0, 78763, 78764, 78760, 10788, 6088, 78759, 78755, - 190, 0, 12593, 0, 8188, 64408, 0, 4417, 983211, 92261, 6370, 0, 7827, + 190, 0, 12593, 0, 8188, 64408, 0, 4417, 983212, 92261, 6370, 0, 7827, 68441, 6965, 0, 0, 13201, 128205, 69896, 0, 74382, 73781, 7918, 73988, 0, - 0, 917884, 1728, 0, 43764, 178, 12972, 92679, 0, 917887, 92563, 983373, + 0, 917884, 1728, 0, 43764, 178, 12972, 92679, 0, 917887, 92563, 983374, 0, 78327, 120405, 65690, 0, 0, 119054, 0, 9252, 917889, 4652, 68371, 0, 0, 0, 13065, 9923, 10806, 0, 11763, 70016, 120688, 6723, 78187, 0, 6993, - 0, 0, 8333, 0, 0, 11390, 0, 74464, 0, 92320, 74080, 983307, 69911, 11910, + 0, 0, 8333, 0, 0, 11390, 0, 74464, 0, 92320, 74080, 983308, 69911, 11910, 92559, 8278, 8963, 4034, 128560, 0, 65344, 120517, 41747, 0, 0, 8677, 0, 12707, 9350, 66037, 128180, 8836, 12315, 12747, 8300, 983741, 0, 7491, 8856, 71361, 0, 43150, 127768, 120404, 65389, 120402, 120403, 10813, @@ -17982,27 +17984,27 @@ static unsigned int code_hash[] = { 116, 12998, 122, 121, 120, 111, 110, 109, 108, 115, 114, 113, 112, 103, 102, 101, 100, 107, 106, 105, 104, 6436, 73974, 534, 41212, 77931, 1536, 64093, 73970, 77930, 127157, 0, 6020, 12716, 127112, 12744, 475, 120394, - 13266, 127813, 127111, 0, 73926, 0, 10645, 1212, 6543, 983299, 8134, + 13266, 127813, 127111, 0, 73926, 0, 10645, 1212, 6543, 983300, 8134, 128028, 2913, 73870, 127113, 1866, 0, 195095, 0, 8923, 1645, 12059, 66585, 71297, 3196, 0, 0, 5935, 1250, 127066, 8174, 9787, 6733, 9859, 7916, 9861, 9860, 5258, 1882, 1892, 6731, 10882, 405, 11454, 73911, 0, 128781, 41169, 8939, 41245, 0, 41170, 1454, 11369, 6477, 12157, 0, 0, 0, - 41172, 7855, 0, 0, 10480, 0, 0, 77936, 8264, 12610, 983300, 645, 126616, + 41172, 7855, 0, 0, 10480, 0, 0, 77936, 8264, 12610, 983301, 645, 126616, 7609, 40973, 69943, 73833, 69948, 5824, 984, 77918, 10688, 5851, 0, 7729, 73982, 120518, 0, 195086, 43369, 0, 128140, 68415, 983093, 4538, 120406, - 43141, 0, 983208, 74214, 73886, 0, 0, 118902, 43005, 78448, 9552, 0, 0, + 43141, 0, 983209, 74214, 73886, 0, 0, 118902, 43005, 78448, 9552, 0, 0, 983159, 12997, 0, 0, 0, 0, 2381, 12883, 10994, 10529, 41906, 0, 0, 0, 12425, 10661, 10856, 9614, 2428, 41478, 8582, 10064, 73930, 0, 0, 0, - 64896, 119162, 1952, 92181, 8455, 10082, 11575, 983482, 119566, 0, 12808, + 64896, 119162, 1952, 92181, 8455, 10082, 11575, 983483, 119566, 0, 12808, 12183, 6145, 118955, 64929, 92433, 0, 983193, 43186, 42509, 0, 3922, 9187, 983614, 0, 10191, 119057, 11752, 3353, 9358, 0, 71366, 66680, - 120090, 8248, 7931, 8558, 9795, 68380, 983289, 0, 120082, 120081, 120084, + 120090, 8248, 7931, 8558, 9795, 68380, 983290, 0, 120082, 120081, 120084, 41027, 120086, 0, 120088, 7366, 7019, 120073, 0, 11751, 120078, 78294, 64657, 8657, 120048, 8594, 120068, 0, 0, 120069, 120072, 120071, 0, 0, 43154, 41029, 0, 11332, 65380, 7728, 94077, 11294, 0, 66665, 7851, 0, 8375, 8699, 0, 42524, 0, 9085, 94041, 7504, 9327, 6160, 128095, 983855, 0, 8088, 0, 74012, 92500, 0, 4439, 6926, 983047, 12924, 128227, 42369, - 4350, 65491, 65145, 9041, 43559, 64577, 10826, 0, 11296, 983275, 0, 0, + 4350, 65491, 65145, 9041, 43559, 64577, 10826, 0, 11296, 983276, 0, 0, 65825, 9577, 68199, 0, 64670, 983121, 78056, 6793, 11295, 0, 78053, 73872, 0, 0, 10902, 0, 0, 78070, 78068, 10472, 2995, 0, 0, 64682, 2371, 78069, 120808, 259, 1009, 92171, 2402, 2333, 6440, 194741, 0, 65125, @@ -18016,13 +18018,13 @@ static unsigned int code_hash[] = { 11772, 13041, 5928, 4525, 10658, 65911, 1266, 10180, 0, 128584, 12622, 0, 0, 0, 194714, 127139, 13310, 773, 19933, 1539, 0, 126983, 42731, 67972, 0, 0, 0, 3051, 5862, 7823, 92478, 0, 120411, 3250, 43991, 69687, 66649, - 9510, 66237, 983294, 0, 41066, 64673, 917963, 917964, 0, 3505, 8707, + 9510, 66237, 983295, 0, 41066, 64673, 917963, 917964, 0, 3505, 8707, 917968, 6725, 128013, 917971, 92314, 3471, 917970, 5479, 882, 6686, - 119584, 11613, 120772, 42754, 0, 983298, 92696, 0, 0, 0, 128523, 3225, + 119584, 11613, 120772, 42754, 0, 983299, 92696, 0, 0, 0, 128523, 3225, 917996, 4433, 41156, 43973, 43173, 1443, 4381, 0, 0, 10926, 11756, 11757, 64879, 917949, 917950, 127848, 13227, 0, 10021, 5160, 1387, 0, 917953, 41418, 0, 65914, 6721, 217, 917955, 917960, 917961, 10443, 10789, 41158, - 119257, 4274, 983292, 41483, 0, 41250, 0, 42179, 0, 5931, 11744, 69232, + 119257, 4274, 983293, 41483, 0, 41250, 0, 42179, 0, 5931, 11744, 69232, 0, 41252, 66682, 0, 119637, 41249, 1366, 64635, 65047, 12466, 0, 0, 4397, 128037, 128336, 41296, 9545, 41291, 128049, 0, 41485, 3511, 41282, 5923, 10400, 0, 128818, 760, 0, 12088, 5786, 0, 42256, 119869, 119860, 417, @@ -18032,7 +18034,7 @@ static unsigned int code_hash[] = { 119576, 0, 0, 1375, 66705, 43573, 65260, 42063, 0, 42811, 10312, 69845, 120794, 7840, 0, 43630, 10252, 0, 128104, 43185, 0, 4396, 0, 119880, 10769, 9676, 119041, 0, 9753, 0, 8944, 0, 0, 10473, 0, 0, 6072, 43025, - 10299, 0, 0, 120608, 66326, 983439, 127794, 0, 43811, 9330, 120596, 7222, + 10299, 0, 0, 120608, 66326, 983440, 127794, 0, 43811, 9330, 120596, 7222, 10283, 10315, 10379, 4996, 983773, 13281, 66517, 7865, 10087, 78343, 0, 78347, 0, 0, 7565, 66363, 12952, 64806, 43180, 77928, 7414, 77929, 43982, 74288, 622, 74023, 885, 43405, 1602, 0, 0, 852, 0, 12160, 0, 10212, @@ -18063,7 +18065,7 @@ static unsigned int code_hash[] = { 7830, 11651, 13093, 64002, 0, 65742, 12874, 119597, 11590, 0, 74048, 128350, 8595, 0, 917947, 43703, 13097, 0, 64643, 13283, 12697, 0, 12381, 3488, 5933, 10033, 73738, 66241, 65570, 0, 12297, 119153, 1955, 0, 5349, - 42538, 0, 0, 7411, 9462, 917554, 0, 0, 0, 42736, 0, 5756, 983219, 7638, + 42538, 0, 0, 7411, 9462, 917554, 0, 0, 0, 42736, 0, 5756, 983220, 7638, 41642, 42764, 0, 43109, 7637, 5752, 74037, 0, 73832, 128827, 120635, 128231, 78334, 0, 7636, 65171, 9124, 0, 78892, 120798, 291, 0, 0, 2027, 66230, 10080, 78136, 10403, 0, 4640, 64713, 10224, 120429, 42512, 120431, @@ -18110,14 +18112,14 @@ static unsigned int code_hash[] = { 0, 4916, 0, 380, 10958, 66563, 77955, 69773, 9773, 13167, 12918, 41096, 73980, 69245, 78254, 917893, 10684, 0, 917896, 0, 7946, 12541, 8182, 67586, 69780, 0, 0, 0, 0, 9005, 1225, 6630, 0, 0, 0, 68011, 8847, 0, - 65876, 5535, 8329, 74590, 983206, 92609, 0, 0, 3127, 2595, 65713, 42013, + 65876, 5535, 8329, 74590, 983207, 92609, 0, 0, 3127, 2595, 65713, 42013, 983849, 5607, 41089, 0, 0, 74256, 2665, 11304, 43751, 74200, 4970, 8764, 120459, 8934, 92726, 41566, 4492, 0, 65011, 41090, 0, 0, 1188, 7254, 1100, 0, 128301, 41081, 2912, 11749, 69792, 0, 68019, 3572, 10023, 4959, - 13079, 0, 983268, 9729, 0, 0, 0, 43361, 0, 0, 11803, 7996, 9907, 41450, - 13304, 128290, 127260, 41451, 0, 11095, 8273, 127533, 3451, 983301, 972, - 41453, 983434, 0, 73883, 68022, 73945, 983726, 2288, 19955, 9538, 0, - 69807, 0, 0, 0, 0, 11396, 983432, 11019, 0, 0, 0, 68020, 41078, 71365, + 13079, 0, 983269, 9729, 0, 0, 0, 43361, 0, 0, 11803, 7996, 9907, 41450, + 13304, 128290, 127260, 41451, 0, 11095, 8273, 127533, 3451, 983302, 972, + 41453, 983435, 0, 73883, 68022, 73945, 983726, 2288, 19955, 9538, 0, + 69807, 0, 0, 0, 0, 11396, 983433, 11019, 0, 0, 0, 68020, 41078, 71365, 261, 5927, 7791, 0, 7362, 0, 10696, 0, 6073, 9838, 118920, 0, 6075, 93995, 282, 126510, 6437, 74078, 128000, 9801, 0, 74177, 0, 0, 3474, 118787, 0, 120655, 6081, 0, 78874, 74076, 78879, 0, 0, 0, 0, 0, 8751, @@ -18138,7 +18140,7 @@ static unsigned int code_hash[] = { 4564, 0, 0, 74271, 73753, 8374, 983156, 0, 6829, 5225, 128807, 127385, 0, 0, 119615, 0, 74793, 5626, 73807, 11771, 74075, 127236, 128019, 42614, 5353, 5625, 74179, 0, 0, 1010, 64572, 41780, 42623, 64277, 69942, 6952, - 983264, 120752, 78762, 2590, 5629, 65552, 7551, 10325, 5632, 10471, + 983265, 120752, 78762, 2590, 5629, 65552, 7551, 10325, 5632, 10471, 120038, 120027, 120028, 120025, 5628, 120031, 970, 120029, 4772, 2400, 5627, 120017, 120018, 120023, 64275, 120021, 8786, 0, 203, 0, 0, 0, 0, 78350, 0, 64378, 42054, 0, 0, 554, 119649, 11358, 0, 12182, 42048, 11065, @@ -18175,10 +18177,10 @@ static unsigned int code_hash[] = { 612, 0, 64401, 66448, 68376, 0, 1674, 0, 5823, 983163, 12280, 0, 540, 74564, 119017, 0, 8432, 0, 11073, 0, 64316, 0, 0, 820, 41741, 0, 120667, 0, 64684, 126992, 3359, 7800, 69934, 65177, 6226, 353, 12396, 0, 119612, - 64742, 128682, 120282, 0, 983442, 12412, 19941, 0, 120277, 78847, 1884, + 64742, 128682, 120282, 0, 983443, 12412, 19941, 0, 120277, 78847, 1884, 9481, 42418, 70059, 41157, 0, 1195, 64898, 7924, 0, 41151, 2010, 0, 41328, 42344, 0, 12409, 0, 4360, 127009, 9739, 128550, 69933, 73921, 0, - 42521, 8539, 983716, 0, 118986, 0, 4788, 0, 68023, 65734, 983447, 43790, + 42521, 8539, 983716, 0, 118986, 0, 4788, 0, 68023, 65734, 983448, 43790, 0, 13075, 74429, 94063, 64569, 43532, 10837, 2492, 127197, 118901, 68637, 41136, 43785, 11813, 9649, 41154, 119617, 5128, 4038, 41143, 65604, 64859, 41592, 6771, 1648, 5435, 917837, 6734, 41343, 119848, 65439, @@ -18214,7 +18216,7 @@ static unsigned int code_hash[] = { 41461, 128823, 0, 127912, 0, 8819, 12663, 0, 41184, 74014, 232, 74835, 120646, 9168, 65786, 0, 0, 0, 9094, 0, 11758, 68425, 0, 1064, 42467, 128044, 10115, 19924, 92711, 0, 7862, 64551, 13224, 8516, 41862, 66650, - 7561, 78618, 69793, 1878, 0, 983261, 2911, 0, 41178, 5427, 64823, 0, 0, + 7561, 78618, 69793, 1878, 0, 983262, 2911, 0, 41178, 5427, 64823, 0, 0, 3787, 41174, 0, 41458, 0, 41463, 42413, 11292, 2406, 775, 0, 65584, 69923, 6074, 9618, 128668, 983943, 43440, 0, 194901, 41436, 3656, 0, 120600, 41456, 0, 1599, 11333, 0, 6703, 8513, 0, 1613, 0, 68456, 12598, @@ -18236,7 +18238,7 @@ static unsigned int code_hash[] = { 41287, 92610, 0, 0, 42219, 128257, 0, 41987, 41676, 983059, 120823, 983144, 41670, 0, 92590, 2796, 55291, 11683, 9902, 74521, 67988, 11451, 983111, 128822, 42631, 2359, 0, 67844, 74164, 41238, 548, 11405, 13133, - 64368, 983233, 128795, 0, 397, 43622, 42139, 9547, 9590, 128238, 1614, + 64368, 983234, 128795, 0, 397, 43622, 42139, 9547, 9590, 128238, 1614, 43661, 64356, 66307, 6651, 1358, 0, 428, 9620, 1466, 78112, 10982, 118831, 1333, 7104, 407, 6425, 128834, 74253, 0, 0, 0, 5804, 11976, 8554, 92721, 0, 0, 9057, 42294, 41218, 0, 0, 78137, 1883, 10952, 8048, 78142, @@ -18250,7 +18252,7 @@ static unsigned int code_hash[] = { 66315, 2106, 120222, 11273, 0, 43004, 7541, 0, 0, 961, 64307, 66324, 64906, 128591, 3106, 65917, 41284, 1696, 0, 891, 12105, 0, 42624, 12802, 3264, 8824, 13268, 43003, 10936, 0, 0, 0, 194826, 92688, 0, 2322, 120371, - 983584, 11449, 128187, 42868, 41285, 3547, 0, 0, 128793, 983390, 43216, + 983584, 11449, 128187, 42868, 41285, 3547, 0, 0, 128793, 983391, 43216, 6089, 78682, 0, 120578, 4170, 1029, 127761, 127036, 119224, 42374, 0, 744, 0, 0, 0, 65823, 127826, 0, 3551, 0, 0, 4623, 55268, 0, 4598, 983162, 65136, 127136, 0, 0, 10851, 0, 6179, 92602, 6180, 0, 11952, 120778, @@ -18277,8 +18279,8 @@ static unsigned int code_hash[] = { 6352, 41892, 0, 7555, 13103, 5408, 2817, 1214, 69919, 92335, 983125, 0, 0, 0, 127195, 7957, 8689, 64723, 1056, 42896, 74147, 194813, 0, 55286, 7073, 65850, 12327, 983939, 119028, 0, 0, 0, 2341, 8450, 8484, 8474, - 983252, 0, 70079, 8461, 128102, 12153, 12799, 0, 43709, 43708, 9451, - 7571, 13073, 0, 0, 681, 983246, 703, 0, 3272, 8781, 12894, 70077, 11709, + 983253, 0, 70079, 8461, 128102, 12153, 12799, 0, 43709, 43708, 9451, + 7571, 13073, 0, 0, 681, 983247, 703, 0, 3272, 8781, 12894, 70077, 11709, 92288, 74446, 0, 92532, 0, 11338, 120768, 3276, 0, 0, 65928, 0, 0, 65021, 64795, 74574, 0, 10047, 78814, 3262, 78811, 42711, 0, 0, 68478, 163, 576, 9895, 1655, 78817, 74591, 78815, 78816, 983122, 0, 0, 0, 10039, 0, @@ -18288,7 +18290,7 @@ static unsigned int code_hash[] = { 0, 71362, 4619, 118954, 6654, 73769, 74426, 0, 12040, 65689, 10128, 65118, 0, 119151, 74205, 92651, 0, 2401, 68144, 8792, 983639, 0, 65455, 0, 92246, 0, 119129, 0, 12886, 127920, 66624, 0, 43557, 10300, 10161, - 10396, 74135, 983445, 118945, 78118, 73851, 3010, 6441, 78122, 1458, + 10396, 74135, 983446, 118945, 78118, 73851, 3010, 6441, 78122, 1458, 41475, 128672, 93975, 0, 11479, 0, 120356, 6350, 12864, 69674, 78114, 1061, 64780, 2001, 43111, 55230, 128686, 4052, 0, 7626, 0, 0, 1045, 0, 5631, 41113, 0, 0, 43707, 74127, 0, 0, 8486, 0, 73758, 2335, 4362, @@ -18304,8 +18306,8 @@ static unsigned int code_hash[] = { 92245, 440, 0, 13085, 9233, 74216, 0, 0, 9957, 128285, 66447, 8046, 64963, 65777, 10125, 74212, 42819, 10910, 0, 1521, 9896, 93965, 10487, 69878, 12527, 0, 7970, 0, 128660, 0, 65769, 5243, 9849, 5239, 65771, - 983229, 0, 5237, 69714, 0, 10103, 5247, 4769, 0, 118977, 12873, 2283, - 983231, 0, 3008, 4896, 0, 12087, 0, 55231, 41103, 0, 64565, 4773, 0, + 983230, 0, 5237, 69714, 0, 10103, 5247, 4769, 0, 118977, 12873, 2283, + 983232, 0, 3008, 4896, 0, 12087, 0, 55231, 41103, 0, 64565, 4773, 0, 92717, 70074, 4770, 0, 917567, 8731, 65378, 127362, 120619, 9122, 128033, 126600, 4774, 3019, 9997, 12834, 0, 9456, 10215, 120547, 0, 0, 0, 0, 74776, 4281, 4768, 0, 41535, 4099, 9017, 0, 0, 78095, 0, 78096, 0, 0, 0, @@ -18333,7 +18335,7 @@ static unsigned int code_hash[] = { 41521, 118934, 494, 13250, 0, 65098, 6364, 956, 0, 12830, 10462, 73740, 73734, 0, 0, 0, 66449, 13263, 74281, 69217, 13171, 127796, 0, 0, 92294, 0, 1044, 41276, 0, 0, 0, 42068, 11795, 0, 0, 0, 0, 42450, 3907, 0, 64526, - 11829, 68197, 12295, 0, 11475, 0, 3020, 11537, 0, 66441, 983446, 7098, 0, + 11829, 68197, 12295, 0, 11475, 0, 3020, 11537, 0, 66441, 983447, 7098, 0, 0, 1057, 566, 42696, 0, 3016, 42274, 43464, 66490, 12921, 66571, 78472, 92510, 3006, 4620, 127237, 983578, 0, 0, 64659, 0, 127749, 55253, 6357, 6362, 8626, 71337, 2216, 9090, 65377, 41596, 0, 42920, 1698, 0, 64477, 0, @@ -18364,9 +18366,9 @@ static unsigned int code_hash[] = { 42249, 7639, 43995, 67845, 42641, 5454, 0, 0, 194997, 120005, 0, 983957, 5084, 0, 0, 118861, 0, 733, 917876, 78014, 78436, 78435, 41677, 0, 9218, 1731, 0, 983737, 0, 67990, 0, 0, 0, 120001, 127018, 92492, 5155, 120000, - 5358, 983735, 0, 917767, 64424, 983225, 3840, 64314, 41432, 0, 78315, + 5358, 983735, 0, 917767, 64424, 983226, 3840, 64314, 41432, 0, 78315, 68430, 67980, 43253, 65943, 0, 3371, 10988, 0, 8771, 1479, 0, 0, 1109, - 11580, 0, 64601, 12205, 0, 0, 64507, 8868, 399, 67978, 74842, 983276, + 11580, 0, 64601, 12205, 0, 0, 64507, 8868, 399, 67978, 74842, 983277, 983712, 12149, 13088, 551, 0, 10156, 12119, 92572, 0, 2544, 65074, 119211, 0, 0, 78011, 351, 119149, 0, 0, 55229, 0, 74268, 0, 0, 0, 42377, 0, 0, 0, 983915, 0, 9013, 4054, 0, 983570, 0, 0, 73960, 5585, 65881, @@ -18439,33 +18441,33 @@ static unsigned int code_hash[] = { 0, 43435, 0, 0, 4993, 0, 6168, 10934, 1946, 741, 0, 5494, 4639, 983147, 1990, 66589, 4498, 78664, 119183, 0, 0, 69734, 2960, 73779, 0, 8969, 128117, 43424, 127059, 0, 2950, 119579, 6210, 65753, 370, 0, 0, 0, 4953, - 983673, 0, 0, 0, 69230, 0, 0, 65688, 983240, 5063, 3517, 2964, 43663, + 983673, 0, 0, 0, 69230, 0, 0, 65688, 983241, 5063, 3517, 2964, 43663, 917762, 6344, 74791, 10566, 10144, 66333, 8252, 729, 66016, 78253, 0, 71317, 64923, 128040, 43669, 9032, 78263, 78264, 0, 41215, 0, 65883, 0, 917774, 120602, 3761, 0, 0, 70068, 0, 12912, 119012, 3850, 128191, 0, 0, 0, 0, 908, 0, 8611, 0, 0, 127555, 43691, 41197, 0, 8978, 120540, 119135, 41586, 10527, 0, 917848, 3848, 78739, 194937, 127536, 65241, 5336, - 983251, 128786, 663, 0, 10780, 0, 0, 78767, 983249, 127163, 68193, 347, + 983252, 128786, 663, 0, 10780, 0, 0, 78767, 983250, 127163, 68193, 347, 0, 0, 78775, 64675, 41582, 78774, 78744, 65579, 12980, 78769, 12143, 69657, 78512, 0, 43441, 41804, 78523, 0, 78525, 0, 128859, 41584, 10681, 0, 983686, 73938, 0, 128022, 4800, 66661, 0, 66306, 64715, 78534, 9518, - 6609, 10434, 0, 11319, 1097, 0, 917850, 41730, 983212, 0, 73847, 78761, + 6609, 10434, 0, 11319, 1097, 0, 917850, 41730, 983213, 0, 73847, 78761, 65172, 41728, 41721, 0, 0, 0, 41203, 917612, 13110, 41726, 983846, 0, 1000, 69651, 0, 41140, 1209, 73978, 0, 73750, 1073, 6321, 77878, 41138, 0, 68213, 0, 12167, 1115, 41605, 9794, 127062, 67671, 55248, 12237, 78787, 66314, 6587, 9290, 78782, 78783, 9231, 78781, 2959, 7926, 0, 0, 0, 64398, 0, 119970, 12311, 983718, 78796, 78798, 78794, 78795, 68434, 78793, 66670, 0, 0, 12290, 120169, 0, 119873, 42142, 9968, 8205, 0, 5131, - 0, 9627, 78536, 78542, 78535, 983210, 1944, 1248, 10148, 127755, 119990, + 0, 9627, 78536, 78542, 78535, 983211, 1944, 1248, 10148, 127755, 119990, 119991, 12701, 78376, 11308, 119995, 0, 119997, 119998, 65305, 65100, 4031, 42794, 120003, 7075, 8154, 119985, 120007, 41817, 73934, 42275, 120011, 120012, 78526, 120014, 120015, 6041, 0, 41899, 0, 8002, 0, 4364, 0, 0, 64332, 0, 7813, 9064, 119986, 10124, 7526, 8601, 7281, 78455, 7279, - 12041, 1418, 10885, 12673, 0, 0, 9660, 983272, 13012, 4571, 0, 0, 120164, + 12041, 1418, 10885, 12673, 0, 0, 9660, 983273, 13012, 4571, 0, 0, 120164, 12078, 2970, 0, 10933, 0, 77870, 0, 127015, 0, 41599, 0, 128831, 0, 12950, 92160, 3486, 0, 78311, 4239, 0, 127799, 66511, 0, 2637, 64629, 8460, 127053, 8476, 983966, 0, 0, 0, 65673, 1019, 78495, 4148, 0, 12289, - 0, 4316, 0, 13119, 8488, 5412, 66243, 9935, 0, 73864, 983201, 41734, + 0, 4316, 0, 13119, 8488, 5412, 66243, 9935, 0, 73864, 983202, 41734, 8206, 74081, 9163, 3286, 9072, 5867, 13302, 7622, 7120, 41736, 92546, 41731, 0, 7400, 5416, 68663, 118924, 10817, 0, 41539, 127284, 0, 73963, 41855, 41867, 65564, 11277, 65892, 11536, 10620, 92272, 7115, 66030, @@ -18473,8 +18475,8 @@ static unsigned int code_hash[] = { 92512, 0, 66377, 69781, 0, 983690, 78511, 3161, 295, 120207, 0, 92223, 127856, 78742, 9016, 43454, 63903, 63902, 43641, 0, 3971, 0, 70063, 2952, 78765, 11038, 10901, 63900, 63899, 63898, 94043, 667, 12332, 63887, 6086, - 41722, 0, 5172, 0, 0, 4159, 0, 0, 9815, 63884, 19934, 63882, 41198, 8555, - 63878, 63877, 42460, 6050, 42708, 63881, 63872, 0, 42421, 0, 41723, + 41722, 0, 5172, 0, 983271, 4159, 0, 0, 9815, 63884, 19934, 63882, 41198, + 8555, 63878, 63877, 42460, 6050, 42708, 63881, 63872, 0, 42421, 0, 41723, 63875, 63874, 11460, 7432, 1913, 41913, 63852, 126636, 0, 42348, 73892, 6752, 446, 41911, 127906, 63851, 63850, 41910, 0, 63846, 2972, 12932, 7262, 0, 63849, 63848, 63847, 128070, 6570, 8302, 7259, 63842, 4178, @@ -18515,7 +18517,7 @@ static unsigned int code_hash[] = { 0, 10515, 41589, 128698, 0, 6218, 0, 1430, 0, 0, 120606, 78754, 5413, 7619, 3255, 3493, 74032, 11549, 10735, 41743, 73937, 6801, 983624, 4518, 10990, 65073, 5167, 4481, 3771, 120158, 2710, 0, 69243, 41724, 0, 43073, - 41690, 12479, 983626, 0, 0, 983809, 70046, 1628, 127149, 983479, 983722, + 41690, 12479, 983626, 0, 0, 983809, 70046, 1628, 127149, 983480, 983722, 65262, 6333, 10783, 42315, 0, 63855, 94056, 0, 0, 5339, 74323, 0, 13004, 0, 4457, 0, 0, 0, 0, 5684, 8678, 10914, 0, 5689, 65807, 0, 68464, 12633, 12870, 69705, 65183, 5688, 11926, 6033, 6310, 5686, 0, 74251, 0, 120647, @@ -18542,7 +18544,7 @@ static unsigned int code_hash[] = { 73859, 65904, 7363, 1686, 0, 78406, 11467, 3664, 65921, 64299, 194664, 0, 0, 4324, 126, 42246, 119152, 0, 74378, 65926, 7744, 194636, 74277, 74302, 78052, 43817, 6966, 43822, 8136, 0, 65600, 1633, 0, 0, 4762, 1103, 0, 0, - 4765, 983484, 13078, 0, 4760, 63827, 2050, 10871, 43199, 1102, 0, 42236, + 4765, 983485, 13078, 0, 4760, 63827, 2050, 10871, 43199, 1102, 0, 42236, 128867, 194667, 11546, 74794, 337, 0, 42591, 8627, 12279, 1111, 0, 92161, 4707, 68206, 10143, 7883, 127081, 7880, 4522, 8645, 5704, 13010, 0, 8304, 917561, 0, 119575, 2293, 0, 66654, 0, 92676, 0, 13008, 0, 4385, 0, 13011, @@ -18566,7 +18568,7 @@ static unsigned int code_hash[] = { 1349, 63750, 63749, 0, 0, 0, 63753, 63802, 41084, 120622, 68133, 41930, 63805, 63804, 43632, 63801, 41082, 8140, 63798, 6260, 0, 0, 94074, 63793, 11988, 3898, 128241, 10201, 12238, 63795, 42194, 10367, 12521, 10431, - 42114, 41932, 1068, 0, 12523, 12945, 983321, 42203, 7950, 10804, 63771, + 42114, 41932, 1068, 0, 12523, 12945, 983322, 42203, 7950, 10804, 63771, 42787, 4386, 12224, 6973, 2793, 12475, 0, 0, 63769, 9530, 983119, 12232, 13135, 8596, 5681, 63762, 4595, 63760, 792, 0, 64803, 0, 8742, 0, 11053, 128796, 63744, 128107, 0, 7588, 63748, 1693, 63746, 43204, 5055, 68426, @@ -18595,7 +18597,7 @@ static unsigned int code_hash[] = { 65835, 0, 2365, 7841, 0, 42855, 118856, 42866, 0, 0, 0, 66438, 41785, 12617, 64172, 13173, 4372, 119354, 0, 983568, 0, 0, 92402, 128062, 12965, 384, 64512, 10404, 10340, 119352, 1556, 5274, 13210, 120125, 10017, 9733, - 41787, 983237, 126994, 41373, 78039, 12303, 0, 13232, 13233, 349, 4863, + 41787, 983238, 126994, 41373, 78039, 12303, 0, 13232, 13233, 349, 4863, 41371, 11656, 0, 120703, 119883, 12861, 4398, 8543, 65618, 128018, 1096, 0, 0, 42688, 12441, 12355, 119348, 119347, 4318, 10452, 0, 8032, 13243, 13237, 12719, 126646, 119101, 0, 64884, 119872, 119345, 8597, 0, 0, 9864, @@ -18623,7 +18625,7 @@ static unsigned int code_hash[] = { 5841, 5837, 55234, 0, 3105, 12829, 5838, 5796, 0, 119592, 5793, 0, 5866, 5797, 41011, 5865, 120091, 7956, 598, 0, 64649, 5806, 42398, 0, 9037, 5671, 120041, 0, 0, 0, 128855, 0, 847, 128242, 9529, 0, 66657, 6980, - 78483, 120035, 78484, 983483, 0, 120033, 78486, 0, 0, 120039, 42683, 0, + 78483, 120035, 78484, 983484, 0, 120033, 78486, 0, 0, 120039, 42683, 0, 983055, 7114, 0, 0, 43190, 65463, 1554, 0, 42611, 42563, 0, 5651, 2929, 6792, 43201, 0, 19963, 5698, 0, 0, 0, 0, 5644, 10292, 65546, 69727, 68141, 8372, 0, 65116, 0, 120022, 10175, 10388, 42799, 94100, 41013, @@ -18631,7 +18633,7 @@ static unsigned int code_hash[] = { 42608, 78469, 9884, 4759, 0, 0, 10266, 41359, 1170, 43365, 69810, 73908, 1609, 902, 0, 63936, 128875, 11661, 8122, 5818, 0, 0, 3861, 9540, 11028, 2554, 5158, 5714, 2213, 0, 0, 807, 43079, 0, 78475, 976, 5511, 64553, 0, - 42155, 0, 41356, 74110, 118801, 126614, 0, 8676, 983283, 0, 5582, 451, + 42155, 0, 41356, 74110, 118801, 126614, 0, 8676, 983284, 0, 5582, 451, 63941, 5798, 9349, 42018, 127858, 0, 0, 43609, 5906, 120553, 1440, 0, 128853, 120016, 74283, 11005, 0, 66656, 66044, 0, 194698, 0, 0, 43393, 10094, 0, 11529, 10857, 120643, 66436, 6546, 93, 8102, 0, 68405, 0, 0, @@ -18665,7 +18667,7 @@ static unsigned int code_hash[] = { 0, 1862, 65800, 9155, 66623, 9786, 65082, 41919, 8579, 41914, 7981, 0, 66017, 4508, 64883, 92456, 92522, 127814, 0, 64592, 74276, 120080, 6784, 78788, 68181, 0, 0, 0, 127534, 12147, 9024, 66378, 66472, 983920, 64289, - 65289, 78151, 66658, 194929, 64509, 78152, 0, 126505, 11051, 983288, 0, + 65289, 78151, 66658, 194929, 64509, 78152, 0, 126505, 11051, 983289, 0, 11355, 65885, 0, 128310, 41214, 0, 12299, 0, 7500, 4506, 7773, 0, 0, 9963, 68649, 126609, 4040, 120570, 6167, 0, 63922, 6594, 983731, 0, 0, 3624, 43036, 0, 6387, 63990, 19947, 63988, 41955, 0, 63993, 10440, 9611, @@ -18680,7 +18682,7 @@ static unsigned int code_hash[] = { 119625, 42922, 42103, 8628, 9813, 0, 42453, 1604, 9565, 10539, 69701, 65764, 41415, 65767, 0, 8457, 42301, 11372, 64873, 11992, 0, 0, 63980, 11801, 3622, 983124, 64336, 12017, 10463, 63981, 4967, 64189, 1966, - 43628, 0, 983284, 0, 0, 63971, 4347, 4416, 42098, 11009, 10694, 63973, + 43628, 0, 983285, 0, 0, 63971, 4347, 4416, 42098, 11009, 10694, 63973, 402, 0, 13147, 128692, 42100, 64646, 13228, 0, 41875, 3515, 74252, 11805, 0, 11302, 6259, 43395, 0, 0, 194670, 0, 92351, 0, 74425, 11299, 1561, 0, 92359, 64942, 983559, 194733, 983677, 194732, 0, 74301, 0, 11280, 0, @@ -18691,7 +18693,7 @@ static unsigned int code_hash[] = { 3355, 9508, 9867, 5723, 11520, 5611, 0, 3377, 0, 0, 0, 0, 78228, 0, 983753, 42691, 917886, 127198, 74767, 0, 127075, 1379, 246, 0, 983752, 3788, 983106, 11041, 92549, 66304, 0, 0, 8917, 42403, 301, 0, 0, 0, 0, 0, - 983688, 10656, 0, 65214, 119242, 42567, 92217, 13163, 983202, 120831, + 983688, 10656, 0, 65214, 119242, 42567, 92217, 13163, 983203, 120831, 74597, 3182, 0, 0, 0, 65034, 65889, 42169, 4755, 74244, 194621, 11443, 0, 66319, 74598, 608, 600, 0, 1219, 3934, 64206, 11483, 74510, 0, 74485, 42442, 65470, 983898, 64202, 13160, 7759, 42482, 485, 128006, 0, 9828, 0, @@ -18703,14 +18705,14 @@ static unsigned int code_hash[] = { 0, 194675, 1406, 0, 0, 92659, 0, 68223, 4143, 194677, 0, 65748, 4141, 9682, 65287, 1508, 127013, 8779, 10569, 8725, 13299, 66638, 65750, 42263, 4145, 6380, 65751, 66613, 43994, 65738, 55250, 9185, 9550, 0, 43403, 0, - 0, 0, 65736, 41951, 64816, 65756, 983203, 12955, 10596, 2888, 194645, 0, + 0, 0, 65736, 41951, 64816, 65756, 983204, 12955, 10596, 2888, 194645, 0, 0, 9657, 9019, 194766, 0, 2878, 5390, 0, 194961, 0, 68679, 43552, 7501, 6328, 0, 10429, 10365, 0, 0, 41946, 7503, 5235, 803, 68381, 0, 0, 8986, 126542, 10632, 11934, 11452, 1332, 0, 0, 126647, 0, 118887, 1791, 5191, 9288, 64822, 2892, 0, 43394, 555, 0, 0, 66646, 0, 119002, 13151, 74512, 7289, 74055, 64161, 8854, 64162, 5858, 41927, 10582, 0, 1784, 1361, 195047, 0, 7905, 0, 64868, 128813, 13158, 92166, 7211, 0, 9371, 73973, - 917553, 6828, 1625, 92302, 0, 1342, 68440, 64171, 126704, 10903, 983486, + 917553, 6828, 1625, 92302, 0, 1342, 68440, 64171, 126704, 10903, 983487, 0, 0, 0, 0, 4482, 41606, 0, 128569, 983112, 0, 64381, 0, 0, 195090, 42245, 126467, 41972, 0, 444, 0, 9127, 66687, 66619, 126489, 78025, 0, 11349, 40991, 917570, 0, 119599, 120830, 0, 1197, 128282, 1149, 194970, @@ -18736,10 +18738,10 @@ static unsigned int code_hash[] = { 4731, 0, 66629, 0, 0, 1255, 4149, 9247, 0, 9913, 0, 0, 64914, 917787, 65101, 0, 11694, 92475, 11690, 5835, 127164, 66625, 10842, 41354, 42123, 43097, 11688, 66634, 1094, 194, 64692, 0, 8180, 0, 0, 9972, 73865, 4519, - 6114, 10898, 43072, 0, 0, 93960, 983314, 126581, 10695, 0, 7540, 0, 881, + 6114, 10898, 43072, 0, 0, 93960, 983315, 126581, 10695, 0, 7540, 0, 881, 7857, 6067, 65164, 0, 0, 0, 13311, 68403, 41857, 64321, 8359, 0, 12689, - 0, 194594, 0, 983304, 983872, 68183, 0, 983306, 1287, 5436, 0, 983309, - 74142, 92328, 74152, 119078, 6051, 10497, 69668, 8985, 12109, 983315, 0, + 0, 194594, 0, 983305, 983872, 68183, 0, 983307, 1287, 5436, 0, 983310, + 74142, 92328, 74152, 119078, 6051, 10497, 69668, 8985, 12109, 983316, 0, 127242, 0, 0, 3652, 10537, 0, 1276, 120440, 6549, 279, 73745, 0, 0, 0, 1489, 0, 0, 0, 3899, 1007, 42124, 983557, 42122, 92337, 92367, 0, 11985, 1345, 78600, 0, 0, 8956, 43083, 94057, 42138, 78610, 0, 12151, 78608, @@ -18754,14 +18756,14 @@ static unsigned int code_hash[] = { 78627, 78628, 78625, 2399, 69693, 8994, 10944, 41208, 983704, 41168, 8178, 0, 3367, 92334, 42510, 78641, 78636, 6804, 78634, 1947, 0, 0, 92681, 42759, 11068, 1705, 9331, 0, 74798, 9181, 65359, 0, 8017, 119831, - 65096, 66720, 0, 43475, 0, 4909, 12126, 128673, 120696, 4904, 983325, + 65096, 66720, 0, 43475, 0, 4909, 12126, 128673, 120696, 4904, 983326, 69650, 1365, 9253, 42757, 43436, 7462, 0, 0, 0, 0, 119587, 64415, 0, 0, 5398, 0, 127386, 93953, 0, 0, 119015, 0, 0, 9476, 0, 983768, 12763, 126603, 3629, 0, 13005, 0, 3628, 0, 0, 92502, 3469, 42107, 42116, 917578, 64809, 2928, 4905, 9853, 851, 9040, 0, 64665, 43086, 9114, 0, 42583, 9315, 4822, 4906, 3852, 2847, 119821, 3236, 11317, 1251, 7777, 41852, 11410, 10964, 0, 43222, 12646, 120269, 10259, 9865, 65821, 0, 6018, - 92290, 0, 12276, 0, 68372, 0, 92259, 119244, 0, 983224, 10467, 0, 2443, + 92290, 0, 12276, 0, 68372, 0, 92259, 119244, 0, 983225, 10467, 0, 2443, 10918, 78217, 119825, 1001, 9241, 1927, 0, 0, 73987, 127885, 0, 0, 118828, 120271, 65678, 12867, 0, 8260, 77945, 7519, 11505, 12274, 8904, 518, 65857, 0, 128674, 13204, 4387, 857, 0, 65369, 0, 92336, 43125, @@ -18777,19 +18779,19 @@ static unsigned int code_hash[] = { 78698, 78697, 78696, 78695, 8710, 42495, 118956, 0, 4051, 10460, 43364, 118917, 1356, 12161, 42713, 128857, 127268, 1619, 9703, 43152, 42489, 42112, 127978, 1875, 10808, 42109, 120284, 41860, 64862, 13305, 64907, - 5289, 13144, 128658, 0, 5575, 9675, 0, 5940, 226, 2649, 6336, 983269, + 5289, 13144, 128658, 0, 5575, 9675, 0, 5940, 226, 2649, 6336, 983270, 119830, 43236, 3382, 42449, 6498, 1658, 11936, 78232, 0, 11269, 10151, 73759, 43100, 69888, 65508, 0, 0, 0, 8935, 917985, 0, 0, 0, 616, 74753, 65178, 4684, 78701, 119653, 0, 126551, 0, 6048, 74460, 42110, 73965, 10870, 8557, 11054, 68664, 119049, 9681, 4475, 0, 41142, 2100, 0, 120731, - 6035, 0, 7651, 10296, 64443, 0, 983287, 917987, 0, 118966, 74144, 40997, + 6035, 0, 7651, 10296, 64443, 0, 983288, 917987, 0, 118966, 74144, 40997, 0, 10392, 10328, 40998, 43462, 74488, 0, 9800, 8979, 0, 13307, 41000, 0, 119239, 6487, 3386, 0, 10344, 0, 65299, 5394, 43246, 78243, 10220, 66505, 41200, 128583, 4425, 0, 0, 0, 43074, 73799, 983200, 78147, 0, 12173, 78545, 0, 127011, 65338, 0, 0, 119582, 4474, 0, 43093, 128644, 1587, 0, 127372, 64475, 128098, 1369, 983663, 9959, 7927, 0, 4560, 0, 0, 92277, 0, 64948, 4430, 74347, 42601, 4514, 66434, 93955, 8194, 65462, 10626, 10965, - 0, 8893, 983293, 12542, 0, 65341, 0, 65829, 7925, 119822, 10475, 0, 0, + 0, 8893, 983294, 12542, 0, 65341, 0, 65829, 7925, 119822, 10475, 0, 0, 1352, 11069, 7707, 127560, 126486, 65279, 127102, 68207, 127100, 7099, 6040, 127097, 10071, 0, 9336, 43750, 0, 8899, 7798, 64474, 64259, 69873, 65188, 7820, 43018, 127082, 0, 7746, 1492, 78551, 10884, 77982, 0, 5127, @@ -18811,7 +18813,7 @@ static unsigned int code_hash[] = { 40988, 92592, 74809, 41727, 0, 42848, 2396, 917766, 0, 74018, 917538, 64940, 7027, 3886, 0, 42457, 119008, 0, 996, 68123, 94058, 4249, 0, 917594, 11707, 8222, 0, 7939, 92454, 92460, 127801, 917592, 128359, 8534, - 127154, 40983, 0, 983234, 0, 7201, 12561, 0, 42371, 12558, 1540, 917549, + 127154, 40983, 0, 983235, 0, 7201, 12561, 0, 42371, 12558, 1540, 917549, 10052, 40982, 0, 0, 1488, 0, 0, 0, 917559, 0, 0, 1563, 128034, 9619, 983931, 0, 0, 127872, 71363, 5803, 7797, 6070, 10006, 0, 2922, 6082, 0, 65009, 983933, 12567, 128703, 0, 41412, 0, 0, 3607, 9200, 10046, 9612, @@ -18822,13 +18824,13 @@ static unsigned int code_hash[] = { 12328, 501, 93985, 10601, 0, 583, 0, 41977, 0, 66004, 119350, 6505, 74010, 0, 13064, 55267, 120810, 6500, 5526, 65049, 0, 73764, 0, 92376, 12745, 9678, 0, 120587, 9869, 128815, 1771, 0, 8936, 0, 0, 4208, 78341, - 78567, 78342, 0, 983448, 74101, 0, 11762, 0, 92422, 77997, 68010, 66475, + 78567, 78342, 0, 983449, 74101, 0, 11762, 0, 92422, 77997, 68010, 66475, 0, 5027, 78172, 128878, 0, 5069, 73862, 5028, 9897, 0, 73739, 5026, - 983247, 68639, 6331, 10079, 8931, 0, 1415, 8866, 41901, 74790, 78138, + 983248, 68639, 6331, 10079, 8931, 0, 1415, 8866, 41901, 74790, 78138, 119361, 983564, 43106, 5029, 65309, 1580, 3598, 68424, 41070, 77903, 0, 3440, 78215, 1562, 128656, 127175, 119358, 1716, 983670, 10600, 917867, 620, 41001, 6028, 0, 42892, 0, 74822, 5024, 120829, 41003, 0, 5025, - 69892, 983207, 0, 118885, 0, 65557, 0, 74541, 983587, 11599, 128209, + 69892, 983208, 0, 118885, 0, 65557, 0, 74541, 983587, 11599, 128209, 11602, 6243, 11574, 11581, 11597, 11598, 6253, 6105, 11584, 74195, 11569, 65275, 8906, 127096, 5755, 2636, 0, 10815, 11619, 2301, 41540, 7815, 11616, 6979, 12080, 7721, 11604, 7869, 1592, 0, 42152, 78498, 41048, @@ -18943,7 +18945,7 @@ static unsigned int code_hash[] = { 120357, 845, 0, 41560, 11970, 4562, 917920, 2926, 917919, 4569, 74130, 0, 43487, 194630, 611, 74129, 64871, 118891, 65629, 0, 194858, 0, 0, 127545, 120543, 0, 0, 6291, 0, 78639, 41669, 7094, 917921, 0, 983581, 74054, - 127754, 195029, 0, 839, 983311, 7695, 8769, 65246, 4829, 194663, 4859, + 127754, 195029, 0, 839, 983312, 7695, 8769, 65246, 4829, 194663, 4859, 64467, 0, 983954, 118998, 7206, 0, 6647, 43986, 0, 69766, 0, 64764, 4210, 983854, 127936, 804, 0, 0, 12298, 0, 66653, 0, 64924, 10091, 73931, 9468, 74245, 0, 0, 74246, 92503, 12839, 64669, 92202, 0, 1279, 1425, 6224, @@ -18966,7 +18968,7 @@ static unsigned int code_hash[] = { 19936, 7833, 120691, 0, 42599, 42597, 42709, 120409, 127044, 0, 8537, 0, 0, 9354, 983164, 128833, 41199, 10121, 2028, 0, 983194, 69715, 0, 3062, 0, 74447, 12608, 0, 66440, 7545, 9700, 12580, 92205, 120777, 120502, - 41155, 0, 74071, 0, 983449, 12713, 0, 0, 0, 78772, 0, 1734, 0, 0, 127040, + 41155, 0, 74071, 0, 983450, 12713, 0, 0, 0, 78772, 0, 1734, 0, 0, 127040, 64594, 2456, 231, 0, 74167, 542, 0, 118786, 0, 983970, 1230, 0, 0, 3597, 4446, 10584, 74235, 92215, 4037, 127938, 8352, 0, 5687, 0, 64515, 0, 194801, 55265, 67846, 78434, 9704, 0, 0, 70080, 71338, 0, 8660, 126495, @@ -18986,7 +18988,7 @@ static unsigned int code_hash[] = { 119173, 0, 0, 7805, 0, 94007, 6935, 92292, 78325, 78326, 78323, 43327, 43989, 119046, 8492, 8250, 8459, 0, 8497, 8496, 0, 0, 78336, 78339, 9543, 78335, 78332, 77832, 65849, 77831, 983952, 0, 12451, 0, 8684, 0, 6102, 0, - 5298, 0, 5294, 0, 0, 983451, 195062, 9949, 119826, 43617, 119215, 0, + 5298, 0, 5294, 0, 0, 983452, 195062, 9949, 119826, 43617, 119215, 0, 12073, 0, 0, 77863, 13108, 120617, 11439, 41468, 983748, 0, 5292, 55272, 983874, 1939, 5302, 3970, 917879, 12455, 1793, 0, 0, 0, 6643, 92477, 65263, 0, 78330, 41293, 78328, 65923, 0, 13219, 9569, 0, 74383, 0, 74197, @@ -18997,7 +18999,7 @@ static unsigned int code_hash[] = { 0, 0, 78074, 6947, 41152, 887, 9249, 6565, 78510, 41990, 78509, 41811, 74466, 93966, 6670, 77882, 0, 0, 43092, 43325, 0, 10168, 0, 9781, 128655, 9190, 0, 9666, 8269, 65944, 74005, 13019, 11670, 69860, 315, 12813, - 983450, 78432, 78256, 78351, 78352, 0, 983648, 0, 0, 1378, 9509, 0, 0, + 983451, 78432, 78256, 78351, 78352, 0, 983648, 0, 0, 1378, 9509, 0, 0, 74475, 3066, 92220, 67847, 0, 92355, 0, 78365, 8787, 120379, 194616, 41618, 194615, 78261, 194614, 0, 64652, 0, 194612, 0, 78366, 42088, 0, 195061, 7176, 43756, 10137, 6121, 10995, 78259, 74534, 8119, 64874, @@ -19016,7 +19018,7 @@ static unsigned int code_hash[] = { 549, 1570, 0, 2835, 0, 10624, 43623, 11072, 127191, 0, 0, 12606, 78433, 2825, 0, 10825, 8079, 2821, 41046, 92327, 7365, 983744, 120593, 13071, 0, 452, 41049, 42840, 6346, 2831, 5461, 74596, 11465, 5212, 0, 64703, - 119191, 42308, 7181, 0, 41332, 0, 12333, 0, 1668, 0, 0, 0, 1187, 983377, + 119191, 42308, 7181, 0, 41332, 0, 12333, 0, 1668, 0, 0, 0, 1187, 983378, 42628, 78575, 0, 128777, 0, 3240, 128518, 12194, 0, 11591, 41065, 5323, 8166, 0, 0, 0, 74535, 1623, 65297, 128856, 571, 0, 4918, 0, 5288, 127295, 8916, 65048, 1909, 8864, 0, 0, 10736, 92508, 11571, 7615, 127300, 92296, @@ -19033,7 +19035,7 @@ static unsigned int code_hash[] = { 66010, 119552, 6078, 9954, 0, 1475, 119247, 9938, 6084, 917546, 41064, 41062, 0, 0, 3256, 10189, 42076, 43252, 78823, 917906, 8727, 0, 65875, 0, 0, 127762, 10562, 74215, 43065, 0, 0, 3248, 74297, 3261, 9015, 71351, 0, - 3635, 64337, 983273, 0, 0, 7195, 0, 2007, 64431, 0, 0, 0, 0, 635, 0, 0, + 3635, 64337, 983274, 0, 0, 7195, 0, 2007, 64431, 0, 0, 0, 0, 635, 0, 0, 65613, 77909, 92420, 73997, 0, 0, 119218, 7984, 8600, 74434, 127770, 4176, 70050, 2034, 92551, 120805, 65891, 127038, 0, 318, 2038, 128860, 78596, 0, 3649, 13149, 42145, 42798, 3634, 120291, 118927, 67677, 120124, @@ -19043,13 +19045,13 @@ static unsigned int code_hash[] = { 194567, 12989, 66474, 9368, 12848, 1624, 43270, 0, 74278, 10818, 126644, 9953, 0, 78421, 1194, 3242, 9761, 9555, 8598, 120299, 6169, 12871, 1551, 2798, 65176, 4958, 42752, 119025, 0, 67875, 120301, 3495, 66648, 194768, - 0, 68364, 983222, 4891, 0, 10641, 0, 73746, 0, 68352, 0, 73787, 194829, + 0, 68364, 983223, 4891, 0, 10641, 0, 73746, 0, 68352, 0, 73787, 194829, 194633, 7199, 64955, 0, 0, 0, 0, 0, 42685, 42679, 193, 0, 0, 0, 42667, 0, - 5271, 92318, 92517, 118882, 1362, 13297, 0, 128094, 0, 983323, 73789, 0, - 6658, 4426, 0, 92628, 983833, 92319, 7276, 42163, 5220, 0, 0, 983322, + 5271, 92318, 92517, 118882, 1362, 13297, 0, 128094, 0, 983324, 73789, 0, + 6658, 4426, 0, 92628, 983833, 92319, 7276, 42163, 5220, 0, 0, 983323, 2416, 3310, 42703, 0, 379, 0, 43755, 0, 0, 3223, 65492, 1284, 194771, 4549, 0, 0, 983154, 127763, 10807, 9558, 194613, 0, 8515, 8688, 12866, - 65308, 3294, 983324, 8529, 128101, 43385, 7564, 0, 43329, 0, 92458, + 65308, 3294, 983325, 8529, 128101, 43385, 7564, 0, 43329, 0, 92458, 73757, 66456, 42359, 0, 2031, 0, 7202, 0, 12676, 42729, 92198, 3215, 0, 7710, 1610, 73801, 0, 0, 65682, 0, 120537, 65924, 9974, 228, 66354, 1501, 0, 64395, 5179, 7200, 6225, 0, 65794, 1725, 65533, 8196, 7476, 74399, 0, @@ -19076,20 +19078,20 @@ static unsigned int code_hash[] = { 126469, 11946, 0, 3257, 0, 12307, 1845, 983157, 43526, 0, 0, 1886, 42342, 10089, 870, 7648, 3499, 8609, 7652, 876, 871, 877, 0, 878, 42015, 879, 43692, 4563, 0, 0, 7591, 65887, 867, 9520, 872, 126607, 868, 873, 7642, - 0, 869, 874, 7644, 120674, 875, 790, 128303, 0, 0, 0, 66182, 983250, - 5429, 195055, 66180, 126480, 66181, 68452, 983281, 983242, 42067, 0, + 0, 869, 874, 7644, 120674, 875, 790, 128303, 0, 0, 0, 66182, 983251, + 5429, 195055, 66180, 126480, 66181, 68452, 983282, 983243, 42067, 0, 5433, 10657, 7911, 194622, 1547, 66176, 42012, 120576, 5425, 4977, 9999, 5317, 5423, 4611, 0, 67637, 0, 9679, 74122, 0, 0, 0, 66194, 4418, 66184, 4628, 4245, 119648, 0, 0, 1851, 0, 127189, 11908, 0, 9360, 118897, - 983270, 42776, 66187, 12837, 8829, 7711, 92714, 0, 92321, 43318, 0, 8809, - 69881, 0, 983142, 120604, 983052, 983873, 0, 983262, 0, 0, 7427, 9958, + 983201, 42776, 66187, 12837, 8829, 7711, 92714, 0, 92321, 43318, 0, 8809, + 69881, 0, 983142, 120604, 983052, 983873, 0, 983263, 0, 0, 7427, 9958, 4588, 43680, 0, 74484, 194968, 2433, 0, 119622, 3352, 74363, 983876, 0, 793, 74404, 0, 305, 567, 67662, 842, 128519, 8208, 0, 41695, 1647, 118877, 0, 7837, 917625, 818, 5337, 194628, 917621, 41376, 119978, 126576, 120594, 74086, 917615, 917614, 917613, 10973, 66359, 1372, 127172, 917608, 4969, 1254, 917605, 917604, 93967, 917602, 65228, 78221, 126612, 0, 2840, 0, 119982, 983930, 0, 3245, 9068, 68194, 64725, 0, 0, - 12991, 0, 2651, 68016, 983257, 917611, 127026, 128883, 0, 0, 43648, + 12991, 0, 2651, 68016, 983258, 917611, 127026, 128883, 0, 0, 43648, 120812, 0, 43322, 92662, 0, 0, 64372, 92698, 3226, 655, 752, 7457, 7456, 7452, 3285, 128779, 127821, 119988, 65610, 2391, 0, 92248, 671, 250, 7434, 618, 668, 610, 42800, 7431, 1152, 42801, 640, 120666, 7448, 7439, @@ -19106,7 +19108,7 @@ static unsigned int code_hash[] = { 120285, 74225, 94111, 8267, 0, 127265, 0, 7516, 0, 2625, 983968, 8034, 74309, 0, 3631, 10955, 7850, 120293, 8416, 0, 0, 0, 43384, 12660, 0, 0, 0, 74850, 41069, 0, 128156, 12099, 4310, 10032, 6252, 713, 7990, 0, 3990, - 0, 983254, 66368, 5017, 64956, 7071, 0, 119144, 1030, 118800, 983120, + 0, 983255, 66368, 5017, 64956, 7071, 0, 119144, 1030, 118800, 983120, 9513, 41059, 9357, 0, 1773, 0, 120350, 0, 6339, 7745, 9844, 0, 64650, 94, 1880, 74766, 983829, 8908, 0, 128707, 65913, 78470, 10752, 13003, 0, 126572, 41307, 8732, 120338, 0, 1757, 6964, 4696, 0, 120335, 64785, 7394, @@ -19125,17 +19127,17 @@ static unsigned int code_hash[] = { 65302, 40989, 0, 194696, 0, 42760, 0, 983566, 0, 40987, 4667, 0, 983923, 8828, 0, 0, 1246, 4746, 0, 0, 11021, 4749, 92675, 0, 921, 4744, 0, 12702, 242, 0, 1566, 8217, 0, 64653, 78386, 128121, 74036, 74505, 43274, 5313, - 951, 0, 0, 983858, 7604, 983282, 4009, 127816, 983701, 120562, 0, 983711, + 951, 0, 0, 983858, 7604, 983283, 4009, 127816, 983701, 120562, 0, 983711, 64860, 119138, 119069, 0, 127370, 4048, 983598, 0, 70024, 1646, 77890, 64534, 73995, 120705, 0, 119890, 2579, 119905, 3177, 11357, 9099, 4107, 3441, 119894, 2975, 74442, 9822, 983926, 55220, 10084, 73943, 118840, 0, 917562, 194610, 3399, 9851, 983708, 11909, 9059, 0, 7687, 0, 6789, 0, 0, 0, 71367, 0, 0, 1777, 9151, 1137, 69767, 749, 42366, 0, 5385, 128574, 128218, 0, 0, 5989, 0, 0, 128091, 0, 41685, 69223, 0, 9769, 41684, - 983214, 519, 0, 11740, 5766, 0, 0, 2600, 8848, 120138, 41297, 0, 3666, + 983215, 519, 0, 11740, 5766, 0, 0, 2600, 8848, 120138, 41297, 0, 3666, 74473, 41300, 74468, 65160, 0, 69688, 69771, 74479, 0, 6558, 0, 0, 69765, 120750, 252, 0, 41302, 0, 0, 0, 69763, 0, 11729, 8719, 9060, 0, 120139, - 10761, 0, 0, 0, 118792, 11734, 983221, 11730, 0, 9593, 5757, 2403, 64808, + 10761, 0, 0, 0, 118792, 11734, 983222, 11730, 0, 9593, 5757, 2403, 64808, 55275, 0, 11728, 43572, 0, 0, 7764, 983705, 11094, 120825, 0, 0, 4282, 8298, 0, 0, 0, 0, 0, 64449, 0, 126650, 63854, 8456, 0, 74783, 65670, 0, 78250, 0, 7774, 10607, 9792, 0, 0, 0, 0, 120764, 0, 10019, 74762, 0, @@ -19150,48 +19152,48 @@ static unsigned int code_hash[] = { 70065, 2588, 2914, 7011, 55281, 0, 2471, 194631, 2883, 2749, 119563, 73774, 10913, 0, 0, 8666, 675, 42493, 0, 43571, 0, 6219, 0, 9980, 41232, 10928, 0, 41153, 41229, 118967, 0, 3738, 94016, 0, 12711, 3181, 66212, - 74289, 68472, 42857, 8262, 983371, 0, 983220, 0, 42347, 12092, 9615, + 74289, 68472, 42857, 8262, 983372, 0, 983221, 0, 42347, 12092, 9615, 7234, 74047, 983088, 0, 43744, 0, 0, 73846, 2934, 12722, 120762, 922, 43983, 74507, 983126, 74461, 3218, 120471, 74290, 120469, 64562, 120475, 8569, 11404, 11932, 73728, 3214, 120461, 120468, 12128, 3207, 65486, 78729, 1901, 78727, 127326, 120460, 7425, 3205, 68003, 78737, 78736, 78735, 43383, 69940, 65459, 2606, 78730, 73897, 0, 11496, 1173, 0, 41272, - 119661, 0, 0, 983313, 120737, 0, 983962, 983312, 378, 2610, 0, 65079, - 983317, 65695, 126559, 37, 7068, 0, 120480, 120479, 3209, 120477, 0, - 10638, 9768, 69952, 119909, 983391, 0, 0, 0, 0, 65510, 0, 0, 5233, - 983327, 64792, 983326, 0, 126633, 0, 7060, 9847, 120144, 1685, 595, 0, + 119661, 0, 0, 983314, 120737, 0, 983962, 983313, 378, 2610, 0, 65079, + 983318, 65695, 126559, 37, 7068, 0, 120480, 120479, 3209, 120477, 0, + 10638, 9768, 69952, 119909, 983392, 0, 0, 0, 0, 65510, 0, 0, 5233, + 983328, 64792, 983327, 0, 126633, 0, 7060, 9847, 120144, 1685, 595, 0, 73971, 1292, 8940, 7380, 11088, 0, 10004, 126997, 0, 6541, 0, 0, 0, 3243, 9014, 5606, 0, 538, 64620, 5602, 8467, 74391, 6547, 128132, 8203, 78488, 983090, 8458, 65211, 8495, 119904, 0, 917552, 779, 78314, 64367, 2465, 69901, 8193, 55279, 9730, 9280, 0, 7065, 74155, 4346, 0, 73798, 504, 0, 92414, 8982, 0, 0, 0, 782, 0, 10883, 0, 194852, 732, 3737, 127253, 1548, 68650, 92507, 1832, 5604, 5735, 41141, 119020, 4376, 0, 11787, 3745, 0, - 0, 42888, 65712, 983296, 3869, 11937, 5725, 127539, 1783, 68648, 5728, 0, + 0, 42888, 65712, 983297, 3869, 11937, 5725, 127539, 1783, 68648, 5728, 0, 0, 0, 11918, 66567, 5724, 0, 5727, 78521, 0, 0, 764, 0, 128116, 43531, 0, 9033, 0, 42532, 6223, 11042, 120749, 11423, 0, 119861, 71344, 43465, 0, 128267, 6559, 64557, 71348, 92649, 120648, 43019, 43477, 10238, 74491, 0, 43377, 92282, 71346, 1478, 9783, 11825, 2607, 64740, 0, 7739, 74543, 0, 0, 0, 6132, 0, 63765, 0, 70058, 41144, 0, 92438, 43537, 6761, 10093, 4369, 917791, 0, 983148, 8820, 3947, 0, 0, 11515, 526, 128103, 41295, - 194603, 917785, 194932, 0, 7688, 917786, 7686, 8288, 11815, 0, 0, 983374, + 194603, 917785, 194932, 0, 7688, 917786, 7686, 8288, 11815, 0, 0, 983375, 1543, 3713, 41221, 12423, 42281, 917788, 74024, 12293, 0, 64357, 11794, 42082, 0, 1737, 8987, 42081, 0, 7205, 0, 9335, 12850, 119870, 6553, 7055, 0, 8277, 0, 0, 5475, 74795, 6780, 0, 0, 12990, 1160, 42084, 119650, 41217, 119660, 10018, 360, 0, 0, 68176, 5863, 3137, 0, 4147, 983170, - 41216, 7844, 2616, 119190, 68461, 65234, 983286, 13076, 3135, 983279, + 41216, 7844, 2616, 119190, 68461, 65234, 983287, 13076, 3135, 983280, 78143, 119139, 3142, 92451, 94068, 10819, 119580, 10183, 0, 2608, 1470, 73967, 94008, 6227, 0, 127173, 69741, 983582, 6163, 983558, 0, 127314, 0, 0, 8603, 0, 119866, 3306, 10876, 43392, 119573, 127931, 5751, 0, 6222, 0, 0, 12086, 7403, 1600, 64309, 64939, 0, 64783, 92658, 11310, 0, 8882, 0, - 0, 2570, 7021, 0, 0, 43110, 0, 1234, 6540, 6974, 0, 0, 983209, 5002, 0, + 0, 2570, 7021, 0, 0, 43110, 0, 1234, 6540, 6974, 0, 0, 983210, 5002, 0, 41286, 69946, 127019, 0, 43585, 0, 6551, 983953, 128229, 0, 41289, 0, - 194602, 0, 8977, 602, 120814, 0, 128778, 128661, 0, 983367, 41279, 0, 0, + 194602, 0, 8977, 602, 120814, 0, 128778, 128661, 0, 983368, 41279, 0, 0, 0, 11081, 43615, 0, 0, 0, 983612, 12727, 0, 0, 78397, 9475, 7112, 65105, 0, 9633, 10886, 43592, 7831, 983820, 194571, 0, 73915, 8076, 43048, 8290, 8291, 43051, 92570, 0, 2596, 43584, 0, 13113, 0, 127757, 2393, 7058, 9087, 74067, 68673, 41574, 78337, 0, 74058, 6376, 0, 0, 0, 0, 9854, 127748, 64696, 0, 128220, 0, 6994, 0, 1720, 0, 0, 0, 6529, 7063, 983182, - 3751, 9120, 983477, 0, 1798, 709, 0, 1354, 1876, 13152, 6557, 12430, + 3751, 9120, 983478, 0, 1798, 709, 0, 1354, 1876, 13152, 6557, 12430, 8137, 94098, 92642, 0, 0, 245, 128097, 11456, 41233, 7070, 0, 94046, 6136, 917609, 65677, 8682, 41235, 92595, 42045, 9804, 118963, 432, 3595, 194945, 65437, 0, 74455, 42399, 0, 0, 128274, 0, 119658, 0, 0, 0, 77894, @@ -19203,7 +19205,7 @@ static unsigned int code_hash[] = { 3733, 11346, 0, 12054, 0, 74098, 42827, 0, 13091, 0, 0, 0, 917915, 0, 127025, 0, 74821, 0, 983724, 119042, 0, 127865, 13090, 66643, 0, 1270, 1132, 42360, 0, 74096, 66655, 42569, 127824, 0, 64761, 0, 41021, 8510, - 42432, 0, 0, 194782, 0, 64496, 74109, 70030, 9915, 0, 983216, 7061, + 42432, 0, 0, 194782, 0, 64496, 74109, 70030, 9915, 0, 983217, 7061, 41336, 3854, 69700, 13141, 68413, 43401, 42319, 13082, 0, 7067, 68221, 0, 127383, 127171, 0, 0, 127797, 9029, 43543, 119315, 2353, 6308, 0, 74792, 2611, 119186, 0, 0, 0, 43664, 92399, 66627, 0, 4484, 8509, 118976, 11066, @@ -19217,7 +19219,7 @@ static unsigned int code_hash[] = { 396, 41580, 68146, 0, 12901, 43058, 0, 343, 7129, 42680, 41360, 78154, 0, 4743, 0, 0, 74040, 74108, 8743, 1724, 1433, 119322, 0, 3739, 6263, 71349, 0, 3964, 6592, 0, 128693, 66040, 0, 42568, 69806, 128113, 1778, 3956, 0, - 42070, 6563, 43075, 9018, 94006, 983388, 12067, 41312, 0, 5547, 74531, + 42070, 6563, 43075, 9018, 94006, 983389, 12067, 41312, 0, 5547, 74531, 127969, 0, 8175, 0, 284, 8108, 934, 0, 74001, 173, 66460, 7174, 92703, 118822, 1750, 0, 4394, 68368, 1807, 983879, 92298, 0, 5889, 0, 7180, 0, 119145, 0, 917558, 42471, 6982, 1721, 44022, 7891, 42243, 42160, 2583, @@ -19238,26 +19240,26 @@ static unsigned int code_hash[] = { 128544, 0, 5596, 5545, 7288, 2586, 64887, 0, 5217, 71336, 0, 0, 0, 64293, 68098, 2635, 0, 0, 983837, 0, 983632, 7835, 70040, 0, 194988, 92285, 64558, 127122, 0, 127121, 0, 127913, 0, 5784, 983102, 0, 0, 70033, 4011, - 917616, 68101, 0, 7864, 4254, 65095, 983488, 5600, 3903, 127083, 10447, + 917616, 68101, 0, 7864, 4254, 65095, 983489, 5600, 3903, 127083, 10447, 5598, 1207, 120521, 66689, 3501, 42582, 43600, 194780, 0, 1124, 5597, - 194778, 194772, 9321, 983476, 983473, 983474, 0, 1719, 68356, 68354, - 9671, 1125, 4399, 127479, 917610, 983480, 7631, 5488, 7128, 120532, 0, + 194778, 194772, 9321, 983477, 983474, 983475, 0, 1719, 68356, 68354, + 9671, 1125, 4399, 127479, 917610, 983481, 7631, 5488, 7128, 120532, 0, 5491, 0, 8937, 43044, 2604, 74187, 5490, 43046, 5489, 7212, 11768, 43043, 6300, 0, 7122, 0, 4390, 454, 41397, 0, 9875, 7593, 194791, 92274, 118913, 7207, 0, 65901, 2394, 2575, 0, 3746, 11016, 65752, 120037, 0, 43423, 128683, 11989, 0, 0, 0, 0, 0, 8249, 128172, 0, 78531, 6640, 74806, 2598, - 513, 0, 6586, 8656, 0, 120710, 65008, 0, 194784, 194989, 194795, 983465, - 92515, 68475, 93973, 0, 0, 78637, 12647, 0, 128043, 69893, 1036, 983469, - 92419, 1723, 128056, 74217, 0, 41579, 2444, 0, 10705, 73876, 983461, - 74486, 983459, 740, 119222, 194978, 194984, 0, 4238, 11071, 9459, 68437, + 513, 0, 6586, 8656, 0, 120710, 65008, 0, 194784, 194989, 194795, 983466, + 92515, 68475, 93973, 0, 0, 78637, 12647, 0, 128043, 69893, 1036, 983470, + 92419, 1723, 128056, 74217, 0, 41579, 2444, 0, 10705, 73876, 983462, + 74486, 983460, 740, 119222, 194978, 194984, 0, 4238, 11071, 9459, 68437, 78140, 78139, 194985, 8121, 10438, 74487, 42574, 13285, 55263, 11907, 195000, 5690, 92255, 93992, 0, 43181, 13095, 0, 127857, 64498, 0, 9506, 6978, 194993, 77992, 0, 0, 194992, 0, 127845, 1122, 317, 0, 0, 0, 0, 1920, 0, 10173, 827, 0, 0, 78378, 120126, 5223, 1304, 0, 119564, 5226, 12602, 94044, 0, 9329, 7758, 9239, 41173, 5224, 5487, 1222, 5692, 41725, 69229, 9674, 5695, 41711, 64627, 19909, 0, 74604, 5691, 287, 866, 233, - 127490, 983433, 42816, 94036, 65140, 74797, 0, 8830, 6568, 42300, 10524, - 41175, 983440, 983437, 983438, 5296, 983436, 42492, 43402, 92466, 3302, + 127490, 983434, 42816, 94036, 65140, 74797, 0, 8830, 6568, 42300, 10524, + 41175, 983441, 983438, 983439, 5296, 983437, 42492, 43402, 92466, 3302, 0, 0, 6516, 6515, 6514, 6513, 6512, 0, 7856, 8690, 0, 0, 12122, 119602, 43976, 0, 1785, 69925, 68622, 65153, 194810, 5138, 0, 0, 118869, 0, 4540, 41181, 0, 6200, 0, 5134, 0, 322, 4643, 5132, 0, 6389, 128533, 5143, 0, @@ -19275,14 +19277,14 @@ static unsigned int code_hash[] = { 5198, 4349, 10390, 74202, 5196, 43224, 6113, 42009, 5205, 0, 43307, 0, 118973, 0, 12134, 0, 0, 118843, 9126, 435, 0, 12014, 10377, 8093, 9079, 3203, 192, 65109, 3385, 0, 64430, 5383, 10294, 10326, 128178, 5738, - 983213, 3336, 78355, 5361, 3623, 41159, 0, 68112, 7872, 8581, 0, 1260, + 983214, 3336, 78355, 5361, 3623, 41159, 0, 68112, 7872, 8581, 0, 1260, 3149, 5359, 120134, 0, 7914, 5357, 92170, 128659, 2624, 5364, 0, 11431, 120030, 9101, 11058, 78288, 0, 78293, 42271, 78289, 42917, 120793, 0, 65566, 6717, 10619, 43360, 78385, 78384, 11832, 78382, 78381, 78380, 78379, 9319, 7097, 119055, 77906, 3232, 73824, 74581, 120632, 0, 0, 41889, 92453, 0, 1161, 41895, 74103, 9701, 8622, 0, 0, 73819, 120588, 5012, 77912, 41362, 69862, 78296, 11921, 0, 11769, 0, 68609, 41364, 0, - 74228, 41352, 41361, 0, 41366, 0, 3356, 0, 917, 68422, 119915, 7134, + 74228, 41352, 41361, 0, 41366, 0, 3356, 11611, 917, 68422, 119915, 7134, 8199, 78389, 119917, 677, 119916, 0, 119932, 127169, 0, 0, 0, 3349, 74125, 7022, 8927, 4739, 0, 5802, 0, 8615, 0, 0, 491, 128819, 10190, 120698, 65837, 128820, 8426, 11092, 9891, 0, 42497, 7113, 7586, 42305, @@ -19323,7 +19325,7 @@ static unsigned int code_hash[] = { 0, 78621, 194672, 6925, 0, 0, 917929, 0, 11568, 983664, 43367, 64579, 917930, 7852, 0, 0, 6754, 6312, 0, 64672, 65296, 0, 118957, 0, 416, 12296, 68457, 73834, 68177, 11050, 10984, 92208, 0, 0, 92182, 0, 983605, - 9532, 66355, 0, 983228, 917925, 64343, 195032, 128281, 195031, 0, 195030, + 9532, 66355, 0, 983229, 917925, 64343, 195032, 128281, 195031, 0, 195030, 195057, 11445, 0, 2112, 195056, 128814, 10185, 1021, 128130, 9507, 10210, 74544, 8023, 1200, 12243, 78001, 5282, 78003, 9624, 11545, 0, 120493, 3343, 4424, 11047, 1885, 43268, 3896, 78444, 66497, 2947, 392, 7894, @@ -19358,43 +19360,43 @@ static unsigned int code_hash[] = { 66454, 9592, 42851, 126993, 1542, 92303, 0, 0, 0, 0, 74311, 78497, 0, 10181, 0, 43624, 0, 7779, 0, 10195, 9479, 6029, 0, 92268, 9689, 0, 65577, 8993, 66358, 0, 42378, 3368, 606, 127030, 7697, 69237, 69787, 2030, 0, - 6027, 8370, 4322, 0, 65207, 0, 983331, 983330, 983329, 983328, 2735, + 6027, 8370, 4322, 0, 65207, 0, 983332, 983331, 983330, 983329, 2735, 42831, 77935, 127120, 74866, 8881, 119047, 0, 0, 73946, 0, 0, 0, 68140, 983919, 9576, 128872, 3347, 4160, 5154, 55288, 3794, 66564, 8530, 127063, 7709, 41112, 983132, 66560, 42041, 4572, 12876, 66561, 983749, 6758, - 983917, 1615, 5855, 809, 0, 92283, 128316, 128004, 5799, 983320, 70100, - 983318, 7260, 983316, 43031, 64425, 65128, 78819, 64386, 65257, 0, 68616, + 983917, 1615, 5855, 809, 0, 92283, 128316, 128004, 5799, 983321, 70100, + 983319, 7260, 983317, 43031, 64425, 65128, 78819, 64386, 65257, 0, 68616, 120607, 9347, 128067, 6532, 0, 0, 0, 127060, 65828, 0, 283, 68665, 78813, 532, 78663, 0, 983787, 120609, 0, 3370, 0, 11361, 5443, 78778, 8153, - 73767, 0, 10741, 0, 2298, 0, 983908, 65495, 64706, 983310, 43344, 983308, - 7144, 9466, 78866, 9824, 983303, 983302, 0, 0, 915, 43425, 0, 0, 0, 0, + 73767, 0, 10741, 0, 2298, 0, 983908, 65495, 64706, 983311, 43344, 983309, + 7144, 9466, 78866, 9824, 983304, 983303, 0, 0, 915, 43425, 0, 0, 0, 0, 127178, 43264, 70096, 0, 0, 43038, 78864, 6730, 78862, 68161, 64550, 5186, 7360, 127837, 0, 12108, 0, 65124, 43127, 66043, 0, 6326, 43107, - 77826, 0, 42562, 0, 128821, 0, 128520, 11485, 6103, 127123, 983297, - 11718, 983295, 12889, 92657, 127137, 0, 0, 0, 55245, 0, 1630, 128232, + 77826, 0, 42562, 0, 128821, 0, 128520, 11485, 6103, 127123, 983298, + 11718, 983296, 12889, 92657, 127137, 0, 0, 0, 55245, 0, 1630, 128232, 65483, 0, 12565, 0, 65476, 120013, 0, 119554, 9283, 7700, 917537, 9690, 65499, 0, 64593, 512, 3376, 68210, 0, 128677, 77892, 632, 12940, 77891, - 42529, 78587, 0, 5957, 110593, 8926, 983291, 983290, 128273, 10745, + 42529, 78587, 0, 5957, 110593, 8926, 983292, 983291, 128273, 10745, 10174, 7379, 64581, 5386, 120686, 11713, 10633, 69708, 5056, 0, 0, 0, 120773, 0, 9812, 0, 4460, 0, 0, 71307, 128038, 0, 0, 127174, 64278, 92370, 43466, 0, 0, 64389, 2953, 73879, 1801, 12835, 119029, 0, 73823, 0, - 66375, 2085, 702, 42579, 77884, 77885, 13074, 77883, 983278, 983277, - 128570, 12106, 983274, 74207, 1755, 10482, 12863, 77898, 1163, 2951, + 66375, 2085, 702, 42579, 77884, 77885, 13074, 77883, 983279, 983278, + 128570, 12106, 983275, 74207, 1755, 10482, 12863, 77898, 1163, 2951, 9522, 74079, 78266, 66604, 0, 3384, 69227, 10702, 830, 77902, 77899, 77900, 8451, 0, 0, 0, 69739, 0, 0, 0, 0, 2908, 0, 43386, 64902, 4243, 0, - 12239, 0, 0, 4441, 0, 983271, 73940, 64352, 127513, 983267, 411, 983265, - 9199, 983263, 4056, 118992, 41890, 0, 2730, 41604, 983928, 5428, 194743, + 12239, 0, 0, 4441, 0, 983272, 73940, 64352, 127513, 983268, 411, 983266, + 9199, 983264, 4056, 118992, 41890, 0, 2730, 41604, 983928, 5428, 194743, 3364, 42265, 64437, 127935, 118816, 194742, 9684, 216, 0, 1401, 128053, 44012, 0, 0, 92585, 9158, 77842, 69905, 5768, 0, 0, 0, 484, 194739, 0, 0, - 65895, 0, 0, 3338, 73935, 572, 7041, 2736, 67605, 983255, 93962, 2794, + 65895, 0, 0, 3338, 73935, 572, 7041, 2736, 67605, 983256, 93962, 2794, 8807, 64491, 77847, 5438, 5222, 5381, 43114, 0, 5193, 5125, 5456, 5509, 77846, 194747, 9534, 0, 0, 0, 3430, 0, 0, 78717, 0, 981, 0, 4330, 73929, 120536, 1824, 10908, 0, 7034, 41683, 64617, 0, 73754, 3957, 64358, 64547, - 128259, 674, 63991, 983243, 2946, 5354, 5251, 5328, 5307, 3759, 11411, + 128259, 674, 63991, 983244, 2946, 5354, 5251, 5328, 5307, 3759, 11411, 8364, 5123, 119628, 5281, 5469, 5121, 119245, 118993, 0, 5130, 0, 0, 77990, 0, 120726, 1221, 2733, 11746, 77991, 5216, 0, 0, 0, 0, 3468, 7033, 9230, 5939, 195052, 0, 0, 120677, 68400, 7278, 10321, 10289, 64613, - 10385, 41706, 0, 0, 983405, 0, 11739, 983418, 41981, 0, 5938, 0, 43766, + 10385, 41706, 0, 0, 983406, 0, 11739, 983419, 41981, 0, 5938, 0, 43766, 12448, 7576, 10401, 10337, 73852, 0, 13057, 0, 126976, 0, 10009, 0, 41703, 983629, 12165, 0, 0, 9885, 0, 8077, 0, 127908, 0, 0, 0, 92457, 0, 4220, 10725, 10433, 0, 68395, 4987, 64519, 0, 128340, 0, 0, 0, 10970, @@ -19406,53 +19408,53 @@ static unsigned int code_hash[] = { 0, 4477, 118964, 814, 42066, 66183, 66204, 43786, 119961, 66198, 41880, 66188, 11623, 78148, 11955, 66190, 66191, 41111, 66189, 73788, 7788, 4847, 0, 127759, 0, 0, 0, 1581, 6535, 78161, 12954, 430, 78160, 55259, - 78158, 128036, 5278, 4945, 42883, 4950, 983430, 68625, 983428, 7269, 0, - 5964, 12908, 983555, 0, 74764, 74477, 119146, 194936, 4949, 983421, 443, - 983419, 4944, 5467, 119603, 0, 65137, 6044, 65392, 0, 4213, 0, 41303, 0, + 78158, 128036, 5278, 4945, 42883, 4950, 983431, 68625, 983429, 7269, 0, + 5964, 12908, 983555, 0, 74764, 74477, 119146, 194936, 4949, 983422, 443, + 983420, 4944, 5467, 119603, 0, 65137, 6044, 65392, 0, 4213, 0, 41303, 0, 194931, 119962, 41306, 73984, 2698, 127159, 0, 12072, 3193, 0, 41304, 824, 128676, 12091, 78893, 78894, 119816, 4673, 64804, 4678, 119820, 119819, 65059, 0, 6739, 0, 5481, 3490, 1199, 119811, 8356, 69947, 119832, 4677, 12688, 3102, 0, 4672, 78173, 78175, 5531, 68367, 42575, 78170, 78166, 4674, 4548, 44005, 119949, 68658, 119946, 8025, 68630, 127024, - 1855, 983404, 68669, 983402, 92445, 127554, 0, 127339, 119652, 2745, - 11797, 983410, 128159, 9202, 4654, 983406, 983408, 68638, 73993, 10525, - 4649, 65209, 983409, 0, 4648, 43080, 983398, 983399, 983396, 6246, 64950, + 1855, 983405, 68669, 983403, 92445, 127554, 0, 127339, 119652, 2745, + 11797, 983411, 128159, 9202, 4654, 983407, 983409, 68638, 73993, 10525, + 4649, 65209, 983410, 0, 4648, 43080, 983399, 983400, 983397, 6246, 64950, 7828, 4650, 6777, 6776, 6775, 4653, 7822, 78005, 92384, 43187, 8669, - 983407, 6821, 65093, 0, 78881, 2716, 0, 983060, 983411, 0, 68369, 120054, + 983408, 6821, 65093, 0, 78881, 2716, 0, 983060, 983412, 0, 68369, 120054, 11060, 8547, 2711, 42165, 78027, 78026, 7992, 0, 0, 4662, 78033, 78032, 9149, 9146, 599, 2081, 78031, 78030, 194962, 4656, 10130, 68450, 7811, - 40994, 194965, 6414, 5967, 4658, 3725, 5713, 5814, 4661, 42434, 983403, + 40994, 194965, 6414, 5967, 4658, 3725, 5713, 5814, 4661, 42434, 983404, 0, 0, 64904, 9026, 10833, 74864, 7547, 4867, 0, 10008, 10222, 3054, - 194956, 9744, 78860, 7605, 4622, 119656, 983387, 94070, 983385, 983386, - 983383, 9045, 78888, 4225, 19926, 78887, 12880, 65307, 4617, 78883, - 983378, 41732, 4616, 10518, 10423, 10359, 983372, 5958, 0, 983425, 4215, - 9789, 917941, 4321, 4621, 983381, 41313, 522, 5368, 0, 65803, 0, 5366, - 12201, 5372, 0, 983401, 0, 7720, 7390, 2696, 983392, 0, 4638, 983397, + 194956, 9744, 78860, 7605, 4622, 119656, 983388, 94070, 983386, 983387, + 983384, 9045, 78888, 4225, 19926, 78887, 12880, 65307, 4617, 78883, + 983379, 41732, 4616, 10518, 10423, 10359, 983373, 5958, 0, 983426, 4215, + 9789, 917941, 4321, 4621, 983382, 41313, 522, 5368, 0, 65803, 0, 5366, + 12201, 5372, 0, 983402, 0, 7720, 7390, 2696, 983393, 0, 4638, 983398, 1790, 78242, 5965, 64363, 66569, 68646, 127833, 5376, 1835, 5335, 194966, 128089, 4633, 0, 68119, 1180, 4632, 128093, 5387, 5333, 0, 0, 42094, 5331, 4634, 11928, 983594, 5338, 4637, 128170, 5971, 42414, 0, 1268, 65097, 42361, 0, 0, 73853, 1427, 0, 0, 5970, 3431, 0, 10358, 10422, 4758, - 983366, 1608, 2738, 0, 10455, 4753, 74026, 11344, 4222, 6240, 5231, - 74384, 983370, 68377, 6248, 983354, 983355, 983352, 42318, 92582, 5229, + 983367, 1608, 2738, 0, 10455, 4753, 74026, 11344, 4222, 6240, 5231, + 74384, 983371, 68377, 6248, 983355, 983356, 983353, 42318, 92582, 5229, 4757, 0, 0, 2728, 4752, 64563, 65235, 5234, 0, 128145, 0, 10713, 7166, 0, 2622, 7460, 127302, 0, 0, 8954, 74760, 65189, 2632, 42617, 10108, 1011, 5574, 1853, 2709, 65139, 5577, 0, 0, 118871, 68641, 8965, 7635, 42177, - 5316, 0, 5314, 6451, 5572, 66464, 5312, 0, 5525, 5330, 5319, 983412, - 983863, 194907, 44003, 0, 983472, 983415, 120498, 127851, 195009, 983856, - 74022, 983414, 64609, 68643, 120634, 983481, 5721, 983393, 5519, 8632, - 66465, 11267, 73961, 92278, 5720, 983344, 1692, 4219, 4610, 8696, 4305, - 0, 4609, 43478, 4614, 541, 983347, 5287, 5309, 5285, 68389, 5961, 4647, - 56, 4216, 10577, 41381, 601, 4613, 983341, 983338, 77849, 4608, 64260, + 5316, 0, 5314, 6451, 5572, 66464, 5312, 0, 5525, 5330, 5319, 983413, + 983863, 194907, 44003, 0, 983473, 983416, 120498, 127851, 195009, 983856, + 74022, 983415, 64609, 68643, 120634, 983482, 5721, 983394, 5519, 8632, + 66465, 11267, 73961, 92278, 5720, 983345, 1692, 4219, 4610, 8696, 4305, + 0, 4609, 43478, 4614, 541, 983348, 5287, 5309, 5285, 68389, 5961, 4647, + 56, 4216, 10577, 41381, 601, 4613, 983342, 983339, 77849, 4608, 64260, 41124, 5190, 67628, 0, 68145, 7086, 0, 67998, 67620, 0, 2734, 11074, 0, 67627, 43593, 0, 67625, 5960, 0, 8992, 42593, 128260, 1782, 67622, 68114, 119939, 0, 68180, 5501, 119952, 42508, 7442, 43665, 359, 41253, 68392, 6239, 119956, 41256, 0, 68134, 0, 74209, 917550, 9346, 69660, 41254, 128047, 43291, 3767, 5737, 0, 4865, 0, 5740, 917997, 5736, 4368, 64724, 7193, 68137, 0, 5739, 41024, 4866, 0, 73904, 983831, 4869, 120563, 0, - 4223, 128201, 6650, 126509, 0, 983455, 127890, 4870, 120445, 68661, 6716, + 4223, 128201, 6650, 126509, 0, 983456, 127890, 4870, 120445, 68661, 6716, 78176, 68667, 68382, 68676, 127925, 10122, 4864, 66568, 4144, 7937, 0, 6245, 68652, 2732, 42734, 745, 0, 195097, 92195, 4777, 7821, 0, 68631, - 42775, 0, 194954, 0, 3097, 0, 5966, 983478, 4778, 0, 10863, 0, 4781, 0, + 42775, 0, 194954, 0, 3097, 0, 5966, 983479, 4778, 0, 10863, 0, 4781, 0, 64407, 0, 128323, 8577, 128562, 68196, 43285, 10216, 4782, 0, 0, 120757, 68618, 12325, 43056, 8717, 0, 0, 4776, 73818, 11492, 8700, 0, 13176, 68363, 10426, 0, 917599, 10362, 194706, 1715, 4849, 8242, 9561, 73922, @@ -19460,19 +19462,19 @@ static unsigned int code_hash[] = { 4854, 127918, 5164, 983861, 1350, 5124, 64420, 1993, 5362, 8471, 2708, 92471, 12445, 3785, 234, 3199, 0, 41268, 4848, 2530, 917909, 2068, 1964, 0, 73762, 10458, 0, 8576, 78543, 0, 2704, 4794, 0, 68211, 8322, 4797, - 5753, 0, 2694, 4792, 0, 2439, 65104, 69804, 983416, 303, 983101, 92622, - 983417, 2437, 0, 4221, 4844, 92216, 0, 0, 0, 70042, 0, 43292, 0, 2441, + 5753, 0, 2694, 4792, 0, 2439, 65104, 69804, 983417, 303, 983101, 92622, + 983418, 2437, 0, 4221, 4844, 92216, 0, 0, 0, 70042, 0, 43292, 0, 2441, 10739, 65090, 0, 119327, 126541, 2451, 2714, 119326, 0, 43379, 4937, 43376, 753, 5849, 10597, 43089, 11722, 9248, 92555, 42879, 11725, 0, 0, 2726, 3107, 73958, 4941, 64937, 119233, 9140, 1408, 5261, 4607, 0, 181, - 983422, 4942, 9539, 4938, 0, 65201, 5259, 9369, 64185, 4142, 5257, + 983423, 4942, 9539, 4938, 0, 65201, 5259, 9369, 64185, 4142, 5257, 983601, 0, 4964, 5264, 64178, 64177, 12979, 41411, 64182, 64181, 64180, 64179, 9482, 4873, 41231, 1822, 42526, 128581, 12758, 3865, 0, 0, 10500, 0, 119024, 78028, 92408, 9830, 43642, 389, 10893, 7521, 127879, 4872, 5463, 0, 3125, 9567, 0, 4878, 5459, 4604, 917931, 9557, 5465, 68617, 0, - 11494, 126492, 9563, 10865, 74570, 43279, 64186, 983431, 78714, 64191, + 11494, 126492, 9563, 10865, 74570, 43279, 64186, 983432, 78714, 64191, 64190, 8898, 64188, 0, 41030, 78836, 0, 917835, 78820, 917834, 0, 78805, - 41031, 78801, 11960, 6745, 3082, 983429, 78539, 73919, 10573, 41744, + 41031, 78801, 11960, 6745, 3082, 983430, 78539, 73919, 10573, 41744, 7079, 5856, 127043, 5163, 78809, 128162, 1817, 66724, 78538, 0, 10564, 7763, 13077, 41813, 4400, 41745, 64207, 10275, 8925, 10371, 10307, 41814, 4248, 0, 0, 4541, 6299, 64204, 64203, 64201, 64200, 64199, 64198, 126471, @@ -19488,30 +19490,30 @@ static unsigned int code_hash[] = { 3933, 74559, 4740, 7954, 0, 0, 42609, 0, 74175, 0, 127016, 0, 983864, 42130, 0, 5151, 917829, 917823, 0, 93980, 0, 7620, 3800, 65122, 0, 0, 8355, 7854, 0, 954, 64927, 4185, 41045, 127141, 41438, 41439, 68666, - 10711, 4593, 127745, 120584, 983400, 64774, 8053, 10532, 66727, 0, 0, 0, + 10711, 4593, 127745, 120584, 983401, 64774, 8053, 10532, 66727, 0, 0, 0, 64759, 6381, 5166, 9888, 127800, 5148, 42834, 0, 78205, 78206, 43787, 78204, 64131, 3119, 917814, 0, 3060, 64135, 9986, 0, 77876, 636, 11698, - 0, 983443, 9916, 11701, 7836, 42741, 64137, 8320, 78640, 8863, 92431, - 119960, 1477, 43289, 0, 74358, 8618, 983394, 9908, 983972, 0, 0, 3937, - 12312, 0, 983395, 0, 64781, 912, 6349, 4536, 93954, 74532, 126594, 6244, - 92209, 71341, 3935, 120665, 983468, 0, 11950, 5392, 42248, 65129, 68656, + 0, 983444, 9916, 11701, 7836, 42741, 64137, 8320, 78640, 8863, 92431, + 119960, 1477, 43289, 0, 74358, 8618, 983395, 9908, 983972, 0, 0, 3937, + 12312, 0, 983396, 0, 64781, 912, 6349, 4536, 93954, 74532, 126594, 6244, + 92209, 71341, 3935, 120665, 983469, 0, 11950, 5392, 42248, 65129, 68656, 5397, 0, 12046, 12599, 0, 128261, 5395, 0, 5393, 354, 68615, 119948, 78503, 0, 0, 42039, 0, 0, 64142, 626, 0, 5895, 0, 0, 5780, 0, 0, 128874, 0, 0, 43297, 983079, 4311, 4644, 8818, 0, 128186, 0, 7145, 3918, 66452, 3797, 1644, 92346, 9658, 4140, 11385, 65947, 6455, 9030, 813, 119945, 68131, 4146, 119957, 5360, 2466, 0, 67669, 119942, 6249, 42117, 92287, - 128224, 0, 0, 74046, 43745, 4911, 988, 917807, 0, 983460, 43061, 7054, + 128224, 0, 0, 74046, 43745, 4911, 988, 917807, 0, 983461, 43061, 7054, 64147, 0, 64920, 68195, 6698, 118933, 92506, 0, 120006, 11981, 12202, 0, 11032, 67654, 6093, 11608, 975, 68662, 65843, 170, 0, 0, 4169, 0, 41859, 6058, 120401, 13203, 120657, 0, 0, 68657, 9818, 10178, 10324, 42106, 5898, 74540, 4738, 41856, 7062, 917865, 4737, 11779, 4742, 120564, 92391, - 73736, 983356, 9825, 6448, 6715, 127008, 4831, 0, 92525, 0, 5300, 4741, - 42108, 983346, 64159, 4736, 64148, 0, 849, 92191, 78491, 43288, 0, 66620, - 917916, 127331, 65549, 9496, 64598, 118866, 983358, 7876, 68132, 917872, + 73736, 983357, 9825, 6448, 6715, 127008, 4831, 0, 92525, 0, 5300, 4741, + 42108, 983347, 64159, 4736, 64148, 0, 849, 92191, 78491, 43288, 0, 66620, + 917916, 127331, 65549, 9496, 64598, 118866, 983359, 7876, 68132, 917872, 3928, 917870, 43378, 10706, 7198, 0, 4842, 12053, 128129, 0, 4841, 0, 4171, 12008, 6251, 3923, 1490, 0, 119591, 126512, 40972, 5245, 0, 10114, 42001, 41888, 4845, 8332, 40974, 64347, 4840, 9077, 78346, 1747, 917849, - 4825, 69240, 917852, 68655, 0, 983380, 0, 0, 68628, 983339, 9850, 118937, + 4825, 69240, 917852, 68655, 0, 983381, 0, 0, 68628, 983340, 9850, 118937, 367, 1472, 917859, 6687, 1274, 0, 5905, 12339, 8919, 73953, 10907, 65261, 11023, 119559, 4830, 9134, 78666, 64126, 43011, 0, 126626, 64101, 0, 0, 4824, 10614, 119659, 0, 1888, 1960, 7861, 917856, 78524, 41836, 43012, @@ -19520,7 +19522,7 @@ static unsigned int code_hash[] = { 64118, 126998, 12962, 0, 126580, 4017, 12827, 5241, 120392, 0, 41118, 3924, 0, 11366, 917843, 0, 0, 917846, 41116, 917844, 917564, 0, 11363, 12057, 11917, 1567, 74000, 4721, 126641, 66202, 8957, 4139, 0, 0, 0, 0, - 0, 12740, 128702, 4722, 6816, 127793, 12759, 4725, 983375, 4726, 0, + 0, 12740, 128702, 4722, 6816, 127793, 12759, 4725, 983376, 4726, 0, 194892, 0, 128321, 917905, 0, 12755, 12762, 4015, 0, 8052, 476, 0, 0, 128294, 64212, 41020, 1382, 64209, 64216, 44002, 64214, 1656, 41831, 0, 0, 41843, 8720, 3908, 1452, 13111, 0, 64067, 127328, 8552, 64113, 41845, @@ -19537,11 +19539,11 @@ static unsigned int code_hash[] = { 4814, 0, 4810, 0, 0, 64928, 10543, 0, 3522, 71335, 414, 65404, 0, 195027, 6456, 73820, 0, 6691, 42193, 92225, 128171, 0, 74495, 0, 0, 0, 118820, 9751, 65407, 128085, 11770, 3919, 0, 0, 65061, 0, 0, 0, 12235, 0, 0, - 127233, 64092, 983462, 64080, 0, 64090, 0, 69913, 10162, 10310, 0, 8454, + 127233, 64092, 983463, 64080, 0, 64090, 0, 69913, 10162, 10310, 0, 8454, 127888, 42038, 387, 41363, 12737, 0, 4780, 43368, 0, 64310, 64621, 6732, 78116, 0, 983139, 0, 983074, 8896, 0, 375, 6976, 66582, 119005, 983865, - 0, 983426, 119202, 119203, 12526, 43120, 2315, 0, 1938, 119197, 0, 4529, - 119200, 119201, 119198, 119199, 69692, 983424, 69698, 13150, 64492, 0, 0, + 0, 983427, 119202, 119203, 12526, 43120, 2315, 0, 1938, 119197, 0, 4529, + 119200, 119201, 119198, 119199, 69692, 983425, 69698, 13150, 64492, 0, 0, 2291, 12902, 0, 42891, 66327, 74298, 917857, 10799, 69690, 2587, 66372, 0, 4193, 92250, 4241, 983057, 7998, 0, 0, 0, 126640, 2316, 118821, 0, 0, 0, 64297, 74799, 92442, 74140, 0, 5373, 0, 983877, 3762, 10015, 120672, @@ -19550,13 +19552,13 @@ static unsigned int code_hash[] = { 280, 74558, 127332, 68138, 13072, 1894, 0, 0, 65478, 43310, 7231, 0, 11773, 0, 0, 0, 0, 2551, 0, 6453, 10200, 6235, 983743, 119237, 0, 128805, 4470, 11826, 917557, 7780, 5369, 118958, 5249, 0, 5367, 8756, 127143, 0, - 5377, 120585, 68143, 1688, 78245, 983348, 69685, 983747, 0, 0, 44020, + 5377, 120585, 68143, 1688, 78245, 983349, 69685, 983747, 0, 0, 44020, 6808, 41319, 1300, 10650, 41692, 64505, 2290, 0, 119624, 1465, 10850, 3943, 0, 41205, 41315, 118961, 0, 0, 5352, 0, 0, 8839, 41314, 7384, 7785, 41204, 127322, 41209, 69637, 92241, 43607, 0, 0, 5420, 3897, 10134, 0, 74417, 4018, 7150, 68127, 0, 0, 0, 0, 127526, 2561, 68621, 3542, 7148, 12076, 7951, 68152, 118857, 5303, 6276, 1706, 0, 78751, 7146, 0, 65150, - 41819, 0, 73951, 10847, 41822, 9985, 860, 0, 10506, 983427, 69641, 10753, + 41819, 0, 73951, 10847, 41822, 9985, 860, 0, 10506, 983428, 69641, 10753, 10830, 0, 615, 64490, 7574, 92617, 77922, 0, 12909, 43016, 64559, 127028, 0, 0, 67996, 2020, 0, 4022, 128783, 0, 77923, 126593, 41691, 0, 0, 74329, 0, 64622, 9070, 0, 68411, 3911, 42829, 43122, 1033, 74440, 0, 7000, 3904, @@ -19590,9 +19592,9 @@ static unsigned int code_hash[] = { 9425, 9426, 9427, 9428, 9429, 64758, 2362, 9655, 0, 2004, 9096, 9782, 128848, 9172, 128545, 19965, 0, 5955, 67666, 1108, 0, 74773, 0, 0, 64782, 3926, 92448, 65210, 8798, 0, 92165, 1392, 0, 0, 127364, 10606, 8065, - 118805, 10353, 10417, 0, 0, 64524, 92418, 4019, 0, 983280, 43280, 8219, + 118805, 10353, 10417, 0, 0, 64524, 92418, 4019, 0, 983281, 43280, 8219, 68402, 1812, 119963, 983683, 0, 126488, 42410, 74448, 119132, 6054, - 10697, 3169, 42297, 42322, 10642, 3909, 9950, 0, 128139, 983253, 68678, + 10697, 3169, 42297, 42322, 10642, 3909, 9950, 0, 128139, 983254, 68678, 0, 0, 1049, 0, 65707, 2304, 41806, 92326, 42336, 3921, 0, 11775, 64760, 11766, 1038, 42303, 9823, 127278, 69236, 4008, 64004, 8773, 10733, 36, 0, 5153, 41805, 0, 73735, 763, 41808, 64910, 983130, 2009, 0, 0, 127142, @@ -19634,9 +19636,9 @@ static unsigned int code_hash[] = { 120130, 4267, 1631, 42206, 77983, 0, 195046, 65700, 66562, 0, 64645, 0, 0, 126588, 12586, 0, 9242, 127922, 0, 4523, 5842, 10495, 3122, 983788, 7793, 78275, 9328, 119104, 78393, 12604, 0, 6615, 2285, 92344, 3986, - 44025, 0, 8912, 64555, 7409, 0, 983350, 9541, 78276, 0, 11275, 8540, - 11498, 0, 983349, 41040, 2459, 0, 13060, 41041, 74413, 983138, 0, 0, - 68427, 10450, 12551, 41043, 7020, 120353, 3765, 983342, 0, 1606, 120348, + 44025, 0, 8912, 64555, 7409, 0, 983351, 9541, 78276, 0, 11275, 8540, + 11498, 0, 983350, 41040, 2459, 0, 13060, 41041, 74413, 983138, 0, 0, + 68427, 10450, 12551, 41043, 7020, 120353, 3765, 983343, 0, 1606, 120348, 120351, 3093, 68436, 0, 983061, 119613, 0, 0, 4312, 74091, 120337, 120336, 11923, 4023, 120333, 5763, 94015, 4827, 10894, 12810, 64406, 118785, 4455, 74321, 433, 119620, 66660, 2499, 0, 0, 118837, 11973, @@ -19646,11 +19648,11 @@ static unsigned int code_hash[] = { 7004, 0, 65880, 127886, 119048, 2380, 11380, 0, 93996, 2376, 0, 119320, 0, 5197, 127046, 127047, 127048, 2366, 127050, 127051, 120554, 120045, 0, 0, 0, 983084, 0, 0, 0, 74188, 71342, 983086, 983573, 120047, 128575, 0, - 0, 120049, 0, 1847, 0, 10339, 983357, 42384, 0, 4227, 74158, 0, 92501, - 43032, 0, 42365, 0, 12671, 11384, 0, 983457, 0, 64797, 983337, 5820, - 983336, 120052, 120065, 0, 120064, 120650, 42137, 9893, 2754, 12664, + 0, 120049, 0, 1847, 0, 10339, 983358, 42384, 0, 4227, 74158, 0, 92501, + 43032, 0, 42365, 0, 12671, 11384, 0, 983458, 0, 64797, 983338, 5820, + 983337, 120052, 120065, 0, 120064, 120650, 42137, 9893, 2754, 12664, 120063, 0, 7377, 127867, 41799, 65530, 1711, 12984, 43039, 3114, 6255, - 983332, 118938, 0, 10853, 926, 983361, 74184, 983360, 120055, 0, 43175, + 983333, 118938, 0, 10853, 926, 983362, 74184, 983361, 120055, 0, 43175, 0, 43037, 41798, 41035, 11583, 127769, 41801, 119088, 119605, 520, 4200, 12699, 8331, 0, 3091, 41034, 127353, 983672, 8360, 0, 78044, 321, 4229, 64543, 917946, 65563, 0, 917974, 2861, 43793, 10095, 0, 9195, 92386, @@ -19664,7 +19666,7 @@ static unsigned int code_hash[] = { 78222, 1346, 0, 917631, 64573, 64897, 423, 1818, 65144, 0, 8272, 127812, 19911, 4218, 3087, 64960, 127234, 43564, 0, 0, 9584, 10465, 983893, 74359, 12626, 9106, 0, 42642, 120230, 64750, 9390, 0, 41797, 0, 0, 265, - 41795, 64666, 126508, 43530, 2752, 0, 0, 983485, 59, 0, 983593, 0, 92371, + 41795, 64666, 126508, 43530, 2752, 0, 0, 983486, 59, 0, 983593, 0, 92371, 77873, 41810, 0, 7010, 0, 41809, 41495, 119364, 0, 42252, 42213, 8009, 3305, 43033, 511, 92700, 66255, 13127, 120067, 0, 74397, 120235, 917977, 65915, 1400, 41812, 10685, 194870, 2103, 10387, 4453, 43276, 917783, @@ -19703,7 +19705,7 @@ static unsigned int code_hash[] = { 78719, 66573, 0, 78724, 78712, 11761, 194655, 0, 41094, 0, 0, 194893, 0, 92689, 6196, 6945, 93969, 194890, 128184, 120491, 11816, 194943, 5733, 2930, 0, 0, 41098, 0, 41093, 0, 66626, 588, 9760, 0, 194717, 1238, 200, - 983205, 1660, 73916, 0, 118905, 74362, 0, 92485, 194651, 0, 983697, 3394, + 983206, 1660, 73916, 0, 118905, 74362, 0, 92485, 194651, 0, 983697, 3394, 194894, 120668, 0, 0, 127358, 66219, 127183, 43284, 194656, 7817, 1841, 11055, 120533, 194979, 194982, 1669, 10776, 194981, 7701, 194980, 0, 194995, 1732, 4030, 0, 3963, 66611, 127530, 41768, 6491, 0, 65324, 914, @@ -19732,7 +19734,7 @@ static unsigned int code_hash[] = { 68465, 13027, 42824, 120574, 1039, 7151, 10155, 5745, 188, 41858, 11592, 0, 74015, 9055, 41853, 4858, 917780, 0, 436, 4771, 0, 2786, 0, 4856, 8051, 0, 119609, 71327, 9644, 0, 0, 0, 194916, 120732, 66710, 118834, - 983351, 73906, 128680, 127114, 0, 10234, 5843, 11939, 0, 42157, 0, 3157, + 983352, 73906, 128680, 127114, 0, 10234, 5843, 11939, 0, 42157, 0, 3157, 194918, 68393, 0, 3504, 119178, 0, 10822, 5149, 66029, 10226, 65142, 128025, 3594, 42424, 194959, 40, 12657, 983656, 0, 386, 0, 8834, 0, 12815, 43574, 0, 73907, 0, 74196, 7220, 74504, 0, 74316, 0, 65322, 4304, @@ -19746,7 +19748,7 @@ static unsigned int code_hash[] = { 42507, 1962, 43305, 78476, 42505, 11660, 0, 2072, 92312, 6995, 74173, 5437, 74174, 10669, 8702, 7964, 92352, 0, 199, 194843, 4105, 194845, 194699, 194847, 194710, 119875, 13148, 7560, 78479, 9226, 78480, 195070, - 6472, 65814, 73954, 0, 4724, 0, 0, 9191, 0, 64432, 983808, 983241, + 6472, 65814, 73954, 0, 4724, 0, 0, 9191, 0, 64432, 983808, 983242, 195024, 10196, 7886, 0, 6585, 0, 6680, 195042, 0, 195051, 6679, 74412, 92251, 194866, 74421, 11382, 983622, 983628, 127891, 127484, 194833, 194832, 6681, 127482, 12693, 194836, 42727, 78196, 128252, 78195, 65442, @@ -19792,11 +19794,11 @@ static unsigned int code_hash[] = { 64032, 42735, 64038, 64037, 64036, 64035, 4291, 194928, 64015, 64014, 64681, 194930, 0, 78145, 0, 43090, 0, 3476, 8973, 64012, 42473, 64010, 64008, 64007, 2003, 7706, 64517, 78153, 2538, 64009, 204, 0, 4802, 4111, - 8239, 9098, 4805, 64001, 64057, 7885, 7247, 64054, 983258, 0, 4767, 9343, + 8239, 9098, 4805, 64001, 64057, 7885, 7247, 64054, 983259, 0, 4767, 9343, 64049, 64048, 120034, 1133, 64053, 64052, 43453, 64050, 41340, 118975, 194835, 10005, 12329, 41333, 0, 8489, 1942, 0, 194834, 42520, 128249, 0, 0, 10760, 64023, 64022, 64021, 6582, 43670, 0, 64025, 9167, 42151, 78244, - 983226, 2026, 64019, 64018, 64017, 64016, 12768, 0, 7582, 78252, 78248, + 983227, 2026, 64019, 64018, 64017, 64016, 12768, 0, 7582, 78252, 78248, 77914, 78246, 78247, 0, 77915, 78766, 6788, 13094, 77920, 7532, 41414, 78520, 3179, 78518, 64769, 78514, 78517, 11461, 74454, 10751, 9051, 120720, 6708, 10535, 0, 68218, 55274, 2008, 64031, 64030, 294, 41874, 0, @@ -19804,7 +19806,7 @@ static unsigned int code_hash[] = { 6343, 43247, 119888, 0, 119886, 119891, 119892, 119889, 11433, 119895, 119896, 0, 7801, 65578, 194839, 12915, 43968, 3297, 9699, 194955, 1135, 0, 0, 128525, 1995, 6722, 983916, 0, 2552, 41546, 60, 68394, 8649, 41549, - 78496, 983319, 0, 6682, 0, 78679, 64710, 41547, 983621, 2013, 128291, + 78496, 983320, 0, 6682, 0, 78679, 64710, 41547, 983621, 2013, 128291, 78530, 78532, 78528, 78529, 12832, 78493, 8081, 8362, 3537, 119908, 9137, 7155, 8999, 0, 78533, 3466, 0, 0, 1996, 0, 3453, 6282, 0, 2002, 2000, 120175, 537, 0, 4179, 65119, 1998, 0, 1842, 0, 92674, 9628, 68446, 12081, @@ -19819,7 +19821,7 @@ static unsigned int code_hash[] = { #define code_poly 32771 static const unsigned int aliases_start = 0xf0000; -static const unsigned int aliases_end = 0xf01c1; +static const unsigned int aliases_end = 0xf01c2; static const unsigned int name_aliases[] = { 0x0000, 0x0000, @@ -19982,6 +19984,7 @@ static const unsigned int name_aliases[] = { 0x01A2, 0x01A3, 0x034F, + 0x0709, 0x0CDE, 0x0E9D, 0x0E9F, diff --git a/Modules/zipimport.c b/Modules/zipimport.c index 2feb2a8..56e5c4c 100644 --- a/Modules/zipimport.c +++ b/Modules/zipimport.c @@ -862,6 +862,7 @@ read_directory(PyObject *archive) long l, count; Py_ssize_t i; char name[MAXPATHLEN + 5]; + char dummy[8]; /* Buffer to read unused header values into */ PyObject *nameobj = NULL; char *p, endof_central_dir[22]; Py_ssize_t arc_offset; /* Absolute offset to start of the zip-archive. */ @@ -905,17 +906,23 @@ read_directory(PyObject *archive) /* Start of Central Directory */ count = 0; + if (fseek(fp, header_offset, 0) == -1) + goto file_error; for (;;) { PyObject *t; int err; - if (fseek(fp, header_offset, 0) == -1) /* Start of file header */ - goto fseek_error; + /* Start of file header */ l = PyMarshal_ReadLongFromFile(fp); if (l != 0x02014B50) break; /* Bad: Central Dir File Header */ - if (fseek(fp, header_offset + 8, 0) == -1) - goto fseek_error; + + /* On Windows, calling fseek to skip over the fields we don't use is + slower than reading the data into a dummy buffer because fseek flushes + stdio's internal buffers. See issue #8745. */ + if (fread(dummy, 1, 4, fp) != 4) /* Skip unused fields, avoid fseek */ + goto file_error; + flags = (unsigned short)PyMarshal_ReadShortFromFile(fp); compress = PyMarshal_ReadShortFromFile(fp); time = PyMarshal_ReadShortFromFile(fp); @@ -924,11 +931,11 @@ read_directory(PyObject *archive) data_size = PyMarshal_ReadLongFromFile(fp); file_size = PyMarshal_ReadLongFromFile(fp); name_size = PyMarshal_ReadShortFromFile(fp); - header_size = 46 + name_size + + header_size = name_size + PyMarshal_ReadShortFromFile(fp) + PyMarshal_ReadShortFromFile(fp); - if (fseek(fp, header_offset + 42, 0) == -1) - goto fseek_error; + if (fread(dummy, 1, 8, fp) != 8) /* Skip unused fields, avoid fseek */ + goto file_error; file_offset = PyMarshal_ReadLongFromFile(fp) + arc_offset; if (name_size > MAXPATHLEN) name_size = MAXPATHLEN; @@ -941,7 +948,9 @@ read_directory(PyObject *archive) p++; } *p = 0; /* Add terminating null byte */ - header_offset += header_size; + for (; i < header_size; i++) /* Skip the rest of the header */ + if(getc(fp) == EOF) /* Avoid fseek */ + goto file_error; bootstrap = 0; if (flags & 0x0800) @@ -988,7 +997,7 @@ read_directory(PyObject *archive) PySys_FormatStderr("# zipimport: found %ld names in %R\n", count, archive); return files; -fseek_error: +file_error: fclose(fp); Py_XDECREF(files); Py_XDECREF(nameobj); diff --git a/Modules/zlibmodule.c b/Modules/zlibmodule.c index e718795..b40e081 100644 --- a/Modules/zlibmodule.c +++ b/Modules/zlibmodule.c @@ -161,7 +161,7 @@ PyZlib_compress(PyObject *self, PyObject *args) goto error; } input = pinput.buf; - length = pinput.len; + length = (unsigned int)pinput.len; zst.avail_out = length + length/1000 + 12 + 1; @@ -251,7 +251,7 @@ PyZlib_decompress(PyObject *self, PyObject *args) goto error; } input = pinput.buf; - length = pinput.len; + length = (unsigned int)pinput.len; if (r_strlen <= 0) r_strlen = 1; @@ -573,7 +573,7 @@ save_unconsumed_input(compobject *self, int err) Py_ssize_t old_size = PyBytes_GET_SIZE(self->unused_data); Py_ssize_t new_size; PyObject *new_data; - if (self->zst.avail_in > PY_SSIZE_T_MAX - old_size) { + if ((Py_ssize_t)self->zst.avail_in > PY_SSIZE_T_MAX - old_size) { PyErr_NoMemory(); return -1; } |