var goc = 3;
var god = 0;
var gopf = false;
var gowc = 0;
var gok = false;
var gc = 0;
var gsl = 0;
var gsr = 0;
var gs = 0;
var gso = 0;
var gtf = false;
var gtid = '';
var gto = false;
var gti = 0;
function famf(){
var fx;
var p;
var ct = '';
var st = '';
fte(0);
gtf = false;
for (fx = 0; fx < gsf.length; fx++){
p = gsf[fx];
gf[fx] = p;
};
fcf(gf);
famfo(true);
fcp(go,goi,gok,goc,god);
fcn(go,goi,gok);
gc = 0; ct = '';
gs = 0; st = '0';
if (gol.length >= 2 && goli >= 0) {
fcs('[' + (goli + 1) + ']',st);
} else {
fcs(ct,st);
};
gso = 0;
fcy(gs,gso);
}
function famfo(v){
if (go.length > goi) fcof(goi,false);
if (go != '' && go.length >= 1){
goi = 0;
if (v == true) fcof(goi,true);
} else {
goi = -1;
};
goc = 3; god = 0;
gopf = false;
gowc = 0;
gok = false;
}
function fam(oi){
var fx;
var ct = '';
var st = '';
var om;
var lb = 0;
fte(0);
if (go == '') return;
for (fx = 0; fx < gsf.length; fx++){
p = gsf[fx];
gf[fx] = p;
};
famfo(false);
gopf = false;
gowc = 0;
gc = 0; ct = '';
gs = 0; st = '0';
gso = 0;
while (goi < go.length){
if (go.length == 0 || go == '') return;
if (goi < 0 && go.length >= 1){
goi++;
gopf = false;
};
if (goi >= oi) break;
if (fap(false) == true){
gso = Math.floor(gs / 70) * 70;
ct = '';
st = gs;
} else if (faf(false) == true){
ct = '';
if (gc >= 1) ct = gc + 'A';
st = gs;
} else if (fae(false) == true){
ct = gc + 'A';
st = gsl + ' x ' + gsr;
} else {
if (goi < (go.length - 1)){
goi++;
gopf = false;
if (goi >= oi) break;
} else {
break;
};
ct = '';
st = gs;
};
};
gok = false;
goc = 3; god = 0;
fcp(go,goi,gok,goc,god);
fcof(goi,true);
fcn(go,goi,gok);
if (gec != 4) st = '?';
fcf(gf);
fcs(ct,st);
fcy(gs,gso);
}
function famp(){
var oi = goi;
if (oi <= 0) {famf(); return};
if (gopf == true || gok == true) { fam(oi); return};
oi--;
if (oi <= 0){
famf();
} else {
fam(oi);
};
}
function famn(){
var ct = '';
var st = '';
ftes();
if (goi < 0 && go.length >= 1){
goi++;
fcof(goi,true);
gopf = false;
};
if (fap(true) == true){
gso = Math.floor(gs / 70) * 70;
ct = '';
st = gs;
gok = faec();
} else if (faf(true) == true){
ct = '';
if (gc >= 1) ct = gc + 'A';
st = gs;
gok = faec();
} else if (fae(true) == true){
ct = gc + 'A';
st = gsl + ' x ' + gsr;
gok = true;
} else {
ct = '';
st = gs;
};
if (gec != 4) st = '?';
if (gok == false){
fcof(goi,false);
goi++;
if (goi >= go.length){
goi = (go.length - 1);
gok = true;
} else {
gc = 0;
};
fcof(goi,true);
if (gowc == 0) gopf = false;
};
fcs(ct,st);
fcy(gs,gso);
goc = 3; god = 0;
fcn(go,goi,gok);
fcp(go,goi,gok,goc,god);
ftss(gti);
}
function fap(v){
var pf = false;
var ci;
var p1, p2;
var tn;
var x, dr;
var bc, ac;
if (gok == true) return false;
if (gopf == true) return false;
if (goi < 0 || goi >= go.length) return false;
if (go == '') return false;
pf = true;
p1 = gdc.indexOf(go[goi].charAt(0),0);
if (p1 >= 1 && p1 <= 5){
p2 = gdc.indexOf(go[goi].charAt(1),0);
x = gdc.indexOf(go[goi].charAt(2),0);
if (x == 7){
gopf = false;
gtf=false;
pf = false;
} else {
dr = gdc.indexOf(go[goi].charAt(3),0);
fapp(p1,p2,x,dr,v);
gopf = true;
};
} else if (p1 == 6){
bc = gdc.indexOf(go[goi].charAt(1),0);
ci = gdc.indexOf(go[goi].charAt(2),0);
tn = 64;
for (x = 1; x <= 6; x++){
ac = Math.floor(ci % tn);
tn = Math.floor(tn / 2);
ac = Math.floor(ac / tn);
fapo(x,(bc + ac),v);
};
gopf = true;
} else if (p1 == 8){
ci = gdc.indexOf(go[goi].charAt(1),0);
if (gowc >= ci){
gowc = 0;
gopf = true;
} else {
gowc++;
};
} else {
gopf = true;
};
return pf;
}
function fapp(p1,p2,x,dr,v){
var i;
var y;
var p;
var pl = new Array(2);
var xl = new Array(2);
var fx;
if (dr == 2){
pl[0] = p2;
pl[1] = p1;
} else {
pl[0] = p1;
pl[1] = p2;
};
xl[0] = x;
switch (dr){
case 0: xl[1] = x; break;
case 1: xl[1] = x + 1; break;
case 2: xl[1] = x; break;
case 3: xl[1] = x - 1; break;
default: xl[1] = x;
};
for (i = 0; i <= 1; i++){
if (xl[i] < 1 || xl[i] > 6) continue;
p = pl[i];
y = 0;
while (y <= 13){
fx = (y * 8) + xl[i];
if (gf[fx] != 0){
if (y >= 1){
fx = ((y - 1) * 8) + xl[i];
gf[fx] = p;
if (v == true) {
if ((y - 1) > 0 || gom == 0){
fci('idF' + fx, gpf[p]);
} else if (gom == 1){
} else if (gom == 2){
fci('idF' + fx, gqf);
};
};
};
break;
};
y++;
};
};
}
function fapo(x,fc,v){
var i;
var y;
var p;
var fx;
p = 6;
y = 0;
while (y <= 13){
fx = (y * 8) + x;
if (gf[fx] != 0) break;
y++;
};
if (y <= 13){
for (i = 1; i <= fc; i++){
y--;
if (y < 0) break;
fx = (y * 8) + x;
gf[fx] = p;
if (v == true) {
if (y > 0 || gom == 0){
fci('idF' + fx, gpf[p]);
} else if (gom == 1){
} else if (gom == 2){
fci('idF' + fx, gqf);
};
};
};
};
}
function faf(v){
var ff;
var x, y;
var xf;
var fx;
var p;
ff = false;
for (x = 1; x <= 6; x++){
xf = 0;
for (y = 12; y >= 0; y--){
fx = (y * 8) + x;
p = gf[fx];
if (p == 0){
xf++;
} else if (p == 10){
gf[fx] = 0;
if (v == true) fci('idF' + fx, gpf[0]);
xf++;
ff = true;
} else if (xf > 0){
if (p == 7){
xf = 0;
} else {
gf[fx + (xf * 8)] = p;
gf[fx] = 0;
if (v == true) fci('idF' + (fx + (xf * 8)), gpf[p]);
if (v == true) {
if (y > 0 || gom != 1) fci('idF' + fx, gpf[0]);
};
ff = true;
};
};
};
};
return ff;
}
function faec(){
var ef = false;
var ckf = new Array(112);
var cke = new Array(72);
var i;
var ckm, ckn;
var fx;
var p;
var d;
var cko;
for (i = 0; i < 112; i++) ckf[i] = 0;
for (x = 1; x < 7; x++)for (y = 1; y < 13; y++){
fx = (y * 8) + x;
p = gf[fx];
if (p >= 1 && p <= 5 && ckf[fx] == 0){
ckn = 0; ckm = 0;
cko = gf[fx];
cke[0] = fx;
ckf[fx] = 1;
while (ckn <= ckm){
for(d = 0; d <= 3; d++){
fx = cke[ckn] + gdr[d];
if(fx >= 9 && gf[fx] == cko && ckf[fx] == 0){
ckm++;
cke[ckm] = fx;
ckf[fx] = 2;
};
};
ckn++;
};
if(ckm >= (gec - 1)){
ef = true;
break;
};
};
};
return ef;
}
function fae(v){
var ef = false;
var ckf = new Array(112);
var cke = new Array(72);
var i;
var bn = 0;
var bna = 0;
var bnb = 0;
var bnc = 0;
var bnbc = new Array(5);
var as = 0;
var ckm, ckn;
var fx;
var p;
var d;
var cko;
var st = 0;
for (i = 0; i < 5; i++) bnbc[i] = 0;
for (i = 0; i < 112; i++) ckf[i] = 0;
for (x = 1; x < 7; x++){
for (y = 1; y < 13; y++){
fx = (y * 8) + x;
p = gf[fx];
if (p >= 1 && p <= 5 && ckf[fx] == 0){
ckn = 0; ckm = 0;
cko = gf[fx];
cke[0] = fx;
ckf[fx] = 1;
while (ckn <= ckm){
for(d = 0; d <= 3; d++){
fx = cke[ckn] + gdr[d];
if(fx >= 9 && gf[fx] == cko && ckf[fx] == 0){
ckm++;
cke[ckm] = fx;
ckf[fx] = 2;
};
};
ckn++;
};
if(ckm >= (gec - 1)){
for(i = 0; i <= ckm; i++){
fx = cke[i];
gf[fx] = 10;
if (v == true) fci('idF' + fx, gpf[10]);
for(d = 0; d <= 3; d++){
fx = cke[i] + gdr[d];
if(fx >= 9) {
if (gf[fx] == 6){
gf[fx] = 10;
if (v == true) fci('idF' + fx, gpf[10]);
if (ckf[fx] == 3) bn = bn + 7;
} else if (gf[fx] == 9){
gf[fx] = 6;
if (v == true) fci('idF' + fx, gpf[6]);
bn = bn + 1;
ckf[fx] = 3;
};
};
};
};
bn = bn + ckm + 1;
if (ckm > 9){
bnc = bnc + 10;
} else {
if (ckm >= 4) bnc = bnc + (ckm - 2);
};
bnbc[cko - 1] = 1;
};
};
};
}
for (i = 0; i <=4; i++){
if (bnbc[i] > 0){
if (bnb == 0){ bnb = 3 } else { bnb = bnb * 2 };
};
};
if (bnb == 0){
gc = 0;
ef = false;
gso = Math.floor(gs / 70) * 70;
} else {
gc++;
ef = true;
};
if (bnb <= 3){ bnb = 0 } else { bnb = bnb / 2 };
bna = (gc - 3) * 32;
if (bna > 672) bna = 672;
 else if (bna == 0) bna = 16;
 else if (bna == -32) bna = 8;
 else if (bna == -64) bna = 0;
gsl = (bn * 10);
gsr = (bna + bnb + bnc);
if (gsr == 0) gsr = 1;
st = (gsl * gsr);
if (gof == true) st = st % 65536;
gs = gs + st;
return ef;
}
function ftse(){
if (gto == false){
if (gti != 0) fts(gti);
} else {
fte(gti);
};
}
function fts(ti){
gtf = true;
ftss(ti);
gti = ti;
}
function fte(ti){
gti = ti;
gtf = false;
ftes();
}
function ftss(ti){
if (gtf == false) return;
gtid = setTimeout("famn()",ti);
gto = true;
}
function ftes(){
clearTimeout(gtid);
gto = false;
}
