From cf05b2cc27ebbaab6d1d34c71a90df2af8bc81a9 Mon Sep 17 00:00:00 2001 From: Edward Slavin Date: Thu, 7 Dec 2023 10:23:44 -0500 Subject: [PATCH] Support for UTF-8 Identifiers - Added UTF-8 character class support to Path parser - Added UTF-8 based validation rules for SDF identifier methods - Added UTF-8 support to lex-based text file format lexer - Added tests for UTF-8 based identifiers --- pxr/usd/sdf/path.cpp | 141 +- pxr/usd/sdf/pathParser.h | 75 +- pxr/usd/sdf/schema.cpp | 42 +- pxr/usd/sdf/testenv/testSdfParsing.py | 3 + .../217_utf8_identifiers.sdf | 23 + .../218_utf8_bad_identifier.sdf | 25 + .../219_utf8_bad_type_name.sdf | 25 + .../baseline/217_utf8_identifiers.sdf | 24 + pxr/usd/sdf/testenv/testSdfPath.py | 17 +- pxr/usd/sdf/testenv/testSdfPath2.py | 7 + pxr/usd/sdf/testenv/testSdfPathParser.cpp | 4 +- pxr/usd/sdf/textFileFormat.lex.cpp | 4915 ++++++++++------- pxr/usd/sdf/textFileFormat.ll | 89 +- pxr/usd/sdf/tokens.h | 4 + 14 files changed, 3240 insertions(+), 2154 deletions(-) create mode 100644 pxr/usd/sdf/testenv/testSdfParsing.testenv/217_utf8_identifiers.sdf create mode 100644 pxr/usd/sdf/testenv/testSdfParsing.testenv/218_utf8_bad_identifier.sdf create mode 100644 pxr/usd/sdf/testenv/testSdfParsing.testenv/219_utf8_bad_type_name.sdf create mode 100644 pxr/usd/sdf/testenv/testSdfParsing.testenv/baseline/217_utf8_identifiers.sdf diff --git a/pxr/usd/sdf/path.cpp b/pxr/usd/sdf/path.cpp index 987876571c..949e2900dc 100644 --- a/pxr/usd/sdf/path.cpp +++ b/pxr/usd/sdf/path.cpp @@ -34,6 +34,7 @@ #include "pxr/base/tf/staticData.h" #include "pxr/base/tf/stl.h" #include "pxr/base/tf/stringUtils.h" +#include "pxr/base/tf/unicodeUtils.h" #include "pxr/base/tf/type.h" #include "pxr/base/trace/trace.h" @@ -117,6 +118,7 @@ class _DeferredDiagnostics } // anon +static inline bool _IsValidIdentifier(const std::string_view& name); static inline bool _IsValidIdentifier(TfToken const &name); // XXX: Enable this define to make bad path strings @@ -1787,48 +1789,90 @@ SdfPath::MakeRelativePath(const SdfPath & anchor) const return result; } -static inline bool _IsValidIdentifier(TfToken const &name) +static +inline bool +_IsValidIdentifier(const std::string_view& name) { - return TfIsValidIdentifier(name.GetString()); + // empty strings are not valid identifiers + if (name.empty()) + { + return false; + } + + TfUtf8CodePointView view {name}; + bool first = true; + for (const uint32_t codePoint : view) + { + bool result = first ? + ((codePoint == SDF_UNDERSCORE_CODE_POINT) || + TfIsUtf8CodePointXidStart(codePoint)) + : TfIsUtf8CodePointXidContinue(codePoint); + + if (!result) + { + return false; + } + + first = false; + } + + return true; } -bool -SdfPath::IsValidIdentifier(const std::string &name) +static +inline bool +_IsValidIdentifier(TfToken const &name) { - return TfIsValidIdentifier(name); + return _IsValidIdentifier(name.GetString()); } -// We use our own _IsAlpha and _IsAlnum here for two reasons. One, we want to -// ensure that they follow C/Python identifier rules and are not subject to -// various locale differences. And two, since we are not consulting a locale, -// it is faster. -static constexpr bool _IsAlpha(int x) { - return ('a' <= (x|32)) && ((x|32) <= 'z'); -} -static constexpr bool _IsAlnum(int x) { - return _IsAlpha(x) || (('0' <= x) && (x <= '9')); +bool +SdfPath::IsValidIdentifier(const std::string &name) +{ + return _IsValidIdentifier(name); } bool SdfPath::IsValidNamespacedIdentifier(const std::string &name) { + // empty strings are not valid identifiers + if (name.empty()) + { + return false; + } + // A valid C/Python identifier except we also allow the namespace delimiter // and if we tokenize on that delimiter then all tokens are valid C/Python - // identifiers. That means following a delimiter there must be an '_' or - // alphabetic character. - constexpr char delim = SDF_PATH_NS_DELIMITER_CHAR; - for (char const *p = name.c_str(); *p; ++p) { - if (!_IsAlpha(*p) && *p != '_') { + // identifiers. + std::string_view remainder {name}; + while (!remainder.empty()) { + const auto index = remainder.find(':'); + + // can't start with ':' + if (index == 0) { return false; } - for (++p; _IsAlnum(*p) ||*p == '_'; ++p) { - /* consume identifier */ + + // can't end with ':' + if (index == remainder.size() - 1) { + return false; } - if (*p != delim) { - return !*p; + + // substring must be a valid identifier + if (!_IsValidIdentifier(remainder.substr(0, index))) { + return false; } + + // if ':' wasn't found, we are done + if (index == std::string_view::npos) { + break; + } + + // otherwise check the next substring + remainder = remainder.substr(index + 1); } - return false; + + return true; } std::vector @@ -1840,40 +1884,53 @@ SdfPath::TokenizeIdentifier(const std::string &name) const char namespaceDelimiter = SdfPathTokens->namespaceDelimiter.GetText()[0]; - std::string::const_iterator first = name.begin(); - std::string::const_iterator last = name.end(); - - // Not empty and first character is alpha or '_'. - if (first == last || !(isalpha(*first) || (*first == '_'))) + // Empty or last character is namespace delimiter + if (name.empty() || name.back() == namespaceDelimiter) + { return result; - // Last character is not the namespace delimiter. - if (*(last - 1) == namespaceDelimiter) + } + + TfUtf8CodePointView view {name}; + TfUtf8CodePointIterator iterator = view.begin(); + TfUtf8CodePointIterator anchor = iterator; + + // Check first character is in XidStart or '_' + if(!TfIsUtf8CodePointXidStart(*iterator) && + *iterator != SDF_UNDERSCORE_CODE_POINT) + { return result; + } // Count delimiters and reserve space in result. - result.reserve(1 + std::count(first, last, namespaceDelimiter)); + result.reserve(1 + std::count(name.begin(), name.end(), + namespaceDelimiter)); - std::string::const_iterator anchor = first; - for (++first; first != last; ++first) { + for (++iterator; iterator != view.end(); ++iterator) + { // Allow a namespace delimiter. - if (*first == namespaceDelimiter) { + if (*iterator == SDF_NAMESPACE_DELIMITER_CODE_POINT) + { // Record token. - result.push_back(std::string(anchor, first)); + result.push_back(std::string(anchor.GetBase(), iterator.GetBase())); // Skip delimiter. We know we will not go beyond the end of // the string because we checked before the loop that the // last character was not the delimiter. - anchor = ++first; + anchor = ++iterator; // First character. - if (!(isalpha(*first) || (*first == '_'))) { + if (!TfIsUtf8CodePointXidStart(*iterator) && + *iterator != SDF_UNDERSCORE_CODE_POINT) + { TfReset(result); return result; } } - else { - // Next character - if (!(isalnum(*first) || (*first == '_'))) { + else + { + // Next character + if (!TfIsUtf8CodePointXidContinue(*iterator)) + { TfReset(result); return result; } @@ -1881,7 +1938,7 @@ SdfPath::TokenizeIdentifier(const std::string &name) } // Record the last token. - result.push_back(std::string(anchor, first)); + result.push_back(std::string(anchor.GetBase(), iterator.GetBase())); return result; } diff --git a/pxr/usd/sdf/pathParser.h b/pxr/usd/sdf/pathParser.h index 1bb6f1c09f..d4ae61eae9 100644 --- a/pxr/usd/sdf/pathParser.h +++ b/pxr/usd/sdf/pathParser.h @@ -26,6 +26,7 @@ #include "pxr/pxr.h" #include "pxr/base/tf/stringUtils.h" +#include "pxr/base/tf/unicodeUtils.h" #include "pxr/usd/sdf/path.h" #include "pxr/base/tf/pxrPEGTL/pegtl.h" @@ -39,6 +40,60 @@ namespace Sdf_PathParser { namespace PEGTL_NS = tao::TAO_PEGTL_NAMESPACE; +//////////////////////////////////////////////////////////////////////// +// Helper rules for parsing UTF8 content +struct XidStart +{ + template + static bool match(ParseInput& in) + { + if (!in.empty()) + { + // peek at the next character in the input + // if the size is not 0, it was a valid code point + auto utf8_char = tao::TAO_PEGTL_NAMESPACE::internal::peek_utf8::peek(in); + if (utf8_char.size != 0) + { + // valid utf8_char, data has the code point + if (TfIsUtf8CodePointXidStart(static_cast(utf8_char.data))) + { + // it has the property we want, consume the input + in.bump(utf8_char.size); + return true; + } + } + } + + return false; + } +}; + +struct XidContinue +{ + template + static bool match(ParseInput& in) + { + if (!in.empty()) + { + // peek at the next character in the input + // if the size is not 0, it was a valid code point + auto utf8_char = tao::TAO_PEGTL_NAMESPACE::internal::peek_utf8::peek(in); + if (utf8_char.size != 0) + { + // valid utf8_char, data has the code point + if (TfIsUtf8CodePointXidContinue(static_cast(utf8_char.data))) + { + // it has the property we want, consume the input + in.bump(utf8_char.size); + return true; + } + } + } + + return false; + } +}; + //////////////////////////////////////////////////////////////////////// // SdfPath grammar: @@ -51,21 +106,31 @@ struct ReflexiveRelative : Dot {}; struct DotDots : PEGTL_NS::list {}; -struct PrimName : PEGTL_NS::identifier {}; +// valid identifiers start with an '_' character or anything in the XidStart +// character class, then continue with zero or more characters in the +// XidContinue character class +struct Utf8IdentifierStart : PEGTL_NS::sor< + PEGTL_NS::one<'_'>, + XidStart> {}; +struct Utf8Identifier : PEGTL_NS::seq< + Utf8IdentifierStart, + PEGTL_NS::star> {}; + +struct PrimName : Utf8Identifier {}; // XXX This replicates old behavior where '-' chars are allowed in variant set // names in SdfPaths, but variant sets in layers cannot have '-' in their names. // For now we preserve the behavior. Internal bug USD-8321 tracks removing // support for '-' characters in variant set names in SdfPath. struct VariantSetName : - PEGTL_NS::seq>>> {}; + XidContinue, PEGTL_NS::one<'-'>>>> {}; struct VariantName : PEGTL_NS::seq>, PEGTL_NS::star< - PEGTL_NS::sor>>> {}; struct VarSelOpen : PEGTL_NS::pad, PEGTL_NS::blank> {}; @@ -88,7 +153,7 @@ struct PrimElts : PEGTL_NS::seq< LookaheadList>, PEGTL_NS::opt> {}; -struct PropertyName : PEGTL_NS::list> {}; +struct PropertyName : PEGTL_NS::list> {}; struct MapperPath; struct TargetPath; diff --git a/pxr/usd/sdf/schema.cpp b/pxr/usd/sdf/schema.cpp index 145c170564..78794d0854 100644 --- a/pxr/usd/sdf/schema.cpp +++ b/pxr/usd/sdf/schema.cpp @@ -28,6 +28,7 @@ #include "pxr/usd/sdf/layerOffset.h" #include "pxr/usd/sdf/parserValueContext.h" #include "pxr/usd/sdf/pathExpression.h" +#include "pxr/usd/sdf/pathParser.h" #include "pxr/usd/sdf/payload.h" #include "pxr/usd/sdf/reference.h" #include "pxr/usd/sdf/schemaTypeRegistration.h" @@ -41,6 +42,7 @@ #include "pxr/base/tf/diagnostic.h" #include "pxr/base/tf/envSetting.h" #include "pxr/base/tf/instantiateSingleton.h" +#include "pxr/base/tf/unicodeUtils.h" #include "pxr/base/trace/trace.h" #include "pxr/base/vt/dictionary.h" @@ -1287,28 +1289,34 @@ SdfSchemaBase::IsValidNamespacedIdentifier(const std::string& identifier) SdfAllowed SdfSchemaBase::IsValidVariantIdentifier(const std::string& identifier) { - // Allow [[:alnum:]_|\-]+ with an optional leading dot. - - std::string::const_iterator first = identifier.begin(); - std::string::const_iterator last = identifier.end(); - - // Allow optional leading dot. - if (first != last && *first == '.') { - ++first; - } + // use the path parser rules to determine validity of variant name + Sdf_PathParser::PPContext context; + bool result = false; + try + { + result = Sdf_PathParser::PEGTL_NS::parse< + Sdf_PathParser::PEGTL_NS::must>( + Sdf_PathParser::PEGTL_NS::string_input<> {identifier, ""}, context); - for (; first != last; ++first) { - char c = *first; - if (!(isalnum(c) || (c == '_') || (c == '|') || (c == '-'))) { + if (!result) + { return SdfAllowed(TfStringPrintf( - "\"%s\" is not a valid variant " - "name due to '%c' at index %d", - identifier.c_str(), - c, - (int)(first - identifier.begin()))); + "\"%s\" is not a valid variant name", + identifier.c_str())); } } + catch(const Sdf_PathParser::PEGTL_NS::parse_error& e) + { + return SdfAllowed(TfStringPrintf( + "\"%s\" is not a valid variant " + "name due to '%s'", + identifier.c_str(), + e.what())); + return false; + } + return true; } diff --git a/pxr/usd/sdf/testenv/testSdfParsing.py b/pxr/usd/sdf/testenv/testSdfParsing.py index 12eead870b..42e7deb4c4 100644 --- a/pxr/usd/sdf/testenv/testSdfParsing.py +++ b/pxr/usd/sdf/testenv/testSdfParsing.py @@ -64,6 +64,9 @@ def test_Basic(self): # This will mean that your new test runs first and you can spot # failures much quicker. testFiles = ''' + 219_utf8_bad_type_name.sdf + 218_utf8_bad_identifier.sdf + 217_utf8_identifiers.sdf 216_bad_variant_in_relocates_path.sdf 215_bad_variant_in_specializes_path.sdf 214_bad_variant_in_inherits_path.sdf diff --git a/pxr/usd/sdf/testenv/testSdfParsing.testenv/217_utf8_identifiers.sdf b/pxr/usd/sdf/testenv/testSdfParsing.testenv/217_utf8_identifiers.sdf new file mode 100644 index 0000000000..da89681b7c --- /dev/null +++ b/pxr/usd/sdf/testenv/testSdfParsing.testenv/217_utf8_identifiers.sdf @@ -0,0 +1,23 @@ +#sdf 1.4.32 +( + defaultPrim = "_Süßigkeiten" + doc = """Tests UTF-8 content in prim names and custom data.""" +) + +def Xform "_Süßigkeiten" ( + customData = { + int "存在する" = 7 + } +) +{ + custom double3 xformOp:translate = (4, 5, 6) + uniform token[] xformOpOrder = ["xformOp:translate"] + string utf8_情報 = "._جيد" + + def Sphere "ⅈ573" + { + float3[] extent = [(-2, -2, -2), (2, 2, 2)] + color3f[] primvars:displayColor = [(0, 0, 1)] + double radius = 2 + } +} \ No newline at end of file diff --git a/pxr/usd/sdf/testenv/testSdfParsing.testenv/218_utf8_bad_identifier.sdf b/pxr/usd/sdf/testenv/testSdfParsing.testenv/218_utf8_bad_identifier.sdf new file mode 100644 index 0000000000..4873ac69a7 --- /dev/null +++ b/pxr/usd/sdf/testenv/testSdfParsing.testenv/218_utf8_bad_identifier.sdf @@ -0,0 +1,25 @@ +#sdf 1.4.32 +( + defaultPrim = "_Süßigkeiten" + doc = """Tests UTF-8 content in prim names and custom data.""" +) + +# this prim has a bad identifier name (XID_Start, 3 XID_Continue, neither) +def Xform "㤼01৪∫" ( + customData = { + int "存在する" = 7 + } +) +{ + custom double3 xformOp:translate = (4, 5, 6) + uniform token[] xformOpOrder = ["xformOp:translate"] + string utf8_情報 = "._جيد" + + def Sphere "ⅈ573" + { + float3[] extent = [(-2, -2, -2), (2, 2, 2)] + color3f[] primvars:displayColor = [(0, 0, 1)] + double radius = 2 + } +} + diff --git a/pxr/usd/sdf/testenv/testSdfParsing.testenv/219_utf8_bad_type_name.sdf b/pxr/usd/sdf/testenv/testSdfParsing.testenv/219_utf8_bad_type_name.sdf new file mode 100644 index 0000000000..66288d70a7 --- /dev/null +++ b/pxr/usd/sdf/testenv/testSdfParsing.testenv/219_utf8_bad_type_name.sdf @@ -0,0 +1,25 @@ +#sdf 1.4.32 +( + defaultPrim = "_Süßigkeiten" + doc = """Tests UTF-8 content in prim names and custom data.""" +) + +def Xform "_Süßigkeiten" ( + customData = { + int "存在する" = 7 + } +) +{ + # this type name is a bad identifier + # has a character in XID_Start, 3 in XID_Continue, and 1 in neither + custom 㤼01৪∫ xformOp:translate = (4, 5, 6) + uniform token[] xformOpOrder = ["xformOp:translate"] + string utf8_情報 = "._جيد" + + def Sphere "ⅈ573" + { + float3[] extent = [(-2, -2, -2), (2, 2, 2)] + color3f[] primvars:displayColor = [(0, 0, 1)] + double radius = 2 + } +} \ No newline at end of file diff --git a/pxr/usd/sdf/testenv/testSdfParsing.testenv/baseline/217_utf8_identifiers.sdf b/pxr/usd/sdf/testenv/testSdfParsing.testenv/baseline/217_utf8_identifiers.sdf new file mode 100644 index 0000000000..c2a524d918 --- /dev/null +++ b/pxr/usd/sdf/testenv/testSdfParsing.testenv/baseline/217_utf8_identifiers.sdf @@ -0,0 +1,24 @@ +#sdf 1.4.32 +( + defaultPrim = "_Süßigkeiten" + doc = "Tests UTF-8 content in prim names and custom data." +) + +def Xform "_Süßigkeiten" ( + customData = { + int "存在する" = 7 + } +) +{ + string utf8_情報 = "._جيد" + custom double3 xformOp:translate = (4, 5, 6) + uniform token[] xformOpOrder = ["xformOp:translate"] + + def Sphere "ⅈ573" + { + float3[] extent = [(-2, -2, -2), (2, 2, 2)] + color3f[] primvars:displayColor = [(0, 0, 1)] + double radius = 2 + } +} + diff --git a/pxr/usd/sdf/testenv/testSdfPath.py b/pxr/usd/sdf/testenv/testSdfPath.py index b45eb2a36f..9d1589e89a 100644 --- a/pxr/usd/sdf/testenv/testSdfPath.py +++ b/pxr/usd/sdf/testenv/testSdfPath.py @@ -63,7 +63,6 @@ def test_Basic(self): 123test /Foo:Bar /Foo.bar.mapper[/Targ.attr].arg:name:space - /root_utf8_umlaute_ß_3 '''.split() for badPath in badPaths: self.assertTrue(Sdf.Path(badPath).isEmpty) @@ -115,10 +114,14 @@ def test_Basic(self): "Foo.bar[targ.attr].boom", "/A/B/C.rel3[/Blah].attr3", "A/B.rel2[/A/B/C.rel3[/Blah].attr3].attr2", - "/A.rel1[/A/B.rel2[/A/B/C.rel3[/Blah].attr3].attr2].attr1" + "/A.rel1[/A/B.rel2[/A/B/C.rel3[/Blah].attr3].attr2].attr1", + "/root_utf8_umlaute_ß_3", + "Süßigkeiten.bar", + "/ß34/情報/información", + "情報._جيد" ] - testAbsolute = [True, False, False, False, False, False, True, False, False, False, True, False, False, False, True, False, True] - testProperty = [True, False, False, True, True, True, False, True, False, True, True, True, True, True, True, True, True] + testAbsolute = [True, False, False, False, False, False, True, False, False, False, True, False, False, False, True, False, True, True, False, True, False] + testProperty = [True, False, False, True, True, True, False, True, False, True, True, True, True, True, True, True, True, False, True, False, True] testElements = [ ["Foo", "Bar", ".baz"], ["Foo"], @@ -136,7 +139,11 @@ def test_Basic(self): ["Foo", ".bar", "[targ.attr]", ".boom"], ["A", "B", "C", ".rel3", "[/Blah]", ".attr3"], ["A", "B", ".rel2", "[/A/B/C.rel3[/Blah].attr3]", ".attr2"], - ["A", ".rel1", "[/A/B.rel2[/A/B/C.rel3[/Blah].attr3].attr2]", ".attr1"] + ["A", ".rel1", "[/A/B.rel2[/A/B/C.rel3[/Blah].attr3].attr2]", ".attr1"], + ["root_utf8_umlaute_ß_3"], + ["Süßigkeiten", ".bar"], + ["ß34", "情報", "información"], + ["情報", "._جيد"] ] # Test IsAbsolutePath and IsPropertyPath diff --git a/pxr/usd/sdf/testenv/testSdfPath2.py b/pxr/usd/sdf/testenv/testSdfPath2.py index 72309e67b0..3964c6f286 100644 --- a/pxr/usd/sdf/testenv/testSdfPath2.py +++ b/pxr/usd/sdf/testenv/testSdfPath2.py @@ -504,11 +504,18 @@ def test_Basic(self): self.assertEqual(p.StripAllVariantSelections(), Sdf.Path('/foo/bar/baz/frob')) p = Sdf.Path('/foo{bond=connery}bar{captain=picard}baz/frob{doctor=tennent}') self.assertEqual(p.StripAllVariantSelections(), Sdf.Path('/foo/bar/baz/frob')) + p = Sdf.Path('/ᄆfoo{刷ꡟ=鞏bar}bar/baz/𓌘ascii𓋏') + self.assertEqual(p.StripAllVariantSelections(), Sdf.Path('/ᄆfoo/bar/baz/𓌘ascii𓋏')) self.assertEqual(Sdf.Path.TokenizeIdentifier(""), []) self.assertEqual(Sdf.Path.TokenizeIdentifier("foo"), ["foo"]) self.assertEqual(Sdf.Path.TokenizeIdentifier("foo::baz"), []) self.assertEqual(Sdf.Path.TokenizeIdentifier("foo:bar:baz"), ["foo","bar","baz"]) + self.assertEqual(Sdf.Path.TokenizeIdentifier("ᄆfoo::鞏bar"), []) + self.assertEqual(Sdf.Path.TokenizeIdentifier("ᄆfoo:鞏bar:ascii𓋏"), ["ᄆfoo", "鞏bar", "ascii𓋏"]) + self.assertEqual(Sdf.Path.TokenizeIdentifier(":"), []) + self.assertEqual(Sdf.Path.TokenizeIdentifier(":abcdef"), []) + self.assertEqual(Sdf.Path.TokenizeIdentifier("0:abc"), []) self.assertEqual(Sdf.Path.JoinIdentifier([]), "") self.assertEqual(Sdf.Path.JoinIdentifier(["foo"]), "foo") diff --git a/pxr/usd/sdf/testenv/testSdfPathParser.cpp b/pxr/usd/sdf/testenv/testSdfPathParser.cpp index 451794a9e9..30abbf7e8f 100644 --- a/pxr/usd/sdf/testenv/testSdfPathParser.cpp +++ b/pxr/usd/sdf/testenv/testSdfPathParser.cpp @@ -163,6 +163,7 @@ int main() "foo.mapper", "foo.mapper.expression", "foo.mapper.mapper[/A.b]", + "/root_utf8_umlaute_ß_3", NULL }; @@ -221,7 +222,8 @@ int main() "foo{a=:}", "foo{a=x:}", "Foo.attr.mapper[/Bar].arg:baz", - "/root_utf8_umlaute_ß_3", // Move to "good" when we support utf-8. + "/foo😀", // valid UTF-8 string that isn't an identifier + "/foo/bar/_∂baz", // valid UTF-8 string that isn't an identifier NULL }; diff --git a/pxr/usd/sdf/textFileFormat.lex.cpp b/pxr/usd/sdf/textFileFormat.lex.cpp index 938232df62..34b9318e1d 100644 --- a/pxr/usd/sdf/textFileFormat.lex.cpp +++ b/pxr/usd/sdf/textFileFormat.lex.cpp @@ -359,7 +359,7 @@ typedef int yy_state_type; #define yytext_ptr yytext_r -static yyconst flex_int16_t yy_nxt[][55] = +static yyconst flex_int16_t yy_nxt[][61] = { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -367,46 +367,51 @@ static yyconst flex_int16_t yy_nxt[][55] = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0 }, { 5, 6, 7, 8, 9, 10, 11, 12, 13, 6, 6, 14, 15, 16, 17, 17, 12, 18, 6, 19, 20, 20, 20, 20, 20, 20, 20, 21, 20, 20, - 20, 22, 23, 20, 24, 25, 20, 20, 20, 20, - 26, 27, 20, 20, 28, 29, 30, 31, 32, 33, - 34, 35, 20, 20, 20 + 20, 22, 20, 23, 20, 24, 25, 20, 20, 20, + 20, 26, 20, 27, 20, 20, 28, 29, 30, 31, + 32, 33, 34, 35, 20, 20, 20, 6, 36, 37, + 38 }, { 5, 6, 7, 8, 9, 10, 11, 12, 13, 6, 6, 14, 15, 16, 17, 17, 12, 18, 6, 19, 20, 20, 20, 20, 20, 20, 20, 21, 20, 20, - 20, 22, 23, 20, 24, 25, 20, 20, 20, 20, - 26, 27, 20, 20, 28, 29, 30, 31, 32, 33, - 34, 35, 20, 20, 20 + 20, 22, 20, 23, 20, 24, 25, 20, 20, 20, + 20, 26, 20, 27, 20, 20, 28, 29, 30, 31, + 32, 33, 34, 35, 20, 20, 20, 6, 36, 37, + + 38 }, { - 5, 36, 36, 37, 38, 36, 36, 36, 36, 39, - 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, - - 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, - 36, 40, 36, 36, 36, 36, 36, 36, 36, 36, - 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, - 36, 36, 36, 36, 36 + 5, 39, 39, 40, 41, 39, 39, 39, 39, 42, + 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, + 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, + 39, 43, 39, 39, 39, 39, 39, 39, 39, 39, + 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, + 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, + 39 }, { - 5, 36, 36, 37, 38, 36, 36, 36, 36, 39, - 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, - 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, - 36, 40, 36, 36, 36, 36, 36, 36, 36, 36, - 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, - 36, 36, 36, 36, 36 + 5, 39, 39, 40, 41, 39, 39, 39, 39, 42, + 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, + 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, + 39, 43, 39, 39, 39, 39, 39, 39, 39, 39, + 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, + 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, + 39 }, { @@ -415,7 +420,9 @@ static yyconst flex_int16_t yy_nxt[][55] = -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, - -5, -5, -5, -5, -5 + + -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, + -5 }, { @@ -423,57 +430,63 @@ static yyconst flex_int16_t yy_nxt[][55] = -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, - -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, - -6, -6, -6, -6, -6 + -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, + -6 }, { - 5, -7, 41, -7, -7, -7, -7, -7, -7, -7, + 5, -7, 44, -7, -7, -7, -7, -7, -7, -7, + -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, - -7, -7, -7, -7, -7 + -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, + -7 }, { 5, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, - -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, + -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, + -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, - -8, -8, -8, -8, -8 + -8 }, { - 5, -9, -9, 42, -9, -9, -9, -9, -9, -9, + 5, -9, -9, 45, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, - -9, -9, -9, -9, -9 + -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, + -9 }, { - 5, 43, 43, -10, -10, 44, 43, 43, 43, 43, - 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, - 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, - 43, 45, 43, 43, 43, 43, 43, 43, 43, 43, - 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, - 43, 43, 43, 43, 43 - }, - - { - 5, 46, 46, -11, -11, 46, 46, 46, 46, 46, + 5, 46, 46, -10, -10, 47, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 48, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, - 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, - 46, 46, 46, 46, 46 + 46 + }, + + { + 5, 49, 49, -11, -11, 49, 49, 49, 49, 49, + 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, + 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, + + 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, + 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, + 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, + 49 }, { @@ -482,94 +495,105 @@ static yyconst flex_int16_t yy_nxt[][55] = -12, -12, -12, -12, -12, -12, -12, -12, -12, -12, -12, -12, -12, -12, -12, -12, -12, -12, -12, -12, -12, -12, -12, -12, -12, -12, -12, -12, -12, -12, - -12, -12, -12, -12, -12 + -12, -12, -12, -12, -12, -12, -12, -12, -12, -12, + + -12 }, { - 5, 47, 47, -13, -13, 47, 47, 47, 48, 47, - 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, - - 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, - 47, 49, 47, 47, 47, 47, 47, 47, 47, 47, - 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, - 47, 47, 47, 47, 47 + 5, 50, 50, -13, -13, 50, 50, 50, 51, 50, + 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, + 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, + 50, 52, 50, 50, 50, 50, 50, 50, 50, 50, + 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, + 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, + 50 }, { 5, -14, -14, -14, -14, -14, -14, -14, -14, -14, - -14, -14, 50, -14, 51, 52, -14, -14, -14, -14, + -14, -14, 53, -14, 54, 55, -14, -14, -14, -14, + -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, - 53, -14, -14, -14, -14, -14, -14, -14, -14, -14, - -14, -14, -14, -14, -14 - + -14, 56, -14, -14, -14, -14, -14, -14, -14, -14, + -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, + -14 }, { 5, -15, -15, -15, -15, -15, -15, -15, -15, -15, - -15, -15, -15, -15, 54, 54, -15, -15, -15, -15, + -15, -15, -15, -15, 57, 57, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, - -15, -15, -15, -15, -15 + + -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, + -15 }, { - 5, -16, -16, -16, -16, -16, -16, -16, -16, 55, - -16, -16, -16, 56, -16, -16, -16, -16, -16, -16, + 5, -16, -16, -16, -16, -16, -16, -16, -16, 58, + -16, -16, -16, 59, -16, -16, -16, -16, -16, -16, + -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, - -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, - -16, -16, -16, -16, -16 + -16 }, { 5, -17, -17, -17, -17, -17, -17, -17, -17, -17, - -17, -17, 57, -17, 58, 58, -17, -17, -17, -17, - -17, -17, -17, -17, 59, -17, -17, -17, -17, -17, - -17, -17, -17, -17, -17, -17, 59, -17, -17, -17, + + -17, -17, 60, -17, 61, 61, -17, -17, -17, -17, + -17, -17, -17, -17, 62, -17, -17, -17, -17, -17, + -17, -17, -17, -17, -17, -17, -17, 62, -17, -17, + -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, - -17, -17, -17, -17, -17 + -17 }, { - 5, 60, 60, -18, -18, 60, 60, 60, 60, 60, - 60, 60, 60, 60, 60, 60, 60, -18, 61, 60, + 5, 63, 63, -18, -18, 63, 63, 63, 63, 63, + 63, 63, 63, 63, 63, 63, 63, -18, 64, 63, + 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, + 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, - 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, - 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, - 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, - 60, 60, 60, 60, 60 + 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, + 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, + 63 }, { - 5, 62, 62, -19, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 62, 62, 63, - 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 62 + 5, 65, 65, -19, 65, 65, 65, 65, 65, 65, + 65, 65, 65, 65, 65, 65, 65, 65, 65, 66, + 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, + 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, + 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, + 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, + 65 }, { 5, -20, -20, -20, -20, -20, -20, -20, -20, -20, - -20, -20, -20, -20, 64, 64, 65, -20, -20, -20, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -20, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + -20, -20, -20, -20, 67, 67, 68, -20, -20, -20, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -20, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -20, 69, 70, + 71 }, { 5, -21, -21, -21, -21, -21, -21, -21, -21, -21, - -21, -21, -21, -21, 64, 64, 65, -21, -21, -21, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -21, 64, 64, 64, 64, 64, 64, 64, 64, + -21, -21, -21, -21, 67, 67, 68, -21, -21, -21, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, - 64, 64, 64, 64, 64, 66, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + 67, -21, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 72, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -21, 69, 70, + 71 }, { @@ -577,133 +601,149 @@ static yyconst flex_int16_t yy_nxt[][55] = -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, - -22, -22, -22, -22, 67, -22, -22, -22, -22, -22, - -22, -22, -22, -22, -22 + -22, -22, -22, -22, -22, -22, 73, -22, -22, -22, + -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, + + -22 }, { 5, -23, -23, -23, -23, -23, -23, -23, -23, -23, - -23, -23, -23, -23, 64, 64, 65, -23, -23, -23, - - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -23, 64, 64, 64, 68, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 69, 64, 64, 64, - 64, 64, 64, 64, 64 + -23, -23, -23, -23, 67, 67, 68, -23, -23, -23, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -23, 67, 67, 67, 67, 74, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 75, 67, + 67, 67, 67, 67, 67, 67, 67, -23, 69, 70, + 71 }, { 5, -24, -24, -24, -24, -24, -24, -24, -24, -24, - -24, -24, -24, -24, 64, 64, 65, -24, -24, -24, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -24, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 70, 64, 64, 71, 64, 64, 64, 64, - 72, 64, 64, 64, 64 + -24, -24, -24, -24, 67, 67, 68, -24, -24, -24, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -24, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 76, 67, 67, 77, 67, 67, + 67, 67, 78, 67, 67, 67, 67, -24, 69, 70, + 71 }, { 5, -25, -25, -25, -25, -25, -25, -25, -25, -25, - -25, -25, -25, -25, 64, 64, 65, -25, -25, -25, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -25, 64, 64, 64, 64, 73, 64, 64, 64, - 74, 64, 64, 64, 64, 75, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + -25, -25, -25, -25, 67, 67, 68, -25, -25, -25, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -25, 67, 67, 67, 67, 67, 79, 67, 67, + 67, 80, 67, 67, 67, 67, 67, 81, 67, 67, + + 67, 67, 67, 67, 67, 67, 67, -25, 69, 70, + 71 }, { 5, -26, -26, -26, -26, -26, -26, -26, -26, -26, - -26, -26, -26, -26, 64, 64, 65, -26, -26, -26, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -26, 64, 64, 64, 64, 64, 64, 64, 64, - - 64, 64, 64, 64, 76, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + -26, -26, -26, -26, 67, 67, 68, -26, -26, -26, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -26, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 82, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -26, 69, 70, + 71 }, { 5, -27, -27, -27, -27, -27, -27, -27, -27, -27, - -27, -27, -27, -27, 64, 64, 65, -27, -27, -27, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -27, 64, 64, 64, 64, 64, 64, 64, 64, - 77, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + + -27, -27, -27, -27, 67, 67, 68, -27, -27, -27, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -27, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 83, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -27, 69, 70, + 71 }, { 5, -28, -28, -28, -28, -28, -28, -28, -28, -28, - -28, -28, -28, -28, 64, 64, 65, -28, -28, -28, + -28, -28, -28, -28, 67, 67, 68, -28, -28, -28, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -28, 67, 84, 67, 67, 67, 67, 67, 67, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -28, 78, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -28, 69, 70, + 71 }, { 5, -29, -29, -29, -29, -29, -29, -29, -29, -29, - -29, -29, -29, -29, 64, 64, 65, -29, -29, -29, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -29, 64, 64, 64, 64, 64, 79, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 80, 64, 64, 64 + -29, -29, -29, -29, 67, 67, 68, -29, -29, -29, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -29, 67, 67, 67, 67, 67, 67, 85, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 86, 67, 67, 67, -29, 69, 70, + 71 }, { 5, -30, -30, -30, -30, -30, -30, -30, -30, -30, - -30, -30, -30, -30, 64, 64, 65, -30, -30, -30, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -30, 81, 64, 64, 64, 82, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 83, 64, 64, - 64, 64, 64, 64, 64 + -30, -30, -30, -30, 67, 67, 68, -30, -30, -30, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -30, 67, 87, 67, 67, 67, 88, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 89, + 67, 67, 67, 67, 67, 67, 67, -30, 69, 70, + 71 }, { 5, -31, -31, -31, -31, -31, -31, -31, -31, -31, - -31, -31, -31, -31, 64, 64, 65, -31, -31, -31, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -31, 64, 64, 64, 64, 84, 64, 64, 64, + -31, -31, -31, -31, 67, 67, 68, -31, -31, -31, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, - 64, 64, 64, 64, 64, 85, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + 67, -31, 67, 67, 67, 67, 67, 90, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 91, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -31, 69, 70, + 71 }, { 5, -32, -32, -32, -32, -32, -32, -32, -32, -32, - -32, -32, -32, -32, 64, 64, 65, -32, -32, -32, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -32, 64, 64, 86, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 87, 64, 64, 64, - 88, 64, 64, 89, 64 + -32, -32, -32, -32, 67, 67, 68, -32, -32, -32, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -32, 67, 67, 67, 92, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 93, 67, + 67, 67, 94, 67, 67, 95, 67, -32, 69, 70, + + 71 }, { 5, -33, -33, -33, -33, -33, -33, -33, -33, -33, - -33, -33, -33, -33, 64, 64, 65, -33, -33, -33, - - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -33, 64, 64, 64, 64, 64, 64, 64, 64, - 90, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + -33, -33, -33, -33, 67, 67, 68, -33, -33, -33, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -33, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 96, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -33, 69, 70, + 71 }, { 5, -34, -34, -34, -34, -34, -34, -34, -34, -34, - -34, -34, -34, -34, 64, 64, 65, -34, -34, -34, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -34, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 91, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + -34, -34, -34, -34, 67, 67, 68, -34, -34, -34, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -34, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 97, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -34, 69, 70, + 71 }, { 5, -35, -35, -35, -35, -35, -35, -35, -35, -35, - -35, -35, -35, -35, 64, 64, 65, -35, -35, -35, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -35, 92, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + -35, -35, -35, -35, 67, 67, 68, -35, -35, -35, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -35, 67, 98, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + + 67, 67, 67, 67, 67, 67, 67, -35, 69, 70, + 71 }, { @@ -711,37 +751,41 @@ static yyconst flex_int16_t yy_nxt[][55] = -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, -36, -36, - -36, -36, -36, -36, -36 + -36, -36, -36, -36, -36, -36, -36, 99, -36, -36, + -36 }, { 5, -37, -37, -37, -37, -37, -37, -37, -37, -37, + -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, - -37, -37, -37, -37, -37 + -37, -37, -37, -37, -37, -37, -37, 100, -37, -37, + -37 }, { 5, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, - -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, + -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, - -38, -38, -38, -38, -38 + -38, -38, -38, -38, -38, -38, -38, 101, -38, -38, + -38 }, { 5, -39, -39, -39, -39, -39, -39, -39, -39, -39, - -39, -39, -39, 93, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, - -39, -39, -39, -39, -39 + -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, + -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, + -39 }, @@ -750,574 +794,640 @@ static yyconst flex_int16_t yy_nxt[][55] = -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, - -40, -40, -40, -40, 67, -40, -40, -40, -40, -40, - -40, -40, -40, -40, -40 + -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, + -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, + -40 }, { - 5, -41, 41, -41, -41, -41, -41, -41, -41, -41, - -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, + 5, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, - -41, -41, -41, -41, -41 + -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, + -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, + -41 }, { 5, -42, -42, -42, -42, -42, -42, -42, -42, -42, + -42, -42, -42, 102, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, - -42, -42, -42, -42, -42 + + -42 }, { - 5, 43, 43, -43, -43, 94, 43, 43, 43, 43, - 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, - - 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, - 43, 45, 43, 43, 43, 43, 43, 43, 43, 43, - 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, - 43, 43, 43, 43, 43 + 5, -43, -43, -43, -43, -43, -43, -43, -43, -43, + -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, + -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, + -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, + -43, -43, -43, -43, -43, -43, 73, -43, -43, -43, + -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, + -43 }, { - 5, 95, 95, 95, 95, 96, 95, 95, 95, 95, - 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, - 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, - 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, - 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, - 95, 95, 95, 95, 95 + 5, -44, 44, -44, -44, -44, -44, -44, -44, -44, + -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, + -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, + -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, + -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, + -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, + -44 }, { - 5, 43, 43, -45, 43, 43, 43, 43, 43, 43, - 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, - 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, - 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, - 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, - 43, 43, 43, 43, 43 + 5, -45, -45, -45, -45, -45, -45, -45, -45, -45, + -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, + -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, + -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, + -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, + + -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, + -45 }, { - 5, 46, 46, -46, -46, 46, 46, 46, 46, 46, + 5, 46, 46, -46, -46, 103, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 48, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, - 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, - 46, 46, 46, 46, 46 + 46 }, { - 5, 47, 47, -47, -47, 47, 47, 47, 97, 47, - 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, - 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, - 47, 49, 47, 47, 47, 47, 47, 47, 47, 47, - 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, - 47, 47, 47, 47, 47 + 5, 104, 104, 104, 104, 105, 104, 104, 104, 104, + + 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, + 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, + 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, + 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, + 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, + 104 }, { - 5, 98, 98, 98, 98, 98, 98, 98, 99, 98, - 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, + 5, 46, 46, -48, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, - 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, - 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, - 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, - 98, 98, 98, 98, 98 + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46 }, { - 5, 47, 47, -49, 47, 47, 47, 47, 47, 47, - 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, - 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, - 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, - 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, - 47, 47, 47, 47, 47 + 5, 49, 49, -49, -49, 49, 49, 49, 49, 49, + 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, + 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, + 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, + 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, + 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, + 49 }, { - 5, -50, -50, -50, -50, -50, -50, -50, -50, -50, - -50, -50, -50, -50, 54, 54, -50, -50, -50, -50, - -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, - -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, - -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, - -50, -50, -50, -50, -50 + 5, 50, 50, -50, -50, 50, 50, 50, 106, 50, + 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, + 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, + 50, 52, 50, 50, 50, 50, 50, 50, 50, 50, + 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, + 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, + 50 }, { - 5, -51, -51, -51, -51, -51, -51, -51, -51, -51, - -51, -51, 57, -51, 52, 52, -51, -51, -51, -51, - -51, -51, -51, -51, 59, -51, -51, -51, -51, -51, - -51, -51, -51, -51, -51, -51, 59, -51, -51, -51, + 5, 107, 107, 107, 107, 107, 107, 107, 108, 107, + 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, + 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, - -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, - -51, -51, -51, -51, -51 + 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, + 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, + 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, + 107 }, { - 5, -52, -52, -52, -52, -52, -52, -52, -52, -52, - -52, -52, 57, -52, 52, 52, -52, -52, -52, -52, - -52, -52, -52, -52, 59, -52, -52, -52, -52, -52, - -52, -52, -52, -52, -52, -52, 59, -52, -52, -52, - -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, - -52, -52, -52, -52, -52 + 5, 50, 50, -52, 50, 50, 50, 50, 50, 50, + 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, + 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, + 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, + 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, + 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, + + 50 }, { 5, -53, -53, -53, -53, -53, -53, -53, -53, -53, + -53, -53, -53, -53, 57, 57, -53, -53, -53, -53, + -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, - -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, - -53, -53, -53, -53, 100, -53, -53, -53, -53, -53, - -53, -53, -53, -53, -53 + -53 }, { 5, -54, -54, -54, -54, -54, -54, -54, -54, -54, - -54, -54, -54, -54, 54, 54, -54, -54, -54, -54, - -54, -54, -54, -54, 101, -54, -54, -54, -54, -54, - -54, -54, -54, -54, -54, -54, 101, -54, -54, -54, - -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, - -54, -54, -54, -54, -54 + -54, -54, 60, -54, 55, 55, -54, -54, -54, -54, + -54, -54, -54, -54, 62, -54, -54, -54, -54, -54, + -54, -54, -54, -54, -54, -54, -54, 62, -54, -54, + -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, + -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, + -54 }, { 5, -55, -55, -55, -55, -55, -55, -55, -55, -55, + -55, -55, 60, -55, 55, 55, -55, -55, -55, -55, + -55, -55, -55, -55, 62, -55, -55, -55, -55, -55, + -55, -55, -55, -55, -55, -55, -55, 62, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, + -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, - -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, - -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, - -55, -55, -55, -55, -55 + -55 }, { - 5, 102, 102, -56, -56, 102, 102, 102, 102, 102, - 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, - 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, - 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, - - 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, - 102, 102, 102, 102, 102 + 5, -56, -56, -56, -56, -56, -56, -56, -56, -56, + -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, + -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, + -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, + -56, -56, -56, -56, -56, -56, 109, -56, -56, -56, + -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, + -56 }, { 5, -57, -57, -57, -57, -57, -57, -57, -57, -57, - -57, -57, -57, -57, 103, 103, -57, -57, -57, -57, - -57, -57, -57, -57, 59, -57, -57, -57, -57, -57, - -57, -57, -57, -57, -57, -57, 59, -57, -57, -57, + + -57, -57, -57, -57, 57, 57, -57, -57, -57, -57, + -57, -57, -57, -57, 110, -57, -57, -57, -57, -57, + -57, -57, -57, -57, -57, -57, -57, 110, -57, -57, + -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, - -57, -57, -57, -57, -57 + -57 }, { 5, -58, -58, -58, -58, -58, -58, -58, -58, -58, - -58, -58, 57, -58, 58, 58, -58, -58, -58, -58, + -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, + -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, + -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, - -58, -58, -58, -58, 59, -58, -58, -58, -58, -58, - -58, -58, -58, -58, -58, -58, 59, -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, - -58, -58, -58, -58, -58 + -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, + -58 }, { - 5, -59, -59, -59, -59, -59, -59, -59, -59, -59, - 104, 104, -59, -59, 105, 105, -59, -59, -59, -59, - -59, -59, -59, -59, -59, -59, -59, -59, -59, -59, - -59, -59, -59, -59, -59, -59, -59, -59, -59, -59, - -59, -59, -59, -59, -59, -59, -59, -59, -59, -59, - -59, -59, -59, -59, -59 + 5, 111, 111, -59, -59, 111, 111, 111, 111, 111, + 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, + 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, + 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, + 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, + 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, + 111 }, { - 5, 60, 60, -60, -60, 60, 60, 60, 60, 60, - 60, 60, 60, 60, 60, 60, 60, -60, 61, 60, - 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, - 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, - 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, - 60, 60, 60, 60, 60 + 5, -60, -60, -60, -60, -60, -60, -60, -60, -60, + -60, -60, -60, -60, 112, 112, -60, -60, -60, -60, + -60, -60, -60, -60, 62, -60, -60, -60, -60, -60, + -60, -60, -60, -60, -60, -60, -60, 62, -60, -60, + -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, + -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, + -60 }, { 5, -61, -61, -61, -61, -61, -61, -61, -61, -61, - -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, - -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, - -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, + -61, -61, 60, -61, 61, 61, -61, -61, -61, -61, + -61, -61, -61, -61, 62, -61, -61, -61, -61, -61, + -61, -61, -61, -61, -61, -61, -61, 62, -61, -61, + -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, - -61, -61, -61, -61, -61 + -61 }, { - 5, 62, 62, -62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 62, 62, 106, - 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 62 + 5, -62, -62, -62, -62, -62, -62, -62, -62, -62, + 113, 113, -62, -62, 114, 114, -62, -62, -62, -62, + -62, -62, -62, -62, -62, -62, -62, -62, -62, -62, + -62, -62, -62, -62, -62, -62, -62, -62, -62, -62, + -62, -62, -62, -62, -62, -62, -62, -62, -62, -62, + -62, -62, -62, -62, -62, -62, -62, -62, -62, -62, + + -62 }, { - 5, -63, -63, -63, -63, -63, -63, -63, -63, -63, - -63, -63, -63, -63, -63, -63, -63, -63, -63, 107, - - -63, -63, -63, -63, -63, -63, -63, -63, -63, -63, - -63, -63, -63, -63, -63, -63, -63, -63, -63, -63, - -63, -63, -63, -63, -63, -63, -63, -63, -63, -63, - -63, -63, -63, -63, -63 + 5, 63, 63, -63, -63, 63, 63, 63, 63, 63, + 63, 63, 63, 63, 63, 63, 63, -63, 64, 63, + 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, + 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, + 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, + 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, + 63 }, { 5, -64, -64, -64, -64, -64, -64, -64, -64, -64, - -64, -64, -64, -64, 64, 64, 65, -64, -64, -64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, + -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, + -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, + -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, + -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, + -64 }, { - 5, -65, -65, -65, -65, -65, -65, -65, -65, -65, - -65, -65, -65, -65, -65, -65, 108, -65, -65, -65, - 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, - 109, -65, 109, 109, 109, 109, 109, 109, 109, 109, - 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, - 109, 109, 109, 109, 109 + 5, 65, 65, -65, 65, 65, 65, 65, 65, 65, + 65, 65, 65, 65, 65, 65, 65, 65, 65, 115, + 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, + 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, + 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, + + 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, + 65 }, { 5, -66, -66, -66, -66, -66, -66, -66, -66, -66, - -66, -66, -66, -66, 64, 64, 65, -66, -66, -66, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -66, 64, 64, 64, 64, 64, 64, 64, 64, - - 64, 64, 64, 64, 110, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + -66, -66, -66, -66, -66, -66, -66, -66, -66, 116, + -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, + -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, + -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, + -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, + -66 }, { 5, -67, -67, -67, -67, -67, -67, -67, -67, -67, - -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, - -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, - -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, - -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, - -67, -67, -67, -67, -67 + + -67, -67, -67, -67, 67, 67, 68, -67, -67, -67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -67, 69, 70, + 71 }, { 5, -68, -68, -68, -68, -68, -68, -68, -68, -68, - -68, -68, -68, -68, 64, 64, 65, -68, -68, -68, + -68, -68, -68, -68, -68, -68, 117, -68, -68, -68, + 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, + 118, -68, 118, 118, 118, 118, 118, 118, 118, 118, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -68, 64, 64, 64, 111, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, + 118, 118, 118, 118, 118, 118, 118, -68, 119, 120, + 121 }, { 5, -69, -69, -69, -69, -69, -69, -69, -69, -69, - -69, -69, -69, -69, 64, 64, 65, -69, -69, -69, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -69, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 112, 64, 64, 64, - 64, 64, 64, 64, 64 + -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, + -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, + -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, + -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, + -69, -69, -69, -69, -69, -69, -69, 122, -69, -69, + -69 }, { 5, -70, -70, -70, -70, -70, -70, -70, -70, -70, - -70, -70, -70, -70, 64, 64, 65, -70, -70, -70, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -70, 113, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, + -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, + -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, + -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, + -70, -70, -70, -70, -70, -70, -70, 123, -70, -70, + -70 }, { 5, -71, -71, -71, -71, -71, -71, -71, -71, -71, - -71, -71, -71, -71, 64, 64, 65, -71, -71, -71, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -71, 64, 64, 64, 64, 64, 64, 64, 64, + -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, + -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, - 64, 64, 64, 64, 114, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, + -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, + -71, -71, -71, -71, -71, -71, -71, 124, -71, -71, + -71 }, { 5, -72, -72, -72, -72, -72, -72, -72, -72, -72, - -72, -72, -72, -72, 64, 64, 65, -72, -72, -72, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -72, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 115, 64, - 64, 64, 64, 64, 64 + -72, -72, -72, -72, 67, 67, 68, -72, -72, -72, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -72, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 125, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -72, 69, 70, + + 71 }, { 5, -73, -73, -73, -73, -73, -73, -73, -73, -73, - -73, -73, -73, -73, 64, 64, 65, -73, -73, -73, - - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -73, 64, 64, 64, 64, 64, 116, 64, 64, - 64, 64, 117, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, + -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, + -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, + -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, + -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, + -73 }, { 5, -74, -74, -74, -74, -74, -74, -74, -74, -74, - -74, -74, -74, -74, 64, 64, 65, -74, -74, -74, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -74, 64, 64, 118, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 119, 64, - 64, 64, 64, 64, 64 + -74, -74, -74, -74, 67, 67, 68, -74, -74, -74, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -74, 67, 67, 67, 67, 126, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -74, 69, 70, + 71 }, { 5, -75, -75, -75, -75, -75, -75, -75, -75, -75, - -75, -75, -75, -75, 64, 64, 65, -75, -75, -75, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -75, 64, 64, 120, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + -75, -75, -75, -75, 67, 67, 68, -75, -75, -75, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -75, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 127, 67, + + 67, 67, 67, 67, 67, 67, 67, -75, 69, 70, + 71 }, { 5, -76, -76, -76, -76, -76, -76, -76, -76, -76, - -76, -76, -76, -76, 64, 64, 65, -76, -76, -76, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -76, 64, 64, 64, 64, 64, 64, 64, 121, - - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + -76, -76, -76, -76, 67, 67, 68, -76, -76, -76, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -76, 67, 128, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -76, 69, 70, + 71 }, { 5, -77, -77, -77, -77, -77, -77, -77, -77, -77, - -77, -77, -77, -77, 64, 64, 65, -77, -77, -77, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -77, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 122, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + + -77, -77, -77, -77, 67, 67, 68, -77, -77, -77, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -77, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 129, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -77, 69, 70, + 71 }, { 5, -78, -78, -78, -78, -78, -78, -78, -78, -78, - -78, -78, -78, -78, 64, 64, 65, -78, -78, -78, + -78, -78, -78, -78, 67, 67, 68, -78, -78, -78, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -78, 67, 67, 67, 67, 67, 67, 67, 67, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -78, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 123, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 130, 67, 67, 67, 67, 67, 67, -78, 69, 70, + 71 }, { 5, -79, -79, -79, -79, -79, -79, -79, -79, -79, - -79, -79, -79, -79, 64, 64, 65, -79, -79, -79, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -79, 64, 64, 64, 64, 64, 124, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + -79, -79, -79, -79, 67, 67, 68, -79, -79, -79, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -79, 67, 67, 67, 67, 67, 67, 131, 67, + 67, 67, 67, 67, 132, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -79, 69, 70, + 71 }, { 5, -80, -80, -80, -80, -80, -80, -80, -80, -80, - -80, -80, -80, -80, 64, 64, 65, -80, -80, -80, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -80, 64, 64, 64, 64, 125, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + -80, -80, -80, -80, 67, 67, 68, -80, -80, -80, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -80, 67, 67, 67, 133, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 134, 67, 67, 67, 67, 67, 67, -80, 69, 70, + 71 }, { 5, -81, -81, -81, -81, -81, -81, -81, -81, -81, - -81, -81, -81, -81, 64, 64, 65, -81, -81, -81, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -81, 64, 64, 64, 64, 64, 64, 64, 64, + -81, -81, -81, -81, 67, 67, 68, -81, -81, -81, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 126, 64 + 67, -81, 67, 67, 67, 135, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -81, 69, 70, + 71 }, { 5, -82, -82, -82, -82, -82, -82, -82, -82, -82, - -82, -82, -82, -82, 64, 64, 65, -82, -82, -82, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -82, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 127, 64, 64, - 64, 64, 64, 64, 64 + -82, -82, -82, -82, 67, 67, 68, -82, -82, -82, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -82, 67, 67, 67, 67, 67, 67, 67, 67, + 136, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -82, 69, 70, + + 71 }, { 5, -83, -83, -83, -83, -83, -83, -83, -83, -83, - -83, -83, -83, -83, 64, 64, 65, -83, -83, -83, - - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -83, 64, 64, 64, 64, 128, 64, 64, 64, - 64, 64, 64, 64, 64, 129, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + -83, -83, -83, -83, 67, 67, 68, -83, -83, -83, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -83, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 137, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -83, 69, 70, + 71 }, { 5, -84, -84, -84, -84, -84, -84, -84, -84, -84, - -84, -84, -84, -84, 64, 64, 65, -84, -84, -84, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -84, 64, 64, 64, 64, 64, 130, 64, 64, - 64, 64, 131, 64, 64, 132, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + -84, -84, -84, -84, 67, 67, 68, -84, -84, -84, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -84, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 138, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -84, 69, 70, + 71 }, { 5, -85, -85, -85, -85, -85, -85, -85, -85, -85, - -85, -85, -85, -85, 64, 64, 65, -85, -85, -85, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -85, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 133, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + -85, -85, -85, -85, 67, 67, 68, -85, -85, -85, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -85, 67, 67, 67, 67, 67, 67, 139, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + + 67, 67, 67, 67, 67, 67, 67, -85, 69, 70, + 71 }, { 5, -86, -86, -86, -86, -86, -86, -86, -86, -86, - -86, -86, -86, -86, 64, 64, 65, -86, -86, -86, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -86, 134, 64, 64, 64, 64, 64, 64, 64, - - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + -86, -86, -86, -86, 67, 67, 68, -86, -86, -86, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -86, 67, 67, 67, 67, 67, 140, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -86, 69, 70, + 71 }, { 5, -87, -87, -87, -87, -87, -87, -87, -87, -87, - -87, -87, -87, -87, 64, 64, 65, -87, -87, -87, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -87, 64, 64, 64, 64, 135, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + + -87, -87, -87, -87, 67, 67, 68, -87, -87, -87, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -87, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 141, 67, -87, 69, 70, + 71 }, { 5, -88, -88, -88, -88, -88, -88, -88, -88, -88, - -88, -88, -88, -88, 64, 64, 65, -88, -88, -88, + -88, -88, -88, -88, 67, 67, 68, -88, -88, -88, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -88, 67, 67, 67, 67, 67, 67, 67, 67, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -88, 64, 136, 64, 64, 64, 137, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + 67, 67, 67, 67, 67, 67, 67, 67, 67, 142, + 67, 67, 67, 67, 67, 67, 67, -88, 69, 70, + 71 }, { 5, -89, -89, -89, -89, -89, -89, -89, -89, -89, - -89, -89, -89, -89, 64, 64, 65, -89, -89, -89, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -89, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 138, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + -89, -89, -89, -89, 67, 67, 68, -89, -89, -89, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -89, 67, 67, 67, 67, 67, 143, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 144, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -89, 69, 70, + 71 }, { 5, -90, -90, -90, -90, -90, -90, -90, -90, -90, - -90, -90, -90, -90, 64, 64, 65, -90, -90, -90, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -90, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 139, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + -90, -90, -90, -90, 67, 67, 68, -90, -90, -90, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -90, 67, 67, 67, 67, 67, 67, 145, 67, + 67, 67, 67, 67, 146, 67, 67, 147, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -90, 69, 70, + 71 }, { 5, -91, -91, -91, -91, -91, -91, -91, -91, -91, - -91, -91, -91, -91, 64, 64, 65, -91, -91, -91, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -91, 64, 64, 64, 64, 64, 64, 64, 64, + -91, -91, -91, -91, 67, 67, 68, -91, -91, -91, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, - 140, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + 67, -91, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 148, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -91, 69, 70, + 71 }, { 5, -92, -92, -92, -92, -92, -92, -92, -92, -92, - -92, -92, -92, -92, 64, 64, 65, -92, -92, -92, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -92, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 141, 64, 64, - 64, 64, 64, 64, 64 + -92, -92, -92, -92, 67, 67, 68, -92, -92, -92, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -92, 67, 149, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -92, 69, 70, + + 71 }, { 5, -93, -93, -93, -93, -93, -93, -93, -93, -93, - -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, - - -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, - -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, - -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, - -93, -93, -93, -93, -93 + -93, -93, -93, -93, 67, 67, 68, -93, -93, -93, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -93, 67, 67, 67, 67, 67, 150, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -93, 69, 70, + 71 }, { 5, -94, -94, -94, -94, -94, -94, -94, -94, -94, - -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, - -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, - -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, - -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, - -94, -94, -94, -94, -94 + -94, -94, -94, -94, 67, 67, 68, -94, -94, -94, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -94, 67, 67, 151, 67, 67, 67, 152, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -94, 69, 70, + 71 }, { 5, -95, -95, -95, -95, -95, -95, -95, -95, -95, - -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, - -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, - -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, - -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, - -95, -95, -95, -95, -95 + -95, -95, -95, -95, 67, 67, 68, -95, -95, -95, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -95, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 153, 67, 67, 67, 67, + + 67, 67, 67, 67, 67, 67, 67, -95, 69, 70, + 71 }, { - 5, 142, 142, 142, 142, 143, 142, 142, 142, 142, - 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, - 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, - 142, 144, 142, 142, 142, 142, 142, 142, 142, 142, - - 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, - 142, 142, 142, 142, 142 + 5, -96, -96, -96, -96, -96, -96, -96, -96, -96, + -96, -96, -96, -96, 67, 67, 68, -96, -96, -96, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -96, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 154, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -96, 69, 70, + 71 }, { 5, -97, -97, -97, -97, -97, -97, -97, -97, -97, - -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, - -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, - -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, - -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, - -97, -97, -97, -97, -97 + + -97, -97, -97, -97, 67, 67, 68, -97, -97, -97, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -97, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 155, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -97, 69, 70, + 71 }, { 5, -98, -98, -98, -98, -98, -98, -98, -98, -98, - -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, + -98, -98, -98, -98, 67, 67, 68, -98, -98, -98, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -98, 67, 67, 67, 67, 67, 67, 67, 67, - -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, - -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, - -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, - -98, -98, -98, -98, -98 + 67, 67, 67, 67, 67, 67, 67, 67, 67, 156, + 67, 67, 67, 67, 67, 67, 67, -98, 69, 70, + 71 }, { - 5, 145, 145, 145, 145, 145, 145, 145, 146, 145, - 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, - 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, - 145, 147, 145, 145, 145, 145, 145, 145, 145, 145, - 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, - 145, 145, 145, 145, 145 + 5, -99, -99, -99, -99, -99, -99, -99, -99, -99, + -99, -99, -99, -99, 157, 157, 158, -99, -99, -99, + 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, + 157, -99, 157, 157, 157, 157, 157, 157, 157, 157, + 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, + 157, 157, 157, 157, 157, 157, 157, -99, 69, 70, + 71 }, @@ -1325,57 +1435,64 @@ static yyconst flex_int16_t yy_nxt[][55] = 5, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, - -100, -100, -100, -100, -100, -100, -100, 148, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, - -100, -100, -100, -100, -100 + -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, + -100, -100, -100, -100, -100, -100, -100, 99, -100, -100, + -100 }, { 5, -101, -101, -101, -101, -101, -101, -101, -101, -101, - 149, 149, -101, -101, 150, 150, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, - -101, -101, -101, -101, -101 + -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, + -101, -101, -101, -101, -101, -101, -101, 159, -101, -101, + -101 }, { - 5, 102, 102, -102, -102, 102, 102, 102, 102, 102, - 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, - 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, - 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, - 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, - 102, 102, 102, 102, 102 + 5, -102, -102, -102, -102, -102, -102, -102, -102, -102, + -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, + -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, + -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, + -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, + -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, + + -102 }, { 5, -103, -103, -103, -103, -103, -103, -103, -103, -103, - -103, -103, -103, -103, 103, 103, -103, -103, -103, -103, - - -103, -103, -103, -103, 59, -103, -103, -103, -103, -103, - -103, -103, -103, -103, -103, -103, 59, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, - -103, -103, -103, -103, -103 + -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, + -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, + -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, + -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, + -103 }, { 5, -104, -104, -104, -104, -104, -104, -104, -104, -104, - -104, -104, -104, -104, 105, 105, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, + -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, - -104, -104, -104, -104, -104 - + -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, + -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, + -104 }, { - 5, -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, -105, - -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, - -105, -105, -105, -105, -105 + 5, 160, 160, 160, 160, 161, 160, 160, 160, 160, + 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, + 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, + 160, 162, 160, 160, 160, 160, 160, 160, 160, 160, + 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, + + 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, + 160 }, { @@ -1383,2582 +1500,3187 @@ static yyconst flex_int16_t yy_nxt[][55] = -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, -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 }, { - 5, 151, 151, -107, 151, 151, 151, 151, 151, 151, - 151, 151, 151, 151, 151, 151, 151, 151, 151, 152, - 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, - 151, 153, 151, 151, 151, 151, 151, 151, 151, 151, - 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, - 151, 151, 151, 151, 151 + 5, -107, -107, -107, -107, -107, -107, -107, -107, -107, + + -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, + -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, + -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, + -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, + -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, + -107 }, { - 5, -108, -108, -108, -108, -108, -108, -108, -108, -108, - -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, + 5, 163, 163, 163, 163, 163, 163, 163, 164, 163, + 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, + 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, + 163, 165, 163, 163, 163, 163, 163, 163, 163, 163, - 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, - 154, -108, 154, 154, 154, 154, 154, 154, 154, 154, - 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, - 154, 154, 154, 154, 154 + 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, + 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, + 163 }, { 5, -109, -109, -109, -109, -109, -109, -109, -109, -109, - -109, -109, -109, -109, 155, 155, 156, -109, -109, -109, - 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, - 155, -109, 155, 155, 155, 155, 155, 155, 155, 155, - 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, - 155, 155, 155, 155, 155 + -109, -109, -109, -109, -109, -109, -109, -109, -109, -109, + -109, -109, -109, -109, -109, -109, -109, -109, -109, -109, + -109, -109, -109, -109, -109, -109, -109, -109, 166, -109, + -109, -109, -109, -109, -109, -109, -109, -109, -109, -109, + -109, -109, -109, -109, -109, -109, -109, -109, -109, -109, + -109 }, { 5, -110, -110, -110, -110, -110, -110, -110, -110, -110, - -110, -110, -110, -110, 64, 64, 65, -110, -110, -110, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -110, 64, 64, 64, 64, 157, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + 167, 167, -110, -110, 168, 168, -110, -110, -110, -110, + -110, -110, -110, -110, -110, -110, -110, -110, -110, -110, + -110, -110, -110, -110, -110, -110, -110, -110, -110, -110, + -110, -110, -110, -110, -110, -110, -110, -110, -110, -110, + -110, -110, -110, -110, -110, -110, -110, -110, -110, -110, + -110 }, { - 5, -111, -111, -111, -111, -111, -111, -111, -111, -111, - -111, -111, -111, -111, 64, 64, 65, -111, -111, -111, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -111, 64, 64, 64, 64, 64, 64, 64, 64, + 5, 111, 111, -111, -111, 111, 111, 111, 111, 111, + 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, + 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, + 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, + 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, + 111 }, { 5, -112, -112, -112, -112, -112, -112, -112, -112, -112, - -112, -112, -112, -112, 64, 64, 65, -112, -112, -112, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -112, 64, 64, 64, 64, 158, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + -112, -112, -112, -112, 112, 112, -112, -112, -112, -112, + -112, -112, -112, -112, 62, -112, -112, -112, -112, -112, + -112, -112, -112, -112, -112, -112, -112, 62, -112, -112, + -112, -112, -112, -112, -112, -112, -112, -112, -112, -112, + -112, -112, -112, -112, -112, -112, -112, -112, -112, -112, + + -112 }, { 5, -113, -113, -113, -113, -113, -113, -113, -113, -113, - -113, -113, -113, -113, 64, 64, 65, -113, -113, -113, - - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -113, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 159, 64, - 64, 64, 64, 64, 64 + -113, -113, -113, -113, 114, 114, -113, -113, -113, -113, + -113, -113, -113, -113, -113, -113, -113, -113, -113, -113, + -113, -113, -113, -113, -113, -113, -113, -113, -113, -113, + -113, -113, -113, -113, -113, -113, -113, -113, -113, -113, + -113, -113, -113, -113, -113, -113, -113, -113, -113, -113, + -113 }, { 5, -114, -114, -114, -114, -114, -114, -114, -114, -114, - -114, -114, -114, -114, 64, 64, 65, -114, -114, -114, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -114, 64, 64, 64, 64, 64, 160, 64, 64, - 64, 64, 64, 64, 161, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + -114, -114, -114, -114, 114, 114, -114, -114, -114, -114, + -114, -114, -114, -114, -114, -114, -114, -114, -114, -114, + -114, -114, -114, -114, -114, -114, -114, -114, -114, -114, + -114, -114, -114, -114, -114, -114, -114, -114, -114, -114, + -114, -114, -114, -114, -114, -114, -114, -114, -114, -114, + -114 }, { 5, -115, -115, -115, -115, -115, -115, -115, -115, -115, - -115, -115, -115, -115, 64, 64, 65, -115, -115, -115, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -115, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 162, - 64, 64, 64, 64, 64 + -115, -115, -115, -115, -115, -115, -115, -115, -115, -115, + -115, -115, -115, -115, -115, -115, -115, -115, -115, -115, + -115, -115, -115, -115, -115, -115, -115, -115, -115, -115, + -115, -115, -115, -115, -115, -115, -115, -115, -115, -115, + + -115, -115, -115, -115, -115, -115, -115, -115, -115, -115, + -115 }, { - 5, -116, -116, -116, -116, -116, -116, -116, -116, -116, - -116, -116, -116, -116, 64, 64, 65, -116, -116, -116, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -116, 163, 64, 64, 64, 64, 64, 64, 64, - - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + 5, 169, 169, -116, 169, 169, 169, 169, 169, 169, + 169, 169, 169, 169, 169, 169, 169, 169, 169, 170, + 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, + 169, 171, 169, 169, 169, 169, 169, 169, 169, 169, + 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, + 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, + 169 }, { 5, -117, -117, -117, -117, -117, -117, -117, -117, -117, - -117, -117, -117, -117, 64, 64, 65, -117, -117, -117, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -117, 64, 64, 64, 64, 164, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + + -117, -117, -117, -117, -117, -117, -117, -117, -117, -117, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, -117, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, -117, -117, -117, + -117 }, { 5, -118, -118, -118, -118, -118, -118, -118, -118, -118, - -118, -118, -118, -118, 64, 64, 65, -118, -118, -118, + -118, -118, -118, -118, 173, 173, 158, -118, -118, -118, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, -118, 173, 173, 173, 173, 173, 173, 173, 173, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -118, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 165, - 64, 64, 64, 64, 64 + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, -118, 174, 175, + 176 }, { 5, -119, -119, -119, -119, -119, -119, -119, -119, -119, - -119, -119, -119, -119, 64, 64, 65, -119, -119, -119, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -119, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 166, 64, 64, 64, - 64, 64, 64, 64, 64 + -119, -119, -119, -119, -119, -119, -119, -119, -119, -119, + -119, -119, -119, -119, -119, -119, -119, -119, -119, -119, + -119, -119, -119, -119, -119, -119, -119, -119, -119, -119, + -119, -119, -119, -119, -119, -119, -119, -119, -119, -119, + -119, -119, -119, -119, -119, -119, -119, 177, -119, -119, + -119 }, { 5, -120, -120, -120, -120, -120, -120, -120, -120, -120, - -120, -120, -120, -120, 64, 64, 65, -120, -120, -120, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -120, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, + -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, + -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, + -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, + -120, -120, -120, -120, -120, -120, -120, 178, -120, -120, + -120 }, { 5, -121, -121, -121, -121, -121, -121, -121, -121, -121, - -121, -121, -121, -121, 64, 64, 65, -121, -121, -121, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -121, 64, 64, 64, 64, 167, 64, 64, 64, + -121, -121, -121, -121, -121, -121, -121, -121, -121, -121, + -121, -121, -121, -121, -121, -121, -121, -121, -121, -121, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + -121, -121, -121, -121, -121, -121, -121, -121, -121, -121, + -121, -121, -121, -121, -121, -121, -121, -121, -121, -121, + -121, -121, -121, -121, -121, -121, -121, 179, -121, -121, + -121 }, { 5, -122, -122, -122, -122, -122, -122, -122, -122, -122, - -122, -122, -122, -122, 64, 64, 65, -122, -122, -122, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -122, 64, 64, 64, 168, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + -122, -122, -122, -122, 157, 157, 158, -122, -122, -122, + 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, + 157, -122, 157, 157, 157, 157, 157, 157, 157, 157, + 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, + 157, 157, 157, 157, 157, 157, 157, -122, 69, 70, + + 71 }, { 5, -123, -123, -123, -123, -123, -123, -123, -123, -123, - -123, -123, -123, -123, 64, 64, 65, -123, -123, -123, - - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -123, 64, 64, 64, 64, 169, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + -123, -123, -123, -123, -123, -123, -123, -123, -123, -123, + -123, -123, -123, -123, -123, -123, -123, -123, -123, -123, + -123, -123, -123, -123, -123, -123, -123, -123, -123, -123, + -123, -123, -123, -123, -123, -123, -123, -123, -123, -123, + -123, -123, -123, -123, -123, -123, -123, 122, -123, -123, + -123 }, { 5, -124, -124, -124, -124, -124, -124, -124, -124, -124, - -124, -124, -124, -124, 64, 64, 65, -124, -124, -124, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -124, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 170, 64, - 64, 64, 64, 64, 64 + -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, + -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, + -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, + -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, + -124, -124, -124, -124, -124, -124, -124, 180, -124, -124, + -124 }, { 5, -125, -125, -125, -125, -125, -125, -125, -125, -125, - -125, -125, -125, -125, 64, 64, 65, -125, -125, -125, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -125, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 171, 64, 64, - 64, 64, 64, 64, 64 + -125, -125, -125, -125, 67, 67, 68, -125, -125, -125, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -125, 67, 67, 67, 67, 67, 181, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + + 67, 67, 67, 67, 67, 67, 67, -125, 69, 70, + 71 }, { 5, -126, -126, -126, -126, -126, -126, -126, -126, -126, - -126, -126, -126, -126, 64, 64, 65, -126, -126, -126, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -126, 64, 64, 64, 64, 64, 64, 64, 64, - - 64, 64, 172, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + -126, -126, -126, -126, 67, 67, 68, -126, -126, -126, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -126, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -126, 69, 70, + 71 }, { 5, -127, -127, -127, -127, -127, -127, -127, -127, -127, - -127, -127, -127, -127, 64, 64, 65, -127, -127, -127, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -127, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 173, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + + -127, -127, -127, -127, 67, 67, 68, -127, -127, -127, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -127, 67, 67, 67, 67, 67, 182, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -127, 69, 70, + 71 }, { 5, -128, -128, -128, -128, -128, -128, -128, -128, -128, - -128, -128, -128, -128, 64, 64, 65, -128, -128, -128, + -128, -128, -128, -128, 67, 67, 68, -128, -128, -128, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -128, 67, 67, 67, 67, 67, 67, 67, 67, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -128, 64, 64, 64, 64, 64, 174, 64, 64, - 64, 64, 64, 64, 64, 64, 175, 64, 64, 64, - 64, 64, 64, 64, 64 + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 183, 67, 67, 67, 67, 67, 67, -128, 69, 70, + 71 }, { 5, -129, -129, -129, -129, -129, -129, -129, -129, -129, - -129, -129, -129, -129, 64, 64, 65, -129, -129, -129, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -129, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 176, 64, 64, 64, - 64, 64, 64, 64, 64 + -129, -129, -129, -129, 67, 67, 68, -129, -129, -129, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -129, 67, 67, 67, 67, 67, 67, 184, 67, + 67, 67, 67, 67, 67, 67, 185, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -129, 69, 70, + 71 }, { 5, -130, -130, -130, -130, -130, -130, -130, -130, -130, - -130, -130, -130, -130, 64, 64, 65, -130, -130, -130, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -130, 64, 64, 64, 64, 177, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + -130, -130, -130, -130, 67, 67, 68, -130, -130, -130, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -130, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 186, 67, 67, 67, 67, 67, -130, 69, 70, + 71 }, { 5, -131, -131, -131, -131, -131, -131, -131, -131, -131, - -131, -131, -131, -131, 64, 64, 65, -131, -131, -131, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -131, 64, 64, 64, 64, 64, 64, 64, 64, + -131, -131, -131, -131, 67, 67, 68, -131, -131, -131, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, - 64, 64, 64, 64, 64, 178, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + 67, -131, 67, 187, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -131, 69, 70, + 71 }, { 5, -132, -132, -132, -132, -132, -132, -132, -132, -132, - -132, -132, -132, -132, 64, 64, 65, -132, -132, -132, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -132, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 179, 64, 64, - 64, 64, 64, 64, 64 + -132, -132, -132, -132, 67, 67, 68, -132, -132, -132, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -132, 67, 67, 67, 67, 67, 188, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -132, 69, 70, + + 71 }, { 5, -133, -133, -133, -133, -133, -133, -133, -133, -133, - -133, -133, -133, -133, 64, 64, 65, -133, -133, -133, - - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -133, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 180, - 64, 64, 64, 64, 64 + -133, -133, -133, -133, 67, 67, 68, -133, -133, -133, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -133, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 189, 67, 67, 67, 67, 67, -133, 69, 70, + 71 }, { 5, -134, -134, -134, -134, -134, -134, -134, -134, -134, - -134, -134, -134, -134, 64, 64, 65, -134, -134, -134, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -134, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 181, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + -134, -134, -134, -134, 67, 67, 68, -134, -134, -134, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -134, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 190, 67, + 67, 67, 67, 67, 67, 67, 67, -134, 69, 70, + 71 }, { 5, -135, -135, -135, -135, -135, -135, -135, -135, -135, - -135, -135, -135, -135, 64, 64, 65, -135, -135, -135, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -135, 64, 64, 182, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + -135, -135, -135, -135, 67, 67, 68, -135, -135, -135, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -135, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + + 67, 67, 67, 67, 67, 67, 67, -135, 69, 70, + 71 }, { 5, -136, -136, -136, -136, -136, -136, -136, -136, -136, - -136, -136, -136, -136, 64, 64, 65, -136, -136, -136, - 64, 64, 64, 64, 64, 64, 183, 64, 64, 64, - 64, -136, 64, 64, 64, 64, 64, 64, 64, 64, - - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + -136, -136, -136, -136, 67, 67, 68, -136, -136, -136, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -136, 67, 67, 67, 67, 67, 191, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -136, 69, 70, + 71 }, { 5, -137, -137, -137, -137, -137, -137, -137, -137, -137, - -137, -137, -137, -137, 64, 64, 65, -137, -137, -137, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -137, 64, 64, 64, 64, 64, 184, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + + -137, -137, -137, -137, 67, 67, 68, -137, -137, -137, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -137, 67, 67, 67, 67, 192, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -137, 69, 70, + 71 }, { 5, -138, -138, -138, -138, -138, -138, -138, -138, -138, - -138, -138, -138, -138, 64, 64, 65, -138, -138, -138, + -138, -138, -138, -138, 67, 67, 68, -138, -138, -138, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -138, 67, 67, 67, 67, 67, 193, 67, 67, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -138, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 185, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -138, 69, 70, + 71 }, { 5, -139, -139, -139, -139, -139, -139, -139, -139, -139, - -139, -139, -139, -139, 64, 64, 65, -139, -139, -139, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -139, 64, 64, 64, 64, 186, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + -139, -139, -139, -139, 67, 67, 68, -139, -139, -139, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -139, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 194, 67, 67, 67, 67, 67, 67, -139, 69, 70, + 71 }, { 5, -140, -140, -140, -140, -140, -140, -140, -140, -140, - -140, -140, -140, -140, 64, 64, 65, -140, -140, -140, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -140, 64, 64, 64, 64, 64, 187, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + -140, -140, -140, -140, 67, 67, 68, -140, -140, -140, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -140, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 195, + 67, 67, 67, 67, 67, 67, 67, -140, 69, 70, + 71 }, { 5, -141, -141, -141, -141, -141, -141, -141, -141, -141, - -141, -141, -141, -141, 64, 64, 65, -141, -141, -141, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -141, 64, 64, 64, 64, 64, 64, 64, 64, + -141, -141, -141, -141, 67, 67, 68, -141, -141, -141, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, - 188, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 189, 64 + 67, -141, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 196, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -141, 69, 70, + 71 }, { - 5, 142, 142, 142, 142, 143, 142, 142, 142, 142, - 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, - 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, - 142, 144, 142, 142, 142, 142, 142, 142, 142, 142, - 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, - 142, 142, 142, 142, 142 + 5, -142, -142, -142, -142, -142, -142, -142, -142, -142, + -142, -142, -142, -142, 67, 67, 68, -142, -142, -142, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -142, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 197, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -142, 69, 70, + + 71 }, { - 5, 142, 142, 142, 142, 190, 142, 142, 142, 142, - 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, - - 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, - 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, - 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, - 142, 142, 142, 142, 142 + 5, -143, -143, -143, -143, -143, -143, -143, -143, -143, + -143, -143, -143, -143, 67, 67, 68, -143, -143, -143, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -143, 67, 67, 67, 67, 67, 67, 198, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 199, 67, + 67, 67, 67, 67, 67, 67, 67, -143, 69, 70, + 71 }, { - 5, 142, 142, 142, 191, 142, 142, 142, 142, 142, - 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, - 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, - 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, - 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, - 142, 142, 142, 142, 142 + 5, -144, -144, -144, -144, -144, -144, -144, -144, -144, + -144, -144, -144, -144, 67, 67, 68, -144, -144, -144, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -144, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 200, 67, + 67, 67, 67, 67, 67, 67, 67, -144, 69, 70, + 71 }, { - 5, 145, 145, 145, 145, 145, 145, 145, 146, 145, - 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, - 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, - 145, 147, 145, 145, 145, 145, 145, 145, 145, 145, - 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, - 145, 145, 145, 145, 145 + 5, -145, -145, -145, -145, -145, -145, -145, -145, -145, + -145, -145, -145, -145, 67, 67, 68, -145, -145, -145, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -145, 67, 67, 67, 67, 67, 201, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + + 67, 67, 67, 67, 67, 67, 67, -145, 69, 70, + 71 }, { - 5, 145, 145, 145, 145, 145, 145, 145, 192, 145, - 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, - 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, - 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, - - 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, - 145, 145, 145, 145, 145 + 5, -146, -146, -146, -146, -146, -146, -146, -146, -146, + -146, -146, -146, -146, 67, 67, 68, -146, -146, -146, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -146, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 202, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -146, 69, 70, + 71 }, { - 5, 145, 145, 145, 193, 145, 145, 145, 145, 145, - 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, - 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, - 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, - 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, - 145, 145, 145, 145, 145 + 5, -147, -147, -147, -147, -147, -147, -147, -147, -147, + + -147, -147, -147, -147, 67, 67, 68, -147, -147, -147, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -147, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 203, + 67, 67, 67, 67, 67, 67, 67, -147, 69, 70, + 71 }, { 5, -148, -148, -148, -148, -148, -148, -148, -148, -148, - -148, -148, -148, -148, -148, -148, -148, -148, -148, -148, + -148, -148, -148, -148, 67, 67, 68, -148, -148, -148, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -148, 67, 67, 67, 67, 67, 67, 67, 67, - -148, -148, -148, -148, -148, -148, -148, -148, -148, -148, - -148, -148, -148, -148, -148, -148, -148, -148, -148, -148, - -148, -148, -148, -148, -148, -148, -148, -148, -148, -148, - -148, -148, -148, -148, -148 + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 204, 67, 67, 67, 67, 67, -148, 69, 70, + 71 }, { 5, -149, -149, -149, -149, -149, -149, -149, -149, -149, - -149, -149, -149, -149, 150, 150, -149, -149, -149, -149, - -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, - -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, - -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, - -149, -149, -149, -149, -149 + -149, -149, -149, -149, 67, 67, 68, -149, -149, -149, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -149, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 205, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -149, 69, 70, + 71 }, { 5, -150, -150, -150, -150, -150, -150, -150, -150, -150, - -150, -150, -150, -150, 150, 150, -150, -150, -150, -150, - -150, -150, -150, -150, -150, -150, -150, -150, -150, -150, - -150, -150, -150, -150, -150, -150, -150, -150, -150, -150, - -150, -150, -150, -150, -150, -150, -150, -150, -150, -150, - -150, -150, -150, -150, -150 + -150, -150, -150, -150, 67, 67, 68, -150, -150, -150, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -150, 67, 67, 67, 206, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -150, 69, 70, + 71 }, { - 5, 151, 151, -151, 151, 151, 151, 151, 151, 151, - 151, 151, 151, 151, 151, 151, 151, 151, 151, 152, - 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, - 151, 153, 151, 151, 151, 151, 151, 151, 151, 151, + 5, -151, -151, -151, -151, -151, -151, -151, -151, -151, + -151, -151, -151, -151, 67, 67, 68, -151, -151, -151, + 67, 67, 67, 67, 67, 67, 207, 67, 67, 67, - 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, - 151, 151, 151, 151, 151 + 67, -151, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -151, 69, 70, + 71 }, { - 5, 151, 151, -152, 151, 151, 151, 151, 151, 151, - 151, 151, 151, 151, 151, 151, 151, 151, 151, 194, - 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, - 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, - 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, - 151, 151, 151, 151, 151 + 5, -152, -152, -152, -152, -152, -152, -152, -152, -152, + -152, -152, -152, -152, 67, 67, 68, -152, -152, -152, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -152, 67, 67, 67, 67, 67, 67, 208, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -152, 69, 70, + + 71 }, { - 5, 151, 151, -153, 151, 151, 151, 151, 151, 151, - 151, 151, 151, 151, 151, 151, 151, 151, 151, 195, - - 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, - 151, 153, 151, 151, 151, 151, 151, 151, 151, 151, - 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, - 151, 151, 151, 151, 151 + 5, -153, -153, -153, -153, -153, -153, -153, -153, -153, + -153, -153, -153, -153, 67, 67, 68, -153, -153, -153, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -153, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 209, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -153, 69, 70, + 71 }, { 5, -154, -154, -154, -154, -154, -154, -154, -154, -154, - -154, -154, -154, -154, 196, 196, 197, -154, -154, -154, - 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, - 196, -154, 196, 196, 196, 196, 196, 196, 196, 196, - 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, - 196, 196, 196, 196, 196 + -154, -154, -154, -154, 67, 67, 68, -154, -154, -154, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -154, 67, 67, 67, 67, 67, 210, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -154, 69, 70, + 71 }, { 5, -155, -155, -155, -155, -155, -155, -155, -155, -155, - -155, -155, -155, -155, 155, 155, 156, -155, -155, -155, - 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, - 155, -155, 155, 155, 155, 155, 155, 155, 155, 155, - 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, - 155, 155, 155, 155, 155 + -155, -155, -155, -155, 67, 67, 68, -155, -155, -155, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -155, 67, 67, 67, 67, 67, 67, 211, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + + 67, 67, 67, 67, 67, 67, 67, -155, 69, 70, + 71 }, { 5, -156, -156, -156, -156, -156, -156, -156, -156, -156, - -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, - 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, - 109, -156, 109, 109, 109, 109, 109, 109, 109, 109, - - 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, - 109, 109, 109, 109, 109 + -156, -156, -156, -156, 67, 67, 68, -156, -156, -156, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -156, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 212, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 213, 67, -156, 69, 70, + 71 }, { 5, -157, -157, -157, -157, -157, -157, -157, -157, -157, - -157, -157, -157, -157, 64, 64, 65, -157, -157, -157, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -157, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + + -157, -157, -157, -157, 157, 157, 158, -157, -157, -157, + 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, + 157, -157, 157, 157, 157, 157, 157, 157, 157, 157, + 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, + 157, 157, 157, 157, 157, 157, 157, -157, 69, 70, + 71 }, { 5, -158, -158, -158, -158, -158, -158, -158, -158, -158, - -158, -158, -158, -158, 64, 64, 65, -158, -158, -158, + -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, + 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, + 118, -158, 118, 118, 118, 118, 118, 118, 118, 118, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -158, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 198, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, + 118, 118, 118, 118, 118, 118, 118, -158, 119, 120, + 121 }, { 5, -159, -159, -159, -159, -159, -159, -159, -159, -159, - -159, -159, -159, -159, 64, 64, 65, -159, -159, -159, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -159, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 199, 64, - 64, 64, 64, 64, 64 + -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, + -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, + -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, + -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, + -159, -159, -159, -159, -159, -159, -159, 99, -159, -159, + -159 }, { - 5, -160, -160, -160, -160, -160, -160, -160, -160, -160, - -160, -160, -160, -160, 64, 64, 65, -160, -160, -160, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -160, 64, 64, 64, 64, 64, 64, 64, 64, - 200, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + 5, 160, 160, 160, 160, 161, 160, 160, 160, 160, + 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, + 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, + 160, 162, 160, 160, 160, 160, 160, 160, 160, 160, + 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, + 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, + 160 }, { - 5, -161, -161, -161, -161, -161, -161, -161, -161, -161, - -161, -161, -161, -161, 64, 64, 65, -161, -161, -161, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -161, 64, 64, 64, 64, 201, 64, 64, 64, + 5, 160, 160, 160, 160, 214, 160, 160, 160, 160, + 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, + 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, + 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, + 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, + 160 }, { - 5, -162, -162, -162, -162, -162, -162, -162, -162, -162, - -162, -162, -162, -162, 64, 64, 65, -162, -162, -162, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -162, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 202, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + 5, 160, 160, 160, 215, 160, 160, 160, 160, 160, + 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, + 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, + 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, + 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, + 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, + + 160 }, { - 5, -163, -163, -163, -163, -163, -163, -163, -163, -163, - -163, -163, -163, -163, 64, 64, 65, -163, -163, -163, - - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -163, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 203, 64, 64, 64, 64 + 5, 163, 163, 163, 163, 163, 163, 163, 164, 163, + 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, + 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, + 163, 165, 163, 163, 163, 163, 163, 163, 163, 163, + 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, + 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, + 163 }, { - 5, -164, -164, -164, -164, -164, -164, -164, -164, -164, - -164, -164, -164, -164, 64, 64, 65, -164, -164, -164, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -164, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 204, - 64, 64, 64, 64, 64 + 5, 163, 163, 163, 163, 163, 163, 163, 216, 163, + 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, + 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, + 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, + 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, + 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, + 163 }, { - 5, -165, -165, -165, -165, -165, -165, -165, -165, -165, - -165, -165, -165, -165, 64, 64, 65, -165, -165, -165, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -165, 64, 64, 64, 64, 64, 64, 64, 64, - 205, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + 5, 163, 163, 163, 217, 163, 163, 163, 163, 163, + 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, + 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, + 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, + 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, + + 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, + 163 }, { 5, -166, -166, -166, -166, -166, -166, -166, -166, -166, - -166, -166, -166, -166, 64, 64, 65, -166, -166, -166, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -166, 64, 64, 64, 64, 64, 64, 64, 64, - - 64, 64, 206, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, + -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, + -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, + -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, + -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, + -166 }, { 5, -167, -167, -167, -167, -167, -167, -167, -167, -167, - -167, -167, -167, -167, 64, 64, 65, -167, -167, -167, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -167, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 207, 64, 64, - 64, 64, 64, 64, 64 + + -167, -167, -167, -167, 168, 168, -167, -167, -167, -167, + -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, + -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, + -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, + -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, + -167 }, { 5, -168, -168, -168, -168, -168, -168, -168, -168, -168, - -168, -168, -168, -168, 64, 64, 65, -168, -168, -168, + -168, -168, -168, -168, 168, 168, -168, -168, -168, -168, + -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, + -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -168, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, + -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, + -168 }, { - 5, -169, -169, -169, -169, -169, -169, -169, -169, -169, - -169, -169, -169, -169, 64, 64, 65, -169, -169, -169, - 64, 64, 208, 64, 64, 64, 64, 64, 64, 64, - 64, -169, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + 5, 169, 169, -169, 169, 169, 169, 169, 169, 169, + 169, 169, 169, 169, 169, 169, 169, 169, 169, 170, + 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, + 169, 171, 169, 169, 169, 169, 169, 169, 169, 169, + 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, + 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, + 169 }, { - 5, -170, -170, -170, -170, -170, -170, -170, -170, -170, - -170, -170, -170, -170, 64, 64, 65, -170, -170, -170, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -170, 64, 64, 64, 64, 209, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + 5, 169, 169, -170, 169, 169, 169, 169, 169, 169, + 169, 169, 169, 169, 169, 169, 169, 169, 169, 218, + 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, + 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, + 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, + 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, + 169 }, { - 5, -171, -171, -171, -171, -171, -171, -171, -171, -171, - -171, -171, -171, -171, 64, 64, 65, -171, -171, -171, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -171, 64, 64, 64, 64, 64, 64, 64, 64, + 5, 169, 169, -171, 169, 169, 169, 169, 169, 169, + 169, 169, 169, 169, 169, 169, 169, 169, 169, 219, + 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + 169, 171, 169, 169, 169, 169, 169, 169, 169, 169, + 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, + 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, + 169 }, { 5, -172, -172, -172, -172, -172, -172, -172, -172, -172, - -172, -172, -172, -172, 64, 64, 65, -172, -172, -172, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -172, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 210, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + -172, -172, -172, -172, 220, 220, 221, -172, -172, -172, + 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, + 220, -172, 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, -172, -172, -172, + + -172 }, { 5, -173, -173, -173, -173, -173, -173, -173, -173, -173, - -173, -173, -173, -173, 64, 64, 65, -173, -173, -173, - - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -173, 64, 64, 64, 64, 64, 64, 64, 64, - 211, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + -173, -173, -173, -173, 173, 173, 158, -173, -173, -173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, -173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, -173, 174, 175, + 176 }, { 5, -174, -174, -174, -174, -174, -174, -174, -174, -174, - -174, -174, -174, -174, 64, 64, 65, -174, -174, -174, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -174, 64, 64, 64, 64, 64, 64, 64, 64, - 212, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, + -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, + -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, + -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, + -174, -174, -174, -174, -174, -174, -174, 222, -174, -174, + -174 }, { 5, -175, -175, -175, -175, -175, -175, -175, -175, -175, - -175, -175, -175, -175, 64, 64, 65, -175, -175, -175, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -175, 64, 64, 64, 64, 213, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, + -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, + -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, + -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, + + -175, -175, -175, -175, -175, -175, -175, 223, -175, -175, + -175 }, { 5, -176, -176, -176, -176, -176, -176, -176, -176, -176, - -176, -176, -176, -176, 64, 64, 65, -176, -176, -176, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -176, 64, 64, 64, 64, 214, 64, 64, 64, - - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, + -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, + -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, + -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, + -176, -176, -176, -176, -176, -176, -176, 224, -176, -176, + -176 }, { 5, -177, -177, -177, -177, -177, -177, -177, -177, -177, - -177, -177, -177, -177, 64, 64, 65, -177, -177, -177, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -177, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 215, 64, 64, - 64, 64, 64, 64, 64 + + -177, -177, -177, -177, 173, 173, 158, -177, -177, -177, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, -177, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, -177, 174, 175, + 176 }, { 5, -178, -178, -178, -178, -178, -178, -178, -178, -178, - -178, -178, -178, -178, 64, 64, 65, -178, -178, -178, + -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, + -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, + -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -178, 64, 64, 216, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, + -178, -178, -178, -178, -178, -178, -178, 177, -178, -178, + -178 }, { 5, -179, -179, -179, -179, -179, -179, -179, -179, -179, - -179, -179, -179, -179, 64, 64, 65, -179, -179, -179, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -179, 64, 64, 64, 217, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, + -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, + -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, + -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, + -179, -179, -179, -179, -179, -179, -179, 225, -179, -179, + -179 }, { 5, -180, -180, -180, -180, -180, -180, -180, -180, -180, - -180, -180, -180, -180, 64, 64, 65, -180, -180, -180, - 64, 64, 64, 64, 64, 64, 64, 64, 218, 64, - 64, -180, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, + -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, + -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, + -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, + -180, -180, -180, -180, -180, -180, -180, 122, -180, -180, + -180 }, { 5, -181, -181, -181, -181, -181, -181, -181, -181, -181, - -181, -181, -181, -181, 64, 64, 65, -181, -181, -181, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -181, 64, 64, 64, 64, 219, 64, 64, 64, + -181, -181, -181, -181, 67, 67, 68, -181, -181, -181, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + 67, -181, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -181, 69, 70, + 71 }, { 5, -182, -182, -182, -182, -182, -182, -182, -182, -182, - -182, -182, -182, -182, 64, 64, 65, -182, -182, -182, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -182, 64, 64, 64, 64, 64, 64, 64, 64, - 220, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + -182, -182, -182, -182, 67, 67, 68, -182, -182, -182, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -182, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 226, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -182, 69, 70, + + 71 }, { 5, -183, -183, -183, -183, -183, -183, -183, -183, -183, - -183, -183, -183, -183, 64, 64, 65, -183, -183, -183, - - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -183, 221, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + -183, -183, -183, -183, 67, 67, 68, -183, -183, -183, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -183, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 227, 67, 67, 67, 67, 67, 67, -183, 69, 70, + 71 }, { 5, -184, -184, -184, -184, -184, -184, -184, -184, -184, - -184, -184, -184, -184, 64, 64, 65, -184, -184, -184, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -184, 64, 64, 64, 64, 64, 64, 64, 64, - 222, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + -184, -184, -184, -184, 67, 67, 68, -184, -184, -184, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -184, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 228, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -184, 69, 70, + 71 }, { 5, -185, -185, -185, -185, -185, -185, -185, -185, -185, - -185, -185, -185, -185, 64, 64, 65, -185, -185, -185, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -185, 64, 64, 64, 64, 223, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + -185, -185, -185, -185, 67, 67, 68, -185, -185, -185, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -185, 67, 67, 67, 67, 67, 229, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + + 67, 67, 67, 67, 67, 67, 67, -185, 69, 70, + 71 }, { 5, -186, -186, -186, -186, -186, -186, -186, -186, -186, - -186, -186, -186, -186, 64, 64, 65, -186, -186, -186, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 224, - 64, -186, 64, 64, 64, 64, 64, 64, 64, 64, - - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + -186, -186, -186, -186, 67, 67, 68, -186, -186, -186, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -186, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 230, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -186, 69, 70, + 71 }, { 5, -187, -187, -187, -187, -187, -187, -187, -187, -187, - -187, -187, -187, -187, 64, 64, 65, -187, -187, -187, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -187, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 225, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + + -187, -187, -187, -187, 67, 67, 68, -187, -187, -187, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -187, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 231, 67, 67, 67, 67, -187, 69, 70, + 71 }, { 5, -188, -188, -188, -188, -188, -188, -188, -188, -188, - -188, -188, -188, -188, 64, 64, 65, -188, -188, -188, + -188, -188, -188, -188, 67, 67, 68, -188, -188, -188, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -188, 67, 67, 67, 67, 67, 67, 67, 67, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -188, 226, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 232, 67, 67, 67, 67, 67, -188, 69, 70, + 71 }, { 5, -189, -189, -189, -189, -189, -189, -189, -189, -189, - -189, -189, -189, -189, 64, 64, 65, -189, -189, -189, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -189, 64, 64, 64, 64, 64, 64, 64, 64, - 227, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + -189, -189, -189, -189, 67, 67, 68, -189, -189, -189, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -189, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 233, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -189, 69, 70, + 71 }, { - 5, 142, 142, 142, 142, 228, 142, 142, 142, 142, - 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, - 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, - 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, - 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, - 142, 142, 142, 142, 142 + 5, -190, -190, -190, -190, -190, -190, -190, -190, -190, + -190, -190, -190, -190, 67, 67, 68, -190, -190, -190, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -190, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 234, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -190, 69, 70, + 71 }, { - 5, 142, 142, 142, 142, 143, 142, 142, 142, 142, - 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, - 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, - 142, 144, 142, 142, 142, 142, 142, 142, 142, 142, + 5, -191, -191, -191, -191, -191, -191, -191, -191, -191, + -191, -191, -191, -191, 67, 67, 68, -191, -191, -191, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, - 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, - 142, 142, 142, 142, 142 + 67, -191, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 235, + 67, 67, 67, 67, 67, 67, 67, -191, 69, 70, + 71 }, { - 5, 145, 145, 145, 145, 145, 145, 145, 229, 145, - 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, - 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, - 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, - 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, - 145, 145, 145, 145, 145 + 5, -192, -192, -192, -192, -192, -192, -192, -192, -192, + -192, -192, -192, -192, 67, 67, 68, -192, -192, -192, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -192, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -192, 69, 70, + + 71 }, { - 5, 145, 145, 145, 145, 145, 145, 145, 146, 145, - 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, - - 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, - 145, 147, 145, 145, 145, 145, 145, 145, 145, 145, - 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, - 145, 145, 145, 145, 145 + 5, -193, -193, -193, -193, -193, -193, -193, -193, -193, + -193, -193, -193, -193, 67, 67, 68, -193, -193, -193, + 67, 67, 236, 67, 67, 67, 67, 67, 67, 67, + 67, -193, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -193, 69, 70, + 71 }, { - 5, 151, 151, -194, 151, 151, 151, 151, 151, 151, - 151, 151, 151, 151, 151, 151, 151, 151, 151, 230, - 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, - 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, - 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, - 151, 151, 151, 151, 151 + 5, -194, -194, -194, -194, -194, -194, -194, -194, -194, + -194, -194, -194, -194, 67, 67, 68, -194, -194, -194, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -194, 67, 67, 67, 67, 67, 237, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -194, 69, 70, + 71 }, { - 5, 151, 151, -195, 151, 151, 151, 151, 151, 151, - 151, 151, 151, 151, 151, 151, 151, 151, 151, 231, - 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, - 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, - 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, - 151, 151, 151, 151, 151 + 5, -195, -195, -195, -195, -195, -195, -195, -195, -195, + -195, -195, -195, -195, 67, 67, 68, -195, -195, -195, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -195, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + + 67, 67, 67, 67, 67, 67, 67, -195, 69, 70, + 71 }, { 5, -196, -196, -196, -196, -196, -196, -196, -196, -196, - -196, -196, -196, -196, 196, 196, 197, -196, -196, -196, - 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, - 196, -196, 196, 196, 196, 196, 196, 196, 196, 196, - - 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, - 196, 196, 196, 196, 196 + -196, -196, -196, -196, 67, 67, 68, -196, -196, -196, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -196, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 238, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -196, 69, 70, + 71 }, { 5, -197, -197, -197, -197, -197, -197, -197, -197, -197, - -197, -197, -197, -197, -197, -197, 108, -197, -197, -197, - -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, - -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, - -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, - -197, -197, -197, -197, -197 + + -197, -197, -197, -197, 67, 67, 68, -197, -197, -197, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -197, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 239, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -197, 69, 70, + 71 }, { 5, -198, -198, -198, -198, -198, -198, -198, -198, -198, - -198, -198, -198, -198, 64, 64, 65, -198, -198, -198, + -198, -198, -198, -198, 67, 67, 68, -198, -198, -198, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -198, 67, 67, 67, 67, 67, 67, 67, 67, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -198, 64, 64, 64, 232, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + 67, 240, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -198, 69, 70, + 71 }, { 5, -199, -199, -199, -199, -199, -199, -199, -199, -199, - -199, -199, -199, -199, 64, 64, 65, -199, -199, -199, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -199, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + -199, -199, -199, -199, 67, 67, 68, -199, -199, -199, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -199, 67, 67, 67, 67, 67, 241, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -199, 69, 70, + 71 }, { 5, -200, -200, -200, -200, -200, -200, -200, -200, -200, - -200, -200, -200, -200, 64, 64, 65, -200, -200, -200, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -200, 64, 64, 64, 64, 64, 64, 233, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + -200, -200, -200, -200, 67, 67, 68, -200, -200, -200, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -200, 67, 67, 67, 67, 67, 242, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -200, 69, 70, + 71 }, { 5, -201, -201, -201, -201, -201, -201, -201, -201, -201, - -201, -201, -201, -201, 64, 64, 65, -201, -201, -201, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -201, 64, 64, 234, 64, 64, 64, 64, 64, + -201, -201, -201, -201, 67, 67, 68, -201, -201, -201, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + 67, -201, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 243, + 67, 67, 67, 67, 67, 67, 67, -201, 69, 70, + 71 }, { 5, -202, -202, -202, -202, -202, -202, -202, -202, -202, - -202, -202, -202, -202, 64, 64, 65, -202, -202, -202, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -202, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 235, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + -202, -202, -202, -202, 67, 67, 68, -202, -202, -202, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -202, 67, 67, 67, 244, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -202, 69, 70, + + 71 }, { 5, -203, -203, -203, -203, -203, -203, -203, -203, -203, - -203, -203, -203, -203, 64, 64, 65, -203, -203, -203, - - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -203, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 236, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + -203, -203, -203, -203, 67, 67, 68, -203, -203, -203, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -203, 67, 67, 67, 67, 245, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -203, 69, 70, + 71 }, { 5, -204, -204, -204, -204, -204, -204, -204, -204, -204, - -204, -204, -204, -204, 64, 64, 65, -204, -204, -204, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -204, 64, 64, 64, 64, 237, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + -204, -204, -204, -204, 67, 67, 68, -204, -204, -204, + 67, 67, 67, 67, 67, 67, 67, 67, 246, 67, + 67, -204, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -204, 69, 70, + 71 }, { 5, -205, -205, -205, -205, -205, -205, -205, -205, -205, - -205, -205, -205, -205, 64, 64, 65, -205, -205, -205, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -205, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 238, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + -205, -205, -205, -205, 67, 67, 68, -205, -205, -205, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -205, 67, 67, 67, 67, 67, 247, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + + 67, 67, 67, 67, 67, 67, 67, -205, 69, 70, + 71 }, { 5, -206, -206, -206, -206, -206, -206, -206, -206, -206, - -206, -206, -206, -206, 64, 64, 65, -206, -206, -206, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -206, 239, 64, 64, 64, 64, 64, 64, 64, - - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + -206, -206, -206, -206, 67, 67, 68, -206, -206, -206, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -206, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 248, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -206, 69, 70, + 71 }, { 5, -207, -207, -207, -207, -207, -207, -207, -207, -207, - -207, -207, -207, -207, 64, 64, 65, -207, -207, -207, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -207, 64, 64, 64, 64, 64, 64, 64, 64, - 240, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + + -207, -207, -207, -207, 67, 67, 68, -207, -207, -207, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -207, 67, 249, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -207, 69, 70, + 71 }, { 5, -208, -208, -208, -208, -208, -208, -208, -208, -208, - -208, -208, -208, -208, 64, 64, 65, -208, -208, -208, + -208, -208, -208, -208, 67, 67, 68, -208, -208, -208, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -208, 67, 67, 67, 67, 67, 67, 67, 67, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -208, 64, 64, 64, 64, 64, 64, 64, 241, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + 67, 250, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -208, 69, 70, + 71 }, { 5, -209, -209, -209, -209, -209, -209, -209, -209, -209, - -209, -209, -209, -209, 64, 64, 65, -209, -209, -209, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -209, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 242, - 64, 64, 64, 64, 64 + -209, -209, -209, -209, 67, 67, 68, -209, -209, -209, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -209, 67, 67, 67, 67, 67, 251, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -209, 69, 70, + 71 }, { 5, -210, -210, -210, -210, -210, -210, -210, -210, -210, - -210, -210, -210, -210, 64, 64, 65, -210, -210, -210, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -210, 243, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + -210, -210, -210, -210, 67, 67, 68, -210, -210, -210, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 252, + 67, -210, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -210, 69, 70, + 71 }, { 5, -211, -211, -211, -211, -211, -211, -211, -211, -211, - -211, -211, -211, -211, 64, 64, 65, -211, -211, -211, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -211, 64, 64, 64, 64, 64, 64, 64, 64, + -211, -211, -211, -211, 67, 67, 68, -211, -211, -211, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, - 64, 64, 64, 64, 64, 64, 64, 64, 244, 64, - 64, 64, 64, 64, 64 + 67, -211, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 253, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -211, 69, 70, + 71 }, { 5, -212, -212, -212, -212, -212, -212, -212, -212, -212, - -212, -212, -212, -212, 64, 64, 65, -212, -212, -212, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -212, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 245, 64, 64 + -212, -212, -212, -212, 67, 67, 68, -212, -212, -212, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -212, 67, 254, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -212, 69, 70, + + 71 }, { 5, -213, -213, -213, -213, -213, -213, -213, -213, -213, - -213, -213, -213, -213, 64, 64, 65, -213, -213, -213, - - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -213, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 246, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + -213, -213, -213, -213, 67, 67, 68, -213, -213, -213, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -213, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 255, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -213, 69, 70, + 71 }, { - 5, -214, -214, -214, -214, -214, -214, -214, -214, -214, - -214, -214, -214, -214, 64, 64, 65, -214, -214, -214, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -214, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 247, 64, 64, - 64, 64, 64, 64, 64 + 5, 160, 160, 160, 160, 256, 160, 160, 160, 160, + 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, + 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, + 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, + 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, + 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, + 160 }, { - 5, -215, -215, -215, -215, -215, -215, -215, -215, -215, - -215, -215, -215, -215, 64, 64, 65, -215, -215, -215, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -215, 64, 64, 64, 64, 248, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + 5, 160, 160, 160, 160, 161, 160, 160, 160, 160, + 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, + 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, + 160, 162, 160, 160, 160, 160, 160, 160, 160, 160, + 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, + + 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, + 160 }, { - 5, -216, -216, -216, -216, -216, -216, -216, -216, -216, - -216, -216, -216, -216, 64, 64, 65, -216, -216, -216, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -216, 249, 64, 64, 64, 64, 64, 64, 64, - - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + 5, 163, 163, 163, 163, 163, 163, 163, 257, 163, + 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, + 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, + 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, + 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, + 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, + 163 }, { - 5, -217, -217, -217, -217, -217, -217, -217, -217, -217, - -217, -217, -217, -217, 64, 64, 65, -217, -217, -217, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -217, 64, 64, 64, 64, 250, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + 5, 163, 163, 163, 163, 163, 163, 163, 164, 163, + + 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, + 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, + 163, 165, 163, 163, 163, 163, 163, 163, 163, 163, + 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, + 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, + 163 }, { - 5, -218, -218, -218, -218, -218, -218, -218, -218, -218, - -218, -218, -218, -218, 64, 64, 65, -218, -218, -218, + 5, 169, 169, -218, 169, 169, 169, 169, 169, 169, + 169, 169, 169, 169, 169, 169, 169, 169, 169, 258, + 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, + 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -218, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 251, 64, 64, - 64, 64, 64, 64, 64 + 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, + 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, + 169 }, { - 5, -219, -219, -219, -219, -219, -219, -219, -219, -219, - -219, -219, -219, -219, 64, 64, 65, -219, -219, -219, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -219, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + 5, 169, 169, -219, 169, 169, 169, 169, 169, 169, + 169, 169, 169, 169, 169, 169, 169, 169, 169, 259, + 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, + 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, + 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, + 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, + 169 }, { 5, -220, -220, -220, -220, -220, -220, -220, -220, -220, - -220, -220, -220, -220, 64, 64, 65, -220, -220, -220, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -220, 252, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + -220, -220, -220, -220, 220, 220, 221, -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, 220, + 220, 220, 220, 220, 220, 220, 220, -220, -220, -220, + -220 }, { 5, -221, -221, -221, -221, -221, -221, -221, -221, -221, - -221, -221, -221, -221, 64, 64, 65, -221, -221, -221, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -221, 64, 64, 64, 64, 64, 64, 64, 64, + -221, -221, -221, -221, -221, -221, 117, -221, -221, -221, + -221, -221, -221, -221, -221, -221, -221, -221, -221, -221, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 253, 64 + -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 }, { 5, -222, -222, -222, -222, -222, -222, -222, -222, -222, - -222, -222, -222, -222, 64, 64, 65, -222, -222, -222, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -222, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 254, 64, 64 + -222, -222, -222, -222, 173, 173, 158, -222, -222, -222, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, -222, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, -222, 174, 175, + + 176 }, { 5, -223, -223, -223, -223, -223, -223, -223, -223, -223, - -223, -223, -223, -223, 64, 64, 65, -223, -223, -223, - - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -223, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 255, - 64, 64, 64, 64, 64 + -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, + -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, + -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, + -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, + -223, -223, -223, -223, -223, -223, -223, 222, -223, -223, + -223 }, { 5, -224, -224, -224, -224, -224, -224, -224, -224, -224, - -224, -224, -224, -224, 64, 64, 65, -224, -224, -224, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -224, 256, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + -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, -224, -224, -224, -224, -224, -224, -224, -224, + -224, -224, -224, -224, -224, -224, -224, 260, -224, -224, + -224 }, { 5, -225, -225, -225, -225, -225, -225, -225, -225, -225, - -225, -225, -225, -225, 64, 64, 65, -225, -225, -225, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -225, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 257, 64, 64, - 64, 64, 64, 64, 64 + -225, -225, -225, -225, -225, -225, -225, -225, -225, -225, + -225, -225, -225, -225, -225, -225, -225, -225, -225, -225, + -225, -225, -225, -225, -225, -225, -225, -225, -225, -225, + -225, -225, -225, -225, -225, -225, -225, -225, -225, -225, + + -225, -225, -225, -225, -225, -225, -225, 177, -225, -225, + -225 }, { 5, -226, -226, -226, -226, -226, -226, -226, -226, -226, - -226, -226, -226, -226, 64, 64, 65, -226, -226, -226, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -226, 64, 64, 64, 64, 64, 64, 64, 64, - - 64, 64, 64, 64, 258, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + -226, -226, -226, -226, 67, 67, 68, -226, -226, -226, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -226, 67, 67, 67, 67, 261, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -226, 69, 70, + 71 }, { 5, -227, -227, -227, -227, -227, -227, -227, -227, -227, - -227, -227, -227, -227, 64, 64, 65, -227, -227, -227, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -227, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 259, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + + -227, -227, -227, -227, 67, 67, 68, -227, -227, -227, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -227, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -227, 69, 70, + 71 }, { 5, -228, -228, -228, -228, -228, -228, -228, -228, -228, - -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, + -228, -228, -228, -228, 67, 67, 68, -228, -228, -228, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -228, 67, 67, 67, 67, 67, 67, 67, 262, - -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, -228, -228, -228 + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -228, 69, 70, + 71 }, { 5, -229, -229, -229, -229, -229, -229, -229, -229, -229, - -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, - -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, - -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, - -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, - -229, -229, -229, -229, -229 + -229, -229, -229, -229, 67, 67, 68, -229, -229, -229, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -229, 67, 67, 67, 263, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -229, 69, 70, + 71 }, { 5, -230, -230, -230, -230, -230, -230, -230, -230, -230, - -230, -230, -230, -230, -230, -230, -230, -230, -230, 260, - -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, - -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, - -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, - -230, -230, -230, -230, -230 + -230, -230, -230, -230, 67, 67, 68, -230, -230, -230, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -230, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 264, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -230, 69, 70, + 71 }, { - 5, 151, 151, -231, 151, 151, 151, 151, 151, 151, - 151, 151, 151, 151, 151, 151, 151, 151, 151, 261, - 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, - 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, + 5, -231, -231, -231, -231, -231, -231, -231, -231, -231, + -231, -231, -231, -231, 67, 67, 68, -231, -231, -231, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, - 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, - 151, 151, 151, 151, 151 + 67, -231, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 265, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -231, 69, 70, + 71 }, { 5, -232, -232, -232, -232, -232, -232, -232, -232, -232, - -232, -232, -232, -232, 64, 64, 65, -232, -232, -232, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -232, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + -232, -232, -232, -232, 67, 67, 68, -232, -232, -232, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -232, 67, 67, 67, 67, 67, 266, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -232, 69, 70, + + 71 }, { 5, -233, -233, -233, -233, -233, -233, -233, -233, -233, - -233, -233, -233, -233, 64, 64, 65, -233, -233, -233, - - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -233, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + -233, -233, -233, -233, 67, 67, 68, -233, -233, -233, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -233, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 267, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -233, 69, 70, + 71 }, { 5, -234, -234, -234, -234, -234, -234, -234, -234, -234, - -234, -234, -234, -234, 64, 64, 65, -234, -234, -234, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -234, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 262, - 64, 64, 64, 64, 64 + -234, -234, -234, -234, 67, 67, 68, -234, -234, -234, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -234, 67, 268, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -234, 69, 70, + 71 }, { 5, -235, -235, -235, -235, -235, -235, -235, -235, -235, - -235, -235, -235, -235, 64, 64, 65, -235, -235, -235, - 64, 64, 64, 263, 64, 64, 64, 64, 64, 64, - 64, -235, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + -235, -235, -235, -235, 67, 67, 68, -235, -235, -235, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -235, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 269, 67, 67, 67, 67, 67, 67, 67, 67, + + 67, 67, 67, 67, 67, 67, 67, -235, 69, 70, + 71 }, { 5, -236, -236, -236, -236, -236, -236, -236, -236, -236, - -236, -236, -236, -236, 64, 64, 65, -236, -236, -236, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -236, 64, 64, 64, 64, 64, 64, 64, 64, - - 64, 64, 64, 64, 64, 64, 64, 64, 64, 264, - 64, 64, 64, 64, 64 + -236, -236, -236, -236, 67, 67, 68, -236, -236, -236, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -236, 67, 67, 67, 67, 67, 67, 67, 67, + 270, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -236, 69, 70, + 71 }, { 5, -237, -237, -237, -237, -237, -237, -237, -237, -237, - -237, -237, -237, -237, 64, 64, 65, -237, -237, -237, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -237, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + + -237, -237, -237, -237, 67, 67, 68, -237, -237, -237, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -237, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 271, 67, 67, 67, 67, 67, -237, 69, 70, + 71 }, { 5, -238, -238, -238, -238, -238, -238, -238, -238, -238, - -238, -238, -238, -238, 64, 64, 65, -238, -238, -238, + -238, -238, -238, -238, 67, 67, 68, -238, -238, -238, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -238, 67, 272, 67, 67, 67, 67, 67, 67, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -238, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 265, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -238, 69, 70, + 71 }, { 5, -239, -239, -239, -239, -239, -239, -239, -239, -239, - -239, -239, -239, -239, 64, 64, 65, -239, -239, -239, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -239, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 266, 64 + -239, -239, -239, -239, 67, 67, 68, -239, -239, -239, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -239, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 273, 67, 67, 67, 67, 67, 67, -239, 69, 70, + 71 }, { 5, -240, -240, -240, -240, -240, -240, -240, -240, -240, - -240, -240, -240, -240, 64, 64, 65, -240, -240, -240, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -240, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 267, - 64, 64, 64, 64, 64 + -240, -240, -240, -240, 67, 67, 68, -240, -240, -240, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -240, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 274, 67, 67, -240, 69, 70, + 71 }, { 5, -241, -241, -241, -241, -241, -241, -241, -241, -241, - -241, -241, -241, -241, 64, 64, 65, -241, -241, -241, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -241, 64, 64, 64, 64, 64, 64, 64, 64, + -241, -241, -241, -241, 67, 67, 68, -241, -241, -241, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, - 268, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + 67, -241, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 275, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -241, 69, 70, + 71 }, { 5, -242, -242, -242, -242, -242, -242, -242, -242, -242, - -242, -242, -242, -242, 64, 64, 65, -242, -242, -242, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -242, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + -242, -242, -242, -242, 67, 67, 68, -242, -242, -242, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -242, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 276, + 67, 67, 67, 67, 67, 67, 67, -242, 69, 70, + + 71 }, { 5, -243, -243, -243, -243, -243, -243, -243, -243, -243, - -243, -243, -243, -243, 64, 64, 65, -243, -243, -243, - - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -243, 64, 64, 64, 269, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + -243, -243, -243, -243, 67, 67, 68, -243, -243, -243, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -243, 67, 67, 67, 67, 67, 277, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -243, 69, 70, + 71 }, { 5, -244, -244, -244, -244, -244, -244, -244, -244, -244, - -244, -244, -244, -244, 64, 64, 65, -244, -244, -244, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -244, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 270, 64, - 64, 64, 64, 64, 64 + -244, -244, -244, -244, 67, 67, 68, -244, -244, -244, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -244, 67, 278, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -244, 69, 70, + 71 }, { 5, -245, -245, -245, -245, -245, -245, -245, -245, -245, - -245, -245, -245, -245, 64, 64, 65, -245, -245, -245, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 271, - 64, -245, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + -245, -245, -245, -245, 67, 67, 68, -245, -245, -245, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -245, 67, 67, 67, 67, 67, 279, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + + 67, 67, 67, 67, 67, 67, 67, -245, 69, 70, + 71 }, { 5, -246, -246, -246, -246, -246, -246, -246, -246, -246, - -246, -246, -246, -246, 64, 64, 65, -246, -246, -246, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -246, 64, 64, 64, 272, 64, 64, 64, 64, - - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + -246, -246, -246, -246, 67, 67, 68, -246, -246, -246, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -246, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 280, + 67, 67, 67, 67, 67, 67, 67, -246, 69, 70, + 71 }, { 5, -247, -247, -247, -247, -247, -247, -247, -247, -247, - -247, -247, -247, -247, 64, 64, 65, -247, -247, -247, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -247, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 273, - 64, 64, 64, 64, 64 + + -247, -247, -247, -247, 67, 67, 68, -247, -247, -247, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -247, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -247, 69, 70, + 71 }, { 5, -248, -248, -248, -248, -248, -248, -248, -248, -248, - -248, -248, -248, -248, 64, 64, 65, -248, -248, -248, + -248, -248, -248, -248, 67, 67, 68, -248, -248, -248, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -248, 67, 281, 67, 67, 67, 67, 67, 67, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -248, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 274, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -248, 69, 70, + 71 }, { 5, -249, -249, -249, -249, -249, -249, -249, -249, -249, - -249, -249, -249, -249, 64, 64, 65, -249, -249, -249, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -249, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 275, - 64, 64, 64, 64, 64 + -249, -249, -249, -249, 67, 67, 68, -249, -249, -249, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -249, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 282, 67, -249, 69, 70, + 71 }, { 5, -250, -250, -250, -250, -250, -250, -250, -250, -250, - -250, -250, -250, -250, 64, 64, 65, -250, -250, -250, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -250, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 276, 64, 64, - 64, 64, 64, 64, 64 + -250, -250, -250, -250, 67, 67, 68, -250, -250, -250, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -250, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 283, 67, 67, -250, 69, 70, + 71 }, { 5, -251, -251, -251, -251, -251, -251, -251, -251, -251, - -251, -251, -251, -251, 64, 64, 65, -251, -251, -251, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -251, 64, 64, 64, 64, 64, 64, 64, 64, + -251, -251, -251, -251, 67, 67, 68, -251, -251, -251, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, - 277, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + 67, -251, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 284, 67, 67, 67, 67, 67, -251, 69, 70, + 71 }, { 5, -252, -252, -252, -252, -252, -252, -252, -252, -252, - -252, -252, -252, -252, 64, 64, 65, -252, -252, -252, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -252, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 278, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + -252, -252, -252, -252, 67, 67, 68, -252, -252, -252, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -252, 67, 285, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -252, 69, 70, + + 71 }, { 5, -253, -253, -253, -253, -253, -253, -253, -253, -253, - -253, -253, -253, -253, 64, 64, 65, -253, -253, -253, - - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -253, 64, 64, 64, 64, 279, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + -253, -253, -253, -253, 67, 67, 68, -253, -253, -253, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -253, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 286, + 67, 67, 67, 67, 67, 67, 67, -253, 69, 70, + 71 }, { 5, -254, -254, -254, -254, -254, -254, -254, -254, -254, - -254, -254, -254, -254, 64, 64, 65, -254, -254, -254, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 280, - 64, -254, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + -254, -254, -254, -254, 67, 67, 68, -254, -254, -254, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -254, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 287, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -254, 69, 70, + 71 }, { 5, -255, -255, -255, -255, -255, -255, -255, -255, -255, - -255, -255, -255, -255, 64, 64, 65, -255, -255, -255, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -255, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 281, 64, 64, - 64, 64, 64, 64, 64 + -255, -255, -255, -255, 67, 67, 68, -255, -255, -255, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -255, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 288, 67, 67, 67, + + 67, 67, 67, 67, 67, 67, 67, -255, 69, 70, + 71 }, { 5, -256, -256, -256, -256, -256, -256, -256, -256, -256, - -256, -256, -256, -256, 64, 64, 65, -256, -256, -256, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -256, 64, 64, 64, 64, 64, 64, 64, 64, - - 64, 64, 64, 282, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + -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 }, { 5, -257, -257, -257, -257, -257, -257, -257, -257, -257, - -257, -257, -257, -257, 64, 64, 65, -257, -257, -257, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -257, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 283, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + + -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, + -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, + -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, + -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, + -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, + -257 }, { 5, -258, -258, -258, -258, -258, -258, -258, -258, -258, - -258, -258, -258, -258, 64, 64, 65, -258, -258, -258, + -258, -258, -258, -258, -258, -258, -258, -258, -258, 289, + -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, + -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -258, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 284, - 64, 64, 64, 64, 64 + -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, + -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, + -258 }, { - 5, -259, -259, -259, -259, -259, -259, -259, -259, -259, - -259, -259, -259, -259, 64, 64, 65, -259, -259, -259, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -259, 64, 64, 64, 64, 64, 64, 285, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + 5, 169, 169, -259, 169, 169, 169, 169, 169, 169, + 169, 169, 169, 169, 169, 169, 169, 169, 169, 290, + 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, + 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, + 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, + 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, + 169 }, { 5, -260, -260, -260, -260, -260, -260, -260, -260, -260, - -260, -260, -260, -260, -260, -260, -260, -260, -260, 286, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, - -260, -260, -260, -260, -260 + -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, + -260, -260, -260, -260, -260, -260, -260, 222, -260, -260, + -260 }, { - 5, 151, 151, -261, 151, 151, 151, 151, 151, 151, - 151, 151, 151, 151, 151, 151, 151, 151, 151, 287, - 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, - 151, 153, 151, 151, 151, 151, 151, 151, 151, 151, + 5, -261, -261, -261, -261, -261, -261, -261, -261, -261, + -261, -261, -261, -261, 67, 67, 68, -261, -261, -261, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, - 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, - 151, 151, 151, 151, 151 + 67, -261, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -261, 69, 70, + 71 }, { 5, -262, -262, -262, -262, -262, -262, -262, -262, -262, - -262, -262, -262, -262, 64, 64, 65, -262, -262, -262, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -262, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + -262, -262, -262, -262, 67, 67, 68, -262, -262, -262, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -262, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -262, 69, 70, + + 71 }, { 5, -263, -263, -263, -263, -263, -263, -263, -263, -263, - -263, -263, -263, -263, 64, 64, 65, -263, -263, -263, - - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -263, 288, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + -263, -263, -263, -263, 67, 67, 68, -263, -263, -263, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -263, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 291, 67, 67, 67, 67, 67, -263, 69, 70, + 71 }, { 5, -264, -264, -264, -264, -264, -264, -264, -264, -264, - -264, -264, -264, -264, 64, 64, 65, -264, -264, -264, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -264, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + -264, -264, -264, -264, 67, 67, 68, -264, -264, -264, + 67, 67, 67, 292, 67, 67, 67, 67, 67, 67, + 67, -264, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -264, 69, 70, + 71 }, { 5, -265, -265, -265, -265, -265, -265, -265, -265, -265, - -265, -265, -265, -265, 64, 64, 65, -265, -265, -265, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -265, 289, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + -265, -265, -265, -265, 67, 67, 68, -265, -265, -265, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -265, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + + 67, 293, 67, 67, 67, 67, 67, -265, 69, 70, + 71 }, { 5, -266, -266, -266, -266, -266, -266, -266, -266, -266, - -266, -266, -266, -266, 64, 64, 65, -266, -266, -266, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 290, -266, 64, 64, 64, 64, 64, 64, 64, 64, - - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + -266, -266, -266, -266, 67, 67, 68, -266, -266, -266, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -266, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -266, 69, 70, + 71 }, { 5, -267, -267, -267, -267, -267, -267, -267, -267, -267, - -267, -267, -267, -267, 64, 64, 65, -267, -267, -267, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -267, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 291, 64, - 64, 64, 64, 64, 64 + + -267, -267, -267, -267, 67, 67, 68, -267, -267, -267, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -267, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 294, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -267, 69, 70, + 71 }, { 5, -268, -268, -268, -268, -268, -268, -268, -268, -268, - -268, -268, -268, -268, 64, 64, 65, -268, -268, -268, + -268, -268, -268, -268, 67, 67, 68, -268, -268, -268, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -268, 67, 67, 67, 67, 67, 67, 67, 67, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -268, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 292, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 295, 67, -268, 69, 70, + 71 }, { 5, -269, -269, -269, -269, -269, -269, -269, -269, -269, - -269, -269, -269, -269, 64, 64, 65, -269, -269, -269, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -269, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + -269, -269, -269, -269, 67, 67, 68, -269, -269, -269, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -269, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 296, 67, 67, 67, 67, 67, -269, 69, 70, + 71 }, { 5, -270, -270, -270, -270, -270, -270, -270, -270, -270, - -270, -270, -270, -270, 64, 64, 65, -270, -270, -270, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -270, 64, 64, 64, 64, 64, 64, 64, 64, - 293, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + -270, -270, -270, -270, 67, 67, 68, -270, -270, -270, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -270, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 297, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -270, 69, 70, + 71 }, { 5, -271, -271, -271, -271, -271, -271, -271, -271, -271, - -271, -271, -271, -271, 64, 64, 65, -271, -271, -271, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -271, 64, 64, 64, 64, 64, 64, 64, 64, + -271, -271, -271, -271, 67, 67, 68, -271, -271, -271, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 294, 64, 64, 64, 64 + 67, -271, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -271, 69, 70, + 71 }, { 5, -272, -272, -272, -272, -272, -272, -272, -272, -272, - -272, -272, -272, -272, 64, 64, 65, -272, -272, -272, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -272, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + -272, -272, -272, -272, 67, 67, 68, -272, -272, -272, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -272, 67, 67, 67, 67, 298, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -272, 69, 70, + + 71 }, { 5, -273, -273, -273, -273, -273, -273, -273, -273, -273, - -273, -273, -273, -273, 64, 64, 65, -273, -273, -273, - - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -273, 64, 64, 64, 64, 64, 64, 64, 64, - 295, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + -273, -273, -273, -273, 67, 67, 68, -273, -273, -273, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -273, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 299, 67, 67, 67, 67, 67, 67, -273, 69, 70, + 71 }, { 5, -274, -274, -274, -274, -274, -274, -274, -274, -274, - -274, -274, -274, -274, 64, 64, 65, -274, -274, -274, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -274, 64, 64, 296, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + -274, -274, -274, -274, 67, 67, 68, -274, -274, -274, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 300, + 67, -274, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -274, 69, 70, + 71 }, { 5, -275, -275, -275, -275, -275, -275, -275, -275, -275, - -275, -275, -275, -275, 64, 64, 65, -275, -275, -275, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -275, 64, 64, 64, 64, 297, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + -275, -275, -275, -275, 67, 67, 68, -275, -275, -275, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -275, 67, 67, 67, 67, 301, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + + 67, 67, 67, 67, 67, 67, 67, -275, 69, 70, + 71 }, { 5, -276, -276, -276, -276, -276, -276, -276, -276, -276, - -276, -276, -276, -276, 64, 64, 65, -276, -276, -276, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -276, 64, 64, 64, 64, 64, 64, 64, 64, - - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + -276, -276, -276, -276, 67, 67, 68, -276, -276, -276, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -276, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 302, 67, 67, 67, 67, 67, -276, 69, 70, + 71 }, { 5, -277, -277, -277, -277, -277, -277, -277, -277, -277, - -277, -277, -277, -277, 64, 64, 65, -277, -277, -277, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -277, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 298, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + + -277, -277, -277, -277, 67, 67, 68, -277, -277, -277, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -277, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 303, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -277, 69, 70, + 71 }, { 5, -278, -278, -278, -278, -278, -278, -278, -278, -278, - -278, -278, -278, -278, 64, 64, 65, -278, -278, -278, + -278, -278, -278, -278, 67, 67, 68, -278, -278, -278, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -278, 67, 67, 67, 67, 67, 67, 67, 67, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -278, 64, 64, 64, 64, 64, 64, 64, 64, - 299, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 304, 67, 67, 67, 67, 67, -278, 69, 70, + 71 }, { 5, -279, -279, -279, -279, -279, -279, -279, -279, -279, - -279, -279, -279, -279, 64, 64, 65, -279, -279, -279, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -279, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 300, 64, 64, - 64, 64, 64, 64, 64 + -279, -279, -279, -279, 67, 67, 68, -279, -279, -279, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -279, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 305, + 67, 67, 67, 67, 67, 67, 67, -279, 69, 70, + 71 }, { 5, -280, -280, -280, -280, -280, -280, -280, -280, -280, - -280, -280, -280, -280, 64, 64, 65, -280, -280, -280, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -280, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 301, 64, 64, 64, 64 + -280, -280, -280, -280, 67, 67, 68, -280, -280, -280, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -280, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 306, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -280, 69, 70, + 71 }, { 5, -281, -281, -281, -281, -281, -281, -281, -281, -281, - -281, -281, -281, -281, 64, 64, 65, -281, -281, -281, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -281, 64, 64, 64, 64, 64, 64, 64, 64, + -281, -281, -281, -281, 67, 67, 68, -281, -281, -281, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 302, 64 + 67, -281, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 307, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -281, 69, 70, + 71 }, { 5, -282, -282, -282, -282, -282, -282, -282, -282, -282, - -282, -282, -282, -282, 64, 64, 65, -282, -282, -282, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -282, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 303, 64, 64, 64, - 64, 64, 64, 64, 64 + -282, -282, -282, -282, 67, 67, 68, -282, -282, -282, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -282, 67, 67, 67, 67, 67, 308, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -282, 69, 70, + + 71 }, { 5, -283, -283, -283, -283, -283, -283, -283, -283, -283, - -283, -283, -283, -283, 64, 64, 65, -283, -283, -283, - - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -283, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + -283, -283, -283, -283, 67, 67, 68, -283, -283, -283, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 309, + 67, -283, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -283, 69, 70, + 71 }, { 5, -284, -284, -284, -284, -284, -284, -284, -284, -284, - -284, -284, -284, -284, 64, 64, 65, -284, -284, -284, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 304, - 64, -284, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 305, 64, - 64, 64, 64, 64, 64 + -284, -284, -284, -284, 67, 67, 68, -284, -284, -284, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -284, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 310, + 67, 67, 67, 67, 67, 67, 67, -284, 69, 70, + 71 }, { 5, -285, -285, -285, -285, -285, -285, -285, -285, -285, - -285, -285, -285, -285, 64, 64, 65, -285, -285, -285, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -285, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + -285, -285, -285, -285, 67, 67, 68, -285, -285, -285, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -285, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 311, 67, 67, 67, 67, + + 67, 67, 67, 67, 67, 67, 67, -285, 69, 70, + 71 }, { 5, -286, -286, -286, -286, -286, -286, -286, -286, -286, - -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, - -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, - -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, - - -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, - -286, -286, -286, -286, -286 + -286, -286, -286, -286, 67, 67, 68, -286, -286, -286, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -286, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 312, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -286, 69, 70, + 71 }, { - 5, 151, 151, -287, 151, 151, 151, 151, 151, 151, - 151, 151, 151, 151, 151, 151, 151, 151, 151, 306, - 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, - 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, - 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, - 151, 151, 151, 151, 151 + 5, -287, -287, -287, -287, -287, -287, -287, -287, -287, + + -287, -287, -287, -287, 67, 67, 68, -287, -287, -287, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -287, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 313, 67, 67, 67, 67, 67, -287, 69, 70, + 71 }, { 5, -288, -288, -288, -288, -288, -288, -288, -288, -288, - -288, -288, -288, -288, 64, 64, 65, -288, -288, -288, + -288, -288, -288, -288, 67, 67, 68, -288, -288, -288, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -288, 67, 67, 67, 67, 67, 67, 67, 314, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -288, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 307, - 64, 64, 64, 64, 64 + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -288, 69, 70, + 71 }, { 5, -289, -289, -289, -289, -289, -289, -289, -289, -289, - -289, -289, -289, -289, 64, 64, 65, -289, -289, -289, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -289, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 308, 64, 64, - 64, 64, 64, 64, 64 + -289, -289, -289, -289, -289, -289, -289, -289, -289, 315, + -289, -289, -289, -289, -289, -289, -289, -289, -289, -289, + -289, -289, -289, -289, -289, -289, -289, -289, -289, -289, + -289, -289, -289, -289, -289, -289, -289, -289, -289, -289, + -289, -289, -289, -289, -289, -289, -289, -289, -289, -289, + -289 }, { - 5, -290, -290, -290, -290, -290, -290, -290, -290, -290, - -290, -290, -290, -290, 64, 64, 65, -290, -290, -290, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -290, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 309, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + 5, 169, 169, -290, 169, 169, 169, 169, 169, 169, + 169, 169, 169, 169, 169, 169, 169, 169, 169, 316, + 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, + 169, 171, 169, 169, 169, 169, 169, 169, 169, 169, + 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, + 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, + 169 }, { 5, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, 64, 64, 65, -291, -291, -291, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -291, 64, 64, 64, 64, 64, 64, 64, 64, + -291, -291, -291, -291, 67, 67, 68, -291, -291, -291, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + 67, -291, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -291, 69, 70, + 71 }, { 5, -292, -292, -292, -292, -292, -292, -292, -292, -292, - -292, -292, -292, -292, 64, 64, 65, -292, -292, -292, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -292, 64, 64, 64, 310, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + -292, -292, -292, -292, 67, 67, 68, -292, -292, -292, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -292, 67, 317, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -292, 69, 70, + + 71 }, { 5, -293, -293, -293, -293, -293, -293, -293, -293, -293, - -293, -293, -293, -293, 64, 64, 65, -293, -293, -293, - - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -293, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 311, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + -293, -293, -293, -293, 67, 67, 68, -293, -293, -293, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -293, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -293, 69, 70, + 71 }, { 5, -294, -294, -294, -294, -294, -294, -294, -294, -294, - -294, -294, -294, -294, 64, 64, 65, -294, -294, -294, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -294, 64, 312, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + -294, -294, -294, -294, 67, 67, 68, -294, -294, -294, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -294, 67, 318, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -294, 69, 70, + 71 }, { 5, -295, -295, -295, -295, -295, -295, -295, -295, -295, - -295, -295, -295, -295, 64, 64, 65, -295, -295, -295, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -295, 64, 64, 64, 64, 313, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + -295, -295, -295, -295, 67, 67, 68, -295, -295, -295, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 319, -295, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + + 67, 67, 67, 67, 67, 67, 67, -295, 69, 70, + 71 }, { 5, -296, -296, -296, -296, -296, -296, -296, -296, -296, - -296, -296, -296, -296, 64, 64, 65, -296, -296, -296, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -296, 64, 64, 64, 64, 314, 64, 64, 64, - - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + -296, -296, -296, -296, 67, 67, 68, -296, -296, -296, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -296, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 320, 67, 67, 67, 67, 67, 67, -296, 69, 70, + 71 }, { 5, -297, -297, -297, -297, -297, -297, -297, -297, -297, - -297, -297, -297, -297, 64, 64, 65, -297, -297, -297, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -297, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 315, 64, - 64, 64, 64, 64, 64 + + -297, -297, -297, -297, 67, 67, 68, -297, -297, -297, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -297, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 321, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -297, 69, 70, + 71 }, { 5, -298, -298, -298, -298, -298, -298, -298, -298, -298, - -298, -298, -298, -298, 64, 64, 65, -298, -298, -298, + -298, -298, -298, -298, 67, 67, 68, -298, -298, -298, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -298, 67, 67, 67, 67, 67, 67, 67, 67, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -298, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 316, 64, - 64, 64, 64, 64, 64 + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -298, 69, 70, + 71 }, { 5, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, 64, 64, 65, -299, -299, -299, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -299, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 317 + -299, -299, -299, -299, 67, 67, 68, -299, -299, -299, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -299, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 322, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -299, 69, 70, + 71 }, { 5, -300, -300, -300, -300, -300, -300, -300, -300, -300, - -300, -300, -300, -300, 64, 64, 65, -300, -300, -300, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -300, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 318, 64, - 64, 64, 64, 64, 64 + -300, -300, -300, -300, 67, 67, 68, -300, -300, -300, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -300, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 323, 67, 67, 67, 67, -300, 69, 70, + 71 }, { 5, -301, -301, -301, -301, -301, -301, -301, -301, -301, - -301, -301, -301, -301, 64, 64, 65, -301, -301, -301, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -301, 64, 319, 64, 64, 64, 64, 64, 64, + -301, -301, -301, -301, 67, 67, 68, -301, -301, -301, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + 67, -301, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -301, 69, 70, + 71 }, { 5, -302, -302, -302, -302, -302, -302, -302, -302, -302, - -302, -302, -302, -302, 64, 64, 65, -302, -302, -302, - 320, 64, 64, 64, 64, 321, 64, 64, 64, 64, - 64, -302, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + -302, -302, -302, -302, 67, 67, 68, -302, -302, -302, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -302, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 324, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -302, 69, 70, + + 71 }, { 5, -303, -303, -303, -303, -303, -303, -303, -303, -303, - -303, -303, -303, -303, 64, 64, 65, -303, -303, -303, - - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -303, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 322, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + -303, -303, -303, -303, 67, 67, 68, -303, -303, -303, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -303, 67, 67, 67, 325, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -303, 69, 70, + 71 }, { 5, -304, -304, -304, -304, -304, -304, -304, -304, -304, - -304, -304, -304, -304, 64, 64, 65, -304, -304, -304, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -304, 64, 64, 64, 64, 323, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + -304, -304, -304, -304, 67, 67, 68, -304, -304, -304, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -304, 67, 67, 67, 67, 67, 326, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -304, 69, 70, + 71 }, { 5, -305, -305, -305, -305, -305, -305, -305, -305, -305, - -305, -305, -305, -305, 64, 64, 65, -305, -305, -305, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -305, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + -305, -305, -305, -305, 67, 67, 68, -305, -305, -305, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -305, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + + 67, 67, 67, 67, 67, 67, 67, -305, 69, 70, + 71 }, { - 5, 151, 151, -306, 151, 151, 151, 151, 151, 151, - 151, 151, 151, 151, 151, 151, 151, 151, 151, 230, - 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, - 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, - - 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, - 151, 151, 151, 151, 151 + 5, -306, -306, -306, -306, -306, -306, -306, -306, -306, + -306, -306, -306, -306, 67, 67, 68, -306, -306, -306, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -306, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 327, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -306, 69, 70, + 71 }, { 5, -307, -307, -307, -307, -307, -307, -307, -307, -307, - -307, -307, -307, -307, 64, 64, 65, -307, -307, -307, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -307, 324, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + + -307, -307, -307, -307, 67, 67, 68, -307, -307, -307, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -307, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 328, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -307, 69, 70, + 71 }, { 5, -308, -308, -308, -308, -308, -308, -308, -308, -308, - -308, -308, -308, -308, 64, 64, 65, -308, -308, -308, + -308, -308, -308, -308, 67, 67, 68, -308, -308, -308, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -308, 67, 67, 67, 67, 67, 67, 67, 67, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -308, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 325, 64 + 67, 67, 67, 67, 67, 67, 67, 67, 67, 329, + 67, 67, 67, 67, 67, 67, 67, -308, 69, 70, + 71 }, { 5, -309, -309, -309, -309, -309, -309, -309, -309, -309, - -309, -309, -309, -309, 64, 64, 65, -309, -309, -309, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -309, 64, 64, 64, 64, 64, 64, 64, 64, - 326, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + -309, -309, -309, -309, 67, 67, 68, -309, -309, -309, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -309, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 330, 67, 67, 67, 67, -309, 69, 70, + 71 }, { 5, -310, -310, -310, -310, -310, -310, -310, -310, -310, - -310, -310, -310, -310, 64, 64, 65, -310, -310, -310, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -310, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 327, 64, 64, - 64, 64, 64, 64, 64 + -310, -310, -310, -310, 67, 67, 68, -310, -310, -310, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -310, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 331, 67, -310, 69, 70, + 71 }, { 5, -311, -311, -311, -311, -311, -311, -311, -311, -311, - -311, -311, -311, -311, 64, 64, 65, -311, -311, -311, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -311, 64, 64, 64, 64, 64, 64, 64, 64, + -311, -311, -311, -311, 67, 67, 68, -311, -311, -311, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, - 64, 64, 64, 64, 328, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + 67, -311, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 332, 67, + 67, 67, 67, 67, 67, 67, 67, -311, 69, 70, + 71 }, { 5, -312, -312, -312, -312, -312, -312, -312, -312, -312, - -312, -312, -312, -312, 64, 64, 65, -312, -312, -312, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -312, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 329, 64, - 64, 64, 64, 64, 64 + -312, -312, -312, -312, 67, 67, 68, -312, -312, -312, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -312, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -312, 69, 70, + + 71 }, { 5, -313, -313, -313, -313, -313, -313, -313, -313, -313, - -313, -313, -313, -313, 64, 64, 65, -313, -313, -313, - - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -313, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 330, 64, - 64, 64, 64, 64, 64 + -313, -313, -313, -313, 67, 67, 68, -313, -313, -313, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 333, + 67, -313, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 334, 67, 67, 67, 67, 67, 67, -313, 69, 70, + 71 }, { 5, -314, -314, -314, -314, -314, -314, -314, -314, -314, - -314, -314, -314, -314, 64, 64, 65, -314, -314, -314, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -314, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 331, 64, - 64, 64, 64, 64, 64 + -314, -314, -314, -314, 67, 67, 68, -314, -314, -314, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -314, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -314, 69, 70, + 71 }, { 5, -315, -315, -315, -315, -315, -315, -315, -315, -315, - -315, -315, -315, -315, 64, 64, 65, -315, -315, -315, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -315, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + -315, -315, -315, -315, -315, -315, -315, -315, -315, -315, + -315, -315, -315, -315, -315, -315, -315, -315, -315, -315, + -315, -315, -315, -315, -315, -315, -315, -315, -315, -315, + -315, -315, -315, -315, -315, -315, -315, -315, -315, -315, + + -315, -315, -315, -315, -315, -315, -315, -315, -315, -315, + -315 }, { - 5, -316, -316, -316, -316, -316, -316, -316, -316, -316, - -316, -316, -316, -316, 64, 64, 65, -316, -316, -316, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -316, 64, 64, 64, 64, 64, 64, 64, 64, - - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + 5, 169, 169, -316, 169, 169, 169, 169, 169, 169, + 169, 169, 169, 169, 169, 169, 169, 169, 169, 335, + 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, + 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, + 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, + 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, + 169 }, { 5, -317, -317, -317, -317, -317, -317, -317, -317, -317, - -317, -317, -317, -317, 64, 64, 65, -317, -317, -317, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -317, 64, 64, 64, 64, 332, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + + -317, -317, -317, -317, 67, 67, 68, -317, -317, -317, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -317, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 336, 67, 67, 67, 67, 67, -317, 69, 70, + 71 }, { 5, -318, -318, -318, -318, -318, -318, -318, -318, -318, - -318, -318, -318, -318, 64, 64, 65, -318, -318, -318, + -318, -318, -318, -318, 67, 67, 68, -318, -318, -318, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -318, 67, 67, 67, 67, 67, 67, 67, 67, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -318, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + 67, 67, 67, 67, 67, 67, 67, 67, 67, 337, + 67, 67, 67, 67, 67, 67, 67, -318, 69, 70, + 71 }, { 5, -319, -319, -319, -319, -319, -319, -319, -319, -319, - -319, -319, -319, -319, 64, 64, 65, -319, -319, -319, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -319, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 333, 64, - 64, 64, 64, 64, 64 + -319, -319, -319, -319, 67, 67, 68, -319, -319, -319, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -319, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 338, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -319, 69, 70, + 71 }, { 5, -320, -320, -320, -320, -320, -320, -320, -320, -320, - -320, -320, -320, -320, 64, 64, 65, -320, -320, -320, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -320, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 334, 64, 64, - 64, 64, 64, 64, 64 + -320, -320, -320, -320, 67, 67, 68, -320, -320, -320, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -320, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -320, 69, 70, + 71 }, { 5, -321, -321, -321, -321, -321, -321, -321, -321, -321, - -321, -321, -321, -321, 64, 64, 65, -321, -321, -321, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -321, 64, 64, 64, 64, 64, 64, 64, 64, + -321, -321, -321, -321, 67, 67, 68, -321, -321, -321, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 335, 64, 64, 64, 64 + 67, -321, 67, 67, 67, 67, 339, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -321, 69, 70, + 71 }, { 5, -322, -322, -322, -322, -322, -322, -322, -322, -322, - -322, -322, -322, -322, 64, 64, 65, -322, -322, -322, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -322, 64, 64, 64, 64, 336, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + -322, -322, -322, -322, 67, 67, 68, -322, -322, -322, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -322, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 340, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -322, 69, 70, + + 71 }, { 5, -323, -323, -323, -323, -323, -323, -323, -323, -323, - -323, -323, -323, -323, 64, 64, 65, -323, -323, -323, - - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -323, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 337, - 64, 64, 64, 64, 64 + -323, -323, -323, -323, 67, 67, 68, -323, -323, -323, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -323, 67, 67, 341, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -323, 69, 70, + 71 }, { 5, -324, -324, -324, -324, -324, -324, -324, -324, -324, - -324, -324, -324, -324, 64, 64, 65, -324, -324, -324, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -324, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + -324, -324, -324, -324, 67, 67, 68, -324, -324, -324, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -324, 67, 67, 67, 67, 67, 342, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -324, 69, 70, + 71 }, { 5, -325, -325, -325, -325, -325, -325, -325, -325, -325, - -325, -325, -325, -325, 64, 64, 65, -325, -325, -325, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -325, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + -325, -325, -325, -325, 67, 67, 68, -325, -325, -325, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -325, 67, 67, 67, 67, 67, 343, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + + 67, 67, 67, 67, 67, 67, 67, -325, 69, 70, + 71 }, { 5, -326, -326, -326, -326, -326, -326, -326, -326, -326, - -326, -326, -326, -326, 64, 64, 65, -326, -326, -326, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -326, 64, 64, 64, 64, 64, 64, 64, 64, - - 64, 64, 64, 64, 64, 64, 64, 64, 64, 338, - 64, 64, 64, 64, 64 + -326, -326, -326, -326, 67, 67, 68, -326, -326, -326, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -326, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 344, 67, 67, 67, 67, 67, 67, -326, 69, 70, + 71 }, { 5, -327, -327, -327, -327, -327, -327, -327, -327, -327, - -327, -327, -327, -327, 64, 64, 65, -327, -327, -327, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -327, 64, 64, 64, 64, 339, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + + -327, -327, -327, -327, 67, 67, 68, -327, -327, -327, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -327, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 345, 67, 67, 67, 67, 67, 67, -327, 69, 70, + 71 }, { 5, -328, -328, -328, -328, -328, -328, -328, -328, -328, - -328, -328, -328, -328, 64, 64, 65, -328, -328, -328, + -328, -328, -328, -328, 67, 67, 68, -328, -328, -328, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -328, 67, 67, 67, 67, 67, 67, 67, 67, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -328, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 346, -328, 69, 70, + 71 }, { 5, -329, -329, -329, -329, -329, -329, -329, -329, -329, - -329, -329, -329, -329, 64, 64, 65, -329, -329, -329, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -329, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 340, - 64, 64, 64, 64, 64 + -329, -329, -329, -329, 67, 67, 68, -329, -329, -329, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -329, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 347, 67, 67, 67, 67, 67, 67, -329, 69, 70, + 71 }, { 5, -330, -330, -330, -330, -330, -330, -330, -330, -330, - -330, -330, -330, -330, 64, 64, 65, -330, -330, -330, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -330, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + -330, -330, -330, -330, 67, 67, 68, -330, -330, -330, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -330, 67, 67, 348, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -330, 69, 70, + 71 }, { 5, -331, -331, -331, -331, -331, -331, -331, -331, -331, - -331, -331, -331, -331, 64, 64, 65, -331, -331, -331, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -331, 64, 64, 64, 64, 64, 64, 64, 64, + -331, -331, -331, -331, 67, 67, 68, -331, -331, -331, + 349, 67, 67, 67, 67, 350, 67, 67, 67, 67, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + 67, -331, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -331, 69, 70, + 71 }, { 5, -332, -332, -332, -332, -332, -332, -332, -332, -332, - -332, -332, -332, -332, 64, 64, 65, -332, -332, -332, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -332, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 341, 64, - 64, 64, 64, 64, 64 + -332, -332, -332, -332, 67, 67, 68, -332, -332, -332, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -332, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 351, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -332, 69, 70, + + 71 }, { 5, -333, -333, -333, -333, -333, -333, -333, -333, -333, - -333, -333, -333, -333, 64, 64, 65, -333, -333, -333, - - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -333, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 342, - 64, 64, 64, 64, 64 + -333, -333, -333, -333, 67, 67, 68, -333, -333, -333, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -333, 67, 67, 67, 67, 67, 352, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -333, 69, 70, + 71 }, { 5, -334, -334, -334, -334, -334, -334, -334, -334, -334, - -334, -334, -334, -334, 64, 64, 65, -334, -334, -334, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -334, 64, 64, 64, 64, 64, 64, 343, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + -334, -334, -334, -334, 67, 67, 68, -334, -334, -334, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -334, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -334, 69, 70, + 71 }, { - 5, -335, -335, -335, -335, -335, -335, -335, -335, -335, - -335, -335, -335, -335, 64, 64, 65, -335, -335, -335, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -335, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 344, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + 5, 169, 169, -335, 169, 169, 169, 169, 169, 169, + 169, 169, 169, 169, 169, 169, 169, 169, 169, 258, + 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, + 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, + 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, + + 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, + 169 }, { 5, -336, -336, -336, -336, -336, -336, -336, -336, -336, - -336, -336, -336, -336, 64, 64, 65, -336, -336, -336, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -336, 64, 64, 64, 64, 64, 64, 64, 64, - - 64, 64, 64, 64, 64, 64, 64, 64, 345, 64, - 64, 64, 64, 64, 64 + -336, -336, -336, -336, 67, 67, 68, -336, -336, -336, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -336, 67, 353, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -336, 69, 70, + 71 }, { 5, -337, -337, -337, -337, -337, -337, -337, -337, -337, - -337, -337, -337, -337, 64, 64, 65, -337, -337, -337, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -337, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 346, 64, - 64, 64, 64, 64, 64 + + -337, -337, -337, -337, 67, 67, 68, -337, -337, -337, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -337, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 354, 67, -337, 69, 70, + 71 }, { 5, -338, -338, -338, -338, -338, -338, -338, -338, -338, - -338, -338, -338, -338, 64, 64, 65, -338, -338, -338, + -338, -338, -338, -338, 67, 67, 68, -338, -338, -338, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -338, 67, 67, 67, 67, 67, 67, 67, 67, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -338, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + 67, 355, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -338, 69, 70, + 71 }, { 5, -339, -339, -339, -339, -339, -339, -339, -339, -339, - -339, -339, -339, -339, 64, 64, 65, -339, -339, -339, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -339, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 347, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + -339, -339, -339, -339, 67, 67, 68, -339, -339, -339, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -339, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 356, + 67, 67, 67, 67, 67, 67, 67, -339, 69, 70, + 71 }, { 5, -340, -340, -340, -340, -340, -340, -340, -340, -340, - -340, -340, -340, -340, 64, 64, 65, -340, -340, -340, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -340, 64, 64, 64, 64, 64, 64, 64, 64, - 348, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + -340, -340, -340, -340, 67, 67, 68, -340, -340, -340, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -340, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 357, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -340, 69, 70, + 71 }, { 5, -341, -341, -341, -341, -341, -341, -341, -341, -341, - -341, -341, -341, -341, 64, 64, 65, -341, -341, -341, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -341, 64, 64, 64, 64, 64, 64, 64, 64, + -341, -341, -341, -341, 67, 67, 68, -341, -341, -341, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + 67, -341, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 358, 67, 67, 67, 67, 67, 67, -341, 69, 70, + 71 }, { 5, -342, -342, -342, -342, -342, -342, -342, -342, -342, - -342, -342, -342, -342, 64, 64, 65, -342, -342, -342, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -342, 64, 64, 64, 64, 64, 64, 64, 64, - 349, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + -342, -342, -342, -342, 67, 67, 68, -342, -342, -342, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -342, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 359, 67, 67, 67, 67, 67, 67, -342, 69, 70, + + 71 }, { 5, -343, -343, -343, -343, -343, -343, -343, -343, -343, - -343, -343, -343, -343, 64, 64, 65, -343, -343, -343, - - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -343, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 350, 64, 64, 64, 64 + -343, -343, -343, -343, 67, 67, 68, -343, -343, -343, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -343, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 360, 67, 67, 67, 67, 67, 67, -343, 69, 70, + 71 }, { 5, -344, -344, -344, -344, -344, -344, -344, -344, -344, - -344, -344, -344, -344, 64, 64, 65, -344, -344, -344, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -344, 64, 64, 351, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + -344, -344, -344, -344, 67, 67, 68, -344, -344, -344, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -344, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -344, 69, 70, + 71 }, { 5, -345, -345, -345, -345, -345, -345, -345, -345, -345, - -345, -345, -345, -345, 64, 64, 65, -345, -345, -345, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -345, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + -345, -345, -345, -345, 67, 67, 68, -345, -345, -345, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -345, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + + 67, 67, 67, 67, 67, 67, 67, -345, 69, 70, + 71 }, { 5, -346, -346, -346, -346, -346, -346, -346, -346, -346, - -346, -346, -346, -346, 64, 64, 65, -346, -346, -346, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -346, 64, 64, 64, 64, 64, 64, 64, 64, - - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + -346, -346, -346, -346, 67, 67, 68, -346, -346, -346, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -346, 67, 67, 67, 67, 67, 361, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -346, 69, 70, + 71 }, { 5, -347, -347, -347, -347, -347, -347, -347, -347, -347, - -347, -347, -347, -347, 64, 64, 65, -347, -347, -347, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -347, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + + -347, -347, -347, -347, 67, 67, 68, -347, -347, -347, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -347, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -347, 69, 70, + 71 }, { 5, -348, -348, -348, -348, -348, -348, -348, -348, -348, - -348, -348, -348, -348, 64, 64, 65, -348, -348, -348, + -348, -348, -348, -348, 67, 67, 68, -348, -348, -348, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -348, 67, 67, 67, 67, 67, 67, 67, 67, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -348, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 352, - 64, 64, 64, 64, 64 + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 362, 67, 67, 67, 67, 67, 67, -348, 69, 70, + 71 }, { 5, -349, -349, -349, -349, -349, -349, -349, -349, -349, - -349, -349, -349, -349, 64, 64, 65, -349, -349, -349, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -349, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 353, - 64, 64, 64, 64, 64 + -349, -349, -349, -349, 67, 67, 68, -349, -349, -349, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -349, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 363, + 67, 67, 67, 67, 67, 67, 67, -349, 69, 70, + 71 }, { 5, -350, -350, -350, -350, -350, -350, -350, -350, -350, - -350, -350, -350, -350, 64, 64, 65, -350, -350, -350, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -350, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 354, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + -350, -350, -350, -350, 67, 67, 68, -350, -350, -350, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -350, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 364, 67, 67, 67, 67, -350, 69, 70, + 71 }, { 5, -351, -351, -351, -351, -351, -351, -351, -351, -351, - -351, -351, -351, -351, 64, 64, 65, -351, -351, -351, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -351, 64, 64, 64, 64, 64, 64, 64, 64, + -351, -351, -351, -351, 67, 67, 68, -351, -351, -351, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 355, - 64, 64, 64, 64, 64 + 67, -351, 67, 67, 67, 67, 67, 365, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -351, 69, 70, + 71 }, { 5, -352, -352, -352, -352, -352, -352, -352, -352, -352, - -352, -352, -352, -352, 64, 64, 65, -352, -352, -352, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -352, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 356, 64, 64, 64, 64 + -352, -352, -352, -352, 67, 67, 68, -352, -352, -352, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -352, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 366, 67, 67, 67, 67, 67, -352, 69, 70, + + 71 }, { 5, -353, -353, -353, -353, -353, -353, -353, -353, -353, - -353, -353, -353, -353, 64, 64, 65, -353, -353, -353, - - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -353, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 357, 64, 64, 64, 64 + -353, -353, -353, -353, 67, 67, 68, -353, -353, -353, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -353, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -353, 69, 70, + 71 }, { 5, -354, -354, -354, -354, -354, -354, -354, -354, -354, - -354, -354, -354, -354, 64, 64, 65, -354, -354, -354, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -354, 64, 64, 64, 64, 358, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + -354, -354, -354, -354, 67, 67, 68, -354, -354, -354, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -354, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -354, 69, 70, + 71 }, { 5, -355, -355, -355, -355, -355, -355, -355, -355, -355, - -355, -355, -355, -355, 64, 64, 65, -355, -355, -355, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -355, 64, 64, 64, 64, 64, 64, 64, 64, - 359, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + -355, -355, -355, -355, 67, 67, 68, -355, -355, -355, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -355, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + + 67, 367, 67, 67, 67, 67, 67, -355, 69, 70, + 71 }, { 5, -356, -356, -356, -356, -356, -356, -356, -356, -356, - -356, -356, -356, -356, 64, 64, 65, -356, -356, -356, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -356, 64, 64, 64, 64, 64, 64, 64, 64, - - 64, 64, 64, 64, 64, 64, 64, 64, 64, 360, - 64, 64, 64, 64, 64 + -356, -356, -356, -356, 67, 67, 68, -356, -356, -356, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -356, 67, 67, 67, 67, 67, 368, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -356, 69, 70, + 71 }, { 5, -357, -357, -357, -357, -357, -357, -357, -357, -357, - -357, -357, -357, -357, 64, 64, 65, -357, -357, -357, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -357, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 361, - 64, 64, 64, 64, 64 + + -357, -357, -357, -357, 67, 67, 68, -357, -357, -357, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -357, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -357, 69, 70, + 71 }, { 5, -358, -358, -358, -358, -358, -358, -358, -358, -358, - -358, -358, -358, -358, 64, 64, 65, -358, -358, -358, + -358, -358, -358, -358, 67, 67, 68, -358, -358, -358, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -358, 67, 67, 67, 67, 67, 67, 67, 67, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -358, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 362, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 369, 67, 67, 67, 67, 67, -358, 69, 70, + 71 }, { 5, -359, -359, -359, -359, -359, -359, -359, -359, -359, - -359, -359, -359, -359, 64, 64, 65, -359, -359, -359, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -359, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 363, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + -359, -359, -359, -359, 67, 67, 68, -359, -359, -359, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -359, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -359, 69, 70, + 71 }, { 5, -360, -360, -360, -360, -360, -360, -360, -360, -360, - -360, -360, -360, -360, 64, 64, 65, -360, -360, -360, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -360, 64, 64, 64, 64, 64, 64, 64, 64, - 364, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + -360, -360, -360, -360, 67, 67, 68, -360, -360, -360, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -360, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -360, 69, 70, + 71 }, { 5, -361, -361, -361, -361, -361, -361, -361, -361, -361, - -361, -361, -361, -361, 64, 64, 65, -361, -361, -361, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -361, 64, 64, 64, 64, 64, 64, 64, 64, + -361, -361, -361, -361, 67, 67, 68, -361, -361, -361, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, - 365, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + 67, -361, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 370, 67, 67, 67, 67, 67, 67, -361, 69, 70, + 71 }, { 5, -362, -362, -362, -362, -362, -362, -362, -362, -362, - -362, -362, -362, -362, 64, 64, 65, -362, -362, -362, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -362, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 366, - 64, 64, 64, 64, 64 + -362, -362, -362, -362, 67, 67, 68, -362, -362, -362, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -362, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 371, 67, 67, 67, 67, 67, -362, 69, 70, + + 71 }, { 5, -363, -363, -363, -363, -363, -363, -363, -363, -363, - -363, -363, -363, -363, 64, 64, 65, -363, -363, -363, - - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -363, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 367, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + -363, -363, -363, -363, 67, 67, 68, -363, -363, -363, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -363, 67, 67, 67, 67, 67, 67, 67, 372, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -363, 69, 70, + 71 }, { 5, -364, -364, -364, -364, -364, -364, -364, -364, -364, - -364, -364, -364, -364, 64, 64, 65, -364, -364, -364, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -364, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 368, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + -364, -364, -364, -364, 67, 67, 68, -364, -364, -364, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -364, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 373, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -364, 69, 70, + 71 }, { 5, -365, -365, -365, -365, -365, -365, -365, -365, -365, - -365, -365, -365, -365, 64, 64, 65, -365, -365, -365, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -365, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 369, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + -365, -365, -365, -365, 67, 67, 68, -365, -365, -365, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -365, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + + 374, 67, 67, 67, 67, 67, 67, -365, 69, 70, + 71 }, { 5, -366, -366, -366, -366, -366, -366, -366, -366, -366, - -366, -366, -366, -366, 64, 64, 65, -366, -366, -366, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -366, 64, 64, 64, 64, 64, 64, 64, 64, - - 64, 64, 64, 64, 64, 64, 64, 64, 370, 64, - 64, 64, 64, 64, 64 + -366, -366, -366, -366, 67, 67, 68, -366, -366, -366, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -366, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 375, 67, 67, 67, 67, 67, 67, -366, 69, 70, + 71 }, { 5, -367, -367, -367, -367, -367, -367, -367, -367, -367, - -367, -367, -367, -367, 64, 64, 65, -367, -367, -367, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -367, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + + -367, -367, -367, -367, 67, 67, 68, -367, -367, -367, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -367, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -367, 69, 70, + 71 }, { 5, -368, -368, -368, -368, -368, -368, -368, -368, -368, - -368, -368, -368, -368, 64, 64, 65, -368, -368, -368, + -368, -368, -368, -368, 67, 67, 68, -368, -368, -368, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -368, 67, 67, 67, 67, 67, 67, 67, 67, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -368, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 371, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + 67, 67, 67, 67, 67, 67, 376, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -368, 69, 70, + 71 }, { 5, -369, -369, -369, -369, -369, -369, -369, -369, -369, - -369, -369, -369, -369, 64, 64, 65, -369, -369, -369, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -369, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 372, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + -369, -369, -369, -369, 67, 67, 68, -369, -369, -369, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -369, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 377, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -369, 69, 70, + 71 }, { 5, -370, -370, -370, -370, -370, -370, -370, -370, -370, - -370, -370, -370, -370, 64, 64, 65, -370, -370, -370, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -370, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + -370, -370, -370, -370, 67, 67, 68, -370, -370, -370, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -370, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -370, 69, 70, + 71 }, { 5, -371, -371, -371, -371, -371, -371, -371, -371, -371, - -371, -371, -371, -371, 64, 64, 65, -371, -371, -371, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -371, 64, 64, 64, 64, 64, 64, 64, 64, + -371, -371, -371, -371, 67, 67, 68, -371, -371, -371, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, - 64, 64, 64, 64, 64, 64, 64, 64, 373, 64, - 64, 64, 64, 64, 64 + 67, -371, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 378, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -371, 69, 70, + 71 }, { 5, -372, -372, -372, -372, -372, -372, -372, -372, -372, - -372, -372, -372, -372, 64, 64, 65, -372, -372, -372, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -372, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 374, 64, - 64, 64, 64, 64, 64 + -372, -372, -372, -372, 67, 67, 68, -372, -372, -372, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -372, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 379, 67, 67, 67, 67, -372, 69, 70, + + 71 }, { 5, -373, -373, -373, -373, -373, -373, -373, -373, -373, - -373, -373, -373, -373, 64, 64, 65, -373, -373, -373, - - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -373, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + -373, -373, -373, -373, 67, 67, 68, -373, -373, -373, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -373, 67, 67, 67, 380, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -373, 69, 70, + 71 }, { 5, -374, -374, -374, -374, -374, -374, -374, -374, -374, - -374, -374, -374, -374, 64, 64, 65, -374, -374, -374, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, -374, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64 + -374, -374, -374, -374, 67, 67, 68, -374, -374, -374, + + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -374, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -374, 69, 70, + 71 + }, + + { + 5, -375, -375, -375, -375, -375, -375, -375, -375, -375, + -375, -375, -375, -375, 67, 67, 68, -375, -375, -375, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -375, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + + 67, 67, 67, 67, 67, 67, 67, -375, 69, 70, + 71 + }, + + { + 5, -376, -376, -376, -376, -376, -376, -376, -376, -376, + -376, -376, -376, -376, 67, 67, 68, -376, -376, -376, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -376, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -376, 69, 70, + 71 + }, + + { + 5, -377, -377, -377, -377, -377, -377, -377, -377, -377, + + -377, -377, -377, -377, 67, 67, 68, -377, -377, -377, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -377, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 381, 67, 67, 67, 67, 67, -377, 69, 70, + 71 + }, + + { + 5, -378, -378, -378, -378, -378, -378, -378, -378, -378, + -378, -378, -378, -378, 67, 67, 68, -378, -378, -378, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -378, 67, 67, 67, 67, 67, 67, 67, 67, + + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 382, 67, 67, 67, 67, 67, -378, 69, 70, + 71 + }, + + { + 5, -379, -379, -379, -379, -379, -379, -379, -379, -379, + -379, -379, -379, -379, 67, 67, 68, -379, -379, -379, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -379, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 383, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -379, 69, 70, + 71 + + }, + + { + 5, -380, -380, -380, -380, -380, -380, -380, -380, -380, + -380, -380, -380, -380, 67, 67, 68, -380, -380, -380, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -380, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 384, 67, 67, 67, 67, 67, -380, 69, 70, + 71 + }, + + { + 5, -381, -381, -381, -381, -381, -381, -381, -381, -381, + -381, -381, -381, -381, 67, 67, 68, -381, -381, -381, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + + 67, -381, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 385, 67, 67, 67, 67, -381, 69, 70, + 71 + }, + + { + 5, -382, -382, -382, -382, -382, -382, -382, -382, -382, + -382, -382, -382, -382, 67, 67, 68, -382, -382, -382, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -382, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 386, 67, 67, 67, 67, -382, 69, 70, + + 71 + }, + + { + 5, -383, -383, -383, -383, -383, -383, -383, -383, -383, + -383, -383, -383, -383, 67, 67, 68, -383, -383, -383, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -383, 67, 67, 67, 67, 67, 387, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -383, 69, 70, + 71 + }, + + { + 5, -384, -384, -384, -384, -384, -384, -384, -384, -384, + -384, -384, -384, -384, 67, 67, 68, -384, -384, -384, + + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -384, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 388, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -384, 69, 70, + 71 + }, + + { + 5, -385, -385, -385, -385, -385, -385, -385, -385, -385, + -385, -385, -385, -385, 67, 67, 68, -385, -385, -385, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -385, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + + 67, 389, 67, 67, 67, 67, 67, -385, 69, 70, + 71 + }, + + { + 5, -386, -386, -386, -386, -386, -386, -386, -386, -386, + -386, -386, -386, -386, 67, 67, 68, -386, -386, -386, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -386, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 390, 67, 67, 67, 67, 67, -386, 69, 70, + 71 + }, + + { + 5, -387, -387, -387, -387, -387, -387, -387, -387, -387, + + -387, -387, -387, -387, 67, 67, 68, -387, -387, -387, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -387, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 391, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -387, 69, 70, + 71 + }, + + { + 5, -388, -388, -388, -388, -388, -388, -388, -388, -388, + -388, -388, -388, -388, 67, 67, 68, -388, -388, -388, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -388, 67, 67, 67, 67, 67, 67, 67, 67, + + 67, 67, 67, 67, 67, 67, 67, 392, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -388, 69, 70, + 71 + }, + + { + 5, -389, -389, -389, -389, -389, -389, -389, -389, -389, + -389, -389, -389, -389, 67, 67, 68, -389, -389, -389, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -389, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 393, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -389, 69, 70, + 71 + + }, + + { + 5, -390, -390, -390, -390, -390, -390, -390, -390, -390, + -390, -390, -390, -390, 67, 67, 68, -390, -390, -390, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -390, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 394, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -390, 69, 70, + 71 + }, + + { + 5, -391, -391, -391, -391, -391, -391, -391, -391, -391, + -391, -391, -391, -391, 67, 67, 68, -391, -391, -391, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + + 67, -391, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 395, 67, 67, 67, 67, 67, -391, 69, 70, + 71 + }, + + { + 5, -392, -392, -392, -392, -392, -392, -392, -392, -392, + -392, -392, -392, -392, 67, 67, 68, -392, -392, -392, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -392, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 396, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -392, 69, 70, + + 71 + }, + + { + 5, -393, -393, -393, -393, -393, -393, -393, -393, -393, + -393, -393, -393, -393, 67, 67, 68, -393, -393, -393, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -393, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 397, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -393, 69, 70, + 71 + }, + + { + 5, -394, -394, -394, -394, -394, -394, -394, -394, -394, + -394, -394, -394, -394, 67, 67, 68, -394, -394, -394, + + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -394, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 398, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -394, 69, 70, + 71 + }, + + { + 5, -395, -395, -395, -395, -395, -395, -395, -395, -395, + -395, -395, -395, -395, 67, 67, 68, -395, -395, -395, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -395, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + + 399, 67, 67, 67, 67, 67, 67, -395, 69, 70, + 71 + }, + { + 5, -396, -396, -396, -396, -396, -396, -396, -396, -396, + -396, -396, -396, -396, 67, 67, 68, -396, -396, -396, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -396, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -396, 69, 70, + 71 + }, + + { + 5, -397, -397, -397, -397, -397, -397, -397, -397, -397, + + -397, -397, -397, -397, 67, 67, 68, -397, -397, -397, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -397, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 400, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -397, 69, 70, + 71 + }, + + { + 5, -398, -398, -398, -398, -398, -398, -398, -398, -398, + -398, -398, -398, -398, 67, 67, 68, -398, -398, -398, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -398, 67, 67, 67, 67, 67, 67, 67, 67, + + 67, 67, 67, 67, 67, 67, 401, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -398, 69, 70, + 71 + }, + + { + 5, -399, -399, -399, -399, -399, -399, -399, -399, -399, + -399, -399, -399, -399, 67, 67, 68, -399, -399, -399, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -399, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -399, 69, 70, + 71 + + }, + + { + 5, -400, -400, -400, -400, -400, -400, -400, -400, -400, + -400, -400, -400, -400, 67, 67, 68, -400, -400, -400, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -400, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 402, 67, 67, 67, 67, 67, 67, -400, 69, 70, + 71 + }, + + { + 5, -401, -401, -401, -401, -401, -401, -401, -401, -401, + -401, -401, -401, -401, 67, 67, 68, -401, -401, -401, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + + 67, -401, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 403, 67, 67, 67, 67, 67, 67, -401, 69, 70, + 71 + }, + + { + 5, -402, -402, -402, -402, -402, -402, -402, -402, -402, + -402, -402, -402, -402, 67, 67, 68, -402, -402, -402, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -402, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -402, 69, 70, + + 71 + }, + + { + 5, -403, -403, -403, -403, -403, -403, -403, -403, -403, + -403, -403, -403, -403, 67, 67, 68, -403, -403, -403, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, -403, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, -403, 69, 70, + 71 }, } ; @@ -3987,49 +4709,53 @@ struct yy_trans_info flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static yyconst flex_int16_t yy_accept[375] = +static yyconst flex_int16_t yy_accept[404] = { 0, 0, 0, 0, 0, 70, 68, 1, 7, 7, 68, - 2, 67, 68, 67, 67, 68, 62, 68, 67, 49, - 49, 68, 49, 49, 49, 49, 49, 49, 49, 49, - 49, 49, 49, 49, 49, 5, 5, 5, 5, 5, - 1, 7, 0, 0, 0, 2, 0, 0, 0, 0, - 61, 63, 0, 65, 4, 3, 64, 62, 0, 0, - 52, 0, 53, 49, 0, 49, 68, 49, 49, 49, - 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, - 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, - 49, 49, 6, 56, 58, 0, 55, 57, 0, 0, - - 0, 3, 64, 0, 64, 53, 0, 0, 51, 49, - 8, 49, 49, 49, 49, 16, 49, 49, 49, 20, - 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, - 34, 49, 49, 49, 49, 49, 49, 49, 49, 49, - 49, 0, 0, 0, 0, 0, 0, 66, 0, 65, - 0, 0, 0, 50, 51, 0, 24, 49, 49, 49, - 49, 49, 49, 49, 49, 49, 49, 22, 49, 49, - 26, 49, 49, 49, 49, 49, 49, 49, 49, 49, - 49, 49, 49, 49, 49, 49, 49, 49, 49, 0, - 0, 0, 0, 0, 0, 50, 0, 49, 10, 49, - - 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, - 49, 49, 49, 49, 49, 49, 49, 49, 37, 49, - 49, 49, 49, 49, 49, 49, 49, 60, 59, 54, - 0, 9, 11, 49, 13, 49, 17, 49, 49, 49, - 49, 25, 49, 49, 49, 49, 49, 49, 49, 49, - 49, 49, 49, 49, 49, 49, 49, 49, 49, 54, - 54, 12, 49, 15, 49, 49, 49, 49, 27, 49, - 49, 30, 49, 49, 49, 35, 49, 49, 49, 49, - 49, 49, 44, 49, 48, 54, 54, 49, 49, 49, - 21, 49, 49, 49, 49, 49, 49, 49, 49, 49, - - 49, 49, 49, 49, 47, 54, 49, 49, 49, 49, - 49, 49, 49, 49, 33, 36, 49, 38, 49, 49, - 49, 49, 49, 14, 18, 49, 49, 28, 49, 31, - 32, 49, 49, 49, 49, 49, 45, 19, 49, 49, - 40, 49, 49, 49, 43, 46, 23, 49, 49, 49, - 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, - 49, 49, 49, 49, 49, 49, 42, 49, 49, 41, - 49, 49, 29, 39 + 2, 67, 68, 67, 67, 68, 62, 68, 67, 50, + 50, 68, 50, 50, 50, 50, 50, 50, 50, 50, + 50, 50, 50, 50, 50, 68, 68, 68, 5, 5, + 5, 5, 5, 1, 7, 0, 0, 0, 2, 0, + 0, 0, 0, 61, 63, 0, 65, 4, 3, 64, + 62, 0, 0, 52, 0, 53, 50, 0, 0, 0, + 0, 50, 68, 50, 50, 50, 50, 50, 50, 50, + 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, + 50, 50, 50, 50, 50, 50, 50, 50, 50, 0, + + 0, 6, 56, 58, 0, 55, 57, 0, 0, 0, + 3, 64, 0, 64, 53, 0, 0, 51, 0, 0, + 0, 50, 0, 0, 50, 8, 50, 50, 50, 50, + 16, 50, 50, 50, 20, 50, 50, 50, 50, 50, + 50, 50, 50, 50, 50, 34, 50, 50, 50, 50, + 50, 50, 50, 50, 50, 50, 50, 0, 0, 0, + 0, 0, 0, 0, 0, 66, 0, 65, 0, 0, + 0, 49, 51, 0, 0, 0, 51, 0, 0, 0, + 24, 50, 50, 50, 50, 50, 50, 50, 50, 50, + 50, 22, 50, 50, 26, 50, 50, 50, 50, 50, + + 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, + 50, 50, 50, 0, 0, 0, 0, 0, 0, 49, + 0, 51, 0, 0, 0, 50, 10, 50, 50, 50, + 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, + 50, 50, 50, 50, 50, 50, 37, 50, 50, 50, + 50, 50, 50, 50, 50, 60, 59, 54, 0, 0, + 9, 11, 50, 13, 50, 17, 50, 50, 50, 50, + 25, 50, 50, 50, 50, 50, 50, 50, 50, 50, + 50, 50, 50, 50, 50, 50, 50, 50, 54, 54, + 12, 50, 15, 50, 50, 50, 50, 27, 50, 50, + + 30, 50, 50, 50, 35, 50, 50, 50, 50, 50, + 50, 44, 50, 48, 54, 54, 50, 50, 50, 21, + 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, + 50, 50, 50, 47, 54, 50, 50, 50, 50, 50, + 50, 50, 50, 33, 36, 50, 38, 50, 50, 50, + 50, 50, 14, 18, 50, 50, 28, 50, 31, 32, + 50, 50, 50, 50, 50, 45, 19, 50, 50, 40, + 50, 50, 50, 43, 46, 23, 50, 50, 50, 50, + 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, + 50, 50, 50, 50, 50, 42, 50, 50, 41, 50, + + 50, 29, 39 } ; static yyconst flex_int32_t yy_ec[256] = @@ -4043,24 +4769,24 @@ static yyconst flex_int32_t yy_ec[256] = 7, 18, 1, 19, 20, 21, 22, 23, 24, 25, 21, 21, 21, 21, 21, 26, 21, 27, 21, 28, 21, 21, 29, 21, 30, 21, 21, 21, 21, 21, - 7, 31, 7, 1, 21, 1, 32, 33, 34, 35, - - 36, 37, 38, 39, 40, 21, 41, 42, 43, 44, - 45, 46, 21, 47, 48, 49, 50, 51, 21, 52, - 53, 54, 7, 1, 7, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 7, 31, 7, 1, 32, 1, 33, 34, 35, 36, + + 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, + 47, 48, 42, 49, 50, 51, 52, 53, 42, 54, + 55, 56, 7, 1, 7, 1, 1, 57, 57, 57, + 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, + 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, + 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, + 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, + 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, + 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, + 57, 1, 1, 58, 58, 58, 58, 58, 58, 58, + + 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, + 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, + 58, 58, 58, 59, 59, 59, 59, 59, 59, 59, + 59, 59, 59, 59, 59, 59, 59, 59, 59, 60, + 60, 60, 60, 60, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 } ; @@ -4103,6 +4829,7 @@ static yyconst flex_int32_t yy_ec[256] = #include "pxr/base/tf/stringUtils.h" #include "pxr/usd/sdf/textParserContext.h" #include "pxr/usd/sdf/parserHelpers.h" +#include "pxr/usd/sdf/schema.h" // Token table from yacc file #include "textFileFormat.tab.h" @@ -4128,9 +4855,19 @@ PXR_NAMESPACE_USING_DIRECTIVE #define YY_EXTRA_TYPE Sdf_TextParserContext * /* Configuration options for flex */ +/* character classes + * defines UTF-8 encoded byte values for standard ASCII + * and multi-byte UTF-8 character sets + * valid multi-byte UTF-8 sequences are as follows: + * For an n-byte encoded UTF-8 character, the last n-1 bytes range [\x80-\xbf] + * 2-byte UTF-8 characters, first byte in range [\xc2-\xdf] + * 3-byte UTF-8 characters, first byte in range [\xe0-\xef] + * 4-byte UTF-8 characters, first byte in range [\xf0-\xf4] + * ASCII characters span [\x41-\x5a] (upper case) [\x61-\x7a] (lower case) [\x30-39] (digits) + */ /* States */ -#line 4111 "pxr/usd/sdf/textFileFormat.lex.cpp" +#line 4847 "pxr/usd/sdf/textFileFormat.lex.cpp" #define INITIAL 0 #define SLASHTERIX_COMMENT 1 @@ -4395,13 +5132,13 @@ YY_DECL } { -#line 67 "pxr/usd/sdf/textFileFormat.ll" +#line 97 "pxr/usd/sdf/textFileFormat.ll" /* skip over whitespace and comments */ /* handle the first line # comment specially, since it contains the magic token */ -#line 4382 "pxr/usd/sdf/textFileFormat.lex.cpp" +#line 5118 "pxr/usd/sdf/textFileFormat.lex.cpp" while ( 1 ) /* loops until end-of-file is reached */ { @@ -4448,12 +5185,12 @@ YY_DECL case 1: YY_RULE_SETUP -#line 72 "pxr/usd/sdf/textFileFormat.ll" +#line 102 "pxr/usd/sdf/textFileFormat.ll" {} YY_BREAK case 2: YY_RULE_SETUP -#line 73 "pxr/usd/sdf/textFileFormat.ll" +#line 103 "pxr/usd/sdf/textFileFormat.ll" { if (yyextra->sdfLineNo == 1) { (*yylval_param) = std::string(yytext, yyleng); @@ -4463,23 +5200,23 @@ YY_RULE_SETUP YY_BREAK case 3: YY_RULE_SETUP -#line 79 "pxr/usd/sdf/textFileFormat.ll" +#line 109 "pxr/usd/sdf/textFileFormat.ll" {} YY_BREAK case 4: YY_RULE_SETUP -#line 80 "pxr/usd/sdf/textFileFormat.ll" +#line 110 "pxr/usd/sdf/textFileFormat.ll" BEGIN SLASHTERIX_COMMENT ; YY_BREAK case 5: /* rule 5 can match eol */ YY_RULE_SETUP -#line 81 "pxr/usd/sdf/textFileFormat.ll" +#line 111 "pxr/usd/sdf/textFileFormat.ll" ; YY_BREAK case 6: YY_RULE_SETUP -#line 82 "pxr/usd/sdf/textFileFormat.ll" +#line 112 "pxr/usd/sdf/textFileFormat.ll" BEGIN INITIAL ; YY_BREAK /* newline is returned as TOK_NL @@ -4489,7 +5226,7 @@ BEGIN INITIAL ; case 7: /* rule 7 can match eol */ YY_RULE_SETUP -#line 88 "pxr/usd/sdf/textFileFormat.ll" +#line 118 "pxr/usd/sdf/textFileFormat.ll" { yyextra->sdfLineNo++; return TOK_NL; @@ -4499,241 +5236,275 @@ YY_RULE_SETUP can make use of it. */ case 8: YY_RULE_SETUP -#line 95 "pxr/usd/sdf/textFileFormat.ll" +#line 125 "pxr/usd/sdf/textFileFormat.ll" { (*yylval_param) = std::string(yytext, yyleng); return TOK_ADD; } YY_BREAK case 9: YY_RULE_SETUP -#line 96 "pxr/usd/sdf/textFileFormat.ll" +#line 126 "pxr/usd/sdf/textFileFormat.ll" { (*yylval_param) = std::string(yytext, yyleng); return TOK_APPEND; } YY_BREAK case 10: YY_RULE_SETUP -#line 97 "pxr/usd/sdf/textFileFormat.ll" +#line 127 "pxr/usd/sdf/textFileFormat.ll" { (*yylval_param) = std::string(yytext, yyleng); return TOK_CLASS; } YY_BREAK case 11: YY_RULE_SETUP -#line 98 "pxr/usd/sdf/textFileFormat.ll" +#line 128 "pxr/usd/sdf/textFileFormat.ll" { (*yylval_param) = std::string(yytext, yyleng); return TOK_CONFIG; } YY_BREAK case 12: YY_RULE_SETUP -#line 99 "pxr/usd/sdf/textFileFormat.ll" +#line 129 "pxr/usd/sdf/textFileFormat.ll" { (*yylval_param) = std::string(yytext, yyleng); return TOK_CONNECT; } YY_BREAK case 13: YY_RULE_SETUP -#line 100 "pxr/usd/sdf/textFileFormat.ll" +#line 130 "pxr/usd/sdf/textFileFormat.ll" { (*yylval_param) = std::string(yytext, yyleng); return TOK_CUSTOM; } YY_BREAK case 14: YY_RULE_SETUP -#line 101 "pxr/usd/sdf/textFileFormat.ll" +#line 131 "pxr/usd/sdf/textFileFormat.ll" { (*yylval_param) = std::string(yytext, yyleng); return TOK_CUSTOMDATA; } YY_BREAK case 15: YY_RULE_SETUP -#line 102 "pxr/usd/sdf/textFileFormat.ll" +#line 132 "pxr/usd/sdf/textFileFormat.ll" { (*yylval_param) = std::string(yytext, yyleng); return TOK_DEFAULT; } YY_BREAK case 16: YY_RULE_SETUP -#line 103 "pxr/usd/sdf/textFileFormat.ll" +#line 133 "pxr/usd/sdf/textFileFormat.ll" { (*yylval_param) = std::string(yytext, yyleng); return TOK_DEF; } YY_BREAK case 17: YY_RULE_SETUP -#line 104 "pxr/usd/sdf/textFileFormat.ll" +#line 134 "pxr/usd/sdf/textFileFormat.ll" { (*yylval_param) = std::string(yytext, yyleng); return TOK_DELETE; } YY_BREAK case 18: YY_RULE_SETUP -#line 105 "pxr/usd/sdf/textFileFormat.ll" +#line 135 "pxr/usd/sdf/textFileFormat.ll" { (*yylval_param) = std::string(yytext, yyleng); return TOK_DICTIONARY; } YY_BREAK case 19: YY_RULE_SETUP -#line 106 "pxr/usd/sdf/textFileFormat.ll" +#line 136 "pxr/usd/sdf/textFileFormat.ll" { (*yylval_param) = std::string(yytext, yyleng); return TOK_DISPLAYUNIT; } YY_BREAK case 20: YY_RULE_SETUP -#line 107 "pxr/usd/sdf/textFileFormat.ll" +#line 137 "pxr/usd/sdf/textFileFormat.ll" { (*yylval_param) = std::string(yytext, yyleng); return TOK_DOC; } YY_BREAK case 21: YY_RULE_SETUP -#line 108 "pxr/usd/sdf/textFileFormat.ll" +#line 138 "pxr/usd/sdf/textFileFormat.ll" { (*yylval_param) = std::string(yytext, yyleng); return TOK_INHERITS; } YY_BREAK case 22: YY_RULE_SETUP -#line 109 "pxr/usd/sdf/textFileFormat.ll" +#line 139 "pxr/usd/sdf/textFileFormat.ll" { (*yylval_param) = std::string(yytext, yyleng); return TOK_KIND; } YY_BREAK case 23: YY_RULE_SETUP -#line 110 "pxr/usd/sdf/textFileFormat.ll" +#line 140 "pxr/usd/sdf/textFileFormat.ll" { (*yylval_param) = std::string(yytext, yyleng); return TOK_NAMECHILDREN; } YY_BREAK case 24: YY_RULE_SETUP -#line 111 "pxr/usd/sdf/textFileFormat.ll" +#line 141 "pxr/usd/sdf/textFileFormat.ll" { (*yylval_param) = std::string(yytext, yyleng); return TOK_NONE; } YY_BREAK case 25: YY_RULE_SETUP -#line 112 "pxr/usd/sdf/textFileFormat.ll" +#line 142 "pxr/usd/sdf/textFileFormat.ll" { (*yylval_param) = std::string(yytext, yyleng); return TOK_OFFSET; } YY_BREAK case 26: YY_RULE_SETUP -#line 113 "pxr/usd/sdf/textFileFormat.ll" +#line 143 "pxr/usd/sdf/textFileFormat.ll" { (*yylval_param) = std::string(yytext, yyleng); return TOK_OVER; } YY_BREAK case 27: YY_RULE_SETUP -#line 114 "pxr/usd/sdf/textFileFormat.ll" +#line 144 "pxr/usd/sdf/textFileFormat.ll" { (*yylval_param) = std::string(yytext, yyleng); return TOK_PAYLOAD; } YY_BREAK case 28: YY_RULE_SETUP -#line 115 "pxr/usd/sdf/textFileFormat.ll" +#line 145 "pxr/usd/sdf/textFileFormat.ll" { (*yylval_param) = std::string(yytext, yyleng); return TOK_PERMISSION; } YY_BREAK case 29: YY_RULE_SETUP -#line 116 "pxr/usd/sdf/textFileFormat.ll" +#line 146 "pxr/usd/sdf/textFileFormat.ll" { (*yylval_param) = std::string(yytext, yyleng); return TOK_PREFIX_SUBSTITUTIONS; } YY_BREAK case 30: YY_RULE_SETUP -#line 117 "pxr/usd/sdf/textFileFormat.ll" +#line 147 "pxr/usd/sdf/textFileFormat.ll" { (*yylval_param) = std::string(yytext, yyleng); return TOK_PREPEND; } YY_BREAK case 31: YY_RULE_SETUP -#line 118 "pxr/usd/sdf/textFileFormat.ll" +#line 148 "pxr/usd/sdf/textFileFormat.ll" { (*yylval_param) = std::string(yytext, yyleng); return TOK_PROPERTIES; } YY_BREAK case 32: YY_RULE_SETUP -#line 119 "pxr/usd/sdf/textFileFormat.ll" +#line 149 "pxr/usd/sdf/textFileFormat.ll" { (*yylval_param) = std::string(yytext, yyleng); return TOK_REFERENCES; } YY_BREAK case 33: YY_RULE_SETUP -#line 120 "pxr/usd/sdf/textFileFormat.ll" +#line 150 "pxr/usd/sdf/textFileFormat.ll" { (*yylval_param) = std::string(yytext, yyleng); return TOK_RELOCATES; } YY_BREAK case 34: YY_RULE_SETUP -#line 121 "pxr/usd/sdf/textFileFormat.ll" +#line 151 "pxr/usd/sdf/textFileFormat.ll" { (*yylval_param) = std::string(yytext, yyleng); return TOK_REL; } YY_BREAK case 35: YY_RULE_SETUP -#line 122 "pxr/usd/sdf/textFileFormat.ll" +#line 152 "pxr/usd/sdf/textFileFormat.ll" { (*yylval_param) = std::string(yytext, yyleng); return TOK_REORDER; } YY_BREAK case 36: YY_RULE_SETUP -#line 123 "pxr/usd/sdf/textFileFormat.ll" +#line 153 "pxr/usd/sdf/textFileFormat.ll" { (*yylval_param) = std::string(yytext, yyleng); return TOK_ROOTPRIMS; } YY_BREAK case 37: YY_RULE_SETUP -#line 124 "pxr/usd/sdf/textFileFormat.ll" +#line 154 "pxr/usd/sdf/textFileFormat.ll" { (*yylval_param) = std::string(yytext, yyleng); return TOK_SCALE; } YY_BREAK case 38: YY_RULE_SETUP -#line 125 "pxr/usd/sdf/textFileFormat.ll" +#line 155 "pxr/usd/sdf/textFileFormat.ll" { (*yylval_param) = std::string(yytext, yyleng); return TOK_SUBLAYERS; } YY_BREAK case 39: YY_RULE_SETUP -#line 126 "pxr/usd/sdf/textFileFormat.ll" +#line 156 "pxr/usd/sdf/textFileFormat.ll" { (*yylval_param) = std::string(yytext, yyleng); return TOK_SUFFIX_SUBSTITUTIONS; } YY_BREAK case 40: YY_RULE_SETUP -#line 127 "pxr/usd/sdf/textFileFormat.ll" +#line 157 "pxr/usd/sdf/textFileFormat.ll" { (*yylval_param) = std::string(yytext, yyleng); return TOK_SPECIALIZES; } YY_BREAK case 41: YY_RULE_SETUP -#line 128 "pxr/usd/sdf/textFileFormat.ll" +#line 158 "pxr/usd/sdf/textFileFormat.ll" { (*yylval_param) = std::string(yytext, yyleng); return TOK_SYMMETRYARGUMENTS; } YY_BREAK case 42: YY_RULE_SETUP -#line 129 "pxr/usd/sdf/textFileFormat.ll" +#line 159 "pxr/usd/sdf/textFileFormat.ll" { (*yylval_param) = std::string(yytext, yyleng); return TOK_SYMMETRYFUNCTION; } YY_BREAK case 43: YY_RULE_SETUP -#line 130 "pxr/usd/sdf/textFileFormat.ll" +#line 160 "pxr/usd/sdf/textFileFormat.ll" { (*yylval_param) = std::string(yytext, yyleng); return TOK_TIME_SAMPLES; } YY_BREAK case 44: YY_RULE_SETUP -#line 131 "pxr/usd/sdf/textFileFormat.ll" +#line 161 "pxr/usd/sdf/textFileFormat.ll" { (*yylval_param) = std::string(yytext, yyleng); return TOK_UNIFORM; } YY_BREAK case 45: YY_RULE_SETUP -#line 132 "pxr/usd/sdf/textFileFormat.ll" +#line 162 "pxr/usd/sdf/textFileFormat.ll" { (*yylval_param) = std::string(yytext, yyleng); return TOK_VARIANTSET; } YY_BREAK case 46: YY_RULE_SETUP -#line 133 "pxr/usd/sdf/textFileFormat.ll" +#line 163 "pxr/usd/sdf/textFileFormat.ll" { (*yylval_param) = std::string(yytext, yyleng); return TOK_VARIANTSETS; } YY_BREAK case 47: YY_RULE_SETUP -#line 134 "pxr/usd/sdf/textFileFormat.ll" +#line 164 "pxr/usd/sdf/textFileFormat.ll" { (*yylval_param) = std::string(yytext, yyleng); return TOK_VARIANTS; } YY_BREAK case 48: YY_RULE_SETUP -#line 135 "pxr/usd/sdf/textFileFormat.ll" +#line 165 "pxr/usd/sdf/textFileFormat.ll" { (*yylval_param) = std::string(yytext, yyleng); return TOK_VARYING; } YY_BREAK -/* unquoted C/Python identifier */ +/* unquoted C++ namespaced identifier -- see bug 10775 */ case 49: YY_RULE_SETUP -#line 138 "pxr/usd/sdf/textFileFormat.ll" +#line 168 "pxr/usd/sdf/textFileFormat.ll" { (*yylval_param) = std::string(yytext, yyleng); - return TOK_IDENTIFIER; + return TOK_CXX_NAMESPACED_IDENTIFIER; } YY_BREAK -/* unquoted C++ namespaced identifier -- see bug 10775 */ +/* In a Unicode enabled scheme, 'identifiers' are generally + * categorized as something that begins with something in the + * XID_Start category followed by zero or more things in the + * XID_Continue category. Since the number of characters in + * these classes are large, we can't explicitly validate them + * here easily, so the lex rule is pretty permissive with some + * further validation done in code prior to calling what was + * read an 'identifier'. Note this rule will also match + * standard ASCII strings because the UTF-8 encoded byte + * representation is the same for these characters. + * However, unlike the path lexer, we can guarantee that + * prim names aren't something special to be called out here + * so we can be a little more specific about the kinds of strings + * we match, particularly to not collide with the pure digit match rule + * below + */ case 50: YY_RULE_SETUP -#line 144 "pxr/usd/sdf/textFileFormat.ll" +#line 189 "pxr/usd/sdf/textFileFormat.ll" { - (*yylval_param) = std::string(yytext, yyleng); - return TOK_CXX_NAMESPACED_IDENTIFIER; + std::string matched = std::string(yytext, yyleng); + + // we perform an extra validation step here + // to make sure what we matched is actually a valid + // identifier because we can overmatch UTF-8 characters + // based on this definition + if (!SdfSchema::IsValidIdentifier(matched)) { + return TOK_SYNTAX_ERROR; } + + (*yylval_param) = matched; + return TOK_IDENTIFIER; +} YY_BREAK -/* unquoted namespaced identifier. matches any number of colon - * delimited C/Python identifiers */ +/* unquoted namespaced identifiers match any number of colon + * delimited identifiers + */ case 51: YY_RULE_SETUP -#line 151 "pxr/usd/sdf/textFileFormat.ll" +#line 207 "pxr/usd/sdf/textFileFormat.ll" { - (*yylval_param) = std::string(yytext, yyleng); - return TOK_NAMESPACED_IDENTIFIER; + std::string matched = std::string(yytext, yyleng); + + // like for regular identifiers, we do a validation + // check here to prevent overmatching UTF-8 characters + if (!SdfSchema::IsValidNamespacedIdentifier(matched)) { + return TOK_SYNTAX_ERROR; } + + (*yylval_param) = matched; + return TOK_NAMESPACED_IDENTIFIER; +} YY_BREAK /* scene paths */ case 52: YY_RULE_SETUP -#line 157 "pxr/usd/sdf/textFileFormat.ll" +#line 221 "pxr/usd/sdf/textFileFormat.ll" { (*yylval_param) = Sdf_EvalQuotedString(yytext, yyleng, 1); return TOK_PATHREF; @@ -4742,7 +5513,7 @@ YY_RULE_SETUP /* Single '@'-delimited asset references */ case 53: YY_RULE_SETUP -#line 163 "pxr/usd/sdf/textFileFormat.ll" +#line 227 "pxr/usd/sdf/textFileFormat.ll" { TfErrorMark m; (*yylval_param) = @@ -4753,7 +5524,7 @@ YY_RULE_SETUP /* Triple '@'-delimited asset references. */ case 54: YY_RULE_SETUP -#line 171 "pxr/usd/sdf/textFileFormat.ll" +#line 235 "pxr/usd/sdf/textFileFormat.ll" { TfErrorMark m; (*yylval_param) = @@ -4766,10 +5537,10 @@ YY_RULE_SETUP them from the beginning of triply-quoted strings. Ex: "Foo \"foo\"" */ case 55: -#line 183 "pxr/usd/sdf/textFileFormat.ll" +#line 247 "pxr/usd/sdf/textFileFormat.ll" case 56: YY_RULE_SETUP -#line 183 "pxr/usd/sdf/textFileFormat.ll" +#line 247 "pxr/usd/sdf/textFileFormat.ll" { /* " //<- unfreak out coloring code */ (*yylval_param) = Sdf_EvalQuotedString(yytext, yyleng, 1); return TOK_STRING; @@ -4784,7 +5555,7 @@ YY_LINENO_REWIND_TO(yy_bp + 2); yyg->yy_c_buf_p = yy_cp = yy_bp + 2; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP -#line 190 "pxr/usd/sdf/textFileFormat.ll" +#line 254 "pxr/usd/sdf/textFileFormat.ll" { /* ' // <- keep syntax coloring from freaking out */ (*yylval_param) = std::string(); return TOK_STRING; @@ -4797,7 +5568,7 @@ YY_LINENO_REWIND_TO(yy_bp + 2); yyg->yy_c_buf_p = yy_cp = yy_bp + 2; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP -#line 194 "pxr/usd/sdf/textFileFormat.ll" +#line 258 "pxr/usd/sdf/textFileFormat.ll" { (*yylval_param) = std::string(); return TOK_STRING; @@ -4807,11 +5578,11 @@ YY_RULE_SETUP Ex: """A\n\"B\"\nC""" */ case 59: /* rule 59 can match eol */ -#line 202 "pxr/usd/sdf/textFileFormat.ll" +#line 266 "pxr/usd/sdf/textFileFormat.ll" case 60: /* rule 60 can match eol */ YY_RULE_SETUP -#line 202 "pxr/usd/sdf/textFileFormat.ll" +#line 266 "pxr/usd/sdf/textFileFormat.ll" { /* " //<- unfreak out coloring code */ unsigned int numlines = 0; @@ -4825,7 +5596,7 @@ YY_RULE_SETUP * don't know at this point what the final stored type will be. */ case 61: YY_RULE_SETUP -#line 213 "pxr/usd/sdf/textFileFormat.ll" +#line 277 "pxr/usd/sdf/textFileFormat.ll" { (*yylval_param) = double(-0.0); return TOK_NUMBER; @@ -4834,7 +5605,7 @@ YY_RULE_SETUP /* Positive integers: store as uint64_t if in range, otherwise double. */ case 62: YY_RULE_SETUP -#line 219 "pxr/usd/sdf/textFileFormat.ll" +#line 283 "pxr/usd/sdf/textFileFormat.ll" { bool outOfRange = false; (*yylval_param) = TfStringToUInt64(yytext, &outOfRange); @@ -4853,7 +5624,7 @@ YY_RULE_SETUP /* Negative integers: store as long. */ case 63: YY_RULE_SETUP -#line 235 "pxr/usd/sdf/textFileFormat.ll" +#line 299 "pxr/usd/sdf/textFileFormat.ll" { bool outOfRange = false; (*yylval_param) = TfStringToInt64(yytext, &outOfRange); @@ -4871,10 +5642,10 @@ YY_RULE_SETUP YY_BREAK /* Numbers with decimal places or exponents: store as double. */ case 64: -#line 252 "pxr/usd/sdf/textFileFormat.ll" +#line 316 "pxr/usd/sdf/textFileFormat.ll" case 65: YY_RULE_SETUP -#line 252 "pxr/usd/sdf/textFileFormat.ll" +#line 316 "pxr/usd/sdf/textFileFormat.ll" { (*yylval_param) = TfStringToDouble(yytext); return TOK_NUMBER; @@ -4886,7 +5657,7 @@ YY_RULE_SETUP * identifiers. */ case 66: YY_RULE_SETUP -#line 261 "pxr/usd/sdf/textFileFormat.ll" +#line 325 "pxr/usd/sdf/textFileFormat.ll" { (*yylval_param) = -std::numeric_limits::infinity(); return TOK_NUMBER; @@ -4897,7 +5668,7 @@ YY_RULE_SETUP */ case 67: YY_RULE_SETUP -#line 269 "pxr/usd/sdf/textFileFormat.ll" +#line 333 "pxr/usd/sdf/textFileFormat.ll" { return yytext[0]; } @@ -4908,17 +5679,17 @@ YY_RULE_SETUP */ case 68: YY_RULE_SETUP -#line 277 "pxr/usd/sdf/textFileFormat.ll" +#line 341 "pxr/usd/sdf/textFileFormat.ll" { return TOK_SYNTAX_ERROR; } YY_BREAK case 69: YY_RULE_SETUP -#line 281 "pxr/usd/sdf/textFileFormat.ll" +#line 345 "pxr/usd/sdf/textFileFormat.ll" ECHO; YY_BREAK -#line 4899 "pxr/usd/sdf/textFileFormat.lex.cpp" +#line 5669 "pxr/usd/sdf/textFileFormat.lex.cpp" case YY_STATE_EOF(INITIAL): case YY_STATE_EOF(SLASHTERIX_COMMENT): yyterminate(); @@ -6036,7 +6807,7 @@ void textFileFormatYyfree (void * ptr , yyscan_t yyscanner) #define YYTABLES_NAME "yytables" -#line 281 "pxr/usd/sdf/textFileFormat.ll" +#line 345 "pxr/usd/sdf/textFileFormat.ll" diff --git a/pxr/usd/sdf/textFileFormat.ll b/pxr/usd/sdf/textFileFormat.ll index 628aea93aa..fa032f101b 100644 --- a/pxr/usd/sdf/textFileFormat.ll +++ b/pxr/usd/sdf/textFileFormat.ll @@ -29,6 +29,7 @@ #include "pxr/base/tf/stringUtils.h" #include "pxr/usd/sdf/textParserContext.h" #include "pxr/usd/sdf/parserHelpers.h" +#include "pxr/usd/sdf/schema.h" // Token table from yacc file #include "textFileFormat.tab.h" @@ -61,6 +62,36 @@ PXR_NAMESPACE_USING_DIRECTIVE %option reentrant %option bison-bridge +/* character classes + * defines UTF-8 encoded byte values for standard ASCII + * and multi-byte UTF-8 character sets + * valid multi-byte UTF-8 sequences are as follows: + * For an n-byte encoded UTF-8 character, the last n-1 bytes range [\x80-\xbf] + * 2-byte UTF-8 characters, first byte in range [\xc2-\xdf] + * 3-byte UTF-8 characters, first byte in range [\xe0-\xef] + * 4-byte UTF-8 characters, first byte in range [\xf0-\xf4] + * ASCII characters span [\x41-\x5a] (upper case) [\x61-\x7a] (lower case) [\x30-39] (digits) + */ +ALPHA1 [\x41-\x5a] +ALPHA2 [\x61-\x7a] +DIGIT [\x30-\x39] +UEND [\x80-\xbf] +U2PRE [\xc2-\xdf] +U3PRE [\xe0-\xef] +U4PRE [\xf0-\xf4] +UNDER [_] +DASH [\-] +BAR [\|] +ALPHA {ALPHA1}|{ALPHA2} +ALPHANUM {ALPHA}|{DIGIT} +UTF8X {U2PRE}{UEND}|{U3PRE}{UEND}{UEND}|{U4PRE}{UEND}{UEND}{UEND} +UTF8 {ALPHANUM}|{UTF8X} +UTF8NODIG {ALPHA}|{UTF8X} +UTF8U {UTF8}|{UNDER} +UTF8NODIGU {UTF8NODIG}|{UNDER} +UTF8UD {UTF8U}|{DASH} +UTF8UDB {UTF8UD}|{BAR} + /* States */ %x SLASHTERIX_COMMENT @@ -134,25 +165,59 @@ PXR_NAMESPACE_USING_DIRECTIVE "variants" { (*yylval_param) = std::string(yytext, yyleng); return TOK_VARIANTS; } "varying" { (*yylval_param) = std::string(yytext, yyleng); return TOK_VARYING; } - /* unquoted C/Python identifier */ -[[:alpha:]_][[:alnum:]_]* { - (*yylval_param) = std::string(yytext, yyleng); - return TOK_IDENTIFIER; - } - - /* unquoted C++ namespaced identifier -- see bug 10775 */ + /* unquoted C++ namespaced identifier -- see bug 10775 */ [[:alpha:]_][[:alnum:]_]*(::[[:alpha:]_][[:alnum:]_]*)+ { (*yylval_param) = std::string(yytext, yyleng); return TOK_CXX_NAMESPACED_IDENTIFIER; } - /* unquoted namespaced identifier. matches any number of colon - * delimited C/Python identifiers */ -[[:alpha:]_][[:alnum:]_]*(:[[:alpha:]_][[:alnum:]_]*)+ { - (*yylval_param) = std::string(yytext, yyleng); - return TOK_NAMESPACED_IDENTIFIER; + /* In a Unicode enabled scheme, 'identifiers' are generally + * categorized as something that begins with something in the + * XID_Start category followed by zero or more things in the + * XID_Continue category. Since the number of characters in + * these classes are large, we can't explicitly validate them + * here easily, so the lex rule is pretty permissive with some + * further validation done in code prior to calling what was + * read an 'identifier'. Note this rule will also match + * standard ASCII strings because the UTF-8 encoded byte + * representation is the same for these characters. + * However, unlike the path lexer, we can guarantee that + * prim names aren't something special to be called out here + * so we can be a little more specific about the kinds of strings + * we match, particularly to not collide with the pure digit match rule + * below + */ +{UTF8NODIGU}{UTF8U}* { + std::string matched = std::string(yytext, yyleng); + + // we perform an extra validation step here + // to make sure what we matched is actually a valid + // identifier because we can overmatch UTF-8 characters + // based on this definition + if (!SdfSchema::IsValidIdentifier(matched)) { + return TOK_SYNTAX_ERROR; } + (*yylval_param) = matched; + return TOK_IDENTIFIER; +} + + /* unquoted namespaced identifiers match any number of colon + * delimited identifiers + */ +{UTF8NODIGU}{UTF8U}*(:{UTF8NODIGU}{UTF8U}*)+ { + std::string matched = std::string(yytext, yyleng); + + // like for regular identifiers, we do a validation + // check here to prevent overmatching UTF-8 characters + if (!SdfSchema::IsValidNamespacedIdentifier(matched)) { + return TOK_SYNTAX_ERROR; + } + + (*yylval_param) = matched; + return TOK_NAMESPACED_IDENTIFIER; +} + /* scene paths */ \<[^\<\>\r\n]*\> { (*yylval_param) = Sdf_EvalQuotedString(yytext, yyleng, 1); diff --git a/pxr/usd/sdf/tokens.h b/pxr/usd/sdf/tokens.h index 60fc1b5ca3..1a42de86e7 100644 --- a/pxr/usd/sdf/tokens.h +++ b/pxr/usd/sdf/tokens.h @@ -79,6 +79,10 @@ TF_DECLARE_PUBLIC_TOKENS(SdfMetadataDisplayGroupTokens, SDF_API, SDF_METADATA_DISPLAYGROUP_TOKENS); +// constants for identifier validation +constexpr uint32_t SDF_NAMESPACE_DELIMITER_CODE_POINT = 0x003Au; +constexpr uint32_t SDF_UNDERSCORE_CODE_POINT = 0x005Fu; + PXR_NAMESPACE_CLOSE_SCOPE #endif // PXR_USD_SDF_TOKENS_H