]> git.ipfire.org Git - thirdparty/unbound.git/commitdiff
iana ports automated.
authorWouter Wijngaards <wouter@nlnetlabs.nl>
Thu, 10 Apr 2008 10:52:22 +0000 (10:52 +0000)
committerWouter Wijngaards <wouter@nlnetlabs.nl>
Thu, 10 Apr 2008 10:52:22 +0000 (10:52 +0000)
git-svn-id: file:///svn/unbound/trunk@1028 be551aaa-1e26-0410-a405-d3ace91eadb9

Makefile.in
doc/Changelog
testcode/do-tests.sh
testdata/06-ianaports.tpkg [new file with mode: 0644]
util/config_file.c
util/iana_ports.inc

index c856caf19ccf321a3974866af494f40c23af7e1a..2c1cbdd9ada0a45ce35dee2ae74a2068e74c026f 100644 (file)
@@ -293,6 +293,13 @@ download_ldns:
        mv ldns-*_pre_*.tar.gz ldns-src.tar.gz
        rm ldns-*_pre_*.tar.gz.sha1 ldns_makedist.sh
 
+iana_update:
+       curl http://www.iana.org/assignments/port-numbers -o port-numbers.tmp
+       egrep -v "Unassigned|Reserved" port-numbers.tmp | awk '{ match($$0, "[0-9]+/udp"); if (RLENGTH > 0) print substr($$0, RSTART, RLENGTH - 4) ","}' | sort -nu > portslist.tmp
+       -diff util/iana_ports.inc portslist.tmp
+       cat portslist.tmp > util/iana_ports.inc
+       rm -f port-numbers.tmp portslist.tmp
+
 # Automatic dependencies.
 $(BUILD)%.d: $(srcdir)/%.c
        $(INFO) Depend $<
index ef939e89cc475b49e0d2d361f43e9797cf22b668..0d7544624ef593a7b60104f8e1c02a745392c923 100644 (file)
@@ -1,6 +1,7 @@
 10 April 2008: Wouter
        - --with-libevent works with latest libevent 1.4.99-trunk.
        - added log file statistics perl script to contrib.
+       - automatic iana ports update from makefile.
 
 9 April 2008: Wouter
        - configure can detect libev(from its build directory) when passed
index 2ce88f086c35586717cd68627af04bc5eb7f48c9..a08d4639bd204f3ce06cd390416b4111cea5f31e 100755 (executable)
@@ -5,6 +5,7 @@ NEED_DOXYGEN='01-doc.tpkg'
 NEED_LDNS_TESTNS='fwd_no_edns.tpkg fwd_tcp_tc.tpkg fwd_tcp.tpkg fwd_three_service.tpkg fwd_three.tpkg fwd_ttlexpire.tpkg fwd_udp.tpkg fwd_tcp_tc6.tpkg fwd_compress_c00c.tpkg fwd_ancil.tpkg stat_timer.tpkg 05-asynclook.tpkg stream_tcp.tpkg speed_cache.tpkg'
 NEED_XXD='fwd_compress_c00c.tpkg'
 NEED_NC='fwd_compress_c00c.tpkg'
+NEED_CURL='06-ianaports.tpkg'
 
 cd testdata;
 sh ../testcode/mini_tpkg.sh clean
@@ -21,6 +22,11 @@ for test in `ls *.tpkg`; do
                        SKIP=1;
                fi
        fi
+       if echo $NEED_CURL | grep $test >/dev/null; then
+               if test ! -x "`which curl`"; then
+                       SKIP=1;
+               fi
+       fi
        if echo $NEED_LDNS_TESTNS | grep $test >/dev/null; then
                if test ! -x "`which ldns-testns`"; then
                        SKIP=1;
diff --git a/testdata/06-ianaports.tpkg b/testdata/06-ianaports.tpkg
new file mode 100644 (file)
index 0000000..57fc7f9
Binary files /dev/null and b/testdata/06-ianaports.tpkg differ
index dcf38542499eaf7ed4cfa35ef92eb735e161c366..63fb58244fc0bcde02d814d2b1be2454b2d335cb 100644 (file)
@@ -455,12 +455,10 @@ config_delete(struct config_file* cfg)
 static void 
 init_outgoing_availports(int* a, int num)
 {
-       /* generated with
-          grep "/udp" /etc/services | awk '{print $2;}' | sed -e 's?/udp??' | sort -n | grep -v 0 | sed -e 's/^\(.*\)$/\1,/' > util/iana_ports.inc
-        */
+       /* generated with make iana_update */
        const int iana_assigned[] = {
 #include "util/iana_ports.inc"
-               0 }; /* trailing 0 to put behind trailing comma */
+               -1 }; /* end marker to put behind trailing comma */
 
        int i;
        /* do not use <1024, that could be trouble with the system, privs */
@@ -468,7 +466,7 @@ init_outgoing_availports(int* a, int num)
                a[i] = i;
        }
        /* pick out all the IANA assigned ports */
