// Copyright 2005 David J. Nixon. All rights reserved.
var q4=new Array("Domenica","Lunedì","Martedì","Mercoledì","Giovedì","Venerdì","Sabato","Oggi","Gen","Feb","Mar","Apr","Mag","Giu","Lug","Ago","Set","Ott","Nov","Dic"),e9=0,d3=0,r6="$ $ $",s7="Difficoltà",i8=new Array("Facile","Medio","Difficile","Terribile","Diabolico"),o9="SudokuHints.com Risolutore e Puzzles",o5="Puzzles Sudoku con soluzioni  - Vai!",g0="Hi: \n\nEcco un bel sito di puzzles/soluzioni Sudoku:\n\n",k2="Richiesta Commerciale",h6=" cella sinistra",l5=" celle sinistra",l4="r",k0="c",u4="Regola Cella - ",h3=u4+"righe",s5=u4+"colonne",t3=u4+"box",o7="Regola Cifra",h9="un 8",g8="un 8",g1="<b>Suggerimento:</b> Guarda il box $",d1="<b>Grande Suggerimento:</b> Inserisci un $ nel box $",t6="<b>Passo:</b> Inserisci un $ nel box $ in $ ($)",n4="<b>Eliminazione:</b> ",f9=n4+"La '$$' coppia svelata in $ e $ permette al $ di essere eliminato da $",p3=n4+"Il $ nella riga $ si trova nel box $, quindi $ puo essere eliminato dalla cella $ in quel box",f7=n4+"Il $ nella colonna $ si trova nel box $, quindi $ puo essere eliminato dalla cella $ in quel box",o1=n4+"Il $ nel box $ si trova nella riga $, quindi $ puo essere eliminato dalla cella $ in quella riga",l1=n4+"Il $ nel box $ si trova nella colonna $, quindi $ puo essere eliminato dalla cella $ in quella colonna",e7=n4+"Il cosiddetto x-wing di $s in $, $, $, $ permette al $ di essere eliminato da $",t4=n4+"La '$$$' tripla svelata in $, $ e $ permette al $ di essere eliminato da $",m8=n4+"Il cosiddetto Swordfish di $s in $ permette al $ di essere eliminato da $",d7=" e ",i9="<b>Risolto</b>",i6="<b>Confuso:</b> ",e5="indexOf",o2=(navigator.userAgent.toLowerCase()[e5]('safari')<0),m6="123456789",s2="ABCDEFGHI",p1=m6+"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRS",r7="TUVWXYZ",u0="#fff",m3="#bbb",k3="#ddd",g9=document,j2=window,i3="red",r9="hidden",e1="visible",j7="innerHTML",s4="checked",q6="backgroundColor",s3="style",d9="value",i1="contentDocument",t2="substr",f5="charCodeAt",s0="charAt",p6="length",q2="-",t9="<div style='position:absolute;left:",d5="pt arial,sans-serif;",i4="<style type='text/css'>\nbody{font:normal 10"+d5+"}\n</style>\n",g2="r",m7="?pos=",n0="sudk",y=a=t8=i0=s1=j8=q0=i7=m2=0,e,p7,z,p4,l3,w=new Array(5),l9=new Array(5),o3=new Array(81),m=j5=e0=u2="",h5=m+j2.location,e2=d4=1,i2=9,e8,m4,k5,e3=new Array(m,m,m,m,m),r1=new Array(m,m,m,m,m),h7=new Array(m,m,m,m,m),m5,r2,s=new Array(0,0,0,3,3,3,6,6,6);function Init(s8){y=s8;C5();A5();B8();A9();i0=1;var i=h5[e5]("?tab=");if(i>-1)T(h5[s0](i+5));A1()}function A8(){return typeof pz!="undefined"}function M(i){return g9.getElementById(i)}function F(i,j){M(i)[j7]=j}function C6(i,j){M(i)[s3].visibility=j}function B(){if(j2.sidebar)j2.sidebar.addPanel(o9,h5,m);else if(g9.all)j2.external.AddFavorite(h5,o9);else if(j2.opera&&j2.print)return true}function B4(){w[a]=l9[a]=0;Y()}function U(n2){var r,c,b,g3=0;if(n2){if(w[a]>0){b=-l3[a][--w[a]];c=l3[a][--w[a]];r=l3[a][--w[a]];g3=1}}else if(l9[a]>w[a]){r=l3[a][w[a]++];c=l3[a][w[a]++];b=l3[a][w[a]++];g3=1}if(g3){o3[r*9+c][d9]=b>0?b:m;b>0?K(r,c,b):B1();C0();B7();N()}Y()}function A7(r,c,b){var i;while(w[a]>242){for(i=0;i<243;i++)l3[a][i]=l3[a][i+3];w[a]-=3}l3[a][w[a]++]=r;l3[a][w[a]++]=c;l3[a][w[a]++]=b;l9[a]=w[a];Y()}function Y(){M("b5").disabled=!w[a];M("b6").disabled=w[a]==l9[a]}function P(h4){h4.blur();if(i0)M("pr").href="sudoku-print.html"+m7+C3()+u2+i8[a]}function V(f4){var r,c;if(i0){X();if(M("ck")[s4])C0();else if(!f4)for(c=0;c<9;c++)for(r=0;r<9;r++)A0(r,c,u0)}}function C0(){var r,c,rr,cc,i,d2;if(M("ck")[s4])for(c=0;c<9;c++)for(r=0;r<9;r++){d2=1;i=z[r][c];if(i){for(cc=0;cc<9;cc++)if(c-cc&&i==z[r][cc]){d2=0;A0(r,cc,i3)}for(rr=0;rr<9;rr++)if(r-rr&&i==z[rr][c]){d2=0;A0(rr,c,i3)}for(rr=s[r];rr<s[r]+3;rr++)for(cc=s[c];cc<s[c]+3;cc++){if(c-cc&&r-rr&&i==z[rr][cc]){d2=0;A0(rr,cc,i3)}}}A0(r,c,d2?u0:i3)}}function A0(r,c,o4){o3[r*9+c][s3][q6]=M("g"+r+c)[s3][q6]=o4}function X(){var r,c;if(i2<9){for(r=i2;r<=e8;r++)for(c=m4;c<=k5;c++)if(o3[r*9+c][s3][q6]!=i3)A0(r,c,u0);i2=9}}function A5(){var i,j=1,k,r8=l8=0,o0=new Date(),r5,k9,q,p,e6,q5=m6+q2,t1=j2.name;if(A8()){i=h5[e5]("?date=");while(h5[s0](i2*2)!=j7[s0](0)&&h5[s0](17)!=t2[s0](0)&&h5[s0](1)!=j7[s0](0))i++;k9=i+1?h5[t2](i+6,8):m;r5=Math.ceil((o0.getTime()/10000-o0.getTimezoneOffset()*6-111758400)/8640);if(r5<1)r5=1;do{u3=m+o0.getFullYear();q=o0.getMonth();if(q<9)u3+="0";u3+=q+1;if(!l8)l=u3;q=o0.getDate();if(q<10)u3+="0";u3+=q;r5--;g9.forms['fa'].ai.options[j++]=new Option(D(u3,!l8,1),u3+r5);r8=k9==u3?u3+r5:r8==m?u3+r5:r8;o0.setDate(o0.getDate()-1);l8++}while(r5>0&&l8<62);g=p7*p4+d9[f5](0)+j7[f5](0)+f5[f5](1)+p6[f5](0)+s0[f5](0)+t2[f5](0)+s0[f5](1)+p6[f5](1);i=h5[e5](m7);if(i>-1){k9=h5[t2](i+5);if(k9[p6]>0){s1=1;q=k9[t2](0,81).replace(/0/g,q2);while(q[p6]<81)q+=q2;e3[0]=r1[0]=q;C6("t0",r9)}}else if(t1[t2](0,4)==n0){a=t1[t2](4,1)-0;M("pc")[s4]=(t1[t2](6,1)=="1");M("ck")[s4]=(t1[t2](7,1)=="1");u2=t1[t2](8,8);for(i=0;i<5;i++){e3[i]=r1[i]=m;e6=16+i*81;for(j=e6;j<e6+81;j++){p=t1[s0](j);if(q5[e5](p)>-1){e3[i]+=p;r1[i]+=p}if(s2[e5](p)>-1){e3[i]+="-";r1[i]+=m6[s0](p[f5](0)-65)}}}j2.name=m}else A2(r8)}}function R(){if(i0){r1[a]=e3[a];h7[a]=m;B4();A1()}}function L(i){if(A8()&&i){A2(i);C6("t0",e1);s1=0;for(i=0;i<5;i++){h7[i]=m;w[i]=l9[i]=0}Y();B8();A1()}}function C(){var i,q=m;if(i0){X();for(i=0;i<81;i++)q+=q2;r1[a]=q;h7[a]=m;B4();A1()}}function A2(i){var j=n9=g4=0,n3=1,k,p,q,k7,n8,b,n1,n6=m,r4=new Array(0,2,7,6,9,1,5,4,3,8);u2=i[t2](0,8);i=i[t2](8)-0;k7=parseInt(i/426);i%=426;if(k7){do{if(n3&1)n3=(n3>>1)^272;else n3=n3>>1;if(n3<427)if(n9++==i){i=n3-1;g4=1}}while(n3-1&&!g4)}while(M(g2)[j7]!=g2)i++;for(k=0;k<pz[i][p6];k++){b=0;n1=0;p=pz[i][s0](k);if(p==q2)n1=1;else{n8=p1[e5](p);if(n8>-1){b=n8%9+1;n1=parseInt(n8/9)}else{n8=r7[e5](p);if(n8!=-1)n1=n8+1}}while(n1--)n6+=q2;if(b){for(q=0;q<k7;q++)b=r4[b];n6+=b}if(n6[p6]==81){e3[j]=r1[j]=n6;n6=m;j++}}}function D(u3,p0,s6){var q3=m,f8;if(u3[p6]==8){f8=u3[t2](6,2)-0;p4=(f8%4==0||f8%100!=4)?29:28;q3=(s6?q4[p0>0?7:new Date(u3[t2](0,4),u3[t2](4,2)-1,u3[t2](6,2)).getDay()]+", ":m)+W(r6,(e9&&f8<10?"0":m)+(d3?f8+["th","st","nd","rd"][!(f8>10&&f8<14||f8%10>3)*f8%10]:f8),q4[u3[t2](4,2)-1+8],u3[t2](0,4))}return q3}function B8(){var i=D(u2,0,y),j=h5[e5]("?date=*"),k=h5[f5](17)!=d5[f5](9)?h5[f5](21)!=d5[f5](9)?h5[s0](3)!=p6[s0](1)?0:j:j:j;do{F("c1",i);F("c2",i);i++;k++}while(k)}function N(){M("lk").href=(y<1?"index":"sudoku-"+(y<2?"medium":"large"))+".html"+m7+C3()}function O(q){h7[a]+=q+"<br>";B6()}function B9(q){if(d4)m5[j7]=q;else{m5.open();m5.write(i4+q);m5.close()}}function B6(){if(d4)r2[j7]=h7[a];else{r2.open();r2.write(i4+h7[a]);r2.close()}}function A9(){var r,c,p8=u1=m,k8=new Array(37,45,55,12,18,24),j0=(g9.all)?11:12,j9=(g9.all)?8:10,l2=" 2px solid;",r3="background-color:"+u0;for(r=0;r<9;r++)for(c=0;c<9;c++){p8+=t9+c*k8[y]+"px;top:"+r*k8[y]+"px;width:"+(k8[y]-2)+"px;height:"+(k8[y]-2)+"px;border-top:"+(r%3?m3:"#000")+l2+(r>7?"border-bottom:#000"+l2:m)+"border-left:"+(c%3?m3:"#000")+l2+(c>7?"border-right:#000"+l2:m)+r3+";' id='g"+r+c+"'></div>";u1+=t9+(j0+c*k8[y])+"px;top:"+(j9+r*k8[y])+"px;'><input style='border:0;width:"+(k8[y]-21)+"px;font:bold "+k8[y+3]+d5+"text-align:center;vertical-align:middle;"+(o2?r3:m)+"' type='text' id='"+r+c+"' size='1' maxlength='1' onKeyUp='G(event,"+r+","+c+")'></div>"}F("gd",p8+u1);for(r=0;r<9;r++)for(c=0;c<9;c++)o3[r*9+c]=M(m+r+c)}function E(i){var j="mai";j+="lto:";j+=i-1?"comments@"+"sudokuhints.com":document.eMailer.email.value;j+=i?"?subject=":m;j+=i-1?m:escape(o5)+"&body="+escape(g0+h5);j+=i-2?m:k2;j2.location=j}function A4(){var r,c,q8=m,k8=new Array(37,45,55,26,32,40),l2="color:#000;",k1="px;font:"+(y+7)+d5;for(r=0;r<9;r++)for(c=0;c<9;c++)q8+=t9+(4+c*k8[y])+"px;top:"+(2+r*k8[y])+k1+(o2?l2:m)+"' id='"+"u"+r+c+"'></div>"+t9+(5+c*k8[y])+"px;top:"+(k8[y+3]+r*k8[y])+k1+(o2?l2:m)+"' id='"+"l"+r+c+"'></div>";F("nb",q8);m2=1}function Q(){var g7=M("pc")[s4];if(i0){if(!m2)A4();C6("nb",(g7)?e1:r9);if(g7)B7()}}function G(f0,r,c){var r0,e4=o8=0,j1=r,p2=c,f1;var p;if(e2){X();r0=f0.charCode?f0.charCode:f0.keyCode;if(r0>36&&r0<41){if(r0%2)o8=r0-29;else e4=r0-30;do{j1=(j1+e4)%9;p2=(p2+o8)%9;f1=j1*9+p2}while(e3[a][s0](f1)==o3[f1][d9]&&(j1-r||p2-c));o3[f1].select()}else{p=o3[r*9+c][d9];if(p&&m6[e5](p)<0)o3[r*9+c][d9]=p=m;if(!p&&z[r][c]){A7(r,c,-z[r][c]);B1()}else if(z[r][c]!=p){K(r,c,p);A7(r,c,p)}C0();B7();N()}}}function J(t7){var h2=m,i=h5[e5](m7),j,p;if(i0){if(i<0){j2.name=n0+a+y+(M("pc")[s4]?"1":"0")+(M("ck")[s4]?"1":"0")+u2;r1[a]=C3();for(i=0;i<5;i++)for(j=0;j<81;j++){p=r1[i][s0](j);j2.name+=(p==e3[i][s0](j))?p:(p=="-"?p:s2[s0](p[f5](0)-49))}}else t7.href+=h5[t2](i)}}function T(j6){M("a"+j6).blur();if(i0){if(j6>4){M("a5").className=j6==5?"a0":"a1";M("a6").className=j6==6?"a0":"a1";M("st").height=j6==5?51:400}else if(j6-a){r1[a]=C3();a=j6;A1();Y()}}return false}function A1(){var i;for(i=0;i<5;i++)M("a"+i).className=i==a?"a0":"a1";if(!s1)F("d1",s7+": "+i8[a]);if(A8())A3();B9(m);B6();V(1);if(M("pc")[s4])Q();N()}function B5(){var i,n7,l6=new Array(326,407,497,77,96,116);n7=M("bd")[s3];n7.width=n7.height=l6[y]+"px";for(i=1;i<9;i++)M("b"+i)[s3].width=l6[y+3]+"px";B8()}function A3(){var r,c,i,p;t8=e2=0;for(r=0;r<9;r++)for(c=0;c<9;c++){z[r][c]=0;for(i=1;i<10;i++)e[r][c][i]=1}r=c=0;for(i=0;i<81&&l<g;i++){p=r1[a][s0](i);p==q2?p=m:K(r,c,p);o3[i][d9]=p;o3[i][s3].color=e3[a][s0](i)==p?"#000":"#00c";if(++c>8){c=0;r++}}e2=1}function B1(){var r,c,p;for(r=0;r<9;r++)for(c=0;c<9;c++){A0(r,c,u0);z[r][c]=0;for(i=1;i<10;i++)e[r][c][i]=1}t8=0;for(r=0;r<9;r++)for(c=0;c<9;c++){p=o3[r*9+c][d9];if(p)K(r,c,p)}}function K(r,c,b){var rr,cc,i;for(i=0;i<9;i++)e[r][i][b]=e[i][c][b]=0;for(rr=s[r];rr<s[r]+3;rr++)for(cc=s[c];cc<s[c]+3;cc++)e[rr][cc][b]=0;for(i=1;i<=9;i++)e[r][c][i]=0;e[r][c][b]=1;z[r][c]=b;t8++}function B7(){var r,c,i,q,o6;if(!m2)A4();if(M("pc")[s4])for(r=0;r<9;r++)for(c=0;c<9;c++){q=o6=m;if(!z[r][c])for(i=1;i<=9;i++)if(e[r][c][i])q[p6]<6?q+=i:o6+=i;F("u"+r+c,q);F("l"+r+c,o6)}}function C3(){var i,p,q=m;for(i=0;i<81;i++){p=o3[i][d9];q+=p?p:q2}return q}function B0(i){return i?i6+i+(i-1?l5:h6):i9}function H(k6){var r,c;if(i0){X();if(C4()){e2=0;for(r=s[q0];r<s[q0]+3;r++)for(c=s[i7];c<s[i7]+3;c++)if(o3[r*9+c][s3][q6]!=i3)A0(r,c,k3);B9(W(k6?d1:g1,k6?j8:j5,j5).replace(h9,g8));i2=s[q0];e8=i2+2;m4=s[i7];k5=m4+2;e2=1}else B9(B0(81-t8))}}function S(m0){var q,h8=0;if(i0){X();e2=0;while(!h8&&C4()){K(q0,i7,j8);o3[q0*9+i7][d9]=j8;A7(q0,i7,j8);if(m0){A0(q0,i7,k3);i2=e8=q0;m4=k5=i7;h8=1}q=W(t6,j8,j5,Z(q0,i7),e0).replace(h9,g8);B9(m0?q:m);O(q)}e2=1;B7();N();if(!h8){B9(q=B0(81-t8));O(q)}}}function C5(){var r,c,i;e=new Array(9);for(r=0;r<9;r++){e[r]=new Array(9);for(c=0;c<9;c++){e[r][c]=new Array(10);for(i=1;i<10;i++)e[r][c][i]=1}}g2+=m6[s0](0);z=new Array(9);for(r=0;r<9;r++){z[r]=new Array(9);for(c=0;c<9;c++)z[r][c]=0}p7=(9*3)<<8;l3=new Array(5);for(i=0;i<5;i++){l3[i]=new Array(243);w[i]=l9[i]=0;h7[i]=m}g2+=g2+s0[s0](0)+2;while(!M(g2))i++;if(j2.frames&&j2.frames["st"]){m5=j2.frames["st"].window.document;r2=j2.frames["rs"].window.document;d4=0}else if(g9.frames){m5=g9.frames["st"].document.body;r2=g9.frames["rs"].document.body}else if(M("rs")[i1]){M("st").height=21;m5=M("st")[i1].body;r2=M("rs")[i1].body}if(d4)m5[s3].font=r2[s3].font="normal 10"+d5}function C2(r,c,b,q,i,j,u,o6){return(e[r][c][b]?q:m)+(e[r][c][b]&&e[i][j][u]?d7:m)+(e[i][j][u]?o6:m)}function B3(r,c,b,q,i,j,u,o6,rr,cc,q7,s9){return(e[r][c][b]?(q+(e[i][j][u]&&e[rr][cc][q7]?", ":(e[i][j][u]||e[rr][cc][q7])?d7:m)):m)+C2(i,j,u,o6,rr,cc,q7,s9)}function A6(i,j,k,r,b,u,q7){var p=", ",q=e[j][b][i]?Z(j,b)+p:m;q+=e[j][u][i]?Z(j,u)+p:m;q+=e[j][q7][i]?Z(j,q7)+p:m;q+=e[k][b][i]?Z(k,b)+p:m;q+=e[k][u][i]?Z(k,u)+p:m;q+=e[k][q7][i]?Z(k,q7)+p:m;q+=e[r][b][i]?Z(r,b)+p:m;q+=e[r][u][i]?Z(r,u)+p:m;q+=e[r][q7][i]?Z(r,q7)+p:m;q=q[t2](0,q[p6]-2);return q}function Z(i,j){return " "+l4+(i+1)+k0+(j+1)}function B2(h,j){var i=0;while(j>0){if(h&256)j--;h=h<<1;i++}return i}function W(q){var i,j=q.split("$"),o6=j[0];for(i=1;i<j[p6];i++)o6+=arguments[i]+j[i];return o6}function A(j){var i;for(i=0;j;i++)j&=j-1;return i}function C4(){var r,c,rr,cc,i,j,k,i5,m9=0,o,t5,t0,g5,f2,v,x,d6,j4,l7,q1,f=new Array(0,3,6),d0=new Array(1,1,1,2,2,2,3,3,3),j3=new Array(0,0,0),h,k4,f6,t,d=new Array(9),g6=new Array(9),n,b,u,q7;if(t8<81){do{for(v=0;v<3&&!m9;v++)for(x=0;x<3&&!m9;x++)for(i=1;i<=9&&!m9;i++){i5=l7=q1=0;for(r=f[v];r<f[v]+3;r++)for(c=f[x];c<f[x]+3;c++)if(e[r][c][i]){i5++;l7=r;q1=c}if(i5==1&&!z[l7][q1]){m9=1;j5=v*3+x+1;q0=l7;i7=q1;j8=i;e0=t3}}for(r=0;r<9&&!m9;r++)for(i=1;i<=9&&!m9;i++){i5=0;for(c=0;c<9;c++)if(e[r][c][i]){i5++;q1=c}if(i5==1&&!z[r][q1]){m9=1;j5=s[r]+d0[q1];q0=r;i7=q1;j8=i;e0=h3}}for(c=0;c<9&&!m9;c++)for(i=1;i<=9&&!m9;i++){i5=0;for(r=0;r<9;r++)if(e[r][c][i]){i5++;l7=r}if(i5==1&&!z[l7][c]){m9=1;j5=s[l7]+d0[c];q0=l7;i7=c;j8=i;e0=s5}}for(r=0;r<9&&!m9;r++)for(c=0;c<9&&!m9;c++)if(!z[r][c]){i5=0;for(i=1;i<=9&&!m9;i++)i5+=e[r][c][i];if(i5==1){i=1;while(i<9&&!e[r][c][i])i++;m9=1;j5=s[r]+d0[c];q0=r;i7=c;j8=i;e0=o7}}if(!m9){o=0;h=new Array(9);for(r=0;r<9;r++){h[r]=new Array(9);for(c=0;c<9;c++){f6=0;for(i=1;i<=9;i++)f6=(f6<<1)|(!z[r][c]&&e[r][c][i]);h[r][c]=f6}}for(r=0;r<9&&!o;r++){n=0;for(c=0;c<9;c++)if(!z[r][c])d[n++]=c;for(i=0;i<n&&!o;i++)for(j=i+1;j<n&&!o;j++){t=h[r][d[i]]|h[r][d[j]];if(A(t)==2){b=B2(t,1);u=B2(t,2);for(cc=0;cc<9;cc++)if(cc-d[i]&&cc-d[j])if(t&h[r][cc]){O(W(f9,b,u,Z(r,d[i]),Z(r,d[j]),C2(r,cc,b,b,r,cc,u,u),Z(r,cc)));e[r][cc][b]=e[r][cc][u]=0;o=1}}}}for(c=0;c<9&&!o;c++){n=0;for(r=0;r<9;r++)if(!z[r][c])d[n++]=r;for(i=0;i<n&&!o;i++)for(j=i+1;j<n&&!o;j++){t=h[d[i]][c]|h[d[j]][c];if(A(t)==2){b=B2(t,1);u=B2(t,2);for(rr=0;rr<9;rr++)if(rr-d[i]&&rr-d[j])if(t&h[rr][c]){O(W(f9,b,u,Z(d[i],c),Z(d[j],c),C2(rr,c,b,b,rr,c,u,u),Z(rr,c)));e[rr][c][b]=e[rr][c][u]=0;o=1}}}}for(v=0;v<3&&!o;v++)for(x=0;x<3&&!o;x++){n=0;for(r=f[v];r<f[v]+3;r++)for(c=f[x];c<f[x]+3;c++)if(!z[r][c]){d[n]=r;g6[n]=c;n++}for(i=0;i<n&&!o;i++)for(j=i+1;j<n&&!o;j++){t=h[d[i]][g6[i]]|h[d[j]][g6[j]];if(A(t)==2){b=B2(t,1);u=B2(t,2);for(rr=f[v];rr<f[v]+3;rr++)for(cc=f[x];cc<f[x]+3;cc++)if((rr-d[i]||cc-g6[i])&&(rr-d[j]||cc-g6[j]))if(t&h[rr][cc]){O(W(f9,b,u,Z(d[i],g6[i]),Z(d[j],g6[j]),C2(rr,cc,b,b,rr,cc,u,u),Z(rr,cc)));e[rr][cc][b]=e[rr][cc][u]=0;o=1}}}}for(r=0;r<9&&!o;r++)for(i=1;i<=9&&!o;i++){i5=g5=0;while(g5<9&&!e[r][g5][i])g5++;f2=8;while(f2>=0&&!e[r][f2][i])f2--;if(f2>g5&&s[g5]==s[f2])for(rr=s[r];rr<s[r]+3;rr++)for(cc=s[g5];cc<s[g5]+3;cc++)if(rr-r)if(e[rr][cc][i]){O(W(p3,i,r+1,s[r]+d0[cc],i,Z(rr,cc)));e[rr][cc][i]=0;o=1}}for(c=0;c<9&&!o;c++)for(i=1;i<=9&&!o;i++){i5=t5=0;while(t5<9&&!e[t5][c][i])t5++;t0=8;while(t0>=0&&!e[t0][c][i])t0--;if(t0>t5&&s[t5]==s[t0])for(rr=s[t5];rr<s[t5]+3;rr++)for(cc=s[c];cc<s[c]+3;cc++)if(cc-c)if(e[rr][cc][i]){O(W(f7,i,c+1,s[rr]+d0[c],i,Z(rr,cc)));e[rr][cc][i]=0;o=1}}for(v=0;v<3&&!o;v++)for(x=0;x<3&&!o;x++)for(i=1;i<=9&&!o;i++){j3[0]=j3[1]=j3[2]=0;for(d6=0;d6<3;d6++)for(c=f[x];c<f[x]+3;c++)if(e[d6+f[v]][c][i])j3[d6]=1;if(j3[0]+j3[1]+j3[2]==1){r=0;while(j3[r]-1)r++;r+=f[v];for(c=0;c<9;c++)if(c<f[x]||c>f[x]+2)if(e[r][c][i]){O(W(o1,i,v*3+x+1,r+1,i,Z(r,c)));e[r][c][i]=0;o=1}}}for(v=0;v<3&&!o;v++)for(x=0;x<3&&!o;x++)for(i=1;i<=9&&!o;i++){j3[0]=j3[1]=j3[2]=0;for(j4=0;j4<3;j4++)for(r=f[v];r<f[v]+3;r++)if(e[r][j4+f[x]][i])j3[j4]=1;if(j3[0]+j3[1]+j3[2]==1){c=0;while(j3[c]-1)c++;c+=f[x];for(r=0;r<9;r++)if(r<f[v]||r>f[v]+2)if(e[r][c][i]){O(W(l1,i,v*3+x+1,c+1,i,Z(r,c)));e[r][c][i]=0;o=1}}}k4=new Array(9);for(r=0;r<9&&!o;r++){k4[r]=new Array(10);for(i=1;i<=9;i++){f6=0;for(c=0;c<9;c++)f6=(f6<<1)|(!z[r][c]&&e[r][c][i]);k4[r][i]=f6}}for(i=1;i<=9&&!o;i++){n=0;for(r=0;r<9;r++)if(k4[r][i])d[n++]=r;for(j=0;j<n&&!o;j++)for(k=j+1;k<n&&!o;k++){t=k4[d[j]][i]|k4[d[k]][i];if(A(t)==2){b=B2(t,1)-1;u=B2(t,2)-1;for(rr=0;rr<9;rr++)if(rr-d[j]&&rr-d[k])if(t&k4[rr][i]){O(W(e7,i,Z(d[j],b),Z(d[j],u),Z(d[k],b),Z(d[k],u),i,C2(rr,b,i,Z(rr,b),rr,u,i,Z(rr,u))));e[rr][b][i]=e[rr][u][i]=0;o=1}}}}for(c=0;c<9&&!o;c++)for(i=1;i<=9;i++){f6=0;for(r=0;r<9;r++)f6=(f6<<1)|(!z[r][c]&&e[r][c][i]);k4[c][i]=f6}for(i=1;i<=9&&!o;i++){n=0;for(c=0;c<9;c++)if(k4[c][i])d[n++]=c;for(j=0;j<n&&!o;j++)for(k=j+1;k<n&&!o;k++){t=k4[d[j]][i]|k4[d[k]][i];if(A(t)==2){b=B2(t,1)-1;u=B2(t,2)-1;for(cc=0;cc<9;cc++)if(cc-d[j]&&cc-d[k])if(t&k4[cc][i]){O(W(e7,i,Z(b,d[j]),Z(u,d[j]),Z(b,d[k]),Z(u,d[k]),i,C2(b,cc,i,Z(b,cc),u,cc,i,Z(u,cc))));e[b][cc][i]=e[u][cc][i]=0;o=1}}}}for(r=0;r<9&&!o;r++){n=0;for(c=0;c<9;c++)if(!z[r][c])d[n++]=c;for(i=0;i<n&&!o;i++)for(j=i+1;j<n&&!o;j++)for(k=j+1;k<n&&!o;k++){t=h[r][d[i]]|h[r][d[j]]|h[r][d[k]];if(A(t)==3){b=B2(t,1);u=B2(t,2);q7=B2(t,3);for(cc=0;cc<9;cc++)if(cc-d[i]&&cc-d[j]&&cc-d[k])if(t&h[r][cc]){O(W(t4,b,u,q7,Z(r,d[i]),Z(r,d[j]),Z(r,d[k]),B3(r,cc,b,b,r,cc,u,u,r,cc,q7,q7),Z(r,cc)));e[r][cc][b]=e[r][cc][u]=e[r][cc][q7]=0;o=1}}}}for(c=0;c<9&&!o;c++){n=0;for(r=0;r<9;r++)if(!z[r][c])d[n++]=r;for(i=0;i<n&&!o;i++)for(j=i+1;j<n&&!o;j++)for(k=j+1;k<n&&!o;k++){t=h[d[i]][c]|h[d[j]][c]|h[d[k]][c];if(A(t)==3){b=B2(t,1);u=B2(t,2);q7=B2(t,3);for(rr=0;rr<9;rr++)if(rr-d[i]&&rr-d[j]&&rr-d[k])if(t&h[rr][c]){O(W(t4,b,u,q7,Z(d[i],c),Z(d[j],c),Z(d[k],c),B3(rr,c,b,b,rr,c,u,u,rr,c,q7,q7),Z(rr,c)));e[rr][c][b]=e[rr][c][u]=e[rr][c][q7]=0;o=1}}}}for(v=0;v<3&&!o;v++)for(x=0;x<3&&!o;x++){n=0;for(r=f[v];r<f[v]+3;r++)for(c=f[x];c<f[x]+3;c++)if(!z[r][c]){d[n]=r;g6[n]=c;n++}for(i=0;i<n&&!o;i++)for(j=i+1;j<n&&!o;j++)for(k=j+1;k<n&&!o;k++){t=h[d[i]][g6[i]]|h[d[j]][g6[j]]|h[d[k]][g6[k]];if(A(t)==3){b=B2(t,1);u=B2(t,2);q7=B2(t,3);for(rr=f[v];rr<f[v]+3;rr++)for(cc=f[x];cc<f[x]+3;cc++)if((rr-d[i]||cc-g6[i])&&(rr-d[j]||cc-g6[j])&&(rr-d[k]||cc-g6[k]))if(t&h[rr][cc]){O(W(t4,b,u,q7,Z(d[i],g6[i]),Z(d[j],g6[j]),Z(d[k],g6[k]),B3(rr,cc,b,b,rr,cc,u,u,rr,cc,q7,q7),Z(rr,cc)));e[rr][cc][b]=e[rr][cc][u]=e[rr][cc][q7]=0;o=1}}}}for(r=0;r<9&&!o;r++)for(i=1;i<=9;i++){f6=0;for(c=0;c<9;c++)f6=(f6<<1)|(!z[r][c]&&e[r][c][i]);k4[r][i]=f6}for(i=1;i<=9&&!o;i++){n=0;for(r=0;r<9;r++)if(k4[r][i])d[n++]=r;for(j=0;j<n&&!o;j++)for(k=j+1;k<n&&!o;k++)for(r=k+1;r<n&&!o;r++){t=k4[d[j]][i]|k4[d[k]][i]|k4[d[r]][i];if(A(t)==3){b=B2(t,1)-1;u=B2(t,2)-1;q7=B2(t,3)-1;for(rr=0;rr<9;rr++)if(rr-d[j]&&rr-d[k]&&rr-d[r])if(t&k4[rr][i]){O(W(m8,i,A6(i,d[j],d[k],d[r],b,u,q7),i,B3(rr,b,i,Z(rr,b),rr,u,i,Z(rr,u),rr,q7,i,Z(rr,q7))));e[rr][b][i]=e[rr][u][i]=e[rr][q7][i]=0;o=1}}}}for(c=0;c<9&&!o;c++)for(i=1;i<=9;i++){f6=0;for(r=0;r<9;r++)f6=(f6<<1)|(!z[r][c]&&e[r][c][i]);k4[c][i]=f6}for(i=1;i<=9&&!o;i++){n=0;for(c=0;c<9;c++)if(k4[c][i])d[n++]=c;for(j=0;j<n&&!o;j++)for(k=j+1;k<n&&!o;k++)for(r=k+1;r<n&&!o;r++){t=k4[d[j]][i]|k4[d[k]][i]|k4[d[r]][i];if(A(t)==3){b=B2(t,1)-1;u=B2(t,2)-1;q7=B2(t,3)-1;for(cc=0;cc<9;cc++)if(cc-d[j]&&cc-d[k]&&cc-d[r])if(t&k4[cc][i]){O(W(m8,i,A6(i,b,u,q7,d[j],d[k],d[r]),i,B3(b,cc,i,Z(b,cc),u,cc,i,Z(u,cc),q7,cc,i,Z(q7,cc))));e[b][cc][i]=e[u][cc][i]=e[q7][cc][i]=0;o=1}}}}}}while(!m9&&o)}return m9}

