1var Py2Web=function(h){var l=false;var A=false;var J=false;function D(L){print(L) 2}function b(){var L=new java.io.BufferedReader(new java.io.InputStreamReader(java.lang.System["in"])); 3L.readLine()}function m(O){var N=0;var L=-1;var M=0;var Q=0;var P=O.offset+1;do{P--; 4N=0;L=-2;Q=P;if(O.src.length<=Q){return 61}do{switch(N){case 0:if((O.src.charCodeAt(P)>=9&&O.src.charCodeAt(P)<=10)||O.src.charCodeAt(P)==13||O.src.charCodeAt(P)==32){N=1 5}else{if(O.src.charCodeAt(P)==33||O.src.charCodeAt(P)==63){N=2}else{if(O.src.charCodeAt(P)==35){N=3 6}else{if(O.src.charCodeAt(P)==42){N=4}else{if(O.src.charCodeAt(P)==43){N=5}else{if(O.src.charCodeAt(P)==44){N=6 7}else{if(O.src.charCodeAt(P)==45){N=7}else{if(O.src.charCodeAt(P)==48){N=8}else{if(O.src.charCodeAt(P)==61){N=9 8}else{if((O.src.charCodeAt(P)>=65&&O.src.charCodeAt(P)<=72)||(O.src.charCodeAt(P)>=74&&O.src.charCodeAt(P)<=79)||(O.src.charCodeAt(P)>=81&&O.src.charCodeAt(P)<=90)){N=10 9}else{if(O.src.charCodeAt(P)==91){N=11}else{if(O.src.charCodeAt(P)==93){N=12}else{if(O.src.charCodeAt(P)==98){N=13 10}else{if(O.src.charCodeAt(P)==99||O.src.charCodeAt(P)==102||O.src.charCodeAt(P)==104){N=14 11}else{if(O.src.charCodeAt(P)==110){N=15}else{if(O.src.charCodeAt(P)==119){N=16}else{if(O.src.charCodeAt(P)==46){N=39 12}else{if((O.src.charCodeAt(P)>=49&&O.src.charCodeAt(P)<=57)){N=41}else{if(O.src.charCodeAt(P)==73){N=42 13}else{if((O.src.charCodeAt(P)>=106&&O.src.charCodeAt(P)<=107)||O.src.charCodeAt(P)==112||(O.src.charCodeAt(P)>=117&&O.src.charCodeAt(P)<=118)){N=43 14}else{if(O.src.charCodeAt(P)==60){N=44}else{if(O.src.charCodeAt(P)==80){N=46}else{if(O.src.charCodeAt(P)==109){N=47 15}else{if(O.src.charCodeAt(P)==97||O.src.charCodeAt(P)==100||O.src.charCodeAt(P)==103){N=48 16}else{if(O.src.charCodeAt(P)==114){N=50}else{if(O.src.charCodeAt(P)==101){N=51}else{if(O.src.charCodeAt(P)==105||O.src.charCodeAt(P)==108||O.src.charCodeAt(P)==111||O.src.charCodeAt(P)==113||(O.src.charCodeAt(P)>=120&&O.src.charCodeAt(P)<=121)){N=53 17}else{if(O.src.charCodeAt(P)==115){N=54}else{if(O.src.charCodeAt(P)==122){N=55}else{if(O.src.charCodeAt(P)==123){N=56 18}else{if(O.src.charCodeAt(P)==116){N=96}else{N=-1}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}break; 19case 1:N=-1;L=1;M=P;break;case 2:if(O.src.charCodeAt(P)==33||O.src.charCodeAt(P)==63){N=40 20}else{N=-1}L=11;M=P;break;case 3:N=-1;L=10;M=P;break;case 4:N=-1;L=7;M=P;break;case 5:N=-1; 21L=8;M=P;break;case 6:N=-1;L=38;M=P;break;case 7:if(O.src.charCodeAt(P)==62){N=17}else{if(O.src.charCodeAt(P)==45){N=57 22}else{N=-1}}L=6;M=P;break;case 8:if(O.src.charCodeAt(P)==46){N=19}else{if((O.src.charCodeAt(P)>=48&&O.src.charCodeAt(P)<=57)){N=45 23}else{if((O.src.charCodeAt(P)>=65&&O.src.charCodeAt(P)<=90)){N=49}else{if(O.src.charCodeAt(P)==45){N=58 24}else{N=-1}}}}L=2;M=P;break;case 9:if(O.src.charCodeAt(P)==61){N=59}else{N=-1}L=9; 25M=P;break;case 10:if((O.src.charCodeAt(P)>=48&&O.src.charCodeAt(P)<=57)||(O.src.charCodeAt(P)>=65&&O.src.charCodeAt(P)<=90)){N=49 26}else{N=-1}L=13;M=P;break;case 11:if(O.src.charCodeAt(P)==73){N=20}else{N=-1}L=3; 27M=P;break;case 12:N=-1;L=4;M=P;break;case 13:if(O.src.charCodeAt(P)==41){N=21}else{if((O.src.charCodeAt(P)>=49&&O.src.charCodeAt(P)<=56)){N=22 28}else{if(O.src.charCodeAt(P)==117){N=62}else{N=-1}}}L=18;M=P;break;case 14:if(O.src.charCodeAt(P)==41){N=21 29}else{if((O.src.charCodeAt(P)>=49&&O.src.charCodeAt(P)<=56)){N=22}else{if(O.src.charCodeAt(P)==99||O.src.charCodeAt(P)==102||O.src.charCodeAt(P)==104||(O.src.charCodeAt(P)>=106&&O.src.charCodeAt(P)<=107)||O.src.charCodeAt(P)==109||O.src.charCodeAt(P)==112||O.src.charCodeAt(P)==114||(O.src.charCodeAt(P)>=117&&O.src.charCodeAt(P)<=118)){N=52 30}else{N=-1}}}L=12;M=P;break;case 15:if(O.src.charCodeAt(P)==41){N=21}else{N=-1}L=16; 31M=P;break;case 16:if(O.src.charCodeAt(P)==41){N=21}else{N=-1}L=17;M=P;break;case 17:N=-1; 32L=28;M=P;break;case 18:if(O.src.charCodeAt(P)==46){N=25}else{N=-1}L=19;M=P;break; 33case 19:N=-1;L=14;M=P;break;case 20:N=-1;L=37;M=P;break;case 21:N=-1;L=27;M=P;break; 34case 22:N=-1;L=15;M=P;break;case 23:if(O.src.charCodeAt(P)==125){N=23}else{if((O.src.charCodeAt(P)>=0&&O.src.charCodeAt(P)<=122)||O.src.charCodeAt(P)==124||(O.src.charCo
34deAt(P)>=126&&O.src.charCodeAt(P)<=254)){N=56 35}else{N=-1}}L=5;M=P;break;case 24:N=-1;L=29;M=P;break;case 25:N=-1;L=20;M=P;break; 36case 26:if(O.src.charCodeAt(P)==45){N=73}else{N=-1}L=21;M=P;break;case 27:N=-1;L=30; 37M=P;break;case 28:N=-1;L=25;M=P;break;case 29:N=-1;L=23;M=P;break;case 30:N=-1;L=31; 38M=P;break;case 31:N=-1;L=22;M=P;break;case 32:N=-1;L=34;M=P;break;case 33:N=-1;L=33; 39M=P;break;case 34:N=-1;L=32;M=P;break;case 35:N=-1;L=24;M=P;break;case 36:N=-1;L=36; 40M=P;break;case 37:N=-1;L=26;M=P;break;case 38:N=-1;L=35;M=P;break;case 39:if(O.src.charCodeAt(P)==46){N=18 41}else{N=-1}break;case 40:N=-1;L=11;M=P;break;case 41:if(O.src.charCodeAt(P)==46){N=19 42}else{if((O.src.charCodeAt(P)>=48&&O.src.charCodeAt(P)<=57)){N=45}else{if((O.src.charCodeAt(P)>=65&&O.src.charCodeAt(P)<=90)){N=49 43}else{N=-1}}}L=2;M=P;break;case 42:if((O.src.charCodeAt(P)>=48&&O.src.charCodeAt(P)<=57)||(O.src.charCodeAt(P)>=65&&O.src.charCodeAt(P)<=90)){N=49 44}else{if(O.src.charCodeAt(P)==109){N=60}else{N=-1}}L=13;M=P;break;case 43:if(O.src.charCodeAt(P)==41){N=21 45}else{if(O.src.charCodeAt(P)==99||O.src.charCodeAt(P)==102||O.src.charCodeAt(P)==104||(O.src.charCodeAt(P)>=106&&O.src.charCodeAt(P)<=107)||O.src.charCodeAt(P)==109||O.src.charCodeAt(P)==112||O.src.charCodeAt(P)==114||(O.src.charCodeAt(P)>=117&&O.src.charCodeAt(P)<=118)){N=52 46}else{N=-1}}L=12;M=P;break;case 44:if(O.src.charCodeAt(P)==45){N=95}else{N=-1}break; 47case 45:if(O.src.charCodeAt(P)==46){N=19}else{if((O.src.charCodeAt(P)>=48&&O.src.charCodeAt(P)<=57)){N=45 48}else{N=-1}}L=2;M=P;break;case 46:if((O.src.charCodeAt(P)>=48&&O.src.charCodeAt(P)<=57)||(O.src.charCodeAt(P)>=65&&O.src.charCodeAt(P)<=90)){N=49 49}else{if(O.src.charCodeAt(P)==111){N=61}else{N=-1}}L=13;M=P;break;case 47:if(O.src.charCodeAt(P)==41){N=21 50}else{if(O.src.charCodeAt(P)==99||O.src.charCodeAt(P)==102||O.src.charCodeAt(P)==104||(O.src.charCodeAt(P)>=106&&O.src.charCodeAt(P)<=107)||O.src.charCodeAt(P)==109||O.src.charCodeAt(P)==112||O.src.charCodeAt(P)==114||(O.src.charCodeAt(P)>=117&&O.src.charCodeAt(P)<=118)){N=52 51}else{if(O.src.charCodeAt(P)==105){N=64}else{N=-1}}}L=12;M=P;break;case 48:if(O.src.charCodeAt(P)==41){N=21 52}else{if((O.src.charCodeAt(P)>=49&&O.src.charCodeAt(P)<=56)){N=22}else{N=-1}}break; 53case 49:N=-1;L=13;M=P;break;case 50:if(O.src.charCodeAt(P)==41){N=21}else{if(O.src.charCodeAt(P)==99||O.src.charCodeAt(P)==102||O.src.charCodeAt(P)==104||(O.src.charCodeAt(P)>=106&&O.src.charCodeAt(P)<=107)||O.src.charCodeAt(P)==109||O.src.charCodeAt(P)==112||O.src.charCodeAt(P)==114||(O.src.charCodeAt(P)>=117&&O.src.charCodeAt(P)<=118)){N=52 54}else{if(O.src.charCodeAt(P)==111){N=65}else{N=-1}}}L=12;M=P;break;case 51:if(O.src.charCodeAt(P)==41){N=21 55}else{if((O.src.charCodeAt(P)>=49&&O.src.charCodeAt(P)<=56)){N=22}else{if(O.src.charCodeAt(P)==112){N=63 56}else{N=-1}}}break;case 52:if(O.src.charCodeAt(P)==99||O.src.charCodeAt(P)==102||O.src.charCodeAt(P)==104||(O.src.charCodeAt(P)>=106&&O.src.charCodeAt(P)<=107)||O.src.charCodeAt(P)==109||O.src.charCodeAt(P)==112||O.src.charCodeAt(P)==114||(O.src.charCodeAt(P)>=117&&O.src.charCodeAt(P)<=118)){N=52 57}else{N=-1}L=12;M=P;break;case 53:if(O.src.charCodeAt(P)==41){N=21}else{N=-1}break; 58case 54:if(O.src.charCodeAt(P)==41){N=21}else{if(O.src.charCodeAt(P)==104){N=97}else{N=-1 59}}break;case 55:if(O.src.charCodeAt(P)==41){N=21}else{if(O.src.charCodeAt(P)==117){N=66 60}else{N=-1}}break;case 56:if(O.src.charCodeAt(P)==125){N=23}else{if((O.src.charCodeAt(P)>=0&&O.src.charCodeAt(P)<=122)||O.src.charCodeAt(P)==124||(O.src.charCodeAt(P)>=126&&O.src.charCodeAt(P)<=254)){N=56 61}else{N=-1}}break;case 57:if(O.src.charCodeAt(P)==62){N=24}else{N=-1}break;case 58:if(O.src.charCodeAt(P)==48){N=26 62}else{N=-1}break;case 59:if(O.src.charCodeAt(P)==62){N=27}else{N=-1}break;case 60:if(O.src.charCodeAt(P)==105){N=102 63}else{N=-1}break;case 61:if(O.src.charCodeAt(P)==108){N=68}else{N=-1}break;case 62:if(O.src.charCodeAt(P)==116){N=28 64}else{N=-1}break;case 63:if(O.src.charCodeAt(P)==46){N=29}else{N=-1}break;case 64:if(O.src.charCodeAt(P)==114){N=100 65}else{N=-1}break;case 65:if(O.src.charCodeAt(P)==116){N=69}else{N=-1}break;
65case 66:if(O.src.charCodeAt(P)==103){N=72 66}else{N=-1}break;case 67:if(O.src.charCodeAt(P)==62){N=30}else{N=-1}break;case 68:if(O.src.charCodeAt(P)==105){N=74 67}else{N=-1}break;case 69:if(O.src.charCodeAt(P)==97){N=76}else{N=-1}break;case 70:if(O.src.charCodeAt(P)==102){N=77 68}else{N=-1}break;case 71:if(O.src.charCodeAt(P)==101){N=78}else{N=-1}break;case 72:if(O.src.charCodeAt(P)==122){N=79 69}else{N=-1}break;case 73:if(O.src.charCodeAt(P)==48){N=31}else{N=-1}break;case 74:if(O.src.charCodeAt(P)==115){N=80 70}else{N=-1}break;case 75:if(O.src.charCodeAt(P)==111){N=81}else{N=-1}break;case 76:if(O.src.charCodeAt(P)==116){N=82 71}else{N=-1}break;case 77:if(O.src.charCodeAt(P)==116){N=32}else{N=-1}break;case 78:if(O.src.charCodeAt(P)==97){N=83 72}else{N=-1}break;case 79:if(O.src.charCodeAt(P)==119){N=84}else{N=-1}break;case 80:if(O.src.charCodeAt(P)==104){N=86 73}else{N=-1}break;case 81:if(O.src.charCodeAt(P)==114){N=33}else{N=-1}break;case 82:if(O.src.charCodeAt(P)==101){N=34 74}else{N=-1}break;case 83:if(O.src.charCodeAt(P)==116){N=87}else{N=-1}break;case 84:if(O.src.charCodeAt(P)==97){N=88 75}else{N=-1}break;case 85:if(O.src.charCodeAt(P)==111){N=89}else{N=-1}break;case 86:if(O.src.charCodeAt(P)==84){N=90 76}else{N=-1}break;case 87:if(O.src.charCodeAt(P)==58){N=35}else{N=-1}break;case 88:if(O.src.charCodeAt(P)==110){N=91 77}else{N=-1}break;case 89:if(O.src.charCodeAt(P)==114){N=36}else{N=-1}break;case 90:if(O.src.charCodeAt(P)==121){N=92 78}else{N=-1}break;case 91:if(O.src.charCodeAt(P)==103){N=93}else{N=-1}break;case 92:if(O.src.charCodeAt(P)==112){N=94 79}else{N=-1}break;case 93:if(O.src.charCodeAt(P)==46){N=37}else{N=-1}break;case 94:if(O.src.charCodeAt(P)==101){N=38 80}else{N=-1}break;case 95:if(O.src.charCodeAt(P)==45){N=67}else{N=-1}break;case 96:if(O.src.charCodeAt(P)==41){N=21 81}else{if(O.src.charCodeAt(P)==104){N=98}else{N=-1}}break;case 97:if(O.src.charCodeAt(P)==105){N=70 82}else{N=-1}break;case 98:if(O.src.charCodeAt(P)==114){N=71}else{N=-1}break;case 99:if(O.src.charCodeAt(P)==116){N=85 83}else{N=-1}break;case 100:if(O.src.charCodeAt(P)==114){N=75}else{N=-1}break;case 101:if(O.src.charCodeAt(P)==97){N=99 84}else{N=-1}break;case 102:if(O.src.charCodeAt(P)==116){N=101}else{N=-1}break}P++}while(N>-1) 85}while(1>-1&&L==1);if(L>-1){O.att=O.src.substr(Q,M-Q);O.offset=M;switch(L){case 2:O.att=parseInt(O.att); 86break;case 5:O.att=O.att.substr(1,O.att.length-2);break;case 14:O.att=E(O.att);break; 87case 15:O.att=I(O.att);break;case 27:O.att=O.att.charAt(0);break}}else{O.att=new String(); 88L=-1}return L}function x(L,af,ag){var N=new Array();var ab=new Array();var U=0;var ae; 89var V;var W;var ai;var X=new Function("","var offset; var src; var att;");var ac=new X(); 90var M=new Function("","var sym; var att; var child;");var T=new Array();var P=new Array(); 91var O=null;var aa=new Array(new Array(0,1),new Array(40,1),new Array(39,1),new Array(39,1),new Array(39,2),new Array(39,0),new Array(42,1),new Array(42,2),new Array(44,2),new Array(45,1),new Array(45,2),new Array(45,2),new Array(46,1),new Array(46,2),new Array(47,1),new Array(47,2),new Array(48,4),new Array(48,5),new Array(48,3),new Array(48,3),new Array(48,2),new Array(48,4),new Array(48,4),new Array(48,1),new Array(48,2),new Array(41,1),new Array(41,2),new Array(51,3),new Array(51,3),new Array(51,3),new Array(51,3),new Array(51,4),new Array(51,3),new Array(51,2),new Array(54,1),new Array(54,3),new Array(54,3),new Array(54,3),new Array(54,8),new Array(54,6),new Array(54,9),new Array(54,7),new Array(54,6),new Array(54,6),new Array(54,5),new Array(54,4),new Array(52,2),new Array(52,1),new Array(52,2),new Array(52,2),new Array(53,2),new Array(53,1),new Array(53,1),new Array(49,2),new Array(49,3),new Array(55,1),new Array(55,1),new Array(55,1),new Array(56,1),new Array(56,2),new Array(56,3),new Array(56,2),new Array(59,1),new Array(59,2),new Array(58,3),new Array(58,3),new Array(58,5),new Array(50,1),new Array(50,3),new Array(50,2),new Array(60,1),new Array(60,1),new Array(57,1),new Array(57,1),new Array(43,1),new Array(43,2)); 92var R=new Array(new Array(5,8,14,9,25,10,27,13,8,14,61,-5),new Array(61,0),new Array(61,-1),new Array(14,9,25,10,61,-2),new Array(27,13,8,14,61,-3),new Array(5,17,14,9,25,10,27,13,8,14,61,-5),new Array(61,-25,14,-25,25,-25,27,-25,8,-25),new Array(61,-6,27,-6,8,-6),new Array(5,-74,14,-74,25,-74,27,-74,8,-74,61,-74,13,-74,16,-74,12,-74,15,-74,21,-74,22,-74,24,-74,26,-74,11,-74),new Array(19,20,13,26,16,27,12,28,21,30,22,31,15,32),new Array(14,33),new Array(5,8,14,9,25,10),new Array(6,39,8,40,32,41,33,42,34,43,35,44,36,45,16,47,17,48,18,49,14,-9,25,-9,5,-9),new Array(14,-12,25,-12,6,-12,8,-12,32,-12,33,-12,34,-12,35,-12,36,-12,16,-12,17,-12,18,-12,5,-12),new Array(27,50),new Array(61,-26,14,-26,25,-26,27,-26,8,-26),new Array(61,-7,27,-7,8,-7),new Array(5,-74,14,-74,25,-74,27,-74,8,-74,61,-74),new Array(61,-4),new Array(11,52,24,54,26,55,5,8,13,26,16,27,12,28,21,30,22,31,15,32,61,-33,14,-33,25,-33,27,-33,8,-33),new Array(20,57,13,26,16,27,12,28,21,30,22,31,15,32),new Array(37,58,3,59,9,60,8,62,10,63,13,-47,16,-47,12,-47,15,-47,21,-47,22,-47,24,-47,26,-47,61,-47,14,-47,25,-47,11,-47,5,-47,27,-47),new Array(8,-34,10,-34,13,-34,16,-34,12,-34,15,-34,21,-34,22,-34,24,-34,26,-34,61,-34,14,-34,25,-34,9,-34,3,-34,37,-34,11,-34,5,-34,27,-34),new Array(15,32),new Array(23,65,8,-51,10,-51,13,-51,16,-51,12,-51,15,-51,21,-51,22,-51,24,-51,26,-51,61,-51,14,-51,25,-51,9,-51,3,-51,37,-51,11,-51,5,-51,27,-51),new Array(8,-52,10,-52,13,-52,16,-52,12,-52,15,-52,21,-52,22,-52,24,-52,26,-52,61,-52,14,-52,25,-52,9,-52,3,-52,37,-52,11,-52,5,-52,27,-52),new Array(15,-58,8,-58,10,-58,13,-58,16,-58,12,-58,21,-58,22,-58,24,-58,26,-58,61,-58,14,-58,25,-58,9,-58,3,-58,37,-58,11,-58,5,-58,27,-58,4,-58),new Array(12,66,13,67),new Array(13,68),new Array(8,-62,10,-62,13,-62,16,-62,12,-62,15,-62,21,-62,22,-62,24,-62,26,-62,61,-62,14,-62,25,-62,23,-62,9,-62,3,-62,37,-62,11,-62,5,-62,27,-62),new Array(8,-70,10,-70,13,-70,16,-70,12,-70,15,-70,21,-70,22,-70,24,-70,26,-70,61,-70,14,-70,25,-70,9,-70,3,-70,37,-70,11,-70,5,-70,27,-70),new Array(8,-71,10,-71,13,-71,16,-71,12,-71,15,-71,21,-71,22,-71,24,-71,26,-71,61,-71,14,-71,25,-71,9,-71,3,-71,37,-71,11,-71,5,-71,27,-71),new Array(7,69,6,70),new Array(19,71),new Array(5,72,14,-11,25,-11),new Array(14,9,25,10,61,-8,27,-8,8,-8),new Array(6,39,8,40,32,41,33,42,34,43,35,44,36,45,16,47,17,48,18,49,14,-10,25,-10,5,-10),new Array(14,-14,25,-14,5,-14,6,-14,8,-14,32,-14,33,-14,34,-14,35,-14,36,-14,16,-14,17,-14,18,-14),new Array(15,74),new Array(16,47,17,48,18,49),new Array(16,47,17,48,18,49),new Array(2,77),new Array(15,78),new Array(15,79),new Array(14,-23,25,-23,5,-23,6,-23,8,-23,32,-23,33,-23,34,-23,35,-23,36,-23,16,-23,17,-23,18,-23),new Array(15,81),new Array(12,82,13,83),new Array(13,-55,12,-55),new Array(13,-56,12,-56,8,-56,10,-56,16,-56,15,-56,21,-56,22,-56,24,-56,26,-56,61,-56,14,-56,25,-56,9,-56,3,-56,37,-56,11,-56,5,-56,27,-56,4,-56),new Array(13,-57,12,-57,8,-57,10,-57,16,-57,15,-57,21,-57,22,-57,24,-57,26,-57,61,-57,14,-57,25,-57,9,-57,3,-57,37,-57,11,-57,5,-57,27,-57,4,-57),new Array(14,-13,25,-13,6,-13,8,-13,32,-13,33,-13,34,-13,35,-13,36,-13,16,-13,17,-13,18,-13,5,-13),new Array(5,72,13,-49,16,-49,12,-49,15,-49,21,-49,22,-49,24,-49,26,-49,61,-49,14,-49,25,-49,11,-49,27,-49,8,-49),new Array(13,-48,16,-48,12,-48,15,-48,21,-48,22,-48,24,-48,26,-48,61,-48,14,-48,25,-48,11,-48,5,-48,27,-48,8,-48),new Array(11,52,5,8,61,-27,14,-27,25,-27,27,-27,8,-27),new Array(61,-30,14,-30,25,-30,27,-30,8,-30),new Array(61,-32,14,-32,25,-32,27,-32,8,-32),new Array(11,52,5,8,61,-28,14,-28,25,-28,27,-28,8,-28),new Array(61,-29,14,-29,25,-29,27,-29,8,-29),new Array(15,81),new Array(8,85,15,87,
926,88,16,47,17,48,18,49),new Array(13,26,16,92,12,28,17,48,18,49),new Array(13,-46,16,-46,12,-46,15,-46,21,-46,22,-46,24,-46,26,-46,61,-46,14,-46,25,-46,11,-46,5,-46,27,-46,8,-46),new Array(13,-72,16,-72,12,-72,15,-72,21,-72,22,-72,24,-72,26,-72,61,-72,14,-72,25,-72,11,-72,5,-72,27,-72,8,-72),new Array(13,-73,16,-73,12,-73,15,-73,21,-73,22,-73,24,-73,26,-73,61,-73,14,-73,25,-73,11,-73,5,-73,27,-73,8,-73),new Array(8,-50,10,-50,13,-50,16,-50,12,-50,15,-50,21,-50,22,-50,24,-50,26,-50,61,-50,14,-50,25,-50,9,-50,3,-50,37,-50,11,-50,5,-50,27,-50),new Array(8,-63,10,-63,13,-63,16,-63,12,-63,15,-63,21,-63,22,-63,24,-63,26,-63,61,-63,14,-63,25,-63,23,-63,9,-63,3,-63,37,-63,11,-63,5,-63,27,-63),new Array(13,93),new Array(15,-59,8,-59,10,-59,13,-59,16,-59,12,-59,21,-59,22,-59,24,-59,26,-59,61,-59,14,-59,25,-59,9,-59,3,-59,37,-59,11,-59,5,-59,27,-59,4,-59),new Array(15,-61,8,-61,10,-61,13,-61,16,-61,12,-61,21,-61,22,-61,24,-61,26,-61,61,-61,14,-61,25,-61,9,-61,3,-61,37,-61,11,-61,5,-61,27,-61,4,-61),new Array(15,94),new Array(15,95),new Array(13,26,16,27,12,28,21,30,22,31,15,32),new Array(14,-75,25,-75,5,-75,13,-75,16,-75,12,-75,15,-75,21,-75,22,-75,24,-75,26,-75,61,-75,11,-75,27,-75,8,-75),new Array(14,-15,25,-15,5,-15,6,-15,8,-15,32,-15,33,-15,34,-15,35,-15,36,-15,16,-15,17,-15,18,-15),new Array(29,97,31,98),new Array(15,99),new Array(15,100),new Array(14,-20,25,-20,5,-20,6,-20,8,-20,32,-20,33,-20,34,-20,35,-20,36,-20,16,-20,17,-20,18,-20),new Array(31,101),new Array(30,102),new Array(15,103,38,104,14,-24,25,-24,5,-24,6,-24,8,-24,32,-24,33,-24,34,-24,35,-24,36,-24,16,-24,17,-24,18,-24),new Array(14,-67,25,-67,5,-67,6,-67,8,-67,32,-67,33,-67,34,-67,35,-67,36,-67,16,-67,17,-67,18,-67,38,-67,15,-67,4,-67),new Array(13,105),new Array(15,-53,8,-53,10,-53,13,-53,16,-53,12,-53,21,-53,22,-53,24,-53,26,-53,61,-53,14,-53,25,-53,9,-53,3,-53,37,-53,11,-53,5,-53,27,-53),new Array(15,103,38,104,4,106),new Array(16,47,17,48,18,49),new Array(15,108),new Array(9,109),new Array(15,110),new Array(12,82,13,83,8,-35,10,-35,16,-35,15,-35,21,-35,22,-35,24,-35,26,-35,61,-35,14,-35,25,-35,9,-35,3,-35,37,-35,11,-35,5,-35,27,-35),new Array(8,-36,10,-36,13,-36,16,-36,12,-36,15,-36,21,-36,22,-36,24,-36,26,-36,61,-36,14,-36,25,-36,9,-36,3,-36,37,-36,11,-36,5,-36,27,-36),new Array(8,-37,10,-37,13,-37,16,-37,12,-37,15,-37,21,-37,22,-37,24,-37,26,-37,61,-37,14,-37,25,-37,9,-37,3,-37,37,-37,11,-37,5,-37,27,-37),new Array(12,66,13,67,8,-55,10,-55,16,-55,15,-55,21,-55,22,-55,24,-55,26,-55,61,-55,14,-55,25,-55,9,-55,3,-55,37,-55,11,-55,5,-55,27,-55,4,-55),new Array(15,-60,8,-60,10,-60,13,-60,16,-60,12,-60,21,-60,22,-60,24,-60,26,-60,61,-60,14,-60,25,-60,9,-60,3,-60,37,-60,11,-60,5,-60,27,-60,4,-60),new Array(6,111,8,-65,10,-65,13,-65,16,-65,12,-65,15,-65,21,-65,22,-65,24,-65,26,-65,61,-65,14,-65,25,-65,23,-65,9,-65,3,-65,37,-65,11,-65,5,-65,27,-65),new Array(8,-64,10,-64,13,-64,16,-64,12,-64,15,-64,21,-64,22,-64,24,-64,26,-64,61,-64,14,-64,25,-64,23,-64,9,-64,3,-64,37,-64,11,-64,5,-64,27,-64),new Array(11,52,5,8,61,-31,14,-31,25,-31,27,-31,8,-31),new Array(15,112),new Array(16,47,17,48,18,49),new Array(14,-18,25,-18,5,-18,6,-18,8,-18,32,-18,33,-18,34,-18,35,-18,36,-18,16,-18,17,-18,18,-18),new Array(14,-19,25,-19,5,-19,6,-19,8,-19,32,-19,33,-19,34,-19,35,-19,36,-19,16,-19,17,-19,18,-19),new Array(15,114),new Array(15,115),new Array(14,-69,25,-69,5,-69,6,-69,8,-69,32,-69,33,-69,34,-69,35,-69,36,-69,16,-69,17,-69,18,-69,38,-69,15,-69,4,-69),new Array(15,116),new Array(15,-54,8,-54,10,-54,13,-54,16,-54,12,-54,21,-54,22,-54,24,-54,26,-54,61,-54,14,-54,25,-54,9,-54,3,-54,37,-54,11,-54,5,-54,27,-54),new Array(8,-45,10,-45,13,-45,16,-45,12,-45,15,-45,21,-45,22,-45,24,-45,26,-45,61,-45,14,-45,25,-45,9,-45,3,-45,37,-45,11,-45,5,-45,27,-45),new Array(15,117),new Array(28,118),new Array(16,92,17,48,18,49,13,26,12,28),new Array(4,121),new Array(15,122),new Array(14,-16,25,-16,5,-16,6,-16,8,-16,32,-16,33,-16,34,-16,35,-16,36,-16,16,-16,17,-16,18,-16),new Array(15,123),new Array(14,-21,25,-21,5,-21,6,-21,8,-21,32,-21,33,-21,34,-21,35,-21,36,-21,16,-21,17,-21,18,-21),new Array(14,-22,25,-22,5,-22,6,-22,8,-22,32,-22,33,-22,34,-22,35,-22,36,-22,16,-22,17,-22,18,-22),new Array(14,-68,25,-68,5,-68,6,-68,8,-68,32,-68,33,-68,34,-68,35,-68,36,-68,16,-68,17,-68,18,-68,38,-68,15,-68,4,-68),new Array(4,124,9,125),new Array(15,126),new Array(4,127),new Array(4,128),new Array(8,-44,10,-44,13,-44,16,-44,12,-44,15,-44,21,-44,22,-44,24,-44,26,-44,61,-44,14,-44,25,-44,9,-44,3,-44,37,-44,11,-44,5,-44,27,-44),new Array(8,-66,10,-66,
9213,-66,16,-66,12,-66,15,-66,21,-66,22,-66,24,-66,26,-66,61,-66,14,-66,25,-66,23,-66,9,-66,3,-66,37,-66,11,-66,5,-66,27,-66),new Array(14,-17,25,-17,5,-17,6,-17,8,-17,32,-17,33,-17,34,-17,35,-17,36,-17,16,-17,17,-17,18,-17),new Array(8,-39,10,-39,13,-39,16,-39,12,-39,15,-39,21,-39,22,-39,24,-39,26,-39,61,-39,14,-39,25,-39,9,-39,3,-39,37,-39,11,-39,5,-39,27,-39),new Array(13,26,16,27,12,28),new Array(9,130,4,131),new Array(8,-42,10,-42,13,-42,16,-42,12,-42,15,-42,21,-42,22,-42,24,-42,26,-42,61,-42,14,-42,25,-42,9,-42,3,-42,37,-42,11,-42,5,-42,27,-42),new Array(8,-43,10,-43,13,-43,16,-43,12,-43,15,-43,21,-43,22,-43,24,-43,26,-43,61,-43,14,-43,25,-43,9,-43,3,-43,37,-43,11,-43,5,-43,27,-43),new Array(4,132),new Array(13,26,16,27,12,28),new Array(8,-41,10,-41,13,-41,16,-41,12,-41,15,-41,21,-41,22,-41,24,-41,26,-41,61,-41,14,-41,25,-41,9,-41,3,-41,37,-41,11,-41,5,-41,27,-41),new Array(8,-38,10,-38,13,-38,16,-38,12,-38,15,-38,21,-38,22,-38,24,-38,26,-38,61,-38,14,-38,25,-38,9,-38,3,-38,37,-38,11,-38,5,-38,27,-38),new Array(4,134),new Array(8,-40,10,-40,13,-40,16,-40,12,-40,15,-40,21,-40,22,-40,24,-40,26,-40,61,-40,14,-40,25,-40,9,-40,3,-40,37,-40,11,-40,5,-40,27,-40)); 93var Y=new Array(new Array(40,1,39,2,41,3,42,4,43,5,51,6,44,7,45,11,46,12),new Array(),new Array(),new Array(51,15),new Array(44,16,45,11,46,12),new Array(39,18,41,3,42,4,43,5,51,6,44,7,45,11,46,12),new Array(),new Array(),new Array(),new Array(52,19,54,21,53,22,56,23,59,24,60,25,58,29),new Array(),new Array(43,34,41,35,51,6),new Array(47,36,48,37,49,38,55,46),new Array(),new Array(),new Array(),new Array(),new Array(),new Array(),new Array(43,51,52,53,54,21,53,22,56,23,59,24,60,25,58,29),new Array(52,56,54,21,53,22,56,23,59,24,60,25,58,29),new Array(57,61),new Array(),new Array(58,64),new Array(),new Array(),new Array(),new Array(),new Array(),new Array(),new Array(),new Array(),new Array(),new Array(),new Array(),new Array(51,15),new Array(48,73,49,38,55,46),new Array(),new Array(),new Array(49,75,55,46),new Array(49,76,55,46),new Array(),new Array(),new Array(),new Array(),new Array(50,80),new Array(),new Array(),new Array(),new Array(),new Array(),new Array(),new Array(),new Array(43,51),new Array(),new Array(),new Array(43,51),new Array(),new Array(50,84),new Array(49,86,55,46),new Array(55,89,56,90,49,91),new Array(),new Array(),new Array(),new Array(),new Array(),new Array(),new Array(),new Array(),new Array(),new Array(),new Array(52,96,54,21,53,22,56,23,59,24,60,25,58,29),new Array(),new Array(),new Array(),new Array(),new Array(),new Array(),new Array(),new Array(),new Array(),new Array(),new Array(),new Array(),new Array(),new Array(49,107,55,46),new Array(),new Array(),new Array(),new Array(),new Array(),new Array(),new Array(),new Array(),new Array(),new Array(),new Array(43,51),new Array(),new Array(49,113,55,46),new Array(),new Array(),new Array(),new Array(),new Array(),new Array(),new Array(),new Array(),new Array(),new Array(),new Array(56,119,55,120),new Array(),new Array(),new Array(),new Array(),new Array(),new Array(),new Array(),new Array(),new Array(),new Array(),new Array(),new Array(),new Array(),new Array(),new Array(),new Array(56,129),new Array(),new Array(),new Array(),new Array(),new Array(56,133),new Array(),new Array(),new Array(),new Array()); 94var ad=new Array("BuildTree'","WHITESPACE","INT","[","]","Comment","-","*","+","=","OtherCheckSign","Annotation","FairyProps","PieceName","MoveNo","Square","n","w","b","..","...","0-0","0-0-0","ep.","threat:","but","zugzwang.","TwinId","->","-->","==>","<-->","rotate","mirror","shift","PolishType","Imitator","[I",",","Solution","BuildTree","MoveList","TwinList","Comments","Twin","TwinHeader","TwinBullet","CommandList","Command","LongPieceDecl","SquareList","Move","HalfMove","Body","Ply","ColorPrefix","PieceDecl","CheckSign","Squares","PawnMove","Castling","$"); 95ac.offset=0;ac.src=L;ac.att=new String();if(!af){af=new Array()}if(!ag){ag=new Array() 96}N.push(0);ab.push(0);W=m(ac);while(true){ae=136;for(var Z=0;Z<R[N[N.length-1]].length; 97Z+=2){if(R[N[N.length-1]][Z]==W){ae=R[N[N.length-1]][Z+1];break}}if(A&&N.length>0){D("\nState "+N[N.length-1]+"\n\tLookahead: "+ad[W]+' ("'+ac.att+'")\n\tAction: '+ae+'\n\tSource: "'+ac.src.substr(ac.offset,30)+((ac.offset+30<ac.src.length)?"...":"")+'"\n\tStack: '+N.join()+"\n\tValue stack: "+ab.join()+"\n"); 98if(J){b()}}
98if(ae==136){if(A){D("Error detected: There is no reduce or shift on the symbol "+ad[W]) 99}U++;af.push(ac.offset-ac.att.length);ag.push(new Array());for(var Z=0;Z<R[N[N.length-1]].length; 100Z+=2){ag[ag.length-1].push(ad[R[N[N.length-1]][Z]])}var Q=new Array();var ah=new Array(); 101for(var Z=0;Z<N.length;Z++){Q[Z]=N[Z];ah[Z]=ab[Z]}while(ae==136&&W!=61){if(A){D("\tError recovery\nCurrent lookahead: "+ad[W]+" ("+ac.att+")\nAction: "+ae+"\n\n") 102}if(W==-1){ac.offset++}while(ae==136&&N.length>0){N.pop();ab.pop();if(N.length==0){break 103}ae=136;for(var Z=0;Z<R[N[N.length-1]].length;Z+=2){if(R[N[N.length-1]][Z]==W){ae=R[N[N.length-1]][Z+1]; 104break}}}if(ae!=136){break}for(var Z=0;Z<Q.length;Z++){N.push(Q[Z]);ab.push(ah[Z]) 105}W=m(ac)}if(ae==136){if(A){D("\tError recovery failed, terminating parse process...") 106}break}if(A){D("\tError recovery succeeded, continuing")}}if(ae>0){if(l){var S=new M(); 107S.sym=ad[W];S.att=ac.att;S.child=new Array();P.push(T.length);T.push(S)}if(A){D("Shifting symbol: "+ad[W]+" ("+ac.att+")") 108}N.push(ae);ab.push(ac.att);W=m(ac);if(A){D("\tNew lookahead symbol: "+ad[W]+" ("+ac.att+")") 109}}else{ae*=-1;if(A){D("Reducing by producution: "+ae)}ai=void (0);if(A){D("\tPerforming semantic action...") 110}switch(ae){case 0:ai=ab[ab.length-1];break;case 1:F=ab[ab.length-1][0];F.unflatten(ab[ab.length-1],1); 111F.linkContinuedTwins();break;case 2:ab[ab.length-1].unshift(new G(),new g());ai=ab[ab.length-1]; 112break;case 3:ab[ab.length-1].unshift(new G());ai=ab[ab.length-1];break;case 4:ab[ab.length-1][0].setv("comments",ab[ab.length-2]); 113ai=ab[ab.length-1];break;case 5:ai=[new G()];break;case 6:ai=ab[ab.length-1];break; 114case 7:ab[ab.length-2].push.apply(ab[ab.length-2],ab[ab.length-1]);ai=ab[ab.length-2]; 115break;case 8:ab[ab.length-1].unshift(ab[ab.length-2]);ai=ab[ab.length-1];break;case 9:ai=ab[ab.length-1]; 116break;case 10:ai=ab[ab.length-2].setv("commands",ab[ab.length-1]);break;case 11:ai=ab[ab.length-2].setv("comments",ab[ab.length-1]); 117break;case 12:ai=new q(ab[ab.length-1],false);break;case 13:ai=new q(ab[ab.length-1],true); 118break;case 14:ai=[ab[ab.length-1]];break;case 15:ab[ab.length-2].push(ab[ab.length-1]); 119ai=ab[ab.length-2];break;case 16:ai=new j("Move",[ab[ab.length-3],ab[ab.length-1]]); 120break;case 17:ai=new j("Exchange",[ab[ab.length-4],ab[ab.length-1]]);break;case 18:ai=new j("Remove",[ab[ab.length-1]]); 121break;case 19:ai=new j("Add",[ab[ab.length-2],ab[ab.length-1]]);break;case 20:ai=new j("Rotate",[ab[ab.length-1]]); 122break;case 21:ai=new j("Mirror",[ab[ab.length-3],ab[ab.length-1]]);break;case 22:ai=new j("Shift",[ab[ab.length-3],ab[ab.length-1]]); 123break;case 23:ai=new j("PolishType",[]);break;case 24:ai=new j("Imitator",ab[ab.length-1]); 124break;case 25:ai=ab[ab.length-1];break;case 26:ab[ab.length-2].push.apply(ab[ab.length-2],ab[ab.length-1]); 125ai=ab[ab.length-2];break;case 27:ai=[ab[ab.length-2].setv("depth",ab[ab.length-3]),ab[ab.length-1].setv("depth",ab[ab.length-3]+1)]; 126break;case 28:ai=[ab[ab.length-1].setv("depth",ab[ab.length-3]+1)];break;case 29:ai=[new d(ab[ab.length-3],false)]; 127break;case 30:ai=[ab[ab.length-2].setv("depth",ab[ab.length-3]).setv("childIsThreat",true)]; 128break;case 31:ai=[ab[ab.length-1].setv("depth",ab[ab.length-3]+1)];break;case 32:ai=[ab[ab.length-2].setv("depth",ab[ab.length-3])]; 129break;case 33:ai=[ab[ab.length-1].setv("depth",ab[ab.length-2])];break;case 34:ai=ab[ab.length-1]; 130break;case 35:ab[ab.length-3].recolorings[ab[ab.length-1]].push(ab[ab.length-3].arrival); 131ai=ab[ab.length-3];break;case 36:ai=ab[ab.length-3].setv("promotion",ab[ab.length-1]); 132break;case 37:ai=ab[ab.length-3].setv("promotion",ab[ab.length-1]);break;case 38:ab[ab.length-8].rebirths.push({unit:ab[ab.length-5],at:ab[ab.length-4],prom:ab[ab.length-2]}); 133ai=ab[ab.length-8];break;case 39:ab[ab.length-6].rebirths.push({unit:ab[ab.length-3],at:ab[ab.length-2],prom:null}); 134ai=ab[ab.length-6];break;case 40:ab[ab.length-9].antirebirths.push({unit:ab[ab.length-7],from:ab[ab.length-6],to:ab[ab.length-4],prom:ab[ab.length-2]}); 135ai=ab[ab.length-9];break;case 41:ab[ab.length-7].antirebirths.push({unit:ab[ab.length-5],from:ab[ab.length-4],to:ab[ab.length-2],prom:null}); 136ai=ab[ab.length-7];break;case 42:ab[ab.length-6].promotions.push({unit:ab[ab.length-2],at:ab[ab.length-4]}); 137ai=ab[ab.length-6];break;case 43:ab[ab.length-6].recolorings[ab[ab.length-2]].push(ab[ab.length-4]); 138ai=ab[ab.length-6];break;case 44:ab[ab.length-5].removals.push(ab[ab.length-2]);ai=ab[ab.length-5]; 139break;case 45:ab[ab.length-4].imitators=ab[ab.length-2];ai=ab[ab.length-4];break; 140case 46:ai=ab[ab.length-2].setv("checksign",ab[ab.length-1]);break;case 47:ai=ab[ab.length-1]; 141break;case 48:ai=ab[ab.length-2].setv("annotation",ab[ab.length-1]);break;case 49:ai=ab[ab.length-2].setv("comments",ab[ab.length-1]); 142break;case 50:ai=ab[ab.length-1].setv("promotion",ab[ab.length-2]).setv("departant",ab[ab.length-2]); 143break;case 51:ai=ab[ab.length-1];break;case 52:ai=ab[ab.length-1];break;case 53:ai=new r(ab[ab.length-1],ab[ab.length-2],""); 144break;case 54:ai=new r(ab[ab.length-1],ab[ab.length-3],ab[ab.length-2]);break;case 55:ai=ab[ab.length-1]; 145break;case 56:ai=ab[ab.length-1];break;case 57:ai=ab[ab.length-1];break;case 58:ai=new r(ab[ab.length-1],"u",""); 146break;case 59:ai=new r(ab[ab.length-1],ab[ab.length-2],"");break;case 60:ai=new r(ab[ab.length-1],ab[ab.length-3],ab[ab.length-2]); 147break;case 61:ai=new r(ab[ab.length-1],"u",ab[ab.length-2]);break;case 62:ai=ab[ab.length-1].setv("promotion",new r("P","u","")).setv("departant",new r("P","u","")); 148break;case 63:ai=ab[ab.length-2].setEnPassant();break;case 64:ai=new v(ab[ab.length-3],ab[ab.length-1],-1); 149break;case 65:ai=new v(ab[ab.length-3],ab[ab.length-1],ab[ab.length-1]);break;case 66:ai=new v(ab[ab.length-5],ab[ab.length-1],ab[ab.length-3]); 150break;case 67:ai=[ab[ab.length-1]];break;case 68:ab[ab.length-3].push(ab[ab.length-1]); 151ai=ab[ab.length-3];break;case 69:ab[ab.length-2].push(ab[ab.length-1]);ai=ab[ab.length-2]; 152break;case 70:ai=new n(true);break;case 71:ai=new n(false);break;case 72:ai=ab[ab.length-1]; 153break;case 73:ai=ab[ab.length-1];break;case 74:ai=[ab[ab.length-1]];break;case 75:ab[ab.length-2].push(ab[ab.length-1]); 154ai=ab[ab.length-2];break}if(l){O=new Array()}
154if(A){D("\tPopping "+aa[ae][1]+" off the stack...") 155}for(var Z=0;Z<aa[ae][1];Z++){if(l){O.push(P.pop())}N.pop();ab.pop()}V=-1;for(var Z=0; 156Z<Y[N[N.length-1]].length;Z+=2){if(Y[N[N.length-1]][Z]==aa[ae][0]){V=Y[N[N.length-1]][Z+1]; 157break}}if(l){var S=new M();S.sym=ad[aa[ae][0]];S.att=new String();S.child=O.reverse(); 158P.push(T.length);T.push(S)}if(ae==0){break}if(A){D("\tPushing non-terminal "+ad[aa[ae][0]]) 159}N.push(V);ab.push(ai)}}if(A){D("\nParse complete.")}if(l){if(U==0){D("\n\n--- Parse tree ---"); 160a(0,T,P)}else{D("\n\nParse tree cannot be viewed. There where parse errors.")}}return U 161}function a(M,N,L){var Q=new String();for(var P=0;P<L.length;P++){Q="";for(var O=M; 162O>0;O--){Q+="\t"}Q+=N[L[P]].sym;if(N[L[P]].att!=""){Q+=" >"+N[L[P]].att+"<"}D(Q); 163if(N[L[P]].child.length>0){a(M+1,N,N[L[P]].child)}}}if(!Array.prototype.map){Array.prototype.map=function(M){var L=this.length; 164if(typeof M!="function"){throw new TypeError()}var P=new Array(L);var O=arguments[1]; 165for(var N=0;N<L;N++){if(N in this){P[N]=M.call(O,this[N],N,this)}}return P}}function H(L){return{x:L%8,y:L>>3} 166}function K(L,M){return M*8+L}function E(L){return 2*parseInt(L.substr(0,L.length-1)) 167}function I(L){return L.charCodeAt(0)-"a".charCodeAt(0)+8*(7-L.charCodeAt(1)+"1".charCodeAt(0)) 168}function w(L){return"abcdefgh".charAt(L%8)+"87654321".charAt(L>>3)}function e(M,L){this[M]=L; 169return this}function r(N,M,L){this.name=N;this.color=M;this.specs=L;this.setv=e;this.xfen=function(){var O=this.name.toLowerCase() in c.override?c.override[this.name.toLowerCase()]:c.glyphs[this.name.toLowerCase()]; 170if(this.color=="w"){O=O.toUpperCase()}else{O=O.toLowerCase()}if(this.color=="n"){O="!"+O 171}if(this.specs!=""){O="b"+O}if(O.length>1){O="("+O+")"}return O};this.inverseColor=function(){if(this.color=="w"){this.color="b" 172}else{if(this.color=="b"){this.color="w"}}};this.asText=function(){var O=this.name; 173if(c.notation[O]){O=c.notation[O]}return(this.color=="n"?"n":"")+this.specs+O}}function B(L){var M="b"; 174if(L.charAt(0)=="!"){M="n";L=L.substring(1)}else{if(L.toUpperCase()==L){M="w"}}return new r(L.toUpperCase(),M,[]) 175}function z(){this.override={};this.notation={};this.glyphs={"15":"s3","16":"s3","24":"s3","25":"s3","35":"s3","36":"s3","37":"s3",al:"b3",am:"a",an:"s1",ao:"s1",ar:"b2",b:"b",b1:"x",b2:"x",b3:"x",be:"x",bh:"b2",bi:"x",bk:"s1",bl:"b3",bm:"x",bn:"s2",bo:"x",bp:"p2",br:"x",bs:"p2",bt:"x",bu:"s1",bw:"x",c:"b1",ca:"s3",cg:"q1",ch:"s3",cp:"p3",cr:"s3",ct:"x",cy:"x",da:"r1",db:"b1",dg:"q1",dk:"r1","do":"q3",dr:"x",ds:"x",du:"p1",ea:"q3",eh:"q1",ek:"x",em:"x",eq:"e",et:"x",f:"o",fe:"b3",fr:"x",g:"q2",g2:"q1",g3:"q3",ge:"x",gf:"x",gh:"s1",gi:"s1",gl:"x",gn:"x",gr:"x",gt:"x",ha:"q3",k:"k",ka:"q3",kl:"q3",kh:"k2",kl:"q1",ko:"x",kp:"s2",l:"q1",lb:"b1",le:"q3",lh:"x",li:"q3",ln:"s1",lr:"r1",ls:"f",m:"x",ma:"s1",mg:"x",mh:"x",ml:"x",mm:"x",mo:"s3",mp:"p3",ms:"s3",n:"s2",na:"s3",nd:"b3",ne:"e",nh:"s3",nl:"s3",o:"o",oa:"s1",ok:"x",or:"e1",p:"p",pa:"r3",po:"k3",pp:"p2",pr:"x",q:"q",qe:"e",qf:"e",qn:"x",qq:"x",r:"r",ra:"x",rb:"b3",re:"r1",rf:"x",rh:"r2",rk:"x",rl:"r3",rm:"r1",rn:"f",rp:"f",ro:"f",rr:"x",rt:"q1",rw:"x",s:"s",s1:"s2",s2:"s2",s3:"s2",s4:"s2",sh:"x",si:"q3",sk:"a",so:"x",sp:"p1",sq:"x",ss:"x",sw:"x",th:"x",tr:"r3",uu:"o",va:"b3",wa:"x",we:"r2",wr:"x",z:"s3",zh:"x",zr:"x",ze:"x",ms:"s3"}; 176this.pprops=["chameleon","jigger","kamikaze","paralysing","royal","volage","functionary","halfneutral","hurdlecolourchanging","protean","magic","uncapturable"] 177}function G(){this.depth=0;this.childIsThreat=false;this.setv=e;this.comments=[]; 178this.unflatten=function(L,M){this.children=[];while(M<L.length){if(this.depth+1==L[M].depth){this.children.push(L[M]); 179M=L[M].unflatten(L,M+1)}else{if(this.depth+1<L[M].depth){var N=new d(this.depth+1,this.childIsThreat); 180this.children.push(N);M=N.unflatten(L,M)}else{return M}}}};this.linkContinuedTwins=function(){for(var L=1; 181L<this.children.length;L++){if(this.children[L].isContinued){this.children[L].anticipator=this.children[L-1] 182}}};this.print=function(L,N){this.make(N);L.add(this.asText(),N,true,this.getCommentsAsText()); 183for(var M=0;M<this.children.length;M++){L.add(this.children[M].fullPrefix(),N,false,""); 184this.children[M].print(L,N)}this.unmake(N)};this.getCommentsAsText=function(){var L=""; 185for(var M=0;M<this.comments.length;M++){if(this.comments[M]!="display-departure-square"){L+=this.comments[M] 186}}return L};this.printChildren=function(L,N){for(var M=0;M<this.children.length;M++){if(this.children.length>1){if(!this.children[M].noNewLine()){L.add("\n",N,false,""); 187L.add(M>0?" ":" ",N,M>0,"")}L.add(this.children[M].fullPrefix(),N,false,"")}else{if(this.depth==1){L.add("\n",N,false,"") 188}if(this.isSetPlay()&&(this.depth==2)){L.add(this.children[M].fullPrefix(),N,false,"") 189}else{L.add(this.children[M].shortPrefix(),N,false,"")}}this.children[M].print(L,N) 190}};this.noNewLine=function(){return false};this.isSetPlay=function(){return false 191};this.fullPrefix=function(){var L="";if(this.depth<3){L+="\n"}else{for(var M=0;M<this.depth-2; 192M++){L+=" "}}L+=this.depth>>1;L+=(this.depth%2!=0)?"...":".";return L};this.shortPrefix=function(){return(this.depth%2!=0)?"":(this.depth>>1)+"." 193};this.make=this.unmake=function(L){L.flip()};this.asText=function(){return"***"} 194}__node=new G();function u(){this.html="";this.add=function(N,M,L,O){if(N==""){return 195}this.html+=L?this.anchor(M.toFen(),N):N;
195if(O!=""){this.html+='<span class="comment">'+O+"</span> " 196}};this.anchor=function(L,M){return'<a href="#" fen="'+L+'">'+M+"</a> "};this.build=function(M,L){M.print(this,L); 197return this.html}}function d(M,L){this.depth=M;this.is_threat=L;this.asText=function(){return this.is_threat?"~ ":"" 198};this.print=function(N,O){this.make(O);N.add(this.asText(),O,false,this.getCommentsAsText()); 199this.printChildren(N,O);this.unmake(O)};this.fullPrefix=this.shortPrefix=function(){return"" 200};this.noNewLine=function(){return this.is_threat};this.isSetPlay=function(){return !this.is_threat 201}}d.prototype=__node;function q(M,L){this.depth=1;this.id=M;this.isContinued=L;this.anticipator=null; 202this.commands=[];this.asText=function(){return this.id+")"};this.fullPrefix=function(){return"\n\n" 203};this.make=function(N){this.oldboard=N.serialize();N.flip();if(this.anticipator!=null){this.anticipator.make(N) 204}for(var O=0;O<this.commands.length;O++){this.commands[O].exec(N)}};this.unmake=function(N){N.unserialize(this.oldboard) 205}}q.prototype=__node;__twinNode=new q();function g(){this.asText=this.fullPrefix=this.shortPrefix=function(){return"" 206};this.print=function(L,M){this.make(M);this.printChildren(L,M);this.unmake(M)}}g.prototype=__twinNode; 207function j(M,L){this.name=M;this.args=L;this.exec=function(N){switch(this.name){case"Move":N.add(N.board[this.args[0]],this.args[1]); 208N.drop(this.args[0]);break;case"Exchange":var O=N.board[this.args[0]];N.board[this.args[0]]=N.board[this.args[1]]; 209N.board[this.args[1]]=O;break;case"Remove":N.drop(this.args[0]);break;case"Add":N.add(this.args[0],this.args[1]); 210break;case"Rotate":N.rotate(this.args[0]);break;case"Mirror":N.mirror(this.args[0],this.args[1]); 211break;case"Shift":N.shift(this.args[0],this.args[1]);break;case"PolishType":N.polishTwin(); 212break;case"Imitator":N.imitators=L;break}}}function v(N,L,M){this.departure=N;this.arrival=L; 213this.departant=null;this.promotion=null;this.capture=M;this.recolorings={w:[],b:[],n:[]}; 214this.rebirths=[];this.antirebirths=[];this.promotions=[];this.imitators=[];this.removals=[]; 215this.annotation="";this.checksign="";this.setEnPassant=function(){var P=H(this.departure); 216var O=H(this.arrival);this.capture=K(O.x,P.y);return this};this.make=function(O){this.assertSemantics(O); 217this.oldboard=O.serialize();if(this.promotion==null){this.promotion=O.board[this.departure] 218}if(this.promotion.color=="u"){if(O.board[this.departure].color!="u"){this.promotion.color=O.board[this.departure].color 219}else{this.promotion.color=O.getStm()}}if(this.capture!=-1){O.drop(this.capture)}O.drop(this.departure); 220O.add(this.promotion,this.arrival);O.flip();for(var P in this.recolorings){for(var Q=0; 221Q<this.recolorings[P].length;Q++){if(O.board[this.recolorings[P][Q]]!=null){O.board[this.recolorings[P][Q]].color=P 222}}}for(var Q=0;Q<this.antirebirths.length;Q++){O.move(this.antirebirths[Q].from,this.antirebirths[Q].to); 223if(this.antirebirths[Q].prom!=null){O.board[this.antirebirths[Q].to].name=this.antirebirths[Q].prom.name; 224O.board[this.antirebirths[Q].to].specs=this.antirebirths[Q].prom.specs}}for(var Q=0; 225Q<this.rebirths.length;Q++){O.add(this.rebirths[Q].prom==null?this.rebirths[Q].unit:this.rebirths[Q].prom,this.rebirths[Q].at) 226}for(var Q=0;Q<this.promotions.length;Q++){O.board[this.promotions[Q].at].name=this.promotions[Q].unit.name; 227if(this.promotions[Q].unit.specs!=""){O.board[this.promotions[Q].at].specs=this.promotions[Q].unit.specs 228}}O.imitators=this.imitators;for(var Q=0;Q<this.removals.length;Q++){O.drop(this.removals[Q]) 229}};this.unmake=function(O){O.unserialize(this.oldboard)};this.asText=function(){var R=this.departant.asText(); 230if(this.departant.name.toUpperCase()=="P"){R=(this.capture!=-1)?w(this.departure).charAt(0):"" 231}var Q="";if(this.comments.indexOf("display-departure-square")!=-1){Q+=w(this.departure); 232if(this.capture==-1){Q+="-"}}var P=w(this.arrival);if(this.capture!=-1){if(this.capture==this.arrival){P="x"+w(this.arrival) 233}else{P="x"+w(this.capture)+"→"+w(this.arrival)}}var O=R+Q+P;if(this.departant.asText()!=this.promotion.asText()){var S=this.promotion.asText(); 234if((this.departant.color!=this.promotion.color)&&(this.promotion.color!="n")&&(this.departant.color!="u")){S=this.promotion.color+S 235}O+="="+S}O+=this.imitatorsAsText()+this.recoloringsAsText()+this.antirebirthsAsText()+this.rebirthsAsText()+this.promotionsAsText()+this.removalsAsText(); 236if(this.checksign!=""){O+=this.checksign}if(this.annotation!=""){O+=this.annotation 237}return O};this.removalsAsText=function(){acc=[];for(var O in this.removals){acc.push("[-"+w(this.removals[O])+"]") 238}if(acc.length>0){return" "+acc.join("")}return""};this.imitatorsAsText=function(){return this.imitators.length==0?"":" (I"+this.imitators.map(w).join(",")+")" 239};this.recoloringsAsText=function(){acc1=[];for(var O in this.recolorings){if(this.recolorings[O].length>0){acc2=[]; 240for(var P=0;P<this.recolorings[O].length;P++){acc2.push(w(this.recolorings[O][P])) 241}acc1.push("["+acc2.join(",")+"="+O+"]")}}if(acc1.length>0){return" "+acc1.join("") 242}return""};this.antirebirthsAsText=function(){acc=[];for(var P=0;P<this.antirebirths.length; 243P++){var O=(this.antirebirths[P].prom==null)?"":"="+this.antirebirths[P].prom.asText(); 244acc.push("("+this.antirebirths[P].unit.asText()+w(this.antirebirths[P].from)+"→"+w(this.antirebirths[P].to)+O+")") 245}
245if(acc.length>0){return" "+acc.join(" ")}return""};this.rebirthsAsText=function(){acc=[]; 246for(var P=0;P<this.rebirths.length;P++){var O=(this.rebirths[P].prom==null)?"":"="+this.rebirths[P].prom.asText(); 247acc.push("(+"+this.rebirths[P].unit.asText()+w(this.rebirths[P].at)+O+")")}if(acc.length>0){return" "+acc.join(" ") 248}return""};this.promotionsAsText=function(){acc=[];for(var O=0;O<this.promotions.length; 249O++){acc.push("("+w(this.promotions[O].at)+"="+this.promotions[O].unit.asText()+")") 250}if(acc.length>0){return" "+acc.join(" ")}return""};this.print=function(O,P){this.make(P); 251var Q=this.asText();O.add(Q,P,true,this.getCommentsAsText());this.printChildren(O,P); 252this.unmake(P)};this.assertSemantics=function(O){var P=null;if(O.board[this.departure]==null){P="Departure from empty square "+w(this.departure) 253}else{if((O.board[this.arrival]!=null)&&(this.capture==-1)){P="Arrival square "+w(this.arrival)+" is occupied but no capture is specified" 254}else{if((O.board[this.arrival]!=null)&&(this.capture!=this.arrival)&&(this.arrival!=this.departure)){P="Arrival square "+w(this.arrival)+" is occupied but capture is specified at "+w(this.capture) 255}else{if((this.capture!=-1)&&(O.board[this.capture]==null)){P="Capture at empty square "+w(this.capture) 256}}}}if(P){throw"Semantic error at depth "+this.depth+": "+P}}}v.prototype=__node; 257__moveNode=new v(-1,-1,-1);function n(L){this.isKingSide=L;this.make=function(M){this.oldboard=M.serialize(); 258var N=M.btm?0:56;if(this.isKingSide){M.move(I("e8")+N,I("g8")+N);M.move(I("h8")+N,I("f8")+N) 259}else{M.move(I("e8")+N,I("c8")+N);M.move(I("a8")+N,I("d8")+N)}M.flip()};this.asText=function(){return this.isKingSide?"0-0":"0-0-0" 260}}n.prototype=__moveNode;function y(){this.add=function(M,L){if((L>63)||(L<0)){return 261}this.board[L]=M};this.drop=function(L){this.add(null,L)};this.clear=function(){this.board=new Array(64); 262this.imitators=[];for(i=0;i<64;i++){this.drop(i)}};this.move=function(M,L){this.add(this.board[M],L); 263this.drop(M)};this.transform=function(N){var M=new y();for(var L=0;L<64;L++){if(this.board[L]!=null){p=H(L); 264M.add(this.board[L],N(p.x,p.y))}}this.board=M.board};this.rotate=function(L){switch(L){case 270:this.rotate(90); 265case 180:this.rotate(90);case 90:this.transform(function(M,N){return K(N,7-M)})}}; 266this.shift=function(M,L){pa=H(M);pb=H(L);this.transform(function(N,O){return K(N+pb.x-pa.x,O+pb.y-pa.y) 267})};this.mirror=function(M,L){if(M==56){if(L==63){this.transform(function(N,O){return K(7-N,O) 268})}else{if(L==7){this.transform(function(N,O){return K(O,N)})}else{if(L==0){this.transform(function(N,O){return K(N,7-O) 269})}}}}else{if((M==63)&&(L==0)){this.transform(function(N,O){return K(7-O,7-N)})}}}; 270this.polishTwin=function(M){for(var L=0;L<64;L++){if(this.board[L]!=null){this.board[L].inverseColor() 271}}};this.toFen=function(){var L="";var O=0;for(var M=0;M<64;M++){if((M>0)&&(M%8==0)){if(O>0){L+=O 272}L+="/";O=0}var N="";if(this.board[M]!=null){N=this.board[M].xfen()}if(this.imitators.indexOf(M)!=-1){N="(!o)" 273}if(N!=""){if(O>0){L+=O}L+=N;O=0}else{O++}}if(O>0){L+=O}return L};this.fromFen=function(L){this.clear(); 274var N=0;var M=0;while((M<64)&&(N<L.length)){if("12345678".indexOf(L.charAt(N))!=-1){M=M+parseInt(L.charAt(N)); 275N=N+1}else{if("("==L.charAt(N)){idx=L.indexOf(")",N);if(idx!=-1){this.add(B(L.substring(N+1,idx)),M); 276M=M+1;N=idx+1}else{N=N+1}}else{if("/"==L.charAt(N)){N=N+1}else{this.add(B(L.charAt(N)),M); 277M=M+1;N=N+1}}}}};this.toAlgebraic=function(){var L={white:[],black:[],neutral:[]}; 278var N={w:"white",b:"black",n:"neutral"};for(var M=0;M<64;M++){if(this.board[M]!=null){L[N[this.board[M].color]].push(this.board[M].name+w(M)) 279}}return L};this.fromPiecesClause=function(L){this.clear();var U=L.trim().toLowerCase().split("\n"); 280for(var Q=0;Q<U.length;Q++){var S=U[Q].trim().split(/\s+/);if(["white","black","neutral"].indexOf(S[0])==-1){continue 281}var O=S[0][0];var M="";var P=1;while((P<S.length)&&(c.pprops.indexOf(S[P])!=-1)){M+=S[P][0]; 282P=P+1}var R;while((P<S.length)&&(R=S[P].match(/([a-z][0-9a-z]?)([a-h][1-8])+/))){name=R[1].toUpperCase(); 283for(var N=0;N<(S[P].length-name.length)/2;N++){var T=I(S[P].substr(name.length+N*2,2)); 284if("i"==name.toLowerCase()){this.imitators.push(T)}else{this.add(new r(name,O,M),T) 285}}P=P+1}}};this.fromAlgebraic=function(P){for(color in P){if(["white","black","neutral"].indexOf(color)==-1){continue 286}for(var N=0;N<P[color].length;N++){var Q=P[color][N].split(/\s+/);var R="";for(var M=0; 287M<Q.length-2;M++){if(c.pprops.indexOf(Q[M])!=-1){R+=Q[M][0]}}if(matches=Q[Q.length-1].toLowerCase().match(/([a-z][0-9a-z]?)([a-h][1-8])+/)){var L=matches[1].toUpperCase(); 288var O=I(matches[2]);this.add(new r(L,color[0],R),O)}}}};this.toPiecesClause=function(N){var L=""; 289for(color in N){for(var M=0;M<N[color].length;M++){L+=color+" "+N[color][M]+"\n"}}console.log(L); 290return L};this.xfen2Html=function(N){var L=new Array(64);for(var P=0;P<64;P++){L[P]="" 291}var P=0;var O=0;while((O<64)&&(P<N.length)){if("12345678".indexOf(N.charAt(P))!=-1){O=O+parseInt(N.charAt(P)); 292P=P+1}else{if("("==N.charAt(P)){idx=N.indexOf(")",P);if(idx!=-1){L[O]=N.substring(P+1,idx); 293O=O+1;P=idx+1}else{P=P+1}}else{if("/"==N.charAt(P)){P=P+1}else{L[O]=N.charAt(P);O=O+1; 294P=P+1}}}}var M="";for(var P=0;P<8;P++){for(var O=0;O<8;O++){M+='<a class="cp'+t(L[P*8+O],(P+O)%2)+'"></a>' 295}}return M};this.toHtml=function(){var L="";for(var N=0;N<8;N++){for(var M=0;M<8; 296M++){var O=this.board[N*8+M]==null?"":this.board[N*8+M].xfen();L+='<a class="cp'+t(O,(N+M)%2)+'"></a>' 297}}return L};this.btm=true;this.flip=function(){this.btm=!this.btm};
297this.getStm=function(){return this.btm?"b":"w" 298};this.setStm=function(L){this.btm=(L=="b")};this.serialize=function(){return JSON.stringify(this) 299};this.unserialize=function(M){o=JSON.parse(M);for(var L=0;L<64;L++){if(o.board[L]!=null){this.board[L]=new r(o.board[L].name,o.board[L].color,o.board[L].specs) 300}else{this.board[L]=null}}this.btm=o.btm;this.imitators=o.imitators};this.piecesCount=function(){var M={w:0,b:0,n:0}; 301for(var L=0;L<64;L++){if(this.board[L]!=null){M[this.board[L].color]++}}var N=M.w+"+"+M.b; 302if(M.n>0){N=N+"+"+M.n}return N};this.clear()}function t(M,L){if(""==M){return["EQ","FQ"][L] 303}sprite={};matches=M.match(/^\(?(B?)(!?)([kqrbsnpeaofwdx])([1-7])?\)?$/i);if(matches){sprite={glyph:matches[3].toLowerCase(),rot:matches[4],border:(matches[1]!="")}; 304if(matches[2]!=""){sprite.color="neutral"}else{if(sprite.glyph==matches[3]){sprite.color="black" 305}else{sprite.color="white"}}if(!sprite.rot){sprite.rot=0}}else{sprite={glyph:"x",rot:0,color:"white",border:false} 306}if(sprite.glyph=="x"){sprite.color="white"}rot4="kqrbsnp";rot2="e";rot1="aofwd"; 307baseGlyphs={k:[[0,0],[0,17]],q:[[0,2],[0,18]],r:[[0,4],[0,19]],b:[[0,6],[0,20]],s:[[0,8],[0,21]],n:[[0,8],[0,21]],p:[[0,10],[0,22]],e:[[0,14],[0,16]],a:[[4,15],[4,15]],o:[[0,15],[6,13]],f:[[0,12],[0,12]],w:[[4,12],[4,12]],d:[[0,13],[0,13]],x:[[4,13],[4,13]]}; 308s=0;if(sprite.color=="neutral"){s=baseGlyphs[sprite.glyph][1][0]+8*baseGlyphs[sprite.glyph][1][1] 309}else{if((sprite.color=="white")){s=baseGlyphs[sprite.glyph][0][0]+8*baseGlyphs[sprite.glyph][0][1] 310}else{s=baseGlyphs[sprite.glyph][0][0]+8*baseGlyphs[sprite.glyph][0][1]+2}}if(sprite.rot>3){sprite.rot=sprite.rot%4; 311if(0==sprite.rot){sprite.rot=1}}if(-1!=rot4.indexOf(sprite.glyph)){if(sprite.color=="neutral"){s+=2*sprite.rot 312}else{s+=4*sprite.rot}}else{if(-1!=rot2.indexOf(sprite.glyph)){if(sprite.color=="neutral"){s+=2*(sprite.rot%2) 313}else{s+=4*(sprite.rot%2)}}}s+=L;ABC="ABCDEFGHIJKLMNOPQRSTUVW";classList=ABC.charAt(s%8)+ABC.charAt(s/8); 314if(sprite.border){classList+=" boxed"}return classList}var F=null;var c=new z();var k=new y(); 315function C(N){var L=N.attr("fen");if(!L){return}var M=h("#"+N.parent().attr("target")); 316M.html('<div class="p2w-nav-fwd"></div><div class="p2w-nav-bwd"></div>'+k.xfen2Html(L)); 317N.siblings().removeClass("active");N.addClass("active");h(".p2w-nav-fwd").bind("click",Py2Web.navigateForward); 318h(".p2w-nav-bwd").bind("click",Py2Web.navigateBackward)}function f(L){L=L.replace(/<-->/g,"<-->"); 319L=L.replace(/-->/g,"-->");L=L.replace(/==>/g,"==>");return L}return{navigateForward:function(L){L.preventDefault(); 320C(h('.p2w-solution[target="'+h(this).parent().attr("id")+'"]').children(".active").nextAll("a").first()) 321},navigateBackward:function(L){L.preventDefault();C(h('.p2w-solution[target="'+h(this).parent().attr("id")+'"]').children(".active").prevAll("a").first()) 322},init:function(M,L,N){if(typeof(L)==="undefined"){L=false}if(typeof(N)==="undefined"){N=false 323}var O=0;h(M+" .p2w-solution").each(function(){var X=new y();var P=h("#"+h(this).attr("target")).text(); 324var Z=h("#"+h(this).attr("target")).attr("glyphs");c.override=Z?JSON.parse(Z):{}; 325var W=h(this).attr("notation");c.notation=W?JSON.parse(W):{};X.fromPiecesClause(P); 326X.setStm(h(this).attr("full-move")=="wb"?"w":"b");h("#"+h(this).attr("target")).html(X.toHtml()); 327var Y=new Array();var Q=new Array();var R=0;var U=h("<textarea />").html(h(this).html()).text(); 328if(L){U=f(h(this).html())}if((R=x(U,Y,Q))>0){for(i=0;i<R;i++){if(!N){console.log('Parse error near "'+U.substr(Y[i])+'", expecting "'+Q[i].join()+'"') 329}}return}try{var V=new u();var S=V.build(F,X);h(this).html(S)}catch(T){if(!N){console.log(T) 330}return}O++;C(h(this).attr("start-node")=="last"?h(this).children("a").last():h(this).children("a").first()); 331h(this).children("a").click(function(aa){aa.preventDefault();C(h(this))})});return O 332},Board:y}}(jQuery);jQuery(document).ready(function(){Py2Web.init("body")});
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.