diff options
Diffstat (limited to 'src/corelib')
97 files changed, 9902 insertions, 6503 deletions
diff --git a/src/corelib/Qt5Config.cmake.in b/src/corelib/Qt5Config.cmake.in new file mode 100644 index 0000000000..408dd64496 --- /dev/null +++ b/src/corelib/Qt5Config.cmake.in @@ -0,0 +1,43 @@ + +if (CMAKE_VERSION VERSION_LESS 2.8.9) + message(FATAL_ERROR \"Qt5 requires at least CMake version 2.8.9\") +endif() + +if (NOT Qt5_FIND_COMPONENTS) + set(Qt5_NOT_FOUND_MESSAGE \"The Qt5 package requires at least one component\") + set(Qt5_FOUND False) + return() +endif() + +set(_Qt5_FIND_PARTS_REQUIRED) +if (Qt5_FIND_REQUIRED) + set(_Qt5_FIND_PARTS_REQUIRED REQUIRED) +endif() +set(_Qt5_FIND_PARTS_QUIET) +if (Qt5_FIND_QUIETLY) + set(_Qt5_FIND_PARTS_QUIET QUIET) +endif() + +get_filename_component(_qt5_install_prefix \"${CMAKE_CURRENT_LIST_DIR}/$${CMAKE_RELATIVE_INSTALL_DIR}\" ABSOLUTE) + +set(_Qt5_NOTFOUND_MESSAGE) + +foreach(module ${Qt5_FIND_COMPONENTS}) + find_package(Qt5${module} + ${_Qt5_FIND_PARTS_QUIET} + ${_Qt5_FIND_PARTS_REQUIRED} + PATHS \"${_qt5_install_prefix}\" NO_DEFAULT_PATH + ) + if (NOT Qt5${module}_FOUND) + if (Qt5_FIND_REQUIRED_${module}) + set(_Qt5_NOTFOUND_MESSAGE \"${_Qt5_NOTFOUND_MESSAGE}Failed to find Qt5 component \\\"${module}\\\" config file at \\\"${_qt5_install_prefix}/lib/cmake/Qt5${module}/Qt5${module}Config.cmake\\\"\\n\") + elseif(NOT Qt5_FIND_QUIETLY) + message(WARNING \"Failed to find Qt5 component \\\"${module}\\\" config file at \\\"${_qt5_install_prefix}/lib/cmake/Qt5${module}/Qt5${module}Config.cmake\\\"\") + endif() + endif() +endforeach() + +if (_Qt5_NOTFOUND_MESSAGE) + set(Qt5_NOT_FOUND_MESSAGE \"${_Qt5_NOTFOUND_MESSAGE}\") + set(Qt5_FOUND False) +endif() diff --git a/src/corelib/arch/qatomic_vxworks.h b/src/corelib/arch/qatomic_vxworks.h index a8664cf752..e6a7853c96 100644 --- a/src/corelib/arch/qatomic_vxworks.h +++ b/src/corelib/arch/qatomic_vxworks.h @@ -56,8 +56,13 @@ QT_BEGIN_HEADER # include <vxWorksCommon.h> # include <taskLib.h> #else +#if defined(_WRS_KERNEL) extern "C" int taskLock(); extern "C" int taskUnlock(); +#else +inline int taskLock() { return 0; } +inline int taskUnlock() { return 0; } +#endif #endif diff --git a/src/corelib/corelib.pro b/src/corelib/corelib.pro index bf2fd3c84a..2bac1bcbef 100644 --- a/src/corelib/corelib.pro +++ b/src/corelib/corelib.pro @@ -60,10 +60,16 @@ ctest_macros_file.input = $$PWD/Qt5CTestMacros.cmake ctest_macros_file.output = $$DESTDIR/cmake/Qt5Core/Qt5CTestMacros.cmake ctest_macros_file.CONFIG = verbatim -QMAKE_SUBSTITUTES += ctest_macros_file +cmake_umbrella_config_file.input = $$PWD/Qt5Config.cmake.in +cmake_umbrella_config_file.output = $$DESTDIR/cmake/Qt5/Qt5Config.cmake + +cmake_qt5_umbrella_module_files.files = $$cmake_umbrella_config_file.output +cmake_qt5_umbrella_module_files.path = $$[QT_INSTALL_LIBS]/cmake/Qt5 + +QMAKE_SUBSTITUTES += ctest_macros_file cmake_umbrella_config_file ctest_qt5_module_files.files += $$ctest_macros_file.output ctest_qt5_module_files.path = $$[QT_INSTALL_LIBS]/cmake/Qt5Core -INSTALLS += ctest_qt5_module_files +INSTALLS += ctest_qt5_module_files cmake_qt5_umbrella_module_files diff --git a/src/corelib/doc/qtcore.qdocconf b/src/corelib/doc/qtcore.qdocconf index cb87530f54..bf402cae97 100644 --- a/src/corelib/doc/qtcore.qdocconf +++ b/src/corelib/doc/qtcore.qdocconf @@ -3,21 +3,21 @@ include($QT_INSTALL_DOCS/global/qt-module-defaults.qdocconf) project = QtCore description = Qt Core Reference Documentation url = http://qt-project.org/doc/qtcore -version = 5.0.1 +version = 5.1.0 examplesinstallpath = core qhp.projects = QtCore qhp.QtCore.file = qtcore.qhp -qhp.QtCore.namespace = org.qt-project.qtcore.501 +qhp.QtCore.namespace = org.qt-project.qtcore.510 qhp.QtCore.virtualFolder = qtcore qhp.QtCore.indexTitle = Qt Core qhp.QtCore.indexRoot = -qhp.QtCore.filterAttributes = qtcore 5.0.1 qtrefdoc -qhp.QtCore.customFilters.Qt.name = QtCore 5.0.1 -qhp.QtCore.customFilters.Qt.filterAttributes = qtcore 5.0.1 +qhp.QtCore.filterAttributes = qtcore 5.1.0 qtrefdoc +qhp.QtCore.customFilters.Qt.name = QtCore 5.1.0 +qhp.QtCore.customFilters.Qt.filterAttributes = qtcore 5.1.0 qhp.QtCore.subprojects = classes qhp.QtCore.subprojects.classes.title = C++ Classes qhp.QtCore.subprojects.classes.indexTitle = Qt Core C++ Classes diff --git a/src/corelib/doc/snippets/code/doc_src_properties.cpp b/src/corelib/doc/snippets/code/doc_src_properties.cpp index 9a25918d47..7a70200cce 100644 --- a/src/corelib/doc/snippets/code/doc_src_properties.cpp +++ b/src/corelib/doc/snippets/code/doc_src_properties.cpp @@ -40,8 +40,8 @@ //! [0] Q_PROPERTY(type name - READ getFunction - [WRITE setFunction] + (READ getFunction [WRITE setFunction] | + MEMBER memberName [(READ getFunction | WRITE setFunction)]) [RESET resetFunction] [NOTIFY notifySignal] [REVISION int] @@ -130,3 +130,20 @@ object->setProperty("priority", "VeryHigh"); //! [7] Q_CLASSINFO("Version", "3.0.0") //! [7] + +//! [8] + Q_PROPERTY(QColor color MEMBER m_color NOTIFY colorChanged) + Q_PROPERTY(qreal spacing MEMBER m_spacing NOTIFY spacingChanged) + Q_PROPERTY(QString text MEMBER m_text NOTIFY textChanged) + ... +signals: + void colorChanged(); + void spacingChanged(); + void textChanged(const QString &newText); + +private: + QColor m_color; + qreal m_spacing; + QString m_text; +//! [8] + diff --git a/src/corelib/doc/snippets/code/src_corelib_kernel_qcoreapplication.cpp b/src/corelib/doc/snippets/code/src_corelib_kernel_qcoreapplication.cpp index cbb5a9db5d..c349a6dbba 100644 --- a/src/corelib/doc/snippets/code/src_corelib_kernel_qcoreapplication.cpp +++ b/src/corelib/doc/snippets/code/src_corelib_kernel_qcoreapplication.cpp @@ -57,7 +57,14 @@ foreach (const QString &path, app.libraryPaths()) //! [3] +// Called once QCoreApplication exists +static void preRoutineMyDebugTool() +{ + MyDebugTool* tool = new MyDebugTool(QCoreApplication::instance()); + QCoreApplication::instance()->installEventFilter(tool); +} +Q_COREAPP_STARTUP_FUNCTION(preRoutineMyDebugTool) //! [3] diff --git a/src/corelib/doc/snippets/code/src_corelib_tools_qpoint.cpp b/src/corelib/doc/snippets/code/src_corelib_tools_qpoint.cpp index a83fd9a71f..8c6751cbaa 100644 --- a/src/corelib/doc/snippets/code/src_corelib_tools_qpoint.cpp +++ b/src/corelib/doc/snippets/code/src_corelib_tools_qpoint.cpp @@ -79,6 +79,13 @@ p *= 2.5; // p becomes (-3, 10) //! [5] +//! [16] +QPoint p( 3, 7); +QPoint q(-1, 4); +int lengthSquared = QPoint::dotProduct(p, q); // lengthSquared becomes 25 +//! [16] + + //! [6] QPoint p(-3, 10); p /= 2.5; // p becomes (-1, 4) @@ -147,3 +154,10 @@ p *= 2.5; // p becomes (-2.75, 10.25) QPointF p(-2.75, 10.25); p /= 2.5; // p becomes (-1.1, 4.1) //! [15] + + +//! [17] +QPointF p( 3.1, 7.1); +QPointF q(-1.0, 4.1); +int lengthSquared = QPointF::dotProduct(p, q); // lengthSquared becomes 26.01 +//! [17] diff --git a/src/corelib/doc/snippets/qmessageauthenticationcode/main.cpp b/src/corelib/doc/snippets/qmessageauthenticationcode/main.cpp new file mode 100644 index 0000000000..4441fbd9a1 --- /dev/null +++ b/src/corelib/doc/snippets/qmessageauthenticationcode/main.cpp @@ -0,0 +1,62 @@ +/**************************************************************************** +** +** Copyright (C) 2013 Ruslan Nigmatullin <euroelessar@yandex.ru> +** Contact: http://www.qt-project.org/legal +** +** This file is part of the documentation of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:BSD$ +** You may use this file under the terms of the BSD license as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names +** of its contributors may be used to endorse or promote products derived +** from this software without specific prior written permission. +** +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include <QtCore> + +int main(int argc, char *argv[]) +{ + QCoreApplication app(argc, argv); + +//! [0] + QByteArray key = "key"; + QByteArray message = "The quick brown fox jumps over the lazy dog"; +//! [0] + +//! [1] + QMessageAuthenticationCode code(QCryptographicHash::Sha1); + code.setKey(key); + code.addData(message); + code.result().toHex(); // returns "de7c9b85b8b78aa6bc8a7a36f70a90701c9db4d9" +//! [1] + +//! [2] + QMessageAuthenticationCode::hash(message, key, QCryptographicHash::Sha1).toHex(); +//! [2] +} diff --git a/src/corelib/doc/src/objectmodel/properties.qdoc b/src/corelib/doc/src/objectmodel/properties.qdoc index 66325ca6c0..37f54621a1 100644 --- a/src/corelib/doc/src/objectmodel/properties.qdoc +++ b/src/corelib/doc/src/objectmodel/properties.qdoc @@ -53,16 +53,22 @@ \snippet code/doc_src_properties.cpp 1 + Here is an example showing how to export member variables as Qt + properties using the \c MEMBER keyword. + Note that a \c NOTIFY signal must be specified to allow QML property bindings. + + \snippet code/doc_src_properties.cpp 8 + A property behaves like a class data member, but it has additional features accessible through the \l {Meta-Object System}. \list - \li A \c READ accessor function is required. It is for reading the - property value. Ideally, a const function is used for this purpose, - and it must return either the property's type or a pointer or - reference to that type. e.g., QWidget::focus is a read-only property - with \c READ function, QWidget::hasFocus(). + \li A \c READ accessor function is required if no \c MEMBER variable was + specified. It is for reading the property value. Ideally, a const function + is used for this purpose, and it must return either the property's type or a + pointer or reference to that type. e.g., QWidget::focus is a read-only + property with \c READ function, QWidget::hasFocus(). \li A \c WRITE accessor function is optional. It is for setting the property value. It must return void and must take exactly one @@ -71,6 +77,13 @@ QWidget::setEnabled(). Read-only properties do not need \c WRITE functions. e.g., QWidget::focus has no \c WRITE function. + \li A \c MEMBER variable association is required if no \c READ accessor + function is specified. This makes the given member variable + readable and writable without the need of creating \c READ and \c WRITE accessor + functions. It's still possible to use \c READ or \c WRITE accessor functions in + addition to \c MEMBER variable association (but not both), if you need to + control the variable access. + \li A \c RESET function is optional. It is for setting the property back to its context specific default value. e.g., QWidget::cursor has the typical \c READ and \c WRITE functions, QWidget::cursor() @@ -82,6 +95,9 @@ \li A \c NOTIFY signal is optional. If defined, it should specify one existing signal in that class that is emitted whenever the value of the property changes. + \c NOTIFY signals for \c MEMBER variables must take zero or one parameter, + which must be of the same type as the property. The parameter will take the + new value of the property. \li A \c REVISION number is optional. If included, it defines the property and its notifier signal to be used in a particular diff --git a/src/corelib/global/global.pri b/src/corelib/global/global.pri index 01756c8419..6ac32cd35d 100644 --- a/src/corelib/global/global.pri +++ b/src/corelib/global/global.pri @@ -9,6 +9,7 @@ HEADERS += \ global/qendian.h \ global/qnumeric_p.h \ global/qnumeric.h \ + global/qglobalstatic.h \ global/qlibraryinfo.h \ global/qlogging.h \ global/qtypeinfo.h \ @@ -19,6 +20,7 @@ HEADERS += \ SOURCES += \ global/qglobal.cpp \ + global/qglobalstatic.cpp \ global/qlibraryinfo.cpp \ global/qmalloc.cpp \ global/qnumeric.cpp \ diff --git a/src/corelib/global/qfeatures.h b/src/corelib/global/qfeatures.h index 7ae4863da3..a751f9af56 100644 --- a/src/corelib/global/qfeatures.h +++ b/src/corelib/global/qfeatures.h @@ -154,6 +154,9 @@ // Properties //#define QT_NO_PROPERTIES +// QRegularExpression +//#define QT_NO_REGULAREXPRESSION + // Resize Handler //#define QT_NO_RESIZEHANDLER diff --git a/src/corelib/global/qfeatures.txt b/src/corelib/global/qfeatures.txt index a97309b876..c27463897f 100644 --- a/src/corelib/global/qfeatures.txt +++ b/src/corelib/global/qfeatures.txt @@ -28,6 +28,13 @@ Requires: Name: CssParser SeeAlso: ??? +Feature: REGULAREXPRESSION +Description: Perl-compatible regular expression APIs +Section: Kernel +Requires: +Name: QRegularExpression +SeeAlso: ??? + Feature: CONCURRENT Description: Provides a high-level multi-threaded APIs Section: Kernel diff --git a/src/corelib/global/qglobal.cpp b/src/corelib/global/qglobal.cpp index a0c12b7b06..454e5d828d 100644 --- a/src/corelib/global/qglobal.cpp +++ b/src/corelib/global/qglobal.cpp @@ -68,7 +68,7 @@ # endif #endif -#if defined(Q_OS_VXWORKS) +#if defined(Q_OS_VXWORKS) && defined(_WRS_KERNEL) # include <envLib.h> #endif diff --git a/src/corelib/global/qglobal.h b/src/corelib/global/qglobal.h index 6da275712f..f3be05a8ec 100644 --- a/src/corelib/global/qglobal.h +++ b/src/corelib/global/qglobal.h @@ -45,11 +45,11 @@ #include <stddef.h> -#define QT_VERSION_STR "5.0.1" +#define QT_VERSION_STR "5.1.0" /* QT_VERSION is (major << 16) + (minor << 8) + patch. */ -#define QT_VERSION 0x050001 +#define QT_VERSION 0x050100 /* can be used like #if (QT_VERSION >= QT_VERSION_CHECK(4, 4, 0)) */ @@ -664,125 +664,6 @@ typedef void (*QFunctionPointer)(); # define Q_UNIMPLEMENTED() qWarning("%s:%d: %s: Unimplemented code.", __FILE__, __LINE__, Q_FUNC_INFO) #endif -#if defined(QT_NO_THREAD) - -template <typename T> -class QGlobalStatic -{ -public: - T *pointer; - inline QGlobalStatic(T *p) : pointer(p) { } - inline ~QGlobalStatic() { pointer = 0; } -}; - -#define Q_GLOBAL_STATIC(TYPE, NAME) \ - static TYPE *NAME() \ - { \ - static TYPE thisVariable; \ - static QGlobalStatic<TYPE > thisGlobalStatic(&thisVariable); \ - return thisGlobalStatic.pointer; \ - } - -#define Q_GLOBAL_STATIC_WITH_ARGS(TYPE, NAME, ARGS) \ - static TYPE *NAME() \ - { \ - static TYPE thisVariable ARGS; \ - static QGlobalStatic<TYPE > thisGlobalStatic(&thisVariable); \ - return thisGlobalStatic.pointer; \ - } - -#define Q_GLOBAL_STATIC_WITH_INITIALIZER(TYPE, NAME, INITIALIZER) \ - static TYPE *NAME() \ - { \ - static TYPE thisVariable; \ - static QGlobalStatic<TYPE > thisGlobalStatic(0); \ - if (!thisGlobalStatic.pointer) { \ - TYPE *x = thisGlobalStatic.pointer = &thisVariable; \ - INITIALIZER; \ - } \ - return thisGlobalStatic.pointer; \ - } - -#else - -// forward declaration, since qatomic.h needs qglobal.h -template <typename T> class QBasicAtomicPointer; - -// POD for Q_GLOBAL_STATIC -template <typename T> -class QGlobalStatic -{ -public: - QBasicAtomicPointer<T> pointer; - bool destroyed; -}; - -// Created as a function-local static to delete a QGlobalStatic<T> -template <typename T> -class QGlobalStaticDeleter -{ -public: - QGlobalStatic<T> &globalStatic; - QGlobalStaticDeleter(QGlobalStatic<T> &_globalStatic) - : globalStatic(_globalStatic) - { } - - inline ~QGlobalStaticDeleter() - { - delete globalStatic.pointer.load(); - globalStatic.pointer.store(0); - globalStatic.destroyed = true; - } -}; - -#define Q_GLOBAL_STATIC(TYPE, NAME) \ - static TYPE *NAME() \ - { \ - static QGlobalStatic<TYPE > thisGlobalStatic \ - = { Q_BASIC_ATOMIC_INITIALIZER(0), false }; \ - if (!thisGlobalStatic.pointer.load() && !thisGlobalStatic.destroyed) { \ - TYPE *x = new TYPE; \ - if (!thisGlobalStatic.pointer.testAndSetOrdered(0, x)) \ - delete x; \ - else \ - static QGlobalStaticDeleter<TYPE > cleanup(thisGlobalStatic); \ - } \ - return thisGlobalStatic.pointer.load(); \ - } - -#define Q_GLOBAL_STATIC_WITH_ARGS(TYPE, NAME, ARGS) \ - static TYPE *NAME() \ - { \ - static QGlobalStatic<TYPE > thisGlobalStatic \ - = { Q_BASIC_ATOMIC_INITIALIZER(0), false }; \ - if (!thisGlobalStatic.pointer.load() && !thisGlobalStatic.destroyed) { \ - TYPE *x = new TYPE ARGS; \ - if (!thisGlobalStatic.pointer.testAndSetOrdered(0, x)) \ - delete x; \ - else \ - static QGlobalStaticDeleter<TYPE > cleanup(thisGlobalStatic); \ - } \ - return thisGlobalStatic.pointer.load(); \ - } - -#define Q_GLOBAL_STATIC_WITH_INITIALIZER(TYPE, NAME, INITIALIZER) \ - static TYPE *NAME() \ - { \ - static QGlobalStatic<TYPE > thisGlobalStatic \ - = { Q_BASIC_ATOMIC_INITIALIZER(0), false }; \ - if (!thisGlobalStatic.pointer.load() && !thisGlobalStatic.destroyed) { \ - QScopedPointer<TYPE > x(new TYPE); \ - INITIALIZER; \ - if (thisGlobalStatic.pointer.testAndSetOrdered(0, x.data())) { \ - static QGlobalStaticDeleter<TYPE > cleanup(thisGlobalStatic); \ - x.take(); \ - } \ - } \ - return thisGlobalStatic.pointer.load(); \ - } - -#endif - Q_DECL_CONSTEXPR static inline bool qFuzzyCompare(double p1, double p2) { return (qAbs(p1 - p2) <= 0.000000000001 * qMin(qAbs(p1), qAbs(p2))); @@ -1089,6 +970,9 @@ template <typename T> struct QEnableIf<true, T> { typedef T Type; }; QT_END_NAMESPACE QT_END_HEADER +// Q_GLOBAL_STATIC +#include <QtCore/qglobalstatic.h> + // qDebug and friends #include <QtCore/qlogging.h> #include <QtCore/qflags.h> diff --git a/src/corelib/global/qglobalstatic.cpp b/src/corelib/global/qglobalstatic.cpp new file mode 100644 index 0000000000..7caa2e9848 --- /dev/null +++ b/src/corelib/global/qglobalstatic.cpp @@ -0,0 +1,522 @@ +/**************************************************************************** +** +** Copyright (C) 2013 Intel Corporation. +** Contact: http://www.qt-project.org/legal +** +** This file is part of the QtCore module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Digia. For licensing terms and +** conditions see http://qt.digia.com/licensing. For further information +** use the contact form at http://qt.digia.com/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Digia gives you certain additional +** rights. These rights are described in the Digia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "qglobalstatic.h" + +/*! + \macro Q_GLOBAL_STATIC(Type, VariableName) + \since 5.1 + \relates QGlobalStatic + + Creates a global and static object of type \l QGlobalStatic, of name \a + VariableName and that behaves as a pointer to \a Type. The object created + by Q_GLOBAL_STATIC initializes itself on the first use, which means that it + will not increase the application or the library's load time. Additionally, + the object is initialized in a thread-safe manner on all platforms. + + The typical use of this macro is as follows, in a global context (that is, + outside of any function bodies): + + \code + Q_GLOBAL_STATIC(MyType, staticType) + \endcode + + This macro is intended to replace global static objects that are not POD + (Plain Old Data, or in C++11 terms, not made of a trivial type), hence the + name. For example, the following C++ code creates a global static: + + \code + static MyType staticType; + \endcode + + Compared to Q_GLOBAL_STATIC, and assuming that \c MyType is a class or + struct that has a constructor, a destructor, or is otherwise non-POD, the + above has the following drawbacks: + + \list + \li it requires load-time initialization of \c MyType (that is, the + default constructor for \c MyType is called when the library or + application is loaded); + + \li the type will be initialized even if it is never used; + + \li the order of initialization and destruction among different + translation units is not determined, leading to possible uses before + initialization or after destruction; + + \li if it is found inside a function (that is, not global), it will be + initialized on first use, but many current compilers (as of 2013) do + not guarantee that the initialization will be thread-safe; + \endlist + + The Q_GLOBAL_STATIC macro solves all of the above problems by guaranteeing + thread-safe initialization on first use and allowing the user to query for + whether the type has already been destroyed, to avoid the + use-after-destruction problem (see QGlobalStatic::isDestroyed()). + + \section1 Constructor and destructor + + For Q_GLOBAL_STATIC, the type \c Type must be publicly + default-constructible and publicly destructible. For + Q_GLOBAL_STATIC_WITH_ARGS(), there must be a public constructor that + matches the arguments passed. + + It is not possible to use Q_GLOBAL_STATIC with types that have protected or + private default constructors or destructors (for Q_GLOBAL_STATIC_WITH_ARGS(), + a protected or private constructor matching the arguments). If the type in + question has those members as protected, it is possible to overcome the + issue by deriving from the type and creating public a constructor and + destructor. If the type has them as private, a friend declaration is + necessary before deriving. + + For example, the following is enough to create \c MyType based on a + previously-defined \c MyOtherType which has a protected default constructor + and/or a protected destructor (or has them as private, but that defines \c + MyType as a friend). + + \code + class MyType : public MyOtherType { }; + Q_GLOBAL_STATIC(MyType, staticType) + \endcode + + No body for \c MyType is required since the destructor is an implicit + member and so is the default constructor if no other constructors are + defined. For use with Q_GLOBAL_STATIC_WITH_ARGS(), however, a suitable + constructor body is necessary: + + \code + class MyType : public MyOtherType + { + public: + MyType(int i) : MyOtherType(i) {} + }; + Q_GLOBAL_STATIC_WITH_ARGS(MyType, staticType, (42)) + \endcode + + Alternatively, if the compiler supports C++11 inheriting constructors, one could write: + + \code + class MyType : public MyOtherType + { + public: + using MyOtherType::MyOtherType; + }; + Q_GLOBAL_STATIC_WITH_ARGS(MyType, staticType, (42)) + \endcode + + \section1 Placement + + The Q_GLOBAL_STATIC macro creates a type that is necessarily static, at the + global scope. It is not possible to place the Q_GLOBAL_STATIC macro inside + a function (doing so will result in compilation errors). + + More importantly, this macro should be placed in source files, never in + headers. Since the resulting object is has static linkage, if the macro is + placed in a header and included by multiple source files, the object will + be defined multiple times and will not cause linking errors. Instead, each + translation unit will refer to a different object, which could lead to + subtle and hard-to-track errors. + + \section1 Non-recommended uses + + Note that the macro is not recommended for use with types that are POD or + that have C++11 constexpr constructors (trivially constructible and + destructible). For those types, it is still recommended to use regular + static, whether global or function-local. + + This macro will work, but it will add unnecessary overhead. + + \section1 Reentrancy, thread-safety, deadlocks, and exception-safety on construction + + The Q_GLOBAL_STATIC macro creates an object that initializes itself on + first use in a thread-safe manner: if multiple threads attempt to + initialize the object at the same time, only one thread will proceed to + initialize, while all other threads wait for completion. + + If the initialization process throws an exception, the initialization is + deemed not complete and will be attempted again when control reaches any + use of the object. If there are any threads waiting for initialization, one + of them will be woken up to attempt to initialize. + + The macro makes no guarantee about reentrancy from the same thread. If the + global static object is accessed directly or indirectly from inside the + constructor, a deadlock will surely happen. + + In addition, if two Q_GLOBAL_STATIC objects are being initialized on two + different threads and each one's initialization sequence accesses the + other, a deadlock might happen. For that reason, it is recommended to keep + global static constructors simple or, failing that, to ensure that there's + no cross-dependency of uses of global static during construction. + + \section1 Destruction + + If the object is never used during the lifetime of the program, aside from + the QGlobalStatic::exists() and QGlobalStatic::isDestroyed() functions, the + contents of type \a Type will not be created and there will not be any + exit-time operation. + + If the object is created, it will be destroyed at exit-time, similar to the + C \c atexit function. On most systems, in fact, the destructor will also be + called if the library or plugin is unloaded from memory before exit. + + Since the destruction is meant to happen at program exit, no thread-safety + is provided. This includes the case of plugin or library unload. In + addition, since destructors are not supposed to throw exceptions, no + exception safety is provided either. + + However, reentrancy is permitted: during destruction, it is possible to + access the global static object and the pointer returned will be the same + as it was before destruction began. After the destruction has completed, + accessing the global static object is not permitted, except as noted in the + \l QGlobalStatic API. + + \omit + \section1 Compatibility with Qt 4 and Qt 5.0 + + This macro, in its current form and behavior, was introduced in Qt 5.1. + Prior to that version, Qt had another macro with the same name that was + private API. This section is not meant to document how to use + Q_GLOBAL_STATIC in those versions, but instead to serve as a porting guide + for Qt code that used those macros. + + The Qt 4 Q_GLOBAL_STATIC macro differed in behavior in the following ways: + + \list + \li the object created was not of type \l QGlobalStatic, but instead + it was a function that returned a pointer to \a Type; that means the + \l QGlobalStatic API was not present; + + \li the initialization was thread-safe, but not guaranteed to be + unique: instead, if N threads tried to initialize the object at the + same time, N objects would be created on the heap and N-1 would be + destroyed; + + \li the object was always created on the heap. + \endlist + + \section1 Implementation details + + Q_GLOBAL_STATIC is implemented by creating a QBasicAtomicInt called the \c + guard and a free, inline function called \c innerFunction. The guard + variable is initialized to value 0 (chosen so that the guard can be placed + in the .bss section of the binary file), which denotes that construction + has not yet taken place (uninitialized). The inner function is implemented + by the helper macro Q_GLOBAL_STATIC_INTERNAL. + + Both the guard variable and the inner function are passed as template + parameters to QGlobalStatic, along with the type \a Type. Both should also + have static linkage or be placed inside an anonymous namespace, so that the + visibility of Q_GLOBAL_STATIC is that of a global static. To permit + multiple Q_GLOBAL_STATIC per translation unit, the guard variable and the + inner function must have unique names, which can be accomplished by + concatenating with \a VariableName or by placing them in a namespace that + has \a VariableName as part of the name. To simplify and improve + readability on Q_GLOBAL_STATIC_INTERNAL, we chose the namespace solution. + It's also required for C++98 builds, since static symbols cannot be used as + template parameters. + + The guard variable can assume the following values: + + \list + \li -2: object was once initialized but has been destroyed already; + \li -1: object was initialized and is still valid; + \li 0: object was not initialized yet; + \li +1: object is being initialized and any threads encountering this + value must wait for completion (not used in the current implementation). + \endlist + + Collectively, all positive values indicate that the initialization is + progressing and must be waited on, whereas all negative values indicate + that the initialization has terminated and must not be attempted again. + Positive values are not used in the current implementation, but were in + earlier versions. They could be used again in the future. + + The QGlobalStatic::exists() and QGlobalStatic::isDestroyed() functions + operate solely on the guard variable: the former returns true if the guard + is negative, whereas the latter returns true only if it is -2. + + The Q_GLOBAL_STATIC_INTERNAL macro implements the actual construction and + destruction. There are two implementations of it: one for compilers that + support thread-safe initialization of function-local statics and one for + compilers that don't. Thread-safe initialization is required by C++11 in + [stmt.decl], but as of the time of this writing, only compilers based on + the IA-64 C++ ABI implemented it properly. The implementation requiring + thread-safe initialization is also used on the Qt bootstrapped tools, which + define QT_NO_THREAD. + + The implementation requiring thread-safe initialization from the compiler + is the simplest: it creates the \a Type object as a function-local static + and returns its address. The actual object is actually inside a holder + structure so holder's destructor can set the guard variable to the value -2 + (destroyed) when the type has finished destruction. Since we need to set + the guard \b after the destruction has finished, this code needs to be in a + base struct's destructor. A holder structure is used to avoid creating two + statics, which the ABI might require duplicating the thread-safe control + structures for. + + The other implementation is similar to Qt 4's Q_GLOBAL_STATIC, but unlike + that one, it uses a \l QBasicMutex to provide locking. It is also more + efficient memory-wise. It use a simple double-checked locking of the mutex + and then creates the contents on the heap. After that, it creates a + function-local structure called "Cleanup", whose destructor will be run at + program exit and will actually destroy the contents. + + \endomit + + \sa Q_GLOBAL_STATIC_WITH_ARGS(), QGlobalStatic +*/ + +/*! + \macro Q_GLOBAL_STATIC_WITH_ARGS(Type, VariableName, Arguments) + \since 5.1 + \relates QGlobalStatic + + Creates a global and static object of type \l QGlobalStatic, of name \a + VariableName, initialized by the arguments \a Arguments and that behaves as + a pointer to \a Type. The object created by Q_GLOBAL_STATIC_WITH_ARGS + initializes itself on the first use, which means that it will not increase + the application or the library's load time. Additionally, the object is + initialized in a thread-safe manner on all platforms. + + The typical use of this macro is as follows, in a global context (that is, + outside of any function bodies): + + \code + Q_GLOBAL_STATIC_WITH_ARGS(MyType, staticType, (42, "Hello", "World")) + \endcode + + The \a Arguments macro parameter must always include the parentheses or, if + C++11 uniform initialization is allowed, the braces. + + Aside from the actual initialization of the contents with the supplied + arguments, this macro behaves identically to Q_GLOBAL_STATIC(). Please + see that macro's documentation for more information. + + \sa Q_GLOBAL_STATIC(), QGlobalStatic +*/ + +/*! + \class QGlobalStatic + \threadsafe + \inmodule QtCore + \since 5.1 + \brief The QGlobalStatic class is used to implement a global static object + + The QGlobalStatic class is the front-end API exported when + Q_GLOBAL_STATIC() is used. See the documentation for the macro for a + discussion on when to use it and its requirements. + + Normally, you will never use this class directly, but instead you will use + the Q_GLOBAL_STATIC() or Q_GLOBAL_STATIC_WITH_ARGS() macros, as + follows: + + \code + Q_GLOBAL_STATIC(MyType, staticType) + \endcode + + The above example creates an object of type QGlobalStatic called \c + staticType. After the above declaration, the \c staticType object may be + used as if it were a pointer, guaranteed to be initialized exactly once. In + addition to the use as a pointer, the object offers two methods to + determine the current status of the global: exists() and isDestroyed(). + + \sa Q_GLOBAL_STATIC(), Q_GLOBAL_STATIC_WITH_ARGS() +*/ + +/*! + \typedef QGlobalStatic::Type + + This type is equivalent to the \c Type parameter passed to the + Q_GLOBAL_STATIC() or Q_GLOBAL_STATIC_WITH_ARGS() macros. It is used in the + return types of some functions. +*/ + +/*! + \fn bool QGlobalStatic::isDestroyed() const + + This function returns true if the global static object has already + completed destruction (that is, if the destructor for the type has already + returned). In specific, note that this function returns false if + the destruction is still in progress. + + Once this function has returned true once, it will never return + false again until either the program is restarted or the plugin or library + containing the global static is unloaded and reloaded. + + This function is safe to call at any point in the program execution: it + cannot fail and cannot cause a deadlock. Additionally, it will not cause + the contents to be created if they have not yet been created. + + This function is useful in code that may be executed at program shutdown, + to determine whether the contents may still be accessed or not. + + \omit + Due to the non-atomic nature of destruction, it's possible that + QGlobalStatic::isDestroyed might return false for a short time after the + destructor has finished. However, since the destructor is only run in an + environment where concurrent multithreaded access is impossible, no one can + see that state. (omitted because it's useless information) + \endomit + + \sa exists() +*/ + +/*! + \fn bool QGlobalStatic::exists() const + + This function returns true if the global static object has already + completed initialization (that is, if the constructor for the type has + already returned). In specific, note that this function returns false if + the initialization is still in progress. + + Once this function has returned true once, it will never return false again + until either the program is restarted or the plugin or library containing + the global static is unloaded and reloaded. + + This function is safe to call at any point in the program execution: it + cannot fail and cannot cause a deadlock. Additionally, it will not cause + the contents to be created if they have not yet been created. + + This function is useful if one can determine the initial conditions of the + global static object and would prefer to avoid a possibly expensive + construction operation. + + For example, in the following code sample, this function is used to + short-circuit the creation of the global static called \c globalState and + returns a default value: + + \code + Q_GLOBAL_STATIC(MyType, globalState) + QString someState() + { + if (globalState.exists()) + return globalState->someState; + return QString(); + } + \endcode + + \b{Thread-safety notice:} this function is thread-safe in the sense that it + may be called from any thread at any time and will always return a valid + reply. But due to the non-atomic nature of construction, this function may + return false for a short time after the construction has completed. + + \b{Memory ordering notice:} this function does not impose any memory + ordering guarantees. That is instead provided by the accessor functions + that return the pointer or reference to the contents. If you bypass the + accessor functions and attempt to access some global state set by the + constructor, be sure to use the correct memory ordering semantics provided + by \l QAtomicInt or \l QAtomicPointer. + + \sa isDestroyed() +*/ + +/*! + \fn QGlobalStatic::operator Type*() + + This function returns the address of the contents of this global static. If + the contents have not yet been created, they will be created thread-safely + by this function. If the contents have already been destroyed, this + function will return a null pointer. + + This function can be used, for example, to store the pointer to the + contents of the global static in a local variable, thus avoiding multiple + calls to the function. The implementation of Q_GLOBAL_STATIC() is quite + efficient already, but in performance-critical sections it might be useful + to help the compiler a little. For example: + + \code + Q_GLOBAL_STATIC(MyType, globalState) + QString someState() + { + MyType *state = globalState; + if (!state) { + // we're in a post-destruction state + return QString(); + } + if (state->condition) + return state->value1; + else + return state->value2; + } + \endcode + + \sa operator->(), operator*() +*/ + +/*! + \fn Type *QGlobalStatic::operator()() + \deprecated + + This function returns the address of the contents of this global static. If + the contents have not yet been created, they will be created thread-safely + by this function. If the contents have already been destroyed, this + function will return a null pointer. + + This function is equivalent to \l {operator Type *()}. It is provided for + compatibility with the private Q_GLOBAL_STATIC implementation that existed + in Qt 4.x and 5.0. New code should avoid using it and should instead treat + the object as a smart pointer. +*/ + +/*! + \fn Type *QGlobalStatic::operator->() + + This function returns the address of the contents of this global static. If + the contents have not yet been created, they will be created thread-safely + by this function. + + This function does not check if the contents have already been destroyed and + will never return null. If this function is called after the object has + been destroyed, it will return a dangling pointer that should not be + dereferenced. +*/ + +/*! + \fn Type &QGlobalStatic::operator*() + + This function returns a reference to the contents of this global static. If + the contents have not yet been created, they will be created thread-safely + by this function. + + This function does not check if the contents have already been destroyed. + If this function is called after the object has been destroyed, it will + return an invalid reference that must not be used. +*/ diff --git a/src/corelib/global/qglobalstatic.h b/src/corelib/global/qglobalstatic.h new file mode 100644 index 0000000000..487b0dfdb4 --- /dev/null +++ b/src/corelib/global/qglobalstatic.h @@ -0,0 +1,144 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Intel Corporation +** Contact: http://www.qt-project.org/legal +** +** This file is part of the QtCore module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Digia. For licensing terms and +** conditions see http://qt.digia.com/licensing. For further information +** use the contact form at http://qt.digia.com/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Digia gives you certain additional +** rights. These rights are described in the Digia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include <QtCore/qglobal.h> + +#ifndef QGLOBALSTATIC_H +#define QGLOBALSTATIC_H + +#include <QtCore/qatomic.h> + +QT_BEGIN_HEADER +QT_BEGIN_NAMESPACE + +namespace QtGlobalStatic { +enum GuardValues { + Destroyed = -2, + Initialized = -1, + Uninitialized = 0, + Initializing = 1 +}; +} + +#if defined(QT_NO_THREAD) || defined(Q_CC_GNU) +// some compilers support thread-safe statics +// The IA-64 C++ ABI requires this, so we know that all GCC versions since 3.4 +// support it. C++11 also requires this behavior. +// Clang and Intel CC masquerade as GCC when compiling on Linux and Mac OS X. + +#define Q_GLOBAL_STATIC_INTERNAL(ARGS) \ + Q_DECL_HIDDEN inline Type *innerFunction() \ + { \ + struct HolderBase { \ + ~HolderBase() Q_DECL_NOTHROW \ + { guard.store(QtGlobalStatic::Destroyed); } \ + }; \ + static struct Holder : public HolderBase { \ + Type value; \ + Holder() \ + Q_DECL_NOEXCEPT_EXPR(noexcept(Type ARGS)) \ + : value ARGS \ + { guard.store(QtGlobalStatic::Initialized); } \ + } holder; \ + return &holder.value; \ + } +#else +// We don't know if this compiler supports thread-safe global statics +// so use our own locked implementation + +QT_END_NAMESPACE +#include <QtCore/qmutex.h> +QT_BEGIN_NAMESPACE + +#define Q_GLOBAL_STATIC_INTERNAL(ARGS) \ + Q_DECL_HIDDEN inline Type *innerFunction() \ + { \ + static Type *d; \ + static QBasicMutex mutex; \ + int x = guard.loadAcquire(); \ + if (Q_UNLIKELY(x >= QtGlobalStatic::Uninitialized)) { \ + QMutexLocker locker(&mutex); \ + if (guard.load() == QtGlobalStatic::Uninitialized) { \ + d = new Type ARGS; \ + static struct Cleanup { \ + ~Cleanup() { \ + delete d; \ + guard.store(QtGlobalStatic::Destroyed); \ + } \ + } cleanup; \ + guard.store(QtGlobalStatic::Initialized); \ + } \ + } \ + return d; \ + } +#endif + +// this class must be POD, unless the compiler supports thread-safe statics +template <typename T, T *(&innerFunction)(), QBasicAtomicInt &guard> +struct QGlobalStatic +{ + typedef T Type; + + bool isDestroyed() const { return guard.load() <= QtGlobalStatic::Destroyed; } + bool exists() const { return guard.load() == QtGlobalStatic::Initialized; } + operator Type *() { if (isDestroyed()) return 0; return innerFunction(); } + Type *operator()() { if (isDestroyed()) return 0; return innerFunction(); } + Type *operator->() { return innerFunction(); } + Type &operator*() { return *innerFunction(); } +}; + +#define Q_GLOBAL_STATIC_WITH_ARGS(TYPE, NAME, ARGS) \ + namespace { namespace Q_QGS_ ## NAME { \ + typedef TYPE Type; \ + QBasicAtomicInt guard = Q_BASIC_ATOMIC_INITIALIZER(QtGlobalStatic::Uninitialized); \ + Q_GLOBAL_STATIC_INTERNAL(ARGS) \ + } } \ + static QGlobalStatic<TYPE, \ + Q_QGS_ ## NAME::innerFunction, \ + Q_QGS_ ## NAME::guard> NAME; + +#define Q_GLOBAL_STATIC(TYPE, NAME) \ + Q_GLOBAL_STATIC_WITH_ARGS(TYPE, NAME, ()) + +QT_END_NAMESPACE +QT_END_HEADER + +#endif // QGLOBALSTATIC_H diff --git a/src/corelib/global/qlogging.cpp b/src/corelib/global/qlogging.cpp index 60ba19e625..20e649bab5 100644 --- a/src/corelib/global/qlogging.cpp +++ b/src/corelib/global/qlogging.cpp @@ -73,7 +73,7 @@ static bool isFatal(QtMsgType msgType) return true; if (msgType == QtWarningMsg) { - static bool fatalWarnings = qEnvironmentVariableIsSet("QT_FATAL_WARNINGS"); + static bool fatalWarnings = !qEnvironmentVariableIsEmpty("QT_FATAL_WARNINGS"); return fatalWarnings; } diff --git a/src/corelib/io/io.pri b/src/corelib/io/io.pri index f57dcebe33..e0364a1460 100644 --- a/src/corelib/io/io.pri +++ b/src/corelib/io/io.pri @@ -22,10 +22,13 @@ HEADERS += \ io/qprocess.h \ io/qprocess_p.h \ io/qtextstream.h \ + io/qtextstream_p.h \ io/qtemporarydir.h \ io/qtemporaryfile.h \ + io/qtemporaryfile_p.h \ io/qresource_p.h \ io/qresource_iterator_p.h \ + io/qsavefile.h \ io/qstandardpaths.h \ io/qurl.h \ io/qurl_p.h \ @@ -65,6 +68,7 @@ SOURCES += \ io/qtemporaryfile.cpp \ io/qresource.cpp \ io/qresource_iterator.cpp \ + io/qsavefile.cpp \ io/qstandardpaths.cpp \ io/qurl.cpp \ io/qurlidna.cpp \ diff --git a/src/corelib/io/qabstractfileengine.cpp b/src/corelib/io/qabstractfileengine.cpp index 2d9cb85d9f..9cdbbbbb25 100644 --- a/src/corelib/io/qabstractfileengine.cpp +++ b/src/corelib/io/qabstractfileengine.cpp @@ -400,6 +400,19 @@ bool QAbstractFileEngine::close() } /*! + \since 5.1 + + Flushes and syncs the file to disk. + + Returns true if successful; otherwise returns false. + The default implementation always returns false. +*/ +bool QAbstractFileEngine::syncToDisk() +{ + return false; +} + +/*! Flushes the open file, returning true if successful; otherwise returns false. @@ -496,6 +509,24 @@ bool QAbstractFileEngine::rename(const QString &newName) } /*! + \since 5.1 + + Requests that the file be renamed to \a newName in the file + system. If the new name already exists, it must be overwritten. + If the operation succeeds, returns true; otherwise returns + false. + + This virtual function must be reimplemented by all subclasses. + + \sa setFileName() + */ +bool QAbstractFileEngine::renameOverwrite(const QString &newName) +{ + Q_UNUSED(newName); + return false; +} + +/*! Creates a link from the file currently specified by fileName() to \a newName. What a link is depends on the underlying filesystem (be it a shortcut on Windows or a symbolic link on Unix). Returns diff --git a/src/corelib/io/qabstractfileengine_p.h b/src/corelib/io/qabstractfileengine_p.h index 868b086b57..bdc4b5c123 100644 --- a/src/corelib/io/qabstractfileengine_p.h +++ b/src/corelib/io/qabstractfileengine_p.h @@ -124,6 +124,7 @@ public: virtual bool open(QIODevice::OpenMode openMode); virtual bool close(); virtual bool flush(); + virtual bool syncToDisk(); virtual qint64 size() const; virtual qint64 pos() const; virtual bool seek(qint64 pos); @@ -131,6 +132,7 @@ public: virtual bool remove(); virtual bool copy(const QString &newName); virtual bool rename(const QString &newName); + virtual bool renameOverwrite(const QString &newName); virtual bool link(const QString &newName); virtual bool mkdir(const QString &dirName, bool createParentDirectories) const; virtual bool rmdir(const QString &dirName, bool recurseParentDirectories) const; diff --git a/src/corelib/io/qdatastream.cpp b/src/corelib/io/qdatastream.cpp index 544e9e8592..8f788ac355 100644 --- a/src/corelib/io/qdatastream.cpp +++ b/src/corelib/io/qdatastream.cpp @@ -251,7 +251,7 @@ QT_BEGIN_NAMESPACE return retVal; enum { - DefaultStreamVersion = QDataStream::Qt_5_0 + DefaultStreamVersion = QDataStream::Qt_5_1 }; /*! @@ -539,6 +539,7 @@ void QDataStream::setByteOrder(ByteOrder bo) \value Qt_4_8 Same as Qt_4_6. \value Qt_4_9 Same as Qt_4_6. \value Qt_5_0 Version 13 (Qt 5.0) + \value Qt_5_1 Same as Qt_5_0. \sa setVersion(), version() */ diff --git a/src/corelib/io/qdatastream.h b/src/corelib/io/qdatastream.h index 092f3a15b3..f85dd0fb23 100644 --- a/src/corelib/io/qdatastream.h +++ b/src/corelib/io/qdatastream.h @@ -87,8 +87,9 @@ public: Qt_4_7 = Qt_4_6, Qt_4_8 = Qt_4_7, Qt_4_9 = Qt_4_8, - Qt_5_0 = 13 -#if QT_VERSION >= 0x050100 + Qt_5_0 = 13, + Qt_5_1 = Qt_5_0 +#if QT_VERSION >= 0x050200 #error Add the datastream version for this Qt version #endif }; diff --git a/src/corelib/io/qdebug.cpp b/src/corelib/io/qdebug.cpp index bd43963139..9cb5609dac 100644 --- a/src/corelib/io/qdebug.cpp +++ b/src/corelib/io/qdebug.cpp @@ -47,6 +47,9 @@ #endif #include "qdebug.h" +#include <private/qtextstream_p.h> + +QT_BEGIN_NAMESPACE // This file is needed to force compilation of QDebug into the kernel library. @@ -170,6 +173,8 @@ between writes. \since 5.0 + + \sa QDebugStateSaver */ /*! @@ -179,6 +184,8 @@ automatic insertion of spaces is disabled. \since 5.0 + + \sa QDebugStateSaver */ /*! @@ -321,3 +328,69 @@ \fn QDebug &QDebug::operator<<(QTextStreamManipulator m) \internal */ + +/*! + \class QDebugStateSaver + + \brief Convenience class for custom QDebug operators + + Saves the settings used by QDebug, and restores them upon destruction. + + The automatic insertion of spaces between writes is one of the settings + that QDebugStateSaver stores for the duration of the current block. + + The settings of the internal QTextStream are also saved and restored, + so that using << hex in a QDebug operator doesn't affect other QDebug + operators. + + \since 5.1 +*/ + +class QDebugStateSaverPrivate +{ +public: + QDebugStateSaverPrivate(QDebug &dbg) + : m_dbg(dbg), + m_spaces(dbg.autoInsertSpaces()), + m_streamParams(dbg.stream->ts.d_ptr->params) + { + } + void restoreState() + { + m_dbg.setAutoInsertSpaces(m_spaces); + m_dbg.stream->ts.d_ptr->params = m_streamParams; + } + + QDebug &m_dbg; + + // QDebug state + const bool m_spaces; + + // QTextStream state + const QTextStreamPrivate::Params m_streamParams; +}; + + +/*! + Creates a QDebugStateSaver instance, which saves the settings + currently used by \a dbg. + + \sa QDebug::setAutoInsertSpaces(), QDebug::autoInsertSpaces() +*/ +QDebugStateSaver::QDebugStateSaver(QDebug &dbg) + : d(new QDebugStateSaverPrivate(dbg)) +{ +} + +/*! + Destroyes a QDebugStateSaver instance, which restores the settings + used by \a dbg when the QDebugStateSaver instance was created. + + \sa QDebug::setAutoInsertSpaces(), QDebug::autoInsertSpaces() +*/ +QDebugStateSaver::~QDebugStateSaver() +{ + d->restoreState(); +} + +QT_END_NAMESPACE diff --git a/src/corelib/io/qdebug.h b/src/corelib/io/qdebug.h index be8252fbb2..b39397858e 100644 --- a/src/corelib/io/qdebug.h +++ b/src/corelib/io/qdebug.h @@ -61,6 +61,7 @@ QT_BEGIN_NAMESPACE class Q_CORE_EXPORT QDebug { friend class QMessageLogger; + friend class QDebugStateSaverPrivate; struct Stream { Stream(QIODevice *device) : ts(device), ref(1), type(QtDebugMsg), space(true), message_output(false) {} Stream(QString *string) : ts(string, QIODevice::WriteOnly), ref(1), type(QtDebugMsg), space(true), message_output(false) {} @@ -132,6 +133,17 @@ public: Q_DECLARE_SHARED(QDebug) +class QDebugStateSaverPrivate; +class Q_CORE_EXPORT QDebugStateSaver +{ +public: + QDebugStateSaver(QDebug &dbg); + ~QDebugStateSaver(); +private: + Q_DISABLE_COPY(QDebugStateSaver) + QScopedPointer<QDebugStateSaverPrivate> d; +}; + class QNoDebug { public: diff --git a/src/corelib/io/qfilesystemengine_unix.cpp b/src/corelib/io/qfilesystemengine_unix.cpp index 4af01f6730..1fe1107d95 100644 --- a/src/corelib/io/qfilesystemengine_unix.cpp +++ b/src/corelib/io/qfilesystemengine_unix.cpp @@ -286,7 +286,7 @@ QString QFileSystemEngine::resolveUserName(uint userId) struct passwd *pw = 0; #if !defined(Q_OS_INTEGRITY) -#if !defined(QT_NO_THREAD) && defined(_POSIX_THREAD_SAFE_FUNCTIONS) && !defined(Q_OS_OPENBSD) +#if !defined(QT_NO_THREAD) && defined(_POSIX_THREAD_SAFE_FUNCTIONS) && !defined(Q_OS_OPENBSD) && !defined(Q_OS_VXWORKS) struct passwd entry; getpwuid_r(userId, &entry, buf.data(), buf.size(), &pw); #else @@ -310,7 +310,7 @@ QString QFileSystemEngine::resolveGroupName(uint groupId) struct group *gr = 0; #if !defined(Q_OS_INTEGRITY) -#if !defined(QT_NO_THREAD) && defined(_POSIX_THREAD_SAFE_FUNCTIONS) && !defined(Q_OS_OPENBSD) +#if !defined(QT_NO_THREAD) && defined(_POSIX_THREAD_SAFE_FUNCTIONS) && !defined(Q_OS_OPENBSD) && !defined(Q_OS_VXWORKS) size_max = sysconf(_SC_GETGR_R_SIZE_MAX); if (size_max == -1) size_max = 1024; @@ -685,8 +685,16 @@ QFileSystemEntry QFileSystemEngine::currentPath() } #else char currentName[PATH_MAX+1]; - if (::getcwd(currentName, PATH_MAX)) + if (::getcwd(currentName, PATH_MAX)) { +#if defined(Q_OS_VXWORKS) && defined(VXWORKS_VXSIM) + QByteArray dir(currentName); + if (dir.indexOf(':') < dir.indexOf('/')) + dir.remove(0, dir.indexOf(':')+1); + + qstrncpy(currentName, dir.constData(), PATH_MAX); +#endif result = QFileSystemEntry(QByteArray(currentName), QFileSystemEntry::FromNativePath()); + } # if defined(QT_DEBUG) if (result.isEmpty()) qWarning("QFileSystemEngine::currentPath: getcwd() failed"); diff --git a/src/corelib/io/qfsfileengine.cpp b/src/corelib/io/qfsfileengine.cpp index b1d7ca9dd1..1206b992e6 100644 --- a/src/corelib/io/qfsfileengine.cpp +++ b/src/corelib/io/qfsfileengine.cpp @@ -419,6 +419,17 @@ bool QFSFileEngine::flush() } /*! + \reimp +*/ +bool QFSFileEngine::syncToDisk() +{ + Q_D(QFSFileEngine); + if ((d->openMode & QIODevice::WriteOnly) == 0) + return true; + return d->nativeSyncToDisk(); +} + +/*! \internal */ bool QFSFileEnginePrivate::flushFh() @@ -908,6 +919,11 @@ bool QFSFileEngine::supportsExtension(Extension extension) const \reimp */ + +/*! \fn bool QFSFileEngine::renameOverwrite(const QString &newName) + \reimp +*/ + /*! \fn bool QFSFileEngine::rmdir(const QString &name, bool recurseParentDirectories) const \reimp */ diff --git a/src/corelib/io/qfsfileengine_p.h b/src/corelib/io/qfsfileengine_p.h index d19310b6b6..21f38fea1d 100644 --- a/src/corelib/io/qfsfileengine_p.h +++ b/src/corelib/io/qfsfileengine_p.h @@ -81,6 +81,7 @@ public: bool open(QIODevice::OpenMode flags, FILE *fh); bool close(); bool flush(); + bool syncToDisk(); qint64 size() const; qint64 pos() const; bool seek(qint64); @@ -88,6 +89,7 @@ public: bool remove(); bool copy(const QString &newName); bool rename(const QString &newName); + bool renameOverwrite(const QString &newName); bool link(const QString &newName); bool mkdir(const QString &dirName, bool createParentDirectories) const; bool rmdir(const QString &dirName, bool recurseParentDirectories) const; @@ -149,6 +151,7 @@ public: bool nativeClose(); bool closeFdFh(); bool nativeFlush(); + bool nativeSyncToDisk(); bool flushFh(); qint64 nativeSize() const; #ifndef Q_OS_WIN diff --git a/src/corelib/io/qfsfileengine_unix.cpp b/src/corelib/io/qfsfileengine_unix.cpp index 482f65e7f6..a5f077bd0b 100644 --- a/src/corelib/io/qfsfileengine_unix.cpp +++ b/src/corelib/io/qfsfileengine_unix.cpp @@ -258,6 +258,23 @@ bool QFSFileEnginePrivate::nativeFlush() /*! \internal + \since 5.1 +*/ +bool QFSFileEnginePrivate::nativeSyncToDisk() +{ + Q_Q(QFSFileEngine); +#if defined(_POSIX_SYNCHRONIZED_IO) && _POSIX_SYNCHRONIZED_IO > 0 + const int ret = fdatasync(nativeHandle()); +#else + const int ret = fsync(nativeHandle()); +#endif + if (ret != 0) + q->setError(QFile::WriteError, qt_error_string(errno)); + return ret == 0; +} + +/*! + \internal */ qint64 QFSFileEnginePrivate::nativeRead(char *data, qint64 len) { @@ -388,6 +405,12 @@ bool QFSFileEngine::copy(const QString &newName) return ret; } +bool QFSFileEngine::renameOverwrite(const QString &newName) +{ + // On Unix, rename() overwrites. + return rename(newName); +} + bool QFSFileEngine::rename(const QString &newName) { Q_D(QFSFileEngine); diff --git a/src/corelib/io/qfsfileengine_win.cpp b/src/corelib/io/qfsfileengine_win.cpp index 1cb3c03c30..fecfa7de2b 100644 --- a/src/corelib/io/qfsfileengine_win.cpp +++ b/src/corelib/io/qfsfileengine_win.cpp @@ -198,15 +198,25 @@ bool QFSFileEnginePrivate::nativeFlush() return true; } - // Windows native mode; flushing is - // unnecessary. FlushFileBuffers(), the equivalent of sync() or - // fsync() on Unix, does a low-level flush to the disk, and we - // don't expose an API for this. + // Windows native mode; flushing is unnecessary. return true; } /* \internal + \since 5.1 +*/ +bool QFSFileEnginePrivate::nativeSyncToDisk() +{ + if (fh || fd != -1) { + // stdlib / stdio mode. No API available. + return false; + } + return FlushFileBuffers(fileHandle); +} + +/* + \internal */ qint64 QFSFileEnginePrivate::nativeSize() const { @@ -507,6 +517,17 @@ bool QFSFileEngine::rename(const QString &newName) return ret; } +bool QFSFileEngine::renameOverwrite(const QString &newName) +{ + Q_D(QFSFileEngine); + bool ret = ::MoveFileEx((wchar_t*)d->fileEntry.nativeFilePath().utf16(), + (wchar_t*)QFileSystemEntry(newName).nativeFilePath().utf16(), + MOVEFILE_REPLACE_EXISTING | MOVEFILE_COPY_ALLOWED) != 0; + if (!ret) + setError(QFile::RenameError, QSystemError(::GetLastError(), QSystemError::NativeError).toString()); + return ret; +} + bool QFSFileEngine::mkdir(const QString &name, bool createParentDirectories) const { return QFileSystemEngine::createDirectory(QFileSystemEntry(name), createParentDirectories); diff --git a/src/corelib/io/qprocess_unix.cpp b/src/corelib/io/qprocess_unix.cpp index e159bf8f30..3daae8b2f6 100644 --- a/src/corelib/io/qprocess_unix.cpp +++ b/src/corelib/io/qprocess_unix.cpp @@ -1001,9 +1001,9 @@ static int select_msecs(int nfds, fd_set *fdread, fd_set *fdwrite, int timeout) if (timeout < 0) return qt_safe_select(nfds, fdread, fdwrite, 0, 0); - struct timeval tv; + struct timespec tv; tv.tv_sec = timeout / 1000; - tv.tv_usec = (timeout % 1000) * 1000; + tv.tv_nsec = (timeout % 1000) * 1000 * 1000; return qt_safe_select(nfds, fdread, fdwrite, 0, &tv); } diff --git a/src/corelib/io/qsavefile.cpp b/src/corelib/io/qsavefile.cpp new file mode 100644 index 0000000000..fee6a4c4d8 --- /dev/null +++ b/src/corelib/io/qsavefile.cpp @@ -0,0 +1,316 @@ +/**************************************************************************** +** +** Copyright (C) 2012 David Faure <faure@kde.org> +** Contact: http://www.qt-project.org/legal +** +** This file is part of the QtCore module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Digia. For licensing terms and +** conditions see http://qt.digia.com/licensing. For further information +** use the contact form at http://qt.digia.com/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Digia gives you certain additional +** rights. These rights are described in the Digia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "qplatformdefs.h" +#include "qsavefile.h" +#include "private/qsavefile_p.h" +#include "qfileinfo.h" +#include "qabstractfileengine_p.h" +#include "qdebug.h" +#include "qtemporaryfile.h" +#include "private/qiodevice_p.h" +#include "private/qtemporaryfile_p.h" + +QT_BEGIN_NAMESPACE + +QSaveFilePrivate::QSaveFilePrivate() + : writeError(QFileDevice::NoError) +{ +} + +QSaveFilePrivate::~QSaveFilePrivate() +{ +} + +/*! + \class QSaveFile + \inmodule QtCore + \brief The QSaveFile class provides an interface for safely writing to files. + + \ingroup io + + \reentrant + + \since 5.1 + + QSaveFile is an I/O device for writing text and binary files, without losing + existing data if the writing operation fails. + + While writing, the contents will be written to a temporary file, and if + no error happened, commit() will move it to the final file. This ensures that + no data at the final file is lost in case an error happens while writing, + and no partially-written file is ever present at the final location. Always + use QSaveFile when saving entire documents to disk. + + QSaveFile automatically detects errors while writing, such as the full partition + situation, where write() cannot write all the bytes. It will remember that + an error happened, and will discard the temporary file in commit(). + + Much like with QFile, the file is opened with open(). Data is usually read + and written using QDataStream or QTextStream, but you can also call the + QIODevice-inherited functions read(), readLine(), readAll(), write(). + + Unlike QFile, calling close() is not allowed. commit() replaces it. If commit() + was not called and the QSaveFile instance is destroyed, the temporary file is + discarded. + + To abort saving due to an application error, call cancelWriting(), so that + even a call to commit() later on will not save. + + \sa QTextStream, QDataStream, QFileInfo, QDir, QFile, QTemporaryFile +*/ + +/*! + Constructs a new file object with the given \a parent. +*/ +QSaveFile::QSaveFile(QObject *parent) + : QFileDevice(*new QSaveFilePrivate, parent) +{ +} +/*! + Constructs a new file object to represent the file with the given \a name. +*/ +QSaveFile::QSaveFile(const QString &name) + : QFileDevice(*new QSaveFilePrivate, 0) +{ + Q_D(QSaveFile); + d->fileName = name; +} +/*! + Constructs a new file object with the given \a parent to represent the + file with the specified \a name. +*/ +QSaveFile::QSaveFile(const QString &name, QObject *parent) + : QFileDevice(*new QSaveFilePrivate, parent) +{ + Q_D(QSaveFile); + d->fileName = name; +} + +/*! + Destroys the file object, discarding the saved contents unless commit() was called. +*/ +QSaveFile::~QSaveFile() +{ + Q_D(QSaveFile); + QFileDevice::close(); + if (d->fileEngine) { + d->fileEngine->remove(); + delete d->fileEngine; + d->fileEngine = 0; + } +} + +/*! + Returns the name set by setFileName() or to the QSaveFile + constructor. + + \sa setFileName() +*/ +QString QSaveFile::fileName() const +{ + return d_func()->fileName; +} + +/*! + Sets the \a name of the file. The name can have no path, a + relative path, or an absolute path. + + \sa QFile::setFileName(), fileName() +*/ +void QSaveFile::setFileName(const QString &name) +{ + d_func()->fileName = name; +} + +/*! + Opens the file using OpenMode \a mode, returning true if successful; + otherwise false. + + Important: the \a mode must include QIODevice::WriteOnly. + It may also have additional flags, such as QIODevice::Text and QIODevice::Unbuffered. + + QIODevice::ReadWrite and QIODevice::Append are not supported at the moment. + + \sa QIODevice::OpenMode, setFileName() +*/ +bool QSaveFile::open(OpenMode mode) +{ + Q_D(QSaveFile); + if (isOpen()) { + qWarning("QSaveFile::open: File (%s) already open", qPrintable(fileName())); + return false; + } + unsetError(); + if ((mode & (ReadOnly | WriteOnly)) == 0) { + qWarning("QSaveFile::open: Open mode not specified"); + return false; + } + // In the future we could implement ReadWrite by copying from the existing file to the temp file... + if ((mode & ReadOnly) || (mode & Append)) { + qWarning("QSaveFile::open: Unsupported open mode 0x%x", int(mode)); + return false; + } + + // check if existing file is writable + QFileInfo existingFile(d->fileName); + if (existingFile.exists() && !existingFile.isWritable()) { + d->setError(QFileDevice::WriteError, QSaveFile::tr("Existing file %1 is not writable").arg(d->fileName)); + d->writeError = QFileDevice::WriteError; + return false; + } + d->fileEngine = new QTemporaryFileEngine(d->fileName); + // Same as in QFile: QIODevice provides the buffering, so there's no need to request it from the file engine. + if (!d->fileEngine->open(mode | QIODevice::Unbuffered)) { + QFileDevice::FileError err = d->fileEngine->error(); + if (err == QFileDevice::UnspecifiedError) + err = QFileDevice::OpenError; + d->setError(err, d->fileEngine->errorString()); + delete d->fileEngine; + d->fileEngine = 0; + return false; + } + + QFileDevice::open(mode); + if (existingFile.exists()) + setPermissions(existingFile.permissions()); + return true; +} + +/*! + \reimp + This method has been made private so that it cannot be called, in order to prevent mistakes. + In order to finish writing the file, call commit(). + If instead you want to abort writing, call cancelWriting(). +*/ +void QSaveFile::close() +{ + qFatal("QSaveFile::close called"); +} + +/*! + Commits the changes to disk, if all previous writes were successful. + + It is mandatory to call this at the end of the saving operation, otherwise the file will be + discarded. + + If an error happened during writing, deletes the temporary file and returns false. + Otherwise, renames it to the final fileName and returns true on success. + Finally, closes the device. + + \sa cancelWriting() +*/ +bool QSaveFile::commit() +{ + Q_D(QSaveFile); + if (!d->fileEngine) + return false; + + if (!isOpen()) { + qWarning("QSaveFile::commit: File (%s) is not open", qPrintable(fileName())); + return false; + } + QFileDevice::close(); // calls flush() + + // Sync to disk if possible. Ignore errors (e.g. not supported). + d->fileEngine->syncToDisk(); + + if (d->writeError != QFileDevice::NoError) { + d->fileEngine->remove(); + d->writeError = QFileDevice::NoError; + delete d->fileEngine; + d->fileEngine = 0; + return false; + } + // atomically replace old file with new file + // Can't use QFile::rename for that, must use the file engine directly + Q_ASSERT(d->fileEngine); + if (!d->fileEngine->renameOverwrite(d->fileName)) { + d->setError(d->fileEngine->error(), d->fileEngine->errorString()); + d->fileEngine->remove(); + delete d->fileEngine; + d->fileEngine = 0; + return false; + } + delete d->fileEngine; + d->fileEngine = 0; + return true; +} + +/*! + Cancels writing the new file. + + If the application changes its mind while saving, it can call cancelWriting(), + which sets an error code so that commit() will discard the temporary file. + + Alternatively, it can simply make sure not to call commit(). + + Further write operations are possible after calling this method, but none + of it will have any effect, the written file will be discarded. + + \sa commit() +*/ +void QSaveFile::cancelWriting() +{ + Q_D(QSaveFile); + if (!isOpen()) + return; + d->setError(QFileDevice::WriteError, QSaveFile::tr("Writing canceled by application")); + d->writeError = QFileDevice::WriteError; +} + +/*! + \reimp +*/ +qint64 QSaveFile::writeData(const char *data, qint64 len) +{ + Q_D(QSaveFile); + if (d->writeError != QFileDevice::NoError) + return -1; + + const qint64 ret = QFileDevice::writeData(data, len); + + if (d->error != QFileDevice::NoError) + d->writeError = d->error; + return ret; +} + +QT_END_NAMESPACE diff --git a/src/corelib/io/qsavefile.h b/src/corelib/io/qsavefile.h new file mode 100644 index 0000000000..47a02a0b83 --- /dev/null +++ b/src/corelib/io/qsavefile.h @@ -0,0 +1,94 @@ +/**************************************************************************** +** +** Copyright (C) 2012 David Faure <faure@kde.org> +** Contact: http://www.qt-project.org/legal +** +** This file is part of the QtCore module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Digia. For licensing terms and +** conditions see http://qt.digia.com/licensing. For further information +** use the contact form at http://qt.digia.com/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Digia gives you certain additional +** rights. These rights are described in the Digia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QSAVEFILE_H +#define QSAVEFILE_H + +#include <QtCore/qfiledevice.h> +#include <QtCore/qstring.h> + +#ifdef open +#error qsavefile.h must be included before any header file that defines open +#endif + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + + +class QAbstractFileEngine; +class QSaveFilePrivate; + +class Q_CORE_EXPORT QSaveFile : public QFileDevice +{ + Q_OBJECT + Q_DECLARE_PRIVATE(QSaveFile) + +public: + + explicit QSaveFile(const QString &name); + explicit QSaveFile(QObject *parent = 0); + explicit QSaveFile(const QString &name, QObject *parent); + ~QSaveFile(); + + QString fileName() const Q_DECL_OVERRIDE; + void setFileName(const QString &name); + + bool open(OpenMode flags) Q_DECL_OVERRIDE; + bool commit(); + + void cancelWriting(); + +protected: + qint64 writeData(const char *data, qint64 len) Q_DECL_OVERRIDE; + +private: + void close() Q_DECL_OVERRIDE; + +private: + Q_DISABLE_COPY(QSaveFile) +}; + +QT_END_NAMESPACE + +QT_END_HEADER + +#endif // QSAVEFILE_H diff --git a/src/corelib/io/qsavefile_p.h b/src/corelib/io/qsavefile_p.h new file mode 100644 index 0000000000..27e687835b --- /dev/null +++ b/src/corelib/io/qsavefile_p.h @@ -0,0 +1,75 @@ +/**************************************************************************** +** +** Copyright (C) 2013 David Faure <faure@kde.org> +** Contact: http://www.qt-project.org/legal +** +** This file is part of the QtCore module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Digia. For licensing terms and +** conditions see http://qt.digia.com/licensing. For further information +** use the contact form at http://qt.digia.com/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Digia gives you certain additional +** rights. These rights are described in the Digia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QSAVEFILE_P_H +#define QSAVEFILE_P_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include "private/qfiledevice_p.h" + +QT_BEGIN_NAMESPACE + +class QSaveFilePrivate : public QFileDevicePrivate +{ + Q_DECLARE_PUBLIC(QSaveFile) + +protected: + QSaveFilePrivate(); + ~QSaveFilePrivate(); + + QString fileName; + + QFileDevice::FileError writeError; +}; + +QT_END_NAMESPACE + +#endif // QSAVEFILE_P_H diff --git a/src/corelib/io/qtemporaryfile.cpp b/src/corelib/io/qtemporaryfile.cpp index 9408727d25..d3a6e3c238 100644 --- a/src/corelib/io/qtemporaryfile.cpp +++ b/src/corelib/io/qtemporaryfile.cpp @@ -44,10 +44,9 @@ #ifndef QT_NO_TEMPORARYFILE #include "qplatformdefs.h" +#include "private/qtemporaryfile_p.h" #include "private/qfile_p.h" -#include "private/qfsfileengine_p.h" #include "private/qsystemerror_p.h" -#include "private/qfilesystemengine_p.h" #if !defined(Q_OS_WIN) #include "private/qcore_unix_p.h" // overrides QT_OPEN @@ -218,36 +217,6 @@ static bool createFileFromTemplate(NativeFileHandle &file, } //************* QTemporaryFileEngine -class QTemporaryFileEngine : public QFSFileEngine -{ - Q_DECLARE_PRIVATE(QFSFileEngine) -public: - QTemporaryFileEngine(const QString &file, bool fileIsTemplate = true) - : QFSFileEngine(), filePathIsTemplate(fileIsTemplate), - filePathWasTemplate(fileIsTemplate) - { - Q_D(QFSFileEngine); - d->fileEntry = QFileSystemEntry(file); - - if (!filePathIsTemplate) - QFSFileEngine::setFileName(file); - } - - ~QTemporaryFileEngine(); - - bool isReallyOpen(); - void setFileName(const QString &file); - void setFileTemplate(const QString &fileTemplate); - - bool open(QIODevice::OpenMode flags); - bool remove(); - bool rename(const QString &newName); - bool close(); - - bool filePathIsTemplate; - bool filePathWasTemplate; -}; - QTemporaryFileEngine::~QTemporaryFileEngine() { QFSFileEngine::close(); @@ -398,6 +367,12 @@ bool QTemporaryFileEngine::rename(const QString &newName) return QFSFileEngine::rename(newName); } +bool QTemporaryFileEngine::renameOverwrite(const QString &newName) +{ + QFSFileEngine::close(); + return QFSFileEngine::renameOverwrite(newName); +} + bool QTemporaryFileEngine::close() { // Don't close the file, just seek to the front. @@ -407,19 +382,6 @@ bool QTemporaryFileEngine::close() } //************* QTemporaryFilePrivate -class QTemporaryFilePrivate : public QFilePrivate -{ - Q_DECLARE_PUBLIC(QTemporaryFile) - -protected: - QTemporaryFilePrivate(); - ~QTemporaryFilePrivate(); - - QAbstractFileEngine *engine() const; - - bool autoRemove; - QString templateName; -}; QTemporaryFilePrivate::QTemporaryFilePrivate() : autoRemove(true) { @@ -440,7 +402,7 @@ QAbstractFileEngine *QTemporaryFilePrivate::engine() const return fileEngine; } -static QString defaultTemplateName() +QString QTemporaryFilePrivate::defaultTemplateName() { QString baseName; #if defined(QT_BUILD_CORE_LIB) @@ -506,7 +468,7 @@ QTemporaryFile::QTemporaryFile() : QFile(*new QTemporaryFilePrivate) { Q_D(QTemporaryFile); - d->templateName = defaultTemplateName(); + d->templateName = QTemporaryFilePrivate::defaultTemplateName(); } QTemporaryFile::QTemporaryFile(const QString &templateName) @@ -529,7 +491,7 @@ QTemporaryFile::QTemporaryFile() : QFile(*new QTemporaryFilePrivate, 0) { Q_D(QTemporaryFile); - d->templateName = defaultTemplateName(); + d->templateName = QTemporaryFilePrivate::defaultTemplateName(); } /*! @@ -565,7 +527,7 @@ QTemporaryFile::QTemporaryFile(QObject *parent) : QFile(*new QTemporaryFilePrivate, parent) { Q_D(QTemporaryFile); - d->templateName = defaultTemplateName(); + d->templateName = QTemporaryFilePrivate::defaultTemplateName(); } /*! diff --git a/src/corelib/io/qtemporaryfile_p.h b/src/corelib/io/qtemporaryfile_p.h new file mode 100644 index 0000000000..dd011f56c1 --- /dev/null +++ b/src/corelib/io/qtemporaryfile_p.h @@ -0,0 +1,101 @@ +/**************************************************************************** +** +** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). +** Contact: http://www.qt-project.org/legal +** +** This file is part of the QtCore module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Digia. For licensing terms and +** conditions see http://qt.digia.com/licensing. For further information +** use the contact form at http://qt.digia.com/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Digia gives you certain additional +** rights. These rights are described in the Digia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QTEMPORARYFILE_P_H +#define QTEMPORARYFILE_P_H + +#include "private/qfsfileengine_p.h" +#include "private/qfilesystemengine_p.h" +#include "private/qfile_p.h" + +QT_BEGIN_NAMESPACE + +class QTemporaryFilePrivate : public QFilePrivate +{ + Q_DECLARE_PUBLIC(QTemporaryFile) + +protected: + QTemporaryFilePrivate(); + ~QTemporaryFilePrivate(); + + QAbstractFileEngine *engine() const; + + bool autoRemove; + QString templateName; + + static QString defaultTemplateName(); +}; + +class QTemporaryFileEngine : public QFSFileEngine +{ + Q_DECLARE_PRIVATE(QFSFileEngine) +public: + QTemporaryFileEngine(const QString &file, bool fileIsTemplate = true) + : QFSFileEngine(), filePathIsTemplate(fileIsTemplate), + filePathWasTemplate(fileIsTemplate) + { + Q_D(QFSFileEngine); + d->fileEntry = QFileSystemEntry(file); + + if (!filePathIsTemplate) + QFSFileEngine::setFileName(file); + } + + ~QTemporaryFileEngine(); + + bool isReallyOpen(); + void setFileName(const QString &file); + void setFileTemplate(const QString &fileTemplate); + + bool open(QIODevice::OpenMode flags); + bool remove(); + bool rename(const QString &newName); + bool renameOverwrite(const QString &newName); + bool close(); + + bool filePathIsTemplate; + bool filePathWasTemplate; +}; + +QT_END_NAMESPACE + +#endif /* QTEMPORARYFILE_P_H */ + diff --git a/src/corelib/io/qtextstream.cpp b/src/corelib/io/qtextstream.cpp index 70c6eed9da..8459cdd158 100644 --- a/src/corelib/io/qtextstream.cpp +++ b/src/corelib/io/qtextstream.cpp @@ -226,12 +226,10 @@ static const int QTEXTSTREAM_BUFFERSIZE = 16384; */ #include "qtextstream.h" +#include "private/qtextstream_p.h" #include "qbuffer.h" #include "qfile.h" #include "qnumeric.h" -#ifndef QT_NO_TEXTCODEC -#include "qtextcodec.h" -#endif #ifndef Q_OS_WINCE #include <locale.h> #endif @@ -315,119 +313,7 @@ QT_END_NAMESPACE QT_BEGIN_NAMESPACE -#ifndef QT_NO_QOBJECT -class QDeviceClosedNotifier : public QObject -{ - Q_OBJECT -public: - inline QDeviceClosedNotifier() - { } - - inline void setupDevice(QTextStream *stream, QIODevice *device) - { - disconnect(); - if (device) - connect(device, SIGNAL(aboutToClose()), this, SLOT(flushStream())); - this->stream = stream; - } - -public Q_SLOTS: - inline void flushStream() { stream->flush(); } - -private: - QTextStream *stream; -}; -#endif - //------------------------------------------------------------------- -class QTextStreamPrivate -{ - Q_DECLARE_PUBLIC(QTextStream) -public: - QTextStreamPrivate(QTextStream *q_ptr); - ~QTextStreamPrivate(); - void reset(); - - // device - QIODevice *device; -#ifndef QT_NO_QOBJECT - QDeviceClosedNotifier deviceClosedNotifier; -#endif - bool deleteDevice; - - // string - QString *string; - int stringOffset; - QIODevice::OpenMode stringOpenMode; - -#ifndef QT_NO_TEXTCODEC - // codec - QTextCodec *codec; - QTextCodec::ConverterState readConverterState; - QTextCodec::ConverterState writeConverterState; - QTextCodec::ConverterState *readConverterSavedState; - bool autoDetectUnicode; -#endif - - // i/o - enum TokenDelimiter { - Space, - NotSpace, - EndOfLine - }; - - QString read(int maxlen); - bool scan(const QChar **ptr, int *tokenLength, - int maxlen, TokenDelimiter delimiter); - inline const QChar *readPtr() const; - inline void consumeLastToken(); - inline void consume(int nchars); - void saveConverterState(qint64 newPos); - void restoreToSavedConverterState(); - int lastTokenSize; - - // Return value type for getNumber() - enum NumberParsingStatus { - npsOk, - npsMissingDigit, - npsInvalidPrefix - }; - - inline bool getChar(QChar *ch); - inline void ungetChar(QChar ch); - NumberParsingStatus getNumber(qulonglong *l); - bool getReal(double *f); - - inline void write(const QString &data); - inline void putString(const QString &ch, bool number = false); - void putNumber(qulonglong number, bool negative); - - // buffers - bool fillReadBuffer(qint64 maxBytes = -1); - void resetReadBuffer(); - void flushWriteBuffer(); - QString writeBuffer; - QString readBuffer; - int readBufferOffset; - int readConverterSavedStateOffset; //the offset between readBufferStartDevicePos and that start of the buffer - qint64 readBufferStartDevicePos; - - // streaming parameters - int realNumberPrecision; - int integerBase; - int fieldWidth; - QChar padChar; - QTextStream::FieldAlignment fieldAlignment; - QTextStream::RealNumberNotation realNumberNotation; - QTextStream::NumberFlags numberFlags; - - // status - QTextStream::Status status; - - QLocale locale; - - QTextStream *q_ptr; -}; /*! \internal @@ -481,10 +367,7 @@ static void copyConverterStateHelper(QTextCodec::ConverterState *dest, } #endif -/*! - \internal -*/ -void QTextStreamPrivate::reset() +void QTextStreamPrivate::Params::reset() { realNumberPrecision = 6; integerBase = 0; @@ -493,6 +376,14 @@ void QTextStreamPrivate::reset() fieldAlignment = QTextStream::AlignRight; realNumberNotation = QTextStream::SmartNotation; numberFlags = 0; +} + +/*! + \internal +*/ +void QTextStreamPrivate::reset() +{ + params.reset(); device = 0; deleteDevice = false; @@ -985,15 +876,17 @@ inline void QTextStreamPrivate::putString(const QString &s, bool number) QString tmp = s; // handle padding - int padSize = fieldWidth - s.size(); + int padSize = params.fieldWidth - s.size(); if (padSize > 0) { - QString pad(padSize, padChar); - if (fieldAlignment == QTextStream::AlignLeft) { - tmp.append(QString(padSize, padChar)); - } else if (fieldAlignment == QTextStream::AlignRight - || fieldAlignment == QTextStream::AlignAccountingStyle) { - tmp.prepend(QString(padSize, padChar)); - if (fieldAlignment == QTextStream::AlignAccountingStyle && number) { + QString pad(padSize, params.padChar); + switch (params.fieldAlignment) { + case QTextStream::AlignLeft: + tmp.append(pad); + break; + case QTextStream::AlignRight: + case QTextStream::AlignAccountingStyle: + tmp.prepend(pad); + if (params.fieldAlignment == QTextStream::AlignAccountingStyle && number) { const QChar sign = s.size() > 0 ? s.at(0) : QChar(); if (sign == locale.negativeSign() || sign == locale.positiveSign()) { QChar *data = tmp.data(); @@ -1001,9 +894,11 @@ inline void QTextStreamPrivate::putString(const QString &s, bool number) data[0] = sign; } } - } else if (fieldAlignment == QTextStream::AlignCenter) { - tmp.prepend(QString(padSize/2, padChar)); - tmp.append(QString(padSize - padSize/2, padChar)); + break; + case QTextStream::AlignCenter: + tmp.prepend(QString(padSize/2, params.padChar)); + tmp.append(QString(padSize - padSize/2, params.padChar)); + break; } } @@ -1175,13 +1070,7 @@ void QTextStream::reset() { Q_D(QTextStream); - d->realNumberPrecision = 6; - d->integerBase = 0; - d->fieldWidth = 0; - d->padChar = QLatin1Char(' '); - d->fieldAlignment = QTextStream::AlignRight; - d->realNumberNotation = QTextStream::SmartNotation; - d->numberFlags = 0; + d->params.reset(); } /*! @@ -1400,7 +1289,7 @@ QString *QTextStream::string() const void QTextStream::setFieldAlignment(FieldAlignment mode) { Q_D(QTextStream); - d->fieldAlignment = mode; + d->params.fieldAlignment = mode; } /*! @@ -1411,7 +1300,7 @@ void QTextStream::setFieldAlignment(FieldAlignment mode) QTextStream::FieldAlignment QTextStream::fieldAlignment() const { Q_D(const QTextStream); - return d->fieldAlignment; + return d->params.fieldAlignment; } /*! @@ -1432,7 +1321,7 @@ QTextStream::FieldAlignment QTextStream::fieldAlignment() const void QTextStream::setPadChar(QChar ch) { Q_D(QTextStream); - d->padChar = ch; + d->params.padChar = ch; } /*! @@ -1443,7 +1332,7 @@ void QTextStream::setPadChar(QChar ch) QChar QTextStream::padChar() const { Q_D(const QTextStream); - return d->padChar; + return d->params.padChar; } /*! @@ -1461,7 +1350,7 @@ QChar QTextStream::padChar() const void QTextStream::setFieldWidth(int width) { Q_D(QTextStream); - d->fieldWidth = width; + d->params.fieldWidth = width; } /*! @@ -1472,7 +1361,7 @@ void QTextStream::setFieldWidth(int width) int QTextStream::fieldWidth() const { Q_D(const QTextStream); - return d->fieldWidth; + return d->params.fieldWidth; } /*! @@ -1486,7 +1375,7 @@ int QTextStream::fieldWidth() const void QTextStream::setNumberFlags(NumberFlags flags) { Q_D(QTextStream); - d->numberFlags = flags; + d->params.numberFlags = flags; } /*! @@ -1497,7 +1386,7 @@ void QTextStream::setNumberFlags(NumberFlags flags) QTextStream::NumberFlags QTextStream::numberFlags() const { Q_D(const QTextStream); - return d->numberFlags; + return d->params.numberFlags; } /*! @@ -1513,7 +1402,7 @@ QTextStream::NumberFlags QTextStream::numberFlags() const void QTextStream::setIntegerBase(int base) { Q_D(QTextStream); - d->integerBase = base; + d->params.integerBase = base; } /*! @@ -1525,7 +1414,7 @@ void QTextStream::setIntegerBase(int base) int QTextStream::integerBase() const { Q_D(const QTextStream); - return d->integerBase; + return d->params.integerBase; } /*! @@ -1539,7 +1428,7 @@ int QTextStream::integerBase() const void QTextStream::setRealNumberNotation(RealNumberNotation notation) { Q_D(QTextStream); - d->realNumberNotation = notation; + d->params.realNumberNotation = notation; } /*! @@ -1550,7 +1439,7 @@ void QTextStream::setRealNumberNotation(RealNumberNotation notation) QTextStream::RealNumberNotation QTextStream::realNumberNotation() const { Q_D(const QTextStream); - return d->realNumberNotation; + return d->params.realNumberNotation; } /*! @@ -1567,10 +1456,10 @@ void QTextStream::setRealNumberPrecision(int precision) Q_D(QTextStream); if (precision < 0) { qWarning("QTextStream::setRealNumberPrecision: Invalid precision (%d)", precision); - d->realNumberPrecision = 6; + d->params.realNumberPrecision = 6; return; } - d->realNumberPrecision = precision; + d->params.realNumberPrecision = precision; } /*! @@ -1582,7 +1471,7 @@ void QTextStream::setRealNumberPrecision(int precision) int QTextStream::realNumberPrecision() const { Q_D(const QTextStream); - return d->realNumberPrecision; + return d->params.realNumberPrecision; } /*! @@ -1722,7 +1611,7 @@ QTextStreamPrivate::NumberParsingStatus QTextStreamPrivate::getNumber(qulonglong consumeLastToken(); // detect int encoding - int base = integerBase; + int base = params.integerBase; if (base == 0) { QChar ch; if (!getChar(&ch)) @@ -2300,6 +2189,7 @@ void QTextStreamPrivate::putNumber(qulonglong number, bool negative) QString result; unsigned flags = 0; + const QTextStream::NumberFlags numberFlags = params.numberFlags; if (numberFlags & QTextStream::ShowBase) flags |= QLocalePrivate::ShowBase; if (numberFlags & QTextStream::ForceSign) @@ -2315,7 +2205,7 @@ void QTextStreamPrivate::putNumber(qulonglong number, bool negative) flags |= QLocalePrivate::ThousandsGroup; const QLocalePrivate *dd = locale.d; - int base = integerBase ? integerBase : 10; + int base = params.integerBase ? params.integerBase : 10; if (negative && base == 10) { result = dd->longLongToString(-static_cast<qlonglong>(number), -1, base, -1, flags); @@ -2330,7 +2220,7 @@ void QTextStreamPrivate::putNumber(qulonglong number, bool negative) result = dd->unsLongLongToString(number, -1, base, -1, flags); // workaround for backward compatibility - in octal form with // ShowBase flag set zero should be written as '00' - if (number == 0 && base == 8 && numberFlags & QTextStream::ShowBase + if (number == 0 && base == 8 && params.numberFlags & QTextStream::ShowBase && result == QLatin1String("0")) { result.prepend(QLatin1Char('0')); } @@ -2524,7 +2414,7 @@ QTextStream &QTextStream::operator<<(double f) flags |= QLocalePrivate::Alternate; const QLocalePrivate *dd = d->locale.d; - QString num = dd->doubleToString(f, d->realNumberPrecision, form, -1, flags); + QString num = dd->doubleToString(f, d->params.realNumberPrecision, form, -1, flags); d->putString(num, true); return *this; } @@ -2605,13 +2495,13 @@ QTextStream &QTextStream::operator<<(const void *ptr) { Q_D(QTextStream); CHECK_VALID_STREAM(*this); - int oldBase = d->integerBase; - NumberFlags oldFlags = d->numberFlags; - d->integerBase = 16; - d->numberFlags |= ShowBase; + const int oldBase = d->params.integerBase; + const NumberFlags oldFlags = d->params.numberFlags; + d->params.integerBase = 16; + d->params.numberFlags |= ShowBase; d->putNumber(reinterpret_cast<quintptr>(ptr), false); - d->integerBase = oldBase; - d->numberFlags = oldFlags; + d->params.integerBase = oldBase; + d->params.numberFlags = oldFlags; return *this; } @@ -3130,7 +3020,3 @@ QLocale QTextStream::locale() const QT_END_NAMESPACE -#ifndef QT_NO_QOBJECT -#include "qtextstream.moc" -#endif - diff --git a/src/corelib/io/qtextstream.h b/src/corelib/io/qtextstream.h index 3c25e0587a..0606b5f9ab 100644 --- a/src/corelib/io/qtextstream.h +++ b/src/corelib/io/qtextstream.h @@ -194,6 +194,7 @@ public: private: Q_DISABLE_COPY(QTextStream) + friend class QDebugStateSaverPrivate; QScopedPointer<QTextStreamPrivate> d_ptr; }; diff --git a/src/corelib/io/qtextstream_p.h b/src/corelib/io/qtextstream_p.h new file mode 100644 index 0000000000..d5d5288426 --- /dev/null +++ b/src/corelib/io/qtextstream_p.h @@ -0,0 +1,185 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). +** Contact: http://www.qt-project.org/legal +** +** This file is part of the QtCore module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Digia. For licensing terms and +** conditions see http://qt.digia.com/licensing. For further information +** use the contact form at http://qt.digia.com/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Digia gives you certain additional +** rights. These rights are described in the Digia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QTEXTSTREAM_P_H +#define QTEXTSTREAM_P_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include "qtextstream.h" +#ifndef QT_NO_TEXTCODEC +#include "qtextcodec.h" +#endif + +QT_BEGIN_NAMESPACE + +#ifndef QT_NO_QOBJECT +class QDeviceClosedNotifier : public QObject +{ + Q_OBJECT +public: + inline QDeviceClosedNotifier() + { } + + inline void setupDevice(QTextStream *stream, QIODevice *device) + { + disconnect(); + if (device) + connect(device, SIGNAL(aboutToClose()), this, SLOT(flushStream())); + this->stream = stream; + } + +public Q_SLOTS: + inline void flushStream() { stream->flush(); } + +private: + QTextStream *stream; +}; +#endif + +class QTextStreamPrivate +{ + Q_DECLARE_PUBLIC(QTextStream) +public: + QTextStreamPrivate(QTextStream *q_ptr); + ~QTextStreamPrivate(); + void reset(); + + // device + QIODevice *device; +#ifndef QT_NO_QOBJECT + QDeviceClosedNotifier deviceClosedNotifier; +#endif + bool deleteDevice; + + // string + QString *string; + int stringOffset; + QIODevice::OpenMode stringOpenMode; + +#ifndef QT_NO_TEXTCODEC + // codec + QTextCodec *codec; + QTextCodec::ConverterState readConverterState; + QTextCodec::ConverterState writeConverterState; + QTextCodec::ConverterState *readConverterSavedState; + bool autoDetectUnicode; +#endif + + // i/o + enum TokenDelimiter { + Space, + NotSpace, + EndOfLine + }; + + QString read(int maxlen); + bool scan(const QChar **ptr, int *tokenLength, + int maxlen, TokenDelimiter delimiter); + inline const QChar *readPtr() const; + inline void consumeLastToken(); + inline void consume(int nchars); + void saveConverterState(qint64 newPos); + void restoreToSavedConverterState(); + int lastTokenSize; + + // Return value type for getNumber() + enum NumberParsingStatus { + npsOk, + npsMissingDigit, + npsInvalidPrefix + }; + + inline bool getChar(QChar *ch); + inline void ungetChar(QChar ch); + NumberParsingStatus getNumber(qulonglong *l); + bool getReal(double *f); + + inline void write(const QString &data); + inline void putString(const QString &ch, bool number = false); + void putNumber(qulonglong number, bool negative); + + // buffers + bool fillReadBuffer(qint64 maxBytes = -1); + void resetReadBuffer(); + void flushWriteBuffer(); + QString writeBuffer; + QString readBuffer; + int readBufferOffset; + int readConverterSavedStateOffset; //the offset between readBufferStartDevicePos and that start of the buffer + qint64 readBufferStartDevicePos; + + // streaming parameters + class Params + { + public: + void reset(); + + int realNumberPrecision; + int integerBase; + int fieldWidth; + QChar padChar; + QTextStream::FieldAlignment fieldAlignment; + QTextStream::RealNumberNotation realNumberNotation; + QTextStream::NumberFlags numberFlags; + }; + Params params; + + // status + QTextStream::Status status; + + QLocale locale; + + QTextStream *q_ptr; +}; + +QT_END_NAMESPACE + +#endif // QTEXTSTREAM_P_H diff --git a/src/corelib/io/qurl.cpp b/src/corelib/io/qurl.cpp index 79981738f2..4882e3575f 100644 --- a/src/corelib/io/qurl.cpp +++ b/src/corelib/io/qurl.cpp @@ -3765,6 +3765,37 @@ QString QUrl::errorString() const } /*! + \since 5.1 + + Converts a list of \a urls into a list of QStrings, using toString(\a options). +*/ +QStringList QUrl::toStringList(const QList<QUrl> &urls, FormattingOptions options) +{ + QStringList lst; + lst.reserve(urls.size()); + foreach (const QUrl &url, urls) + lst.append(url.toString(options)); + return lst; + +} + +/*! + \since 5.1 + + Converts a list of strings representing \a urls into a list of urls, using QUrl(str, \a mode). + Note that this means all strings must be urls, not for instance local paths. +*/ +QList<QUrl> QUrl::fromStringList(const QStringList &urls, ParsingMode mode) +{ + QList<QUrl> lst; + lst.reserve(urls.size()); + foreach (const QString &str, urls) { + lst.append(QUrl(str, mode)); + } + return lst; +} + +/*! \typedef QUrl::DataPtr \internal */ diff --git a/src/corelib/io/qurl.h b/src/corelib/io/qurl.h index bd35b44f17..17012d1b3f 100644 --- a/src/corelib/io/qurl.h +++ b/src/corelib/io/qurl.h @@ -322,6 +322,9 @@ public: static QString fromAce(const QByteArray &); static QByteArray toAce(const QString &); static QStringList idnWhitelist(); + static QStringList toStringList(const QList<QUrl> &uris, FormattingOptions options = FormattingOptions(PrettyDecoded)); + static QList<QUrl> fromStringList(const QStringList &uris, ParsingMode mode = TolerantMode); + static void setIdnWhitelist(const QStringList &); friend Q_CORE_EXPORT uint qHash(const QUrl &url, uint seed = 0) Q_DECL_NOTHROW; diff --git a/src/corelib/itemmodels/qstringlistmodel.cpp b/src/corelib/itemmodels/qstringlistmodel.cpp index 73fdd9eb97..3824c02be1 100644 --- a/src/corelib/itemmodels/qstringlistmodel.cpp +++ b/src/corelib/itemmodels/qstringlistmodel.cpp @@ -170,9 +170,9 @@ QVariant QStringListModel::data(const QModelIndex &index, int role) const Qt::ItemFlags QStringListModel::flags(const QModelIndex &index) const { if (!index.isValid()) - return QAbstractItemModel::flags(index) | Qt::ItemIsDropEnabled; + return QAbstractListModel::flags(index) | Qt::ItemIsDropEnabled; - return QAbstractItemModel::flags(index) | Qt::ItemIsEditable | Qt::ItemIsDragEnabled | Qt::ItemIsDropEnabled; + return QAbstractListModel::flags(index) | Qt::ItemIsEditable | Qt::ItemIsDragEnabled | Qt::ItemIsDropEnabled; } /*! diff --git a/src/corelib/json/qjsondocument.cpp b/src/corelib/json/qjsondocument.cpp index 550cc76b0d..bdb46528d3 100644 --- a/src/corelib/json/qjsondocument.cpp +++ b/src/corelib/json/qjsondocument.cpp @@ -303,15 +303,50 @@ QVariant QJsonDocument::toVariant() const */ QByteArray QJsonDocument::toJson() const { + return toJson(Indented); +} + +/*! + \enum QJsonDocument::JsonFormat + + This value defines the format of the JSON byte array produced + when converting to a QJsonDocument using toJson(). + + \value Indented Defines human readable output as follows: + \code + { + "Array": [ + true, + 999, + "string" + ], + "Key": "Value", + "null": null + } + \endcode + + \value Compact Defines a compact output as follows: + \code + {"Array": [true,999,"string"],"Key": "Value","null": null} + \endcode + */ + +/*! + Converts the QJsonDocument to a UTF-8 encoded JSON document in the provided \a format. + + \sa fromJson(), JsonFormat + */ +QByteArray QJsonDocument::toJson(JsonFormat format) const +{ if (!d) return QByteArray(); QByteArray json; if (d->header->root()->isArray()) - QJsonPrivate::Writer::arrayToJson(static_cast<QJsonPrivate::Array *>(d->header->root()), json, 0); + QJsonPrivate::Writer::arrayToJson(static_cast<QJsonPrivate::Array *>(d->header->root()), json, 0, (format == Compact)); else - QJsonPrivate::Writer::objectToJson(static_cast<QJsonPrivate::Object *>(d->header->root()), json, 0); + QJsonPrivate::Writer::objectToJson(static_cast<QJsonPrivate::Object *>(d->header->root()), json, 0, (format == Compact)); return json; } diff --git a/src/corelib/json/qjsondocument.h b/src/corelib/json/qjsondocument.h index 675ee75dbf..0bb21d89cf 100644 --- a/src/corelib/json/qjsondocument.h +++ b/src/corelib/json/qjsondocument.h @@ -109,8 +109,19 @@ public: static QJsonDocument fromVariant(const QVariant &variant); QVariant toVariant() const; + enum JsonFormat { + Indented, + Compact + }; + static QJsonDocument fromJson(const QByteArray &json, QJsonParseError *error = 0); - QByteArray toJson() const; + +#ifdef Q_QDOC + QByteArray toJson(JsonFormat format = Indented) const; +#else + QByteArray toJson() const; //### Merge in Qt6 + QByteArray toJson(JsonFormat format) const; +#endif bool isEmpty() const; bool isArray() const; diff --git a/src/corelib/kernel/qcore_unix.cpp b/src/corelib/kernel/qcore_unix.cpp index cc5479876d..5ab1d510ef 100644 --- a/src/corelib/kernel/qcore_unix.cpp +++ b/src/corelib/kernel/qcore_unix.cpp @@ -60,8 +60,8 @@ QT_BEGIN_NAMESPACE -static inline bool time_update(struct timeval *tv, const struct timeval &start, - const struct timeval &timeout) +static inline bool time_update(struct timespec *tv, const struct timespec &start, + const struct timespec &timeout) { if (!QElapsedTimer::isMonotonic()) { // we cannot recalculate the timeout without a monotonic clock as the time may have changed @@ -69,13 +69,13 @@ static inline bool time_update(struct timeval *tv, const struct timeval &start, } // clock source is monotonic, so we can recalculate how much timeout is left - struct timeval now = qt_gettime(); + struct timespec now = qt_gettime(); *tv = timeout + start - now; return tv->tv_sec >= 0; } int qt_safe_select(int nfds, fd_set *fdread, fd_set *fdwrite, fd_set *fdexcept, - const struct timeval *orig_timeout) + const struct timespec *orig_timeout) { if (!orig_timeout) { // no timeout -> block forever @@ -84,13 +84,13 @@ int qt_safe_select(int nfds, fd_set *fdread, fd_set *fdwrite, fd_set *fdexcept, return ret; } - timeval start = qt_gettime(); - timeval timeout = *orig_timeout; + timespec start = qt_gettime(); + timespec timeout = *orig_timeout; // loop and recalculate the timeout as needed int ret; forever { - ret = ::select(nfds, fdread, fdwrite, fdexcept, &timeout); + ret = ::pselect(nfds, fdread, fdwrite, fdexcept, &timeout, 0); if (ret != -1 || errno != EINTR) return ret; diff --git a/src/corelib/kernel/qcore_unix_p.h b/src/corelib/kernel/qcore_unix_p.h index 6342b0362a..b68146cd6c 100644 --- a/src/corelib/kernel/qcore_unix_p.h +++ b/src/corelib/kernel/qcore_unix_p.h @@ -100,49 +100,49 @@ using namespace QT_PREPEND_NAMESPACE(QtLibcSupplement); QT_BEGIN_NAMESPACE -// Internal operator functions for timevals -inline timeval &normalizedTimeval(timeval &t) +// Internal operator functions for timespecs +inline timespec &normalizedTimespec(timespec &t) { - while (t.tv_usec >= 1000000) { + while (t.tv_nsec >= 1000000000) { ++t.tv_sec; - t.tv_usec -= 1000000; + t.tv_nsec -= 1000000000; } - while (t.tv_usec < 0) { + while (t.tv_nsec < 0) { --t.tv_sec; - t.tv_usec += 1000000; + t.tv_nsec += 1000000000; } return t; } -inline bool operator<(const timeval &t1, const timeval &t2) -{ return t1.tv_sec < t2.tv_sec || (t1.tv_sec == t2.tv_sec && t1.tv_usec < t2.tv_usec); } -inline bool operator==(const timeval &t1, const timeval &t2) -{ return t1.tv_sec == t2.tv_sec && t1.tv_usec == t2.tv_usec; } -inline timeval &operator+=(timeval &t1, const timeval &t2) +inline bool operator<(const timespec &t1, const timespec &t2) +{ return t1.tv_sec < t2.tv_sec || (t1.tv_sec == t2.tv_sec && t1.tv_nsec < t2.tv_nsec); } +inline bool operator==(const timespec &t1, const timespec &t2) +{ return t1.tv_sec == t2.tv_sec && t1.tv_nsec == t2.tv_nsec; } +inline timespec &operator+=(timespec &t1, const timespec &t2) { t1.tv_sec += t2.tv_sec; - t1.tv_usec += t2.tv_usec; - return normalizedTimeval(t1); + t1.tv_nsec += t2.tv_nsec; + return normalizedTimespec(t1); } -inline timeval operator+(const timeval &t1, const timeval &t2) +inline timespec operator+(const timespec &t1, const timespec &t2) { - timeval tmp; + timespec tmp; tmp.tv_sec = t1.tv_sec + t2.tv_sec; - tmp.tv_usec = t1.tv_usec + t2.tv_usec; - return normalizedTimeval(tmp); + tmp.tv_nsec = t1.tv_nsec + t2.tv_nsec; + return normalizedTimespec(tmp); } -inline timeval operator-(const timeval &t1, const timeval &t2) +inline timespec operator-(const timespec &t1, const timespec &t2) { - timeval tmp; + timespec tmp; tmp.tv_sec = t1.tv_sec - (t2.tv_sec - 1); - tmp.tv_usec = t1.tv_usec - (t2.tv_usec + 1000000); - return normalizedTimeval(tmp); + tmp.tv_nsec = t1.tv_nsec - (t2.tv_nsec + 1000000000); + return normalizedTimespec(tmp); } -inline timeval operator*(const timeval &t1, int mul) +inline timespec operator*(const timespec &t1, int mul) { - timeval tmp; + timespec tmp; tmp.tv_sec = t1.tv_sec * mul; - tmp.tv_usec = t1.tv_usec * mul; - return normalizedTimeval(tmp); + tmp.tv_nsec = t1.tv_nsec * mul; + return normalizedTimespec(tmp); } inline void qt_ignore_sigpipe() @@ -335,11 +335,11 @@ static inline pid_t qt_safe_waitpid(pid_t pid, int *status, int options) #endif // in qelapsedtimer_mac.cpp or qtimestamp_unix.cpp -timeval qt_gettime() Q_DECL_NOTHROW; +timespec qt_gettime() Q_DECL_NOTHROW; void qt_nanosleep(timespec amount); Q_CORE_EXPORT int qt_safe_select(int nfds, fd_set *fdread, fd_set *fdwrite, fd_set *fdexcept, - const struct timeval *tv); + const struct timespec *tv); // according to X/OPEN we have to define semun ourselves // we use prefix as on some systems sem.h will have it diff --git a/src/corelib/kernel/qcoreapplication.cpp b/src/corelib/kernel/qcoreapplication.cpp index ec808424f9..05688d3ba6 100644 --- a/src/corelib/kernel/qcoreapplication.cpp +++ b/src/corelib/kernel/qcoreapplication.cpp @@ -194,8 +194,32 @@ extern "C" void Q_CORE_EXPORT qt_startup_hook() { } +typedef QList<QtStartUpFunction> QStartUpFuncList; +Q_GLOBAL_STATIC(QStartUpFuncList, preRList) typedef QList<QtCleanUpFunction> QVFuncList; Q_GLOBAL_STATIC(QVFuncList, postRList) +static QBasicMutex globalPreRoutinesMutex; + +/*! + \internal + + Adds a global routine that will be called from the QCoreApplication + constructor. The public API is Q_COREAPP_STARTUP_FUNCTION. +*/ +void qAddPreRoutine(QtStartUpFunction p) +{ + QStartUpFuncList *list = preRList(); + if (!list) + return; + // Due to C++11 parallel dynamic initialization, this can be called + // from multiple threads. +#ifndef QT_NO_THREAD + QMutexLocker locker(&globalPreRoutinesMutex); +#endif + if (QCoreApplication::instance()) + p(); + list->prepend(p); // in case QCoreApplication is re-created, see qt_call_pre_routines +} void qAddPostRoutine(QtCleanUpFunction p) { @@ -213,6 +237,21 @@ void qRemovePostRoutine(QtCleanUpFunction p) list->removeAll(p); } +static void qt_call_pre_routines() +{ + QStartUpFuncList *list = preRList(); + if (!list) + return; +#ifndef QT_NO_THREAD + QMutexLocker locker(&globalPreRoutinesMutex); +#endif + // Unlike qt_call_post_routines, we don't empty the list, because + // Q_COREAPP_STARTUP_FUNCTION is a macro, so the user expects + // the function to be executed every time QCoreApplication is created. + for (int i = 0; i < list->count(); ++i) + list->at(i)(); +} + void Q_CORE_EXPORT qt_call_post_routines() { QVFuncList *list = 0; @@ -637,6 +676,7 @@ void QCoreApplication::init() d->processCommandLineArguments(); + qt_call_pre_routines(); qt_startup_hook(); } @@ -2325,6 +2365,31 @@ void QCoreApplication::setEventDispatcher(QAbstractEventDispatcher *eventDispatc } /*! + \macro Q_COREAPP_STARTUP_FUNCTION(QtStartUpFunction ptr) + \since 5.1 + \relates QCoreApplication + \reentrant + + Adds a global function that will be called from the QCoreApplication + constructor. This macro is normally used to initialize libraries + for program-wide functionality, without requiring the application to + call into the library for initialization. + + The function specified by \a ptr should take no arguments and should + return nothing. For example: + + \snippet code/src_corelib_kernel_qcoreapplication.cpp 3 + + Note that the startup function will run at the end of the QCoreApplication constructor, + before any GUI initialization. If GUI code is required in the function, + use a timer (or a queued invocation) to perform the initialization later on, + from the event loop. + + If QCoreApplication is deleted and another QCoreApplication is created, + the startup function will be invoked again. +*/ + +/*! \fn void qAddPostRoutine(QtCleanUpFunction ptr) \relates QCoreApplication diff --git a/src/corelib/kernel/qcoreapplication.h b/src/corelib/kernel/qcoreapplication.h index 0a87689ff3..5333ea22f4 100644 --- a/src/corelib/kernel/qcoreapplication.h +++ b/src/corelib/kernel/qcoreapplication.h @@ -220,12 +220,20 @@ public: \ { return QCoreApplication::translate(#context, sourceText, disambiguation, n); } \ private: +typedef void (*QtStartUpFunction)(); typedef void (*QtCleanUpFunction)(); +Q_CORE_EXPORT void qAddPreRoutine(QtStartUpFunction); Q_CORE_EXPORT void qAddPostRoutine(QtCleanUpFunction); Q_CORE_EXPORT void qRemovePostRoutine(QtCleanUpFunction); Q_CORE_EXPORT QString qAppName(); // get application name +#define Q_COREAPP_STARTUP_FUNCTION(AFUNC) \ + static void AFUNC ## _ctor_function() { \ + qAddPreRoutine(AFUNC); \ + } \ + Q_CONSTRUCTOR_FUNCTION(AFUNC ## _ctor_function) + #if defined(Q_OS_WIN) && !defined(QT_NO_DEBUG_STREAM) Q_CORE_EXPORT QString decodeMSG(const MSG &); Q_CORE_EXPORT QDebug operator<<(QDebug, const MSG &); diff --git a/src/corelib/kernel/qeventdispatcher_glib.cpp b/src/corelib/kernel/qeventdispatcher_glib.cpp index c6680d6a80..75cd88c456 100644 --- a/src/corelib/kernel/qeventdispatcher_glib.cpp +++ b/src/corelib/kernel/qeventdispatcher_glib.cpp @@ -131,9 +131,9 @@ struct GTimerSource static gboolean timerSourcePrepareHelper(GTimerSource *src, gint *timeout) { - timeval tv = { 0l, 0l }; + timespec tv = { 0l, 0l }; if (!(src->processEventsFlags & QEventLoop::X11ExcludeTimers) && src->timerList.timerWait(tv)) - *timeout = (tv.tv_sec * 1000) + ((tv.tv_usec + 999) / 1000); + *timeout = (tv.tv_sec * 1000) + ((tv.tv_nsec + 999999) / 1000 / 1000); else *timeout = -1; diff --git a/src/corelib/kernel/qeventdispatcher_unix.cpp b/src/corelib/kernel/qeventdispatcher_unix.cpp index acdc7635e8..c79fe89105 100644 --- a/src/corelib/kernel/qeventdispatcher_unix.cpp +++ b/src/corelib/kernel/qeventdispatcher_unix.cpp @@ -56,6 +56,10 @@ #include <stdio.h> #include <stdlib.h> +#ifndef QT_NO_EVENTFD +# include <sys/eventfd.h> +#endif + // VxWorks doesn't correctly set the _POSIX_... options #if defined(Q_OS_VXWORKS) # if defined(_POSIX_MONOTONIC_CLOCK) && (_POSIX_MONOTONIC_CLOCK <= 0) @@ -109,7 +113,7 @@ QEventDispatcherUNIXPrivate::QEventDispatcherUNIXPrivate() } #elif defined(Q_OS_VXWORKS) char name[20]; - qsnprintf(name, sizeof(name), "/pipe/qt_%08x", int(taskIdCurrent)); + qsnprintf(name, sizeof(name), "/pipe/qt_%08x", int(taskIdSelf())); // make sure there is no pipe with this name pipeDevDelete(name, true); @@ -127,6 +131,12 @@ QEventDispatcherUNIXPrivate::QEventDispatcherUNIXPrivate() } } #else +# ifndef QT_NO_EVENTFD + thread_pipe[0] = eventfd(0, EFD_NONBLOCK | EFD_CLOEXEC); + if (thread_pipe[0] != -1) + thread_pipe[1] = -1; + else // fall through the next "if" +# endif if (qt_safe_pipe(thread_pipe, O_NONBLOCK) == -1) { perror("QEventDispatcherUNIXPrivate(): Unable to create thread pipe"); pipefail = true; @@ -149,20 +159,21 @@ QEventDispatcherUNIXPrivate::~QEventDispatcherUNIXPrivate() close(thread_pipe[0]); char name[20]; - qsnprintf(name, sizeof(name), "/pipe/qt_%08x", int(taskIdCurrent)); + qsnprintf(name, sizeof(name), "/pipe/qt_%08x", int(taskIdSelf())); pipeDevDelete(name, true); #else // cleanup the common parts of the event loop close(thread_pipe[0]); - close(thread_pipe[1]); + if (thread_pipe[1] != -1) + close(thread_pipe[1]); #endif // cleanup timers qDeleteAll(timerList); } -int QEventDispatcherUNIXPrivate::doSelect(QEventLoop::ProcessEventsFlags flags, timeval *timeout) +int QEventDispatcherUNIXPrivate::doSelect(QEventLoop::ProcessEventsFlags flags, timespec *timeout) { Q_Q(QEventDispatcherUNIX); @@ -279,9 +290,18 @@ int QEventDispatcherUNIXPrivate::processThreadWakeUp(int nsel) ::read(thread_pipe[0], c, sizeof(c)); ::ioctl(thread_pipe[0], FIOFLUSH, 0); #else - char c[16]; - while (::read(thread_pipe[0], c, sizeof(c)) > 0) - ; +# ifndef QT_NO_EVENTFD + if (thread_pipe[1] == -1) { + // eventfd + eventfd_t value; + eventfd_read(thread_pipe[0], &value); + } else +# endif + { + char c[16]; + while (::read(thread_pipe[0], c, sizeof(c)) > 0) { + } + } #endif if (!wakeUps.testAndSetRelease(1, 0)) { // hopefully, this is dead code @@ -307,7 +327,7 @@ QEventDispatcherUNIX::~QEventDispatcherUNIX() } int QEventDispatcherUNIX::select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, - timeval *timeout) + timespec *timeout) { return qt_safe_select(nfds, readfds, writefds, exceptfds, timeout); } @@ -580,8 +600,8 @@ bool QEventDispatcherUNIX::processEvents(QEventLoop::ProcessEventsFlags flags) if (!d->interrupt) { // return the maximum time we can wait for an event. - timeval *tm = 0; - timeval wait_tm = { 0l, 0l }; + timespec *tm = 0; + timespec wait_tm = { 0l, 0l }; if (!(flags & QEventLoop::X11ExcludeTimers)) { if (d->timerList.timerWait(wait_tm)) tm = &wait_tm; @@ -593,7 +613,7 @@ bool QEventDispatcherUNIX::processEvents(QEventLoop::ProcessEventsFlags flags) // no time to wait tm->tv_sec = 0l; - tm->tv_usec = 0l; + tm->tv_nsec = 0l; } nevents = d->doSelect(flags, tm); @@ -630,6 +650,15 @@ void QEventDispatcherUNIX::wakeUp() { Q_D(QEventDispatcherUNIX); if (d->wakeUps.testAndSetAcquire(0, 1)) { +#ifndef QT_NO_EVENTFD + if (d->thread_pipe[1] == -1) { + // eventfd + eventfd_t value = 1; + int ret; + EINTR_LOOP(ret, eventfd_write(d->thread_pipe[0], value)); + return; + } +#endif char c = 0; qt_safe_write( d->thread_pipe[1], &c, 1 ); } diff --git a/src/corelib/kernel/qeventdispatcher_unix_p.h b/src/corelib/kernel/qeventdispatcher_unix_p.h index afebe2fb7e..db89b7c444 100644 --- a/src/corelib/kernel/qeventdispatcher_unix_p.h +++ b/src/corelib/kernel/qeventdispatcher_unix_p.h @@ -61,9 +61,7 @@ #include "QtCore/qvarlengtharray.h" #include "private/qtimerinfo_unix_p.h" -#if defined(Q_OS_VXWORKS) -# include <sys/times.h> -#else +#if !defined(Q_OS_VXWORKS) # include <sys/time.h> # if (!defined(Q_OS_HPUX) || defined(__ia64)) && !defined(Q_OS_NACL) # include <sys/select.h> @@ -132,7 +130,7 @@ protected: virtual int select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, - timeval *timeout); + timespec *timeout); }; class Q_CORE_EXPORT QEventDispatcherUNIXPrivate : public QAbstractEventDispatcherPrivate @@ -143,11 +141,14 @@ public: QEventDispatcherUNIXPrivate(); ~QEventDispatcherUNIXPrivate(); - int doSelect(QEventLoop::ProcessEventsFlags flags, timeval *timeout); + int doSelect(QEventLoop::ProcessEventsFlags flags, timespec *timeout); virtual int initThreadWakeUp(); virtual int processThreadWakeUp(int nsel); bool mainThread; + + // note for eventfd(7) support: + // if thread_pipe[1] is -1, then eventfd(7) is in use and is stored in thread_pipe[0] int thread_pipe[2]; // highest fd for all socket notifiers diff --git a/src/corelib/kernel/qfunctions_vxworks.cpp b/src/corelib/kernel/qfunctions_vxworks.cpp index 2174588757..8d25ad6a8d 100644 --- a/src/corelib/kernel/qfunctions_vxworks.cpp +++ b/src/corelib/kernel/qfunctions_vxworks.cpp @@ -46,7 +46,9 @@ #include "qplatformdefs.h" #include "qfunctions_vxworks.h" +#if defined(_WRS_KERNEL) #include <vmLib.h> +#endif #include <selectLib.h> #include <ioLib.h> @@ -92,7 +94,7 @@ int usleep(unsigned int usec) // gettimeofday() is declared, but is missing from the library // It IS however defined in the Curtis-Wright X11 libraries, so // we have to make the symbol 'weak' -#if defined(Q_CC_DIAB) +#if defined(Q_CC_DIAB) && !defined(VXWORKS_DKM) && !defined(VXWORKS_RTP) # pragma weak gettimeofday #endif int gettimeofday(struct timeval *tv, void /*struct timezone*/ *) @@ -118,7 +120,11 @@ int gettimeofday(struct timeval *tv, void /*struct timezone*/ *) // neither getpagesize() or sysconf(_SC_PAGESIZE) are available int getpagesize() { +#if defined(_WRS_KERNEL) return vmPageSizeGet(); +#else + return sysconf(_SC_PAGESIZE); +#endif } // symlinks are not supported (lstat is now just a call to stat - see qplatformdefs.h) diff --git a/src/corelib/kernel/qfunctions_vxworks.h b/src/corelib/kernel/qfunctions_vxworks.h index 6339903cff..6776a6a721 100644 --- a/src/corelib/kernel/qfunctions_vxworks.h +++ b/src/corelib/kernel/qfunctions_vxworks.h @@ -52,7 +52,11 @@ #include <errno.h> #include <sys/types.h> #include <sys/ioctl.h> +#if defined(_WRS_KERNEL) #include <sys/times.h> +#else +#include <sys/time.h> +#endif #include <sys/socket.h> #include <sys/stat.h> #include <sys/wait.h> @@ -61,6 +65,44 @@ #include <net/if.h> #endif +// VxWorks has public header mbuf.h which defines following variables for DKM. +// Let's undef those to because they overlap with Qt variable names- +// File mbuf.h is included in headers <netinet/in.h> <net/if.h>, so make sure +// that those are included before undef's. +#if defined(mbuf) +# undef mbuf +#endif +#if defined(m_data) +# undef m_data +#endif +#if defined(m_type) +# undef m_type +#endif +#if defined(m_next) +# undef m_next +#endif +#if defined(m_len) +# undef m_len +#endif +#if defined(m_flags) +# undef m_flags +#endif +#if defined(m_hdr) +# undef m_hdr +#endif +#if defined(m_ext) +# undef m_ext +#endif +#if defined(m_act) +# undef m_act +#endif +#if defined(m_nextpkt) +# undef m_nextpkt +#endif +#if defined(m_pkthdr) +# undef m_pkthdr +#endif + QT_BEGIN_HEADER QT_BEGIN_NAMESPACE @@ -100,12 +142,16 @@ int rand_r(unsigned int * /*seedp*/); // no usleep() support int usleep(unsigned int); +#if defined(VXWORKS_DKM) || defined(VXWORKS_RTP) +int gettimeofday(struct timeval *, void *); +#else // gettimeofday() is declared, but is missing from the library. // It IS however defined in the Curtis-Wright X11 libraries, so // we have to make the symbol 'weak' int gettimeofday(struct timeval *tv, void /*struct timezone*/ *) __attribute__((weak)); +#endif -// neither getpagesize() or sysconf(_SC_PAGESIZE) are available +// getpagesize() not available int getpagesize(); // symlinks are not supported (lstat is now just a call to stat - see qplatformdefs.h) diff --git a/src/corelib/kernel/qmetatype.cpp b/src/corelib/kernel/qmetatype.cpp index abf220ebd4..b9f7462b12 100644 --- a/src/corelib/kernel/qmetatype.cpp +++ b/src/corelib/kernel/qmetatype.cpp @@ -959,11 +959,11 @@ bool QMetaType::save(QDataStream &stream, int type, const void *data) break; #endif #ifndef QT_BOOTSTRAPPED -#ifndef QT_NO_REGEXP +#ifndef QT_NO_REGULAREXPRESSION case QMetaType::QRegularExpression: stream << *static_cast<const NS(QRegularExpression)*>(data); break; -#endif // QT_NO_REGEXP +#endif // QT_NO_REGULAREXPRESSION case QMetaType::QEasingCurve: stream << *static_cast<const NS(QEasingCurve)*>(data); break; @@ -1182,11 +1182,11 @@ bool QMetaType::load(QDataStream &stream, int type, void *data) break; #endif #ifndef QT_BOOTSTRAPPED -#ifndef QT_NO_REGEXP +#ifndef QT_NO_REGULAREXPRESSION case QMetaType::QRegularExpression: stream >> *static_cast< NS(QRegularExpression)*>(data); break; -#endif // QT_NO_REGEXP +#endif // QT_NO_REGULAREXPRESSION case QMetaType::QEasingCurve: stream >> *static_cast< NS(QEasingCurve)*>(data); break; diff --git a/src/corelib/kernel/qmetatype_p.h b/src/corelib/kernel/qmetatype_p.h index 39bdd5e3bb..95b9e2e394 100644 --- a/src/corelib/kernel/qmetatype_p.h +++ b/src/corelib/kernel/qmetatype_p.h @@ -221,7 +221,7 @@ template<> struct TypeDefinition<QPointF> { static const bool IsAvailable = fals #ifdef QT_NO_REGEXP template<> struct TypeDefinition<QRegExp> { static const bool IsAvailable = false; }; #endif -#if defined(QT_BOOTSTRAPPED) || defined(QT_NO_REGEXP) +#if defined(QT_BOOTSTRAPPED) || defined(QT_NO_REGULAREXPRESSION) template<> struct TypeDefinition<QRegularExpression> { static const bool IsAvailable = false; }; #endif #ifdef QT_NO_SHORTCUT diff --git a/src/corelib/kernel/qobject.cpp b/src/corelib/kernel/qobject.cpp index d125946781..69e2c6e1a2 100644 --- a/src/corelib/kernel/qobject.cpp +++ b/src/corelib/kernel/qobject.cpp @@ -1690,7 +1690,7 @@ void qt_qFindChildren_helper(const QObject *parent, const QRegExp &re, } #endif // QT_NO_REGEXP -#ifndef QT_NO_REGEXP +#ifndef QT_NO_REGULAREXPRESSION /*! \internal */ @@ -1712,7 +1712,7 @@ void qt_qFindChildren_helper(const QObject *parent, const QRegularExpression &re qt_qFindChildren_helper(obj, re, mo, list, options); } } -#endif // QT_NO_REGEXP +#endif // QT_NO_REGULAREXPRESSION /*! \internal diff --git a/src/corelib/kernel/qobject.h b/src/corelib/kernel/qobject.h index a2d7dcd7ef..a7543e80ee 100644 --- a/src/corelib/kernel/qobject.h +++ b/src/corelib/kernel/qobject.h @@ -73,7 +73,7 @@ class QWidget; #ifndef QT_NO_REGEXP class QRegExp; #endif -#ifndef QT_NO_REGEXP +#ifndef QT_NO_REGULAREXPRESSION class QRegularExpression; #endif #ifndef QT_NO_USERDATA @@ -179,7 +179,7 @@ public: } #endif -#ifndef QT_NO_REGEXP +#ifndef QT_NO_REGULAREXPRESSION template<typename T> inline QList<T> findChildren(const QRegularExpression &re, Qt::FindChildOptions options = Qt::FindChildrenRecursively) const { diff --git a/src/corelib/kernel/qsharedmemory_unix.cpp b/src/corelib/kernel/qsharedmemory_unix.cpp index 7f13e3b1a2..fdd73657a9 100644 --- a/src/corelib/kernel/qsharedmemory_unix.cpp +++ b/src/corelib/kernel/qsharedmemory_unix.cpp @@ -151,9 +151,6 @@ key_t QSharedMemoryPrivate::handle() */ int QSharedMemoryPrivate::createUnixKeyFile(const QString &fileName) { - if (QFile::exists(fileName)) - return 0; - int fd = qt_safe_open(QFile::encodeName(fileName).constData(), O_EXCL | O_CREAT | O_RDWR, 0640); if (-1 == fd) { diff --git a/src/corelib/kernel/qtimerinfo_unix.cpp b/src/corelib/kernel/qtimerinfo_unix.cpp index 0eee425cf9..a81fa83f29 100644 --- a/src/corelib/kernel/qtimerinfo_unix.cpp +++ b/src/corelib/kernel/qtimerinfo_unix.cpp @@ -77,7 +77,7 @@ QTimerInfoList::QTimerInfoList() msPerTick = 1000/ticksPerSecond; } else { // detected monotonic timers - previousTime.tv_sec = previousTime.tv_usec = 0; + previousTime.tv_sec = previousTime.tv_nsec = 0; previousTicks = 0; ticksPerSecond = 0; msPerTick = 0; @@ -87,7 +87,7 @@ QTimerInfoList::QTimerInfoList() firstTimerInfo = 0; } -timeval QTimerInfoList::updateCurrentTime() +timespec QTimerInfoList::updateCurrentTime() { return (currentTime = qt_gettime()); } @@ -95,17 +95,17 @@ timeval QTimerInfoList::updateCurrentTime() #if ((_POSIX_MONOTONIC_CLOCK-0 <= 0) && !defined(Q_OS_MAC) && !defined(Q_OS_INTEGRITY)) || defined(QT_BOOTSTRAPPED) template <> -timeval qAbs(const timeval &t) +timespec qAbs(const timespec &t) { - timeval tmp = t; + timespec tmp = t; if (tmp.tv_sec < 0) { tmp.tv_sec = -tmp.tv_sec - 1; - tmp.tv_usec -= 1000000; + tmp.tv_nsec -= 1000000000; } - if (tmp.tv_sec == 0 && tmp.tv_usec < 0) { - tmp.tv_usec = -tmp.tv_usec; + if (tmp.tv_sec == 0 && tmp.tv_nsec < 0) { + tmp.tv_nsec = -tmp.tv_nsec; } - return normalizedTimeval(tmp); + return normalizedTimespec(tmp); } /* @@ -115,7 +115,7 @@ timeval qAbs(const timeval &t) If /a delta is nonzero, delta is set to our best guess at how much the system clock was changed. */ -bool QTimerInfoList::timeChanged(timeval *delta) +bool QTimerInfoList::timeChanged(timespec *delta) { #ifdef Q_OS_NACL Q_UNUSED(delta) @@ -125,13 +125,13 @@ bool QTimerInfoList::timeChanged(timeval *delta) clock_t currentTicks = times(&unused); clock_t elapsedTicks = currentTicks - previousTicks; - timeval elapsedTime = currentTime - previousTime; + timespec elapsedTime = currentTime - previousTime; - timeval elapsedTimeTicks; + timespec elapsedTimeTicks; elapsedTimeTicks.tv_sec = elapsedTicks / ticksPerSecond; - elapsedTimeTicks.tv_usec = (((elapsedTicks * 1000) / ticksPerSecond) % 1000) * 1000; + elapsedTimeTicks.tv_nsec = (((elapsedTicks * 1000) / ticksPerSecond) % 1000) * 1000 * 1000; - timeval dummy; + timespec dummy; if (!delta) delta = &dummy; *delta = elapsedTime - elapsedTimeTicks; @@ -141,16 +141,16 @@ bool QTimerInfoList::timeChanged(timeval *delta) // If tick drift is more than 10% off compared to realtime, we assume that the clock has // been set. Of course, we have to allow for the tick granularity as well. - timeval tickGranularity; + timespec tickGranularity; tickGranularity.tv_sec = 0; - tickGranularity.tv_usec = msPerTick * 1000; + tickGranularity.tv_nsec = msPerTick * 1000 * 1000; return elapsedTimeTicks < ((qAbs(*delta) - tickGranularity) * 10); } /* repair broken timer */ -void QTimerInfoList::timerRepair(const timeval &diff) +void QTimerInfoList::timerRepair(const timespec &diff) { // repair all timers for (int i = 0; i < size(); ++i) { @@ -163,7 +163,7 @@ void QTimerInfoList::repairTimersIfNeeded() { if (QElapsedTimer::isMonotonic()) return; - timeval delta; + timespec delta; if (timeChanged(&delta)) timerRepair(delta); } @@ -190,27 +190,27 @@ void QTimerInfoList::timerInsert(QTimerInfo *ti) insert(index+1, ti); } -inline timeval &operator+=(timeval &t1, int ms) +inline timespec &operator+=(timespec &t1, int ms) { t1.tv_sec += ms / 1000; - t1.tv_usec += ms % 1000 * 1000; - return normalizedTimeval(t1); + t1.tv_nsec += ms % 1000 * 1000 * 1000; + return normalizedTimespec(t1); } -inline timeval operator+(const timeval &t1, int ms) +inline timespec operator+(const timespec &t1, int ms) { - timeval t2 = t1; + timespec t2 = t1; return t2 += ms; } -static timeval roundToMillisecond(timeval val) +static timespec roundToMillisecond(timespec val) { // always round up // worst case scenario is that the first trigger of a 1-ms timer is 0.999 ms late - int us = val.tv_usec % 1000; - val.tv_usec += 1000 - us; - return normalizedTimeval(val); + int ns = val.tv_nsec % (1000 * 1000); + val.tv_nsec += 1000 * 1000 - ns; + return normalizedTimespec(val); } #ifdef QTIMERINFO_DEBUG @@ -227,7 +227,7 @@ QDebug operator<<(QDebug s, Qt::TimerType t) } #endif -static void calculateCoarseTimerTimeout(QTimerInfo *t, timeval currentTime) +static void calculateCoarseTimerTimeout(QTimerInfo *t, timespec currentTime) { // The coarse timer works like this: // - interval under 40 ms: round to even @@ -246,7 +246,7 @@ static void calculateCoarseTimerTimeout(QTimerInfo *t, timeval currentTime) // The objective is to make most timers wake up at the same time, thereby reducing CPU wakeups. register uint interval = uint(t->interval); - register uint msec = uint(t->timeout.tv_usec) / 1000; + register uint msec = uint(t->timeout.tv_nsec) / 1000 / 1000; Q_ASSERT(interval >= 20); // Calculate how much we can round and still keep within 5% error @@ -328,16 +328,16 @@ static void calculateCoarseTimerTimeout(QTimerInfo *t, timeval currentTime) recalculate: if (msec == 1000u) { ++t->timeout.tv_sec; - t->timeout.tv_usec = 0; + t->timeout.tv_nsec = 0; } else { - t->timeout.tv_usec = msec * 1000; + t->timeout.tv_nsec = msec * 1000 * 1000; } if (t->timeout < currentTime) t->timeout += interval; } -static void calculateNextTimeout(QTimerInfo *t, timeval currentTime) +static void calculateNextTimeout(QTimerInfo *t, timespec currentTime) { switch (t->timerType) { case Qt::PreciseTimer: @@ -383,9 +383,9 @@ static void calculateNextTimeout(QTimerInfo *t, timeval currentTime) Returns the time to wait for the next timer, or null if no timers are waiting. */ -bool QTimerInfoList::timerWait(timeval &tm) +bool QTimerInfoList::timerWait(timespec &tm) { - timeval currentTime = updateCurrentTime(); + timespec currentTime = updateCurrentTime(); repairTimersIfNeeded(); // Find first waiting timer not already active @@ -406,7 +406,7 @@ bool QTimerInfoList::timerWait(timeval &tm) } else { // no time to wait tm.tv_sec = 0; - tm.tv_usec = 0; + tm.tv_nsec = 0; } return true; @@ -419,9 +419,9 @@ bool QTimerInfoList::timerWait(timeval &tm) */ int QTimerInfoList::timerRemainingTime(int timerId) { - timeval currentTime = updateCurrentTime(); + timespec currentTime = updateCurrentTime(); repairTimersIfNeeded(); - timeval tm = {0, 0}; + timespec tm = {0, 0}; for (int i = 0; i < count(); ++i) { register QTimerInfo *t = at(i); @@ -429,7 +429,7 @@ int QTimerInfoList::timerRemainingTime(int timerId) if (currentTime < t->timeout) { // time to wait tm = roundToMillisecond(t->timeout - currentTime); - return tm.tv_sec*1000 + tm.tv_usec/1000; + return tm.tv_sec*1000 + tm.tv_nsec/1000/1000; } else { return 0; } @@ -452,7 +452,7 @@ void QTimerInfoList::registerTimer(int timerId, int interval, Qt::TimerType time t->obj = object; t->activateRef = 0; - timeval expected = updateCurrentTime() + interval; + timespec expected = updateCurrentTime() + interval; switch (timerType) { case Qt::PreciseTimer: @@ -487,10 +487,10 @@ void QTimerInfoList::registerTimer(int timerId, int interval, Qt::TimerType time t->interval += 1; t->interval >>= 1; t->timeout.tv_sec = currentTime.tv_sec + t->interval; - t->timeout.tv_usec = 0; + t->timeout.tv_nsec = 0; // if we're past the half-second mark, increase the timeout again - if (currentTime.tv_usec > 500*1000) + if (currentTime.tv_nsec > 500*1000*1000) ++t->timeout.tv_sec; } @@ -574,7 +574,7 @@ int QTimerInfoList::activateTimers() int n_act = 0, maxCount = 0; firstTimerInfo = 0; - timeval currentTime = updateCurrentTime(); + timespec currentTime = updateCurrentTime(); // qDebug() << "Thread" << QThread::currentThreadId() << "woken up at" << currentTime; repairTimersIfNeeded(); diff --git a/src/corelib/kernel/qtimerinfo_unix_p.h b/src/corelib/kernel/qtimerinfo_unix_p.h index 549062bd1f..ec7560429b 100644 --- a/src/corelib/kernel/qtimerinfo_unix_p.h +++ b/src/corelib/kernel/qtimerinfo_unix_p.h @@ -66,7 +66,7 @@ struct QTimerInfo { int id; // - timer identifier int interval; // - timer interval in milliseconds Qt::TimerType timerType; // - timer type - timeval timeout; // - when to actually fire + timespec timeout; // - when to actually fire QObject *obj; // - object to receive event QTimerInfo **activateRef; // - ref from activateTimers @@ -80,13 +80,13 @@ struct QTimerInfo { class Q_CORE_EXPORT QTimerInfoList : public QList<QTimerInfo*> { #if ((_POSIX_MONOTONIC_CLOCK-0 <= 0) && !defined(Q_OS_MAC)) || defined(QT_BOOTSTRAPPED) - timeval previousTime; + timespec previousTime; clock_t previousTicks; int ticksPerSecond; int msPerTick; - bool timeChanged(timeval *delta); - void timerRepair(const timeval &); + bool timeChanged(timespec *delta); + void timerRepair(const timespec &); #endif // state variables used by activateTimers() @@ -95,13 +95,13 @@ class Q_CORE_EXPORT QTimerInfoList : public QList<QTimerInfo*> public: QTimerInfoList(); - timeval currentTime; - timeval updateCurrentTime(); + timespec currentTime; + timespec updateCurrentTime(); // must call updateCurrentTime() first! void repairTimersIfNeeded(); - bool timerWait(timeval &); + bool timerWait(timespec &); void timerInsert(QTimerInfo *); int timerRemainingTime(int timerId); diff --git a/src/corelib/kernel/qvariant.cpp b/src/corelib/kernel/qvariant.cpp index 60ab5506a4..8cc26c5ff6 100644 --- a/src/corelib/kernel/qvariant.cpp +++ b/src/corelib/kernel/qvariant.cpp @@ -1529,10 +1529,13 @@ QVariant::QVariant(const QLocale &l) QVariant::QVariant(const QRegExp ®Exp) : d(RegExp) { v_construct<QRegExp>(&d, regExp); } +#endif // QT_NO_REGEXP #ifndef QT_BOOTSTRAPPED +#ifndef QT_NO_REGULAREXPRESSION QVariant::QVariant(const QRegularExpression &re) : d(RegularExpression) { v_construct<QRegularExpression>(&d, re); } +#endif QVariant::QVariant(const QUuid &uuid) : d(Uuid) { v_construct<QUuid>(&d, uuid); } @@ -1552,7 +1555,6 @@ QVariant::QVariant(const QJsonDocument &jsonDocument) : d(QMetaType::QJsonDocument) { v_construct<QJsonDocument>(&d, jsonDocument); } #endif // QT_BOOTSTRAPPED -#endif // QT_NO_REGEXP /*! Returns the storage type of the value stored in the variant. @@ -2214,6 +2216,7 @@ QRegExp QVariant::toRegExp() const } #endif +#ifndef QT_BOOTSTRAPPED /*! \fn QRegularExpression QVariant::toRegularExpression() const \since 5.0 @@ -2223,13 +2226,12 @@ QRegExp QVariant::toRegExp() const \sa canConvert(), convert() */ -#ifndef QT_BOOTSTRAPPED -#ifndef QT_NO_REGEXP +#ifndef QT_NO_REGULAREXPRESSION QRegularExpression QVariant::toRegularExpression() const { return qVariantToHelper<QRegularExpression>(d, handlerManager); } -#endif +#endif // QT_NO_REGULAREXPRESSION /*! \since 5.0 diff --git a/src/corelib/kernel/qvariant.h b/src/corelib/kernel/qvariant.h index d21f48f98c..166a5cad6f 100644 --- a/src/corelib/kernel/qvariant.h +++ b/src/corelib/kernel/qvariant.h @@ -76,8 +76,10 @@ class QRect; class QRectF; #ifndef QT_NO_REGEXP class QRegExp; -class QRegularExpression; #endif // QT_NO_REGEXP +#ifndef QT_NO_REGULAREXPRESSION +class QRegularExpression; +#endif // QT_NO_REGULAREXPRESSION class QTextFormat; class QTextLength; class QUrl; @@ -240,11 +242,11 @@ class Q_CORE_EXPORT QVariant QVariant(const QLocale &locale); #ifndef QT_NO_REGEXP QVariant(const QRegExp ®Exp); -#ifndef QT_BOOTSRAPPED - QVariant(const QRegularExpression &re); -#endif // QT_BOOTSTRAPPED #endif // QT_NO_REGEXP #ifndef QT_BOOTSTRAPPED +#ifndef QT_NO_REGULAREXPRESSION + QVariant(const QRegularExpression &re); +#endif // QT_NO_REGULAREXPRESSION QVariant(const QUrl &url); QVariant(const QEasingCurve &easing); QVariant(const QUuid &uuid); @@ -253,7 +255,7 @@ class Q_CORE_EXPORT QVariant QVariant(const QJsonObject &jsonObject); QVariant(const QJsonArray &jsonArray); QVariant(const QJsonDocument &jsonDocument); -#endif +#endif // QT_BOOTSTRAPPED QVariant& operator=(const QVariant &other); #ifdef Q_COMPILER_RVALUE_REFS @@ -313,11 +315,11 @@ class Q_CORE_EXPORT QVariant QLocale toLocale() const; #ifndef QT_NO_REGEXP QRegExp toRegExp() const; -#ifndef QT_BOOTSTRAPPED - QRegularExpression toRegularExpression() const; -#endif // QT_BOOTSTRAPPED #endif // QT_NO_REGEXP #ifndef QT_BOOTSTRAPPED +#ifndef QT_NO_REGULAREXPRESSION + QRegularExpression toRegularExpression() const; +#endif // QT_NO_REGULAREXPRESSION QUrl toUrl() const; QEasingCurve toEasingCurve() const; QUuid toUuid() const; @@ -326,7 +328,7 @@ class Q_CORE_EXPORT QVariant QJsonObject toJsonObject() const; QJsonArray toJsonArray() const; QJsonDocument toJsonDocument() const; -#endif +#endif // QT_BOOTSTRAPPED #ifndef QT_NO_DATASTREAM void load(QDataStream &ds); diff --git a/src/corelib/plugin/qlibrary_unix.cpp b/src/corelib/plugin/qlibrary_unix.cpp index 5044d09e9b..2aed877e6b 100644 --- a/src/corelib/plugin/qlibrary_unix.cpp +++ b/src/corelib/plugin/qlibrary_unix.cpp @@ -56,7 +56,7 @@ #include <string.h> #endif -#if defined(Q_OS_VXWORKS) || defined (Q_OS_NACL) +#if (defined(Q_OS_VXWORKS) && !defined(VXWORKS_RTP)) || defined (Q_OS_NACL) #define QT_NO_DYNAMIC_LIBRARY #endif diff --git a/src/corelib/thread/qthread_unix.cpp b/src/corelib/thread/qthread_unix.cpp index 8abf1d06ef..253f3c79e7 100644 --- a/src/corelib/thread/qthread_unix.cpp +++ b/src/corelib/thread/qthread_unix.cpp @@ -488,8 +488,20 @@ static bool calculateUnixPriority(int priority, int *sched_policy, int *sched_pr #endif const int highestPriority = QThread::TimeCriticalPriority; - int prio_min = sched_get_priority_min(*sched_policy); - int prio_max = sched_get_priority_max(*sched_policy); + int prio_min; + int prio_max; +#if defined(Q_OS_VXWORKS) && defined(VXWORKS_DKM) + // for other scheduling policies than SCHED_RR or SCHED_FIFO + prio_min = SCHED_FIFO_LOW_PRI; + prio_max = SCHED_FIFO_HIGH_PRI; + + if ((*sched_policy == SCHED_RR) || (*sched_policy == SCHED_FIFO)) +#endif + { + prio_min = sched_get_priority_min(*sched_policy); + prio_max = sched_get_priority_max(*sched_policy); + } + if (prio_min == -1 || prio_max == -1) return false; diff --git a/src/corelib/tools/qchar.cpp b/src/corelib/tools/qchar.cpp index 6fdb3215b0..8545276dac 100644 --- a/src/corelib/tools/qchar.cpp +++ b/src/corelib/tools/qchar.cpp @@ -263,6 +263,132 @@ QT_BEGIN_NAMESPACE */ /*! + \enum QChar::Script + \since 5.1 + + This enum type defines the Unicode script property values. + + For details about the Unicode script property values see + \l{http://www.unicode.org/reports/tr24/}{Unicode Standard Annex #24}. + + In order to conform to C/C++ naming conventions "Script_" is prepended + to the codes used in the Unicode Standard. + + \value Script_Unknown For unassigned, private-use, noncharacter, and surrogate code points. + \value Script_Inherited For characters that may be used with multiple scripts + and that inherit their script from the preceding characters. + These include nonspacing marks, enclosing marks, + and zero width joiner/non-joiner characters. + \value Script_Common For characters that may be used with multiple scripts + and that do not inherit their script from the preceding characters. + + \value Script_Latin + \value Script_Greek + \value Script_Cyrillic + \value Script_Armenian + \value Script_Hebrew + \value Script_Arabic + \value Script_Syriac + \value Script_Thaana + \value Script_Devanagari + \value Script_Bengali + \value Script_Gurmukhi + \value Script_Gujarati + \value Script_Oriya + \value Script_Tamil + \value Script_Telugu + \value Script_Kannada + \value Script_Malayalam + \value Script_Sinhala + \value Script_Thai + \value Script_Lao + \value Script_Tibetan + \value Script_Myanmar + \value Script_Georgian + \value Script_Hangul + \value Script_Ethiopic + \value Script_Cherokee + \value Script_CanadianAboriginal + \value Script_Ogham + \value Script_Runic + \value Script_Khmer + \value Script_Mongolian + \value Script_Hiragana + \value Script_Katakana + \value Script_Bopomofo + \value Script_Han + \value Script_Yi + \value Script_OldItalic + \value Script_Gothic + \value Script_Deseret + \value Script_Tagalog + \value Script_Hanunoo + \value Script_Buhid + \value Script_Tagbanwa + \value Script_Coptic + \value Script_Limbu + \value Script_TaiLe + \value Script_LinearB + \value Script_Ugaritic + \value Script_Shavian + \value Script_Osmanya + \value Script_Cypriot + \value Script_Braille + \value Script_Buginese + \value Script_NewTaiLue + \value Script_Glagolitic + \value Script_Tifinagh + \value Script_SylotiNagri + \value Script_OldPersian + \value Script_Kharoshthi + \value Script_Balinese + \value Script_Cuneiform + \value Script_Phoenician + \value Script_PhagsPa + \value Script_Nko + \value Script_Sundanese + \value Script_Lepcha + \value Script_OlChiki + \value Script_Vai + \value Script_Saurashtra + \value Script_KayahLi + \value Script_Rejang + \value Script_Lycian + \value Script_Carian + \value Script_Lydian + \value Script_Cham + \value Script_TaiTham + \value Script_TaiViet + \value Script_Avestan + \value Script_EgyptianHieroglyphs + \value Script_Samaritan + \value Script_Lisu + \value Script_Bamum + \value Script_Javanese + \value Script_MeeteiMayek + \value Script_ImperialAramaic + \value Script_OldSouthArabian + \value Script_InscriptionalParthian + \value Script_InscriptionalPahlavi + \value Script_OldTurkic + \value Script_Kaithi + \value Script_Batak + \value Script_Brahmi + \value Script_Mandaic + \value Script_Chakma + \value Script_MeroiticCursive + \value Script_MeroiticHieroglyphs + \value Script_Miao + \value Script_Sharada + \value Script_SoraSompeng + \value Script_Takri + + \omitvalue ScriptCount + + \sa script() +*/ + +/*! \enum QChar::Direction This enum type defines the Unicode direction attributes. See the @@ -1159,6 +1285,27 @@ unsigned char QChar::combiningClass(uint ucs4) } /*! + \fn QChar::Script QChar::script() const + \since 5.1 + + Returns the Unicode script property value for this character. +*/ + +/*! + \overload + \since 5.1 + + Returns the Unicode script property value for the character specified in + its UCS-4-encoded form as \a ucs4. +*/ +QChar::Script QChar::script(uint ucs4) +{ + if (ucs4 > LastValidCodePoint) + return QChar::Script_Unknown; + return (QChar::Script) qGetProp(ucs4)->script; +} + +/*! \fn QChar::UnicodeVersion QChar::unicodeVersion() const Returns the Unicode version that introduced this character. diff --git a/src/corelib/tools/qchar.h b/src/corelib/tools/qchar.h index 20101db975..3679a597ff 100644 --- a/src/corelib/tools/qchar.h +++ b/src/corelib/tools/qchar.h @@ -137,6 +137,130 @@ public: Symbol_Other // So }; + enum Script + { + Script_Unknown, + Script_Inherited, + Script_Common, + + Script_Latin, + Script_Greek, + Script_Cyrillic, + Script_Armenian, + Script_Hebrew, + Script_Arabic, + Script_Syriac, + Script_Thaana, + Script_Devanagari, + Script_Bengali, + Script_Gurmukhi, + Script_Gujarati, + Script_Oriya, + Script_Tamil, + Script_Telugu, + Script_Kannada, + Script_Malayalam, + Script_Sinhala, + Script_Thai, + Script_Lao, + Script_Tibetan, + Script_Myanmar, + Script_Georgian, + Script_Hangul, + Script_Ethiopic, + Script_Cherokee, + Script_CanadianAboriginal, + Script_Ogham, + Script_Runic, + Script_Khmer, + Script_Mongolian, + Script_Hiragana, + Script_Katakana, + Script_Bopomofo, + Script_Han, + Script_Yi, + Script_OldItalic, + Script_Gothic, + Script_Deseret, + Script_Tagalog, + Script_Hanunoo, + Script_Buhid, + Script_Tagbanwa, + Script_Coptic, + + // Unicode 4.0 additions + Script_Limbu, + Script_TaiLe, + Script_LinearB, + Script_Ugaritic, + Script_Shavian, + Script_Osmanya, + Script_Cypriot, + Script_Braille, + + // Unicode 4.1 additions + Script_Buginese, + Script_NewTaiLue, + Script_Glagolitic, + Script_Tifinagh, + Script_SylotiNagri, + Script_OldPersian, + Script_Kharoshthi, + + // Unicode 5.0 additions + Script_Balinese, + Script_Cuneiform, + Script_Phoenician, + Script_PhagsPa, + Script_Nko, + + // Unicode 5.1 additions + Script_Sundanese, + Script_Lepcha, + Script_OlChiki, + Script_Vai, + Script_Saurashtra, + Script_KayahLi, + Script_Rejang, + Script_Lycian, + Script_Carian, + Script_Lydian, + Script_Cham, + + // Unicode 5.2 additions + Script_TaiTham, + Script_TaiViet, + Script_Avestan, + Script_EgyptianHieroglyphs, + Script_Samaritan, + Script_Lisu, + Script_Bamum, + Script_Javanese, + Script_MeeteiMayek, + Script_ImperialAramaic, + Script_OldSouthArabian, + Script_InscriptionalParthian, + Script_InscriptionalPahlavi, + Script_OldTurkic, + Script_Kaithi, + + // Unicode 6.0 additions + Script_Batak, + Script_Brahmi, + Script_Mandaic, + + // Unicode 6.1 additions + Script_Chakma, + Script_MeroiticCursive, + Script_MeroiticHieroglyphs, + Script_Miao, + Script_Sharada, + Script_SoraSompeng, + Script_Takri, + + ScriptCount + }; + enum Direction { DirL, DirR, DirEN, DirES, DirET, DirAN, DirCS, DirB, DirS, DirWS, DirON, @@ -231,6 +355,8 @@ public: inline QChar toTitleCase() const { return QChar::toTitleCase(ucs); } inline QChar toCaseFolded() const { return QChar::toCaseFolded(ucs); } + inline Script script() const { return QChar::script(ucs); } + inline UnicodeVersion unicodeVersion() const { return QChar::unicodeVersion(ucs); } #if QT_DEPRECATED_SINCE(5, 0) @@ -316,6 +442,8 @@ public: static uint QT_FASTCALL toTitleCase(uint ucs4); static uint QT_FASTCALL toCaseFolded(uint ucs4); + static Script QT_FASTCALL script(uint ucs4); + static UnicodeVersion QT_FASTCALL unicodeVersion(uint ucs4); static UnicodeVersion QT_FASTCALL currentUnicodeVersion(); diff --git a/src/corelib/tools/qdatetime.cpp b/src/corelib/tools/qdatetime.cpp index 4b6e739759..72e1819e90 100644 --- a/src/corelib/tools/qdatetime.cpp +++ b/src/corelib/tools/qdatetime.cpp @@ -549,8 +549,8 @@ int QDate::weekNumber(int *yearNumber) const \li 12 = "Dec" \endlist - The month names will be localized according to the system's locale - settings. + The month names will be localized according to the system's default + locale settings. Returns an empty string if the date is invalid. @@ -596,8 +596,8 @@ QString QDate::shortMonthName(int month, QDate::MonthNameType type) \li 12 = "December" \endlist - The month names will be localized according to the system's locale - settings. + The month names will be localized according to the system's default + locale settings. Returns an empty string if the date is invalid. @@ -638,8 +638,8 @@ QString QDate::longMonthName(int month, MonthNameType type) \li 7 = "Sun" \endlist - The day names will be localized according to the system's locale - settings. + The day names will be localized according to the system's default + locale settings. Returns an empty string if the date is invalid. @@ -680,8 +680,8 @@ QString QDate::shortDayName(int weekday, MonthNameType type) \li 7 = "Sunday" \endlist - The day names will be localized according to the system's locale - settings. + The day names will be localized according to the system's default + locale settings. Returns an empty string if the date is invalid. @@ -718,8 +718,8 @@ QString QDate::longDayName(int weekday, MonthNameType type) If the \a format is Qt::TextDate, the string is formatted in the default way. QDate::shortDayName() and QDate::shortMonthName() are used to generate the string, so the day and month names will - be localized names. An example of this formatting is - "Sat May 20 1995". + be localized names using the default locale from the system. An + example of this formatting is "Sat May 20 1995". If the \a format is Qt::ISODate, the string format corresponds to the ISO 8601 extended specification for representations of diff --git a/src/corelib/tools/qelapsedtimer_mac.cpp b/src/corelib/tools/qelapsedtimer_mac.cpp index 611098779c..19056d1bd9 100644 --- a/src/corelib/tools/qelapsedtimer_mac.cpp +++ b/src/corelib/tools/qelapsedtimer_mac.cpp @@ -76,14 +76,14 @@ static qint64 absoluteToMSecs(qint64 cpuTime) return absoluteToNSecs(cpuTime) / 1000000; } -timeval qt_gettime() Q_DECL_NOTHROW +timespec qt_gettime() Q_DECL_NOTHROW { - timeval tv; + timespec tv; uint64_t cpu_time = mach_absolute_time(); uint64_t nsecs = absoluteToNSecs(cpu_time); tv.tv_sec = nsecs / 1000000000ull; - tv.tv_usec = (nsecs / 1000) - (tv.tv_sec * 1000000); + tv.tv_nsec = nsecs - (tv.tv_sec * 1000000000ull); return tv; } diff --git a/src/corelib/tools/qelapsedtimer_unix.cpp b/src/corelib/tools/qelapsedtimer_unix.cpp index e719358ce0..f81a723aa5 100644 --- a/src/corelib/tools/qelapsedtimer_unix.cpp +++ b/src/corelib/tools/qelapsedtimer_unix.cpp @@ -43,8 +43,12 @@ #define _POSIX_C_SOURCE 200809L #include "qelapsedtimer.h" +#ifdef Q_OS_VXWORKS +#include "qfunctions_vxworks.h" +#else #include <sys/time.h> #include <time.h> +#endif #include <unistd.h> #include <qatomic.h> @@ -168,14 +172,14 @@ static inline void do_gettime(qint64 *sec, qint64 *frac) } // used in qcore_unix.cpp and qeventdispatcher_unix.cpp -timeval qt_gettime() Q_DECL_NOTHROW +struct timespec qt_gettime() Q_DECL_NOTHROW { qint64 sec, frac; do_gettime(&sec, &frac); - timeval tv; + timespec tv; tv.tv_sec = sec; - tv.tv_usec = frac / 1000; + tv.tv_nsec = frac; return tv; } diff --git a/src/corelib/tools/qharfbuzz_p.h b/src/corelib/tools/qharfbuzz_p.h index 1cbfb03f63..9a0156f673 100644 --- a/src/corelib/tools/qharfbuzz_p.h +++ b/src/corelib/tools/qharfbuzz_p.h @@ -53,11 +53,85 @@ #ifndef QHARFBUZZ_P_H #define QHARFBUZZ_P_H -#include <QtCore/qglobal.h> +#include <QtCore/qchar.h> #include <private/harfbuzz-shaper.h> QT_BEGIN_NAMESPACE +static inline HB_Script script_to_hbscript(uchar script) +{ + switch (script) { + case QChar::Script_Inherited: return HB_Script_Inherited; + case QChar::Script_Common: return HB_Script_Common; + case QChar::Script_Arabic: return HB_Script_Arabic; + case QChar::Script_Armenian: return HB_Script_Armenian; + case QChar::Script_Bengali: return HB_Script_Bengali; + case QChar::Script_Cyrillic: return HB_Script_Cyrillic; + case QChar::Script_Devanagari: return HB_Script_Devanagari; + case QChar::Script_Georgian: return HB_Script_Georgian; + case QChar::Script_Greek: return HB_Script_Greek; + case QChar::Script_Gujarati: return HB_Script_Gujarati; + case QChar::Script_Gurmukhi: return HB_Script_Gurmukhi; + case QChar::Script_Hangul: return HB_Script_Hangul; + case QChar::Script_Hebrew: return HB_Script_Hebrew; + case QChar::Script_Kannada: return HB_Script_Kannada; + case QChar::Script_Khmer: return HB_Script_Khmer; + case QChar::Script_Lao: return HB_Script_Lao; + case QChar::Script_Malayalam: return HB_Script_Malayalam; + case QChar::Script_Myanmar: return HB_Script_Myanmar; + case QChar::Script_Ogham: return HB_Script_Ogham; + case QChar::Script_Oriya: return HB_Script_Oriya; + case QChar::Script_Runic: return HB_Script_Runic; + case QChar::Script_Sinhala: return HB_Script_Sinhala; + case QChar::Script_Syriac: return HB_Script_Syriac; + case QChar::Script_Tamil: return HB_Script_Tamil; + case QChar::Script_Telugu: return HB_Script_Telugu; + case QChar::Script_Thaana: return HB_Script_Thaana; + case QChar::Script_Thai: return HB_Script_Thai; + case QChar::Script_Tibetan: return HB_Script_Tibetan; + case QChar::Script_Nko: return HB_Script_Nko; + default: break; + }; + return HB_Script_Common; +} + +static inline uchar hbscript_to_script(uchar script) +{ + switch (script) { + case HB_Script_Inherited: return QChar::Script_Inherited; + case HB_Script_Common: return QChar::Script_Common; + case HB_Script_Arabic: return QChar::Script_Arabic; + case HB_Script_Armenian: return QChar::Script_Armenian; + case HB_Script_Bengali: return QChar::Script_Bengali; + case HB_Script_Cyrillic: return QChar::Script_Cyrillic; + case HB_Script_Devanagari: return QChar::Script_Devanagari; + case HB_Script_Georgian: return QChar::Script_Georgian; + case HB_Script_Greek: return QChar::Script_Greek; + case HB_Script_Gujarati: return QChar::Script_Gujarati; + case HB_Script_Gurmukhi: return QChar::Script_Gurmukhi; + case HB_Script_Hangul: return QChar::Script_Hangul; + case HB_Script_Hebrew: return QChar::Script_Hebrew; + case HB_Script_Kannada: return QChar::Script_Kannada; + case HB_Script_Khmer: return QChar::Script_Khmer; + case HB_Script_Lao: return QChar::Script_Lao; + case HB_Script_Malayalam: return QChar::Script_Malayalam; + case HB_Script_Myanmar: return QChar::Script_Myanmar; + case HB_Script_Ogham: return QChar::Script_Ogham; + case HB_Script_Oriya: return QChar::Script_Oriya; + case HB_Script_Runic: return QChar::Script_Runic; + case HB_Script_Sinhala: return QChar::Script_Sinhala; + case HB_Script_Syriac: return QChar::Script_Syriac; + case HB_Script_Tamil: return QChar::Script_Tamil; + case HB_Script_Telugu: return QChar::Script_Telugu; + case HB_Script_Thaana: return QChar::Script_Thaana; + case HB_Script_Thai: return QChar::Script_Thai; + case HB_Script_Tibetan: return QChar::Script_Tibetan; + case HB_Script_Nko: return QChar::Script_Nko; + default: break; + }; + return QChar::Script_Common; +} + Q_CORE_EXPORT HB_Bool qShapeItem(HB_ShaperItem *item); // ### temporary diff --git a/src/corelib/tools/qhash.cpp b/src/corelib/tools/qhash.cpp index 0103a208f3..b8cd076cb6 100644 --- a/src/corelib/tools/qhash.cpp +++ b/src/corelib/tools/qhash.cpp @@ -924,6 +924,16 @@ void QHashData::checkSanity() \sa clear() */ +/*! \fn QHash::QHash(std::initializer_list<std::pair<Key,T> > list) + \since 5.1 + + Constructs a hash with a copy of each of the elements in the + initializer list \a list. + + This function is only available if the program is being + compiled in C++11 mode. +*/ + /*! \fn QHash::QHash(const QHash<Key, T> &other) Constructs a copy of \a other. @@ -1981,6 +1991,16 @@ void QHashData::checkSanity() Constructs an empty hash. */ +/*! \fn QMultiHash::QMultiHash(std::initializer_list<std::pair<Key,T> > list) + \since 5.1 + + Constructs a multi hash with a copy of each of the elements in the + initializer list \a list. + + This function is only available if the program is being + compiled in C++11 mode. +*/ + /*! \fn QMultiHash::QMultiHash(const QHash<Key, T> &other) Constructs a copy of \a other (which can be a QHash or a diff --git a/src/corelib/tools/qhash.h b/src/corelib/tools/qhash.h index 98965b9121..69a8afe195 100644 --- a/src/corelib/tools/qhash.h +++ b/src/corelib/tools/qhash.h @@ -48,6 +48,10 @@ #include <QtCore/qpair.h> #include <QtCore/qrefcount.h> +#ifdef Q_COMPILER_INITIALIZER_LISTS +#include <initializer_list> +#endif + QT_BEGIN_HEADER QT_BEGIN_NAMESPACE @@ -285,6 +289,15 @@ class QHash public: inline QHash() : d(const_cast<QHashData *>(&QHashData::shared_null)) { } +#ifdef Q_COMPILER_INITIALIZER_LISTS + inline QHash(std::initializer_list<std::pair<Key,T> > list) + : d(const_cast<QHashData *>(&QHashData::shared_null)) + { + reserve(list.size()); + for (typename std::initializer_list<std::pair<Key,T> >::const_iterator it = list.begin(); it != list.end(); ++it) + insert(it->first, it->second); + } +#endif inline QHash(const QHash<Key, T> &other) : d(other.d) { d->ref.ref(); if (!d->sharable) detach(); } inline ~QHash() { if (!d->ref.deref()) freeData(d); } @@ -921,6 +934,14 @@ class QMultiHash : public QHash<Key, T> { public: QMultiHash() {} +#ifdef Q_COMPILER_INITIALIZER_LISTS + inline QMultiHash(std::initializer_list<std::pair<Key,T> > list) + { + this->reserve(list.size()); + for (typename std::initializer_list<std::pair<Key,T> >::const_iterator it = list.begin(); it != list.end(); ++it) + insert(it->first, it->second); + } +#endif QMultiHash(const QHash<Key, T> &other) : QHash<Key, T>(other) {} inline void swap(QMultiHash<Key, T> &other) { QHash<Key, T>::swap(other); } // prevent QMultiHash<->QHash swaps diff --git a/src/corelib/tools/qmap.cpp b/src/corelib/tools/qmap.cpp index 75104e4825..a4c28b5bd4 100644 --- a/src/corelib/tools/qmap.cpp +++ b/src/corelib/tools/qmap.cpp @@ -538,6 +538,16 @@ void QMapDataBase::freeData(QMapDataBase *d) \sa toStdMap() */ +/*! \fn QMap::QMap(std::initializer_list<std::pair<Key,T> > list) + \since 5.1 + + Constructs a map with a copy of each of the elements in the + initializer list \a list. + + This function is only available if the program is being + compiled in C++11 mode. +*/ + /*! \fn std::map<Key, T> QMap::toStdMap() const Returns an STL map equivalent to this QMap. @@ -1576,6 +1586,16 @@ void QMapDataBase::freeData(QMapDataBase *d) Constructs an empty map. */ +/*! \fn QMultiMap::QMultiMap(std::initializer_list<std::pair<Key,T> > list) + \since 5.1 + + Constructs a multi map with a copy of each of the elements in the + initializer list \a list. + + This function is only available if the program is being + compiled in C++11 mode. +*/ + /*! \fn QMultiMap::QMultiMap(const QMap<Key, T> &other) Constructs a copy of \a other (which can be a QMap or a diff --git a/src/corelib/tools/qmap.h b/src/corelib/tools/qmap.h index b0ec6fb3c6..93134a43dd 100644 --- a/src/corelib/tools/qmap.h +++ b/src/corelib/tools/qmap.h @@ -54,6 +54,10 @@ #include <map> #include <new> +#ifdef Q_COMPILER_INITIALIZER_LISTS +#include <initializer_list> +#endif + QT_BEGIN_HEADER QT_BEGIN_NAMESPACE @@ -327,6 +331,14 @@ class QMap public: inline QMap() : d(static_cast<QMapData<Key, T> *>(const_cast<QMapDataBase *>(&QMapDataBase::shared_null))) { } +#ifdef Q_COMPILER_INITIALIZER_LISTS + inline QMap(std::initializer_list<std::pair<Key,T> > list) + : d(static_cast<QMapData<Key, T> *>(const_cast<QMapDataBase *>(&QMapDataBase::shared_null))) + { + for (typename std::initializer_list<std::pair<Key,T> >::const_iterator it = list.begin(); it != list.end(); ++it) + insert(it->first, it->second); + } +#endif QMap(const QMap<Key, T> &other); inline ~QMap() { if (!d->ref.deref()) d->destroy(); } @@ -960,6 +972,13 @@ class QMultiMap : public QMap<Key, T> { public: QMultiMap() {} +#ifdef Q_COMPILER_INITIALIZER_LISTS + inline QMultiMap(std::initializer_list<std::pair<Key,T> > list) + { + for (typename std::initializer_list<std::pair<Key,T> >::const_iterator it = list.begin(); it != list.end(); ++it) + insert(it->first, it->second); + } +#endif QMultiMap(const QMap<Key, T> &other) : QMap<Key, T>(other) {} inline void swap(QMultiMap<Key, T> &other) { QMap<Key, T>::swap(other); } diff --git a/src/corelib/tools/qmargins.cpp b/src/corelib/tools/qmargins.cpp index 7b9d68707e..6e7b541110 100644 --- a/src/corelib/tools/qmargins.cpp +++ b/src/corelib/tools/qmargins.cpp @@ -157,6 +157,240 @@ QT_BEGIN_NAMESPACE Returns true if \a m1 and \a m2 are different; otherwise returns false. */ +/*! + \fn QRect operator+(const QRect &rectangle, const QMargins &margins) + \relates QRect + + Returns the \a rectangle grown by the \a margins. + + \since 5.1 +*/ + +/*! + \fn QRect operator+(const QMargins &margins, const QRect &rectangle) + \relates QRect + \overload + + Returns the \a rectangle grown by the \a margins. + + \since 5.1 +*/ + +/*! + \fn QRect QRect::marginsAdded(const QMargins &margins) const + + Returns a rectangle grown by the \a margins. + + \sa operator+=(), marginsRemoved(), operator-=() + + \since 5.1 +*/ + +/*! + \fn QRect QRect::operator+=(const QMargins &margins) const + + Adds the \a margins to the rectangle, growing it. + + \sa marginsAdded(), marginsRemoved(), operator-=() + + \since 5.1 +*/ + +/*! + \fn QRect QRect::marginsRemoved(const QMargins &margins) const + + Removes the \a margins from the rectangle, shrinking it. + + \sa marginsAdded(), operator+=(), operator-=() + + \since 5.1 +*/ + +/*! + \fn QRect QRect::operator -=(const QMargins &margins) const + + Returns a rectangle shrunk by the \a margins. + + \sa marginsRemoved(), operator+=(), marginsAdded() + + \since 5.1 +*/ + +/*! + \fn const QMargins operator+(const QMargins &m1, const QMargins &m2) + \relates QMargins + + Returns a QMargins object that is the sum of the given margins, \a m1 + and \a m2; each component is added separately. + + \sa QMargins::operator+=(), QMargins::operator-=() + + \since 5.1 +*/ + +/*! + \fn const QMargins operator-(const QMargins &m1, const QMargins &m2) + \relates QMargins + + Returns a QMargins object that is formed by subtracting \a m2 from + \a m1; each component is subtracted separately. + + \sa QMargins::operator+=(), QMargins::operator-=() + + \since 5.1 +*/ + +/*! + \fn const QMargins operator*(const QMargins &margins, int factor) + \relates QMargins + + Returns a QMargins object that is formed by multiplying each component + of the given \a margins by \a factor. + + \sa QMargins::operator*=(), QMargins::operator/=() + + \since 5.1 +*/ + +/*! + \fn const QMargins operator*(int factor, const QMargins &margins) + \relates QMargins + \overload + + Returns a QMargins object that is formed by multiplying each component + of the given \a margins by \a factor. + + \sa QMargins::operator*=(), QMargins::operator/=() + + \since 5.1 +*/ + +/*! + \fn const QMargins operator*(const QMargins &margins, qreal factor) + \relates QMargins + \overload + + Returns a QMargins object that is formed by multiplying each component + of the given \a margins by \a factor. + + \sa QMargins::operator*=(), QMargins::operator/=() + + \since 5.1 +*/ + +/*! + \fn const QMargins operator*(qreal factor, const QMargins &margins) + \relates QMargins + \overload + + Returns a QMargins object that is formed by multiplying each component + of the given \a margins by \a factor. + + \sa QMargins::operator*=(), QMargins::operator/=() + + \since 5.1 +*/ + +/*! + \fn const QMargins operator/(const QMargins &margins, int divisor) + \relates QMargins + + Returns a QMargins object that is formed by dividing the components of + the given \a margins by the given \a divisor. + + \sa QMargins::operator*=(), QMargins::operator/=() + + \since 5.1 +*/ + +/*! + \fn const QMargins operator/(const QMargins &, qreal) + \relates QMargins + \overload + + Returns a QMargins object that is formed by dividing the components of + the given \a margins by the given \a divisor. + + \sa QMargins::operator*=(), QMargins::operator/=() + + \since 5.1 +*/ + +/*! + \fn QMargins operator-(const QMargins &margins) + \relates QMargins + + Returns a QMargin object that is formed by negating all components of \a margins. + + \since 5.1 +*/ + +/*! + \fn QMargins &operator+=(const QMargins &margins) + + Add each component of \a margins to the respective component of this object + and returns a reference to it. + + \sa operator-=() + + \since 5.1 +*/ + +/*! + \fn QMargins &operator-=(const QMargins &margins) + + Subtract each component of \a margins from the respective component of this object + and returns a reference to it. + + \sa operator+=() + + \since 5.1 +*/ + +/*! + \fn QMargins &operator*=(int factor) + + Multiplies each component of this object by \a factor + and returns a reference to it. + + \sa operator/=() + + \since 5.1 +*/ + +/*! + \fn QMargins &operator*=(qreal factor) + \overload + + Multiplies each component of this object by \a factor + and returns a reference to it. + + \sa operator/=() + + \since 5.1 +*/ + +/*! + \fn QMargins &operator/=(int divisor) + + Divides each component of this object by \a divisor + and returns a reference to it. + + \sa operator*=() + + \since 5.1 +*/ + +/*! + \fn QMargins &operator/=(qreal divisor) + + \overload + + \sa operator*=() + + \since 5.1 +*/ + /***************************************************************************** QMargins stream functions *****************************************************************************/ diff --git a/src/corelib/tools/qmargins.h b/src/corelib/tools/qmargins.h index d927cb5aa1..41437c7244 100644 --- a/src/corelib/tools/qmargins.h +++ b/src/corelib/tools/qmargins.h @@ -42,7 +42,7 @@ #ifndef QMARGINS_H #define QMARGINS_H -#include <QtCore/qnamespace.h> +#include <QtCore/qrect.h> QT_BEGIN_HEADER @@ -67,6 +67,15 @@ public: void setRight(int right); void setBottom(int bottom); + QMargins &operator+=(const QMargins &margins); + QMargins &operator-=(const QMargins &margins); + QMargins &operator+=(int); + QMargins &operator-=(int); + QMargins &operator*=(int); + QMargins &operator/=(int); + QMargins &operator*=(qreal); + QMargins &operator/=(qreal); + private: int m_left; int m_top; @@ -142,6 +151,124 @@ Q_DECL_CONSTEXPR inline bool operator!=(const QMargins &m1, const QMargins &m2) m1.m_bottom != m2.m_bottom; } +Q_DECL_CONSTEXPR inline QRect operator+(const QRect &rectangle, const QMargins &margins) +{ + return QRect(QPoint(rectangle.left() - margins.left(), rectangle.top() - margins.top()), + QPoint(rectangle.right() + margins.right(), rectangle.bottom() + margins.bottom())); +} + +Q_DECL_CONSTEXPR inline QRect operator+(const QMargins &margins, const QRect &rectangle) +{ + return QRect(QPoint(rectangle.left() - margins.left(), rectangle.top() - margins.top()), + QPoint(rectangle.right() + margins.right(), rectangle.bottom() + margins.bottom())); +} + +inline QRect QRect::marginsAdded(const QMargins &margins) const +{ + return *this + margins; +} + +inline QRect QRect::marginsRemoved(const QMargins &margins) const +{ + return QRect(QPoint(x1 + margins.left(), y1 + margins.top()), + QPoint(x2 - margins.right(), y2 - margins.bottom())); +} + +inline QRect &QRect::operator+=(const QMargins &margins) +{ + *this = marginsAdded(margins); + return *this; +} + +inline QRect &QRect::operator-=(const QMargins &margins) +{ + *this = marginsRemoved(margins); + return *this; +} + +Q_DECL_CONSTEXPR inline QMargins operator+(const QMargins &m1, const QMargins &m2) +{ + return QMargins(m1.left() + m2.left(), m1.top() + m2.top(), + m1.right() + m2.right(), m1.bottom() + m2.bottom()); +} + +Q_DECL_CONSTEXPR inline QMargins operator-(const QMargins &m1, const QMargins &m2) +{ + return QMargins(m1.left() - m2.left(), m1.top() - m2.top(), + m1.right() - m2.right(), m1.bottom() - m2.bottom()); +} + +Q_DECL_CONSTEXPR inline QMargins operator*(const QMargins &margins, int factor) +{ + return QMargins(margins.left() * factor, margins.top() * factor, + margins.right() * factor, margins.bottom() * factor); +} + +Q_DECL_CONSTEXPR inline QMargins operator*(int factor, const QMargins &margins) +{ + return QMargins(margins.left() * factor, margins.top() * factor, + margins.right() * factor, margins.bottom() * factor); +} + +Q_DECL_CONSTEXPR inline QMargins operator*(const QMargins &margins, qreal factor) +{ + return QMargins(qRound(margins.left() * factor), qRound(margins.top() * factor), + qRound(margins.right() * factor), qRound(margins.bottom() * factor)); +} + +Q_DECL_CONSTEXPR inline QMargins operator*(qreal factor, const QMargins &margins) +{ + return QMargins(qRound(margins.left() * factor), qRound(margins.top() * factor), + qRound(margins.right() * factor), qRound(margins.bottom() * factor)); +} + +Q_DECL_CONSTEXPR inline QMargins operator/(const QMargins &margins, int divisor) +{ + return QMargins(margins.left() / divisor, margins.top() / divisor, + margins.right() / divisor, margins.bottom() / divisor); +} + +Q_DECL_CONSTEXPR inline QMargins operator/(const QMargins &margins, qreal divisor) +{ + return QMargins(qRound(margins.left() / divisor), qRound(margins.top() / divisor), + qRound(margins.right() / divisor), qRound(margins.bottom() / divisor)); +} + +inline QMargins &QMargins::operator+=(const QMargins &margins) +{ + return *this = *this + margins; +} + +inline QMargins &QMargins::operator-=(const QMargins &margins) +{ + return *this = *this - margins; +} + +inline QMargins &QMargins::operator*=(int factor) +{ + return *this = *this * factor; +} + +inline QMargins &QMargins::operator/=(int divisor) +{ + return *this = *this / divisor; +} + +inline QMargins &QMargins::operator*=(qreal factor) +{ + return *this = *this * factor; +} + +inline QMargins &QMargins::operator/=(qreal divisor) +{ + return *this = *this / divisor; +} + +Q_DECL_CONSTEXPR inline QMargins operator-(const QMargins &margins) +{ + return QMargins(-margins.left(), -margins.top(), -margins.right(), -margins.bottom()); +} + #ifndef QT_NO_DEBUG_STREAM Q_CORE_EXPORT QDebug operator<<(QDebug, const QMargins &); #endif diff --git a/src/corelib/tools/qmessageauthenticationcode.cpp b/src/corelib/tools/qmessageauthenticationcode.cpp new file mode 100644 index 0000000000..3950f15502 --- /dev/null +++ b/src/corelib/tools/qmessageauthenticationcode.cpp @@ -0,0 +1,275 @@ +/**************************************************************************** +** +** Copyright (C) 2013 Ruslan Nigmatullin <euroelessar@yandex.ru> +** Contact: http://www.qt-project.org/legal +** +** This file is part of the QtCore module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Digia. For licensing terms and +** conditions see http://qt.digia.com/licensing. For further information +** use the contact form at http://qt.digia.com/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Digia gives you certain additional +** rights. These rights are described in the Digia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "qmessageauthenticationcode.h" +#include "qvarlengtharray.h" + +/* + These #defines replace the typedefs needed by the RFC6234 code. Normally + the typedefs would come from from stdint.h, but since this header is not + available on all platforms (MSVC 2008, for example), we #define them to the + Qt equivalents. +*/ +#define uint64_t QT_PREPEND_NAMESPACE(quint64) +#define uint32_t QT_PREPEND_NAMESPACE(quint32) +#define uint8_t QT_PREPEND_NAMESPACE(quint8) +#define int_least16_t QT_PREPEND_NAMESPACE(qint16) + +// Header from rfc6234 with 1 modification: +// sha1.h - commented out '#include <stdint.h>' on line 74 +#include "../../3rdparty/rfc6234/sha.h" + +#undef uint64_t +#undef uint32_t +#undef uint68_t +#undef int_least16_t + +QT_BEGIN_NAMESPACE + +static int qt_hash_block_size(QCryptographicHash::Algorithm method) +{ + switch (method) { + case QCryptographicHash::Md4: + return 64; + case QCryptographicHash::Md5: + return 64; + case QCryptographicHash::Sha1: + return SHA1_Message_Block_Size; + case QCryptographicHash::Sha224: + return SHA224_Message_Block_Size; + case QCryptographicHash::Sha256: + return SHA256_Message_Block_Size; + case QCryptographicHash::Sha384: + return SHA384_Message_Block_Size; + case QCryptographicHash::Sha512: + return SHA512_Message_Block_Size; + } + return 0; +} + +class QMessageAuthenticationCodePrivate +{ +public: + QMessageAuthenticationCodePrivate(QCryptographicHash::Algorithm m) + : messageHash(m), method(m), messageHashInited(false) + { + } + + QByteArray key; + QByteArray result; + QCryptographicHash messageHash; + QCryptographicHash::Algorithm method; + bool messageHashInited; + + void initMessageHash(); +}; + +void QMessageAuthenticationCodePrivate::initMessageHash() +{ + if (messageHashInited) + return; + messageHashInited = true; + + const int blockSize = qt_hash_block_size(method); + + if (key.size() > blockSize) { + QCryptographicHash hash(method); + hash.addData(key); + key = hash.result(); + hash.reset(); + } + + if (key.size() < blockSize) { + const int size = key.size(); + key.resize(blockSize); + memset(key.data() + size, 0, blockSize - size); + } + + QVarLengthArray<char> iKeyPad(blockSize); + const char * const keyData = key.constData(); + + for (int i = 0; i < blockSize; ++i) + iKeyPad[i] = keyData[i] ^ 0x36; + + messageHash.addData(iKeyPad.data(), iKeyPad.size()); +} + +/*! + \class QMessageAuthenticationCode + \inmodule QtCore + + \brief The QMessageAuthenticationCode class provides a way to generate + hash-based message authentication codes. + + \since 5.1 + + \ingroup tools + \reentrant + + QMessageAuthenticationCode supports all cryptographic hashes which are supported by + QCryptographicHash. + + To generate message authentication code, pass hash algorithm QCryptographicHash::Algorithm + to constructor, then set key and message by setKey() and addData() functions. Result + can be acquired by result() function. + \snippet qmessageauthenticationcode/main.cpp 0 + \dots + \snippet qmessageauthenticationcode/main.cpp 1 + + Alternatively, this effect can be achieved by providing message, + key and method to hash() method. + \snippet qmessageauthenticationcode/main.cpp 2 + + \sa QCryptographicHash +*/ + +/*! + Constructs an object that can be used to create a cryptographic hash from data + using method \a method and key \a key. +*/ +QMessageAuthenticationCode::QMessageAuthenticationCode(QCryptographicHash::Algorithm method, + const QByteArray &key) + : d(new QMessageAuthenticationCodePrivate(method)) +{ + d->key = key; +} + +/*! + Destroys the object. +*/ +QMessageAuthenticationCode::~QMessageAuthenticationCode() +{ + delete d; +} + +/*! + Resets message data. Calling this method doesn't affect the key. +*/ +void QMessageAuthenticationCode::reset() +{ + d->result.clear(); + d->messageHash.reset(); + d->messageHashInited = false; +} + +/*! + Sets secret \a key. Calling this method automatically resets the object state. +*/ +void QMessageAuthenticationCode::setKey(const QByteArray &key) +{ + reset(); + d->key = key; +} + +/*! + Adds the first \a length chars of \a data to the message. +*/ +void QMessageAuthenticationCode::addData(const char *data, int length) +{ + d->initMessageHash(); + d->messageHash.addData(data, length); +} + +/*! + \overload addData() +*/ +void QMessageAuthenticationCode::addData(const QByteArray &data) +{ + d->initMessageHash(); + d->messageHash.addData(data); +} + +/*! + Reads the data from the open QIODevice \a device until it ends + and adds it to message. Returns true if reading was successful. + + \note \a device must be already opened. + */ +bool QMessageAuthenticationCode::addData(QIODevice *device) +{ + d->initMessageHash(); + return d->messageHash.addData(device); +} + +/*! + Returns the final authentication code. + + \sa QByteArray::toHex() +*/ +QByteArray QMessageAuthenticationCode::result() const +{ + if (!d->result.isEmpty()) + return d->result; + + d->initMessageHash(); + + const int blockSize = qt_hash_block_size(d->method); + + QByteArray hashedMessage = d->messageHash.result(); + + QVarLengthArray<char> oKeyPad(blockSize); + const char * const keyData = d->key.constData(); + + for (int i = 0; i < blockSize; ++i) + oKeyPad[i] = keyData[i] ^ 0x5c; + + QCryptographicHash hash(d->method); + hash.addData(oKeyPad.data(), oKeyPad.size()); + hash.addData(hashedMessage); + + d->result = hash.result(); + return d->result; +} + +/*! + Returns the authentication code for the message \a message using + the key \a key and the method \a method. +*/ +QByteArray QMessageAuthenticationCode::hash(const QByteArray &message, const QByteArray &key, + QCryptographicHash::Algorithm method) +{ + QMessageAuthenticationCode mac(method); + mac.setKey(key); + mac.addData(message); + return mac.result(); +} + +QT_END_NAMESPACE diff --git a/src/corelib/tools/qmessageauthenticationcode.h b/src/corelib/tools/qmessageauthenticationcode.h new file mode 100644 index 0000000000..e84a1c84b4 --- /dev/null +++ b/src/corelib/tools/qmessageauthenticationcode.h @@ -0,0 +1,84 @@ +/**************************************************************************** +** +** Copyright (C) 2013 Ruslan Nigmatullin <euroelessar@yandex.ru> +** Contact: http://www.qt-project.org/legal +** +** This file is part of the QtCore module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Digia. For licensing terms and +** conditions see http://qt.digia.com/licensing. For further information +** use the contact form at http://qt.digia.com/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Digia gives you certain additional +** rights. These rights are described in the Digia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMESSAGEAUTHENTICATIONCODE_H +#define QMESSAGEAUTHENTICATIONCODE_H + +#include <QtCore/qcryptographichash.h> + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + + +class QMessageAuthenticationCodePrivate; +class QIODevice; + +class Q_CORE_EXPORT QMessageAuthenticationCode +{ +public: + explicit QMessageAuthenticationCode(QCryptographicHash::Algorithm method, + const QByteArray &key = QByteArray()); + ~QMessageAuthenticationCode(); + + void reset(); + + void setKey(const QByteArray &key); + + void addData(const char *data, int length); + void addData(const QByteArray &data); + bool addData(QIODevice *device); + + QByteArray result() const; + + static QByteArray hash(const QByteArray &message, const QByteArray &key, + QCryptographicHash::Algorithm method); + +private: + Q_DISABLE_COPY(QMessageAuthenticationCode) + QMessageAuthenticationCodePrivate *d; +}; + +QT_END_NAMESPACE + +QT_END_HEADER + +#endif diff --git a/src/corelib/tools/qpoint.cpp b/src/corelib/tools/qpoint.cpp index b3dd918a35..784d96bf1c 100644 --- a/src/corelib/tools/qpoint.cpp +++ b/src/corelib/tools/qpoint.cpp @@ -223,6 +223,15 @@ QT_BEGIN_NAMESPACE */ /*! + \fn static int QPoint::dotProduct(const QPoint &p1, const QPoint &p2) + \since 5.1 + + \snippet code/src_corelib_tools_qpoint.cpp 16 + + Returns the dot product of \a p1 and \a p2. +*/ + +/*! \fn bool operator==(const QPoint &p1, const QPoint &p2) \relates QPoint @@ -712,6 +721,15 @@ QDebug operator<<(QDebug d, const QPointF &p) */ /*! + \fn static qreal QPointF::dotProduct(const QPointF &p1, const QPointF &p2) + \since 5.1 + + \snippet code/src_corelib_tools_qpoint.cpp 17 + + Returns the dot product of \a p1 and \a p2. +*/ + +/*! \fn bool operator==(const QPointF &p1, const QPointF &p2) \relates QPointF diff --git a/src/corelib/tools/qpoint.h b/src/corelib/tools/qpoint.h index b6446e8c9f..cb7a5ecd23 100644 --- a/src/corelib/tools/qpoint.h +++ b/src/corelib/tools/qpoint.h @@ -76,6 +76,8 @@ public: inline QPoint &operator/=(qreal divisor); + Q_DECL_CONSTEXPR static inline int dotProduct(const QPoint &p1, const QPoint &p2); + friend Q_DECL_CONSTEXPR inline bool operator==(const QPoint &, const QPoint &); friend Q_DECL_CONSTEXPR inline bool operator!=(const QPoint &, const QPoint &); friend Q_DECL_CONSTEXPR inline const QPoint operator+(const QPoint &, const QPoint &); @@ -153,6 +155,9 @@ inline QPoint &QPoint::operator*=(double factor) inline QPoint &QPoint::operator*=(int factor) { xp = xp*factor; yp = yp*factor; return *this; } +Q_DECL_CONSTEXPR inline int QPoint::dotProduct(const QPoint &p1, const QPoint &p2) +{ return p1.xp * p2.xp + p1.yp * p2.yp; } + Q_DECL_CONSTEXPR inline bool operator==(const QPoint &p1, const QPoint &p2) { return p1.xp == p2.xp && p1.yp == p2.yp; } @@ -233,6 +238,8 @@ public: inline QPointF &operator*=(qreal c); inline QPointF &operator/=(qreal c); + Q_DECL_CONSTEXPR static inline qreal dotProduct(const QPointF &p1, const QPointF &p2); + friend Q_DECL_CONSTEXPR inline bool operator==(const QPointF &, const QPointF &); friend Q_DECL_CONSTEXPR inline bool operator!=(const QPointF &, const QPointF &); friend Q_DECL_CONSTEXPR inline const QPointF operator+(const QPointF &, const QPointF &); @@ -330,6 +337,11 @@ inline QPointF &QPointF::operator*=(qreal c) xp*=c; yp*=c; return *this; } +Q_DECL_CONSTEXPR inline qreal QPointF::dotProduct(const QPointF &p1, const QPointF &p2) +{ + return p1.xp * p2.xp + p1.yp * p2.yp; +} + Q_DECL_CONSTEXPR inline bool operator==(const QPointF &p1, const QPointF &p2) { return qFuzzyIsNull(p1.xp - p2.xp) && qFuzzyIsNull(p1.yp - p2.yp); diff --git a/src/corelib/tools/qrect.h b/src/corelib/tools/qrect.h index 2ad049652f..16c737852b 100644 --- a/src/corelib/tools/qrect.h +++ b/src/corelib/tools/qrect.h @@ -53,6 +53,7 @@ QT_BEGIN_HEADER QT_BEGIN_NAMESPACE +class QMargins; class Q_CORE_EXPORT QRect { @@ -139,6 +140,11 @@ public: inline QRect intersected(const QRect &other) const; bool intersects(const QRect &r) const; + inline QRect marginsAdded(const QMargins &margins) const; + inline QRect marginsRemoved(const QMargins &margins) const; + inline QRect &operator+=(const QMargins &margins); + inline QRect &operator-=(const QMargins &margins); + #if QT_DEPRECATED_SINCE(5, 0) QT_DEPRECATED QRect unite(const QRect &r) const { return united(r); } QT_DEPRECATED QRect intersect(const QRect &r) const { return intersected(r); } diff --git a/src/corelib/tools/qregularexpression.cpp b/src/corelib/tools/qregularexpression.cpp index a18d8af898..503185dab5 100644 --- a/src/corelib/tools/qregularexpression.cpp +++ b/src/corelib/tools/qregularexpression.cpp @@ -1,6 +1,7 @@ /**************************************************************************** ** ** Copyright (C) 2012 Giuseppe D'Angelo <dangelog@gmail.com>. +** Copyright (C) 2012 Klarälvdalens Datakonsult AB, a KDAB Group company, info@kdab.com, author Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> ** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** @@ -725,6 +726,13 @@ QT_BEGIN_NAMESPACE that (in this text) there are other characters beyond the end of the subject string. This can lead to surprising results; see the discussion in the \l{partial matching} section for more details. + + \value NoMatch + No matching is done. This value is returned as the match type by a + default constructed QRegularExpressionMatch or + QRegularExpressionMatchIterator. Using this match type is not very + useful for the user, as no matching ever happens. This enum value + has been introduced in Qt 5.1. */ /*! @@ -834,7 +842,7 @@ struct QRegularExpressionMatchPrivate : QSharedData const QString &subject, QRegularExpression::MatchType matchType, QRegularExpression::MatchOptions matchOptions, - int capturingCount); + int capturingCount = 0); QRegularExpressionMatch nextMatch() const; @@ -1193,16 +1201,25 @@ QRegularExpressionMatchPrivate *QRegularExpressionPrivate::doMatch(const QString QRegularExpression re(*const_cast<QRegularExpressionPrivate *>(this)); if (offset < 0 || offset > subject.length()) - return new QRegularExpressionMatchPrivate(re, subject, matchType, matchOptions, 0); + return new QRegularExpressionMatchPrivate(re, subject, matchType, matchOptions); if (!compiledPattern) { qWarning("QRegularExpressionPrivate::doMatch(): called on an invalid QRegularExpression object"); - return new QRegularExpressionMatchPrivate(re, subject, matchType, matchOptions, 0); + return new QRegularExpressionMatchPrivate(re, subject, matchType, matchOptions); } + // skip optimizing and doing the actual matching if NoMatch type was requested + if (matchType == QRegularExpression::NoMatch) { + QRegularExpressionMatchPrivate *priv = new QRegularExpressionMatchPrivate(re, subject, + matchType, matchOptions); + priv->isValid = true; + return priv; + } + + // capturingCount doesn't include the implicit "0" capturing group QRegularExpressionMatchPrivate *priv = new QRegularExpressionMatchPrivate(re, subject, matchType, matchOptions, - capturingCount); + capturingCount + 1); // this is mutex protected const pcre16_extra *currentStudyData = const_cast<QRegularExpressionPrivate *>(this)->optimizePattern(); @@ -1311,8 +1328,10 @@ QRegularExpressionMatchPrivate::QRegularExpressionMatchPrivate(const QRegularExp hasMatch(false), hasPartialMatch(false), isValid(false) { Q_ASSERT(capturingCount >= 0); - const int captureOffsetsCount = (capturingCount + 1) * 3; - capturedOffsets.resize(captureOffsetsCount); + if (capturingCount > 0) { + const int captureOffsetsCount = capturingCount * 3; + capturedOffsets.resize(captureOffsetsCount); + } } @@ -1639,6 +1658,26 @@ QString QRegularExpression::escape(const QString &str) } /*! + \since 5.1 + + Constructs a valid, empty QRegularExpressionMatch object. The regular + expression is set to a default-constructed one; the match type to + QRegularExpression::NoMatch and the match options to + QRegularExpression::NoMatchOption. + + The object will report no match through the hasMatch() and the + hasPartialMatch() member functions. +*/ +QRegularExpressionMatch::QRegularExpressionMatch() + : d(new QRegularExpressionMatchPrivate(QRegularExpression(), + QString(), + QRegularExpression::NoMatch, + QRegularExpression::NoMatchOption)) +{ + d->isValid = true; +} + +/*! Destroys the match result. */ QRegularExpressionMatch::~QRegularExpressionMatch() @@ -1982,6 +2021,26 @@ QRegularExpressionMatchIterator::QRegularExpressionMatchIterator(QRegularExpress } /*! + \since 5.1 + + Constructs an empty, valid QRegularExpressionMatchIterator object. The + regular expression is set to a default-constructed one; the match type to + QRegularExpression::NoMatch and the match options to + QRegularExpression::NoMatchOption. + + Invoking the hasNext() member function on the constructed object will + return false, as the iterator is not iterating on a valid sequence of + matches. +*/ +QRegularExpressionMatchIterator::QRegularExpressionMatchIterator() + : d(new QRegularExpressionMatchIteratorPrivate(QRegularExpression(), + QRegularExpression::NoMatch, + QRegularExpression::NoMatchOption, + QRegularExpressionMatch())) +{ +} + +/*! Destroys the QRegularExpressionMatchIterator object. */ QRegularExpressionMatchIterator::~QRegularExpressionMatchIterator() diff --git a/src/corelib/tools/qregularexpression.h b/src/corelib/tools/qregularexpression.h index 4c95a5b3a0..a5c273e4a2 100644 --- a/src/corelib/tools/qregularexpression.h +++ b/src/corelib/tools/qregularexpression.h @@ -1,6 +1,7 @@ /**************************************************************************** ** ** Copyright (C) 2012 Giuseppe D'Angelo <dangelog@gmail.com>. +** Copyright (C) 2012 Klarälvdalens Datakonsult AB, a KDAB Group company, info@kdab.com, author Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> ** Contact: http://www.qt-project.org/legal ** ** This file is part of the QtCore module of the Qt Toolkit. @@ -42,7 +43,7 @@ #ifndef QREGULAREXPRESSION_H #define QREGULAREXPRESSION_H -#ifndef QT_NO_REGEXP +#ifndef QT_NO_REGULAREXPRESSION #include <QtCore/qstring.h> #include <QtCore/qshareddata.h> @@ -99,7 +100,8 @@ public: enum MatchType { NormalMatch = 0, PartialPreferCompleteMatch, - PartialPreferFirstMatch + PartialPreferFirstMatch, + NoMatch }; enum MatchOption { @@ -152,6 +154,7 @@ struct QRegularExpressionMatchPrivate; class Q_CORE_EXPORT QRegularExpressionMatch { public: + QRegularExpressionMatch(); ~QRegularExpressionMatch(); QRegularExpressionMatch(const QRegularExpressionMatch &match); QRegularExpressionMatch &operator=(const QRegularExpressionMatch &match); @@ -209,6 +212,7 @@ struct QRegularExpressionMatchIteratorPrivate; class Q_CORE_EXPORT QRegularExpressionMatchIterator { public: + QRegularExpressionMatchIterator(); ~QRegularExpressionMatchIterator(); QRegularExpressionMatchIterator(const QRegularExpressionMatchIterator &iterator); QRegularExpressionMatchIterator &operator=(const QRegularExpressionMatchIterator &iterator); @@ -241,6 +245,6 @@ QT_END_NAMESPACE QT_END_HEADER -#endif // QT_NO_REGEXP +#endif // QT_NO_REGULAREXPRESSION #endif // QREGULAREXPRESSION_H diff --git a/src/corelib/tools/qscopedpointer.h b/src/corelib/tools/qscopedpointer.h index 5d19bcea55..f7ac8da572 100644 --- a/src/corelib/tools/qscopedpointer.h +++ b/src/corelib/tools/qscopedpointer.h @@ -97,7 +97,6 @@ public: { T *oldD = this->d; Cleanup::cleanup(oldD); - this->d = 0; } inline T &operator*() const diff --git a/src/corelib/tools/qset.h b/src/corelib/tools/qset.h index 6fdc8e6281..ee91336c51 100644 --- a/src/corelib/tools/qset.h +++ b/src/corelib/tools/qset.h @@ -43,6 +43,9 @@ #define QSET_H #include <QtCore/qhash.h> +#ifdef Q_COMPILER_INITIALIZER_LISTS +#include <initializer_list> +#endif QT_BEGIN_HEADER @@ -56,6 +59,14 @@ class QSet public: inline QSet() {} +#ifdef Q_COMPILER_INITIALIZER_LISTS + inline QSet(std::initializer_list<T> list) + { + reserve(list.size()); + for (typename std::initializer_list<T>::const_iterator it = list.begin(); it != list.end(); ++it) + insert(*it); + } +#endif inline QSet(const QSet<T> &other) : q_hash(other.q_hash) {} inline QSet<T> &operator=(const QSet<T> &other) diff --git a/src/corelib/tools/qset.qdoc b/src/corelib/tools/qset.qdoc index ef7a4c4f52..cd90b4949b 100644 --- a/src/corelib/tools/qset.qdoc +++ b/src/corelib/tools/qset.qdoc @@ -103,6 +103,16 @@ \sa clear() */ +/*! \fn QSet::QSet(std::initializer_list<T> list) + \since 5.1 + + Constructs a set with a copy of each of the elements in the + initializer list \a list. + + This function is only available if the program is being + compiled in C++11 mode. +*/ + /*! \fn QSet::QSet(const QSet<T> &other) diff --git a/src/corelib/tools/qsharedpointer.cpp b/src/corelib/tools/qsharedpointer.cpp index df7a911f8c..bced1f4ece 100644 --- a/src/corelib/tools/qsharedpointer.cpp +++ b/src/corelib/tools/qsharedpointer.cpp @@ -136,23 +136,11 @@ \omit \secton1 QSharedPointer internals - QSharedPointer is in reality implemented by two ancestor classes: - QtSharedPointer::Basic and QtSharedPointer::ExternalRefCount. The reason - for having that split is now mostly legacy: in the beginning, - QSharedPointer was meant to support both internal reference counting and - external reference counting. - - QtSharedPointer::Basic implements the basic functionality that is shared - between internal- and external-reference counting. That is, it's mostly - the accessor functions into QSharedPointer. Those are all inherited by - QSharedPointer, which adds another level of shared functionality (the - constructors and assignment operators). The Basic class has one member - variable, which is the actual pointer being tracked. - - QtSharedPointer::ExternalRefCount implements the actual reference - counting and introduces the d-pointer for QSharedPointer. That d-pointer - itself is shared with other QSharedPointer objects as well as - QWeakPointer. + QSharedPointer has two "private" members: the pointer itself being tracked + and a d-pointer. Those members are private to the class, but QSharedPointer + is friends with QWeakPointer and other QSharedPointer with different + template arguments. (On some compilers, template friends are not supported, + so the members are technically public) The reason for keeping the pointer value itself outside the d-pointer is because of multiple inheritance needs. If you have two QSharedPointer @@ -178,17 +166,19 @@ QSharedObject instances that are attached to this Data. When the strong reference count decreases to zero, the object is deleted - (see below for information on custom deleters). The strong reference - count can also exceptionally be -1, indicating that there are no - QSharedPointers attached to an object, which is tracked too. The only - case where this is possible is that of QWeakPointers tracking a QObject. + (see below for information on custom deleters). The strong reference count + can also exceptionally be -1, indicating that there are no QSharedPointers + attached to an object, which is tracked too. The only case where this is + possible is that of QWeakPointers and QPointers tracking a QObject. Note + that QWeakPointers tracking a QObject is a deprecated feature as of Qt 5.0, + kept only for compatibility with Qt 4.x. The weak reference count controls the lifetime of the d-pointer itself. It can be thought of as an internal/intrusive reference count for ExternalRefCountData itself. This count is equal to the number of - QSharedPointers and QWeakPointers that are tracking this object. (In case - the object tracked derives from QObject, this number is increased by 1, - since QObjectPrivate tracks it too). + QSharedPointers and QWeakPointers that are tracking this object. In case + the object is a QObject being tracked by QPointer, this number is increased + by 1, since QObjectPrivate tracks it too. The third member is a pointer to the function that is used to delete the pointer being tracked. That happens when the destroy() function is called. @@ -199,18 +189,21 @@ \section3 QtSharedPointer::ExternalRefCountWithCustomDeleter - This class derives from ExternalRefCountData and is a - template class. As template parameters, it has the type of the pointer - being tracked (\tt T) and a \tt Deleter, which is anything. It adds two - fields to its parent class, matching those template parameters: a member - of type \tt Deleter and a member of type \tt T*. + This class derives from ExternalRefCountData and is a template class. As + template parameters, it has the type of the pointer being tracked (\tt T) + and a \tt Deleter, which is anything. It adds two fields to its parent + class, matching those template parameters: a member of type \tt Deleter and + a member of type \tt T*. Those members are actually inside a template + struct of type CustomDeleter, which is partially-specialized for normal + deletion. See below for more details on that. The purpose of this class is to store the pointer to be deleted and the deleter code along with the d-pointer. This allows the last strong reference to call any arbitrary function that disposes of the object. For example, this allows calling QObject::deleteLater() on a given object. - The pointer to the object is kept here to avoid the extra cost of keeping - the deleter in the generic case. + The pointer to the object is kept here because it needs to match the actual + deleter function's parameters, regardless of what template argument the + last QSharedPointer instance had. This class is never instantiated directly: the constructors and destructor are private and, in C++11, deleted. Only the create() function @@ -605,6 +598,37 @@ */ /*! + \fn QSharedPointer<T> QSharedPointer::create() + \since 5.1 + + Creates a QSharedPointer object and allocates a new item of type \tt T. The + QSharedPointer internals and the object are allocated in one single memory + allocation, which could help reduce memory fragmentation in a long-running + application. + + This function calls the default constructor for type \tt T. +*/ + +/*! + \fn QSharedPointer<T> QSharedPointer::create(...) + \overload + \since 5.1 + + Creates a QSharedPointer object and allocates a new item of type \tt T. The + QSharedPointer internals and the object are allocated in one single memory + allocation, which could help reduce memory fragmentation in a long-running + application. + + This function will attempt to call a constructor for type \tt T that can + accept all the arguments passed. Arguments will be perfectly-forwarded. + + \note This function is only available with a C++11 compiler that supports + perfect forwarding of an arbitrary number of arguments. If the compiler + does not support the necessary C++11 features, you must use the overload + that calls the default constructor. +*/ + +/*! \fn QWeakPointer<T> QSharedPointer::toWeakRef() const Returns a weak reference object that shares the pointer referenced diff --git a/src/corelib/tools/qsharedpointer.h b/src/corelib/tools/qsharedpointer.h index b4e70cebd2..ccfffb5b18 100644 --- a/src/corelib/tools/qsharedpointer.h +++ b/src/corelib/tools/qsharedpointer.h @@ -95,6 +95,9 @@ public: template <class X> QSharedPointer<X> dynamicCast() const; template <class X> QSharedPointer<X> constCast() const; template <class X> QSharedPointer<X> objectCast() const; + + static inline QSharedPointer<T> create(); + static inline QSharedPointer<T> create(...); }; template <class T> diff --git a/src/corelib/tools/qsharedpointer_impl.h b/src/corelib/tools/qsharedpointer_impl.h index 881c60b6fd..0d3d410bf5 100644 --- a/src/corelib/tools/qsharedpointer_impl.h +++ b/src/corelib/tools/qsharedpointer_impl.h @@ -62,6 +62,10 @@ QT_END_HEADER #include <QtCore/qobject.h> // for qobject_cast #include <QtCore/qhash.h> // for qHash +#if defined(Q_COMPILER_RVALUE_REFS) && defined(Q_COMPILER_VARIADIC_TEMPLATES) +# include <utility> // for std::forward +#endif + QT_BEGIN_HEADER QT_BEGIN_NAMESPACE @@ -389,6 +393,28 @@ public: QWeakPointer<T> toWeakRef() const; +#if defined(Q_COMPILER_RVALUE_REFS) && defined(Q_COMPILER_VARIADIC_TEMPLATES) + template <typename... Args> + static QSharedPointer<T> create(Args && ...arguments) + { + typedef QtSharedPointer::ExternalRefCountWithContiguousData<T> Private; +# ifdef QT_SHAREDPOINTER_TRACK_POINTERS + typename Private::DestroyerFn destroy = &Private::safetyCheckDeleter; +# else + typename Private::DestroyerFn destroy = &Private::deleter; +# endif + QSharedPointer<T> result(Qt::Uninitialized); + result.d = Private::create(&result.value, destroy); + + // now initialize the data + new (result.data()) T(std::forward<Args>(arguments)...); + result.d->setQObjectShared(result.value, true); +# ifdef QT_SHAREDPOINTER_TRACK_POINTERS + internalSafetyCheckAdd(result.d, result.value); +# endif + return result; + } +#else static inline QSharedPointer<T> create() { typedef QtSharedPointer::ExternalRefCountWithContiguousData<T> Private; @@ -408,6 +434,7 @@ public: result.d->setQObjectShared(result.value, true); return result; } +#endif private: explicit QSharedPointer(Qt::Initialization) {} diff --git a/src/corelib/tools/qstring.cpp b/src/corelib/tools/qstring.cpp index 21aa3b6ffb..8583bcf70f 100644 --- a/src/corelib/tools/qstring.cpp +++ b/src/corelib/tools/qstring.cpp @@ -2762,13 +2762,17 @@ int QString::lastIndexOf(const QStringRef &str, int from, Qt::CaseSensitivity cs str.size(), cs); } -#ifndef QT_NO_REGEXP + +#if !(defined(QT_NO_REGEXP) && defined(QT_NO_REGULAREXPRESSION)) struct QStringCapture { int pos; int len; int no; }; +#endif + +#ifndef QT_NO_REGEXP /*! \overload replace() @@ -2925,7 +2929,7 @@ QString& QString::replace(const QRegExp &rx, const QString &after) } #endif -#ifndef QT_NO_REGEXP +#ifndef QT_NO_REGULAREXPRESSION #ifndef QT_BOOTSTRAPPED /*! \overload replace() @@ -3055,7 +3059,7 @@ QString &QString::replace(const QRegularExpression &re, const QString &after) return *this; } #endif // QT_BOOTSTRAPPED -#endif // QT_NO_REGEXP +#endif // QT_NO_REGULAREXPRESSION /*! Returns the number of (potentially overlapping) occurrences of @@ -3256,7 +3260,7 @@ int QString::count(const QRegExp& rx) const } #endif // QT_NO_REGEXP -#ifndef QT_NO_REGEXP +#ifndef QT_NO_REGULAREXPRESSION #ifndef QT_BOOTSTRAPPED /*! \overload indexOf() @@ -3336,6 +3340,33 @@ bool QString::contains(const QRegularExpression &re) const } /*! + \overload contains() + \since 5.1 + + Returns true if the regular expression \a re matches somewhere in this + string; otherwise returns false. + + If the match is successful and \a match is not a null pointer, it also + writes the results of the match into the QRegularExpressionMatch object + pointed by \a match. + + \sa QRegularExpression::match() +*/ + +bool QString::contains(const QRegularExpression &re, QRegularExpressionMatch *match) const +{ + if (!re.isValid()) { + qWarning("QString::contains: invalid QRegularExpresssion object"); + return false; + } + QRegularExpressionMatch m = re.match(*this); + bool hasMatch = m.hasMatch(); + if (hasMatch && match) + *match = m; + return hasMatch; +} + +/*! \overload count() \since 5.0 @@ -3366,7 +3397,7 @@ int QString::count(const QRegularExpression &re) const return count; } #endif // QT_BOOTSTRAPPED -#endif // QT_NO_REGEXP +#endif // QT_NO_REGULAREXPRESSION /*! \fn int QString::count() const @@ -3487,7 +3518,7 @@ QString QString::section(const QString &sep, int start, int end, SectionFlags fl return ret; } -#ifndef QT_NO_REGEXP +#if !(defined(QT_NO_REGEXP) && defined(QT_NO_REGULAREXPRESSION)) class qt_section_chunk { public: qt_section_chunk(int l, QString s) { length = l; string = s; } @@ -3537,7 +3568,9 @@ static QString extractSections(const QList<qt_section_chunk> §ions, return ret; } +#endif +#ifndef QT_NO_REGEXP /*! \overload section() @@ -3575,7 +3608,7 @@ QString QString::section(const QRegExp ®, int start, int end, SectionFlags fl } #endif -#ifndef QT_NO_REGEXP +#ifndef QT_NO_REGULAREXPRESSION #ifndef QT_BOOTSTRAPPED /*! \overload section() @@ -3621,7 +3654,7 @@ QString QString::section(const QRegularExpression &re, int start, int end, Secti return extractSections(sections, start, end, flags); } #endif // QT_BOOTSTRAPPED -#endif // QT_NO_REGEXP +#endif // QT_NO_REGULAREXPRESSION /*! Returns a substring that contains the \a n leftmost characters @@ -6416,7 +6449,7 @@ QStringList QString::split(const QRegExp &rx, SplitBehavior behavior) const } #endif -#ifndef QT_NO_REGEXP +#ifndef QT_NO_REGULAREXPRESSION #ifndef QT_BOOTSTRAPPED /*! \overload @@ -6470,7 +6503,7 @@ QStringList QString::split(const QRegularExpression &re, SplitBehavior behavior) return list; } #endif // QT_BOOTSTRAPPED -#endif // QT_NO_REGEXP +#endif // QT_NO_REGULAREXPRESSION /*! \enum QString::NormalizationForm diff --git a/src/corelib/tools/qstring.h b/src/corelib/tools/qstring.h index a6f03b2ce0..f7631b4143 100644 --- a/src/corelib/tools/qstring.h +++ b/src/corelib/tools/qstring.h @@ -72,6 +72,7 @@ QT_BEGIN_NAMESPACE class QCharRef; class QRegExp; class QRegularExpression; +class QRegularExpressionMatch; class QString; class QStringList; class QTextCodec; @@ -335,10 +336,11 @@ public: inline bool contains(QRegExp &rx) const { return indexOf(rx) != -1; } #endif -#ifndef QT_NO_REGEXP +#ifndef QT_NO_REGULAREXPRESSION int indexOf(const QRegularExpression &re, int from = 0) const; int lastIndexOf(const QRegularExpression &re, int from = -1) const; bool contains(const QRegularExpression &re) const; + bool contains(const QRegularExpression &re, QRegularExpressionMatch *match) const; // ### Qt 6: merge overloads int count(const QRegularExpression &re) const; #endif @@ -356,7 +358,7 @@ public: #ifndef QT_NO_REGEXP QString section(const QRegExp ®, int start, int end = -1, SectionFlags flags = SectionDefault) const; #endif -#ifndef QT_NO_REGEXP +#ifndef QT_NO_REGULAREXPRESSION QString section(const QRegularExpression &re, int start, int end = -1, SectionFlags flags = SectionDefault) const; #endif QString left(int n) const Q_REQUIRED_RESULT; @@ -432,7 +434,7 @@ public: inline QString &remove(const QRegExp &rx) { return replace(rx, QString()); } #endif -#ifndef QT_NO_REGEXP +#ifndef QT_NO_REGULAREXPRESSION QString &replace(const QRegularExpression &re, const QString &after); inline QString &remove(const QRegularExpression &re) { return replace(re, QString()); } @@ -447,7 +449,7 @@ public: #ifndef QT_NO_REGEXP QStringList split(const QRegExp &sep, SplitBehavior behavior = KeepEmptyParts) const Q_REQUIRED_RESULT; #endif -#ifndef QT_NO_REGEXP +#ifndef QT_NO_REGULAREXPRESSION QStringList split(const QRegularExpression &sep, SplitBehavior behavior = KeepEmptyParts) const Q_REQUIRED_RESULT; #endif enum NormalizationForm { @@ -884,6 +886,8 @@ public: QChar::Decomposition decompositionTag() const { return QChar(*this).decompositionTag(); } uchar combiningClass() const { return QChar(*this).combiningClass(); } + inline QChar::Script script() const { return QChar(*this).script(); } + QChar::UnicodeVersion unicodeVersion() const { return QChar(*this).unicodeVersion(); } inline uchar cell() const { return QChar(*this).cell(); } diff --git a/src/corelib/tools/qstringlist.cpp b/src/corelib/tools/qstringlist.cpp index f48db4a643..fa2e12b67b 100644 --- a/src/corelib/tools/qstringlist.cpp +++ b/src/corelib/tools/qstringlist.cpp @@ -320,7 +320,7 @@ QStringList QtPrivate::QStringList_filter(const QStringList *that, const QRegExp #endif #ifndef QT_BOOTSTRAPPED -#ifndef QT_NO_REGEXP +#ifndef QT_NO_REGULAREXPRESSION /*! \fn QStringList QStringList::filter(const QRegularExpression &re) const \overload @@ -338,7 +338,7 @@ QStringList QtPrivate::QStringList_filter(const QStringList *that, const QRegula } return res; } -#endif // QT_NO_REGEXP +#endif // QT_NO_REGULAREXPRESSION #endif // QT_BOOTSTRAPPED /*! @@ -395,7 +395,7 @@ void QtPrivate::QStringList_replaceInStrings(QStringList *that, const QRegExp &r #endif #ifndef QT_BOOTSTRAPPED -#ifndef QT_NO_REGEXP +#ifndef QT_NO_REGULAREXPRESSION /*! \fn QStringList &QStringList::replaceInStrings(const QRegularExpression &re, const QString &after) \overload @@ -424,7 +424,7 @@ void QtPrivate::QStringList_replaceInStrings(QStringList *that, const QRegularEx for (int i = 0; i < that->size(); ++i) (*that)[i].replace(re, after); } -#endif // QT_NO_REGEXP +#endif // QT_NO_REGULAREXPRESSION #endif // QT_BOOTSTRAPPED /*! @@ -619,7 +619,7 @@ int QtPrivate::QStringList_lastIndexOf(const QStringList *that, QRegExp &rx, int #endif #ifndef QT_BOOTSTRAPPED -#ifndef QT_NO_REGEXP +#ifndef QT_NO_REGULAREXPRESSION /*! \fn int QStringList::indexOf(const QRegularExpression &re, int from) const \overload @@ -676,7 +676,7 @@ int QtPrivate::QStringList_lastIndexOf(const QStringList *that, const QRegularEx } return -1; } -#endif // QT_NO_REGEXP +#endif // QT_NO_REGULAREXPRESSION #endif // QT_BOOTSTRAPPED /*! diff --git a/src/corelib/tools/qstringlist.h b/src/corelib/tools/qstringlist.h index 8ae6e3653a..597e1f7a6b 100644 --- a/src/corelib/tools/qstringlist.h +++ b/src/corelib/tools/qstringlist.h @@ -99,12 +99,12 @@ public: #endif #ifndef QT_BOOTSTRAPPED -#ifndef QT_NO_REGEXP +#ifndef QT_NO_REGULAREXPRESSION inline QStringList filter(const QRegularExpression &re) const; inline QStringList &replaceInStrings(const QRegularExpression &re, const QString &after); inline int indexOf(const QRegularExpression &re, int from = 0) const; inline int lastIndexOf(const QRegularExpression &re, int from = -1) const; -#endif // QT_NO_REGEXP +#endif // QT_NO_REGULAREXPRESSION #endif // QT_BOOTSTRAPPED #if !defined(Q_NO_USING_KEYWORD) @@ -141,12 +141,12 @@ namespace QtPrivate { #endif #ifndef QT_BOOTSTRAPPED -#ifndef QT_NO_REGEXP +#ifndef QT_NO_REGULAREXPRESSION void Q_CORE_EXPORT QStringList_replaceInStrings(QStringList *that, const QRegularExpression &rx, const QString &after); QStringList Q_CORE_EXPORT QStringList_filter(const QStringList *that, const QRegularExpression &re); int Q_CORE_EXPORT QStringList_indexOf(const QStringList *that, const QRegularExpression &re, int from); int Q_CORE_EXPORT QStringList_lastIndexOf(const QStringList *that, const QRegularExpression &re, int from); -#endif // QT_NO_REGEXP +#endif // QT_NO_REGULAREXPRESSION #endif // QT_BOOTSTRAPPED } @@ -220,7 +220,7 @@ inline int QStringList::lastIndexOf(QRegExp &rx, int from) const #endif #ifndef QT_BOOTSTRAPPED -#ifndef QT_NO_REGEXP +#ifndef QT_NO_REGULAREXPRESSION inline QStringList &QStringList::replaceInStrings(const QRegularExpression &rx, const QString &after) { QtPrivate::QStringList_replaceInStrings(this, rx, after); @@ -241,7 +241,7 @@ inline int QStringList::lastIndexOf(const QRegularExpression &rx, int from) cons { return QtPrivate::QStringList_lastIndexOf(this, rx, from); } -#endif // QT_NO_REGEXP +#endif // QT_NO_REGULAREXPRESSION #endif // QT_BOOTSTRAPPED #ifndef QT_NO_DATASTREAM diff --git a/src/corelib/tools/qtextboundaryfinder.cpp b/src/corelib/tools/qtextboundaryfinder.cpp index 9ccfe95b1d..51b4ece4b1 100644 --- a/src/corelib/tools/qtextboundaryfinder.cpp +++ b/src/corelib/tools/qtextboundaryfinder.cpp @@ -41,7 +41,6 @@ #include <QtCore/qtextboundaryfinder.h> #include <QtCore/qvarlengtharray.h> -#include <private/qunicodetables_p.h> #include <private/qunicodetools_p.h> QT_BEGIN_NAMESPACE @@ -61,15 +60,15 @@ static void init(QTextBoundaryFinder::BoundaryType type, const QChar *chars, int // correctly assign script, isTab and isObject to the script analysis const ushort *uc = unicode; const ushort *e = uc + length; - int script = QUnicodeTables::Common; - int lastScript = QUnicodeTables::Common; + uchar script = QChar::Script_Common; + uchar lastScript = QChar::Script_Common; const ushort *start = uc; while (uc < e) { - int s = QUnicodeTables::script(*uc); - if (s != QUnicodeTables::Inherited) + int s = QChar::script(*uc); + if (s != QChar::Script_Inherited) script = s; if (*uc == QChar::ObjectReplacementCharacter || *uc == QChar::LineSeparator || *uc == 9) - script = QUnicodeTables::Common; + script = QChar::Script_Common; if (script != lastScript) { if (uc != start) { QUnicodeTools::ScriptItem item; diff --git a/src/corelib/tools/qunicodetables.cpp b/src/corelib/tools/qunicodetables.cpp index b9f91cdb74..764a4afa04 100644 --- a/src/corelib/tools/qunicodetables.cpp +++ b/src/corelib/tools/qunicodetables.cpp @@ -70,109 +70,41 @@ static const unsigned short uc_property_trie[] = { 10224, 10256, 10288, 10320, 10352, 10384, 10416, 10448, 10480, 10480, 10512, 10544, 10544, 10576, 10608, 10640, 10672, 10704, 10736, 10704, 10768, 10800, 10832, 10864, - 10896, 10704, 10928, 10960, 10992, 10704, 10704, 11024, - 11056, 10704, 10704, 10704, 10704, 10704, 10704, 10704, - 10704, 10704, 10704, 10704, 10704, 10704, 10704, 10704, - 10704, 10704, 10704, 11088, 11120, 11152, 11152, 11184, - 11216, 11248, 11280, 11312, 11344, 11376, 11408, 11440, - 11472, 10704, 11504, 11536, 10704, 11568, 11600, 11632, - 11664, 11696, 11728, 11760, 11792, 11824, 11856, 11888, - 11920, 11952, 11984, 12016, 12048, 12080, 9872, 9872, - 12112, 12144, 12176, 12208, 12240, 12272, 12304, 12336, - 12368, 12400, 12432, 12464, 9872, 9872, 12496, 12528, - 12560, 12592, 12624, 12656, 12688, 12720, 12752, 12784, - 6512, 6512, 6512, 6512, 12816, 6512, 6512, 12848, - 12880, 12912, 12944, 12976, 13008, 13040, 13072, 13104, - - 13136, 13168, 13200, 13232, 13264, 13296, 13328, 13360, - 13392, 13424, 13456, 13488, 13520, 13552, 13584, 13616, - 13648, 13680, 13712, 13744, 13776, 13808, 13840, 13872, - 13904, 13936, 13968, 14000, 14032, 14064, 14096, 14128, - 14160, 14192, 14224, 14256, 14288, 14320, 14352, 14384, - 14160, 14160, 14160, 14160, 14416, 14448, 14480, 14512, - 14544, 14576, 14160, 14608, 14640, 14672, 14704, 14736, - 14768, 14800, 14832, 14864, 14896, 14928, 14960, 14992, - 15024, 15024, 15024, 15024, 15024, 15024, 15024, 15024, - 15056, 15056, 15056, 15056, 15088, 15120, 15152, 15184, - 15056, 15216, 15056, 15248, 15280, 15312, 15344, 15376, - 15408, 15440, 15472, 9872, 9872, 9872, 9872, 9872, - 15504, 15536, 15568, 15600, 15632, 15632, 15632, 15664, - 15696, 15728, 15760, 15792, 15824, 15856, 15856, 15888, - 15920, 15952, 9872, 9872, 15984, 16016, 16016, 16048, - 16016, 16016, 16016, 16016, 16016, 16016, 16080, 16112, - - 16144, 16176, 16208, 16240, 16272, 16304, 16336, 16368, - 16400, 16432, 16464, 16464, 16496, 16528, 16560, 16592, - 16624, 16656, 16688, 16720, 16656, 16752, 16784, 16816, - 16848, 16848, 16880, 16912, 16944, 16944, 16976, 17008, - 17040, 17040, 17040, 17040, 17040, 17040, 17040, 17040, - 17040, 17040, 17040, 17040, 17040, 17040, 17040, 17040, - 17040, 17040, 17040, 17040, 17040, 17040, 17040, 17040, - 17040, 17040, 17040, 17040, 17040, 17040, 17040, 17040, - 17040, 17040, 17040, 17040, 17040, 17040, 17040, 17040, - 17040, 17040, 17040, 17040, 17040, 17040, 17040, 17040, - 17040, 17040, 17040, 17040, 17040, 17040, 17040, 17040, - 17040, 17040, 17040, 17040, 17040, 17040, 17040, 17040, - 17040, 17040, 17040, 17040, 17040, 17040, 17040, 17040, - 17040, 17040, 17040, 17040, 17040, 17040, 17040, 17040, - 17040, 17040, 17040, 17040, 17040, 17040, 17040, 17040, - 17040, 17040, 17040, 17040, 17040, 17040, 17040, 17040, - - 17040, 17040, 17040, 17040, 17040, 17040, 17040, 17040, - 17040, 17040, 17040, 17040, 17040, 17040, 17040, 17040, - 17040, 17040, 17040, 17040, 17040, 17040, 17040, 17040, - 17040, 17040, 17040, 17040, 17040, 17040, 17040, 17040, - 17040, 17040, 17040, 17040, 17040, 17040, 17040, 17040, - 17040, 17040, 17040, 17040, 17040, 17040, 17040, 17040, - 17040, 17040, 17040, 17040, 17040, 17040, 17040, 17040, - 17040, 17040, 17040, 17040, 17040, 17040, 17040, 17040, - 17040, 17040, 17040, 17040, 17040, 17040, 17040, 17040, - 17040, 17040, 17040, 17040, 17040, 17040, 17040, 17040, - 17040, 17040, 17040, 17040, 17040, 17040, 17040, 17040, - 17040, 17040, 17040, 17040, 17040, 17040, 17040, 17040, - 17040, 17040, 17040, 17040, 17040, 17040, 17040, 17040, - 17040, 17040, 17040, 17040, 17040, 17072, 17104, 17104, - 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136, - 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136, - - 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136, - 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136, - 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136, - 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136, - 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136, - 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136, - 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136, - 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136, - 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136, - 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136, - 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136, - 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136, - 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136, - 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136, - 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136, - 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136, - - 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136, - 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136, - 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136, - 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136, - 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136, - 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136, - 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136, - 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136, - 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136, - 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136, - 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136, - 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136, - 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136, - 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136, - 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136, - 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136, - - 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136, - 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136, - 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136, - 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136, + 10896, 10704, 10928, 10960, 10992, 11024, 11024, 11056, + 11088, 11120, 11120, 11120, 11120, 11120, 11120, 11120, + 11120, 11120, 11120, 11120, 11120, 11120, 11120, 11120, + 11120, 11120, 11120, 11152, 11184, 11216, 11216, 11248, + 11280, 11312, 11344, 11376, 11408, 11440, 11472, 11504, + 11536, 11568, 11600, 11632, 11568, 11664, 11696, 11728, + 11760, 11792, 11824, 11856, 11888, 11920, 11952, 11984, + 12016, 12048, 12080, 12112, 12144, 12176, 9872, 9872, + 12208, 12240, 12272, 12304, 12336, 12368, 12400, 12432, + 12464, 12496, 12528, 12560, 9872, 9872, 12592, 12624, + 12656, 12688, 12720, 12752, 12784, 12816, 12848, 12880, + 6512, 6512, 6512, 6512, 12912, 6512, 6512, 12944, + 12976, 13008, 13040, 13072, 13104, 13136, 13168, 13200, + + 13232, 13264, 13296, 13328, 13360, 13392, 13424, 13456, + 13488, 13520, 13552, 13584, 13616, 13648, 13680, 13712, + 13744, 13776, 13808, 13840, 13872, 13904, 13936, 13968, + 14000, 14032, 14064, 14096, 14128, 14160, 14192, 14224, + 14256, 14288, 14320, 14352, 14384, 14416, 14448, 14480, + 14256, 14256, 14256, 14256, 14512, 14544, 14576, 14608, + 14640, 14672, 14256, 14704, 14736, 14768, 14800, 14832, + 14864, 14896, 14928, 14960, 14992, 15024, 15056, 15088, + 15120, 15120, 15120, 15120, 15120, 15120, 15120, 15120, + 15152, 15152, 15152, 15152, 15184, 15216, 15248, 15280, + 15152, 15312, 15152, 15344, 15376, 15408, 15440, 15472, + 15504, 15536, 15568, 9872, 9872, 9872, 9872, 9872, + 15600, 15632, 15664, 15696, 15728, 15728, 15728, 15760, + 15792, 15824, 15856, 15888, 15920, 15952, 15952, 15984, + 16016, 16048, 9872, 9872, 16080, 16112, 16112, 16144, + 16112, 16112, 16112, 16112, 16112, 16112, 16176, 16208, + + 16240, 16272, 16304, 16336, 16368, 16400, 16432, 16464, + 16496, 16528, 16560, 16560, 16592, 16624, 16656, 16688, + 16720, 16752, 16784, 16816, 16752, 16848, 16880, 16912, + 16944, 16944, 16976, 17008, 17040, 17040, 17072, 17104, 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136, @@ -199,674 +131,742 @@ static const unsigned short uc_property_trie[] = { 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136, - 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136, - 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136, - 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136, - - 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136, - 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136, - 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136, - 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136, - 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136, - 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136, - 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136, - 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136, - 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136, - 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136, - 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136, - 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136, - 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136, - 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136, - 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136, - 17136, 17136, 17136, 17136, 17136, 17168, 17200, 17232, - - 17264, 17296, 17296, 17296, 17296, 17296, 17296, 17296, - 17296, 17296, 17296, 17296, 17296, 17296, 17296, 17296, - 17296, 17296, 17296, 17296, 17296, 17296, 17296, 17296, - 17296, 17296, 17296, 17296, 17296, 17296, 17296, 17296, - 17296, 17296, 17296, 17296, 17328, 17360, 17392, 17424, - 12368, 12368, 12368, 12368, 12368, 12368, 12368, 12368, - 17456, 17488, 17520, 17552, 17584, 11600, 11600, 17616, - 17648, 17680, 17712, 17744, 17776, 17808, 9872, 17840, - 17872, 17904, 17936, 17968, 18000, 18032, 18064, 18096, - 18128, 18160, 18192, 18224, 18256, 18288, 18320, 9872, - 12368, 18352, 18384, 18416, 11952, 18448, 18480, 18512, - 18544, 18576, 9872, 9872, 9872, 9872, 11600, 18608, - 18640, 18672, 18704, 18736, 18768, 18800, 18832, 18640, - 18672, 18704, 18736, 18768, 18800, 18832, 18640, 18672, - 18704, 18736, 18768, 18800, 18832, 18640, 18672, 18704, - 18736, 18768, 18800, 18832, 18640, 18672, 18704, 18736, - - 18768, 18800, 18832, 18640, 18672, 18704, 18736, 18768, - 18800, 18832, 18640, 18672, 18704, 18736, 18768, 18800, - 18832, 18640, 18672, 18704, 18736, 18768, 18800, 18832, - 18640, 18672, 18704, 18736, 18768, 18800, 18832, 18640, - 18672, 18704, 18736, 18768, 18800, 18832, 18640, 18672, - 18704, 18736, 18768, 18800, 18832, 18640, 18672, 18704, - 18736, 18768, 18800, 18832, 18640, 18672, 18704, 18736, - 18768, 18800, 18832, 18640, 18672, 18704, 18736, 18768, - 18800, 18832, 18640, 18672, 18704, 18736, 18768, 18800, - 18832, 18640, 18672, 18704, 18736, 18768, 18800, 18832, - 18640, 18672, 18704, 18736, 18768, 18800, 18832, 18640, - 18672, 18704, 18736, 18768, 18800, 18832, 18640, 18672, - 18704, 18736, 18768, 18800, 18832, 18640, 18672, 18704, - 18736, 18768, 18800, 18832, 18640, 18672, 18704, 18736, - 18768, 18800, 18832, 18640, 18672, 18704, 18736, 18768, - 18800, 18832, 18640, 18672, 18704, 18736, 18768, 18800, - - 18832, 18640, 18672, 18704, 18736, 18768, 18800, 18832, - 18640, 18672, 18704, 18736, 18768, 18800, 18832, 18640, - 18672, 18704, 18736, 18768, 18800, 18832, 18640, 18672, - 18704, 18736, 18768, 18800, 18832, 18640, 18672, 18704, - 18736, 18768, 18800, 18832, 18640, 18672, 18704, 18736, - 18768, 18800, 18832, 18640, 18672, 18704, 18736, 18768, - 18800, 18832, 18640, 18672, 18704, 18736, 18768, 18800, - 18832, 18640, 18672, 18704, 18736, 18768, 18800, 18832, - 18640, 18672, 18704, 18736, 18768, 18800, 18832, 18640, - 18672, 18704, 18736, 18768, 18800, 18832, 18640, 18672, - 18704, 18736, 18768, 18800, 18832, 18640, 18672, 18704, - 18736, 18768, 18800, 18832, 18640, 18672, 18704, 18736, - 18768, 18800, 18832, 18640, 18672, 18704, 18736, 18768, - 18800, 18832, 18640, 18672, 18704, 18736, 18768, 18800, - 18832, 18640, 18672, 18704, 18736, 18768, 18800, 18832, - 18640, 18672, 18704, 18736, 18768, 18800, 18832, 18640, - - 18672, 18704, 18736, 18768, 18800, 18832, 18640, 18672, - 18704, 18736, 18768, 18800, 18832, 18640, 18672, 18704, - 18736, 18768, 18800, 18832, 18640, 18672, 18704, 18736, - 18768, 18800, 18832, 18640, 18672, 18704, 18736, 18768, - 18800, 18832, 18640, 18672, 18704, 18736, 18768, 18800, - 18832, 18640, 18672, 18704, 18736, 18768, 18800, 18832, - 18640, 18672, 18704, 18736, 18768, 18800, 18832, 18640, - 18672, 18704, 18736, 18768, 18800, 18864, 18896, 18928, - 18960, 18960, 18960, 18960, 18960, 18960, 18960, 18960, - 18960, 18960, 18960, 18960, 18960, 18960, 18960, 18960, - 18960, 18960, 18960, 18960, 18960, 18960, 18960, 18960, - 18960, 18960, 18960, 18960, 18960, 18960, 18960, 18960, - 18960, 18960, 18960, 18960, 18960, 18960, 18960, 18960, - 18960, 18960, 18960, 18960, 18960, 18960, 18960, 18960, - 18960, 18960, 18960, 18960, 18960, 18960, 18960, 18960, - 18960, 18960, 18960, 18960, 18960, 18960, 18960, 18960, - - 18992, 18992, 18992, 18992, 18992, 18992, 18992, 18992, - 18992, 18992, 18992, 18992, 18992, 18992, 18992, 18992, - 18992, 18992, 18992, 18992, 18992, 18992, 18992, 18992, - 18992, 18992, 18992, 18992, 18992, 18992, 18992, 18992, - 18992, 18992, 18992, 18992, 18992, 18992, 18992, 18992, - 18992, 18992, 18992, 18992, 18992, 18992, 18992, 18992, - 18992, 18992, 18992, 18992, 18992, 18992, 18992, 18992, - 18992, 18992, 18992, 18992, 18992, 18992, 18992, 18992, - 18992, 18992, 18992, 18992, 18992, 18992, 18992, 18992, - 18992, 18992, 18992, 18992, 18992, 18992, 18992, 18992, - 18992, 18992, 18992, 18992, 18992, 18992, 18992, 18992, - 18992, 18992, 18992, 18992, 18992, 18992, 18992, 18992, - 18992, 18992, 18992, 18992, 18992, 18992, 18992, 18992, - 18992, 18992, 18992, 18992, 18992, 18992, 18992, 18992, - 18992, 18992, 18992, 18992, 18992, 18992, 18992, 18992, - 18992, 18992, 18992, 18992, 18992, 18992, 18992, 18992, - - 18992, 18992, 18992, 18992, 18992, 18992, 18992, 18992, - 18992, 18992, 18992, 18992, 18992, 18992, 18992, 18992, - 18992, 18992, 18992, 18992, 18992, 18992, 18992, 18992, - 18992, 18992, 18992, 18992, 18992, 18992, 18992, 18992, - 18992, 18992, 18992, 18992, 18992, 18992, 18992, 18992, - 18992, 18992, 18992, 18992, 18992, 18992, 18992, 18992, - 18992, 18992, 18992, 18992, 18992, 18992, 18992, 18992, - 18992, 18992, 18992, 18992, 18992, 18992, 18992, 18992, - 18992, 18992, 18992, 18992, 18992, 18992, 18992, 18992, - 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136, - 17136, 19024, 19056, 19088, 19120, 19120, 19152, 17232, - 19184, 19216, 19248, 19280, 19280, 19312, 19344, 19280, - 19280, 19280, 19280, 19280, 19280, 19280, 19280, 19280, - 19280, 19376, 19408, 19280, 19440, 19280, 19472, 19504, - 19536, 19568, 19600, 19632, 19280, 19280, 19280, 19664, - 19696, 19728, 19760, 19792, 19824, 19856, 19888, 19920, - - 19952, 19984, 20016, 9872, 20048, 20048, 20048, 20080, - 20112, 20144, 20176, 20208, 20240, 9872, 20272, 20304, - 9872, 9872, 9872, 9872, 20336, 12368, 20368, 9872, - 20400, 20432, 20464, 9872, 20496, 15760, 20528, 9872, - 20560, 20592, 20624, 20048, 20656, 20688, 9872, 9872, + 17136, 17136, 17136, 17136, 17136, 17168, 17200, 17200, + 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232, + 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232, + + 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232, + 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232, + 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232, + 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232, + 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232, + 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232, + 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232, + 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232, + 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232, + 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232, + 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232, + 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232, + 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232, + 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232, + 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232, + 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232, + + 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232, + 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232, + 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232, + 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232, + 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232, + 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232, + 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232, + 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232, + 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232, + 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232, + 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232, + 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232, + 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232, + 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232, + 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232, + 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232, + + 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232, + 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232, + 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232, + 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232, + 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232, + 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232, + 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232, + 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232, + 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232, + 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232, + 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232, + 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232, + 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232, + 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232, + 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232, + 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232, + + 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232, + 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232, + 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232, + 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232, + 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232, + 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232, + 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232, + 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232, + 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232, + 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232, + 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232, + 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232, + 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232, + 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232, + 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232, + 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232, + + 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232, + 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232, + 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232, + 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232, + 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232, + 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232, + 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232, + 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232, + 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232, + 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232, + 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232, + 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232, + 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232, + 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232, + 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232, + 17232, 17232, 17232, 17232, 17232, 17264, 17296, 17328, + + 17360, 17392, 17392, 17392, 17392, 17392, 17392, 17392, + 17392, 17392, 17392, 17392, 17392, 17392, 17392, 17392, + 17392, 17392, 17392, 17392, 17392, 17392, 17392, 17392, + 17392, 17392, 17392, 17392, 17392, 17392, 17392, 17392, + 17392, 17392, 17392, 17392, 17424, 17456, 17488, 17520, + 17552, 17552, 17552, 17552, 17552, 17552, 17552, 17552, + 17584, 17616, 17648, 17680, 17712, 17744, 17744, 17776, + 17808, 17840, 17872, 17904, 17936, 17968, 9872, 18000, + 18032, 18064, 18096, 18128, 18160, 18192, 18224, 18256, + 18288, 18320, 18352, 18384, 18416, 18448, 18480, 9872, + 18512, 18544, 18576, 18608, 18640, 18672, 18704, 18736, + 18768, 18800, 9872, 9872, 9872, 9872, 18832, 18864, + 18896, 18928, 18960, 18992, 19024, 19056, 19088, 18896, + 18928, 18960, 18992, 19024, 19056, 19088, 18896, 18928, + 18960, 18992, 19024, 19056, 19088, 18896, 18928, 18960, + 18992, 19024, 19056, 19088, 18896, 18928, 18960, 18992, + + 19024, 19056, 19088, 18896, 18928, 18960, 18992, 19024, + 19056, 19088, 18896, 18928, 18960, 18992, 19024, 19056, + 19088, 18896, 18928, 18960, 18992, 19024, 19056, 19088, + 18896, 18928, 18960, 18992, 19024, 19056, 19088, 18896, + 18928, 18960, 18992, 19024, 19056, 19088, 18896, 18928, + 18960, 18992, 19024, 19056, 19088, 18896, 18928, 18960, + 18992, 19024, 19056, 19088, 18896, 18928, 18960, 18992, + 19024, 19056, 19088, 18896, 18928, 18960, 18992, 19024, + 19056, 19088, 18896, 18928, 18960, 18992, 19024, 19056, + 19088, 18896, 18928, 18960, 18992, 19024, 19056, 19088, + 18896, 18928, 18960, 18992, 19024, 19056, 19088, 18896, + 18928, 18960, 18992, 19024, 19056, 19088, 18896, 18928, + 18960, 18992, 19024, 19056, 19088, 18896, 18928, 18960, + 18992, 19024, 19056, 19088, 18896, 18928, 18960, 18992, + 19024, 19056, 19088, 18896, 18928, 18960, 18992, 19024, + 19056, 19088, 18896, 18928, 18960, 18992, 19024, 19056, + + 19088, 18896, 18928, 18960, 18992, 19024, 19056, 19088, + 18896, 18928, 18960, 18992, 19024, 19056, 19088, 18896, + 18928, 18960, 18992, 19024, 19056, 19088, 18896, 18928, + 18960, 18992, 19024, 19056, 19088, 18896, 18928, 18960, + 18992, 19024, 19056, 19088, 18896, 18928, 18960, 18992, + 19024, 19056, 19088, 18896, 18928, 18960, 18992, 19024, + 19056, 19088, 18896, 18928, 18960, 18992, 19024, 19056, + 19088, 18896, 18928, 18960, 18992, 19024, 19056, 19088, + 18896, 18928, 18960, 18992, 19024, 19056, 19088, 18896, + 18928, 18960, 18992, 19024, 19056, 19088, 18896, 18928, + 18960, 18992, 19024, 19056, 19088, 18896, 18928, 18960, + 18992, 19024, 19056, 19088, 18896, 18928, 18960, 18992, + 19024, 19056, 19088, 18896, 18928, 18960, 18992, 19024, + 19056, 19088, 18896, 18928, 18960, 18992, 19024, 19056, + 19088, 18896, 18928, 18960, 18992, 19024, 19056, 19088, + 18896, 18928, 18960, 18992, 19024, 19056, 19088, 18896, + + 18928, 18960, 18992, 19024, 19056, 19088, 18896, 18928, + 18960, 18992, 19024, 19056, 19088, 18896, 18928, 18960, + 18992, 19024, 19056, 19088, 18896, 18928, 18960, 18992, + 19024, 19056, 19088, 18896, 18928, 18960, 18992, 19024, + 19056, 19088, 18896, 18928, 18960, 18992, 19024, 19056, + 19088, 18896, 18928, 18960, 18992, 19024, 19056, 19088, + 18896, 18928, 18960, 18992, 19024, 19056, 19088, 18896, + 18928, 18960, 18992, 19024, 19056, 19120, 19152, 19184, + 19216, 19216, 19216, 19216, 19216, 19216, 19216, 19216, + 19216, 19216, 19216, 19216, 19216, 19216, 19216, 19216, + 19216, 19216, 19216, 19216, 19216, 19216, 19216, 19216, + 19216, 19216, 19216, 19216, 19216, 19216, 19216, 19216, + 19216, 19216, 19216, 19216, 19216, 19216, 19216, 19216, + 19216, 19216, 19216, 19216, 19216, 19216, 19216, 19216, + 19216, 19216, 19216, 19216, 19216, 19216, 19216, 19216, + 19216, 19216, 19216, 19216, 19216, 19216, 19216, 19216, + + 19248, 19248, 19248, 19248, 19248, 19248, 19248, 19248, + 19248, 19248, 19248, 19248, 19248, 19248, 19248, 19248, + 19248, 19248, 19248, 19248, 19248, 19248, 19248, 19248, + 19248, 19248, 19248, 19248, 19248, 19248, 19248, 19248, + 19248, 19248, 19248, 19248, 19248, 19248, 19248, 19248, + 19248, 19248, 19248, 19248, 19248, 19248, 19248, 19248, + 19248, 19248, 19248, 19248, 19248, 19248, 19248, 19248, + 19248, 19248, 19248, 19248, 19248, 19248, 19248, 19248, + 19248, 19248, 19248, 19248, 19248, 19248, 19248, 19248, + 19248, 19248, 19248, 19248, 19248, 19248, 19248, 19248, + 19248, 19248, 19248, 19248, 19248, 19248, 19248, 19248, + 19248, 19248, 19248, 19248, 19248, 19248, 19248, 19248, + 19248, 19248, 19248, 19248, 19248, 19248, 19248, 19248, + 19248, 19248, 19248, 19248, 19248, 19248, 19248, 19248, + 19248, 19248, 19248, 19248, 19248, 19248, 19248, 19248, + 19248, 19248, 19248, 19248, 19248, 19248, 19248, 19248, + + 19248, 19248, 19248, 19248, 19248, 19248, 19248, 19248, + 19248, 19248, 19248, 19248, 19248, 19248, 19248, 19248, + 19248, 19248, 19248, 19248, 19248, 19248, 19248, 19248, + 19248, 19248, 19248, 19248, 19248, 19248, 19248, 19248, + 19248, 19248, 19248, 19248, 19248, 19248, 19248, 19248, + 19248, 19248, 19248, 19248, 19248, 19248, 19248, 19248, + 19248, 19248, 19248, 19248, 19248, 19248, 19248, 19248, + 19248, 19248, 19248, 19248, 19248, 19248, 19248, 19248, + 19248, 19248, 19248, 19248, 19248, 19248, 19248, 19248, + 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232, + 17232, 19280, 19312, 19344, 19376, 19376, 19408, 17328, + 19440, 19472, 19504, 19536, 19536, 19568, 19600, 19536, + 19536, 19536, 19536, 19536, 19536, 19536, 19536, 19536, + 19536, 19632, 19664, 19536, 19696, 19536, 19728, 19760, + 19792, 19824, 19856, 19888, 19536, 19536, 19536, 19920, + 19952, 19984, 20016, 20048, 20080, 20112, 20144, 20176, + + 20208, 20240, 20272, 9872, 20304, 20304, 20304, 20336, + 20368, 20400, 20432, 20464, 20496, 9872, 20528, 20560, + 9872, 9872, 9872, 9872, 20592, 20624, 20656, 9872, + 20688, 20720, 20752, 9872, 20784, 20816, 20848, 9872, + 20880, 20912, 20944, 20976, 21008, 21040, 9872, 9872, 9872, 9872, 9872, 9872, 9872, 9872, 9872, 9872, 9872, 9872, 9872, 9872, 9872, 9872, 9872, 9872, 9872, 9872, 9872, 9872, 9872, 9872, 9872, 9872, - 20720, 20752, 20784, 8368, 8368, 8368, 8368, 8368, - 20816, 20848, 8368, 8368, 20880, 20912, 8368, 8368, - 20944, 20976, 21008, 21040, 8368, 8368, 8368, 8368, - 21072, 21104, 21136, 21168, 8368, 8368, 8368, 8368, - 21072, 21072, 21200, 8368, 8368, 8368, 8368, 8368, + 21072, 21104, 21136, 8368, 8368, 8368, 8368, 8368, + 21168, 21200, 8368, 8368, 21232, 21264, 8368, 8368, + 21296, 21328, 21360, 21392, 8368, 8368, 8368, 8368, + 21424, 21456, 21488, 21520, 8368, 8368, 8368, 8368, + 21552, 21552, 21584, 8368, 8368, 8368, 8368, 8368, 8368, 8368, 8368, 8368, 8368, 8368, 8368, 8368, - 8368, 8368, 8368, 21232, 8368, 8368, 8368, 8368, + 8368, 8368, 8368, 21616, 8368, 8368, 8368, 8368, 8368, 8368, 8368, 8368, 8368, 8368, 8368, 8368, // 0x11000 - 0x110000 - 21264, 21520, 21776, 21776, 21776, 21776, 22032, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 22288, 22288, 22288, 22544, 22800, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 23056, 23056, 23312, 23568, 23824, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 24080, 24080, 24336, 21776, 21776, 21776, 21776, 24592, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 24848, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 25104, 25360, 25616, 25872, 26128, 26384, 26640, 26896, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 27152, 27152, 27152, 27152, 27152, 27152, 27408, 27152, - 27664, 27920, 28176, 28432, 28688, 28944, 29200, 29456, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 29712, - 29968, 29968, 29968, 29968, 29968, 29968, 29968, 29968, - 29968, 29968, 29968, 29968, 29968, 29968, 29968, 29968, - 29968, 29968, 29968, 29968, 29968, 29968, 29968, 29968, - 29968, 29968, 29968, 29968, 29968, 29968, 29968, 29968, - 29968, 29968, 29968, 29968, 29968, 29968, 29968, 29968, - 29968, 29968, 29968, 29968, 29968, 29968, 29968, 29968, - 29968, 29968, 29968, 29968, 29968, 29968, 29968, 29968, - 29968, 29968, 29968, 29968, 29968, 29968, 29968, 29968, - 29968, 29968, 29968, 29968, 29968, 29968, 29968, 29968, - 29968, 29968, 29968, 29968, 29968, 29968, 29968, 29968, - 29968, 29968, 29968, 29968, 29968, 29968, 29968, 29968, - 29968, 29968, 29968, 29968, 29968, 29968, 29968, 29968, - 29968, 29968, 29968, 29968, 29968, 29968, 29968, 29968, - 29968, 29968, 29968, 29968, 29968, 29968, 29968, 29968, - 29968, 29968, 29968, 29968, 29968, 29968, 29968, 29968, - 29968, 29968, 29968, 29968, 29968, 29968, 29968, 29968, - 29968, 29968, 29968, 29968, 29968, 29968, 29968, 29968, - 29968, 29968, 29968, 29968, 29968, 29968, 29968, 29968, - - 29968, 29968, 29968, 29968, 29968, 29968, 29968, 29968, - 29968, 29968, 29968, 29968, 29968, 29968, 29968, 29968, - 29968, 29968, 29968, 29968, 29968, 29968, 30224, 30480, - 30480, 30480, 30480, 30480, 30480, 30480, 30480, 30480, - 30480, 30480, 30480, 30480, 30480, 30480, 30480, 30736, - 30992, 31248, 31248, 31248, 31248, 31248, 31248, 31248, - 31248, 31248, 31248, 31248, 31248, 31248, 31248, 31248, - 31248, 31248, 31248, 31248, 31248, 31248, 31248, 31248, - 31248, 31248, 31248, 31248, 31248, 31248, 31248, 31248, - 31248, 31248, 31248, 31248, 31248, 31248, 31248, 31248, - 31248, 31248, 31248, 31248, 31248, 31248, 31248, 31248, - 31248, 31248, 31248, 31248, 31248, 31248, 31248, 31248, - 31248, 31248, 31248, 31248, 31248, 31248, 31248, 31248, - 29968, 29968, 31504, 31248, 31248, 31248, 31248, 31760, - 31248, 31248, 31248, 31248, 31248, 31248, 31248, 31248, - 31248, 31248, 31248, 31248, 31248, 31248, 31248, 31248, - 31248, 31248, 31248, 31248, 31248, 31248, 31248, 31248, - 31248, 31248, 31248, 31248, 31248, 31248, 31248, 31248, - 31248, 31248, 31248, 31248, 31248, 31248, 31248, 31248, - 31248, 31248, 31248, 31248, 31248, 31248, 31248, 31248, - 31248, 31248, 31248, 31248, 31248, 31248, 31248, 31248, - 31248, 31248, 31248, 31248, 31248, 31248, 31248, 31248, - 31248, 31248, 31248, 31248, 31248, 31248, 31248, 31248, - 31248, 31248, 31248, 31248, 31248, 31248, 31248, 31248, - 31248, 31248, 31248, 31248, 31248, 31248, 31248, 31248, - 31248, 31248, 31248, 31248, 31248, 31248, 31248, 31248, - 31248, 31248, 31248, 31248, 31248, 31248, 31248, 31248, - 31248, 31248, 31248, 31248, 31248, 31248, 31248, 31248, - 31248, 31248, 31248, 31248, 31248, 31248, 31248, 31248, - 31248, 31248, 31248, 31248, 31248, 31248, 31248, 31248, - 31248, 31248, 31248, 31248, 31248, 31248, 31248, 31248, - 31248, 31248, 31248, 31248, 31248, 31248, 31248, 31248, - - 31248, 31248, 31248, 31248, 31248, 31248, 31248, 31248, - 31248, 31248, 31248, 31248, 31248, 31248, 31248, 31248, - 31248, 31248, 31248, 31248, 31248, 31248, 31248, 31248, - 31248, 31248, 31248, 31248, 31248, 31248, 31248, 31248, - 31248, 31248, 31248, 31248, 31248, 31248, 31248, 31248, - 31248, 31248, 31248, 31248, 31248, 31248, 31248, 31248, - 31248, 31248, 31248, 31248, 31248, 31248, 31248, 31248, - 31248, 31248, 31248, 31248, 31248, 31248, 31248, 31248, - 31248, 31248, 31248, 31248, 31248, 31248, 31248, 31248, - 31248, 31248, 31248, 31248, 31248, 31248, 31248, 31248, - 31248, 31248, 31248, 31248, 31248, 31248, 31248, 31248, - 31248, 31248, 31248, 31248, 31248, 31248, 31248, 31248, - 31248, 31248, 31248, 31248, 31248, 31248, 31248, 31248, - 31248, 31248, 31248, 31248, 31248, 31248, 31248, 31760, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 29712, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 29712, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 29712, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 29712, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 29712, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 29712, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 29712, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 29712, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 29712, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 29712, - 32016, 32272, 32528, 32528, 32528, 32528, 32528, 32528, - 32528, 32528, 32528, 32528, 32528, 32528, 32528, 32528, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776, - 21776, 21776, 21776, 21776, 21776, 21776, 21776, 29712, - 32784, 32784, 32784, 32784, 32784, 32784, 32784, 32784, - 32784, 32784, 32784, 32784, 32784, 32784, 32784, 32784, - 32784, 32784, 32784, 32784, 32784, 32784, 32784, 32784, - 32784, 32784, 32784, 32784, 32784, 32784, 32784, 32784, - 32784, 32784, 32784, 32784, 32784, 32784, 32784, 32784, - 32784, 32784, 32784, 32784, 32784, 32784, 32784, 32784, - 32784, 32784, 32784, 32784, 32784, 32784, 32784, 32784, - 32784, 32784, 32784, 32784, 32784, 32784, 32784, 32784, - 32784, 32784, 32784, 32784, 32784, 32784, 32784, 32784, - 32784, 32784, 32784, 32784, 32784, 32784, 32784, 32784, - 32784, 32784, 32784, 32784, 32784, 32784, 32784, 32784, - 32784, 32784, 32784, 32784, 32784, 32784, 32784, 32784, - 32784, 32784, 32784, 32784, 32784, 32784, 32784, 32784, - 32784, 32784, 32784, 32784, 32784, 32784, 32784, 32784, - 32784, 32784, 32784, 32784, 32784, 32784, 32784, 32784, - 32784, 32784, 32784, 32784, 32784, 32784, 32784, 32784, - 32784, 32784, 32784, 32784, 32784, 32784, 32784, 32784, - 32784, 32784, 32784, 32784, 32784, 32784, 32784, 32784, - - 32784, 32784, 32784, 32784, 32784, 32784, 32784, 32784, - 32784, 32784, 32784, 32784, 32784, 32784, 32784, 32784, - 32784, 32784, 32784, 32784, 32784, 32784, 32784, 32784, - 32784, 32784, 32784, 32784, 32784, 32784, 32784, 32784, - 32784, 32784, 32784, 32784, 32784, 32784, 32784, 32784, - 32784, 32784, 32784, 32784, 32784, 32784, 32784, 32784, - 32784, 32784, 32784, 32784, 32784, 32784, 32784, 32784, - 32784, 32784, 32784, 32784, 32784, 32784, 32784, 32784, - 32784, 32784, 32784, 32784, 32784, 32784, 32784, 32784, - 32784, 32784, 32784, 32784, 32784, 32784, 32784, 32784, - 32784, 32784, 32784, 32784, 32784, 32784, 32784, 32784, - 32784, 32784, 32784, 32784, 32784, 32784, 32784, 32784, - 32784, 32784, 32784, 32784, 32784, 32784, 32784, 32784, - 32784, 32784, 32784, 32784, 32784, 32784, 32784, 33040, - 32784, 32784, 32784, 32784, 32784, 32784, 32784, 32784, - 32784, 32784, 32784, 32784, 32784, 32784, 32784, 32784, - 32784, 32784, 32784, 32784, 32784, 32784, 32784, 32784, - 32784, 32784, 32784, 32784, 32784, 32784, 32784, 32784, - 32784, 32784, 32784, 32784, 32784, 32784, 32784, 32784, - 32784, 32784, 32784, 32784, 32784, 32784, 32784, 32784, - 32784, 32784, 32784, 32784, 32784, 32784, 32784, 32784, - 32784, 32784, 32784, 32784, 32784, 32784, 32784, 32784, - 32784, 32784, 32784, 32784, 32784, 32784, 32784, 32784, - 32784, 32784, 32784, 32784, 32784, 32784, 32784, 32784, - 32784, 32784, 32784, 32784, 32784, 32784, 32784, 32784, - 32784, 32784, 32784, 32784, 32784, 32784, 32784, 32784, - 32784, 32784, 32784, 32784, 32784, 32784, 32784, 32784, - 32784, 32784, 32784, 32784, 32784, 32784, 32784, 32784, - 32784, 32784, 32784, 32784, 32784, 32784, 32784, 32784, - 32784, 32784, 32784, 32784, 32784, 32784, 32784, 32784, - 32784, 32784, 32784, 32784, 32784, 32784, 32784, 32784, - 32784, 32784, 32784, 32784, 32784, 32784, 32784, 32784, - - 32784, 32784, 32784, 32784, 32784, 32784, 32784, 32784, - 32784, 32784, 32784, 32784, 32784, 32784, 32784, 32784, - 32784, 32784, 32784, 32784, 32784, 32784, 32784, 32784, - 32784, 32784, 32784, 32784, 32784, 32784, 32784, 32784, - 32784, 32784, 32784, 32784, 32784, 32784, 32784, 32784, - 32784, 32784, 32784, 32784, 32784, 32784, 32784, 32784, - 32784, 32784, 32784, 32784, 32784, 32784, 32784, 32784, - 32784, 32784, 32784, 32784, 32784, 32784, 32784, 32784, - 32784, 32784, 32784, 32784, 32784, 32784, 32784, 32784, - 32784, 32784, 32784, 32784, 32784, 32784, 32784, 32784, - 32784, 32784, 32784, 32784, 32784, 32784, 32784, 32784, - 32784, 32784, 32784, 32784, 32784, 32784, 32784, 32784, - 32784, 32784, 32784, 32784, 32784, 32784, 32784, 32784, - 32784, 32784, 32784, 32784, 32784, 32784, 32784, 33040, + 21648, 21904, 22160, 22160, 22160, 22160, 22416, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22672, 22672, 22672, 22928, 23184, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 23440, 23440, 23696, 23952, 24208, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 24464, 24464, 24720, 22160, 22160, 22160, 22160, 24976, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 25232, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 25488, 25744, 26000, 26256, 26512, 26768, 27024, 27280, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 27536, 27536, 27536, 27536, 27536, 27536, 27792, 27536, + 28048, 28304, 28560, 28816, 29072, 29328, 29584, 29840, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 30096, + 30352, 30352, 30352, 30352, 30352, 30352, 30352, 30352, + 30352, 30352, 30352, 30352, 30352, 30352, 30352, 30352, + 30352, 30352, 30352, 30352, 30352, 30352, 30352, 30352, + 30352, 30352, 30352, 30352, 30352, 30352, 30352, 30352, + 30352, 30352, 30352, 30352, 30352, 30352, 30352, 30352, + 30352, 30352, 30352, 30352, 30352, 30352, 30352, 30352, + 30352, 30352, 30352, 30352, 30352, 30352, 30352, 30352, + 30352, 30352, 30352, 30352, 30352, 30352, 30352, 30352, + 30352, 30352, 30352, 30352, 30352, 30352, 30352, 30352, + 30352, 30352, 30352, 30352, 30352, 30352, 30352, 30352, + 30352, 30352, 30352, 30352, 30352, 30352, 30352, 30352, + 30352, 30352, 30352, 30352, 30352, 30352, 30352, 30352, + 30352, 30352, 30352, 30352, 30352, 30352, 30352, 30352, + 30352, 30352, 30352, 30352, 30352, 30352, 30352, 30352, + 30352, 30352, 30352, 30352, 30352, 30352, 30352, 30352, + 30352, 30352, 30352, 30352, 30352, 30352, 30352, 30352, + 30352, 30352, 30352, 30352, 30352, 30352, 30352, 30352, + 30352, 30352, 30352, 30352, 30352, 30352, 30352, 30352, + + 30352, 30352, 30352, 30352, 30352, 30352, 30352, 30352, + 30352, 30352, 30352, 30352, 30352, 30352, 30352, 30352, + 30352, 30352, 30352, 30352, 30352, 30352, 30608, 30864, + 30864, 30864, 30864, 30864, 30864, 30864, 30864, 30864, + 30864, 30864, 30864, 30864, 30864, 30864, 30864, 31120, + 31376, 31632, 31632, 31632, 31632, 31632, 31632, 31632, + 31632, 31632, 31632, 31632, 31632, 31632, 31632, 31632, + 31632, 31632, 31632, 31632, 31632, 31632, 31632, 31632, + 31632, 31632, 31632, 31632, 31632, 31632, 31632, 31632, + 31632, 31632, 31632, 31632, 31632, 31632, 31632, 31632, + 31632, 31632, 31632, 31632, 31632, 31632, 31632, 31632, + 31632, 31632, 31632, 31632, 31632, 31632, 31632, 31632, + 31632, 31632, 31632, 31632, 31632, 31632, 31632, 31632, + 30352, 30352, 31888, 31632, 31632, 31632, 31632, 32144, + 31632, 31632, 31632, 31632, 31632, 31632, 31632, 31632, + 31632, 31632, 31632, 31632, 31632, 31632, 31632, 31632, + 31632, 31632, 31632, 31632, 31632, 31632, 31632, 31632, + 31632, 31632, 31632, 31632, 31632, 31632, 31632, 31632, + 31632, 31632, 31632, 31632, 31632, 31632, 31632, 31632, + 31632, 31632, 31632, 31632, 31632, 31632, 31632, 31632, + 31632, 31632, 31632, 31632, 31632, 31632, 31632, 31632, + 31632, 31632, 31632, 31632, 31632, 31632, 31632, 31632, + 31632, 31632, 31632, 31632, 31632, 31632, 31632, 31632, + 31632, 31632, 31632, 31632, 31632, 31632, 31632, 31632, + 31632, 31632, 31632, 31632, 31632, 31632, 31632, 31632, + 31632, 31632, 31632, 31632, 31632, 31632, 31632, 31632, + 31632, 31632, 31632, 31632, 31632, 31632, 31632, 31632, + 31632, 31632, 31632, 31632, 31632, 31632, 31632, 31632, + 31632, 31632, 31632, 31632, 31632, 31632, 31632, 31632, + 31632, 31632, 31632, 31632, 31632, 31632, 31632, 31632, + 31632, 31632, 31632, 31632, 31632, 31632, 31632, 31632, + 31632, 31632, 31632, 31632, 31632, 31632, 31632, 31632, + + 31632, 31632, 31632, 31632, 31632, 31632, 31632, 31632, + 31632, 31632, 31632, 31632, 31632, 31632, 31632, 31632, + 31632, 31632, 31632, 31632, 31632, 31632, 31632, 31632, + 31632, 31632, 31632, 31632, 31632, 31632, 31632, 31632, + 31632, 31632, 31632, 31632, 31632, 31632, 31632, 31632, + 31632, 31632, 31632, 31632, 31632, 31632, 31632, 31632, + 31632, 31632, 31632, 31632, 31632, 31632, 31632, 31632, + 31632, 31632, 31632, 31632, 31632, 31632, 31632, 31632, + 31632, 31632, 31632, 31632, 31632, 31632, 31632, 31632, + 31632, 31632, 31632, 31632, 31632, 31632, 31632, 31632, + 31632, 31632, 31632, 31632, 31632, 31632, 31632, 31632, + 31632, 31632, 31632, 31632, 31632, 31632, 31632, 31632, + 31632, 31632, 31632, 31632, 31632, 31632, 31632, 31632, + 31632, 31632, 31632, 31632, 31632, 31632, 31632, 32144, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 30096, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 30096, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 30096, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 30096, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 30096, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 30096, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 30096, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 30096, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 30096, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 30096, + 32400, 32656, 32912, 32912, 32912, 32912, 32912, 32912, + 32912, 32912, 32912, 32912, 32912, 32912, 32912, 32912, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160, + 22160, 22160, 22160, 22160, 22160, 22160, 22160, 30096, + 33168, 33168, 33168, 33168, 33168, 33168, 33168, 33168, + 33168, 33168, 33168, 33168, 33168, 33168, 33168, 33168, + 33168, 33168, 33168, 33168, 33168, 33168, 33168, 33168, + 33168, 33168, 33168, 33168, 33168, 33168, 33168, 33168, + 33168, 33168, 33168, 33168, 33168, 33168, 33168, 33168, + 33168, 33168, 33168, 33168, 33168, 33168, 33168, 33168, + 33168, 33168, 33168, 33168, 33168, 33168, 33168, 33168, + 33168, 33168, 33168, 33168, 33168, 33168, 33168, 33168, + 33168, 33168, 33168, 33168, 33168, 33168, 33168, 33168, + 33168, 33168, 33168, 33168, 33168, 33168, 33168, 33168, + 33168, 33168, 33168, 33168, 33168, 33168, 33168, 33168, + 33168, 33168, 33168, 33168, 33168, 33168, 33168, 33168, + 33168, 33168, 33168, 33168, 33168, 33168, 33168, 33168, + 33168, 33168, 33168, 33168, 33168, 33168, 33168, 33168, + 33168, 33168, 33168, 33168, 33168, 33168, 33168, 33168, + 33168, 33168, 33168, 33168, 33168, 33168, 33168, 33168, + 33168, 33168, 33168, 33168, 33168, 33168, 33168, 33168, + 33168, 33168, 33168, 33168, 33168, 33168, 33168, 33168, + + 33168, 33168, 33168, 33168, 33168, 33168, 33168, 33168, + 33168, 33168, 33168, 33168, 33168, 33168, 33168, 33168, + 33168, 33168, 33168, 33168, 33168, 33168, 33168, 33168, + 33168, 33168, 33168, 33168, 33168, 33168, 33168, 33168, + 33168, 33168, 33168, 33168, 33168, 33168, 33168, 33168, + 33168, 33168, 33168, 33168, 33168, 33168, 33168, 33168, + 33168, 33168, 33168, 33168, 33168, 33168, 33168, 33168, + 33168, 33168, 33168, 33168, 33168, 33168, 33168, 33168, + 33168, 33168, 33168, 33168, 33168, 33168, 33168, 33168, + 33168, 33168, 33168, 33168, 33168, 33168, 33168, 33168, + 33168, 33168, 33168, 33168, 33168, 33168, 33168, 33168, + 33168, 33168, 33168, 33168, 33168, 33168, 33168, 33168, + 33168, 33168, 33168, 33168, 33168, 33168, 33168, 33168, + 33168, 33168, 33168, 33168, 33168, 33168, 33168, 33424, + 33168, 33168, 33168, 33168, 33168, 33168, 33168, 33168, + 33168, 33168, 33168, 33168, 33168, 33168, 33168, 33168, + 33168, 33168, 33168, 33168, 33168, 33168, 33168, 33168, + 33168, 33168, 33168, 33168, 33168, 33168, 33168, 33168, + 33168, 33168, 33168, 33168, 33168, 33168, 33168, 33168, + 33168, 33168, 33168, 33168, 33168, 33168, 33168, 33168, + 33168, 33168, 33168, 33168, 33168, 33168, 33168, 33168, + 33168, 33168, 33168, 33168, 33168, 33168, 33168, 33168, + 33168, 33168, 33168, 33168, 33168, 33168, 33168, 33168, + 33168, 33168, 33168, 33168, 33168, 33168, 33168, 33168, + 33168, 33168, 33168, 33168, 33168, 33168, 33168, 33168, + 33168, 33168, 33168, 33168, 33168, 33168, 33168, 33168, + 33168, 33168, 33168, 33168, 33168, 33168, 33168, 33168, + 33168, 33168, 33168, 33168, 33168, 33168, 33168, 33168, + 33168, 33168, 33168, 33168, 33168, 33168, 33168, 33168, + 33168, 33168, 33168, 33168, 33168, 33168, 33168, 33168, + 33168, 33168, 33168, 33168, 33168, 33168, 33168, 33168, + 33168, 33168, 33168, 33168, 33168, 33168, 33168, 33168, + + 33168, 33168, 33168, 33168, 33168, 33168, 33168, 33168, + 33168, 33168, 33168, 33168, 33168, 33168, 33168, 33168, + 33168, 33168, 33168, 33168, 33168, 33168, 33168, 33168, + 33168, 33168, 33168, 33168, 33168, 33168, 33168, 33168, + 33168, 33168, 33168, 33168, 33168, 33168, 33168, 33168, + 33168, 33168, 33168, 33168, 33168, 33168, 33168, 33168, + 33168, 33168, 33168, 33168, 33168, 33168, 33168, 33168, + 33168, 33168, 33168, 33168, 33168, 33168, 33168, 33168, + 33168, 33168, 33168, 33168, 33168, 33168, 33168, 33168, + 33168, 33168, 33168, 33168, 33168, 33168, 33168, 33168, + 33168, 33168, 33168, 33168, 33168, 33168, 33168, 33168, + 33168, 33168, 33168, 33168, 33168, 33168, 33168, 33168, + 33168, 33168, 33168, 33168, 33168, 33168, 33168, 33168, + 33168, 33168, 33168, 33168, 33168, 33168, 33168, 33424, 0, 0, 0, 0, 0, 0, 0, 0, @@ -979,575 +979,555 @@ static const unsigned short uc_property_trie[] = { 142, 142, 142, 142, 142, 142, 142, 142, 142, 143, 143, 144, 144, 144, 144, 144, - 142, 142, 42, 42, 42, 42, 143, 143, - 145, 143, 143, 143, 145, 143, 143, 143, + 145, 145, 42, 42, 42, 42, 143, 143, + 146, 143, 143, 143, 146, 143, 143, 143, 144, 144, 42, 42, 42, 42, 42, 42, - 42, 42, 42, 42, 42, 42, 42, 146, + 42, 42, 42, 42, 42, 42, 42, 147, 142, 142, 142, 142, 142, 42, 42, 42, - 42, 42, 147, 147, 148, 147, 149, 150, - 150, 150, 150, 150, 150, 150, 150, 150, - 150, 150, 150, 150, 150, 150, 150, 150, - - 151, 151, 151, 151, 151, 151, 151, 151, - 151, 151, 151, 151, 151, 151, 151, 151, - 151, 151, 151, 151, 151, 152, 153, 153, - 153, 153, 152, 154, 153, 153, 153, 153, - - 153, 155, 155, 153, 153, 153, 153, 155, - 155, 153, 153, 153, 153, 153, 153, 153, - 153, 153, 153, 153, 156, 156, 156, 156, - 156, 153, 153, 153, 153, 151, 151, 151, - - 151, 151, 151, 151, 151, 157, 158, 159, - 159, 159, 158, 158, 158, 159, 159, 160, - 161, 161, 161, 162, 162, 162, 162, 161, - 163, 164, 164, 165, 166, 167, 167, 168, - - 169, 169, 170, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, - 172, 173, 172, 173, 143, 174, 172, 173, - 175, 175, 176, 177, 177, 177, 34, 175, - - 175, 175, 175, 175, 174, 42, 178, 61, - 179, 179, 179, 175, 180, 175, 181, 181, - 182, 183, 183, 183, 183, 183, 183, 183, - 183, 183, 183, 183, 183, 183, 183, 183, - - 183, 183, 175, 183, 183, 183, 183, 183, - 183, 183, 183, 183, 184, 185, 185, 185, - 186, 187, 187, 187, 187, 187, 187, 187, - 187, 187, 187, 187, 187, 187, 187, 187, - - 187, 187, 188, 187, 187, 187, 187, 187, - 187, 187, 187, 187, 189, 190, 190, 191, - 192, 193, 194, 194, 194, 195, 196, 197, - 198, 199, 200, 201, 200, 201, 200, 201, - - 200, 201, 67, 68, 67, 68, 67, 68, - 67, 68, 67, 68, 67, 68, 67, 68, - 202, 203, 204, 205, 206, 207, 208, 209, - 210, 211, 209, 210, 212, 213, 213, 213, + 42, 42, 148, 148, 149, 150, 151, 152, + 152, 152, 152, 152, 152, 152, 152, 152, + 152, 152, 152, 152, 152, 152, 152, 152, + + 153, 153, 153, 153, 153, 153, 153, 153, + 153, 153, 153, 153, 153, 153, 153, 153, + 153, 153, 153, 153, 153, 154, 155, 155, + 155, 155, 154, 156, 155, 155, 155, 155, + + 155, 157, 157, 155, 155, 155, 155, 157, + 157, 155, 155, 155, 155, 155, 155, 155, + 155, 155, 155, 155, 158, 158, 158, 158, + 158, 155, 155, 155, 155, 153, 153, 153, + + 153, 153, 153, 153, 153, 159, 160, 161, + 161, 161, 160, 160, 160, 161, 161, 162, + 163, 163, 163, 164, 164, 164, 164, 163, + 165, 166, 166, 167, 168, 169, 169, 170, + + 171, 171, 172, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, + 174, 175, 174, 175, 143, 176, 174, 175, + 177, 177, 178, 179, 179, 179, 34, 177, + + 177, 177, 177, 177, 176, 42, 180, 61, + 181, 181, 181, 177, 182, 177, 183, 183, + 184, 185, 185, 185, 185, 185, 185, 185, + 185, 185, 185, 185, 185, 185, 185, 185, + + 185, 185, 177, 185, 185, 185, 185, 185, + 185, 185, 185, 185, 186, 187, 187, 187, + 188, 189, 189, 189, 189, 189, 189, 189, + 189, 189, 189, 189, 189, 189, 189, 189, + + 189, 189, 190, 189, 189, 189, 189, 189, + 189, 189, 189, 189, 191, 192, 192, 193, + 194, 195, 196, 196, 196, 197, 198, 199, + 200, 201, 202, 203, 202, 203, 202, 203, + + 202, 203, 204, 205, 204, 205, 204, 205, + 204, 205, 204, 205, 204, 205, 204, 205, + 206, 207, 208, 209, 210, 211, 212, 213, + 214, 215, 213, 214, 216, 217, 217, 217, - 214, 215, 215, 215, 215, 215, 215, 215, - 215, 215, 215, 215, 215, 214, 215, 215, - 216, 216, 216, 216, 216, 216, 216, 216, - 216, 216, 216, 216, 216, 216, 216, 216, - - 216, 216, 216, 216, 216, 216, 216, 216, - 216, 216, 216, 216, 216, 216, 216, 216, - 217, 217, 217, 217, 217, 217, 217, 217, - 217, 217, 217, 217, 217, 217, 217, 217, - - 217, 217, 217, 217, 217, 217, 217, 217, - 217, 217, 217, 217, 217, 217, 217, 217, 218, 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, 218, 219, 219, + 220, 220, 220, 220, 220, 220, 220, 220, + 220, 220, 220, 220, 220, 220, 220, 220, + + 220, 220, 220, 220, 220, 220, 220, 220, + 220, 220, 220, 220, 220, 220, 220, 220, + 221, 221, 221, 221, 221, 221, 221, 221, + 221, 221, 221, 221, 221, 221, 221, 221, + + 221, 221, 221, 221, 221, 221, 221, 221, + 221, 221, 221, 221, 221, 221, 221, 221, + 222, 223, 223, 223, 223, 223, 223, 223, + 223, 223, 223, 223, 223, 222, 223, 223, + + 224, 225, 224, 225, 224, 225, 224, 225, + 224, 225, 224, 225, 224, 225, 224, 225, + 224, 225, 224, 225, 224, 225, 224, 225, + 224, 225, 224, 225, 224, 225, 224, 225, + + 224, 225, 226, 227, 227, 153, 153, 228, + 229, 229, 230, 231, 232, 233, 232, 233, + 224, 225, 224, 225, 224, 225, 224, 225, + 224, 225, 224, 225, 224, 225, 224, 225, + + 234, 224, 225, 224, 225, 230, 231, 224, + 225, 230, 231, 224, 225, 230, 231, 235, + 224, 225, 224, 225, 224, 225, 224, 225, + 224, 225, 224, 225, 224, 225, 224, 225, + + 224, 225, 224, 225, 224, 225, 224, 225, + 224, 225, 224, 225, 232, 233, 224, 225, + 224, 225, 224, 225, 224, 225, 236, 237, + 224, 225, 238, 239, 238, 239, 238, 239, + + 230, 231, 230, 231, 230, 231, 230, 231, + 230, 231, 230, 231, 230, 231, 230, 231, + 238, 239, 238, 239, 240, 241, 240, 241, + 240, 241, 240, 241, 240, 241, 240, 241, + + 240, 241, 240, 241, 242, 243, 244, 245, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 246, 246, 246, 246, 246, 246, 246, + 246, 246, 246, 246, 246, 246, 246, 246, + + 246, 246, 246, 246, 246, 246, 246, 246, + 246, 246, 246, 246, 246, 246, 246, 246, + 246, 246, 246, 246, 246, 246, 246, 177, + 177, 247, 248, 248, 249, 250, 249, 248, + + 177, 251, 251, 251, 251, 251, 251, 251, + 251, 251, 251, 251, 251, 251, 251, 251, + 251, 251, 251, 251, 251, 251, 251, 251, + 251, 251, 251, 251, 251, 251, 251, 251, + + 251, 251, 251, 251, 251, 251, 251, 252, + 177, 253, 254, 177, 177, 177, 177, 255, + 256, 257, 258, 258, 258, 258, 257, 258, + 258, 258, 259, 257, 258, 258, 258, 258, + + 258, 258, 260, 257, 257, 257, 257, 257, + 258, 258, 257, 258, 258, 259, 261, 258, + 262, 263, 264, 265, 266, 267, 268, 269, + 270, 271, 272, 273, 274, 275, 276, 277, + + 278, 279, 280, 278, 258, 260, 281, 282, + 256, 256, 256, 256, 256, 256, 256, 256, + 283, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 283, 283, 283, 283, 283, 283, + + 283, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 283, 256, 256, 256, 256, 256, + 283, 283, 283, 284, 285, 256, 256, 256, + 256, 256, 256, 256, 256, 256, 256, 256, + + 286, 286, 286, 286, 287, 288, 289, 289, + 290, 291, 291, 292, 19, 293, 294, 294, + 295, 295, 295, 295, 295, 295, 296, 296, + 297, 298, 299, 300, 288, 288, 301, 302, + + 303, 304, 305, 305, 305, 305, 306, 305, + 306, 305, 306, 306, 306, 306, 306, 305, + 305, 305, 305, 306, 306, 306, 306, 306, + 306, 306, 306, 307, 307, 307, 307, 307, + + 308, 306, 306, 306, 306, 306, 306, 306, + 305, 306, 306, 309, 310, 311, 312, 313, + 314, 315, 316, 160, 160, 161, 317, 295, + 295, 318, 318, 318, 319, 318, 318, 320, + + 321, 322, 323, 324, 325, 326, 327, 328, + 329, 330, 331, 332, 333, 334, 335, 335, + 336, 305, 305, 305, 304, 305, 305, 305, + 306, 306, 306, 306, 306, 306, 306, 306, + + 306, 306, 306, 306, 306, 306, 306, 306, + 305, 305, 305, 305, 305, 305, 305, 305, + 305, 305, 305, 305, 305, 305, 305, 305, + 305, 305, 306, 306, 306, 306, 306, 306, + + 306, 306, 306, 306, 306, 306, 306, 306, + 306, 306, 306, 306, 306, 306, 306, 306, + 306, 306, 306, 306, 306, 306, 306, 306, + 337, 337, 306, 306, 306, 306, 306, 337, + + 305, 306, 306, 305, 305, 305, 305, 305, + 305, 305, 305, 305, 306, 305, 306, 338, + 306, 306, 305, 305, 339, 305, 340, 340, + 340, 340, 340, 340, 340, 341, 342, 340, + + 340, 340, 340, 343, 340, 344, 344, 340, + 340, 342, 343, 340, 340, 343, 345, 345, + 346, 347, 348, 349, 350, 351, 352, 353, + 354, 355, 337, 337, 337, 356, 356, 357, + + 358, 358, 358, 359, 359, 359, 359, 359, + 359, 359, 359, 359, 359, 359, 288, 360, + 361, 362, 363, 363, 363, 361, 361, 361, + 361, 361, 363, 363, 363, 363, 361, 363, + + 363, 363, 363, 363, 363, 363, 363, 363, + 361, 363, 361, 363, 361, 364, 364, 365, + 366, 367, 366, 366, 367, 366, 366, 367, + 367, 367, 366, 367, 367, 366, 367, 366, + + 366, 366, 367, 366, 367, 366, 367, 366, + 367, 366, 366, 288, 288, 365, 364, 364, + 368, 368, 368, 368, 368, 368, 368, 368, + 368, 369, 369, 369, 368, 368, 368, 368, - 220, 221, 220, 221, 220, 221, 220, 221, - 220, 221, 220, 221, 220, 221, 220, 221, - 220, 221, 220, 221, 220, 221, 220, 221, - 220, 221, 220, 221, 220, 221, 220, 221, - - 220, 221, 222, 223, 223, 151, 151, 224, - 225, 225, 226, 227, 228, 229, 228, 229, - 220, 221, 220, 221, 220, 221, 220, 221, - 220, 221, 220, 221, 220, 221, 220, 221, - - 230, 220, 221, 220, 221, 226, 227, 220, - 221, 226, 227, 220, 221, 226, 227, 231, - 220, 221, 220, 221, 220, 221, 220, 221, - 220, 221, 220, 221, 220, 221, 220, 221, - - 220, 221, 220, 221, 220, 221, 220, 221, - 220, 221, 220, 221, 228, 229, 220, 221, - 220, 221, 220, 221, 220, 221, 232, 233, - 220, 221, 234, 235, 234, 235, 234, 235, - - 226, 227, 226, 227, 226, 227, 226, 227, - 226, 227, 226, 227, 226, 227, 226, 227, - 234, 235, 234, 235, 236, 237, 236, 237, - 236, 237, 236, 237, 236, 237, 236, 237, - - 236, 237, 236, 237, 238, 239, 240, 241, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 242, 242, 242, 242, 242, 242, 242, - 242, 242, 242, 242, 242, 242, 242, 242, - - 242, 242, 242, 242, 242, 242, 242, 242, - 242, 242, 242, 242, 242, 242, 242, 242, - 242, 242, 242, 242, 242, 242, 242, 175, - 175, 243, 244, 244, 245, 246, 245, 244, - - 175, 247, 247, 247, 247, 247, 247, 247, - 247, 247, 247, 247, 247, 247, 247, 247, - 247, 247, 247, 247, 247, 247, 247, 247, - 247, 247, 247, 247, 247, 247, 247, 247, - - 247, 247, 247, 247, 247, 247, 247, 248, - 175, 249, 250, 175, 175, 175, 175, 251, - 252, 253, 254, 254, 254, 254, 253, 254, - 254, 254, 255, 253, 254, 254, 254, 254, - - 254, 254, 256, 253, 253, 253, 253, 253, - 254, 254, 253, 254, 254, 255, 257, 254, - 258, 259, 260, 261, 262, 263, 264, 265, - 266, 267, 268, 269, 270, 271, 272, 273, - - 274, 275, 276, 274, 254, 256, 277, 278, - 252, 252, 252, 252, 252, 252, 252, 252, - 279, 279, 279, 279, 279, 279, 279, 279, - 279, 279, 279, 279, 279, 279, 279, 279, - - 279, 279, 279, 279, 279, 279, 279, 279, - 279, 279, 279, 252, 252, 252, 252, 252, - 279, 279, 279, 280, 281, 252, 252, 252, - 252, 252, 252, 252, 252, 252, 252, 252, - - 282, 282, 282, 282, 283, 284, 285, 285, - 286, 287, 287, 288, 19, 289, 290, 290, - 291, 291, 291, 291, 291, 291, 292, 292, - 293, 294, 295, 296, 284, 284, 297, 298, - - 299, 300, 301, 301, 301, 301, 302, 301, - 302, 301, 302, 302, 302, 302, 302, 301, - 301, 301, 301, 302, 302, 302, 302, 302, - 302, 302, 302, 303, 303, 303, 303, 303, - - 304, 302, 302, 302, 302, 302, 302, 302, - 301, 302, 302, 305, 306, 307, 308, 309, - 310, 311, 312, 158, 158, 159, 313, 291, - 291, 314, 314, 314, 315, 314, 314, 316, - - 317, 318, 319, 320, 321, 322, 323, 324, - 325, 326, 327, 328, 329, 330, 331, 331, - 332, 301, 301, 301, 300, 301, 301, 301, - 302, 302, 302, 302, 302, 302, 302, 302, - - 302, 302, 302, 302, 302, 302, 302, 302, - 301, 301, 301, 301, 301, 301, 301, 301, - 301, 301, 301, 301, 301, 301, 301, 301, - 301, 301, 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, 302, 302, - 333, 333, 302, 302, 302, 302, 302, 333, - - 301, 302, 302, 301, 301, 301, 301, 301, - 301, 301, 301, 301, 302, 301, 302, 334, - 302, 302, 301, 301, 335, 301, 336, 336, - 336, 336, 336, 336, 336, 337, 338, 336, - - 336, 336, 336, 339, 336, 340, 340, 336, - 336, 338, 339, 336, 336, 339, 341, 341, - 342, 343, 344, 345, 346, 347, 348, 349, - 350, 351, 333, 333, 333, 352, 352, 353, - - 354, 354, 354, 355, 355, 355, 355, 355, - 355, 355, 355, 355, 355, 355, 284, 356, - 357, 358, 359, 359, 359, 357, 357, 357, - 357, 357, 359, 359, 359, 359, 357, 359, - - 359, 359, 359, 359, 359, 359, 359, 359, - 357, 359, 357, 359, 357, 360, 360, 361, - 362, 363, 362, 362, 363, 362, 362, 363, - 363, 363, 362, 363, 363, 362, 363, 362, - - 362, 362, 363, 362, 363, 362, 363, 362, - 363, 362, 362, 284, 284, 361, 360, 360, - 364, 364, 364, 364, 364, 364, 364, 364, - 364, 365, 365, 365, 364, 364, 364, 364, - - 364, 364, 364, 364, 364, 364, 364, 364, - 364, 364, 364, 365, 365, 364, 303, 303, - 303, 366, 303, 366, 366, 303, 303, 303, - 366, 366, 303, 303, 303, 303, 303, 303, - - 367, 367, 367, 367, 367, 367, 367, 367, - 367, 367, 367, 367, 367, 367, 367, 367, - 367, 367, 367, 367, 367, 367, 367, 367, - 367, 367, 367, 367, 367, 367, 367, 367, - - 367, 367, 367, 367, 367, 367, 368, 368, 368, 368, 368, 368, 368, 368, 368, 368, - 368, 369, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, - - 370, 371, 372, 373, 374, 375, 376, 377, - 378, 379, 380, 380, 380, 380, 380, 380, - 380, 380, 380, 380, 380, 380, 380, 380, - 380, 380, 380, 380, 380, 380, 380, 380, - - 380, 380, 380, 380, 380, 380, 380, 380, - 380, 380, 380, 381, 381, 381, 381, 381, - 381, 381, 382, 381, 383, 383, 384, 385, - 386, 387, 388, 252, 252, 252, 252, 252, - - 389, 389, 389, 389, 389, 389, 389, 389, - 389, 389, 389, 389, 389, 389, 389, 389, - 389, 389, 389, 389, 389, 389, 390, 390, - 390, 390, 391, 390, 390, 390, 390, 390, - - 390, 390, 390, 390, 391, 390, 390, 390, - 391, 390, 390, 390, 390, 390, 252, 252, - 392, 392, 392, 392, 392, 392, 392, 392, - 392, 392, 392, 392, 392, 392, 392, 252, - - 393, 394, 394, 394, 394, 394, 393, 394, - 394, 393, 394, 394, 394, 394, 394, 393, - 394, 394, 394, 394, 393, 394, 395, 395, - 395, 396, 396, 396, 252, 252, 397, 252, - - 252, 252, 252, 252, 252, 252, 252, 252, - 252, 252, 252, 252, 252, 252, 252, 252, - 252, 252, 252, 252, 252, 252, 252, 252, - 252, 252, 252, 252, 252, 252, 252, 252, - - 398, 284, 398, 398, 398, 398, 398, 398, - 398, 398, 399, 399, 399, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, - - 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, - - 284, 284, 284, 284, 400, 400, 401, 400, - 400, 401, 400, 400, 400, 401, 401, 401, - 402, 403, 404, 400, 400, 400, 401, 400, - 400, 401, 401, 400, 400, 400, 400, 284, - - 405, 406, 406, 407, 408, 409, 409, 409, - 409, 409, 409, 409, 409, 409, 409, 409, - 409, 409, 409, 409, 409, 409, 409, 409, - 409, 409, 409, 409, 409, 409, 409, 409, - - 409, 409, 409, 409, 409, 409, 409, 409, - 409, 409, 409, 409, 409, 409, 409, 409, - 409, 409, 409, 409, 409, 409, 409, 409, - 409, 409, 410, 411, 412, 409, 407, 407, - - 407, 406, 406, 406, 406, 406, 406, 406, - 406, 407, 407, 407, 407, 413, 414, 411, - 409, 151, 153, 415, 415, 405, 410, 410, - 409, 409, 409, 409, 409, 409, 409, 409, - - 409, 409, 406, 406, 416, 416, 417, 418, - 419, 420, 421, 422, 423, 424, 425, 426, - 427, 428, 429, 430, 430, 430, 430, 430, - 175, 431, 431, 432, 432, 433, 432, 432, - - 175, 434, 435, 435, 175, 436, 436, 436, - 436, 436, 436, 436, 436, 175, 175, 436, - 436, 175, 175, 436, 436, 436, 436, 436, - 436, 436, 436, 436, 436, 436, 436, 436, - - 436, 436, 436, 436, 436, 436, 436, 436, - 436, 175, 436, 436, 436, 436, 436, 436, - 436, 175, 436, 175, 175, 175, 436, 436, - 436, 436, 175, 175, 437, 438, 439, 435, - - 435, 434, 434, 434, 434, 175, 175, 435, - 435, 175, 175, 435, 435, 440, 441, 175, - 175, 175, 175, 175, 175, 175, 175, 439, - 175, 175, 175, 175, 436, 436, 175, 436, - - 436, 436, 434, 434, 175, 175, 442, 443, - 444, 445, 446, 447, 448, 449, 450, 451, - 436, 436, 452, 452, 453, 453, 453, 453, - 453, 454, 455, 456, 175, 175, 175, 175, - - 175, 457, 458, 459, 175, 460, 460, 460, - 460, 460, 460, 175, 175, 175, 175, 460, - 460, 175, 175, 460, 460, 460, 460, 460, - 460, 460, 460, 460, 460, 460, 460, 460, - - 460, 460, 460, 460, 460, 460, 460, 460, - 460, 175, 460, 460, 460, 460, 460, 460, - 460, 175, 460, 460, 175, 460, 460, 175, - 460, 460, 175, 175, 461, 175, 462, 462, - - 462, 458, 458, 175, 175, 175, 175, 458, - 458, 175, 175, 458, 458, 463, 175, 175, - 175, 464, 175, 175, 175, 175, 175, 175, - 175, 460, 460, 460, 460, 175, 460, 175, - - 175, 175, 175, 175, 175, 175, 465, 466, - 467, 468, 469, 470, 471, 472, 473, 474, - 458, 458, 460, 460, 460, 464, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - - 175, 475, 475, 476, 175, 477, 477, 477, - 477, 477, 477, 477, 478, 477, 175, 477, - 477, 477, 175, 477, 477, 477, 477, 477, - 477, 477, 477, 477, 477, 477, 477, 477, - - 477, 477, 477, 477, 477, 477, 477, 477, - 477, 175, 477, 477, 477, 477, 477, 477, - 477, 175, 477, 477, 175, 477, 477, 477, - 477, 477, 175, 175, 479, 477, 476, 476, - - 476, 475, 475, 475, 475, 475, 175, 475, - 475, 476, 175, 476, 476, 480, 175, 175, - 477, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - - 477, 478, 481, 481, 175, 175, 482, 483, - 484, 485, 486, 487, 488, 489, 490, 491, - 492, 493, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - - 175, 494, 495, 495, 175, 496, 496, 496, - 496, 496, 496, 496, 496, 175, 175, 496, - 496, 175, 175, 496, 496, 496, 496, 496, - 496, 496, 496, 496, 496, 496, 496, 496, - - 496, 496, 496, 496, 496, 496, 496, 496, - 496, 175, 496, 496, 496, 496, 496, 496, - 496, 175, 496, 496, 175, 497, 496, 496, - 496, 496, 175, 175, 498, 496, 499, 494, - - 495, 494, 494, 494, 500, 175, 175, 495, - 495, 175, 175, 495, 495, 501, 175, 175, - 175, 175, 175, 175, 175, 175, 494, 499, - 175, 175, 175, 175, 496, 496, 175, 496, - - 496, 496, 500, 500, 175, 175, 502, 503, - 504, 505, 506, 507, 508, 509, 510, 511, - 512, 497, 513, 513, 513, 513, 513, 513, - 175, 175, 175, 175, 175, 175, 175, 175, - - 175, 175, 514, 515, 175, 515, 515, 515, - 515, 515, 515, 175, 175, 175, 515, 515, - 515, 175, 515, 515, 515, 515, 175, 175, - 175, 515, 515, 175, 515, 175, 515, 515, - - 175, 175, 175, 515, 515, 175, 175, 175, - 515, 515, 515, 175, 175, 175, 515, 515, - 515, 515, 515, 515, 515, 515, 516, 515, - 515, 515, 175, 175, 175, 175, 517, 518, - - 514, 518, 518, 175, 175, 175, 518, 518, - 518, 175, 518, 518, 518, 519, 175, 175, - 520, 175, 175, 175, 175, 175, 175, 517, - 175, 175, 175, 175, 175, 175, 175, 175, - - 175, 175, 175, 175, 175, 175, 521, 522, - 523, 524, 525, 526, 527, 528, 529, 530, - 531, 531, 531, 532, 532, 532, 532, 532, - 532, 533, 532, 175, 175, 175, 175, 175, - - 175, 534, 534, 534, 175, 535, 535, 535, - 535, 535, 535, 535, 535, 175, 535, 535, - 535, 175, 535, 535, 535, 535, 535, 535, - 535, 535, 535, 535, 535, 535, 535, 535, - - 535, 535, 535, 535, 535, 535, 535, 535, - 535, 175, 535, 535, 535, 535, 535, 535, - 535, 535, 535, 535, 175, 535, 535, 535, - 535, 535, 175, 175, 175, 536, 537, 537, - - 537, 534, 534, 534, 534, 175, 537, 537, - 537, 175, 537, 537, 537, 538, 175, 175, - 175, 175, 175, 175, 175, 539, 540, 175, - 536, 536, 175, 175, 175, 175, 175, 175, - - 535, 535, 541, 541, 175, 175, 542, 543, - 544, 545, 546, 547, 548, 549, 550, 551, - 175, 175, 175, 175, 175, 175, 175, 175, - 552, 552, 552, 552, 552, 552, 552, 553, - - 175, 175, 554, 554, 175, 555, 555, 555, - 555, 555, 555, 555, 555, 175, 555, 555, - 555, 175, 555, 555, 555, 555, 555, 555, - 555, 555, 555, 555, 555, 555, 555, 555, - - 555, 555, 555, 555, 555, 555, 555, 555, - 555, 175, 555, 555, 555, 555, 555, 555, - 555, 555, 555, 555, 175, 555, 555, 555, - 555, 555, 175, 175, 556, 557, 554, 558, - - 554, 554, 559, 554, 554, 175, 558, 554, - 554, 175, 554, 554, 560, 561, 175, 175, - 175, 175, 175, 175, 175, 559, 559, 175, - 175, 175, 175, 175, 175, 175, 555, 175, - - 555, 555, 562, 562, 175, 175, 563, 564, - 565, 566, 567, 568, 569, 570, 571, 572, - 175, 573, 573, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - - 175, 175, 574, 574, 175, 575, 575, 575, - 575, 575, 575, 575, 575, 175, 575, 575, - 575, 175, 575, 575, 575, 575, 575, 575, - 575, 575, 575, 575, 575, 575, 575, 575, - - 575, 575, 575, 575, 575, 575, 575, 575, - 575, 576, 575, 575, 575, 575, 575, 575, - 575, 575, 575, 575, 575, 575, 575, 575, - 575, 575, 576, 175, 175, 577, 578, 574, - - 574, 579, 579, 579, 580, 175, 574, 574, - 574, 175, 574, 574, 574, 581, 576, 175, - 175, 175, 175, 175, 175, 175, 175, 578, - 175, 175, 175, 175, 175, 175, 175, 175, - - 575, 575, 580, 580, 175, 175, 582, 583, - 584, 585, 586, 587, 588, 589, 590, 591, - 592, 592, 592, 592, 592, 592, 175, 175, - 175, 593, 577, 577, 577, 577, 577, 577, - - 175, 175, 594, 594, 175, 595, 595, 595, - 595, 595, 595, 595, 595, 595, 595, 595, - 595, 595, 595, 595, 595, 595, 595, 175, - 175, 175, 595, 595, 595, 595, 595, 595, - - 595, 595, 595, 595, 595, 595, 595, 595, - 595, 595, 595, 595, 595, 595, 595, 595, - 595, 595, 175, 595, 595, 595, 595, 595, - 595, 595, 595, 595, 175, 595, 175, 175, - - 595, 595, 595, 595, 595, 595, 595, 175, - 175, 175, 596, 175, 175, 175, 175, 597, - 594, 594, 598, 598, 598, 175, 598, 175, - 594, 594, 594, 594, 594, 594, 594, 597, - - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 594, 594, 599, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - - 175, 600, 600, 600, 600, 600, 600, 600, - 600, 600, 600, 600, 600, 600, 600, 600, - 600, 600, 600, 600, 600, 600, 600, 600, - 600, 600, 600, 600, 600, 600, 600, 600, - - 600, 600, 600, 600, 600, 600, 600, 600, - 600, 600, 600, 600, 600, 600, 600, 600, - 600, 601, 600, 602, 601, 601, 601, 601, - 603, 603, 604, 175, 175, 175, 175, 12, - - 600, 600, 600, 600, 600, 600, 605, 601, - 606, 606, 606, 606, 601, 601, 601, 607, - 608, 609, 610, 611, 612, 613, 614, 615, - 616, 617, 618, 618, 175, 175, 175, 175, - - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - - 175, 619, 619, 175, 619, 175, 175, 619, - 619, 175, 619, 175, 175, 619, 175, 175, - 175, 175, 175, 175, 619, 619, 619, 619, - 175, 619, 619, 619, 619, 619, 619, 619, - - 175, 619, 619, 619, 175, 619, 175, 619, - 175, 175, 619, 619, 175, 619, 619, 619, - 619, 620, 619, 621, 620, 620, 620, 620, - 622, 622, 175, 620, 620, 619, 175, 175, - - 619, 619, 619, 619, 619, 175, 623, 175, - 624, 624, 624, 624, 620, 620, 175, 175, - 625, 626, 627, 628, 629, 630, 631, 632, - 633, 634, 175, 175, 619, 619, 635, 635, - - 636, 637, 637, 637, 638, 639, 638, 638, - 640, 638, 638, 641, 640, 642, 642, 642, - 642, 642, 640, 643, 642, 643, 643, 643, - 644, 644, 643, 643, 643, 643, 643, 643, - - 645, 646, 647, 648, 649, 650, 651, 652, - 653, 654, 655, 655, 655, 655, 655, 655, - 655, 655, 655, 655, 656, 644, 643, 644, - 643, 657, 658, 659, 658, 659, 660, 660, - - 636, 636, 636, 636, 636, 636, 636, 636, - 175, 636, 636, 636, 636, 636, 636, 636, - 636, 636, 636, 636, 636, 636, 636, 636, - 636, 636, 636, 636, 636, 636, 636, 636, - - 636, 636, 636, 636, 636, 636, 636, 636, - 636, 636, 661, 662, 662, 175, 175, 175, - 175, 663, 664, 665, 666, 665, 665, 665, - 665, 665, 664, 664, 664, 664, 665, 667, - - 664, 665, 668, 668, 669, 641, 668, 668, - 636, 636, 636, 636, 670, 671, 671, 671, - 665, 665, 665, 665, 665, 665, 672, 665, - 175, 665, 665, 665, 665, 665, 665, 665, - - 665, 665, 665, 665, 665, 665, 665, 665, - 665, 665, 665, 665, 665, 665, 672, 672, - 672, 665, 665, 665, 665, 665, 665, 665, - 672, 665, 672, 672, 672, 175, 673, 673, - - 674, 674, 674, 674, 674, 674, 675, 674, - 674, 674, 674, 674, 674, 175, 676, 674, - 677, 677, 678, 679, 680, 681, 681, 681, - 681, 682, 682, 175, 175, 175, 175, 175, - - 683, 683, 683, 683, 683, 683, 683, 683, - 683, 683, 683, 683, 683, 683, 683, 683, - 683, 683, 683, 683, 683, 683, 683, 683, - 683, 683, 683, 683, 683, 683, 683, 683, - - 683, 683, 684, 683, 683, 683, 683, 683, - 684, 683, 683, 685, 686, 687, 687, 687, - 687, 688, 687, 689, 689, 689, 687, 690, - 686, 691, 692, 693, 693, 689, 689, 684, - - 694, 695, 696, 697, 698, 699, 700, 701, - 702, 703, 704, 704, 705, 705, 705, 705, - 683, 683, 683, 683, 683, 683, 688, 688, - 687, 687, 684, 684, 684, 684, 689, 689, - - 689, 684, 685, 685, 685, 684, 684, 685, - 685, 685, 685, 685, 685, 685, 684, 684, - 684, 689, 689, 689, 689, 684, 684, 684, - 684, 684, 684, 684, 684, 684, 684, 684, - - 684, 684, 689, 685, 693, 689, 689, 685, - 685, 685, 685, 685, 685, 706, 684, 685, - 707, 708, 709, 710, 711, 712, 713, 714, - 715, 716, 717, 717, 717, 718, 719, 719, - - 720, 720, 720, 720, 720, 720, 720, 720, - 720, 720, 720, 720, 720, 720, 720, 720, - 720, 720, 720, 720, 720, 720, 720, 720, - 720, 720, 720, 720, 720, 720, 720, 720, - - 720, 720, 720, 720, 720, 720, 175, 721, - 175, 175, 175, 175, 175, 721, 175, 175, - 722, 722, 722, 722, 722, 722, 722, 722, - 722, 722, 722, 722, 722, 722, 722, 722, - - 722, 722, 722, 722, 722, 722, 722, 722, - 722, 722, 722, 722, 722, 722, 722, 722, - 722, 722, 722, 722, 722, 722, 722, 723, - 723, 724, 724, 725, 726, 727, 727, 727, - - 728, 728, 728, 728, 728, 728, 728, 728, - 728, 728, 728, 728, 728, 728, 728, 728, - 728, 728, 728, 728, 728, 728, 728, 728, - 728, 728, 728, 728, 728, 728, 728, 728, - - 728, 728, 728, 728, 728, 728, 728, 728, - 728, 728, 728, 728, 728, 728, 728, 728, - 728, 728, 728, 728, 728, 728, 728, 728, - 728, 728, 729, 729, 729, 729, 729, 728, - - 730, 730, 730, 730, 730, 730, 730, 730, - 730, 730, 730, 730, 730, 730, 730, 730, - 730, 730, 730, 730, 730, 730, 730, 730, - 730, 730, 730, 730, 730, 730, 730, 730, - - 730, 730, 730, 731, 731, 731, 731, 731, - 732, 732, 732, 732, 732, 732, 732, 732, - 732, 732, 732, 732, 732, 732, 732, 732, - 732, 732, 732, 732, 732, 732, 732, 732, + 368, 368, 368, 369, 369, 368, 307, 307, + 307, 370, 307, 370, 370, 307, 307, 307, + 370, 370, 307, 307, 307, 307, 307, 307, + + 371, 371, 371, 371, 371, 371, 371, 371, + 371, 371, 371, 371, 371, 371, 371, 371, + 371, 371, 371, 371, 371, 371, 371, 371, + 371, 371, 371, 371, 371, 371, 371, 371, + + 371, 371, 371, 371, 371, 371, 372, 372, + 372, 372, 372, 372, 372, 372, 372, 372, + 372, 373, 288, 288, 288, 288, 288, 288, + 288, 288, 288, 288, 288, 288, 288, 288, + + 374, 375, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 384, 384, 384, 384, 384, + 384, 384, 384, 384, 384, 384, 384, 384, + 384, 384, 384, 384, 384, 384, 384, 384, + + 384, 384, 384, 384, 384, 384, 384, 384, + 384, 384, 384, 385, 385, 385, 385, 385, + 385, 385, 386, 385, 387, 387, 388, 389, + 390, 391, 392, 256, 256, 256, 256, 256, + + 393, 393, 393, 393, 393, 393, 393, 393, + 393, 393, 393, 393, 393, 393, 393, 393, + 393, 393, 393, 393, 393, 393, 394, 394, + 394, 394, 395, 394, 394, 394, 394, 394, + + 394, 394, 394, 394, 395, 394, 394, 394, + 395, 394, 394, 394, 394, 394, 256, 256, + 396, 396, 396, 396, 396, 396, 396, 396, + 396, 396, 396, 396, 396, 396, 396, 256, + + 397, 398, 398, 398, 398, 398, 397, 398, + 398, 397, 398, 398, 398, 398, 398, 397, + 398, 398, 398, 398, 397, 398, 399, 399, + 399, 400, 400, 400, 256, 256, 401, 256, + + 256, 256, 256, 256, 256, 256, 256, 256, + 256, 256, 256, 256, 256, 256, 256, 256, + 256, 256, 256, 256, 256, 256, 256, 256, + 256, 256, 256, 256, 256, 256, 256, 256, + + 402, 288, 402, 402, 402, 402, 402, 402, + 402, 402, 403, 403, 403, 288, 288, 288, + 288, 288, 288, 288, 288, 288, 288, 288, + 288, 288, 288, 288, 288, 288, 288, 288, + + 288, 288, 288, 288, 288, 288, 288, 288, + 288, 288, 288, 288, 288, 288, 288, 288, + 288, 288, 288, 288, 288, 288, 288, 288, + 288, 288, 288, 288, 288, 288, 288, 288, + + 288, 288, 288, 288, 404, 404, 405, 404, + 404, 405, 404, 404, 404, 405, 405, 405, + 406, 407, 408, 404, 404, 404, 405, 404, + 404, 405, 405, 404, 404, 404, 404, 288, + + 409, 410, 410, 411, 412, 413, 413, 413, + 413, 413, 413, 413, 413, 413, 413, 413, + 413, 413, 413, 413, 413, 413, 413, 413, + 413, 413, 413, 413, 413, 413, 413, 413, + + 413, 413, 413, 413, 413, 413, 413, 413, + 413, 413, 413, 413, 413, 413, 413, 413, + 413, 413, 413, 413, 413, 413, 413, 413, + 413, 413, 414, 415, 416, 413, 411, 411, + + 411, 410, 410, 410, 410, 410, 410, 410, + 410, 411, 411, 411, 411, 417, 418, 415, + 413, 153, 155, 419, 419, 409, 414, 414, + 413, 413, 413, 413, 413, 413, 413, 413, + + 413, 413, 410, 410, 420, 420, 421, 422, + 423, 424, 425, 426, 427, 428, 429, 430, + 431, 432, 433, 434, 434, 434, 434, 434, + 177, 435, 435, 436, 436, 437, 436, 436, + + 177, 438, 439, 439, 177, 440, 440, 440, + 440, 440, 440, 440, 440, 177, 177, 440, + 440, 177, 177, 440, 440, 440, 440, 440, + 440, 440, 440, 440, 440, 440, 440, 440, + + 440, 440, 440, 440, 440, 440, 440, 440, + 440, 177, 440, 440, 440, 440, 440, 440, + 440, 177, 440, 177, 177, 177, 440, 440, + 440, 440, 177, 177, 441, 442, 443, 439, + + 439, 438, 438, 438, 438, 177, 177, 439, + 439, 177, 177, 439, 439, 444, 445, 177, + 177, 177, 177, 177, 177, 177, 177, 443, + 177, 177, 177, 177, 440, 440, 177, 440, + + 440, 440, 438, 438, 177, 177, 446, 447, + 448, 449, 450, 451, 452, 453, 454, 455, + 440, 440, 456, 456, 457, 457, 457, 457, + 457, 458, 459, 460, 177, 177, 177, 177, + + 177, 461, 462, 463, 177, 464, 464, 464, + 464, 464, 464, 177, 177, 177, 177, 464, + 464, 177, 177, 464, 464, 464, 464, 464, + 464, 464, 464, 464, 464, 464, 464, 464, + + 464, 464, 464, 464, 464, 464, 464, 464, + 464, 177, 464, 464, 464, 464, 464, 464, + 464, 177, 464, 464, 177, 464, 464, 177, + 464, 464, 177, 177, 465, 177, 466, 466, + + 466, 462, 462, 177, 177, 177, 177, 462, + 462, 177, 177, 462, 462, 467, 177, 177, + 177, 468, 177, 177, 177, 177, 177, 177, + 177, 464, 464, 464, 464, 177, 464, 177, + + 177, 177, 177, 177, 177, 177, 469, 470, + 471, 472, 473, 474, 475, 476, 477, 478, + 462, 462, 464, 464, 464, 468, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + + 177, 479, 479, 480, 177, 481, 481, 481, + 481, 481, 481, 481, 482, 481, 177, 481, + 481, 481, 177, 481, 481, 481, 481, 481, + 481, 481, 481, 481, 481, 481, 481, 481, + + 481, 481, 481, 481, 481, 481, 481, 481, + 481, 177, 481, 481, 481, 481, 481, 481, + 481, 177, 481, 481, 177, 481, 481, 481, + 481, 481, 177, 177, 483, 481, 480, 480, + + 480, 479, 479, 479, 479, 479, 177, 479, + 479, 480, 177, 480, 480, 484, 177, 177, + 481, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + + 481, 482, 485, 485, 177, 177, 486, 487, + 488, 489, 490, 491, 492, 493, 494, 495, + 496, 497, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + + 177, 498, 499, 499, 177, 500, 500, 500, + 500, 500, 500, 500, 500, 177, 177, 500, + 500, 177, 177, 500, 500, 500, 500, 500, + 500, 500, 500, 500, 500, 500, 500, 500, + + 500, 500, 500, 500, 500, 500, 500, 500, + 500, 177, 500, 500, 500, 500, 500, 500, + 500, 177, 500, 500, 177, 501, 500, 500, + 500, 500, 177, 177, 502, 500, 503, 498, + + 499, 498, 498, 498, 504, 177, 177, 499, + 499, 177, 177, 499, 499, 505, 177, 177, + 177, 177, 177, 177, 177, 177, 498, 503, + 177, 177, 177, 177, 500, 500, 177, 500, + + 500, 500, 504, 504, 177, 177, 506, 507, + 508, 509, 510, 511, 512, 513, 514, 515, + 516, 501, 517, 517, 517, 517, 517, 517, + 177, 177, 177, 177, 177, 177, 177, 177, + + 177, 177, 518, 519, 177, 519, 519, 519, + 519, 519, 519, 177, 177, 177, 519, 519, + 519, 177, 519, 519, 519, 519, 177, 177, + 177, 519, 519, 177, 519, 177, 519, 519, + + 177, 177, 177, 519, 519, 177, 177, 177, + 519, 519, 519, 177, 177, 177, 519, 519, + 519, 519, 519, 519, 519, 519, 520, 519, + 519, 519, 177, 177, 177, 177, 521, 522, + + 518, 522, 522, 177, 177, 177, 522, 522, + 522, 177, 522, 522, 522, 523, 177, 177, + 524, 177, 177, 177, 177, 177, 177, 521, + 177, 177, 177, 177, 177, 177, 177, 177, + + 177, 177, 177, 177, 177, 177, 525, 526, + 527, 528, 529, 530, 531, 532, 533, 534, + 535, 535, 535, 536, 536, 536, 536, 536, + 536, 537, 536, 177, 177, 177, 177, 177, + + 177, 538, 538, 538, 177, 539, 539, 539, + 539, 539, 539, 539, 539, 177, 539, 539, + 539, 177, 539, 539, 539, 539, 539, 539, + 539, 539, 539, 539, 539, 539, 539, 539, + + 539, 539, 539, 539, 539, 539, 539, 539, + 539, 177, 539, 539, 539, 539, 539, 539, + 539, 539, 539, 539, 177, 539, 539, 539, + 539, 539, 177, 177, 177, 540, 541, 541, + + 541, 538, 538, 538, 538, 177, 541, 541, + 541, 177, 541, 541, 541, 542, 177, 177, + 177, 177, 177, 177, 177, 543, 544, 177, + 540, 540, 177, 177, 177, 177, 177, 177, + + 539, 539, 545, 545, 177, 177, 546, 547, + 548, 549, 550, 551, 552, 553, 554, 555, + 177, 177, 177, 177, 177, 177, 177, 177, + 556, 556, 556, 556, 556, 556, 556, 557, + + 177, 177, 558, 558, 177, 559, 559, 559, + 559, 559, 559, 559, 559, 177, 559, 559, + 559, 177, 559, 559, 559, 559, 559, 559, + 559, 559, 559, 559, 559, 559, 559, 559, + + 559, 559, 559, 559, 559, 559, 559, 559, + 559, 177, 559, 559, 559, 559, 559, 559, + 559, 559, 559, 559, 177, 559, 559, 559, + 559, 559, 177, 177, 560, 561, 558, 562, + + 558, 558, 563, 558, 558, 177, 562, 558, + 558, 177, 558, 558, 564, 565, 177, 177, + 177, 177, 177, 177, 177, 563, 563, 177, + 177, 177, 177, 177, 177, 177, 559, 177, + + 559, 559, 566, 566, 177, 177, 567, 568, + 569, 570, 571, 572, 573, 574, 575, 576, + 177, 577, 577, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + + 177, 177, 578, 578, 177, 579, 579, 579, + 579, 579, 579, 579, 579, 177, 579, 579, + 579, 177, 579, 579, 579, 579, 579, 579, + 579, 579, 579, 579, 579, 579, 579, 579, + + 579, 579, 579, 579, 579, 579, 579, 579, + 579, 580, 579, 579, 579, 579, 579, 579, + 579, 579, 579, 579, 579, 579, 579, 579, + 579, 579, 580, 177, 177, 581, 582, 578, + + 578, 583, 583, 583, 584, 177, 578, 578, + 578, 177, 578, 578, 578, 585, 580, 177, + 177, 177, 177, 177, 177, 177, 177, 582, + 177, 177, 177, 177, 177, 177, 177, 177, + + 579, 579, 584, 584, 177, 177, 586, 587, + 588, 589, 590, 591, 592, 593, 594, 595, + 596, 596, 596, 596, 596, 596, 177, 177, + 177, 597, 581, 581, 581, 581, 581, 581, + + 177, 177, 598, 598, 177, 599, 599, 599, + 599, 599, 599, 599, 599, 599, 599, 599, + 599, 599, 599, 599, 599, 599, 599, 177, + 177, 177, 599, 599, 599, 599, 599, 599, + + 599, 599, 599, 599, 599, 599, 599, 599, + 599, 599, 599, 599, 599, 599, 599, 599, + 599, 599, 177, 599, 599, 599, 599, 599, + 599, 599, 599, 599, 177, 599, 177, 177, + + 599, 599, 599, 599, 599, 599, 599, 177, + 177, 177, 600, 177, 177, 177, 177, 601, + 598, 598, 602, 602, 602, 177, 602, 177, + 598, 598, 598, 598, 598, 598, 598, 601, + + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 598, 598, 603, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + + 177, 604, 604, 604, 604, 604, 604, 604, + 604, 604, 604, 604, 604, 604, 604, 604, + 604, 604, 604, 604, 604, 604, 604, 604, + 604, 604, 604, 604, 604, 604, 604, 604, + + 604, 604, 604, 604, 604, 604, 604, 604, + 604, 604, 604, 604, 604, 604, 604, 604, + 604, 605, 604, 606, 605, 605, 605, 605, + 607, 607, 608, 177, 177, 177, 177, 12, + + 604, 604, 604, 604, 604, 604, 609, 605, + 610, 610, 610, 610, 605, 605, 605, 611, + 612, 613, 614, 615, 616, 617, 618, 619, + 620, 621, 622, 622, 177, 177, 177, 177, + + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + + 177, 623, 623, 177, 623, 177, 177, 623, + 623, 177, 623, 177, 177, 623, 177, 177, + 177, 177, 177, 177, 623, 623, 623, 623, + 177, 623, 623, 623, 623, 623, 623, 623, + + 177, 623, 623, 623, 177, 623, 177, 623, + 177, 177, 623, 623, 177, 623, 623, 623, + 623, 624, 623, 625, 624, 624, 624, 624, + 626, 626, 177, 624, 624, 623, 177, 177, + + 623, 623, 623, 623, 623, 177, 627, 177, + 628, 628, 628, 628, 624, 624, 177, 177, + 629, 630, 631, 632, 633, 634, 635, 636, + 637, 638, 177, 177, 623, 623, 639, 639, + + 640, 641, 641, 641, 642, 643, 642, 642, + 644, 642, 642, 645, 644, 646, 646, 646, + 646, 646, 644, 647, 646, 647, 647, 647, + 648, 648, 647, 647, 647, 647, 647, 647, + + 649, 650, 651, 652, 653, 654, 655, 656, + 657, 658, 659, 659, 659, 659, 659, 659, + 659, 659, 659, 659, 660, 648, 647, 648, + 647, 661, 662, 663, 662, 663, 664, 664, + + 640, 640, 640, 640, 640, 640, 640, 640, + 177, 640, 640, 640, 640, 640, 640, 640, + 640, 640, 640, 640, 640, 640, 640, 640, + 640, 640, 640, 640, 640, 640, 640, 640, + + 640, 640, 640, 640, 640, 640, 640, 640, + 640, 640, 665, 666, 666, 177, 177, 177, + 177, 667, 668, 669, 670, 669, 669, 669, + 669, 669, 668, 668, 668, 668, 669, 671, + + 668, 669, 672, 672, 673, 645, 672, 672, + 640, 640, 640, 640, 674, 675, 675, 675, + 669, 669, 669, 669, 669, 669, 676, 669, + 177, 669, 669, 669, 669, 669, 669, 669, + + 669, 669, 669, 669, 669, 669, 669, 669, + 669, 669, 669, 669, 669, 669, 676, 676, + 676, 669, 669, 669, 669, 669, 669, 669, + 676, 669, 676, 676, 676, 177, 677, 677, + + 678, 678, 678, 678, 678, 678, 679, 678, + 678, 678, 678, 678, 678, 177, 680, 678, + 681, 681, 682, 683, 684, 685, 685, 685, + 685, 686, 686, 177, 177, 177, 177, 177, + + 687, 687, 687, 687, 687, 687, 687, 687, + 687, 687, 687, 687, 687, 687, 687, 687, + 687, 687, 687, 687, 687, 687, 687, 687, + 687, 687, 687, 687, 687, 687, 687, 687, + + 687, 687, 688, 687, 687, 687, 687, 687, + 688, 687, 687, 689, 690, 691, 691, 691, + 691, 692, 691, 693, 693, 693, 691, 694, + 690, 695, 696, 697, 697, 693, 693, 688, + + 698, 699, 700, 701, 702, 703, 704, 705, + 706, 707, 708, 708, 709, 709, 709, 709, + 687, 687, 687, 687, 687, 687, 692, 692, + 691, 691, 688, 688, 688, 688, 693, 693, + + 693, 688, 689, 689, 689, 688, 688, 689, + 689, 689, 689, 689, 689, 689, 688, 688, + 688, 693, 693, 693, 693, 688, 688, 688, + 688, 688, 688, 688, 688, 688, 688, 688, + + 688, 688, 693, 689, 697, 693, 693, 689, + 689, 689, 689, 689, 689, 710, 688, 689, + 711, 712, 713, 714, 715, 716, 717, 718, + 719, 720, 721, 721, 721, 722, 723, 723, + + 724, 724, 724, 724, 724, 724, 724, 724, + 724, 724, 724, 724, 724, 724, 724, 724, + 724, 724, 724, 724, 724, 724, 724, 724, + 724, 724, 724, 724, 724, 724, 724, 724, + + 724, 724, 724, 724, 724, 724, 177, 725, + 177, 177, 177, 177, 177, 725, 177, 177, + 726, 726, 726, 726, 726, 726, 726, 726, + 726, 726, 726, 726, 726, 726, 726, 726, + + 726, 726, 726, 726, 726, 726, 726, 726, + 726, 726, 726, 726, 726, 726, 726, 726, + 726, 726, 726, 726, 726, 726, 726, 727, + 727, 728, 728, 729, 730, 731, 731, 731, 732, 732, 732, 732, 732, 732, 732, 732, 732, 732, 732, 732, 732, 732, 732, 732, @@ -1557,82 +1537,97 @@ static const unsigned short uc_property_trie[] = { 732, 732, 732, 732, 732, 732, 732, 732, 732, 732, 732, 732, 732, 732, 732, 732, 732, 732, 732, 732, 732, 732, 732, 732, - 732, 732, 733, 733, 733, 733, 733, 733, - - 734, 734, 734, 734, 734, 734, 734, 735, - 734, 734, 734, 734, 734, 734, 734, 734, - 734, 734, 734, 734, 734, 734, 734, 734, - 734, 734, 734, 734, 734, 734, 734, 734, - - 734, 734, 734, 734, 734, 734, 734, 734, - 734, 734, 734, 734, 734, 734, 734, 734, - 734, 734, 734, 734, 734, 734, 734, 734, - 734, 734, 734, 734, 734, 734, 734, 734, - - 734, 734, 734, 734, 734, 734, 734, 735, - 734, 175, 734, 734, 734, 734, 175, 175, - 734, 734, 734, 734, 734, 734, 734, 175, - 734, 175, 734, 734, 734, 734, 175, 175, - - 734, 734, 734, 734, 734, 734, 734, 735, - 734, 175, 734, 734, 734, 734, 175, 175, - 734, 734, 734, 734, 734, 734, 734, 734, - 734, 734, 734, 734, 734, 734, 734, 734, - - 734, 734, 734, 734, 734, 734, 734, 734, - 734, 734, 734, 734, 734, 734, 734, 735, - 734, 175, 734, 734, 734, 734, 175, 175, - 734, 734, 734, 734, 734, 734, 734, 175, - - 734, 175, 734, 734, 734, 734, 175, 175, - 734, 734, 734, 734, 734, 734, 734, 735, - 734, 734, 734, 734, 734, 734, 734, 175, - 734, 734, 734, 734, 734, 734, 734, 734, + 732, 732, 733, 733, 733, 733, 733, 732, 734, 734, 734, 734, 734, 734, 734, 734, - 734, 734, 734, 734, 734, 734, 734, 735, 734, 734, 734, 734, 734, 734, 734, 734, 734, 734, 734, 734, 734, 734, 734, 734, - - 734, 734, 734, 734, 734, 734, 734, 734, - 734, 734, 734, 734, 734, 734, 734, 735, - 734, 175, 734, 734, 734, 734, 175, 175, - 734, 734, 734, 734, 734, 734, 734, 735, - - 734, 734, 734, 734, 734, 734, 734, 735, 734, 734, 734, 734, 734, 734, 734, 734, - 734, 734, 734, 734, 734, 734, 734, 734, - 734, 734, 734, 175, 175, 736, 736, 737, - - 738, 739, 740, 741, 741, 741, 741, 740, - 740, 742, 743, 744, 745, 746, 747, 748, - 749, 750, 751, 751, 751, 751, 751, 751, - 751, 751, 751, 751, 751, 175, 175, 175, - - 735, 735, 735, 735, 735, 735, 735, 735, - 735, 735, 735, 735, 735, 735, 735, 735, - 752, 752, 752, 752, 752, 752, 752, 752, - 752, 752, 175, 175, 175, 175, 175, 175, - 734, 734, 734, 734, 734, 734, 734, 734, - 734, 734, 734, 734, 734, 734, 734, 734, - 734, 734, 734, 734, 734, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, + 734, 734, 734, 735, 735, 735, 735, 735, + 736, 736, 736, 736, 736, 736, 736, 736, + 736, 736, 736, 736, 736, 736, 736, 736, + 736, 736, 736, 736, 736, 736, 736, 736, + + 736, 736, 736, 736, 736, 736, 736, 736, + 736, 736, 736, 736, 736, 736, 736, 736, + 736, 736, 736, 736, 736, 736, 736, 736, + 736, 736, 736, 736, 736, 736, 736, 736, + + 736, 736, 736, 736, 736, 736, 736, 736, + 736, 736, 736, 736, 736, 736, 736, 736, + 736, 736, 736, 736, 736, 736, 736, 736, + 736, 736, 737, 737, 737, 737, 737, 737, + + 738, 738, 738, 738, 738, 738, 738, 739, + 738, 738, 738, 738, 738, 738, 738, 738, + 738, 738, 738, 738, 738, 738, 738, 738, + 738, 738, 738, 738, 738, 738, 738, 738, + + 738, 738, 738, 738, 738, 738, 738, 738, + 738, 738, 738, 738, 738, 738, 738, 738, + 738, 738, 738, 738, 738, 738, 738, 738, + 738, 738, 738, 738, 738, 738, 738, 738, + + 738, 738, 738, 738, 738, 738, 738, 739, + 738, 177, 738, 738, 738, 738, 177, 177, + 738, 738, 738, 738, 738, 738, 738, 177, + 738, 177, 738, 738, 738, 738, 177, 177, + + 738, 738, 738, 738, 738, 738, 738, 739, + 738, 177, 738, 738, 738, 738, 177, 177, + 738, 738, 738, 738, 738, 738, 738, 738, + 738, 738, 738, 738, 738, 738, 738, 738, + + 738, 738, 738, 738, 738, 738, 738, 738, + 738, 738, 738, 738, 738, 738, 738, 739, + 738, 177, 738, 738, 738, 738, 177, 177, + 738, 738, 738, 738, 738, 738, 738, 177, + + 738, 177, 738, 738, 738, 738, 177, 177, + 738, 738, 738, 738, 738, 738, 738, 739, + 738, 738, 738, 738, 738, 738, 738, 177, + 738, 738, 738, 738, 738, 738, 738, 738, + + 738, 738, 738, 738, 738, 738, 738, 738, + 738, 738, 738, 738, 738, 738, 738, 739, + 738, 738, 738, 738, 738, 738, 738, 738, + 738, 738, 738, 738, 738, 738, 738, 738, + + 738, 738, 738, 738, 738, 738, 738, 738, + 738, 738, 738, 738, 738, 738, 738, 739, + 738, 177, 738, 738, 738, 738, 177, 177, + 738, 738, 738, 738, 738, 738, 738, 739, + + 738, 738, 738, 738, 738, 738, 738, 739, + 738, 738, 738, 738, 738, 738, 738, 738, + 738, 738, 738, 738, 738, 738, 738, 738, + 738, 738, 738, 177, 177, 740, 740, 741, + + 742, 743, 744, 745, 745, 745, 745, 744, + 744, 746, 747, 748, 749, 750, 751, 752, + 753, 754, 755, 755, 755, 755, 755, 755, + 755, 755, 755, 755, 755, 177, 177, 177, + + 739, 739, 739, 739, 739, 739, 739, 739, + 739, 739, 739, 739, 739, 739, 739, 739, + 756, 756, 756, 756, 756, 756, 756, 756, + 756, 756, 177, 177, 177, 177, 177, 177, - 753, 734, 734, 734, 734, 734, 734, 734, - 734, 734, 734, 734, 734, 734, 734, 734, - 734, 734, 734, 734, 734, 734, 734, 734, - 734, 734, 734, 734, 734, 734, 734, 734, + 757, 757, 757, 757, 757, 757, 757, 757, + 757, 757, 757, 757, 757, 757, 757, 757, + 757, 757, 757, 757, 757, 757, 757, 757, + 757, 757, 757, 757, 757, 757, 757, 757, - 734, 734, 734, 734, 734, 734, 734, 734, - 734, 734, 734, 734, 734, 741, 740, 734, - 734, 734, 734, 734, 734, 734, 734, 754, - 754, 754, 754, 754, 754, 754, 754, 754, + 757, 757, 757, 757, 757, 757, 757, 757, + 757, 757, 757, 757, 757, 757, 757, 757, + 757, 757, 757, 757, 757, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, - 755, 756, 756, 756, 756, 756, 756, 756, - 756, 756, 756, 756, 756, 756, 756, 756, - 756, 756, 756, 756, 756, 756, 756, 756, - 756, 756, 756, 757, 758, 175, 175, 175, + 758, 759, 759, 759, 759, 759, 759, 759, + 759, 759, 759, 759, 759, 759, 759, 759, + 759, 759, 759, 759, 759, 759, 759, 759, + 759, 759, 759, 759, 759, 759, 759, 759, 759, 759, 759, 759, 759, 759, 759, 759, 759, 759, 759, 759, 759, 759, 759, 759, @@ -1640,372 +1635,392 @@ static const unsigned short uc_property_trie[] = { 759, 759, 759, 759, 759, 759, 759, 759, 759, 759, 759, 759, 759, 759, 759, 759, - 759, 759, 759, 739, 739, 739, 760, 760, - 760, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - - 761, 761, 761, 761, 761, 761, 761, 761, - 761, 761, 761, 761, 761, 175, 761, 761, - 761, 761, 762, 762, 763, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - - 761, 761, 761, 761, 761, 761, 761, 761, - 761, 761, 761, 761, 761, 761, 761, 761, - 761, 761, 762, 762, 763, 764, 764, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - - 761, 761, 761, 761, 761, 761, 761, 761, - 761, 761, 761, 761, 761, 761, 761, 761, - 761, 761, 762, 762, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - - 761, 761, 761, 761, 761, 761, 761, 761, - 761, 761, 761, 761, 761, 175, 761, 761, - 761, 175, 762, 762, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - - 765, 765, 765, 765, 765, 765, 765, 765, - 765, 765, 765, 765, 765, 765, 765, 765, - 765, 765, 765, 765, 765, 765, 765, 765, - 765, 765, 765, 765, 765, 765, 765, 765, - - 765, 765, 765, 765, 765, 765, 765, 765, - 765, 765, 765, 765, 765, 765, 765, 765, - 765, 765, 765, 765, 766, 766, 767, 766, - 766, 766, 766, 766, 766, 766, 767, 767, - - 767, 767, 767, 767, 767, 767, 766, 767, - 767, 766, 766, 766, 766, 766, 766, 766, - 766, 766, 768, 766, 769, 769, 770, 771, - 769, 772, 769, 773, 765, 774, 175, 175, - - 775, 776, 777, 778, 779, 780, 781, 782, - 783, 784, 175, 175, 175, 175, 175, 175, - 785, 785, 785, 785, 785, 785, 785, 785, - 785, 785, 175, 175, 175, 175, 175, 175, - - 786, 786, 787, 788, 789, 789, 790, 786, - 787, 788, 786, 791, 791, 791, 792, 175, - 793, 794, 795, 796, 797, 798, 799, 800, - 801, 802, 175, 175, 175, 175, 175, 175, - - 734, 734, 734, 149, 734, 734, 734, 734, - 734, 734, 734, 734, 734, 734, 734, 734, - 734, 734, 734, 734, 734, 734, 734, 734, - 734, 734, 734, 734, 734, 734, 734, 734, - - 734, 734, 734, 734, 734, 734, 734, 734, - 734, 734, 734, 734, 734, 734, 734, 734, - 734, 734, 734, 734, 734, 734, 734, 734, - 175, 175, 175, 175, 175, 175, 175, 175, - - 734, 734, 734, 734, 734, 734, 734, 734, - 734, 803, 804, 175, 175, 175, 175, 175, - 754, 754, 754, 754, 754, 754, 754, 754, - 754, 754, 754, 754, 754, 754, 754, 754, - - 754, 754, 754, 754, 754, 754, 754, 754, - 754, 754, 754, 754, 754, 754, 754, 754, - 754, 754, 754, 754, 754, 754, 754, 754, - 754, 754, 754, 754, 754, 754, 754, 754, - - 754, 754, 754, 754, 754, 754, 754, 754, - 754, 754, 754, 754, 754, 754, 754, 754, - 754, 754, 754, 754, 754, 754, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - - 805, 805, 805, 805, 805, 805, 805, 805, - 805, 805, 805, 805, 805, 805, 805, 805, - 805, 805, 805, 805, 805, 805, 805, 805, - 805, 805, 805, 805, 805, 175, 175, 175, - - 806, 806, 806, 807, 807, 807, 807, 806, - 806, 807, 807, 807, 175, 175, 175, 175, - 807, 807, 806, 807, 807, 807, 807, 807, - 807, 808, 809, 810, 175, 175, 175, 175, - - 811, 175, 175, 175, 812, 812, 813, 814, - 815, 816, 817, 818, 819, 820, 821, 822, - 823, 823, 823, 823, 823, 823, 823, 823, - 823, 823, 823, 823, 823, 823, 823, 823, - - 823, 823, 823, 823, 823, 823, 823, 823, - 823, 823, 823, 823, 823, 823, 175, 175, - 823, 823, 823, 823, 823, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - - 824, 824, 824, 824, 824, 824, 824, 824, - 824, 824, 824, 824, 824, 824, 824, 824, - 824, 824, 824, 824, 824, 824, 824, 824, - 824, 824, 824, 824, 824, 824, 824, 824, - - 824, 824, 824, 824, 824, 824, 824, 824, - 824, 824, 825, 825, 175, 175, 175, 175, - 826, 826, 826, 826, 826, 827, 827, 827, - 826, 826, 827, 826, 826, 826, 826, 826, - - 826, 824, 824, 824, 824, 824, 824, 824, - 826, 826, 175, 175, 175, 175, 175, 175, - 828, 829, 830, 831, 832, 833, 834, 835, - 836, 837, 838, 175, 175, 175, 839, 839, - - 840, 840, 840, 840, 840, 840, 840, 840, - 840, 840, 840, 840, 840, 840, 840, 840, - 840, 840, 840, 840, 840, 840, 840, 840, - 840, 840, 840, 840, 840, 840, 840, 840, - - 735, 735, 735, 735, 735, 735, 735, 735, - 735, 735, 735, 735, 735, 735, 735, 735, - 735, 735, 735, 735, 735, 735, 735, 737, - 841, 842, 842, 842, 175, 175, 738, 738, - - 825, 825, 825, 825, 825, 825, 825, 825, - 825, 825, 825, 825, 825, 825, 825, 825, - 825, 825, 825, 825, 825, 825, 825, 825, - 825, 825, 825, 825, 825, 825, 825, 825, - - 825, 825, 825, 825, 825, 825, 825, 825, - 825, 825, 825, 825, 825, 825, 825, 825, - 825, 825, 825, 825, 825, 843, 844, 843, - 844, 844, 844, 844, 844, 844, 844, 175, - - 845, 846, 844, 846, 846, 844, 844, 844, - 844, 844, 844, 844, 844, 843, 843, 843, - 843, 843, 843, 844, 844, 847, 847, 847, - 847, 847, 847, 847, 847, 175, 175, 848, - + 759, 759, 759, 759, 759, 760, 761, 759, + 759, 759, 759, 759, 759, 759, 759, 762, + 762, 762, 762, 762, 762, 762, 762, 762, + + 763, 764, 764, 764, 764, 764, 764, 764, + 764, 764, 764, 764, 764, 764, 764, 764, + 764, 764, 764, 764, 764, 764, 764, 764, + 764, 764, 764, 765, 766, 177, 177, 177, + + 767, 767, 767, 767, 767, 767, 767, 767, + 767, 767, 767, 767, 767, 767, 767, 767, + 767, 767, 767, 767, 767, 767, 767, 767, + 767, 767, 767, 767, 767, 767, 767, 767, + + 767, 767, 767, 767, 767, 767, 767, 767, + 767, 767, 767, 768, 768, 768, 769, 769, + 769, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + + 770, 770, 770, 770, 770, 770, 770, 770, + 770, 770, 770, 770, 770, 177, 770, 770, + 770, 770, 771, 771, 772, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + + 773, 773, 773, 773, 773, 773, 773, 773, + 773, 773, 773, 773, 773, 773, 773, 773, + 773, 773, 774, 774, 775, 776, 776, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + + 777, 777, 777, 777, 777, 777, 777, 777, + 777, 777, 777, 777, 777, 777, 777, 777, + 777, 777, 778, 778, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + + 779, 779, 779, 779, 779, 779, 779, 779, + 779, 779, 779, 779, 779, 177, 779, 779, + 779, 177, 780, 780, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + + 781, 781, 781, 781, 781, 781, 781, 781, + 781, 781, 781, 781, 781, 781, 781, 781, + 781, 781, 781, 781, 781, 781, 781, 781, + 781, 781, 781, 781, 781, 781, 781, 781, + + 781, 781, 781, 781, 781, 781, 781, 781, + 781, 781, 781, 781, 781, 781, 781, 781, + 781, 781, 781, 781, 782, 782, 783, 782, + 782, 782, 782, 782, 782, 782, 783, 783, + + 783, 783, 783, 783, 783, 783, 782, 783, + 783, 782, 782, 782, 782, 782, 782, 782, + 782, 782, 784, 782, 785, 785, 786, 787, + 785, 788, 785, 789, 781, 790, 177, 177, + + 791, 792, 793, 794, 795, 796, 797, 798, + 799, 800, 177, 177, 177, 177, 177, 177, + 801, 801, 801, 801, 801, 801, 801, 801, + 801, 801, 177, 177, 177, 177, 177, 177, + + 802, 802, 803, 804, 805, 806, 807, 802, + 808, 809, 802, 810, 810, 810, 811, 177, + 812, 813, 814, 815, 816, 817, 818, 819, + 820, 821, 177, 177, 177, 177, 177, 177, + + 822, 822, 822, 822, 822, 822, 822, 822, + 822, 822, 822, 822, 822, 822, 822, 822, + 822, 822, 822, 822, 822, 822, 822, 822, + 822, 822, 822, 822, 822, 822, 822, 822, + + 822, 822, 822, 823, 822, 822, 822, 822, + 822, 822, 822, 822, 822, 822, 822, 822, + 822, 822, 822, 822, 822, 822, 822, 822, + 822, 822, 822, 822, 822, 822, 822, 822, + + 822, 822, 822, 822, 822, 822, 822, 822, + 822, 822, 822, 822, 822, 822, 822, 822, + 822, 822, 822, 822, 822, 822, 822, 822, + 177, 177, 177, 177, 177, 177, 177, 177, + + 822, 822, 822, 822, 822, 822, 822, 822, + 822, 824, 825, 177, 177, 177, 177, 177, + 762, 762, 762, 762, 762, 762, 762, 762, + 762, 762, 762, 762, 762, 762, 762, 762, + + 762, 762, 762, 762, 762, 762, 762, 762, + 762, 762, 762, 762, 762, 762, 762, 762, + 762, 762, 762, 762, 762, 762, 762, 762, + 762, 762, 762, 762, 762, 762, 762, 762, + + 762, 762, 762, 762, 762, 762, 762, 762, + 762, 762, 762, 762, 762, 762, 762, 762, + 762, 762, 762, 762, 762, 762, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + + 826, 826, 826, 826, 826, 826, 826, 826, + 826, 826, 826, 826, 826, 826, 826, 826, + 826, 826, 826, 826, 826, 826, 826, 826, + 826, 826, 826, 826, 826, 177, 177, 177, + + 827, 827, 827, 828, 828, 828, 828, 827, + 827, 828, 828, 828, 177, 177, 177, 177, + 828, 828, 827, 828, 828, 828, 828, 828, + 828, 829, 830, 831, 177, 177, 177, 177, + + 832, 177, 177, 177, 833, 833, 834, 835, + 836, 837, 838, 839, 840, 841, 842, 843, + 844, 844, 844, 844, 844, 844, 844, 844, + 844, 844, 844, 844, 844, 844, 844, 844, + + 844, 844, 844, 844, 844, 844, 844, 844, + 844, 844, 844, 844, 844, 844, 177, 177, + 844, 844, 844, 844, 844, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + + 845, 845, 845, 845, 845, 845, 845, 845, + 845, 845, 845, 845, 845, 845, 845, 845, + 845, 845, 845, 845, 845, 845, 845, 845, + 845, 845, 845, 845, 845, 845, 845, 845, + + 845, 845, 845, 845, 845, 845, 845, 845, + 845, 845, 846, 846, 177, 177, 177, 177, + 847, 847, 847, 847, 847, 848, 848, 848, + 847, 847, 848, 847, 847, 847, 847, 847, + + 847, 845, 845, 845, 845, 845, 845, 845, + 847, 847, 177, 177, 177, 177, 177, 177, 849, 850, 851, 852, 853, 854, 855, 856, - 857, 858, 175, 175, 175, 175, 175, 175, - 849, 850, 851, 852, 853, 854, 855, 856, - 857, 858, 175, 175, 175, 175, 175, 175, - - 859, 859, 859, 859, 859, 859, 859, 860, - 861, 861, 861, 861, 859, 859, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - - 862, 862, 862, 862, 863, 864, 864, 864, - 864, 864, 864, 864, 864, 864, 864, 864, - 864, 864, 864, 864, 864, 864, 864, 864, - 864, 864, 864, 864, 864, 864, 864, 864, - - 864, 864, 864, 864, 864, 864, 864, 864, - 864, 864, 864, 864, 864, 864, 864, 864, - 864, 864, 864, 864, 865, 863, 862, 862, - 862, 862, 862, 863, 862, 863, 863, 863, - - 863, 863, 862, 863, 866, 864, 864, 864, - 864, 864, 864, 864, 175, 175, 175, 175, - 867, 868, 869, 870, 871, 872, 873, 874, - 875, 876, 877, 877, 878, 879, 877, 877, - - 879, 880, 880, 880, 880, 880, 880, 880, - 880, 880, 880, 881, 882, 881, 881, 881, - 881, 881, 881, 881, 880, 880, 880, 880, - 880, 880, 880, 880, 880, 175, 175, 175, - - 883, 883, 884, 804, 804, 804, 804, 804, - 804, 804, 804, 804, 804, 804, 804, 804, - 804, 804, 804, 804, 804, 804, 804, 804, - 804, 804, 804, 804, 804, 804, 804, 804, - - 804, 884, 883, 883, 883, 883, 884, 884, - 883, 883, 885, 886, 887, 887, 804, 804, - 888, 889, 890, 891, 892, 893, 894, 895, - 896, 897, 898, 898, 898, 898, 898, 898, - - 899, 899, 899, 899, 899, 899, 899, 899, - 899, 899, 899, 899, 899, 899, 899, 899, - 899, 899, 899, 899, 899, 899, 899, 899, - 899, 899, 899, 899, 899, 899, 899, 899, - - 899, 899, 899, 899, 899, 899, 900, 901, - 902, 902, 901, 901, 901, 902, 901, 902, - 902, 902, 903, 903, 175, 175, 175, 175, - 175, 175, 175, 175, 904, 904, 904, 904, - - 804, 804, 804, 804, 804, 804, 804, 804, - 804, 804, 804, 804, 804, 804, 804, 804, - 804, 804, 804, 804, 804, 804, 804, 804, - 804, 804, 804, 804, 804, 804, 804, 804, - - 804, 804, 804, 804, 884, 884, 884, 884, - 884, 884, 884, 884, 883, 883, 883, 883, - 883, 883, 883, 883, 884, 884, 883, 905, - 175, 175, 175, 906, 906, 907, 907, 907, - - 888, 889, 890, 891, 892, 893, 894, 895, - 896, 897, 175, 175, 175, 804, 804, 804, - 888, 889, 890, 891, 892, 893, 894, 895, - 896, 897, 804, 804, 804, 804, 804, 804, - - 804, 804, 804, 804, 804, 804, 804, 804, - 804, 804, 804, 804, 804, 804, 804, 804, - 804, 804, 804, 804, 804, 804, 804, 804, - 908, 908, 908, 908, 908, 908, 906, 906, - - 909, 909, 909, 909, 909, 909, 909, 909, - 175, 175, 175, 175, 175, 175, 175, 175, - 910, 910, 910, 911, 912, 913, 913, 913, - 913, 913, 910, 910, 913, 913, 913, 913, - - 910, 914, 912, 912, 912, 912, 912, 912, - 912, 754, 754, 754, 754, 913, 754, 754, - 754, 754, 914, 887, 915, 898, 898, 175, - 175, 175, 175, 175, 175, 175, 175, 175, + 857, 858, 859, 177, 177, 177, 860, 860, + + 861, 861, 861, 861, 861, 861, 861, 861, + 861, 861, 861, 861, 861, 861, 861, 861, + 861, 861, 861, 861, 861, 861, 861, 861, + 861, 861, 861, 861, 861, 861, 861, 861, + + 862, 862, 862, 862, 862, 862, 862, 862, + 862, 862, 862, 862, 862, 862, 862, 862, + 862, 862, 862, 862, 862, 862, 862, 863, + 864, 865, 865, 865, 177, 177, 866, 866, + + 867, 867, 867, 867, 867, 867, 867, 867, + 867, 867, 867, 867, 867, 867, 867, 867, + 867, 867, 867, 867, 867, 867, 867, 867, + 867, 867, 867, 867, 867, 867, 867, 867, + + 867, 867, 867, 867, 867, 867, 867, 867, + 867, 867, 867, 867, 867, 867, 867, 867, + 867, 867, 867, 867, 867, 868, 869, 868, + 869, 869, 869, 869, 869, 869, 869, 177, + + 870, 871, 869, 871, 871, 869, 869, 869, + 869, 869, 869, 869, 869, 868, 868, 868, + 868, 868, 868, 869, 869, 872, 872, 872, + 872, 872, 872, 872, 872, 177, 177, 873, + + 874, 875, 876, 877, 878, 879, 880, 881, + 882, 883, 177, 177, 177, 177, 177, 177, + 874, 875, 876, 877, 878, 879, 880, 881, + 882, 883, 177, 177, 177, 177, 177, 177, + + 884, 884, 884, 884, 884, 884, 884, 885, + 886, 886, 886, 886, 884, 884, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + + 887, 887, 887, 887, 888, 889, 889, 889, + 889, 889, 889, 889, 889, 889, 889, 889, + 889, 889, 889, 889, 889, 889, 889, 889, + 889, 889, 889, 889, 889, 889, 889, 889, + + 889, 889, 889, 889, 889, 889, 889, 889, + 889, 889, 889, 889, 889, 889, 889, 889, + 889, 889, 889, 889, 890, 888, 887, 887, + 887, 887, 887, 888, 887, 888, 888, 888, + + 888, 888, 887, 888, 891, 889, 889, 889, + 889, 889, 889, 889, 177, 177, 177, 177, + 892, 893, 894, 895, 896, 897, 898, 899, + 900, 901, 902, 902, 903, 904, 902, 902, + + 904, 905, 905, 905, 905, 905, 905, 905, + 905, 905, 905, 906, 907, 906, 906, 906, + 906, 906, 906, 906, 905, 905, 905, 905, + 905, 905, 905, 905, 905, 177, 177, 177, + + 908, 908, 909, 910, 910, 910, 910, 910, + 910, 910, 910, 910, 910, 910, 910, 910, + 910, 910, 910, 910, 910, 910, 910, 910, + 910, 910, 910, 910, 910, 910, 910, 910, + + 910, 909, 908, 908, 908, 908, 909, 909, + 908, 908, 911, 912, 913, 913, 910, 910, + 914, 915, 916, 917, 918, 919, 920, 921, + 922, 923, 924, 924, 924, 924, 924, 924, + + 925, 925, 925, 925, 925, 925, 925, 925, + 925, 925, 925, 925, 925, 925, 925, 925, + 925, 925, 925, 925, 925, 925, 925, 925, + 925, 925, 925, 925, 925, 925, 925, 925, + + 925, 925, 925, 925, 925, 925, 926, 927, + 928, 928, 927, 927, 927, 928, 927, 928, + 928, 928, 929, 929, 177, 177, 177, 177, + 177, 177, 177, 177, 930, 930, 930, 930, + + 931, 931, 931, 931, 931, 931, 931, 931, + 931, 931, 931, 931, 931, 931, 931, 931, + 931, 931, 931, 931, 931, 931, 931, 931, + 931, 931, 931, 931, 931, 931, 931, 931, + + 931, 931, 931, 931, 932, 932, 932, 932, + 932, 932, 932, 932, 933, 933, 933, 933, + 933, 933, 933, 933, 932, 932, 933, 934, + 177, 177, 177, 935, 935, 936, 936, 936, + + 937, 938, 939, 940, 941, 942, 943, 944, + 945, 946, 177, 177, 177, 931, 931, 931, + 947, 948, 949, 950, 951, 952, 953, 954, + 955, 956, 957, 957, 957, 957, 957, 957, + + 957, 957, 957, 957, 957, 957, 957, 957, + 957, 957, 957, 957, 957, 957, 957, 957, + 957, 957, 957, 957, 957, 957, 957, 957, + 958, 958, 958, 958, 958, 958, 959, 959, + + 960, 960, 960, 960, 960, 960, 960, 960, + 177, 177, 177, 177, 177, 177, 177, 177, + 961, 961, 961, 962, 963, 964, 964, 964, + 964, 964, 961, 961, 964, 964, 964, 964, + + 961, 965, 963, 963, 963, 963, 963, 963, + 963, 966, 966, 966, 966, 964, 966, 966, + 966, 966, 965, 967, 968, 969, 969, 177, + 177, 177, 177, 177, 177, 177, 177, 177, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, - 105, 105, 105, 105, 105, 105, 916, 916, - 916, 916, 916, 917, 918, 918, 918, 918, - 918, 918, 918, 918, 918, 918, 918, 918, - 918, 918, 918, 918, 918, 918, 918, 918, + 105, 105, 105, 105, 105, 105, 970, 970, + 970, 970, 970, 971, 972, 972, 972, 972, + 972, 972, 972, 972, 972, 972, 972, 972, + 972, 972, 972, 972, 972, 972, 972, 972, - 918, 918, 918, 918, 918, 918, 918, 918, - 918, 918, 918, 918, 918, 918, 918, 918, - 918, 918, 918, 918, 918, 918, 918, 918, - 918, 918, 918, 918, 918, 919, 919, 919, + 972, 972, 972, 972, 972, 972, 972, 972, + 972, 972, 972, 972, 972, 972, 972, 972, + 972, 972, 972, 972, 972, 972, 972, 972, + 972, 972, 972, 972, 972, 973, 973, 973, - 919, 919, 918, 918, 918, 918, 919, 919, - 919, 919, 919, 105, 106, 106, 106, 106, + 973, 973, 972, 972, 972, 972, 973, 973, + 973, 973, 973, 105, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 920, 921, 106, 106, 106, 922, 106, 106, + 974, 975, 106, 106, 106, 976, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 923, 923, 923, 923, 923, + 106, 106, 106, 977, 977, 977, 977, 977, - 923, 923, 923, 923, 923, 923, 923, 923, - 923, 923, 923, 923, 923, 923, 923, 923, - 923, 923, 923, 923, 923, 923, 923, 923, - 923, 923, 923, 923, 923, 923, 923, 924, + 977, 977, 977, 977, 977, 977, 977, 977, + 977, 977, 977, 977, 977, 977, 977, 977, + 977, 977, 977, 977, 977, 977, 977, 977, + 977, 977, 977, 977, 977, 977, 977, 978, - 165, 165, 164, 165, 925, 925, 925, 925, - 925, 925, 926, 927, 927, 928, 929, 930, - 931, 927, 927, 927, 927, 927, 927, 927, - 927, 927, 927, 927, 927, 927, 927, 927, + 167, 167, 166, 167, 979, 979, 979, 979, + 979, 979, 980, 981, 981, 982, 983, 984, + 985, 981, 981, 981, 981, 981, 981, 981, + 981, 981, 981, 981, 981, 981, 981, 981, - 927, 927, 927, 927, 927, 927, 927, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 932, 913, 925, 926, + 981, 981, 981, 981, 981, 981, 981, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 986, 964, 979, 980, 67, 68, 67, 68, 67, 68, 67, 68, 67, 68, 67, 68, 67, 68, 67, 68, - 67, 68, 67, 68, 67, 68, 933, 934, - 935, 936, 937, 938, 939, 939, 940, 939, + 67, 68, 67, 68, 67, 68, 987, 988, + 989, 990, 991, 992, 993, 993, 994, 993, 67, 68, 67, 68, 67, 68, 67, 68, 67, 68, 67, 68, 67, 68, 67, 68, 67, 68, 67, 68, 67, 68, 67, 68, - 67, 68, 941, 942, 941, 942, 941, 942, - - 943, 943, 943, 943, 943, 943, 943, 943, - 944, 944, 944, 944, 944, 944, 944, 944, - 943, 943, 943, 943, 943, 943, 175, 175, - 944, 944, 944, 944, 944, 944, 175, 175, - - 943, 943, 943, 943, 943, 943, 943, 943, - 944, 944, 944, 944, 944, 944, 944, 944, - 943, 943, 943, 943, 943, 943, 943, 943, - 944, 944, 944, 944, 944, 944, 944, 944, - - 943, 943, 943, 943, 943, 943, 175, 175, - 944, 944, 944, 944, 944, 944, 175, 175, - 945, 943, 946, 943, 947, 943, 948, 943, - 175, 944, 175, 944, 175, 944, 175, 944, - - 943, 943, 943, 943, 943, 943, 943, 943, - 944, 944, 944, 944, 944, 944, 944, 944, - 949, 949, 950, 950, 950, 950, 951, 951, - 952, 952, 953, 953, 954, 954, 175, 175, - - 955, 956, 957, 958, 959, 960, 961, 962, - 963, 964, 965, 966, 967, 968, 969, 970, - 971, 972, 973, 974, 975, 976, 977, 978, - 979, 980, 981, 982, 983, 984, 985, 986, - - 987, 988, 989, 990, 991, 992, 993, 994, - 995, 996, 997, 998, 999, 1000, 1001, 1002, - 943, 943, 1003, 1004, 1005, 175, 1006, 1007, - 944, 944, 1008, 1008, 1009, 174, 1010, 174, - - 174, 174, 1011, 1012, 1013, 175, 1014, 1015, - 1016, 1016, 1016, 1016, 1017, 174, 174, 174, - 943, 943, 1018, 182, 175, 175, 1019, 1020, - 944, 944, 1021, 1021, 175, 174, 174, 174, - - 943, 943, 1022, 186, 1023, 204, 1024, 1025, - 944, 944, 1026, 1026, 1027, 174, 174, 174, - 175, 175, 1028, 1029, 1030, 175, 1031, 1032, - 1033, 1033, 1034, 1034, 1035, 1036, 174, 175, - - 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1038, - 1037, 1037, 1037, 1039, 1040, 1041, 1042, 1043, - 1044, 1045, 1044, 1046, 1047, 1048, 14, 14, - 1049, 1050, 1051, 1052, 1052, 1053, 1051, 1052, - - 14, 14, 14, 14, 1054, 1055, 1055, 1056, - 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, - 13, 13, 13, 13, 13, 1065, 1065, 1065, - 14, 1066, 1067, 14, 1068, 1068, 14, 43, - - 43, 14, 14, 14, 1069, 16, 1070, 1071, - 1072, 1072, 786, 786, 786, 786, 1073, 1073, - 1073, 1073, 1074, 1075, 1076, 1077, 1078, 1073, - 1078, 1078, 1078, 1078, 1077, 1078, 1078, 1079, - - 1080, 1081, 1081, 1081, 1082, 1083, 1083, 1083, - 1083, 1083, 1084, 1084, 1084, 1084, 1084, 1084, - 1085, 1086, 175, 175, 1087, 1088, 1089, 1090, - 1091, 1092, 1093, 1093, 36, 16, 1070, 142, - - 1085, 62, 57, 58, 1087, 1088, 1089, 1090, - 1091, 1092, 1093, 1093, 36, 16, 1070, 175, - 923, 923, 923, 923, 923, 1094, 1094, 1094, - 1094, 1094, 1094, 1094, 1094, 175, 175, 175, + 67, 68, 995, 996, 995, 996, 995, 996, + + 997, 997, 997, 997, 997, 997, 997, 997, + 998, 998, 998, 998, 998, 998, 998, 998, + 997, 997, 997, 997, 997, 997, 177, 177, + 998, 998, 998, 998, 998, 998, 177, 177, + + 997, 997, 997, 997, 997, 997, 997, 997, + 998, 998, 998, 998, 998, 998, 998, 998, + 997, 997, 997, 997, 997, 997, 997, 997, + 998, 998, 998, 998, 998, 998, 998, 998, + + 997, 997, 997, 997, 997, 997, 177, 177, + 998, 998, 998, 998, 998, 998, 177, 177, + 999, 997, 1000, 997, 1001, 997, 1002, 997, + 177, 998, 177, 998, 177, 998, 177, 998, + + 997, 997, 997, 997, 997, 997, 997, 997, + 998, 998, 998, 998, 998, 998, 998, 998, + 1003, 1003, 1004, 1004, 1004, 1004, 1005, 1005, + 1006, 1006, 1007, 1007, 1008, 1008, 177, 177, + + 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, + 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, + 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, + 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, + + 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, + 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, + 997, 997, 1057, 1058, 1059, 177, 1060, 1061, + 998, 998, 1062, 1062, 1063, 176, 1064, 176, + + 176, 176, 1065, 1066, 1067, 177, 1068, 1069, + 1070, 1070, 1070, 1070, 1071, 176, 176, 176, + 997, 997, 1072, 184, 177, 177, 1073, 1074, + 998, 998, 1075, 1075, 177, 176, 176, 176, + + 997, 997, 1076, 188, 1077, 208, 1078, 1079, + 998, 998, 1080, 1080, 1081, 176, 176, 176, + 177, 177, 1082, 1083, 1084, 177, 1085, 1086, + 1087, 1087, 1088, 1088, 1089, 1090, 176, 177, + + 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1092, + 1091, 1091, 1091, 1093, 1094, 1095, 1096, 1097, + 1098, 1099, 1098, 1100, 1101, 1102, 14, 14, + 1103, 1104, 1105, 1106, 1106, 1107, 1105, 1106, + + 14, 14, 14, 14, 1108, 1109, 1109, 1110, + 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, + 13, 13, 13, 13, 13, 1119, 1119, 1119, + 14, 1120, 1121, 14, 1122, 1122, 14, 43, + + 43, 14, 14, 14, 1123, 16, 1124, 1125, + 1126, 1126, 1127, 1127, 1127, 1127, 1128, 1128, + 1128, 1128, 1129, 1130, 1131, 1132, 1133, 1128, + 1133, 1133, 1133, 1133, 1132, 1133, 1133, 1134, + + 1135, 1136, 1136, 1136, 1137, 1138, 1138, 1138, + 1138, 1138, 1139, 1139, 1139, 1139, 1139, 1139, + 1140, 1141, 177, 177, 1142, 1143, 1144, 1145, + 1146, 1147, 1148, 1148, 36, 16, 1124, 142, + + 1140, 62, 57, 58, 1142, 1143, 1144, 1145, + 1146, 1147, 1148, 1148, 36, 16, 1124, 177, + 977, 977, 977, 977, 977, 1149, 1149, 1149, + 1149, 1149, 1149, 1149, 1149, 177, 177, 177, 12, 12, 12, 12, 12, 12, 12, 50, - 12, 12, 12, 1095, 1096, 1097, 1097, 1097, - 1098, 1098, 1099, 1099, 1099, 1099, 1100, 1101, - 1101, 1102, 1103, 175, 175, 175, 175, 175, - - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 151, 151, 156, 156, 151, 151, 151, 151, - 156, 156, 156, 151, 151, 1104, 1104, 1104, - - 1104, 151, 1105, 1105, 1106, 1107, 1107, 171, - 1108, 171, 1107, 1109, 926, 926, 926, 926, - 927, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - - 51, 51, 1110, 1111, 51, 51, 51, 1110, - 51, 1111, 71, 1110, 1110, 1110, 71, 71, - 1110, 1110, 1110, 71, 51, 1110, 1112, 51, - 36, 1110, 1110, 1110, 1110, 1110, 51, 51, - - 51, 51, 51, 51, 1110, 51, 1113, 51, - 1110, 51, 1114, 1115, 1110, 1110, 1116, 71, - 1110, 1110, 1117, 1110, 71, 93, 93, 93, - 93, 141, 1118, 811, 106, 1119, 1120, 1120, - - 1074, 1074, 1074, 1074, 1074, 1120, 1119, 1119, - 1119, 1119, 1121, 1074, 752, 1122, 1123, 1124, - 1125, 1125, 1125, 64, 64, 64, 64, 64, + 12, 12, 12, 1150, 1151, 1152, 1152, 1152, + 1153, 1153, 1154, 1154, 1154, 1154, 1155, 1156, + 1156, 1157, 1158, 177, 177, 177, 177, 177, + + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 153, 153, 158, 158, 153, 153, 153, 153, + 158, 158, 158, 153, 153, 1159, 1159, 1159, + + 1159, 153, 1160, 1160, 1161, 1162, 1162, 173, + 1163, 173, 1162, 1164, 980, 980, 980, 980, + 981, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + + 51, 51, 1165, 1166, 51, 51, 51, 1165, + 51, 1166, 1167, 1165, 1165, 1165, 1167, 1167, + 1165, 1165, 1165, 1167, 51, 1165, 1168, 51, + 36, 1165, 1165, 1165, 1165, 1165, 51, 51, + + 51, 51, 51, 51, 1165, 51, 1169, 51, + 1165, 51, 1170, 1171, 1165, 1165, 1172, 1167, + 1165, 1165, 1173, 1165, 1167, 1174, 1174, 1174, + 1174, 1175, 1176, 1177, 1178, 1179, 1180, 1180, + + 1129, 1129, 1129, 1129, 1129, 1180, 1179, 1179, + 1179, 1179, 1181, 1129, 1182, 1183, 1184, 1185, + 1186, 1186, 1186, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, - 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, - 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, - 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, + 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, + 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, + 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, + 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, - 1128, 1128, 1128, 102, 113, 1129, 1129, 1129, - 1129, 1125, 175, 175, 175, 175, 175, 175, + 1189, 1189, 1189, 102, 113, 1190, 1190, 1190, + 1190, 1186, 177, 177, 177, 177, 177, 177, 36, 36, 36, 36, 36, 51, 51, 51, 51, 51, 36, 36, 51, 51, 51, 51, @@ -2020,134 +2035,134 @@ static const unsigned short uc_property_trie[] = { 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, - 51, 51, 51, 1118, 1118, 1118, 1118, 1118, - 1118, 1118, 1118, 1118, 1074, 1074, 1074, 1074, - 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, + 51, 51, 51, 1176, 1176, 1176, 1176, 1176, + 1176, 1176, 1176, 1176, 1129, 1129, 1129, 1129, + 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 36, 36, 36, 36, 36, 36, 36, 36, - 1130, 1130, 1130, 1131, 1131, 1131, 36, 36, - 36, 36, 18, 56, 36, 1132, 36, 36, + 1191, 1191, 1191, 1192, 1192, 1192, 36, 36, + 36, 36, 18, 56, 36, 1193, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, - 36, 36, 36, 36, 1133, 1134, 36, 36, + 36, 36, 36, 36, 1194, 1195, 36, 36, - 36, 36, 36, 1135, 36, 36, 36, 36, + 36, 36, 36, 1196, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, - 36, 36, 1133, 1134, 1133, 1134, 36, 36, + 36, 36, 1194, 1195, 1194, 1195, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, - 36, 36, 36, 36, 1133, 1134, 1133, 1134, - 1133, 1134, 1133, 1134, 36, 36, 1133, 1134, - 1133, 1134, 1133, 1134, 1133, 1134, 1133, 1134, - 1133, 1134, 1133, 1134, 1133, 1134, 1133, 1134, + 36, 36, 36, 36, 1194, 1195, 1194, 1195, + 1194, 1195, 1194, 1195, 36, 36, 1194, 1195, + 1194, 1195, 1194, 1195, 1194, 1195, 1194, 1195, + 1194, 1195, 1194, 1195, 1194, 1195, 1194, 1195, - 1133, 1134, 1133, 1134, 1133, 1134, 1133, 1134, - 1133, 1134, 1133, 1134, 36, 36, 36, 1133, - 1134, 1133, 1134, 36, 36, 36, 36, 36, - 1136, 36, 36, 36, 36, 36, 36, 36, + 1194, 1195, 1194, 1195, 1194, 1195, 1194, 1195, + 1194, 1195, 1194, 1195, 36, 36, 36, 1194, + 1195, 1194, 1195, 36, 36, 36, 36, 36, + 1197, 36, 36, 36, 36, 36, 36, 36, - 36, 36, 1133, 1134, 36, 36, 1137, 36, - 1138, 1139, 36, 1139, 36, 36, 36, 36, - 1133, 1134, 1133, 1134, 1133, 1134, 1133, 1134, + 36, 36, 1194, 1195, 36, 36, 1198, 36, + 1199, 1200, 36, 1200, 36, 36, 36, 36, + 1194, 1195, 1194, 1195, 1194, 1195, 1194, 1195, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, - 36, 1133, 1134, 1133, 1134, 1140, 36, 36, - 1133, 1134, 36, 36, 36, 36, 1133, 1134, - 1133, 1134, 1133, 1134, 1133, 1134, 1133, 1134, + 36, 1194, 1195, 1194, 1195, 1201, 36, 36, + 1194, 1195, 36, 36, 36, 36, 1194, 1195, + 1194, 1195, 1194, 1195, 1194, 1195, 1194, 1195, - 1133, 1134, 1133, 1134, 1133, 1134, 1133, 1134, - 1133, 1134, 1133, 1134, 1133, 1134, 36, 36, - 1133, 1134, 1141, 1141, 1141, 1074, 1142, 1142, - 1074, 1074, 1143, 1143, 1143, 1144, 1144, 1074, + 1194, 1195, 1194, 1195, 1194, 1195, 1194, 1195, + 1194, 1195, 1194, 1195, 1194, 1195, 36, 36, + 1194, 1195, 1202, 1202, 1202, 1129, 1203, 1203, + 1129, 1129, 1204, 1204, 1204, 1205, 1205, 1129, - 51, 1118, 51, 51, 51, 51, 51, 51, - 1133, 1134, 1133, 1134, 51, 51, 51, 51, + 51, 1176, 51, 51, 51, 51, 51, 51, + 1194, 1195, 1194, 1195, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, - 51, 51, 1145, 1145, 51, 51, 51, 51, + 51, 51, 1206, 1206, 51, 51, 51, 51, 36, 36, 51, 51, 51, 51, 51, 51, - 51, 16, 1070, 51, 51, 51, 51, 51, - 51, 51, 51, 51, 51, 51, 1146, 1146, - 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, - - 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, - 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, - 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, - 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, - - 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, - 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, - 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, - 1146, 1146, 1146, 1118, 1074, 1118, 1118, 1118, - - 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, - 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, - 1118, 1118, 1118, 1118, 1118, 1147, 1118, 1118, - 1118, 1118, 1118, 1074, 1074, 1074, 1074, 1074, - - 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, - 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, - 1074, 1074, 1074, 1074, 1121, 1121, 1121, 1121, - 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, - - 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, - 1121, 1121, 1121, 1121, 1121, 1121, 1121, 811, - 811, 752, 752, 752, 752, 752, 752, 752, - 752, 752, 752, 752, 1148, 1148, 1148, 1148, - - 1148, 1148, 1122, 1122, 1122, 1122, 1122, 1122, - 1149, 1150, 1150, 1150, 1150, 1150, 1150, 1150, - 1151, 1151, 1151, 1151, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, + 51, 16, 1124, 51, 51, 51, 51, 51, + 51, 51, 51, 51, 51, 51, 1207, 1207, + 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207, + + 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207, + 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207, + 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207, + 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207, + + 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207, + 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207, + 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207, + 1207, 1207, 1207, 1176, 1129, 1176, 1176, 1176, + + 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, + 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, + 1176, 1176, 1176, 1176, 1176, 1208, 1176, 1176, + 1176, 1176, 1176, 1129, 1129, 1129, 1129, 1129, + + 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, + 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, + 1129, 1129, 1129, 1129, 1181, 1181, 1181, 1181, + 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, + + 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, + 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1177, + 1177, 1182, 1182, 1182, 1182, 1182, 1182, 1182, + 1182, 1182, 1182, 1182, 1209, 1209, 1209, 1209, + + 1209, 1209, 1183, 1183, 1183, 1183, 1183, 1183, + 1210, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + 1212, 1212, 1212, 1212, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, - 51, 51, 51, 51, 51, 1118, 1118, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, + 51, 51, 51, 51, 51, 1176, 1176, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, 51, 51, 51, 51, 51, 51, 51, 51, - 51, 51, 51, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, + 51, 51, 51, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, - 1152, 1153, 1154, 1155, 1156, 1157, 1158, 1159, - 1160, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 1152, 1153, 1154, 1155, - 1156, 1157, 1158, 1159, 1160, 64, 64, 64, + 1213, 1214, 1215, 1216, 1217, 1218, 1219, 1220, + 1221, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 1213, 1214, 1215, 1216, + 1217, 1218, 1219, 1220, 1221, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 62, 57, 58, 1087, 1088, 1089, 1090, 1091, - 1092, 1161, 1161, 1161, 1161, 1161, 1161, 1161, - 1161, 1161, 1161, 1161, 1146, 1146, 1146, 1146, + 62, 57, 58, 1142, 1143, 1144, 1145, 1146, + 1147, 1222, 1222, 1222, 1222, 1222, 1222, 1222, + 1222, 1222, 1222, 1222, 1207, 1207, 1207, 1207, - 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, - 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, - 1146, 1146, 1146, 1146, 1146, 1146, 1162, 1162, - 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, + 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207, + 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207, + 1207, 1207, 1207, 1207, 1207, 1207, 1223, 1223, + 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, - 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, - 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, - 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, - 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, + 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, + 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, + 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, + 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, - 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, - 1163, 1163, 1164, 1165, 1165, 1165, 1165, 1165, - 1165, 1165, 1165, 1165, 1165, 1166, 1167, 1168, - 1169, 1170, 1171, 1172, 1173, 1174, 1165, 1175, + 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, + 1224, 1224, 1225, 1226, 1226, 1226, 1226, 1226, + 1226, 1226, 1226, 1226, 1226, 1227, 1228, 1229, + 1230, 1231, 1232, 1233, 1234, 1235, 1226, 1236, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, - 51, 51, 51, 51, 51, 51, 1121, 1121, - 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, + 51, 51, 51, 51, 51, 51, 1181, 1181, + 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, @@ -2161,721 +2176,196 @@ static const unsigned short uc_property_trie[] = { 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, - 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, - 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, + 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, + 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, - 1145, 1145, 1145, 1145, 51, 51, 51, 51, + 1206, 1206, 1206, 1206, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, - 51, 51, 51, 51, 1176, 1176, 1121, 1121, - 1177, 1118, 1145, 1145, 1145, 1145, 1145, 1145, + 51, 51, 51, 51, 1237, 1237, 1181, 1181, + 1238, 1176, 1206, 1206, 1206, 1206, 1206, 1206, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, - 51, 1145, 1145, 1145, 51, 51, 51, 51, + 51, 1206, 1206, 1206, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, - 1145, 51, 51, 51, 51, 51, 51, 36, - 1118, 1118, 1121, 1121, 1121, 1121, 1121, 1121, - 1121, 1121, 1121, 1121, 1121, 1121, 752, 1177, - - 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, - 1121, 1121, 811, 811, 811, 811, 811, 811, - 811, 811, 752, 752, 752, 752, 752, 752, - 752, 752, 752, 752, 752, 1178, 1149, 1149, - - 811, 811, 752, 752, 752, 752, 752, 752, - 752, 752, 752, 752, 1179, 752, 752, 752, - 752, 752, 1122, 1178, 1178, 1178, 1178, 1178, - 1178, 1178, 1178, 1178, 1178, 1180, 1180, 1180, - - 1181, 1181, 1181, 1181, 1180, 1180, 1180, 1180, - 1180, 1149, 1149, 1149, 1149, 1180, 1150, 1180, - 1180, 1180, 1149, 1180, 1180, 1149, 1149, 1149, - 1180, 1180, 1149, 1149, 1180, 1149, 1149, 1180, - - 1180, 1180, 1150, 1149, 1150, 1150, 1150, 1150, - 1149, 1149, 1180, 1149, 1149, 1149, 1149, 1149, - 1149, 1180, 1180, 1180, 1180, 1180, 1149, 1180, - 1180, 1180, 1180, 1149, 1149, 1180, 1180, 1180, - - 175, 1145, 1145, 1145, 1145, 1150, 51, 51, - 1145, 1145, 1151, 1151, 1145, 1145, 51, 51, + 1206, 51, 51, 51, 51, 51, 51, 36, + 1176, 1176, 1181, 1181, 1181, 1181, 1181, 1181, + 1181, 1181, 1181, 1181, 1181, 1181, 1182, 1238, + + 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, + 1181, 1181, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1182, 1182, 1182, 1182, 1182, 1182, + 1182, 1182, 1182, 1182, 1182, 1239, 1210, 1210, + + 1177, 1177, 1182, 1182, 1182, 1182, 1182, 1182, + 1182, 1182, 1182, 1182, 1240, 1182, 1182, 1182, + 1182, 1182, 1183, 1239, 1239, 1239, 1239, 1239, + 1239, 1239, 1239, 1239, 1239, 1241, 1241, 1241, + + 1242, 1242, 1242, 1242, 1241, 1241, 1241, 1241, + 1241, 1210, 1210, 1210, 1210, 1241, 1211, 1241, + 1241, 1241, 1210, 1241, 1241, 1210, 1210, 1210, + 1241, 1241, 1210, 1210, 1241, 1210, 1210, 1241, + + 1241, 1241, 1211, 1210, 1211, 1211, 1211, 1211, + 1210, 1210, 1241, 1210, 1210, 1210, 1210, 1210, + 1210, 1241, 1241, 1241, 1241, 1241, 1210, 1241, + 1241, 1241, 1241, 1210, 1210, 1241, 1241, 1241, + + 177, 1206, 1206, 1206, 1206, 1211, 51, 51, + 1206, 1206, 1212, 1212, 1206, 1206, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, - 1150, 51, 51, 51, 51, 51, 51, 51, + 1211, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, - 51, 51, 51, 51, 1150, 51, 1150, 51, - 51, 51, 51, 1150, 1150, 1150, 51, 1149, - 51, 51, 51, 1182, 1182, 1182, 1182, 1150, - - 1150, 51, 1183, 1183, 51, 51, 51, 51, - 1184, 1185, 1184, 1185, 1184, 1185, 1184, 1185, - 1184, 1185, 1184, 1185, 1184, 1185, 1152, 1153, - 1154, 1155, 1156, 1157, 1158, 1159, 1160, 64, - - 1152, 1153, 1154, 1155, 1156, 1157, 1158, 1159, - 1160, 64, 1152, 1153, 1154, 1155, 1156, 1157, - 1158, 1159, 1160, 64, 51, 1150, 1150, 1150, + 51, 51, 51, 51, 1211, 51, 1211, 51, + 51, 51, 51, 1211, 1211, 1211, 51, 1210, + 51, 51, 51, 1243, 1243, 1243, 1243, 1211, + + 1211, 51, 1244, 1244, 51, 51, 51, 51, + 1245, 1246, 1245, 1246, 1245, 1246, 1245, 1246, + 1245, 1246, 1245, 1246, 1245, 1246, 1213, 1214, + 1215, 1216, 1217, 1218, 1219, 1220, 1221, 64, + + 1213, 1214, 1215, 1216, 1217, 1218, 1219, 1220, + 1221, 64, 1213, 1214, 1215, 1216, 1217, 1218, + 1219, 1220, 1221, 64, 51, 1211, 1211, 1211, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, - 1150, 51, 51, 51, 51, 51, 51, 51, - 51, 51, 51, 51, 51, 51, 51, 1150, - - 1186, 1186, 1186, 1187, 1188, 1189, 1190, 1148, - 1191, 1192, 1148, 1193, 1194, 1195, 1196, 1196, - 1074, 1074, 1074, 1074, 1074, 1197, 1198, 1074, - 1074, 1074, 1074, 1074, 1074, 1197, 1198, 1074, - - 1074, 1074, 1197, 1198, 1197, 1198, 1184, 1185, - 1184, 1185, 1184, 1185, 1199, 1200, 1199, 1200, - 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, - 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, - - 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, - 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, - 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, - 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, - - 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, - 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, - 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, - 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, - - 1074, 1074, 1074, 1184, 1185, 1184, 1185, 1184, - 1185, 1184, 1185, 1184, 1185, 1201, 1202, 1203, - 1204, 1184, 1185, 1184, 1185, 1184, 1185, 1184, - 1185, 1074, 1074, 1074, 1074, 1074, 1074, 1074, - - 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, - 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, - 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, - 1205, 1074, 1074, 1074, 1074, 1074, 1074, 1074, - - 1197, 1198, 1074, 1074, 1197, 1198, 1074, 1074, - 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1197, - 1198, 1197, 1198, 1074, 1197, 1198, 1074, 1074, - 1184, 1185, 1184, 1185, 1074, 1074, 1074, 1074, - - 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, - 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, - 1074, 1074, 1074, 1074, 1074, 1206, 1074, 1074, - 1197, 1198, 1074, 1074, 1184, 1185, 1074, 1074, - - 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, - 1074, 1074, 1074, 1197, 1198, 1197, 1198, 1074, - 1074, 1074, 1074, 1074, 1197, 1198, 1074, 1074, - 1074, 1074, 1074, 1074, 1197, 1198, 1074, 1074, - - 1074, 1074, 1074, 1074, 1197, 1198, 1074, 1074, - 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, - 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, - 1074, 1197, 1198, 1074, 1074, 1197, 1198, 1197, - - 1198, 1197, 1198, 1197, 1198, 1074, 1074, 1074, - 1074, 1074, 1074, 1197, 1198, 1074, 1074, 1074, - 1074, 1197, 1198, 1197, 1198, 1197, 1198, 1197, - 1198, 1197, 1198, 1197, 1198, 1074, 1074, 1074, - - 1074, 1197, 1198, 1074, 1074, 1074, 1197, 1198, - 1197, 1198, 1197, 1198, 1197, 1198, 1074, 1197, - 1198, 1074, 1074, 1197, 1198, 1074, 1074, 1074, - 1074, 1074, 1074, 1197, 1198, 1197, 1198, 1197, - - 1198, 1197, 1198, 1197, 1198, 1197, 1198, 1074, - 1074, 1074, 1074, 1074, 1074, 1197, 1198, 1197, - 1198, 1197, 1198, 1197, 1198, 1197, 1198, 1074, - 1074, 1074, 1074, 1074, 1074, 1074, 1207, 1074, - - 1074, 1074, 1074, 1208, 1209, 1208, 1074, 1074, - 1074, 1074, 1074, 1074, 1197, 1198, 1074, 1074, - 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1197, - 1198, 1197, 1198, 1074, 1074, 1074, 1074, 1074, - - 811, 811, 811, 811, 811, 811, 811, 811, - 811, 811, 811, 811, 811, 811, 752, 752, - 752, 752, 752, 752, 1122, 1122, 1122, 1122, - 1122, 1122, 1122, 1178, 1178, 1178, 1178, 1178, - - 1122, 1122, 1122, 1122, 1178, 1178, 1178, 1178, - 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, - 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, - 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, - - 1194, 1194, 1194, 1194, 1194, 1178, 1178, 1194, - 1194, 1194, 1194, 1194, 1194, 175, 175, 175, - 1178, 1178, 1178, 1178, 1178, 1149, 1149, 1149, - 1149, 1149, 175, 175, 175, 175, 175, 175, - - 1210, 1210, 1210, 1210, 1210, 1210, 1210, 1210, - 1210, 1210, 1210, 1210, 1210, 1210, 1210, 1210, - 1210, 1210, 1210, 1210, 1210, 1210, 1210, 1210, - 1210, 1210, 1210, 1210, 1210, 1210, 1210, 1210, - - 1210, 1210, 1210, 1210, 1210, 1210, 1210, 1210, - 1210, 1210, 1210, 1210, 1210, 1210, 1210, 175, - 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, - 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + 1211, 51, 51, 51, 51, 51, 51, 51, + 51, 51, 51, 51, 51, 51, 51, 1211, + + 1247, 1247, 1247, 1248, 1249, 1250, 1251, 1209, + 1252, 1253, 1209, 1254, 1255, 1256, 1257, 1257, + 1129, 1129, 1129, 1129, 1129, 1258, 1259, 1129, + 1129, 1129, 1129, 1129, 1129, 1258, 1259, 1129, + + 1129, 1129, 1258, 1259, 1258, 1259, 1245, 1246, + 1245, 1246, 1245, 1246, 1260, 1261, 1260, 1261, + 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, + 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, + + 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, + 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, + 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, + 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, + + 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, + 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, + 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, + 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, + + 1129, 1129, 1129, 1245, 1246, 1245, 1246, 1245, + 1246, 1245, 1246, 1245, 1246, 1263, 1264, 1265, + 1266, 1245, 1246, 1245, 1246, 1245, 1246, 1245, + 1246, 1129, 1129, 1129, 1129, 1129, 1129, 1129, + + 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, + 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, + 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, + 1267, 1129, 1129, 1129, 1129, 1129, 1129, 1129, + + 1258, 1259, 1129, 1129, 1258, 1259, 1129, 1129, + 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1258, + 1259, 1258, 1259, 1129, 1258, 1259, 1129, 1129, + 1245, 1246, 1245, 1246, 1129, 1129, 1129, 1129, + + 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, + 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, + 1129, 1129, 1129, 1129, 1129, 1268, 1129, 1129, + 1258, 1259, 1129, 1129, 1245, 1246, 1129, 1129, + + 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, + 1129, 1129, 1129, 1258, 1259, 1258, 1259, 1129, + 1129, 1129, 1129, 1129, 1258, 1259, 1129, 1129, + 1129, 1129, 1129, 1129, 1258, 1259, 1129, 1129, + + 1129, 1129, 1129, 1129, 1258, 1259, 1129, 1129, + 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, + 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, + 1129, 1258, 1259, 1129, 1129, 1258, 1259, 1258, + + 1259, 1258, 1259, 1258, 1259, 1129, 1129, 1129, + 1129, 1129, 1129, 1258, 1259, 1129, 1129, 1129, + 1129, 1258, 1259, 1258, 1259, 1258, 1259, 1258, + 1259, 1258, 1259, 1258, 1259, 1129, 1129, 1129, + + 1129, 1258, 1259, 1129, 1129, 1129, 1258, 1259, + 1258, 1259, 1258, 1259, 1258, 1259, 1129, 1258, + 1259, 1129, 1129, 1258, 1259, 1129, 1129, 1129, + 1129, 1129, 1129, 1258, 1259, 1258, 1259, 1258, + + 1259, 1258, 1259, 1258, 1259, 1258, 1259, 1129, + 1129, 1129, 1129, 1129, 1129, 1258, 1259, 1258, + 1259, 1258, 1259, 1258, 1259, 1258, 1259, 1129, + 1129, 1129, 1129, 1129, 1129, 1129, 1269, 1129, + + 1129, 1129, 1129, 1270, 1271, 1270, 1129, 1129, + 1129, 1129, 1129, 1129, 1258, 1259, 1129, 1129, + 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1258, + 1259, 1258, 1259, 1129, 1129, 1129, 1129, 1129, - 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, - 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, - 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, - 1211, 1211, 1211, 1211, 1211, 1211, 1211, 175, - - 117, 113, 1212, 1213, 1214, 1215, 1216, 117, - 113, 117, 113, 117, 113, 1217, 1218, 1219, - 1220, 939, 941, 942, 1221, 117, 113, 1221, - 939, 939, 939, 939, 1222, 1222, 1223, 1223, - - 108, 109, 108, 109, 108, 109, 108, 109, - 108, 109, 108, 109, 108, 109, 108, 109, - 108, 109, 108, 109, 108, 109, 108, 109, - 108, 109, 108, 109, 108, 109, 108, 109, - - 108, 109, 108, 109, 106, 752, 752, 752, - 752, 752, 752, 1224, 1225, 1224, 1225, 390, - 390, 390, 1226, 1227, 175, 175, 175, 175, - 175, 1228, 1078, 1078, 1078, 1229, 1228, 1078, - - 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, - 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, - 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, - 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, - - 1230, 1230, 1230, 1230, 1230, 1230, 175, 1231, - 175, 175, 175, 175, 175, 1231, 175, 175, - 735, 735, 735, 735, 735, 735, 735, 735, - 735, 735, 735, 735, 735, 735, 735, 735, - - 735, 735, 735, 735, 735, 735, 735, 735, - 735, 735, 735, 735, 735, 735, 735, 735, - 735, 735, 735, 735, 735, 735, 735, 735, - 735, 735, 735, 735, 735, 735, 735, 735, - - 735, 735, 735, 735, 735, 735, 898, 898, - 175, 175, 175, 175, 175, 175, 175, 1232, - 1233, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 1234, - - 735, 735, 735, 735, 735, 735, 735, 735, - 735, 735, 735, 735, 735, 735, 735, 735, - 735, 735, 735, 735, 735, 735, 735, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - - 735, 735, 735, 735, 735, 735, 735, 175, - 735, 735, 735, 735, 735, 735, 735, 175, - 735, 735, 735, 735, 735, 735, 735, 175, - 735, 735, 735, 735, 735, 735, 735, 175, - - 224, 224, 224, 224, 224, 224, 224, 224, - 224, 224, 224, 224, 224, 224, 224, 224, - 224, 224, 224, 224, 224, 224, 224, 224, - 224, 224, 224, 224, 224, 224, 224, 224, - - 1235, 1235, 1236, 1237, 1236, 1237, 1235, 1235, - 1235, 1236, 1237, 1235, 1236, 1237, 1078, 1078, - 1078, 1078, 1078, 1078, 1078, 1078, 1077, 1238, - 1239, 1240, 1241, 1242, 1236, 1237, 1242, 1242, - - 1243, 1244, 1199, 1200, 1199, 1200, 1199, 1200, - 1199, 1200, 1240, 1240, 1240, 1240, 1245, 1246, - 1240, 1247, 1248, 1249, 1249, 1248, 1248, 1248, - 1248, 1248, 1250, 1250, 175, 175, 175, 175, - - 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, - 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, - 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, - 1251, 1251, 175, 1251, 1251, 1251, 1251, 1251, - - 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, - 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, - 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, - 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, - - 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, - 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, - 1251, 1251, 1251, 1251, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - - 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, - 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, - 1251, 1251, 1251, 1251, 1251, 1251, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, - 1251, 1251, 1251, 1251, 175, 175, 175, 175, - - 1252, 1253, 1254, 1255, 1145, 1256, 1257, 1258, - 16, 1070, 16, 1070, 16, 1070, 16, 1070, - 16, 1070, 1145, 1145, 16, 1070, 16, 1070, - 16, 1070, 16, 1070, 1259, 1051, 1260, 1260, - - 1145, 1258, 1258, 1258, 1258, 1258, 1258, 1258, - 1258, 1258, 1261, 1262, 152, 1263, 1264, 1264, - 1265, 1266, 1266, 1266, 1266, 1266, 1145, 1145, - 1267, 1267, 1267, 1268, 1269, 1270, 1251, 1145, - - 175, 1271, 1257, 1271, 1257, 1271, 1257, 1271, - 1257, 1271, 1257, 1257, 1257, 1257, 1257, 1257, - 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, - 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, - - 1257, 1257, 1257, 1271, 1257, 1257, 1257, 1257, - 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, - 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, - 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, - - 1257, 1257, 1257, 1271, 1257, 1271, 1257, 1271, - 1257, 1257, 1257, 1257, 1257, 1257, 1271, 1257, - 1257, 1257, 1257, 1257, 1257, 1272, 1272, 175, - 175, 1273, 1273, 1274, 1274, 1275, 1275, 1276, - - 1277, 1278, 1279, 1278, 1279, 1278, 1279, 1278, - 1279, 1278, 1279, 1279, 1279, 1279, 1279, 1279, - 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, - 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, - - 1279, 1279, 1279, 1278, 1279, 1279, 1279, 1279, - 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, - 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, - 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, - - 1279, 1279, 1279, 1278, 1279, 1278, 1279, 1278, - 1279, 1279, 1279, 1279, 1279, 1279, 1278, 1279, - 1279, 1279, 1279, 1279, 1279, 1278, 1278, 1279, - 1279, 1279, 1279, 1280, 1281, 1281, 1281, 1282, - - 175, 175, 175, 175, 175, 1283, 1283, 1283, - 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, - 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, - 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, - - 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, - 1283, 1283, 1283, 1283, 1283, 1284, 175, 175, - 175, 1285, 1285, 1285, 1285, 1285, 1285, 1285, - 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, - - 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, - 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, - 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, - 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, - - 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, - 1285, 1285, 1285, 1285, 1285, 1285, 1285, 175, - 1286, 1286, 1287, 1287, 1287, 1287, 1286, 1286, - 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, - - 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, - 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, - 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, - 1289, 1289, 1289, 175, 175, 175, 175, 175, - - 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, - 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, - 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, + 1177, 1177, 1177, 1177, 1177, 1177, 1182, 1182, + 1182, 1182, 1182, 1182, 1183, 1183, 1183, 1183, + 1183, 1183, 1183, 1239, 1239, 1239, 1239, 1239, + + 1183, 1183, 1183, 1183, 1239, 1239, 1239, 1239, + 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, + 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, + 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, + + 1255, 1255, 1255, 1255, 1255, 1239, 1239, 1255, + 1255, 1255, 1255, 1255, 1255, 177, 177, 177, + 1239, 1239, 1239, 1239, 1239, 1210, 1210, 1210, + 1210, 1210, 177, 177, 177, 177, 177, 177, + + 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, + 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, + 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, + 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, + + 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, + 1272, 1272, 1272, 1272, 1272, 1272, 1272, 177, + 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, + 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, + + 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, + 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, + 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, + 1273, 1273, 1273, 1273, 1273, 1273, 1273, 177, + + 117, 113, 1274, 1275, 1276, 1277, 1278, 117, + 113, 117, 113, 117, 113, 1279, 1280, 1281, + 1282, 993, 995, 996, 1283, 117, 113, 1283, + 993, 993, 993, 993, 1284, 1284, 1285, 1285, + + 1286, 1287, 1286, 1287, 1286, 1287, 1286, 1287, + 1286, 1287, 1286, 1287, 1286, 1287, 1286, 1287, + 1286, 1287, 1286, 1287, 1286, 1287, 1286, 1287, + 1286, 1287, 1286, 1287, 1286, 1287, 1286, 1287, + + 1286, 1287, 1286, 1287, 1288, 1289, 1289, 1289, + 1289, 1289, 1289, 1290, 1291, 1290, 1291, 1292, + 1292, 1292, 1293, 1294, 177, 177, 177, 177, + 177, 1295, 1296, 1296, 1296, 1297, 1295, 1296, - 1181, 1181, 1181, 1181, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 1290, 1290, 1290, 1290, 1290, 1290, 1290, 1290, - 1290, 1290, 1290, 1290, 1290, 1290, 1290, 1290, - - 1291, 1291, 1291, 1291, 1291, 1291, 1291, 1291, - 1291, 1291, 1291, 1291, 1291, 1291, 1291, 1291, - 1291, 1291, 1291, 1291, 1291, 1291, 1291, 1291, - 1291, 1291, 1291, 1291, 1291, 1292, 1292, 175, - - 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, - 1287, 1287, 1286, 1286, 1286, 1286, 1286, 1286, - 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, - 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, - - 1286, 1286, 1286, 1286, 1293, 1293, 1293, 1293, - 1294, 1294, 1294, 1294, 1294, 1294, 1294, 1294, - 1176, 1295, 1295, 1295, 1295, 1295, 1295, 1295, - 1295, 1295, 1295, 1295, 1295, 1295, 1295, 1295, - - 1291, 1291, 1291, 1291, 1291, 1291, 1291, 1291, - 1291, 1291, 1291, 1291, 1291, 1291, 1291, 1291, - 1291, 1291, 1291, 1291, 1291, 1291, 1291, 1291, - 1291, 1291, 1291, 1291, 1292, 1292, 1296, 1286, - - 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, - 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, - 1286, 1295, 1295, 1295, 1295, 1295, 1295, 1295, - 1295, 1295, 1295, 1295, 1295, 1295, 1295, 1295, - - 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, - 1286, 1286, 1286, 1286, 1176, 1176, 1176, 1176, - 1297, 1297, 1297, 1297, 1297, 1297, 1297, 1297, - 1297, 1297, 1297, 1297, 1297, 1297, 1297, 1297, - - 1297, 1297, 1297, 1297, 1297, 1297, 1297, 1297, - 1297, 1297, 1297, 1297, 1297, 1297, 1297, 1297, - 1297, 1297, 1297, 1297, 1297, 1297, 1297, 1297, - 1297, 1297, 1297, 1297, 1297, 1297, 1297, 175, - - 1297, 1297, 1297, 1297, 1297, 1297, 1297, 1297, - 1297, 1297, 1297, 1297, 1297, 1297, 1297, 1297, - 1297, 1297, 1297, 1297, 1297, 1297, 1297, 1297, - 1297, 1297, 1297, 1297, 1297, 1297, 1297, 1297, - - 1297, 1297, 1297, 1297, 1297, 1297, 1297, 1297, - 1297, 1297, 1297, 1297, 1297, 1297, 1297, 1297, - 1297, 1297, 1297, 1297, 1297, 1297, 1297, 1297, - 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, - - 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, - 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, - 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1176, - 1176, 1176, 1176, 1286, 1286, 1286, 1286, 1286, - - 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, - 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, - 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, - 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, - - 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, - 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, - 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, - 1286, 1286, 1286, 1286, 1286, 1286, 1176, 1176, - - 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, - 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, - 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, - 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1176, - - 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, - 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, - 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, - 1298, 1298, 1298, 1298, 1298, 1298, 1299, 1299, - 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, - - 811, 811, 811, 811, 811, 811, 811, 811, - 811, 811, 811, 811, 811, 811, 811, 811, - 811, 811, 811, 811, 811, 811, 811, 811, - 811, 811, 811, 811, 811, 811, 811, 811, - - 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, - 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, - 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, - 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, - - 1257, 1257, 1257, 1257, 1257, 1257, 1300, 1300, - 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, - 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, - 1300, 1300, 1300, 1300, 1301, 1301, 1301, 1301, - - 1301, 1301, 1301, 1301, 1302, 1302, 1302, 1302, - 1302, 1302, 1302, 1302, 1303, 1299, 1299, 1299, - 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, - 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, - - 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, - 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, - 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, - 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, - - 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, - 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, - 1288, 1288, 1288, 1288, 1288, 1304, 1288, 1288, - 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, - - 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, - 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, - 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, - 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, - - 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, - 1288, 1288, 1288, 1288, 1288, 175, 175, 175, - 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, - 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, - - 1251, 1251, 1305, 1305, 1251, 1251, 1251, 1251, - 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, - 1251, 1251, 1251, 1251, 1305, 1251, 1251, 1251, - 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, - - 1251, 1305, 1251, 1251, 1251, 1305, 1251, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 754, 754, 754, 754, 754, 754, 754, 754, - 754, 754, 754, 754, 754, 754, 754, 754, - - 754, 754, 754, 754, 754, 754, 754, 754, - 754, 754, 754, 754, 754, 754, 754, 754, - 754, 754, 754, 754, 754, 754, 754, 754, - 1306, 1306, 1306, 1306, 1306, 1306, 1307, 1308, - - 804, 804, 804, 804, 804, 804, 804, 804, - 804, 804, 804, 804, 908, 1240, 1245, 1309, - 804, 804, 804, 804, 804, 804, 804, 804, - 804, 804, 804, 804, 804, 804, 804, 804, - - 888, 889, 890, 891, 892, 893, 894, 895, - 896, 897, 804, 804, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - - 236, 237, 236, 237, 236, 237, 236, 237, - 236, 237, 236, 237, 236, 237, 236, 237, - 236, 237, 236, 237, 236, 237, 236, 237, - 236, 237, 236, 237, 236, 237, 236, 237, - - 240, 241, 236, 237, 236, 237, 236, 237, - 236, 237, 236, 237, 236, 237, 1310, 224, - 1311, 1311, 1311, 1312, 1313, 1313, 1313, 1313, - 1313, 1313, 1313, 1313, 224, 224, 1312, 1314, - - 236, 237, 236, 237, 236, 237, 236, 237, - 236, 237, 236, 237, 236, 237, 236, 237, - 236, 237, 236, 237, 236, 237, 236, 237, - 175, 175, 175, 175, 175, 175, 175, 1313, - - 754, 754, 754, 754, 754, 754, 1315, 1315, - 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, - 390, 390, 911, 1308, 1307, 1307, 1307, 1308, - 175, 175, 175, 175, 175, 175, 175, 175, - - 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, - 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, - 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1317, - 1317, 1317, 1317, 1246, 1246, 1246, 1246, 1246, - - 1318, 1318, 941, 942, 941, 942, 941, 942, - 941, 942, 941, 942, 941, 942, 941, 942, - 939, 939, 941, 942, 941, 942, 941, 942, - 941, 942, 941, 942, 941, 942, 941, 942, - - 941, 942, 941, 942, 941, 942, 941, 942, - 941, 942, 941, 942, 941, 942, 941, 942, - 941, 942, 941, 942, 941, 942, 941, 942, - 941, 942, 941, 942, 941, 942, 941, 942, - - 941, 942, 941, 942, 941, 942, 941, 942, - 941, 942, 941, 942, 941, 942, 941, 942, - 1222, 939, 939, 939, 939, 939, 939, 939, - 939, 941, 942, 941, 942, 1319, 941, 942, - - 941, 942, 941, 942, 941, 942, 941, 942, - 1246, 1320, 1320, 941, 942, 1321, 1322, 175, - 1323, 1324, 1226, 1227, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - - 1323, 1324, 1323, 1324, 1323, 1324, 1323, 1324, - 1323, 1324, 1325, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 1326, 1326, 1322, 804, 804, 804, 804, 804, - - 735, 735, 1327, 735, 735, 735, 1328, 735, - 735, 735, 735, 1327, 735, 735, 735, 735, - 735, 735, 735, 735, 735, 735, 735, 735, - 735, 735, 735, 735, 735, 735, 735, 735, - - 735, 735, 735, 842, 842, 1327, 1327, 842, - 752, 752, 752, 752, 175, 175, 175, 175, - 1294, 1294, 1294, 1294, 1294, 1294, 681, 681, - 1100, 1329, 175, 175, 175, 175, 175, 175, - - 864, 864, 864, 864, 864, 864, 864, 864, - 864, 864, 864, 864, 864, 864, 864, 864, - 864, 864, 864, 864, 864, 864, 864, 864, - 864, 864, 864, 864, 864, 864, 864, 864, - - 864, 864, 864, 864, 864, 864, 864, 864, - 864, 864, 864, 864, 864, 864, 864, 864, - 864, 864, 864, 864, 1330, 1330, 1331, 1331, - 175, 175, 175, 175, 175, 175, 175, 175, - - 884, 884, 804, 804, 804, 804, 804, 804, - 804, 804, 804, 804, 804, 804, 804, 804, - 804, 804, 804, 804, 804, 804, 804, 804, - 804, 804, 804, 804, 804, 804, 804, 804, - - 804, 804, 804, 804, 804, 804, 804, 804, - 804, 804, 804, 804, 804, 804, 804, 804, - 804, 804, 804, 804, 884, 884, 884, 884, - 884, 884, 884, 884, 884, 884, 884, 884, - - 884, 884, 884, 884, 1332, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 906, 906, - 888, 889, 890, 891, 892, 893, 894, 895, - 896, 897, 175, 175, 175, 175, 175, 175, - - 1333, 1333, 1333, 1333, 1333, 1333, 1333, 1333, - 1333, 1333, 1333, 1333, 1333, 1333, 1333, 1333, - 1333, 1333, 431, 431, 431, 431, 431, 431, - 1334, 1334, 1334, 431, 175, 175, 175, 175, - - 888, 889, 890, 891, 892, 893, 894, 895, - 896, 897, 804, 804, 804, 804, 804, 804, - 804, 804, 804, 804, 804, 804, 804, 804, - 804, 804, 804, 804, 804, 804, 804, 804, - - 804, 804, 804, 804, 804, 804, 883, 883, - 883, 883, 883, 1335, 1335, 1335, 907, 906, - 804, 804, 804, 804, 804, 804, 804, 804, - 804, 804, 804, 804, 804, 804, 804, 804, - - 804, 804, 804, 804, 804, 804, 804, 883, - 883, 883, 883, 883, 883, 883, 883, 883, - 883, 883, 884, 885, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 1336, - - 729, 729, 729, 729, 729, 729, 729, 729, - 729, 729, 729, 729, 729, 729, 729, 729, - 729, 729, 729, 729, 729, 729, 729, 729, - 729, 729, 729, 729, 729, 175, 175, 175, - - 1337, 1337, 1337, 914, 754, 754, 754, 754, - 754, 754, 754, 754, 754, 754, 754, 754, - 754, 754, 754, 754, 754, 754, 754, 754, - 754, 754, 754, 754, 754, 754, 754, 754, - - 754, 754, 754, 754, 754, 754, 754, 754, - 754, 754, 754, 754, 754, 754, 754, 754, - 754, 754, 754, 1338, 914, 914, 1337, 1337, - 1337, 1337, 914, 914, 1337, 914, 914, 914, - - 1339, 911, 911, 911, 911, 911, 911, 1307, - 1308, 1308, 911, 911, 911, 911, 175, 1306, - 849, 850, 851, 852, 853, 854, 855, 856, - 857, 858, 175, 175, 175, 175, 911, 911, - - 804, 804, 804, 804, 804, 804, 804, 804, - 804, 883, 883, 883, 883, 883, 883, 884, - 884, 883, 883, 884, 884, 883, 883, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - - 804, 804, 804, 883, 804, 804, 804, 804, - 804, 804, 804, 804, 883, 884, 175, 175, - 888, 889, 890, 891, 892, 893, 894, 895, - 896, 897, 175, 175, 1336, 906, 906, 906, - - 1340, 1340, 1340, 1340, 1340, 1340, 1340, 1340, - 1340, 1340, 1340, 1340, 1340, 1340, 1340, 1340, - 1341, 1340, 1340, 1340, 1340, 1340, 1340, 1342, - 1342, 1342, 1340, 717, 175, 175, 175, 175, - - 825, 825, 825, 825, 825, 825, 825, 825, - 825, 825, 825, 825, 825, 825, 825, 825, - 847, 825, 847, 847, 1343, 825, 825, 847, - 847, 825, 825, 825, 825, 825, 847, 847, - - 825, 847, 825, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 825, 825, 860, 859, 859, - - 898, 898, 898, 898, 898, 898, 898, 898, - 898, 898, 898, 887, 1344, 1344, 887, 887, - 1345, 1345, 898, 1346, 1346, 887, 886, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - - 175, 899, 899, 899, 899, 899, 899, 175, - 175, 899, 899, 899, 899, 899, 899, 175, - 175, 899, 899, 899, 899, 899, 899, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - - 899, 899, 899, 899, 899, 899, 899, 175, - 899, 899, 899, 899, 899, 899, 899, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - - 754, 754, 754, 914, 914, 1337, 914, 914, - 1337, 914, 914, 1308, 914, 1347, 175, 175, - 849, 850, 851, 852, 853, 854, 855, 856, - 857, 858, 175, 175, 175, 175, 175, 175, - - 1348, 1349, 1349, 1349, 1349, 1349, 1349, 1349, - 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, - 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, - 1349, 1349, 1349, 1349, 1348, 1349, 1349, 1349, - - 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, - 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, - 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, - 1348, 1349, 1349, 1349, 1349, 1349, 1349, 1349, - - 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, - 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, - 1349, 1349, 1349, 1349, 1348, 1349, 1349, 1349, - 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, - - 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, - 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, - 1348, 1349, 1349, 1349, 1349, 1349, 1349, 1349, - 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, - - 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, - 1349, 1349, 1349, 1349, 1348, 1349, 1349, 1349, - 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, - 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, - - 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, - 1348, 1349, 1349, 1349, 1349, 1349, 1349, 1349, - 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, - 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, - - 1349, 1349, 1349, 1349, 1348, 1349, 1349, 1349, - 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, - 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, - 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, - - 1349, 1349, 1349, 1349, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 731, 731, 731, 731, 731, 731, 731, 731, - 731, 731, 731, 731, 731, 731, 731, 731, - - 731, 731, 731, 731, 731, 731, 731, 175, - 175, 175, 175, 733, 733, 733, 733, 733, - 733, 733, 733, 733, 733, 733, 733, 733, - 733, 733, 733, 733, 733, 733, 733, 733, - - 733, 733, 733, 733, 733, 733, 733, 733, - 733, 733, 733, 733, 733, 733, 733, 733, - 733, 733, 733, 733, 733, 733, 733, 733, - 733, 733, 733, 733, 175, 175, 175, 175, - 1350, 1350, 1350, 1350, 1350, 1350, 1350, 1350, - 1350, 1350, 1350, 1350, 1350, 1350, 1350, 1350, - 1350, 1350, 1350, 1350, 1350, 1350, 1350, 1350, - 1350, 1350, 1350, 1350, 1350, 1350, 1350, 1350, - - 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, - 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, - 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, - 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, - - 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, - 1257, 1257, 1257, 1257, 1257, 1257, 1303, 1303, - 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, - 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, - - 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, - 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, - 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, - 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, - - 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, - 1276, 1276, 1276, 1302, 1302, 1302, 1299, 1299, + 1298, 1298, 1298, 1298, 1298, 1298, 177, 1299, + 177, 177, 177, 177, 177, 1299, 177, 177, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, @@ -2884,1886 +2374,2456 @@ static const unsigned short uc_property_trie[] = { 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, - 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, - 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, - 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, - 1300, 1300, 1299, 1299, 1299, 1299, 1299, 1299, - - 1352, 1353, 1354, 1355, 1356, 1357, 1357, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 1358, 1359, 1360, 1361, 1362, - 175, 175, 175, 175, 175, 1363, 1364, 279, - - 279, 279, 279, 279, 279, 279, 279, 279, - 279, 1365, 279, 279, 279, 279, 279, 279, - 279, 279, 279, 279, 279, 279, 279, 252, - 279, 279, 279, 279, 279, 252, 279, 252, - - 279, 279, 252, 279, 279, 252, 279, 279, - 279, 279, 279, 279, 279, 279, 279, 279, - 300, 300, 300, 300, 300, 300, 300, 300, - 300, 300, 300, 300, 300, 300, 300, 300, - - 300, 300, 300, 300, 300, 300, 300, 300, - 300, 300, 300, 300, 300, 300, 300, 300, - 300, 300, 300, 300, 300, 300, 300, 300, - 300, 300, 300, 300, 300, 300, 300, 300, - - 300, 300, 300, 300, 300, 300, 300, 300, - 300, 300, 300, 300, 300, 300, 300, 300, - 300, 300, 1366, 1366, 1366, 1366, 1366, 1366, - 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, - - 1366, 1366, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 300, 300, 300, 300, 300, - 300, 300, 300, 300, 300, 300, 300, 300, - - 300, 300, 300, 300, 300, 300, 300, 300, - 300, 300, 300, 300, 300, 300, 300, 300, - 300, 300, 300, 300, 300, 300, 300, 300, - 300, 300, 300, 300, 300, 300, 1051, 1260, - - 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, - 300, 300, 300, 300, 300, 300, 300, 300, - 300, 300, 300, 300, 300, 300, 300, 300, + 1300, 1300, 1300, 1300, 1300, 1300, 1301, 1301, + 177, 177, 177, 177, 177, 177, 177, 1302, + 1303, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 1304, + + 739, 739, 739, 739, 739, 739, 739, 739, + 739, 739, 739, 739, 739, 739, 739, 739, + 739, 739, 739, 739, 739, 739, 739, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + + 739, 739, 739, 739, 739, 739, 739, 177, + 739, 739, 739, 739, 739, 739, 739, 177, + 739, 739, 739, 739, 739, 739, 739, 177, + 739, 739, 739, 739, 739, 739, 739, 177, + + 228, 228, 228, 228, 228, 228, 228, 228, + 228, 228, 228, 228, 228, 228, 228, 228, + 228, 228, 228, 228, 228, 228, 228, 228, + 228, 228, 228, 228, 228, 228, 228, 228, + + 1305, 1305, 1306, 1307, 1306, 1307, 1305, 1305, + 1305, 1306, 1307, 1305, 1306, 1307, 1133, 1133, + 1133, 1133, 1133, 1133, 1133, 1133, 1132, 1308, + 1309, 1310, 1311, 1312, 1306, 1307, 1312, 1312, + + 1313, 1314, 1260, 1261, 1260, 1261, 1260, 1261, + 1260, 1261, 1310, 1310, 1310, 1310, 1315, 1316, + 1310, 1317, 1318, 1319, 1319, 1318, 1318, 1318, + 1318, 1318, 1320, 1320, 177, 177, 177, 177, + + 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, + 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, + 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, + 1321, 1321, 177, 1321, 1321, 1321, 1321, 1321, + + 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, + 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, + 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, + 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, + + 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, + 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, + 1321, 1321, 1321, 1321, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + + 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, + 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, + 1321, 1321, 1321, 1321, 1321, 1321, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 1322, 1322, 1322, 1322, 1322, 1322, 1322, 1322, + 1322, 1322, 1322, 1322, 177, 177, 177, 177, + + 1323, 1324, 1325, 1326, 1206, 1327, 1328, 1329, + 16, 1124, 16, 1124, 16, 1124, 16, 1124, + 16, 1124, 1206, 1206, 16, 1124, 16, 1124, + 16, 1124, 16, 1124, 1330, 1105, 1331, 1331, + + 1206, 1329, 1329, 1329, 1329, 1329, 1329, 1329, + 1329, 1329, 1332, 1333, 154, 1334, 1335, 1335, + 1336, 1337, 1337, 1337, 1337, 1337, 1206, 1206, + 1338, 1338, 1338, 1339, 1340, 1341, 1322, 1206, + + 177, 1342, 1343, 1342, 1343, 1342, 1343, 1342, + 1343, 1342, 1343, 1343, 1343, 1343, 1343, 1343, + 1343, 1343, 1343, 1343, 1343, 1343, 1343, 1343, + 1343, 1343, 1343, 1343, 1343, 1343, 1343, 1343, + + 1343, 1343, 1343, 1342, 1343, 1343, 1343, 1343, + 1343, 1343, 1343, 1343, 1343, 1343, 1343, 1343, + 1343, 1343, 1343, 1343, 1343, 1343, 1343, 1343, + 1343, 1343, 1343, 1343, 1343, 1343, 1343, 1343, + + 1343, 1343, 1343, 1342, 1343, 1342, 1343, 1342, + 1343, 1343, 1343, 1343, 1343, 1343, 1342, 1343, + 1343, 1343, 1343, 1343, 1343, 1344, 1344, 177, + 177, 1345, 1345, 1346, 1346, 1347, 1347, 1348, + + 1349, 1350, 1351, 1350, 1351, 1350, 1351, 1350, + 1351, 1350, 1351, 1351, 1351, 1351, 1351, 1351, + 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, + 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, - 300, 300, 300, 300, 300, 300, 300, 300, - 300, 300, 300, 300, 300, 300, 300, 300, - 284, 284, 300, 300, 300, 300, 300, 300, - 300, 300, 300, 300, 300, 300, 300, 300, + 1351, 1351, 1351, 1350, 1351, 1351, 1351, 1351, + 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, + 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, + 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, - 300, 300, 300, 300, 300, 300, 300, 300, - 284, 284, 284, 284, 284, 284, 284, 284, - 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, + 1351, 1351, 1351, 1350, 1351, 1350, 1351, 1350, + 1351, 1351, 1351, 1351, 1351, 1351, 1350, 1351, + 1351, 1351, 1351, 1351, 1351, 1350, 1350, 1351, + 1351, 1351, 1351, 1352, 1353, 1354, 1354, 1355, + + 177, 177, 177, 177, 177, 1356, 1356, 1356, + 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, + 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, + 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, + + 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, + 1356, 1356, 1356, 1356, 1356, 1357, 177, 177, + 177, 1358, 1358, 1358, 1358, 1358, 1358, 1358, + 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, + + 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, + 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, + 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, + 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, + + 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, + 1358, 1358, 1358, 1358, 1358, 1358, 1358, 177, + 1359, 1359, 1360, 1360, 1360, 1360, 1359, 1359, + 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, + + 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, + 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, + 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, + 1362, 1362, 1362, 177, 177, 177, 177, 177, + + 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, + 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, + 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, + 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, + + 1242, 1242, 1242, 1242, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, + 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, + + 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, + 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, + 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, + 1364, 1364, 1364, 1364, 1364, 1365, 1365, 177, + + 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, + 1360, 1360, 1359, 1359, 1359, 1359, 1359, 1359, + 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, + 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, + + 1359, 1359, 1359, 1359, 1366, 1366, 1366, 1366, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, + 1237, 1368, 1368, 1368, 1368, 1368, 1368, 1368, + 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, + + 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, + 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, + 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, + 1364, 1364, 1364, 1364, 1365, 1365, 1369, 1359, + + 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, + 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, + 1359, 1368, 1368, 1368, 1368, 1368, 1368, 1368, + 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, + + 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, + 1359, 1359, 1359, 1359, 1237, 1237, 1237, 1237, + 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, + 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, + + 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, + 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, + 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, + 1370, 1370, 1370, 1370, 1370, 1370, 1370, 177, + + 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, + 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, + 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, + 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, + + 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, + 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, + 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, + 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, + + 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, + 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, + 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1237, + 1237, 1237, 1237, 1359, 1359, 1359, 1359, 1359, + + 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, + 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, + 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, + 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, + + 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, + 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, + 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, + 1359, 1359, 1359, 1359, 1359, 1359, 1237, 1237, + + 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, + 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, + 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, + 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1237, + + 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, + 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, + 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, + 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, + + 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, + 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, + 1371, 1371, 1371, 1371, 1371, 1371, 1372, 1372, + 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, - 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, - 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, - 300, 300, 300, 300, 300, 300, 300, 300, - 300, 300, 300, 300, 1368, 811, 284, 284, - - 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, - 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, - 1370, 1371, 1372, 1373, 1374, 1228, 1228, 1375, - 1376, 1377, 175, 175, 175, 175, 175, 175, - - 151, 151, 151, 151, 927, 927, 927, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 1255, 1378, 1378, 1379, 1379, 1051, 1260, 1051, - 1260, 1051, 1260, 1051, 1260, 1051, 1260, 1051, - - 1260, 1051, 1260, 1051, 1260, 1270, 1270, 1380, - 1381, 1255, 1255, 1255, 1255, 1379, 1379, 1379, - 1382, 1383, 1384, 175, 1385, 1386, 9, 9, - 1378, 16, 1070, 16, 1070, 16, 1070, 1387, - - 1255, 1255, 1388, 1389, 1390, 1391, 1392, 175, - 1255, 12, 13, 1255, 175, 175, 175, 175, - 300, 300, 300, 1393, 300, 284, 300, 300, - 300, 300, 300, 300, 300, 300, 300, 300, - - 300, 300, 300, 300, 300, 300, 300, 300, - 300, 300, 300, 300, 300, 300, 300, 300, - 300, 300, 300, 300, 300, 300, 300, 300, - 300, 300, 300, 300, 300, 284, 284, 1394, - - 175, 9, 1255, 1387, 12, 13, 1255, 1395, - 16, 1070, 1255, 1388, 1382, 1389, 1384, 1396, - 1397, 1398, 1399, 1400, 1401, 1402, 1403, 1404, - 1405, 1406, 1386, 1385, 1407, 1392, 1408, 9, - - 1255, 1409, 1409, 1409, 1409, 1409, 1409, 1409, - 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, - 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, - 1409, 1409, 1409, 39, 1255, 46, 1410, 1379, - - 1410, 1411, 1411, 1411, 1411, 1411, 1411, 1411, - 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, - 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, - 1411, 1411, 1411, 39, 1392, 46, 1392, 1184, - - 1185, 1254, 16, 1070, 1253, 1280, 1412, 1278, - 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, - 1281, 1412, 1412, 1412, 1412, 1412, 1412, 1412, - 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + + 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, + 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, + 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, + 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, + + 1373, 1373, 1373, 1373, 1373, 1373, 1374, 1374, + 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, + 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, + 1374, 1374, 1374, 1374, 1375, 1375, 1375, 1375, + + 1375, 1375, 1375, 1375, 1376, 1376, 1376, 1376, + 1376, 1376, 1376, 1376, 1377, 1372, 1372, 1372, + 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, + 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, + + 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, + 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, + 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, + 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, + + 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, + 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, + 1378, 1378, 1378, 1378, 1378, 1379, 1378, 1378, + 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, + + 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, + 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, + 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, + 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, + + 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, + 1378, 1378, 1378, 1378, 1378, 177, 177, 177, + 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, + 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, + + 1380, 1380, 1381, 1381, 1380, 1380, 1380, 1380, + 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, + 1380, 1380, 1380, 1380, 1381, 1380, 1380, 1380, + 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, + + 1380, 1381, 1380, 1380, 1380, 1381, 1380, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, + 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, + + 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, + 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, + 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, + 1383, 1383, 1383, 1383, 1383, 1383, 1384, 1385, + + 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, + 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, + 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, + 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, + + 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, + 1386, 1386, 1386, 1386, 1387, 1388, 1389, 1390, + 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, + 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, + + 1391, 1392, 1393, 1394, 1395, 1396, 1397, 1398, + 1399, 1400, 1386, 1386, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + + 240, 241, 240, 241, 240, 241, 240, 241, + 240, 241, 240, 241, 240, 241, 240, 241, + 240, 241, 240, 241, 240, 241, 240, 241, + 240, 241, 240, 241, 240, 241, 240, 241, + + 244, 245, 240, 241, 240, 241, 240, 241, + 240, 241, 240, 241, 240, 241, 1401, 228, + 1402, 1402, 1402, 1403, 1404, 1404, 1404, 1404, + 1404, 1404, 1404, 1404, 228, 228, 1403, 1405, + + 240, 241, 240, 241, 240, 241, 240, 241, + 240, 241, 240, 241, 240, 241, 240, 241, + 240, 241, 240, 241, 240, 241, 240, 241, + 177, 177, 177, 177, 177, 177, 177, 1404, + + 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, + 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, + 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, + 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, + + 1406, 1406, 1406, 1406, 1406, 1406, 1407, 1407, + 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, + 1408, 1408, 1409, 1410, 1411, 1411, 1411, 1410, + 177, 177, 177, 177, 177, 177, 177, 177, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, - 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, - 1412, 1412, 1412, 1412, 1412, 1412, 1413, 1413, - - 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, - 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, - 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, - 1414, 1414, 1414, 1414, 1414, 1414, 1414, 175, - - 175, 175, 1414, 1414, 1414, 1414, 1414, 1414, - 175, 175, 1414, 1414, 1414, 1414, 1414, 1414, - 175, 175, 1414, 1414, 1414, 1414, 1414, 1414, - 175, 175, 1414, 1414, 1414, 175, 175, 175, - - 50, 12, 1392, 1410, 1145, 12, 12, 175, - 51, 36, 36, 36, 36, 51, 51, 175, - 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, - 1083, 1415, 1415, 1415, 1416, 51, 1417, 1417, - - 805, 805, 805, 805, 805, 805, 805, 805, - 805, 805, 805, 805, 175, 805, 805, 805, - 805, 805, 805, 805, 805, 805, 805, 805, - 805, 805, 805, 805, 805, 805, 805, 805, - - 805, 805, 805, 805, 805, 805, 805, 175, - 805, 805, 805, 805, 805, 805, 805, 805, - 805, 805, 805, 805, 805, 805, 805, 805, - 805, 805, 805, 175, 805, 805, 175, 805, - - 805, 805, 805, 805, 805, 805, 805, 805, - 805, 805, 805, 805, 805, 805, 175, 175, - 805, 805, 805, 805, 805, 805, 805, 805, - 805, 805, 805, 805, 805, 805, 175, 175, - - 805, 805, 805, 805, 805, 805, 805, 805, - 805, 805, 805, 805, 805, 805, 805, 805, - 805, 805, 805, 805, 805, 805, 805, 805, - 805, 805, 805, 805, 805, 805, 805, 805, - - 805, 805, 805, 805, 805, 805, 805, 805, - 805, 805, 805, 805, 805, 805, 805, 805, - 805, 805, 805, 805, 805, 805, 805, 805, - 805, 805, 805, 175, 175, 175, 175, 175, - - 1418, 1419, 1418, 175, 175, 175, 175, 1420, - 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, - 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, - 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, - - 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, - 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, - 1420, 1420, 1420, 1420, 175, 175, 175, 1421, - 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, - - 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, - 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, - 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, - 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, - - 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, - 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, - 1422, 1422, 1422, 1422, 1422, 1423, 1423, 1423, - 1423, 1424, 1424, 1424, 1424, 1424, 1424, 1424, - - 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, - 1424, 1424, 1423, 175, 175, 175, 175, 175, - 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, - 1178, 1178, 1178, 1178, 175, 175, 175, 175, - - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, - 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, - - 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, - 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, - 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, - 1124, 1124, 1124, 1124, 1124, 930, 175, 175, - - 804, 804, 804, 804, 804, 804, 804, 804, - 804, 804, 804, 804, 804, 804, 804, 804, - 804, 804, 804, 804, 804, 804, 804, 804, - 804, 804, 804, 804, 804, 175, 175, 175, - - 804, 804, 804, 804, 804, 804, 804, 804, - 804, 804, 804, 804, 804, 804, 804, 804, - 804, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - - 1425, 1425, 1425, 1425, 1425, 1425, 1425, 1425, - 1425, 1425, 1425, 1425, 1425, 1425, 1425, 1425, - 1425, 1425, 1425, 1425, 1425, 1425, 1425, 1425, - 1425, 1425, 1425, 1425, 1425, 1425, 1425, 175, - - 1426, 1426, 1426, 1426, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 1425, 1425, 1425, 1425, 1425, 1425, 1425, 1425, - 1425, 1425, 1425, 1425, 1425, 1425, 1425, 1425, - - 1425, 1427, 1425, 1425, 1425, 1425, 1425, 1425, - 1425, 1425, 1427, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - - 805, 805, 805, 805, 805, 805, 805, 805, - 805, 805, 805, 805, 805, 805, 805, 805, - 805, 805, 805, 805, 805, 805, 805, 805, - 805, 805, 805, 805, 805, 805, 175, 1418, - - 735, 735, 735, 735, 175, 175, 175, 175, - 735, 735, 735, 735, 735, 735, 735, 735, - 1428, 1429, 1429, 1429, 1429, 1429, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - - 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, - 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, - 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, - 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, + 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1413, + 1413, 1413, 1413, 1316, 1316, 1316, 1316, 1316, + + 1414, 1414, 995, 996, 995, 996, 995, 996, + 995, 996, 995, 996, 995, 996, 995, 996, + 993, 993, 995, 996, 995, 996, 995, 996, + 995, 996, 995, 996, 995, 996, 995, 996, + + 995, 996, 995, 996, 995, 996, 995, 996, + 995, 996, 995, 996, 995, 996, 995, 996, + 995, 996, 995, 996, 995, 996, 995, 996, + 995, 996, 995, 996, 995, 996, 995, 996, + + 995, 996, 995, 996, 995, 996, 995, 996, + 995, 996, 995, 996, 995, 996, 995, 996, + 1284, 993, 993, 993, 993, 993, 993, 993, + 993, 995, 996, 995, 996, 1415, 995, 996, + + 995, 996, 995, 996, 995, 996, 995, 996, + 1316, 1416, 1416, 995, 996, 1417, 1418, 177, + 1419, 1420, 1421, 1422, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + + 1419, 1420, 1419, 1420, 1419, 1420, 1419, 1420, + 1419, 1420, 1423, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 1424, 1424, 1418, 1425, 1425, 1425, 1425, 1425, + + 1426, 1426, 1427, 1426, 1426, 1426, 1428, 1426, + 1426, 1426, 1426, 1427, 1426, 1426, 1426, 1426, + 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, + 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, + + 1426, 1426, 1426, 1429, 1429, 1427, 1427, 1429, + 1430, 1430, 1430, 1430, 177, 177, 177, 177, + 1367, 1367, 1367, 1367, 1367, 1367, 685, 685, + 1155, 1431, 177, 177, 177, 177, 177, 177, - 1430, 1430, 1430, 1430, 1430, 1430, 1431, 1431, + 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, - 1432, 1432, 1432, 1432, 1432, 1432, 1433, 1433, - 805, 805, 805, 805, 805, 805, 805, 805, - 805, 805, 805, 805, 805, 805, 805, 805, - - 805, 805, 805, 805, 805, 805, 805, 805, - 805, 805, 805, 805, 805, 805, 805, 805, - 805, 805, 805, 805, 805, 805, 805, 805, - 805, 805, 805, 805, 805, 805, 175, 175, - - 813, 814, 815, 816, 817, 818, 819, 820, - 821, 822, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - - 1434, 1434, 1434, 1434, 1434, 1434, 252, 252, - 1434, 252, 1434, 1434, 1434, 1434, 1434, 1434, - 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, - 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, - - 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, - 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, - 1434, 1434, 1434, 1434, 1434, 1434, 252, 1434, - 1434, 252, 252, 252, 1434, 252, 252, 1434, - - 389, 389, 389, 389, 389, 389, 389, 389, - 389, 389, 389, 389, 389, 389, 389, 389, - 389, 389, 389, 389, 389, 389, 252, 1435, - 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, + 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, + 1432, 1432, 1432, 1432, 1433, 1433, 1434, 1434, + 177, 177, 177, 177, 177, 177, 177, 177, - 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, - 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, - 1437, 1437, 1437, 1437, 1437, 1437, 1438, 1438, - 1438, 1438, 1436, 1436, 252, 252, 252, 1439, - - 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, - 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, - 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, - 1440, 1440, 252, 252, 252, 252, 252, 1441, - - 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, - 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, - 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, - 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, - - 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, - 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, - 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, - 252, 252, 252, 252, 252, 252, 1442, 1442, - - 1443, 1327, 1327, 1327, 252, 1327, 1327, 252, - 252, 252, 252, 252, 1327, 841, 1327, 737, - 1443, 1443, 1443, 1443, 252, 1443, 1443, 1443, - 252, 1443, 1443, 1443, 1443, 1443, 1443, 1443, - - 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, - 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, - 1443, 1443, 1443, 1443, 252, 252, 252, 252, - 737, 1444, 841, 252, 252, 252, 252, 1328, - - 1445, 1446, 1447, 1448, 1449, 1449, 1449, 1449, - 252, 252, 252, 252, 252, 252, 252, 252, - 1450, 1450, 1450, 1450, 1450, 1450, 1451, 1451, - 1452, 252, 252, 252, 252, 252, 252, 252, - - 389, 389, 389, 389, 389, 389, 389, 389, - 389, 389, 389, 389, 389, 389, 389, 389, - 389, 389, 389, 389, 389, 389, 389, 389, - 389, 389, 389, 389, 389, 1436, 1436, 392, - - 389, 389, 389, 389, 389, 389, 389, 389, - 389, 389, 389, 389, 389, 389, 389, 389, - 389, 389, 389, 389, 389, 389, 389, 389, - 389, 389, 389, 389, 389, 389, 389, 389, - - 389, 389, 389, 389, 389, 389, 389, 389, - 389, 389, 389, 389, 389, 389, 389, 389, - 389, 389, 389, 389, 389, 389, 252, 252, - 252, 1247, 1247, 1247, 1247, 1247, 1247, 1247, - - 389, 389, 389, 389, 389, 389, 389, 389, - 389, 389, 389, 389, 389, 389, 389, 389, - 389, 389, 389, 389, 389, 389, 252, 252, + 1435, 1435, 1436, 1436, 1436, 1436, 1436, 1436, + 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, + 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, - 389, 389, 389, 389, 389, 389, 389, 389, - 389, 389, 389, 389, 389, 389, 389, 389, - 389, 389, 389, 252, 252, 252, 252, 252, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, + 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, + 1436, 1436, 1436, 1436, 1435, 1435, 1435, 1435, + 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, + + 1435, 1435, 1435, 1435, 1437, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 1438, 1438, + 1439, 1440, 1441, 1442, 1443, 1444, 1445, 1446, + 1447, 1448, 177, 177, 177, 177, 177, 177, + + 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, + 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, + 1449, 1449, 435, 435, 435, 435, 435, 435, + 1450, 1450, 1450, 435, 177, 177, 177, 177, + + 1451, 1452, 1453, 1454, 1455, 1456, 1457, 1458, + 1459, 1460, 1461, 1461, 1461, 1461, 1461, 1461, + 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, + 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, + + 1461, 1461, 1461, 1461, 1461, 1461, 1462, 1462, + 1462, 1462, 1462, 1463, 1463, 1463, 1464, 1465, + 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, + 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, + + 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1467, + 1467, 1467, 1467, 1467, 1467, 1467, 1467, 1467, + 1467, 1467, 1468, 1469, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 1470, + + 733, 733, 733, 733, 733, 733, 733, 733, + 733, 733, 733, 733, 733, 733, 733, 733, + 733, 733, 733, 733, 733, 733, 733, 733, + 733, 733, 733, 733, 733, 177, 177, 177, + + 1471, 1471, 1471, 1472, 1473, 1473, 1473, 1473, + 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, + 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, + 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, + + 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, + 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, + 1473, 1473, 1473, 1474, 1472, 1472, 1471, 1471, + 1471, 1471, 1472, 1472, 1471, 1472, 1472, 1472, + + 1475, 1476, 1476, 1476, 1476, 1476, 1476, 1477, + 1478, 1478, 1476, 1476, 1476, 1476, 177, 1479, + 1480, 1481, 1482, 1483, 1484, 1485, 1486, 1487, + 1488, 1489, 177, 177, 177, 177, 1476, 1476, + + 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, + 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, + 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, + 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, + + 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, + 1490, 1491, 1491, 1491, 1491, 1491, 1491, 1492, + 1492, 1491, 1491, 1492, 1492, 1491, 1491, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + + 1490, 1490, 1490, 1491, 1490, 1490, 1490, 1490, + 1490, 1490, 1490, 1490, 1491, 1492, 177, 177, + 1493, 1494, 1495, 1496, 1497, 1498, 1499, 1500, + 1501, 1502, 177, 177, 1503, 1504, 1504, 1504, + + 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, + 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, + 1506, 1505, 1505, 1505, 1505, 1505, 1505, 1507, + 1507, 1507, 1505, 721, 177, 177, 177, 177, + + 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, + 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, + 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, + 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, + + 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, + 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, + 1509, 1508, 1509, 1509, 1510, 1508, 1508, 1509, + 1509, 1508, 1508, 1508, 1508, 1508, 1509, 1509, + + 1508, 1509, 1508, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 1508, 1508, 1511, 1512, 1512, - 389, 389, 389, 389, 389, 389, 389, 389, - 389, 252, 252, 252, 252, 252, 252, 252, - 252, 252, 252, 252, 252, 252, 252, 252, - 252, 252, 252, 252, 252, 252, 252, 252, - - 1453, 1454, 1455, 1456, 1457, 1458, 1459, 1460, - 1461, 1462, 1462, 1462, 1462, 1462, 1462, 1462, - 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, - 1462, 1462, 1462, 1462, 1462, 1462, 1462, 252, - - 901, 902, 901, 899, 899, 899, 899, 899, - 899, 899, 899, 899, 899, 899, 899, 899, - 899, 899, 899, 899, 899, 899, 899, 899, - 899, 899, 899, 899, 899, 899, 899, 899, - 899, 899, 899, 899, 899, 899, 899, 899, - 899, 899, 899, 899, 899, 899, 899, 899, - 899, 899, 899, 899, 899, 899, 899, 899, - 902, 902, 902, 902, 902, 902, 902, 902, - 902, 902, 902, 902, 902, 902, 1234, 1463, - 1463, 904, 904, 904, 904, 904, 175, 175, - 175, 175, 1464, 1465, 1466, 1467, 1468, 1469, - 1470, 1471, 1472, 1473, 1473, 1473, 1473, 1473, - 1473, 1473, 1473, 1473, 1473, 1473, 1474, 1475, - 1476, 1477, 1478, 1479, 1480, 1481, 1482, 1483, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 1337, 1337, 914, 754, 754, 754, 754, 754, - 754, 754, 754, 754, 754, 754, 754, 754, - 754, 754, 754, 754, 754, 754, 754, 754, - 754, 754, 754, 754, 754, 754, 754, 754, - 754, 754, 754, 754, 754, 754, 754, 754, - 754, 754, 754, 754, 754, 754, 754, 754, - 914, 914, 914, 1337, 1337, 1337, 1337, 914, - 914, 1347, 1338, 911, 911, 1484, 1308, 1308, - 1308, 1308, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 898, 898, 898, 898, 898, 898, 898, 898, - 898, 898, 898, 898, 898, 898, 898, 898, - 898, 898, 898, 898, 898, 898, 898, 898, - 898, 175, 175, 175, 175, 175, 175, 175, - 1485, 1486, 1487, 1488, 1489, 1490, 1491, 1492, - 1493, 1494, 175, 175, 175, 175, 175, 175, - - 1495, 1495, 1495, 898, 898, 898, 898, 898, - 898, 898, 898, 898, 898, 898, 898, 898, - 898, 898, 898, 898, 898, 898, 898, 898, - 898, 898, 898, 898, 898, 898, 898, 898, - 898, 898, 898, 898, 898, 898, 898, 1344, - 1344, 1344, 1344, 1344, 887, 1344, 1344, 1344, - 1344, 1344, 1344, 886, 886, 175, 1485, 1486, - 1487, 1488, 1489, 1490, 1491, 1492, 1493, 1494, - 1496, 1345, 1345, 1345, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 1344, 1344, 887, 898, 898, 898, 898, 898, - 898, 898, 898, 898, 898, 898, 898, 898, - 898, 898, 898, 898, 898, 898, 898, 898, - 898, 898, 898, 898, 898, 898, 898, 898, - 898, 898, 898, 898, 898, 898, 898, 898, - 898, 898, 898, 898, 898, 898, 898, 898, - 898, 898, 898, 887, 887, 887, 1344, 1344, - 1344, 1344, 1344, 1344, 1344, 1344, 1344, 887, - 1497, 898, 898, 898, 898, 1345, 1345, 909, - 1496, 175, 175, 175, 175, 175, 175, 175, - 1485, 1486, 1487, 1488, 1489, 1490, 1491, 1492, - 1493, 1494, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 898, 898, 898, 898, 898, 898, 898, 898, - 898, 898, 898, 898, 898, 898, 898, 898, - 898, 898, 898, 898, 898, 898, 898, 898, - 898, 898, 898, 898, 898, 898, 898, 898, - 898, 898, 898, 898, 898, 898, 898, 898, - 898, 898, 898, 1344, 887, 1344, 887, 887, - 1344, 1344, 1344, 1344, 1344, 1344, 1497, 1498, - 175, 175, 175, 175, 175, 175, 175, 175, - 1485, 1486, 1487, 1488, 1489, 1490, 1491, 1492, - 1493, 1494, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - - 864, 864, 864, 864, 864, 864, 864, 864, - 864, 864, 864, 864, 864, 864, 864, 864, - 864, 864, 864, 864, 864, 864, 864, 864, - 864, 864, 864, 864, 864, 864, 864, 864, - 864, 864, 864, 864, 864, 864, 864, 864, - 864, 864, 864, 864, 864, 864, 864, 864, - 864, 864, 864, 864, 864, 864, 864, 864, - 864, 864, 864, 864, 864, 864, 864, 864, - 864, 864, 864, 864, 864, 864, 864, 864, - 864, 864, 864, 864, 864, 864, 864, 864, - 864, 864, 864, 864, 864, 864, 864, 864, - 864, 864, 864, 864, 864, 864, 864, 864, - 864, 864, 864, 864, 864, 864, 864, 864, - 864, 864, 864, 864, 864, 864, 864, 864, - 864, 864, 864, 864, 864, 864, 864, 864, - 864, 864, 864, 864, 864, 864, 864, 864, - 864, 864, 864, 864, 864, 864, 864, 864, - 864, 864, 864, 864, 864, 864, 864, 864, - 864, 864, 864, 864, 864, 864, 864, 864, - 864, 864, 864, 864, 864, 864, 864, 864, - 864, 864, 864, 864, 864, 864, 864, 864, - 864, 864, 864, 864, 864, 864, 864, 864, - 864, 864, 864, 864, 864, 864, 864, 864, - 864, 864, 864, 864, 864, 864, 864, 864, - 864, 864, 864, 864, 864, 864, 864, 864, - 864, 864, 864, 864, 864, 864, 864, 864, - 864, 864, 864, 864, 864, 864, 864, 864, - 864, 864, 864, 864, 864, 864, 864, 864, - 864, 864, 864, 864, 864, 864, 864, 864, - 864, 864, 864, 864, 864, 864, 864, 864, - 864, 864, 864, 864, 864, 864, 864, 864, - 864, 864, 864, 864, 864, 864, 864, 864, - - 864, 864, 864, 864, 864, 864, 864, 864, - 864, 864, 864, 864, 864, 864, 864, 864, - 864, 864, 864, 864, 864, 864, 864, 864, - 864, 864, 864, 864, 864, 864, 864, 864, - 864, 864, 864, 864, 864, 864, 864, 864, - 864, 864, 864, 864, 864, 864, 864, 864, - 864, 864, 864, 864, 864, 864, 864, 864, - 864, 864, 864, 864, 864, 864, 864, 864, - 864, 864, 864, 864, 864, 864, 864, 864, - 864, 864, 864, 864, 864, 864, 864, 864, - 864, 864, 864, 864, 864, 864, 864, 864, - 864, 864, 864, 864, 864, 864, 864, 864, - 864, 864, 864, 864, 864, 864, 864, 864, - 864, 864, 864, 864, 864, 864, 864, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - - 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, - 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, - 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, - 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, - 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, - 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, - 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, - 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, - 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, - 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, - 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, - 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, - 1499, 1499, 1499, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 879, 879, 879, 879, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - - 754, 754, 754, 754, 754, 754, 754, 754, - 754, 754, 754, 754, 754, 754, 754, 754, - 754, 754, 754, 754, 754, 754, 754, 754, - 754, 754, 754, 754, 754, 754, 754, 754, - 754, 754, 754, 754, 754, 754, 754, 754, - 754, 754, 754, 754, 754, 754, 754, 754, - 754, 754, 754, 754, 754, 754, 754, 754, - 754, 754, 754, 754, 754, 754, 754, 754, - 754, 754, 754, 754, 754, 754, 754, 754, - 754, 754, 754, 754, 754, 754, 754, 754, - 754, 754, 754, 754, 754, 754, 754, 754, - 754, 754, 754, 754, 754, 754, 754, 754, - 754, 754, 754, 754, 754, 754, 754, 754, - 754, 754, 754, 754, 754, 754, 754, 754, - 754, 754, 754, 754, 754, 754, 754, 754, - 754, 754, 754, 754, 754, 754, 754, 754, - 754, 754, 754, 754, 754, 754, 754, 754, - 754, 754, 754, 754, 754, 754, 754, 754, - 754, 754, 754, 754, 754, 754, 754, 754, - 754, 754, 754, 754, 754, 754, 754, 754, - 754, 754, 754, 754, 754, 754, 754, 754, - 754, 754, 754, 754, 754, 754, 754, 754, - 754, 754, 754, 754, 754, 754, 754, 754, - 754, 754, 754, 754, 754, 754, 754, 754, - 754, 754, 754, 754, 754, 754, 754, 754, - 754, 754, 754, 754, 754, 754, 754, 754, - 754, 754, 754, 754, 754, 754, 754, 754, - 754, 754, 754, 754, 754, 754, 754, 754, - 754, 754, 754, 754, 754, 754, 754, 754, - 754, 754, 754, 754, 754, 754, 754, 754, - 754, 754, 754, 754, 754, 754, 754, 754, - 754, 754, 754, 754, 754, 754, 754, 754, - - 754, 754, 754, 754, 754, 754, 754, 754, - 754, 754, 754, 754, 754, 754, 754, 754, - 754, 754, 754, 754, 754, 754, 754, 754, - 754, 754, 754, 754, 754, 754, 754, 754, - 754, 754, 754, 754, 754, 754, 754, 754, - 754, 754, 754, 754, 754, 754, 754, 754, - 754, 754, 754, 754, 754, 754, 754, 754, - 754, 754, 754, 754, 754, 754, 754, 754, - 754, 754, 754, 754, 754, 754, 754, 754, - 754, 754, 754, 754, 754, 754, 754, 754, - 754, 754, 754, 754, 754, 754, 754, 754, - 1500, 1500, 1500, 1501, 1501, 1501, 754, 754, - 754, 754, 754, 754, 754, 754, 754, 754, - 754, 754, 754, 754, 754, 754, 754, 754, - 754, 754, 754, 754, 754, 754, 754, 754, - 754, 754, 754, 754, 754, 754, 754, 754, - 754, 754, 1501, 754, 754, 754, 1500, 1501, - 1500, 1501, 754, 754, 754, 754, 754, 754, - 754, 754, 754, 754, 754, 754, 754, 754, - 754, 754, 754, 754, 754, 754, 754, 754, - 754, 754, 754, 754, 754, 754, 754, 754, - 754, 754, 754, 754, 754, 754, 754, 754, - 754, 754, 754, 754, 754, 754, 754, 754, - 754, 754, 754, 754, 754, 754, 754, 754, - 754, 754, 754, 754, 754, 754, 754, 754, - 754, 754, 754, 754, 754, 754, 754, 754, - 754, 754, 754, 754, 754, 754, 754, 754, - 754, 754, 754, 754, 754, 754, 754, 754, - 754, 754, 754, 754, 754, 754, 754, 754, - 754, 754, 754, 754, 754, 754, 754, 754, - 754, 754, 754, 754, 754, 754, 754, 754, - 754, 754, 754, 754, 754, 754, 754, 754, - - 754, 754, 754, 754, 754, 754, 754, 754, - 754, 754, 754, 754, 754, 754, 754, 754, - 754, 754, 754, 754, 754, 754, 754, 754, - 754, 754, 754, 754, 754, 754, 754, 754, - 754, 754, 754, 754, 754, 754, 754, 754, - 754, 754, 754, 754, 754, 754, 754, 754, - 754, 754, 754, 754, 754, 754, 754, 754, - 754, 754, 754, 754, 754, 754, 754, 754, - 754, 754, 754, 754, 754, 754, 754, 754, - 754, 754, 754, 754, 754, 754, 754, 754, - 754, 754, 754, 754, 754, 754, 754, 754, - 754, 754, 754, 754, 754, 754, 754, 754, - 754, 754, 754, 754, 754, 754, 754, 754, - 754, 754, 754, 754, 754, 754, 754, 754, - 754, 754, 754, 754, 754, 754, 754, 754, - 754, 1500, 1501, 1501, 754, 754, 754, 754, - 754, 754, 754, 754, 754, 754, 754, 754, - 754, 754, 754, 754, 754, 754, 754, 754, - 754, 754, 754, 754, 754, 754, 754, 754, - 754, 754, 754, 754, 754, 754, 754, 754, - 754, 754, 754, 754, 754, 754, 754, 754, - 754, 754, 754, 754, 754, 754, 754, 754, - 754, 754, 754, 754, 754, 754, 754, 754, - 754, 754, 754, 754, 754, 754, 754, 754, - 754, 754, 754, 754, 754, 754, 754, 754, - 754, 754, 754, 754, 754, 754, 754, 754, - 754, 754, 754, 754, 754, 754, 754, 754, - 754, 754, 754, 754, 754, 754, 754, 754, - 754, 754, 754, 754, 754, 754, 754, 754, - 754, 754, 754, 754, 754, 754, 754, 754, - 754, 754, 754, 754, 754, 754, 754, 754, - 754, 754, 754, 754, 754, 754, 754, 754, - - 754, 754, 754, 754, 754, 754, 754, 754, - 754, 754, 754, 754, 754, 754, 754, 754, - 754, 754, 754, 754, 754, 754, 754, 754, - 754, 754, 754, 754, 754, 754, 754, 754, - 754, 754, 754, 754, 754, 754, 754, 754, - 754, 754, 754, 754, 754, 754, 754, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - - 899, 899, 899, 899, 899, 899, 899, 899, - 899, 899, 899, 899, 899, 899, 899, 899, - 899, 899, 899, 899, 899, 899, 899, 899, - 899, 899, 899, 899, 899, 899, 899, 899, - 899, 899, 899, 899, 899, 899, 899, 899, - 899, 899, 899, 899, 899, 899, 899, 899, - 899, 899, 899, 899, 899, 899, 899, 899, - 899, 899, 899, 899, 899, 899, 899, 899, - 899, 899, 899, 899, 899, 899, 899, 899, - 899, 899, 899, 899, 899, 899, 899, 899, - 899, 899, 899, 899, 899, 899, 899, 899, - 899, 899, 899, 899, 899, 899, 899, 899, - 899, 899, 899, 899, 899, 899, 899, 899, - 899, 899, 899, 899, 899, 899, 899, 899, - 899, 899, 899, 899, 899, 899, 899, 899, - 899, 899, 899, 899, 899, 899, 899, 899, - 899, 899, 899, 899, 899, 899, 899, 899, - 899, 899, 899, 899, 899, 899, 899, 899, - 899, 899, 899, 899, 899, 899, 899, 899, - 899, 899, 899, 899, 899, 899, 899, 899, - 899, 899, 899, 899, 899, 899, 899, 899, - 899, 899, 899, 899, 899, 899, 899, 899, - 899, 899, 899, 899, 899, 899, 899, 899, - 899, 899, 899, 899, 899, 899, 899, 899, - 899, 899, 899, 899, 899, 899, 899, 899, - 899, 899, 899, 899, 899, 899, 899, 899, - 899, 899, 899, 899, 899, 899, 899, 899, - 899, 899, 899, 899, 899, 899, 899, 899, - 899, 899, 899, 899, 899, 899, 899, 899, - 899, 899, 899, 899, 899, 899, 899, 899, - 899, 899, 899, 899, 899, 899, 899, 899, - 899, 899, 899, 899, 899, 899, 899, 899, - - 899, 899, 899, 899, 899, 899, 899, 899, - 899, 899, 899, 899, 899, 899, 899, 899, - 899, 899, 899, 899, 899, 899, 899, 899, - 899, 899, 899, 899, 899, 899, 899, 899, - 899, 899, 899, 899, 899, 899, 899, 899, - 899, 899, 899, 899, 899, 899, 899, 899, - 899, 899, 899, 899, 899, 899, 899, 899, - 899, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - - 898, 898, 898, 898, 898, 898, 898, 898, - 898, 898, 898, 898, 898, 898, 898, 898, - 898, 898, 898, 898, 898, 898, 898, 898, - 898, 898, 898, 898, 898, 898, 898, 898, - 898, 898, 898, 898, 898, 898, 898, 898, - 898, 898, 898, 898, 898, 898, 898, 898, - 898, 898, 898, 898, 898, 898, 898, 898, - 898, 898, 898, 898, 898, 898, 898, 898, - 898, 898, 898, 898, 898, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 898, 887, 887, 887, 887, 887, 887, 887, - 887, 887, 887, 887, 887, 887, 887, 887, - 887, 887, 887, 887, 887, 887, 887, 887, - 887, 887, 887, 887, 887, 887, 887, 887, - 887, 887, 887, 887, 887, 887, 887, 887, - 887, 887, 887, 887, 887, 887, 887, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 1344, - 1344, 1344, 1344, 1346, 1346, 1346, 1346, 1346, - 1346, 1346, 1346, 1346, 1346, 1346, 1346, 1346, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - - 1502, 1503, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - - 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, - 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, - 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, - 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, - 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, - 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, - 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, - 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, - 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, - 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, - 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, - 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, - 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, - 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, - 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, - 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, - 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, - 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, - 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, - 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, - 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, - 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, - 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, - 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, - 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, - 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, - 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, - 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, - 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, - 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, - 1504, 1504, 1504, 1504, 1504, 1504, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - - 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, - 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, - 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, - 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, - 1504, 1504, 1504, 1504, 1504, 1504, 1504, 175, - 175, 1124, 1504, 1504, 1504, 1504, 1504, 1504, - 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, - 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, - 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, - 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, - 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, - 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, - 1504, 1504, 1504, 1504, 1504, 1505, 1506, 1507, - 1507, 1507, 1504, 1504, 1504, 1508, 1505, 1505, - 1505, 1505, 1505, 1509, 1509, 1509, 1509, 1509, - 1509, 1509, 1509, 1510, 1510, 1510, 1510, 1510, - 1510, 1510, 1510, 1504, 1504, 1511, 1511, 1511, - 1511, 1511, 1510, 1510, 1504, 1504, 1504, 1504, - 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, - 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, - 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, - 1504, 1504, 1511, 1511, 1511, 1511, 1504, 1504, - 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, - 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, - 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, - 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, - 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, - 1504, 1504, 1504, 1504, 1504, 1504, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - - 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, - 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, - 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, - 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, - 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, - 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, - 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, - 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, - 1424, 1424, 1512, 1512, 1512, 1424, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - - 811, 811, 811, 811, 811, 811, 811, 811, - 811, 811, 811, 811, 811, 811, 811, 811, - 811, 811, 811, 811, 811, 811, 811, 811, - 811, 811, 811, 811, 811, 811, 811, 811, - 811, 811, 811, 811, 811, 811, 811, 811, - 811, 811, 811, 811, 811, 811, 811, 811, - 811, 811, 811, 811, 811, 811, 811, 811, - 811, 811, 811, 811, 811, 811, 811, 811, - 811, 811, 811, 811, 811, 811, 811, 811, - 811, 811, 811, 811, 811, 811, 811, 811, - 811, 811, 811, 811, 811, 811, 811, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, - 1513, 1513, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - - 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, - 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, - 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, - 1514, 1514, 1515, 1515, 1515, 1515, 1515, 1515, - 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, - 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, - 1515, 1515, 1515, 1515, 1514, 1514, 1514, 1514, - 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, - 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, - 1514, 1514, 1514, 1514, 1514, 1514, 1515, 1515, - 1515, 1515, 1515, 1515, 1515, 175, 1515, 1515, - 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, - 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, - 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, - 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, - 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, - 1514, 1514, 1515, 1515, 1515, 1515, 1515, 1515, - 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, - 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, - 1515, 1515, 1515, 1515, 1514, 175, 1514, 1514, - 175, 175, 1514, 175, 175, 1514, 1514, 175, - 175, 1514, 1514, 1514, 1514, 175, 1514, 1514, - 1514, 1514, 1514, 1514, 1514, 1514, 1515, 1515, - 1515, 1515, 175, 1515, 175, 1515, 1515, 1515, - 1515, 105, 1515, 1515, 175, 1515, 1515, 1515, - 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, - 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, - 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, - 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, - 1514, 1514, 1515, 1515, 1515, 1515, 1515, 1515, - 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, - 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, - - 1515, 1515, 1515, 1515, 1514, 1514, 175, 1514, - 1514, 1514, 1514, 175, 175, 1514, 1514, 1514, - 1514, 1514, 1514, 1514, 1514, 175, 1514, 1514, - 1514, 1514, 1514, 1514, 1514, 175, 1515, 1515, - 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, - 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, - 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, - 1514, 1514, 175, 1514, 1514, 1514, 1514, 175, - 1514, 1514, 1514, 1514, 1514, 175, 1514, 175, - 175, 175, 1514, 1514, 1514, 1514, 1514, 1514, - 1514, 175, 1515, 1515, 1515, 1515, 1515, 1515, - 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, - 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, - 1515, 1515, 1515, 1515, 1514, 1514, 1514, 1514, - 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, - 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, - 1514, 1514, 1514, 1514, 1514, 1514, 1515, 1515, - 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, - 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, - 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, - 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, - 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, - 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, - 1514, 1514, 1515, 1515, 1515, 1515, 1515, 1515, - 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, - 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, - 1515, 1515, 1515, 1515, 1514, 1514, 1514, 1514, - 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, - 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, - 1514, 1514, 1514, 1514, 1514, 1514, 1515, 1515, - 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, - 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, - - 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, - 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, - 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, - 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, - 1514, 1514, 1515, 1515, 1515, 1515, 1515, 1515, - 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, - 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, - 1515, 1515, 1515, 1515, 1514, 1514, 1514, 1514, - 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, - 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, - 1514, 1514, 1514, 1514, 1514, 1514, 1515, 1515, - 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, - 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, - 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, - 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, - 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, - 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, - 1514, 1514, 1515, 1515, 1515, 1515, 1515, 1515, - 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, - 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, - 1515, 1515, 1515, 1515, 106, 106, 175, 175, - 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, - 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, - 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, - 1514, 1516, 1515, 1515, 1515, 1515, 1515, 1515, - 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, - 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, - 1515, 1515, 1515, 1517, 1515, 1515, 1515, 1515, - 1515, 1515, 1514, 1514, 1514, 1514, 1514, 1514, - 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, - 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, - 1514, 1514, 1514, 1516, 1515, 1515, 1515, 1515, - - 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, - 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, - 1515, 1515, 1515, 1515, 1515, 1517, 1515, 1515, - 1515, 1515, 1515, 1515, 1514, 1514, 1514, 1514, - 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, - 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, - 1514, 1514, 1514, 1514, 1514, 1516, 1515, 1515, - 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, - 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, - 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1517, - 1515, 1515, 1515, 1515, 1515, 1515, 1514, 1514, - 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, - 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, - 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1516, - 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, - 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, - 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, - 1515, 1517, 1515, 1515, 1515, 1515, 1515, 1515, - 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, - 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, - 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, - 1514, 1516, 1515, 1515, 1515, 1515, 1515, 1515, - 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, - 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, - 1515, 1515, 1515, 1517, 1515, 1515, 1515, 1515, - 1515, 1515, 1518, 1221, 175, 175, 1519, 1520, - 1521, 1522, 1523, 1524, 1525, 1526, 1527, 1528, - 1519, 1520, 1521, 1522, 1523, 1524, 1525, 1526, - 1527, 1528, 1519, 1520, 1521, 1522, 1523, 1524, - 1525, 1526, 1527, 1528, 1519, 1520, 1521, 1522, - 1523, 1524, 1525, 1526, 1527, 1528, 1519, 1520, - 1521, 1522, 1523, 1524, 1525, 1526, 1527, 1528, - - 252, 252, 252, 252, 252, 252, 252, 252, - 252, 252, 252, 252, 252, 252, 252, 252, - 252, 252, 252, 252, 252, 252, 252, 252, - 252, 252, 252, 252, 252, 252, 252, 252, - 252, 252, 252, 252, 252, 252, 252, 252, - 252, 252, 252, 252, 252, 252, 252, 252, - 252, 252, 252, 252, 252, 252, 252, 252, - 252, 252, 252, 252, 252, 252, 252, 252, - 252, 252, 252, 252, 252, 252, 252, 252, - 252, 252, 252, 252, 252, 252, 252, 252, - 252, 252, 252, 252, 252, 252, 252, 252, - 252, 252, 252, 252, 252, 252, 252, 252, - 252, 252, 252, 252, 252, 252, 252, 252, - 252, 252, 252, 252, 252, 252, 252, 252, - 252, 252, 252, 252, 252, 252, 252, 252, - 252, 252, 252, 252, 252, 252, 252, 252, - 252, 252, 252, 252, 252, 252, 252, 252, - 252, 252, 252, 252, 252, 252, 252, 252, - 252, 252, 252, 252, 252, 252, 252, 252, - 252, 252, 252, 252, 252, 252, 252, 252, - 252, 252, 252, 252, 252, 252, 252, 252, - 252, 252, 252, 252, 252, 252, 252, 252, - 252, 252, 252, 252, 252, 252, 252, 252, - 252, 252, 252, 252, 252, 252, 252, 252, - 252, 252, 252, 252, 252, 252, 252, 252, - 252, 252, 252, 252, 252, 252, 252, 252, - 252, 252, 252, 252, 252, 252, 252, 252, - 252, 252, 252, 252, 252, 252, 252, 252, - 252, 252, 252, 252, 252, 252, 252, 252, - 252, 252, 252, 252, 252, 252, 252, 252, - 252, 252, 252, 252, 252, 252, 252, 252, - 252, 252, 252, 252, 252, 252, 252, 252, - - 1529, 1529, 1529, 1529, 284, 1529, 1529, 1529, - 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, - 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, - 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, - 284, 1529, 1529, 284, 1529, 284, 284, 1529, - 284, 1529, 1529, 1529, 1529, 1529, 1529, 1529, - 1529, 1529, 1529, 284, 1529, 1529, 1529, 1529, - 284, 1529, 284, 1529, 284, 284, 284, 284, - 284, 284, 1529, 284, 284, 284, 284, 1529, - 284, 1529, 284, 1529, 284, 1529, 1529, 1529, - 284, 1529, 1529, 284, 1529, 284, 284, 1529, - 284, 1529, 284, 1529, 284, 1529, 284, 1529, - 284, 1529, 1529, 284, 1529, 284, 284, 1529, - 1529, 1529, 1529, 284, 1529, 1529, 1529, 1529, - 1529, 1529, 1529, 284, 1529, 1529, 1529, 1529, - 284, 1529, 1529, 1529, 1529, 284, 1529, 284, - 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, - 1529, 1529, 284, 1529, 1529, 1529, 1529, 1529, - 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, - 1529, 1529, 1529, 1529, 284, 284, 284, 284, - 284, 1529, 1529, 1529, 284, 1529, 1529, 1529, - 1529, 1529, 284, 1529, 1529, 1529, 1529, 1529, - 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, - 1529, 1529, 1529, 1529, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, - 1530, 1530, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, + 1513, 1513, 1513, 1514, 1515, 1515, 1514, 1514, + 1516, 1516, 1513, 1517, 1517, 1514, 1518, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + + 177, 1519, 1519, 1519, 1519, 1519, 1519, 177, + 177, 1519, 1519, 1519, 1519, 1519, 1519, 177, + 177, 1519, 1519, 1519, 1519, 1519, 1519, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + + 1519, 1519, 1519, 1519, 1519, 1519, 1519, 177, + 1519, 1519, 1519, 1519, 1519, 1519, 1519, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + + 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, + 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, + 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, + 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, + + 1520, 1520, 1520, 1521, 1521, 1522, 1521, 1521, + 1522, 1521, 1521, 1523, 1521, 1524, 177, 177, + 1525, 1526, 1527, 1528, 1529, 1530, 1531, 1532, + 1533, 1534, 177, 177, 177, 177, 177, 177, + + 1535, 1536, 1536, 1536, 1536, 1536, 1536, 1536, + 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, + 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, + 1536, 1536, 1536, 1536, 1535, 1536, 1536, 1536, + + 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, + 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, + 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, + 1535, 1536, 1536, 1536, 1536, 1536, 1536, 1536, + + 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, + 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, + 1536, 1536, 1536, 1536, 1535, 1536, 1536, 1536, + 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, + + 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, + 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, + 1535, 1536, 1536, 1536, 1536, 1536, 1536, 1536, + 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, + + 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, + 1536, 1536, 1536, 1536, 1535, 1536, 1536, 1536, + 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, + 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, + + 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, + 1535, 1536, 1536, 1536, 1536, 1536, 1536, 1536, + 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, + 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, + + 1536, 1536, 1536, 1536, 1535, 1536, 1536, 1536, + 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, + 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, + 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, + + 1536, 1536, 1536, 1536, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 735, 735, 735, 735, 735, 735, 735, 735, + 735, 735, 735, 735, 735, 735, 735, 735, - 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, - 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, - 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, - 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, - 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, - 1181, 1181, 1181, 1181, 175, 175, 175, 175, - 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, - 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, - 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, - 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, - 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, - 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, - 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, - 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, - 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, - 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, - 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, - 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, - 1181, 1181, 1181, 1181, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, - 1151, 1151, 1151, 1151, 1151, 1151, 1151, 175, - 175, 1151, 1151, 1151, 1151, 1151, 1151, 1151, - 1151, 1151, 1151, 1151, 1151, 1151, 1151, 175, - 175, 1151, 1151, 1151, 1151, 1151, 1151, 1151, - 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, - 175, 1151, 1151, 1151, 1151, 1151, 1151, 1151, - 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - - 1531, 1531, 1532, 1533, 1534, 1535, 1536, 1537, - 1538, 1539, 1540, 175, 175, 175, 175, 175, - 681, 681, 681, 681, 681, 681, 681, 681, - 681, 681, 681, 681, 681, 681, 681, 681, - 681, 681, 681, 681, 681, 681, 681, 681, - 681, 681, 681, 681, 681, 681, 681, 175, - 1541, 681, 1541, 1541, 1541, 1541, 1541, 1541, - 1541, 1541, 1541, 1541, 1541, 681, 1541, 681, - 1541, 1541, 681, 1541, 1541, 1541, 681, 1541, - 1541, 1541, 681, 681, 681, 681, 681, 1541, - 1541, 1541, 1541, 1541, 1541, 1541, 1541, 681, - 1541, 1541, 1541, 1541, 1541, 1541, 1541, 681, - 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, - 1541, 1541, 1542, 1542, 175, 175, 175, 175, - 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, - 1541, 681, 1541, 681, 681, 1541, 1541, 681, - 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, - 1541, 1541, 681, 681, 681, 681, 1541, 1541, - 681, 1541, 1541, 1541, 1541, 1541, 1541, 1541, - 1541, 1541, 1541, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 1543, 1543, - 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, - 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, - 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, - - 1293, 1544, 1544, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 1293, 1293, 1293, 1293, 1293, 1293, 1293, 1293, - 1293, 1293, 1293, 1293, 1293, 1293, 1293, 1293, - 1293, 1293, 1293, 1293, 1293, 1293, 1293, 1293, - 1293, 1293, 1293, 1293, 1293, 1293, 1293, 1293, - 1293, 1293, 1544, 1544, 1544, 1544, 1544, 1544, - 1544, 1544, 1544, 175, 175, 175, 175, 175, - 1293, 1293, 1293, 1293, 1293, 1293, 1293, 1293, - 1293, 175, 175, 175, 175, 175, 175, 175, - 1544, 1544, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - - 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, - 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, - 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, - 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, - 1151, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 1151, 1151, 1151, 1151, 1151, 1151, 175, 1151, - 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, - 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, - 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, - 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, - 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, - 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, - 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, - 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, - 1151, 1151, 1151, 1151, 1151, 175, 175, 175, - 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, - 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, - 1151, 1151, 1151, 1151, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, - 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, - 1151, 1151, 1151, 1151, 1151, 1150, 1150, 1151, - 1151, 1151, 1151, 1151, 1150, 1151, 1151, 1151, - 1151, 1151, 1151, 1151, 1151, 175, 1151, 1151, - 1151, 1151, 1151, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, - 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, - 1151, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - - 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, - 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, - 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, - 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, - 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, - 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, - 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, - 1151, 1151, 1151, 1151, 1151, 1151, 1151, 175, - 1151, 175, 1151, 1151, 1151, 1151, 1151, 1151, - 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, - 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, - 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, - 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, - 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, - 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, - 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, - 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, - 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, - 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, - 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, - 1150, 1151, 1150, 1151, 1150, 1151, 1151, 1151, - 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1150, - 1151, 1150, 1150, 1151, 1151, 1151, 1151, 1151, - 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, - 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, - 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, - 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, - 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, - 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, - 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, - 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, - 175, 1151, 1151, 1151, 1151, 175, 175, 175, - - 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1151, - 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, - 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1150, - 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, - 1150, 1150, 1150, 1150, 1150, 1151, 1151, 1151, - 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, - 1151, 1151, 1150, 1150, 1150, 1150, 1150, 1150, - 1150, 1150, 1150, 1150, 1150, 1150, 175, 175, - 1542, 1542, 1542, 1542, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, - 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, - 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 1151, 1151, 1151, 1151, 1151, - - 1545, 1151, 1151, 1151, 1151, 1151, 1151, 1151, - 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, - 1151, 1545, 1151, 1151, 1151, 1545, 1151, 1545, - 1151, 1545, 1151, 1545, 1151, 1151, 1151, 1545, - 1151, 1151, 1151, 1151, 1151, 1151, 1545, 1545, - 1151, 1151, 1151, 1151, 1545, 1151, 1545, 1545, - 1151, 1151, 1151, 1151, 1545, 1151, 1151, 1151, - 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, - 1151, 175, 175, 175, 175, 1151, 1151, 1151, - 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, - 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, - 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, - 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, - 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, - 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, - 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, - 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, - 1151, 1151, 1151, 1151, 1151, 1151, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - - 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, - 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, - 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, - 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, - 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, - 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, - 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, - 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, - 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, - 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, - 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, - 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, - 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, - 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, - 1150, 1150, 1150, 1150, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 1546, 1546, - - 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, - 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, - 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, - 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, - 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, - 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, - 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, - 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, - 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, - 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, - 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, - 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, - 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, - 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, - 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, - 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, - 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, - 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, - 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, - 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, - 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, - 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, - 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, - 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, - 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, - 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, - 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, - 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, - 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, - 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, - 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, - 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, - - 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, - 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, - 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, - 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, - 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, - 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, - 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, - 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, - 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, - 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, - 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, - 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, - 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, - 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, - 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, - 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, - 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, - 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, - 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, - 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, - 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, - 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, - 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, - 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, - 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, - 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, - 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1299, - 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, - 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, - 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, - 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, - 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, - - 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, - 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, - 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, - 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, - 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, - 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, - 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, - 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, - 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, - 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, - 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, - 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, - 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, - 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, - 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, - 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, - 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, - 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, - 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, - 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, - 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, - 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, - 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, - 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, - 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, - 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, - 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, - 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, - 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, - 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, - 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, - 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, - - 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, - 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, - 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, - 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, - 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, - 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, - 1302, 1302, 1302, 1302, 1302, 1299, 1299, 1299, - 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, - 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, - 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, - 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, - 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, - 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, - 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, - 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, - 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, - 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, - 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, - 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, - 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, - 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, - 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, - 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, - 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, - 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, - 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, - 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, - 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, - 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, - 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, - 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, - 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, - - 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, - 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, - 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, - 1503, 1503, 1503, 1503, 1503, 1503, 1299, 1299, - 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, - 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, - 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, - 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, - 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, - 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, - 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, - 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, - 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, - 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, - 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, - 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, - 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, - 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, - 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, - 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, - 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, - 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, - 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, - 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, - 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, - 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, - 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, - 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, - 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, - 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, - 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, - 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, - - 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, - 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, - 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, - 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, - 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, - 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, - 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, - 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, - 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, - 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, - 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, - 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, - 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, - 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, - 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, - 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, - 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, - 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, - 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, - 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, - 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, - 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, - 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, - 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, - 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, - 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, - 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, - 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, - 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, - 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, - 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, - 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, - - 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, - 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, - 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, - 1547, 1547, 1547, 1547, 1547, 1547, 1299, 1299, - 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, - 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, - 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, - 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, - 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, - 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, - 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, - 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, - 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, - 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, - 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, - 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, - 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, - 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, - 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, - 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, - 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, - 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, - 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, - 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, - 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, - 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, - 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, - 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, - 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, - 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, - 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, - 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, - - 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, - 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, - 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, - 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, - 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, - 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, - 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, - 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, - 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, - 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, - 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, - 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, - 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, - 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, - 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, - 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, - 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, - 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, - 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, - 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, - 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, - 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, - 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, - 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, - 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, - 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, - 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, - 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, - 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, - 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, - 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, - 1299, 1299, 1299, 1299, 1299, 1299, 1546, 1546, - - 1083, 1509, 1083, 1083, 1083, 1083, 1083, 1083, - 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, - 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, - 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, - 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, - 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, - 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, - 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, - 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, - 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, - 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, - 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, - 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, - 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, - 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, - 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, - 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, - 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, - 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, - 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, - 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, - 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, - 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, - 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, - 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, - 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, - 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, - 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, - 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, - 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, - 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, - 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, + 735, 735, 735, 735, 735, 735, 735, 177, + 177, 177, 177, 737, 737, 737, 737, 737, + 737, 737, 737, 737, 737, 737, 737, 737, + 737, 737, 737, 737, 737, 737, 737, 737, + + 737, 737, 737, 737, 737, 737, 737, 737, + 737, 737, 737, 737, 737, 737, 737, 737, + 737, 737, 737, 737, 737, 737, 737, 737, + 737, 737, 737, 737, 177, 177, 177, 177, + + 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, + 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, + 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, + 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, + + 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, + 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, + 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, + 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, + + 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, + 1373, 1373, 1373, 1373, 1373, 1373, 1377, 1377, + 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, + 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, + + 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, + 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, + 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, + 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, + + 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, + 1539, 1539, 1539, 1376, 1376, 1376, 1372, 1372, + 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, + 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, + + 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, + 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, + 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, + 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, + + 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, + 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, + 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, + 1374, 1374, 1372, 1372, 1372, 1372, 1372, 1372, + + 1540, 1541, 1542, 1543, 1544, 1545, 1545, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 1546, 1547, 1548, 1549, 1550, + 177, 177, 177, 177, 177, 1551, 1552, 283, + + 283, 283, 283, 283, 283, 283, 283, 283, + 283, 1553, 283, 283, 283, 283, 283, 283, + 283, 283, 283, 283, 283, 283, 283, 256, + 283, 283, 283, 283, 283, 256, 283, 256, + + 283, 283, 256, 283, 283, 256, 283, 283, + 283, 283, 283, 283, 283, 283, 283, 283, + 304, 304, 304, 304, 304, 304, 304, 304, + 304, 304, 304, 304, 304, 304, 304, 304, + + 304, 304, 304, 304, 304, 304, 304, 304, + 304, 304, 304, 304, 304, 304, 304, 304, + 304, 304, 304, 304, 304, 304, 304, 304, + 304, 304, 304, 304, 304, 304, 304, 304, + + 304, 304, 304, 304, 304, 304, 304, 304, + 304, 304, 304, 304, 304, 304, 304, 304, + 304, 304, 1554, 1554, 1554, 1554, 1554, 1554, + 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, + + 1554, 1554, 288, 288, 288, 288, 288, 288, + 288, 288, 288, 288, 288, 288, 288, 288, + 288, 288, 288, 304, 304, 304, 304, 304, + 304, 304, 304, 304, 304, 304, 304, 304, + + 304, 304, 304, 304, 304, 304, 304, 304, + 304, 304, 304, 304, 304, 304, 304, 304, + 304, 304, 304, 304, 304, 304, 304, 304, + 304, 304, 304, 304, 304, 304, 1105, 1331, + + 288, 288, 288, 288, 288, 288, 288, 288, + 288, 288, 288, 288, 288, 288, 288, 288, + 304, 304, 304, 304, 304, 304, 304, 304, + 304, 304, 304, 304, 304, 304, 304, 304, + + 304, 304, 304, 304, 304, 304, 304, 304, + 304, 304, 304, 304, 304, 304, 304, 304, + 288, 288, 304, 304, 304, 304, 304, 304, + 304, 304, 304, 304, 304, 304, 304, 304, + + 304, 304, 304, 304, 304, 304, 304, 304, + 288, 288, 288, 288, 288, 288, 288, 288, + 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, + 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, + + 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, + 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, + 304, 304, 304, 304, 304, 304, 304, 304, + 304, 304, 304, 304, 1556, 1177, 288, 288, + + 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, + 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, + 1558, 1559, 1560, 1561, 1562, 1563, 1563, 1564, + 1565, 1566, 177, 177, 177, 177, 177, 177, + + 153, 153, 153, 153, 981, 981, 981, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 1326, 1567, 1567, 1568, 1568, 1105, 1331, 1105, + 1331, 1105, 1331, 1105, 1331, 1105, 1331, 1105, + + 1331, 1105, 1331, 1105, 1331, 1341, 1341, 1569, + 1570, 1326, 1326, 1326, 1326, 1568, 1568, 1568, + 1571, 1572, 1573, 177, 1574, 1575, 9, 9, + 1567, 16, 1124, 16, 1124, 16, 1124, 1576, + + 1326, 1326, 1577, 1578, 1579, 1580, 1581, 177, + 1326, 12, 13, 1326, 177, 177, 177, 177, + 304, 304, 304, 1582, 304, 288, 304, 304, + 304, 304, 304, 304, 304, 304, 304, 304, + + 304, 304, 304, 304, 304, 304, 304, 304, + 304, 304, 304, 304, 304, 304, 304, 304, + 304, 304, 304, 304, 304, 304, 304, 304, + 304, 304, 304, 304, 304, 288, 288, 1583, + + 177, 9, 1326, 1576, 12, 13, 1326, 1584, + 16, 1124, 1326, 1577, 1571, 1578, 1573, 1585, + 1586, 1587, 1588, 1589, 1590, 1591, 1592, 1593, + 1594, 1595, 1575, 1574, 1596, 1581, 1597, 9, + + 1326, 1598, 1598, 1598, 1598, 1598, 1598, 1598, + 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, + 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, + 1598, 1598, 1598, 39, 1326, 46, 1599, 1568, + + 1599, 1600, 1600, 1600, 1600, 1600, 1600, 1600, + 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, + 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, + 1600, 1600, 1600, 39, 1581, 46, 1581, 1245, + + 1246, 1325, 16, 1124, 1324, 1352, 1601, 1350, + 1350, 1350, 1350, 1350, 1350, 1350, 1350, 1350, + 1353, 1601, 1601, 1601, 1601, 1601, 1601, 1601, + 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, + + 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, + 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, + 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, + 1601, 1601, 1601, 1601, 1601, 1601, 1602, 1602, + + 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, + 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, + 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, + 1603, 1603, 1603, 1603, 1603, 1603, 1603, 177, + + 177, 177, 1603, 1603, 1603, 1603, 1603, 1603, + 177, 177, 1603, 1603, 1603, 1603, 1603, 1603, + 177, 177, 1603, 1603, 1603, 1603, 1603, 1603, + 177, 177, 1603, 1603, 1603, 177, 177, 177, + + 50, 12, 1581, 1599, 1206, 12, 12, 177, + 51, 36, 36, 36, 36, 51, 51, 177, + 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, + 1138, 1604, 1604, 1604, 1605, 51, 1606, 1606, + + 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, + 1607, 1607, 1607, 1607, 177, 1607, 1607, 1607, + 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, + 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, + + 1607, 1607, 1607, 1607, 1607, 1607, 1607, 177, + 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, + 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, + 1607, 1607, 1607, 177, 1607, 1607, 177, 1607, + + 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, + 1607, 1607, 1607, 1607, 1607, 1607, 177, 177, + 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, + 1607, 1607, 1607, 1607, 1607, 1607, 177, 177, + + 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, + 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, + 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, + 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, + + 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, + 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, + 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, + 1607, 1607, 1607, 177, 177, 177, 177, 177, + + 1608, 1609, 1608, 177, 177, 177, 177, 1610, + 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, + 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, + 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, + + 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, + 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, + 1610, 1610, 1610, 1610, 177, 177, 177, 1611, + 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, + + 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, + 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, + 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, + 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, + + 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, + 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, + 1612, 1612, 1612, 1612, 1612, 1613, 1613, 1613, + 1613, 1614, 1614, 1614, 1614, 1614, 1614, 1614, + + 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, + 1614, 1614, 1613, 177, 177, 177, 177, 177, + 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, + 1239, 1239, 1239, 1239, 177, 177, 177, 177, + + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, + 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, + + 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, + 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, + 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, + 1185, 1185, 1185, 1185, 1185, 984, 177, 177, + + 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, + 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, + 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, + 1615, 1615, 1615, 1615, 1615, 177, 177, 177, + + 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, + 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, + 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, + 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, + + 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, + 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, + 1616, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + + 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, + 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, + 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, + 1617, 1617, 1617, 1617, 1617, 1617, 1617, 177, + + 1618, 1618, 1618, 1618, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, + 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, + + 1619, 1620, 1619, 1619, 1619, 1619, 1619, 1619, + 1619, 1619, 1620, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + + 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, + 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, + 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, + 1621, 1621, 1621, 1621, 1621, 1621, 177, 1622, + + 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, + 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, + 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, + 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, + + 1623, 1623, 1623, 1623, 177, 177, 177, 177, + 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, + 1624, 1625, 1625, 1625, 1625, 1625, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + + 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, + 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, + 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, + 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, + + 1626, 1626, 1626, 1626, 1626, 1626, 1627, 1627, + 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, + 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, + 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, + + 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, + 1628, 1628, 1628, 1628, 1628, 1628, 1629, 1629, + 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, + 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, + + 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, + 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, + 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, + 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, + + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 177, 177, + + 1632, 1633, 1634, 1635, 1636, 1637, 1638, 1639, + 1640, 1641, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + + 1642, 1642, 1642, 1642, 1642, 1642, 256, 256, + 1642, 256, 1642, 1642, 1642, 1642, 1642, 1642, + 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, + 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, + + 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, + 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, + 1642, 1642, 1642, 1642, 1642, 1642, 256, 1642, + 1642, 256, 256, 256, 1642, 256, 256, 1642, + + 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, + 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, + 1643, 1643, 1643, 1643, 1643, 1643, 256, 1644, + 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, + + 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, + 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, + 1646, 1646, 1646, 1646, 1646, 1646, 1647, 1647, + 1647, 1647, 1648, 1648, 256, 256, 256, 1649, + + 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, + 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, + 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, + 1650, 1650, 256, 256, 256, 256, 256, 1651, + + 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, + 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, + 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, + 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, + + 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, + 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, + 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, + 256, 256, 256, 256, 256, 256, 1653, 1653, + + 1654, 1655, 1655, 1655, 256, 1655, 1655, 256, + 256, 256, 256, 256, 1655, 1656, 1655, 1657, + 1654, 1654, 1654, 1654, 256, 1654, 1654, 1654, + 256, 1654, 1654, 1654, 1654, 1654, 1654, 1654, + + 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, + 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, + 1654, 1654, 1654, 1654, 256, 256, 256, 256, + 1657, 1658, 1656, 256, 256, 256, 256, 1659, + + 1660, 1661, 1662, 1663, 1664, 1664, 1664, 1664, + 256, 256, 256, 256, 256, 256, 256, 256, + 1665, 1665, 1665, 1665, 1665, 1665, 1666, 1666, + 1667, 256, 256, 256, 256, 256, 256, 256, + + 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, + 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, + 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, + 1668, 1668, 1668, 1668, 1668, 1669, 1669, 1670, + + 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, + 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, + 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, + 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, + + 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, + 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, + 1671, 1671, 1671, 1671, 1671, 1671, 256, 256, + 256, 1672, 1672, 1672, 1672, 1672, 1672, 1672, + + 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, + 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, + 1673, 1673, 1673, 1673, 1673, 1673, 256, 256, + 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, + + 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, + 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, + 1675, 1675, 1675, 256, 256, 256, 256, 256, + 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, + + 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, + 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, + 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, + 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, + + 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, + 1677, 256, 256, 256, 256, 256, 256, 256, + 256, 256, 256, 256, 256, 256, 256, 256, + 256, 256, 256, 256, 256, 256, 256, 256, + + 1678, 1679, 1680, 1681, 1682, 1683, 1684, 1685, + 1686, 1687, 1687, 1687, 1687, 1687, 1687, 1687, + 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, + 1687, 1687, 1687, 1687, 1687, 1687, 1687, 256, + + 1688, 1689, 1688, 1690, 1690, 1690, 1690, 1690, + 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, + 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, + 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, + 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, + 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, + 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, + 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, + 1689, 1689, 1689, 1689, 1689, 1689, 1691, 1692, + 1692, 1693, 1693, 1693, 1693, 1693, 177, 177, + 177, 177, 1694, 1695, 1696, 1697, 1698, 1699, + 1700, 1701, 1702, 1703, 1703, 1703, 1703, 1703, + 1703, 1703, 1703, 1703, 1703, 1703, 1704, 1705, + 1706, 1707, 1708, 1709, 1710, 1711, 1712, 1713, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 1714, 1714, 1715, 1716, 1716, 1716, 1716, 1716, + 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, + 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, + 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, + 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, + 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, + 1715, 1715, 1715, 1714, 1714, 1714, 1714, 1715, + 1715, 1717, 1718, 1719, 1719, 1720, 1721, 1721, + 1721, 1721, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, + 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, + 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, + 1722, 177, 177, 177, 177, 177, 177, 177, + 1723, 1724, 1725, 1726, 1727, 1728, 1729, 1730, + 1731, 1732, 177, 177, 177, 177, 177, 177, + + 1733, 1733, 1733, 1734, 1734, 1734, 1734, 1734, + 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, + 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, + 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, + 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1735, + 1735, 1735, 1735, 1735, 1736, 1735, 1735, 1735, + 1735, 1735, 1735, 1737, 1737, 177, 1738, 1739, + 1740, 1741, 1742, 1743, 1744, 1745, 1746, 1747, + 1748, 1749, 1749, 1749, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 1750, 1750, 1751, 1752, 1752, 1752, 1752, 1752, + 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, + 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, + 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, + 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, + 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, + 1752, 1752, 1752, 1751, 1751, 1751, 1750, 1750, + 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1751, + 1753, 1752, 1752, 1752, 1752, 1754, 1754, 1755, + 1756, 177, 177, 177, 177, 177, 177, 177, + 1757, 1758, 1759, 1760, 1761, 1762, 1763, 1764, + 1765, 1766, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, + 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, + 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, + 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, + 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, + 1767, 1767, 1767, 1768, 1769, 1768, 1769, 1769, + 1768, 1768, 1768, 1768, 1768, 1768, 1770, 1771, + 177, 177, 177, 177, 177, 177, 177, 177, + 1772, 1773, 1774, 1775, 1776, 1777, 1778, 1779, + 1780, 1781, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + + 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, + 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, + 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, + 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, + 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, + 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, + 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, + 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, + 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, + 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, + 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, + 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, + 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, + 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, + 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, + 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, + 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, + 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, + 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, + 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, + 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, + 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, + 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, + 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, + 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, + 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, + 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, + 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, + 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, + 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, + 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, + 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, + + 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, + 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, + 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, + 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, + 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, + 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, + 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, + 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, + 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, + 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, + 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, + 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, + 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, + 1782, 1782, 1782, 1782, 1782, 1782, 1782, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + + 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, + 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, + 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, + 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, + 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, + 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, + 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, + 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, + 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, + 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, + 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, + 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, + 1783, 1783, 1783, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 1784, 1784, 1784, 1784, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + + 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, + 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, + 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, + 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, + 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, + 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, + 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, + 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, + 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, + 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, + 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, + 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, + 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, + 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, + 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, + 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, + 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, + 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, + 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, + 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, + 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, + 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, + 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, + 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, + 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, + 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, + 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, + 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, + 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, + 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, + 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, + 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, + + 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, + 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, + 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, + 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, + 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, + 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, + 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, + 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, + 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, + 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, + 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, + 1786, 1786, 1786, 1787, 1787, 1787, 1785, 1785, + 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, + 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, + 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, + 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, + 1785, 1785, 1787, 1785, 1785, 1785, 1786, 1787, + 1786, 1787, 1785, 1785, 1785, 1785, 1785, 1785, + 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, + 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, + 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, + 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, + 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, + 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, + 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, + 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, + 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, + 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, + 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, + 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, + 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, + 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, + + 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, + 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, + 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, + 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, + 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, + 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, + 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, + 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, + 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, + 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, + 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, + 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, + 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, + 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, + 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, + 1785, 1786, 1787, 1787, 1785, 1785, 1785, 1785, + 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, + 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, + 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, + 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, + 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, + 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, + 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, + 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, + 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, + 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, + 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, + 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, + 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, + 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, + 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, + 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, + + 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, + 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, + 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, + 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, + 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, + 1785, 1785, 1785, 1785, 1785, 1785, 1785, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + + 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, + 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, + 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, + 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, + 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, + 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, + 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, + 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, + 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, + 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, + 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, + 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, + 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, + 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, + 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, + 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, + 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, + 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, + 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, + 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, + 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, + 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, + 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, + 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, + 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, + 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, + 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, + 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, + 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, + 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, + 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, + 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, + + 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, + 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, + 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, + 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, + 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, + 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, + 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, + 1788, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + + 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, + 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, + 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, + 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, + 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, + 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, + 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, + 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, + 1789, 1789, 1789, 1789, 1789, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 1789, 1790, 1790, 1790, 1790, 1790, 1790, 1790, + 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, + 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, + 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, + 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, + 1790, 1790, 1790, 1790, 1790, 1790, 1790, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 1791, + 1791, 1791, 1791, 1792, 1792, 1792, 1792, 1792, + 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + + 1793, 1794, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + + 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, + 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, + 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, + 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, + 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, + 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, + 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, + 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, + 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, + 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, + 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, + 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, + 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, + 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, + 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, + 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, + 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, + 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, + 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, + 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, + 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, + 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, + 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, + 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, + 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, + 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, + 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, + 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, + 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, + 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, + 1795, 1795, 1795, 1795, 1795, 1795, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + + 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, + 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, + 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, + 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, + 1795, 1795, 1795, 1795, 1795, 1795, 1795, 177, + 177, 1185, 1795, 1795, 1795, 1795, 1795, 1795, + 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, + 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, + 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, + 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, + 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, + 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, + 1795, 1795, 1795, 1795, 1795, 1796, 1797, 1798, + 1798, 1798, 1795, 1795, 1795, 1799, 1796, 1796, + 1796, 1796, 1796, 1800, 1800, 1800, 1800, 1800, + 1800, 1800, 1800, 1801, 1801, 1801, 1801, 1801, + 1801, 1801, 1801, 1795, 1795, 1802, 1802, 1802, + 1802, 1802, 1801, 1801, 1795, 1795, 1795, 1795, + 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, + 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, + 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, + 1795, 1795, 1802, 1802, 1802, 1802, 1795, 1795, + 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, + 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, + 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, + 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, + 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, + 1795, 1795, 1795, 1795, 1795, 1795, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + + 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, + 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, + 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, + 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, + 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, + 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, + 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, + 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, + 1614, 1614, 1803, 1803, 1803, 1614, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, - 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, - 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, - 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, - 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, - 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, - 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, - 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, - 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, - 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, - 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, - 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, - 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, - 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, - 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, - 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, - 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, - 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, - 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, - 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, - 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, - 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, - 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, - 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, - 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, - 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, - 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, - 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, - 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, - 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, - 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, - 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, - 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, - - 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, - 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, - 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, - 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, - 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, - 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, - 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, - 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, - 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, - 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, - 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, - 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, - 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, - 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, - 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, - 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, - 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, - 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, - 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, - 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, - 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, - 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, - 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, - 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, - 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, - 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, - 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, - 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, - 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, - 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, - 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, - 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, - - 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, - 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, - 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, - 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, - 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, - 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, - 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, - 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, - 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, - 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, - 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, - 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, - 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, - 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, - 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, - 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, - 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, - 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, - 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, - 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, - 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, - 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, - 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, - 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, - 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, - 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, - 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, - 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, - 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, - 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, - 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, - 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, - - 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, - 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, - 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, - 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, - 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, - 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, - 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, - 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, - 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, - 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, - 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, - 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, - 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, - 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, - 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, - 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, - 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, - 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, - 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, - 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, - 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, - 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, - 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, - 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, - 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, - 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, - 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, - 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, - 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, - 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, - 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, - 1549, 1549, 1549, 1549, 1549, 1549, 1546, 1546, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, + 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, + 1804, 1804, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + + 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, + 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, + 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, + 1805, 1805, 1806, 1806, 1806, 1806, 1806, 1806, + 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, + 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, + 1806, 1806, 1806, 1806, 1805, 1805, 1805, 1805, + 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, + 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, + 1805, 1805, 1805, 1805, 1805, 1805, 1806, 1806, + 1806, 1806, 1806, 1806, 1806, 177, 1806, 1806, + 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, + 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, + 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, + 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, + 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, + 1805, 1805, 1806, 1806, 1806, 1806, 1806, 1806, + 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, + 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, + 1806, 1806, 1806, 1806, 1805, 177, 1805, 1805, + 177, 177, 1805, 177, 177, 1805, 1805, 177, + 177, 1805, 1805, 1805, 1805, 177, 1805, 1805, + 1805, 1805, 1805, 1805, 1805, 1805, 1806, 1806, + 1806, 1806, 177, 1806, 177, 1806, 1806, 1806, + 1806, 1807, 1806, 1806, 177, 1806, 1806, 1806, + 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, + 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, + 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, + 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, + 1805, 1805, 1806, 1806, 1806, 1806, 1806, 1806, + 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, + 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, + + 1806, 1806, 1806, 1806, 1805, 1805, 177, 1805, + 1805, 1805, 1805, 177, 177, 1805, 1805, 1805, + 1805, 1805, 1805, 1805, 1805, 177, 1805, 1805, + 1805, 1805, 1805, 1805, 1805, 177, 1806, 1806, + 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, + 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, + 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, + 1805, 1805, 177, 1805, 1805, 1805, 1805, 177, + 1805, 1805, 1805, 1805, 1805, 177, 1805, 177, + 177, 177, 1805, 1805, 1805, 1805, 1805, 1805, + 1805, 177, 1806, 1806, 1806, 1806, 1806, 1806, + 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, + 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, + 1806, 1806, 1806, 1806, 1805, 1805, 1805, 1805, + 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, + 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, + 1805, 1805, 1805, 1805, 1805, 1805, 1806, 1806, + 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, + 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, + 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, + 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, + 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, + 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, + 1805, 1805, 1806, 1806, 1806, 1806, 1806, 1806, + 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, + 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, + 1806, 1806, 1806, 1806, 1805, 1805, 1805, 1805, + 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, + 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, + 1805, 1805, 1805, 1805, 1805, 1805, 1806, 1806, + 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, + 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, + + 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, + 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, + 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, + 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, + 1805, 1805, 1806, 1806, 1806, 1806, 1806, 1806, + 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, + 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, + 1806, 1806, 1806, 1806, 1805, 1805, 1805, 1805, + 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, + 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, + 1805, 1805, 1805, 1805, 1805, 1805, 1806, 1806, + 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, + 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, + 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, + 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, + 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, + 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, + 1805, 1805, 1806, 1806, 1806, 1806, 1806, 1806, + 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, + 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, + 1806, 1806, 1806, 1806, 1178, 1178, 177, 177, + 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, + 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, + 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, + 1805, 1808, 1806, 1806, 1806, 1806, 1806, 1806, + 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, + 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, + 1806, 1806, 1806, 1809, 1806, 1806, 1806, 1806, + 1806, 1806, 1805, 1805, 1805, 1805, 1805, 1805, + 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, + 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, + 1805, 1805, 1805, 1808, 1806, 1806, 1806, 1806, + + 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, + 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, + 1806, 1806, 1806, 1806, 1806, 1809, 1806, 1806, + 1806, 1806, 1806, 1806, 1805, 1805, 1805, 1805, + 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, + 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, + 1805, 1805, 1805, 1805, 1805, 1808, 1806, 1806, + 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, + 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, + 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1809, + 1806, 1806, 1806, 1806, 1806, 1806, 1805, 1805, + 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, + 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, + 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1808, + 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, + 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, + 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, + 1806, 1809, 1806, 1806, 1806, 1806, 1806, 1806, + 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, + 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, + 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, + 1805, 1808, 1806, 1806, 1806, 1806, 1806, 1806, + 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, + 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, + 1806, 1806, 1806, 1809, 1806, 1806, 1806, 1806, + 1806, 1806, 1810, 1811, 177, 177, 1812, 1813, + 1814, 1815, 1816, 1817, 1818, 1819, 1820, 1821, + 1812, 1813, 1814, 1815, 1816, 1817, 1818, 1819, + 1820, 1821, 1812, 1813, 1814, 1815, 1816, 1817, + 1818, 1819, 1820, 1821, 1812, 1813, 1814, 1815, + 1816, 1817, 1818, 1819, 1820, 1821, 1812, 1813, + 1814, 1815, 1816, 1817, 1818, 1819, 1820, 1821, + + 256, 256, 256, 256, 256, 256, 256, 256, + 256, 256, 256, 256, 256, 256, 256, 256, + 256, 256, 256, 256, 256, 256, 256, 256, + 256, 256, 256, 256, 256, 256, 256, 256, + 256, 256, 256, 256, 256, 256, 256, 256, + 256, 256, 256, 256, 256, 256, 256, 256, + 256, 256, 256, 256, 256, 256, 256, 256, + 256, 256, 256, 256, 256, 256, 256, 256, + 256, 256, 256, 256, 256, 256, 256, 256, + 256, 256, 256, 256, 256, 256, 256, 256, + 256, 256, 256, 256, 256, 256, 256, 256, + 256, 256, 256, 256, 256, 256, 256, 256, + 256, 256, 256, 256, 256, 256, 256, 256, + 256, 256, 256, 256, 256, 256, 256, 256, + 256, 256, 256, 256, 256, 256, 256, 256, + 256, 256, 256, 256, 256, 256, 256, 256, + 256, 256, 256, 256, 256, 256, 256, 256, + 256, 256, 256, 256, 256, 256, 256, 256, + 256, 256, 256, 256, 256, 256, 256, 256, + 256, 256, 256, 256, 256, 256, 256, 256, + 256, 256, 256, 256, 256, 256, 256, 256, + 256, 256, 256, 256, 256, 256, 256, 256, + 256, 256, 256, 256, 256, 256, 256, 256, + 256, 256, 256, 256, 256, 256, 256, 256, + 256, 256, 256, 256, 256, 256, 256, 256, + 256, 256, 256, 256, 256, 256, 256, 256, + 256, 256, 256, 256, 256, 256, 256, 256, + 256, 256, 256, 256, 256, 256, 256, 256, + 256, 256, 256, 256, 256, 256, 256, 256, + 256, 256, 256, 256, 256, 256, 256, 256, + 256, 256, 256, 256, 256, 256, 256, 256, + 256, 256, 256, 256, 256, 256, 256, 256, + + 1822, 1822, 1822, 1822, 288, 1822, 1822, 1822, + 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, + 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, + 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, + 288, 1822, 1822, 288, 1822, 288, 288, 1822, + 288, 1822, 1822, 1822, 1822, 1822, 1822, 1822, + 1822, 1822, 1822, 288, 1822, 1822, 1822, 1822, + 288, 1822, 288, 1822, 288, 288, 288, 288, + 288, 288, 1822, 288, 288, 288, 288, 1822, + 288, 1822, 288, 1822, 288, 1822, 1822, 1822, + 288, 1822, 1822, 288, 1822, 288, 288, 1822, + 288, 1822, 288, 1822, 288, 1822, 288, 1822, + 288, 1822, 1822, 288, 1822, 288, 288, 1822, + 1822, 1822, 1822, 288, 1822, 1822, 1822, 1822, + 1822, 1822, 1822, 288, 1822, 1822, 1822, 1822, + 288, 1822, 1822, 1822, 1822, 288, 1822, 288, + 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, + 1822, 1822, 288, 1822, 1822, 1822, 1822, 1822, + 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, + 1822, 1822, 1822, 1822, 288, 288, 288, 288, + 288, 1822, 1822, 1822, 288, 1822, 1822, 1822, + 1822, 1822, 288, 1822, 1822, 1822, 1822, 1822, + 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, + 1822, 1822, 1822, 1822, 288, 288, 288, 288, + 288, 288, 288, 288, 288, 288, 288, 288, + 288, 288, 288, 288, 288, 288, 288, 288, + 288, 288, 288, 288, 288, 288, 288, 288, + 288, 288, 288, 288, 288, 288, 288, 288, + 288, 288, 288, 288, 288, 288, 288, 288, + 288, 288, 288, 288, 288, 288, 288, 288, + 1823, 1823, 288, 288, 288, 288, 288, 288, + 288, 288, 288, 288, 288, 288, 288, 288, + + 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, + 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, + 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, + 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, + 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, + 1242, 1242, 1242, 1242, 177, 177, 177, 177, + 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, + 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, + 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, + 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, + 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, + 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, + 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, + 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, + 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, + 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, + 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, + 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, + 1242, 1242, 1242, 1242, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, + 1212, 1212, 1212, 1212, 1212, 1212, 1212, 177, + 177, 1212, 1212, 1212, 1212, 1212, 1212, 1212, + 1212, 1212, 1212, 1212, 1212, 1212, 1212, 177, + 177, 1212, 1212, 1212, 1212, 1212, 1212, 1212, + 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, + 177, 1212, 1212, 1212, 1212, 1212, 1212, 1212, + 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + + 1824, 1824, 1825, 1826, 1827, 1828, 1829, 1830, + 1831, 1832, 1833, 177, 177, 177, 177, 177, + 685, 685, 685, 685, 685, 685, 685, 685, + 685, 685, 685, 685, 685, 685, 685, 685, + 685, 685, 685, 685, 685, 685, 685, 685, + 685, 685, 685, 685, 685, 685, 685, 177, + 1834, 685, 1834, 1834, 1834, 1834, 1834, 1834, + 1834, 1834, 1834, 1834, 1834, 685, 1834, 685, + 1834, 1834, 685, 1834, 1834, 1834, 685, 1834, + 1834, 1834, 685, 685, 685, 685, 685, 1834, + 1834, 1834, 1834, 1834, 1834, 1834, 1834, 685, + 1834, 1834, 1834, 1834, 1834, 1834, 1834, 685, + 1834, 1834, 1834, 1834, 1834, 1834, 1834, 1834, + 1834, 1834, 1835, 1835, 177, 177, 177, 177, + 1834, 1834, 1834, 1834, 1834, 1834, 1834, 1834, + 1834, 685, 1834, 685, 685, 1834, 1834, 685, + 1834, 1834, 1834, 1834, 1834, 1834, 1834, 1834, + 1834, 1834, 685, 685, 685, 685, 1834, 1834, + 685, 1834, 1834, 1834, 1834, 1834, 1834, 1834, + 1834, 1834, 1834, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 1836, 1836, + 1836, 1836, 1836, 1836, 1836, 1836, 1836, 1836, + 1836, 1836, 1836, 1836, 1836, 1836, 1836, 1836, + 1836, 1836, 1836, 1836, 1836, 1836, 1836, 1836, + + 1837, 1838, 1838, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, + 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, + 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, + 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, + 1366, 1366, 1838, 1838, 1838, 1838, 1838, 1838, + 1838, 1838, 1838, 177, 177, 177, 177, 177, + 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, + 1366, 177, 177, 177, 177, 177, 177, 177, + 1838, 1838, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + + 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, + 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, + 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, + 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, + 1212, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 1212, 1212, 1212, 1212, 1212, 1212, 177, 1212, + 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, + 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, + 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, + 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, + 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, + 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, + 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, + 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, + 1212, 1212, 1212, 1212, 1212, 177, 177, 177, + 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, + 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, + 1212, 1212, 1212, 1212, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, + 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, + 1212, 1212, 1212, 1212, 1212, 1211, 1211, 1212, + 1212, 1212, 1212, 1212, 1211, 1212, 1212, 1212, + 1212, 1212, 1212, 1212, 1212, 177, 1212, 1212, + 1212, 1212, 1212, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, + 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, + 1212, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + + 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, + 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, + 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, + 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, + 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, + 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, + 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, + 1212, 1212, 1212, 1212, 1212, 1212, 1212, 177, + 1212, 177, 1212, 1212, 1212, 1212, 1212, 1212, + 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, + 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, + 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, + 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, + 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, + 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, + 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, + 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, + 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, + 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, + 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, + 1211, 1212, 1211, 1212, 1211, 1212, 1212, 1212, + 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1211, + 1212, 1211, 1211, 1212, 1212, 1212, 1212, 1212, + 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, + 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, + 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, + 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, + 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, + 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, + 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, + 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, + 177, 1212, 1212, 1212, 1212, 177, 177, 177, + + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1212, + 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, + 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1211, + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + 1211, 1211, 1211, 1211, 1211, 1212, 1212, 1212, + 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, + 1212, 1212, 1211, 1211, 1211, 1211, 1211, 1211, + 1211, 1211, 1211, 1211, 1211, 1211, 177, 177, + 1835, 1835, 1835, 1835, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, + 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, + 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 1212, 1212, 1212, 1212, 1212, + + 1839, 1212, 1212, 1212, 1212, 1212, 1212, 1212, + 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, + 1212, 1839, 1212, 1212, 1212, 1839, 1212, 1839, + 1212, 1839, 1212, 1839, 1212, 1212, 1212, 1839, + 1212, 1212, 1212, 1212, 1212, 1212, 1839, 1839, + 1212, 1212, 1212, 1212, 1839, 1212, 1839, 1839, + 1212, 1212, 1212, 1212, 1839, 1212, 1212, 1212, + 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, + 1212, 177, 177, 177, 177, 1212, 1212, 1212, + 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, + 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, + 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, + 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, + 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, + 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, + 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, + 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, + 1212, 1212, 1212, 1212, 1212, 1212, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + 1211, 1211, 1211, 1211, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 1840, 1840, + + 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841, + 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841, + 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841, + 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841, + 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841, + 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841, + 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841, + 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841, + 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841, + 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841, + 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841, + 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841, + 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841, + 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841, + 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841, + 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841, + 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841, + 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841, + 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841, + 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841, + 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841, + 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841, + 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841, + 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841, + 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841, + 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841, + 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841, + 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841, + 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841, + 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841, + 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841, + 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841, + + 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841, + 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841, + 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841, + 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841, + 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841, + 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841, + 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841, + 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841, + 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841, + 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841, + 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841, + 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841, + 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841, + 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841, + 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841, + 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841, + 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841, + 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841, + 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841, + 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841, + 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841, + 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841, + 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841, + 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841, + 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841, + 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841, + 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1372, + 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, + 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, + 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, + 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, + 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, + + 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, + 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, + 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, + 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, + 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, + 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, + 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, + 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, + 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, + 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, + 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, + 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, + 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, + 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, + 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, + 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, + 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, + 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, + 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, + 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, + 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, + 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, + 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, + 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, + 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, + 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, + 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, + 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, + 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, + 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, + 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, + 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, + + 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, + 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, + 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, + 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, + 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, + 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, + 1376, 1376, 1376, 1376, 1376, 1372, 1372, 1372, + 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, + 1842, 1842, 1842, 1842, 1842, 1842, 1842, 1842, + 1842, 1842, 1842, 1842, 1842, 1842, 1842, 1842, + 1842, 1842, 1842, 1842, 1842, 1842, 1842, 1842, + 1842, 1842, 1842, 1842, 1842, 1842, 1842, 1842, + 1842, 1842, 1842, 1842, 1842, 1842, 1842, 1842, + 1842, 1842, 1842, 1842, 1842, 1842, 1842, 1842, + 1842, 1842, 1842, 1842, 1842, 1842, 1842, 1842, + 1842, 1842, 1842, 1842, 1842, 1842, 1842, 1842, + 1842, 1842, 1842, 1842, 1842, 1842, 1842, 1842, + 1842, 1842, 1842, 1842, 1842, 1842, 1842, 1842, + 1842, 1842, 1842, 1842, 1842, 1842, 1842, 1842, + 1842, 1842, 1842, 1842, 1842, 1842, 1842, 1842, + 1842, 1842, 1842, 1842, 1842, 1842, 1842, 1842, + 1842, 1842, 1842, 1842, 1842, 1842, 1842, 1842, + 1842, 1842, 1842, 1842, 1842, 1842, 1842, 1842, + 1842, 1842, 1842, 1842, 1842, 1842, 1842, 1842, + 1842, 1842, 1842, 1842, 1842, 1842, 1842, 1842, + 1842, 1842, 1842, 1842, 1842, 1842, 1842, 1842, + 1842, 1842, 1842, 1842, 1842, 1842, 1842, 1842, + 1842, 1842, 1842, 1842, 1842, 1842, 1842, 1842, + 1842, 1842, 1842, 1842, 1842, 1842, 1842, 1842, + 1842, 1842, 1842, 1842, 1842, 1842, 1842, 1842, + 1842, 1842, 1842, 1842, 1842, 1842, 1842, 1842, + 1842, 1842, 1842, 1842, 1842, 1842, 1842, 1842, + + 1842, 1842, 1842, 1842, 1842, 1842, 1842, 1842, + 1842, 1842, 1842, 1842, 1842, 1842, 1842, 1842, + 1842, 1842, 1842, 1842, 1842, 1842, 1842, 1842, + 1842, 1842, 1842, 1842, 1842, 1842, 1372, 1372, + 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, + 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, + 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, + 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, + 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, + 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, + 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, + 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, + 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, + 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, + 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, + 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, + 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, + 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, + 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, + 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, + 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, + 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, + 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, + 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, + 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, + 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, + 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, + 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, + 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, + 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, + 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, + 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, + + 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, + 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, + 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, + 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, + 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, + 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, + 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, + 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, + 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, + 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, + 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, + 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, + 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, + 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, + 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, + 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, + 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, + 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, + 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, + 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, + 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, + 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, + 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, + 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, + 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, + 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, + 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, + 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, + 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, + 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, + 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, + 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, + + 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841, + 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841, + 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841, + 1841, 1841, 1841, 1841, 1841, 1841, 1372, 1372, + 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, + 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, + 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, + 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, + 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, + 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, + 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, + 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, + 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, + 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, + 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, + 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, + 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, + 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, + 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, + 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, + 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, + 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, + 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, + 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, + 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, + 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, + 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, + 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, + 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, + 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, + 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, + 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, + + 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, + 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, + 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, + 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, + 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, + 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, + 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, + 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, + 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, + 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, + 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, + 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, + 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, + 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, + 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, + 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, + 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, + 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, + 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, + 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, + 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, + 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, + 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, + 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, + 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, + 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, + 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, + 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, + 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, + 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, + 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, + 1372, 1372, 1372, 1372, 1372, 1372, 1840, 1840, + + 1138, 1800, 1138, 1138, 1138, 1138, 1138, 1138, + 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, + 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, + 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, + 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, + 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, + 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, + 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, + 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, + 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, + 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, + 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, + 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, + 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, + 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, + 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, + 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, + 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, + 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, + 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, + 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, + 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, + 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, + 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, + 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, + 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, + 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, + 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, + 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, + 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, + 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, + 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, + + 1843, 1843, 1843, 1843, 1843, 1843, 1843, 1843, + 1843, 1843, 1843, 1843, 1843, 1843, 1843, 1843, + 1843, 1843, 1843, 1843, 1843, 1843, 1843, 1843, + 1843, 1843, 1843, 1843, 1843, 1843, 1843, 1843, + 1843, 1843, 1843, 1843, 1843, 1843, 1843, 1843, + 1843, 1843, 1843, 1843, 1843, 1843, 1843, 1843, + 1843, 1843, 1843, 1843, 1843, 1843, 1843, 1843, + 1843, 1843, 1843, 1843, 1843, 1843, 1843, 1843, + 1843, 1843, 1843, 1843, 1843, 1843, 1843, 1843, + 1843, 1843, 1843, 1843, 1843, 1843, 1843, 1843, + 1843, 1843, 1843, 1843, 1843, 1843, 1843, 1843, + 1843, 1843, 1843, 1843, 1843, 1843, 1843, 1843, + 1843, 1843, 1843, 1843, 1843, 1843, 1843, 1843, + 1843, 1843, 1843, 1843, 1843, 1843, 1843, 1843, + 1843, 1843, 1843, 1843, 1843, 1843, 1843, 1843, + 1843, 1843, 1843, 1843, 1843, 1843, 1843, 1843, + 1843, 1843, 1843, 1843, 1843, 1843, 1843, 1843, + 1843, 1843, 1843, 1843, 1843, 1843, 1843, 1843, + 1843, 1843, 1843, 1843, 1843, 1843, 1843, 1843, + 1843, 1843, 1843, 1843, 1843, 1843, 1843, 1843, + 1843, 1843, 1843, 1843, 1843, 1843, 1843, 1843, + 1843, 1843, 1843, 1843, 1843, 1843, 1843, 1843, + 1843, 1843, 1843, 1843, 1843, 1843, 1843, 1843, + 1843, 1843, 1843, 1843, 1843, 1843, 1843, 1843, + 1843, 1843, 1843, 1843, 1843, 1843, 1843, 1843, + 1843, 1843, 1843, 1843, 1843, 1843, 1843, 1843, + 1843, 1843, 1843, 1843, 1843, 1843, 1843, 1843, + 1843, 1843, 1843, 1843, 1843, 1843, 1843, 1843, + 1843, 1843, 1843, 1843, 1843, 1843, 1843, 1843, + 1843, 1843, 1843, 1843, 1843, 1843, 1843, 1843, + 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, + 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, + + 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, + 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, + 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, + 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, + 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, + 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, + 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, + 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, + 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, + 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, + 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, + 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, + 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, + 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, + 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, + 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, + 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, + 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, + 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, + 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, + 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, + 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, + 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, + 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, + 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, + 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, + 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, + 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, + 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, + 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, + 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, + 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, + + 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844, + 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844, + 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844, + 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844, + 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844, + 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844, + 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844, + 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844, + 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844, + 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844, + 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844, + 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844, + 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844, + 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844, + 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844, + 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844, + 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844, + 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844, + 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844, + 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844, + 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844, + 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844, + 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844, + 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844, + 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844, + 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844, + 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844, + 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844, + 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844, + 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844, + 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844, + 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844, + + 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844, + 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844, + 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844, + 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844, + 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844, + 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844, + 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844, + 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844, + 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844, + 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844, + 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844, + 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844, + 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844, + 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844, + 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844, + 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844, + 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844, + 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844, + 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844, + 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844, + 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844, + 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844, + 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844, + 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844, + 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844, + 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844, + 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844, + 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844, + 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844, + 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844, + 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844, + 1844, 1844, 1844, 1844, 1844, 1844, 1840, 1840, }; #define GET_PROP_INDEX(ucs4) \ @@ -4775,488 +4835,427 @@ static const unsigned short uc_property_trie[] = { (uc_property_trie[uc_property_trie[ucs2>>5] + (ucs2 & 0x1f)]) static const Properties uc_properties[] = { - { 9, 18, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 0, 0, 21, 0 }, - { 9, 8, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 0, 5, 17, 0 }, - { 9, 7, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 2, 2, 34, 0 }, - { 9, 8, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 3, 5, 35, 0 }, - { 9, 9, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 3, 5, 35, 0 }, - { 9, 7, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 33, 0 }, - { 9, 7, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 0, 0, 21, 0 }, - { 9, 8, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 0, 0, 21, 0 }, - { 6, 9, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 5, 32, 0 }, - { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 12, 6, 0 }, - { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 13, 3, 0 }, - { 25, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 0 }, - { 27, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 9, 0 }, - { 25, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 10, 0 }, - { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 0 }, - { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 8, 13, 3, 0 }, - { 21, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 13, 0, 0 }, - { 22, 10, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 13, 2, 0 }, - { 26, 3, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 9, 0 }, - { 25, 6, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 10, 11, 8, 0 }, - { 20, 3, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 11, 16, 0 }, - { 25, 6, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 10, 10, 8, 0 }, - { 25, 6, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 7, 0 }, - { 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 0 }, - { 3, 2, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 0 }, - { 3, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 0 }, - { 3, 2, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 0 }, - { 3, 2, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 0 }, - { 3, 2, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 0 }, - { 3, 2, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 0 }, - { 3, 2, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 0 }, - { 3, 2, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 0 }, - { 3, 2, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 0 }, - { 25, 6, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 11, 8, 0 }, - { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 10, 0, 8, 0 }, - { 26, 10, 0, 0, -1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 0 }, - { 26, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 0 }, - { 26, 10, 0, 0, -1, -2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 0 }, - { 14, 0, 0, 0, -1, 0, 32, 0, 0, 32, 0, 0, 0, 0, 1, 0, 7, 7, 12, 0 }, - { 21, 10, 0, 0, -1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 13, 0, 0 }, - { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 9, 0 }, - { 22, 10, 0, 0, -1, -2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 13, 2, 0 }, - { 28, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 0 }, - { 19, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 12, 0, 12, 0 }, - { 15, 0, 0, 0, -1, 0, 0, -32, -32, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 0 }, - { 26, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 17, 0 }, - { 22, 10, 0, 0, -1, -2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 13, 1, 0 }, - { 9, 7, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 3, 3, 35, 0 }, - { 6, 6, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 5, 4, 0 }, - { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 }, - { 27, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 10, 0 }, - { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 0 }, - { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 0 }, - { 23, 10, 0, 0, -1, 16, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 13, 3, 0 }, - { 10, 18, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 4, 4, 17, 0 }, - { 29, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 10, 0 }, - { 26, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 9, 0 }, - { 5, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 0 }, - { 5, 2, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 0 }, - { 28, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 18, 0 }, - { 15, 0, 0, 0, -1, 0, 0, 743, 743, 775, 0, 0, 0, 0, 1, 0, 7, 6, 12, 0 }, - { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 9, 0, 12, 0 }, - { 5, 2, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 0 }, - { 24, 10, 0, 0, -1, -16, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 13, 3, 0 }, - { 5, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 0 }, - { 15, 0, 0, 0, -1, 0, 0, 16, 13, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 0 }, - { 15, 0, 0, 0, -1, 0, 0, 121, 121, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 0 }, - { 14, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 7, 7, 12, 0 }, - { 15, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 0 }, - { 14, 0, 0, 0, -1, 0, 19, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 7, 12, 0 }, - { 15, 0, 0, 0, -1, 0, 0, -232, -232, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 0 }, - { 15, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 0 }, - { 15, 0, 0, 0, -1, 0, 0, 98, 98, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 0 }, - { 14, 0, 0, 0, -1, 0, -121, 0, 0, -121, 0, 0, 0, 0, 1, 0, 7, 7, 12, 0 }, - { 15, 0, 0, 0, -1, 0, 0, -300, -300, -268, 0, 0, 0, 0, 1, 0, 7, 6, 12, 0 }, - { 15, 0, 0, 0, -1, 0, 0, 195, 195, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 0 }, - { 14, 0, 0, 0, -1, 0, 210, 0, 0, 210, 0, 0, 0, 0, 1, 0, 7, 7, 12, 0 }, - { 14, 0, 0, 0, -1, 0, 206, 0, 0, 206, 0, 0, 0, 0, 1, 0, 7, 7, 12, 0 }, - { 14, 0, 0, 0, -1, 0, 205, 0, 0, 205, 0, 0, 0, 0, 1, 0, 7, 7, 12, 0 }, - { 14, 0, 0, 0, -1, 0, 79, 0, 0, 79, 0, 0, 0, 0, 1, 0, 7, 7, 12, 0 }, - { 14, 0, 0, 0, -1, 0, 202, 0, 0, 202, 0, 0, 0, 0, 1, 0, 7, 7, 12, 0 }, - { 14, 0, 0, 0, -1, 0, 203, 0, 0, 203, 0, 0, 0, 0, 1, 0, 7, 7, 12, 0 }, - { 14, 0, 0, 0, -1, 0, 207, 0, 0, 207, 0, 0, 0, 0, 1, 0, 7, 7, 12, 0 }, - { 15, 0, 0, 0, -1, 0, 0, 97, 97, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 0 }, - { 14, 0, 0, 0, -1, 0, 211, 0, 0, 211, 0, 0, 0, 0, 1, 0, 7, 7, 12, 0 }, - { 14, 0, 0, 0, -1, 0, 209, 0, 0, 209, 0, 0, 0, 0, 1, 0, 7, 7, 12, 0 }, - { 15, 0, 0, 0, -1, 0, 0, 163, 163, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 0 }, - { 14, 0, 0, 0, -1, 0, 213, 0, 0, 213, 0, 0, 0, 0, 1, 0, 7, 7, 12, 0 }, - { 15, 0, 0, 0, -1, 0, 0, 130, 130, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 0 }, - { 14, 0, 0, 0, -1, 0, 214, 0, 0, 214, 0, 0, 0, 0, 1, 0, 7, 7, 12, 0 }, - { 14, 0, 0, 0, -1, 0, 218, 0, 0, 218, 0, 0, 0, 0, 1, 0, 7, 7, 12, 0 }, - { 14, 0, 0, 0, -1, 0, 217, 0, 0, 217, 0, 0, 0, 0, 1, 0, 7, 7, 12, 0 }, - { 14, 0, 0, 0, -1, 0, 219, 0, 0, 219, 0, 0, 0, 0, 1, 0, 7, 7, 12, 0 }, - { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 8, 12, 0 }, - { 15, 0, 0, 0, -1, 0, 0, 56, 56, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 0 }, - { 14, 0, 0, 0, -1, 0, 2, 0, 1, 2, 0, 0, 0, 0, 1, 0, 7, 7, 12, 0 }, - { 16, 0, 0, 0, -1, 0, 1, -1, 0, 1, 0, 0, 0, 0, 1, 0, 7, 7, 12, 0 }, - { 15, 0, 0, 0, -1, 0, 0, -2, -1, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 0 }, - { 15, 0, 0, 0, -1, 0, 0, -79, -79, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 0 }, - { 15, 0, 0, 0, -1, 0, 0, 109, 109, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 0 }, - { 14, 0, 0, 0, -1, 0, -97, 0, 0, -97, 0, 0, 0, 0, 4, 0, 7, 7, 12, 0 }, - { 14, 0, 0, 0, -1, 0, -56, 0, 0, -56, 0, 0, 0, 0, 4, 0, 7, 7, 12, 0 }, - { 14, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 4, 0, 7, 7, 12, 0 }, - { 15, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 4, 0, 7, 6, 12, 0 }, - { 14, 0, 0, 0, -1, 0, -130, 0, 0, -130, 0, 0, 0, 0, 6, 0, 7, 7, 12, 0 }, - { 15, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 7, 6, 12, 0 }, - { 15, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 7, 6, 12, 0 }, - { 14, 0, 0, 0, -1, 0, 10795, 0, 0, 10795, 0, 0, 0, 0, 8, 0, 7, 7, 12, 0 }, - { 14, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 8, 0, 7, 7, 12, 0 }, - { 15, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 8, 0, 7, 6, 12, 0 }, - { 14, 0, 0, 0, -1, 0, -163, 0, 0, -163, 0, 0, 0, 0, 8, 0, 7, 7, 12, 0 }, - { 14, 0, 0, 0, -1, 0, 10792, 0, 0, 10792, 0, 0, 0, 0, 8, 0, 7, 7, 12, 0 }, - { 15, 0, 0, 0, -1, 0, 0, 10815, 10815, 0, 0, 0, 0, 0, 8, 0, 7, 6, 12, 0 }, - { 15, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 9, 0, 7, 6, 12, 0 }, - { 14, 0, 0, 0, -1, 0, -195, 0, 0, -195, 0, 0, 0, 0, 9, 0, 7, 7, 12, 0 }, - { 14, 0, 0, 0, -1, 0, 69, 0, 0, 69, 0, 0, 0, 0, 9, 0, 7, 7, 12, 0 }, - { 14, 0, 0, 0, -1, 0, 71, 0, 0, 71, 0, 0, 0, 0, 9, 0, 7, 7, 12, 0 }, - { 14, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 9, 0, 7, 7, 12, 0 }, - { 15, 0, 0, 0, -1, 0, 0, 10783, 10783, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 0 }, - { 15, 0, 0, 0, -1, 0, 0, 10780, 10780, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 0 }, - { 15, 0, 0, 0, -1, 0, 0, 10782, 10782, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 0 }, - { 15, 0, 0, 0, -1, 0, 0, -210, -210, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 0 }, - { 15, 0, 0, 0, -1, 0, 0, -206, -206, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 0 }, - { 15, 0, 0, 0, -1, 0, 0, -205, -205, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 0 }, - { 15, 0, 0, 0, -1, 0, 0, -202, -202, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 0 }, - { 15, 0, 0, 0, -1, 0, 0, -203, -203, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 0 }, - { 15, 0, 0, 0, -1, 0, 0, -207, -207, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 0 }, - { 15, 0, 0, 0, -1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 0 }, - { 15, 0, 0, 0, -1, 0, 0, 3, 3, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 0 }, - { 15, 0, 0, 0, -1, 0, 0, -209, -209, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 0 }, - { 15, 0, 0, 0, -1, 0, 0, -211, -211, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 0 }, - { 15, 0, 0, 0, -1, 0, 0, 10743, 10743, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 0 }, - { 15, 0, 0, 0, -1, 0, 0, 10749, 10749, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 0 }, - { 15, 0, 0, 0, -1, 0, 0, -213, -213, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 0 }, - { 15, 0, 0, 0, -1, 0, 0, -214, -214, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 0 }, - { 15, 0, 0, 0, -1, 0, 0, 10727, 10727, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 0 }, - { 15, 0, 0, 0, -1, 0, 0, -218, -218, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 0 }, - { 15, 0, 0, 0, -1, 0, 0, -69, -69, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 0 }, - { 15, 0, 0, 0, -1, 0, 0, -217, -217, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 0 }, - { 15, 0, 0, 0, -1, 0, 0, -71, -71, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 0 }, - { 15, 0, 0, 0, -1, 0, 0, -219, -219, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 0 }, - { 15, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 7, 6, 12, 0 }, - { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 0 }, - { 17, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 8, 12, 0 }, - { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 8, 12, 0 }, - { 17, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 8, 18, 0 }, - { 28, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 18, 0 }, - { 28, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 12, 0 }, - { 17, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 7, 8, 12, 0 }, - { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 7, 8, 12, 0 }, - { 28, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 12, 0 }, - { 0, 17, 230, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 28 }, - { 0, 17, 232, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 28 }, - { 0, 17, 220, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 28 }, - { 0, 17, 216, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 28 }, - { 0, 17, 202, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 28 }, - { 0, 17, 1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 28 }, - { 0, 17, 240, 0, -1, 0, 0, 84, 84, 116, 0, 0, 0, 0, 1, 4, 4, 4, 21, 28 }, - { 0, 17, 230, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 21, 28 }, - { 0, 17, 220, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 21, 28 }, - { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 4, 4, 4, 4, 28 }, - { 0, 17, 230, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 4, 4, 4, 21, 28 }, - { 0, 17, 220, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 4, 4, 4, 21, 28 }, - { 0, 17, 232, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 4, 4, 4, 21, 28 }, - { 0, 17, 220, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 4, 4, 4, 21, 28 }, - { 0, 17, 230, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 4, 4, 4, 21, 28 }, - { 0, 17, 233, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 4, 4, 4, 4, 28 }, - { 0, 17, 234, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 4, 4, 4, 4, 28 }, - { 0, 17, 233, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 4, 4, 4, 4, 28 }, - { 0, 17, 234, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 4, 28 }, - { 0, 17, 233, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 4, 28 }, - { 0, 17, 230, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 4, 4, 4, 21, 28 }, - { 14, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 10, 0, 7, 7, 12, 1 }, - { 15, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 10, 0, 7, 6, 12, 1 }, - { 28, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 1 }, + { 9, 18, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 0, 0, 21, 2 }, + { 9, 8, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 0, 5, 17, 2 }, + { 9, 7, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 2, 2, 34, 2 }, + { 9, 8, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 3, 5, 35, 2 }, + { 9, 9, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 3, 5, 35, 2 }, + { 9, 7, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 33, 2 }, + { 9, 7, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 0, 0, 21, 2 }, + { 9, 8, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 0, 0, 21, 2 }, + { 6, 9, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 5, 32, 2 }, + { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 12, 6, 2 }, + { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 13, 3, 2 }, + { 25, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 2 }, + { 27, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 9, 2 }, + { 25, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 10, 2 }, + { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 2 }, + { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 8, 13, 3, 2 }, + { 21, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 13, 0, 2 }, + { 22, 10, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 13, 2, 2 }, + { 26, 3, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 9, 2 }, + { 25, 6, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 10, 11, 8, 2 }, + { 20, 3, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 11, 16, 2 }, + { 25, 6, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 10, 10, 8, 2 }, + { 25, 6, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 7, 2 }, + { 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 2 }, + { 3, 2, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 2 }, + { 3, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 2 }, + { 3, 2, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 2 }, + { 3, 2, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 2 }, + { 3, 2, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 2 }, + { 3, 2, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 2 }, + { 3, 2, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 2 }, + { 3, 2, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 2 }, + { 3, 2, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 2 }, + { 25, 6, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 11, 8, 2 }, + { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 10, 0, 8, 2 }, + { 26, 10, 0, 0, -1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 2 }, + { 26, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 2 }, + { 26, 10, 0, 0, -1, -2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 2 }, + { 14, 0, 0, 0, -1, 0, 32, 0, 0, 32, 0, 0, 0, 0, 1, 0, 7, 7, 12, 3 }, + { 21, 10, 0, 0, -1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 13, 0, 2 }, + { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 9, 2 }, + { 22, 10, 0, 0, -1, -2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 13, 2, 2 }, + { 28, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 2 }, + { 19, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 12, 0, 12, 2 }, + { 15, 0, 0, 0, -1, 0, 0, -32, -32, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 3 }, + { 26, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 17, 2 }, + { 22, 10, 0, 0, -1, -2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 13, 1, 2 }, + { 9, 7, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 3, 3, 35, 2 }, + { 6, 6, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 5, 4, 2 }, + { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 2 }, + { 27, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 10, 2 }, + { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 2 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 3 }, + { 23, 10, 0, 0, -1, 16, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 13, 3, 2 }, + { 10, 18, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 4, 4, 17, 2 }, + { 29, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 10, 2 }, + { 26, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 9, 2 }, + { 5, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 2 }, + { 5, 2, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 2 }, + { 28, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 18, 2 }, + { 15, 0, 0, 0, -1, 0, 0, 743, 743, 775, 0, 0, 0, 0, 1, 0, 7, 6, 12, 2 }, + { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 9, 0, 12, 2 }, + { 5, 2, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 2 }, + { 24, 10, 0, 0, -1, -16, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 13, 3, 2 }, + { 5, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 2 }, + { 15, 0, 0, 0, -1, 0, 0, 16, 13, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 3 }, + { 15, 0, 0, 0, -1, 0, 0, 121, 121, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 3 }, + { 14, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 7, 7, 12, 3 }, + { 15, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 3 }, + { 14, 0, 0, 0, -1, 0, 19, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 7, 12, 3 }, + { 15, 0, 0, 0, -1, 0, 0, -232, -232, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 3 }, + { 15, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 3 }, + { 15, 0, 0, 0, -1, 0, 0, 98, 98, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 3 }, + { 14, 0, 0, 0, -1, 0, -121, 0, 0, -121, 0, 0, 0, 0, 1, 0, 7, 7, 12, 3 }, + { 15, 0, 0, 0, -1, 0, 0, -300, -300, -268, 0, 0, 0, 0, 1, 0, 7, 6, 12, 3 }, + { 15, 0, 0, 0, -1, 0, 0, 195, 195, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 3 }, + { 14, 0, 0, 0, -1, 0, 210, 0, 0, 210, 0, 0, 0, 0, 1, 0, 7, 7, 12, 3 }, + { 14, 0, 0, 0, -1, 0, 206, 0, 0, 206, 0, 0, 0, 0, 1, 0, 7, 7, 12, 3 }, + { 14, 0, 0, 0, -1, 0, 205, 0, 0, 205, 0, 0, 0, 0, 1, 0, 7, 7, 12, 3 }, + { 14, 0, 0, 0, -1, 0, 79, 0, 0, 79, 0, 0, 0, 0, 1, 0, 7, 7, 12, 3 }, + { 14, 0, 0, 0, -1, 0, 202, 0, 0, 202, 0, 0, 0, 0, 1, 0, 7, 7, 12, 3 }, + { 14, 0, 0, 0, -1, 0, 203, 0, 0, 203, 0, 0, 0, 0, 1, 0, 7, 7, 12, 3 }, + { 14, 0, 0, 0, -1, 0, 207, 0, 0, 207, 0, 0, 0, 0, 1, 0, 7, 7, 12, 3 }, + { 15, 0, 0, 0, -1, 0, 0, 97, 97, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 3 }, + { 14, 0, 0, 0, -1, 0, 211, 0, 0, 211, 0, 0, 0, 0, 1, 0, 7, 7, 12, 3 }, + { 14, 0, 0, 0, -1, 0, 209, 0, 0, 209, 0, 0, 0, 0, 1, 0, 7, 7, 12, 3 }, + { 15, 0, 0, 0, -1, 0, 0, 163, 163, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 3 }, + { 14, 0, 0, 0, -1, 0, 213, 0, 0, 213, 0, 0, 0, 0, 1, 0, 7, 7, 12, 3 }, + { 15, 0, 0, 0, -1, 0, 0, 130, 130, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 3 }, + { 14, 0, 0, 0, -1, 0, 214, 0, 0, 214, 0, 0, 0, 0, 1, 0, 7, 7, 12, 3 }, + { 14, 0, 0, 0, -1, 0, 218, 0, 0, 218, 0, 0, 0, 0, 1, 0, 7, 7, 12, 3 }, + { 14, 0, 0, 0, -1, 0, 217, 0, 0, 217, 0, 0, 0, 0, 1, 0, 7, 7, 12, 3 }, + { 14, 0, 0, 0, -1, 0, 219, 0, 0, 219, 0, 0, 0, 0, 1, 0, 7, 7, 12, 3 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 8, 12, 3 }, + { 15, 0, 0, 0, -1, 0, 0, 56, 56, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 3 }, + { 14, 0, 0, 0, -1, 0, 2, 0, 1, 2, 0, 0, 0, 0, 1, 0, 7, 7, 12, 3 }, + { 16, 0, 0, 0, -1, 0, 1, -1, 0, 1, 0, 0, 0, 0, 1, 0, 7, 7, 12, 3 }, + { 15, 0, 0, 0, -1, 0, 0, -2, -1, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 3 }, + { 15, 0, 0, 0, -1, 0, 0, -79, -79, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 3 }, + { 15, 0, 0, 0, -1, 0, 0, 109, 109, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 3 }, + { 14, 0, 0, 0, -1, 0, -97, 0, 0, -97, 0, 0, 0, 0, 4, 0, 7, 7, 12, 3 }, + { 14, 0, 0, 0, -1, 0, -56, 0, 0, -56, 0, 0, 0, 0, 4, 0, 7, 7, 12, 3 }, + { 14, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 4, 0, 7, 7, 12, 3 }, + { 15, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 4, 0, 7, 6, 12, 3 }, + { 14, 0, 0, 0, -1, 0, -130, 0, 0, -130, 0, 0, 0, 0, 6, 0, 7, 7, 12, 3 }, + { 15, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 7, 6, 12, 3 }, + { 15, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 7, 6, 12, 3 }, + { 14, 0, 0, 0, -1, 0, 10795, 0, 0, 10795, 0, 0, 0, 0, 8, 0, 7, 7, 12, 3 }, + { 14, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 8, 0, 7, 7, 12, 3 }, + { 15, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 8, 0, 7, 6, 12, 3 }, + { 14, 0, 0, 0, -1, 0, -163, 0, 0, -163, 0, 0, 0, 0, 8, 0, 7, 7, 12, 3 }, + { 14, 0, 0, 0, -1, 0, 10792, 0, 0, 10792, 0, 0, 0, 0, 8, 0, 7, 7, 12, 3 }, + { 15, 0, 0, 0, -1, 0, 0, 10815, 10815, 0, 0, 0, 0, 0, 8, 0, 7, 6, 12, 3 }, + { 15, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 9, 0, 7, 6, 12, 3 }, + { 14, 0, 0, 0, -1, 0, -195, 0, 0, -195, 0, 0, 0, 0, 9, 0, 7, 7, 12, 3 }, + { 14, 0, 0, 0, -1, 0, 69, 0, 0, 69, 0, 0, 0, 0, 9, 0, 7, 7, 12, 3 }, + { 14, 0, 0, 0, -1, 0, 71, 0, 0, 71, 0, 0, 0, 0, 9, 0, 7, 7, 12, 3 }, + { 14, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 9, 0, 7, 7, 12, 3 }, + { 15, 0, 0, 0, -1, 0, 0, 10783, 10783, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 3 }, + { 15, 0, 0, 0, -1, 0, 0, 10780, 10780, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 3 }, + { 15, 0, 0, 0, -1, 0, 0, 10782, 10782, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 3 }, + { 15, 0, 0, 0, -1, 0, 0, -210, -210, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 3 }, + { 15, 0, 0, 0, -1, 0, 0, -206, -206, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 3 }, + { 15, 0, 0, 0, -1, 0, 0, -205, -205, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 3 }, + { 15, 0, 0, 0, -1, 0, 0, -202, -202, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 3 }, + { 15, 0, 0, 0, -1, 0, 0, -203, -203, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 3 }, + { 15, 0, 0, 0, -1, 0, 0, -207, -207, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 3 }, + { 15, 0, 0, 0, -1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 3 }, + { 15, 0, 0, 0, -1, 0, 0, 3, 3, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 3 }, + { 15, 0, 0, 0, -1, 0, 0, -209, -209, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 3 }, + { 15, 0, 0, 0, -1, 0, 0, -211, -211, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 3 }, + { 15, 0, 0, 0, -1, 0, 0, 10743, 10743, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 3 }, + { 15, 0, 0, 0, -1, 0, 0, 10749, 10749, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 3 }, + { 15, 0, 0, 0, -1, 0, 0, -213, -213, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 3 }, + { 15, 0, 0, 0, -1, 0, 0, -214, -214, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 3 }, + { 15, 0, 0, 0, -1, 0, 0, 10727, 10727, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 3 }, + { 15, 0, 0, 0, -1, 0, 0, -218, -218, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 3 }, + { 15, 0, 0, 0, -1, 0, 0, -69, -69, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 3 }, + { 15, 0, 0, 0, -1, 0, 0, -217, -217, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 3 }, + { 15, 0, 0, 0, -1, 0, 0, -71, -71, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 3 }, + { 15, 0, 0, 0, -1, 0, 0, -219, -219, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 3 }, + { 15, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 7, 6, 12, 3 }, + { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 3 }, + { 17, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 8, 12, 2 }, + { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 8, 12, 2 }, + { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 2 }, + { 17, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 8, 18, 2 }, + { 28, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 18, 2 }, + { 28, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 12, 36 }, + { 17, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 7, 8, 12, 2 }, + { 28, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 12, 2 }, + { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 7, 8, 12, 2 }, + { 28, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 12, 2 }, + { 0, 17, 230, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 1 }, + { 0, 17, 232, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 1 }, + { 0, 17, 220, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 1 }, + { 0, 17, 216, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 1 }, + { 0, 17, 202, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 1 }, + { 0, 17, 1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 1 }, + { 0, 17, 240, 0, -1, 0, 0, 84, 84, 116, 0, 0, 0, 0, 1, 4, 4, 4, 21, 1 }, + { 0, 17, 230, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 21, 1 }, + { 0, 17, 220, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 21, 1 }, + { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 4, 4, 4, 4, 1 }, + { 0, 17, 230, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 4, 4, 4, 21, 1 }, + { 0, 17, 220, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 4, 4, 4, 21, 1 }, + { 0, 17, 232, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 4, 4, 4, 21, 1 }, + { 0, 17, 220, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 4, 4, 4, 21, 1 }, + { 0, 17, 230, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 4, 4, 4, 21, 1 }, + { 0, 17, 233, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 4, 4, 4, 4, 1 }, + { 0, 17, 234, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 4, 4, 4, 4, 1 }, + { 0, 17, 233, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 4, 4, 4, 4, 1 }, + { 0, 17, 234, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 4, 1 }, + { 0, 17, 233, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 4, 1 }, + { 0, 17, 230, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 4, 4, 4, 21, 1 }, + { 14, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 10, 0, 7, 7, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 10, 0, 7, 6, 12, 4 }, + { 28, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 4 }, { 13, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0 }, - { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 1 }, - { 15, 0, 0, 0, -1, 0, 0, 130, 130, 0, 0, 0, 0, 0, 9, 0, 7, 6, 12, 1 }, - { 14, 0, 0, 0, -1, 0, 38, 0, 0, 38, 0, 0, 0, 0, 1, 0, 7, 7, 12, 1 }, - { 14, 0, 0, 0, -1, 0, 37, 0, 0, 37, 0, 0, 0, 0, 1, 0, 7, 7, 12, 1 }, - { 14, 0, 0, 0, -1, 0, 64, 0, 0, 64, 0, 0, 0, 0, 1, 0, 7, 7, 12, 1 }, - { 14, 0, 0, 0, -1, 0, 63, 0, 0, 63, 0, 0, 0, 0, 1, 0, 7, 7, 12, 1 }, - { 15, 0, 0, 0, -1, 0, 0, 101, 101, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 1 }, - { 14, 0, 0, 0, -1, 0, 32, 0, 0, 32, 0, 0, 0, 0, 1, 0, 7, 7, 12, 1 }, - { 15, 0, 0, 0, -1, 0, 0, -38, -38, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 1 }, - { 15, 0, 0, 0, -1, 0, 0, -37, -37, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 1 }, - { 15, 0, 0, 0, -1, 0, 0, 105, 105, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 1 }, - { 15, 0, 0, 0, -1, 0, 0, -32, -32, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 1 }, - { 15, 0, 0, 0, -1, 0, 0, -31, -31, 1, 0, 0, 0, 0, 1, 0, 7, 6, 12, 1 }, - { 15, 0, 0, 0, -1, 0, 0, -64, -64, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 1 }, - { 15, 0, 0, 0, -1, 0, 0, -63, -63, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 1 }, - { 14, 0, 0, 0, -1, 0, 8, 0, 0, 8, 0, 0, 0, 0, 10, 0, 7, 7, 12, 1 }, - { 15, 0, 0, 0, -1, 0, 0, -62, -62, -30, 0, 0, 0, 0, 1, 0, 7, 6, 12, 1 }, - { 15, 0, 0, 0, -1, 0, 0, -57, -57, -25, 0, 0, 0, 0, 1, 0, 7, 6, 12, 1 }, - { 14, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 7, 12, 1 }, - { 15, 0, 0, 0, -1, 0, 0, -47, -47, -15, 0, 0, 0, 0, 1, 0, 7, 6, 12, 1 }, - { 15, 0, 0, 0, -1, 0, 0, -54, -54, -22, 0, 0, 0, 0, 1, 0, 7, 6, 12, 1 }, - { 15, 0, 0, 0, -1, 0, 0, -8, -8, 0, 0, 0, 0, 0, 4, 0, 7, 6, 12, 1 }, - { 14, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 6, 0, 7, 7, 12, 1 }, - { 15, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 6, 0, 7, 6, 12, 1 }, - { 14, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 7, 7, 12, 1 }, - { 15, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 4, 0, 7, 6, 12, 1 }, - { 15, 0, 0, 0, -1, 0, 0, -86, -86, -54, 0, 0, 0, 0, 1, 0, 7, 6, 12, 1 }, - { 15, 0, 0, 0, -1, 0, 0, -80, -80, -48, 0, 0, 0, 0, 1, 0, 7, 6, 12, 1 }, - { 15, 0, 0, 0, -1, 0, 0, 7, 7, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 1 }, - { 15, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 1 }, - { 14, 0, 0, 0, -1, 0, -60, 0, 0, -60, 0, 0, 0, 0, 5, 0, 7, 7, 12, 1 }, - { 15, 0, 0, 0, -1, 0, 0, -96, -96, -64, 0, 0, 0, 0, 5, 0, 7, 6, 12, 1 }, - { 26, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 12, 1 }, - { 14, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 7, 0, 7, 7, 12, 1 }, - { 15, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 7, 0, 7, 6, 12, 1 }, - { 14, 0, 0, 0, -1, 0, -7, 0, 0, -7, 0, 0, 0, 0, 7, 0, 7, 7, 12, 1 }, - { 15, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 7, 6, 12, 1 }, - { 14, 0, 0, 0, -1, 0, -130, 0, 0, -130, 0, 0, 0, 0, 8, 0, 7, 7, 12, 1 }, - { 14, 0, 0, 0, -1, 0, 80, 0, 0, 80, 0, 0, 0, 0, 4, 0, 7, 7, 12, 2 }, - { 14, 0, 0, 0, -1, 0, 80, 0, 0, 80, 0, 0, 0, 0, 1, 0, 7, 7, 12, 2 }, - { 14, 0, 0, 0, -1, 0, 32, 0, 0, 32, 0, 0, 0, 0, 1, 0, 7, 7, 12, 2 }, - { 15, 0, 0, 0, -1, 0, 0, -32, -32, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 2 }, - { 15, 0, 0, 0, -1, 0, 0, -80, -80, 0, 0, 0, 0, 0, 4, 0, 7, 6, 12, 2 }, - { 15, 0, 0, 0, -1, 0, 0, -80, -80, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 2 }, - { 14, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 7, 7, 12, 2 }, - { 15, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 2 }, - { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 2 }, - { 0, 17, 230, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 2 }, - { 0, 17, 230, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 4, 4, 4, 21, 2 }, - { 2, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 21, 2 }, - { 14, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 6, 0, 7, 7, 12, 2 }, - { 15, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 6, 0, 7, 6, 12, 2 }, - { 14, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 4, 0, 7, 7, 12, 2 }, - { 15, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 4, 0, 7, 6, 12, 2 }, - { 14, 0, 0, 0, -1, 0, 15, 0, 0, 15, 0, 0, 0, 0, 1, 0, 7, 7, 12, 2 }, - { 15, 0, 0, 0, -1, 0, 0, -15, -15, 0, 0, 0, 0, 0, 9, 0, 7, 6, 12, 2 }, - { 14, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 8, 0, 7, 7, 12, 2 }, - { 15, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 8, 0, 7, 6, 12, 2 }, - { 14, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 9, 0, 7, 7, 12, 2 }, - { 15, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 9, 0, 7, 6, 12, 2 }, - { 14, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 10, 0, 7, 7, 12, 2 }, - { 15, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 10, 0, 7, 6, 12, 2 }, - { 14, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 11, 0, 7, 7, 12, 2 }, - { 15, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 11, 0, 7, 6, 12, 2 }, - { 14, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 12, 0, 7, 7, 12, 2 }, - { 15, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 12, 0, 7, 6, 12, 2 }, - { 14, 0, 0, 0, -1, 0, 48, 0, 0, 48, 0, 0, 0, 0, 1, 0, 7, 7, 12, 3 }, - { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 8, 12, 3 }, - { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 3 }, - { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 12, 12, 3 }, - { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 11, 12, 3 }, - { 15, 0, 0, 0, -1, 0, 0, -48, -48, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 3 }, - { 15, 0, 0, 0, -1, 0, 0, 65, 62, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 3 }, - { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 10, 12, 8, 0 }, - { 20, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 17, 3 }, - { 27, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 9, 3 }, + { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, 130, 130, 0, 0, 0, 0, 0, 9, 0, 7, 6, 12, 4 }, + { 14, 0, 0, 0, -1, 0, 38, 0, 0, 38, 0, 0, 0, 0, 1, 0, 7, 7, 12, 4 }, + { 14, 0, 0, 0, -1, 0, 37, 0, 0, 37, 0, 0, 0, 0, 1, 0, 7, 7, 12, 4 }, + { 14, 0, 0, 0, -1, 0, 64, 0, 0, 64, 0, 0, 0, 0, 1, 0, 7, 7, 12, 4 }, + { 14, 0, 0, 0, -1, 0, 63, 0, 0, 63, 0, 0, 0, 0, 1, 0, 7, 7, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, 101, 101, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 4 }, + { 14, 0, 0, 0, -1, 0, 32, 0, 0, 32, 0, 0, 0, 0, 1, 0, 7, 7, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, -38, -38, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, -37, -37, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, 105, 105, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, -32, -32, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, -31, -31, 1, 0, 0, 0, 0, 1, 0, 7, 6, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, -64, -64, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, -63, -63, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 4 }, + { 14, 0, 0, 0, -1, 0, 8, 0, 0, 8, 0, 0, 0, 0, 10, 0, 7, 7, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, -62, -62, -30, 0, 0, 0, 0, 1, 0, 7, 6, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, -57, -57, -25, 0, 0, 0, 0, 1, 0, 7, 6, 12, 4 }, + { 14, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 7, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, -47, -47, -15, 0, 0, 0, 0, 1, 0, 7, 6, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, -54, -54, -22, 0, 0, 0, 0, 1, 0, 7, 6, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, -8, -8, 0, 0, 0, 0, 0, 4, 0, 7, 6, 12, 4 }, + { 14, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 6, 0, 7, 7, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 6, 0, 7, 6, 12, 4 }, + { 14, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 7, 7, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 4, 0, 7, 6, 12, 4 }, + { 14, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 7, 7, 12, 46 }, + { 15, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 46 }, + { 15, 0, 0, 0, -1, 0, 0, -86, -86, -54, 0, 0, 0, 0, 1, 0, 7, 6, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, -80, -80, -48, 0, 0, 0, 0, 1, 0, 7, 6, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, 7, 7, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 4 }, + { 14, 0, 0, 0, -1, 0, -60, 0, 0, -60, 0, 0, 0, 0, 5, 0, 7, 7, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, -96, -96, -64, 0, 0, 0, 0, 5, 0, 7, 6, 12, 4 }, + { 26, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 12, 4 }, + { 14, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 7, 0, 7, 7, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 7, 0, 7, 6, 12, 4 }, + { 14, 0, 0, 0, -1, 0, -7, 0, 0, -7, 0, 0, 0, 0, 7, 0, 7, 7, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 7, 6, 12, 4 }, + { 14, 0, 0, 0, -1, 0, -130, 0, 0, -130, 0, 0, 0, 0, 8, 0, 7, 7, 12, 4 }, + { 14, 0, 0, 0, -1, 0, 80, 0, 0, 80, 0, 0, 0, 0, 4, 0, 7, 7, 12, 5 }, + { 14, 0, 0, 0, -1, 0, 80, 0, 0, 80, 0, 0, 0, 0, 1, 0, 7, 7, 12, 5 }, + { 14, 0, 0, 0, -1, 0, 32, 0, 0, 32, 0, 0, 0, 0, 1, 0, 7, 7, 12, 5 }, + { 15, 0, 0, 0, -1, 0, 0, -32, -32, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 5 }, + { 15, 0, 0, 0, -1, 0, 0, -80, -80, 0, 0, 0, 0, 0, 4, 0, 7, 6, 12, 5 }, + { 15, 0, 0, 0, -1, 0, 0, -80, -80, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 5 }, + { 14, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 7, 7, 12, 5 }, + { 15, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 5 }, + { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 5 }, + { 0, 17, 230, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 5 }, + { 0, 17, 230, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 4, 4, 4, 21, 5 }, + { 2, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 21, 5 }, + { 14, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 6, 0, 7, 7, 12, 5 }, + { 15, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 6, 0, 7, 6, 12, 5 }, + { 14, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 4, 0, 7, 7, 12, 5 }, + { 15, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 4, 0, 7, 6, 12, 5 }, + { 14, 0, 0, 0, -1, 0, 15, 0, 0, 15, 0, 0, 0, 0, 1, 0, 7, 7, 12, 5 }, + { 15, 0, 0, 0, -1, 0, 0, -15, -15, 0, 0, 0, 0, 0, 9, 0, 7, 6, 12, 5 }, + { 14, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 8, 0, 7, 7, 12, 5 }, + { 15, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 8, 0, 7, 6, 12, 5 }, + { 14, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 9, 0, 7, 7, 12, 5 }, + { 15, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 9, 0, 7, 6, 12, 5 }, + { 14, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 10, 0, 7, 7, 12, 5 }, + { 15, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 10, 0, 7, 6, 12, 5 }, + { 14, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 11, 0, 7, 7, 12, 5 }, + { 15, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 11, 0, 7, 6, 12, 5 }, + { 14, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 12, 0, 7, 7, 12, 5 }, + { 15, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 12, 0, 7, 6, 12, 5 }, + { 14, 0, 0, 0, -1, 0, 48, 0, 0, 48, 0, 0, 0, 0, 1, 0, 7, 7, 12, 6 }, + { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 8, 12, 6 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 6 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 12, 12, 6 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 11, 12, 6 }, + { 15, 0, 0, 0, -1, 0, 0, -48, -48, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 6 }, + { 15, 0, 0, 0, -1, 0, 0, 65, 62, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 6 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 10, 12, 8, 2 }, + { 20, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 17, 6 }, + { 27, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 9, 6 }, { 13, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0 }, - { 0, 17, 220, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 4, 4, 4, 21, 4 }, - { 0, 17, 230, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 4, 4, 4, 21, 4 }, - { 0, 17, 222, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 4, 4, 4, 21, 4 }, - { 0, 17, 220, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 4, 4, 4, 21, 4 }, - { 0, 17, 228, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 4, 4, 4, 21, 4 }, - { 0, 17, 10, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 4 }, - { 0, 17, 11, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 4 }, - { 0, 17, 12, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 4 }, - { 0, 17, 13, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 4 }, - { 0, 17, 14, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 4 }, - { 0, 17, 15, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 4 }, - { 0, 17, 16, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 4 }, - { 0, 17, 17, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 4 }, - { 0, 17, 18, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 4 }, - { 0, 17, 19, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 4 }, - { 0, 17, 19, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 4, 4, 4, 21, 4 }, - { 0, 17, 20, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 4 }, - { 0, 17, 21, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 4 }, - { 0, 17, 22, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 4 }, - { 20, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 17, 4 }, - { 0, 17, 23, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 4 }, - { 25, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 4 }, - { 0, 17, 24, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 4 }, - { 0, 17, 25, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 4 }, - { 25, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 6, 4 }, - { 0, 17, 18, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 4, 4, 4, 21, 4 }, - { 18, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 8, 13, 4 }, - { 25, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 8, 12, 4 }, - { 25, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 9, 0, 12, 4 }, - { 10, 5, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 3, 4, 4, 12, 5 }, - { 10, 5, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 3, 4, 4, 12, 5 }, + { 0, 17, 220, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 4, 4, 4, 21, 7 }, + { 0, 17, 230, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 4, 4, 4, 21, 7 }, + { 0, 17, 222, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 4, 4, 4, 21, 7 }, + { 0, 17, 220, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 4, 4, 4, 21, 7 }, + { 0, 17, 228, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 4, 4, 4, 21, 7 }, + { 0, 17, 10, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 7 }, + { 0, 17, 11, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 7 }, + { 0, 17, 12, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 7 }, + { 0, 17, 13, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 7 }, + { 0, 17, 14, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 7 }, + { 0, 17, 15, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 7 }, + { 0, 17, 16, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 7 }, + { 0, 17, 17, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 7 }, + { 0, 17, 18, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 7 }, + { 0, 17, 19, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 7 }, + { 0, 17, 19, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 4, 4, 4, 21, 7 }, + { 0, 17, 20, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 7 }, + { 0, 17, 21, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 7 }, + { 0, 17, 22, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 7 }, + { 20, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 17, 7 }, + { 0, 17, 23, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 7 }, + { 25, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 7 }, + { 0, 17, 24, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 7 }, + { 0, 17, 25, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 7 }, + { 25, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 6, 7 }, + { 0, 17, 18, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 4, 4, 4, 21, 7 }, + { 18, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 8, 13, 7 }, + { 25, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 8, 12, 7 }, + { 25, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 9, 0, 12, 7 }, + { 10, 5, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 3, 4, 4, 12, 8 }, + { 10, 5, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 3, 4, 4, 12, 8 }, { 13, 13, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0 }, - { 26, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 12, 5 }, - { 26, 13, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 12, 5 }, - { 25, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 10, 5 }, - { 27, 13, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 10, 5 }, - { 25, 13, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 10, 11, 8, 5 }, - { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 12, 5 }, - { 0, 17, 230, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 4, 4, 4, 21, 5 }, - { 0, 17, 230, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 4, 4, 4, 21, 5 }, - { 0, 17, 30, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 4, 4, 4, 21, 5 }, - { 0, 17, 31, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 4, 4, 4, 21, 5 }, - { 0, 17, 32, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 4, 4, 4, 21, 5 }, - { 25, 13, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 6, 0 }, - { 25, 13, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 6, 5 }, - { 25, 13, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 12, 6, 0 }, - { 18, 13, 0, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 7, 8, 12, 5 }, - { 18, 13, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 8, 12, 5 }, - { 18, 13, 0, 2, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 8, 12, 5 }, - { 18, 13, 0, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 8, 12, 5 }, - { 18, 13, 0, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 7, 8, 12, 5 }, - { 17, 13, 0, 3, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 8, 12, 0 }, - { 0, 17, 27, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 28 }, - { 0, 17, 28, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 28 }, - { 0, 17, 29, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 28 }, - { 0, 17, 30, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 28 }, - { 0, 17, 31, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 28 }, - { 0, 17, 32, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 28 }, - { 0, 17, 33, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 28 }, - { 0, 17, 34, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 28 }, - { 0, 17, 220, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 4, 4, 4, 21, 5 }, - { 0, 17, 230, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 4, 4, 4, 21, 5 }, - { 0, 17, 220, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 4, 4, 4, 21, 5 }, - { 0, 17, 220, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 4, 4, 4, 21, 5 }, - { 3, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 0 }, - { 3, 5, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 0 }, - { 3, 5, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 0 }, - { 3, 5, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 0 }, - { 3, 5, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 0 }, - { 3, 5, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 0 }, - { 3, 5, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 0 }, - { 3, 5, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 0 }, - { 3, 5, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 0 }, - { 3, 5, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 0 }, - { 25, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 10, 5 }, - { 25, 5, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 5 }, - { 25, 5, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 10, 9, 11, 5 }, - { 25, 13, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 5 }, - { 18, 13, 0, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 7, 8, 12, 5 }, - { 0, 17, 35, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 28 }, - { 18, 13, 0, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 7, 8, 12, 5 }, - { 18, 13, 0, 2, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 7, 8, 12, 5 }, - { 25, 13, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 12, 6, 5 }, - { 0, 17, 230, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 5 }, - { 10, 5, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 4, 4, 12, 0 }, - { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 5 }, - { 0, 17, 220, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 5 }, - { 17, 13, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 8, 12, 5 }, - { 18, 13, 0, 2, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 7, 8, 12, 5 }, - { 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 5 }, - { 3, 2, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 5 }, - { 3, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 5 }, - { 3, 2, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 5 }, - { 3, 2, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 5 }, - { 3, 2, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 5 }, - { 3, 2, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 5 }, - { 3, 2, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 5 }, - { 3, 2, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 5 }, - { 3, 2, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 5 }, - { 29, 13, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 12, 5 }, - { 18, 13, 0, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 7, 8, 12, 5 }, - { 25, 13, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 12, 12, 6 }, - { 25, 13, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 12, 6 }, - { 10, 13, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 3, 4, 4, 12, 6 }, - { 18, 13, 0, 2, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 7, 8, 12, 6 }, - { 0, 17, 36, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 21, 6 }, - { 18, 13, 0, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 7, 8, 12, 6 }, - { 18, 13, 0, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 7, 8, 12, 6 }, - { 18, 13, 0, 2, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 7, 8, 12, 6 }, - { 0, 17, 230, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 21, 6 }, - { 0, 17, 220, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 21, 6 }, - { 18, 13, 0, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 7, 8, 12, 5 }, - { 18, 13, 0, 2, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 7, 8, 12, 5 }, - { 18, 13, 0, 2, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 7, 8, 12, 5 }, - { 18, 13, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 7, 8, 12, 7 }, - { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 21, 7 }, - { 18, 13, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 7, 8, 12, 7 }, - { 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 11, 9, 11, 27 }, - { 3, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 11, 9, 11, 27 }, - { 3, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 11, 9, 11, 27 }, - { 3, 1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 11, 9, 11, 27 }, - { 3, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 11, 9, 11, 27 }, - { 3, 1, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 11, 9, 11, 27 }, - { 3, 1, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 11, 9, 11, 27 }, - { 3, 1, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 11, 9, 11, 27 }, - { 3, 1, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 11, 9, 11, 27 }, - { 3, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 11, 9, 11, 27 }, - { 18, 1, 0, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 7, 8, 12, 27 }, - { 0, 17, 230, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 4, 4, 4, 21, 27 }, - { 0, 17, 220, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 4, 4, 4, 21, 27 }, - { 17, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 7, 8, 12, 27 }, - { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 12, 27 }, - { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 12, 27 }, - { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 10, 11, 8, 27 }, - { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 12, 6, 27 }, - { 17, 1, 0, 3, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 7, 8, 12, 27 }, - { 18, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 7, 8, 12, 0 }, - { 0, 17, 230, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 4, 4, 4, 21, 0 }, - { 17, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 7, 8, 12, 0 }, - { 25, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 0 }, - { 18, 1, 0, 2, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 7, 8, 12, 0 }, - { 18, 1, 0, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 7, 8, 12, 0 }, - { 18, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 7, 8, 12, 0 }, - { 0, 17, 220, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 4, 4, 4, 21, 0 }, - { 25, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 12, 0 }, - { 18, 13, 0, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 7, 8, 12, 5 }, - { 18, 13, 0, 2, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 7, 8, 12, 5 }, - { 0, 17, 230, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 4, 4, 4, 21, 5 }, - { 0, 17, 220, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 4, 4, 4, 21, 5 }, - { 0, 17, 27, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 4, 4, 4, 21, 5 }, - { 0, 17, 28, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 4, 4, 4, 21, 5 }, - { 0, 17, 29, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 4, 4, 4, 21, 5 }, - { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 4, 4, 4, 21, 8 }, - { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 8 }, - { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 7, 4, 4, 21, 8 }, - { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 7, 8, 12, 8 }, - { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 8, 12, 8 }, - { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 4, 4, 4, 21, 8 }, - { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 7, 4, 4, 21, 8 }, - { 0, 17, 7, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 8 }, - { 0, 17, 9, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 8 }, - { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 7, 4, 4, 21, 8 }, + { 26, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 12, 8 }, + { 26, 13, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 12, 8 }, + { 25, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 10, 8 }, + { 27, 13, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 10, 8 }, + { 25, 13, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 10, 11, 8, 8 }, + { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 12, 8 }, + { 0, 17, 230, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 4, 4, 4, 21, 8 }, + { 0, 17, 230, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 4, 4, 4, 21, 8 }, + { 0, 17, 30, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 4, 4, 4, 21, 8 }, + { 0, 17, 31, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 4, 4, 4, 21, 8 }, + { 0, 17, 32, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 4, 4, 4, 21, 8 }, + { 25, 13, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 6, 2 }, + { 25, 13, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 6, 8 }, + { 25, 13, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 12, 6, 2 }, + { 18, 13, 0, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 7, 8, 12, 8 }, + { 18, 13, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 8, 12, 8 }, + { 18, 13, 0, 2, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 8, 12, 8 }, + { 18, 13, 0, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 8, 12, 8 }, + { 18, 13, 0, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 7, 8, 12, 8 }, + { 17, 13, 0, 3, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 8, 12, 2 }, + { 0, 17, 27, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 1 }, + { 0, 17, 28, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 1 }, + { 0, 17, 29, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 1 }, + { 0, 17, 30, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 1 }, + { 0, 17, 31, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 1 }, + { 0, 17, 32, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 1 }, + { 0, 17, 33, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 1 }, + { 0, 17, 34, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 1 }, + { 0, 17, 220, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 4, 4, 4, 21, 8 }, + { 0, 17, 230, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 4, 4, 4, 21, 8 }, + { 0, 17, 220, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 4, 4, 4, 21, 8 }, + { 0, 17, 220, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 4, 4, 4, 21, 8 }, + { 3, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 2 }, + { 3, 5, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 2 }, + { 3, 5, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 2 }, + { 3, 5, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 2 }, + { 3, 5, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 2 }, + { 3, 5, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 2 }, + { 3, 5, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 2 }, + { 3, 5, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 2 }, + { 3, 5, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 2 }, + { 3, 5, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 2 }, + { 25, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 10, 8 }, + { 25, 5, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 8 }, + { 25, 5, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 10, 9, 11, 8 }, + { 25, 13, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 8 }, + { 18, 13, 0, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 7, 8, 12, 8 }, + { 0, 17, 35, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 1 }, + { 18, 13, 0, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 7, 8, 12, 8 }, + { 18, 13, 0, 2, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 7, 8, 12, 8 }, + { 25, 13, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 12, 6, 8 }, { 0, 17, 230, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 8 }, - { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 12, 17, 0 }, - { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 8 }, - { 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 8 }, - { 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 8 }, - { 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 8 }, - { 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 8 }, - { 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 8 }, - { 3, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 8 }, - { 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 8 }, - { 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 8 }, - { 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 8 }, - { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 8 }, - { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 7, 8, 12, 8 }, - { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 7, 8, 12, 8 }, - { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 7, 8, 12, 8 }, - { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 7, 8, 12, 8 }, - { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 7, 8, 12, 8 }, - { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 7, 8, 12, 8 }, - { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 9 }, - { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 7, 4, 4, 21, 9 }, - { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 8, 12, 9 }, - { 0, 17, 7, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 9 }, - { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 7, 8, 12, 9 }, - { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 9 }, - { 0, 17, 9, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 9 }, - { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 7, 8, 12, 9 }, - { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 9 }, - { 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 9 }, - { 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 9 }, - { 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 9 }, - { 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 9 }, - { 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 9 }, - { 3, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 9 }, - { 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 9 }, - { 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 9 }, - { 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 9 }, - { 27, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 10, 9 }, - { 5, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 9 }, - { 5, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 10, 9 }, - { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 9 }, - { 27, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 9, 9 }, - { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 4, 4, 4, 21, 10 }, - { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 10 }, - { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 4, 4, 21, 10 }, - { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 8, 12, 10 }, - { 0, 17, 7, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 10 }, - { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 7, 4, 4, 21, 10 }, - { 0, 17, 9, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 10 }, - { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 4, 4, 4, 21, 10 }, - { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 10 }, - { 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 10 }, - { 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 10 }, - { 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 10 }, - { 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 10 }, - { 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 10 }, - { 3, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 10 }, - { 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 10 }, - { 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 10 }, - { 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 10 }, + { 10, 5, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 4, 4, 12, 2 }, + { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 8 }, + { 0, 17, 220, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 8 }, + { 17, 13, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 8, 12, 8 }, + { 18, 13, 0, 2, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 7, 8, 12, 8 }, + { 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 8 }, + { 3, 2, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 8 }, + { 3, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 8 }, + { 3, 2, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 8 }, + { 3, 2, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 8 }, + { 3, 2, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 8 }, + { 3, 2, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 8 }, + { 3, 2, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 8 }, + { 3, 2, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 8 }, + { 3, 2, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 8 }, + { 29, 13, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 12, 8 }, + { 18, 13, 0, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 7, 8, 12, 8 }, + { 25, 13, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 12, 12, 9 }, + { 25, 13, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 12, 9 }, + { 10, 13, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 3, 4, 4, 12, 9 }, + { 18, 13, 0, 2, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 7, 8, 12, 9 }, + { 0, 17, 36, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 21, 9 }, + { 18, 13, 0, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 7, 8, 12, 9 }, + { 18, 13, 0, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 7, 8, 12, 9 }, + { 18, 13, 0, 2, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 7, 8, 12, 9 }, + { 0, 17, 230, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 21, 9 }, + { 0, 17, 220, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 21, 9 }, + { 18, 13, 0, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 7, 8, 12, 8 }, + { 18, 13, 0, 2, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 7, 8, 12, 8 }, + { 18, 13, 0, 2, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 7, 8, 12, 8 }, + { 18, 13, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 7, 8, 12, 10 }, + { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 21, 10 }, + { 18, 13, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 7, 8, 12, 10 }, + { 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 11, 9, 11, 66 }, + { 3, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 11, 9, 11, 66 }, + { 3, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 11, 9, 11, 66 }, + { 3, 1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 11, 9, 11, 66 }, + { 3, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 11, 9, 11, 66 }, + { 3, 1, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 11, 9, 11, 66 }, + { 3, 1, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 11, 9, 11, 66 }, + { 3, 1, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 11, 9, 11, 66 }, + { 3, 1, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 11, 9, 11, 66 }, + { 3, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 11, 9, 11, 66 }, + { 18, 1, 0, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 7, 8, 12, 66 }, + { 0, 17, 230, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 4, 4, 4, 21, 66 }, + { 0, 17, 220, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 4, 4, 4, 21, 66 }, + { 17, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 7, 8, 12, 66 }, + { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 12, 66 }, + { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 12, 66 }, + { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 10, 11, 8, 66 }, + { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 12, 6, 66 }, + { 17, 1, 0, 3, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 7, 8, 12, 66 }, + { 18, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 7, 8, 12, 82 }, + { 0, 17, 230, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 4, 4, 4, 21, 82 }, + { 17, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 7, 8, 12, 82 }, + { 25, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 82 }, + { 18, 1, 0, 2, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 7, 8, 12, 95 }, + { 18, 1, 0, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 7, 8, 12, 95 }, + { 18, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 7, 8, 12, 95 }, + { 0, 17, 220, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 4, 4, 4, 21, 95 }, + { 25, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 12, 95 }, + { 18, 13, 0, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 7, 8, 12, 8 }, + { 18, 13, 0, 2, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 7, 8, 12, 8 }, + { 0, 17, 230, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 4, 4, 4, 21, 8 }, + { 0, 17, 220, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 4, 4, 4, 21, 8 }, + { 0, 17, 27, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 4, 4, 4, 21, 8 }, + { 0, 17, 28, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 4, 4, 4, 21, 8 }, + { 0, 17, 29, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 4, 4, 4, 21, 8 }, + { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 4, 4, 4, 21, 11 }, { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 11 }, { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 7, 4, 4, 21, 11 }, - { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 8, 12, 11 }, { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 7, 8, 12, 11 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 8, 12, 11 }, + { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 4, 4, 4, 21, 11 }, + { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 7, 4, 4, 21, 11 }, { 0, 17, 7, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 11 }, { 0, 17, 9, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 11 }, - { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 4, 4, 4, 21, 11 }, + { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 7, 4, 4, 21, 11 }, + { 0, 17, 230, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 11 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 12, 17, 2 }, { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 11 }, { 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 11 }, { 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 11 }, @@ -5267,16 +5266,21 @@ static const Properties uc_properties[] = { { 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 11 }, { 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 11 }, { 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 11 }, - { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 12, 11 }, - { 27, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 9, 11 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 11 }, + { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 7, 8, 12, 11 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 7, 8, 12, 11 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 7, 8, 12, 11 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 7, 8, 12, 11 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 7, 8, 12, 11 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 7, 8, 12, 11 }, { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 12 }, { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 7, 4, 4, 21, 12 }, { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 8, 12, 12 }, - { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 7, 8, 12, 12 }, { 0, 17, 7, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 12 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 7, 8, 12, 12 }, { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 12 }, - { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 4, 4, 4, 21, 12 }, { 0, 17, 9, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 12 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 7, 8, 12, 12 }, { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 12 }, { 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 12 }, { 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 12 }, @@ -5287,16 +5291,20 @@ static const Properties uc_properties[] = { { 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 12 }, { 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 12 }, { 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 12 }, + { 27, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 10, 12 }, + { 5, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 12 }, + { 5, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 10, 12 }, { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 12 }, - { 5, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 12, 12 }, + { 27, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 9, 12 }, + { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 4, 4, 4, 21, 13 }, { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 13 }, + { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 4, 4, 21, 13 }, { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 8, 12, 13 }, - { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 7, 8, 12, 13 }, - { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 13 }, + { 0, 17, 7, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 13 }, { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 7, 4, 4, 21, 13 }, { 0, 17, 9, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 13 }, - { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 7, 8, 12, 13 }, - { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 11, 9, 11, 13 }, + { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 4, 4, 4, 21, 13 }, + { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 13 }, { 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 13 }, { 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 13 }, { 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 13 }, @@ -5306,17 +5314,13 @@ static const Properties uc_properties[] = { { 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 13 }, { 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 13 }, { 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 13 }, - { 5, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 13 }, - { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 12, 13 }, - { 27, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 9, 13 }, + { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 14 }, { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 7, 4, 4, 21, 14 }, { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 8, 12, 14 }, - { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 7, 8, 12, 14 }, - { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 14 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 7, 8, 12, 14 }, + { 0, 17, 7, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 14 }, { 0, 17, 9, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 14 }, - { 0, 17, 84, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 14 }, - { 0, 17, 91, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 14 }, - { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 4, 4, 4, 21, 14 }, + { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 4, 4, 4, 21, 14 }, { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 14 }, { 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 14 }, { 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 14 }, @@ -5327,17 +5331,16 @@ static const Properties uc_properties[] = { { 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 14 }, { 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 14 }, { 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 14 }, - { 5, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 12, 14 }, - { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 12, 14 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 12, 14 }, + { 27, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 9, 14 }, + { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 15 }, { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 7, 4, 4, 21, 15 }, { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 8, 12, 15 }, - { 0, 17, 7, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 4, 4, 4, 21, 15 }, { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 7, 8, 12, 15 }, - { 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 15 }, + { 0, 17, 7, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 15 }, { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 15 }, - { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 15 }, + { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 4, 4, 4, 21, 15 }, { 0, 17, 9, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 15 }, - { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 4, 4, 4, 21, 15 }, { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 15 }, { 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 15 }, { 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 15 }, @@ -5348,16 +5351,16 @@ static const Properties uc_properties[] = { { 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 15 }, { 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 15 }, { 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 15 }, - { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 7, 8, 12, 15 }, - { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 7, 4, 4, 21, 16 }, + { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 15 }, + { 5, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 12, 15 }, + { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 16 }, { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 8, 12, 16 }, - { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 7, 8, 12, 16 }, - { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 7, 8, 12, 16 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 7, 8, 12, 16 }, { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 16 }, - { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 16 }, - { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 4, 4, 4, 21, 16 }, + { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 7, 4, 4, 21, 16 }, { 0, 17, 9, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 16 }, - { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 16 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 7, 8, 12, 16 }, + { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 11, 9, 11, 16 }, { 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 16 }, { 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 16 }, { 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 16 }, @@ -5367,22 +5370,38 @@ static const Properties uc_properties[] = { { 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 16 }, { 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 16 }, { 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 16 }, - { 5, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 12, 16 }, - { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 10, 16 }, - { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 7, 4, 4, 21, 17 }, - { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 7, 8, 12, 17 }, - { 0, 17, 9, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 21, 17 }, - { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 21, 17 }, - { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 21, 17 }, - { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 12, 17 }, - { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 30, 18 }, - { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 30, 18 }, - { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 7, 0, 8, 30, 18 }, - { 0, 17, 103, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 30, 18 }, - { 0, 17, 9, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 30, 18 }, - { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 30, 18 }, - { 0, 17, 107, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 30, 18 }, - { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 18 }, + { 5, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 16 }, + { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 12, 16 }, + { 27, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 9, 16 }, + { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 7, 4, 4, 21, 17 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 8, 12, 17 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 7, 8, 12, 17 }, + { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 17 }, + { 0, 17, 9, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 17 }, + { 0, 17, 84, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 17 }, + { 0, 17, 91, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 17 }, + { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 4, 4, 4, 21, 17 }, + { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 17 }, + { 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 17 }, + { 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 17 }, + { 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 17 }, + { 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 17 }, + { 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 17 }, + { 3, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 17 }, + { 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 17 }, + { 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 17 }, + { 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 17 }, + { 5, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 12, 17 }, + { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 12, 17 }, + { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 7, 4, 4, 21, 18 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 8, 12, 18 }, + { 0, 17, 7, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 4, 4, 4, 21, 18 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 7, 8, 12, 18 }, + { 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 18 }, + { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 18 }, + { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 18 }, + { 0, 17, 9, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 18 }, + { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 4, 4, 4, 21, 18 }, { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 18 }, { 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 18 }, { 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 18 }, @@ -5393,13 +5412,15 @@ static const Properties uc_properties[] = { { 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 18 }, { 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 18 }, { 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 18 }, - { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 17, 18 }, - { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 30, 19 }, - { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 30, 19 }, - { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 7, 0, 8, 30, 19 }, - { 0, 17, 118, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 30, 19 }, - { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 30, 19 }, - { 0, 17, 122, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 30, 19 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 7, 8, 12, 18 }, + { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 7, 4, 4, 21, 19 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 8, 12, 19 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 7, 8, 12, 19 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 7, 8, 12, 19 }, + { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 19 }, + { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 19 }, + { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 4, 4, 4, 21, 19 }, + { 0, 17, 9, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 19 }, { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 19 }, { 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 19 }, { 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 19 }, @@ -5410,920 +5431,1254 @@ static const Properties uc_properties[] = { { 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 19 }, { 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 19 }, { 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 19 }, - { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 8, 30, 19 }, - { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 7, 8, 12, 20 }, - { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 18, 20 }, - { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 18, 20 }, - { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 12, 20 }, - { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 4, 20 }, - { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 17, 20 }, - { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 6, 20 }, - { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 12, 20 }, - { 0, 17, 220, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 4, 4, 4, 21, 20 }, - { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 11, 9, 11, 20 }, - { 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 11, 9, 11, 20 }, - { 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 11, 9, 11, 20 }, - { 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 11, 9, 11, 20 }, - { 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 11, 9, 11, 20 }, - { 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 11, 9, 11, 20 }, - { 3, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 11, 9, 11, 20 }, - { 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 11, 9, 11, 20 }, - { 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 11, 9, 11, 20 }, - { 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 11, 9, 11, 20 }, - { 5, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 12, 20 }, - { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 17, 20 }, - { 0, 17, 216, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 4, 4, 4, 21, 20 }, - { 21, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 13, 0, 20 }, - { 22, 10, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 13, 1, 20 }, - { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 7, 4, 4, 21, 20 }, + { 5, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 12, 19 }, + { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 10, 19 }, + { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 7, 4, 4, 21, 20 }, { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 7, 8, 12, 20 }, - { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 7, 8, 12, 20 }, - { 0, 17, 129, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 4, 4, 4, 21, 20 }, - { 0, 17, 130, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 4, 4, 4, 21, 20 }, - { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 4, 4, 4, 21, 20 }, - { 0, 17, 132, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 4, 4, 4, 21, 20 }, - { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 7, 4, 4, 17, 20 }, - { 0, 17, 230, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 4, 4, 4, 21, 20 }, - { 0, 17, 9, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 4, 4, 4, 21, 20 }, - { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 7, 8, 12, 20 }, - { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 4, 4, 4, 21, 20 }, + { 0, 17, 9, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 21, 20 }, + { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 21, 20 }, { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 21, 20 }, - { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 17, 20 }, - { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 12, 20 }, - { 0, 17, 220, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 21, 20 }, - { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 12, 20 }, - { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 18, 20 }, - { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 17, 20 }, - { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 18, 20 }, - { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 12, 20 }, - { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 0 }, - { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 4, 20 }, - { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 8, 30, 21 }, - { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 8, 30, 21 }, - { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 4, 4, 30, 21 }, - { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 4, 4, 30, 21 }, - { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 30, 21 }, - { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 7, 4, 4, 30, 21 }, - { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 4, 4, 4, 30, 21 }, - { 0, 17, 7, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 30, 21 }, - { 0, 17, 9, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 30, 21 }, - { 0, 17, 9, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 4, 4, 4, 30, 21 }, - { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 7, 4, 4, 30, 21 }, - { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 11, 9, 11, 21 }, - { 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 11, 9, 11, 21 }, - { 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 11, 9, 11, 21 }, - { 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 11, 9, 11, 21 }, - { 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 11, 9, 11, 21 }, - { 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 11, 9, 11, 21 }, - { 3, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 11, 9, 11, 21 }, - { 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 11, 9, 11, 21 }, - { 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 11, 9, 11, 21 }, - { 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 11, 9, 11, 21 }, - { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 12, 17, 21 }, - { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 12, 21 }, - { 0, 17, 220, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 4, 4, 4, 30, 21 }, - { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 21 }, - { 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 21 }, - { 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 21 }, - { 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 21 }, - { 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 21 }, - { 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 21 }, - { 3, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 21 }, - { 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 21 }, - { 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 21 }, - { 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 21 }, - { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 4, 4, 30, 21 }, - { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 4, 4, 4, 30, 21 }, - { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 30, 21 }, - { 14, 0, 0, 0, -1, 0, 7264, 0, 0, 7264, 0, 0, 0, 0, 1, 0, 7, 7, 12, 22 }, - { 14, 0, 0, 0, -1, 0, 7264, 0, 0, 7264, 0, 0, 0, 0, 13, 0, 7, 7, 12, 22 }, - { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 8, 12, 22 }, - { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 7, 8, 12, 22 }, - { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 7, 8, 12, 22 }, - { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 0 }, - { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 7, 8, 12, 22 }, - { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 7, 8, 12, 22 }, - { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 8, 7, 8, 25, 23 }, - { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 8, 7, 8, 25, 23 }, - { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 9, 7, 8, 26, 23 }, - { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 9, 7, 8, 26, 23 }, - { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 10, 7, 8, 27, 23 }, - { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 10, 7, 8, 27, 23 }, - { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 7, 8, 12, 0 }, - { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 7, 8, 12, 0 }, - { 0, 17, 230, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 4, 4, 4, 21, 0 }, - { 0, 17, 230, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 4, 4, 4, 21, 0 }, - { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 12, 0 }, - { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 17, 0 }, - { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 12, 12, 0 }, - { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 12, 0 }, - { 5, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 12, 0 }, - { 5, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 12, 0 }, - { 5, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 12, 0 }, - { 5, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 12, 0 }, - { 5, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 12, 0 }, - { 5, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 12, 0 }, - { 5, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 12, 0 }, - { 5, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 12, 0 }, - { 5, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 12, 0 }, - { 5, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 12, 0 }, - { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 12, 0 }, - { 20, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 17, 0 }, - { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 7, 8, 12, 0 }, - { 6, 9, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 5, 17, 24 }, - { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 7, 8, 12, 24 }, - { 21, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 13, 0, 24 }, - { 22, 10, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 13, 1, 24 }, - { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 7, 8, 12, 25 }, - { 4, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 7, 8, 12, 25 }, - { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 7, 8, 12, 0 }, - { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 4, 4, 4, 21, 0 }, - { 0, 17, 9, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 4, 4, 4, 21, 0 }, - { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 12, 17, 0 }, - { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 8, 30, 26 }, - { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 30, 26 }, - { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 7, 4, 4, 30, 26 }, - { 0, 17, 9, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 30, 26 }, - { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 17, 26 }, - { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 5, 26 }, - { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 8, 30, 26 }, - { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 12, 26 }, - { 27, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 9, 26 }, - { 0, 17, 230, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 4, 4, 4, 30, 26 }, - { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 11, 9, 11, 26 }, - { 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 11, 9, 11, 26 }, - { 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 11, 9, 11, 26 }, - { 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 11, 9, 11, 26 }, - { 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 11, 9, 11, 26 }, - { 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 11, 9, 11, 26 }, - { 3, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 11, 9, 11, 26 }, - { 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 11, 9, 11, 26 }, - { 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 11, 9, 11, 26 }, - { 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 11, 9, 11, 26 }, - { 5, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 12, 26 }, - { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 12, 0 }, - { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 11, 6, 0 }, - { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 12, 6, 0 }, - { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 17, 0 }, - { 20, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 18, 0 }, - { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 21, 0 }, - { 6, 9, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 5, 4, 0 }, - { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 11, 9, 11, 0 }, - { 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 11, 9, 11, 0 }, - { 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 11, 9, 11, 0 }, - { 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 11, 9, 11, 0 }, - { 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 11, 9, 11, 0 }, - { 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 11, 9, 11, 0 }, - { 3, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 11, 9, 11, 0 }, - { 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 11, 9, 11, 0 }, - { 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 11, 9, 11, 0 }, - { 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 11, 9, 11, 0 }, - { 0, 17, 228, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 21, 0 }, - { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 7, 8, 12, 0 }, - { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 7, 8, 12, 0 }, - { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 4, 4, 4, 21, 0 }, - { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 4, 4, 21, 0 }, - { 0, 17, 222, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 4, 4, 4, 21, 0 }, - { 0, 17, 230, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 4, 4, 4, 21, 0 }, - { 0, 17, 220, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 4, 4, 4, 21, 0 }, - { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 12, 0 }, - { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 12, 6, 0 }, - { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 11, 9, 11, 0 }, - { 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 11, 9, 11, 0 }, - { 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 11, 9, 11, 0 }, - { 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 11, 9, 11, 0 }, - { 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 11, 9, 11, 0 }, - { 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 11, 9, 11, 0 }, - { 3, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 11, 9, 11, 0 }, - { 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 11, 9, 11, 0 }, - { 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 11, 9, 11, 0 }, - { 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 11, 9, 11, 0 }, - { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 8, 30, 0 }, - { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 8, 30, 0 }, - { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 8, 30, 0 }, - { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 4, 4, 30, 0 }, - { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 7, 4, 4, 30, 0 }, - { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 11, 9, 11, 0 }, - { 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 11, 9, 11, 0 }, - { 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 11, 9, 11, 0 }, - { 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 11, 9, 11, 0 }, - { 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 11, 9, 11, 0 }, - { 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 11, 9, 11, 0 }, - { 3, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 11, 9, 11, 0 }, - { 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 11, 9, 11, 0 }, - { 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 11, 9, 11, 0 }, - { 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 11, 9, 11, 0 }, - { 5, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 30, 0 }, - { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 30, 0 }, - { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 12, 26 }, - { 0, 17, 220, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 4, 4, 4, 21, 0 }, - { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 7, 4, 4, 21, 0 }, - { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 7, 4, 4, 30, 0 }, - { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 4, 4, 4, 30, 0 }, - { 0, 17, 9, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 4, 4, 4, 30, 0 }, - { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 4, 4, 30, 0 }, - { 0, 17, 230, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 4, 4, 4, 30, 0 }, - { 0, 17, 220, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 4, 4, 4, 21, 0 }, - { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 11, 9, 11, 0 }, - { 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 11, 9, 11, 0 }, - { 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 11, 9, 11, 0 }, - { 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 11, 9, 11, 0 }, - { 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 11, 9, 11, 0 }, - { 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 11, 9, 11, 0 }, - { 3, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 11, 9, 11, 0 }, - { 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 11, 9, 11, 0 }, - { 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 11, 9, 11, 0 }, - { 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 11, 9, 11, 0 }, - { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 30, 0 }, - { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 8, 30, 0 }, - { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 12, 30, 0 }, - { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 4, 4, 4, 21, 0 }, - { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 7, 4, 4, 21, 0 }, - { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 7, 8, 12, 0 }, - { 0, 17, 7, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 4, 4, 4, 21, 0 }, - { 1, 0, 9, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 7, 4, 4, 21, 0 }, - { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 11, 9, 11, 0 }, - { 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 11, 9, 11, 0 }, - { 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 11, 9, 11, 0 }, - { 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 11, 9, 11, 0 }, - { 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 11, 9, 11, 0 }, - { 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 11, 9, 11, 0 }, - { 3, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 11, 9, 11, 0 }, - { 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 11, 9, 11, 0 }, - { 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 11, 9, 11, 0 }, - { 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 11, 9, 11, 0 }, - { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 12, 17, 0 }, - { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 12, 0 }, - { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 17, 0 }, - { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 12, 0 }, - { 0, 17, 230, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 4, 4, 4, 21, 0 }, - { 0, 17, 220, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 4, 4, 4, 21, 0 }, - { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 4, 4, 4, 21, 0 }, - { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 7, 4, 4, 21, 0 }, - { 1, 0, 9, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 7, 4, 4, 21, 0 }, - { 0, 17, 9, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 4, 4, 4, 21, 0 }, - { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 7, 4, 4, 21, 0 }, - { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 0 }, - { 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 0 }, - { 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 0 }, - { 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 0 }, - { 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 0 }, - { 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 0 }, - { 3, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 0 }, - { 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 0 }, - { 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 0 }, - { 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 0 }, - { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 7, 8, 12, 0 }, - { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 7, 8, 12, 0 }, - { 0, 17, 7, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 4, 4, 4, 21, 0 }, - { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 7, 4, 4, 21, 0 }, - { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 4, 4, 4, 21, 0 }, - { 1, 0, 9, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 7, 4, 4, 21, 0 }, - { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 12, 0 }, - { 0, 17, 7, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 4, 4, 4, 21, 0 }, - { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 12, 17, 0 }, - { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 17, 0 }, - { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 7, 8, 12, 0 }, - { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 12, 0 }, - { 0, 17, 230, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 4, 4, 4, 21, 28 }, - { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 0 }, - { 0, 17, 1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 4, 4, 4, 21, 28 }, - { 0, 17, 220, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 4, 4, 4, 21, 28 }, - { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 7, 4, 4, 21, 0 }, - { 0, 17, 230, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 4, 4, 4, 21, 28 }, - { 15, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 7, 6, 12, 1 }, - { 15, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 7, 6, 12, 2 }, - { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 7, 6, 12, 0 }, - { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 7, 6, 12, 1 }, - { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 7, 6, 12, 2 }, - { 15, 0, 0, 0, -1, 0, 0, 5, 5, 0, 0, 1, 1, 0, 8, 0, 7, 6, 12, 0 }, - { 15, 0, 0, 0, -1, 0, 0, 3814, 3814, 0, 0, 0, 0, 0, 8, 0, 7, 6, 12, 0 }, - { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 7, 6, 12, 0 }, - { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 7, 6, 12, 1 }, - { 0, 17, 230, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 4, 4, 4, 21, 28 }, - { 0, 17, 220, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 4, 4, 4, 21, 28 }, - { 0, 17, 230, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 4, 4, 4, 21, 28 }, - { 0, 17, 234, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 4, 4, 4, 21, 28 }, - { 0, 17, 214, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 4, 4, 4, 21, 28 }, - { 0, 17, 220, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 4, 4, 4, 21, 28 }, - { 0, 17, 202, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 4, 4, 4, 21, 28 }, - { 0, 17, 233, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 4, 4, 4, 21, 28 }, - { 15, 0, 0, 0, -1, 0, 0, 112, 112, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 0 }, - { 15, 0, 0, 0, -1, 0, 0, 115, 115, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 0 }, - { 15, 0, 0, 0, -1, 0, 0, 118, 118, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 0 }, - { 15, 0, 0, 0, -1, 0, 0, 121, 121, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 0 }, - { 15, 0, 0, 0, -1, 0, 0, 124, 124, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 0 }, - { 15, 0, 0, 0, -1, 0, 0, -59, -59, -58, 0, 0, 0, 0, 2, 0, 7, 6, 12, 0 }, - { 15, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 7, 6, 12, 0 }, - { 14, 0, 0, 0, -1, 0, -7615, 0, 0, -7615, 0, 0, 0, 0, 10, 0, 7, 7, 12, 0 }, - { 14, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 10, 0, 7, 7, 12, 0 }, - { 15, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 10, 0, 7, 6, 12, 0 }, - { 15, 0, 0, 0, -1, 0, 0, 8, 8, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 1 }, - { 14, 0, 0, 0, -1, 0, -8, 0, 0, -8, 0, 0, 0, 0, 1, 0, 7, 7, 12, 1 }, - { 15, 0, 0, 0, -1, 0, 0, 127, 127, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 1 }, - { 15, 0, 0, 0, -1, 0, 0, 130, 130, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 1 }, - { 15, 0, 0, 0, -1, 0, 0, 134, 134, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 1 }, - { 15, 0, 0, 0, -1, 0, 0, 138, 138, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 1 }, - { 15, 0, 0, 0, -1, 0, 0, 74, 74, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 1 }, - { 15, 0, 0, 0, -1, 0, 0, 86, 86, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 1 }, - { 15, 0, 0, 0, -1, 0, 0, 100, 100, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 1 }, - { 15, 0, 0, 0, -1, 0, 0, 128, 128, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 1 }, - { 15, 0, 0, 0, -1, 0, 0, 112, 112, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 1 }, - { 15, 0, 0, 0, -1, 0, 0, 126, 126, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 1 }, - { 15, 0, 0, 0, -1, 0, 0, 176, 8, 0, 0, 1, 0, 0, 1, 0, 7, 6, 12, 1 }, - { 15, 0, 0, 0, -1, 0, 0, 179, 8, 0, 0, 1, 0, 0, 1, 0, 7, 6, 12, 1 }, - { 15, 0, 0, 0, -1, 0, 0, 182, 8, 0, 0, 1, 0, 0, 1, 0, 7, 6, 12, 1 }, - { 15, 0, 0, 0, -1, 0, 0, 185, 8, 0, 0, 1, 0, 0, 1, 0, 7, 6, 12, 1 }, - { 15, 0, 0, 0, -1, 0, 0, 188, 8, 0, 0, 1, 0, 0, 1, 0, 7, 6, 12, 1 }, - { 15, 0, 0, 0, -1, 0, 0, 191, 8, 0, 0, 1, 0, 0, 1, 0, 7, 6, 12, 1 }, - { 15, 0, 0, 0, -1, 0, 0, 194, 8, 0, 0, 1, 0, 0, 1, 0, 7, 6, 12, 1 }, - { 15, 0, 0, 0, -1, 0, 0, 197, 8, 0, 0, 1, 0, 0, 1, 0, 7, 6, 12, 1 }, - { 16, 0, 0, 0, -1, 0, -8, 176, 0, -8, 0, 1, 0, 0, 1, 0, 7, 7, 12, 1 }, - { 16, 0, 0, 0, -1, 0, -8, 179, 0, -8, 0, 1, 0, 0, 1, 0, 7, 7, 12, 1 }, - { 16, 0, 0, 0, -1, 0, -8, 182, 0, -8, 0, 1, 0, 0, 1, 0, 7, 7, 12, 1 }, - { 16, 0, 0, 0, -1, 0, -8, 185, 0, -8, 0, 1, 0, 0, 1, 0, 7, 7, 12, 1 }, - { 16, 0, 0, 0, -1, 0, -8, 188, 0, -8, 0, 1, 0, 0, 1, 0, 7, 7, 12, 1 }, - { 16, 0, 0, 0, -1, 0, -8, 191, 0, -8, 0, 1, 0, 0, 1, 0, 7, 7, 12, 1 }, - { 16, 0, 0, 0, -1, 0, -8, 194, 0, -8, 0, 1, 0, 0, 1, 0, 7, 7, 12, 1 }, - { 16, 0, 0, 0, -1, 0, -8, 197, 0, -8, 0, 1, 0, 0, 1, 0, 7, 7, 12, 1 }, - { 15, 0, 0, 0, -1, 0, 0, 200, 8, 0, 0, 1, 0, 0, 1, 0, 7, 6, 12, 1 }, - { 15, 0, 0, 0, -1, 0, 0, 203, 8, 0, 0, 1, 0, 0, 1, 0, 7, 6, 12, 1 }, - { 15, 0, 0, 0, -1, 0, 0, 206, 8, 0, 0, 1, 0, 0, 1, 0, 7, 6, 12, 1 }, - { 15, 0, 0, 0, -1, 0, 0, 209, 8, 0, 0, 1, 0, 0, 1, 0, 7, 6, 12, 1 }, - { 15, 0, 0, 0, -1, 0, 0, 212, 8, 0, 0, 1, 0, 0, 1, 0, 7, 6, 12, 1 }, - { 15, 0, 0, 0, -1, 0, 0, 215, 8, 0, 0, 1, 0, 0, 1, 0, 7, 6, 12, 1 }, - { 15, 0, 0, 0, -1, 0, 0, 218, 8, 0, 0, 1, 0, 0, 1, 0, 7, 6, 12, 1 }, - { 15, 0, 0, 0, -1, 0, 0, 221, 8, 0, 0, 1, 0, 0, 1, 0, 7, 6, 12, 1 }, - { 16, 0, 0, 0, -1, 0, -8, 200, 0, -8, 0, 1, 0, 0, 1, 0, 7, 7, 12, 1 }, - { 16, 0, 0, 0, -1, 0, -8, 203, 0, -8, 0, 1, 0, 0, 1, 0, 7, 7, 12, 1 }, - { 16, 0, 0, 0, -1, 0, -8, 206, 0, -8, 0, 1, 0, 0, 1, 0, 7, 7, 12, 1 }, - { 16, 0, 0, 0, -1, 0, -8, 209, 0, -8, 0, 1, 0, 0, 1, 0, 7, 7, 12, 1 }, - { 16, 0, 0, 0, -1, 0, -8, 212, 0, -8, 0, 1, 0, 0, 1, 0, 7, 7, 12, 1 }, - { 16, 0, 0, 0, -1, 0, -8, 215, 0, -8, 0, 1, 0, 0, 1, 0, 7, 7, 12, 1 }, - { 16, 0, 0, 0, -1, 0, -8, 218, 0, -8, 0, 1, 0, 0, 1, 0, 7, 7, 12, 1 }, - { 16, 0, 0, 0, -1, 0, -8, 221, 0, -8, 0, 1, 0, 0, 1, 0, 7, 7, 12, 1 }, - { 15, 0, 0, 0, -1, 0, 0, 224, 8, 0, 0, 1, 0, 0, 1, 0, 7, 6, 12, 1 }, - { 15, 0, 0, 0, -1, 0, 0, 227, 8, 0, 0, 1, 0, 0, 1, 0, 7, 6, 12, 1 }, - { 15, 0, 0, 0, -1, 0, 0, 230, 8, 0, 0, 1, 0, 0, 1, 0, 7, 6, 12, 1 }, - { 15, 0, 0, 0, -1, 0, 0, 233, 8, 0, 0, 1, 0, 0, 1, 0, 7, 6, 12, 1 }, - { 15, 0, 0, 0, -1, 0, 0, 236, 8, 0, 0, 1, 0, 0, 1, 0, 7, 6, 12, 1 }, - { 15, 0, 0, 0, -1, 0, 0, 239, 8, 0, 0, 1, 0, 0, 1, 0, 7, 6, 12, 1 }, - { 15, 0, 0, 0, -1, 0, 0, 242, 8, 0, 0, 1, 0, 0, 1, 0, 7, 6, 12, 1 }, - { 15, 0, 0, 0, -1, 0, 0, 245, 8, 0, 0, 1, 0, 0, 1, 0, 7, 6, 12, 1 }, - { 16, 0, 0, 0, -1, 0, -8, 224, 0, -8, 0, 1, 0, 0, 1, 0, 7, 7, 12, 1 }, - { 16, 0, 0, 0, -1, 0, -8, 227, 0, -8, 0, 1, 0, 0, 1, 0, 7, 7, 12, 1 }, - { 16, 0, 0, 0, -1, 0, -8, 230, 0, -8, 0, 1, 0, 0, 1, 0, 7, 7, 12, 1 }, - { 16, 0, 0, 0, -1, 0, -8, 233, 0, -8, 0, 1, 0, 0, 1, 0, 7, 7, 12, 1 }, - { 16, 0, 0, 0, -1, 0, -8, 236, 0, -8, 0, 1, 0, 0, 1, 0, 7, 7, 12, 1 }, - { 16, 0, 0, 0, -1, 0, -8, 239, 0, -8, 0, 1, 0, 0, 1, 0, 7, 7, 12, 1 }, - { 16, 0, 0, 0, -1, 0, -8, 242, 0, -8, 0, 1, 0, 0, 1, 0, 7, 7, 12, 1 }, - { 16, 0, 0, 0, -1, 0, -8, 245, 0, -8, 0, 1, 0, 0, 1, 0, 7, 7, 12, 1 }, - { 15, 0, 0, 0, -1, 0, 0, 260, 257, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 1 }, - { 15, 0, 0, 0, -1, 0, 0, 248, 9, 0, 0, 1, 0, 0, 1, 0, 7, 6, 12, 1 }, - { 15, 0, 0, 0, -1, 0, 0, 266, 263, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 1 }, - { 15, 0, 0, 0, -1, 0, 0, 142, 142, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 1 }, - { 15, 0, 0, 0, -1, 0, 0, 297, 293, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 1 }, - { 14, 0, 0, 0, -1, 0, -74, 0, 0, -74, 0, 0, 0, 0, 1, 0, 7, 7, 12, 1 }, - { 16, 0, 0, 0, -1, 0, -9, 248, 0, -9, 0, 1, 0, 0, 1, 0, 7, 7, 12, 1 }, - { 15, 0, 0, 0, -1, 0, 0, -7205, -7205, -7173, 0, 0, 0, 0, 1, 0, 7, 6, 12, 1 }, - { 15, 0, 0, 0, -1, 0, 0, 272, 269, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 1 }, - { 15, 0, 0, 0, -1, 0, 0, 251, 9, 0, 0, 1, 0, 0, 1, 0, 7, 6, 12, 1 }, - { 15, 0, 0, 0, -1, 0, 0, 278, 275, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 1 }, - { 15, 0, 0, 0, -1, 0, 0, 145, 145, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 1 }, - { 15, 0, 0, 0, -1, 0, 0, 305, 301, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 1 }, - { 14, 0, 0, 0, -1, 0, -86, 0, 0, -86, 0, 0, 0, 0, 1, 0, 7, 7, 12, 1 }, - { 16, 0, 0, 0, -1, 0, -9, 251, 0, -9, 0, 1, 0, 0, 1, 0, 7, 7, 12, 1 }, - { 15, 0, 0, 0, -1, 0, 0, 148, 148, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 1 }, - { 15, 0, 0, 0, -1, 0, 0, 152, 152, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 1 }, - { 15, 0, 0, 0, -1, 0, 0, 155, 155, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 1 }, - { 14, 0, 0, 0, -1, 0, -100, 0, 0, -100, 0, 0, 0, 0, 1, 0, 7, 7, 12, 1 }, - { 15, 0, 0, 0, -1, 0, 0, 159, 159, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 1 }, - { 15, 0, 0, 0, -1, 0, 0, 163, 163, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 1 }, - { 15, 0, 0, 0, -1, 0, 0, 166, 166, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 1 }, - { 15, 0, 0, 0, -1, 0, 0, 169, 169, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 1 }, - { 14, 0, 0, 0, -1, 0, -112, 0, 0, -112, 0, 0, 0, 0, 1, 0, 7, 7, 12, 1 }, - { 14, 0, 0, 0, -1, 0, -7, 0, 0, -7, 0, 0, 0, 0, 1, 0, 7, 7, 12, 1 }, - { 15, 0, 0, 0, -1, 0, 0, 284, 281, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 1 }, - { 15, 0, 0, 0, -1, 0, 0, 254, 9, 0, 0, 1, 0, 0, 1, 0, 7, 6, 12, 1 }, - { 15, 0, 0, 0, -1, 0, 0, 290, 287, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 1 }, - { 15, 0, 0, 0, -1, 0, 0, 173, 173, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 1 }, - { 15, 0, 0, 0, -1, 0, 0, 313, 309, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 1 }, - { 14, 0, 0, 0, -1, 0, -128, 0, 0, -128, 0, 0, 0, 0, 1, 0, 7, 7, 12, 1 }, - { 14, 0, 0, 0, -1, 0, -126, 0, 0, -126, 0, 0, 0, 0, 1, 0, 7, 7, 12, 1 }, - { 16, 0, 0, 0, -1, 0, -9, 254, 0, -9, 0, 1, 0, 0, 1, 0, 7, 7, 12, 1 }, - { 28, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 18, 1 }, - { 6, 9, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 5, 17, 0 }, - { 6, 9, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 5, 4, 0 }, - { 10, 18, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 0, 4, 20, 0 }, - { 10, 18, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 28 }, - { 10, 18, 0, 3, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 28 }, - { 10, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 4, 4, 21, 0 }, - { 10, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 4, 4, 21, 0 }, - { 20, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 17, 0 }, - { 20, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 4, 0 }, - { 20, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 11, 17, 0 }, - { 20, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 11, 19, 0 }, - { 20, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 0 }, - { 23, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 8, 13, 3, 0 }, - { 24, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 8, 13, 3, 0 }, - { 21, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 13, 0, 0 }, - { 23, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 13, 3, 0 }, - { 24, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 13, 3, 0 }, - { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 8, 10, 15, 0 }, - { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 15, 0 }, - { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 9, 0, 17, 0 }, - { 7, 9, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 3, 3, 35, 0 }, - { 8, 7, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 3, 3, 35, 0 }, - { 10, 11, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 4, 4, 21, 0 }, - { 10, 14, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 4, 4, 21, 0 }, - { 10, 16, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 4, 4, 21, 0 }, - { 10, 12, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 4, 4, 21, 0 }, - { 10, 15, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 4, 4, 21, 0 }, - { 6, 6, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 5, 4, 0 }, - { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 10, 0 }, - { 23, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 13, 3, 0 }, - { 24, 10, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 13, 3, 0 }, - { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 12, 5, 0 }, - { 26, 6, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 10, 0, 8, 0 }, - { 22, 10, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 13, 1, 0 }, - { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 12, 5, 0 }, - { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 12, 5, 0 }, - { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 12, 0 }, - { 26, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 12, 0 }, - { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 12, 0 }, - { 19, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 12, 0, 12, 0 }, - { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 12, 0 }, - { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 17, 0 }, - { 6, 9, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 5, 17, 0 }, - { 10, 18, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 3, 4, 4, 22, 0 }, - { 10, 18, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 3, 4, 4, 12, 0 }, - { 10, 18, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 3, 4, 4, 12, 0 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 12, 20 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 30, 21 }, + { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 30, 21 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 7, 0, 8, 30, 21 }, + { 0, 17, 103, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 30, 21 }, + { 0, 17, 9, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 30, 21 }, + { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 30, 21 }, + { 0, 17, 107, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 30, 21 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 21 }, + { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 21 }, + { 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 21 }, + { 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 21 }, + { 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 21 }, + { 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 21 }, + { 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 21 }, + { 3, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 21 }, + { 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 21 }, + { 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 21 }, + { 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 21 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 17, 21 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 30, 22 }, + { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 30, 22 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 7, 0, 8, 30, 22 }, + { 0, 17, 118, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 30, 22 }, + { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 30, 22 }, + { 0, 17, 122, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 30, 22 }, + { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 22 }, + { 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 22 }, + { 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 22 }, + { 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 22 }, + { 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 22 }, + { 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 22 }, + { 3, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 22 }, + { 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 22 }, + { 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 22 }, + { 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 22 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 8, 30, 22 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 7, 8, 12, 23 }, + { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 18, 23 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 18, 23 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 12, 23 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 4, 23 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 17, 23 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 6, 23 }, + { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 12, 23 }, + { 0, 17, 220, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 4, 4, 4, 21, 23 }, + { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 11, 9, 11, 23 }, + { 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 11, 9, 11, 23 }, + { 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 11, 9, 11, 23 }, + { 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 11, 9, 11, 23 }, + { 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 11, 9, 11, 23 }, + { 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 11, 9, 11, 23 }, + { 3, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 11, 9, 11, 23 }, + { 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 11, 9, 11, 23 }, + { 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 11, 9, 11, 23 }, + { 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 11, 9, 11, 23 }, + { 5, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 12, 23 }, + { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 17, 23 }, + { 0, 17, 216, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 4, 4, 4, 21, 23 }, + { 21, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 13, 0, 23 }, + { 22, 10, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 13, 1, 23 }, + { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 7, 4, 4, 21, 23 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 7, 8, 12, 23 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 7, 8, 12, 23 }, + { 0, 17, 129, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 4, 4, 4, 21, 23 }, + { 0, 17, 130, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 4, 4, 4, 21, 23 }, + { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 4, 4, 4, 21, 23 }, + { 0, 17, 132, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 4, 4, 4, 21, 23 }, + { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 7, 4, 4, 17, 23 }, + { 0, 17, 230, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 4, 4, 4, 21, 23 }, + { 0, 17, 9, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 4, 4, 4, 21, 23 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 7, 8, 12, 23 }, + { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 4, 4, 4, 21, 23 }, + { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 21, 23 }, + { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 17, 23 }, + { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 12, 23 }, + { 0, 17, 220, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 21, 23 }, + { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 12, 23 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 18, 23 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 17, 23 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 18, 23 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 12, 23 }, + { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 2 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 4, 23 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 8, 30, 24 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 8, 30, 24 }, + { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 4, 4, 30, 24 }, + { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 4, 4, 30, 24 }, + { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 30, 24 }, + { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 7, 4, 4, 30, 24 }, + { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 4, 4, 4, 30, 24 }, + { 0, 17, 7, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 30, 24 }, + { 0, 17, 9, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 30, 24 }, + { 0, 17, 9, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 4, 4, 4, 30, 24 }, + { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 7, 4, 4, 30, 24 }, + { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 11, 9, 11, 24 }, + { 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 11, 9, 11, 24 }, + { 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 11, 9, 11, 24 }, + { 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 11, 9, 11, 24 }, + { 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 11, 9, 11, 24 }, + { 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 11, 9, 11, 24 }, + { 3, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 11, 9, 11, 24 }, + { 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 11, 9, 11, 24 }, + { 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 11, 9, 11, 24 }, + { 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 11, 9, 11, 24 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 12, 17, 24 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 12, 24 }, + { 0, 17, 220, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 4, 4, 4, 30, 24 }, + { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 24 }, + { 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 24 }, + { 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 24 }, + { 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 24 }, + { 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 24 }, + { 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 24 }, + { 3, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 24 }, + { 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 24 }, + { 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 24 }, + { 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 24 }, + { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 4, 4, 30, 24 }, + { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 4, 4, 4, 30, 24 }, + { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 30, 24 }, + { 14, 0, 0, 0, -1, 0, 7264, 0, 0, 7264, 0, 0, 0, 0, 1, 0, 7, 7, 12, 25 }, + { 14, 0, 0, 0, -1, 0, 7264, 0, 0, 7264, 0, 0, 0, 0, 13, 0, 7, 7, 12, 25 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 8, 12, 25 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 7, 8, 12, 25 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 7, 8, 12, 25 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 2 }, + { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 7, 8, 12, 25 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 7, 8, 12, 25 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 8, 7, 8, 25, 26 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 8, 7, 8, 25, 26 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 9, 7, 8, 26, 26 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 9, 7, 8, 26, 26 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 10, 7, 8, 27, 26 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 10, 7, 8, 27, 26 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 7, 8, 12, 27 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 7, 8, 12, 27 }, + { 0, 17, 230, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 4, 4, 4, 21, 27 }, + { 0, 17, 230, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 4, 4, 4, 21, 27 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 12, 27 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 17, 27 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 12, 12, 27 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 12, 27 }, + { 5, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 12, 27 }, + { 5, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 12, 27 }, + { 5, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 12, 27 }, + { 5, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 12, 27 }, + { 5, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 12, 27 }, + { 5, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 12, 27 }, + { 5, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 12, 27 }, + { 5, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 12, 27 }, + { 5, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 12, 27 }, + { 5, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 12, 27 }, + { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 12, 27 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 7, 8, 12, 28 }, + { 20, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 17, 29 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 7, 8, 12, 29 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 12, 29 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 12, 12, 29 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 7, 8, 12, 29 }, + { 6, 9, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 5, 17, 30 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 7, 8, 12, 30 }, + { 21, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 13, 0, 30 }, + { 22, 10, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 13, 1, 30 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 7, 8, 12, 31 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 17, 2 }, + { 4, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 7, 8, 12, 31 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 7, 8, 12, 42 }, + { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 4, 4, 4, 21, 42 }, + { 0, 17, 9, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 4, 4, 4, 21, 42 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 7, 8, 12, 43 }, + { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 4, 4, 4, 21, 43 }, + { 0, 17, 9, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 4, 4, 4, 21, 43 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 12, 17, 2 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 7, 8, 12, 44 }, + { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 4, 4, 4, 21, 44 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 7, 8, 12, 45 }, + { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 4, 4, 4, 21, 45 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 8, 30, 32 }, + { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 30, 32 }, + { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 7, 4, 4, 30, 32 }, + { 0, 17, 9, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 30, 32 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 17, 32 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 5, 32 }, + { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 8, 30, 32 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 12, 32 }, + { 27, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 9, 32 }, + { 0, 17, 230, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 4, 4, 4, 30, 32 }, + { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 11, 9, 11, 32 }, + { 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 11, 9, 11, 32 }, + { 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 11, 9, 11, 32 }, + { 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 11, 9, 11, 32 }, + { 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 11, 9, 11, 32 }, + { 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 11, 9, 11, 32 }, + { 3, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 11, 9, 11, 32 }, + { 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 11, 9, 11, 32 }, + { 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 11, 9, 11, 32 }, + { 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 11, 9, 11, 32 }, + { 5, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 12, 32 }, + { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 12, 33 }, + { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 11, 6, 2 }, + { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 12, 6, 2 }, + { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 17, 33 }, + { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 17, 2 }, + { 20, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 18, 33 }, + { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 11, 6, 33 }, + { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 12, 6, 33 }, + { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 21, 33 }, + { 6, 9, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 5, 4, 33 }, + { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 11, 9, 11, 33 }, + { 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 11, 9, 11, 33 }, + { 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 11, 9, 11, 33 }, + { 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 11, 9, 11, 33 }, + { 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 11, 9, 11, 33 }, + { 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 11, 9, 11, 33 }, + { 3, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 11, 9, 11, 33 }, + { 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 11, 9, 11, 33 }, + { 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 11, 9, 11, 33 }, + { 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 11, 9, 11, 33 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 7, 8, 12, 33 }, + { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 7, 8, 12, 33 }, + { 0, 17, 228, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 21, 33 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 7, 8, 12, 33 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 7, 8, 12, 47 }, + { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 4, 4, 4, 21, 47 }, + { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 4, 4, 21, 47 }, + { 0, 17, 222, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 4, 4, 4, 21, 47 }, + { 0, 17, 230, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 4, 4, 4, 21, 47 }, + { 0, 17, 220, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 4, 4, 4, 21, 47 }, + { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 12, 47 }, + { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 12, 6, 47 }, + { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 11, 9, 11, 47 }, + { 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 11, 9, 11, 47 }, + { 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 11, 9, 11, 47 }, + { 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 11, 9, 11, 47 }, + { 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 11, 9, 11, 47 }, + { 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 11, 9, 11, 47 }, + { 3, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 11, 9, 11, 47 }, + { 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 11, 9, 11, 47 }, + { 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 11, 9, 11, 47 }, + { 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 11, 9, 11, 47 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 8, 30, 48 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 8, 30, 56 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 8, 30, 56 }, + { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 4, 4, 30, 56 }, + { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 7, 4, 4, 30, 56 }, + { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 11, 9, 11, 56 }, + { 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 11, 9, 11, 56 }, + { 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 11, 9, 11, 56 }, + { 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 11, 9, 11, 56 }, + { 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 11, 9, 11, 56 }, + { 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 11, 9, 11, 56 }, + { 3, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 11, 9, 11, 56 }, + { 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 11, 9, 11, 56 }, + { 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 11, 9, 11, 56 }, + { 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 11, 9, 11, 56 }, + { 5, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 30, 56 }, + { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 30, 56 }, + { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 12, 32 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 7, 8, 12, 55 }, + { 0, 17, 230, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 4, 4, 4, 21, 55 }, + { 0, 17, 220, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 4, 4, 4, 21, 55 }, + { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 7, 4, 4, 21, 55 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 12, 55 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 8, 30, 78 }, + { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 7, 4, 4, 30, 78 }, + { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 4, 4, 4, 30, 78 }, + { 0, 17, 9, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 4, 4, 4, 30, 78 }, + { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 4, 4, 30, 78 }, + { 0, 17, 230, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 4, 4, 4, 30, 78 }, + { 0, 17, 220, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 4, 4, 4, 21, 78 }, + { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 11, 9, 11, 78 }, + { 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 11, 9, 11, 78 }, + { 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 11, 9, 11, 78 }, + { 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 11, 9, 11, 78 }, + { 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 11, 9, 11, 78 }, + { 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 11, 9, 11, 78 }, + { 3, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 11, 9, 11, 78 }, + { 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 11, 9, 11, 78 }, + { 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 11, 9, 11, 78 }, + { 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 11, 9, 11, 78 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 30, 78 }, + { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 8, 30, 78 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 12, 30, 78 }, + { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 4, 4, 4, 21, 62 }, + { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 7, 4, 4, 21, 62 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 7, 8, 12, 62 }, + { 0, 17, 7, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 4, 4, 4, 21, 62 }, + { 1, 0, 9, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 7, 4, 4, 21, 62 }, + { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 11, 9, 11, 62 }, + { 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 11, 9, 11, 62 }, + { 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 11, 9, 11, 62 }, + { 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 11, 9, 11, 62 }, + { 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 11, 9, 11, 62 }, + { 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 11, 9, 11, 62 }, + { 3, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 11, 9, 11, 62 }, + { 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 11, 9, 11, 62 }, + { 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 11, 9, 11, 62 }, + { 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 11, 9, 11, 62 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 12, 17, 62 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 12, 62 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 17, 62 }, + { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 12, 62 }, + { 0, 17, 230, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 4, 4, 4, 21, 62 }, + { 0, 17, 220, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 4, 4, 4, 21, 62 }, + { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 4, 4, 4, 21, 67 }, + { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 7, 4, 4, 21, 67 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 7, 8, 12, 67 }, + { 1, 0, 9, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 7, 4, 4, 21, 67 }, + { 0, 17, 9, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 4, 4, 4, 21, 67 }, + { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 7, 4, 4, 21, 67 }, + { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 67 }, + { 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 67 }, + { 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 67 }, + { 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 67 }, + { 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 67 }, + { 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 67 }, + { 3, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 67 }, + { 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 67 }, + { 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 67 }, + { 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 67 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 7, 8, 12, 67 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 7, 8, 12, 93 }, + { 0, 17, 7, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 4, 4, 4, 21, 93 }, + { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 7, 4, 4, 21, 93 }, + { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 4, 4, 4, 21, 93 }, + { 1, 0, 9, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 7, 4, 4, 21, 93 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 12, 93 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 7, 8, 12, 68 }, + { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 7, 4, 4, 21, 68 }, + { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 4, 4, 4, 21, 68 }, + { 0, 17, 7, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 4, 4, 4, 21, 68 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 12, 17, 68 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 17, 68 }, + { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 68 }, + { 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 68 }, + { 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 68 }, + { 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 68 }, + { 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 68 }, + { 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 68 }, + { 3, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 68 }, + { 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 68 }, + { 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 68 }, + { 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 68 }, + { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 69 }, + { 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 69 }, + { 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 69 }, + { 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 69 }, + { 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 69 }, + { 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 69 }, + { 3, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 69 }, + { 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 69 }, + { 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 69 }, + { 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 69 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 7, 8, 12, 69 }, + { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 7, 8, 12, 69 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 12, 17, 69 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 12, 67 }, + { 0, 17, 230, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 4, 4, 4, 21, 1 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 2 }, + { 0, 17, 1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 4, 4, 4, 21, 1 }, + { 0, 17, 220, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 4, 4, 4, 21, 1 }, + { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 7, 4, 4, 21, 2 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 7, 8, 12, 2 }, + { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 7, 4, 4, 21, 2 }, + { 0, 17, 230, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 4, 4, 4, 21, 1 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 7, 8, 12, 2 }, + { 15, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 7, 6, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 7, 6, 12, 5 }, + { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 7, 6, 12, 3 }, + { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 7, 6, 12, 4 }, + { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 7, 6, 12, 5 }, + { 15, 0, 0, 0, -1, 0, 0, 5, 5, 0, 0, 1, 1, 0, 8, 0, 7, 6, 12, 3 }, + { 15, 0, 0, 0, -1, 0, 0, 3814, 3814, 0, 0, 0, 0, 0, 8, 0, 7, 6, 12, 3 }, + { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 7, 6, 12, 3 }, + { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 7, 6, 12, 4 }, + { 0, 17, 230, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 4, 4, 4, 21, 1 }, + { 0, 17, 220, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 4, 4, 4, 21, 1 }, + { 0, 17, 230, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 4, 4, 4, 21, 1 }, + { 0, 17, 234, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 4, 4, 4, 21, 1 }, + { 0, 17, 214, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 4, 4, 4, 21, 1 }, + { 0, 17, 220, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 4, 4, 4, 21, 1 }, + { 0, 17, 202, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 4, 4, 4, 21, 1 }, + { 0, 17, 233, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 4, 4, 4, 21, 1 }, + { 15, 0, 0, 0, -1, 0, 0, 112, 112, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 3 }, + { 15, 0, 0, 0, -1, 0, 0, 115, 115, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 3 }, + { 15, 0, 0, 0, -1, 0, 0, 118, 118, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 3 }, + { 15, 0, 0, 0, -1, 0, 0, 121, 121, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 3 }, + { 15, 0, 0, 0, -1, 0, 0, 124, 124, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 3 }, + { 15, 0, 0, 0, -1, 0, 0, -59, -59, -58, 0, 0, 0, 0, 2, 0, 7, 6, 12, 3 }, + { 15, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 7, 6, 12, 3 }, + { 14, 0, 0, 0, -1, 0, -7615, 0, 0, -7615, 0, 0, 0, 0, 10, 0, 7, 7, 12, 3 }, + { 14, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 10, 0, 7, 7, 12, 3 }, + { 15, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 10, 0, 7, 6, 12, 3 }, + { 15, 0, 0, 0, -1, 0, 0, 8, 8, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 4 }, + { 14, 0, 0, 0, -1, 0, -8, 0, 0, -8, 0, 0, 0, 0, 1, 0, 7, 7, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, 127, 127, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, 130, 130, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, 134, 134, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, 138, 138, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, 74, 74, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, 86, 86, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, 100, 100, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, 128, 128, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, 112, 112, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, 126, 126, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, 176, 8, 0, 0, 1, 0, 0, 1, 0, 7, 6, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, 179, 8, 0, 0, 1, 0, 0, 1, 0, 7, 6, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, 182, 8, 0, 0, 1, 0, 0, 1, 0, 7, 6, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, 185, 8, 0, 0, 1, 0, 0, 1, 0, 7, 6, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, 188, 8, 0, 0, 1, 0, 0, 1, 0, 7, 6, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, 191, 8, 0, 0, 1, 0, 0, 1, 0, 7, 6, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, 194, 8, 0, 0, 1, 0, 0, 1, 0, 7, 6, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, 197, 8, 0, 0, 1, 0, 0, 1, 0, 7, 6, 12, 4 }, + { 16, 0, 0, 0, -1, 0, -8, 176, 0, -8, 0, 1, 0, 0, 1, 0, 7, 7, 12, 4 }, + { 16, 0, 0, 0, -1, 0, -8, 179, 0, -8, 0, 1, 0, 0, 1, 0, 7, 7, 12, 4 }, + { 16, 0, 0, 0, -1, 0, -8, 182, 0, -8, 0, 1, 0, 0, 1, 0, 7, 7, 12, 4 }, + { 16, 0, 0, 0, -1, 0, -8, 185, 0, -8, 0, 1, 0, 0, 1, 0, 7, 7, 12, 4 }, + { 16, 0, 0, 0, -1, 0, -8, 188, 0, -8, 0, 1, 0, 0, 1, 0, 7, 7, 12, 4 }, + { 16, 0, 0, 0, -1, 0, -8, 191, 0, -8, 0, 1, 0, 0, 1, 0, 7, 7, 12, 4 }, + { 16, 0, 0, 0, -1, 0, -8, 194, 0, -8, 0, 1, 0, 0, 1, 0, 7, 7, 12, 4 }, + { 16, 0, 0, 0, -1, 0, -8, 197, 0, -8, 0, 1, 0, 0, 1, 0, 7, 7, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, 200, 8, 0, 0, 1, 0, 0, 1, 0, 7, 6, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, 203, 8, 0, 0, 1, 0, 0, 1, 0, 7, 6, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, 206, 8, 0, 0, 1, 0, 0, 1, 0, 7, 6, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, 209, 8, 0, 0, 1, 0, 0, 1, 0, 7, 6, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, 212, 8, 0, 0, 1, 0, 0, 1, 0, 7, 6, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, 215, 8, 0, 0, 1, 0, 0, 1, 0, 7, 6, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, 218, 8, 0, 0, 1, 0, 0, 1, 0, 7, 6, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, 221, 8, 0, 0, 1, 0, 0, 1, 0, 7, 6, 12, 4 }, + { 16, 0, 0, 0, -1, 0, -8, 200, 0, -8, 0, 1, 0, 0, 1, 0, 7, 7, 12, 4 }, + { 16, 0, 0, 0, -1, 0, -8, 203, 0, -8, 0, 1, 0, 0, 1, 0, 7, 7, 12, 4 }, + { 16, 0, 0, 0, -1, 0, -8, 206, 0, -8, 0, 1, 0, 0, 1, 0, 7, 7, 12, 4 }, + { 16, 0, 0, 0, -1, 0, -8, 209, 0, -8, 0, 1, 0, 0, 1, 0, 7, 7, 12, 4 }, + { 16, 0, 0, 0, -1, 0, -8, 212, 0, -8, 0, 1, 0, 0, 1, 0, 7, 7, 12, 4 }, + { 16, 0, 0, 0, -1, 0, -8, 215, 0, -8, 0, 1, 0, 0, 1, 0, 7, 7, 12, 4 }, + { 16, 0, 0, 0, -1, 0, -8, 218, 0, -8, 0, 1, 0, 0, 1, 0, 7, 7, 12, 4 }, + { 16, 0, 0, 0, -1, 0, -8, 221, 0, -8, 0, 1, 0, 0, 1, 0, 7, 7, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, 224, 8, 0, 0, 1, 0, 0, 1, 0, 7, 6, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, 227, 8, 0, 0, 1, 0, 0, 1, 0, 7, 6, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, 230, 8, 0, 0, 1, 0, 0, 1, 0, 7, 6, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, 233, 8, 0, 0, 1, 0, 0, 1, 0, 7, 6, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, 236, 8, 0, 0, 1, 0, 0, 1, 0, 7, 6, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, 239, 8, 0, 0, 1, 0, 0, 1, 0, 7, 6, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, 242, 8, 0, 0, 1, 0, 0, 1, 0, 7, 6, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, 245, 8, 0, 0, 1, 0, 0, 1, 0, 7, 6, 12, 4 }, + { 16, 0, 0, 0, -1, 0, -8, 224, 0, -8, 0, 1, 0, 0, 1, 0, 7, 7, 12, 4 }, + { 16, 0, 0, 0, -1, 0, -8, 227, 0, -8, 0, 1, 0, 0, 1, 0, 7, 7, 12, 4 }, + { 16, 0, 0, 0, -1, 0, -8, 230, 0, -8, 0, 1, 0, 0, 1, 0, 7, 7, 12, 4 }, + { 16, 0, 0, 0, -1, 0, -8, 233, 0, -8, 0, 1, 0, 0, 1, 0, 7, 7, 12, 4 }, + { 16, 0, 0, 0, -1, 0, -8, 236, 0, -8, 0, 1, 0, 0, 1, 0, 7, 7, 12, 4 }, + { 16, 0, 0, 0, -1, 0, -8, 239, 0, -8, 0, 1, 0, 0, 1, 0, 7, 7, 12, 4 }, + { 16, 0, 0, 0, -1, 0, -8, 242, 0, -8, 0, 1, 0, 0, 1, 0, 7, 7, 12, 4 }, + { 16, 0, 0, 0, -1, 0, -8, 245, 0, -8, 0, 1, 0, 0, 1, 0, 7, 7, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, 260, 257, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, 248, 9, 0, 0, 1, 0, 0, 1, 0, 7, 6, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, 266, 263, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, 142, 142, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, 297, 293, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 4 }, + { 14, 0, 0, 0, -1, 0, -74, 0, 0, -74, 0, 0, 0, 0, 1, 0, 7, 7, 12, 4 }, + { 16, 0, 0, 0, -1, 0, -9, 248, 0, -9, 0, 1, 0, 0, 1, 0, 7, 7, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, -7205, -7205, -7173, 0, 0, 0, 0, 1, 0, 7, 6, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, 272, 269, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, 251, 9, 0, 0, 1, 0, 0, 1, 0, 7, 6, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, 278, 275, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, 145, 145, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, 305, 301, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 4 }, + { 14, 0, 0, 0, -1, 0, -86, 0, 0, -86, 0, 0, 0, 0, 1, 0, 7, 7, 12, 4 }, + { 16, 0, 0, 0, -1, 0, -9, 251, 0, -9, 0, 1, 0, 0, 1, 0, 7, 7, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, 148, 148, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, 152, 152, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, 155, 155, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 4 }, + { 14, 0, 0, 0, -1, 0, -100, 0, 0, -100, 0, 0, 0, 0, 1, 0, 7, 7, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, 159, 159, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, 163, 163, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, 166, 166, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, 169, 169, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 4 }, + { 14, 0, 0, 0, -1, 0, -112, 0, 0, -112, 0, 0, 0, 0, 1, 0, 7, 7, 12, 4 }, + { 14, 0, 0, 0, -1, 0, -7, 0, 0, -7, 0, 0, 0, 0, 1, 0, 7, 7, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, 284, 281, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, 254, 9, 0, 0, 1, 0, 0, 1, 0, 7, 6, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, 290, 287, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, 173, 173, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, 313, 309, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 4 }, + { 14, 0, 0, 0, -1, 0, -128, 0, 0, -128, 0, 0, 0, 0, 1, 0, 7, 7, 12, 4 }, + { 14, 0, 0, 0, -1, 0, -126, 0, 0, -126, 0, 0, 0, 0, 1, 0, 7, 7, 12, 4 }, + { 16, 0, 0, 0, -1, 0, -9, 254, 0, -9, 0, 1, 0, 0, 1, 0, 7, 7, 12, 4 }, + { 28, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 18, 4 }, + { 6, 9, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 5, 17, 2 }, + { 6, 9, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 5, 4, 2 }, + { 10, 18, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 0, 4, 20, 2 }, + { 10, 18, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 1 }, + { 10, 18, 0, 3, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 1 }, + { 10, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 4, 4, 21, 2 }, + { 10, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 4, 4, 21, 2 }, + { 20, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 17, 2 }, + { 20, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 4, 2 }, + { 20, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 11, 17, 2 }, + { 20, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 11, 19, 2 }, + { 20, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 2 }, + { 23, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 8, 13, 3, 2 }, + { 24, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 8, 13, 3, 2 }, + { 21, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 13, 0, 2 }, + { 23, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 13, 3, 2 }, + { 24, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 13, 3, 2 }, + { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 8, 10, 15, 2 }, + { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 15, 2 }, + { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 9, 0, 17, 2 }, + { 7, 9, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 3, 3, 35, 2 }, + { 8, 7, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 3, 3, 35, 2 }, + { 10, 11, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 4, 4, 21, 2 }, + { 10, 14, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 4, 4, 21, 2 }, + { 10, 16, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 4, 4, 21, 2 }, + { 10, 12, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 4, 4, 21, 2 }, + { 10, 15, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 4, 4, 21, 2 }, + { 6, 6, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 5, 4, 2 }, + { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 10, 2 }, + { 23, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 13, 3, 2 }, + { 24, 10, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 13, 3, 2 }, + { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 12, 5, 2 }, + { 26, 6, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 10, 0, 8, 2 }, + { 22, 10, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 13, 1, 2 }, + { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 12, 5, 2 }, + { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 12, 5, 2 }, + { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 12, 2 }, + { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 12, 2 }, + { 26, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 12, 2 }, + { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 12, 2 }, + { 19, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 12, 0, 12, 2 }, + { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 12, 2 }, + { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 17, 2 }, + { 6, 9, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 5, 17, 2 }, + { 10, 18, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 3, 4, 4, 22, 2 }, + { 10, 18, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 3, 4, 4, 12, 2 }, + { 10, 18, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 3, 4, 4, 12, 2 }, { 13, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 12, 0 }, - { 10, 18, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 4, 4, 21, 0 }, - { 5, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 0 }, - { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 7, 6, 12, 0 }, - { 5, 2, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 0 }, - { 5, 2, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 0 }, - { 5, 2, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 0 }, - { 5, 2, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 0 }, - { 5, 2, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 0 }, - { 5, 2, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 0 }, - { 26, 3, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 0 }, - { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 7, 6, 12, 0 }, - { 27, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 9, 0 }, - { 27, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 9, 0 }, - { 27, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 9, 0 }, - { 27, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 9, 0 }, - { 27, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 9, 0 }, - { 27, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 10, 0 }, - { 27, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 9, 0 }, - { 27, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 9, 0 }, - { 27, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 9, 0 }, - { 2, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 28 }, - { 2, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 21, 28 }, - { 2, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 4, 4, 4, 21, 28 }, - { 0, 17, 1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 4, 4, 4, 21, 28 }, - { 0, 17, 220, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 4, 4, 4, 21, 28 }, - { 0, 17, 1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 4, 4, 4, 21, 28 }, - { 14, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 7, 12, 0 }, - { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 10, 0 }, - { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 9, 0 }, - { 14, 0, 0, 0, -1, 0, -7517, 0, 0, -7517, 0, 0, 0, 0, 1, 0, 7, 7, 12, 1 }, - { 14, 0, 0, 0, -1, 0, -8383, 0, 0, -8383, 0, 0, 0, 0, 1, 0, 7, 7, 12, 0 }, - { 14, 0, 0, 0, -1, 0, -8262, 0, 0, -8262, 0, 0, 0, 0, 1, 0, 7, 7, 12, 0 }, - { 29, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 0 }, - { 14, 0, 0, 0, -1, 0, 28, 0, 0, 28, 0, 0, 0, 0, 1, 0, 7, 7, 12, 0 }, - { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 12, 0 }, - { 15, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 7, 6, 12, 0 }, - { 14, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 7, 7, 12, 0 }, - { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 12, 0 }, - { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 12, 0 }, - { 15, 0, 0, 0, -1, 0, 0, -28, -28, 0, 0, 0, 0, 0, 9, 0, 7, 6, 12, 0 }, - { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 12, 0 }, - { 5, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 0 }, - { 4, 0, 0, 0, -1, 0, 16, 0, 0, 16, 0, 0, 0, 0, 1, 0, 7, 7, 12, 0 }, - { 4, 0, 0, 0, -1, 0, 0, -16, -16, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 0 }, - { 4, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 8, 12, 0 }, - { 4, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 7, 8, 12, 0 }, - { 26, 10, 0, 0, -1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 0 }, - { 26, 10, 0, 0, -1, -3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 0 }, - { 26, 10, 0, 0, -1, 2016, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 0 }, - { 26, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 0 }, - { 26, 10, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 0 }, - { 26, 10, 0, 0, -1, 138, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 0 }, - { 26, 10, 0, 0, -1, 1824, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 0 }, - { 26, 10, 0, 0, -1, 2104, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 0 }, - { 26, 10, 0, 0, -1, 2108, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 0 }, - { 26, 10, 0, 0, -1, 2106, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 0 }, - { 26, 10, 0, 0, -1, -138, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 0 }, - { 26, 10, 0, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 12, 0 }, - { 26, 10, 0, 0, -1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 12, 0 }, - { 26, 10, 0, 0, -1, -8, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 12, 0 }, - { 26, 10, 0, 0, -1, -7, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 12, 0 }, - { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 14, 0 }, - { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 0 }, - { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 12, 0 }, - { 26, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 12, 0 }, - { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 0 }, - { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 12, 0 }, - { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 14, 0 }, - { 5, 10, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 0 }, - { 5, 10, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 0 }, - { 5, 10, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 0 }, - { 5, 10, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 0 }, - { 5, 10, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 0 }, - { 5, 10, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 0 }, - { 5, 10, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 0 }, - { 5, 10, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 0 }, - { 5, 10, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 0 }, - { 5, 2, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 0 }, - { 29, 0, 0, 0, -1, 0, 26, 0, 0, 26, 0, 0, 0, 0, 1, 0, 7, 7, 12, 0 }, - { 29, 0, 0, 0, -1, 0, 0, -26, -26, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 0 }, - { 5, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 0 }, - { 5, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 12, 0 }, - { 5, 10, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 12, 0 }, - { 5, 10, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 12, 0 }, - { 5, 10, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 12, 0 }, - { 5, 10, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 12, 0 }, - { 5, 10, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 12, 0 }, - { 5, 10, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 12, 0 }, - { 5, 10, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 12, 0 }, - { 5, 10, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 12, 0 }, - { 5, 10, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 12, 0 }, - { 5, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 12, 0 }, - { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 14, 0 }, - { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 14, 0 }, - { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 12, 0 }, - { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 12, 0 }, - { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 14, 0 }, - { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 14, 0 }, - { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 13, 3, 0 }, - { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 6, 0 }, - { 21, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 13, 0, 0 }, - { 22, 10, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 13, 1, 0 }, - { 26, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 12, 0 }, - { 26, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 12, 0 }, - { 26, 10, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 12, 0 }, - { 21, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 13, 0, 0 }, - { 22, 10, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 13, 1, 0 }, - { 26, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 12, 0 }, - { 26, 10, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 12, 0 }, - { 26, 10, 0, 0, -1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 12, 0 }, - { 26, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 12, 0 }, - { 26, 10, 0, 0, -1, -2, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 12, 0 }, - { 26, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 12, 0 }, - { 26, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 12, 0 }, - { 26, 10, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 12, 0 }, - { 21, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 13, 0, 0 }, - { 22, 10, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 13, 1, 0 }, - { 21, 10, 0, 0, -1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 13, 0, 0 }, - { 22, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 13, 1, 0 }, - { 21, 10, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 13, 0, 0 }, - { 22, 10, 0, 0, -1, -3, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 13, 1, 0 }, - { 26, 10, 0, 0, -1, -1824, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 12, 0 }, - { 26, 10, 0, 0, -1, -2016, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 12, 0 }, - { 26, 10, 0, 0, -1, -2104, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 12, 0 }, - { 26, 10, 0, 0, -1, -2106, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 12, 0 }, - { 26, 10, 0, 0, -1, -2108, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 12, 0 }, - { 14, 0, 0, 0, -1, 0, 48, 0, 0, 48, 0, 0, 0, 0, 8, 0, 7, 7, 12, 0 }, - { 15, 0, 0, 0, -1, 0, 0, -48, -48, 0, 0, 0, 0, 0, 8, 0, 7, 6, 12, 0 }, - { 14, 0, 0, 0, -1, 0, -10743, 0, 0, -10743, 0, 0, 0, 0, 9, 0, 7, 7, 12, 0 }, - { 14, 0, 0, 0, -1, 0, -3814, 0, 0, -3814, 0, 0, 0, 0, 9, 0, 7, 7, 12, 0 }, - { 14, 0, 0, 0, -1, 0, -10727, 0, 0, -10727, 0, 0, 0, 0, 9, 0, 7, 7, 12, 0 }, - { 15, 0, 0, 0, -1, 0, 0, -10795, -10795, 0, 0, 0, 0, 0, 9, 0, 7, 6, 12, 0 }, - { 15, 0, 0, 0, -1, 0, 0, -10792, -10792, 0, 0, 0, 0, 0, 9, 0, 7, 6, 12, 0 }, - { 14, 0, 0, 0, -1, 0, -10780, 0, 0, -10780, 0, 0, 0, 0, 10, 0, 7, 7, 12, 0 }, - { 14, 0, 0, 0, -1, 0, -10749, 0, 0, -10749, 0, 0, 0, 0, 10, 0, 7, 7, 12, 0 }, - { 14, 0, 0, 0, -1, 0, -10783, 0, 0, -10783, 0, 0, 0, 0, 10, 0, 7, 7, 12, 0 }, - { 14, 0, 0, 0, -1, 0, -10782, 0, 0, -10782, 0, 0, 0, 0, 11, 0, 7, 7, 12, 0 }, - { 15, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 7, 6, 12, 0 }, - { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 7, 6, 12, 0 }, - { 14, 0, 0, 0, -1, 0, -10815, 0, 0, -10815, 0, 0, 0, 0, 11, 0, 7, 7, 12, 0 }, - { 14, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 11, 0, 7, 7, 12, 0 }, - { 15, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 11, 0, 7, 6, 12, 0 }, - { 14, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 13, 0, 7, 7, 12, 0 }, - { 15, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 13, 0, 7, 6, 12, 0 }, - { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 6, 0 }, - { 5, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 12, 0 }, - { 15, 0, 0, 0, -1, 0, 0, -7264, -7264, 0, 0, 0, 0, 0, 8, 0, 7, 6, 12, 22 }, - { 15, 0, 0, 0, -1, 0, 0, -7264, -7264, 0, 0, 0, 0, 0, 13, 0, 7, 6, 12, 22 }, - { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 7, 8, 12, 0 }, - { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 17, 0 }, - { 0, 17, 9, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 4, 4, 4, 21, 0 }, - { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 13, 3, 0 }, - { 23, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 13, 3, 0 }, - { 24, 10, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 13, 3, 0 }, - { 20, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 17, 0 }, - { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0 }, - { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 17, 0 }, - { 20, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 12, 0 }, - { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 12, 0 }, - { 23, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 13, 3, 0 }, - { 24, 10, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 13, 3, 0 }, - { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 12, 6, 0 }, - { 17, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 7, 8, 12, 0 }, - { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 17, 0 }, - { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 12, 0 }, - { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 17, 0 }, - { 20, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 19, 0 }, - { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 14, 0 }, - { 6, 9, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 5, 14, 0 }, - { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 11, 1, 0 }, - { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 12, 1, 0 }, - { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 14, 0 }, - { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 8, 5, 0 }, - { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 14, 0 }, - { 4, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 14, 0 }, - { 20, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 5, 0 }, - { 22, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 13, 1, 0 }, - { 0, 17, 218, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 28 }, - { 0, 17, 228, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 28 }, - { 0, 17, 222, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 28 }, - { 1, 0, 224, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 23 }, - { 20, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 14, 0 }, - { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 6, 8, 14, 0 }, - { 4, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 8, 14, 0 }, - { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 7, 8, 5, 0 }, - { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 7, 8, 5, 0 }, - { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 14, 0 }, - { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 5, 0 }, - { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 8, 5, 0 }, - { 0, 17, 8, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 28 }, - { 28, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 6, 0, 5, 0 }, - { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 5, 0 }, - { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 8, 14, 0 }, - { 20, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 6, 0, 5, 0 }, - { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 6, 8, 5, 0 }, - { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 6, 8, 14, 0 }, - { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 5, 0 }, - { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 6, 8, 5, 0 }, - { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 6, 8, 14, 0 }, - { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 8, 14, 0 }, - { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 7, 8, 14, 0 }, - { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 8, 14, 23 }, - { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 14, 0 }, - { 5, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 14, 0 }, - { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 7, 8, 14, 0 }, - { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 7, 8, 14, 0 }, - { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 6, 8, 5, 0 }, - { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 14, 23 }, - { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 14, 23 }, - { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 14, 0 }, - { 5, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 0 }, - { 5, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 14, 0 }, - { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 14, 23 }, - { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 6, 0, 14, 0 }, - { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 8, 14, 0 }, - { 13, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0 }, - { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 8, 14, 0 }, - { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 8, 14, 0 }, - { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 8, 14, 0 }, - { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 8, 14, 0 }, - { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 7, 8, 5, 0 }, - { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 14, 0 }, - { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 7, 8, 12, 0 }, - { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 17, 0 }, - { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 12, 17, 0 }, - { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 12, 17, 0 }, - { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 7, 8, 12, 2 }, - { 2, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 4, 4, 4, 21, 2 }, + { 10, 18, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 4, 4, 21, 2 }, + { 5, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 2 }, + { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 7, 6, 12, 3 }, + { 5, 2, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 2 }, + { 5, 2, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 2 }, + { 5, 2, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 2 }, + { 5, 2, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 2 }, + { 5, 2, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 2 }, + { 5, 2, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 2 }, + { 26, 3, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 2 }, + { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 7, 6, 12, 3 }, + { 27, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 9, 2 }, + { 27, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 9, 2 }, + { 27, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 9, 2 }, + { 27, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 9, 2 }, + { 27, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 9, 2 }, + { 27, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 10, 2 }, + { 27, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 9, 2 }, + { 27, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 9, 2 }, + { 27, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 9, 2 }, + { 2, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 1 }, + { 2, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 21, 1 }, + { 2, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 4, 4, 4, 21, 1 }, + { 0, 17, 1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 4, 4, 4, 21, 1 }, + { 0, 17, 220, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 4, 4, 4, 21, 1 }, + { 0, 17, 1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 4, 4, 4, 21, 1 }, + { 14, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 7, 12, 2 }, + { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 10, 2 }, + { 15, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 2 }, + { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 9, 2 }, + { 14, 0, 0, 0, -1, 0, -7517, 0, 0, -7517, 0, 0, 0, 0, 1, 0, 7, 7, 12, 4 }, + { 14, 0, 0, 0, -1, 0, -8383, 0, 0, -8383, 0, 0, 0, 0, 1, 0, 7, 7, 12, 3 }, + { 14, 0, 0, 0, -1, 0, -8262, 0, 0, -8262, 0, 0, 0, 0, 1, 0, 7, 7, 12, 3 }, + { 29, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 2 }, + { 14, 0, 0, 0, -1, 0, 28, 0, 0, 28, 0, 0, 0, 0, 1, 0, 7, 7, 12, 3 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 8, 12, 2 }, + { 15, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 7, 6, 12, 2 }, + { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 12, 2 }, + { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 12, 2 }, + { 15, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 7, 6, 12, 2 }, + { 15, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 7, 6, 12, 2 }, + { 14, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 7, 7, 12, 2 }, + { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 12, 2 }, + { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 12, 2 }, + { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 12, 2 }, + { 15, 0, 0, 0, -1, 0, 0, -28, -28, 0, 0, 0, 0, 0, 9, 0, 7, 6, 12, 3 }, + { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 12, 2 }, + { 5, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 2 }, + { 4, 0, 0, 0, -1, 0, 16, 0, 0, 16, 0, 0, 0, 0, 1, 0, 7, 7, 12, 3 }, + { 4, 0, 0, 0, -1, 0, 0, -16, -16, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 3 }, + { 4, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 8, 12, 3 }, + { 4, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 7, 8, 12, 3 }, + { 26, 10, 0, 0, -1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 2 }, + { 26, 10, 0, 0, -1, -3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 2 }, + { 26, 10, 0, 0, -1, 2016, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 2 }, + { 26, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 2 }, + { 26, 10, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 2 }, + { 26, 10, 0, 0, -1, 138, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 2 }, + { 26, 10, 0, 0, -1, 1824, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 2 }, + { 26, 10, 0, 0, -1, 2104, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 2 }, + { 26, 10, 0, 0, -1, 2108, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 2 }, + { 26, 10, 0, 0, -1, 2106, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 2 }, + { 26, 10, 0, 0, -1, -138, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 2 }, + { 26, 10, 0, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 12, 2 }, + { 26, 10, 0, 0, -1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 12, 2 }, + { 26, 10, 0, 0, -1, -8, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 12, 2 }, + { 26, 10, 0, 0, -1, -7, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 12, 2 }, + { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 14, 2 }, + { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 2 }, + { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 12, 2 }, + { 26, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 12, 2 }, + { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 2 }, + { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 12, 2 }, + { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 14, 2 }, + { 5, 10, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 2 }, + { 5, 10, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 2 }, + { 5, 10, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 2 }, + { 5, 10, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 2 }, + { 5, 10, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 2 }, + { 5, 10, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 2 }, + { 5, 10, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 2 }, + { 5, 10, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 2 }, + { 5, 10, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 2 }, + { 5, 2, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 2 }, + { 29, 0, 0, 0, -1, 0, 26, 0, 0, 26, 0, 0, 0, 0, 1, 0, 7, 7, 12, 2 }, + { 29, 0, 0, 0, -1, 0, 0, -26, -26, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 2 }, + { 5, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 2 }, + { 5, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 12, 2 }, + { 5, 10, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 12, 2 }, + { 5, 10, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 12, 2 }, + { 5, 10, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 12, 2 }, + { 5, 10, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 12, 2 }, + { 5, 10, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 12, 2 }, + { 5, 10, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 12, 2 }, + { 5, 10, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 12, 2 }, + { 5, 10, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 12, 2 }, + { 5, 10, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 12, 2 }, + { 5, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 12, 2 }, + { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 14, 2 }, + { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 14, 2 }, + { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 12, 2 }, + { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 12, 2 }, + { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 14, 2 }, + { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 14, 2 }, + { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 13, 3, 2 }, + { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 6, 2 }, + { 21, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 13, 0, 2 }, + { 22, 10, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 13, 1, 2 }, + { 26, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 12, 2 }, + { 26, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 12, 2 }, + { 26, 10, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 12, 2 }, + { 21, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 13, 0, 2 }, + { 22, 10, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 13, 1, 2 }, + { 26, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 12, 2 }, + { 26, 10, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 12, 2 }, + { 26, 10, 0, 0, -1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 12, 2 }, + { 26, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 12, 2 }, + { 26, 10, 0, 0, -1, -2, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 12, 2 }, + { 26, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 12, 2 }, + { 26, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 12, 2 }, + { 26, 10, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 12, 2 }, + { 21, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 13, 0, 2 }, + { 22, 10, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 13, 1, 2 }, + { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 12, 54 }, + { 21, 10, 0, 0, -1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 13, 0, 2 }, + { 22, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 13, 1, 2 }, + { 21, 10, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 13, 0, 2 }, + { 22, 10, 0, 0, -1, -3, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 13, 1, 2 }, + { 26, 10, 0, 0, -1, -1824, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 12, 2 }, + { 26, 10, 0, 0, -1, -2016, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 12, 2 }, + { 26, 10, 0, 0, -1, -2104, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 12, 2 }, + { 26, 10, 0, 0, -1, -2106, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 12, 2 }, + { 26, 10, 0, 0, -1, -2108, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 12, 2 }, + { 14, 0, 0, 0, -1, 0, 48, 0, 0, 48, 0, 0, 0, 0, 8, 0, 7, 7, 12, 57 }, + { 15, 0, 0, 0, -1, 0, 0, -48, -48, 0, 0, 0, 0, 0, 8, 0, 7, 6, 12, 57 }, + { 14, 0, 0, 0, -1, 0, -10743, 0, 0, -10743, 0, 0, 0, 0, 9, 0, 7, 7, 12, 3 }, + { 14, 0, 0, 0, -1, 0, -3814, 0, 0, -3814, 0, 0, 0, 0, 9, 0, 7, 7, 12, 3 }, + { 14, 0, 0, 0, -1, 0, -10727, 0, 0, -10727, 0, 0, 0, 0, 9, 0, 7, 7, 12, 3 }, + { 15, 0, 0, 0, -1, 0, 0, -10795, -10795, 0, 0, 0, 0, 0, 9, 0, 7, 6, 12, 3 }, + { 15, 0, 0, 0, -1, 0, 0, -10792, -10792, 0, 0, 0, 0, 0, 9, 0, 7, 6, 12, 3 }, + { 14, 0, 0, 0, -1, 0, -10780, 0, 0, -10780, 0, 0, 0, 0, 10, 0, 7, 7, 12, 3 }, + { 14, 0, 0, 0, -1, 0, -10749, 0, 0, -10749, 0, 0, 0, 0, 10, 0, 7, 7, 12, 3 }, + { 14, 0, 0, 0, -1, 0, -10783, 0, 0, -10783, 0, 0, 0, 0, 10, 0, 7, 7, 12, 3 }, + { 14, 0, 0, 0, -1, 0, -10782, 0, 0, -10782, 0, 0, 0, 0, 11, 0, 7, 7, 12, 3 }, + { 15, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 7, 6, 12, 3 }, + { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 7, 6, 12, 3 }, + { 14, 0, 0, 0, -1, 0, -10815, 0, 0, -10815, 0, 0, 0, 0, 11, 0, 7, 7, 12, 3 }, + { 14, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 8, 0, 7, 7, 12, 46 }, + { 15, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 8, 0, 7, 6, 12, 46 }, + { 15, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 7, 6, 12, 46 }, + { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 12, 46 }, + { 14, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 11, 0, 7, 7, 12, 46 }, + { 15, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 11, 0, 7, 6, 12, 46 }, + { 0, 17, 230, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 4, 4, 4, 21, 46 }, + { 14, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 13, 0, 7, 7, 12, 46 }, + { 15, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 13, 0, 7, 6, 12, 46 }, + { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 6, 46 }, + { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 17, 46 }, + { 5, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 12, 46 }, + { 15, 0, 0, 0, -1, 0, 0, -7264, -7264, 0, 0, 0, 0, 0, 8, 0, 7, 6, 12, 25 }, + { 15, 0, 0, 0, -1, 0, 0, -7264, -7264, 0, 0, 0, 0, 0, 13, 0, 7, 6, 12, 25 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 7, 8, 12, 58 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 7, 8, 12, 58 }, + { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 7, 8, 12, 58 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 17, 58 }, + { 0, 17, 9, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 4, 4, 4, 21, 58 }, + { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 13, 3, 2 }, + { 23, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 13, 3, 2 }, + { 24, 10, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 13, 3, 2 }, + { 20, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 17, 2 }, + { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 2 }, + { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 17, 2 }, + { 20, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 12, 2 }, { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 12, 2 }, - { 0, 17, 230, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 4, 4, 4, 21, 2 }, + { 23, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 13, 3, 2 }, + { 24, 10, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 13, 3, 2 }, + { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 12, 6, 2 }, { 17, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 7, 8, 12, 2 }, - { 4, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 7, 8, 12, 0 }, - { 28, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 12, 0 }, - { 17, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 7, 8, 12, 0 }, - { 28, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 12, 0 }, - { 14, 0, 0, 0, -1, 0, 7, 0, 0, 7, 1, 0, 0, 1, 10, 0, 7, 7, 12, 0 }, - { 28, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 12, 0 }, - { 14, 0, 0, 0, -1, 0, 9, 0, 0, 9, 1, 0, 0, 1, 12, 0, 7, 7, 12, 0 }, - { 15, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 7, 6, 12, 0 }, - { 14, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 12, 0, 7, 7, 12, 0 }, - { 15, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 12, 0, 7, 6, 12, 0 }, - { 14, 0, 0, 0, -1, 0, 11, 0, 0, 11, 1, 0, 0, 1, 13, 0, 7, 7, 12, 0 }, - { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 7, 6, 12, 0 }, - { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 4, 4, 4, 21, 0 }, - { 0, 17, 9, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 4, 4, 4, 21, 0 }, - { 29, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 0 }, - { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 18, 0 }, - { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 12, 6, 0 }, - { 0, 17, 9, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 4, 4, 4, 21, 0 }, - { 0, 17, 230, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 4, 4, 4, 21, 8 }, - { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 8 }, - { 0, 17, 220, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 4, 4, 4, 21, 0 }, - { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 12, 0 }, - { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 4, 4, 4, 21, 0 }, - { 0, 17, 7, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 4, 4, 4, 21, 0 }, - { 1, 0, 9, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 7, 4, 4, 21, 0 }, - { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 8, 30, 21 }, - { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 8, 30, 21 }, - { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 30, 21 }, - { 0, 17, 220, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 4, 4, 4, 30, 0 }, - { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 4, 4, 4, 21, 0 }, - { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 12, 17, 0 }, - { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 7, 8, 12, 0 }, - { 0, 17, 9, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 4, 4, 4, 21, 0 }, - { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 11, 7, 8, 23, 23 }, - { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 12, 7, 8, 24, 23 }, + { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 17, 2 }, + { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 12, 2 }, + { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 17, 2 }, + { 20, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 19, 2 }, + { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 14, 37 }, + { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 14, 2 }, + { 6, 9, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 5, 14, 2 }, + { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 11, 1, 2 }, + { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 12, 1, 2 }, + { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 14, 2 }, + { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 8, 5, 37 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 14, 2 }, + { 4, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 14, 37 }, + { 20, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 5, 2 }, + { 22, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 13, 1, 2 }, + { 0, 17, 218, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 1 }, + { 0, 17, 228, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 1 }, + { 0, 17, 222, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 1 }, + { 1, 0, 224, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 26 }, + { 20, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 14, 2 }, + { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 6, 8, 14, 2 }, + { 4, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 8, 14, 37 }, + { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 7, 8, 5, 37 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 7, 8, 5, 2 }, + { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 14, 2 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 5, 34 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 14, 34 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 8, 5, 34 }, + { 0, 17, 8, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 1 }, + { 28, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 6, 0, 5, 2 }, + { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 5, 34 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 8, 14, 34 }, + { 20, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 6, 0, 5, 2 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 6, 8, 5, 35 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 6, 8, 14, 35 }, + { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 5, 2 }, + { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 6, 8, 5, 2 }, + { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 6, 8, 5, 35 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 6, 8, 14, 35 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 8, 14, 36 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 7, 8, 14, 36 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 8, 14, 26 }, + { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 14, 2 }, + { 5, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 14, 2 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 7, 8, 14, 36 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 7, 8, 14, 36 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 6, 8, 5, 35 }, + { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 14, 26 }, + { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 14, 26 }, + { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 14, 2 }, + { 5, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 2 }, + { 5, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 14, 2 }, + { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 14, 26 }, + { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 6, 0, 14, 35 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 8, 14, 37 }, + { 13, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 14, 37 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 8, 14, 37 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 8, 14, 37 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 8, 14, 37 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 8, 14, 37 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 7, 8, 14, 38 }, + { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 7, 8, 5, 38 }, + { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 14, 38 }, + { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 14, 38 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 7, 8, 12, 83 }, + { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 7, 8, 12, 83 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 17, 83 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 12, 17, 83 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 7, 8, 12, 70 }, + { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 7, 8, 12, 70 }, + { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 17, 70 }, + { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 12, 6, 70 }, + { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 12, 17, 70 }, + { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 70 }, + { 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 70 }, + { 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 70 }, + { 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 70 }, + { 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 70 }, + { 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 70 }, + { 3, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 70 }, + { 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 70 }, + { 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 70 }, + { 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 70 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 7, 8, 12, 5 }, + { 2, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 4, 4, 4, 21, 5 }, + { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 12, 5 }, + { 0, 17, 230, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 4, 4, 4, 21, 5 }, + { 17, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 7, 8, 12, 5 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 7, 8, 12, 84 }, + { 4, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 7, 8, 12, 84 }, + { 0, 17, 230, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 4, 4, 4, 21, 84 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 84 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 12, 17, 84 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 17, 84 }, + { 28, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 12, 2 }, + { 17, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 7, 8, 12, 2 }, + { 28, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 12, 2 }, + { 14, 0, 0, 0, -1, 0, 7, 0, 0, 7, 1, 0, 0, 1, 10, 0, 7, 7, 12, 3 }, + { 28, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 12, 2 }, + { 14, 0, 0, 0, -1, 0, 9, 0, 0, 9, 1, 0, 0, 1, 12, 0, 7, 7, 12, 3 }, + { 15, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 7, 6, 12, 3 }, + { 14, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 12, 0, 7, 7, 12, 3 }, + { 15, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 12, 0, 7, 6, 12, 3 }, + { 14, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 13, 0, 7, 7, 12, 3 }, + { 15, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 13, 0, 7, 6, 12, 3 }, + { 14, 0, 0, 0, -1, 0, 11, 0, 0, 11, 1, 0, 0, 1, 13, 0, 7, 7, 12, 3 }, + { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 7, 6, 12, 3 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 7, 8, 12, 3 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 7, 8, 12, 59 }, + { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 4, 4, 4, 21, 59 }, + { 0, 17, 9, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 4, 4, 4, 21, 59 }, + { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 7, 4, 4, 21, 59 }, + { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 12, 59 }, + { 29, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 2 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 7, 8, 12, 65 }, + { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 18, 65 }, + { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 12, 6, 65 }, + { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 7, 4, 4, 21, 71 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 7, 8, 12, 71 }, + { 0, 17, 9, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 4, 4, 4, 21, 71 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 12, 17, 71 }, + { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 71 }, + { 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 71 }, + { 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 71 }, + { 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 71 }, + { 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 71 }, + { 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 71 }, + { 3, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 71 }, + { 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 71 }, + { 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 71 }, + { 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 71 }, + { 0, 17, 230, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 4, 4, 4, 21, 11 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 11 }, + { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 72 }, + { 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 72 }, + { 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 72 }, + { 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 72 }, + { 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 72 }, + { 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 72 }, + { 3, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 72 }, + { 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 72 }, + { 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 72 }, + { 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 72 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 7, 8, 12, 72 }, + { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 4, 4, 4, 21, 72 }, + { 0, 17, 220, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 4, 4, 4, 21, 72 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 17, 72 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 12, 17, 72 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 7, 8, 12, 73 }, + { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 4, 4, 4, 21, 73 }, + { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 7, 4, 4, 21, 73 }, + { 1, 0, 9, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 7, 4, 4, 21, 73 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 12, 73 }, + { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 4, 4, 4, 21, 85 }, + { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 7, 4, 4, 21, 85 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 7, 8, 12, 85 }, + { 0, 17, 7, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 4, 4, 4, 21, 85 }, + { 1, 0, 9, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 7, 4, 4, 21, 85 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 85 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 17, 85 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 12, 17, 85 }, + { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 7, 8, 12, 85 }, + { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 11, 9, 11, 85 }, + { 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 11, 9, 11, 85 }, + { 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 11, 9, 11, 85 }, + { 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 11, 9, 11, 85 }, + { 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 11, 9, 11, 85 }, + { 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 11, 9, 11, 85 }, + { 3, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 11, 9, 11, 85 }, + { 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 11, 9, 11, 85 }, + { 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 11, 9, 11, 85 }, + { 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 11, 9, 11, 85 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 7, 8, 12, 77 }, + { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 4, 4, 4, 21, 77 }, + { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 7, 4, 4, 21, 77 }, + { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 77 }, + { 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 77 }, + { 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 77 }, + { 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 77 }, + { 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 77 }, + { 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 77 }, + { 3, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 77 }, + { 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 77 }, + { 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 77 }, + { 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 77 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 12, 77 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 12, 17, 77 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 8, 30, 24 }, + { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 8, 30, 24 }, + { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 30, 24 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 8, 30, 79 }, + { 0, 17, 230, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 4, 4, 4, 30, 79 }, + { 0, 17, 220, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 4, 4, 4, 30, 79 }, + { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 8, 30, 79 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 30, 79 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 7, 8, 12, 86 }, + { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 7, 4, 4, 21, 86 }, + { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 4, 4, 4, 21, 86 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 12, 17, 86 }, + { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 7, 8, 12, 86 }, + { 0, 17, 9, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 4, 4, 4, 21, 86 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 7, 8, 12, 27 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 7, 8, 12, 86 }, + { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 7, 4, 4, 21, 86 }, + { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 4, 4, 4, 21, 86 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 12, 17, 86 }, + { 0, 17, 9, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 4, 4, 4, 21, 86 }, + { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 11, 9, 11, 86 }, + { 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 11, 9, 11, 86 }, + { 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 11, 9, 11, 86 }, + { 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 11, 9, 11, 86 }, + { 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 11, 9, 11, 86 }, + { 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 11, 9, 11, 86 }, + { 3, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 11, 9, 11, 86 }, + { 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 11, 9, 11, 86 }, + { 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 11, 9, 11, 86 }, + { 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 11, 9, 11, 86 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 11, 7, 8, 23, 26 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 12, 7, 8, 24, 26 }, { 11, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 0, 0, 31, 0 }, { 12, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 0 }, - { 15, 0, 0, 0, -1, 0, 0, 25, 22, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 0 }, - { 15, 0, 0, 0, -1, 0, 0, 31, 28, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 0 }, - { 15, 0, 0, 0, -1, 0, 0, 37, 34, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 0 }, - { 15, 0, 0, 0, -1, 0, 0, 44, 40, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 0 }, - { 15, 0, 0, 0, -1, 0, 0, 52, 48, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 0 }, - { 15, 0, 0, 0, -1, 0, 0, 59, 56, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 0 }, - { 15, 0, 0, 0, -1, 0, 0, 71, 68, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 3 }, - { 15, 0, 0, 0, -1, 0, 0, 77, 74, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 3 }, - { 15, 0, 0, 0, -1, 0, 0, 83, 80, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 3 }, - { 15, 0, 0, 0, -1, 0, 0, 89, 86, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 3 }, - { 15, 0, 0, 0, -1, 0, 0, 95, 92, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 3 }, - { 18, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 7, 8, 13, 4 }, - { 0, 17, 26, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 4 }, - { 26, 3, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 4 }, - { 28, 13, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 12, 5 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 8, 14, 37 }, + { 15, 0, 0, 0, -1, 0, 0, 25, 22, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 3 }, + { 15, 0, 0, 0, -1, 0, 0, 31, 28, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 3 }, + { 15, 0, 0, 0, -1, 0, 0, 37, 34, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 3 }, + { 15, 0, 0, 0, -1, 0, 0, 44, 40, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 3 }, + { 15, 0, 0, 0, -1, 0, 0, 52, 48, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 3 }, + { 15, 0, 0, 0, -1, 0, 0, 59, 56, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 3 }, + { 15, 0, 0, 0, -1, 0, 0, 71, 68, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 6 }, + { 15, 0, 0, 0, -1, 0, 0, 77, 74, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 6 }, + { 15, 0, 0, 0, -1, 0, 0, 83, 80, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 6 }, + { 15, 0, 0, 0, -1, 0, 0, 89, 86, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 6 }, + { 15, 0, 0, 0, -1, 0, 0, 95, 92, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 6 }, + { 18, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 7, 8, 13, 7 }, + { 0, 17, 26, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 7 }, + { 26, 3, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 7 }, + { 28, 13, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 12, 8 }, { 13, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 12, 0 }, - { 27, 13, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 10, 5 }, - { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 4, 4, 4, 21, 28 }, - { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 10, 11, 8, 0 }, - { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 11, 1, 0 }, - { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 1, 0 }, - { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 9, 11, 8, 0 }, - { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 10, 0, 8, 0 }, - { 21, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 13, 0, 0 }, - { 22, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 13, 1, 0 }, - { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 15, 0 }, - { 20, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 11, 14, 0 }, - { 19, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 12, 0, 14, 0 }, - { 21, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 13, 0, 0 }, - { 22, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 13, 1, 0 }, - { 25, 6, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 10, 11, 1, 0 }, - { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 11, 14, 0 }, - { 25, 6, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 8, 10, 1, 0 }, - { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 10, 0, 5, 0 }, - { 25, 6, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 9, 11, 5, 0 }, - { 25, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 14, 0 }, - { 26, 3, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 14, 0 }, - { 20, 3, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 11, 14, 0 }, - { 26, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 14, 0 }, - { 26, 10, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 14, 0 }, - { 26, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 14, 0 }, - { 18, 13, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 7, 8, 12, 5 }, - { 10, 18, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 4, 4, 22, 0 }, - { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 8, 0, 14, 0 }, - { 25, 6, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 14, 0 }, - { 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 14, 0 }, - { 3, 2, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 14, 0 }, - { 3, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 14, 0 }, - { 3, 2, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 14, 0 }, - { 3, 2, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 14, 0 }, - { 3, 2, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 14, 0 }, - { 3, 2, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 14, 0 }, - { 3, 2, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 14, 0 }, - { 3, 2, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 14, 0 }, - { 3, 2, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 14, 0 }, - { 26, 10, 0, 0, -1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 14, 0 }, - { 26, 10, 0, 0, -1, -2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 14, 0 }, - { 14, 0, 0, 0, -1, 0, 32, 0, 0, 32, 0, 0, 0, 0, 1, 0, 7, 7, 14, 0 }, - { 28, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 14, 0 }, - { 15, 0, 0, 0, -1, 0, 0, -32, -32, 0, 0, 0, 0, 0, 1, 0, 7, 6, 14, 0 }, - { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 6, 8, 12, 0 }, - { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 5, 0 }, - { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 8, 12, 23 }, - { 10, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 3, 4, 4, 21, 0 }, - { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 29, 0 }, + { 27, 13, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 10, 8 }, + { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 4, 4, 4, 21, 1 }, + { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 10, 11, 8, 2 }, + { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 11, 1, 2 }, + { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 1, 2 }, + { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 9, 11, 8, 2 }, + { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 10, 0, 8, 2 }, + { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 6, 2 }, + { 21, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 13, 0, 2 }, + { 22, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 13, 1, 2 }, + { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 15, 2 }, + { 20, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 11, 14, 2 }, + { 19, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 12, 0, 14, 2 }, + { 21, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 13, 0, 2 }, + { 22, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 13, 1, 2 }, + { 25, 6, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 10, 11, 1, 2 }, + { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 11, 14, 2 }, + { 25, 6, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 8, 10, 1, 2 }, + { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 10, 0, 5, 2 }, + { 25, 6, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 9, 11, 5, 2 }, + { 25, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 14, 2 }, + { 26, 3, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 14, 2 }, + { 20, 3, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 11, 14, 2 }, + { 26, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 14, 2 }, + { 26, 10, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 14, 2 }, + { 26, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 14, 2 }, + { 18, 13, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 7, 8, 12, 8 }, + { 10, 18, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 4, 4, 22, 2 }, + { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 8, 0, 14, 2 }, + { 25, 6, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 14, 2 }, + { 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 14, 2 }, + { 3, 2, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 14, 2 }, + { 3, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 14, 2 }, + { 3, 2, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 14, 2 }, + { 3, 2, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 14, 2 }, + { 3, 2, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 14, 2 }, + { 3, 2, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 14, 2 }, + { 3, 2, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 14, 2 }, + { 3, 2, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 14, 2 }, + { 3, 2, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 14, 2 }, + { 26, 10, 0, 0, -1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 14, 2 }, + { 26, 10, 0, 0, -1, -2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 14, 2 }, + { 14, 0, 0, 0, -1, 0, 32, 0, 0, 32, 0, 0, 0, 0, 1, 0, 7, 7, 14, 3 }, + { 28, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 14, 2 }, + { 15, 0, 0, 0, -1, 0, 0, -32, -32, 0, 0, 0, 0, 0, 1, 0, 7, 6, 14, 3 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 6, 8, 12, 35 }, + { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 5, 2 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 8, 12, 26 }, + { 10, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 3, 4, 4, 21, 2 }, + { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 29, 2 }, { 13, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 0 }, - { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 17, 0 }, - { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 17, 0 }, - { 5, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 12, 0 }, - { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 12, 0 }, - { 4, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 7, 8, 12, 1 }, - { 5, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 12, 1 }, - { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 12, 1 }, - { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 7, 8, 12, 0 }, - { 5, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 12, 0 }, - { 4, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 7, 8, 12, 0 }, - { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 17, 0 }, - { 4, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 7, 8, 12, 0 }, - { 14, 0, 0, 0, -1, 0, 40, 0, 0, 40, 0, 0, 0, 0, 5, 0, 7, 7, 12, 0 }, - { 14, 0, 0, 0, -1, 0, 40, 0, 0, 40, 0, 0, 0, 0, 7, 0, 7, 7, 12, 0 }, - { 15, 0, 0, 0, -1, 0, 0, -40, -40, 0, 0, 0, 0, 0, 5, 0, 7, 6, 12, 0 }, - { 15, 0, 0, 0, -1, 0, 0, -40, -40, 0, 0, 0, 0, 0, 7, 0, 7, 6, 12, 0 }, - { 18, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 7, 8, 12, 0 }, - { 25, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 17, 0 }, - { 5, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 0 }, - { 18, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 7, 8, 12, 0 }, - { 5, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 12, 0 }, - { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 17, 0 }, - { 18, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 7, 8, 12, 0 }, - { 25, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 12, 0 }, - { 18, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 7, 8, 12, 0 }, - { 18, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 7, 8, 12, 0 }, - { 0, 17, 1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 4, 4, 4, 21, 0 }, - { 5, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 12, 0 }, - { 5, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 12, 0 }, - { 5, 1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 12, 0 }, - { 5, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 12, 0 }, - { 5, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 12, 0 }, - { 25, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 17, 0 }, - { 25, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 12, 17, 0 }, - { 25, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 12, 0 }, - { 5, 5, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 5 }, - { 5, 5, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 5 }, - { 5, 5, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 5 }, - { 5, 5, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 5 }, - { 5, 5, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 5 }, - { 5, 5, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 5 }, - { 5, 5, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 5 }, - { 5, 5, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 5 }, - { 5, 5, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 5 }, - { 5, 5, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 5 }, - { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 12, 17, 0 }, - { 5, 10, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 12, 0 }, - { 5, 10, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 12, 0 }, - { 5, 10, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 12, 0 }, - { 5, 10, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 12, 0 }, - { 5, 10, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 12, 0 }, - { 5, 10, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 12, 0 }, - { 5, 10, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 12, 0 }, - { 5, 10, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 12, 0 }, - { 5, 10, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 12, 0 }, - { 5, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 12, 0 }, - { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 11, 9, 11, 0 }, - { 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 11, 9, 11, 0 }, - { 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 11, 9, 11, 0 }, - { 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 11, 9, 11, 0 }, - { 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 11, 9, 11, 0 }, - { 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 11, 9, 11, 0 }, - { 3, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 11, 9, 11, 0 }, - { 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 11, 9, 11, 0 }, - { 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 11, 9, 11, 0 }, - { 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 11, 9, 11, 0 }, - { 10, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 3, 4, 4, 12, 0 }, - { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 11, 9, 11, 0 }, - { 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 11, 9, 11, 0 }, - { 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 11, 9, 11, 0 }, - { 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 11, 9, 11, 0 }, - { 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 11, 9, 11, 0 }, - { 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 11, 9, 11, 0 }, - { 3, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 11, 9, 11, 0 }, - { 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 11, 9, 11, 0 }, - { 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 11, 9, 11, 0 }, - { 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 11, 9, 11, 0 }, - { 0, 17, 230, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 4, 4, 4, 21, 0 }, - { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 17, 0 }, - { 1, 0, 9, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 7, 4, 4, 21, 0 }, - { 0, 17, 7, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 4, 4, 4, 21, 0 }, - { 4, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 7, 8, 12, 0 }, - { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 7, 8, 0, 0 }, - { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 7, 8, 1, 0 }, - { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 6, 8, 14, 0 }, - { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 8, 14, 0 }, - { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 12, 0 }, - { 1, 0, 216, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 4, 4, 4, 21, 0 }, - { 1, 0, 216, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 7, 4, 4, 21, 0 }, - { 0, 17, 1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 4, 4, 4, 21, 28 }, - { 1, 0, 226, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 7, 4, 4, 21, 0 }, - { 10, 18, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 3, 4, 4, 21, 0 }, - { 0, 17, 220, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 4, 4, 4, 21, 28 }, - { 0, 17, 230, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 4, 4, 4, 21, 28 }, - { 0, 17, 230, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 4, 4, 4, 21, 1 }, - { 5, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 12, 0 }, - { 14, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 7, 7, 12, 0 }, - { 15, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 7, 6, 12, 0 }, - { 26, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 12, 0 }, - { 26, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 12, 0 }, - { 14, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 7, 7, 12, 0 }, - { 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 11, 9, 11, 0 }, - { 3, 2, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 11, 9, 11, 0 }, - { 3, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 11, 9, 11, 0 }, - { 3, 2, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 11, 9, 11, 0 }, - { 3, 2, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 11, 9, 11, 0 }, - { 3, 2, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 11, 9, 11, 0 }, - { 3, 2, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 11, 9, 11, 0 }, - { 3, 2, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 11, 9, 11, 0 }, - { 3, 2, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 11, 9, 11, 0 }, - { 3, 2, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 11, 9, 11, 0 }, - { 18, 13, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 7, 8, 12, 5 }, - { 26, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 12, 5 }, - { 5, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 0 }, - { 5, 2, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 0 }, - { 5, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 0 }, - { 5, 2, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 0 }, - { 5, 2, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 0 }, - { 5, 2, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 0 }, - { 5, 2, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 0 }, - { 5, 2, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 0 }, - { 5, 2, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 0 }, - { 5, 2, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 0 }, - { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 12, 0 }, - { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 12, 0 }, - { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 5, 5, 0, 28, 0 }, - { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 14, 0 }, - { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 14, 0 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 7, 8, 12, 49 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 17, 2 }, + { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 17, 2 }, + { 5, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 12, 2 }, + { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 12, 2 }, + { 4, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 7, 8, 12, 4 }, + { 5, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 12, 4 }, + { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 12, 4 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 7, 8, 12, 74 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 7, 8, 12, 75 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 7, 8, 12, 39 }, + { 5, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 12, 39 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 7, 8, 12, 40 }, + { 4, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 7, 8, 12, 40 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 7, 8, 12, 50 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 17, 50 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 7, 8, 12, 60 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 17, 60 }, + { 4, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 7, 8, 12, 60 }, + { 14, 0, 0, 0, -1, 0, 40, 0, 0, 40, 0, 0, 0, 0, 5, 0, 7, 7, 12, 41 }, + { 14, 0, 0, 0, -1, 0, 40, 0, 0, 40, 0, 0, 0, 0, 7, 0, 7, 7, 12, 41 }, + { 15, 0, 0, 0, -1, 0, 0, -40, -40, 0, 0, 0, 0, 0, 5, 0, 7, 6, 12, 41 }, + { 15, 0, 0, 0, -1, 0, 0, -40, -40, 0, 0, 0, 0, 0, 7, 0, 7, 6, 12, 41 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 7, 8, 12, 51 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 7, 8, 12, 52 }, + { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 11, 9, 11, 52 }, + { 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 11, 9, 11, 52 }, + { 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 11, 9, 11, 52 }, + { 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 11, 9, 11, 52 }, + { 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 11, 9, 11, 52 }, + { 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 11, 9, 11, 52 }, + { 3, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 11, 9, 11, 52 }, + { 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 11, 9, 11, 52 }, + { 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 11, 9, 11, 52 }, + { 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 11, 9, 11, 52 }, + { 18, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 7, 8, 12, 53 }, + { 18, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 7, 8, 12, 87 }, + { 25, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 17, 87 }, + { 5, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 87 }, + { 18, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 7, 8, 12, 64 }, + { 5, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 12, 64 }, + { 5, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 64 }, + { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 17, 64 }, + { 18, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 7, 8, 12, 76 }, + { 25, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 12, 76 }, + { 18, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 7, 8, 12, 98 }, + { 18, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 7, 8, 12, 97 }, + { 18, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 7, 8, 12, 61 }, + { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 4, 4, 4, 21, 61 }, + { 0, 17, 220, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 4, 4, 4, 21, 61 }, + { 0, 17, 230, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 4, 4, 4, 21, 61 }, + { 0, 17, 1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 4, 4, 4, 21, 61 }, + { 0, 17, 9, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 4, 4, 4, 21, 61 }, + { 5, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 12, 61 }, + { 5, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 12, 61 }, + { 5, 1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 12, 61 }, + { 5, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 12, 61 }, + { 5, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 12, 61 }, + { 25, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 17, 61 }, + { 25, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 12, 17, 61 }, + { 25, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 12, 61 }, + { 18, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 7, 8, 12, 88 }, + { 5, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 88 }, + { 25, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 88 }, + { 18, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 7, 8, 12, 80 }, + { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 17, 80 }, + { 18, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 7, 8, 12, 89 }, + { 5, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 89 }, + { 18, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 7, 8, 12, 90 }, + { 5, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 90 }, + { 18, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 7, 8, 12, 91 }, + { 5, 5, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 8 }, + { 5, 5, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 8 }, + { 5, 5, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 8 }, + { 5, 5, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 8 }, + { 5, 5, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 8 }, + { 5, 5, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 8 }, + { 5, 5, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 8 }, + { 5, 5, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 8 }, + { 5, 5, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 8 }, + { 5, 5, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 8 }, + { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 7, 4, 4, 21, 94 }, + { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 4, 4, 4, 21, 94 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 7, 8, 12, 94 }, + { 0, 17, 9, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 4, 4, 4, 21, 94 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 12, 17, 94 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 12, 94 }, + { 5, 10, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 12, 94 }, + { 5, 10, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 12, 94 }, + { 5, 10, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 12, 94 }, + { 5, 10, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 12, 94 }, + { 5, 10, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 12, 94 }, + { 5, 10, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 12, 94 }, + { 5, 10, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 12, 94 }, + { 5, 10, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 12, 94 }, + { 5, 10, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 12, 94 }, + { 5, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 12, 94 }, + { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 11, 9, 11, 94 }, + { 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 11, 9, 11, 94 }, + { 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 11, 9, 11, 94 }, + { 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 11, 9, 11, 94 }, + { 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 11, 9, 11, 94 }, + { 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 11, 9, 11, 94 }, + { 3, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 11, 9, 11, 94 }, + { 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 11, 9, 11, 94 }, + { 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 11, 9, 11, 94 }, + { 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 11, 9, 11, 94 }, + { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 4, 4, 4, 21, 92 }, + { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 7, 4, 4, 21, 92 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 7, 8, 12, 92 }, + { 0, 17, 9, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 4, 4, 4, 21, 92 }, + { 0, 17, 7, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 4, 4, 4, 21, 92 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 92 }, + { 10, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 3, 4, 4, 12, 92 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 12, 17, 92 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 7, 8, 12, 101 }, + { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 11, 9, 11, 101 }, + { 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 11, 9, 11, 101 }, + { 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 11, 9, 11, 101 }, + { 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 11, 9, 11, 101 }, + { 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 11, 9, 11, 101 }, + { 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 11, 9, 11, 101 }, + { 3, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 11, 9, 11, 101 }, + { 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 11, 9, 11, 101 }, + { 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 11, 9, 11, 101 }, + { 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 11, 9, 11, 101 }, + { 0, 17, 230, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 4, 4, 4, 21, 96 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 7, 8, 12, 96 }, + { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 4, 4, 4, 21, 96 }, + { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 7, 4, 4, 21, 96 }, + { 0, 17, 9, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 4, 4, 4, 21, 96 }, + { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 11, 9, 11, 96 }, + { 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 11, 9, 11, 96 }, + { 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 11, 9, 11, 96 }, + { 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 11, 9, 11, 96 }, + { 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 11, 9, 11, 96 }, + { 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 11, 9, 11, 96 }, + { 3, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 11, 9, 11, 96 }, + { 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 11, 9, 11, 96 }, + { 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 11, 9, 11, 96 }, + { 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 11, 9, 11, 96 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 17, 96 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 12, 17, 96 }, + { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 4, 4, 4, 21, 100 }, + { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 7, 4, 4, 21, 100 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 7, 8, 12, 100 }, + { 1, 0, 9, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 7, 4, 4, 21, 100 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 12, 17, 100 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 12, 100 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 17, 100 }, + { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 11, 9, 11, 100 }, + { 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 11, 9, 11, 100 }, + { 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 11, 9, 11, 100 }, + { 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 11, 9, 11, 100 }, + { 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 11, 9, 11, 100 }, + { 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 11, 9, 11, 100 }, + { 3, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 11, 9, 11, 100 }, + { 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 11, 9, 11, 100 }, + { 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 11, 9, 11, 100 }, + { 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 11, 9, 11, 100 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 7, 8, 12, 102 }, + { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 4, 4, 4, 21, 102 }, + { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 7, 4, 4, 21, 102 }, + { 1, 0, 9, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 7, 4, 4, 21, 102 }, + { 0, 17, 7, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 4, 4, 4, 21, 102 }, + { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 11, 9, 11, 102 }, + { 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 11, 9, 11, 102 }, + { 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 11, 9, 11, 102 }, + { 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 11, 9, 11, 102 }, + { 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 11, 9, 11, 102 }, + { 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 11, 9, 11, 102 }, + { 3, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 11, 9, 11, 102 }, + { 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 11, 9, 11, 102 }, + { 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 11, 9, 11, 102 }, + { 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 11, 9, 11, 102 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 7, 8, 12, 63 }, + { 4, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 7, 8, 12, 63 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 17, 63 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 7, 8, 12, 81 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 7, 8, 0, 81 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 7, 8, 1, 81 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 7, 8, 12, 84 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 7, 8, 12, 99 }, + { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 7, 4, 4, 21, 99 }, + { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 4, 4, 4, 21, 99 }, + { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 7, 8, 12, 99 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 6, 8, 14, 35 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 8, 14, 34 }, + { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 12, 2 }, + { 1, 0, 216, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 4, 4, 4, 21, 2 }, + { 1, 0, 216, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 7, 4, 4, 21, 2 }, + { 0, 17, 1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 4, 4, 4, 21, 1 }, + { 1, 0, 226, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 7, 4, 4, 21, 2 }, + { 10, 18, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 3, 4, 4, 21, 2 }, + { 0, 17, 220, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 4, 4, 4, 21, 1 }, + { 0, 17, 230, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 4, 4, 4, 21, 1 }, + { 0, 17, 230, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 4, 4, 4, 21, 4 }, + { 5, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 12, 2 }, + { 14, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 7, 7, 12, 2 }, + { 15, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 7, 6, 12, 2 }, + { 15, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 7, 6, 12, 2 }, + { 26, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 12, 2 }, + { 26, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 12, 2 }, + { 14, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 7, 7, 12, 2 }, + { 15, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 7, 6, 12, 2 }, + { 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 11, 9, 11, 2 }, + { 3, 2, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 11, 9, 11, 2 }, + { 3, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 11, 9, 11, 2 }, + { 3, 2, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 11, 9, 11, 2 }, + { 3, 2, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 11, 9, 11, 2 }, + { 3, 2, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 11, 9, 11, 2 }, + { 3, 2, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 11, 9, 11, 2 }, + { 3, 2, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 11, 9, 11, 2 }, + { 3, 2, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 11, 9, 11, 2 }, + { 3, 2, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 11, 9, 11, 2 }, + { 18, 13, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 7, 8, 12, 8 }, + { 26, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 12, 8 }, + { 5, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 2 }, + { 5, 2, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 2 }, + { 5, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 2 }, + { 5, 2, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 2 }, + { 5, 2, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 2 }, + { 5, 2, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 2 }, + { 5, 2, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 2 }, + { 5, 2, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 2 }, + { 5, 2, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 2 }, + { 5, 2, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 2 }, + { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 12, 2 }, + { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 12, 2 }, + { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 5, 5, 0, 28, 2 }, + { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 14, 34 }, + { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 14, 2 }, + { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 14, 2 }, { 13, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 12, 0 }, - { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 8, 14, 0 }, - { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 4, 4, 4, 21, 28 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 8, 14, 37 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 8, 14, 37 }, + { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 4, 4, 4, 21, 1 }, { 12, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 12, 0 } }; @@ -6369,11 +6724,6 @@ Q_CORE_EXPORT LineBreakClass QT_FASTCALL lineBreakClass(uint ucs4) return (LineBreakClass)qGetProp(ucs4)->lineBreakClass; } -Q_CORE_EXPORT Script QT_FASTCALL script(uint ucs4) -{ - return (Script)qGetProp(ucs4)->script; -} - static const ushort specialCaseMap[] = { 0x0, // placeholder diff --git a/src/corelib/tools/qunicodetables_p.h b/src/corelib/tools/qunicodetables_p.h index 74b022d8ef..8f0b7aabad 100644 --- a/src/corelib/tools/qunicodetables_p.h +++ b/src/corelib/tools/qunicodetables_p.h @@ -83,119 +83,12 @@ struct Properties { ushort wordBreakClass : 8; /* 4 used */ ushort sentenceBreakClass : 8; /* 4 used */ ushort lineBreakClass : 8; /* 6 used */ - ushort script : 8; /* 5 used */ + ushort script : 8; /* 7 used */ }; Q_CORE_EXPORT const Properties * QT_FASTCALL properties(uint ucs4); Q_CORE_EXPORT const Properties * QT_FASTCALL properties(ushort ucs2); -// See http://www.unicode.org/reports/tr24/tr24-5.html -enum Script { - Common, - Greek, - Cyrillic, - Armenian, - Hebrew, - Arabic, - Syriac, - Thaana, - Devanagari, - Bengali, - Gurmukhi, - Gujarati, - Oriya, - Tamil, - Telugu, - Kannada, - Malayalam, - Sinhala, - Thai, - Lao, - Tibetan, - Myanmar, - Georgian, - Hangul, - Ogham, - Runic, - Khmer, - Nko, - Inherited, - ScriptCount = Inherited, - Latin = Common, - Ethiopic = Common, - Cherokee = Common, - CanadianAboriginal = Common, - Mongolian = Common, - Hiragana = Common, - Katakana = Common, - Bopomofo = Common, - Han = Common, - Yi = Common, - OldItalic = Common, - Gothic = Common, - Deseret = Common, - Tagalog = Common, - Hanunoo = Common, - Buhid = Common, - Tagbanwa = Common, - Limbu = Common, - TaiLe = Common, - LinearB = Common, - Ugaritic = Common, - Shavian = Common, - Osmanya = Common, - Cypriot = Common, - Braille = Common, - Buginese = Common, - Coptic = Common, - NewTaiLue = Common, - Glagolitic = Common, - Tifinagh = Common, - SylotiNagri = Common, - OldPersian = Common, - Kharoshthi = Common, - Balinese = Common, - Cuneiform = Common, - Phoenician = Common, - PhagsPa = Common, - Sundanese = Common, - Lepcha = Common, - OlChiki = Common, - Vai = Common, - Saurashtra = Common, - KayahLi = Common, - Rejang = Common, - Lycian = Common, - Carian = Common, - Lydian = Common, - Cham = Common, - TaiTham = Common, - TaiViet = Common, - Avestan = Common, - EgyptianHieroglyphs = Common, - Samaritan = Common, - Lisu = Common, - Bamum = Common, - Javanese = Common, - MeeteiMayek = Common, - ImperialAramaic = Common, - OldSouthArabian = Common, - InscriptionalParthian = Common, - InscriptionalPahlavi = Common, - OldTurkic = Common, - Kaithi = Common, - Batak = Common, - Brahmi = Common, - Mandaic = Common, - Chakma = Common, - MeroiticCursive = Common, - MeroiticHieroglyphs = Common, - Miao = Common, - Sharada = Common, - SoraSompeng = Common, - Takri = Common -}; - enum GraphemeBreakClass { GraphemeBreak_Other, GraphemeBreak_CR, @@ -274,10 +167,6 @@ Q_CORE_EXPORT LineBreakClass QT_FASTCALL lineBreakClass(uint ucs4); inline LineBreakClass lineBreakClass(QChar ch) { return lineBreakClass(ch.unicode()); } -Q_CORE_EXPORT Script QT_FASTCALL script(uint ucs4); -inline Script script(QChar ch) -{ return script(ch.unicode()); } - } // namespace QUnicodeTables QT_END_NAMESPACE diff --git a/src/corelib/tools/qunicodetools.cpp b/src/corelib/tools/qunicodetools.cpp index 060c9adb05..0181e765f7 100644 --- a/src/corelib/tools/qunicodetools.cpp +++ b/src/corelib/tools/qunicodetools.cpp @@ -45,6 +45,7 @@ #include "qvarlengtharray.h" #include <private/harfbuzz-shaper.h> +#include <private/qharfbuzz_p.h> #define FLAG(x) (1 << (x)) @@ -615,7 +616,7 @@ Q_CORE_EXPORT void initCharAttributes(const ushort *string, int length, HB_ScriptItem item; item.pos = items[start].position; item.length = items[i].position - items[start].position; - item.script = (HB_Script)items[start].script; + item.script = script_to_hbscript(items[start].script); item.bidiLevel = 0; // unused scriptItems.append(item); start = i; @@ -624,7 +625,7 @@ Q_CORE_EXPORT void initCharAttributes(const ushort *string, int length, HB_ScriptItem item; item.pos = items[start].position; item.length = length - items[start].position; - item.script = (HB_Script)items[start].script; + item.script = script_to_hbscript(items[start].script); item.bidiLevel = 0; // unused scriptItems.append(item); } diff --git a/src/corelib/tools/tools.pri b/src/corelib/tools/tools.pri index 564aff9ab9..bed71c6d25 100644 --- a/src/corelib/tools/tools.pri +++ b/src/corelib/tools/tools.pri @@ -29,6 +29,7 @@ HEADERS += \ tools/qlocale_data_p.h \ tools/qmap.h \ tools/qmargins.h \ + tools/qmessageauthenticationcode.h \ tools/qcontiguouscache.h \ tools/qpodlist_p.h \ tools/qpair.h \ @@ -82,6 +83,7 @@ SOURCES += \ tools/qpoint.cpp \ tools/qmap.cpp \ tools/qmargins.cpp \ + tools/qmessageauthenticationcode.cpp \ tools/qcontiguouscache.cpp \ tools/qrect.cpp \ tools/qregexp.cpp \ |