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 $<
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
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
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;
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 */
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;
}
1,
+2,
3,
5,
7,
17,
18,
19,
+20,
21,
22,
23,
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,
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,