/* * Copyright (C) 2003 Lars Knoll (knoll@kde.org) * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public License * along with this library; see the file COPYING.LIB. If not, write to * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, * Boston, MA 02110-1301, USA. */ /* This file is mostly data generated by flex. Unfortunately flex can't handle 16bit strings directly, so we just copy the part of the code we need and modify it to our needs. Most of the defines below are to make sure we can easily use the flex generated code, using as little editing as possible. The flex syntax to generate the lexer are more or less directly copied from the CSS2.1 specs, with some fixes for comments and the important symbol. To regenerate, run flex on tokenizer.flex. After this, copy the data tables and the YY_DECL method over to this file. Remove the init code from YY_DECL and change the YY_END_OF_BUFFER to only call yyterminate(). */ // --------- begin generated code ------------------- #include "CSSGrammar.h" #define INITIAL 0 #define mediaquery 1 #define forkeyword 2 /* C99 systems have . Non-C99 systems may or may not. */ #if defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L #include typedef int8_t flex_int8_t; typedef uint8_t flex_uint8_t; typedef int16_t flex_int16_t; typedef uint16_t flex_uint16_t; typedef int32_t flex_int32_t; typedef uint32_t flex_uint32_t; #else typedef signed char flex_int8_t; typedef short int flex_int16_t; typedef int flex_int32_t; typedef unsigned char flex_uint8_t; typedef unsigned short int flex_uint16_t; typedef unsigned int flex_uint32_t; #endif /* ! C99 */ #define YY_NUM_RULES 85 #define YY_END_OF_BUFFER 86 /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info { flex_int32_t yy_verify; flex_int32_t yy_nxt; }; static yyconst flex_int16_t yy_accept[555] = { 0, 0, 0, 0, 0, 0, 0, 86, 84, 2, 2, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 70, 84, 84, 14, 14, 14, 84, 84, 84, 84, 83, 14, 14, 14, 82, 2, 0, 0, 0, 13, 0, 0, 16, 16, 17, 0, 8, 0, 0, 9, 0, 15, 0, 14, 14, 14, 0, 71, 0, 69, 0, 0, 70, 67, 67, 67, 67, 67, 67, 67, 67, 67, 15, 67, 67, 64, 67, 0, 67, 0, 0, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 0, 79, 14, 0, 0, 0, 14, 14, 0, 14, 14, 14, 7, 6, 5, 14, 14, 14, 0, 0, 0, 13, 0, 0, 17, 16, 0, 17, 17, 0, 0, 13, 0, 0, 4, 14, 0, 0, 68, 67, 0, 54, 67, 49, 52, 67, 65, 56, 67, 55, 63, 68, 67, 58, 57, 53, 67, 67, 67, 67, 67, 67, 0, 47, 47, 0, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 14, 14, 0, 15, 14, 14, 80, 80, 14, 14, 12, 10, 14, 0, 0, 0, 17, 17, 17, 0, 0, 14, 0, 1, 67, 67, 59, 67, 66, 15, 60, 50, 67, 67, 67, 3, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 14, 73, 0, 80, 80, 80, 79, 14, 11, 0, 0, 17, 17, 0, 14, 0, 0, 67, 61, 62, 67, 67, 47, 47, 47, 47, 47, 47, 47, 47, 47, 19, 47, 47, 47, 14, 81, 80, 80, 80, 80, 0, 0, 0, 0, 75, 0, 14, 0, 0, 17, 17, 0, 14, 67, 67, 51, 47, 47, 47, 47, 47, 47, 47, 36, 47, 47, 47, 47, 47, 47, 14, 81, 80, 80, 80, 80, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 14, 0, 0, 17, 17, 0, 14, 67, 67, 47, 47, 47, 47, 47, 18, 47, 47, 47, 47, 47, 47, 47, 47, 47, 14, 81, 80, 80, 80, 80, 80, 80, 0, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 17, 17, 0, 14, 67, 67, 47, 47, 47, 38, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 14, 81, 80, 80, 80, 80, 80, 80, 80, 0, 74, 0, 0, 0, 74, 0, 0, 0, 0, 17, 14, 14, 14, 67, 47, 47, 47, 47, 47, 47, 47, 47, 30, 47, 47, 47, 47, 47, 21, 47, 81, 0, 0, 0, 48, 14, 14, 14, 14, 47, 47, 47, 47, 47, 47, 47, 47, 47, 37, 47, 47, 39, 47, 47, 33, 47, 47, 23, 81, 0, 0, 0, 14, 14, 14, 14, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 22, 47, 47, 0, 0, 0, 72, 14, 78, 77, 47, 47, 47, 47, 47, 47, 47, 26, 47, 32, 31, 47, 47, 47, 47, 0, 0, 76, 47, 47, 47, 40, 47, 47, 47, 47, 28, 35, 34, 47, 47, 41, 47, 47, 47, 42, 27, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 20, 47, 47, 47, 44, 47, 47, 24, 47, 45, 47, 47, 47, 47, 43, 25, 47, 47, 29, 47, 46, 0 } ; static yyconst flex_int32_t yy_ec[256] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, 1, 4, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 12, 18, 19, 20, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 12, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 12, 54, 12, 55, 56, 12, 57, 58, 59, 60, 61, 62, 63, 64, 65, 37, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 12, 84, 1, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85 } ; static yyconst flex_int32_t yy_meta[86] = { 0, 1, 2, 3, 4, 4, 5, 6, 7, 6, 6, 6, 6, 7, 8, 6, 6, 9, 10, 6, 6, 11, 6, 6, 6, 6, 12, 6, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 6, 14, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 6, 6, 6, 14 } ; static yyconst flex_int16_t yy_base[611] = { 0, 0, 0, 64, 66, 0, 0, 1656, 5570, 93, 98, 107, 83, 155, 1626, 74, 1624, 97, 99, 1625, 1629, 207, 1637, 275, 75, 153, 137, 340, 1619, 1618, 1615, 5570, 111, 361, 165, 5570, 158, 197, 74, 85, 5570, 430, 157, 0, 472, 1564, 514, 5570, 77, 575, 5570, 153, 187, 1589, 127, 390, 351, 617, 368, 1591, 1575, 1519, 1551, 0, 115, 371, 359, 389, 369, 364, 411, 413, 482, 506, 419, 536, 340, 393, 659, 365, 1519, 704, 1433, 154, 392, 320, 76, 166, 418, 453, 497, 417, 443, 762, 5570, 143, 804, 564, 581, 607, 544, 1454, 585, 276, 865, 5570, 5570, 5570, 600, 547, 586, 76, 511, 372, 466, 926, 987, 1391, 1029, 1071, 1387, 1132, 473, 441, 442, 1193, 1254, 5570, 597, 1390, 106, 5570, 368, 1296, 498, 610, 501, 531, 613, 603, 639, 642, 645, 646, 663, 707, 654, 677, 681, 698, 685, 687, 684, 1357, 713, 1346, 653, 1295, 1399, 701, 535, 705, 727, 649, 696, 618, 734, 746, 735, 1290, 1460, 370, 1521, 805, 1298, 791, 503, 203, 1279, 629, 1563, 750, 773, 800, 479, 508, 1605, 1224, 1666, 1708, 786, 1750, 834, 1225, 5570, 688, 1811, 748, 784, 796, 822, 799, 801, 864, 1853, 824, 5570, 788, 1181, 1914, 828, 804, 836, 845, 837, 856, 881, 882, 793, 541, 1956, 1998, 5570, 0, 271, 1201, 1175, 958, 2059, 887, 758, 2101, 2143, 2185, 2227, 939, 1097, 275, 2269, 885, 890, 2311, 928, 911, 2353, 927, 863, 886, 925, 898, 946, 948, 1056, 952, 1039, 2395, 2437, 0, 276, 1037, 1026, 1002, 1027, 1062, 776, 959, 5570, 2498, 2559, 873, 2620, 2681, 2742, 2803, 2864, 2919, 2961, 984, 969, 3003, 971, 982, 1018, 1064, 1112, 967, 983, 1053, 1063, 1065, 1020, 3045, 3087, 0, 457, 984, 981, 950, 941, 1140, 852, 1169, 3148, 1040, 3209, 1214, 1234, 1287, 1292, 3270, 3331, 3392, 669, 3453, 3514, 3575, 3636, 3697, 3758, 3819, 1073, 3861, 1055, 1093, 1051, 897, 1115, 1060, 1134, 1151, 1337, 1113, 1148, 1149, 3903, 3945, 0, 597, 912, 882, 863, 848, 847, 1228, 5570, 1266, 970, 1328, 4006, 4067, 1069, 1267, 1394, 4128, 4189, 4250, 1258, 1080, 1367, 4311, 1420, 1431, 1476, 4353, 4414, 1097, 4475, 1501, 805, 1212, 1153, 1155, 1294, 1218, 1268, 1314, 1281, 1329, 1392, 1414, 1448, 1493, 0, 833, 5570, 5570, 5570, 5570, 5570, 5570, 1561, 1001, 1068, 4517, 1595, 1339, 1389, 4559, 4620, 1103, 1600, 1459, 1385, 1520, 535, 4652, 1625, 1286, 1415, 1419, 1447, 1428, 1455, 775, 1451, 1482, 1557, 1487, 1478, 1159, 1565, 0, 4709, 4751, 4793, 5570, 1193, 1495, 1288, 1572, 1555, 1619, 1620, 1599, 1623, 1604, 1635, 1624, 1347, 742, 1505, 1646, 732, 1636, 1628, 682, 1516, 1661, 1247, 5570, 4835, 4877, 4919, 282, 1675, 932, 1285, 1662, 1491, 1688, 1663, 1664, 1668, 1697, 1698, 1679, 1340, 1700, 1704, 1708, 652, 1722, 1730, 4961, 5003, 1791, 5570, 1286, 5570, 5570, 1751, 1723, 1765, 1766, 1767, 1775, 1770, 1291, 1779, 627, 588, 1782, 1802, 1792, 1805, 1885, 1894, 5570, 1803, 1807, 1810, 563, 1849, 1869, 1877, 1874, 1453, 452, 410, 1880, 1882, 362, 1838, 1781, 1801, 323, 305, 1883, 1902, 1897, 1900, 1884, 1914, 1924, 1925, 1938, 1937, 1951, 1971, 1979, 1948, 1955, 1950, 304, 1993, 2021, 1996, 247, 1988, 2027, 177, 1998, 96, 1992, 2000, 2016, 2028, 91, 73, 2029, 1968, 70, 2046, 61, 5570, 5064, 5069, 5082, 5087, 5094, 5104, 5117, 219, 5122, 5132, 5145, 5159, 285, 5165, 5175, 5180, 5190, 5200, 5204, 5213, 5226, 5240, 5250, 5260, 5265, 5278, 605, 5283, 5295, 5309, 1145, 5314, 5326, 5339, 5352, 5365, 5378, 5391, 5404, 1233, 5409, 5421, 5434, 5447, 5460, 5473, 5486, 5499, 1268, 5504, 5516, 5529, 5542, 5555, 1427, 1459 } ; static yyconst flex_int16_t yy_def[611] = { 0, 554, 1, 1, 1, 1, 1, 554, 554, 554, 554, 554, 555, 556, 554, 557, 554, 554, 558, 554, 554, 554, 554, 554, 559, 559, 559, 560, 554, 554, 554, 554, 559, 559, 559, 554, 554, 554, 554, 555, 554, 561, 556, 562, 563, 563, 564, 554, 557, 565, 554, 554, 554, 554, 559, 559, 559, 560, 21, 566, 554, 567, 554, 21, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 569, 568, 554, 23, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 571, 554, 559, 572, 554, 554, 559, 559, 573, 559, 559, 559, 554, 554, 554, 559, 559, 559, 554, 555, 555, 555, 555, 561, 563, 563, 574, 563, 118, 557, 557, 557, 557, 575, 554, 559, 566, 576, 554, 568, 577, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 554, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 554, 570, 570, 578, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 559, 104, 554, 554, 559, 559, 579, 554, 559, 104, 559, 559, 559, 554, 555, 115, 563, 118, 121, 557, 125, 559, 580, 554, 568, 153, 568, 568, 568, 568, 568, 568, 568, 153, 568, 554, 570, 570, 170, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 170, 172, 554, 581, 582, 554, 554, 583, 221, 559, 554, 115, 188, 121, 125, 559, 580, 584, 196, 568, 568, 153, 568, 570, 209, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 170, 221, 585, 586, 554, 554, 554, 587, 587, 588, 589, 554, 590, 221, 554, 591, 592, 592, 593, 221, 196, 153, 568, 570, 244, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 170, 221, 594, 595, 554, 554, 554, 554, 554, 588, 554, 596, 589, 597, 598, 598, 598, 598, 598, 599, 221, 554, 600, 601, 601, 602, 221, 153, 318, 570, 279, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 170, 221, 603, 604, 554, 554, 554, 554, 554, 554, 554, 588, 588, 588, 588, 605, 606, 606, 606, 606, 607, 608, 317, 554, 600, 315, 601, 602, 317, 318, 318, 570, 170, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 317, 609, 554, 554, 554, 554, 554, 554, 554, 588, 588, 588, 348, 606, 606, 606, 353, 608, 554, 601, 317, 317, 317, 364, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 610, 348, 353, 398, 554, 317, 317, 317, 317, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 554, 348, 353, 398, 317, 317, 317, 317, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 348, 353, 608, 554, 317, 554, 554, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 588, 606, 554, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 0, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554 } ; static yyconst flex_int16_t yy_nxt[5656] = { 0, 8, 9, 10, 9, 9, 9, 11, 12, 13, 14, 8, 8, 15, 8, 8, 16, 17, 18, 19, 20, 21, 8, 22, 8, 8, 8, 23, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 25, 24, 24, 24, 24, 24, 24, 26, 24, 24, 24, 24, 24, 27, 28, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 25, 24, 24, 24, 24, 24, 24, 26, 24, 24, 24, 24, 24, 8, 29, 30, 24, 31, 40, 31, 94, 40, 40, 32, 40, 32, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 33, 34, 33, 34, 37, 37, 37, 37, 37, 111, 158, 162, 53, 51, 184, 51, 32, 130, 32, 158, 94, 194, 158, 49, 96, 158, 49, 131, 33, 34, 33, 34, 41, 52, 41, 55, 94, 111, 38, 162, 158, 35, 184, 35, 56, 158, 94, 108, 57, 101, 97, 97, 94, 97, 97, 36, 36, 36, 36, 36, 96, 52, 94, 55, 133, 98, 99, 38, 42, 51, 554, 43, 56, 554, 94, 108, 96, 102, 44, 44, 44, 44, 44, 44, 97, 97, 96, 97, 97, 52, 100, 159, 96, 163, 37, 37, 37, 37, 37, 98, 98, 110, 96, 158, 46, 102, 46, 44, 44, 44, 44, 44, 44, 60, 96, 158, 223, 52, 100, 159, 61, 62, 163, 63, 225, 43, 158, 43, 38, 110, 64, 64, 65, 66, 67, 64, 68, 69, 70, 64, 71, 64, 72, 73, 64, 74, 64, 75, 76, 77, 64, 64, 64, 64, 64, 64, 78, 38, 79, 64, 64, 65, 66, 67, 64, 68, 69, 70, 71, 64, 72, 73, 64, 74, 64, 75, 76, 77, 64, 64, 64, 64, 64, 64, 223, 94, 237, 64, 81, 223, 194, 476, 259, 64, 64, 95, 158, 295, 82, 83, 84, 82, 82, 85, 82, 82, 86, 82, 82, 87, 88, 89, 82, 90, 82, 91, 82, 92, 82, 82, 82, 82, 82, 82, 93, 96, 82, 82, 83, 84, 82, 82, 85, 82, 82, 86, 82, 87, 88, 89, 82, 90, 82, 91, 82, 92, 82, 82, 82, 82, 82, 82, 131, 158, 158, 82, 104, 161, 97, 97, 94, 97, 97, 104, 104, 104, 104, 104, 104, 158, 94, 131, 158, 98, 99, 40, 131, 131, 128, 94, 131, 131, 554, 131, 58, 161, 135, 97, 97, 133, 97, 97, 104, 104, 104, 104, 104, 104, 109, 94, 96, 131, 98, 99, 64, 131, 134, 128, 133, 138, 96, 158, 139, 133, 133, 135, 154, 133, 133, 96, 133, 41, 160, 131, 136, 131, 109, 39, 39, 39, 112, 131, 64, 114, 134, 137, 151, 138, 133, 96, 139, 158, 133, 141, 146, 164, 115, 140, 167, 40, 40, 160, 136, 115, 115, 115, 115, 115, 115, 158, 133, 147, 133, 137, 151, 148, 158, 158, 133, 40, 223, 48, 141, 146, 164, 140, 165, 167, 338, 116, 168, 40, 115, 115, 115, 115, 115, 115, 118, 147, 49, 49, 158, 148, 131, 118, 118, 118, 118, 118, 118, 158, 158, 97, 97, 165, 97, 97, 168, 39, 131, 40, 222, 131, 40, 41, 230, 142, 144, 145, 166, 119, 49, 143, 118, 118, 118, 118, 118, 118, 121, 133, 195, 195, 195, 195, 195, 121, 121, 121, 121, 121, 121, 131, 230, 142, 158, 133, 131, 166, 133, 143, 96, 94, 254, 133, 94, 41, 211, 149, 41, 97, 97, 150, 97, 97, 121, 121, 121, 121, 121, 121, 48, 48, 48, 122, 98, 98, 173, 173, 133, 173, 173, 124, 158, 133, 176, 211, 149, 182, 158, 125, 150, 96, 94, 94, 96, 174, 125, 125, 125, 125, 125, 125, 173, 173, 94, 173, 173, 94, 223, 257, 158, 257, 176, 131, 94, 182, 384, 179, 183, 192, 131, 175, 126, 131, 181, 125, 125, 125, 125, 125, 125, 104, 96, 96, 198, 158, 227, 197, 104, 104, 104, 104, 104, 104, 96, 179, 183, 96, 192, 131, 133, 216, 131, 181, 96, 131, 131, 133, 173, 173, 133, 173, 173, 198, 131, 158, 197, 104, 104, 104, 104, 104, 104, 153, 158, 214, 96, 174, 207, 216, 153, 153, 153, 153, 153, 153, 133, 131, 199, 133, 357, 131, 133, 133, 131, 131, 158, 131, 131, 158, 158, 133, 173, 173, 214, 173, 173, 207, 131, 153, 153, 153, 153, 153, 153, 554, 199, 131, 202, 357, 215, 200, 201, 131, 133, 203, 82, 82, 133, 158, 82, 133, 133, 82, 133, 133, 82, 82, 82, 212, 82, 210, 82, 158, 82, 133, 202, 156, 158, 215, 205, 201, 158, 203, 133, 82, 82, 94, 131, 82, 133, 217, 82, 213, 82, 82, 82, 212, 82, 210, 82, 219, 82, 218, 158, 156, 170, 301, 205, 158, 222, 158, 158, 170, 170, 170, 170, 170, 170, 158, 217, 213, 40, 158, 131, 133, 269, 96, 94, 219, 173, 173, 218, 173, 173, 175, 131, 94, 239, 131, 243, 131, 170, 170, 170, 170, 170, 170, 172, 174, 96, 253, 158, 302, 269, 172, 172, 172, 172, 172, 172, 133, 131, 49, 131, 158, 200, 239, 96, 243, 158, 94, 246, 133, 223, 229, 133, 96, 133, 242, 253, 158, 158, 301, 172, 172, 172, 172, 172, 172, 103, 103, 103, 103, 103, 235, 389, 388, 245, 133, 246, 133, 94, 229, 131, 158, 247, 249, 242, 180, 248, 96, 387, 158, 158, 250, 180, 180, 180, 180, 180, 180, 158, 235, 94, 131, 245, 282, 240, 302, 131, 386, 281, 158, 247, 249, 251, 252, 248, 284, 158, 133, 96, 312, 250, 180, 180, 180, 180, 180, 180, 113, 185, 185, 185, 113, 240, 40, 158, 158, 281, 385, 133, 158, 96, 251, 252, 133, 131, 478, 186, 312, 278, 95, 158, 158, 94, 186, 186, 186, 186, 186, 186, 262, 262, 262, 262, 262, 158, 264, 342, 277, 280, 283, 265, 301, 266, 285, 274, 341, 278, 301, 158, 41, 158, 133, 186, 186, 186, 186, 186, 186, 39, 39, 39, 112, 96, 286, 114, 277, 280, 283, 287, 158, 131, 158, 285, 274, 320, 158, 340, 115, 301, 339, 322, 267, 304, 323, 115, 115, 115, 115, 115, 115, 158, 286, 158, 302, 158, 329, 287, 298, 262, 262, 262, 262, 262, 320, 264, 158, 158, 133, 322, 265, 116, 266, 323, 115, 115, 115, 115, 115, 115, 118, 324, 297, 301, 329, 302, 333, 118, 118, 118, 118, 118, 118, 296, 299, 299, 299, 299, 299, 288, 554, 330, 158, 367, 158, 554, 301, 266, 289, 369, 324, 267, 301, 119, 290, 333, 118, 118, 118, 118, 118, 118, 188, 158, 304, 331, 371, 332, 288, 188, 188, 188, 188, 188, 188, 158, 289, 158, 369, 158, 158, 325, 290, 237, 158, 405, 267, 158, 158, 158, 365, 399, 302, 304, 331, 371, 332, 158, 188, 188, 188, 188, 188, 188, 120, 120, 120, 120, 120, 325, 368, 326, 299, 299, 299, 299, 299, 158, 365, 399, 425, 158, 327, 189, 377, 266, 293, 370, 293, 328, 189, 189, 189, 189, 189, 189, 158, 158, 368, 158, 326, 343, 343, 343, 343, 343, 372, 447, 425, 373, 327, 378, 377, 379, 344, 370, 412, 328, 158, 189, 189, 189, 189, 189, 189, 123, 190, 190, 190, 123, 411, 261, 158, 158, 372, 158, 40, 158, 373, 158, 378, 95, 379, 158, 191, 412, 299, 299, 299, 299, 299, 191, 191, 191, 191, 191, 191, 260, 411, 266, 343, 343, 343, 343, 343, 158, 299, 299, 299, 299, 299, 237, 410, 344, 336, 453, 336, 49, 414, 266, 191, 191, 191, 191, 191, 191, 48, 48, 48, 122, 103, 103, 103, 103, 103, 472, 158, 124, 267, 300, 554, 410, 158, 453, 301, 125, 95, 414, 119, 382, 301, 382, 125, 125, 125, 125, 125, 125, 267, 299, 299, 299, 299, 299, 299, 299, 299, 299, 299, 479, 497, 158, 266, 95, 95, 226, 95, 266, 126, 505, 415, 125, 125, 125, 125, 125, 125, 196, 436, 174, 302, 304, 158, 417, 196, 196, 196, 196, 196, 196, 390, 343, 343, 343, 390, 158, 301, 413, 415, 455, 158, 267, 554, 391, 158, 158, 267, 436, 158, 158, 416, 417, 301, 196, 196, 196, 196, 196, 196, 152, 152, 152, 152, 152, 206, 413, 374, 455, 158, 113, 185, 185, 185, 113, 131, 40, 418, 375, 204, 416, 489, 465, 302, 158, 376, 204, 204, 204, 204, 204, 204, 158, 554, 304, 158, 374, 394, 343, 343, 343, 394, 158, 301, 95, 418, 375, 130, 301, 489, 395, 465, 133, 376, 427, 204, 204, 204, 204, 204, 204, 209, 41, 120, 120, 120, 120, 120, 209, 209, 209, 209, 209, 209, 123, 190, 190, 190, 123, 421, 419, 421, 119, 427, 304, 40, 119, 158, 437, 304, 420, 169, 169, 169, 169, 169, 438, 209, 209, 209, 209, 209, 209, 169, 169, 169, 169, 169, 419, 158, 158, 449, 518, 449, 158, 119, 440, 437, 95, 420, 439, 178, 220, 158, 442, 438, 49, 441, 158, 220, 220, 220, 220, 220, 220, 95, 171, 171, 171, 171, 171, 426, 158, 158, 440, 401, 158, 402, 158, 439, 158, 446, 95, 442, 95, 158, 441, 403, 220, 220, 220, 220, 220, 220, 171, 171, 171, 171, 171, 426, 443, 445, 407, 158, 401, 454, 402, 158, 155, 95, 446, 408, 158, 221, 481, 403, 158, 409, 466, 428, 221, 221, 221, 221, 221, 221, 158, 429, 443, 445, 158, 407, 470, 454, 390, 343, 343, 343, 390, 408, 301, 158, 481, 58, 78, 409, 466, 391, 428, 221, 221, 221, 221, 221, 221, 228, 429, 60, 457, 444, 470, 95, 228, 228, 228, 228, 228, 228, 394, 343, 343, 343, 394, 187, 187, 187, 187, 187, 130, 301, 158, 395, 158, 448, 456, 127, 302, 457, 444, 119, 158, 228, 228, 228, 228, 228, 228, 231, 208, 208, 208, 208, 208, 462, 231, 231, 231, 231, 231, 231, 107, 448, 456, 106, 105, 80, 59, 58, 460, 50, 304, 47, 458, 459, 158, 119, 461, 554, 464, 158, 469, 554, 462, 231, 231, 231, 231, 231, 231, 187, 187, 187, 187, 187, 158, 158, 460, 463, 158, 158, 158, 458, 459, 158, 468, 461, 467, 464, 232, 469, 158, 158, 471, 480, 95, 232, 232, 232, 232, 232, 232, 158, 554, 483, 484, 463, 477, 554, 485, 554, 554, 554, 468, 554, 467, 488, 158, 158, 158, 158, 482, 471, 480, 158, 232, 232, 232, 232, 232, 232, 233, 483, 484, 490, 158, 477, 485, 233, 233, 233, 233, 233, 233, 158, 488, 486, 487, 491, 492, 482, 554, 554, 158, 158, 554, 158, 554, 499, 554, 158, 554, 494, 490, 158, 554, 493, 233, 233, 233, 233, 233, 233, 234, 486, 487, 491, 492, 158, 158, 234, 234, 234, 234, 234, 234, 158, 499, 554, 554, 554, 494, 498, 554, 493, 305, 305, 305, 305, 305, 501, 502, 554, 500, 504, 554, 554, 158, 266, 234, 234, 234, 234, 234, 234, 195, 195, 195, 195, 195, 498, 158, 158, 158, 507, 503, 158, 522, 506, 501, 502, 158, 500, 504, 238, 158, 508, 158, 158, 509, 513, 238, 238, 238, 238, 238, 238, 267, 158, 510, 523, 511, 507, 503, 512, 522, 506, 158, 158, 158, 554, 158, 554, 158, 554, 508, 158, 509, 521, 513, 238, 238, 238, 238, 238, 238, 241, 510, 523, 511, 554, 514, 512, 241, 241, 241, 241, 241, 241, 346, 392, 392, 392, 346, 158, 301, 554, 521, 351, 396, 396, 396, 351, 515, 554, 158, 517, 554, 554, 301, 514, 554, 241, 241, 241, 241, 241, 241, 208, 208, 208, 208, 208, 519, 516, 158, 528, 524, 554, 520, 158, 526, 515, 158, 525, 517, 158, 244, 158, 158, 158, 302, 554, 527, 244, 244, 244, 244, 244, 244, 304, 519, 516, 158, 528, 524, 158, 520, 158, 554, 526, 554, 554, 525, 529, 554, 554, 554, 530, 554, 158, 527, 531, 244, 244, 244, 244, 244, 244, 255, 158, 158, 532, 554, 533, 534, 255, 255, 255, 255, 255, 255, 529, 158, 158, 537, 530, 539, 538, 554, 531, 554, 554, 554, 158, 535, 158, 158, 554, 552, 532, 158, 533, 536, 534, 255, 255, 255, 255, 255, 255, 256, 544, 537, 158, 539, 538, 158, 256, 256, 256, 256, 256, 256, 535, 158, 554, 552, 554, 554, 540, 541, 536, 543, 158, 546, 547, 548, 158, 158, 549, 544, 158, 554, 158, 554, 158, 256, 256, 256, 256, 256, 256, 103, 103, 103, 103, 103, 540, 542, 545, 543, 158, 546, 547, 548, 551, 158, 550, 549, 553, 554, 268, 158, 158, 158, 554, 554, 554, 268, 268, 268, 268, 268, 268, 554, 554, 542, 545, 554, 554, 554, 158, 554, 551, 554, 550, 554, 554, 553, 554, 554, 554, 554, 554, 554, 554, 554, 268, 268, 268, 268, 268, 268, 270, 554, 554, 554, 554, 554, 554, 270, 270, 270, 270, 270, 270, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 270, 270, 270, 270, 270, 270, 271, 554, 554, 554, 554, 554, 554, 271, 271, 271, 271, 271, 271, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 271, 271, 271, 271, 271, 271, 272, 554, 554, 554, 554, 554, 554, 272, 272, 272, 272, 272, 272, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 272, 272, 272, 272, 272, 272, 273, 554, 554, 554, 554, 554, 554, 273, 273, 273, 273, 273, 273, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 273, 273, 273, 273, 273, 273, 275, 554, 554, 554, 554, 554, 554, 275, 275, 275, 275, 275, 275, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 275, 275, 275, 275, 275, 275, 276, 554, 554, 554, 554, 554, 554, 276, 276, 276, 276, 276, 276, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 276, 276, 276, 276, 276, 276, 279, 554, 554, 554, 554, 554, 554, 279, 279, 279, 279, 279, 279, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 279, 279, 279, 279, 279, 279, 291, 554, 554, 554, 554, 554, 554, 291, 291, 291, 291, 291, 291, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 291, 291, 291, 291, 291, 291, 292, 554, 554, 554, 554, 554, 554, 292, 292, 292, 292, 292, 292, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 292, 292, 292, 292, 292, 292, 299, 299, 299, 299, 305, 554, 307, 554, 554, 554, 554, 307, 307, 308, 554, 554, 554, 554, 554, 309, 554, 554, 554, 554, 554, 554, 309, 309, 309, 309, 309, 309, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 310, 554, 554, 309, 309, 309, 309, 309, 309, 103, 103, 103, 103, 103, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 311, 554, 554, 554, 554, 554, 554, 311, 311, 311, 311, 311, 311, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 311, 311, 311, 311, 311, 311, 113, 185, 185, 185, 113, 554, 40, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 313, 554, 554, 554, 554, 554, 554, 313, 313, 313, 313, 313, 313, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 41, 554, 554, 313, 313, 313, 313, 313, 313, 187, 187, 187, 187, 187, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 314, 554, 554, 554, 554, 554, 554, 314, 314, 314, 314, 314, 314, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 119, 554, 554, 314, 314, 314, 314, 314, 314, 120, 120, 120, 120, 120, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 315, 554, 554, 554, 554, 554, 554, 315, 315, 315, 315, 315, 315, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 119, 554, 554, 315, 315, 315, 315, 315, 315, 123, 190, 190, 190, 123, 554, 554, 554, 554, 554, 554, 40, 554, 554, 554, 554, 554, 554, 554, 316, 554, 554, 554, 554, 554, 554, 316, 316, 316, 316, 316, 316, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 49, 554, 554, 316, 316, 316, 316, 316, 316, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 95, 554, 554, 554, 554, 554, 554, 95, 95, 95, 95, 95, 95, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 317, 554, 554, 554, 554, 554, 554, 554, 554, 554, 95, 95, 95, 95, 95, 95, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 317, 318, 554, 554, 554, 554, 554, 554, 318, 318, 318, 318, 318, 318, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 318, 318, 318, 318, 318, 318, 319, 554, 554, 554, 554, 554, 554, 319, 319, 319, 319, 319, 319, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 319, 319, 319, 319, 319, 319, 321, 554, 554, 554, 554, 554, 554, 321, 321, 321, 321, 321, 321, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 321, 321, 321, 321, 321, 321, 334, 554, 554, 554, 554, 554, 554, 334, 334, 334, 334, 334, 334, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 334, 334, 334, 334, 334, 334, 335, 554, 554, 554, 554, 554, 554, 335, 335, 335, 335, 335, 335, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 335, 335, 335, 335, 335, 335, 300, 300, 300, 345, 554, 554, 347, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 348, 554, 554, 554, 554, 554, 554, 348, 348, 348, 348, 348, 348, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 349, 554, 554, 348, 348, 348, 348, 348, 348, 303, 303, 303, 350, 554, 554, 554, 554, 554, 554, 554, 352, 554, 554, 554, 554, 554, 554, 554, 353, 554, 554, 554, 554, 554, 554, 353, 353, 353, 353, 353, 353, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 354, 554, 554, 353, 353, 353, 353, 353, 353, 305, 305, 305, 305, 305, 554, 554, 554, 554, 554, 554, 554, 554, 266, 554, 554, 554, 554, 554, 355, 554, 554, 554, 554, 554, 554, 355, 355, 355, 355, 355, 355, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 267, 554, 554, 355, 355, 355, 355, 355, 355, 299, 299, 299, 299, 305, 554, 307, 554, 554, 554, 554, 307, 307, 308, 554, 554, 554, 554, 554, 309, 554, 554, 554, 554, 554, 554, 309, 309, 309, 309, 309, 309, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 310, 554, 554, 309, 309, 309, 309, 309, 309, 103, 103, 103, 103, 103, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 356, 554, 554, 554, 554, 554, 554, 356, 356, 356, 356, 356, 356, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 356, 356, 356, 356, 356, 356, 113, 185, 185, 185, 113, 554, 40, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 358, 554, 554, 554, 554, 554, 554, 358, 358, 358, 358, 358, 358, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 41, 554, 554, 358, 358, 358, 358, 358, 358, 187, 187, 187, 187, 187, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 359, 554, 554, 554, 554, 554, 554, 359, 359, 359, 359, 359, 359, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 119, 554, 554, 359, 359, 359, 359, 359, 359, 120, 120, 120, 120, 120, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 360, 554, 554, 554, 554, 554, 554, 360, 360, 360, 360, 360, 360, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 119, 554, 554, 360, 360, 360, 360, 360, 360, 123, 190, 190, 190, 123, 554, 554, 554, 554, 554, 554, 40, 554, 554, 554, 554, 554, 554, 554, 361, 554, 554, 554, 554, 554, 554, 361, 361, 361, 361, 361, 361, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 49, 554, 554, 361, 361, 361, 361, 361, 361, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 362, 554, 554, 95, 554, 554, 554, 554, 554, 554, 95, 95, 95, 95, 95, 95, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 95, 95, 95, 95, 95, 95, 195, 195, 195, 195, 195, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 363, 554, 554, 554, 554, 554, 554, 363, 363, 363, 363, 363, 363, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 363, 363, 363, 363, 363, 363, 152, 152, 152, 152, 152, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 364, 554, 554, 554, 554, 554, 554, 364, 364, 364, 364, 364, 364, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 364, 364, 364, 364, 364, 364, 366, 554, 554, 554, 554, 554, 554, 366, 366, 366, 366, 366, 366, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 366, 366, 366, 366, 366, 366, 380, 554, 554, 554, 554, 554, 554, 380, 380, 380, 380, 380, 380, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 380, 380, 380, 380, 380, 380, 381, 554, 554, 554, 554, 554, 554, 381, 381, 381, 381, 381, 381, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 381, 381, 381, 381, 381, 381, 346, 392, 392, 392, 346, 554, 301, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 393, 554, 554, 554, 554, 554, 554, 393, 393, 393, 393, 393, 393, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 302, 554, 554, 393, 393, 393, 393, 393, 393, 300, 300, 300, 345, 554, 554, 347, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 348, 554, 554, 554, 554, 554, 554, 348, 348, 348, 348, 348, 348, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 349, 554, 554, 348, 348, 348, 348, 348, 348, 351, 396, 396, 396, 351, 554, 554, 554, 554, 554, 554, 301, 554, 554, 554, 554, 554, 554, 554, 397, 554, 554, 554, 554, 554, 554, 397, 397, 397, 397, 397, 397, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 304, 554, 554, 397, 397, 397, 397, 397, 397, 303, 303, 303, 350, 554, 554, 554, 554, 554, 554, 554, 352, 554, 554, 554, 554, 554, 554, 554, 353, 554, 554, 554, 554, 554, 554, 353, 353, 353, 353, 353, 353, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 354, 554, 554, 353, 353, 353, 353, 353, 353, 305, 305, 305, 305, 305, 554, 554, 554, 554, 554, 554, 554, 554, 266, 554, 554, 554, 554, 554, 398, 554, 554, 554, 554, 554, 554, 398, 398, 398, 398, 398, 398, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 267, 554, 554, 398, 398, 398, 398, 398, 398, 187, 187, 187, 187, 187, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 400, 554, 554, 554, 554, 554, 554, 400, 400, 400, 400, 400, 400, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 400, 400, 400, 400, 400, 400, 404, 554, 554, 554, 554, 554, 554, 404, 404, 404, 404, 404, 404, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 404, 404, 404, 404, 404, 404, 152, 152, 152, 152, 152, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 132, 554, 554, 554, 554, 554, 554, 132, 132, 132, 132, 132, 132, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 132, 132, 132, 132, 132, 132, 208, 208, 208, 208, 208, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 406, 554, 554, 554, 554, 554, 554, 406, 406, 406, 406, 406, 406, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 406, 406, 406, 406, 406, 406, 422, 554, 554, 554, 554, 554, 554, 422, 422, 422, 422, 422, 422, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 422, 422, 422, 422, 422, 422, 423, 554, 554, 554, 554, 554, 554, 423, 423, 423, 423, 423, 423, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 423, 423, 423, 423, 423, 423, 305, 305, 305, 305, 305, 554, 554, 554, 554, 554, 554, 554, 554, 266, 554, 554, 554, 554, 554, 424, 554, 554, 554, 554, 554, 554, 424, 424, 424, 424, 424, 424, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 267, 554, 554, 424, 424, 424, 424, 424, 424, 430, 554, 554, 554, 554, 554, 554, 431, 554, 432, 554, 554, 554, 554, 433, 434, 554, 554, 435, 554, 554, 554, 554, 158, 554, 554, 554, 554, 554, 430, 554, 554, 554, 554, 554, 431, 554, 432, 554, 554, 554, 554, 433, 434, 554, 554, 435, 450, 554, 554, 554, 554, 554, 554, 450, 450, 450, 450, 450, 450, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 450, 450, 450, 450, 450, 450, 451, 554, 554, 554, 554, 554, 554, 451, 451, 451, 451, 451, 451, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 451, 451, 451, 451, 451, 451, 452, 554, 554, 554, 554, 554, 554, 452, 452, 452, 452, 452, 452, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 452, 452, 452, 452, 452, 452, 473, 554, 554, 554, 554, 554, 554, 473, 473, 473, 473, 473, 473, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 473, 473, 473, 473, 473, 473, 474, 554, 554, 554, 554, 554, 554, 474, 474, 474, 474, 474, 474, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 474, 474, 474, 474, 474, 474, 475, 554, 554, 554, 554, 554, 554, 475, 475, 475, 475, 475, 475, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 475, 475, 475, 475, 475, 475, 495, 554, 554, 554, 554, 554, 554, 495, 495, 495, 495, 495, 495, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 495, 495, 495, 495, 495, 495, 496, 554, 554, 554, 554, 554, 554, 496, 496, 496, 496, 496, 496, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 496, 496, 496, 496, 496, 496, 39, 554, 554, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 45, 45, 554, 45, 45, 48, 554, 554, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 54, 54, 554, 54, 54, 95, 554, 95, 95, 554, 95, 95, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 117, 117, 554, 117, 117, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 132, 132, 132, 554, 132, 132, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 157, 157, 554, 157, 157, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 177, 177, 177, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 224, 224, 224, 224, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 258, 258, 258, 258, 263, 263, 263, 263, 263, 263, 554, 263, 263, 263, 263, 263, 263, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 294, 294, 294, 294, 263, 263, 263, 263, 263, 263, 554, 263, 263, 263, 263, 263, 263, 300, 554, 554, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 303, 554, 554, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 306, 306, 306, 306, 306, 306, 306, 306, 306, 306, 306, 306, 306, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 117, 117, 117, 117, 554, 554, 554, 554, 117, 117, 554, 117, 117, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 337, 337, 337, 337, 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 263, 263, 263, 263, 263, 554, 554, 263, 263, 263, 263, 263, 263, 306, 306, 306, 306, 306, 306, 306, 306, 306, 306, 306, 306, 306, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 117, 117, 117, 117, 554, 554, 554, 554, 117, 117, 554, 117, 117, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 383, 383, 383, 383, 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, 303, 303, 554, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 263, 263, 263, 263, 263, 554, 554, 263, 263, 263, 263, 263, 263, 7, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554 } ; static yyconst flex_int16_t yy_chk[5656] = { 0, 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, 3, 15, 4, 24, 48, 12, 3, 39, 4, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 3, 3, 4, 4, 11, 11, 11, 11, 11, 38, 553, 86, 18, 17, 111, 18, 3, 130, 4, 551, 32, 130, 548, 15, 24, 86, 48, 64, 3, 3, 4, 4, 12, 17, 39, 18, 54, 38, 11, 86, 547, 3, 111, 4, 18, 542, 26, 32, 18, 26, 25, 25, 95, 25, 25, 36, 36, 36, 36, 36, 32, 17, 25, 18, 64, 25, 25, 11, 13, 51, 42, 13, 18, 42, 34, 32, 54, 26, 13, 13, 13, 13, 13, 13, 52, 52, 26, 52, 52, 51, 25, 83, 95, 87, 37, 37, 37, 37, 37, 52, 52, 34, 25, 83, 13, 26, 42, 13, 13, 13, 13, 13, 13, 21, 34, 87, 177, 51, 25, 83, 21, 21, 87, 21, 177, 562, 540, 562, 37, 34, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 37, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 224, 103, 237, 21, 23, 258, 237, 453, 224, 567, 567, 453, 537, 258, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 103, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 76, 533, 516, 23, 27, 85, 33, 33, 56, 33, 33, 27, 27, 27, 27, 27, 27, 85, 33, 66, 515, 33, 33, 113, 69, 79, 56, 171, 132, 68, 58, 65, 58, 85, 66, 55, 55, 76, 55, 55, 27, 27, 27, 27, 27, 27, 33, 55, 56, 67, 55, 55, 58, 77, 65, 56, 66, 68, 33, 511, 69, 69, 79, 66, 79, 132, 68, 171, 65, 113, 84, 70, 67, 71, 33, 41, 41, 41, 41, 74, 58, 41, 65, 67, 77, 68, 67, 55, 69, 84, 77, 71, 74, 88, 41, 70, 91, 123, 124, 84, 67, 41, 41, 41, 41, 41, 41, 508, 70, 74, 71, 67, 77, 74, 91, 88, 74, 114, 294, 122, 71, 74, 88, 70, 89, 91, 294, 41, 92, 122, 41, 41, 41, 41, 41, 41, 44, 74, 123, 124, 92, 74, 72, 44, 44, 44, 44, 44, 44, 507, 89, 73, 73, 89, 73, 73, 92, 112, 134, 185, 176, 136, 112, 114, 184, 72, 73, 73, 90, 44, 122, 72, 44, 44, 44, 44, 44, 44, 46, 72, 404, 404, 404, 404, 404, 46, 46, 46, 46, 46, 46, 137, 184, 72, 90, 134, 75, 90, 136, 72, 176, 100, 219, 73, 109, 185, 160, 75, 112, 97, 97, 75, 97, 97, 46, 46, 46, 46, 46, 46, 49, 49, 49, 49, 97, 97, 98, 98, 137, 98, 98, 49, 160, 75, 100, 160, 75, 109, 219, 49, 75, 100, 102, 110, 109, 98, 49, 49, 49, 49, 49, 49, 99, 99, 128, 99, 99, 108, 337, 581, 501, 581, 100, 139, 99, 109, 337, 102, 110, 128, 135, 99, 49, 138, 108, 49, 49, 49, 49, 49, 49, 57, 102, 110, 138, 490, 179, 135, 57, 57, 57, 57, 57, 57, 128, 102, 110, 108, 128, 140, 139, 165, 141, 108, 99, 142, 143, 135, 144, 144, 138, 144, 144, 138, 146, 165, 135, 57, 57, 57, 57, 57, 57, 78, 489, 163, 179, 144, 156, 165, 78, 78, 78, 78, 78, 78, 140, 147, 141, 141, 312, 148, 142, 143, 152, 150, 163, 151, 195, 470, 156, 146, 145, 145, 163, 145, 145, 156, 149, 78, 78, 78, 78, 78, 78, 81, 141, 145, 150, 312, 164, 145, 149, 154, 147, 151, 81, 81, 148, 445, 81, 152, 150, 81, 151, 195, 81, 81, 81, 161, 81, 159, 81, 164, 81, 149, 150, 81, 159, 164, 154, 149, 161, 151, 145, 81, 81, 181, 197, 81, 154, 166, 81, 162, 81, 81, 81, 161, 81, 159, 81, 168, 81, 167, 162, 81, 93, 264, 154, 442, 182, 166, 168, 93, 93, 93, 93, 93, 93, 439, 166, 162, 190, 167, 198, 197, 230, 181, 175, 168, 173, 173, 167, 173, 173, 175, 199, 183, 198, 201, 207, 202, 93, 93, 93, 93, 93, 93, 96, 173, 182, 218, 413, 264, 230, 96, 96, 96, 96, 96, 96, 198, 200, 190, 205, 207, 200, 198, 175, 207, 218, 192, 211, 199, 383, 183, 201, 183, 202, 205, 218, 211, 368, 300, 96, 96, 96, 96, 96, 96, 104, 104, 104, 104, 104, 192, 342, 341, 210, 200, 211, 205, 104, 183, 203, 210, 212, 214, 205, 104, 213, 192, 340, 212, 214, 215, 104, 104, 104, 104, 104, 104, 213, 192, 229, 239, 210, 247, 203, 300, 240, 339, 246, 215, 212, 214, 216, 217, 213, 249, 246, 203, 104, 269, 215, 104, 104, 104, 104, 104, 104, 115, 115, 115, 115, 115, 203, 115, 216, 217, 246, 338, 239, 247, 229, 216, 217, 240, 242, 455, 115, 269, 243, 455, 325, 249, 235, 115, 115, 115, 115, 115, 115, 227, 227, 227, 227, 227, 243, 227, 298, 242, 245, 248, 227, 265, 227, 250, 235, 297, 243, 346, 248, 115, 245, 242, 115, 115, 115, 115, 115, 115, 116, 116, 116, 116, 235, 251, 116, 242, 245, 248, 253, 250, 277, 251, 250, 235, 278, 253, 296, 116, 391, 295, 280, 227, 265, 281, 116, 116, 116, 116, 116, 116, 285, 251, 278, 346, 280, 286, 253, 261, 262, 262, 262, 262, 262, 278, 262, 281, 286, 277, 280, 262, 116, 262, 281, 116, 116, 116, 116, 116, 116, 118, 282, 260, 303, 286, 391, 290, 118, 118, 118, 118, 118, 118, 259, 263, 263, 263, 263, 263, 254, 263, 287, 282, 322, 290, 263, 392, 263, 254, 324, 282, 262, 350, 118, 254, 290, 118, 118, 118, 118, 118, 118, 119, 254, 303, 288, 327, 289, 254, 119, 119, 119, 119, 119, 119, 324, 254, 287, 324, 322, 252, 283, 254, 236, 327, 365, 263, 288, 283, 289, 320, 357, 392, 350, 288, 327, 289, 320, 119, 119, 119, 119, 119, 119, 121, 121, 121, 121, 121, 283, 323, 284, 299, 299, 299, 299, 299, 323, 320, 357, 399, 365, 284, 121, 331, 299, 585, 326, 585, 284, 121, 121, 121, 121, 121, 121, 284, 331, 323, 326, 284, 301, 301, 301, 301, 301, 328, 419, 399, 329, 284, 332, 331, 333, 301, 326, 371, 284, 328, 121, 121, 121, 121, 121, 121, 125, 125, 125, 125, 125, 370, 226, 332, 333, 328, 329, 125, 370, 329, 371, 332, 426, 333, 419, 125, 371, 305, 305, 305, 305, 305, 125, 125, 125, 125, 125, 125, 225, 370, 305, 343, 343, 343, 343, 343, 208, 306, 306, 306, 306, 306, 193, 369, 343, 594, 426, 594, 125, 373, 306, 125, 125, 125, 125, 125, 125, 126, 126, 126, 126, 356, 356, 356, 356, 356, 448, 369, 126, 305, 345, 351, 369, 373, 426, 345, 126, 356, 373, 187, 603, 351, 603, 126, 126, 126, 126, 126, 126, 306, 307, 307, 307, 307, 307, 308, 308, 308, 308, 308, 456, 477, 448, 307, 456, 477, 178, 428, 308, 126, 487, 374, 126, 126, 126, 126, 126, 126, 133, 407, 174, 345, 351, 374, 376, 133, 133, 133, 133, 133, 133, 347, 347, 347, 347, 347, 376, 347, 372, 374, 428, 407, 307, 395, 347, 169, 487, 308, 407, 372, 157, 375, 376, 395, 133, 133, 133, 133, 133, 133, 153, 153, 153, 153, 153, 155, 372, 330, 428, 375, 358, 358, 358, 358, 358, 153, 358, 377, 330, 153, 375, 466, 438, 347, 377, 330, 153, 153, 153, 153, 153, 153, 330, 396, 395, 466, 330, 352, 352, 352, 352, 352, 438, 396, 402, 377, 330, 129, 352, 466, 352, 438, 153, 330, 402, 153, 153, 153, 153, 153, 153, 158, 358, 360, 360, 360, 360, 360, 158, 158, 158, 158, 158, 158, 361, 361, 361, 361, 361, 609, 378, 609, 120, 402, 396, 361, 117, 378, 408, 352, 379, 380, 380, 380, 380, 380, 409, 158, 158, 158, 158, 158, 158, 170, 170, 170, 170, 170, 378, 379, 408, 610, 506, 610, 409, 360, 411, 408, 401, 379, 410, 101, 170, 411, 414, 409, 361, 412, 82, 170, 170, 170, 170, 170, 170, 362, 381, 381, 381, 381, 381, 401, 410, 380, 411, 362, 414, 362, 506, 410, 412, 418, 381, 414, 427, 170, 412, 362, 170, 170, 170, 170, 170, 170, 172, 172, 172, 172, 172, 401, 415, 417, 367, 418, 362, 427, 362, 415, 80, 403, 418, 367, 417, 172, 458, 362, 458, 367, 440, 403, 172, 172, 172, 172, 172, 172, 367, 403, 415, 417, 440, 367, 446, 427, 390, 390, 390, 390, 390, 367, 390, 446, 458, 62, 61, 367, 440, 390, 403, 172, 172, 172, 172, 172, 172, 180, 403, 60, 430, 416, 446, 429, 180, 180, 180, 180, 180, 180, 394, 394, 394, 394, 394, 400, 400, 400, 400, 400, 59, 394, 430, 394, 416, 420, 429, 53, 390, 430, 416, 45, 420, 180, 180, 180, 180, 180, 180, 186, 406, 406, 406, 406, 406, 435, 186, 186, 186, 186, 186, 186, 30, 420, 429, 29, 28, 22, 20, 19, 433, 16, 394, 14, 431, 432, 433, 400, 434, 7, 437, 435, 444, 0, 435, 186, 186, 186, 186, 186, 186, 188, 188, 188, 188, 188, 431, 432, 433, 436, 434, 437, 406, 431, 432, 444, 443, 434, 441, 437, 188, 444, 436, 443, 447, 457, 454, 188, 188, 188, 188, 188, 188, 441, 0, 460, 461, 436, 454, 0, 462, 0, 0, 0, 443, 0, 441, 465, 447, 457, 460, 461, 459, 447, 457, 462, 188, 188, 188, 188, 188, 188, 189, 460, 461, 467, 465, 454, 462, 189, 189, 189, 189, 189, 189, 459, 465, 463, 464, 468, 469, 459, 0, 0, 463, 464, 0, 467, 0, 481, 0, 468, 0, 472, 467, 469, 0, 471, 189, 189, 189, 189, 189, 189, 191, 463, 464, 468, 469, 471, 481, 191, 191, 191, 191, 191, 191, 472, 481, 0, 0, 0, 472, 480, 0, 471, 475, 475, 475, 475, 475, 483, 484, 0, 482, 486, 0, 0, 480, 475, 191, 191, 191, 191, 191, 191, 196, 196, 196, 196, 196, 480, 482, 483, 484, 491, 485, 486, 513, 488, 483, 484, 485, 482, 486, 196, 488, 492, 513, 491, 493, 500, 196, 196, 196, 196, 196, 196, 475, 493, 494, 514, 498, 491, 485, 499, 513, 488, 514, 492, 498, 0, 494, 0, 499, 0, 492, 500, 493, 512, 500, 196, 196, 196, 196, 196, 196, 204, 494, 514, 498, 0, 502, 499, 204, 204, 204, 204, 204, 204, 495, 495, 495, 495, 495, 512, 495, 0, 512, 496, 496, 496, 496, 496, 503, 0, 502, 505, 0, 0, 496, 502, 0, 204, 204, 204, 204, 204, 204, 209, 209, 209, 209, 209, 509, 504, 503, 521, 517, 0, 510, 505, 519, 503, 504, 518, 505, 509, 209, 510, 517, 521, 495, 0, 520, 209, 209, 209, 209, 209, 209, 496, 509, 504, 519, 521, 517, 520, 510, 518, 0, 519, 0, 0, 518, 522, 0, 0, 0, 523, 0, 522, 520, 524, 209, 209, 209, 209, 209, 209, 220, 523, 524, 525, 0, 526, 527, 220, 220, 220, 220, 220, 220, 522, 526, 525, 530, 523, 532, 531, 0, 524, 0, 0, 0, 530, 528, 532, 527, 0, 550, 525, 531, 526, 529, 527, 220, 220, 220, 220, 220, 220, 221, 538, 530, 550, 532, 531, 528, 221, 221, 221, 221, 221, 221, 528, 529, 0, 550, 0, 0, 534, 535, 529, 536, 538, 541, 543, 544, 543, 534, 545, 538, 536, 0, 541, 0, 544, 221, 221, 221, 221, 221, 221, 228, 228, 228, 228, 228, 534, 535, 539, 536, 545, 541, 543, 544, 549, 535, 546, 545, 552, 0, 228, 539, 546, 549, 0, 0, 0, 228, 228, 228, 228, 228, 228, 0, 0, 535, 539, 0, 0, 0, 552, 0, 549, 0, 546, 0, 0, 552, 0, 0, 0, 0, 0, 0, 0, 0, 228, 228, 228, 228, 228, 228, 231, 0, 0, 0, 0, 0, 0, 231, 231, 231, 231, 231, 231, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 231, 231, 231, 231, 231, 231, 232, 0, 0, 0, 0, 0, 0, 232, 232, 232, 232, 232, 232, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 232, 232, 232, 232, 232, 232, 233, 0, 0, 0, 0, 0, 0, 233, 233, 233, 233, 233, 233, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 233, 233, 233, 233, 233, 233, 234, 0, 0, 0, 0, 0, 0, 234, 234, 234, 234, 234, 234, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 234, 234, 234, 234, 234, 234, 238, 0, 0, 0, 0, 0, 0, 238, 238, 238, 238, 238, 238, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 238, 238, 238, 238, 238, 238, 241, 0, 0, 0, 0, 0, 0, 241, 241, 241, 241, 241, 241, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 241, 241, 241, 241, 241, 241, 244, 0, 0, 0, 0, 0, 0, 244, 244, 244, 244, 244, 244, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 244, 244, 244, 244, 244, 244, 255, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 255, 255, 256, 0, 0, 0, 0, 0, 0, 256, 256, 256, 256, 256, 256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 256, 256, 256, 256, 256, 256, 267, 267, 267, 267, 267, 0, 267, 0, 0, 0, 0, 267, 267, 267, 0, 0, 0, 0, 0, 267, 0, 0, 0, 0, 0, 0, 267, 267, 267, 267, 267, 267, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 267, 0, 0, 267, 267, 267, 267, 267, 267, 268, 268, 268, 268, 268, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 268, 0, 0, 0, 0, 0, 0, 268, 268, 268, 268, 268, 268, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 268, 268, 268, 268, 268, 268, 270, 270, 270, 270, 270, 0, 270, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 270, 0, 0, 0, 0, 0, 0, 270, 270, 270, 270, 270, 270, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 270, 0, 0, 270, 270, 270, 270, 270, 270, 271, 271, 271, 271, 271, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 271, 0, 0, 0, 0, 0, 0, 271, 271, 271, 271, 271, 271, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 271, 0, 0, 271, 271, 271, 271, 271, 271, 272, 272, 272, 272, 272, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 272, 0, 0, 0, 0, 0, 0, 272, 272, 272, 272, 272, 272, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 272, 0, 0, 272, 272, 272, 272, 272, 272, 273, 273, 273, 273, 273, 0, 0, 0, 0, 0, 0, 273, 0, 0, 0, 0, 0, 0, 0, 273, 0, 0, 0, 0, 0, 0, 273, 273, 273, 273, 273, 273, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 273, 0, 0, 273, 273, 273, 273, 273, 273, 274, 274, 274, 274, 274, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 274, 0, 0, 0, 0, 0, 0, 274, 274, 274, 274, 274, 274, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 274, 0, 0, 0, 0, 0, 0, 0, 0, 0, 274, 274, 274, 274, 274, 274, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 274, 275, 0, 0, 0, 0, 0, 0, 275, 275, 275, 275, 275, 275, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 275, 275, 275, 275, 275, 275, 276, 0, 0, 0, 0, 0, 0, 276, 276, 276, 276, 276, 276, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 276, 276, 276, 276, 276, 276, 279, 0, 0, 0, 0, 0, 0, 279, 279, 279, 279, 279, 279, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 279, 279, 279, 279, 279, 279, 291, 0, 0, 0, 0, 0, 0, 291, 291, 291, 291, 291, 291, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 291, 291, 291, 291, 291, 291, 292, 0, 0, 0, 0, 0, 0, 292, 292, 292, 292, 292, 292, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 292, 292, 292, 292, 292, 292, 302, 302, 302, 302, 0, 0, 302, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 302, 0, 0, 0, 0, 0, 0, 302, 302, 302, 302, 302, 302, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 302, 0, 0, 302, 302, 302, 302, 302, 302, 304, 304, 304, 304, 0, 0, 0, 0, 0, 0, 0, 304, 0, 0, 0, 0, 0, 0, 0, 304, 0, 0, 0, 0, 0, 0, 304, 304, 304, 304, 304, 304, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 304, 0, 0, 304, 304, 304, 304, 304, 304, 309, 309, 309, 309, 309, 0, 0, 0, 0, 0, 0, 0, 0, 309, 0, 0, 0, 0, 0, 309, 0, 0, 0, 0, 0, 0, 309, 309, 309, 309, 309, 309, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 309, 0, 0, 309, 309, 309, 309, 309, 309, 310, 310, 310, 310, 310, 0, 310, 0, 0, 0, 0, 310, 310, 310, 0, 0, 0, 0, 0, 310, 0, 0, 0, 0, 0, 0, 310, 310, 310, 310, 310, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 310, 0, 0, 310, 310, 310, 310, 310, 310, 311, 311, 311, 311, 311, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 0, 0, 0, 0, 0, 0, 311, 311, 311, 311, 311, 311, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 311, 311, 311, 311, 311, 313, 313, 313, 313, 313, 0, 313, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 313, 0, 0, 0, 0, 0, 0, 313, 313, 313, 313, 313, 313, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 313, 0, 0, 313, 313, 313, 313, 313, 313, 314, 314, 314, 314, 314, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 314, 0, 0, 0, 0, 0, 0, 314, 314, 314, 314, 314, 314, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 314, 0, 0, 314, 314, 314, 314, 314, 314, 315, 315, 315, 315, 315, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 315, 0, 0, 0, 0, 0, 0, 315, 315, 315, 315, 315, 315, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 315, 0, 0, 315, 315, 315, 315, 315, 315, 316, 316, 316, 316, 316, 0, 0, 0, 0, 0, 0, 316, 0, 0, 0, 0, 0, 0, 0, 316, 0, 0, 0, 0, 0, 0, 316, 316, 316, 316, 316, 316, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 316, 0, 0, 316, 316, 316, 316, 316, 316, 317, 317, 317, 317, 317, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 317, 0, 0, 317, 0, 0, 0, 0, 0, 0, 317, 317, 317, 317, 317, 317, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 317, 317, 317, 317, 317, 317, 318, 318, 318, 318, 318, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 318, 0, 0, 0, 0, 0, 0, 318, 318, 318, 318, 318, 318, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 318, 318, 318, 318, 318, 318, 319, 319, 319, 319, 319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 319, 0, 0, 0, 0, 0, 0, 319, 319, 319, 319, 319, 319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 319, 319, 319, 319, 319, 319, 321, 0, 0, 0, 0, 0, 0, 321, 321, 321, 321, 321, 321, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 321, 321, 321, 321, 321, 321, 334, 0, 0, 0, 0, 0, 0, 334, 334, 334, 334, 334, 334, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 334, 334, 334, 334, 334, 334, 335, 0, 0, 0, 0, 0, 0, 335, 335, 335, 335, 335, 335, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 335, 335, 335, 335, 335, 335, 348, 348, 348, 348, 348, 0, 348, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 348, 0, 0, 0, 0, 0, 0, 348, 348, 348, 348, 348, 348, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 348, 0, 0, 348, 348, 348, 348, 348, 348, 349, 349, 349, 349, 0, 0, 349, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 349, 0, 0, 0, 0, 0, 0, 349, 349, 349, 349, 349, 349, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 349, 0, 0, 349, 349, 349, 349, 349, 349, 353, 353, 353, 353, 353, 0, 0, 0, 0, 0, 0, 353, 0, 0, 0, 0, 0, 0, 0, 353, 0, 0, 0, 0, 0, 0, 353, 353, 353, 353, 353, 353, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 353, 0, 0, 353, 353, 353, 353, 353, 353, 354, 354, 354, 354, 0, 0, 0, 0, 0, 0, 0, 354, 0, 0, 0, 0, 0, 0, 0, 354, 0, 0, 0, 0, 0, 0, 354, 354, 354, 354, 354, 354, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 354, 0, 0, 354, 354, 354, 354, 354, 354, 355, 355, 355, 355, 355, 0, 0, 0, 0, 0, 0, 0, 0, 355, 0, 0, 0, 0, 0, 355, 0, 0, 0, 0, 0, 0, 355, 355, 355, 355, 355, 355, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 355, 0, 0, 355, 355, 355, 355, 355, 355, 359, 359, 359, 359, 359, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 359, 0, 0, 0, 0, 0, 0, 359, 359, 359, 359, 359, 359, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 359, 359, 359, 359, 359, 359, 363, 0, 0, 0, 0, 0, 0, 363, 363, 363, 363, 363, 363, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 363, 363, 363, 363, 363, 363, 364, 364, 364, 364, 364, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 364, 0, 0, 0, 0, 0, 0, 364, 364, 364, 364, 364, 364, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 364, 364, 364, 364, 364, 364, 366, 366, 366, 366, 366, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 366, 0, 0, 0, 0, 0, 0, 366, 366, 366, 366, 366, 366, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 366, 366, 366, 366, 366, 366, 393, 0, 0, 0, 0, 0, 0, 393, 393, 393, 393, 393, 393, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 393, 393, 393, 393, 393, 393, 397, 0, 0, 0, 0, 0, 0, 397, 397, 397, 397, 397, 397, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 397, 397, 397, 397, 397, 397, 398, 398, 398, 398, 398, 0, 0, 0, 0, 0, 0, 0, 0, 398, 0, 0, 0, 0, 0, 398, 0, 0, 0, 0, 0, 0, 398, 398, 398, 398, 398, 398, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 398, 0, 0, 398, 398, 398, 398, 398, 398, 405, 0, 0, 0, 0, 0, 0, 405, 0, 405, 0, 0, 0, 0, 405, 405, 0, 0, 405, 0, 0, 0, 0, 405, 0, 0, 0, 0, 0, 405, 0, 0, 0, 0, 0, 405, 0, 405, 0, 0, 0, 0, 405, 405, 0, 0, 405, 422, 0, 0, 0, 0, 0, 0, 422, 422, 422, 422, 422, 422, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 422, 422, 422, 422, 422, 422, 423, 0, 0, 0, 0, 0, 0, 423, 423, 423, 423, 423, 423, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 423, 423, 423, 423, 423, 423, 424, 0, 0, 0, 0, 0, 0, 424, 424, 424, 424, 424, 424, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 424, 424, 424, 424, 424, 424, 450, 0, 0, 0, 0, 0, 0, 450, 450, 450, 450, 450, 450, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 450, 450, 450, 450, 450, 450, 451, 0, 0, 0, 0, 0, 0, 451, 451, 451, 451, 451, 451, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 451, 451, 451, 451, 451, 451, 452, 0, 0, 0, 0, 0, 0, 452, 452, 452, 452, 452, 452, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 452, 452, 452, 452, 452, 452, 473, 0, 0, 0, 0, 0, 0, 473, 473, 473, 473, 473, 473, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 473, 473, 473, 473, 473, 473, 474, 0, 0, 0, 0, 0, 0, 474, 474, 474, 474, 474, 474, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 474, 474, 474, 474, 474, 474, 555, 0, 0, 555, 555, 555, 555, 555, 555, 555, 555, 555, 555, 556, 556, 0, 556, 556, 557, 0, 0, 557, 557, 557, 557, 557, 557, 557, 557, 557, 557, 558, 558, 0, 558, 558, 559, 0, 559, 559, 0, 559, 559, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 563, 563, 0, 563, 563, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 568, 568, 568, 0, 568, 568, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 570, 570, 0, 570, 570, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 573, 573, 573, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, 579, 579, 579, 579, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 582, 582, 582, 582, 583, 583, 583, 583, 583, 583, 0, 583, 583, 583, 583, 583, 583, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 586, 586, 586, 586, 587, 587, 587, 587, 587, 587, 0, 587, 587, 587, 587, 587, 587, 588, 0, 0, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 589, 0, 0, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 592, 592, 592, 592, 0, 0, 0, 0, 592, 592, 0, 592, 592, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 595, 595, 595, 595, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, 598, 598, 598, 598, 598, 0, 0, 598, 598, 598, 598, 598, 598, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 601, 601, 601, 601, 0, 0, 0, 0, 601, 601, 0, 601, 601, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 604, 604, 604, 604, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 606, 606, 0, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 608, 608, 608, 608, 608, 0, 0, 608, 608, 608, 608, 608, 608, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554 } ; #line 1 "" YY_DECL { register yy_state_type yy_current_state; register UChar *yy_cp, *yy_bp; register int yy_act; while ( 1 ) /* loops until end-of-file is reached */ { yy_cp = (yy_c_buf_p); /* Support of yytext. */ *yy_cp = (yy_hold_char); /* yy_bp points to the position in yy_ch_buf of the start of * the current run. */ yy_bp = yy_cp; yy_current_state = (yy_start); do { register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)]; if ( yy_accept[yy_current_state] ) { (yy_last_accepting_state) = yy_current_state; (yy_last_accepting_cpos) = yy_cp; } while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; if ( yy_current_state >= 555 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; ++yy_cp; } while ( yy_base[yy_current_state] != 5570 ); yy_find_action: yy_act = yy_accept[yy_current_state]; if ( yy_act == 0 ) { /* have to back up */ yy_cp = (yy_last_accepting_cpos); yy_current_state = (yy_last_accepting_state); yy_act = yy_accept[yy_current_state]; } YY_DO_BEFORE_ACTION; switch ( yy_act ) { /* beginning of action switch */ case 0: /* must back up */ /* undo the effects of YY_DO_BEFORE_ACTION */ *yy_cp = (yy_hold_char); yy_cp = (yy_last_accepting_cpos); yy_current_state = (yy_last_accepting_state); goto yy_find_action; case 1: /* rule 1 can match eol */ YY_RULE_SETUP #line 29 "" {countLines(); /* ignore comments */ } YY_BREAK case 2: /* rule 2 can match eol */ YY_RULE_SETUP #line 31 "" {countLines(); yyTok = WHITESPACE; return yyTok;} YY_BREAK case 3: YY_RULE_SETUP #line 33 "" {yyTok = SGML_CD; return yyTok;} YY_BREAK case 4: YY_RULE_SETUP #line 34 "" {yyTok = SGML_CD; return yyTok;} YY_BREAK case 5: YY_RULE_SETUP #line 35 "" {yyTok = INCLUDES; return yyTok;} YY_BREAK case 6: YY_RULE_SETUP #line 36 "" {yyTok = DASHMATCH; return yyTok;} YY_BREAK case 7: YY_RULE_SETUP #line 37 "" {yyTok = BEGINSWITH; return yyTok;} YY_BREAK case 8: YY_RULE_SETUP #line 38 "" {yyTok = ENDSWITH; return yyTok;} YY_BREAK case 9: YY_RULE_SETUP #line 39 "" {yyTok = CONTAINS; return yyTok;} YY_BREAK case 10: YY_RULE_SETUP #line 40 "" {yyTok = MEDIA_NOT; return yyTok;} YY_BREAK case 11: YY_RULE_SETUP #line 41 "" {yyTok = MEDIA_ONLY; return yyTok;} YY_BREAK case 12: YY_RULE_SETUP #line 42 "" {yyTok = MEDIA_AND; return yyTok;} YY_BREAK case 13: /* rule 13 can match eol */ YY_RULE_SETUP #line 44 "" {yyTok = STRING; return yyTok;} YY_BREAK case 14: /* rule 14 can match eol */ YY_RULE_SETUP #line 45 "" {yyTok = IDENT; return yyTok;} YY_BREAK case 15: /* rule 15 can match eol */ YY_RULE_SETUP #line 46 "" {yyTok = NTH; return yyTok;} YY_BREAK case 16: YY_RULE_SETUP #line 48 "" {yyTok = HEX; return yyTok;} YY_BREAK case 17: /* rule 17 can match eol */ YY_RULE_SETUP #line 49 "" {yyTok = IDSEL; return yyTok;} YY_BREAK case 18: YY_RULE_SETUP #line 51 "" {BEGIN(mediaquery); yyTok = IMPORT_SYM; return yyTok;} YY_BREAK case 19: YY_RULE_SETUP #line 52 "" {yyTok = PAGE_SYM; return yyTok;} YY_BREAK case 20: YY_RULE_SETUP #line 53 "" {yyTok = TOPLEFTCORNER_SYM; return yyTok;} YY_BREAK case 21: YY_RULE_SETUP #line 54 "" {yyTok = TOPLEFT_SYM; return yyTok;} YY_BREAK case 22: YY_RULE_SETUP #line 55 "" {yyTok = TOPCENTER_SYM; return yyTok;} YY_BREAK case 23: YY_RULE_SETUP #line 56 "" {yyTok = TOPRIGHT_SYM; return yyTok;} YY_BREAK case 24: YY_RULE_SETUP #line 57 "" {yyTok = TOPRIGHTCORNER_SYM; return yyTok;} YY_BREAK case 25: YY_RULE_SETUP #line 58 "" {yyTok = BOTTOMLEFTCORNER_SYM; return yyTok;} YY_BREAK case 26: YY_RULE_SETUP #line 59 "" {yyTok = BOTTOMLEFT_SYM; return yyTok;} YY_BREAK case 27: YY_RULE_SETUP #line 60 "" {yyTok = BOTTOMCENTER_SYM; return yyTok;} YY_BREAK case 28: YY_RULE_SETUP #line 61 "" {yyTok = BOTTOMRIGHT_SYM; return yyTok;} YY_BREAK case 29: YY_RULE_SETUP #line 62 "" {yyTok = BOTTOMRIGHTCORNER_SYM; return yyTok;} YY_BREAK case 30: YY_RULE_SETUP #line 63 "" {yyTok = LEFTTOP_SYM; return yyTok;} YY_BREAK case 31: YY_RULE_SETUP #line 64 "" {yyTok = LEFTMIDDLE_SYM; return yyTok;} YY_BREAK case 32: YY_RULE_SETUP #line 65 "" {yyTok = LEFTBOTTOM_SYM; return yyTok;} YY_BREAK case 33: YY_RULE_SETUP #line 66 "" {yyTok = RIGHTTOP_SYM; return yyTok;} YY_BREAK case 34: YY_RULE_SETUP #line 67 "" {yyTok = RIGHTMIDDLE_SYM; return yyTok;} YY_BREAK case 35: YY_RULE_SETUP #line 68 "" {yyTok = RIGHTBOTTOM_SYM; return yyTok;} YY_BREAK case 36: YY_RULE_SETUP #line 69 "" {BEGIN(mediaquery); yyTok = MEDIA_SYM; return yyTok;} YY_BREAK case 37: YY_RULE_SETUP #line 70 "" {yyTok = FONT_FACE_SYM; return yyTok;} YY_BREAK case 38: YY_RULE_SETUP #line 71 "" {yyTok = CHARSET_SYM; return yyTok;} YY_BREAK case 39: YY_RULE_SETUP #line 72 "" {yyTok = NAMESPACE_SYM; return yyTok; } YY_BREAK case 40: YY_RULE_SETUP #line 73 "" {yyTok = WEBKIT_RULE_SYM; return yyTok; } YY_BREAK case 41: YY_RULE_SETUP #line 74 "" {yyTok = WEBKIT_DECLS_SYM; return yyTok; } YY_BREAK case 42: YY_RULE_SETUP #line 75 "" {yyTok = WEBKIT_VALUE_SYM; return yyTok; } YY_BREAK case 43: YY_RULE_SETUP #line 76 "" {BEGIN(mediaquery); yyTok = WEBKIT_MEDIAQUERY_SYM; return yyTok; } YY_BREAK case 44: YY_RULE_SETUP #line 77 "" {yyTok = WEBKIT_SELECTOR_SYM; return yyTok; } YY_BREAK case 45: YY_RULE_SETUP #line 78 "" {yyTok = WEBKIT_KEYFRAMES_SYM; return yyTok; } YY_BREAK case 46: YY_RULE_SETUP #line 79 "" {yyTok = WEBKIT_KEYFRAME_RULE_SYM; return yyTok; } YY_BREAK case 47: /* rule 47 can match eol */ YY_RULE_SETUP #line 81 "" {yyTok = ATKEYWORD; return yyTok; } YY_BREAK case 48: /* rule 48 can match eol */ YY_RULE_SETUP #line 83 "" {yyTok = IMPORTANT_SYM; return yyTok;} YY_BREAK case 49: YY_RULE_SETUP #line 85 "" {yyTok = EMS; return yyTok;} YY_BREAK case 50: YY_RULE_SETUP #line 86 "" {yyTok = REMS; return yyTok;} YY_BREAK case 51: YY_RULE_SETUP #line 87 "" {yyTok = QEMS; return yyTok;} /* quirky ems */ YY_BREAK case 52: YY_RULE_SETUP #line 88 "" {yyTok = EXS; return yyTok;} YY_BREAK case 53: YY_RULE_SETUP #line 89 "" {yyTok = PXS; return yyTok;} YY_BREAK case 54: YY_RULE_SETUP #line 90 "" {yyTok = CMS; return yyTok;} YY_BREAK case 55: YY_RULE_SETUP #line 91 "" {yyTok = MMS; return yyTok;} YY_BREAK case 56: YY_RULE_SETUP #line 92 "" {yyTok = INS; return yyTok;} YY_BREAK case 57: YY_RULE_SETUP #line 93 "" {yyTok = PTS; return yyTok;} YY_BREAK case 58: YY_RULE_SETUP #line 94 "" {yyTok = PCS; return yyTok;} YY_BREAK case 59: YY_RULE_SETUP #line 95 "" {yyTok = DEGS; return yyTok;} YY_BREAK case 60: YY_RULE_SETUP #line 96 "" {yyTok = RADS; return yyTok;} YY_BREAK case 61: YY_RULE_SETUP #line 97 "" {yyTok = GRADS; return yyTok;} YY_BREAK case 62: YY_RULE_SETUP #line 98 "" {yyTok = TURNS; return yyTok;} YY_BREAK case 63: YY_RULE_SETUP #line 99 "" {yyTok = MSECS; return yyTok;} YY_BREAK case 64: YY_RULE_SETUP #line 100 "" {yyTok = SECS; return yyTok;} YY_BREAK case 65: YY_RULE_SETUP #line 101 "" {yyTok = HERTZ; return yyTok;} YY_BREAK case 66: YY_RULE_SETUP #line 102 "" {yyTok = KHERTZ; return yyTok;} YY_BREAK case 67: /* rule 67 can match eol */ YY_RULE_SETUP #line 103 "" {yyTok = DIMEN; return yyTok;} YY_BREAK case 68: /* rule 68 can match eol */ YY_RULE_SETUP #line 104 "" {yyTok = INVALIDDIMEN; return yyTok;} YY_BREAK case 69: YY_RULE_SETUP #line 105 "" {yyTok = PERCENTAGE; return yyTok;} YY_BREAK case 70: YY_RULE_SETUP #line 106 "" {yyTok = INTEGER; return yyTok;} YY_BREAK case 71: YY_RULE_SETUP #line 107 "" {yyTok = FLOATTOKEN; return yyTok;} YY_BREAK case 72: YY_RULE_SETUP #line 109 "" {yyTok = ANYFUNCTION; return yyTok;} YY_BREAK case 73: YY_RULE_SETUP #line 110 "" {yyTok = NOTFUNCTION; return yyTok;} YY_BREAK case 74: /* rule 74 can match eol */ YY_RULE_SETUP #line 111 "" {yyTok = URI; return yyTok;} YY_BREAK case 75: /* rule 75 can match eol */ YY_RULE_SETUP #line 112 "" {yyTok = URI; return yyTok;} YY_BREAK case 76: YY_RULE_SETUP #line 113 "" {yyTok = CALCFUNCTION; return yyTok;} YY_BREAK case 77: YY_RULE_SETUP #line 114 "" {yyTok = MINFUNCTION; return yyTok;} YY_BREAK case 78: YY_RULE_SETUP #line 115 "" {yyTok = MAXFUNCTION; return yyTok;} YY_BREAK case 79: /* rule 79 can match eol */ YY_RULE_SETUP #line 116 "" {yyTok = FUNCTION; return yyTok;} YY_BREAK case 80: YY_RULE_SETUP #line 118 "" {yyTok = UNICODERANGE; return yyTok;} YY_BREAK case 81: YY_RULE_SETUP #line 119 "" {yyTok = UNICODERANGE; return yyTok;} YY_BREAK case 82: #line 122 "" case 83: YY_RULE_SETUP #line 122 "" {BEGIN(INITIAL); yyTok = *yytext; return yyTok; } YY_BREAK case 84: YY_RULE_SETUP #line 123 "" {yyTok = *yytext; return yyTok;} YY_BREAK case 85: YY_RULE_SETUP #line 125 "" ECHO; YY_BREAK #line 2625 "" case YY_END_OF_BUFFER: yy_c_buf_p = yy_cp - 1; yy_cp = yy_c_buf_p; case YY_STATE_EOF(INITIAL): case YY_STATE_EOF(mediaquery): case YY_STATE_EOF(forkeyword): yyterminate(); default: YY_FATAL_ERROR( "fatal flex scanner internal error--no action found" ); } /* end of action switch */ } /* end of scanning one token */ } /* end of yylex */