-       for(i=0; iana_assigned[i]; i++) {
+       for(i=0; iana_assigned[i]!=-1; i++) {
                if(iana_assigned[i] < num)
                        a[iana_assigned[i]] = 0;
        }
index c322d11a8a20b0ffc3c693a515484c72fdee6558..acfb18e9d057273f2f1285aaadebc71cb828d1fe 100644 (file)
@@ -1,4 +1,5 @@
 1,
+2,
 3,
 5,
 7,
@@ -8,6 +9,7 @@
 17,
 18,
 19,
+20,
 21,
 22,
 23,
@@ -17,6 +19,7 @@
 29,
 31,
 33,
+35,
 37,
 38,
 39,
 47,
 48,
 49,
+50,
 51,
 52,
 53,
 54,
 55,
 56,
+57,
 58,
+59,
 61,
 62,
 63,
 67,
 68,
 69,
+70,
 71,
 72,
 73,
 74,
+75,
 76,
+77,
 78,
 79,
-81,
+80,
 82,
 83,
 84,
+85,
 86,
+87,
 88,
 89,
+90,
 91,
 92,
 93,
 95,
 96,
 97,
+98,
 99,
+101,
+102,
+103,
+104,
+105,
+106,
+107,
+108,
+109,
+110,
 111,
 112,
 113,
@@ -75,6 +98,7 @@
 117,
 118,
 119,
+120,
 121,
 122,
 123,
 127,
 128,
 129,
+130,
 131,
 132,
 133,
 137,
 138,
 139,
+140,
 141,
 142,
 143,
 147,
 148,
 149,
+150,
 151,
 152,
 153,
 157,
 158,
 159,
+160,
 161,
 162,
 163,
 167,
 168,
 169,
+170,
 171,
 172,
 173,
 177,
 178,
 179,
+180,
 181,
 182,
 183,
 187,
 188,
 189,
+190,
 191,
 192,
 193,
 197,
 198,
 199,
+200,
+201,
+202,
+203,
+204,
+205,
+206,
+207,
+208,
+209,
+210,
 211,
 212,
 213,
 217,
 218,
 219,
+220,
 221,
 222,
 223,
 246,
 247,
 248,
+256,
 257,
-258,
 259,
+260,
 261,
 262,
 263,
 266,
 267,
 268,
+269,
+280,
 281,
 282,
 283,
 284,
 286,
 287,
+308,
+309,
+310,
 311,
 312,
 313,
 317,
 318,
 319,
+320,
 321,
 322,
 333,
 347,
 348,
 349,
+350,
 351,
-351,
-352,
 352,
 353,
 354,
 357,
 358,
 359,
+360,
 361,
 362,
 363,
 367,
 368,
 369,
+370,
 371,
 372,
 373,
 377,
 378,
 379,
+380,
 381,
 382,
 383,
 387,
 388,
 389,
+390,
 391,
 392,
 393,
 397,
 398,
 399,
+400,
+401,
+402,
+403,
+404,
+405,
+406,
+407,
+408,
+409,
+410,
 411,
 412,
 413,
 417,
 418,
 419,
+420,
 421,
 422,
 423,
 427,
 428,
 429,
+430,
 431,
 432,
 433,
 437,
 438,
 439,
+440,
 441,
 442,
 443,
 447,
 448,
 449,
+450,
 451,
 452,
 453,
 457,
 458,
 459,
+460,
 461,
 462,
 463,
 464,
+465,
 466,
 467,
 468,
 469,
+470,
 471,
 472,
 473,
 477,
 478,
 479,
+480,
 481,
 482,
 483,
 487,
 488,
 489,
+490,
 491,
 492,
 493,
 497,
 498,
 499,
+500,
+501,
+502,
+503,
+504,
+505,
+506,
+507,
+508,
+509,
+510,
 511,
 512,
 513,
 517,
 518,
 519,
+520,
 521,
 522,
 523,
 524,
 525,
+526,
 527,
 528,
 529,
+530,
+531,
+532,
 533,
 534,
 535,
 537,
 538,
 539,
+540,
 541,
 542,
+543,
+544,
 545,
 546,
 547,
 548,
 549,
+550,
 551,
 552,
 553,
 554,
 555,
+556,
 557,
 558,
 559,
+560,
 561,
 562,
 563,
 567,
 568,
 569,
+570,
 571,
 572,
 573,
 577,
 578,
 579,
+580,
 581,
 582,
 583,
 584,
-585,
 586,
 587,
 588,
 589,
+590,
+591,
 592,
 593,
 594,
 597,
 598,
 599,
+600,
+601,
+602,
+603,
+604,
+605,
+606,
+607,
+608,
+609,
+610,
 611,
 612,
 613,
 614,
 615,
+616,
 617,
 618,
 619,
+620,
 621,
 622,
 623,
 627,
 628,
 629,
+630,
 631,
 632,
 633,
 637,
 638,
 639,
+640,
 641,
 642,
 643,
 647,
 648,
 649,
+650,
 651,
 652,
 653,
 656,
 657,
 658,
+660,
 661,
 662,
 663,
 664,
 665,
 666,
-666,
 667,
 668,
 669,
+670,
 671,
 672,
 673,
 677,
 678,
 679,
+680,
 681,
 682,
 683,
 687,
 688,
 689,
+690,
 691,
 692,
 693,
 697,
 698,
 699,
+700,
+701,
+702,
+704,
+705,
+706,
+707,
+709,
+710,
 711,
 712,
+713,
+714,
+715,
+716,
 729,
+730,
 731,
 741,
 742,
 744,
 747,
 748,
+749,
+750,
 751,
 752,
 753,
+754,
 758,
 759,
+760,
 761,
 762,
 763,
 765,
 767,
 769,
+770,
 771,
 772,
 773,
 775,
 776,
 777,
+780,
+800,
+801,
+810,
 828,
 829,
+830,
+831,
+832,
+833,
 847,
 848,
+860,
+861,
 873,
 886,
 887,
 888,
+900,
+901,
+902,
+903,
+910,
 911,
 912,
 913,
-953,
 989,
+990,
 991,
 992,
 993,
 997,
 998,
 999,
-999,
+1000,
+1008,
+1010,
+1021,
+1022,
+1025,
+1026,
+1029,
+1030,
+1031,
+1032,
+1033,
+1034,
+1035,
+1036,
+1037,
+1038,
+1039,
+1040,
+1041,
+1042,
+1043,
+1044,
+1045,
+1046,
+1047,
+1048,
+1049,
+1050,
+1051,
+1052,
+1053,
+1054,
+1055,
+1056,
+1057,
+1058,
+1059,
+1060,
+1061,
+1062,
+1063,
+1064,
+1065,
+1066,
+1067,
+1068,
+1069,
+1070,
+1071,
+1072,
+1073,
+1074,
+1075,
+1076,
+1077,
+1078,
+1079,
+1080,
+1081,
+1082,
+1083,
+1084,
+1085,
+1086,
+1087,
+1088,
+1089,
+1090,
+1091,
+1092,
+1093,
+1094,
+1095,
+1096,
+1097,
+1098,
+1099,
+1100,
+1101,
+1102,
+1103,
+1104,
+1105,
+1106,
+1107,
+1108,
+1110,
 1111,
 1112,
 1113,
 1117,
 1118,
 1119,
+1120,
 1121,
 1122,
 1123,
 1124,
 1125,
 1126,
+1127,
+1128,
+1129,
+1130,
+1131,
+1132,
+1133,
+1134,
+1135,
+1136,
+1137,
+1138,
+1139,
+1140,
 1141,
 1142,
+1143,
 1144,
 1145,
 1146,
 1147,
 1148,
 1149,
+1150,
 1151,
 1152,
 1153,
 1157,
 1158,
 1159,
+1160,
 1161,
 1162,
 1163,
 1164,
 1165,
 1166,
+1167,
 1168,
 1169,
+1170,
 1171,
 1172,
 1173,
 1175,
 1176,
 1177,
+1178,
 1179,
+1180,
 1181,
 1182,
 1183,
 1187,
 1188,
 1189,
+1190,
 1191,
 1192,
 1193,
 1197,
 1198,
 1199,
+1200,
+1201,
+1202,
+1203,
+1204,
+1205,
+1206,
+1207,
+1208,
+1209,
+1210,
 1211,
 1212,
 1213,
 1217,
 1218,
 1219,
+1220,
 1221,
 1222,
 1223,
 1227,
 1228,
 1229,
+1230,
 1231,
 1233,
 1234,
 1237,
 1238,
 1239,
+1240,
 1241,
 1242,
 1243,
 1247,
 1248,
 1249,
+1250,
 1251,
 1252,
 1253,
 1257,
 1258,
 1259,
+1260,
 1261,
 1262,
 1263,
 1267,
 1268,
 1269,
+1270,
 1271,
 1272,
 1273,
 1277,
 1278,
 1279,
+1280,
 1281,
 1282,
 1283,
 1287,
 1288,
 1289,
+1290,
 1291,
 1292,
 1293,
 1297,
 1298,
 1299,
+1300,
+1301,
+1302,
+1303,
+1304,
+1305,
+1306,
+1307,
+1308,
+1309,
+1310,
 1311,
 1312,
+1313,
 1314,
 1315,
 1316,
 1317,
 1318,
 1319,
+1320,
+1321,
 1322,
 1323,
 1324,
 1327,
 1328,
 1329,
+1330,
 1331,
 1332,
 1333,
 1337,
 1338,
 1339,
+1340,
 1341,
 1342,
 1343,
 1347,
 1348,
 1349,
+1350,
 1351,
 1352,
 1353,
 1357,
 1358,
 1359,
+1360,
 1361,
 1362,
 1363,
 1367,
 1368,
 1369,
+1370,
 1371,
 1372,
 1373,
 1377,
 1378,
 1379,
+1380,
 1381,
 1382,
 1383,
 1387,
 1388,
 1389,
+1390,
 1391,
 1392,
 1393,
 1397,
 1398,
 1399,
+1400,
+1401,
+1402,
+1403,
+1404,
+1405,
+1406,
+1407,
+1408,
+1409,
+1410,
 1411,
 1412,
 1413,
 1417,
 1418,
 1419,
+1420,
 1421,
 1422,
 1423,
 1427,
 1428,
 1429,
+1430,
 1431,
 1432,
 1433,
 1437,
 1438,
 1439,
+1440,
 1441,
 1442,
 1443,
 1447,
 1448,
 1449,
+1450,
 1451,
 1452,
 1453,
 1457,
 1458,
 1459,
+1460,
 1461,
 1462,
 1463,
 1467,
 1468,
 1469,
+1470,
+1471,
+1472,
 1473,
 1474,
 1475,
 1477,
 1478,
 1479,
+1480,
 1481,
 1482,
 1483,
 1487,
 1488,
 1489,
+1490,
 1491,
 1492,
 1493,
 1497,
 1498,
 1499,
+1500,
+1501,
+1502,
+1503,
+1504,
+1505,
+1506,
+1507,
+1508,
+1509,
+1510,
 1511,
 1512,
 1513,
 1517,
 1518,
 1519,
+1520,
 1521,
 1522,
 1523,
 1525,
 1526,
 1527,
-1528,
+1529,
+1530,
 1531,
 1532,
 1533,
 1537,
 1538,
 1539,
+1540,
 1541,
 1542,
 1543,
 1547,
 1548,
 1549,
+1550,
 1551,
 1552,
 1553,
 1557,
 1558,
 1559,
+1560,
 1561,
 1562,
 1563,
 1567,
 1568,
 1569,
+1570,
 1571,
 1572,
 1573,
 1577,
 1578,
 1579,
+1580,
 1581,
 1582,
 1583,
 1587,
 1588,
 1589,
+1590,
 1591,
 1592,
 1593,
 1597,
 1598,
 1599,
+1600,
+1601,
+1602,
+1603,
+1604,
+1605,
+1606,
+1607,
+1608,
+1609,
+1610,
 1611,
 1612,
 1613,
 1617,
 1618,
 1619,
+1620,
 1621,
 1622,
 1623,
 1627,
 1628,
 1629,
+1630,
 1631,
 1632,
 1633,
 1637,
 1638,
 1639,
+1640,
 1641,
 1642,
 1643,
 1647,
 1648,
 1649,
+1650,
 1651,
 1652,
 1653,
 1657,
 1658,
 1659,
+1660,
 1661,
 1662,
 1663,
 1667,
 1668,
 1669,
+1670,
 1671,
 1672,
 1673,
 1677,
 1678,
 1679,
+1680,
 1681,
 1682,
 1683,
 1687,
 1688,
 1689,
+1690,
 1691,
 1692,
 1693,
 1697,
 1698,
 1699,
+1700,
+1701,
+1702,
+1703,
+1704,
+1705,
+1706,
+1707,
+1708,
+1709,
+1710,
 1711,
 1712,
 1713,
 1717,
 1718,
 1719,
+1720,
 1721,
 1722,
 1723,
 1727,
 1728,
 1729,
+1730,
 1731,
 1732,
 1733,
 1737,
 1738,
 1739,
+1740,
 1741,
 1742,
 1743,
 1747,
 1748,
 1749,
+1750,
 1751,
 1752,
 1754,
 1757,
 1758,
 1759,
+1760,
 1761,
 1762,
 1763,
 1767,
 1768,
 1769,
+1770,
 1771,
 1772,
 1773,
 1777,
 1778,
 1779,
+1780,
 1781,
 1782,
 1784,
 1787,
 1788,
 1789,
+1790,
 1791,
 1792,
 1793,
 1794,
 1795,
 1796,
+1797,
 1798,
 1799,
+1800,
+1801,
+1802,
+1803,
+1804,
+1805,
+1806,
+1807,
+1808,
+1809,
+1810,
 1811,
 1812,
 1813,
 1817,
 1818,
 1819,
+1820,
 1821,
 1822,
 1823,
 1827,
 1828,
 1829,
+1830,
 1831,
 1832,
 1833,
 1837,
 1838,
 1839,
+1840,
 1841,
 1842,
 1843,
 1847,
 1848,
 1849,
+1850,
 1851,
 1852,
 1853,
 1857,
 1858,
 1859,
+1860,
 1861,
 1862,
 1863,
 1867,
 1868,
 1869,
+1870,
 1871,
 1872,
 1873,
 1877,
 1878,
 1879,
+1880,
 1881,
 1882,
 1883,
 1887,
 1888,
 1889,
+1890,
 1891,
 1892,
 1893,
 1897,
 1898,
 1899,
+1900,
+1901,
+1902,
+1903,
+1904,
+1905,
+1906,
+1907,
+1908,
+1909,
+1910,
 1911,
 1912,
 1913,
 1917,
 1918,
 1919,
+1920,
 1921,
 1922,
 1923,
 1927,
 1928,
 1929,
+1930,
 1931,
 1932,
 1933,
 1937,
 1938,
 1939,
+1940,
 1941,
 1942,
 1943,
 1947,
 1948,
 1949,
+1950,
 1951,
 1952,
 1953,
 1957,
 1958,
 1959,
+1960,
 1961,
 1962,
 1963,
 1967,
 1968,
 1969,
+1970,
 1971,
 1972,
 1973,
 1977,
 1978,
 1979,
+1980,
 1981,
 1982,
 1983,
 1987,
 1988,
 1989,
-1989,
+1990,
 1991,
 1992,
-1992,
 1993,
 1994,
 1995,
 1997,
 1998,
 1999,
+2000,
+2001,
+2002,
+2003,
+2004,
+2005,
+2006,
+2007,
+2008,
+2009,
+2010,
+2011,
+2012,
+2013,
+2014,
+2015,
+2016,
+2017,
+2018,
+2019,
+2020,
+2021,
+2022,
+2023,
+2024,
+2025,
+2026,
+2027,
+2028,
+2029,
+2030,
+2031,
+2032,
+2033,
+2034,
+2035,
+2036,
+2037,
+2038,
+2039,
+2040,
+2041,
+2042,
+2043,
+2044,
+2045,
+2046,
+2047,
+2048,
+2049,
+2050,
+2051,
+2052,
+2053,
+2054,
+2055,
+2056,
+2057,
+2058,
+2059,
+2060,
+2061,
+2062,
+2063,
+2064,
+2065,
+2066,
+2067,
+2068,
+2069,
+2070,
+2071,
+2072,
+2073,
+2074,
+2075,
+2076,
+2077,
+2078,
+2079,
+2080,
+2081,
+2082,
+2083,
+2084,
+2085,
+2086,
+2087,
+2088,
+2089,
+2090,
+2091,
+2092,
+2093,
+2094,
+2095,
+2096,
+2097,
+2098,
+2099,
+2100,
+2101,
+2102,
+2103,
+2104,
+2105,
+2106,
+2107,
+2108,
+2109,
+2110,
 2111,
 2112,
 2113,
 2117,
 2118,
 2119,
+2120,
 2121,
 2122,
 2123,
 2127,
 2128,
 2129,
+2130,
 2131,
 2132,
 2133,
 2137,
 2138,
 2139,
+2140,
 2141,
 2142,
 2143,
 2147,
 2148,
 2149,
+2150,
 2151,
 2152,
+2153,
+2154,
+2155,
+2156,
+2157,
+2158,
 2159,
+2160,
 2161,
 2162,
 2163,
 2167,
 2168,
 2169,
+2170,
 2171,
 2172,
 2173,
 2176,
 2177,
 2178,
+2179,
+2180,
 2181,
 2182,
 2183,
 2184,
 2185,
+2186,
+2190,
 2191,
 2192,
+2193,
 2197,
 2198,
 2199,
+2200,
+2201,
+2202,
+2203,
+2204,
+2205,
+2206,
+2207,
+2208,
+2209,
+2210,
+2211,
+2212,
 2213,
 2214,
 2215,
+2216,
+2217,
+2218,
 2219,
+2220,
 2221,
 2222,
 2223,
+2224,
+2226,
+2227,
 2228,
+2229,
+2230,
+2231,
 2232,
 2233,
 2234,
 2237,
 2238,
 2239,
+2240,
 2241,
 2242,
 2243,
 2244,
 2245,
 2246,
+2247,
 2248,
 2249,
+2250,
 2251,
 2252,
 2253,
 2254,
 2255,
 2256,
+2257,
+2258,
+2259,
+2260,
 2261,
 2262,
+2263,
+2264,
+2265,
 2266,
 2267,
 2268,
 2269,
+2270,
 2271,
 2272,
 2273,
 2275,
 2276,
 2277,
+2278,
 2279,
+2280,
 2281,
 2282,
 2283,
 2287,
 2288,
 2289,
+2290,
+2291,
+2292,
+2293,
 2294,
 2295,
 2296,
 2297,
 2298,
 2299,
+2300,
+2301,
+2302,
+2303,
+2304,
+2305,
+2306,
+2307,
+2308,
+2309,
+2310,
 2311,
+2312,
 2313,
 2314,
 2315,
 2317,
 2318,
 2319,
+2320,
 2321,
 2322,
 2323,
 2326,
 2327,
 2328,
+2329,
+2330,
 2331,
 2332,
 2333,
 2337,
 2338,
 2339,
+2340,
 2341,
 2342,
 2343,
 2347,
 2348,
 2349,
+2350,
 2351,
 2352,
 2353,
 2357,
 2358,
 2359,
+2360,
 2361,
 2362,
 2363,
 2366,
 2367,
 2368,
-2369,
+2370,
 2371,
+2372,
 2381,
 2382,
 2383,
 2387,
 2388,
 2389,
+2390,
 2391,
 2392,
 2393,
 2397,
 2398,
 2399,
+2400,
+2401,
+2402,
+2403,
+2404,
+2405,
+2406,
+2407,
+2408,
+2409,
+2410,
 2411,
 2412,
 2413,
 2417,
 2418,
 2419,
+2420,
 2421,
 2422,
 2423,
 2427,
 2428,
 2429,
+2430,
 2431,
 2432,
 2433,
 2435,
 2436,
 2437,
+2438,
 2439,
+2440,
 2441,
 2442,
 2443,
 2447,
 2448,
 2449,
+2450,
 2451,
 2452,
 2453,
 2457,
 2458,
 2459,
+2460,
 2461,
 2462,
 2463,
 2467,
 2468,
 2469,
+2470,
 2471,
 2472,
 2473,
 2477,
 2478,
 2479,
+2480,
 2481,
 2482,
 2483,
 2487,
 2488,
 2489,
+2490,
 2491,
 2492,
 2493,
 2496,
 2497,
 2498,
+2499,
+2500,
+2501,
+2502,
+2503,
+2504,
+2505,
+2506,
+2507,
+2508,
+2509,
+2510,
 2511,
 2512,
 2513,
 2517,
 2518,
 2519,
+2520,
 2521,
 2522,
 2523,
 2527,
 2528,
 2529,
+2530,
 2531,
 2532,
 2533,
 2537,
 2538,
 2539,
+2540,
 2541,
 2542,
 2543,
 2547,
 2548,
 2549,
+2550,
 2551,
 2552,
 2553,
 2557,
 2558,
 2559,
+2560,
 2561,
 2562,
 2563,
 2567,
 2568,
 2569,
+2570,
 2571,
 2572,
 2573,
 2577,
 2578,
 2579,
+2580,
 2581,
 2582,
 2583,
 2587,
 2588,
 2589,
+2590,
 2591,
 2592,
 2593,
 2597,
 2598,
 2599,
+2600,
+2601,
+2602,
+2603,
+2604,
+2605,
+2606,
+2607,
+2608,
+2609,
+2610,
 2611,
 2612,
 2613,
 2617,
 2618,
 2619,
+2620,
 2621,
 2622,
 2623,
 2627,
 2628,
 2629,
+2630,
 2631,
 2632,
 2633,
 2637,
 2638,
 2639,
+2640,
 2641,
 2642,
 2643,
 2647,
 2648,
 2649,
+2650,
 2651,
 2652,
 2653,
 2657,
 2658,
 2659,
+2660,
 2661,
 2662,
 2663,
 2667,
 2668,
 2669,
+2670,
 2671,
 2672,
 2673,
 2677,
 2678,
 2679,
+2680,
 2681,
 2683,
 2684,
 2687,
 2688,
 2689,
+2690,
 2691,
 2692,
+2693,
 2694,
 2695,
 2696,
 2697,
 2698,
 2699,
+2700,
+2701,
+2702,
+2703,
+2704,
+2705,
+2706,
+2707,
+2708,
+2709,
+2710,
 2711,
 2712,
 2713,
 2717,
 2718,
 2719,
+2720,
 2721,
 2722,
 2723,
 2727,
 2728,
 2729,
+2730,
 2731,
 2732,
 2733,
 2737,
 2738,
 2739,
+2740,
 2741,
 2742,
 2743,
 2747,
 2748,
 2749,
+2750,
 2751,
 2752,
 2753,
 2757,
 2758,
 2759,
+2760,
 2761,
 2762,
 2763,
 2767,
 2768,
 2769,
+2770,
 2771,
 2772,
 2773,
 2777,
 2778,
 2779,
+2780,
 2781,
 2782,
 2783,
 2787,
 2788,
 2789,
+2790,
 2791,
 2792,
 2793,
-2794,
 2795,
 2796,
 2797,
 2798,
 2799,
+2800,
+2801,
+2802,
+2803,
+2804,
+2805,
+2806,
+2807,
+2808,
+2809,
+2810,
 2811,
 2812,
 2813,
 2817,
 2818,
 2819,
+2820,
 2821,
 2822,
 2823,
 2827,
 2828,
 2829,
+2830,
 2831,
 2832,
 2833,
 2836,
 2837,
 2838,
+2839,
+2840,
 2841,
 2842,
 2843,
 2846,
 2847,
 2848,
+2849,
+2850,
 2851,
 2852,
 2853,
 2854,
+2855,
 2856,
 2857,
 2858,
 2859,
+2860,
 2861,
 2862,
 2863,
 2867,
 2868,
 2869,
+2870,
 2871,
 2872,
 2874,
 2877,
 2878,
 2879,
+2880,
 2881,
 2882,
 2883,
 2887,
 2888,
 2889,
+2890,
 2891,
 2892,
 2893,
 2897,
 2898,
 2899,
+2900,
+2901,
+2902,
+2903,
+2904,
+2905,
+2906,
+2907,
+2908,
+2909,
+2910,
 2911,
 2912,
 2913,
 2917,
 2918,
 2919,
+2920,
 2921,
 2922,
 2923,
 2927,
 2928,
 2929,
+2930,
 2931,
 2932,
 2933,
 2937,
 2938,
 2939,
+2940,
 2941,
 2942,
 2943,
 2947,
 2948,
 2949,
+2950,
 2951,
 2952,
 2953,
 2957,
 2958,
 2959,
+2960,
 2961,
 2962,
 2963,
 2967,
 2968,
 2969,
+2970,
 2971,
 2972,
 2973,
 2977,
 2978,
 2979,
+2980,
 2981,
 2982,
 2983,
 2987,
 2988,
 2989,
+2990,
 2991,
 2992,
 2993,
 2996,
 2997,
 2998,
-2999,
+3000,
+3002,
+3003,
+3004,
+3005,
+3006,
+3007,
+3008,
+3009,
+3010,
+3011,
+3012,
+3013,
+3014,
+3015,
+3016,
+3017,
+3018,
+3019,
+3020,
+3021,
+3022,
+3023,
+3024,
+3025,
+3026,
+3027,
+3028,
+3029,
+3030,
+3031,
+3032,
+3033,
+3034,
+3035,
+3036,
+3037,
+3038,
+3039,
+3040,
+3041,
+3042,
+3043,
+3044,
+3045,
+3046,
+3047,
+3048,
+3049,
+3050,
+3051,
+3052,
+3053,
+3054,
+3055,
+3056,
+3057,
+3058,
+3059,
+3060,
+3061,
+3062,
+3063,
+3064,
+3065,
+3066,
+3067,
+3068,
+3069,
+3070,
+3071,
+3072,
+3073,
+3074,
+3075,
+3076,
+3077,
+3078,
+3079,
+3080,
+3081,
+3082,
+3083,
+3084,
+3085,
+3086,
+3087,
+3088,
+3089,
+3090,
+3091,
+3092,
+3093,
+3094,
+3095,
+3096,
+3098,
+3099,
+3100,
+3101,
+3102,
+3103,
+3104,
+3105,
+3106,
+3107,
+3108,
+3109,
+3110,
 3111,
 3112,
 3113,
 3117,
 3118,
 3119,
+3120,
 3122,
 3123,
 3124,
 3125,
-3126,
 3127,
+3128,
 3129,
+3130,
 3131,
 3132,
 3133,
 3137,
 3138,
 3139,
+3140,
 3141,
 3142,
 3143,
 3147,
 3148,
 3149,
+3150,
 3151,
 3152,
 3153,
 3157,
 3158,
 3159,
+3160,
 3161,
 3162,
 3163,
 3167,
 3168,
 3169,
+3170,
 3171,
 3172,
 3173,
 3177,
 3178,
 3179,
+3180,
 3181,
 3182,
 3183,
 3187,
 3188,
 3189,
+3190,
 3191,
 3192,
 3193,
 3197,
 3198,
 3199,
+3200,
+3201,
+3202,
+3203,
+3204,
+3205,
+3206,
+3207,
+3208,
+3209,
+3210,
 3211,
 3212,
 3213,
 3217,
 3218,
 3219,
+3220,
 3221,
 3222,
 3223,
 3227,
 3228,
 3229,
+3230,
 3231,
 3232,
 3233,
 3237,
 3238,
 3239,
+3240,
 3241,
 3242,
 3243,
 3247,
 3248,
 3249,
+3250,
 3251,
 3252,
 3253,
 3257,
 3258,
 3259,
+3260,
 3261,
 3262,
 3263,
 3267,
 3268,
 3269,
+3270,
 3271,
 3272,
 3273,
 3277,
 3278,
 3279,
+3280,
 3281,
 3282,
 3283,
 3287,
 3288,
 3289,
+3290,
 3291,
 3292,
 3293,
 3297,
 3298,
 3299,
+3302,
+3303,
+3304,
+3305,
+3306,
+3307,
+3308,
+3309,
+3310,
 3311,
 3312,
 3313,
 3317,
 3318,
 3319,
+3320,
 3321,
 3326,
 3327,
 3328,
 3329,
+3330,
 3331,
 3332,
 3333,
 3337,
 3338,
 3339,
+3340,
 3341,
 3342,
 3343,
 3347,
 3348,
 3349,
+3350,
 3351,
 3352,
 3353,
 3357,
 3358,
 3359,
+3360,
 3361,
 3362,
 3363,
+3364,
+3365,
+3366,
 3372,
 3373,
 3374,
 3377,
 3378,
 3379,
+3380,
 3381,
 3382,
 3383,
 3387,
 3388,
 3389,
+3390,
 3391,
 3392,
 3393,
 3397,
 3398,
 3399,
+3400,
+3401,
+3402,
+3405,
+3406,
+3407,
+3408,
+3409,
+3410,
 3411,
 3412,
 3413,
 3417,
 3418,
 3419,
+3420,
 3421,
 3422,
 3423,
 3427,
 3428,
 3429,
+3430,
 3431,
 3432,
 3433,
 3437,
 3438,
 3439,
+3440,
 3441,
 3442,
 3443,
 3447,
 3448,
 3449,
+3450,
 3451,
 3452,
 3453,
 3457,
 3458,
 3459,
+3460,
 3461,
 3462,
 3463,
 3467,
 3468,
 3469,
+3470,
 3471,
 3472,
 3473,
 3477,
 3478,
 3479,
+3480,
 3481,
 3482,
 3483,
 3487,
 3488,
 3489,
+3490,
 3491,
 3492,
 3493,
 3497,
 3498,
 3499,
+3500,
+3501,
+3502,
+3503,
+3504,
+3505,
+3506,
+3507,
+3508,
+3509,
+3510,
 3511,
 3512,
 3513,
 3517,
 3518,
 3519,
+3520,
 3521,
 3522,
 3523,
 3527,
 3528,
 3529,
+3530,
 3531,
 3532,
 3533,
 3537,
 3538,
 3539,
+3540,
 3541,
 3542,
 3543,
 3547,
 3548,
 3549,
+3550,
 3551,
 3552,
 3553,
 3557,
 3558,
 3559,
+3560,
 3561,
 3562,
 3563,
 3567,
 3568,
 3569,
+3570,
 3571,
 3572,
 3573,
 3577,
 3578,
 3579,
+3580,
 3581,
 3582,
 3583,
 3587,
 3588,
 3589,
+3590,
 3591,
 3592,
 3593,
 3597,
 3598,
 3599,
+3600,
+3601,
+3602,
+3603,
+3604,
+3605,
+3606,
+3607,
+3608,
+3609,
+3610,
 3611,
 3612,
 3613,
 3617,
 3618,
 3619,
+3620,
 3621,
 3622,
 3623,
 3627,
 3628,
 3629,
+3630,
 3631,
+3632,
 3633,
 3634,
 3635,
 3637,
 3638,
 3639,
+3640,
 3641,
 3642,
 3643,
 3647,
 3648,
 3649,
+3650,
 3651,
 3652,
 3653,
 3657,
 3658,
 3659,
+3660,
 3661,
 3662,
 3663,
 3667,
 3668,
 3669,
+3670,
 3671,
 3672,
 3673,
 3677,
 3678,
 3679,
+3680,
 3681,
 3682,
 3683,
 3687,
 3688,
 3689,
+3690,
 3691,
 3692,
-3693,
-3694,
 3695,
 3696,
 3697,
 3698,
 3699,
+3700,
+3701,
+3702,
+3703,
+3704,
+3705,
+3706,
+3707,
+3708,
+3709,
+3710,
 3711,
 3712,
 3713,
 3717,
 3718,
 3719,
+3720,
 3721,
 3722,
 3723,
 3727,
 3728,
 3729,
+3730,
 3731,
 3732,
 3733,
 3736,
 3738,
 3739,
+3740,
 3741,
 3742,
 3743,
 3747,
 3748,
 3749,
+3750,
 3751,
 3752,
 3753,
 3757,
 3758,
 3759,
+3760,
 3761,
 3762,
 3763,
 3764,
 3765,
+3766,
 3767,
 3768,
 3769,
+3770,
 3771,
 3772,
 3773,
 3777,
 3778,
 3779,
+3780,
 3781,
 3782,
 3783,
 3787,
 3788,
 3789,
+3790,
 3791,
 3792,
 3793,
 3797,
 3798,
 3799,
+3800,
+3801,
+3802,
+3803,
+3804,
+3805,
+3806,
+3807,
+3808,
+3809,
+3810,
 3811,
 3812,
 3813,
 3817,
 3818,
 3819,
+3820,
 3821,
 3822,
 3823,
 3824,
+3825,
+3826,
+3827,
+3828,
+3829,
+3830,
+3831,
+3832,
+3833,
+3834,
+3835,
 3836,
 3837,
 3838,
 3839,
+3840,
 3841,
 3842,
 3843,
 3847,
 3848,
 3849,
+3850,
 3851,
 3852,
 3853,
 3857,
 3858,
 3859,
+3860,
 3861,
 3862,
 3863,
-3864,
 3865,
 3866,
 3867,
 3869,
+3870,
 3871,
 3872,
 3873,
 3877,
 3878,
 3879,
+3880,
 3881,
 3882,
 3883,
 3887,
 3888,
 3889,
+3890,
 3891,
 3892,
 3893,
 3897,
 3898,
 3899,
+3900,
+3901,
+3902,
+3903,
+3904,
+3905,
+3906,
+3907,
+3908,
+3909,
+3910,
 3911,
 3912,
 3913,
 3917,
 3918,
 3919,
+3920,
 3921,
 3922,
 3923,
 3927,
 3928,
 3929,
+3930,
 3931,
 3932,
 3933,
 3937,
 3938,
 3939,
+3940,
 3941,
 3942,
 3943,
 3947,
 3948,
 3949,
+3950,
 3951,
 3952,
 3953,
 3957,
 3958,
 3959,
+3960,
 3961,
 3962,
 3963,
 3967,
 3968,
 3969,
+3970,
 3971,
 3972,
 3973,
 3974,
 3975,
+3976,
+3977,
+3978,
+3979,
+3980,
+3981,
+3982,
+3983,
 3984,
 3985,
 3986,
 3987,
 3988,
 3989,
+3990,
 3991,
 3992,
 3993,
+3994,
 3995,
 3996,
+3997,
+3998,
+3999,
+4000,
+4001,
+4002,
+4003,
+4004,
+4005,
+4006,
+4007,
+4008,
+4009,
+4010,
+4011,
+4012,
+4013,
+4014,
+4015,
+4016,
+4017,
+4018,
+4019,
+4020,
+4021,
+4022,
+4023,
+4024,
+4025,
+4026,
+4027,
+4028,
+4029,
+4030,
+4031,
+4032,
+4033,
+4034,
+4035,
+4036,
+4037,
+4038,
+4039,
+4040,
+4041,
+4042,
+4043,
+4044,
+4045,
+4046,
+4047,
+4048,
+4049,
+4050,
+4051,
+4052,
+4053,
+4054,
+4055,
+4056,
+4057,
+4058,
+4059,
+4060,
+4061,
+4062,
+4063,
+4064,
+4065,
+4066,
+4067,
+4068,
+4069,
+4070,
+4071,
+4072,
+4073,
+4074,
+4075,
+4076,
+4080,
+4081,
+4082,
+4083,
+4089,
+4090,
+4091,
+4092,
+4093,
+4094,
+4095,
+4096,
+4097,
+4098,
+4099,
+4100,
+4101,
+4102,
+4103,
+4104,
+4105,
+4106,
+4107,
+4108,
+4109,
+4110,
 4111,
+4112,
+4113,
 4114,
+4115,
+4116,
+4117,
+4118,
+4119,
+4121,
+4122,
+4123,
+4124,
+4125,
+4126,
+4127,
+4128,
+4129,
+4130,
+4131,
 4132,
 4133,
 4134,
+4135,
+4136,
+4137,
 4138,
+4139,
+4140,
 4141,
 4142,
 4143,
 4145,
+4146,
+4147,
+4148,
+4149,
+4150,
+4152,
+4153,
 4154,
+4155,
+4156,
+4157,
+4158,
+4159,
+4160,
 4161,
 4162,
+4163,
+4164,
+4165,
+4166,
+4167,
+4168,
+4169,
+4177,
+4178,
+4179,
+4180,
+4181,
+4182,
+4183,
+4184,
 4199,
+4300,
+4301,
+4302,
+4303,
+4304,
+4305,
+4306,
+4307,
+4308,
+4309,
+4310,
+4320,
 4321,
+4322,
+4323,
+4324,
+4325,
+4326,
+4327,
+4328,
+4340,
+4341,
+4342,
 4343,
 4344,
 4345,
 4347,
 4348,
 4349,
+4350,
 4351,
 4352,
 4353,
 4356,
 4357,
 4358,
+4359,
+4368,
 4369,
+4373,
+4376,
+4377,
+4378,
+4379,
+4389,
+4400,
+4401,
+4402,
+4403,
+4404,
+4405,
+4406,
 4426,
 4442,
 4443,
 4447,
 4448,
 4449,
+4450,
 4451,
 4452,
 4453,
 4455,
 4456,
 4457,
+4458,
 4484,
+4500,
 4535,
 4536,
 4537,
+4538,
 4545,
 4546,
 4547,
+4548,
+4549,
+4550,
+4554,
 4555,
+4556,
+4559,
+4566,
 4567,
 4568,
 4569,
+4593,
+4594,
+4595,
+4596,
+4597,
 4598,
+4599,
+4600,
+4601,
 4658,
 4659,
+4660,
 4661,
 4662,
+4663,
+4664,
+4665,
+4666,
+4667,
+4668,
+4669,
+4670,
+4671,
 4672,
 4673,
 4674,
 4677,
 4678,
 4679,
+4680,
 4681,
 4682,
 4683,
 4687,
 4688,
 4689,
+4690,
 4691,
 4692,
+4700,
+4701,
+4702,
+4728,
 4737,
 4738,
 4739,
+4740,
+4741,
+4742,
+4743,
+4744,
+4745,
+4749,
+4750,
 4751,
 4752,
+4784,
+4800,
+4801,
+4802,
 4827,
 4837,
 4838,
 4839,
+4840,
+4841,
+4842,
+4843,
+4844,
+4845,
+4846,
+4847,
 4848,
 4849,
+4850,
+4851,
+4867,
 4868,
 4869,
+4870,
+4871,
 4885,
 4894,
 4899,
+4900,
+4940,
+4941,
+4942,
 4949,
+4950,
 4951,
+4952,
+4969,
+4970,
+4986,
 4987,
 4988,
 4989,
+4990,
+4999,
+5000,
+5001,
+5002,
+5003,
+5004,
+5005,
+5006,
+5007,
+5008,
+5009,
+5010,
+5011,
+5012,
+5013,
+5020,
+5021,
+5022,
+5023,
+5024,
+5025,
+5026,
+5027,
+5030,
+5042,
+5043,
+5044,
+5049,
+5050,
+5051,
+5052,
+5055,
+5056,
+5057,
+5058,
+5059,
+5060,
+5061,
+5064,
+5065,
+5066,
+5067,
+5069,
+5070,
+5071,
+5072,
+5073,
+5074,
+5080,
+5081,
+5082,
+5083,
+5084,
+5085,
+5093,
+5099,
+5100,
+5101,
+5102,
 5112,
 5133,
 5137,
 5145,
+5150,
 5151,
 5152,
 5154,
 5155,
 5165,
+5166,
 5167,
 5168,
+5190,
 5191,
 5192,
 5193,
+5200,
+5201,
+5202,
+5203,
 5222,
+5223,
+5224,
 5225,
 5226,
-5232,
+5227,
 5234,
+5235,
 5236,
+5237,
+5248,
+5249,
+5250,
 5251,
 5252,
 5264,
 5265,
 5269,
+5270,
 5272,
 5282,
+5298,
+5299,
+5300,
+5301,
+5302,
+5303,
+5304,
+5305,
+5306,
+5307,
+5308,
+5309,
+5310,
 5312,
 5313,
 5314,
 5315,
+5316,
 5343,
+5344,
+5350,
 5351,
 5352,
 5353,
 5356,
 5357,
 5358,
+5359,
+5360,
+5361,
+5362,
 5397,
 5398,
 5399,
+5400,
+5401,
+5402,
+5403,
+5404,
+5405,
+5406,
+5407,
+5408,
+5409,
+5410,
 5411,
 5412,
 5413,
 5417,
 5418,
 5419,
+5420,
 5421,
 5422,
 5423,
 5427,
 5428,
 5429,
+5430,
 5431,
 5432,
 5433,
 5434,
 5435,
+5443,
 5453,
 5454,
 5455,
 5461,
 5462,
 5463,
+5464,
 5465,
+5500,
+5501,
+5502,
+5503,
+5504,
+5505,
 5553,
 5554,
 5555,
+5556,
 5566,
 5567,
+5568,
+5573,
+5580,
+5581,
+5582,
+5583,
 5584,
 5585,
+5597,
+5598,
 5599,
+5600,
+5601,
+5602,
+5603,
+5604,
+5605,
+5627,
+5629,
+5630,
 5631,
 5632,
+5633,
+5634,
+5671,
 5672,
 5673,
 5674,
 5677,
 5678,
 5679,
+5680,
+5681,
 5688,
+5689,
 5713,
 5714,
 5715,
 5716,
 5717,
+5718,
+5719,
+5720,
 5721,
+5722,
+5723,
+5724,
 5729,
+5730,
 5741,
 5742,
 5743,
 5746,
 5747,
 5748,
+5750,
 5755,
 5757,
 5766,
 5767,
 5768,
+5769,
+5770,
 5771,
 5777,
+5781,
+5782,
+5783,
+5785,
+5793,
 5813,
 5814,
-5815,
 5859,
+5863,
+5900,
 5963,
 5968,
 5969,
+5984,
+5985,
+5986,
 5987,
 5988,
 5989,
+5990,
 5991,
 5992,
 5999,
+6063,
+6064,
+6065,
+6066,
+6068,
+6069,
+6070,
+6071,
+6072,
+6073,
+6074,
+6085,
+6086,
+6087,
+6100,
+6101,
+6102,
+6103,
+6104,
+6105,
+6106,
+6107,
+6108,
+6109,
+6110,
 6111,
 6112,
 6122,
 6123,
 6133,
+6140,
 6141,
 6142,
 6143,
 6145,
 6146,
 6147,
+6148,
 6149,
 6161,
 6162,
 6163,
+6200,
+6222,
+6251,
+6252,
 6253,
+6268,
+6269,
+6300,
+6301,
+6320,
 6321,
 6322,
 6343,
 6346,
 6347,
+6355,
+6360,
+6370,
 6382,
 6389,
+6390,
+6417,
+6420,
+6421,
+6443,
+6444,
+6445,
+6456,
 6471,
+6480,
+6481,
+6482,
+6483,
+6484,
+6485,
+6486,
+6487,
+6488,
+6489,
+6500,
+6501,
+6502,
+6503,
+6505,
+6506,
+6507,
+6508,
+6509,
+6510,
+6515,
 6543,
+6544,
 6547,
 6548,
 6549,
+6550,
+6551,
 6558,
 6566,
+6567,
 6579,
+6580,
 6581,
 6582,
 6583,
+6619,
+6620,
 6621,
+6622,
 6623,
+6626,
 6627,
 6628,
-6667,
+6669,
+6670,
 6672,
 6673,
+6701,
+6702,
+6703,
 6714,
 6715,
 6767,
 6768,
 6769,
+6770,
 6771,
+6785,
 6786,
 6787,
 6788,
 6789,
+6790,
 6791,
+6801,
 6831,
 6841,
 6842,
+6850,
 6888,
+6936,
 6946,
+6951,
 6961,
 6962,
 6963,
 6965,
 6966,
 6969,
+6997,
 6998,
 6999,
+7000,
+7001,
+7002,
+7003,
+7004,
+7005,
+7006,
+7007,
+7008,
+7009,
+7010,
+7011,
+7012,
+7013,
+7014,
+7015,
+7020,
+7021,
+7022,
+7023,
+7024,
+7025,
+7030,
+7070,
+7080,
+7099,
+7100,
+7101,
 7121,
+7128,
+7129,
 7161,
 7162,
 7163,
+7164,
+7165,
+7166,
 7174,
+7200,
+7201,
 7227,
 7272,
 7273,
 7274,
+7275,
+7276,
+7277,
+7278,
+7279,
+7280,
 7281,
+7365,
 7391,
 7392,
+7393,
+7394,
 7395,
 7397,
+7400,
+7401,
+7402,
+7410,
 7421,
 7426,
 7427,
 7428,
 7429,
+7430,
 7431,
 7437,
+7443,
+7473,
 7491,
+7500,
+7501,
+7510,
 7511,
+7542,
 7543,
 7544,
 7545,
 7546,
 7547,
+7548,
+7549,
+7560,
 7566,
+7570,
 7588,
 7624,
 7626,
 7627,
+7628,
+7629,
 7633,
+7648,
 7674,
 7675,
 7676,
 7677,
+7680,
+7689,
 7697,
+7707,
+7708,
+7720,
+7724,
 7725,
 7726,
 7727,
+7734,
 7738,
 7743,
+7744,
+7747,
 7777,
 7778,
 7779,
 7781,
 7786,
+7787,
+7789,
 7794,
 7797,
 7798,
+7799,
+7800,
+7801,
+7810,
 7845,
 7846,
+7880,
 7887,
+7900,
+7901,
+7902,
+7903,
 7913,
 7932,
 7933,
 7967,
 7979,
+7980,
 7999,
+8000,
+8001,
+8002,
+8003,
+8005,
+8008,
+8019,
+8020,
+8021,
+8022,
+8025,
+8026,
+8032,
+8033,
+8034,
+8052,
+8053,
+8054,
+8055,
+8056,
+8057,
+8058,
+8059,
+8074,
+8080,
+8081,
+8082,
+8083,
+8086,
+8088,
+8097,
+8100,
 8115,
 8116,
 8118,
 8122,
 8128,
 8129,
+8130,
 8131,
 8132,
 8148,
+8160,
 8161,
+8192,
+8194,
+8195,
 8199,
+8200,
+8201,
+8204,
+8205,
+8206,
+8207,
+8208,
+8230,
+8276,
+8292,
+8294,
+8300,
+8301,
+8320,
+8321,
 8351,
 8376,
 8377,
 8378,
 8379,
+8380,
 8383,
+8400,
+8401,
+8402,
+8403,
 8416,
 8417,
+8442,
 8443,
 8444,
+8450,
+8472,
 8473,
 8474,
+8500,
 8554,
 8555,
 8567,
+8600,
 8611,
 8612,
 8613,
 8763,
 8764,
 8765,
+8770,
 8786,
 8787,
+8800,
+8804,
 8873,
+8880,
+8883,
 8888,
 8889,
+8890,
 8891,
 8892,
 8893,
 8894,
+8899,
+8900,
+8901,
+8910,
 8911,
 8912,
 8913,
 8954,
 8989,
+8990,
+8991,
 8999,
+9000,
+9001,
+9002,
+9009,
+9020,
+9021,
+9022,
+9023,
+9024,
+9025,
+9026,
+9080,
+9086,
+9087,
+9088,
+9089,
+9090,
+9091,
+9092,
+9100,
+9101,
+9102,
+9103,
+9104,
+9119,
 9131,
+9160,
 9161,
 9162,
 9163,
 9164,
 9191,
+9200,
+9201,
+9202,
+9203,
+9204,
+9205,
+9206,
+9207,
+9208,
+9209,
+9210,
 9211,
 9212,
 9213,
+9214,
+9215,
+9216,
 9217,
 9222,
+9255,
+9280,
 9281,
 9282,
 9283,
 9285,
 9287,
 9292,
+9293,
+9294,
+9295,
+9300,
 9318,
 9321,
 9343,
 9344,
 9346,
-9359,
 9374,
+9380,
 9396,
 9397,
+9400,
+9401,
 9418,
+9443,
+9500,
 9535,
+9536,
 9555,
+9592,
 9593,
 9594,
 9595,
 9597,
 9598,
 9599,
+9600,
 9612,
+9618,
+9628,
+9629,
+9700,
 9747,
+9750,
 9753,
+9762,
+9800,
+9801,
+9802,
 9875,
 9876,
 9888,
 9898,
 9899,
+9900,
+9901,
+9909,
 9911,
+9950,
 9951,
 9952,
 9953,
+9966,
+9987,
+9990,
 9991,
 9992,
 9993,
 9997,
 9998,
 9999,
+10000,
+10001,
+10002,
+10003,
+10007,
+10008,
+10009,
+10050,
+10051,
+10080,
+10081,
+10100,
+10101,
+10102,
+10103,
+10104,
+10107,
+10113,
+10114,
+10115,
+10116,
+10128,
+10160,
+10200,
+10252,
+10260,
+10288,
+10540,
+10541,
+10542,
+10543,
+10544,
+10800,
+10805,
+10990,
+11000,
+11001,
 11111,
 11112,
 11161,
 11163,
 11164,
 11165,
+11201,
+11208,
 11319,
+11320,
 11321,
 11367,
 11371,
+11600,
+11720,
 11751,
 11967,
+12000,
+12001,
+12002,
+12003,
+12004,
+12005,
+12006,
+12007,
+12008,
+12012,
+12013,
+12109,
 12121,
 12168,
 12172,
+12300,
 12321,
 12322,
 12345,
 12753,
+13160,
 13223,
 13224,
+13720,
 13721,
 13722,
 13724,
 13786,
 13818,
 13819,
+13820,
 13821,
 13822,
+14000,
+14001,
+14033,
+14034,
 14141,
+14142,
 14145,
 14149,
+14154,
+14250,
+14414,
 14936,
 14937,
+15000,
 15345,
 15363,
+15555,
+15660,
+15740,
 16161,
+16309,
+16310,
+16311,
+16360,
 16361,
 16367,
 16368,
 16384,
+16950,
 16991,
 16992,
 16993,
 16994,
 16995,
+17007,
 17185,
 17219,
 17235,
+17729,
+17754,
+17755,
+17756,
+18000,
 18181,
 18182,
 18183,
 18186,
 18187,
 18241,
+18262,
 18463,
 18769,
 18881,
 18888,
+19000,
 19191,
 19194,
 19283,
 19315,
 19398,
+19410,
 19411,
 19412,
 19539,
+19540,
 19541,
+20000,
+20001,
+20002,
+20003,
+20014,
+20034,
+20167,
+20202,
+20222,
+20480,
+20670,
+20999,
+21000,
+21554,
+21590,
+21800,
 21845,
 21846,
 21847,
 21848,
 21849,
+22000,
+22001,
+22002,
+22003,
+22004,
+22005,
 22273,
+22305,
+22343,
+22347,
+22350,
 22555,
+22763,
+22800,
 22951,
+23000,
+23001,
+23002,
+23003,
+23004,
+23005,
+23333,
+23400,
+23401,
+23402,
+24000,
+24001,
+24002,
+24003,
+24004,
+24005,
+24006,
 24242,
 24249,
 24321,
 24554,
 24677,
 24678,
+24680,
 24922,
+25000,
+25001,
+25002,
+25003,
+25004,
+25005,
+25006,
+25007,
+25008,
+25009,
 25793,
+25900,
+25901,
+25903,
+26000,
+26133,
+26208,
+26260,
 26261,
 26262,
 26263,
-26264,
+26486,
+26487,
+26489,
 27345,
-27374,
+27442,
+27504,
 27782,
 27999,
+28000,
+28240,
+29167,
+30001,
+30002,
+30999,
 31416,
 31457,
+31620,
 31765,
+31948,
+31949,
+32034,
 32249,
 32483,
 32635,
+32636,
+32767,
 32768,
 32769,
+32770,
 32771,
 32772,
 32773,
 32774,
 32775,
+32776,
+32777,
 32896,
+33123,
 33331,
 33434,
 33656,
 34962,
 34963,
 34964,
+34980,
+36001,
 36865,
 37475,
+37654,
+38201,
+38202,
+38203,
 39681,
+40000,
+40841,
+40842,
+40843,
 41111,
 41794,
 41795,
+42508,
+42509,
+42510,
 43188,
 43189,
+43190,
 43441,
 44321,
 44322,
 44553,
 44818,
+45054,
 45678,
 45966,
 46999,
+47000,
 47557,
 47624,
+47806,
+47808,
+48000,
+48001,
+48002,
+48003,
+48128,
+48129,
 48556,
 48619,