From 9e7c27fcc7fb530c271630c0af8892002a64a344 Mon Sep 17 00:00:00 2001 From: crc Date: Mon, 13 Nov 2017 13:05:46 +0000 Subject: [PATCH] add s:tokenize-on-string to stdlib FossilOrigin-Name: fbbc60112e0011614b639c24a061eca41d3924b93f9a8e02c0685243e888c3a9 --- doc/Glossary.txt | 12 ++++++++++++ interfaces/image.c | 4 ++-- literate/RetroForth.md | 19 +++++++++++++++++++ ngaImage | Bin 33568 -> 34252 bytes words.tsv | 1 + 5 files changed, 34 insertions(+), 2 deletions(-) diff --git a/doc/Glossary.txt b/doc/Glossary.txt index 6be2f60..46e8a23 100644 --- a/doc/Glossary.txt +++ b/doc/Glossary.txt @@ -3433,6 +3433,18 @@ Class Handler: class:word | Namespace: {n/a} | Interface Layer: {n/a} ---------------------------------------------------------------- +s:tokenize-on-string + + Data: ss-a + Addr: - + Float: - + +Takes a string (s1) and a substring (s2) use as a separator. It splits the string into a set of substrings and returns a set containing pointers to each of them. + +Class Handler: class:word | Namespace: {n/a} | Interface Layer: {n/a} + +---------------------------------------------------------------- + s:trim Data: s-s diff --git a/interfaces/image.c b/interfaces/image.c index e1fbfda..60630b1 100644 --- a/interfaces/image.c +++ b/interfaces/image.c @@ -1,3 +1,3 @@ #include -int32_t ngaImageCells = 9731; -int32_t ngaImage[] = { 1793,-1,9695,9730,201712,0,10,1,10,2,10,3,10,4,10,5,10,6,10,7,10,8,10,9,10,10,10,11,10,12,10,13,10,14,10,15,10,16,10,17,10,18,10,19,10,20,10,21,10,22,10,23,10,24,10,25,10,26,10,2049,10,1793,10,67502597,10,67502597,67502597,10,68223234,1,2575,85000450,1,656912,2049,68,25,459011,74,524546,74,302256641,1,10,168756239,17043713,1,1,2577,134284549,65,2049,84,85263883,2049,85,302056966,1,25,1793,89,33620739,0,10,2049,65,2049,79,524548,79,590092,101,25,524546,79,134284289,-1,89,100860677,10,3197,3206,268505089,121,120,135205121,121,10,101384453,0,9,10,134287105,3,71,659457,3,459023,132,2049,68,25,2049,132,1793,139,2049,139,117506307,0,132,0,524545,25,137,168820993,0,151,1642241,151,134283523,7,137,1793,132,7,524545,59,137,1793,132,16846593,151,166,165,1793,122,16846593,151,137,165,1793,122,7,10,659713,1,659713,2,659713,3,17108737,3,2,524559,132,2049,132,2049,132,2049,146,168820998,2,3182,1025,167841793,204,5,17826049,0,204,2,15,25,524546,189,134287105,205,104,2305,206,459023,214,134287361,205,209,659201,204,2049,68,25,84152833,48,286458116,10,459014,229,184618754,45,25,16974851,-1,168886532,1,134284289,1,238,134284289,0,229,660227,32,0,0,112,114,101,102,105,120,58,125,0,285278479,255,7,2576,524546,79,1641217,1,167838467,252,2049,268,2049,264,524545,255,224,17826050,254,0,2572,2563,2049,245,1793,158,459023,158,17760513,171,3,191,8,251727617,3,2,2049,185,268501264,-1,151,10,2049,224,2049,185,459023,158,285282049,3,2,16846593,151,-1,151,134283536,61,137,16846593,3,0,132,8,659201,3,524545,25,137,17043201,3,7,2049,137,2049,132,268505092,151,1642241,151,656131,659201,3,524545,7,137,2049,132,459009,19,137,1642241,151,117506307,55,137,1642241,151,117506307,15,137,1642241,151,117506307,17,137,1793,5,524546,185,134284303,187,1807,1025,1642241,254,285282049,376,1,459012,371,117509889,204,371,134287105,376,224,16845825,0,384,369,1793,122,17826050,376,274,8,117506305,377,387,122,0,9,177,100,117,112,0,404,11,177,100,114,111,112,0,411,13,177,115,119,97,112,0,419,21,177,99,97,108,108,0,427,27,177,101,113,63,0,435,29,177,45,101,113,63,0,442,31,177,108,116,63,0,450,33,177,103,116,63,0,457,35,177,102,101,116,99,104,0,464,37,177,115,116,111,114,101,0,473,39,177,43,0,482,41,177,45,0,487,43,177,42,0,492,45,177,47,109,111,100,0,497,47,177,97,110,100,0,505,49,177,111,114,0,512,51,177,120,111,114,0,518,53,177,115,104,105,102,116,0,525,359,183,112,117,115,104,0,534,364,183,112,111,112,0,542,354,183,48,59,0,549,68,171,102,101,116,99,104,45,110,101,120,116,0,555,71,171,115,116,111,114,101,45,110,101,120,116,0,569,245,171,115,58,116,111,45,110,117,109,98,101,114,0,583,104,171,115,58,101,113,63,0,598,79,171,115,58,108,101,110,103,116,104,0,607,122,171,99,104,111,111,115,101,0,619,130,171,105,102,0,629,128,171,45,105,102,0,635,285,183,112,114,101,102,105,120,58,40,0,642,151,158,67,111,109,112,105,108,101,114,0,654,3,158,72,101,97,112,0,666,132,171,44,0,674,146,171,115,44,0,679,152,183,59,0,685,312,183,91,0,690,329,183,93,0,695,2,158,68,105,99,116,105,111,110,97,114,121,0,700,184,171,100,58,108,105,110,107,0,714,185,171,100,58,120,116,0,724,187,171,100,58,99,108,97,115,115,0,732,189,171,100,58,110,97,109,101,0,743,171,171,99,108,97,115,115,58,119,111,114,100,0,753,183,171,99,108,97,115,115,58,109,97,99,114,111,0,767,158,171,99,108,97,115,115,58,100,97,116,97,0,782,191,171,100,58,97,100,100,45,104,101,97,100,101,114,0,796,286,183,112,114,101,102,105,120,58,35,0,812,292,183,112,114,101,102,105,120,58,58,0,824,306,183,112,114,101,102,105,120,58,38,0,836,290,183,112,114,101,102,105,120,58,36,0,848,344,183,114,101,112,101,97,116,0,860,346,183,97,103,97,105,110,0,870,396,171,105,110,116,101,114,112,114,101,116,0,879,224,171,100,58,108,111,111,107,117,112,0,892,177,171,99,108,97,115,115,58,112,114,105,109,105,116,105,118,101,0,904,4,158,86,101,114,115,105,111,110,0,923,369,171,101,114,114,58,110,111,116,102,111,117,110,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,125,125,0,101,58,99,108,111,115,101,0,45,0,118,101,0,105,110,101,0,63,0,63,64,91,92,93,94,96,123,124,125,126,0,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,934,1543,171,69,79,77,0,1,-3,15,10,1536,1557,171,100,58,108,97,115,116,0,1,2,15,10,1547,1575,171,100,58,108,97,115,116,60,120,116,62,0,2049,1557,2049,185,15,10,1561,1598,171,100,58,108,97,115,116,60,99,108,97,115,115,62,0,2049,1557,2049,187,15,10,1581,1620,171,100,58,108,97,115,116,60,110,97,109,101,62,0,2049,1557,2049,189,10,1604,1636,171,114,101,99,108,97,115,115,0,2049,1557,2049,187,16,10,1625,1655,171,105,109,109,101,100,105,97,116,101,0,1,183,2049,1636,10,1642,1668,171,100,97,116,97,0,1,158,2049,1636,10,1660,1682,171,100,101,112,116,104,0,1,-1,15,10,1673,1701,171,99,111,109,112,105,108,101,58,108,105,116,0,1,1,2049,132,2049,132,10,1686,1724,171,99,111,109,112,105,108,101,58,106,117,109,112,0,1,1793,2049,132,2049,132,10,1708,1747,171,99,111,109,112,105,108,101,58,99,97,108,108,0,1,2049,2049,132,2049,132,10,1731,1769,171,99,111,109,112,105,108,101,58,114,101,116,0,1,10,2049,132,10,1754,1788,171,99,111,109,112,105,108,105,110,103,63,0,1,151,15,10,1774,1804,183,112,114,101,102,105,120,58,64,0,2049,224,2049,185,15,2049,1788,1793,1820,1,3841,2049,132,2049,132,10,1,1813,1793,1826,15,10,1,1824,2049,122,10,1792,1843,183,112,114,101,102,105,120,58,33,0,2049,224,2049,185,15,2049,1788,1793,1859,1,4097,2049,132,2049,132,10,1,1852,1793,1865,16,10,1,1863,2049,122,10,1831,1882,183,112,114,101,102,105,120,58,96,0,2049,1788,1793,1891,2049,245,2049,132,10,1,1886,1793,1897,3,10,1,1895,2049,122,10,1870,1910,171,104,101,114,101,0,3841,3,10,1902,1925,171,100,58,99,114,101,97,116,101,0,1,158,1,0,2049,191,2049,1910,2049,1557,2049,185,16,10,1913,1946,171,118,97,114,0,2049,1925,1,0,2049,132,10,1939,1963,171,118,97,114,60,110,62,0,2049,1925,2049,132,10,1953,1977,171,99,111,110,115,116,0,2049,1925,2049,1557,2049,185,16,10,1968,1993,171,116,117,99,107,0,2,5,4,6,10,1985,2006,171,111,118,101,114,0,5,2,6,4,10,1998,2023,171,100,117,112,45,112,97,105,114,0,2049,2006,2049,2006,10,2011,2035,171,110,105,112,0,4,3,10,2028,2051,171,100,114,111,112,45,112,97,105,114,0,3,3,10,2038,2062,171,63,100,117,112,0,2,25,10,2054,2072,171,100,105,112,0,4,5,8,6,10,2065,2084,171,115,105,112,0,5,2,6,4,1,21,2049,2072,10,2077,2099,171,98,105,0,1,2084,2049,2072,8,10,2093,2112,171,98,105,42,0,1,2072,2049,2072,8,10,2105,2125,171,98,105,64,0,2,2049,2112,10,2118,2136,171,116,114,105,0,1793,2145,1,2084,2049,2072,2049,2084,10,1,2138,2049,2072,8,10,2129,2159,171,116,114,105,42,0,1793,2176,1793,2169,4,1,2072,2049,2072,10,1,2163,2049,2072,2049,2072,10,1,2161,2049,2072,8,10,2151,2190,171,116,114,105,64,0,2,2,2049,2159,10,2182,2204,171,119,104,105,108,101,0,1793,2216,2,2049,2072,4,25,3,1,2206,7,10,1,2206,8,3,10,2195,2230,171,117,110,116,105,108,0,1793,2245,2,2049,2072,4,1,-1,23,25,3,1,2232,7,10,1,2232,8,3,10,2221,2259,171,116,105,109,101,115,0,4,1793,2276,25,1,1,18,5,1,21,2049,2084,6,1,2262,7,10,1,2262,8,3,10,2250,2289,171,84,82,85,69,0,1,-1,10,2281,2301,171,70,65,76,83,69,0,1,0,10,2292,2313,171,108,116,101,113,63,0,2049,2023,11,1793,2320,13,10,1,2318,2049,2072,22,10,2304,2335,171,103,116,101,113,63,0,2049,2023,11,1793,2342,14,10,1,2340,2049,2072,22,10,2326,2357,171,110,58,77,65,88,0,1,2147483647,10,2348,2369,171,110,58,77,73,78,0,1,-2147483648,10,2360,2383,171,110,58,122,101,114,111,63,0,1,0,11,10,2372,2399,171,110,58,45,122,101,114,111,63,0,1,0,12,10,2387,2418,171,110,58,110,101,103,97,116,105,118,101,63,0,1,0,13,10,2403,2437,171,110,58,112,111,115,105,116,105,118,101,63,0,1,-1,14,10,2422,2465,171,110,58,115,116,114,105,99,116,108,121,45,112,111,115,105,116,105,118,101,63,0,1,0,14,10,2441,2480,171,110,58,101,118,101,110,63,0,1,2,20,3,2049,2383,10,2469,2497,171,110,58,111,100,100,63,0,1,2,20,3,2049,2399,10,2487,2512,171,99,97,115,101,0,1793,2518,2049,2006,11,10,1,2514,2049,2072,4,1793,2531,2049,2035,8,2049,2289,10,1,2525,1793,2539,3,2049,2301,10,1,2535,2049,122,25,6,3,3,10,2504,2558,171,115,58,99,97,115,101,0,1793,2565,2049,2006,2049,104,10,1,2560,2049,2072,4,1793,2578,2049,2035,8,2049,2289,10,1,2572,1793,2586,3,2049,2301,10,1,2582,2049,122,25,6,3,3,10,2548,2602,171,114,111,116,0,1793,2606,4,10,1,2604,2049,2072,4,10,2595,2620,171,116,111,114,115,0,6,6,2,5,4,5,10,2612,2632,171,47,0,20,2049,2035,10,2627,2643,171,109,111,100,0,20,3,10,2636,2653,171,110,111,116,0,1,-1,23,10,2646,2666,171,110,58,112,111,119,0,1,1,4,1793,2675,2049,2006,19,10,1,2671,2049,2259,2049,2035,10,2657,2694,171,110,58,110,101,103,97,116,101,0,1,-1,19,10,2682,2710,171,110,58,115,113,117,97,114,101,0,2,19,10,2698,2723,171,110,58,115,113,114,116,0,1,1,1793,2744,2049,2023,2049,2632,2049,2006,18,1,2,2049,2632,25,17,1,2727,7,10,1,2727,8,2049,2035,10,2713,2759,171,110,58,109,105,110,0,2049,2023,13,1793,2766,3,10,1,2764,1793,2773,2049,2035,10,1,2770,2049,122,10,2750,2787,171,110,58,109,97,120,0,2049,2023,14,1793,2794,3,10,1,2792,1793,2801,2049,2035,10,1,2798,2049,122,10,2778,2815,171,110,58,97,98,115,0,2,2049,2694,2049,2787,10,2806,2832,171,110,58,108,105,109,105,116,0,4,5,2049,2759,6,2049,2787,10,2821,2849,171,110,58,105,110,99,0,1,1,17,10,2840,2862,171,110,58,100,101,99,0,1,1,18,10,2853,2880,171,110,58,98,101,116,119,101,101,110,63,0,2049,2602,1793,2891,2049,2602,2049,2602,2049,2832,10,1,2884,2049,2084,11,10,2866,2909,171,118,58,105,110,99,45,98,121,0,1793,2914,15,17,10,1,2911,2049,2084,16,10,2897,2932,171,118,58,100,101,99,45,98,121,0,1793,2938,15,4,18,10,1,2934,2049,2084,16,10,2920,2953,171,118,58,105,110,99,0,1,1,4,2049,2909,10,2944,2968,171,118,58,100,101,99,0,1,1,4,2049,2932,10,2959,2985,171,118,58,108,105,109,105,116,0,5,5,2,15,6,6,2049,2832,4,16,10,2974,3004,171,118,58,111,110,0,2049,2289,4,16,10,2996,3018,171,118,58,111,102,102,0,2049,2301,4,16,10,3009,3037,171,118,58,112,114,101,115,101,114,118,101,0,4,2,15,1793,3051,1793,3046,8,10,1,3044,2049,2072,10,1,3042,2049,2072,4,16,10,3023,3067,171,97,108,108,111,116,0,1,3,2049,2909,10,3058,3090,171,118,58,117,112,100,97,116,101,45,117,115,105,110,103,0,4,1793,3097,15,4,8,10,1,3093,2049,2084,16,10,3072,3111,171,99,111,112,121,0,1793,3120,1,68,2049,2072,2049,71,10,1,3113,2049,2259,3,3,10,3103,3140,171,83,99,111,112,101,76,105,115,116,0,9632,9687,10,3127,3149,171,123,123,0,2049,1557,2,1,3140,2049,71,16,10,3143,3174,171,45,45,45,114,101,118,101,97,108,45,45,45,0,2049,1557,1,3140,2049,2849,16,10,3158,3188,171,125,125,0,1,3140,2049,68,4,15,11,1793,3202,3841,3140,4097,2,10,1,3197,1793,3232,3841,3140,1793,3227,1,2,15,2,15,1,3140,2049,2849,15,12,25,3,1,3212,7,10,1,3210,8,16,10,1,3206,2049,122,10,3182,3247,158,66,117,102,102,101,114,0,0,10,3237,3256,158,80,116,114,0,0,10,3249,3271,171,116,101,114,109,105,110,97,116,101,0,1,0,3841,3256,16,10,3182,3293,171,98,117,102,102,101,114,58,115,116,97,114,116,0,3841,3247,10,3277,3310,171,98,117,102,102,101,114,58,101,110,100,0,3841,3256,10,3296,3327,171,98,117,102,102,101,114,58,97,100,100,0,2049,3310,16,1,3256,2049,2953,2049,3271,10,3313,3351,171,98,117,102,102,101,114,58,103,101,116,0,1,3256,2049,2968,2049,3310,15,2049,3271,10,3337,3377,171,98,117,102,102,101,114,58,101,109,112,116,121,0,2049,3293,4097,3256,2049,3271,10,3361,3399,171,98,117,102,102,101,114,58,115,105,122,101,0,2049,3310,2049,3293,18,10,3384,3419,171,98,117,102,102,101,114,58,115,101,116,0,4097,3247,2049,3377,10,3405,3443,171,98,117,102,102,101,114,58,112,114,101,115,101,114,118,101,0,3841,3247,3841,3256,1793,3460,1793,3453,8,10,1,3451,2049,2072,4097,3247,10,1,3449,2049,2072,4097,3256,10,3424,3482,158,84,101,109,112,83,116,114,105,110,103,115,0,32,3467,3500,158,84,101,109,112,83,116,114,105,110,103,77,97,120,0,512,3483,3512,171,83,84,82,73,78,71,83,0,2049,1543,3841,3482,3841,3500,19,18,10,3501,3534,158,115,58,67,117,114,114,101,110,116,0,20,10,3521,3549,171,115,58,112,111,105,110,116,101,114,0,3841,3534,3841,3500,19,2049,3512,17,10,3536,3568,171,115,58,110,101,120,116,0,1,3534,2049,2953,3841,3534,3841,3482,11,1793,3584,1,0,4097,3534,10,1,3579,2049,130,10,3501,3599,171,115,58,116,101,109,112,0,2,2049,79,2049,2849,2049,3549,4,2049,3111,2049,3549,2049,3568,10,3589,3625,171,115,58,101,109,112,116,121,0,2049,3549,2049,3568,10,3614,3640,171,115,58,115,107,105,112,0,6,1793,3648,2049,68,2049,2399,10,1,3643,2049,2204,2049,2862,5,10,3630,3666,171,115,58,107,101,101,112,0,2049,1788,1793,3675,1,3640,2049,171,10,1,3670,2049,130,2049,1910,1793,3686,2049,146,10,1,3683,2049,2072,2049,158,10,3656,3705,183,112,114,101,102,105,120,58,39,0,2049,1788,1793,3712,2049,3666,10,1,3709,1793,3719,2049,3599,10,1,3716,2049,122,10,3693,3734,171,115,58,99,104,111,112,0,2049,3599,2,2049,79,2049,2006,17,2049,2862,1,0,4,16,10,3724,3762,171,115,58,114,101,118,101,114,115,101,0,1793,3804,2,2049,3599,2049,3419,1,79,1793,3780,2,2049,79,17,2049,2862,10,1,3773,2049,2099,4,1793,3794,2,15,2049,3327,2049,2862,10,1,3787,2049,2259,3,2049,3293,2049,3599,10,1,3764,2049,3443,10,3749,3824,171,115,58,116,114,105,109,45,108,101,102,116,0,2049,3599,1793,3849,2049,68,1793,3836,1,32,11,10,1,3832,1793,3843,2049,2383,10,1,3840,2049,2099,21,10,1,3828,2049,2204,2049,2862,10,3809,3872,171,115,58,116,114,105,109,45,114,105,103,104,116,0,2049,3599,2049,3762,2049,3824,2049,3762,10,3856,3891,171,115,58,116,114,105,109,0,2049,3872,2049,3824,10,3881,3909,171,115,58,112,114,101,112,101,110,100,0,2049,3599,1793,3933,2,2049,79,17,1793,3925,2,2049,79,2049,2849,10,1,3919,2049,2072,4,2049,3111,10,1,3913,2049,2084,10,3896,3950,171,115,58,97,112,112,101,110,100,0,4,2049,3909,10,3938,3968,171,115,58,102,111,114,45,101,97,99,104,0,1793,4013,2049,2006,15,25,3,2049,2023,1793,3996,1793,3991,1793,3985,15,10,1,3983,2049,2072,8,10,1,3981,2049,2072,10,1,3979,2049,2072,1793,4005,2049,2849,10,1,4002,2049,2072,1,3970,7,10,1,3970,8,2049,2051,10,3954,4031,171,115,58,102,105,108,116,101,114,0,1793,4068,2049,3625,2049,3419,4,1793,4060,2049,2023,4,8,1793,4049,2049,3327,10,1,4046,1793,4055,3,10,1,4053,2049,122,10,1,4040,2049,3968,3,2049,3293,10,1,4033,2049,3443,10,4019,4082,171,115,58,109,97,112,0,1793,4105,2049,3625,2049,3419,4,1793,4097,2049,2006,8,2049,3327,10,1,4091,2049,3968,3,2049,3293,10,1,4084,2049,3443,10,4073,4122,171,115,58,115,117,98,115,116,114,0,1793,4128,17,2049,3625,10,1,4124,2049,2072,1793,4146,2049,2006,1793,4141,2049,3111,10,1,4138,2049,2072,10,1,4134,2049,2084,2049,2006,1793,4160,17,1,0,4,16,10,1,4154,2049,2072,10,4110,4176,171,115,58,114,105,103,104,116,0,2049,2006,2049,79,2049,2006,18,4,2049,4122,10,4165,4197,171,115,58,108,101,102,116,0,1,0,4,2049,4122,10,4187,4213,171,115,58,104,97,115,104,0,1,5381,4,1793,4224,4,1,33,19,17,10,1,4218,2049,3968,10,4203,4239,171,115,58,99,111,112,121,0,2049,2006,2049,79,2049,2849,2049,3111,10,4229,4260,171,115,58,68,73,71,73,84,83,0,2049,3640,48,49,50,51,52,53,54,55,56,57,0,1,4262,10,4248,4297,171,115,58,65,83,67,73,73,45,76,79,87,69,82,67,65,83,69,0,2049,3640,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,0,1,4299,10,4276,4350,171,115,58,65,83,67,73,73,45,85,80,80,69,82,67,65,83,69,0,2049,3640,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,0,1,4352,10,4329,4401,171,115,58,65,83,67,73,73,45,76,69,84,84,69,82,83,0,2049,3640,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,0,1,4403,10,4382,4476,171,115,58,80,85,78,67,84,85,65,84,73,79,78,0,2049,3640,95,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,58,59,60,61,62,63,64,91,92,93,94,96,123,124,125,126,0,1,4478,1,95,2049,2006,16,10,4459,4535,158,115,58,87,72,73,84,69,83,80,65,67,69,0,9,10,13,0,4519,0,158,65,83,67,73,73,58,78,85,76,0,4539,1,158,65,83,67,73,73,58,83,79,72,0,4552,2,158,65,83,67,73,73,58,83,84,88,0,4565,3,158,65,83,67,73,73,58,69,84,88,0,4578,4,158,65,83,67,73,73,58,69,79,84,0,4591,5,158,65,83,67,73,73,58,69,78,81,0,4604,6,158,65,83,67,73,73,58,65,67,75,0,4617,7,158,65,83,67,73,73,58,66,69,76,0,4630,8,158,65,83,67,73,73,58,66,83,0,4643,9,158,65,83,67,73,73,58,72,84,0,4655,10,158,65,83,67,73,73,58,76,70,0,4667,11,158,65,83,67,73,73,58,86,84,0,4679,12,158,65,83,67,73,73,58,70,70,0,4691,13,158,65,83,67,73,73,58,67,82,0,4703,14,158,65,83,67,73,73,58,83,79,0,4715,15,158,65,83,67,73,73,58,83,73,0,4727,16,158,65,83,67,73,73,58,68,76,69,0,4739,17,158,65,83,67,73,73,58,68,67,49,0,4752,18,158,65,83,67,73,73,58,68,67,50,0,4765,19,158,65,83,67,73,73,58,68,67,51,0,4778,20,158,65,83,67,73,73,58,68,67,52,0,4791,21,158,65,83,67,73,73,58,78,65,75,0,4804,22,158,65,83,67,73,73,58,83,89,78,0,4817,23,158,65,83,67,73,73,58,69,84,66,0,4830,24,158,65,83,67,73,73,58,67,65,78,0,4843,25,158,65,83,67,73,73,58,69,77,0,4856,26,158,65,83,67,73,73,58,83,85,66,0,4868,27,158,65,83,67,73,73,58,69,83,67,0,4881,28,158,65,83,67,73,73,58,70,83,0,4894,29,158,65,83,67,73,73,58,71,83,0,4906,30,158,65,83,67,73,73,58,82,83,0,4918,31,158,65,83,67,73,73,58,85,83,0,4930,32,158,65,83,67,73,73,58,83,80,65,67,69,0,4942,127,158,65,83,67,73,73,58,68,69,76,0,4957,4983,171,99,58,108,101,116,116,101,114,63,0,1,65,1,122,2049,2880,10,4970,5006,171,99,58,108,111,119,101,114,99,97,115,101,63,0,1,97,1,122,2049,2880,10,4990,5029,171,99,58,117,112,112,101,114,99,97,115,101,63,0,1,65,1,90,2049,2880,10,5013,5048,171,99,58,100,105,103,105,116,63,0,1,48,1,57,2049,2880,10,5036,5072,171,99,58,119,104,105,116,101,115,112,97,99,101,63,0,1,32,1793,5079,2049,2289,10,1,5076,2049,2512,1,9,1793,5090,2049,2289,10,1,5087,2049,2512,1,10,1793,5101,2049,2289,10,1,5098,2049,2512,1,13,1793,5112,2049,2289,10,1,5109,2049,2512,3,2049,2301,10,5055,5134,171,99,58,118,105,115,105,98,108,101,63,0,1,31,1,126,2049,2880,10,5120,5153,171,99,58,118,111,119,101,108,63,0,1,97,1793,5160,2049,2289,10,1,5157,2049,2512,1,101,1793,5171,2049,2289,10,1,5168,2049,2512,1,105,1793,5182,2049,2289,10,1,5179,2049,2512,1,111,1793,5193,2049,2289,10,1,5190,2049,2512,1,117,1793,5204,2049,2289,10,1,5201,2049,2512,1,65,1793,5215,2049,2289,10,1,5212,2049,2512,1,69,1793,5226,2049,2289,10,1,5223,2049,2512,1,73,1793,5237,2049,2289,10,1,5234,2049,2512,1,79,1793,5248,2049,2289,10,1,5245,2049,2512,1,85,1793,5259,2049,2289,10,1,5256,2049,2512,3,2049,2301,10,5141,5283,171,99,58,99,111,110,115,111,110,97,110,116,63,0,2,2049,4983,1793,5293,2049,5153,2049,2653,10,1,5288,1793,5301,3,2049,2301,10,1,5297,2049,122,10,5267,5323,171,99,58,45,108,111,119,101,114,99,97,115,101,63,0,2049,5006,2049,2653,10,5306,5345,171,99,58,45,117,112,112,101,114,99,97,115,101,63,0,2049,5029,2049,2653,10,5328,5363,171,99,58,45,100,105,103,105,116,63,0,2049,5048,2049,2653,10,5350,5386,171,99,58,45,119,104,105,116,101,115,112,97,99,101,63,0,2049,5072,2049,2653,10,5368,5406,171,99,58,45,118,105,115,105,98,108,101,63,0,2049,5134,2049,2653,10,5391,5424,171,99,58,45,118,111,119,101,108,63,0,2049,5153,2049,2653,10,5411,5446,171,99,58,45,99,111,110,115,111,110,97,110,116,63,0,2049,5283,2049,2653,10,5429,5465,171,99,58,116,111,45,117,112,112,101,114,0,2,2049,5006,25,3,1,32,18,10,5451,5488,171,99,58,116,111,45,108,111,119,101,114,0,2,2049,5029,25,3,1,32,17,10,5474,5514,171,99,58,116,111,103,103,108,101,45,99,97,115,101,0,2,2049,5006,1793,5522,2049,5465,10,1,5519,1793,5529,2049,5488,10,1,5526,2049,122,10,5497,5549,171,99,58,116,111,45,115,116,114,105,110,103,0,2049,3640,46,0,1,5551,2049,3599,1793,5561,16,10,1,5559,2049,2084,10,5534,5580,171,115,58,116,111,45,117,112,112,101,114,0,1793,5585,2049,5465,10,1,5582,2049,4082,10,5566,5604,171,115,58,116,111,45,108,111,119,101,114,0,1793,5609,2049,5488,10,1,5606,2049,4082,10,5590,5623,158,86,97,108,117,101,0,0,5614,5635,171,99,111,114,114,101,99,116,0,2,1,48,13,1793,5651,1,48,2049,2006,18,1,2,19,17,10,1,5641,2049,130,10,5590,5671,171,110,58,116,111,45,115,116,114,105,110,103,0,1793,5726,2049,1910,2049,3419,2,4097,5623,2049,2815,1793,5699,1,10,20,4,1,48,17,2049,5635,2049,3327,2,2049,2399,10,1,5684,2049,2204,3,3841,5623,2049,2418,1793,5715,1,45,2049,3327,10,1,5710,2049,130,2049,3293,2049,3762,2049,3599,10,1,5673,2049,3443,10,5656,5753,158,82,101,119,114,105,116,101,85,110,100,101,114,115,99,111,114,101,115,0,-1,5731,5761,171,115,117,98,0,1,95,1793,5768,1,32,10,1,5765,2049,2512,10,5754,5784,171,114,101,119,114,105,116,101,0,3841,5753,1793,5798,1793,5793,2049,5761,10,1,5790,2049,4082,10,1,5788,2049,130,1,3705,8,10,5731,5818,183,112,114,101,102,105,120,58,39,0,2049,5784,10,5806,5835,171,115,58,105,110,100,101,120,45,111,102,0,4,1793,5859,2049,68,25,4,1793,5848,2049,2006,12,10,1,5844,2049,2072,4,25,3,1,5838,7,10,1,5838,2049,2084,1793,5871,18,2049,2862,2049,2035,10,1,5865,2049,2084,2049,79,2049,2006,11,1793,5886,3,1,-1,10,1,5882,2049,130,10,5821,5911,171,115,58,99,111,110,116,97,105,110,115,45,99,104,97,114,63,0,2049,5835,1,-1,12,10,5891,5924,158,83,114,99,0,0,5917,5932,158,84,97,114,0,0,5925,5940,158,80,97,100,0,0,5933,5946,158,73,0,0,5941,5952,158,70,0,0,5947,5959,158,65,116,0,0,5953,5973,171,116,101,114,109,105,110,97,116,101,0,1,0,3841,5940,3841,5932,2049,79,17,16,10,5960,5995,171,101,120,116,114,97,99,116,0,3841,5924,3841,5946,17,3841,5940,3841,5932,2049,79,2049,3111,10,5984,6020,171,99,111,109,112,97,114,101,0,3841,5940,3841,5932,2049,104,3841,5952,22,4097,5952,3841,5952,1793,6040,3841,5946,4097,5959,10,1,6035,2049,128,10,6009,6053,171,110,101,120,116,0,1,5946,2049,2953,10,5891,6080,171,115,58,99,111,110,116,97,105,110,115,45,115,116,114,105,110,103,63,0,4097,5932,4097,5924,2049,3625,4097,5940,1,0,4097,5946,1,0,4097,5952,3841,5924,2049,79,1793,6111,2049,5995,2049,5973,2049,6020,2049,6053,10,1,6102,2049,2259,3841,5952,10,6058,6139,171,115,58,105,110,100,101,120,45,111,102,45,115,116,114,105,110,103,0,4097,5932,4097,5924,2049,3625,4097,5940,1,0,4097,5946,1,0,4097,5952,1,-1,4097,5959,3841,5924,2049,79,1793,6174,2049,5995,2049,5973,2049,6020,2049,6053,10,1,6165,2049,2259,3841,5952,1793,6185,3841,5959,10,1,6182,1793,6192,1,-1,10,1,6189,2049,122,10,6118,6208,171,115,58,115,112,108,105,116,0,2049,2023,2049,5835,2049,2035,2049,2023,2049,4197,1793,6222,17,10,1,6220,2049,2072,10,6197,6248,171,115,58,115,112,108,105,116,45,111,110,45,115,116,114,105,110,103,0,2049,2023,2049,6139,2049,2849,2049,2035,2049,2023,2049,4197,1793,6264,17,10,1,6262,2049,2072,10,6227,6274,158,76,0,0,6227,6288,171,115,58,114,101,112,108,97,99,101,0,2049,2006,2049,79,4097,6274,1793,6303,2049,6248,4,3841,6274,17,10,1,6296,2049,2072,2049,3909,2049,3950,10,6275,6324,158,83,112,108,105,116,45,79,110,0,0,6312,6335,171,109,97,116,99,104,63,0,3841,6324,11,10,6325,6352,171,116,101,114,109,105,110,97,116,101,0,1,0,2049,2006,2049,2862,16,10,6339,6368,171,115,116,101,112,0,1793,6373,2049,2849,10,1,6370,2049,2072,2049,6335,1793,6387,2,2049,132,2049,6352,10,1,6381,2049,130,10,6275,6406,171,115,58,116,111,107,101,110,105,122,101,0,4097,6324,2049,3666,2049,1910,1,0,2049,132,1793,6433,2,2049,132,2,1793,6427,2049,6368,10,1,6424,2049,3968,3,10,1,6418,2049,2072,2049,1910,2049,2006,18,2049,2862,2049,2006,16,10,6392,6458,158,86,97,108,117,101,115,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6448,6494,171,102,114,111,109,0,2049,79,2,1793,6513,1793,6506,1,6458,17,16,10,1,6501,2049,2084,2049,2862,10,1,6499,2049,2259,3,10,6486,6525,171,116,111,0,2,2049,79,1793,6543,2049,68,1,97,18,2049,2849,1,6458,17,15,4,10,1,6530,2049,2259,3,10,6392,6560,171,114,101,111,114,100,101,114,0,1793,6565,2049,6494,10,1,6562,2049,2072,2049,6525,10,6549,6581,171,99,117,114,114,121,0,2049,1910,1793,6593,4,2049,1701,2049,1747,2049,1769,10,1,6585,2049,2072,10,6572,6606,171,100,111,101,115,0,2049,1575,4,2049,6581,2049,1557,2049,185,16,1,171,2049,1636,10,6598,6635,171,100,58,102,111,114,45,101,97,99,104,0,1,2,1793,6663,15,25,2049,2023,1793,6655,1793,6650,4,8,10,1,6647,2049,2072,10,1,6645,2049,2072,1,6639,7,10,1,6639,8,3,10,6621,6683,171,100,58,108,111,111,107,117,112,45,120,116,0,1,0,4,1793,6718,2049,2023,2049,185,15,11,1793,6707,4,1793,6702,2049,2035,10,1,6699,2049,2072,10,1,6696,1793,6713,3,10,1,6711,2049,122,10,1,6688,2049,6635,3,10,6668,6732,171,99,104,97,114,0,1,32,1793,6741,1,95,2049,3327,10,1,6736,2049,2512,1,110,1793,6754,1,10,2049,3327,10,1,6749,2049,2512,1,116,1793,6767,1,9,2049,3327,10,1,6762,2049,2512,2049,3327,10,6724,6784,171,115,116,114,105,110,103,0,2049,68,25,2049,3327,1,6784,7,10,6774,6801,171,116,121,112,101,0,1,99,1793,6809,4,2049,3327,10,1,6805,2049,2512,1,115,1793,6822,4,2049,6784,3,10,1,6817,2049,2512,1,110,1793,6837,4,2049,5671,2049,6784,3,10,1,6830,2049,2512,3,10,6793,6853,171,104,97,110,100,108,101,0,1,92,1793,6862,2049,68,2049,6732,10,1,6857,2049,2512,1,37,1793,6875,2049,68,2049,6801,10,1,6870,2049,2512,2049,3327,10,6668,6899,171,115,58,119,105,116,104,45,102,111,114,109,97,116,0,1793,6928,2049,3625,1793,6923,2049,3419,1793,6918,2049,68,25,2049,6853,1,6909,7,10,1,6909,8,3,10,1,6905,2049,2084,10,1,6901,2049,3443,10,6882,6944,171,115,58,99,111,110,115,116,0,1793,6949,2049,3666,10,1,6946,2049,2072,2049,1977,10,6933,6970,171,115,101,116,58,108,101,110,103,116,104,0,15,10,6956,6992,171,115,101,116,58,102,114,111,109,45,114,101,115,117,108,116,115,0,2049,1682,1793,6998,8,10,1,6996,2049,2072,2049,1682,4,18,2049,1910,1793,7023,2,2049,132,1793,7018,2049,132,10,1,7015,2049,2259,10,1,7010,2049,2072,10,6972,7047,171,115,101,116,58,102,114,111,109,45,115,116,114,105,110,103,0,2049,3762,1793,7059,1793,7054,10,1,7053,2049,3968,10,1,7051,2049,6581,2049,6992,10,7028,7071,158,81,0,0,7028,7088,171,115,101,116,58,102,111,114,45,101,97,99,104,0,1,7071,1793,7118,4097,7071,2049,68,1793,7112,2049,68,4,1793,7107,3841,7071,8,10,1,7103,2049,2072,10,1,7098,2049,2259,3,10,1,7092,2049,3037,10,7072,7134,171,115,101,116,58,100,117,112,0,2049,1910,1793,7152,2,15,2049,132,1793,7147,2049,132,10,1,7144,2049,7088,10,1,7138,2049,2072,10,7123,7171,171,115,101,116,58,102,105,108,116,101,114,0,1793,7200,2049,2006,1793,7179,8,10,1,7177,2049,2072,4,1793,7189,2049,132,10,1,7186,1793,7195,3,10,1,7193,2049,122,10,1,7173,2049,6581,2049,1910,1793,7216,2049,2006,15,2049,132,2049,7088,10,1,7208,2049,2072,2049,1910,2049,2006,18,2049,2862,2049,2006,16,10,7157,7236,158,70,0,0,7157,7254,171,115,101,116,58,99,111,110,116,97,105,110,115,63,0,1,7236,2049,3018,1793,7269,2049,2006,11,3841,7236,22,4097,7236,10,1,7260,2049,7088,3,3841,7236,10,7237,7301,171,115,101,116,58,99,111,110,116,97,105,110,115,45,115,116,114,105,110,103,63,0,1,7236,2049,3018,1793,7317,2049,2006,2049,104,3841,7236,22,4097,7236,10,1,7307,2049,7088,3,3841,7236,10,7277,7336,171,115,101,116,58,109,97,112,0,1793,7342,8,2049,132,10,1,7338,2049,6581,2049,1910,1793,7358,2049,2006,15,2049,132,2049,7088,10,1,7350,2049,2072,10,7325,7378,171,115,101,116,58,114,101,118,101,114,115,101,0,2049,1910,1793,7412,2049,68,1793,7390,17,2049,2862,10,1,7386,2049,2084,2,2049,132,1793,7406,2,15,2049,132,2049,2862,10,1,7399,2049,2259,3,10,1,7382,2049,2072,10,7363,7428,171,115,101,116,58,110,116,104,0,17,2049,2849,10,7417,7446,171,115,101,116,58,114,101,100,117,99,101,0,1793,7450,4,10,1,7448,2049,2072,2049,7088,10,7432,7463,158,73,48,0,0,0,0,7457,7472,158,73,49,0,0,0,0,7466,7481,158,73,50,0,0,0,0,7475,7490,158,73,51,0,0,0,0,7484,7503,171,111,112,99,111,100,101,0,2049,3640,46,46,0,1,7505,1793,7515,1,0,10,1,7512,2049,2558,2049,3640,108,105,0,1,7521,1793,7531,1,1,10,1,7528,2049,2558,2049,3640,100,117,0,1,7537,1793,7547,1,2,10,1,7544,2049,2558,2049,3640,100,114,0,1,7553,1793,7563,1,3,10,1,7560,2049,2558,2049,3640,115,119,0,1,7569,1793,7579,1,4,10,1,7576,2049,2558,2049,3640,112,117,0,1,7585,1793,7595,1,5,10,1,7592,2049,2558,2049,3640,112,111,0,1,7601,1793,7611,1,6,10,1,7608,2049,2558,2049,3640,106,117,0,1,7617,1793,7627,1,7,10,1,7624,2049,2558,2049,3640,99,97,0,1,7633,1793,7643,1,8,10,1,7640,2049,2558,2049,3640,99,99,0,1,7649,1793,7659,1,9,10,1,7656,2049,2558,2049,3640,114,101,0,1,7665,1793,7675,1,10,10,1,7672,2049,2558,2049,3640,101,113,0,1,7681,1793,7691,1,11,10,1,7688,2049,2558,2049,3640,110,101,0,1,7697,1793,7707,1,12,10,1,7704,2049,2558,2049,3640,108,116,0,1,7713,1793,7723,1,13,10,1,7720,2049,2558,2049,3640,103,116,0,1,7729,1793,7739,1,14,10,1,7736,2049,2558,2049,3640,102,101,0,1,7745,1793,7755,1,15,10,1,7752,2049,2558,2049,3640,115,116,0,1,7761,1793,7771,1,16,10,1,7768,2049,2558,2049,3640,97,100,0,1,7777,1793,7787,1,17,10,1,7784,2049,2558,2049,3640,115,117,0,1,7793,1793,7803,1,18,10,1,7800,2049,2558,2049,3640,109,117,0,1,7809,1793,7819,1,19,10,1,7816,2049,2558,2049,3640,100,105,0,1,7825,1793,7835,1,20,10,1,7832,2049,2558,2049,3640,97,110,0,1,7841,1793,7851,1,21,10,1,7848,2049,2558,2049,3640,111,114,0,1,7857,1793,7867,1,22,10,1,7864,2049,2558,2049,3640,120,111,0,1,7873,1793,7883,1,23,10,1,7880,2049,2558,2049,3640,115,104,0,1,7889,1793,7899,1,24,10,1,7896,2049,2558,2049,3640,122,114,0,1,7905,1793,7915,1,25,10,1,7912,2049,2558,2049,3640,101,110,0,1,7921,1793,7931,1,26,10,1,7928,2049,2558,3,1,0,10,7493,7947,171,112,97,99,107,0,1,7463,2049,7503,1,7472,2049,7503,1,7481,2049,7503,1,7490,2049,7503,1,-24,24,4,1,-16,24,17,4,1,-8,24,17,4,17,10,7432,7984,171,105,0,2,1,7463,1,2,2049,3111,1,2,17,2,1,7472,1,2,2049,3111,1,2,17,2,1,7481,1,2,2049,3111,1,2,17,1,7490,1,2,2049,3111,2049,7947,2049,132,10,7979,8030,171,100,0,2049,132,10,8025,8038,171,114,0,2049,224,2049,185,15,2049,132,10,8033,8053,183,97,115,123,0,3841,151,1,151,2049,3018,10,8046,8067,183,125,97,115,0,4097,151,10,8060,8086,171,99,117,114,114,101,110,116,45,108,105,110,101,0,2049,3512,1,1025,18,10,8070,8108,171,99,111,117,110,116,45,116,111,107,101,110,115,0,1793,8114,1,32,11,10,1,8110,2049,4031,2049,79,10,8092,8135,171,110,101,120,116,45,116,111,107,101,110,0,1,32,2049,6208,10,8121,8158,171,112,114,111,99,101,115,115,45,116,111,107,101,110,115,0,1793,8193,2049,8135,4,1793,8186,2,2049,79,2049,2399,1793,8175,2049,396,10,1,8172,1793,8181,3,10,1,8179,2049,122,10,1,8165,2049,2072,2049,2849,10,1,8160,2049,2259,2049,396,10,8060,8214,171,115,58,101,118,97,108,117,97,116,101,0,2049,8086,2049,4239,2049,8086,2,2049,8108,2049,8158,10,8200,8234,171,112,117,116,99,0,1000,10,8226,8242,171,110,108,0,1,10,2049,8234,10,8236,8253,171,115,112,0,1,32,2049,8234,10,8247,8265,171,116,97,98,0,1,9,2049,8234,10,8258,8278,171,112,117,116,115,0,1793,8283,2049,8234,10,1,8280,2049,3968,10,8270,8296,171,112,117,116,110,0,2049,5671,2049,8278,10,8288,8310,171,119,111,114,100,115,0,1793,8319,2049,189,2049,8278,2049,8253,10,1,8312,2049,6635,10,8301,8333,171,114,101,115,101,116,0,2049,1682,25,5,3,6,1,1,18,1,8335,7,10,8324,8360,171,100,117,109,112,45,115,116,97,99,107,0,2049,1682,25,3,5,2049,8360,6,2,2049,8296,2049,8253,10,8346,8382,171,70,82,69,69,0,2049,3512,1,1025,18,2049,1910,18,10,8374,8399,171,103,101,116,99,0,1001,10,8391,8415,171,110,58,116,111,45,102,108,111,97,116,0,1,0,-6000,10,8401,8433,171,115,58,116,111,45,102,108,111,97,116,0,1,1,-6000,10,8419,8452,171,102,58,116,111,45,115,116,114,105,110,103,0,2049,3625,2,1,2,-6000,10,8437,8466,171,102,58,43,0,1,3,-6000,10,8459,8477,171,102,58,45,0,1,4,-6000,10,8470,8488,171,102,58,42,0,1,5,-6000,10,8481,8499,171,102,58,47,0,1,6,-6000,10,8492,8514,171,102,58,102,108,111,111,114,0,1,7,-6000,10,8503,8527,171,102,58,101,113,63,0,1,8,-6000,10,8518,8541,171,102,58,45,101,113,63,0,1,9,-6000,10,8531,8554,171,102,58,108,116,63,0,1,10,-6000,10,8545,8567,171,102,58,103,116,63,0,1,11,-6000,10,8558,8582,171,102,58,100,101,112,116,104,0,1,12,-6000,10,8571,8595,171,102,58,100,117,112,0,1,13,-6000,10,8586,8609,171,102,58,100,114,111,112,0,1,14,-6000,10,8599,8623,171,102,58,115,119,97,112,0,1,15,-6000,10,8613,8637,171,102,58,111,118,101,114,0,2049,8452,2049,8595,2049,8433,2049,8623,10,8627,8656,171,102,58,116,117,99,107,0,2049,8623,2049,8637,10,8646,8676,171,102,58,112,111,115,105,116,105,118,101,63,0,1,0,2049,8415,2049,8567,10,8661,8698,171,102,58,110,101,103,97,116,105,118,101,63,0,1,0,2049,8415,2049,8554,10,8683,8717,171,102,58,110,101,103,97,116,101,0,1,-1,2049,8415,2049,8488,10,8705,8733,171,102,58,97,98,115,0,2049,8595,2049,8698,1793,8742,2049,8717,10,1,8739,2049,130,10,8724,8756,171,102,58,108,111,103,0,1,16,-6000,10,8747,8771,171,102,58,112,111,119,101,114,0,1,17,-6000,10,8760,8790,171,102,58,116,111,45,110,117,109,98,101,114,0,1,18,-6000,10,8775,8806,183,112,114,101,102,105,120,58,46,0,2049,1788,1793,8813,2049,3666,10,1,8810,1793,8820,2049,3599,10,1,8817,2049,122,1,8433,2049,171,10,8794,8837,171,112,117,116,102,0,2049,8452,2049,8278,10,8829,8856,171,103,111,112,104,101,114,58,103,101,116,0,-6200,10,8842,8870,171,115,121,115,58,97,114,103,99,0,-6100,10,8858,8884,171,115,121,115,58,97,114,103,118,0,2049,3625,4,-6101,10,8872,8904,171,117,110,105,120,58,115,121,115,116,101,109,0,-8000,10,8889,8919,171,117,110,105,120,58,102,111,114,107,0,-8001,10,8906,8934,171,117,110,105,120,58,101,120,105,116,0,-8002,10,8921,8951,171,117,110,105,120,58,103,101,116,112,105,100,0,-8003,10,8936,8967,171,117,110,105,120,58,101,120,101,99,48,0,-8004,10,8953,8983,171,117,110,105,120,58,101,120,101,99,49,0,-8005,10,8969,8999,171,117,110,105,120,58,101,120,101,99,50,0,-8006,10,8985,9015,171,117,110,105,120,58,101,120,101,99,51,0,-8007,10,9001,9030,171,117,110,105,120,58,119,97,105,116,0,-8008,10,9017,9045,171,117,110,105,120,58,107,105,108,108,0,-8009,10,9032,9061,171,117,110,105,120,58,112,111,112,101,110,0,-8010,10,9047,9078,171,117,110,105,120,58,112,99,108,111,115,101,0,-8011,10,9063,9094,171,117,110,105,120,58,119,114,105,116,101,0,1793,9100,2,2049,79,10,1,9096,2049,2072,-8012,10,9080,9120,171,117,110,105,120,58,99,104,100,105,114,0,-8013,10,9106,9137,171,117,110,105,120,58,103,101,116,101,110,118,0,-8014,10,9122,9154,171,117,110,105,120,58,112,117,116,101,110,118,0,-8015,10,9139,0,158,102,105,108,101,58,82,0,9156,1,158,102,105,108,101,58,87,0,9166,2,158,102,105,108,101,58,65,0,9176,3,158,102,105,108,101,58,82,43,0,9186,9210,171,102,105,108,101,58,111,112,101,110,0,118,10,9197,9226,171,102,105,108,101,58,99,108,111,115,101,0,119,10,9212,9241,171,102,105,108,101,58,114,101,97,100,0,120,10,9228,9257,171,102,105,108,101,58,119,114,105,116,101,0,121,10,9243,9272,171,102,105,108,101,58,116,101,108,108,0,122,10,9259,9287,171,102,105,108,101,58,115,101,101,107,0,123,10,9274,9302,171,102,105,108,101,58,115,105,122,101,0,124,10,9289,9319,171,102,105,108,101,58,100,101,108,101,116,101,0,125,10,9304,9335,171,102,105,108,101,58,102,108,117,115,104,0,126,10,9321,9353,171,102,105,108,101,58,101,120,105,115,116,115,63,0,1,0,2049,9210,2,2049,2399,1793,9367,2049,9226,2049,2289,10,1,9362,1793,9375,3,2049,2301,10,1,9371,2049,122,10,9337,9387,158,70,73,68,0,0,9380,9397,158,70,83,105,122,101,0,0,9388,9408,158,65,99,116,105,111,110,0,0,9398,9419,158,66,117,102,102,101,114,0,0,9409,9429,171,45,101,111,102,63,0,3841,9387,2049,9272,3841,9397,13,10,9420,9449,171,112,114,101,115,101,114,118,101,0,1,9387,1793,9464,1,9397,1793,9459,8,10,1,9457,2049,3037,10,1,9453,2049,3037,10,9337,9487,171,102,105,108,101,58,114,101,97,100,45,108,105,110,101,0,4097,9387,1793,9544,2049,1910,2,4097,9419,2049,3419,1793,9536,3841,9387,2049,9241,2,2049,3327,1793,9513,1,13,11,10,1,9509,1793,9521,1,10,11,10,1,9517,1793,9529,1,0,11,10,1,9525,2049,2136,22,22,10,1,9500,2049,2230,2049,3351,3,10,1,9491,2049,3443,3841,9419,10,9469,9573,171,102,105,108,101,58,102,111,114,45,101,97,99,104,45,108,105,110,101,0,1793,9610,4097,9408,1,0,2049,9210,4097,9387,3841,9387,2049,9302,4097,9397,1793,9601,3841,9387,2049,9487,3841,9408,8,2049,9429,10,1,9591,2049,2204,3841,9387,2049,9226,10,1,9575,2049,9449,10,9551,9622,158,70,73,68,0,0,9615,9631,158,83,105,122,101,0,0,9551,9646,171,102,105,108,101,58,115,108,117,114,112,0,1793,9682,1,0,2049,9210,4097,9622,2049,3419,3841,9622,2049,9302,4097,9631,3841,9631,1793,9673,3841,9622,2049,9241,2049,3327,10,1,9666,2049,2259,3841,9622,2049,9226,10,1,9648,2049,3443,10,9632,9694,158,70,73,68,0,0,9632,9708,171,102,105,108,101,58,115,112,101,119,0,1,1,2049,9210,4097,9694,1793,9721,3841,9694,2049,9257,10,1,9716,2049,3968,3841,9694,2049,9226,10,0 }; +int32_t ngaImageCells = 9902; +int32_t ngaImage[] = { 1793,-1,9866,9901,201712,0,10,1,10,2,10,3,10,4,10,5,10,6,10,7,10,8,10,9,10,10,10,11,10,12,10,13,10,14,10,15,10,16,10,17,10,18,10,19,10,20,10,21,10,22,10,23,10,24,10,25,10,26,10,2049,10,1793,10,67502597,10,67502597,67502597,10,68223234,1,2575,85000450,1,656912,2049,68,25,459011,74,524546,74,302256641,1,10,168756239,17043713,1,1,2577,134284549,65,2049,84,85263883,2049,85,302056966,1,25,1793,89,33620739,0,10,2049,65,2049,79,524548,79,590092,101,25,524546,79,134284289,-1,89,100860677,10,3197,3206,268505089,121,120,135205121,121,10,101384453,0,9,10,134287105,3,71,659457,3,459023,132,2049,68,25,2049,132,1793,139,2049,139,117506307,0,132,0,524545,25,137,168820993,0,151,1642241,151,134283523,7,137,1793,132,7,524545,59,137,1793,132,16846593,151,166,165,1793,122,16846593,151,137,165,1793,122,7,10,659713,1,659713,2,659713,3,17108737,3,2,524559,132,2049,132,2049,132,2049,146,168820998,2,3182,1025,167841793,204,5,17826049,0,204,2,15,25,524546,189,134287105,205,104,2305,206,459023,214,134287361,205,209,659201,204,2049,68,25,84152833,48,286458116,10,459014,229,184618754,45,25,16974851,-1,168886532,1,134284289,1,238,134284289,0,229,660227,32,0,0,112,114,101,102,105,120,58,125,0,285278479,255,7,2576,524546,79,1641217,1,167838467,252,2049,268,2049,264,524545,255,224,17826050,254,0,2572,2563,2049,245,1793,158,459023,158,17760513,171,3,191,8,251727617,3,2,2049,185,268501264,-1,151,10,2049,224,2049,185,459023,158,285282049,3,2,16846593,151,-1,151,134283536,61,137,16846593,3,0,132,8,659201,3,524545,25,137,17043201,3,7,2049,137,2049,132,268505092,151,1642241,151,656131,659201,3,524545,7,137,2049,132,459009,19,137,1642241,151,117506307,55,137,1642241,151,117506307,15,137,1642241,151,117506307,17,137,1793,5,524546,185,134284303,187,1807,1025,1642241,254,285282049,376,1,459012,371,117509889,204,371,134287105,376,224,16845825,0,384,369,1793,122,17826050,376,274,8,117506305,377,387,122,0,9,177,100,117,112,0,404,11,177,100,114,111,112,0,411,13,177,115,119,97,112,0,419,21,177,99,97,108,108,0,427,27,177,101,113,63,0,435,29,177,45,101,113,63,0,442,31,177,108,116,63,0,450,33,177,103,116,63,0,457,35,177,102,101,116,99,104,0,464,37,177,115,116,111,114,101,0,473,39,177,43,0,482,41,177,45,0,487,43,177,42,0,492,45,177,47,109,111,100,0,497,47,177,97,110,100,0,505,49,177,111,114,0,512,51,177,120,111,114,0,518,53,177,115,104,105,102,116,0,525,359,183,112,117,115,104,0,534,364,183,112,111,112,0,542,354,183,48,59,0,549,68,171,102,101,116,99,104,45,110,101,120,116,0,555,71,171,115,116,111,114,101,45,110,101,120,116,0,569,245,171,115,58,116,111,45,110,117,109,98,101,114,0,583,104,171,115,58,101,113,63,0,598,79,171,115,58,108,101,110,103,116,104,0,607,122,171,99,104,111,111,115,101,0,619,130,171,105,102,0,629,128,171,45,105,102,0,635,285,183,112,114,101,102,105,120,58,40,0,642,151,158,67,111,109,112,105,108,101,114,0,654,3,158,72,101,97,112,0,666,132,171,44,0,674,146,171,115,44,0,679,152,183,59,0,685,312,183,91,0,690,329,183,93,0,695,2,158,68,105,99,116,105,111,110,97,114,121,0,700,184,171,100,58,108,105,110,107,0,714,185,171,100,58,120,116,0,724,187,171,100,58,99,108,97,115,115,0,732,189,171,100,58,110,97,109,101,0,743,171,171,99,108,97,115,115,58,119,111,114,100,0,753,183,171,99,108,97,115,115,58,109,97,99,114,111,0,767,158,171,99,108,97,115,115,58,100,97,116,97,0,782,191,171,100,58,97,100,100,45,104,101,97,100,101,114,0,796,286,183,112,114,101,102,105,120,58,35,0,812,292,183,112,114,101,102,105,120,58,58,0,824,306,183,112,114,101,102,105,120,58,38,0,836,290,183,112,114,101,102,105,120,58,36,0,848,344,183,114,101,112,101,97,116,0,860,346,183,97,103,97,105,110,0,870,396,171,105,110,116,101,114,112,114,101,116,0,879,224,171,100,58,108,111,111,107,117,112,0,892,177,171,99,108,97,115,115,58,112,114,105,109,105,116,105,118,101,0,904,4,158,86,101,114,115,105,111,110,0,923,369,171,101,114,114,58,110,111,116,102,111,117,110,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,125,125,0,101,58,99,108,111,115,101,0,45,0,118,101,0,105,110,101,0,63,0,63,64,91,92,93,94,96,123,124,125,126,0,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,934,1543,171,69,79,77,0,1,-3,15,10,1536,1557,171,100,58,108,97,115,116,0,1,2,15,10,1547,1575,171,100,58,108,97,115,116,60,120,116,62,0,2049,1557,2049,185,15,10,1561,1598,171,100,58,108,97,115,116,60,99,108,97,115,115,62,0,2049,1557,2049,187,15,10,1581,1620,171,100,58,108,97,115,116,60,110,97,109,101,62,0,2049,1557,2049,189,10,1604,1636,171,114,101,99,108,97,115,115,0,2049,1557,2049,187,16,10,1625,1655,171,105,109,109,101,100,105,97,116,101,0,1,183,2049,1636,10,1642,1668,171,100,97,116,97,0,1,158,2049,1636,10,1660,1682,171,100,101,112,116,104,0,1,-1,15,10,1673,1701,171,99,111,109,112,105,108,101,58,108,105,116,0,1,1,2049,132,2049,132,10,1686,1724,171,99,111,109,112,105,108,101,58,106,117,109,112,0,1,1793,2049,132,2049,132,10,1708,1747,171,99,111,109,112,105,108,101,58,99,97,108,108,0,1,2049,2049,132,2049,132,10,1731,1769,171,99,111,109,112,105,108,101,58,114,101,116,0,1,10,2049,132,10,1754,1788,171,99,111,109,112,105,108,105,110,103,63,0,1,151,15,10,1774,1804,183,112,114,101,102,105,120,58,64,0,2049,224,2049,185,15,2049,1788,1793,1820,1,3841,2049,132,2049,132,10,1,1813,1793,1826,15,10,1,1824,2049,122,10,1792,1843,183,112,114,101,102,105,120,58,33,0,2049,224,2049,185,15,2049,1788,1793,1859,1,4097,2049,132,2049,132,10,1,1852,1793,1865,16,10,1,1863,2049,122,10,1831,1882,183,112,114,101,102,105,120,58,96,0,2049,1788,1793,1891,2049,245,2049,132,10,1,1886,1793,1897,3,10,1,1895,2049,122,10,1870,1910,171,104,101,114,101,0,3841,3,10,1902,1925,171,100,58,99,114,101,97,116,101,0,1,158,1,0,2049,191,2049,1910,2049,1557,2049,185,16,10,1913,1946,171,118,97,114,0,2049,1925,1,0,2049,132,10,1939,1963,171,118,97,114,60,110,62,0,2049,1925,2049,132,10,1953,1977,171,99,111,110,115,116,0,2049,1925,2049,1557,2049,185,16,10,1968,1993,171,116,117,99,107,0,2,5,4,6,10,1985,2006,171,111,118,101,114,0,5,2,6,4,10,1998,2023,171,100,117,112,45,112,97,105,114,0,2049,2006,2049,2006,10,2011,2035,171,110,105,112,0,4,3,10,2028,2051,171,100,114,111,112,45,112,97,105,114,0,3,3,10,2038,2062,171,63,100,117,112,0,2,25,10,2054,2072,171,100,105,112,0,4,5,8,6,10,2065,2084,171,115,105,112,0,5,2,6,4,1,21,2049,2072,10,2077,2099,171,98,105,0,1,2084,2049,2072,8,10,2093,2112,171,98,105,42,0,1,2072,2049,2072,8,10,2105,2125,171,98,105,64,0,2,2049,2112,10,2118,2136,171,116,114,105,0,1793,2145,1,2084,2049,2072,2049,2084,10,1,2138,2049,2072,8,10,2129,2159,171,116,114,105,42,0,1793,2176,1793,2169,4,1,2072,2049,2072,10,1,2163,2049,2072,2049,2072,10,1,2161,2049,2072,8,10,2151,2190,171,116,114,105,64,0,2,2,2049,2159,10,2182,2204,171,119,104,105,108,101,0,1793,2216,2,2049,2072,4,25,3,1,2206,7,10,1,2206,8,3,10,2195,2230,171,117,110,116,105,108,0,1793,2245,2,2049,2072,4,1,-1,23,25,3,1,2232,7,10,1,2232,8,3,10,2221,2259,171,116,105,109,101,115,0,4,1793,2276,25,1,1,18,5,1,21,2049,2084,6,1,2262,7,10,1,2262,8,3,10,2250,2289,171,84,82,85,69,0,1,-1,10,2281,2301,171,70,65,76,83,69,0,1,0,10,2292,2313,171,108,116,101,113,63,0,2049,2023,11,1793,2320,13,10,1,2318,2049,2072,22,10,2304,2335,171,103,116,101,113,63,0,2049,2023,11,1793,2342,14,10,1,2340,2049,2072,22,10,2326,2357,171,110,58,77,65,88,0,1,2147483647,10,2348,2369,171,110,58,77,73,78,0,1,-2147483648,10,2360,2383,171,110,58,122,101,114,111,63,0,1,0,11,10,2372,2399,171,110,58,45,122,101,114,111,63,0,1,0,12,10,2387,2418,171,110,58,110,101,103,97,116,105,118,101,63,0,1,0,13,10,2403,2437,171,110,58,112,111,115,105,116,105,118,101,63,0,1,-1,14,10,2422,2465,171,110,58,115,116,114,105,99,116,108,121,45,112,111,115,105,116,105,118,101,63,0,1,0,14,10,2441,2480,171,110,58,101,118,101,110,63,0,1,2,20,3,2049,2383,10,2469,2497,171,110,58,111,100,100,63,0,1,2,20,3,2049,2399,10,2487,2512,171,99,97,115,101,0,1793,2518,2049,2006,11,10,1,2514,2049,2072,4,1793,2531,2049,2035,8,2049,2289,10,1,2525,1793,2539,3,2049,2301,10,1,2535,2049,122,25,6,3,3,10,2504,2558,171,115,58,99,97,115,101,0,1793,2565,2049,2006,2049,104,10,1,2560,2049,2072,4,1793,2578,2049,2035,8,2049,2289,10,1,2572,1793,2586,3,2049,2301,10,1,2582,2049,122,25,6,3,3,10,2548,2602,171,114,111,116,0,1793,2606,4,10,1,2604,2049,2072,4,10,2595,2620,171,116,111,114,115,0,6,6,2,5,4,5,10,2612,2632,171,47,0,20,2049,2035,10,2627,2643,171,109,111,100,0,20,3,10,2636,2653,171,110,111,116,0,1,-1,23,10,2646,2666,171,110,58,112,111,119,0,1,1,4,1793,2675,2049,2006,19,10,1,2671,2049,2259,2049,2035,10,2657,2694,171,110,58,110,101,103,97,116,101,0,1,-1,19,10,2682,2710,171,110,58,115,113,117,97,114,101,0,2,19,10,2698,2723,171,110,58,115,113,114,116,0,1,1,1793,2744,2049,2023,2049,2632,2049,2006,18,1,2,2049,2632,25,17,1,2727,7,10,1,2727,8,2049,2035,10,2713,2759,171,110,58,109,105,110,0,2049,2023,13,1793,2766,3,10,1,2764,1793,2773,2049,2035,10,1,2770,2049,122,10,2750,2787,171,110,58,109,97,120,0,2049,2023,14,1793,2794,3,10,1,2792,1793,2801,2049,2035,10,1,2798,2049,122,10,2778,2815,171,110,58,97,98,115,0,2,2049,2694,2049,2787,10,2806,2832,171,110,58,108,105,109,105,116,0,4,5,2049,2759,6,2049,2787,10,2821,2849,171,110,58,105,110,99,0,1,1,17,10,2840,2862,171,110,58,100,101,99,0,1,1,18,10,2853,2880,171,110,58,98,101,116,119,101,101,110,63,0,2049,2602,1793,2891,2049,2602,2049,2602,2049,2832,10,1,2884,2049,2084,11,10,2866,2909,171,118,58,105,110,99,45,98,121,0,1793,2914,15,17,10,1,2911,2049,2084,16,10,2897,2932,171,118,58,100,101,99,45,98,121,0,1793,2938,15,4,18,10,1,2934,2049,2084,16,10,2920,2953,171,118,58,105,110,99,0,1,1,4,2049,2909,10,2944,2968,171,118,58,100,101,99,0,1,1,4,2049,2932,10,2959,2985,171,118,58,108,105,109,105,116,0,5,5,2,15,6,6,2049,2832,4,16,10,2974,3004,171,118,58,111,110,0,2049,2289,4,16,10,2996,3018,171,118,58,111,102,102,0,2049,2301,4,16,10,3009,3037,171,118,58,112,114,101,115,101,114,118,101,0,4,2,15,1793,3051,1793,3046,8,10,1,3044,2049,2072,10,1,3042,2049,2072,4,16,10,3023,3067,171,97,108,108,111,116,0,1,3,2049,2909,10,3058,3090,171,118,58,117,112,100,97,116,101,45,117,115,105,110,103,0,4,1793,3097,15,4,8,10,1,3093,2049,2084,16,10,3072,3111,171,99,111,112,121,0,1793,3120,1,68,2049,2072,2049,71,10,1,3113,2049,2259,3,3,10,3103,3140,171,83,99,111,112,101,76,105,115,116,0,9803,9858,10,3127,3149,171,123,123,0,2049,1557,2,1,3140,2049,71,16,10,3143,3174,171,45,45,45,114,101,118,101,97,108,45,45,45,0,2049,1557,1,3140,2049,2849,16,10,3158,3188,171,125,125,0,1,3140,2049,68,4,15,11,1793,3202,3841,3140,4097,2,10,1,3197,1793,3232,3841,3140,1793,3227,1,2,15,2,15,1,3140,2049,2849,15,12,25,3,1,3212,7,10,1,3210,8,16,10,1,3206,2049,122,10,3182,3247,158,66,117,102,102,101,114,0,0,10,3237,3256,158,80,116,114,0,0,10,3249,3271,171,116,101,114,109,105,110,97,116,101,0,1,0,3841,3256,16,10,3182,3293,171,98,117,102,102,101,114,58,115,116,97,114,116,0,3841,3247,10,3277,3310,171,98,117,102,102,101,114,58,101,110,100,0,3841,3256,10,3296,3327,171,98,117,102,102,101,114,58,97,100,100,0,2049,3310,16,1,3256,2049,2953,2049,3271,10,3313,3351,171,98,117,102,102,101,114,58,103,101,116,0,1,3256,2049,2968,2049,3310,15,2049,3271,10,3337,3377,171,98,117,102,102,101,114,58,101,109,112,116,121,0,2049,3293,4097,3256,2049,3271,10,3361,3399,171,98,117,102,102,101,114,58,115,105,122,101,0,2049,3310,2049,3293,18,10,3384,3419,171,98,117,102,102,101,114,58,115,101,116,0,4097,3247,2049,3377,10,3405,3443,171,98,117,102,102,101,114,58,112,114,101,115,101,114,118,101,0,3841,3247,3841,3256,1793,3460,1793,3453,8,10,1,3451,2049,2072,4097,3247,10,1,3449,2049,2072,4097,3256,10,3424,3482,158,84,101,109,112,83,116,114,105,110,103,115,0,32,3467,3500,158,84,101,109,112,83,116,114,105,110,103,77,97,120,0,512,3483,3512,171,83,84,82,73,78,71,83,0,2049,1543,3841,3482,3841,3500,19,18,10,3501,3534,158,115,58,67,117,114,114,101,110,116,0,24,10,3521,3549,171,115,58,112,111,105,110,116,101,114,0,3841,3534,3841,3500,19,2049,3512,17,10,3536,3568,171,115,58,110,101,120,116,0,1,3534,2049,2953,3841,3534,3841,3482,11,1793,3584,1,0,4097,3534,10,1,3579,2049,130,10,3501,3599,171,115,58,116,101,109,112,0,2,2049,79,2049,2849,2049,3549,4,2049,3111,2049,3549,2049,3568,10,3589,3625,171,115,58,101,109,112,116,121,0,2049,3549,2049,3568,10,3614,3640,171,115,58,115,107,105,112,0,6,1793,3648,2049,68,2049,2399,10,1,3643,2049,2204,2049,2862,5,10,3630,3666,171,115,58,107,101,101,112,0,2049,1788,1793,3675,1,3640,2049,171,10,1,3670,2049,130,2049,1910,1793,3686,2049,146,10,1,3683,2049,2072,2049,158,10,3656,3705,183,112,114,101,102,105,120,58,39,0,2049,1788,1793,3712,2049,3666,10,1,3709,1793,3719,2049,3599,10,1,3716,2049,122,10,3693,3734,171,115,58,99,104,111,112,0,2049,3599,2,2049,79,2049,2006,17,2049,2862,1,0,4,16,10,3724,3762,171,115,58,114,101,118,101,114,115,101,0,1793,3804,2,2049,3599,2049,3419,1,79,1793,3780,2,2049,79,17,2049,2862,10,1,3773,2049,2099,4,1793,3794,2,15,2049,3327,2049,2862,10,1,3787,2049,2259,3,2049,3293,2049,3599,10,1,3764,2049,3443,10,3749,3824,171,115,58,116,114,105,109,45,108,101,102,116,0,2049,3599,1793,3849,2049,68,1793,3836,1,32,11,10,1,3832,1793,3843,2049,2383,10,1,3840,2049,2099,21,10,1,3828,2049,2204,2049,2862,10,3809,3872,171,115,58,116,114,105,109,45,114,105,103,104,116,0,2049,3599,2049,3762,2049,3824,2049,3762,10,3856,3891,171,115,58,116,114,105,109,0,2049,3872,2049,3824,10,3881,3909,171,115,58,112,114,101,112,101,110,100,0,2049,3599,1793,3933,2,2049,79,17,1793,3925,2,2049,79,2049,2849,10,1,3919,2049,2072,4,2049,3111,10,1,3913,2049,2084,10,3896,3950,171,115,58,97,112,112,101,110,100,0,4,2049,3909,10,3938,3968,171,115,58,102,111,114,45,101,97,99,104,0,1793,4013,2049,2006,15,25,3,2049,2023,1793,3996,1793,3991,1793,3985,15,10,1,3983,2049,2072,8,10,1,3981,2049,2072,10,1,3979,2049,2072,1793,4005,2049,2849,10,1,4002,2049,2072,1,3970,7,10,1,3970,8,2049,2051,10,3954,4031,171,115,58,102,105,108,116,101,114,0,1793,4068,2049,3625,2049,3419,4,1793,4060,2049,2023,4,8,1793,4049,2049,3327,10,1,4046,1793,4055,3,10,1,4053,2049,122,10,1,4040,2049,3968,3,2049,3293,10,1,4033,2049,3443,10,4019,4082,171,115,58,109,97,112,0,1793,4105,2049,3625,2049,3419,4,1793,4097,2049,2006,8,2049,3327,10,1,4091,2049,3968,3,2049,3293,10,1,4084,2049,3443,10,4073,4122,171,115,58,115,117,98,115,116,114,0,1793,4128,17,2049,3625,10,1,4124,2049,2072,1793,4146,2049,2006,1793,4141,2049,3111,10,1,4138,2049,2072,10,1,4134,2049,2084,2049,2006,1793,4160,17,1,0,4,16,10,1,4154,2049,2072,10,4110,4176,171,115,58,114,105,103,104,116,0,2049,2006,2049,79,2049,2006,18,4,2049,4122,10,4165,4197,171,115,58,108,101,102,116,0,1,0,4,2049,4122,10,4187,4213,171,115,58,104,97,115,104,0,1,5381,4,1793,4224,4,1,33,19,17,10,1,4218,2049,3968,10,4203,4239,171,115,58,99,111,112,121,0,2049,2006,2049,79,2049,2849,2049,3111,10,4229,4260,171,115,58,68,73,71,73,84,83,0,2049,3640,48,49,50,51,52,53,54,55,56,57,0,1,4262,10,4248,4297,171,115,58,65,83,67,73,73,45,76,79,87,69,82,67,65,83,69,0,2049,3640,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,0,1,4299,10,4276,4350,171,115,58,65,83,67,73,73,45,85,80,80,69,82,67,65,83,69,0,2049,3640,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,0,1,4352,10,4329,4401,171,115,58,65,83,67,73,73,45,76,69,84,84,69,82,83,0,2049,3640,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,0,1,4403,10,4382,4476,171,115,58,80,85,78,67,84,85,65,84,73,79,78,0,2049,3640,95,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,58,59,60,61,62,63,64,91,92,93,94,96,123,124,125,126,0,1,4478,1,95,2049,2006,16,10,4459,4535,158,115,58,87,72,73,84,69,83,80,65,67,69,0,9,10,13,0,4519,0,158,65,83,67,73,73,58,78,85,76,0,4539,1,158,65,83,67,73,73,58,83,79,72,0,4552,2,158,65,83,67,73,73,58,83,84,88,0,4565,3,158,65,83,67,73,73,58,69,84,88,0,4578,4,158,65,83,67,73,73,58,69,79,84,0,4591,5,158,65,83,67,73,73,58,69,78,81,0,4604,6,158,65,83,67,73,73,58,65,67,75,0,4617,7,158,65,83,67,73,73,58,66,69,76,0,4630,8,158,65,83,67,73,73,58,66,83,0,4643,9,158,65,83,67,73,73,58,72,84,0,4655,10,158,65,83,67,73,73,58,76,70,0,4667,11,158,65,83,67,73,73,58,86,84,0,4679,12,158,65,83,67,73,73,58,70,70,0,4691,13,158,65,83,67,73,73,58,67,82,0,4703,14,158,65,83,67,73,73,58,83,79,0,4715,15,158,65,83,67,73,73,58,83,73,0,4727,16,158,65,83,67,73,73,58,68,76,69,0,4739,17,158,65,83,67,73,73,58,68,67,49,0,4752,18,158,65,83,67,73,73,58,68,67,50,0,4765,19,158,65,83,67,73,73,58,68,67,51,0,4778,20,158,65,83,67,73,73,58,68,67,52,0,4791,21,158,65,83,67,73,73,58,78,65,75,0,4804,22,158,65,83,67,73,73,58,83,89,78,0,4817,23,158,65,83,67,73,73,58,69,84,66,0,4830,24,158,65,83,67,73,73,58,67,65,78,0,4843,25,158,65,83,67,73,73,58,69,77,0,4856,26,158,65,83,67,73,73,58,83,85,66,0,4868,27,158,65,83,67,73,73,58,69,83,67,0,4881,28,158,65,83,67,73,73,58,70,83,0,4894,29,158,65,83,67,73,73,58,71,83,0,4906,30,158,65,83,67,73,73,58,82,83,0,4918,31,158,65,83,67,73,73,58,85,83,0,4930,32,158,65,83,67,73,73,58,83,80,65,67,69,0,4942,127,158,65,83,67,73,73,58,68,69,76,0,4957,4983,171,99,58,108,101,116,116,101,114,63,0,1,65,1,122,2049,2880,10,4970,5006,171,99,58,108,111,119,101,114,99,97,115,101,63,0,1,97,1,122,2049,2880,10,4990,5029,171,99,58,117,112,112,101,114,99,97,115,101,63,0,1,65,1,90,2049,2880,10,5013,5048,171,99,58,100,105,103,105,116,63,0,1,48,1,57,2049,2880,10,5036,5072,171,99,58,119,104,105,116,101,115,112,97,99,101,63,0,1,32,1793,5079,2049,2289,10,1,5076,2049,2512,1,9,1793,5090,2049,2289,10,1,5087,2049,2512,1,10,1793,5101,2049,2289,10,1,5098,2049,2512,1,13,1793,5112,2049,2289,10,1,5109,2049,2512,3,2049,2301,10,5055,5134,171,99,58,118,105,115,105,98,108,101,63,0,1,31,1,126,2049,2880,10,5120,5153,171,99,58,118,111,119,101,108,63,0,1,97,1793,5160,2049,2289,10,1,5157,2049,2512,1,101,1793,5171,2049,2289,10,1,5168,2049,2512,1,105,1793,5182,2049,2289,10,1,5179,2049,2512,1,111,1793,5193,2049,2289,10,1,5190,2049,2512,1,117,1793,5204,2049,2289,10,1,5201,2049,2512,1,65,1793,5215,2049,2289,10,1,5212,2049,2512,1,69,1793,5226,2049,2289,10,1,5223,2049,2512,1,73,1793,5237,2049,2289,10,1,5234,2049,2512,1,79,1793,5248,2049,2289,10,1,5245,2049,2512,1,85,1793,5259,2049,2289,10,1,5256,2049,2512,3,2049,2301,10,5141,5283,171,99,58,99,111,110,115,111,110,97,110,116,63,0,2,2049,4983,1793,5293,2049,5153,2049,2653,10,1,5288,1793,5301,3,2049,2301,10,1,5297,2049,122,10,5267,5323,171,99,58,45,108,111,119,101,114,99,97,115,101,63,0,2049,5006,2049,2653,10,5306,5345,171,99,58,45,117,112,112,101,114,99,97,115,101,63,0,2049,5029,2049,2653,10,5328,5363,171,99,58,45,100,105,103,105,116,63,0,2049,5048,2049,2653,10,5350,5386,171,99,58,45,119,104,105,116,101,115,112,97,99,101,63,0,2049,5072,2049,2653,10,5368,5406,171,99,58,45,118,105,115,105,98,108,101,63,0,2049,5134,2049,2653,10,5391,5424,171,99,58,45,118,111,119,101,108,63,0,2049,5153,2049,2653,10,5411,5446,171,99,58,45,99,111,110,115,111,110,97,110,116,63,0,2049,5283,2049,2653,10,5429,5465,171,99,58,116,111,45,117,112,112,101,114,0,2,2049,5006,25,3,1,32,18,10,5451,5488,171,99,58,116,111,45,108,111,119,101,114,0,2,2049,5029,25,3,1,32,17,10,5474,5514,171,99,58,116,111,103,103,108,101,45,99,97,115,101,0,2,2049,5006,1793,5522,2049,5465,10,1,5519,1793,5529,2049,5488,10,1,5526,2049,122,10,5497,5549,171,99,58,116,111,45,115,116,114,105,110,103,0,2049,3640,46,0,1,5551,2049,3599,1793,5561,16,10,1,5559,2049,2084,10,5534,5580,171,115,58,116,111,45,117,112,112,101,114,0,1793,5585,2049,5465,10,1,5582,2049,4082,10,5566,5604,171,115,58,116,111,45,108,111,119,101,114,0,1793,5609,2049,5488,10,1,5606,2049,4082,10,5590,5623,158,86,97,108,117,101,0,0,5614,5635,171,99,111,114,114,101,99,116,0,2,1,48,13,1793,5651,1,48,2049,2006,18,1,2,19,17,10,1,5641,2049,130,10,5590,5671,171,110,58,116,111,45,115,116,114,105,110,103,0,1793,5726,2049,1910,2049,3419,2,4097,5623,2049,2815,1793,5699,1,10,20,4,1,48,17,2049,5635,2049,3327,2,2049,2399,10,1,5684,2049,2204,3,3841,5623,2049,2418,1793,5715,1,45,2049,3327,10,1,5710,2049,130,2049,3293,2049,3762,2049,3599,10,1,5673,2049,3443,10,5656,5753,158,82,101,119,114,105,116,101,85,110,100,101,114,115,99,111,114,101,115,0,-1,5731,5761,171,115,117,98,0,1,95,1793,5768,1,32,10,1,5765,2049,2512,10,5754,5784,171,114,101,119,114,105,116,101,0,3841,5753,1793,5798,1793,5793,2049,5761,10,1,5790,2049,4082,10,1,5788,2049,130,1,3705,8,10,5731,5818,183,112,114,101,102,105,120,58,39,0,2049,5784,10,5806,5835,171,115,58,105,110,100,101,120,45,111,102,0,4,1793,5859,2049,68,25,4,1793,5848,2049,2006,12,10,1,5844,2049,2072,4,25,3,1,5838,7,10,1,5838,2049,2084,1793,5871,18,2049,2862,2049,2035,10,1,5865,2049,2084,2049,79,2049,2006,11,1793,5886,3,1,-1,10,1,5882,2049,130,10,5821,5911,171,115,58,99,111,110,116,97,105,110,115,45,99,104,97,114,63,0,2049,5835,1,-1,12,10,5891,5924,158,83,114,99,0,0,5917,5932,158,84,97,114,0,0,5925,5940,158,80,97,100,0,0,5933,5946,158,73,0,0,5941,5952,158,70,0,0,5947,5959,158,65,116,0,0,5953,5973,171,116,101,114,109,105,110,97,116,101,0,1,0,3841,5940,3841,5932,2049,79,17,16,10,5960,5995,171,101,120,116,114,97,99,116,0,3841,5924,3841,5946,17,3841,5940,3841,5932,2049,79,2049,3111,10,5984,6020,171,99,111,109,112,97,114,101,0,3841,5940,3841,5932,2049,104,3841,5952,22,4097,5952,3841,5952,1793,6040,3841,5946,4097,5959,10,1,6035,2049,128,10,6009,6053,171,110,101,120,116,0,1,5946,2049,2953,10,5891,6080,171,115,58,99,111,110,116,97,105,110,115,45,115,116,114,105,110,103,63,0,4097,5932,4097,5924,2049,3625,4097,5940,1,0,4097,5946,1,0,4097,5952,3841,5924,2049,79,1793,6111,2049,5995,2049,5973,2049,6020,2049,6053,10,1,6102,2049,2259,3841,5952,10,6058,6139,171,115,58,105,110,100,101,120,45,111,102,45,115,116,114,105,110,103,0,4097,5932,4097,5924,2049,3625,4097,5940,1,0,4097,5946,1,0,4097,5952,1,-1,4097,5959,3841,5924,2049,79,1793,6174,2049,5995,2049,5973,2049,6020,2049,6053,10,1,6165,2049,2259,3841,5952,1793,6185,3841,5959,10,1,6182,1793,6192,1,-1,10,1,6189,2049,122,10,6118,6208,171,115,58,115,112,108,105,116,0,2049,2023,2049,5835,2049,2035,2049,2023,2049,4197,1793,6222,17,10,1,6220,2049,2072,10,6197,6248,171,115,58,115,112,108,105,116,45,111,110,45,115,116,114,105,110,103,0,2049,2023,2049,6139,2049,2849,2049,2035,2049,2023,2049,4197,1793,6264,17,10,1,6262,2049,2072,10,6227,6274,158,76,0,0,6227,6288,171,115,58,114,101,112,108,97,99,101,0,2049,2006,2049,79,4097,6274,1793,6303,2049,6248,4,3841,6274,17,10,1,6296,2049,2072,2049,3909,2049,3950,10,6275,6324,158,83,112,108,105,116,45,79,110,0,0,6312,6335,171,109,97,116,99,104,63,0,3841,6324,11,10,6325,6352,171,116,101,114,109,105,110,97,116,101,0,1,0,2049,2006,2049,2862,16,10,6339,6368,171,115,116,101,112,0,1793,6373,2049,2849,10,1,6370,2049,2072,2049,6335,1793,6387,2,2049,132,2049,6352,10,1,6381,2049,130,10,6275,6406,171,115,58,116,111,107,101,110,105,122,101,0,4097,6324,2049,3666,2049,1910,1,0,2049,132,1793,6433,2,2049,132,2,1793,6427,2049,6368,10,1,6424,2049,3968,3,10,1,6418,2049,2072,2049,1910,2049,2006,18,2049,2862,2049,2006,16,10,6392,6458,158,84,111,107,101,110,115,0,0,6448,6469,158,78,101,101,100,108,101,0,0,6459,6481,171,45,109,97,116,99,104,63,0,2,3841,6469,2049,6080,10,6470,6501,171,115,97,118,101,45,116,111,107,101,110,0,3841,6469,2049,6248,2049,3666,2049,3327,2049,2849,10,6487,6529,171,116,111,107,101,110,115,45,116,111,45,115,101,116,0,2049,1910,3841,6458,2049,3399,2,2049,132,1793,6545,2049,68,2049,132,10,1,6540,2049,2259,3,10,6392,6575,171,115,58,116,111,107,101,110,105,122,101,45,111,110,45,115,116,114,105,110,103,0,1793,6614,2049,3666,4097,6469,2049,1910,1,8192,17,4097,6458,3841,6458,2049,3419,1793,6604,2049,6481,25,3,2049,6501,1,6594,7,10,1,6594,8,2049,3666,2049,3327,2049,6529,10,1,6577,2049,3443,10,6551,6629,158,86,97,108,117,101,115,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6619,6665,171,102,114,111,109,0,2049,79,2,1793,6684,1793,6677,1,6629,17,16,10,1,6672,2049,2084,2049,2862,10,1,6670,2049,2259,3,10,6657,6696,171,116,111,0,2,2049,79,1793,6714,2049,68,1,97,18,2049,2849,1,6629,17,15,4,10,1,6701,2049,2259,3,10,6551,6731,171,114,101,111,114,100,101,114,0,1793,6736,2049,6665,10,1,6733,2049,2072,2049,6696,10,6720,6752,171,99,117,114,114,121,0,2049,1910,1793,6764,4,2049,1701,2049,1747,2049,1769,10,1,6756,2049,2072,10,6743,6777,171,100,111,101,115,0,2049,1575,4,2049,6752,2049,1557,2049,185,16,1,171,2049,1636,10,6769,6806,171,100,58,102,111,114,45,101,97,99,104,0,1,2,1793,6834,15,25,2049,2023,1793,6826,1793,6821,4,8,10,1,6818,2049,2072,10,1,6816,2049,2072,1,6810,7,10,1,6810,8,3,10,6792,6854,171,100,58,108,111,111,107,117,112,45,120,116,0,1,0,4,1793,6889,2049,2023,2049,185,15,11,1793,6878,4,1793,6873,2049,2035,10,1,6870,2049,2072,10,1,6867,1793,6884,3,10,1,6882,2049,122,10,1,6859,2049,6806,3,10,6839,6903,171,99,104,97,114,0,1,32,1793,6912,1,95,2049,3327,10,1,6907,2049,2512,1,110,1793,6925,1,10,2049,3327,10,1,6920,2049,2512,1,116,1793,6938,1,9,2049,3327,10,1,6933,2049,2512,2049,3327,10,6895,6955,171,115,116,114,105,110,103,0,2049,68,25,2049,3327,1,6955,7,10,6945,6972,171,116,121,112,101,0,1,99,1793,6980,4,2049,3327,10,1,6976,2049,2512,1,115,1793,6993,4,2049,6955,3,10,1,6988,2049,2512,1,110,1793,7008,4,2049,5671,2049,6955,3,10,1,7001,2049,2512,3,10,6964,7024,171,104,97,110,100,108,101,0,1,92,1793,7033,2049,68,2049,6903,10,1,7028,2049,2512,1,37,1793,7046,2049,68,2049,6972,10,1,7041,2049,2512,2049,3327,10,6839,7070,171,115,58,119,105,116,104,45,102,111,114,109,97,116,0,1793,7099,2049,3625,1793,7094,2049,3419,1793,7089,2049,68,25,2049,7024,1,7080,7,10,1,7080,8,3,10,1,7076,2049,2084,10,1,7072,2049,3443,10,7053,7115,171,115,58,99,111,110,115,116,0,1793,7120,2049,3666,10,1,7117,2049,2072,2049,1977,10,7104,7141,171,115,101,116,58,108,101,110,103,116,104,0,15,10,7127,7163,171,115,101,116,58,102,114,111,109,45,114,101,115,117,108,116,115,0,2049,1682,1793,7169,8,10,1,7167,2049,2072,2049,1682,4,18,2049,1910,1793,7194,2,2049,132,1793,7189,2049,132,10,1,7186,2049,2259,10,1,7181,2049,2072,10,7143,7218,171,115,101,116,58,102,114,111,109,45,115,116,114,105,110,103,0,2049,3762,1793,7230,1793,7225,10,1,7224,2049,3968,10,1,7222,2049,6752,2049,7163,10,7199,7242,158,81,0,0,7199,7259,171,115,101,116,58,102,111,114,45,101,97,99,104,0,1,7242,1793,7289,4097,7242,2049,68,1793,7283,2049,68,4,1793,7278,3841,7242,8,10,1,7274,2049,2072,10,1,7269,2049,2259,3,10,1,7263,2049,3037,10,7243,7305,171,115,101,116,58,100,117,112,0,2049,1910,1793,7323,2,15,2049,132,1793,7318,2049,132,10,1,7315,2049,7259,10,1,7309,2049,2072,10,7294,7342,171,115,101,116,58,102,105,108,116,101,114,0,1793,7371,2049,2006,1793,7350,8,10,1,7348,2049,2072,4,1793,7360,2049,132,10,1,7357,1793,7366,3,10,1,7364,2049,122,10,1,7344,2049,6752,2049,1910,1793,7387,2049,2006,15,2049,132,2049,7259,10,1,7379,2049,2072,2049,1910,2049,2006,18,2049,2862,2049,2006,16,10,7328,7407,158,70,0,0,7328,7425,171,115,101,116,58,99,111,110,116,97,105,110,115,63,0,1,7407,2049,3018,1793,7440,2049,2006,11,3841,7407,22,4097,7407,10,1,7431,2049,7259,3,3841,7407,10,7408,7472,171,115,101,116,58,99,111,110,116,97,105,110,115,45,115,116,114,105,110,103,63,0,1,7407,2049,3018,1793,7488,2049,2006,2049,104,3841,7407,22,4097,7407,10,1,7478,2049,7259,3,3841,7407,10,7448,7507,171,115,101,116,58,109,97,112,0,1793,7513,8,2049,132,10,1,7509,2049,6752,2049,1910,1793,7529,2049,2006,15,2049,132,2049,7259,10,1,7521,2049,2072,10,7496,7549,171,115,101,116,58,114,101,118,101,114,115,101,0,2049,1910,1793,7583,2049,68,1793,7561,17,2049,2862,10,1,7557,2049,2084,2,2049,132,1793,7577,2,15,2049,132,2049,2862,10,1,7570,2049,2259,3,10,1,7553,2049,2072,10,7534,7599,171,115,101,116,58,110,116,104,0,17,2049,2849,10,7588,7617,171,115,101,116,58,114,101,100,117,99,101,0,1793,7621,4,10,1,7619,2049,2072,2049,7259,10,7603,7634,158,73,48,0,0,0,0,7628,7643,158,73,49,0,0,0,0,7637,7652,158,73,50,0,0,0,0,7646,7661,158,73,51,0,0,0,0,7655,7674,171,111,112,99,111,100,101,0,2049,3640,46,46,0,1,7676,1793,7686,1,0,10,1,7683,2049,2558,2049,3640,108,105,0,1,7692,1793,7702,1,1,10,1,7699,2049,2558,2049,3640,100,117,0,1,7708,1793,7718,1,2,10,1,7715,2049,2558,2049,3640,100,114,0,1,7724,1793,7734,1,3,10,1,7731,2049,2558,2049,3640,115,119,0,1,7740,1793,7750,1,4,10,1,7747,2049,2558,2049,3640,112,117,0,1,7756,1793,7766,1,5,10,1,7763,2049,2558,2049,3640,112,111,0,1,7772,1793,7782,1,6,10,1,7779,2049,2558,2049,3640,106,117,0,1,7788,1793,7798,1,7,10,1,7795,2049,2558,2049,3640,99,97,0,1,7804,1793,7814,1,8,10,1,7811,2049,2558,2049,3640,99,99,0,1,7820,1793,7830,1,9,10,1,7827,2049,2558,2049,3640,114,101,0,1,7836,1793,7846,1,10,10,1,7843,2049,2558,2049,3640,101,113,0,1,7852,1793,7862,1,11,10,1,7859,2049,2558,2049,3640,110,101,0,1,7868,1793,7878,1,12,10,1,7875,2049,2558,2049,3640,108,116,0,1,7884,1793,7894,1,13,10,1,7891,2049,2558,2049,3640,103,116,0,1,7900,1793,7910,1,14,10,1,7907,2049,2558,2049,3640,102,101,0,1,7916,1793,7926,1,15,10,1,7923,2049,2558,2049,3640,115,116,0,1,7932,1793,7942,1,16,10,1,7939,2049,2558,2049,3640,97,100,0,1,7948,1793,7958,1,17,10,1,7955,2049,2558,2049,3640,115,117,0,1,7964,1793,7974,1,18,10,1,7971,2049,2558,2049,3640,109,117,0,1,7980,1793,7990,1,19,10,1,7987,2049,2558,2049,3640,100,105,0,1,7996,1793,8006,1,20,10,1,8003,2049,2558,2049,3640,97,110,0,1,8012,1793,8022,1,21,10,1,8019,2049,2558,2049,3640,111,114,0,1,8028,1793,8038,1,22,10,1,8035,2049,2558,2049,3640,120,111,0,1,8044,1793,8054,1,23,10,1,8051,2049,2558,2049,3640,115,104,0,1,8060,1793,8070,1,24,10,1,8067,2049,2558,2049,3640,122,114,0,1,8076,1793,8086,1,25,10,1,8083,2049,2558,2049,3640,101,110,0,1,8092,1793,8102,1,26,10,1,8099,2049,2558,3,1,0,10,7664,8118,171,112,97,99,107,0,1,7634,2049,7674,1,7643,2049,7674,1,7652,2049,7674,1,7661,2049,7674,1,-24,24,4,1,-16,24,17,4,1,-8,24,17,4,17,10,7603,8155,171,105,0,2,1,7634,1,2,2049,3111,1,2,17,2,1,7643,1,2,2049,3111,1,2,17,2,1,7652,1,2,2049,3111,1,2,17,1,7661,1,2,2049,3111,2049,8118,2049,132,10,8150,8201,171,100,0,2049,132,10,8196,8209,171,114,0,2049,224,2049,185,15,2049,132,10,8204,8224,183,97,115,123,0,3841,151,1,151,2049,3018,10,8217,8238,183,125,97,115,0,4097,151,10,8231,8257,171,99,117,114,114,101,110,116,45,108,105,110,101,0,2049,3512,1,1025,18,10,8241,8279,171,99,111,117,110,116,45,116,111,107,101,110,115,0,1793,8285,1,32,11,10,1,8281,2049,4031,2049,79,10,8263,8306,171,110,101,120,116,45,116,111,107,101,110,0,1,32,2049,6208,10,8292,8329,171,112,114,111,99,101,115,115,45,116,111,107,101,110,115,0,1793,8364,2049,8306,4,1793,8357,2,2049,79,2049,2399,1793,8346,2049,396,10,1,8343,1793,8352,3,10,1,8350,2049,122,10,1,8336,2049,2072,2049,2849,10,1,8331,2049,2259,2049,396,10,8231,8385,171,115,58,101,118,97,108,117,97,116,101,0,2049,8257,2049,4239,2049,8257,2,2049,8279,2049,8329,10,8371,8405,171,112,117,116,99,0,1000,10,8397,8413,171,110,108,0,1,10,2049,8405,10,8407,8424,171,115,112,0,1,32,2049,8405,10,8418,8436,171,116,97,98,0,1,9,2049,8405,10,8429,8449,171,112,117,116,115,0,1793,8454,2049,8405,10,1,8451,2049,3968,10,8441,8467,171,112,117,116,110,0,2049,5671,2049,8449,10,8459,8481,171,119,111,114,100,115,0,1793,8490,2049,189,2049,8449,2049,8424,10,1,8483,2049,6806,10,8472,8504,171,114,101,115,101,116,0,2049,1682,25,5,3,6,1,1,18,1,8506,7,10,8495,8531,171,100,117,109,112,45,115,116,97,99,107,0,2049,1682,25,3,5,2049,8531,6,2,2049,8467,2049,8424,10,8517,8553,171,70,82,69,69,0,2049,3512,1,1025,18,2049,1910,18,10,8545,8570,171,103,101,116,99,0,1001,10,8562,8586,171,110,58,116,111,45,102,108,111,97,116,0,1,0,-6000,10,8572,8604,171,115,58,116,111,45,102,108,111,97,116,0,1,1,-6000,10,8590,8623,171,102,58,116,111,45,115,116,114,105,110,103,0,2049,3625,2,1,2,-6000,10,8608,8637,171,102,58,43,0,1,3,-6000,10,8630,8648,171,102,58,45,0,1,4,-6000,10,8641,8659,171,102,58,42,0,1,5,-6000,10,8652,8670,171,102,58,47,0,1,6,-6000,10,8663,8685,171,102,58,102,108,111,111,114,0,1,7,-6000,10,8674,8698,171,102,58,101,113,63,0,1,8,-6000,10,8689,8712,171,102,58,45,101,113,63,0,1,9,-6000,10,8702,8725,171,102,58,108,116,63,0,1,10,-6000,10,8716,8738,171,102,58,103,116,63,0,1,11,-6000,10,8729,8753,171,102,58,100,101,112,116,104,0,1,12,-6000,10,8742,8766,171,102,58,100,117,112,0,1,13,-6000,10,8757,8780,171,102,58,100,114,111,112,0,1,14,-6000,10,8770,8794,171,102,58,115,119,97,112,0,1,15,-6000,10,8784,8808,171,102,58,111,118,101,114,0,2049,8623,2049,8766,2049,8604,2049,8794,10,8798,8827,171,102,58,116,117,99,107,0,2049,8794,2049,8808,10,8817,8847,171,102,58,112,111,115,105,116,105,118,101,63,0,1,0,2049,8586,2049,8738,10,8832,8869,171,102,58,110,101,103,97,116,105,118,101,63,0,1,0,2049,8586,2049,8725,10,8854,8888,171,102,58,110,101,103,97,116,101,0,1,-1,2049,8586,2049,8659,10,8876,8904,171,102,58,97,98,115,0,2049,8766,2049,8869,1793,8913,2049,8888,10,1,8910,2049,130,10,8895,8927,171,102,58,108,111,103,0,1,16,-6000,10,8918,8942,171,102,58,112,111,119,101,114,0,1,17,-6000,10,8931,8961,171,102,58,116,111,45,110,117,109,98,101,114,0,1,18,-6000,10,8946,8977,183,112,114,101,102,105,120,58,46,0,2049,1788,1793,8984,2049,3666,10,1,8981,1793,8991,2049,3599,10,1,8988,2049,122,1,8604,2049,171,10,8965,9008,171,112,117,116,102,0,2049,8623,2049,8449,10,9000,9027,171,103,111,112,104,101,114,58,103,101,116,0,-6200,10,9013,9041,171,115,121,115,58,97,114,103,99,0,-6100,10,9029,9055,171,115,121,115,58,97,114,103,118,0,2049,3625,4,-6101,10,9043,9075,171,117,110,105,120,58,115,121,115,116,101,109,0,-8000,10,9060,9090,171,117,110,105,120,58,102,111,114,107,0,-8001,10,9077,9105,171,117,110,105,120,58,101,120,105,116,0,-8002,10,9092,9122,171,117,110,105,120,58,103,101,116,112,105,100,0,-8003,10,9107,9138,171,117,110,105,120,58,101,120,101,99,48,0,-8004,10,9124,9154,171,117,110,105,120,58,101,120,101,99,49,0,-8005,10,9140,9170,171,117,110,105,120,58,101,120,101,99,50,0,-8006,10,9156,9186,171,117,110,105,120,58,101,120,101,99,51,0,-8007,10,9172,9201,171,117,110,105,120,58,119,97,105,116,0,-8008,10,9188,9216,171,117,110,105,120,58,107,105,108,108,0,-8009,10,9203,9232,171,117,110,105,120,58,112,111,112,101,110,0,-8010,10,9218,9249,171,117,110,105,120,58,112,99,108,111,115,101,0,-8011,10,9234,9265,171,117,110,105,120,58,119,114,105,116,101,0,1793,9271,2,2049,79,10,1,9267,2049,2072,-8012,10,9251,9291,171,117,110,105,120,58,99,104,100,105,114,0,-8013,10,9277,9308,171,117,110,105,120,58,103,101,116,101,110,118,0,-8014,10,9293,9325,171,117,110,105,120,58,112,117,116,101,110,118,0,-8015,10,9310,0,158,102,105,108,101,58,82,0,9327,1,158,102,105,108,101,58,87,0,9337,2,158,102,105,108,101,58,65,0,9347,3,158,102,105,108,101,58,82,43,0,9357,9381,171,102,105,108,101,58,111,112,101,110,0,118,10,9368,9397,171,102,105,108,101,58,99,108,111,115,101,0,119,10,9383,9412,171,102,105,108,101,58,114,101,97,100,0,120,10,9399,9428,171,102,105,108,101,58,119,114,105,116,101,0,121,10,9414,9443,171,102,105,108,101,58,116,101,108,108,0,122,10,9430,9458,171,102,105,108,101,58,115,101,101,107,0,123,10,9445,9473,171,102,105,108,101,58,115,105,122,101,0,124,10,9460,9490,171,102,105,108,101,58,100,101,108,101,116,101,0,125,10,9475,9506,171,102,105,108,101,58,102,108,117,115,104,0,126,10,9492,9524,171,102,105,108,101,58,101,120,105,115,116,115,63,0,1,0,2049,9381,2,2049,2399,1793,9538,2049,9397,2049,2289,10,1,9533,1793,9546,3,2049,2301,10,1,9542,2049,122,10,9508,9558,158,70,73,68,0,0,9551,9568,158,70,83,105,122,101,0,0,9559,9579,158,65,99,116,105,111,110,0,0,9569,9590,158,66,117,102,102,101,114,0,0,9580,9600,171,45,101,111,102,63,0,3841,9558,2049,9443,3841,9568,13,10,9591,9620,171,112,114,101,115,101,114,118,101,0,1,9558,1793,9635,1,9568,1793,9630,8,10,1,9628,2049,3037,10,1,9624,2049,3037,10,9508,9658,171,102,105,108,101,58,114,101,97,100,45,108,105,110,101,0,4097,9558,1793,9715,2049,1910,2,4097,9590,2049,3419,1793,9707,3841,9558,2049,9412,2,2049,3327,1793,9684,1,13,11,10,1,9680,1793,9692,1,10,11,10,1,9688,1793,9700,1,0,11,10,1,9696,2049,2136,22,22,10,1,9671,2049,2230,2049,3351,3,10,1,9662,2049,3443,3841,9590,10,9640,9744,171,102,105,108,101,58,102,111,114,45,101,97,99,104,45,108,105,110,101,0,1793,9781,4097,9579,1,0,2049,9381,4097,9558,3841,9558,2049,9473,4097,9568,1793,9772,3841,9558,2049,9658,3841,9579,8,2049,9600,10,1,9762,2049,2204,3841,9558,2049,9397,10,1,9746,2049,9620,10,9722,9793,158,70,73,68,0,0,9786,9802,158,83,105,122,101,0,0,9722,9817,171,102,105,108,101,58,115,108,117,114,112,0,1793,9853,1,0,2049,9381,4097,9793,2049,3419,3841,9793,2049,9473,4097,9802,3841,9802,1793,9844,3841,9793,2049,9412,2049,3327,10,1,9837,2049,2259,3841,9793,2049,9397,10,1,9819,2049,3443,10,9803,9865,158,70,73,68,0,0,9803,9879,171,102,105,108,101,58,115,112,101,119,0,1,1,2049,9381,4097,9865,1793,9892,3841,9865,2049,9428,10,1,9887,2049,3968,3841,9865,2049,9397,10,0 }; diff --git a/literate/RetroForth.md b/literate/RetroForth.md index ec7ea5d..39d7d54 100644 --- a/literate/RetroForth.md +++ b/literate/RetroForth.md @@ -925,6 +925,25 @@ pointers to each of them. }} ~~~ +`s:tokenize-on-string` is like `s:tokenize`, but for strings. + +~~~ +{{ + 'Tokens var + 'Needle var + :-match? (s-sf) dup @Needle s:contains-string? ; + :save-token (s-s) @Needle s:split-on-string s:keep buffer:add n:inc ; + :tokens-to-set (-a) here @Tokens buffer:size dup , [ fetch-next , ] times drop ; +---reveal--- + :s:tokenize-on-string (ss-a) + [ s:keep !Needle here #8192 + !Tokens + @Tokens buffer:set + [ repeat -match? 0; drop save-token again ] call s:keep buffer:add + tokens-to-set ] buffer:preserve ; +}} +~~~ + + Ok, This is a bit of a hack, but very useful at times. Assume you have a bunch of values: diff --git a/ngaImage b/ngaImage index ff8ae86f95126330500f6db6edcc140200fec73c..3631922f4d8a98c7d6f225f706fcbfca53c581e5 100644 GIT binary patch delta 4378 zcmaKv3s6+&702(c>;@B{iz~Zum%Dp+v1o}H7adSU#s`wr*tCR3Vtqs+Am9sFLIin; zu}ny`O>$<))FzZ^9@A-3Q$lN}X?1LqI-N)|iH;;4D$`o6NvDpQbkb?G+W)zGzRk^! z(;Y6~dHlX}&Ufy;-@SKaz&ZY;GsAJ4rrpG^HmqrF;n56d)IHnOv`5V`Uo_%&IL8*3 zP@&`7w6QNh%RDJr^K&$96^>y|)9%Aj&j&fSc{3qsOW>)(@e1TZI{R=a>V)L@N_>tZ zRnw09HSKoTDnZo?8G~MnqXS1h{kPX#Xq(WOjR2TgA*B17Hnh?sW!SlsptPF^xnVQDycfe<5vt?b6tek0FVsLx#r%huXm2eXrkbjR6 znAIGm!>twHYVo{a?jnPu8~|htiP-im^b0w3tVXB5)a`apLY=PDruu^XTpc8GWbp{{ z0$f}+s!l}n=ybSV*E1MF(9<}$QY#s3b96daA90rIZPW`Mx?E%@Jy#cY@kl-~_yS zYk|8JmLZ+GwwCw34v{NF0aoaXXaTq3ryK<1OBlI&WKERwWA?$o<){)zY&LG+A?TQ% z@UzY_RKFgFenQu%q;ZwwW9n%P^-aOTnKQRY0`5krZ*6Jt8vl_P`ye zvhf_!-i+&k5dcJytVuXG>@ zDTA(%e(@!@gHOXSy18vd_&0)ljdwJx>xk%Trx>NH+q`RA*oqo{f>AY3>1f!OR{x?z zm<5L_WJGLgTQ~^)WPlED(&@us`a*Jrf$PugJa)u*e_7kEf{kyqNO8}bs@kWW4q|;Cf><5RKYAS)}R z`@j#Oal?4K;#~WAMD8J(#kyKCiETYbWjiP~mA4oAVOgaaJ}KS_M6@nE==Q3ALD3d( z;c=ntxsI|8vrb@C_YAM;EoyD?=KNe{sNP$TMbMM-?~+)_t3>oQvz@bE5oLV4H8y8?Boj zPEN7RmV#3?+NRzrP4WLplMP?BL0xSHu5}Po`GrD%Kqe%2rpch;7CmflO|78n)ZGKU zhrZe#qWQ5|GkzrA3a$_h88qldsn7XcgL-4S^9KeUibb5y7<4S=%j!>xv=jPk^l_}j z^&+I-A!bS8A0VY5mTKUewmIAhRoNKqr)aP}bhnrGcX*67Lai0bWy@G? zQE!3TAXI};ZX315qEa697~6&F5DLppR3Edb3Q*lb4G4u3k)R%n*9Gc;P(woTQ(1L_ z;&p*~PNt zduW05((wPb&3ofe|D&PXtg zU3?)4!tb^!h&M#91IZO6UyvC#Brimt0GTUDu^?U>vLHl7U6Ej!AeDm5v>_`|3y?K} ztQ927hE$^#AR7c}5QKLeRqhtl0%W@&9fIKFDS^aL%brNETaW=k@VS&g9z!ia4hS+N z2)_ucM1)%QM3z1$$jgG@DVjiDU>h#Q8@SM{%@scWafmCp!;esAcWCh`zSlv0&LcdN zN&5LDo%aokr>5?eF5YJ*X|&t#I7L^xXFDdX|L5^P8^t~Xi{-sW#6k1x#l*Eyl3#m_7Y_Ej`K~n!T%7y3&VE^ zKGqLl398}GvJJiwjP~7WSlBM@3-&3o@iPH&=vrU8@ub-JHOd~FzuK|4?=6Wg7vlT4 zMVMe+RahgwL5y6{7{)VnaBrUL9Y|;CmwQ9$XTM-rxw>rNXBJa(r6JF@{;H#iFg=uQv GivIzG3pnlo delta 3947 zcmaKv3rrMO6ozM4b_Ef9fZz`7%(5ux`T|T!7awV<8f{G#Q>j)V#rjx5MMRO}V?of` z;v?onW3^f}X+sJzKC00gHO5%28dGXwOs%A~Z8X}{8f)vLum8-RyO|KvP43=%{`=i? z&YU}QclL6#bI&?wqNA&({fp00pQfGn9ZYoQx>uT-cG*0flIwRnjKjfv8bY=6Hn?*< znpWzeZlOR{6^6X9oO?~v3efjL-xIAH8f$Yr^j1jM-(e(H)2^a*k?CS+t30$R_!PnWN_mTW8C_CmPp4vE89fL_A-^I-fXGT z)L^_tr)vwcTpwZ>!z;sEG2*LN;j6{}r%dn|bL>Q21;^amX^l$xh;2=F%JbLmx2=WG zc&p^^Lp-O`?uA3AT#@-P5}PZgcI7METF#?CGq}1Noz`rzt+{4Z#?8fls8hkB!f?;D zNM-{QBdg=Zo{T3#^MB0~gGmWepiH zi>YWPr-fD5!+Z0EX!b*u_0J=EqINSr;$RPi4wO8Vl9!}U{S6kEl@BjfN)CNb+;OQ@ z0q%%)0KL*~iKbGy3cCw6EKZ|6OVWq<(j#84!6SQ(hi$)*IGN|wF*Iti?gPpj z{+~z-G1p>68o4alwI5b2m8Bvf9jm0_>fQ6bfa?t=Y|<*}t8!;AD(seczx z-M}5`^iM&G^V@U^)aZ_1DR)USO|R+UxJ~Ua(fnb47Jy!Qd^DB^#oQ5to)$v zjU3LZtbJkgmT)@Ut5jp5XQT0kPC(0{_QWJt29z9{zT9*LFbdKtjD}-WNP96FiP0oF zw|s4DPX-KPuuhFB!FdqfC$rK^Rj=$V;U_ssvdf2tP*(srAxsAPs^v3u3>o z*L$f0$QD6%3c?S+^0FPdyz4ji3eqZw%Z9Wd7a#`(IU$JKh8#mKK+XtqNf2CrG|&a) z0;FA#8-k$VQRF&usq-5@2y#yl{I*AtJIDpd13{h%!dIiN=rMAs^LrgeWCP;4$231( z3W=qgb(!8?LZk`N-A42!?}|)sh7f~i$i#{en;kt@UqA@H*pC0?XmAYK;YH6i#I zRC$c2n=3MnA|Yl7VSk^UW{|NGw~8PYg79mvauPDA6iAgID+K9nLuw7$4WvPkWg76eS&dsokb8pgD~Aen2e|-wAjmU8@a_;r9wV34x@#=%qIf#F+6?mZ z&S$_Rxvz3M*}+bBp|Yt@_!SqQ7&%lDPIY9{u5h*^$NCQ9+YIt8Xwm4^OGY;CIF1&N zzdqcnU&2AKOVL`v&Za6O$vqv`T$5g?AL=f{aG6Qv^?B|^7&e-;uikI{d)j8w#ri4k zbx_+(@;8ij9x|z8M2fK=3j05ed(XN$DZxk3&zrQZVVwIoh8-r|Y8aQ|@I|QekoctF zQ|zfpqu1z#_r=i$T#YL8FRTH1gx-GkJQUXcoBFd!JJ#sl?`4W#Bsd@Cj{gGUj9!zU zyG@AAcovvoTUD)1<~q=G60yiPK*7dLmmi}%Dr+$@zLBS|EMsA?BOJ2?it~J z6na&$TG9Cb4QmTwZ$xXQqG3t&*PQP3Q&Yd*o1v)lvkBuCAL(mf&1%7rPhM4x5NvyZ N9k5UN=!3O|{{im4^KJkD diff --git a/words.tsv b/words.tsv index 3152264..8096020 100644 --- a/words.tsv +++ b/words.tsv @@ -277,6 +277,7 @@ s:to-lower s-s - - Convert uppercase ASCII characters in a string to lowercase. s:to-number s-n - - Convert a string to a number. class:word {n/a} {n/a} s all s:to-upper s-s - - Convert lowercase ASCII characters in a string to uppercase. class:word {n/a} {n/a} s all s:tokenize sc-a - - Takes a string and a character to use as a separator. It splits the string into a set of substrings and returns a set containing pointers to each of them. class:word {n/a} {n/a} {n/a} {n/a} +s:tokenize-on-string ss-a - - Takes a string (s1) and a substring (s2) use as a separator. It splits the string into a set of substrings and returns a set containing pointers to each of them. class:word {n/a} {n/a} {n/a} {n/a} s:trim s-s - - Trim leading and trailing whitespace from a string. class:word {n/a} {n/a} s all s:trim-left s-s - - Trim leading whitespace from a string. class:word {n/a} {n/a} s all s:trim-right s-s - - Trim trailing whitespace from a string. class:word {n/a} {n/a} s all