From df91d1bf048199da6ce13aca83849bee630a3a21 Mon Sep 17 00:00:00 2001 From: crc Date: Wed, 12 Feb 2020 21:36:49 +0000 Subject: [PATCH] retro.forth: rewrite `a:index-of` and `a:index-of-string`, removing a variable and making them much shorter FossilOrigin-Name: 81de60c7784b0e9954c7d1ba6873a9279f250fd3b4f1182569540227e8915e96 --- image/retro.forth | 39 +-- ngaImage | Bin 37212 -> 36772 bytes vm/nga-c/retro-image.c | 710 ++++++++++++++++++++--------------------- 3 files changed, 368 insertions(+), 381 deletions(-) diff --git a/image/retro.forth b/image/retro.forth index c3bbf94..6f1ce76 100644 --- a/image/retro.forth +++ b/image/retro.forth @@ -1425,29 +1425,6 @@ a flag. #0 swap [ swap push over s:eq? pop or ] a:for-each nip ; ~~~ -`a:index-of` builds on these to return the offset of a value in the -array. - -~~~ -{{ - 'Location var - :prepare swap #-1 !Location ; - :next @Location n:negative? [ &Location v:dec ] if ; - :match? over eq? dup [ drop @Location n:negative? ] if ; - :match-str? over s:eq? dup [ drop @Location n:negative? ] if ; - :update @Location n:abs n:dec !Location ; ----reveal--- - :a:index-of (an-n) - prepare dup-pair a:contains? [ drop-pair #-1 ] -if; - [ match? &update if next ] a:for-each - drop @Location ; - :a:index-of-string (as-n) - prepare dup-pair a:contains-string? [ drop-pair #-1 ] -if; - [ match-str? &update if next ] a:for-each - drop @Location ; -}} -~~~ - I implemented `a:map` to apply a quotation to each item in an array and construct a new array from the returned values. @@ -1497,6 +1474,22 @@ and return a new value. &swap dip a:for-each ; ~~~ +`a:index-of` builds on these to return the offset of a value in the +array. + +~~~ +{{ + :identify + #-1 swap #0 + [ TRUE eq? [ over #-1 eq? [ nip dup ] if ] if n:inc ] a:reduce drop ; +---reveal--- + :a:index-of (an-n) + &Heap [ &eq? curry a:map identify ] v:preserve ; + :a:index-of-string (as-n) + &Heap [ &s:eq? curry a:map identify ] v:preserve ; +}} +~~~ + When making an array, I often want the values in the original order. The `a:counted-results a:reverse` is a bit long, so I'm defining a new `a:make` which wraps these. diff --git a/ngaImage b/ngaImage index 24739c82c8a763163fd2b1e1c1ac084e7b0d8ebe..af2b67b4705b606903144d4c14803da1add3d42f 100644 GIT binary patch delta 2231 zcma)7TTC2f6rP!7r$u04S-Pvh?(FXLl5TYi5nI6q$_g}4o8qMpB&`Xlh$W>rZKMs$ zaxJ$4+nfi2q7)*Sw9-&{Dc0IzXoN&fh+30E)#8J?2K7AeQ=VKbI$jF z=l1{q%q)&b?+i&6afKlKjpu7s5Pnq8TT-*lHkjVYHQ9fdMP<^tdEL{}fQ!Bfdd)*F zL0CzZE}Qr!jn_HEb9A*%wZ98gTqy{7kcR|82*bbPqMC+0-;%!cBw#M|DSRv2pzcVB z&_(#OF8aJ7U0QU}&kbJbD;HTpcKb|B-bwg(U6dE{nSX$Jp9<@2R3CcSdKX?YvT*Tx zu#;#sv>}zz6djcmL2xRx6eVP-+XSlS192~q_)0C^3<*vpV(5PrBl-k&(#)-a5+ z6FGQ{oOnUNB-(hTz|4{yXT%tIG4ME(AV`8xrgh1L06@h4>u=G0PP#Q}Z#DyG%n6Mg z8lQ*QONI40G<71O@DMYwk`7^JRc1sFUBgM0k6gxOY(kq~8=L|vuWw+S$bh~5H<-2 z=8T*C8Fso=kV3PqiSiVnc{g2e^~s;WTyRrn?}r@J z z`GvWyWAnP^Xp>1yW-br6!XpUlDfh%WX9_Hi9>(jyD+>Ir5bn8>DvO_@XWA3Ra;j)o z*JmP{xg5h>5mE%3G2>4A;a8!zZQ@Zart|?Z`(k2t!SABc_UGl}uugmEetW(&=Arx! zyK6+}euxd>Iy+I5Ylnef_Rx`z5^2FhA9SQkUwY_T$0ljkLzd2T*R&q@6Jj{7R*b}P ztzSJ<(zz+SOQ%fWk}!pRd?hsdw7zy3n#(Qm8jW{4%*(J6X|8ifHhJ*{^3q4gT^{co@1{ylAXW-&{vC3ys3gJh@ zM>jT;@g05<+=Dv5EJFV;pPITIo*FQMI&1p_SySB^avd0hUb^1>oTUh+_J-mfzUQTL zsv{Ro<^bifo)zBXW;1?}ZVk`uU9J5teN^15XjYzv*Y{?Hd|+`^6Kk~f zg6{J+GH!*>-wFO>V3##cc{B&7!a2BOo@P7j=pRNv=MHk0%)#Cp{0%CuQ58Mbr#h>d zhGl-ZtQ$V3+zow%YWtL=DjnGm9i)LMq=} I>8Aq!0Dp9Ewg3PC delta 2689 zcmai03rtmY82_J(_r$&Gy~4#yg50+dBKVj>Qh`8OV5F9|IkkzcNS7A*Sc-DFAgDZU zzu&p%(2cP=+qdua`<~~29xv^- zeco$xX*VhL7p}V^N0t_`RSWskqHkMC4PTM@;uHa1F%5+9;)%-3k2#@IyW+tIw`*C#+hk zQmJsU&ExPgifGyo3{OPS_6BSYaAxU)eA*|yOF~h*O&5i(|nYa z<{ijCf_h+I0jdLWT#o)2s1URYL>q@I2k~M}wzpWRvVp?a|EKWPq{3f9*8SYw9h3a| z$*tyK7N)KxPug2OB64KG#;G}Qa_t070+G+Bj@k45($ws&8;8s^uQs<@V(O;}L;I}E zO%ihmHfuE#O* zALZ~xL5V(MRoV77XsJ@?^Vnj3>3iC1d(JOA*N4)&%`Byuk`t_zh9-~9D-E*q`PddW z_MQp4mFs}s?-yUAx3JGN-wCL3u)z5Y5OM-O+Hk&%4K9;lqenX`XPPs;`v%qA0sWj` zdK<^RSWIi|Ph_YS|iDaWs!Ntz4JM}8`@8wAB?t!GgiK8W3`&q`dloyW) zA_1OocI<|nhJ=h}r)-H`4u{>!NIg-=o0?=M^s|6cxj}ii#i#q=ni7KeavJxCF@+;_@!8%9JJTk*o}88u~#Rg)#%RM}_3YcCY>?0t!R&dizXYbrO=D z9?vvS3szMb65r{80I4^`V{r?fYT{8P$!`M~ay#hux5rDKAvAS}MlTs;WmtgzH{mg?mY7lfsw zv(i2rVuPINtg_cZibC?pgsy;n6|}g_?J6<;fwoI`m*0@~%7Lz`=yrHHa05BoJz?rx zEbUR~eD_#C9mE_<#^63N2OH)vM{IXn3vV056H5nNXyDZEVSnLrgi-){4F<}PkGT|T4JrP+O zAMdh95+)~jFd}{NDd|Co7|=l847nsCSK~FgB@lI(Z6GG|KqtS9WK5b5y*46CpQ-#C DMHz#e diff --git a/vm/nga-c/retro-image.c b/vm/nga-c/retro-image.c index e40b3ce..7cb0d59 100644 --- a/vm/nga-c/retro-image.c +++ b/vm/nga-c/retro-image.c @@ -2,8 +2,8 @@ #ifndef CELL #define CELL int32_t #endif -CELL ngaImageCells = 14869; -CELL ngaImage[] = { 1793,14171,14715,14868,202004,0,10,1,10,2,10,3,10,4,10,5,10,6,10, +CELL ngaImageCells = 14759; +CELL ngaImage[] = { 1793,14061,14605,14758,202004,0,10,1,10,2,10,3,10,4,10,5,10,6,10, 7,10,8,10,9,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,68223234,1,2575, 85000450,1,656912,139,138,268505089,63,62,135205121,63,10,101384453,0,9,10,2049,56,25,459011,74, @@ -11,7 +11,7 @@ CELL ngaImage[] = { 1793,14171,14715,14868,202004,0,10,1,10,2,10,3,10,4,10,5,10, 84,524545,88,64,167838467,-1,134287105,3,59,659457,3,459023,105,2049,56,25,2049,105,1793,112, 2049,112,117506307,0,105,0,524545,25,110,168820993,0,124,1642241,124,134283523,7,110,1793,105,7, 524545,2049,105,1793,105,16846593,124,139,138,1793,64,16846593,124,110,138,1793,64,7,10,659713, - 1,659713,2,659713,3,1793,14849,2,524559,105,2049,105,2049,105,2049,119,168820998,2,13264,1025, + 1,659713,2,659713,3,1793,14739,2,524559,105,2049,105,2049,105,2049,119,168820998,2,13154,1025, 167841793,177,5,17826049,0,177,2,15,25,524546,162,134287105,178,93,2305,179,459023,187,134287361,178, 182,659201,177,2049,56,25,84152833,48,286458116,10,459014,202,184618754,45,25,16974851,-1,168886532,1,134284289, 1,211,134284289,0,202,660227,32,0,0,112,114,101,102,105,120,58,105,0,285278479,228, @@ -160,7 +160,7 @@ CELL ngaImage[] = { 1793,14171,14715,14868,202004,0,10,1,10,2,10,3,10,4,10,5,10, 2049,2106,4100,10,3055,3095,144,118,58,117,112,100,97,116,101,0,4,1793,3102,15, 4,8,10,1,3098,2049,2116,16,10,3083,3116,144,99,111,112,121,0,1793,3125,285278725, 1,33951492,268767489,1,6,10,1,3118,2049,2281,771,10,3108,3144,144,83,99,111,112,101, - 76,105,115,116,0,14715,14715,10,3131,3153,144,123,123,0,2049,1570,2,1,3144,2049, + 76,105,115,116,0,14605,14605,10,3131,3153,144,123,123,0,2049,1570,2,1,3144,2049, 59,16,10,3147,3178,144,45,45,45,114,101,118,101,97,108,45,45,45,0,2049, 1570,1,3144,2049,2880,16,10,3162,3192,144,125,125,0,1,3144,2049,56,4,15,11, 1793,3206,3841,3144,4097,2,10,1,3201,1793,3232,3841,3144,1793,3227,1,2,983567,1,3144, @@ -179,7 +179,7 @@ CELL ngaImage[] = { 1793,14171,14715,14868,202004,0,10,1,10,2,10,3,10,4,10,5,10, 4097,3255,10,3423,3477,131,84,101,109,112,83,116,114,105,110,103,115,0,32,3462, 3495,131,84,101,109,112,83,116,114,105,110,103,77,97,120,0,512,3478,3507,144, 83,84,82,73,78,71,83,0,2049,1543,3841,3477,3841,3495,19,18,10,3496,3527,131, - 67,117,114,114,101,110,116,0,13,10,3516,3542,144,115,58,112,111,105,110,116, + 67,117,114,114,101,110,116,0,11,10,3516,3542,144,115,58,112,111,105,110,116, 101,114,0,3841,3527,3841,3495,19,2049,3507,17,10,3529,3561,144,115,58,110,101,120, 116,0,1,3527,2049,2978,3841,3527,3841,3477,11,1793,3577,1,0,4097,3527,10,1,3572, 9,10,3496,3591,144,115,58,116,101,109,112,0,2,2049,79,2049,2880,2049,3542,4, @@ -394,356 +394,350 @@ CELL ngaImage[] = { 1793,14171,14715,14868,202004,0,10,1,10,2,10,3,10,4,10,5,10, 97,105,110,115,63,0,1,0,4,1793,7777,4,5,67502597,11,6,22,10,1,7770, 2049,7501,772,10,7750,7805,144,97,58,99,111,110,116,97,105,110,115,45,115,116, 114,105,110,103,63,0,1,0,4,1793,7818,4,5,67502597,2049,93,6,22,10,1, - 7810,2049,7501,772,10,7783,7836,131,76,111,99,97,116,105,111,110,0,0,7824,7848, - 144,112,114,101,112,97,114,101,0,4,1,-1,4097,7836,10,7837,7862,144,110,101, - 120,116,0,3841,7836,2049,2568,1793,7873,1,7836,2049,2993,10,1,7868,9,10,7854,7887, - 144,109,97,116,99,104,63,0,67502597,11,2,1793,7898,3,3841,7836,2049,2568,10,1, - 7892,9,10,7877,7916,144,109,97,116,99,104,45,115,116,114,63,0,67502597,2049,93, - 2,1793,7928,3,3841,7836,2049,2568,10,1,7922,9,10,7902,7942,144,117,112,100,97, - 116,101,0,3841,7836,2049,2845,2049,2893,4097,7836,10,7783,7965,144,97,58,105,110,100, - 101,120,45,111,102,0,2049,7848,2049,2096,2049,7765,1793,7977,771,1,-1,10,1,7973, - 2049,2676,1793,7991,2049,7887,1,7942,9,2049,7862,10,1,7983,2049,7501,3,3841,7836,10, - 7951,8020,144,97,58,105,110,100,101,120,45,111,102,45,115,116,114,105,110,103, - 0,2049,7848,2049,2096,2049,7805,1793,8032,771,1,-1,10,1,8028,2049,2676,1793,8046,2049, - 7916,1,7942,9,2049,7862,10,1,8038,2049,7501,3,3841,7836,10,7999,8063,144,97,58, - 109,97,112,0,1793,8069,8,2049,105,10,1,8065,2049,7269,2049,1877,1793,8084,67502597,15, - 2049,105,2049,7501,10,1,8077,2049,2106,10,8054,8102,144,97,58,114,101,118,101,114, - 115,101,0,2049,1877,1793,8136,2049,56,1793,8114,17,2049,2893,10,1,8110,2049,2116,2, - 2049,105,1793,8130,2,15,2049,105,2049,2893,10,1,8123,2049,2281,3,10,1,8106,2049, - 2106,10,8089,8149,144,97,58,116,104,0,17,2049,2880,10,8141,8164,144,97,58,102, - 101,116,99,104,0,2049,8149,15,10,8153,8179,144,97,58,115,116,111,114,101,0, - 2049,8149,16,10,8168,8195,144,97,58,114,101,100,117,99,101,0,1,13,2049,2106, - 2049,7501,10,8183,8212,144,97,58,109,97,107,101,0,2049,7433,2049,8102,10,8202,8222, - 156,123,0,1,285,2049,156,1,1556,2049,144,1,285,2049,156,10,8217,8240,156,125, - 0,1,301,2049,156,1,2106,2049,144,1,1556,2049,144,1,13,2049,150,1,40,2049, - 150,1,2893,2049,144,1,301,2049,156,1,8212,2049,144,10,8235,8284,144,98,111,117, - 110,100,115,63,0,67502597,2049,7410,67502597,13,10,8273,8298,144,99,111,112,121,0,2049, - 56,2049,105,10,8290,8313,144,116,111,45,101,110,100,0,2,2049,7410,17,2049,2880, - 10,8235,8330,144,97,58,108,101,102,116,0,2049,8284,1793,8338,771,1,-1,10,1, - 8334,2049,2659,2049,1877,67502597,2049,105,1793,8359,1,2880,2049,2106,1,8298,2049,2281,3,10, - 1,8349,2049,2106,10,8320,8375,144,97,58,114,105,103,104,116,0,2049,8284,1793,8383, - 771,1,-1,10,1,8379,2049,2659,2049,1877,67502597,2049,105,1793,8406,4,2049,8313,67502597,18, - 4,1,8298,2049,2281,3,10,1,8394,2049,2106,10,8364,8423,144,97,58,109,105,100, - 100,108,101,0,1,2048,2049,2106,4,67502597,2049,8284,1793,8438,771,3,1,-1,10,1, - 8433,2049,2659,771,2049,2096,4,18,2049,2880,2049,1877,67502597,2049,105,1793,8473,772,1793,8463, - 17,2049,2880,10,1,8459,2049,2106,1,8298,2049,2281,3,10,1,8456,2049,2106,10,8411, - 8486,131,70,108,97,103,0,0,8478,8498,144,99,111,109,112,97,114,101,0,67440386, - 184946434,10,8487,8511,144,108,101,110,103,116,104,0,659202,10,8501,8521,144,110,101,120, - 116,0,17043713,1,1,2577,10,8513,8539,144,110,111,116,45,101,113,117,97,108,0, - 50529030,2561,0,10,8526,8551,144,108,111,111,112,0,524549,8521,2049,8498,18157313,8486,8486,16, - 420610310,1,1,8551,7,10,8411,8574,144,97,58,101,113,63,0,1048833,-1,8486,2049,8498, - 151066369,-1,8539,2049,8511,2049,8551,251724547,8486,10,8565,8599,144,97,58,45,101,113,63,0, - 2049,8574,2049,2465,10,8589,8622,144,97,58,98,101,103,105,110,115,45,119,105,116, - 104,63,0,1,3,1793,8638,2,2049,7410,1,13,2049,2106,2049,8330,2049,8574,10,1, - 8626,2049,3069,10,8604,8659,144,97,58,101,110,100,115,45,119,105,116,104,63,0, - 1,3,1793,8675,2,2049,7410,1,13,2049,2106,2049,8375,2049,8574,10,1,8663,2049,3069, - 10,8643,8696,144,99,117,114,114,101,110,116,45,108,105,110,101,0,2049,3507,1, - 1025,18,10,8680,8718,144,99,111,117,110,116,45,116,111,107,101,110,115,0,1793, - 8724,1,32,11,10,1,8720,2049,4284,2049,79,10,8702,8749,144,112,114,111,99,101, - 115,115,45,116,111,107,101,110,115,0,1793,8777,1,32,2049,6081,4,1793,8770,2, - 2049,79,2049,2549,1,365,1,11,2049,64,10,1,8758,2049,2106,2049,2880,10,1,8751, - 2049,2281,2049,365,10,8643,8798,144,115,58,101,118,97,108,117,97,116,101,0,2049, - 8696,2049,4528,2049,8696,2,2049,8718,2049,8749,10,8784,8816,131,76,80,0,0,8810,8826, - 131,73,110,100,101,120,0,0,10,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8817, - 8866,144,110,101,120,116,0,3841,8816,1,8826,17,2049,2978,10,8858,8882,144,112,114, - 101,112,0,1,8816,2049,2978,1,0,3841,8816,1,8826,17,16,10,8874,8903,144,100, - 111,110,101,0,1,8816,2049,2993,10,8784,8913,144,73,0,3841,8816,1,8826,17,15, - 10,8908,8925,144,74,0,3841,8816,1,8826,17,2049,2893,15,10,8920,8939,144,75,0, - 3841,8816,1,8826,17,1,2,18,15,10,8934,8970,144,116,105,109,101,115,60,119, - 105,116,104,45,105,110,100,101,120,62,0,2049,8882,4,1793,8986,25,33886721,1,2053, - 1542,2049,8866,1,8975,7,10,1,8975,8,3,2049,8903,10,8949,9001,156,104,111,111, - 107,0,2049,3636,108,105,106,117,46,46,46,46,0,1,9003,2049,412,2049,1877,2049, - 2880,2049,105,10,8993,9035,144,115,101,116,45,104,111,111,107,0,2049,2880,16,10, - 9023,9049,144,117,110,104,111,111,107,0,2049,2880,2,2049,2880,4,16,10,9039,9073, - 144,105,111,58,101,110,117,109,101,114,97,116,101,0,27,10,9057,9087,144,105, - 111,58,113,117,101,114,121,0,28,10,9075,9102,144,105,111,58,105,110,118,111, - 107,101,0,29,10,9089,9112,131,83,108,111,116,0,9,9089,9128,144,105,111,58, - 115,99,97,110,45,102,111,114,0,1,-1,4097,9112,2049,9073,1793,9154,2049,8913,2049, - 9087,772,67502597,11,1793,9150,2049,8913,4097,9112,10,1,9145,9,10,1,9136,2049,8970,3, - 3841,9112,10,9113,9171,144,99,58,112,117,116,0,1793,9173,1,0,2049,9102,10,9162, - 9184,144,110,108,0,1,10,2049,9171,10,9178,9195,144,115,112,0,1,32,2049,9171, - 10,9189,9207,144,116,97,98,0,1,9,2049,9171,10,9200,9221,144,115,58,112,117, - 116,0,1,9171,2049,3860,10,9212,9235,144,110,58,112,117,116,0,2049,5920,2049,9221, - 10,9226,9249,144,114,101,115,101,116,0,2049,1556,25,771,1,9249,7,10,9240,9271, - 144,100,117,109,112,45,115,116,97,99,107,0,2049,1556,25,3,5,2049,9271,6, - 2,2049,9235,2049,9195,10,9257,9293,144,70,82,69,69,0,2049,3507,1,1025,18,2049, - 1877,18,10,9285,9311,131,70,105,108,101,115,0,0,9302,9324,144,105,100,101,110, - 116,105,102,121,0,3841,9311,2049,2533,1793,9391,1,4,2049,9128,2,2049,2568,1793,9379, - 3,2049,3636,73,79,32,68,69,86,73,67,69,32,84,89,80,69,32,48,48, - 48,52,32,78,79,84,32,70,79,85,78,68,0,1,9342,2049,9221,2049,9184,10, - 1,9339,1793,9386,4097,9311,10,1,9383,2049,64,10,1,9330,9,10,9285,9416,144,105, - 111,58,102,105,108,101,45,111,112,101,114,97,116,105,111,110,0,2049,9324,3841, - 9311,2049,9102,10,9395,0,131,102,105,108,101,58,82,0,9423,1,131,102,105,108, - 101,58,87,0,9433,2,131,102,105,108,101,58,65,0,9443,3,131,102,105,108, - 101,58,82,43,0,9453,9477,144,102,105,108,101,58,111,112,101,110,0,1,0, - 2049,9416,10,9464,9496,144,102,105,108,101,58,99,108,111,115,101,0,1,1,2049, - 9416,10,9482,9514,144,102,105,108,101,58,114,101,97,100,0,1,2,2049,9416,10, - 9501,9533,144,102,105,108,101,58,119,114,105,116,101,0,1,3,2049,9416,10,9519, - 9551,144,102,105,108,101,58,116,101,108,108,0,1,4,2049,9416,10,9538,9569,144, - 102,105,108,101,58,115,101,101,107,0,1,5,2049,9416,10,9556,9587,144,102,105, - 108,101,58,115,105,122,101,0,1,6,2049,9416,10,9574,9607,144,102,105,108,101, - 58,100,101,108,101,116,101,0,1,7,2049,9416,10,9592,9626,144,102,105,108,101, - 58,102,108,117,115,104,0,1,8,2049,9416,10,9612,9647,144,102,105,108,101,58, - 101,120,105,115,116,115,63,0,1,0,2049,9477,2,2049,2549,1793,9661,2049,9496,2049, - 2356,10,1,9656,1793,9669,3,2049,2368,10,1,9665,2049,64,10,9631,9700,144,102,105, - 108,101,58,111,112,101,110,60,102,111,114,45,114,101,97,100,105,110,103,62, - 0,1,0,2049,9477,2,2049,9587,4,10,9674,9734,144,102,105,108,101,58,111,112, - 101,110,60,102,111,114,45,97,112,112,101,110,100,62,0,1,2,2049,9477,2, - 2049,9587,4,10,9709,9769,144,102,105,108,101,58,111,112,101,110,60,102,111,114, - 45,119,114,105,116,105,110,103,62,0,1,1,2049,9477,10,9743,9781,131,70,73, - 68,0,0,9774,9790,131,83,105,122,101,0,0,9782,9801,131,65,99,116,105,111, - 110,0,0,9791,9812,131,66,117,102,102,101,114,0,0,9802,9822,144,45,101,111, - 102,63,0,3841,9781,2049,9551,3841,9790,13,10,9813,9842,144,112,114,101,115,101,114, - 118,101,0,1,9781,1793,9853,1,9790,1,21,2049,3069,10,1,9846,2049,3069,10,9743, - 9876,144,102,105,108,101,58,114,101,97,100,45,108,105,110,101,0,4097,9781,1793, - 9933,2049,1877,2,4097,9812,2049,3418,1793,9925,3841,9781,2049,9514,2,2049,3326,1793,9902,1, - 13,11,10,1,9898,1793,9910,1,10,11,10,1,9906,1793,9918,1,0,11,10,1, - 9914,2049,2165,22,22,10,1,9889,2049,2256,2049,3350,3,10,1,9880,2049,3442,3841,9812, - 10,9858,9962,144,102,105,108,101,58,102,111,114,45,101,97,99,104,45,108,105, - 110,101,0,1793,9993,4097,9801,2049,9700,4097,9781,4097,9790,1793,9984,3841,9781,2049,9876,3841, - 9801,8,2049,9822,10,1,9974,2049,2233,3841,9781,2049,9496,10,1,9964,2049,9842,10,9940, - 10005,131,70,73,68,0,0,9940,10020,144,102,105,108,101,58,115,108,117,114,112, - 0,1793,10047,4,2049,3418,2049,9700,4097,10005,1793,10038,3841,10005,2049,9514,2049,3326,10,1, - 10031,2049,2281,3841,10005,2049,9496,10,1,10022,2049,3442,10,10006,10065,144,102,105,108,101, - 58,115,112,101,119,0,2049,9769,4,1793,10074,67502597,2049,9533,10,1,10070,2049,3860,2049, - 9496,10,10052,10088,131,70,80,85,0,0,10081,10101,144,105,100,101,110,116,105,102, - 121,0,3841,10088,2049,2533,1793,10168,1,2,2049,9128,2,2049,2568,1793,10156,3,2049,3636, - 73,79,32,68,69,86,73,67,69,32,84,89,80,69,32,48,48,48,50,32, - 78,79,84,32,70,79,85,78,68,0,1,10119,2049,9221,2049,9184,10,1,10116,1793, - 10163,4097,10088,10,1,10160,2049,64,10,1,10107,9,10,10052,10194,144,105,111,58,102, - 108,111,97,116,45,111,112,101,114,97,116,105,111,110,0,2049,10101,3841,10088,2049, - 9102,10,10172,10215,144,110,58,116,111,45,102,108,111,97,116,0,1,0,2049,10194, - 10,10201,10234,144,115,58,116,111,45,102,108,111,97,116,0,1,1,2049,10194,10, - 10220,10254,144,102,58,116,111,45,110,117,109,98,101,114,0,1,2,2049,10194,10, - 10239,10274,144,102,58,116,111,45,115,116,114,105,110,103,0,2049,3617,2,1,3, - 2049,10194,10,10259,10289,144,102,58,43,0,1,4,2049,10194,10,10282,10301,144,102,58, - 45,0,1,5,2049,10194,10,10294,10313,144,102,58,42,0,1,6,2049,10194,10,10306, - 10325,144,102,58,47,0,1,7,2049,10194,10,10318,10341,144,102,58,102,108,111,111, - 114,0,1,8,2049,10194,10,10330,10359,144,102,58,99,101,105,108,105,110,103,0, - 1,9,2049,10194,10,10346,10374,144,102,58,115,113,114,116,0,1,10,2049,10194,10, - 10364,10388,144,102,58,101,113,63,0,1,11,2049,10194,10,10379,10403,144,102,58,45, - 101,113,63,0,1,12,2049,10194,10,10393,10417,144,102,58,108,116,63,0,1,13, - 2049,10194,10,10408,10431,144,102,58,103,116,63,0,1,14,2049,10194,10,10422,10447,144, - 102,58,100,101,112,116,104,0,1,15,2049,10194,10,10436,10461,144,102,58,100,117, - 112,0,1,16,2049,10194,10,10452,10476,144,102,58,100,114,111,112,0,1,17,2049, - 10194,10,10466,10491,144,102,58,115,119,97,112,0,1,18,2049,10194,10,10481,10505,144, - 102,58,108,111,103,0,1,19,2049,10194,10,10496,10521,144,102,58,112,111,119,101, - 114,0,1,20,2049,10194,10,10510,10535,144,102,58,115,105,110,0,1,21,2049,10194, - 10,10526,10549,144,102,58,99,111,115,0,1,22,2049,10194,10,10540,10563,144,102,58, - 116,97,110,0,1,23,2049,10194,10,10554,10578,144,102,58,97,115,105,110,0,1, - 24,2049,10194,10,10568,10593,144,102,58,97,99,111,115,0,1,25,2049,10194,10,10583, - 10608,144,102,58,97,116,97,110,0,1,26,2049,10194,10,10598,10623,144,102,58,112, - 117,115,104,0,1,27,2049,10194,10,10613,10637,144,102,58,112,111,112,0,1,28, - 2049,10194,10,10628,10654,144,102,58,97,100,101,112,116,104,0,1,29,2049,10194,10, - 10642,10671,144,102,58,115,113,117,97,114,101,0,2049,10461,2049,10313,10,10659,10686,144, - 102,58,111,118,101,114,0,2049,10623,2049,10461,2049,10637,2049,10491,10,10676,10705,144,102, - 58,116,117,99,107,0,2049,10461,2049,10623,2049,10491,2049,10637,10,10695,10723,144,102,58, - 110,105,112,0,2049,10491,2049,10476,10,10714,10743,144,102,58,100,114,111,112,45,112, - 97,105,114,0,2049,10476,2049,10476,10,10728,10762,144,102,58,100,117,112,45,112,97, - 105,114,0,2049,10686,2049,10686,10,10748,10776,144,102,58,114,111,116,0,2049,10623,2049, - 10491,2049,10637,2049,10491,10,10767,10800,144,102,58,112,111,115,105,116,105,118,101,63, - 0,1,0,2049,10215,2049,10431,10,10785,10822,144,102,58,110,101,103,97,116,105,118, - 101,63,0,1,0,2049,10215,2049,10417,10,10807,10841,144,102,58,110,101,103,97,116, - 101,0,1,-1,2049,10215,2049,10313,10,10829,10857,144,102,58,97,98,115,0,2049,10461, - 2049,10822,1,10841,9,10,10848,10877,156,112,114,101,102,105,120,58,46,0,2049,1818, - 1,3662,1,3591,2049,64,1,10234,2049,144,10,10865,10899,144,102,58,112,117,116,0, - 2049,10274,2049,9221,10,10890,10912,144,102,58,80,73,0,2049,3636,51,46,49,52,49, - 53,57,50,0,1,10914,2049,10234,10,10904,10935,144,102,58,69,0,2049,3636,50,46, - 55,49,56,50,56,49,0,1,10937,2049,10234,10,10928,10960,144,102,58,78,65,78, - 0,2049,3636,48,0,1,10962,2049,10234,2049,3636,48,0,1,10970,2049,10234,2049,10325,10, - 10951,10988,144,102,58,73,78,70,0,2049,3636,49,46,48,0,1,10990,2049,10234,2049, - 3636,48,0,1,11000,2049,10234,2049,10325,10,10979,11019,144,102,58,45,73,78,70,0, - 2049,3636,45,49,46,48,0,1,11021,2049,10234,2049,3636,48,0,1,11032,2049,10234,2049, - 10325,10,11009,11051,144,102,58,110,97,110,63,0,2049,10461,2049,10403,10,11041,11066,144, - 102,58,105,110,102,63,0,2049,10988,2049,10388,10,11056,11082,144,102,58,45,105,110, - 102,63,0,2049,11019,2049,10388,10,11071,11098,144,102,58,114,111,117,110,100,0,2049, - 10461,2049,10822,1793,11119,2049,3636,48,46,53,0,1,11106,2049,10234,2049,10301,2049,10359,10, - 1,11104,1793,11138,2049,3636,48,46,53,0,1,11125,2049,10234,2049,10289,2049,10341,10,1, - 11123,2049,64,10,11087,11152,144,102,58,109,105,110,0,2049,10762,2049,10417,1,10476,1, - 10723,2049,64,10,11143,11172,144,102,58,109,97,120,0,2049,10762,2049,10431,1,10476,1, - 10723,2049,64,10,11163,11194,144,102,58,108,105,109,105,116,0,2049,10491,2049,10623,2049, - 11152,2049,10637,2049,11172,10,11183,11219,144,102,58,98,101,116,119,101,101,110,63,0, - 2049,10776,2049,10461,2049,10623,2049,10776,2049,10776,2049,11194,2049,10637,2049,10388,10,11205,11245,144, - 102,58,105,110,99,0,2049,3636,49,0,1,11247,2049,10234,2049,10289,10,11236,11265,144, - 102,58,100,101,99,0,2049,3636,49,0,1,11267,2049,10234,2049,10301,10,11256,11286,144, - 102,58,99,97,115,101,0,2049,10686,2049,10388,1793,11298,2049,10476,8,1,-1,10,1, - 11292,1793,11306,3,1,0,10,1,11302,2049,64,25,6,771,10,11276,11324,144,102,58, - 115,105,103,110,0,2049,10461,2049,3636,48,0,1,11328,2049,10234,2049,10388,1793,11343,1, - 0,2049,10476,10,1,11338,2049,2659,2049,3636,48,0,1,11349,2049,10234,2049,10431,1793,11362, - 1,1,10,1,11359,1793,11369,1,-1,10,1,11366,2049,64,10,11314,2147483645,131,101,58, - 77,65,88,0,11374,-2147483645,131,101,58,77,73,78,0,11383,-2147483647,131,101,58,78,65, - 78,0,11392,2147483646,131,101,58,73,78,70,0,11401,-2147483646,131,101,58,45,73,78,70, - 0,11410,11428,144,101,58,110,63,0,1,-2147483645,2049,2880,1,2147483645,2049,2893,2049,2911,10, - 11420,11449,144,101,58,109,97,120,63,0,1,2147483645,11,10,11439,11463,144,101,58,109, - 105,110,63,0,1,-2147483645,11,10,11453,11478,144,101,58,122,101,114,111,63,0,2049, - 2533,10,11467,11491,144,101,58,110,97,110,63,0,1,-2147483647,11,10,11481,11505,144,101, - 58,105,110,102,63,0,1,2147483646,11,10,11495,11520,144,101,58,45,105,110,102,63, - 0,1,-2147483646,11,10,11509,11534,144,101,58,99,108,105,112,0,1,-2147483645,1,2147483645,2049, - 2863,10,11524,11549,144,102,58,69,49,0,1793,11551,2049,3636,49,46,101,53,0,1, - 11553,2049,10234,10,11541,11575,144,102,58,45,115,104,105,102,116,0,2049,11549,2049,10313, - 10,11563,11592,144,102,58,43,115,104,105,102,116,0,2049,11549,2049,10325,10,11580,11614, - 144,102,58,115,105,103,110,101,100,45,115,113,114,116,0,2049,10461,2049,11324,2049, - 10857,2049,10374,2049,10215,2049,10313,10,11597,11640,144,102,58,43,101,110,99,111,100,101, - 0,2049,11614,2049,11575,10,11627,11658,144,102,58,45,101,110,99,111,100,101,0,2049, - 10461,2049,11324,2049,11592,2049,10461,2049,10313,2049,10215,2049,10313,10,11645,11692,144,102,58,115, - 105,103,110,101,100,45,115,113,117,97,114,101,0,2049,10461,2049,11324,2049,10461,2049, - 10313,2049,10215,2049,10313,10,11673,11715,144,102,58,116,111,45,101,0,2049,10461,2049,11051, - 1793,11726,2049,10476,1,-2147483647,10,1,11721,2049,2659,2049,10461,2049,11066,1793,11741,2049,10476,1, - 2147483646,10,1,11736,2049,2659,2049,10461,2049,11082,1793,11756,2049,10476,1,-2147483646,10,1,11751,2049, - 2659,2049,11640,2049,11098,2049,10254,2049,11534,1,-2147483645,1793,11775,2049,10476,10,1,11772,2049,2379, - 1,2147483645,1793,11786,2049,10476,10,1,11783,2049,2379,10,11705,11801,144,101,58,116,111,45, - 102,0,1,-2147483647,1793,11808,2049,10960,10,1,11805,2049,2379,1,2147483646,1793,11819,2049,10988,10, - 1,11816,2049,2379,1,-2147483646,1793,11830,2049,11019,10,1,11827,2049,2379,2049,10215,2049,11658,10, - 11791,11850,144,102,58,115,116,111,114,101,0,1793,11855,2049,11715,10,1,11852,2049,2106, - 16,10,11839,11872,144,102,58,102,101,116,99,104,0,15,2049,11801,10,11861,11892,144, - 102,58,100,117,109,112,45,115,116,97,99,107,0,2049,10447,2,1,10623,2049,2281, - 1793,11910,2049,10637,2049,10461,2049,10899,2049,9195,10,1,11901,2049,2281,10,11876,11932,144,102, - 58,100,117,109,112,45,97,115,116,97,99,107,0,2049,10654,2,1,10637,2049,2281, - 1793,11950,2049,10461,2049,10899,2049,9195,2049,10623,10,1,11941,2049,2281,10,11915,11964,144,101, - 58,112,117,116,0,1,2147483645,1793,11981,2049,3636,101,58,77,65,88,0,1,11970,2049, - 9221,10,1,11968,2049,2379,1,-2147483645,1793,12002,2049,3636,101,58,77,73,78,0,1,11991, - 2049,9221,10,1,11989,2049,2379,1,0,1793,12021,2049,3636,101,58,48,0,1,12012,2049, - 9221,10,1,12010,2049,2379,1,-2147483647,1793,12042,2049,3636,101,58,78,65,78,0,1,12031, - 2049,9221,10,1,12029,2049,2379,1,2147483646,1793,12063,2049,3636,101,58,73,78,70,0,1, - 12052,2049,9221,10,1,12050,2049,2379,1,-2147483646,1793,12085,2049,3636,101,58,45,73,78,70, - 0,1,12073,2049,9221,10,1,12071,2049,2379,2049,11801,2049,10899,10,11955,12102,131,85,110, - 105,120,0,0,12094,12115,144,105,100,101,110,116,105,102,121,0,3841,12102,2049,2533, - 1793,12182,1,8,2049,9128,2,2049,2568,1793,12170,3,2049,3636,73,79,32,68,69,86, - 73,67,69,32,84,89,80,69,32,48,48,48,56,32,78,79,84,32,70,79, - 85,78,68,0,1,12133,2049,9221,2049,9184,10,1,12130,1793,12177,4097,12102,10,1,12174, - 2049,64,10,1,12121,9,10,11955,12205,144,105,111,58,117,110,105,120,45,115,121, - 115,99,97,108,108,0,2049,12115,3841,12102,2049,9102,10,12186,12227,144,117,110,105,120, - 58,115,121,115,116,101,109,0,1,0,2049,12205,10,12212,12245,144,117,110,105,120, - 58,102,111,114,107,0,1,1,2049,12205,10,12232,12264,144,117,110,105,120,58,101, - 120,101,99,48,0,1,2,2049,12205,10,12250,12283,144,117,110,105,120,58,101,120, - 101,99,49,0,1,3,2049,12205,10,12269,12302,144,117,110,105,120,58,101,120,101, - 99,50,0,1,4,2049,12205,10,12288,12321,144,117,110,105,120,58,101,120,101,99, - 51,0,1,5,2049,12205,10,12307,12339,144,117,110,105,120,58,101,120,105,116,0, - 1,6,2049,12205,10,12326,12359,144,117,110,105,120,58,103,101,116,112,105,100,0, - 1,7,2049,12205,10,12344,12377,144,117,110,105,120,58,119,97,105,116,0,1,8, - 2049,12205,10,12364,12395,144,117,110,105,120,58,107,105,108,108,0,1,9,2049,12205, - 10,12382,12414,144,117,110,105,120,58,112,111,112,101,110,0,1,10,2049,12205,10, - 12400,12434,144,117,110,105,120,58,112,99,108,111,115,101,0,1,11,2049,12205,10, - 12419,12453,144,117,110,105,120,58,99,104,100,105,114,0,1,13,2049,12205,10,12439, - 12473,144,117,110,105,120,58,103,101,116,101,110,118,0,1,14,2049,12205,10,12458, - 12493,144,117,110,105,120,58,112,117,116,101,110,118,0,1,15,2049,12205,10,12478, - 12512,144,117,110,105,120,58,115,108,101,101,112,0,1,16,2049,12205,10,12498,12533, - 144,117,110,105,120,58,103,101,116,45,99,119,100,0,2049,3636,112,119,100,0, - 1,12535,1,0,2049,12414,2,2049,9876,2049,5870,4,2049,12434,2049,3636,47,0,1,12555, - 2049,3842,10,12517,12589,144,117,110,105,120,58,99,111,117,110,116,45,102,105,108, - 101,115,45,105,110,45,99,119,100,0,2049,3636,108,115,32,45,49,32,124,32, - 119,99,32,45,108,0,1,12591,1,0,2049,12414,2,2049,9876,2049,5870,2049,218,4, - 2049,12434,10,12562,12644,144,117,110,105,120,58,102,111,114,45,101,97,99,104,45, - 102,105,108,101,0,2049,3636,108,115,32,45,49,32,45,112,0,1,12646,1,0, - 2049,12414,2049,12589,1793,12679,1793,12674,2049,9876,2049,3591,67502597,8,10,1,12667,2049,2116,10, - 1,12665,2049,2281,2049,12434,3,10,12622,12696,144,115,116,97,114,116,0,4,2049,3418, - 1,0,2049,12414,10,12687,12712,144,114,101,97,100,0,2,2049,9514,2,2049,3326,2049, - 2533,10,12704,12731,144,102,105,110,105,115,104,0,2049,12434,2049,3398,10,12622,12755,144, - 117,110,105,120,58,115,108,117,114,112,45,112,105,112,101,0,1793,12771,2049,12696, - 1793,12764,2049,12712,10,1,12761,2049,2256,2049,12731,10,1,12757,2049,3442,10,12736,12782,131, - 105,111,0,0,12776,12795,144,105,100,101,110,116,105,102,121,0,3841,12782,2049,2533, - 1793,12862,1,10,2049,9128,2,2049,2568,1793,12850,3,2049,3636,73,79,32,68,69,86, - 73,67,69,32,84,89,80,69,32,48,48,49,48,32,78,79,84,32,70,79, - 85,78,68,0,1,12813,2049,9221,2049,9184,10,1,12810,1793,12857,4097,12782,10,1,12854, - 2049,64,10,1,12801,9,10,12736,12886,144,105,111,58,114,110,103,45,111,112,101, - 114,97,116,105,111,110,0,2049,12795,3841,12782,2049,9102,10,12866,12905,144,110,58,114, - 97,110,100,111,109,0,2049,12886,10,12893,12919,131,83,111,99,107,101,116,115,0, - 0,12908,12932,144,105,100,101,110,116,105,102,121,0,3841,12919,2049,2533,1793,12999,1, - 7,2049,9128,2,2049,2568,1793,12987,3,2049,3636,73,79,32,68,69,86,73,67,69, - 32,84,89,80,69,32,48,48,48,52,32,78,79,84,32,70,79,85,78,68, - 0,1,12950,2049,9221,2049,9184,10,1,12947,1793,12994,4097,12919,10,1,12991,2049,64,10, - 1,12938,9,10,12893,13026,144,105,111,58,115,111,99,107,101,116,45,111,112,101, - 114,97,116,105,111,110,0,2049,12932,3841,12919,2049,9102,10,13003,13057,144,115,111,99, - 107,101,116,58,103,101,116,104,111,115,116,98,121,110,97,109,101,0,1,0, - 2049,13026,10,13033,13079,144,115,111,99,107,101,116,58,99,114,101,97,116,101,0, - 1,1,2049,13026,10,13062,13099,144,115,111,99,107,101,116,58,98,105,110,100,0, - 1,2,2049,13026,10,13084,13121,144,115,111,99,107,101,116,58,108,105,115,116,101, - 110,0,1,3,2049,13026,10,13104,13143,144,115,111,99,107,101,116,58,97,99,99, - 101,112,116,0,1,4,2049,13026,10,13126,13166,144,115,111,99,107,101,116,58,99, - 111,110,110,101,99,116,0,1,5,2049,13026,10,13148,13186,144,115,111,99,107,101, - 116,58,115,101,110,100,0,1,6,2049,13026,10,13171,13206,144,115,111,99,107,101, - 116,58,114,101,99,118,0,1,8,2049,13026,10,13191,13227,144,115,111,99,107,101, - 116,58,99,108,111,115,101,0,1,10,2049,13026,10,13211,13252,144,115,111,99,107, - 101,116,58,99,111,110,102,105,103,117,114,101,0,1,11,2049,13026,10,13232,1024, - 131,84,73,66,0,13257,13278,144,105,109,97,103,101,58,115,97,118,101,0,1, - 1000,2049,9128,2049,9102,10,13264,13297,131,75,101,121,98,111,97,114,100,0,0,13285, - 13310,144,105,100,101,110,116,105,102,121,0,3841,13297,2049,2533,1793,13377,1,1,2049, - 9128,2,2049,2568,1793,13365,3,2049,3636,73,79,32,68,69,86,73,67,69,32,84, - 89,80,69,32,48,48,48,49,32,78,79,84,32,70,79,85,78,68,0,1, - 13328,2049,9221,2049,9184,10,1,13325,1793,13372,4097,13297,10,1,13369,2049,64,10,1,13316, - 9,10,13264,13390,144,99,58,103,101,116,0,2049,13310,3841,13297,2049,9102,10,13381,13407, - 144,103,97,116,104,101,114,0,2,1793,13414,1,8,11,10,1,13410,1793,13422,1, - 127,11,10,1,13418,2049,2128,22,1,11,1,3326,2049,64,10,13397,13443,144,99,121, - 99,108,101,0,2049,13390,2049,2096,4,8,2049,2465,25,3,2049,13407,1,13443,7,10, - 13381,13474,144,112,97,114,115,101,45,117,110,116,105,108,0,1793,13486,2049,3617,2049, - 3418,2049,13443,771,2049,3292,10,1,13476,2049,3442,10,13459,13500,144,115,58,103,101,116, - 0,1793,13522,1793,13508,1,10,11,10,1,13504,1793,13516,1,13,11,10,1,13512,2049, - 2128,22,10,1,13502,2049,13474,10,13491,13541,144,115,58,103,101,116,45,119,111,114, - 100,0,1,5472,2049,13474,10,13527,13559,131,83,99,114,105,112,116,105,110,103,0, - 7,13546,13572,144,105,100,101,110,116,105,102,121,0,3841,13559,2049,2533,1793,13639,1, - 9,2049,9128,2,2049,2568,1793,13627,3,2049,3636,73,79,32,68,69,86,73,67,69, - 32,84,89,80,69,32,48,48,48,57,32,78,79,84,32,70,79,85,78,68, - 0,1,13590,2049,9221,2049,9184,10,1,13587,1793,13634,4097,13559,10,1,13631,2049,64,10, - 1,13578,9,10,13527,13655,144,115,121,115,58,97,114,103,99,0,2049,13572,1,0, - 3841,13559,2049,9102,10,13643,13676,144,115,121,115,58,97,114,103,118,0,2049,3617,4, - 2049,13572,1,1,3841,13559,2049,9102,10,13664,13699,144,105,110,99,108,117,100,101,0, - 2049,13572,1,2,3841,13559,2049,9102,10,13688,13720,144,115,121,115,58,110,97,109,101, - 0,2049,3617,2049,13572,1,3,3841,13559,2049,9102,10,13708,13740,144,99,108,101,97,114, - 0,1,27,2049,9171,2049,3636,91,50,74,0,1,13746,2049,9221,1,27,2049,9171,2049, - 3636,91,48,59,48,72,0,1,13760,2049,9221,10,13731,13781,131,78,111,69,99,104, - 111,0,0,13771,13789,144,98,121,101,0,1,0,2049,12339,10,13782,13805,144,118,101, - 114,115,105,111,110,0,3841,4,1,100,20,10,13794,13820,144,100,111,110,101,63, - 0,1793,13826,1,13,11,10,1,13822,1793,13834,1,10,11,10,1,13830,1793,13842,1, - 32,11,10,1,13838,2049,2165,22,22,10,13811,13859,144,118,97,108,105,100,63,0, - 2,2049,79,2049,2615,10,13849,13878,144,99,104,101,99,107,45,101,111,102,0,2, - 1793,13885,1,-1,11,10,1,13881,1793,13893,1,4,11,10,1,13889,2049,2128,22,1, - 13789,9,10,13865,13908,144,98,115,0,2049,3350,2049,3350,771,10,13902,13926,144,99,104, - 101,99,107,45,98,115,0,2,1793,13933,1,8,11,10,1,13929,1793,13941,1,127, - 11,10,1,13937,2049,2128,22,1,13908,9,10,13914,13959,144,99,104,101,99,107,0, - 2049,13878,2049,13926,10,13950,13977,144,99,104,97,114,97,99,116,101,114,0,2049,13390, - 2,2049,3326,10,13964,13993,144,98,117,102,102,101,114,0,1793,14003,1,1024,2049,3418, - 8,2049,3292,10,1,13995,2049,3442,10,13983,14022,144,114,101,97,100,45,116,111,107, - 101,110,0,1793,14038,1793,14033,2049,13977,2049,13959,2049,13820,10,1,14026,2049,2256,10,1, - 14024,2049,13993,2049,3714,10,14008,14054,144,105,110,112,117,116,0,2049,14022,2049,13859,10, - 14045,14070,144,112,114,111,99,101,115,115,0,1,365,1,11,2049,64,10,13782,14087, - 144,98,97,110,110,101,114,0,2049,13805,2049,3636,82,69,84,82,79,32,49,50, - 32,40,37,110,46,37,110,41,92,110,0,1,14091,2049,7092,2049,9221,2049,1543,2049, - 1877,18,2049,1877,2049,1543,2049,3636,37,110,32,77,97,120,44,32,37,110,32,85, - 115,101,100,44,32,37,110,32,70,114,101,101,92,110,0,1,14127,2049,7092,2049, - 9221,10,14077,14171,144,108,105,115,116,101,110,0,3841,13781,1793,14178,2049,14087,10,1, - 14175,2049,70,2049,14054,2049,14070,1,14182,7,10,14161,14199,131,67,108,111,99,107,0, - 0,14190,14212,144,105,100,101,110,116,105,102,121,0,3841,14199,2049,2533,1793,14279,1, - 5,2049,9128,2,2049,2568,1793,14267,3,2049,3636,73,79,32,68,69,86,73,67,69, - 32,84,89,80,69,32,48,48,48,53,32,78,79,84,32,70,79,85,78,68, - 0,1,14230,2049,9221,2049,9184,10,1,14227,1793,14274,4097,14199,10,1,14271,2049,64,10, - 1,14218,9,10,14161,14305,144,105,111,58,99,108,111,99,107,45,111,112,101,114, - 97,116,105,111,110,0,2049,14212,3841,14199,2049,9102,10,14283,14331,144,99,108,111,99, - 107,58,116,105,109,101,115,116,97,109,112,0,1,0,2049,14305,10,14312,14349,144, - 99,108,111,99,107,58,100,97,121,0,1,1,2049,14305,10,14336,14369,144,99,108, - 111,99,107,58,109,111,110,116,104,0,1,2,2049,14305,10,14354,14388,144,99,108, - 111,99,107,58,121,101,97,114,0,1,3,2049,14305,10,14374,14407,144,99,108,111, - 99,107,58,104,111,117,114,0,1,4,2049,14305,10,14393,14428,144,99,108,111,99, - 107,58,109,105,110,117,116,101,0,1,5,2049,14305,10,14412,14449,144,99,108,111, - 99,107,58,115,101,99,111,110,100,0,1,6,2049,14305,10,14433,14471,144,99,108, - 111,99,107,58,117,116,99,58,100,97,121,0,1,7,2049,14305,10,14454,14495,144, - 99,108,111,99,107,58,117,116,99,58,109,111,110,116,104,0,1,8,2049,14305, - 10,14476,14518,144,99,108,111,99,107,58,117,116,99,58,121,101,97,114,0,1, - 9,2049,14305,10,14500,14541,144,99,108,111,99,107,58,117,116,99,58,104,111,117, - 114,0,1,10,2049,14305,10,14523,14566,144,99,108,111,99,107,58,117,116,99,58, - 109,105,110,117,116,101,0,1,11,2049,14305,10,14546,14591,144,99,108,111,99,107, - 58,117,116,99,58,115,101,99,111,110,100,0,1,12,2049,14305,10,14571,14607,144, - 100,58,119,111,114,100,115,0,1793,14616,2049,162,2049,9221,2049,9195,10,1,14609,2049, - 7321,10,14596,14637,144,100,58,119,111,114,100,115,45,119,105,116,104,0,2049,1877, - 2049,4528,1793,14668,2049,162,2,2049,1877,2049,4155,1793,14657,2049,9221,2049,9195,10,1,14652, - 1793,14663,3,10,1,14661,2049,64,10,1,14643,2049,7321,10,14621,14692,144,100,105,115, - 112,108,97,121,45,105,102,45,108,101,102,116,0,2,2049,1877,2049,4455,1793,14704, - 2049,9221,2049,9195,10,1,14699,1793,14710,3,10,1,14708,2049,64,10,14621,14741,144,100, - 58,119,111,114,100,115,45,98,101,103,105,110,110,105,110,103,45,119,105,116, - 104,0,2049,1877,2049,4528,1793,14752,2049,162,2049,14692,10,1,14747,2049,7321,10,14715,14767, - 144,102,105,101,108,100,115,0,3841,2,2049,105,2049,105,2049,105,10,14757,14793,144, - 105,110,118,97,108,105,100,45,110,97,109,101,63,0,2,1,32,2049,3986,10, - 14776,14810,144,114,101,119,114,105,116,101,0,1793,14824,1,32,1793,14819,1,95,10, - 1,14816,2049,2379,10,1,14812,2049,4326,10,14799,14838,144,101,110,116,114,121,0,2049, - 1877,1,21,2049,2106,4097,2,10,1793,14866,1793,14861,2049,14767,2049,14793,1,14810,9,2049, - 119,10,1,14851,2049,14838,10,1,14849,0 }; + 7810,2049,7501,772,10,7783,7833,144,97,58,109,97,112,0,1793,7839,8,2049,105,10, + 1,7835,2049,7269,2049,1877,1793,7854,67502597,15,2049,105,2049,7501,10,1,7847,2049,2106,10, + 7824,7872,144,97,58,114,101,118,101,114,115,101,0,2049,1877,1793,7906,2049,56,1793, + 7884,17,2049,2893,10,1,7880,2049,2116,2,2049,105,1793,7900,2,15,2049,105,2049,2893, + 10,1,7893,2049,2281,3,10,1,7876,2049,2106,10,7859,7919,144,97,58,116,104,0, + 17,2049,2880,10,7911,7934,144,97,58,102,101,116,99,104,0,2049,7919,15,10,7923, + 7949,144,97,58,115,116,111,114,101,0,2049,7919,16,10,7938,7965,144,97,58,114, + 101,100,117,99,101,0,1,13,2049,2106,2049,7501,10,7953,7984,144,105,100,101,110, + 116,105,102,121,0,1,-1,4,1,0,1793,8015,2049,2356,11,1793,8009,67502597,1,-1, + 11,1793,8005,772,2,10,1,8002,9,10,1,7996,9,2049,2880,10,1,7991,2049,7965, + 3,10,7953,8035,144,97,58,105,110,100,101,120,45,111,102,0,1,3,1793,8048, + 1,26,2049,7269,2049,7833,2049,7984,10,1,8039,2049,3069,10,8021,8074,144,97,58,105, + 110,100,101,120,45,111,102,45,115,116,114,105,110,103,0,1,3,1793,8087,1, + 93,2049,7269,2049,7833,2049,7984,10,1,8078,2049,3069,10,8053,8102,144,97,58,109,97, + 107,101,0,2049,7433,2049,7872,10,8092,8112,156,123,0,1,285,2049,156,1,1556,2049, + 144,1,285,2049,156,10,8107,8130,156,125,0,1,301,2049,156,1,2106,2049,144,1, + 1556,2049,144,1,13,2049,150,1,40,2049,150,1,2893,2049,144,1,301,2049,156,1, + 8102,2049,144,10,8125,8174,144,98,111,117,110,100,115,63,0,67502597,2049,7410,67502597,13, + 10,8163,8188,144,99,111,112,121,0,2049,56,2049,105,10,8180,8203,144,116,111,45, + 101,110,100,0,2,2049,7410,17,2049,2880,10,8125,8220,144,97,58,108,101,102,116, + 0,2049,8174,1793,8228,771,1,-1,10,1,8224,2049,2659,2049,1877,67502597,2049,105,1793,8249, + 1,2880,2049,2106,1,8188,2049,2281,3,10,1,8239,2049,2106,10,8210,8265,144,97,58, + 114,105,103,104,116,0,2049,8174,1793,8273,771,1,-1,10,1,8269,2049,2659,2049,1877, + 67502597,2049,105,1793,8296,4,2049,8203,67502597,18,4,1,8188,2049,2281,3,10,1,8284,2049, + 2106,10,8254,8313,144,97,58,109,105,100,100,108,101,0,1,2048,2049,2106,4,67502597, + 2049,8174,1793,8328,771,3,1,-1,10,1,8323,2049,2659,771,2049,2096,4,18,2049,2880, + 2049,1877,67502597,2049,105,1793,8363,772,1793,8353,17,2049,2880,10,1,8349,2049,2106,1,8188, + 2049,2281,3,10,1,8346,2049,2106,10,8301,8376,131,70,108,97,103,0,0,8368,8388, + 144,99,111,109,112,97,114,101,0,67440386,184946434,10,8377,8401,144,108,101,110,103,116, + 104,0,659202,10,8391,8411,144,110,101,120,116,0,17043713,1,1,2577,10,8403,8429,144, + 110,111,116,45,101,113,117,97,108,0,50529030,2561,0,10,8416,8441,144,108,111,111, + 112,0,524549,8411,2049,8388,18157313,8376,8376,16,420610310,1,1,8441,7,10,8301,8464,144,97, + 58,101,113,63,0,1048833,-1,8376,2049,8388,151066369,-1,8429,2049,8401,2049,8441,251724547,8376,10, + 8455,8489,144,97,58,45,101,113,63,0,2049,8464,2049,2465,10,8479,8512,144,97,58, + 98,101,103,105,110,115,45,119,105,116,104,63,0,1,3,1793,8528,2,2049,7410, + 1,13,2049,2106,2049,8220,2049,8464,10,1,8516,2049,3069,10,8494,8549,144,97,58,101, + 110,100,115,45,119,105,116,104,63,0,1,3,1793,8565,2,2049,7410,1,13,2049, + 2106,2049,8265,2049,8464,10,1,8553,2049,3069,10,8533,8586,144,99,117,114,114,101,110, + 116,45,108,105,110,101,0,2049,3507,1,1025,18,10,8570,8608,144,99,111,117,110, + 116,45,116,111,107,101,110,115,0,1793,8614,1,32,11,10,1,8610,2049,4284,2049, + 79,10,8592,8639,144,112,114,111,99,101,115,115,45,116,111,107,101,110,115,0, + 1793,8667,1,32,2049,6081,4,1793,8660,2,2049,79,2049,2549,1,365,1,11,2049,64, + 10,1,8648,2049,2106,2049,2880,10,1,8641,2049,2281,2049,365,10,8533,8688,144,115,58, + 101,118,97,108,117,97,116,101,0,2049,8586,2049,4528,2049,8586,2,2049,8608,2049,8639, + 10,8674,8706,131,76,80,0,0,8700,8716,131,73,110,100,101,120,0,0,10,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,8707,8756,144,110,101,120,116,0,3841,8706,1, + 8716,17,2049,2978,10,8748,8772,144,112,114,101,112,0,1,8706,2049,2978,1,0,3841, + 8706,1,8716,17,16,10,8764,8793,144,100,111,110,101,0,1,8706,2049,2993,10,8674, + 8803,144,73,0,3841,8706,1,8716,17,15,10,8798,8815,144,74,0,3841,8706,1,8716, + 17,2049,2893,15,10,8810,8829,144,75,0,3841,8706,1,8716,17,1,2,18,15,10, + 8824,8860,144,116,105,109,101,115,60,119,105,116,104,45,105,110,100,101,120,62, + 0,2049,8772,4,1793,8876,25,33886721,1,2053,1542,2049,8756,1,8865,7,10,1,8865,8, + 3,2049,8793,10,8839,8891,156,104,111,111,107,0,2049,3636,108,105,106,117,46,46, + 46,46,0,1,8893,2049,412,2049,1877,2049,2880,2049,105,10,8883,8925,144,115,101,116, + 45,104,111,111,107,0,2049,2880,16,10,8913,8939,144,117,110,104,111,111,107,0, + 2049,2880,2,2049,2880,4,16,10,8929,8963,144,105,111,58,101,110,117,109,101,114, + 97,116,101,0,27,10,8947,8977,144,105,111,58,113,117,101,114,121,0,28,10, + 8965,8992,144,105,111,58,105,110,118,111,107,101,0,29,10,8979,9002,131,83,108, + 111,116,0,9,8979,9018,144,105,111,58,115,99,97,110,45,102,111,114,0,1, + -1,4097,9002,2049,8963,1793,9044,2049,8803,2049,8977,772,67502597,11,1793,9040,2049,8803,4097,9002, + 10,1,9035,9,10,1,9026,2049,8860,3,3841,9002,10,9003,9061,144,99,58,112,117, + 116,0,1793,9063,1,0,2049,8992,10,9052,9074,144,110,108,0,1,10,2049,9061,10, + 9068,9085,144,115,112,0,1,32,2049,9061,10,9079,9097,144,116,97,98,0,1,9, + 2049,9061,10,9090,9111,144,115,58,112,117,116,0,1,9061,2049,3860,10,9102,9125,144, + 110,58,112,117,116,0,2049,5920,2049,9111,10,9116,9139,144,114,101,115,101,116,0, + 2049,1556,25,771,1,9139,7,10,9130,9161,144,100,117,109,112,45,115,116,97,99, + 107,0,2049,1556,25,3,5,2049,9161,6,2,2049,9125,2049,9085,10,9147,9183,144,70, + 82,69,69,0,2049,3507,1,1025,18,2049,1877,18,10,9175,9201,131,70,105,108,101, + 115,0,0,9192,9214,144,105,100,101,110,116,105,102,121,0,3841,9201,2049,2533,1793, + 9281,1,4,2049,9018,2,2049,2568,1793,9269,3,2049,3636,73,79,32,68,69,86,73, + 67,69,32,84,89,80,69,32,48,48,48,52,32,78,79,84,32,70,79,85, + 78,68,0,1,9232,2049,9111,2049,9074,10,1,9229,1793,9276,4097,9201,10,1,9273,2049, + 64,10,1,9220,9,10,9175,9306,144,105,111,58,102,105,108,101,45,111,112,101, + 114,97,116,105,111,110,0,2049,9214,3841,9201,2049,8992,10,9285,0,131,102,105,108, + 101,58,82,0,9313,1,131,102,105,108,101,58,87,0,9323,2,131,102,105,108, + 101,58,65,0,9333,3,131,102,105,108,101,58,82,43,0,9343,9367,144,102,105, + 108,101,58,111,112,101,110,0,1,0,2049,9306,10,9354,9386,144,102,105,108,101, + 58,99,108,111,115,101,0,1,1,2049,9306,10,9372,9404,144,102,105,108,101,58, + 114,101,97,100,0,1,2,2049,9306,10,9391,9423,144,102,105,108,101,58,119,114, + 105,116,101,0,1,3,2049,9306,10,9409,9441,144,102,105,108,101,58,116,101,108, + 108,0,1,4,2049,9306,10,9428,9459,144,102,105,108,101,58,115,101,101,107,0, + 1,5,2049,9306,10,9446,9477,144,102,105,108,101,58,115,105,122,101,0,1,6, + 2049,9306,10,9464,9497,144,102,105,108,101,58,100,101,108,101,116,101,0,1,7, + 2049,9306,10,9482,9516,144,102,105,108,101,58,102,108,117,115,104,0,1,8,2049, + 9306,10,9502,9537,144,102,105,108,101,58,101,120,105,115,116,115,63,0,1,0, + 2049,9367,2,2049,2549,1793,9551,2049,9386,2049,2356,10,1,9546,1793,9559,3,2049,2368,10, + 1,9555,2049,64,10,9521,9590,144,102,105,108,101,58,111,112,101,110,60,102,111, + 114,45,114,101,97,100,105,110,103,62,0,1,0,2049,9367,2,2049,9477,4,10, + 9564,9624,144,102,105,108,101,58,111,112,101,110,60,102,111,114,45,97,112,112, + 101,110,100,62,0,1,2,2049,9367,2,2049,9477,4,10,9599,9659,144,102,105,108, + 101,58,111,112,101,110,60,102,111,114,45,119,114,105,116,105,110,103,62,0, + 1,1,2049,9367,10,9633,9671,131,70,73,68,0,0,9664,9680,131,83,105,122,101, + 0,0,9672,9691,131,65,99,116,105,111,110,0,0,9681,9702,131,66,117,102,102, + 101,114,0,0,9692,9712,144,45,101,111,102,63,0,3841,9671,2049,9441,3841,9680,13, + 10,9703,9732,144,112,114,101,115,101,114,118,101,0,1,9671,1793,9743,1,9680,1, + 21,2049,3069,10,1,9736,2049,3069,10,9633,9766,144,102,105,108,101,58,114,101,97, + 100,45,108,105,110,101,0,4097,9671,1793,9823,2049,1877,2,4097,9702,2049,3418,1793,9815, + 3841,9671,2049,9404,2,2049,3326,1793,9792,1,13,11,10,1,9788,1793,9800,1,10,11, + 10,1,9796,1793,9808,1,0,11,10,1,9804,2049,2165,22,22,10,1,9779,2049,2256, + 2049,3350,3,10,1,9770,2049,3442,3841,9702,10,9748,9852,144,102,105,108,101,58,102, + 111,114,45,101,97,99,104,45,108,105,110,101,0,1793,9883,4097,9691,2049,9590,4097, + 9671,4097,9680,1793,9874,3841,9671,2049,9766,3841,9691,8,2049,9712,10,1,9864,2049,2233,3841, + 9671,2049,9386,10,1,9854,2049,9732,10,9830,9895,131,70,73,68,0,0,9830,9910,144, + 102,105,108,101,58,115,108,117,114,112,0,1793,9937,4,2049,3418,2049,9590,4097,9895, + 1793,9928,3841,9895,2049,9404,2049,3326,10,1,9921,2049,2281,3841,9895,2049,9386,10,1,9912, + 2049,3442,10,9896,9955,144,102,105,108,101,58,115,112,101,119,0,2049,9659,4,1793, + 9964,67502597,2049,9423,10,1,9960,2049,3860,2049,9386,10,9942,9978,131,70,80,85,0,0, + 9971,9991,144,105,100,101,110,116,105,102,121,0,3841,9978,2049,2533,1793,10058,1,2, + 2049,9018,2,2049,2568,1793,10046,3,2049,3636,73,79,32,68,69,86,73,67,69,32, + 84,89,80,69,32,48,48,48,50,32,78,79,84,32,70,79,85,78,68,0, + 1,10009,2049,9111,2049,9074,10,1,10006,1793,10053,4097,9978,10,1,10050,2049,64,10,1, + 9997,9,10,9942,10084,144,105,111,58,102,108,111,97,116,45,111,112,101,114,97, + 116,105,111,110,0,2049,9991,3841,9978,2049,8992,10,10062,10105,144,110,58,116,111,45, + 102,108,111,97,116,0,1,0,2049,10084,10,10091,10124,144,115,58,116,111,45,102, + 108,111,97,116,0,1,1,2049,10084,10,10110,10144,144,102,58,116,111,45,110,117, + 109,98,101,114,0,1,2,2049,10084,10,10129,10164,144,102,58,116,111,45,115,116, + 114,105,110,103,0,2049,3617,2,1,3,2049,10084,10,10149,10179,144,102,58,43,0, + 1,4,2049,10084,10,10172,10191,144,102,58,45,0,1,5,2049,10084,10,10184,10203,144, + 102,58,42,0,1,6,2049,10084,10,10196,10215,144,102,58,47,0,1,7,2049,10084, + 10,10208,10231,144,102,58,102,108,111,111,114,0,1,8,2049,10084,10,10220,10249,144, + 102,58,99,101,105,108,105,110,103,0,1,9,2049,10084,10,10236,10264,144,102,58, + 115,113,114,116,0,1,10,2049,10084,10,10254,10278,144,102,58,101,113,63,0,1, + 11,2049,10084,10,10269,10293,144,102,58,45,101,113,63,0,1,12,2049,10084,10,10283, + 10307,144,102,58,108,116,63,0,1,13,2049,10084,10,10298,10321,144,102,58,103,116, + 63,0,1,14,2049,10084,10,10312,10337,144,102,58,100,101,112,116,104,0,1,15, + 2049,10084,10,10326,10351,144,102,58,100,117,112,0,1,16,2049,10084,10,10342,10366,144, + 102,58,100,114,111,112,0,1,17,2049,10084,10,10356,10381,144,102,58,115,119,97, + 112,0,1,18,2049,10084,10,10371,10395,144,102,58,108,111,103,0,1,19,2049,10084, + 10,10386,10411,144,102,58,112,111,119,101,114,0,1,20,2049,10084,10,10400,10425,144, + 102,58,115,105,110,0,1,21,2049,10084,10,10416,10439,144,102,58,99,111,115,0, + 1,22,2049,10084,10,10430,10453,144,102,58,116,97,110,0,1,23,2049,10084,10,10444, + 10468,144,102,58,97,115,105,110,0,1,24,2049,10084,10,10458,10483,144,102,58,97, + 99,111,115,0,1,25,2049,10084,10,10473,10498,144,102,58,97,116,97,110,0,1, + 26,2049,10084,10,10488,10513,144,102,58,112,117,115,104,0,1,27,2049,10084,10,10503, + 10527,144,102,58,112,111,112,0,1,28,2049,10084,10,10518,10544,144,102,58,97,100, + 101,112,116,104,0,1,29,2049,10084,10,10532,10561,144,102,58,115,113,117,97,114, + 101,0,2049,10351,2049,10203,10,10549,10576,144,102,58,111,118,101,114,0,2049,10513,2049, + 10351,2049,10527,2049,10381,10,10566,10595,144,102,58,116,117,99,107,0,2049,10351,2049,10513, + 2049,10381,2049,10527,10,10585,10613,144,102,58,110,105,112,0,2049,10381,2049,10366,10,10604, + 10633,144,102,58,100,114,111,112,45,112,97,105,114,0,2049,10366,2049,10366,10,10618, + 10652,144,102,58,100,117,112,45,112,97,105,114,0,2049,10576,2049,10576,10,10638,10666, + 144,102,58,114,111,116,0,2049,10513,2049,10381,2049,10527,2049,10381,10,10657,10690,144,102, + 58,112,111,115,105,116,105,118,101,63,0,1,0,2049,10105,2049,10321,10,10675,10712, + 144,102,58,110,101,103,97,116,105,118,101,63,0,1,0,2049,10105,2049,10307,10, + 10697,10731,144,102,58,110,101,103,97,116,101,0,1,-1,2049,10105,2049,10203,10,10719, + 10747,144,102,58,97,98,115,0,2049,10351,2049,10712,1,10731,9,10,10738,10767,156,112, + 114,101,102,105,120,58,46,0,2049,1818,1,3662,1,3591,2049,64,1,10124,2049,144, + 10,10755,10789,144,102,58,112,117,116,0,2049,10164,2049,9111,10,10780,10802,144,102,58, + 80,73,0,2049,3636,51,46,49,52,49,53,57,50,0,1,10804,2049,10124,10,10794, + 10825,144,102,58,69,0,2049,3636,50,46,55,49,56,50,56,49,0,1,10827,2049, + 10124,10,10818,10850,144,102,58,78,65,78,0,2049,3636,48,0,1,10852,2049,10124,2049, + 3636,48,0,1,10860,2049,10124,2049,10215,10,10841,10878,144,102,58,73,78,70,0,2049, + 3636,49,46,48,0,1,10880,2049,10124,2049,3636,48,0,1,10890,2049,10124,2049,10215,10, + 10869,10909,144,102,58,45,73,78,70,0,2049,3636,45,49,46,48,0,1,10911,2049, + 10124,2049,3636,48,0,1,10922,2049,10124,2049,10215,10,10899,10941,144,102,58,110,97,110, + 63,0,2049,10351,2049,10293,10,10931,10956,144,102,58,105,110,102,63,0,2049,10878,2049, + 10278,10,10946,10972,144,102,58,45,105,110,102,63,0,2049,10909,2049,10278,10,10961,10988, + 144,102,58,114,111,117,110,100,0,2049,10351,2049,10712,1793,11009,2049,3636,48,46,53, + 0,1,10996,2049,10124,2049,10191,2049,10249,10,1,10994,1793,11028,2049,3636,48,46,53,0, + 1,11015,2049,10124,2049,10179,2049,10231,10,1,11013,2049,64,10,10977,11042,144,102,58,109, + 105,110,0,2049,10652,2049,10307,1,10366,1,10613,2049,64,10,11033,11062,144,102,58,109, + 97,120,0,2049,10652,2049,10321,1,10366,1,10613,2049,64,10,11053,11084,144,102,58,108, + 105,109,105,116,0,2049,10381,2049,10513,2049,11042,2049,10527,2049,11062,10,11073,11109,144,102, + 58,98,101,116,119,101,101,110,63,0,2049,10666,2049,10351,2049,10513,2049,10666,2049,10666, + 2049,11084,2049,10527,2049,10278,10,11095,11135,144,102,58,105,110,99,0,2049,3636,49,0, + 1,11137,2049,10124,2049,10179,10,11126,11155,144,102,58,100,101,99,0,2049,3636,49,0, + 1,11157,2049,10124,2049,10191,10,11146,11176,144,102,58,99,97,115,101,0,2049,10576,2049, + 10278,1793,11188,2049,10366,8,1,-1,10,1,11182,1793,11196,3,1,0,10,1,11192,2049, + 64,25,6,771,10,11166,11214,144,102,58,115,105,103,110,0,2049,10351,2049,3636,48, + 0,1,11218,2049,10124,2049,10278,1793,11233,1,0,2049,10366,10,1,11228,2049,2659,2049,3636, + 48,0,1,11239,2049,10124,2049,10321,1793,11252,1,1,10,1,11249,1793,11259,1,-1,10, + 1,11256,2049,64,10,11204,2147483645,131,101,58,77,65,88,0,11264,-2147483645,131,101,58,77, + 73,78,0,11273,-2147483647,131,101,58,78,65,78,0,11282,2147483646,131,101,58,73,78,70, + 0,11291,-2147483646,131,101,58,45,73,78,70,0,11300,11318,144,101,58,110,63,0,1, + -2147483645,2049,2880,1,2147483645,2049,2893,2049,2911,10,11310,11339,144,101,58,109,97,120,63,0, + 1,2147483645,11,10,11329,11353,144,101,58,109,105,110,63,0,1,-2147483645,11,10,11343,11368, + 144,101,58,122,101,114,111,63,0,2049,2533,10,11357,11381,144,101,58,110,97,110, + 63,0,1,-2147483647,11,10,11371,11395,144,101,58,105,110,102,63,0,1,2147483646,11,10, + 11385,11410,144,101,58,45,105,110,102,63,0,1,-2147483646,11,10,11399,11424,144,101,58, + 99,108,105,112,0,1,-2147483645,1,2147483645,2049,2863,10,11414,11439,144,102,58,69,49,0, + 1793,11441,2049,3636,49,46,101,53,0,1,11443,2049,10124,10,11431,11465,144,102,58,45, + 115,104,105,102,116,0,2049,11439,2049,10203,10,11453,11482,144,102,58,43,115,104,105, + 102,116,0,2049,11439,2049,10215,10,11470,11504,144,102,58,115,105,103,110,101,100,45, + 115,113,114,116,0,2049,10351,2049,11214,2049,10747,2049,10264,2049,10105,2049,10203,10,11487,11530, + 144,102,58,43,101,110,99,111,100,101,0,2049,11504,2049,11465,10,11517,11548,144,102, + 58,45,101,110,99,111,100,101,0,2049,10351,2049,11214,2049,11482,2049,10351,2049,10203,2049, + 10105,2049,10203,10,11535,11582,144,102,58,115,105,103,110,101,100,45,115,113,117,97, + 114,101,0,2049,10351,2049,11214,2049,10351,2049,10203,2049,10105,2049,10203,10,11563,11605,144,102, + 58,116,111,45,101,0,2049,10351,2049,10941,1793,11616,2049,10366,1,-2147483647,10,1,11611,2049, + 2659,2049,10351,2049,10956,1793,11631,2049,10366,1,2147483646,10,1,11626,2049,2659,2049,10351,2049,10972, + 1793,11646,2049,10366,1,-2147483646,10,1,11641,2049,2659,2049,11530,2049,10988,2049,10144,2049,11424,1, + -2147483645,1793,11665,2049,10366,10,1,11662,2049,2379,1,2147483645,1793,11676,2049,10366,10,1,11673,2049, + 2379,10,11595,11691,144,101,58,116,111,45,102,0,1,-2147483647,1793,11698,2049,10850,10,1, + 11695,2049,2379,1,2147483646,1793,11709,2049,10878,10,1,11706,2049,2379,1,-2147483646,1793,11720,2049,10909, + 10,1,11717,2049,2379,2049,10105,2049,11548,10,11681,11740,144,102,58,115,116,111,114,101, + 0,1793,11745,2049,11605,10,1,11742,2049,2106,16,10,11729,11762,144,102,58,102,101,116, + 99,104,0,15,2049,11691,10,11751,11782,144,102,58,100,117,109,112,45,115,116,97, + 99,107,0,2049,10337,2,1,10513,2049,2281,1793,11800,2049,10527,2049,10351,2049,10789,2049,9085, + 10,1,11791,2049,2281,10,11766,11822,144,102,58,100,117,109,112,45,97,115,116,97, + 99,107,0,2049,10544,2,1,10527,2049,2281,1793,11840,2049,10351,2049,10789,2049,9085,2049,10513, + 10,1,11831,2049,2281,10,11805,11854,144,101,58,112,117,116,0,1,2147483645,1793,11871,2049, + 3636,101,58,77,65,88,0,1,11860,2049,9111,10,1,11858,2049,2379,1,-2147483645,1793,11892, + 2049,3636,101,58,77,73,78,0,1,11881,2049,9111,10,1,11879,2049,2379,1,0,1793, + 11911,2049,3636,101,58,48,0,1,11902,2049,9111,10,1,11900,2049,2379,1,-2147483647,1793,11932, + 2049,3636,101,58,78,65,78,0,1,11921,2049,9111,10,1,11919,2049,2379,1,2147483646,1793, + 11953,2049,3636,101,58,73,78,70,0,1,11942,2049,9111,10,1,11940,2049,2379,1,-2147483646, + 1793,11975,2049,3636,101,58,45,73,78,70,0,1,11963,2049,9111,10,1,11961,2049,2379, + 2049,11691,2049,10789,10,11845,11992,131,85,110,105,120,0,0,11984,12005,144,105,100,101, + 110,116,105,102,121,0,3841,11992,2049,2533,1793,12072,1,8,2049,9018,2,2049,2568,1793, + 12060,3,2049,3636,73,79,32,68,69,86,73,67,69,32,84,89,80,69,32,48, + 48,48,56,32,78,79,84,32,70,79,85,78,68,0,1,12023,2049,9111,2049,9074, + 10,1,12020,1793,12067,4097,11992,10,1,12064,2049,64,10,1,12011,9,10,11845,12095,144, + 105,111,58,117,110,105,120,45,115,121,115,99,97,108,108,0,2049,12005,3841,11992, + 2049,8992,10,12076,12117,144,117,110,105,120,58,115,121,115,116,101,109,0,1,0, + 2049,12095,10,12102,12135,144,117,110,105,120,58,102,111,114,107,0,1,1,2049,12095, + 10,12122,12154,144,117,110,105,120,58,101,120,101,99,48,0,1,2,2049,12095,10, + 12140,12173,144,117,110,105,120,58,101,120,101,99,49,0,1,3,2049,12095,10,12159, + 12192,144,117,110,105,120,58,101,120,101,99,50,0,1,4,2049,12095,10,12178,12211, + 144,117,110,105,120,58,101,120,101,99,51,0,1,5,2049,12095,10,12197,12229,144, + 117,110,105,120,58,101,120,105,116,0,1,6,2049,12095,10,12216,12249,144,117,110, + 105,120,58,103,101,116,112,105,100,0,1,7,2049,12095,10,12234,12267,144,117,110, + 105,120,58,119,97,105,116,0,1,8,2049,12095,10,12254,12285,144,117,110,105,120, + 58,107,105,108,108,0,1,9,2049,12095,10,12272,12304,144,117,110,105,120,58,112, + 111,112,101,110,0,1,10,2049,12095,10,12290,12324,144,117,110,105,120,58,112,99, + 108,111,115,101,0,1,11,2049,12095,10,12309,12343,144,117,110,105,120,58,99,104, + 100,105,114,0,1,13,2049,12095,10,12329,12363,144,117,110,105,120,58,103,101,116, + 101,110,118,0,1,14,2049,12095,10,12348,12383,144,117,110,105,120,58,112,117,116, + 101,110,118,0,1,15,2049,12095,10,12368,12402,144,117,110,105,120,58,115,108,101, + 101,112,0,1,16,2049,12095,10,12388,12423,144,117,110,105,120,58,103,101,116,45, + 99,119,100,0,2049,3636,112,119,100,0,1,12425,1,0,2049,12304,2,2049,9766,2049, + 5870,4,2049,12324,2049,3636,47,0,1,12445,2049,3842,10,12407,12479,144,117,110,105,120, + 58,99,111,117,110,116,45,102,105,108,101,115,45,105,110,45,99,119,100,0, + 2049,3636,108,115,32,45,49,32,124,32,119,99,32,45,108,0,1,12481,1,0, + 2049,12304,2,2049,9766,2049,5870,2049,218,4,2049,12324,10,12452,12534,144,117,110,105,120, + 58,102,111,114,45,101,97,99,104,45,102,105,108,101,0,2049,3636,108,115,32, + 45,49,32,45,112,0,1,12536,1,0,2049,12304,2049,12479,1793,12569,1793,12564,2049,9766, + 2049,3591,67502597,8,10,1,12557,2049,2116,10,1,12555,2049,2281,2049,12324,3,10,12512,12586, + 144,115,116,97,114,116,0,4,2049,3418,1,0,2049,12304,10,12577,12602,144,114,101, + 97,100,0,2,2049,9404,2,2049,3326,2049,2533,10,12594,12621,144,102,105,110,105,115, + 104,0,2049,12324,2049,3398,10,12512,12645,144,117,110,105,120,58,115,108,117,114,112, + 45,112,105,112,101,0,1793,12661,2049,12586,1793,12654,2049,12602,10,1,12651,2049,2256,2049, + 12621,10,1,12647,2049,3442,10,12626,12672,131,105,111,0,0,12666,12685,144,105,100,101, + 110,116,105,102,121,0,3841,12672,2049,2533,1793,12752,1,10,2049,9018,2,2049,2568,1793, + 12740,3,2049,3636,73,79,32,68,69,86,73,67,69,32,84,89,80,69,32,48, + 48,49,48,32,78,79,84,32,70,79,85,78,68,0,1,12703,2049,9111,2049,9074, + 10,1,12700,1793,12747,4097,12672,10,1,12744,2049,64,10,1,12691,9,10,12626,12776,144, + 105,111,58,114,110,103,45,111,112,101,114,97,116,105,111,110,0,2049,12685,3841, + 12672,2049,8992,10,12756,12795,144,110,58,114,97,110,100,111,109,0,2049,12776,10,12783, + 12809,131,83,111,99,107,101,116,115,0,0,12798,12822,144,105,100,101,110,116,105, + 102,121,0,3841,12809,2049,2533,1793,12889,1,7,2049,9018,2,2049,2568,1793,12877,3,2049, + 3636,73,79,32,68,69,86,73,67,69,32,84,89,80,69,32,48,48,48,52, + 32,78,79,84,32,70,79,85,78,68,0,1,12840,2049,9111,2049,9074,10,1,12837, + 1793,12884,4097,12809,10,1,12881,2049,64,10,1,12828,9,10,12783,12916,144,105,111,58, + 115,111,99,107,101,116,45,111,112,101,114,97,116,105,111,110,0,2049,12822,3841, + 12809,2049,8992,10,12893,12947,144,115,111,99,107,101,116,58,103,101,116,104,111,115, + 116,98,121,110,97,109,101,0,1,0,2049,12916,10,12923,12969,144,115,111,99,107, + 101,116,58,99,114,101,97,116,101,0,1,1,2049,12916,10,12952,12989,144,115,111, + 99,107,101,116,58,98,105,110,100,0,1,2,2049,12916,10,12974,13011,144,115,111, + 99,107,101,116,58,108,105,115,116,101,110,0,1,3,2049,12916,10,12994,13033,144, + 115,111,99,107,101,116,58,97,99,99,101,112,116,0,1,4,2049,12916,10,13016, + 13056,144,115,111,99,107,101,116,58,99,111,110,110,101,99,116,0,1,5,2049, + 12916,10,13038,13076,144,115,111,99,107,101,116,58,115,101,110,100,0,1,6,2049, + 12916,10,13061,13096,144,115,111,99,107,101,116,58,114,101,99,118,0,1,8,2049, + 12916,10,13081,13117,144,115,111,99,107,101,116,58,99,108,111,115,101,0,1,10, + 2049,12916,10,13101,13142,144,115,111,99,107,101,116,58,99,111,110,102,105,103,117, + 114,101,0,1,11,2049,12916,10,13122,1024,131,84,73,66,0,13147,13168,144,105,109, + 97,103,101,58,115,97,118,101,0,1,1000,2049,9018,2049,8992,10,13154,13187,131,75, + 101,121,98,111,97,114,100,0,0,13175,13200,144,105,100,101,110,116,105,102,121, + 0,3841,13187,2049,2533,1793,13267,1,1,2049,9018,2,2049,2568,1793,13255,3,2049,3636,73, + 79,32,68,69,86,73,67,69,32,84,89,80,69,32,48,48,48,49,32,78, + 79,84,32,70,79,85,78,68,0,1,13218,2049,9111,2049,9074,10,1,13215,1793,13262, + 4097,13187,10,1,13259,2049,64,10,1,13206,9,10,13154,13280,144,99,58,103,101,116, + 0,2049,13200,3841,13187,2049,8992,10,13271,13297,144,103,97,116,104,101,114,0,2,1793, + 13304,1,8,11,10,1,13300,1793,13312,1,127,11,10,1,13308,2049,2128,22,1,11, + 1,3326,2049,64,10,13287,13333,144,99,121,99,108,101,0,2049,13280,2049,2096,4,8, + 2049,2465,25,3,2049,13297,1,13333,7,10,13271,13364,144,112,97,114,115,101,45,117, + 110,116,105,108,0,1793,13376,2049,3617,2049,3418,2049,13333,771,2049,3292,10,1,13366,2049, + 3442,10,13349,13390,144,115,58,103,101,116,0,1793,13412,1793,13398,1,10,11,10,1, + 13394,1793,13406,1,13,11,10,1,13402,2049,2128,22,10,1,13392,2049,13364,10,13381,13431, + 144,115,58,103,101,116,45,119,111,114,100,0,1,5472,2049,13364,10,13417,13449,131, + 83,99,114,105,112,116,105,110,103,0,7,13436,13462,144,105,100,101,110,116,105, + 102,121,0,3841,13449,2049,2533,1793,13529,1,9,2049,9018,2,2049,2568,1793,13517,3,2049, + 3636,73,79,32,68,69,86,73,67,69,32,84,89,80,69,32,48,48,48,57, + 32,78,79,84,32,70,79,85,78,68,0,1,13480,2049,9111,2049,9074,10,1,13477, + 1793,13524,4097,13449,10,1,13521,2049,64,10,1,13468,9,10,13417,13545,144,115,121,115, + 58,97,114,103,99,0,2049,13462,1,0,3841,13449,2049,8992,10,13533,13566,144,115,121, + 115,58,97,114,103,118,0,2049,3617,4,2049,13462,1,1,3841,13449,2049,8992,10,13554, + 13589,144,105,110,99,108,117,100,101,0,2049,13462,1,2,3841,13449,2049,8992,10,13578, + 13610,144,115,121,115,58,110,97,109,101,0,2049,3617,2049,13462,1,3,3841,13449,2049, + 8992,10,13598,13630,144,99,108,101,97,114,0,1,27,2049,9061,2049,3636,91,50,74, + 0,1,13636,2049,9111,1,27,2049,9061,2049,3636,91,48,59,48,72,0,1,13650,2049, + 9111,10,13621,13671,131,78,111,69,99,104,111,0,0,13661,13679,144,98,121,101,0, + 1,0,2049,12229,10,13672,13695,144,118,101,114,115,105,111,110,0,3841,4,1,100, + 20,10,13684,13710,144,100,111,110,101,63,0,1793,13716,1,13,11,10,1,13712,1793, + 13724,1,10,11,10,1,13720,1793,13732,1,32,11,10,1,13728,2049,2165,22,22,10, + 13701,13749,144,118,97,108,105,100,63,0,2,2049,79,2049,2615,10,13739,13768,144,99, + 104,101,99,107,45,101,111,102,0,2,1793,13775,1,-1,11,10,1,13771,1793,13783, + 1,4,11,10,1,13779,2049,2128,22,1,13679,9,10,13755,13798,144,98,115,0,2049, + 3350,2049,3350,771,10,13792,13816,144,99,104,101,99,107,45,98,115,0,2,1793,13823, + 1,8,11,10,1,13819,1793,13831,1,127,11,10,1,13827,2049,2128,22,1,13798,9, + 10,13804,13849,144,99,104,101,99,107,0,2049,13768,2049,13816,10,13840,13867,144,99,104, + 97,114,97,99,116,101,114,0,2049,13280,2,2049,3326,10,13854,13883,144,98,117,102, + 102,101,114,0,1793,13893,1,1024,2049,3418,8,2049,3292,10,1,13885,2049,3442,10,13873, + 13912,144,114,101,97,100,45,116,111,107,101,110,0,1793,13928,1793,13923,2049,13867,2049, + 13849,2049,13710,10,1,13916,2049,2256,10,1,13914,2049,13883,2049,3714,10,13898,13944,144,105, + 110,112,117,116,0,2049,13912,2049,13749,10,13935,13960,144,112,114,111,99,101,115,115, + 0,1,365,1,11,2049,64,10,13672,13977,144,98,97,110,110,101,114,0,2049,13695, + 2049,3636,82,69,84,82,79,32,49,50,32,40,37,110,46,37,110,41,92,110, + 0,1,13981,2049,7092,2049,9111,2049,1543,2049,1877,18,2049,1877,2049,1543,2049,3636,37,110, + 32,77,97,120,44,32,37,110,32,85,115,101,100,44,32,37,110,32,70,114, + 101,101,92,110,0,1,14017,2049,7092,2049,9111,10,13967,14061,144,108,105,115,116,101, + 110,0,3841,13671,1793,14068,2049,13977,10,1,14065,2049,70,2049,13944,2049,13960,1,14072,7, + 10,14051,14089,131,67,108,111,99,107,0,0,14080,14102,144,105,100,101,110,116,105, + 102,121,0,3841,14089,2049,2533,1793,14169,1,5,2049,9018,2,2049,2568,1793,14157,3,2049, + 3636,73,79,32,68,69,86,73,67,69,32,84,89,80,69,32,48,48,48,53, + 32,78,79,84,32,70,79,85,78,68,0,1,14120,2049,9111,2049,9074,10,1,14117, + 1793,14164,4097,14089,10,1,14161,2049,64,10,1,14108,9,10,14051,14195,144,105,111,58, + 99,108,111,99,107,45,111,112,101,114,97,116,105,111,110,0,2049,14102,3841,14089, + 2049,8992,10,14173,14221,144,99,108,111,99,107,58,116,105,109,101,115,116,97,109, + 112,0,1,0,2049,14195,10,14202,14239,144,99,108,111,99,107,58,100,97,121,0, + 1,1,2049,14195,10,14226,14259,144,99,108,111,99,107,58,109,111,110,116,104,0, + 1,2,2049,14195,10,14244,14278,144,99,108,111,99,107,58,121,101,97,114,0,1, + 3,2049,14195,10,14264,14297,144,99,108,111,99,107,58,104,111,117,114,0,1,4, + 2049,14195,10,14283,14318,144,99,108,111,99,107,58,109,105,110,117,116,101,0,1, + 5,2049,14195,10,14302,14339,144,99,108,111,99,107,58,115,101,99,111,110,100,0, + 1,6,2049,14195,10,14323,14361,144,99,108,111,99,107,58,117,116,99,58,100,97, + 121,0,1,7,2049,14195,10,14344,14385,144,99,108,111,99,107,58,117,116,99,58, + 109,111,110,116,104,0,1,8,2049,14195,10,14366,14408,144,99,108,111,99,107,58, + 117,116,99,58,121,101,97,114,0,1,9,2049,14195,10,14390,14431,144,99,108,111, + 99,107,58,117,116,99,58,104,111,117,114,0,1,10,2049,14195,10,14413,14456,144, + 99,108,111,99,107,58,117,116,99,58,109,105,110,117,116,101,0,1,11,2049, + 14195,10,14436,14481,144,99,108,111,99,107,58,117,116,99,58,115,101,99,111,110, + 100,0,1,12,2049,14195,10,14461,14497,144,100,58,119,111,114,100,115,0,1793,14506, + 2049,162,2049,9111,2049,9085,10,1,14499,2049,7321,10,14486,14527,144,100,58,119,111,114, + 100,115,45,119,105,116,104,0,2049,1877,2049,4528,1793,14558,2049,162,2,2049,1877,2049, + 4155,1793,14547,2049,9111,2049,9085,10,1,14542,1793,14553,3,10,1,14551,2049,64,10,1, + 14533,2049,7321,10,14511,14582,144,100,105,115,112,108,97,121,45,105,102,45,108,101, + 102,116,0,2,2049,1877,2049,4455,1793,14594,2049,9111,2049,9085,10,1,14589,1793,14600,3, + 10,1,14598,2049,64,10,14511,14631,144,100,58,119,111,114,100,115,45,98,101,103, + 105,110,110,105,110,103,45,119,105,116,104,0,2049,1877,2049,4528,1793,14642,2049,162, + 2049,14582,10,1,14637,2049,7321,10,14605,14657,144,102,105,101,108,100,115,0,3841,2, + 2049,105,2049,105,2049,105,10,14647,14683,144,105,110,118,97,108,105,100,45,110,97, + 109,101,63,0,2,1,32,2049,3986,10,14666,14700,144,114,101,119,114,105,116,101, + 0,1793,14714,1,32,1793,14709,1,95,10,1,14706,2049,2379,10,1,14702,2049,4326,10, + 14689,14728,144,101,110,116,114,121,0,2049,1877,1,21,2049,2106,4097,2,10,1793,14756, + 1793,14751,2049,14657,2049,14683,1,14700,9,2049,119,10,1,14741,2049,14728,10,1,14739,0 };