加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
minified.js 858.03 KB
一键复制 编辑 原始数据 按行查看 历史
zhaolinxu 提交于 2022-12-26 16:39 . gx
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585
var aa,ca="function"==typeof Object.defineProperties?Object.defineProperty:function(a,b,d){if(a==Array.prototype||a==Object.prototype)return a;a[b]=d.value;return a};function da(a){a=["object"==typeof globalThis&&globalThis,a,"object"==typeof window&&window,"object"==typeof self&&self,"object"==typeof global&&global];for(var b=0;b<a.length;++b){var d=a[b];if(d&&d.Math==Math)return d}throw Error("Cannot find global object");}var ia=da(this);
function ja(a,b){if(b)a:{var d=ia;a=a.split(".");for(var e=0;e<a.length-1;e++){var f=a[e];if(!(f in d))break a;d=d[f]}a=a[a.length-1];e=d[a];b=b(e);b!=e&&null!=b&&ca(d,a,{configurable:!0,writable:!0,value:b})}}ja("Number.isFinite",function(a){return a?a:function(b){return"number"!==typeof b?!1:!isNaN(b)&&Infinity!==b&&-Infinity!==b}});ja("Number.isInteger",function(a){return a?a:function(b){return Number.isFinite(b)?b===Math.floor(b):!1}});
ja("Math.trunc",function(a){return a?a:function(b){b=Number(b);if(isNaN(b)||Infinity===b||-Infinity===b||0===b)return b;var d=Math.floor(Math.abs(b));return 0>b?-d:d}});ja("Math.log2",function(a){return a?a:function(b){return Math.log(b)/Math.LN2}});ja("Math.log10",function(a){return a?a:function(b){return Math.log(b)/Math.LN10}});
var r=function(){function a(u,v){u=287867*(u%2147483648^1147483648^v)&2147483647;u^=1111111111;u=287867*u&2147483647;return u/2147483648}function b(u,v){v-=(""+u).length;if(0>=v)return u;for(var w="",q=0;q<v;q++)w+="0";return w+u}function d(u,v,w,q,F){function B(){return""==Na?"":" "}var K=w||(2==v?4:3);if(isNaN(u))return"NaN";if(0>u)return"-"+d(-u);if(Infinity==u)return"Infinity "+(v?"s":" seconds");F||(u=Math.ceil(u));if(1==v){if(315576E5<=u)return u=c(u/315576E5).toString(),u+("1"==u?" millenium":
" millenia");if(31557600<=u)return u=c(u/31557600).toString(),u+("1"==u?" year":" years");if(2332800<=u)return u=c(u/86400).toString(),u+("1"==u?" day":" days")}if(1==w&&!q){if(315576E5<=u)return u=c(u/315576E5).toString(),u+("1"==u?" millenium":" millenia");if(31557600<=u)return u=c(u/31557600).toString(),u+("1"==u?" year":" years");if(2635200<=u)return u=c(u/2635200).toString(),u+("1"==u?" month":" months")}w=u;u=Math.floor(u);var N=F=0,O=0,W=0,U=0,V=0;!(q&&6>K)&&31557600<=u&&(F=Math.floor(u/315576E5),
u-=315576E5*F);!(q&&6>K)&&31557600<=u&&(N=Math.floor(u/31557600),u-=31557600*N);!(q&&5>K)&&2635200<=u&&(O=Math.floor(u/2635200),u-=2635200*O);!(q&&4>K)&&86400<=u&&(W=Math.floor(u/86400),u-=86400*W);!(q&&3>K)&&3600<=u&&(U=Math.floor(u/3600),u-=3600*U);!(q&&2>K)&&60<=u&&(V=Math.floor(u/60),u-=60*V);var I=v?"mm Y M d h m s".split(" "):" millenium; year; month; day; hour; minute; second".split(";"),ra=v?"mm Y M d h m s".split(" "):" millenia; years; months; days; hours; minutes; seconds".split(";");if(1==
v&&0==U&&0==V&&0==u&&0!=W&&0==F&&0==N&&0==O)return c(W).toString()+(1==W?" day":" days");var Na="";if(q)0<F&&(Na+=B()+c(F).toString()+I[0]),0<N&&(Na+=B()+N+I[1]),0<O&&(Na+=B()+O+I[2]),0<W&&(Na+=B()+W+I[3]),0<U&&(Na+=B()+U+I[4]),0<V&&(Na+=B()+V+I[5]),0<u&&(Na+=B()+u+I[6]);else if(v=0,0<F&&(Na+=B()+c(F).toString()+(1==F?I[0]:ra[0]),++v>=K)||0<N&&(Na+=B()+N+(1==N?I[1]:ra[1]),++v>=K)||0<O&&(Na+=B()+O+(1==O?I[2]:ra[2]),++v>=K)||0<W&&(Na+=B()+W+(1==W?I[3]:ra[3]),++v>=K)||0<U&&(Na+=B()+U+(1==U?I[4]:ra[4]),
++v>=K)||0<V&&(Na+=B()+V+(1==V?I[5]:ra[5]),++v>=K)||0<u&&(Na+=B()+u+(1==u?I[6]:ra[6]),++v>=K))return Na;""==Na&&(Na=w.toFixed(3)+ra[6]);return Na}function e(u){var v=Math.floor(u[0]).toString(16),w=Math.floor(u[1]).toString(16);u=Math.floor(u[2]).toString(16);1==v.length&&(v="0"+v);1==w.length&&(w="0"+w);1==u.length&&(u="0"+u);return"#"+v+w+u}function f(u){"black"==u&&(u="#000000");"white"==u&&(u="#ffffff");"red"==u&&(u="#ff0000");"green"==u&&(u="#00ff00");"blue"==u&&(u="#0000ff");"yellow"==u&&(u=
"#00ffff");4==u.length&&(u="#"+u[1]+u[1]+u[2]+u[2]+u[3]+u[3]);return[parseInt(u.substr(1,2),16),parseInt(u.substr(3,2),16),parseInt(u.substr(5,2),16)]}function g(){try{return"localStorage"in window&&null!==window.localStorage}catch(u){return!1}}function h(u,v){history&&history.replaceState?v?history.replaceState(void 0,void 0,"#"+u+"="+v):window.location.hash&&history.replaceState(void 0,void 0,"#"):v?window.location.hash="#"+u+"="+v:window.location.hash&&(window.location.hash="")}function k(u){if(null==
u||"object"!=typeof u)return u;if(u instanceof Array){var v=[],w;for(w in u)u.hasOwnProperty(w)&&(v[w]=k(u[w]));return v}if(u instanceof Object){v=new u.constructor;for(w in u)u.hasOwnProperty(w)&&(v[w]=k(u[w]));return v}throw Error("Cloning this object not supported.");}function l(u,v,w,q,F,B){u=n(u,B);u.style.position="absolute";u.style.left=v&&v.length&&"%"==v[v.length-1]?v:Math.floor(v)+"px";u.style.top=w&&w.length&&"%"==w[w.length-1]?w:Math.floor(w)+"px";u.style.width=q&&q.length&&"%"==q[q.length-
1]?q:Math.floor(q)+"px";u.style.height=F&&F.length&&"%"==F[F.length-1]?F:Math.floor(F)+"px";return u}function n(u,v){v=v||document.body;u=document.createElement(u);"doNotAddToParent"!=v&&v.appendChild(u);return u}var p={Ol:"doNotAddToParent"};p.rf=n;p.Wl=function(u){u=n("span",u);u.style.position="absolute";u.style.left="0px";u.style.top="0px";return u};p.qf=l;p.Qb=function(u){if(u){var v=u.parentNode;v&&v.contains(u)&&v.removeChild(u)}};p.Vl=function(u,v,w,q,F){return l("div",u,v,w,q,F)};p.bind=
function(u,v){var w=Array.prototype.slice.call(arguments,1);return function(){return u.apply(this,w.concat(Array.prototype.slice.call(arguments)))}};p.clone=k;p.Km=function(u,v,w){return u.substr(v,w.length)==w};p.Dm=function(u,v){u=k(u);for(var w in v)v.hasOwnProperty(w)&&(u[w]=v[w]);return u};p.ym=function(u,v){v=v||window.location.href;u=u.replace(/[\[\]]/g,"\\$&");return(u=(new RegExp("[?&]"+u+"(=([^&#]*)|&|#|$)")).exec(v))?u[2]?decodeURIComponent(u[2].replace(/\+/g," ")):"":null};p.zm=function(u,
v){v=v||window.location.href;u=u.replace(/[\[\]]/g,"\\$&");return(u=(new RegExp("[#&]"+u+"(=([^&#]*)|&|#|$)")).exec(v))?u[2]?decodeURIComponent(u[2].replace(/\+/g," ")):"":null};p.Hm=h;p.qm=function(){h("",null)};p.Am=function(){var u=window.location.href,v=u.indexOf("?");0<=v&&(u=u.substr(0,v));v=u.indexOf("#");0<=v&&(u=u.substr(0,v));return u};p.sm=function(){document.selection?document.selection.empty():window.getSelection&&window.getSelection().removeAllRanges()};p.Cm=g;p.Ee=function(u,v){g()&&
(window.localStorage[v]=u?u:"")};p.Oc=function(u,v){return g()&&void 0!=window.localStorage[u]?window.localStorage[u]:v};p.rc=function(u){g()&&window.localStorage.removeItem(u)};p.cm=function(u){function v(){u();requestAnimationFrame(function(){window.setTimeout(v,w)})}var w=ka;window.setTimeout(v,w)};p.rm=function(u){u()};p.Im=function(u,v){var w=(new Date).getTime(),q=!1;requestAnimationFrame(function(){q||(v-=(new Date).getTime()-w,0<v?window.setTimeout(function(){q||u()},v):u())});return function(){q=
!0}};p.tm=function(u){u()};p.um=function(u,v){v=v||.5;u=f(u);u[0]=Math.floor(u[0]*v);u[1]=Math.floor(u[1]*v);u[2]=Math.floor(u[2]*v);return e(u)};p.Em=function(u){var v=f(u);u=v[0];var w=v[1];v=v[2];var q=Math.min(Math.min(u,w),v)+Math.max(Math.max(u,w),v);return e([255-q+u,255-q+w,255-q+v])};p.vm=function(u){u=f(u);return 128<.299*u[0]+.587*u[1]+.114*u[2]?"#000":"#fff"};p.Pl=function(u){u=f(u);return 128<.299*u[0]+.587*u[1]+.114*u[2]?e([.25*u[0],.25*u[1],.25*u[2]]):e([255-.25*(255-u[0]),255-.25*
(255-u[1]),255-.25*(255-u[2])])};p.I=d;p.Xd=function(u,v){u=new Date(1E3*u);var w=""+b(u.getFullYear(),4);v||(w+="-");w+=b(u.getMonth()+1,2);v||(w+="-");w+=b(u.getDate(),2);w=w+(v?"T":" ")+b(u.getHours(),2);v||(w+=":");w+=b(u.getMinutes(),2);v||(w+=":");return w+=b(u.getSeconds(),2)};var m=["","M","MM","MMM"],x=" C CC CCC CD D DC DCC DCCC CM".split(" "),t=" X XX XXX XL L LX LXX LXXX XC".split(" "),y=" I II III IV V VI VII VIII IX".split(" ");p.fm=function(u){return 1>u||3999<u?u.toString():m[Math.floor(u/
1E3)]+x[Math.floor(u/100)%10]+t[Math.floor(u/10)%10]+y[u%10]};p.Kk=function(u,v,w){var q=0==v;if(2047==v)return u?w?NaN:-Infinity:w?NaN:Infinity;v-=1023;q&&v++;w/=Math.pow(2,52);q||(w+=1);v=w*Math.pow(2,v);u&&(v=-v);return v};p.Mk=function(u){var v=0;0>u&&(u=-u,v=1);if(Infinity==u)return[v,2047,0];if(isNaN(u))return[v,2047,1];if(0==u)return 0>1/u&&(v=1),[v,0,0];for(var w=0;2<=u;)u/=2,w++;for(;1>u;)u*=2,w--;w+=1023;if(1>w)return u=Math.floor(u*Math.pow(2,52+w-1)),[v,0,u];if(2047<=w)return[v,2047,0];
u=Math.floor((u-1)*Math.pow(2,52));return[v,w,u]};p.getTime=function(){return Date.now()/1E3};p.de=a;p.Qi=function(u,v,w){return a(((v+128&32767)<<15)+(u+128&32767),w)};p.Gm=function(u,v,w,q){return a(((w+128&1023)<<20)+((v+128&1023)<<10)+(u+128&1023),q)};p.om=function(u){u&&0<u.length&&(u=u[0].toUpperCase()+u.substr(1));return u};p.Ul=function(u){u&&0<u.length&&(u=u[0].toLowerCase()+u.substr(1));return u};p.Cg=function(u,v,w){u.addEventListener(v,w,!1)};p.ob=function(u,v,w,q){u.Ag||(u.Ag={});u.Ag[v]||
(u.Ag[v]={});u.Ag[v][w]&&u.removeEventListener(v,u.Ag[v][w]);u.Ag[v][w]=q;u.addEventListener(v,q,!1)};p.Wd=function(u){return u.shiftKey};p.vd=function(u){return u.ctrlKey||u.metaKey};return p}(),z=r.bind,la=r.Vl,ma=r.om,na=r.Ul,pa=r.vd,qa=r.Wd;function sa(a,b,d){b=b||a.clientHeight;d||(a.style.textAlign="center");a.style.verticalAlign="middle";a.style.lineHeight=b+"px";a.h=a}function ta(a){a.innerHTML="";var b=r.rf("div",a);b.style.display="table";b.style.width="100%";b.style.height="100%";b=r.rf("div",b);b.style.display="table-cell";b.style.verticalAlign="middle";b.style.textAlign="center";a.h=b}function ua(a,b){a.setAttribute("aria-label",b)}function xa(a,b){a.setAttribute("role",b)}
function A(a,b,d,e){e&&!ya()?a.onmousedown=b:a.onclick=b;a.onkeypress=function(f){"Enter"==f.key&&b(f);f.preventDefault()};a.tabIndex=0;xa(a,"button");d&&ua(a,d)}function za(a,b,d){function e(f){var g=f&&qa(f);f=f&&pa(f);b(g,f)}d||(d={});d.Bm&&!ya()?a.onmousedown=e:a.onclick=e;d.Fm||(a.onkeypress=function(f){"Enter"==f.key&&e(void 0);f.preventDefault()});a.tabIndex=0;xa(a,"button");ua(a,"undo");d.kl&&C(a,d.kl,d.Lm,!d.Qa)}
function Aa(a,b){a.style.cursor="pointer";a.style.userSelect="none";a.h&&(a.h.style.userSelect="none");2==b?(r.ob(a,"mouseover","buttonstyle",function(){a.style.border="4px solid red"}),r.ob(a,"mouseout","buttonstyle",function(){a.style.filter=""})):b?(r.ob(a,"mouseover","buttonstyle",function(){a.style.border="1px solid #0000"}),r.ob(a,"mouseout","buttonstyle",function(){a.style.border=""})):(r.ob(a,"mouseover","buttonstyle",function(){a.style.filter="brightness(0.93)"}),r.ob(a,"mouseout","buttonstyle",
function(){a.style.filter=""}))}function Ba(a){a.className="efButton";a.h=a;ta(a);Aa(a)}function Da(a){a.style.boxSizing="border-box";a.style.border="1px solid black";var b=la("0%","0%","100%","100%",a);b.style.backgroundColor="red";a.style.display="none";a.style.backgroundColor="#ddd";a.visible=!1;a.Hk=b}
function Ea(a,b,d){if(0>b)a.visible&&(a.style.display="none",a.visible=!1);else{1<b&&(b=1);var e=a.Hk;a.visible||(a.style.display="",a.visible=!0);e.style.width=100*b+"%";d&&a.Ml!=d&&(a.Hk.style.backgroundColor=d,a.Ml=d)}}var Fa=void 0,Ga=0,Ia=[],Ja=[],Ka=void 0;
function La(a){function b(v){if((!D||D.Pf)!=!!a.Jm){var w=y;v?w=0:w++;v=(new G(h,1-t*(w+1),[1,-.4*t],.99-t*w,[1,-.01],Ma)).a}else v=(new G(h,1-t*(y+1),[1,-.4*t],.99-t*y,[1,-.01],Ma)).a;y++;return v}a||(a={});var d=a.ib,e=a.names,f=a.jm;Array.isArray(d)||(d=d?[d]:[]);Array.isArray(e)||(e=d?[e||"ok"]:[]);Array.isArray(f)||(f=f?[f]:[]);var g={};0>Ga&&Oa();Ga++;Pa();Ka=a.fe;Qa();Ra();var h=0==a.size?new G(Sa,.05,.33,.95,.66):1==a.size?new G(Sa,.05,.25,.95,.75):3==a.size?new G(Sa,.05,.05,.95,.9):new G(Sa,
.05,.12,.95,.9);g.onclose=a.onclose;g.oncancel=a.oncancel;g.fe=a.fe;Ia.push(g);h.a.className=a.pb||"efDialog";xa(h.a,"dialog");h.a.setAttribute("aria-modal","true");h.a.style.zIndex=""+(10*Ga+5);g.Of=function(){g.Xh(!0)};g.Xh=function(v){Ka=Fa=void 0;r.Qb(u);for(var w=0;w<Ia.length;w++)if(Ia[w]==g){Ia.splice(w,1);0<w&&(Ka=Ia[w-1].fe);break}for(w=0;w<Ja.length;w++)if(Ja[w]==u){Ja.splice(w,1);break}Ga--;Qa();g.el(v);Ta();Pa()};g.el=function(v){Ua(h,Sa);if(v&&g.oncancel)g.oncancel();if(g.onclose)g.onclose()};
var k=new G(h,.89,0,1,[0,.11]);var l=Va("20%","20%","60%","60%",k.a);Wa(Xa,l);Aa(k.a);A(k.a,g.Of,a.title?' close dialog: "'+a.title+'"':"dialog close button",!0);k.a.className="efNoOutline";k.a.title="close";if(a.zb){var n=new G(h,.78,0,.89,[0,.11]);l=Va("20%","20%","60%","60%",n.a);Wa(Ya,l);Aa(n.a);if("string"==typeof a.zb){var p=a.zb;a.zb=function(){La({Ba:!0,title:"Help"}).content.a.innerHTML=p}}A(n.a,a.zb,"help");n.a.title="help";l=.22;n=.78}else l=.11,n=.89;var m=a.Sj&&0==d.length,x=.88;0==a.size&&
(x=.8);1==a.size&&(x=.8);m&&(x=1);g.flex=h;g.a=h.a;m=a.Tk||0;g.icon=new G(h,.11*m,[0,.11*m],.11*(1-m),[0,.11*(1-m)]);a.Xk?(g.title=new G(h,l,0,n,[0,.0825],Za),g.content=new G(h,.11,[0,.0825],.89,x)):(g.title=new G(h,l,0,n,[0,.11],Za),g.content=new G(h,.02,[0,.11],.98,x));a.Ba&&$a(g.content,!1);a.bm&&$a(g.content,!0);ta(g.title.a);g.em=g.title.a.h;a.title&&(g.title.a.h.innerText=a.title,ua(g.title.a,"Dialog: "+a.title));a.icon&&(l=Va("5%","5%","90%","90%",g.icon.a),Wa(a.icon,l));for(n=0;n<d.length;n++)if(void 0==
d[n]||void 0==e[n])d.splice(n,1),e.splice(n,1),n--;var t=.27;3<d.length+1&&(t=.247);var y=0;if(d)for(n=0;n<d.length;n++){l=b(!1);if(!a.Uk||a.Bk)l.style.fontWeight="bold";Ba(l);l.h.innerText=e[n];A(l,z(function(v,w){v(w)||g.Xh(!1)},d[n]),e[n]+": dialog button");f[n]&&C(l,f[n])}if(!a.Sj){l=b(!0);if(a.Uk||a.Bk)l.style.fontWeight="bold";Ba(l);d=a.qc||(0<d.length?"cancel":"back");l.h.innerText=d;A(l,g.Of,d+": dialog button")}var u=ab(10*Ga);Ja.push(u);a.Xl||(u.onclick=g.Of);window.setTimeout(function(){Ta()});
k.a.focus();return g}function ab(a){var b=la(0,0,window.innerWidth,window.innerHeight);b.style.width="100%";b.style.height="100%";b.style.backgroundColor="rgba(0, 0, 0, 0.5)";b.style.position="fixed";b.style.zIndex=""+a;return b}function Oa(){Fa=void 0;for(var a=0;a<Ia.length;a++)Ia[a].el(!0);for(a=0;a<Ja.length;a++)r.Qb(Ja[a]);Ia=[];Ja=[];Ga=0;Qa();Pa()}
function Pa(){0==Ga?(Sa.a.style.visibility="hidden",bb(cb.a,!1)):(Sa.a.style.visibility="",bb(cb.a,!0),Ia.length>=Ga&&bb(Ia[Ga-1].flex.a,!1),1<Ga&&bb(Ia[Ga-2].flex.a,!0))}function db(a){if(Ia&&0<Ia.length){var b=Ia[Ia.length-1];a?b.Of():b.Xh(a)}}function bb(a,b){b?(a.setAttribute("aria-hidden",!0),a.setAttribute("inert",!0)):(a.setAttribute("aria-hidden",!1),a.removeAttribute("inert"))}
document.addEventListener("keydown",function(a){if(Ka)if(0>=Ga)Ka=void 0;else if(Ka(a),a.stopImmediatePropagation(),27==a.keyCode||"Escape"==a.code)eb?Ra():db(!0)});function ya(){return"ontouchstart"in window||0<navigator.pm||0<navigator.msMaxTouchPoints}var fb,gb=void 0;
function C(a,b,d,e){var f="string"==typeof b;"string"!=typeof b&&b||(b=z(function(n){return n},b));d||(a.setAttribute("aria-description",b()),f||(a.onfocus=function(){a.setAttribute("aria-description",b())}));var g=void 0,h=ya();if(h)Qa();else{var k=function(n,p){if(D)if(0==D.ic)Qa();else if(!g||g!=fb)if(fb&&(r.Qb(fb),gb=fb=void 0),n){var m=a.getBoundingClientRect(),x=m.y,t=p.clientX+20;m=Math.max(p.clientY+20,m.y+m.height);g=document.createElement("div");g.style.position="fixed";fb=g;1==D.ic?(g.style.backgroundColor=
"#004",g.style.color="#fff",g.style.border="2px solid #fff"):2==D.ic?(g.style.backgroundColor="#ccce",g.style.color="#000",g.style.border="1px solid #000"):4==D.ic?(g.style.backgroundColor="#840e",g.style.color="#fff",g.style.border="2px solid #fff"):(g.style.backgroundColor="#0008",g.style.color="#fff",g.style.border="");g.style.padding="4px";g.style.zIndex="999";g.style.lineHeight="normal";g.style.textAlign="left";g.style.verticalAlign="top";g.style.fontSize="";var y=r.Wl(g);y.style.position="";
y.innerHTML=n;document.body.appendChild(g);p=g.clientWidth;p+=16;var u=Math.max(300,Math.floor(.3*hb.a.clientWidth));100<n.length&&(u=Math.max(400,Math.floor(.4*hb.a.clientWidth)));var v=hb.a.clientWidth;p>u&&(p=u);t+u>v&&(t=v-u);g.style.left=t+"px";g.style.top=m+"px";g.style.width=p+"px";g.onmouseover=function(){l()};m=g.getBoundingClientRect();t=m.y+m.height;m=m.height;p=window.innerHeight;t>p&&t-p>m-x&&(g.style.top=x-m+"px");d&&(gb=function(){var w=a.ll();w&&w!=n&&(n=w,y.innerHTML=n)})}},l=function(){gb=
void 0;fb&&r.Qb(fb);g&&g!=fb&&r.Qb(g);fb=g=void 0};(function(){a.ll=b;a.im||(a.im=!0,r.ob(a,"mouseover","tooltip",function(n){n.shiftKey||pa(n)||(!h||e)&&k(a.ll(),n,!1)}),r.ob(a,"mouseout","tooltip",function(n){if(!h||e)n=n.toElement||n.relatedTarget,n!=a&&(n&&n.parentNode==a||n&&n.parentNode&&n.parentNode.parentNode==a||n&&n.parentNode&&n.parentNode.parentNode&&n.parentNode.parentNode.parentNode==a||n&&n.parentNode&&n.parentNode.parentNode&&n.parentNode.parentNode.parentNode&&n.parentNode.parentNode.parentNode.parentNode==
a||n!=g&&l())}))})()}}function Qa(){fb&&r.Qb(fb);fb=gb=void 0}var Ma=2,Za=5;
function G(a,b,d,e,f,g,h){this.fontSize=g;this.Ll=!!h;this.vi=!a||a.a==document.body;b.length?(this.ql=b[0],this.tl=b[1]||0,this.rl=b[2]||0,this.sl=void 0==b[3]?1:b[3],this.ul=b[4]||0):(this.ql=b,this.rl=this.tl=0,this.sl=1,this.ul=0);d.length?(this.Id=d[0],this.Cl=d[1]||0,this.Al=d[2]||0,this.Bl=void 0==d[3]?1:d[3],this.Dl=d[4]||0):(this.Id=d,this.Al=this.Cl=0,this.Bl=1,this.Dl=0);e.length?(this.vl=e[0],this.yl=e[1]||0,this.wl=e[2]||0,this.xl=void 0==e[3]?1:e[3],this.zl=e[4]||0):(this.vl=e,this.wl=
this.yl=0,this.xl=1,this.zl=0);f.length?(this.yk=f[0],this.Gl=f[1]||0,this.El=f[2]||0,this.Fl=void 0==f[3]?1:f[3],this.Hl=f[4]||0):(this.yk=f,this.El=this.Gl=0,this.Fl=1,this.Hl=0);a&&a.elements.push(this);a=a?a.a:r.Ol;this.a=la(0,0,0,0,a);this.a.style.boxSizing="border-box";this.elements=[];ib(this,a)}function jb(a,b){if(b instanceof G){a.vi=!1;var d=b.a;b.elements.push(a)}else a.vi=!0,d=b;d.appendChild(a.a);a.update(d)}var kb=void 0,lb=void 0,mb=void 0;
function ib(a,b){a.a==kb&&(kb=void 0);if(a.vi||!b){var d=window.innerWidth;var e=window.innerHeight;kb=void 0}else b==kb?(d=lb,e=mb):(d=b.clientWidth,e=b.clientHeight,kb=b,lb=d,mb=e);d=[d,e];b=d[0];var f=d[1];d=b*a.ql+f*a.tl+Math.min(b,a.sl*f)*a.rl+a.ul;e=f*a.Id+b*a.Cl+Math.min(a.Bl*b,f)*a.Al+a.Dl;var g=b*a.vl+f*a.yl+Math.min(b,a.xl*f)*a.wl+a.zl;b=f*a.yk+b*a.Gl+Math.min(a.Fl*b,f)*a.El+a.Hl;a.a.style.left=Math.floor(d)+"px";a.a.style.top=Math.floor(e)+"px";a.a.style.width=Math.floor(g-d)+"px";a.a.style.height=
Math.floor(b-e)+"px";3==a.fontSize?a.a.style.fontSize=Math.floor(2*Math.min((g-d)/10,b-e))+"px":(b=1,1==a.fontSize?b=1.4:a.fontSize==Ma?b=1.25:4==a.fontSize?b=.9:a.fontSize==Za&&(b=1.5),a.a.style.fontSize=Math.floor(.021*Math.min(1.3*window.innerWidth,.75*window.innerHeight)*b)+"px");a.Ll&&(b=a.a.clientHeight,a.a.style.textAlign="center",a.a.style.verticalAlign="middle",a.a.style.lineHeight=b+"px")}G.prototype.update=function(a){a?ib(this,a):this.vi&&ib(this,void 0);for(a=0;a<this.elements.length;a++)this.elements[a].update(this.a)};
function Ua(a,b){a.a==kb&&(kb=void 0);r.Qb(a.a);if(b){b=b.elements;for(var d=0;d<b.length;d++)if(b[d]==a){b.splice(d,1);break}}}G.prototype.clear=function(){this.a==kb&&(kb=void 0);for(var a=0;a<this.elements.length;a++)this.elements[a].a==kb&&(kb=void 0),r.Qb(this.elements[a].a);this.elements=[];this.a.innerHTML=""};
function ob(a){var b=c(0),d=c(Infinity);if(pb(a.g,0)){var e=a.g.a(D.b.g).o(100),f=a.g.sub(D.b.g).a(qb.g);b=rb(b,f);d=sb(d,e)}pb(a.A,0)&&(e=a.A.a(D.b.A).o(100),f=a.A.sub(D.b.A).a(qb.A),b=rb(b,f),d=sb(d,e));pb(a.S,0)&&(e=a.S.a(D.b.S).o(100),f=a.S.sub(D.b.S).a(qb.S),b=rb(b,f),d=sb(d,e));pb(a.c,0)&&(e=a.c.a(D.b.c).o(100),f=a.c.sub(D.b.c).a(qb.c),b=rb(b,f),d=sb(d,e));pb(a.G,0)&&(e=a.G.a(D.b.G).o(100),f=a.G.sub(D.b.G).a(qb.G),b=rb(b,f),d=sb(d,e));pb(a.R,0)&&(e=a.R.a(D.b.R).o(100),f=a.R.sub(D.b.R).a(qb.R),
b=rb(b,f),d=sb(d,e));a="";pb(d,100)&&!tb(b,Infinity)?a+=r.I(b.valueOf(),!0):(ub(d,.001)&&(d=c(0)),a+=d.toString()+"% of stacks");return a}function $a(a,b){a.a.style.overflowY="auto";a.a.style.overflowX="hidden";window.setTimeout(function(){a.a.className=a.a.scrollHeight>a.a.clientHeight?"efScrollGradient":"";b&&(new MutationObserver(function(d){d[0]&&(d=d[0].target,d.className=d.scrollHeight>d.clientHeight?"efScrollGradient":"")})).observe(a.a,{childList:!0})})}var eb=void 0,vb=void 0;
function Ra(){eb&&eb.yg(!1);vb&&(r.Qb(vb),vb=void 0)}
function yb(a,b,d,e,f,g){var h=a.a.h?a.a.h:a.a;a.Rf=d;h.innerText=b+": "+e[a.Rf];h=e.length+2;var k=.02*h;g||(a.a.className="efDropDown");var l=new G(Sa,.25,.5-k,.75,.5+k);l.a.style.zIndex="1000";l.a.className="efDropDown";var n=!0;l.yg=function(m){m==n||m&&eb==l||(eb&&eb!=l&&eb.yg(!1),n=m,l.a.style.display=n?"block":"none",eb=m?l:void 0,n&&l.update(zb),m&&!vb&&(vb=ab(10*(Ga+1))),!m&&vb&&(r.Qb(vb),vb=void 0))};l.yg(!1);g=new G(l,0,0,1,1/h);ta(g.a);g.a.h.innerText=b+":";for(g=0;g<=e.length;g++){k=
g==e.length;var p=new G(l,.01,(g+1.01)/h,.99,(g+1.99)/h);Aa(p.a);ta(p.a);p.a.h.innerText=k?"cancel":e[g];p.a.className="efDropDown";k?A(p.a,z(function(){l.yg(!1)},g)):A(p.a,z(function(m){a.Rf=m;a.a.h.innerText=b+": "+e[m];ua(a.a,b+": "+e[m]+" - dropdown");f&&f(m);l.yg(!1)},g))}A(a.a,function(){l.yg(!n)},b+": "+e[d]+" - dropdown")}
function Bb(a,b,d,e){var f=La({size:0,ib:function(){d(g.value)},title:a});b&&((new G(f.content,.1,.2,.9,.3)).a.innerText=b);a=new G(f.content,.1,.4,.9,.6);var g=r.qf("textarea","0","0","100%","100%",a.a);g.onkeydown=function(h){13!=h.keyCode&&"Enter"!=h.code||h.shiftKey||(h.preventDefault(),d(g.value),f.Xh())};e&&(g.value=e,g.select());g.style.fontSize="100%";g.focus()}
function Cb(a){var b=La({size:0,ib:function(){a()},names:"yes",title:"Planting runestone",qc:"no",oncancel:void 0,Bk:!0});(new G(b.content,.1,.2,.9,.3)).a.innerText="Are you sure you want to place the runestone? It, and any crops it touches, cannot be deleted for 23 hours after placing it. Any crops you plant next to it later on, also cannot be deleted for 23 hours and reset the runestone time to 23 hours. The runestone does not give any infinity seeds income, so ensure you're willing to miss this income for at least 23 hours."}
function Db(a,b){for(var d=[];a;)d.push(a),a=a.parentElement;for(a=[];b;)a.push(b),b=b.parentElement;for(b=null;;){if(0==d.length||0==a.length)return b;var e=d.pop(),f=a.pop();if(e!=f)return b;b=e}}function Fb(a){for(var b=0;a;){var d=0;""!=a.style.zIndex&&(d=parseInt(a.style.zIndex));d||(d=0);b=Math.max(b,d);a=a.parentElement}return b}
function Gb(a,b,d,e,f,g,h){var k=Db(a,e);k&&h&&(k=Db(k,h));if(k){var l=a.getBoundingClientRect(),n=e.getBoundingClientRect(),p=k.getBoundingClientRect();b=l.x+b*l.width;d=l.y+d*l.height;f=n.x+f*n.width;g=n.y+g*n.height;b=(b-p.x)/p.width;d=(d-p.y)/p.height;f=(f-p.x)/p.width;g=(g-p.y)/p.height;var m=k.clientWidth,x=k.clientHeight;n=f*m;p=g*x;var t=n-b*m,y=p-d*x,u=Math.atan2(y,t);l=.025*Math.sqrt((f-b)*(f-b)+(g-d)*(g-d));var v=.3*Math.sqrt(t*t+y*y),w=.16*Math.PI;t=n-v*Math.cos(u-w);y=p-v*Math.sin(u-
w);var q=n-v*Math.cos(u+w);u=p-v*Math.sin(u+w);t/=m;y/=x;q/=m;u/=x;w=Math.min(b,f,t,q)-2*l;v=Math.min(d,g,y,u)-2*l;n=Math.max(b,f,t,q)+2*l;p=Math.max(d,g,y,u)+2*l;x=n-w;m=p-v;k=Va(100*w+"%",100*v+"%",100*(n-w)+"%",100*(p-v)+"%",k);n=k.clientWidth;p=k.clientHeight;if(n>p){var F=256;var B=Math.floor(F*p/n)}else B=256,F=Math.floor(B*n/p);k.width=F;k.height=B;k.style.pointerEvents="none";var K=k.getContext("2d");k.className="nonpixelated";b=(b-w)/x*F;d=(d-v)/m*B;n=(f-w)/x*F;p=(g-v)/m*B;t=(t-w)/x*F;y=
(y-v)/m*B;q=(q-w)/x*F;u=(u-v)/m*B;K.lineWidth=l*Math.sqrt(F*F/(x*x)+B*B/(m*m));K.strokeStyle="#f00";K.beginPath();K.moveTo(b,d);K.lineTo(n,p);K.stroke();K.beginPath();K.moveTo(t,y);K.lineTo(n,p);K.lineTo(q,u);K.stroke();a=Math.max(Fb(a),Fb(e));h&&(a=Math.max(a,Fb(h)));a++;k.style.zIndex=a;return k}}var Hb=[];
function Ib(a,b,d,e,f,g,h){function k(){r.Qb(l);l=Gb(a,b,d,e,f,g,h);n.Dk=l}var l=Gb(a,b,d,e,f,g,h),n={};window.addEventListener("resize",k);n.Dk=l;n.Mm=k;n.remove=function(){r.Qb(l);window.removeEventListener("resize",k);n.Dk=void 0;n.remove=function(){};for(var p=0;p<Hb.length;p++){var m=Hb.length-p-1;if(Hb[m]==n){Hb.splice(m,1);break}}};Hb.push(n)}function Jb(){for(;0<Hb.length;)Hb[Hb.length-1].remove()}var Kb,Lb;
function Mb(){if(!window.AudioContext&&!window.webkitAudioContext)return!1;Kb||(Kb=new (window.AudioContext||window.webkitAudioContext));if(!Kb)return!1;Lb=Kb.createBufferSource();if(!Lb)return!1;Lb.connect(Kb.destination);return!0}var Nb=[];
function Ob(a){if(!Nb[a]){if(Mb()){var b=Kb.sampleRate;for(var d=Kb.createBuffer(2,.75*b,b),e=0;e<d.numberOfChannels;e++)for(var f=d.getChannelData(e),g=0;g<d.length;g++){var h=(g+1)/d.length;f[g]=Math.sin(g/b*Math.PI*2*a)*(1-h)*(1-h)*.25}b=d}else b=void 0;Nb[a]=b}Nb[a]&&(a=Nb[a],Mb()&&(Lb.buffer=a,Lb.start()))}function Pb(a){if(!a)return"";a=a.substr(0,25);a=a.replace(/\s/g," ");a=a.replace(/</g,"");a=a.replace(/>/g,"");return a=a.replace(/&/g,"")}
function Qb(a,b,d,e,f){function g(){b=!b;h();e(b)}function h(){Wa(b?Rb:Sb,l);ua(k.a,(f||d)+(b?" (checked)":" (unchecked)"))}var k=new G(a,0,0,[0,1],1);a=new G(a,[0,1.2],0,1,1);var l=Va("0%","0%","100%","100%",k.a);Aa(k.a);sa(a.a,void 0,!0);a.a.h.innerText=d;A(k.a,g);a.a.onclick=g;h()};function Ub(a,b,d){var e=Math.min(Math.min(a,b),d),f=Math.max(Math.max(a,b),d);if(e==f)return 0;a=(a==f?(b-d)/(f-e):b==f?2+(d-a)/(f-e):4+(a-b)/(f-e))/6;0>a&&(a+=1);return a}
function Vb(a){var b=a[0]/255,d=a[1]/255,e=a[2]/255,f;b-=Math.floor(b);if(0==d)b=f=d=e;else{d=.5>e?e*(1+d):e+d-e*d;e=2*e-d;var g=b+1/3;1<g&&g--;f=b;var h=b-1/3;0>h&&h++;b=g<1/6?e+6*(d-e)*g:.5>g?d:g<2/3?e+(d-e)*(2/3-g)*6:e;f=f<1/6?e+6*(d-e)*f:.5>f?d:f<2/3?e+(d-e)*(2/3-f)*6:e;d=h<1/6?e+6*(d-e)*h:.5>h?d:h<2/3?e+(d-e)*(2/3-h)*6:e}return[Math.floor(255*b),Math.floor(255*f),Math.floor(255*d),a[3]]}
function Wb(a){var b=a[0]/255,d=a[1]/255,e=a[2]/255,f=Math.min(Math.min(b,d),e),g=Math.max(Math.max(b,d),e);f=0==g?0:(g-f)/g;return[Math.floor(255*(0==f?0:Ub(b,d,e))),Math.floor(255*f),Math.floor(255*g),a[3]]}
function Xb(a){var b=a[0]/255,d=a[1]/255,e=a[2]/255;if(0==d)var f=d=e;else{b-=Math.floor(b);b*=6;f=Math.floor(b);var g=b-Math.floor(b);b=e*(1-d);var h=e*(1-d*g);g=e*(1-d*(1-g));switch(f){case 0:f=e;d=g;e=b;break;case 1:f=h;d=e;e=b;break;case 2:f=b;d=e;e=g;break;case 3:f=b;d=h;break;case 4:f=g;d=b;break;default:f=e,d=b,e=h}}return[Math.floor(255*f),Math.floor(255*d),Math.floor(255*e),a[3]]}
function Yb(a){if("#"==a[0]){var b=255;a=a.substr(1);if(6==a.length){var d=parseInt(a.substr(0,2),16);var e=parseInt(a.substr(2,2),16);var f=parseInt(a.substr(4,2),16)}else if(3==a.length)d=17*parseInt(a.substr(0,1),16),e=17*parseInt(a.substr(1,1),16),f=17*parseInt(a.substr(2,1),16);else if(8==a.length)d=parseInt(a.substr(0,2),16),e=parseInt(a.substr(2,2),16),f=parseInt(a.substr(4,2),16),b=parseInt(a.substr(6,2),16);else if(4==a.length)d=17*parseInt(a.substr(0,1),16),e=17*parseInt(a.substr(1,1),16),
f=17*parseInt(a.substr(2,1),16),b=17*parseInt(a.substr(3,1),16);else return;return[d,e,f,b]}a=a.toLowerCase();if("black"==a)return[0,0,0,255];if("silver"==a)return[192,192,192,255];if("gray"==a||"grey"==a)return[128,128,128,255];if("white"==a)return[255,255,255,255];if("maroon"==a)return[128,0,0,255];if("red"==a)return[255,0,0,255];if("purple"==a)return[128,0,128,255];if("fuchsia"==a||"magenta"==a)return[255,0,255,255];if("green"==a)return[0,128,0,255];if("lime"==a)return[0,255,0,255];if("olive"==
a)return[128,128,0,255];if("yellow"==a)return[255,255,0,255];if("navy"==a)return[0,0,128,255];if("blue"==a)return[0,0,255,255];if("teal"==a)return[0,128,128,255];if("aqua"==a||"cyan"==a)return[0,255,255,255];if("orange"==a)return[255,165,0,255];if("transparent"==a)return[0,0,0,0]}
function Zb(a){var b=Math.floor(a[0]).toString(16),d=Math.floor(a[1]).toString(16),e=Math.floor(a[2]).toString(16);a=4<=a.length?Math.floor(a[3]).toString(16):"ff";1==b.length&&(b="0"+b);1==d.length&&(d="0"+d);1==e.length&&(e="0"+e);1==a.length&&(a="0"+a);return"#"+b+d+e+a}
var $b=[["p","r","R","P"],["%","s","S","$"],["x","o","O","X"],["[","e","E","]"],["z","y","Y","Z"],["k","l","L","K"],["|","h","H","#"],["q","g","G","Q"],["u","t","T","U"],["(","c","C",")"],["&","a","A","@"],["d","b","B","D"],["j","i","I","J"],["w","v","V","W"],["n","m","M","N"],["{","f","F","}"]];
function ac(a){var b="#f00 #f40 #f80 #fc0 #ff0 #8f0 #5f0 #0f0 #0f8 #0ff #08f #00f #40f #80f #f0f #f08".split(" "),d=["#400","#822","#a55","#faa"],e=["#000",void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,"#fff"],f=void 0,g=0,h=0,k=0,l=0;if(a)for(var n=a.split(" "),p=0;p<n.length;p++){var m=n[p],x=m.split(":");m=x[0];var t=x[1];if("l0"==m)d[0]=t;else if("l1"==m)d[1]=t;else if("l2"==m)d[2]=t;else if("l3"==m)d[3]=t;else if("hs0"==m)g=parseFloat(t);else if("hs1"==m)h=parseFloat(t);else if("ts0"==
m)k=parseFloat(t);else if("ts1"==m)l=parseFloat(t);else if("h"==m[0])for(x=0;x<$b.length;x++){if(m[1]==$b[x][1]){b[x]=t;break}}else"g0"==m?e[0]=t:"g1"==m?e[1]=t:"g2"==m?e[2]=t:"g3"==m?e[3]=t:"g4"==m?e[4]=t:"g5"==m?e[5]=t:"g6"==m?e[6]=t:"g7"==m?e[7]=t:"g8"==m?e[8]=t:"g9"==m?e[9]=t:"aa"==m&&(f=Wb(Yb(t)))}var y={};for(p=0;9>=p;p++){for(x=p+1;9>x&&void 0==e[x];)x++;if(x==p+1)n=String.fromCharCode(48+p),y[n]=Yb(e[p]);else{var u=Yb(e[p]);t=Yb(e[x]);var v=x-p;for(m=0;m<v;m++){n=String.fromCharCode(48+p+
m);var w=m/v,q=1-w;y[n]=[Math.floor(u[0]*q+t[0]*w),Math.floor(u[1]*q+t[1]*w),Math.floor(u[2]*q+t[2]*w),Math.floor(u[3]*q+t[3]*w)]}p=x-1}}for(p=0;p<$b.length;p++)for(x=0;4>x;x++){n=$b[p][x];e=Yb(b[p]);u=Yb(d[x]);t=Wb(e);v=t[0];for(v+=((3-x)*g+x*h)/3*255;255<v;)v-=255;for(;0>v;)v+=255;w=u[0]/255;var F=u[1]/255;var B=u[2]/255;q=Math.min(Math.min(w,F),B);var K=Math.max(Math.max(w,F),B);q==K?q=F=0:(F=Ub(w,F,B),w=(K+q)/2,q=.5>w?(K-q)/(K+q):(K-q)/(2-K-q));w=[Math.floor(255*F),Math.floor(255*q),Math.floor(255*
w),u[3]];v=Vb([v,w[1]*t[1]/255,w[2]*t[2]/255]);if(k||l)t=((3-x)*k+x*l)/3,0>t?(t=-t,v[0]=Math.floor(v[0]*(1-t)+0*t),v[2]=Math.floor(v[2]*(1-t)+255*t)):(v[0]=Math.floor(v[0]*(1-t)+255*t),v[2]=Math.floor(v[2]*(1-t)+0*t));y[n]=v;y[n][3]=Math.min(u[3],e[3])}y["+"]=[255,0,0,255];y["-"]=[255,255,0,255];y["*"]=[0,255,0,255];y["/"]=[0,0,255,255];y[" "]=y["."]=[0,0,0,0];if(a)for(n=a.split(" "),p=0;p<n.length;p++)m=n[p],x=m.split(":"),m=x[0],t=x[1],1==m.length&&void 0!=y[m]&&" "!=m&&"."!=m&&(y[m]=Yb(t));if(f)for(m in y)y.hasOwnProperty(m)&&
(a=Wb(y[m]),a[1]*=f[1]/255,a[2]*=f[2]/255,a[3]*=f[3]/255,y[m]=Xb(a));return y}var bc=ac();function cc(a){a=a.trim();var b=bc;a=a.split("\n");if(":"==a[0][1]||":"==a[0][2]||":"==a[0][3]||":"==a[0][4])b=a[0],a.shift(),b=ac(b);if(a.length){for(var d=a[0].length,e=a.length,f=[],g=0;g<e;g++){f[g]=[];for(var h=0;h<d;h++){var k=a[g][h];k&&"'"!=k||(k=" ");(k=b[k])||(k=[0,0,0,0]);f[g][h]=k}}return[f,d,e]}}
function dc(a,b,d,e){for(var f=0;f<e;f++)for(var g=0;g<d;g++)a.data[4*(f*d+g)]=b[f][g][0],a.data[4*(f*d+g)+1]=b[f][g][1],a.data[4*(f*d+g)+2]=b[f][g][2],a.data[4*(f*d+g)+3]=b[f][g][3]}function ec(a){if(a){var b=a[0],d=a[1],e=a[2],f=document.createElement("canvas");f.width=d;f.height=e;var g=f.getContext("2d"),h=g.createImageData(d,e);dc(h,b,d,e);g.putImageData(h,0,0);return[h,d,e,f,a]}}function J(a){return ec(cc(a))}
function Va(a,b,d,e,f){f=f||document.body;var g=document.createElement("canvas");g.style.position="absolute";g.style.left=a;g.style.top=b;g.style.width=d;g.style.height=e;g.classList.add("pixelated");f.appendChild(g);return g}function Wa(a,b){var d=a[1],e=a[2];b.width!=d&&(b.width=d);b.height!=e&&(b.height=e);b=b.getContext("2d");b.clearRect(0,0,d,e);b.drawImage(a[3],0,0)}
function fc(a,b){for(var d,e,f=0,g=0;g<a.length;g++){f=Math.max(f,a[g].length);for(var h=0;h<a[g].length;h++)if(a[g][h]){d=a[g][h][1];e=a[g][h][2];break}}if(void 0!=d)for(g=d*f,h=e*a.length,b.width!=g&&(b.width=g),b.height!=h&&(b.height=h),b=b.getContext("2d"),g=0;g<a.length;g++)for(h=0;h<a[g].length;h++)a[g][h]&&b.putImageData(a[g][h][0],h*d,g*e)}var gc=document.createElement("canvas");
function hc(a,b){var d=a[0],e=a[1];a=a[2];b.width!=e&&(b.width=e);b.height!=e&&(b.height=a);b=b.getContext("2d");gc.width=e;gc.height=a;gc.getContext("2d").putImageData(d,0,0);b.drawImage(gc,0,0)}function ic(a){a.getContext("2d").clearRect(0,0,a.width,a.height)}
function jc(a,b){var d=a[1],e=a[2];a=a[0];var f=b[1],g=b[2];b=b[0];for(var h=Math.max(d,f),k=Math.max(e,g),l=[],n=0;n<k;n++){l[n]=[];for(var p=0;p<h;p++){var m=n<e&&p<d?a[n][p]:[0,0,0,0],x=n<g&&p<f?b[n][p]:[0,0,0,0],t=x[3]/255;l[n][p]=[Math.floor(m[0]*(1-t)+x[0]*t),Math.floor(m[1]*(1-t)+x[1]*t),Math.floor(m[2]*(1-t)+x[2]*t),Math.floor(Math.max(m[3],x[3]))]}}return[l,h,k]};var kc=[J("l0:#844 l1:#d66 hg:#2f0\n................\n....g...........\n....q.qg........\n..gqqqg..g......\n.....qgggqg.....\n..gqqqqqqg......\n.gqgggqgg.......\n.....gq.ggg.....\n..ggqqqqqqqgg...\n.gqqgg.qgggqqg..\n..gg.g.q.g.gg...\n...gggqqqqggg...\n..ggqq..qgqqgg..\n.gqqgg..qgggqqg.\n..gg....q..ggg..\n................\n"),J("hg:#0f4\n................\n....g...........\n....q.qg........\n..gqqqg..g......\n.....qgggqg.....\n..gqqqqqqg......\n.gqgggqgg.......\n.....gq.ggg.....\n..ggqqqqqqqgg...\n.gqqgg.qgggqqg..\n..gg.g.q.g.gg...\n...gggqqqqggg...\n..ggqq..qgqqgg..\n.gqqgg..qgggqqg.\n..gg....q..ggg..\n................\n"),
J("q:#a30 g:#f70\n................\n....g...........\n....q.qg........\n..gqqqg..g......\n.....qgggqg.....\n..gqqqqqqg......\n.gqgggqgg.......\n.....gq.ggg.....\n..ggqqqqqqqgg...\n.gqqgg.qgggqqg..\n..gg.g.q.g.gg...\n...gggqqqqggg...\n..ggqq..qgqqgg..\n.gqqgg..qgggqqg.\n..gg....q..ggg..\n................\n"),J("q:#8ae g:#acf G:#cef Q:#eef\n................\n....g...........\n....q.qg........\n..gqqqg..g......\n.....qgggqg.....\n..gqqqqqqg......\n.gqgggqgg.......\n.....gq.ggg.....\n..ggqqqqqqqgg...\n.gqqgg.qgggqqg..\n..gg.g.q.g.gg...\n...gggqqqqggg...\n..ggqq..qgqqgg..\n.gqqgg..qgggqqg.\n..gg....q..ggg..\n................\n"),
J("q:#ff8 g:#ffa G:#ffc Q:#ffe\n................\n....g...........\n....q.qg........\n..gqqqg..g......\n.....qgggqg.....\n..gqqqqqqg......\n.gqgggqgg.......\n.....gq.ggg.....\n..ggqqqqqqqgg...\n.gqqgg.qgggqqg..\n..gg.g.q.g.gg...\n...gggqqqqggg...\n..ggqq..qgqqgg..\n.gqqgg..qgggqqg.\n..gg....q..ggg..\n................\n"),J("q:#f88 g:#f44 G:#f22 Q:#f00\n................\n....g...........\n....q.qg........\n..gqqqg..g......\n.....qgggqg.....\n..gqqqqqqg......\n.gqgggqgg.......\n.....gq.ggg.....\n..ggqqqqqqqgg...\n.gqqgg.qgggqqg..\n..gg.g.q.g.gg...\n...gggqqqqggg...\n..ggqq..qgqqgg..\n.gqqgg..qgggqqg.\n..gg....q..ggg..\n................\n")],
mc=[J("l0:#844 l1:#d66 hg:#2f0\n....$...........\n...$g$$$........\n..$$q$qg$$......\n.$gqqqg$$g$.....\n..$$$qgggqg$....\n.$gqqqqqqg$.....\n$gqgggqgg$$.....\n.$$$$gq$ggg$$...\n.$ggqqqqqqqgg$..\n$gqqgg$qgggqqg$.\n.$gg$g$q$g$gg$..\n..$gggqqqqggg$..\n.$ggqq$$qgqqgg$.\n$gqqgg$$qgggqqg$\n.$gg$$$$q$$ggg$.\n..$$....$..$$$..\n"),J("hg:#0f4\n....$...........\n...$g$$$........\n..$$q$qg$$......\n.$gqqqg$$g$.....\n..$$$qgggqg$....\n.$gqqqqqqg$.....\n$gqgggqgg$$.....\n.$$$$gq$ggg$$...\n.$ggqqqqqqqgg$..\n$gqqgg$qgggqqg$.\n.$gg$g$q$g$gg$..\n..$gggqqqqggg$..\n.$ggqq$$qgqqgg$.\n$gqqgg$$qgggqqg$\n.$gg$$$$q$$ggg$.\n..$$....$..$$$..\n"),
J("q:#a30 g:#f70\n....$...........\n...$g$$$........\n..$$q$qg$$......\n.$gqqqg$$g$.....\n..$$$qgggqg$....\n.$gqqqqqqg$.....\n$gqgggqgg$$.....\n.$$$$gq$ggg$$...\n.$ggqqqqqqqgg$..\n$gqqgg$qgggqqg$.\n.$gg$g$q$g$gg$..\n..$gggqqqqggg$..\n.$ggqq$$qgqqgg$.\n$gqqgg$$qgggqqg$\n.$gg$$$$q$$ggg$.\n..$$....$..$$$..\n"),J("q:#8ae g:#acf G:#cef Q:#eef\n....$...........\n...$g$$$........\n..$$q$qg$$......\n.$gqqqg$$g$.....\n..$$$qgggqg$....\n.$gqqqqqqg$.....\n$gqgggqgg$$.....\n.$$$$gq$ggg$$...\n.$ggqqqqqqqgg$..\n$gqqgg$qgggqqg$.\n.$gg$g$q$g$gg$..\n..$gggqqqqggg$..\n.$ggqq$$qgqqgg$.\n$gqqgg$$qgggqqg$\n.$gg$$$$q$$ggg$.\n..$$....$..$$$..\n"),
J("q:#ff8 g:#ffa G:#ffc Q:#ffe\n....$...........\n...$g$$$........\n..$$q$qg$$......\n.$gqqqg$$g$.....\n..$$$qgggqg$....\n.$gqqqqqqg$.....\n$gqgggqgg$$.....\n.$$$$gq$ggg$$...\n.$ggqqqqqqqgg$..\n$gqqgg$qgggqqg$.\n.$gg$g$q$g$gg$..\n..$gggqqqqggg$..\n.$ggqq$$qgqqgg$.\n$gqqgg$$qgggqqg$\n.$gg$$$$q$$ggg$.\n..$$....$..$$$..\n"),J("q:#f88 g:#f44 G:#f22 Q:#f00\n....$...........\n...$g$$$........\n..$$q$qg$$......\n.$gqqqg$$g$.....\n..$$$qgggqg$....\n.$gqqqqqqg$.....\n$gqgggqgg$$.....\n.$$$$gq$ggg$$...\n.$ggqqqqqqqgg$..\n$gqqgg$qgggqqg$.\n.$gg$g$q$g$gg$..\n..$gggqqqqggg$..\n.$ggqq$$qgqqgg$.\n$gqqgg$$qgggqqg$\n.$gg$$$$q$$ggg$.\n..$$....$..$$$..\n")],
nc=[J("0:#000\n....00....00....\n...0TT0..0TT0...\n...0T0T00T0T0...\n...00TTPPTT00...\n.00PPUUTTUUPP00.\n.0RPPPPUUPPPPr0.\n.0RRRUUPPUUrrr0.\n.0RRRTRPPrrtrr0.\n.0RRRTRRrrrtrr0.\n.0RRRTRRrrrtrr0.\n.0RRRTRRrrrtrr0.\n.0RRRTRRrrrtrr0.\n.00RRTRRrrrtr00.\n...00TRRrrr00...\n.....00Rr00.....\n.......00.......\n"),J("0:#000\n....00....00....\n...0AA0..0AA0...\n...0A0A00A0A0...\n...00AAXXAA00...\n.00XX@@AA@@XX00.\n.0OXXXX@@XXXXo0.\n.0OOO@@XX@@ooo0.\n.0OOOAOXXooaoo0.\n.0OOOAOOoooaoo0.\n.0OOOAOOoooaoo0.\n.0OOOAOOoooaoo0.\n.0OOOAOOoooaoo0.\n.00OOAOOoooao00.\n...00AOOooo00...\n.....00Oo00.....\n.......00.......\n"),
J("0:#000\n....00....00....\n...0FF0..0FF0...\n...0F0F00F0F0...\n...00FFQQFF00...\n.00QQ}}FF}}QQ00.\n.0GQQQQ}}QQQQg0.\n.0GGG}}QQ}}ggg0.\n.0GGGFGQQggfgg0.\n.0GGGFGGgggfgg0.\n.0GGGFGGgggfgg0.\n.0GGGFGGgggfgg0.\n.0GGGFGGgggfgg0.\n.00GGFGGgggfg00.\n...00FGGggg00...\n.....00Gg00.....\n.......00.......\n"),J("0:#000\n....00....00....\n...0OO0..0OO0...\n...0O0O00O0O0...\n...00OO@@OO00...\n.00@@XXOOXX@@00.\n.0A@@@@XX@@@@a0.\n.0AAAXX@@XXaaa0.\n.0AAAOA@@aaoaa0.\n.0AAAOAAaaaoaa0.\n.0AAAOAAaaaoaa0.\n.0AAAOAAaaaoaa0.\n.0AAAOAAaaaoaa0.\n.00AAOAAaaaoa00.\n...00OAAaaa00...\n.....00Aa00.....\n.......00.......\n")],
pc=[J("\n................\n.......000......\n......09*90.....\n.....09*9**0....\n....09+***+*0...\n....0P*+*+*r0...\n...0P***+**gr0..\n...099******g0..\n...09*+**g+gg0..\n...0*+*+*+grg0..\n...0+**g+gggr0..\n....0g*gg*gg0...\n....0*g*gggg0...\n.....00ggg00....\n.......000......\n................\n"),J("\n................\n.......000......\n......09@90.....\n.....09@9@@0....\n....0PP@@@PP0...\n....0PPPPPPR0...\n...09@@PPP@A@0..\n...099@@@@@@A0..\n...09@@@@A@AA0..\n...0PP@@@@APR0..\n...0PPPRPRRRR0..\n....0APRRPRA0...\n....0@A@AAAA0...\n.....00AAA00....\n.......000......\n................\n"),
J("\n................\n.......000......\n......0PQ90.....\n.....09P9Q+0....\n....099Q++QQ0...\n....0P+9QQQQ0...\n...0PQQ+QQ++Q0..\n...0P9Q+Q+QQ+0..\n...09++QQ+QG+0..\n...0QQQQQQ++G0..\n...0QQ++QGGGG0..\n....0+QG+QGr0...\n....0+GQ+GrG0...\n.....00+GG00....\n.......000......\n................\n"),J("\n................\n.......000......\n......0---0.....\n.....0---YY0....\n....0--Y-YYY0...\n....0--YYYYY0...\n...09PY-YYYRP0..\n...099PPPPPPR0..\n...09PPPPRPRR0..\n...0PPPPPPRPR0..\n...0@PPRPRRRA0..\n....0A@AA@AA0...\n....0@APAAAA0...\n.....00AAA00....\n.......000......\n................\n")],
qc=J("\n...0000...0000..\n..099900.009990.\n.09N0N90.09N0N90\n.0N0.0N0.0N0.0N0\n.00...09090...00\n.....0099900....\n.....0909090....\n...33099N990....\n..3TQ0090900....\n.33QT300000.....\n3++3Q309990.....\n3ZZ330909090....\n3++300009000....\n.3000999999000..\n.09999000099990.\n.000000..000000.\n"),tc=[J("+:#dbecc8 -:#b5d571\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n++--++++++++++++\n++++-++--+-++--+\n++++++++++++++++\n++++++++++++++++\n+++-+--+--+--+++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n+++++++++++---++\n+---+-+---++++++\n++++++++++++++++\n++++++++++++++++\n"),
J("+:#dbecc8 -:#b5d571\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n+++--++-+---++++\n++++++++-+++++++\n++++++++++++++++\n++++++++++++++++\n++----++++----++\n+++++++++++++++-\n++++++++++++++++\n++++++++++++-+++\n+---+---++-+++++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n"),J("+:#dbecc8 -:#b5d571\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n+---++++++++---+\n+++++--+-++-++++\n++++++++++++++++\n+-++++++++++++++\n++---+++++++++++\n+++++++---+--+++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n+----+++----++++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n"),
J("+:#dbecc8 -:#b5d571\n++++++++++++++++\n++++++++++++++++\n+-+----+-+++++++\n+++++++++-----++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n+---++--++++++++\n++++++++++-----+\n++++++++++++++++\n++++++++++++++++\n++++++++-+++++++\n++-----++----+++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n"),J("+:#dbecc8 -:#b5d571\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n")],
uc=[J("+:#bda -:#ba5\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n++--++++++++++++\n++++-++--+-++--+\n++++++++++++++++\n++++++++++++++++\n+++-+--+--+--+++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n+++++++++++---++\n+---+-+---++++++\n++++++++++++++++\n++++++++++++++++\n"),J("+:#bda -:#ba5\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n+++--++-+---++++\n++++++++-+++++++\n++++++++++++++++\n++++++++++++++++\n++----++++----++\n+++++++++++++++-\n++++++++++++++++\n++++++++++++-+++\n+---+---++-+++++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n"),
J("+:#bda -:#ba5\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n+---++++++++---+\n+++++--+-++-++++\n++++++++++++++++\n+-++++++++++++++\n++---+++++++++++\n+++++++---+--+++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n+----+++----++++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n"),J("+:#bda -:#ba5\n++++++++++++++++\n++++++++++++++++\n+-+----+-+++++++\n+++++++++-----++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n+---++--++++++++\n++++++++++-----+\n++++++++++++++++\n++++++++++++++++\n++++++++-+++++++\n++-----++----+++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n"),
J("+:#bda -:#ba5\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n")],vc=[J("+:#d3be9c -:#cea78b\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n++--++++++++++++\n++++-++--+-++--+\n++++++++++++++++\n++++++++++++++++\n+++-+--+--+--+++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n+++++++++++---++\n+---+-+---++++++\n++++++++++++++++\n++++++++++++++++\n"),
J("+:#d3be9c -:#cea78b\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n+++--++-+---++++\n++++++++-+++++++\n++++++++++++++++\n++++++++++++++++\n++----++++----++\n+++++++++++++++-\n++++++++++++++++\n++++++++++++-+++\n+---+---++-+++++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n"),J("+:#d3be9c -:#cea78b\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n+---++++++++---+\n+++++--+-++-++++\n++++++++++++++++\n+-++++++++++++++\n++---+++++++++++\n+++++++---+--+++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n+----+++----++++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n"),
J("+:#d3be9c -:#cea78b\n++++++++++++++++\n++++++++++++++++\n+-+----+-+++++++\n+++++++++-----++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n+---++--++++++++\n++++++++++-----+\n++++++++++++++++\n++++++++++++++++\n++++++++-+++++++\n++-----++----+++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n"),J("+:#d3be9c -:#cea78b\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n")],
wc=[J("+:#fff -:#eef\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n++--++++++++++++\n++++-++--+-++--+\n++++++++++++++++\n++++++++++++++++\n+++-+--+--+--+++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n+++++++++++---++\n+---+-+---++++++\n++++++++++++++++\n++++++++++++++++\n"),J("+:#fff -:#eef\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n+++--++-+---++++\n++++++++-+++++++\n++++++++++++++++\n++++++++++++++++\n++----++++----++\n+++++++++++++++-\n++++++++++++++++\n++++++++++++-+++\n+---+---++-+++++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n"),
J("+:#fff -:#eef\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n+---++++++++---+\n+++++--+-++-++++\n++++++++++++++++\n+-++++++++++++++\n++---+++++++++++\n+++++++---+--+++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n+----+++----++++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n"),J("+:#fff -:#eef\n++++++++++++++++\n++++++++++++++++\n+-+----+-+++++++\n+++++++++-----++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n+---++--++++++++\n++++++++++-----+\n++++++++++++++++\n++++++++++++++++\n++++++++-+++++++\n++-----++----+++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n"),
J("+:#fff -:#eef\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n")],xc=[J("+:#9df -:#aaa\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n++--++++++++++++\n++++-++--+-++--+\n++++++++++++++++\n++++++++++++++++\n+++-+--+--+--+++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n+++++++++++---++\n+---+-+---++++++\n++++++++++++++++\n++++++++++++++++\n"),
J("+:#9df -:#aaa\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n+++--++-+---++++\n++++++++-+++++++\n++++++++++++++++\n++++++++++++++++\n++----++++----++\n+++++++++++++++-\n++++++++++++++++\n++++++++++++-+++\n+---+---++-+++++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n"),J("+:#9df -:#aaa\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n+---++++++++---+\n+++++--+-++-++++\n++++++++++++++++\n+-++++++++++++++\n++---+++++++++++\n+++++++---+--+++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n+----+++----++++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n"),
J("+:#9df -:#aaa\n++++++++++++++++\n++++++++++++++++\n+-+----+-+++++++\n+++++++++-----++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n+---++--++++++++\n++++++++++-----+\n++++++++++++++++\n++++++++++++++++\n++++++++-+++++++\n++-----++----+++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n"),J("+:#9df -:#aaa\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n")],
yc=[J("+:#c42 -:#f63\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n++--++++++++++++\n++++-++--+-++--+\n++++++++++++++++\n++++++++++++++++\n+++-+--+--+--+++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n+++++++++++---++\n+---+-+---++++++\n++++++++++++++++\n++++++++++++++++\n"),J("+:#c42 -:#f63\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n+++--++-+---++++\n++++++++-+++++++\n++++++++++++++++\n++++++++++++++++\n++----++++----++\n+++++++++++++++-\n++++++++++++++++\n++++++++++++-+++\n+---+---++-+++++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n"),
J("+:#c42 -:#f63\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n+---++++++++---+\n+++++--+-++-++++\n++++++++++++++++\n+-++++++++++++++\n++---+++++++++++\n+++++++---+--+++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n+----+++----++++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n"),J("+:#c42 -:#f63\n++++++++++++++++\n++++++++++++++++\n+-+----+-+++++++\n+++++++++-----++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n+---++--++++++++\n++++++++++-----+\n++++++++++++++++\n++++++++++++++++\n++++++++-+++++++\n++-----++----+++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n"),
J("+:#c42 -:#f63\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n")],zc=[J("+:#efd -:#ddf\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n++--++++++++++++\n++++-++--+-++--+\n++++++++++++++++\n++++++++++++++++\n+++-+--+--+--+++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n+++++++++++---++\n+---+-+---++++++\n++++++++++++++++\n++++++++++++++++\n"),
J("+:#efd -:#ddf\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n+++--++-+---++++\n++++++++-+++++++\n++++++++++++++++\n++++++++++++++++\n++----++++----++\n+++++++++++++++-\n++++++++++++++++\n++++++++++++-+++\n+---+---++-+++++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n"),J("+:#efd -:#ddf\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n+---++++++++---+\n+++++--+-++-++++\n++++++++++++++++\n+-++++++++++++++\n++---+++++++++++\n+++++++---+--+++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n+----+++----++++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n"),
J("+:#efd -:#ddf\n++++++++++++++++\n++++++++++++++++\n+-+----+-+++++++\n+++++++++-----++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n+---++--++++++++\n++++++++++-----+\n++++++++++++++++\n++++++++++++++++\n++++++++-+++++++\n++-----++----+++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n"),J("+:#efd -:#ddf\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n++++++++++++++++\n")],
Ac=[tc,uc,vc,wc,xc,yc,zc];J("\n................\n................\n................\n................\n................\n................\n................\n................\n................\n................\n................\n................\n................\n................\n................\n................\n");J("\n5555555555555555\n5555555555555555\n5555555555555555\n5555555555555555\n5555555555555555\n5555555555555555\n5555555555555555\n5555555555555555\n5555555555555555\n5555555555555555\n5555555555555555\n5555555555555555\n5555555555555555\n5555555555555555\n5555555555555555\n5555555555555555\n");
var Bc=J("\n................\n.....000000.....\n...00------00...\n..0----------0..\n..0----00----0..\n.0-----00-----0.\n.0-----00-----0.\n.0-----00-----0.\n.0-----00-----0.\n.0------------0.\n.0-----00-----0.\n..0----00----0..\n..0----------0..\n...00------00...\n.....000000.....\n................\n"),Dc=J("\n...........0....\n..........0-0...\n.........0---0..\n........0-----0.\n.......0000-0000\n..........0-0...\n..........0-0...\n..........0-0...\n..........000...\n................\n................\n................\n................\n................\n................\n................\n"),
Ec=J("\n................\n................\n................\n................\n........X.......\n.......XOO......\n.......XOO......\n......XOOOo.....\n.......OOo......\n.......OOo......\n........o.......\n................\n................\n................\n................\n................\n");J("\n................\n................\n................\n................\n................\n................\n................\n................\n...OOoo...OOoo..\n..Ooooxx.Ooooxx.\n...oxxx...oxxx..\n................\n......OOoo......\n.....Ooooxx.....\n......oxxx......\n................\n");
J("\n................\n................\n................\n................\n................\n................\n.......22.......\n......2110......\n......2100......\n.......00.......\n................\n................\n................\n................\n................\n................\n");J("\n................\n................\n................\n................\n...22...........\n..2110....22....\n..2100...2110...\n...00....2100...\n..........00....\n......22........\n.....2110.......\n.....2100.......\n......00........\n................\n................\n................\n");
var Fc=J("\n................\n................\n................\n........x.......\n.......xx.......\n......xxoo......\n......xooo......\n.....xxoooO.....\n.....xooOOO.....\n.....ooOOPO.....\n.....oOOPXO.....\n.....oOPX]O.....\n......oOOO......\n................\n................\n................\n"),Gc=J("\n................\n................\n....o....OO.....\n...o....XOXO....\n..oox...OXOo....\n.oooxx...ooOOX..\n.]eee[.....XOXO.\n.]eee[.....OXOo.\n.eeee[......oo..\n..ee[...........\n...[......O.....\n.........OOo....\n........sss%%...\n........sss%%...\n.........sx%....\n................\n"),
Hc=J("\n................\n................\n......aaaa......\n....aa@@@@a.....\n...a@@@@@@@aaa..\n...a@@@@@@@@@@a.\n.aa@@@@@@@@@@@a.\na@@@@@@@@@@@@@@a\na@@@@@@@@@@@@@@a\n.a@@@aaa@a@@@@a.\n..aa........aa..\n.....a.aaaa.....\n................\n....aaaaa.aa....\n................\n................\n"),Ic=J("\n+:#ff08\n................\n................\n......+---+.....\n.....-ZZZZZ-....\n....-ZZZZZZZ-...\n...+ZZZZZZZZZ+..\n...-ZZZZZZZZZ-..\n...-ZZZZZZZZZ-..\n...-ZZZZZZZZZ-..\n...+ZZZZZZZZZ+..\n....-ZZZZZZZ-...\n.....-ZZZZZ-....\n......+---+.....\n................\n................\n................\n"),
Kc=J("\n................\n...............+\n..............+-\n.......0......+-\n......0.0....+-*\n......0.0...+-**\ny....0...0..+-*/\n.y..0.....0+-*/I\n..y0+++++++-*/IM\n...y********/IMM\n..0MMMMMMMMMMM..\n..0.........0...\n.0000000000000..\n................\n................\n................\n"),Mc=J("\n......aaaa......\n....aa@@@@a.....\n...a@@@@@@@aaa..\n...a@@@@@@@@@@a.\n.aa@@@@@@@@@@@a.\na@@@@@@@@@@@@@@a\na@@@@@@@@@@@@@@a\n.a@@aaay-yaa@@a.\n..aa..y-y...aa..\n.....y-yyy......\n....y-----y.....\n....yyyy-y......\n....y-y-y.......\n....y--y........\n....y---y.......\n....yyyyy.......\n"),
Nc=[J(" hm:#999\n................\n.........h|.....\n........h||.....\n......0.||......\n.......0........\n.......0........\n......N0MMN.....\n....NNNMMNNm....\n....NMNNNmmmn...\n...NNMMmmmmnnn..\n...NMMmmmmmmnn..\n...NNMMmmmmnnn..\n...NMMmmmmmmnn..\n....NMMmmmmnn...\n.....NMMnmnn....\n................\n"),J(" hm:#c70\n................\n.........h|.....\n........h||.....\n......0.||......\n.......0........\n.......0........\n......N0MMN.....\n....NNNMMNNm....\n....NMNNNmmmn...\n...NNMMmmmmnnn..\n...NMMmmmmmmnn..\n...NNMMmmmmnnn..\n...NMMmmmmmmnn..\n....NMMmmmmnn...\n.....NMMnmnn....\n................\n"),
J(" N:#eee M:#bbb m:#888 n:#555\n................\n.........h|.....\n........h||.....\n......0.||......\n.......0........\n.......0........\n......N0MMN.....\n....NNNMMNNm....\n....NMNNNmmmn...\n...NNMMmmmmnnn..\n...NMMmmmmmmnn..\n...NNMMmmmmnnn..\n...NMMmmmmmmnn..\n....NMMmmmmnn...\n.....NMMnmnn....\n................\n"),J(" hm:#cfa\n................\n.........h|.....\n........h||.....\n......0.||......\n.......0........\n.......0........\n......N0MMN.....\n....NNNMMNNm....\n....NMNNNmmmn...\n...NNMMmmmmnnn..\n...NMMmmmmmmnn..\n...NNMMmmmmnnn..\n...NMMmmmmmmnn..\n....NMMmmmmnn...\n.....NMMnmnn....\n................\n"),
J(" hm:#fe0\n................\n.........h|.....\n........h||.....\n......0.||......\n.......0........\n.......0........\n......N0MMN.....\n....NNNMMNNm....\n....NMNNNmmmn...\n...NNMMmmmmnnn..\n...NMMmmmmmmnn..\n...NNMMmmmmnnn..\n...NMMmmmmmmnn..\n....NMMmmmmnn...\n.....NMMnmnn....\n................\n"),J(" N:#fff M:#eee m:#ddd n:#ccc\n................\n.........h|.....\n........h||.....\n......0.||......\n.......0........\n.......0........\n......N0MMN.....\n....NNNMMNNm....\n....NMNNNmmmn...\n...NNMMmmmmnnn..\n...NMMmmmmmmnn..\n...NNMMmmmmnnn..\n...NMMmmmmmmnn..\n....NMMmmmmnn...\n.....NMMnmnn....\n................\n"),
J(" N:#fee M:#ecc m:#dbb n:#caa\n................\n.........h|.....\n........h||.....\n......0.||......\n.......0........\n.......0........\n......N0MMN.....\n....NNNMMNNm....\n....NMNNNmmmn...\n...NNMMmmmmnnn..\n...NMMmmmmmmnn..\n...NNMMmmmmnnn..\n...NMMmmmmmmnn..\n....NMMmmmmnn...\n.....NMMnmnn....\n................\n"),J(" N:#c8f M:#b7e m:#86d n:#75b\n................\n.........h|.....\n........h||.....\n......0.||......\n.......0........\n.......0........\n......N0MMN.....\n....NNNMMNNm....\n....NMNNNmmmn...\n...NNMMmmmmnnn..\n...NMMmmmmmmnn..\n...NNMMmmmmnnn..\n...NMMmmmmmmnn..\n....NMMmmmmnn...\n.....NMMnmnn....\n................\n"),
J(" hm:#00f\n................\n.........h|.....\n........h||.....\n......0.||......\n.......0........\n.......0........\n......N0MMN.....\n....NNNMMNNm....\n....NMNNNmmmn...\n...NNMMmmmmnnn..\n...NMMmmmmmmnn..\n...NNMMmmmmnnn..\n...NMMmmmmmmnn..\n....NMMmmmmnn...\n.....NMMnmnn....\n................\n"),J(" hm:#0f0\n................\n.........h|.....\n........h||.....\n......0.||......\n.......0........\n.......0........\n......N0MMN.....\n....NNNMMNNm....\n....NMNNNmmmn...\n...NNMMmmmmnnn..\n...NMMmmmmmmnn..\n...NNMMmmmmnnn..\n...NMMmmmmmmnn..\n....NMMmmmmnn...\n.....NMMnmnn....\n................\n"),
J(" hm:#f00\n................\n.........h|.....\n........h||.....\n......0.||......\n.......0........\n.......0........\n......N0MMN.....\n....NNNMMNNm....\n....NMNNNmmmn...\n...NNMMmmmmnnn..\n...NMMmmmmmmnn..\n...NNMMmmmmnnn..\n...NMMmmmmmmnn..\n....NMMmmmmnn...\n.....NMMnmnn....\n................\n"),J(" N:#fff M:#eee m:#ddd n:#ccc\n................\n.........h|.....\n........h||.....\n......0.||......\n.......0........\n.......0........\n......N0MMN.....\n....NNNMMNNm....\n....NMNNNmmmn...\n...NNMMmmmmnnn..\n...NMMmmmmmmnn..\n...NNMMmmmmnnn..\n...NMMmmmmmmnn..\n....NMMmmmmnn...\n.....NMMnmnn....\n................\n")],
Oc=[J(" hm:#999\n................\n................\n................\n................\n................\n................\n.....MMmMM......\n...MMMmMMMMm....\n...MMmMMMMMm....\n..MMMmMMMMMmm...\n..MMMmMMMMMmm...\n..MMMmMMMMMmn...\n..MMMmMMMMMmn...\n...MMMMMMMmn....\n....MMMMMmn.....\n................\n"),J(" hm:#c70\n................\n................\n................\n................\n................\n................\n.....MMmMM......\n...MMMmMMMMm....\n...MMmMMMMMm....\n..MMMmMMMMMmm...\n..MMMmMMMMMmm...\n..MMMmMMMMMmn...\n..MMMmMMMMMmn...\n...MMMMMMMmn....\n....MMMMMmn.....\n................\n"),
J(" N:#eee M:#bbb m:#888 n:#555\n................\n................\n................\n................\n................\n................\n.....MMmMM......\n...MMMmMMMMm....\n...MMmMMMMMm....\n..MMMmMMMMMmm...\n..MMMmMMMMMmm...\n..MMMmMMMMMmn...\n..MMMmMMMMMmn...\n...MMMMMMMmn....\n....MMMMMmn.....\n................\n"),J(" hm:#cfa\n................\n................\n................\n................\n................\n................\n.....MMmMM......\n...MMMmMMMMm....\n...MMmMMMMMm....\n..MMMmMMMMMmm...\n..MMMmMMMMMmm...\n..MMMmMMMMMmn...\n..MMMmMMMMMmn...\n...MMMMMMMmn....\n....MMMMMmn.....\n................\n"),
J(" hm:#fe0\n................\n................\n................\n................\n................\n................\n.....MMmMM......\n...MMMmMMMMm....\n...MMmMMMMMm....\n..MMMmMMMMMmm...\n..MMMmMMMMMmm...\n..MMMmMMMMMmn...\n..MMMmMMMMMmn...\n...MMMMMMMmn....\n....MMMMMmn.....\n................\n"),J(" N:#fff M:#eee m:#ddd n:#ccc\n................\n................\n................\n................\n................\n................\n.....MMmMM......\n...MMMmMMMMm....\n...MMmMMMMMm....\n..MMMmMMMMMmm...\n..MMMmMMMMMmm...\n..MMMmMMMMMmn...\n..MMMmMMMMMmn...\n...MMMMMMMmn....\n....MMMMMmn.....\n................\n"),
J(" N:#fee M:#ecc m:#dbb n:#caa\n................\n................\n................\n................\n................\n................\n.....MMmMM......\n...MMMmMMMMm....\n...MMmMMMMMm....\n..MMMmMMMMMmm...\n..MMMmMMMMMmm...\n..MMMmMMMMMmn...\n..MMMmMMMMMmn...\n...MMMMMMMmn....\n....MMMMMmn.....\n................\n"),J(" N:#c8f M:#b7e m:#86d n:#75b\n................\n................\n................\n................\n................\n................\n.....MMmMM......\n...MMMmMMMMm....\n...MMmMMMMMm....\n..MMMmMMMMMmm...\n..MMMmMMMMMmm...\n..MMMmMMMMMmn...\n..MMMmMMMMMmn...\n...MMMMMMMmn....\n....MMMMMmn.....\n................\n"),
J(" hm:#00f\n................\n................\n................\n................\n................\n................\n.....MMmMM......\n...MMMmMMMMm....\n...MMmMMMMMm....\n..MMMmMMMMMmm...\n..MMMmMMMMMmm...\n..MMMmMMMMMmn...\n..MMMmMMMMMmn...\n...MMMMMMMmn....\n....MMMMMmn.....\n................\n"),J(" hm:#0f0\n................\n................\n................\n................\n................\n................\n.....MMmMM......\n...MMMmMMMMm....\n...MMmMMMMMm....\n..MMMmMMMMMmm...\n..MMMmMMMMMmm...\n..MMMmMMMMMmn...\n..MMMmMMMMMmn...\n...MMMMMMMmn....\n....MMMMMmn.....\n................\n"),
J(" hm:#f00\n................\n................\n................\n................\n................\n................\n.....MMmMM......\n...MMMmMMMMm....\n...MMmMMMMMm....\n..MMMmMMMMMmm...\n..MMMmMMMMMmm...\n..MMMmMMMMMmn...\n..MMMmMMMMMmn...\n...MMMMMMMmn....\n....MMMMMmn.....\n................\n"),J(" N:#fff M:#eee m:#ddd n:#ccc\n................\n................\n................\n................\n................\n................\n.....MMmMM......\n...MMMmMMMMm....\n...MMmMMMMMm....\n..MMMmMMMMMmm...\n..MMMmMMMMMmm...\n..MMMmMMMMMmn...\n..MMMmMMMMMmn...\n...MMMMMMMmn....\n....MMMMMmn.....\n................\n")],
Pc=[J(" hm:#999\n....|.|.|.|.....\n.....|h|h|......\n...|.||h||.|....\n....|h|||h|.....\n.....|h|h|......\n.....M|||n......\n....mMMnmmn.....\n....Mmmmnnn.....\n...mmMmnmnnn....\n...MmMmnmmnm....\n...mMmnmnnmn....\n...mmMnnmnnm....\n...MmMmnmmnn....\n....Mmnmnnn.....\n....mMmnmnn.....\n.....mmnnn......\n"),J(" hm:#c70\n....|.|.|.|.....\n.....|h|h|......\n...|.||h||.|....\n....|h|||h|.....\n.....|h|h|......\n.....M|||n......\n....mMMnmmn.....\n....Mmmmnnn.....\n...mmMmnmnnn....\n...MmMmnmmnm....\n...mMmnmnnmn....\n...mmMnnmnnm....\n...MmMmnmmnn....\n....Mmnmnnn.....\n....mMmnmnn.....\n.....mmnnn......\n"),
J(" N:#eee M:#bbb m:#888 n:#555\n....|.|.|.|.....\n.....|h|h|......\n...|.||h||.|....\n....|h|||h|.....\n.....|h|h|......\n.....M|||n......\n....mMMnmmn.....\n....Mmmmnnn.....\n...mmMmnmnnn....\n...MmMmnmmnm....\n...mMmnmnnmn....\n...mmMnnmnnm....\n...MmMmnmmnn....\n....Mmnmnnn.....\n....mMmnmnn.....\n.....mmnnn......\n"),J(" hm:#cfa\n....|.|.|.|.....\n.....|h|h|......\n...|.||h||.|....\n....|h|||h|.....\n.....|h|h|......\n.....M|||n......\n....mMMnmmn.....\n....Mmmmnnn.....\n...mmMmnmnnn....\n...MmMmnmmnm....\n...mMmnmnnmn....\n...mmMnnmnnm....\n...MmMmnmmnn....\n....Mmnmnnn.....\n....mMmnmnn.....\n.....mmnnn......\n"),
J(" hm:#fe0\n....|.|.|.|.....\n.....|h|h|......\n...|.||h||.|....\n....|h|||h|.....\n.....|h|h|......\n.....M|||n......\n....mMMnmmn.....\n....Mmmmnnn.....\n...mmMmnmnnn....\n...MmMmnmmnm....\n...mMmnmnnmn....\n...mmMnnmnnm....\n...MmMmnmmnn....\n....Mmnmnnn.....\n....mMmnmnn.....\n.....mmnnn......\n"),J(" N:#fff M:#eee m:#ddd n:#ccc\n....|.|.|.|.....\n.....|h|h|......\n...|.||h||.|....\n....|h|||h|.....\n.....|h|h|......\n.....M|||n......\n....mMMnmmn.....\n....Mmmmnnn.....\n...mmMmnmnnn....\n...MmMmnmmnm....\n...mMmnmnnmn....\n...mmMnnmnnm....\n...MmMmnmmnn....\n....Mmnmnnn.....\n....mMmnmnn.....\n.....mmnnn......\n"),
J(" N:#fee M:#ecc m:#dbb n:#caa\n....|.|.|.|.....\n.....|h|h|......\n...|.||h||.|....\n....|h|||h|.....\n.....|h|h|......\n.....M|||n......\n....mMMnmmn.....\n....Mmmmnnn.....\n...mmMmnmnnn....\n...MmMmnmmnm....\n...mMmnmnnmn....\n...mmMnnmnnm....\n...MmMmnmmnn....\n....Mmnmnnn.....\n....mMmnmnn.....\n.....mmnnn......\n"),J(" N:#c8f M:#b7e m:#86d n:#75b\n....|.|.|.|.....\n.....|h|h|......\n...|.||h||.|....\n....|h|||h|.....\n.....|h|h|......\n.....M|||n......\n....mMMnmmn.....\n....Mmmmnnn.....\n...mmMmnmnnn....\n...MmMmnmmnm....\n...mMmnmnnmn....\n...mmMnnmnnm....\n...MmMmnmmnn....\n....Mmnmnnn.....\n....mMmnmnn.....\n.....mmnnn......\n"),
J(" hm:#00f\n....|.|.|.|.....\n.....|h|h|......\n...|.||h||.|....\n....|h|||h|.....\n.....|h|h|......\n.....M|||n......\n....mMMnmmn.....\n....Mmmmnnn.....\n...mmMmnmnnn....\n...MmMmnmmnm....\n...mMmnmnnmn....\n...mmMnnmnnm....\n...MmMmnmmnn....\n....Mmnmnnn.....\n....mMmnmnn.....\n.....mmnnn......\n"),J(" hm:#0f0\n....|.|.|.|.....\n.....|h|h|......\n...|.||h||.|....\n....|h|||h|.....\n.....|h|h|......\n.....M|||n......\n....mMMnmmn.....\n....Mmmmnnn.....\n...mmMmnmnnn....\n...MmMmnmmnm....\n...mMmnmnnmn....\n...mmMnnmnnm....\n...MmMmnmmnn....\n....Mmnmnnn.....\n....mMmnmnn.....\n.....mmnnn......\n"),
J(" hm:#f00\n....|.|.|.|.....\n.....|h|h|......\n...|.||h||.|....\n....|h|||h|.....\n.....|h|h|......\n.....M|||n......\n....mMMnmmn.....\n....Mmmmnnn.....\n...mmMmnmnnn....\n...MmMmnmmnm....\n...mMmnmnnmn....\n...mmMnnmnnm....\n...MmMmnmmnn....\n....Mmnmnnn.....\n....mMmnmnn.....\n.....mmnnn......\n"),J(" N:#fff M:#eee m:#ddd n:#ccc\n....|.|.|.|.....\n.....|h|h|......\n...|.||h||.|....\n....|h|||h|.....\n.....|h|h|......\n.....M|||n......\n....mMMnmmn.....\n....Mmmmnnn.....\n...mmMmnmnnn....\n...MmMmnmmnm....\n...mMmnmnnmn....\n...mmMnnmnnm....\n...MmMmnmmnn....\n....Mmnmnnn.....\n....mMmnmnn.....\n.....mmnnn......\n")],
Qc=[J(" hm:#999\n................\n........0.......\n.......0........\n.......0........\n......mmn.......\n.....MmMmn......\n.....MMmmn......\n.....MmMnn......\n.....MMmmn......\n....NMmMnnn.....\n...NMmMmmnnn....\n...NMMmMmmnn....\n...MMmMmmnnn....\n...MMMmMmmnn....\n....MMMmmnn.....\n................\n"),J(" hm:#c70\n................\n........0.......\n.......0........\n.......0........\n......mmn.......\n.....MmMmn......\n.....MMmmn......\n.....MmMnn......\n.....MMmmn......\n....NMmMnnn.....\n...NMmMmmnnn....\n...NMMmMmmnn....\n...MMmMmmnnn....\n...MMMmMmmnn....\n....MMMmmnn.....\n................\n"),
J(" N:#eee M:#bbb m:#888 n:#555\n................\n........0.......\n.......0........\n.......0........\n......mmn.......\n.....MmMmn......\n.....MMmmn......\n.....MmMnn......\n.....MMmmn......\n....NMmMnnn.....\n...NMmMmmnnn....\n...NMMmMmmnn....\n...MMmMmmnnn....\n...MMMmMmmnn....\n....MMMmmnn.....\n................\n"),J(" hm:#cfa\n................\n........0.......\n.......0........\n.......0........\n......mmn.......\n.....MmMmn......\n.....MMmmn......\n.....MmMnn......\n.....MMmmn......\n....NMmMnnn.....\n...NMmMmmnnn....\n...NMMmMmmnn....\n...MMmMmmnnn....\n...MMMmMmmnn....\n....MMMmmnn.....\n................\n"),
J(" hm:#fe0\n................\n........0.......\n.......0........\n.......0........\n......mmn.......\n.....MmMmn......\n.....MMmmn......\n.....MmMnn......\n.....MMmmn......\n....NMmMnnn.....\n...NMmMmmnnn....\n...NMMmMmmnn....\n...MMmMmmnnn....\n...MMMmMmmnn....\n....MMMmmnn.....\n................\n"),J(" N:#fff M:#eee m:#ddd n:#ccc\n................\n........0.......\n.......0........\n.......0........\n......mmn.......\n.....MmMmn......\n.....MMmmn......\n.....MmMnn......\n.....MMmmn......\n....NMmMnnn.....\n...NMmMmmnnn....\n...NMMmMmmnn....\n...MMmMmmnnn....\n...MMMmMmmnn....\n....MMMmmnn.....\n................\n"),
J(" N:#fee M:#ecc m:#dbb n:#caa\n................\n........0.......\n.......0........\n.......0........\n......mmn.......\n.....MmMmn......\n.....MMmmn......\n.....MmMnn......\n.....MMmmn......\n....NMmMnnn.....\n...NMmMmmnnn....\n...NMMmMmmnn....\n...MMmMmmnnn....\n...MMMmMmmnn....\n....MMMmmnn.....\n................\n"),J(" N:#c8f M:#b7e m:#86d n:#75b\n................\n........0.......\n.......0........\n.......0........\n......mmn.......\n.....MmMmn......\n.....MMmmn......\n.....MmMnn......\n.....MMmmn......\n....NMmMnnn.....\n...NMmMmmnnn....\n...NMMmMmmnn....\n...MMmMmmnnn....\n...MMMmMmmnn....\n....MMMmmnn.....\n................\n"),
J(" hm:#00f\n................\n........0.......\n.......0........\n.......0........\n......mmn.......\n.....MmMmn......\n.....MMmmn......\n.....MmMnn......\n.....MMmmn......\n....NMmMnnn.....\n...NMmMmmnnn....\n...NMMmMmmnn....\n...MMmMmmnnn....\n...MMMmMmmnn....\n....MMMmmnn.....\n................\n"),J(" hm:#0f0\n................\n........0.......\n.......0........\n.......0........\n......mmn.......\n.....MmMmn......\n.....MMmmn......\n.....MmMnn......\n.....MMmmn......\n....NMmMnnn.....\n...NMmMmmnnn....\n...NMMmMmmnn....\n...MMmMmmnnn....\n...MMMmMmmnn....\n....MMMmmnn.....\n................\n"),
J(" hm:#f00\n................\n........0.......\n.......0........\n.......0........\n......mmn.......\n.....MmMmn......\n.....MMmmn......\n.....MmMnn......\n.....MMmmn......\n....NMmMnnn.....\n...NMmMmmnnn....\n...NMMmMmmnn....\n...MMmMmmnnn....\n...MMMmMmmnn....\n....MMMmmnn.....\n................\n"),J(" N:#fff M:#eee m:#ddd n:#ccc\n................\n........0.......\n.......0........\n.......0........\n......mmn.......\n.....MmMmn......\n.....MMmmn......\n.....MmMnn......\n.....MMmmn......\n....NMmMnnn.....\n...NMmMmmnnn....\n...NMMmMmmnn....\n...MMmMmmnnn....\n...MMMmMmmnn....\n....MMMmmnn.....\n................\n")],
Rc=[J(" hm:#999\n................\n................\n................\n................\n................\n......0.0.......\n.....0..0.0.....\n.....0.00.0.....\n.....n0nn00n....\n....M000n00n....\n....Mmn00nmm....\n....MMmMmmmm....\n....MMMmMmmm....\n.....MmMmmm.....\n......MmMm......\n................\n"),J(" hm:#c70\n................\n................\n................\n................\n................\n......0.0.......\n.....0..0.0.....\n.....0.00.0.....\n.....n0nn00n....\n....M000n00n....\n....Mmn00nmm....\n....MMmMmmmm....\n....MMMmMmmm....\n.....MmMmmm.....\n......MmMm......\n................\n"),
J(" N:#eee M:#bbb m:#888 n:#555\n................\n................\n................\n................\n................\n......0.0.......\n.....0..0.0.....\n.....0.00.0.....\n.....n0nn00n....\n....M000n00n....\n....Mmn00nmm....\n....MMmMmmmm....\n....MMMmMmmm....\n.....MmMmmm.....\n......MmMm......\n................\n"),J(" hm:#cfa\n................\n................\n................\n................\n................\n......0.0.......\n.....0..0.0.....\n.....0.00.0.....\n.....n0nn00n....\n....M000n00n....\n....Mmn00nmm....\n....MMmMmmmm....\n....MMMmMmmm....\n.....MmMmmm.....\n......MmMm......\n................\n"),
J(" hm:#fe0\n................\n................\n................\n................\n................\n......0.0.......\n.....0..0.0.....\n.....0.00.0.....\n.....n0nn00n....\n....M000n00n....\n....Mmn00nmm....\n....MMmMmmmm....\n....MMMmMmmm....\n.....MmMmmm.....\n......MmMm......\n................\n"),J(" N:#fff M:#eee m:#ddd n:#ccc\n................\n................\n................\n................\n................\n......0.0.......\n.....0..0.0.....\n.....0.00.0.....\n.....n0nn00n....\n....M000n00n....\n....Mmn00nmm....\n....MMmMmmmm....\n....MMMmMmmm....\n.....MmMmmm.....\n......MmMm......\n................\n"),
J(" N:#fee M:#ecc m:#dbb n:#caa\n................\n................\n................\n................\n................\n......0.0.......\n.....0..0.0.....\n.....0.00.0.....\n.....n0nn00n....\n....M000n00n....\n....Mmn00nmm....\n....MMmMmmmm....\n....MMMmMmmm....\n.....MmMmmm.....\n......MmMm......\n................\n"),J(" N:#c8f M:#b7e m:#86d n:#75b\n................\n................\n................\n................\n................\n......0.0.......\n.....0..0.0.....\n.....0.00.0.....\n.....n0nn00n....\n....M000n00n....\n....Mmn00nmm....\n....MMmMmmmm....\n....MMMmMmmm....\n.....MmMmmm.....\n......MmMm......\n................\n"),
J(" hm:#00f\n................\n................\n................\n................\n................\n......0.0.......\n.....0..0.0.....\n.....0.00.0.....\n.....n0nn00n....\n....M000n00n....\n....Mmn00nmm....\n....MMmMmmmm....\n....MMMmMmmm....\n.....MmMmmm.....\n......MmMm......\n................\n"),J(" hm:#0f0\n................\n................\n................\n................\n................\n......0.0.......\n.....0..0.0.....\n.....0.00.0.....\n.....n0nn00n....\n....M000n00n....\n....Mmn00nmm....\n....MMmMmmmm....\n....MMMmMmmm....\n.....MmMmmm.....\n......MmMm......\n................\n"),
J(" hm:#f00\n................\n................\n................\n................\n................\n......0.0.......\n.....0..0.0.....\n.....0.00.0.....\n.....n0nn00n....\n....M000n00n....\n....Mmn00nmm....\n....MMmMmmmm....\n....MMMmMmmm....\n.....MmMmmm.....\n......MmMm......\n................\n"),J(" N:#fff M:#eee m:#ddd n:#ccc\n................\n................\n................\n................\n................\n......0.0.......\n.....0..0.0.....\n.....0.00.0.....\n.....n0nn00n....\n....M000n00n....\n....Mmn00nmm....\n....MMmMmmmm....\n....MMMmMmmm....\n.....MmMmmm.....\n......MmMm......\n................\n")],
Sc=[J(" hm:#999\n................\n.........0......\n.....NNM0.0.....\n....NMMmmm.0....\n...NMMmmmm.hh...\n...NMMmmmnHhh...\n..NMMmmmmnHhh...\n..NMMmmmnnHh|...\n..NMmmmmnnHh|...\n..NMmmmnnn.|....\n..NMmmmnn.......\n..NMmmnn........\n..NMmmn.........\n...Mmnn.........\n....Mn..........\n................\n"),J(" hm:#c70\n................\n.........0......\n.....NNM0.0.....\n....NMMmmm.0....\n...NMMmmmm.hh...\n...NMMmmmnHhh...\n..NMMmmmmnHhh...\n..NMMmmmnnHh|...\n..NMmmmmnnHh|...\n..NMmmmnnn.|....\n..NMmmmnn.......\n..NMmmnn........\n..NMmmn.........\n...Mmnn.........\n....Mn..........\n................\n"),
J(" N:#eee M:#bbb m:#888 n:#555\n................\n.........0......\n.....NNM0.0.....\n....NMMmmm.0....\n...NMMmmmm.hh...\n...NMMmmmnHhh...\n..NMMmmmmnHhh...\n..NMMmmmnnHh|...\n..NMmmmmnnHh|...\n..NMmmmnnn.|....\n..NMmmmnn.......\n..NMmmnn........\n..NMmmn.........\n...Mmnn.........\n....Mn..........\n................\n"),J(" hm:#cfa\n................\n.........0......\n.....NNM0.0.....\n....NMMmmm.0....\n...NMMmmmm.hh...\n...NMMmmmnHhh...\n..NMMmmmmnHhh...\n..NMMmmmnnHh|...\n..NMmmmmnnHh|...\n..NMmmmnnn.|....\n..NMmmmnn.......\n..NMmmnn........\n..NMmmn.........\n...Mmnn.........\n....Mn..........\n................\n"),
J(" hm:#fe0\n................\n.........0......\n.....NNM0.0.....\n....NMMmmm.0....\n...NMMmmmm.hh...\n...NMMmmmnHhh...\n..NMMmmmmnHhh...\n..NMMmmmnnHh|...\n..NMmmmmnnHh|...\n..NMmmmnnn.|....\n..NMmmmnn.......\n..NMmmnn........\n..NMmmn.........\n...Mmnn.........\n....Mn..........\n................\n"),J(" N:#fff M:#eee m:#ddd n:#ccc\n................\n.........0......\n.....NNM0.0.....\n....NMMmmm.0....\n...NMMmmmm.hh...\n...NMMmmmnHhh...\n..NMMmmmmnHhh...\n..NMMmmmnnHh|...\n..NMmmmmnnHh|...\n..NMmmmnnn.|....\n..NMmmmnn.......\n..NMmmnn........\n..NMmmn.........\n...Mmnn.........\n....Mn..........\n................\n"),
J(" N:#fee M:#ecc m:#dbb n:#caa\n................\n.........0......\n.....NNM0.0.....\n....NMMmmm.0....\n...NMMmmmm.hh...\n...NMMmmmnHhh...\n..NMMmmmmnHhh...\n..NMMmmmnnHh|...\n..NMmmmmnnHh|...\n..NMmmmnnn.|....\n..NMmmmnn.......\n..NMmmnn........\n..NMmmn.........\n...Mmnn.........\n....Mn..........\n................\n"),J(" N:#c8f M:#b7e m:#86d n:#75b\n................\n.........0......\n.....NNM0.0.....\n....NMMmmm.0....\n...NMMmmmm.hh...\n...NMMmmmnHhh...\n..NMMmmmmnHhh...\n..NMMmmmnnHh|...\n..NMmmmmnnHh|...\n..NMmmmnnn.|....\n..NMmmmnn.......\n..NMmmnn........\n..NMmmn.........\n...Mmnn.........\n....Mn..........\n................\n"),
J(" hm:#00f\n................\n.........0......\n.....NNM0.0.....\n....NMMmmm.0....\n...NMMmmmm.hh...\n...NMMmmmnHhh...\n..NMMmmmmnHhh...\n..NMMmmmnnHh|...\n..NMmmmmnnHh|...\n..NMmmmnnn.|....\n..NMmmmnn.......\n..NMmmnn........\n..NMmmn.........\n...Mmnn.........\n....Mn..........\n................\n"),J(" hm:#0f0\n................\n.........0......\n.....NNM0.0.....\n....NMMmmm.0....\n...NMMmmmm.hh...\n...NMMmmmnHhh...\n..NMMmmmmnHhh...\n..NMMmmmnnHh|...\n..NMmmmmnnHh|...\n..NMmmmnnn.|....\n..NMmmmnn.......\n..NMmmnn........\n..NMmmn.........\n...Mmnn.........\n....Mn..........\n................\n"),
J(" hm:#f00\n................\n.........0......\n.....NNM0.0.....\n....NMMmmm.0....\n...NMMmmmm.hh...\n...NMMmmmnHhh...\n..NMMmmmmnHhh...\n..NMMmmmnnHh|...\n..NMmmmmnnHh|...\n..NMmmmnnn.|....\n..NMmmmnn.......\n..NMmmnn........\n..NMmmn.........\n...Mmnn.........\n....Mn..........\n................\n"),J(" N:#fff M:#eee m:#ddd n:#ccc\n................\n.........0......\n.....NNM0.0.....\n....NMMmmm.0....\n...NMMmmmm.hh...\n...NMMmmmnHhh...\n..NMMmmmmnHhh...\n..NMMmmmnnHh|...\n..NMmmmmnnHh|...\n..NMmmmnnn.|....\n..NMmmmnn.......\n..NMmmnn........\n..NMmmn.........\n...Mmnn.........\n....Mn..........\n................\n")],
Uc=[J(" hm:#999\n................\n................\n................\n................\n................\n................\n.....NM.M.......\n....NMMmNM......\n...NMMMmNMm.....\n...NMMMmMmm.....\n...NMMMMmmn.....\n...NMMMmmnn.....\n....MMmmnn......\n.....mmnn.......\n................\n................\n"),J(" hm:#c70\n................\n................\n................\n................\n................\n................\n.....NM.M.......\n....NMMmNM......\n...NMMMmNMm.....\n...NMMMmMmm.....\n...NMMMMmmn.....\n...NMMMmmnn.....\n....MMmmnn......\n.....mmnn.......\n................\n................\n"),
J(" N:#eee M:#bbb m:#888 n:#555\n................\n................\n................\n................\n................\n................\n.....NM.M.......\n....NMMmNM......\n...NMMMmNMm.....\n...NMMMmMmm.....\n...NMMMMmmn.....\n...NMMMmmnn.....\n....MMmmnn......\n.....mmnn.......\n................\n................\n"),J(" hm:#cfa\n................\n................\n................\n................\n................\n................\n.....NM.M.......\n....NMMmNM......\n...NMMMmNMm.....\n...NMMMmMmm.....\n...NMMMMmmn.....\n...NMMMmmnn.....\n....MMmmnn......\n.....mmnn.......\n................\n................\n"),
J(" hm:#fe0\n................\n................\n................\n................\n................\n................\n.....NM.M.......\n....NMMmNM......\n...NMMMmNMm.....\n...NMMMmMmm.....\n...NMMMMmmn.....\n...NMMMmmnn.....\n....MMmmnn......\n.....mmnn.......\n................\n................\n"),J(" N:#fff M:#eee m:#ddd n:#ccc\n................\n................\n................\n................\n................\n................\n.....NM.M.......\n....NMMmNM......\n...NMMMmNMm.....\n...NMMMmMmm.....\n...NMMMMmmn.....\n...NMMMmmnn.....\n....MMmmnn......\n.....mmnn.......\n................\n................\n"),
J(" N:#fee M:#ecc m:#dbb n:#caa\n................\n................\n................\n................\n................\n................\n.....NM.M.......\n....NMMmNM......\n...NMMMmNMm.....\n...NMMMmMmm.....\n...NMMMMmmn.....\n...NMMMmmnn.....\n....MMmmnn......\n.....mmnn.......\n................\n................\n"),J(" N:#c8f M:#b7e m:#86d n:#75b\n................\n................\n................\n................\n................\n................\n.....NM.M.......\n....NMMmNM......\n...NMMMmNMm.....\n...NMMMmMmm.....\n...NMMMMmmn.....\n...NMMMmmnn.....\n....MMmmnn......\n.....mmnn.......\n................\n................\n"),
J(" hm:#00f\n................\n................\n................\n................\n................\n................\n.....NM.M.......\n....NMMmNM......\n...NMMMmNMm.....\n...NMMMmMmm.....\n...NMMMMmmn.....\n...NMMMmmnn.....\n....MMmmnn......\n.....mmnn.......\n................\n................\n"),J(" hm:#0f0\n................\n................\n................\n................\n................\n................\n.....NM.M.......\n....NMMmNM......\n...NMMMmNMm.....\n...NMMMmMmm.....\n...NMMMMmmn.....\n...NMMMmmnn.....\n....MMmmnn......\n.....mmnn.......\n................\n................\n"),
J(" hm:#f00\n................\n................\n................\n................\n................\n................\n.....NM.M.......\n....NMMmNM......\n...NMMMmNMm.....\n...NMMMmMmm.....\n...NMMMMmmn.....\n...NMMMmmnn.....\n....MMmmnn......\n.....mmnn.......\n................\n................\n"),J(" N:#fff M:#eee m:#ddd n:#ccc\n................\n................\n................\n................\n................\n................\n.....NM.M.......\n....NMMmNM......\n...NMMMmNMm.....\n...NMMMmMmm.....\n...NMMMMmmn.....\n...NMMMmmnn.....\n....MMmmnn......\n.....mmnn.......\n................\n................\n")],
Vc=[J(" hm:#999\n................\n.....YY.........\n.....Yyy........\n......yy.00.....\n........0..0....\n......mMm.......\n.....MMmmn......\n.....MMMnn......\n.....Mnnmnn.....\n....NMmMnnn.....\n...NMmMmmnnn....\n...MMMmMmmmnn...\n...MMmNmmnnmn...\n...MmNmMmmnn....\n......Nmmn......\n................\n"),J(" hm:#c70\n................\n.....YY.........\n.....Yyy........\n......yy.00.....\n........0..0....\n......mMm.......\n.....MMmmn......\n.....MMMnn......\n.....Mnnmnn.....\n....NMmMnnn.....\n...NMmMmmnnn....\n...MMMmMmmmnn...\n...MMmNmmnnmn...\n...MmNmMmmnn....\n......Nmmn......\n................\n"),
J(" N:#eee M:#bbb m:#888 n:#555\n................\n.....YY.........\n.....Yyy........\n......yy.00.....\n........0..0....\n......mMm.......\n.....MMmmn......\n.....MMMnn......\n.....Mnnmnn.....\n....NMmMnnn.....\n...NMmMmmnnn....\n...MMMmMmmmnn...\n...MMmNmmnnmn...\n...MmNmMmmnn....\n......Nmmn......\n................\n"),J(" hm:#cfa\n................\n.....YY.........\n.....Yyy........\n......yy.00.....\n........0..0....\n......mMm.......\n.....MMmmn......\n.....MMMnn......\n.....Mnnmnn.....\n....NMmMnnn.....\n...NMmMmmnnn....\n...MMMmMmmmnn...\n...MMmNmmnnmn...\n...MmNmMmmnn....\n......Nmmn......\n................\n"),
J(" hm:#fe0\n................\n.....YY.........\n.....Yyy........\n......yy.00.....\n........0..0....\n......mMm.......\n.....MMmmn......\n.....MMMnn......\n.....Mnnmnn.....\n....NMmMnnn.....\n...NMmMmmnnn....\n...MMMmMmmmnn...\n...MMmNmmnnmn...\n...MmNmMmmnn....\n......Nmmn......\n................\n"),J(" N:#fff M:#eee m:#ddd n:#ccc\n................\n.....YY.........\n.....Yyy........\n......yy.00.....\n........0..0....\n......mMm.......\n.....MMmmn......\n.....MMMnn......\n.....Mnnmnn.....\n....NMmMnnn.....\n...NMmMmmnnn....\n...MMMmMmmmnn...\n...MMmNmmnnmn...\n...MmNmMmmnn....\n......Nmmn......\n................\n"),
J(" N:#fee M:#ecc m:#dbb n:#caa\n................\n.....YY.........\n.....Yyy........\n......yy.00.....\n........0..0....\n......mMm.......\n.....MMmmn......\n.....MMMnn......\n.....Mnnmnn.....\n....NMmMnnn.....\n...NMmMmmnnn....\n...MMMmMmmmnn...\n...MMmNmmnnmn...\n...MmNmMmmnn....\n......Nmmn......\n................\n"),J(" N:#c8f M:#b7e m:#86d n:#75b\n................\n.....YY.........\n.....Yyy........\n......yy.00.....\n........0..0....\n......mMm.......\n.....MMmmn......\n.....MMMnn......\n.....Mnnmnn.....\n....NMmMnnn.....\n...NMmMmmnnn....\n...MMMmMmmmnn...\n...MMmNmmnnmn...\n...MmNmMmmnn....\n......Nmmn......\n................\n"),
J(" hm:#00f\n................\n.....YY.........\n.....Yyy........\n......yy.00.....\n........0..0....\n......mMm.......\n.....MMmmn......\n.....MMMnn......\n.....Mnnmnn.....\n....NMmMnnn.....\n...NMmMmmnnn....\n...MMMmMmmmnn...\n...MMmNmmnnmn...\n...MmNmMmmnn....\n......Nmmn......\n................\n"),J(" hm:#0f0\n................\n.....YY.........\n.....Yyy........\n......yy.00.....\n........0..0....\n......mMm.......\n.....MMmmn......\n.....MMMnn......\n.....Mnnmnn.....\n....NMmMnnn.....\n...NMmMmmnnn....\n...MMMmMmmmnn...\n...MMmNmmnnmn...\n...MmNmMmmnn....\n......Nmmn......\n................\n"),
J(" hm:#f00\n................\n.....YY.........\n.....Yyy........\n......yy.00.....\n........0..0....\n......mMm.......\n.....MMmmn......\n.....MMMnn......\n.....Mnnmnn.....\n....NMmMnnn.....\n...NMmMmmnnn....\n...MMMmMmmmnn...\n...MMmNmmnnmn...\n...MmNmMmmnn....\n......Nmmn......\n................\n"),J(" N:#fff M:#eee m:#ddd n:#ccc\n................\n.....YY.........\n.....Yyy........\n......yy.00.....\n........0..0....\n......mMm.......\n.....MMmmn......\n.....MMMnn......\n.....Mnnmnn.....\n....NMmMnnn.....\n...NMmMmmnnn....\n...MMMmMmmmnn...\n...MMmNmmnnmn...\n...MmNmMmmnn....\n......Nmmn......\n................\n")],
Wc=[J(" hm:#999\n................\n........|.......\n.......|........\n.......|........\n.....MMMm.......\n....MMNMmm......\n....NMMmmm......\n...MMMmmMmn.....\n...NMNmmmnn.....\n...MMMmMmnm.....\n...MNMmmmnn.....\n...MMMmMnmn.....\n....MNmmnn......\n....MMMmmn......\n.....mmmn.......\n................\n"),J(" hm:#c70\n................\n........|.......\n.......|........\n.......|........\n.....MMMm.......\n....MMNMmm......\n....NMMmmm......\n...MMMmmMmn.....\n...NMNmmmnn.....\n...MMMmMmnm.....\n...MNMmmmnn.....\n...MMMmMnmn.....\n....MNmmnn......\n....MMMmmn......\n.....mmmn.......\n................\n"),
J(" N:#eee M:#bbb m:#888 n:#555\n................\n........|.......\n.......|........\n.......|........\n.....MMMm.......\n....MMNMmm......\n....NMMmmm......\n...MMMmmMmn.....\n...NMNmmmnn.....\n...MMMmMmnm.....\n...MNMmmmnn.....\n...MMMmMnmn.....\n....MNmmnn......\n....MMMmmn......\n.....mmmn.......\n................\n"),J(" hm:#cfa\n................\n........|.......\n.......|........\n.......|........\n.....MMMm.......\n....MMNMmm......\n....NMMmmm......\n...MMMmmMmn.....\n...NMNmmmnn.....\n...MMMmMmnm.....\n...MNMmmmnn.....\n...MMMmMnmn.....\n....MNmmnn......\n....MMMmmn......\n.....mmmn.......\n................\n"),
J(" hm:#fe0\n................\n........|.......\n.......|........\n.......|........\n.....MMMm.......\n....MMNMmm......\n....NMMmmm......\n...MMMmmMmn.....\n...NMNmmmnn.....\n...MMMmMmnm.....\n...MNMmmmnn.....\n...MMMmMnmn.....\n....MNmmnn......\n....MMMmmn......\n.....mmmn.......\n................\n"),J(" N:#fff M:#eee m:#ddd n:#ccc\n................\n........|.......\n.......|........\n.......|........\n.....MMMm.......\n....MMNMmm......\n....NMMmmm......\n...MMMmmMmn.....\n...NMNmmmnn.....\n...MMMmMmnm.....\n...MNMmmmnn.....\n...MMMmMnmn.....\n....MNmmnn......\n....MMMmmn......\n.....mmmn.......\n................\n"),
J(" N:#fee M:#ecc m:#dbb n:#caa\n................\n........|.......\n.......|........\n.......|........\n.....MMMm.......\n....MMNMmm......\n....NMMmmm......\n...MMMmmMmn.....\n...NMNmmmnn.....\n...MMMmMmnm.....\n...MNMmmmnn.....\n...MMMmMnmn.....\n....MNmmnn......\n....MMMmmn......\n.....mmmn.......\n................\n"),J(" N:#c8f M:#b7e m:#86d n:#75b\n................\n........|.......\n.......|........\n.......|........\n.....MMMm.......\n....MMNMmm......\n....NMMmmm......\n...MMMmmMmn.....\n...NMNmmmnn.....\n...MMMmMmnm.....\n...MNMmmmnn.....\n...MMMmMnmn.....\n....MNmmnn......\n....MMMmmn......\n.....mmmn.......\n................\n"),
J(" hm:#00f\n................\n........|.......\n.......|........\n.......|........\n.....MMMm.......\n....MMNMmm......\n....NMMmmm......\n...MMMmmMmn.....\n...NMNmmmnn.....\n...MMMmMmnm.....\n...MNMmmmnn.....\n...MMMmMnmn.....\n....MNmmnn......\n....MMMmmn......\n.....mmmn.......\n................\n"),J(" hm:#0f0\n................\n........|.......\n.......|........\n.......|........\n.....MMMm.......\n....MMNMmm......\n....NMMmmm......\n...MMMmmMmn.....\n...NMNmmmnn.....\n...MMMmMmnm.....\n...MNMmmmnn.....\n...MMMmMnmn.....\n....MNmmnn......\n....MMMmmn......\n.....mmmn.......\n................\n"),
J(" hm:#f00\n................\n........|.......\n.......|........\n.......|........\n.....MMMm.......\n....MMNMmm......\n....NMMmmm......\n...MMMmmMmn.....\n...NMNmmmnn.....\n...MMMmMmnm.....\n...MNMmmmnn.....\n...MMMmMnmn.....\n....MNmmnn......\n....MMMmmn......\n.....mmmn.......\n................\n"),J(" N:#fff M:#eee m:#ddd n:#ccc\n................\n........|.......\n.......|........\n.......|........\n.....MMMm.......\n....MMNMmm......\n....NMMmmm......\n...MMMmmMmn.....\n...NMNmmmnn.....\n...MMMmMmnm.....\n...MNMmmmnn.....\n...MMMmMnmn.....\n....MNmmnn......\n....MMMmmn......\n.....mmmn.......\n................\n")],
Xc=[J(" hm:#999\n................\n................\n................\n.....nn00.......\n....nNNNN0000...\n...nNNm0000mmn..\n...nmmmmmM00mn..\n...nmmmmMN0m0...\n..nmmmmMNN0mn...\n..nmmmMNNNnmn...\n..nmmMNNNnmmn...\n..nmMNNNNnmn....\n....mNNNnmn.....\n.....mmm........\n................\n................\n"),J(" hm:#c70\n................\n................\n................\n.....nn00.......\n....nNNNN0000...\n...nNNm0000mmn..\n...nmmmmmM00mn..\n...nmmmmMN0m0...\n..nmmmmMNN0mn...\n..nmmmMNNNnmn...\n..nmmMNNNnmmn...\n..nmMNNNNnmn....\n....mNNNnmn.....\n.....mmm........\n................\n................\n"),
J(" N:#eee M:#bbb m:#888 n:#555\n................\n................\n................\n.....nn00.......\n....nNNNN0000...\n...nNNm0000mmn..\n...nmmmmmM00mn..\n...nmmmmMN0m0...\n..nmmmmMNN0mn...\n..nmmmMNNNnmn...\n..nmmMNNNnmmn...\n..nmMNNNNnmn....\n....mNNNnmn.....\n.....mmm........\n................\n................\n"),J(" hm:#cfa\n................\n................\n................\n.....nn00.......\n....nNNNN0000...\n...nNNm0000mmn..\n...nmmmmmM00mn..\n...nmmmmMN0m0...\n..nmmmmMNN0mn...\n..nmmmMNNNnmn...\n..nmmMNNNnmmn...\n..nmMNNNNnmn....\n....mNNNnmn.....\n.....mmm........\n................\n................\n"),
J(" hm:#fe0\n................\n................\n................\n.....nn00.......\n....nNNNN0000...\n...nNNm0000mmn..\n...nmmmmmM00mn..\n...nmmmmMN0m0...\n..nmmmmMNN0mn...\n..nmmmMNNNnmn...\n..nmmMNNNnmmn...\n..nmMNNNNnmn....\n....mNNNnmn.....\n.....mmm........\n................\n................\n"),J(" N:#fff M:#eee m:#ddd n:#ccc\n................\n................\n................\n.....nn00.......\n....nNNNN0000...\n...nNNm0000mmn..\n...nmmmmmM00mn..\n...nmmmmMN0m0...\n..nmmmmMNN0mn...\n..nmmmMNNNnmn...\n..nmmMNNNnmmn...\n..nmMNNNNnmn....\n....mNNNnmn.....\n.....mmm........\n................\n................\n"),
J(" N:#fee M:#ecc m:#dbb n:#caa\n................\n................\n................\n.....nn00.......\n....nNNNN0000...\n...nNNm0000mmn..\n...nmmmmmM00mn..\n...nmmmmMN0m0...\n..nmmmmMNN0mn...\n..nmmmMNNNnmn...\n..nmmMNNNnmmn...\n..nmMNNNNnmn....\n....mNNNnmn.....\n.....mmm........\n................\n................\n"),J(" N:#c8f M:#b7e m:#86d n:#75b\n................\n................\n................\n.....nn00.......\n....nNNNN0000...\n...nNNm0000mmn..\n...nmmmmmM00mn..\n...nmmmmMN0m0...\n..nmmmmMNN0mn...\n..nmmmMNNNnmn...\n..nmmMNNNnmmn...\n..nmMNNNNnmn....\n....mNNNnmn.....\n.....mmm........\n................\n................\n"),
J(" hm:#00f\n................\n................\n................\n.....nn00.......\n....nNNNN0000...\n...nNNm0000mmn..\n...nmmmmmM00mn..\n...nmmmmMN0m0...\n..nmmmmMNN0mn...\n..nmmmMNNNnmn...\n..nmmMNNNnmmn...\n..nmMNNNNnmn....\n....mNNNnmn.....\n.....mmm........\n................\n................\n"),J(" hm:#0f0\n................\n................\n................\n.....nn00.......\n....nNNNN0000...\n...nNNm0000mmn..\n...nmmmmmM00mn..\n...nmmmmMN0m0...\n..nmmmmMNN0mn...\n..nmmmMNNNnmn...\n..nmmMNNNnmmn...\n..nmMNNNNnmn....\n....mNNNnmn.....\n.....mmm........\n................\n................\n"),
J(" hm:#f00\n................\n................\n................\n.....nn00.......\n....nNNNN0000...\n...nNNm0000mmn..\n...nmmmmmM00mn..\n...nmmmmMN0m0...\n..nmmmmMNN0mn...\n..nmmmMNNNnmn...\n..nmmMNNNnmmn...\n..nmMNNNNnmn....\n....mNNNnmn.....\n.....mmm........\n................\n................\n"),J(" N:#fff M:#eee m:#ddd n:#ccc\n................\n................\n................\n.....nn00.......\n....nNNNN0000...\n...nNNm0000mmn..\n...nmmmmmM00mn..\n...nmmmmMN0m0...\n..nmmmmMNN0mn...\n..nmmmMNNNnmn...\n..nmmMNNNnmmn...\n..nmMNNNNnmn....\n....mNNNnmn.....\n.....mmm........\n................\n................\n")],
Yc=[J(" hm:#999\n.......M........\n......NM........\n......NM........\n......NM...M....\n......NN...M....\n.....MMMm..M....\n.N..MMMmmmMM....\n.N..MMmMmmm.....\n.NNMMMNmmmm.M...\n..NNMMNmmmn.M...\n...NMNNMmmmnM...\n.N.MMNNMmnnn....\n.N.MMMNmmmnn.M..\n.NNMMMmmnmnnM...\n..NNMMMmmnnM....\n.....Mmnnn......\n"),J(" hm:#c70\n.......M........\n......NM........\n......NM........\n......NM...M....\n......NN...M....\n.....MMMm..M....\n.N..MMMmmmMM....\n.N..MMmMmmm.....\n.NNMMMNmmmm.M...\n..NNMMNmmmn.M...\n...NMNNMmmmnM...\n.N.MMNNMmnnn....\n.N.MMMNmmmnn.M..\n.NNMMMmmnmnnM...\n..NNMMMmmnnM....\n.....Mmnnn......\n"),
J(" N:#eee M:#bbb m:#888 n:#555\n.......M........\n......NM........\n......NM........\n......NM...M....\n......NN...M....\n.....MMMm..M....\n.N..MMMmmmMM....\n.N..MMmMmmm.....\n.NNMMMNmmmm.M...\n..NNMMNmmmn.M...\n...NMNNMmmmnM...\n.N.MMNNMmnnn....\n.N.MMMNmmmnn.M..\n.NNMMMmmnmnnM...\n..NNMMMmmnnM....\n.....Mmnnn......\n"),J(" hm:#cfa\n.......M........\n......NM........\n......NM........\n......NM...M....\n......NN...M....\n.....MMMm..M....\n.N..MMMmmmMM....\n.N..MMmMmmm.....\n.NNMMMNmmmm.M...\n..NNMMNmmmn.M...\n...NMNNMmmmnM...\n.N.MMNNMmnnn....\n.N.MMMNmmmnn.M..\n.NNMMMmmnmnnM...\n..NNMMMmmnnM....\n.....Mmnnn......\n"),
J(" hm:#fe0\n.......M........\n......NM........\n......NM........\n......NM...M....\n......NN...M....\n.....MMMm..M....\n.N..MMMmmmMM....\n.N..MMmMmmm.....\n.NNMMMNmmmm.M...\n..NNMMNmmmn.M...\n...NMNNMmmmnM...\n.N.MMNNMmnnn....\n.N.MMMNmmmnn.M..\n.NNMMMmmnmnnM...\n..NNMMMmmnnM....\n.....Mmnnn......\n"),J(" N:#fff M:#eee m:#ddd n:#ccc\n.......M........\n......NM........\n......NM........\n......NM...M....\n......NN...M....\n.....MMMm..M....\n.N..MMMmmmMM....\n.N..MMmMmmm.....\n.NNMMMNmmmm.M...\n..NNMMNmmmn.M...\n...NMNNMmmmnM...\n.N.MMNNMmnnn....\n.N.MMMNmmmnn.M..\n.NNMMMmmnmnnM...\n..NNMMMmmnnM....\n.....Mmnnn......\n"),
J(" N:#fee M:#ecc m:#dbb n:#caa\n.......M........\n......NM........\n......NM........\n......NM...M....\n......NN...M....\n.....MMMm..M....\n.N..MMMmmmMM....\n.N..MMmMmmm.....\n.NNMMMNmmmm.M...\n..NNMMNmmmn.M...\n...NMNNMmmmnM...\n.N.MMNNMmnnn....\n.N.MMMNmmmnn.M..\n.NNMMMmmnmnnM...\n..NNMMMmmnnM....\n.....Mmnnn......\n"),J(" N:#c8f M:#b7e m:#86d n:#75b\n.......M........\n......NM........\n......NM........\n......NM...M....\n......NN...M....\n.....MMMm..M....\n.N..MMMmmmMM....\n.N..MMmMmmm.....\n.NNMMMNmmmm.M...\n..NNMMNmmmn.M...\n...NMNNMmmmnM...\n.N.MMNNMmnnn....\n.N.MMMNmmmnn.M..\n.NNMMMmmnmnnM...\n..NNMMMmmnnM....\n.....Mmnnn......\n"),
J(" hm:#00f\n.......M........\n......NM........\n......NM........\n......NM...M....\n......NN...M....\n.....MMMm..M....\n.N..MMMmmmMM....\n.N..MMmMmmm.....\n.NNMMMNmmmm.M...\n..NNMMNmmmn.M...\n...NMNNMmmmnM...\n.N.MMNNMmnnn....\n.N.MMMNmmmnn.M..\n.NNMMMmmnmnnM...\n..NNMMMmmnnM....\n.....Mmnnn......\n"),J(" hm:#0f0\n.......M........\n......NM........\n......NM........\n......NM...M....\n......NN...M....\n.....MMMm..M....\n.N..MMMmmmMM....\n.N..MMmMmmm.....\n.NNMMMNmmmm.M...\n..NNMMNmmmn.M...\n...NMNNMmmmnM...\n.N.MMNNMmnnn....\n.N.MMMNmmmnn.M..\n.NNMMMmmnmnnM...\n..NNMMMmmnnM....\n.....Mmnnn......\n"),
J(" hm:#f00\n.......M........\n......NM........\n......NM........\n......NM...M....\n......NN...M....\n.....MMMm..M....\n.N..MMMmmmMM....\n.N..MMmMmmm.....\n.NNMMMNmmmm.M...\n..NNMMNmmmn.M...\n...NMNNMmmmnM...\n.N.MMNNMmnnn....\n.N.MMMNmmmnn.M..\n.NNMMMmmnmnnM...\n..NNMMMmmnnM....\n.....Mmnnn......\n"),J(" N:#fff M:#eee m:#ddd n:#ccc\n.......M........\n......NM........\n......NM........\n......NM...M....\n......NN...M....\n.....MMMm..M....\n.N..MMMmmmMM....\n.N..MMmMmmm.....\n.NNMMMNmmmm.M...\n..NNMMNmmmn.M...\n...NMNNMmmmnM...\n.N.MMNNMmnnn....\n.N.MMMNmmmnn.M..\n.NNMMMmmnmnnM...\n..NNMMMmmnnM....\n.....Mmnnn......\n")],
Zc=[Nc,Oc,Pc,Qc,Rc,Sc,Uc,Vc,Wc,Xc,Yc],$c=[J("\n................\n................\n................\n................\n................\n................\n.......444......\n.....444342.....\n....44332221....\n...4442322121...\n..443232122111..\n.4342222111212..\n................\n................\n................\n................\n"),J("\n................\n................\n................\n................\n.......444......\n......444222....\n.....44333222...\n....434332221...\n...44433333221..\n..4433333322211.\n.43433342333221.\n.443.3431233221.\n......43........\n................\n................\n................\n"),
J("\n................\n................\n................\n................\n.........422....\n.........4442...\n........444222..\n.......4443322..\n..4422.44332322.\n..4322243333222.\n.44332233332332.\n.44332223.......\n.4332332........\n................\n................\n................\n"),J("\n................\n................\n................\n................\n......443.......\n......4332......\n.....443221.....\n...44433221.....\n..4443432211....\n..4443322211....\n.44433332221....\n.444433222111...\n.443332332111...\n..43333311......\n................\n................\n")],
ad=J("\n.......77.......\n...7..7553..7...\n..757.7553.753..\n.75557555575553.\n..755555555553..\n...7555335553...\n.775553..355533.\n755553....755553\n755553....755553\n.335553..755533.\n...7555775553...\n..755555555553..\n.75553555535553.\n..353.3553.353..\n...3..3553..3...\n.......33.......\n"),bd=J("#:#4b4\n................\n................\n................\n................\n................\n................\n................\n..###########...\n...#hhhhhhh#....\n....#hhhhh#.....\n.....#hhh#......\n......#h#.......\n.......#........\n................\n................\n................\n"),
cd=J("\n................\n................\n................\n................\n................\n................\n................\n..55555555555...\n...533333335....\n....5333335.....\n.....53335......\n......535.......\n.......5........\n................\n................\n................\n"),dd=J("#:#4b4\n.......5........\n......555.......\n.....55.55......\n......555.......\n.......5........\n................\n................\n..###########...\n...#hhhhhhh#....\n....#hhhhh#.....\n.....#hhh#......\n......#h#.......\n.......#........\n................\n................\n................\n"),
ed=J("\n.......5........\n......555.......\n.....55.55......\n......555.......\n.......5........\n................\n................\n..55555555555...\n...533333335....\n....5333335.....\n.....53335......\n......535.......\n.......5........\n................\n................\n................\n"),fd=J("\n................\n................\n................\n................\n.....0....0.....\n....00....00....\n...0900000090...\n..099999999990..\n...0900000090...\n....00....00....\n.....0....0.....\n................\n................\n................\n................\n................\n"),
id=J("\n................\n................\n................\n..7777..7777....\n..7553..7553....\n..7553..7553....\n..7553..7553....\n..7553..7553....\n..7553..7553....\n..7553..7553....\n..7553..7553....\n..7553..7553....\n..7333..7333....\n................\n................\n................\n"),jd=J("\n................\n................\n................\n..PPPP..PPPP....\n..Prrp..Prrp....\n..Prrp..Prrp....\n..Prrp..Prrp....\n..Prrp..Prrp....\n..Prrp..Prrp....\n..Prrp..Prrp....\n..Prrp..Prrp....\n..Prrp..Prrp....\n..Pppp..Pppp....\n................\n................\n................\n"),
Xa=J("\n666......666\n6336....6330\n63336..63330\n.6333663330.\n..63333330..\n...633330...\n...633330...\n..63333330..\n.6333003330.\n63330..03330\n6330....0330\n600......000\n"),Ya=J("\n....9999....\n...955550...\n..95000050..\n..950..950..\n..900..950..\n......9500..\n.....9500...\n.....950....\n.....900....\n............\n.....990....\n.....900....\n"),kd=J("\n................\n................\n....&&&&&&&.....\n...&.......&....\n..&.........&...\n..&989898989&...\n...&9898989&....\n....&&898&&.....\n......&8&.......\n....&&.9.&&.....\n...&...8...&....\n..&...898...&...\n..&..89898..&...\n...&8989898&....\n....&&&&&&&.....\n................\n"),
ld=J("\n................\n................\n......000.......\n....0099900.....\n...099000990....\n..09000900090...\n..09000000090...\n.0900099000090..\n.0900009000090..\n.0900009000090..\n..09009990090...\n..09000000090...\n...099000990....\n....0099900.....\n......000.......\n................\n"),md=J("\n................\n.0........RRRR..\n.0..........RR..\n.0.........R.R..\n.0....R...R..R..\n.0...R.R.R......\n.0..R...R...00..\n.0.R........00..\n.0....00....00..\n.0....00.00.00..\n.0.00.00.00.00..\n.0.00.00.00.00..\n.0.00.00.00.00..\n.0.00.00.00.00..\n.00000000000000.\n................\n"),
Rb=J("\n000000000\n088888880\n089999090\n089990090\n080900990\n080009990\n089099990\n089999990\n000000000\n"),Sb=J("\n000000000\n088888880\n089999990\n089999990\n089999990\n089999990\n089999990\n089999990\n000000000\n"),nd=J("\n....aaaaa.......\n...aAAAAAaa.....\n..aA@@@@@AAa....\n..A@.....@@AXO..\n.aA@..o....XOoo.\naA@oooaaa.XOoooo\naAoo0oAAAXOooooo\naAoooo@@@XOooooo\naA@.Xoo..XOo@oo.\naA@ooooo.XOoAa..\naA@.XXooOOooA@..\naA@..XXooooAa@A.\n.aA@ooooaaaa.@Aa\n..aAA@@@@@@@@Aa.\n...aaAAAAAAAAa..\n.....aaaaaaaa...\n"),
od=J("\n................\n................\n................\n................\n................\n....22...22.....\n...2111.2111....\n..21..111..10...\n..21...1...10...\n..21..111..10...\n...1110.1110....\n....00...00.....\n................\n................\n................\n................\n");function pd(a,b,d,e,f){a=J(a);b=J(b);d=J(d);var g=J(e);e=ec(jc(cc(e),cc(f)));return[a,b,d,g,e]}function qd(a,b,d,e,f){a=J(a);b=J(b);d=J(d);e=J(e);f=J(f);return[a,b,d,e,f]}function rd(a,b,d,e,f){a=J(a);b=J(b);var g=J(d);e=ec(jc(cc(d),cc(e)));d=ec(jc(cc(d),cc(f)));return[a,b,g,e,d]}
var sd=pd("\n................\n................\n................\n................\n................\n................\n................\n...o........o...\n........o.......\n................\n.....o.....o....\n................\n....o....o......\n................\n................\n................\n","\n................\n................\n................\n................\n................\n................\n................\n................\n................\n......ox........\n......ox........\n......ox........\n................\n................\n................\n................\n",
"\n................\n................\n................\n........ox......\n........ox......\n........ox......\n........ox......\n.......oxx......\n......oxx.......\n......ox........\n......ox........\n......ox........\n................\n................\n................\n................\n","\n...........qq...\n..........qgg...\n.....oxxx.gg....\n....oxxoxx......\n...oxx..ox......\n...ox...ox......\n........ox......\n.......oxx......\n......oxx.......\n......ox........\n......ox........\n......ox........\n................\n................\n................\n................\n",
"l0:#800 l1:#c22 l2:#f44 l3:#f88\n................\n................\n................\n................\n................\n................\n..PP............\n.PRRR...........\n.PRRr...........\n..Rr............\n................\n................\n................\n................\n................\n................\n"),td=pd("\n................\n................\n................\n................\n................\n................\n................\n...o........o...\n........o.......\n................\n.....o.....o....\n................\n....o....o......\n................\n................\n................\n",
"l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n................\n................\n................\n.............||.\n............|tt.\n........||t.tt..\n........|tut....\n...........u....\n...........u....\n...........u....\n............u...\n................\n................\n","l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n.....tt..tt.....\n.....t|.tt|.....\n.....t|.t|......\n......uu........\n...ttt..u.......\n...t||...u......\n..........u.....\n..........u.....\n...........u....\n...........u....\n...........u....\n............u...\n................\n................\n",
"l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n.|||||..........\n.tt||||..|||....\n..tttt|.||||||..\n......uttttttt..\n....||..utttt...\n....||t..u......\n...||tt...u.....\n...||tt...u.....\n...|tt.....u....\n....tt.....u....\n...........u....\n............u...\n................\n................\n","l0:#800 l1:#c22 l2:#f44 l3:#f88\n................\n................\n................\n................\n...0i...........\n...i0....i0.....\n......0i.0i.....\n......i0....i0..\n............0i..\n.....i0.........\n.....0i.i0......\n..i0....0i......\n..0i............\n................\n................\n................\n"),
ud=pd("\n................\n................\n................\n................\n................\n....|...........\n................\n.......|...|....\n................\n..|.............\n.........|......\n.....|..........\n................\n..|..........|..\n................\n................\n","l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n................\n................\n................\n................\n................\n.....HH.H.......\n......h.Hh......\n.......x........\n.......x........\n.......x........\n.......x........\n.......x........\n................\n",
"l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n....H...........\n...HHH.....HH...\n....Hh....HHh...\n.....h...xHh....\n.....x...x......\n.....x...x......\n......x..x......\n......x.x.......\n......x.x.......\n.......x........\n.......x........\n.......x........\n.......x........\n.......x........\n................\n","l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n..HH............\n..HHHh.HH.......\n...hhhHHhx......\n.....xHh.xHHH...\n.....xhh.HHHhh..\n....HHx..xhhh...\n...HHhx.x.......\n..HHhhx.x.......\n...hh..xHHH.....\n.......xhhhh....\n.......x.hh.....\n.......x........\n.......x........\n................\n",
"l0:#800 l1:#c22 l2:#f44 l3:#f88\n................\n......AA........\n......Aa..Aa....\n..........AA....\n................\n.AA.............\n.aA.............\n................\n.........Aa..AA.\n.........AA..aA.\n.....AA.........\n.AA..aA.........\n.Aa.........aA..\n............AA..\n................\n................\n"),vd=pd("\n................\n................\n................\n................\n................\n................\n................\n...o........o...\n........o.......\n................\n.....o.....o....\n................\n....o....o......\n................\n................\n................\n",
"l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n................\n................\n................\n................\n................\n.........G......\n........oo......\n.....G..o.G.....\n......o.oo......\n......oOo.......\n.......Oo.......\n.......Oo.......\n................\n","l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n........o..to...\n.......to...o...\n........ot.oo...\n....o...o..o....\n...t.o..o.oot...\n.....o..o.o.....\n.....o..o.o.....\n......o.oo.t....\n.....to.o.......\n......o.oot.....\n......oOo.......\n.......Oo.......\n.......Oo.......\n................\n",
"l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n......tu..tt.tu.\n......uuo.uuotuu\n.tt..tt.o..uo...\n.tuu.tu.o..oott.\n....ouu.o..o.tuu\n...tto..o.oo....\n..ttuo.ttuottt..\n..uu.ottuuotuu..\n....tto.oo...u..\n......ottu......\n...ttuouuott....\n...uuuoOo.tuu...\n.......Oo.......\n.......Oo.......\n................\n","l0:#800 l1:#c22 l2:#f44 l3:#f88 hf:#802\n.........}F.....\n.}F.}F...Ff.....\n.Ff.Ff.....}F...\n...}F......Ff...\n...Ff.}F........\n......Ff}F......\n........Ff..}F..\n............Ff..\n..............}F\n.........}F.}FFf\n.}F......Ff.Ff..\n.Ff.......}F....\n....}F....Ff....\n..}FFf..........\n..Ff............\n................\n"),
wd=pd("\n................\n................\n................\n................\n................\n....|...........\n................\n.......|...|....\n................\n..|.............\n.........|......\n.....|..........\n................\n..|..........|..\n................\n................\n","l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n................\n................\n................\n................\n................\n................\n................\n................\n.......Oo.......\n.......Oo.......\n.......Oo.......\n.......Oo.......\n................\n",
"l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n................\n..........OOO...\n..hOO....O..hh..\n..h..O..O.......\n......OoO.......\n..OOOOOOoOOOO...\n.Oh....Oo....O..\n.h.....Oo....h..\n.......Oo.....h.\n.......Oo.......\n.......Oo.......\n.......Oo.......\n................\n","l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n....L.......L...\n...LLh......Lh..\n...hhh....OOhhh.\n...OO....Lhh....\n.....OO.OLh.....\n.....LLhOh......\n..OOOLLhOOOOOO..\n.OO..OhOO....O..\n.LLh..OOLLh.LLh.\n.LLh...OLLh.LLh.\n..h....Ooh...h..\n.......Oo.......\n.......Oo.......\n................\n",
"l0:#800 l1:#c22 l2:#f44 l3:#f88\n................\n................\n................\n...........+.+..\n...........r+r..\n.....r.r...+R+..\n.....+R+...r+r..\n.....r+r....r...\n..+.+.r+..+.+...\n..r+rr+r..r+r...\n..+r+.r....R+...\n..R+......r+....\n..+r+.....+R+...\n...+.......+....\n................\n................\n"),yd=pd("\n................\n................\n................\n................\n................\n................\n................\n...o........o...\n........o.......\n................\n.....o.....o....\n................\n....o....o......\n................\n................\n................\n",
"l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n................\n................\n................\n................\n................\n................\n.........u......\n......g.u.......\n.......gu.......\n.......ou.......\n.......ox.......\n.......ox.......\n................\n","l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n................\n................\n................\n.........u......\n......g.u.u.....\n.....g.gx.u.....\n.....g.ox.u.....\n....g..ox.u.....\n.....g.ox.......\n.......ox.......\n.......ox.......\n.......ox.......\n................\n",
"l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n....hh....hhh...\n...huu...huu....\n......uuuu......\n.....uuhuuu..hh.\n....u.huu..u.hu.\n..hu..huuu..uhu.\n.huu..uoxu..u...\n.huu..uox.u.u...\n...u..uox.u..uh.\n..|..u.hh.uh.uhu\nhhu..u.hu.hu.uhu\nhuu..u.hu.hu.u..\n..u..u.ox....u..\n.....u.ox.......\n................\n","l0:#800 l1:#c22 l2:#f44 l3:#f88\n................\n................\n................\n...........Pr...\n.....Pr....Rr...\n.....Rr....rp...\n.....rp.........\n................\nPr.........Pr...\nRr.........Rr...\nrp.Pr......rp...\n...Rr...Pr......\n...rp...Rr......\n........rp......\n................\n................\n"),
zd=pd("\n................\n................\n................\n................\n................\n....|...........\n................\n.......|...|....\n................\n..|.............\n.........|......\n.....|..........\n................\n..|..........|..\n................\n................\n","l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n................\n................\n................\n.......o........\n.......o........\n.....g.o........\n......o.........\n......o.........\n......o.........\n.....o..........\n.....o..........\n.....o..........\n................\n",
"l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n.........o......\n........o.......\n......g.o.......\n.....gg.o.......\n.......o........\n.......o........\n.......o........\n......o.gg......\n....g.o.g.......\n...gg.o.........\n.....o..........\n.....o..........\n.....o..........\n................\n","l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n.........o......\n......g.o.gg....\n.....gg.o.g.....\n....ggg.o.......\n.......o.gg.....\n.....g.o.g......\n....gg.o........\n....g.o.ggg.....\n...gg.o.gg......\n..ggg.o.g.......\n.....o..........\n.....o..........\n.....o..........\n................\n",
"l0:#800 l1:#c22 l2:#f44 l3:#f88\n................\n................\n.........LKL....\n.........LKL....\n.........LKL....\n....LKL.........\n....LKL.LKL.....\n....LKL.LKL.....\n........LKL.....\n...LKL..........\n...LKL..........\n...LKL.LKL......\n.......LKL......\n.......LKL......\n................\n................\n"),Ad=pd("\n................\n................\n................\n................\n................\n................\n................\n...o........o...\n........o.......\n................\n.....o.....o....\n................\n....o....o......\n................\n................\n................\n",
"l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n................\n................\n................\n................\n................\n................\n....oo.oxoo.....\n......oox.......\n.......ox.......\n.......ox.......\n.......ox.......\n.......ox.......\n................\n","l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n................\n...........ooo..\n.....oooxoo.....\n..ooo..ox.......\n.......ox.......\n.......ox.......\n....oo.oxoo.....\n..oo..oox..ooo..\n.......ox.......\n.......ox.......\n.......ox.......\n.......ox.......\n................\n",
"l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n..........g.....\n....g....gg.....\n...gg...ggg.....\n..ggg......ooo..\n.....oooxoo...gg\n..ooo..ox..g..g.\ngg...ggox..gg...\n.g...g.ox..ggg..\n....oo.oxoo.....\n..oo..oox..ooo..\ngg.ggg.oxgg...gg\n.g..gg.ox.g...g.\n.....g.ox.......\n.......ox.......\n................\n","l0:#800 l1:#c22 l2:#f44 l3:#f88\n................\n................\n................\n................\n................\n................\n.........FfFfFf.\n.FfFfFf..f{f{f{.\n.f{f{f{...FfFf..\n..FfFf....f{f{..\n..f{f{.....Ff...\n...Ff......f{...\n...f{...........\n................\n................\n................\n"),
Bd=pd("\n................\n................\n................\n................\n................\n....|...........\n................\n.......|...|....\n................\n..|.............\n.........|......\n.....|..........\n................\n..|..........|..\n................\n................\n","l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n................\n................\n................\n................\n................\n................\n.......f........\n.......f........\n.....f.f.f......\n.....f.f.f......\n.....f.f.f......\n.....f.f.f......\n................\n",
"l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n.......f..f.....\n....f..f..f.....\n....f..f..f.....\n.....f.f..f.....\n.....f.f..f.....\n.....f.f..f.....\n.....f.f..f.....\n.....f.f.f......\n.....f.f.f......\n.....f.f.f......\n.....f.f.f......\n.....f.f.f......\n.....f.f.f......\n................\n","l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n..hh...f..hhh...\n..hhh..hh.fhh...\n....f..hhhf.....\n.....f.f..f.....\n.....f.f..hhh...\n..hhhf.hhhfhh...\n..hh.f.fhhf.....\n.....f.f.f......\n...hhh.f.f......\n...hhf.fhhh.....\n.....f.f.hh.....\n.....f.f.f......\n.....f.f.f......\n................\n",
"l0:#800 l1:#c22 l2:#f44 l3:#f88\n................\n................\n................\n...........@A...\n...........Aa...\n...@A......Aa...\n...Aa...........\n...Aa...@A......\n........Aa......\n........Aa.@A...\n...........Aa...\n.....@A....Aa...\n.....Aa.........\n.....Aa.........\n................\n................\n"),Cd=pd("\n................\n................\n................\n................\n................\n................\n................\n...o........o...\n........o.......\n................\n.....o.....o....\n................\n....o....o......\n................\n................\n................\n",
"l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n................\n................\n................\n................\n................\n......|.|.......\n.......||||.....\n........|.......\n........|.......\n........|.......\n........|.......\n........|.......\n................\n","l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n................\n......z....z....\n......z....z....\n.......z..z.....\n..zz...z.z......\n....zz..z..zzz..\n......zzzzz.....\n........z.......\n........z.......\n........z.......\n........z.......\n........z.......\n................\n",
"l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n....h.h..h...h..\n.....hhhh.h.h...\n......o....o....\n.h..h.o.hh.ohh..\n..h.h.ho..o....h\n..oo..ho.o.hh.h.\n..h.oo..o..ooo..\n.h..h.ooooo.h.h.\n....h...oh.h.hh.\n......hho.h.h...\n........o.......\n........o.......\n........o.......\n................\n","l0:#800 l1:#c22 l2:#f44 l3:#f88\n................\n..DB............\n..Bb..DB....DB..\n......Bb....Bb..\n.........DB.....\n..DB.....Bb.DB..\n..Bb..DB....Bb..\n......Bb...DB...\n...DB......Bb...\n...Bb.DB.DB...DB\n......Bb.Bb...Bb\n................\n......DB........\n......Bb........\n................\n................\n"),
Dd=pd("\n................\n................\n................\n................\n................\n....|...........\n................\n.......|...|....\n................\n..|.............\n.........|......\n.....|..........\n................\n..|..........|..\n................\n................\n","l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n................\n................\n................\n................\n................\n................\n................\n................\n.......T....T...\n..T..UTT...TT...\n..T...UT....T...\n................\n................\n",
"l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n................\n................\n................\n................\n................\n................\nUTT....T....T...\n.TTUT..TTt..TUt.\n..Tt...Tt.UTTt..\n..T..UTT...TT...\n..T...UT....T...\n................\n................\n","l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n................\n................\nU...T...........\nUT.TtU...TU...T.\n.UTt.UT.TtUT.Tt.\n..T...TTt..TTt..\nUTT....T....T...\n.TTUT..TTT..TUT.\n..TT...TT.UTTT..\n..T..UTT...TT...\n..T...UT....T...\n................\n................\n",
"l0:#800 l1:#c22 l2:#f44 l3:#f88\n................\n................\n................\n................\n................\n................\n................\n................\n................\n..P+..P+...P+...\nP+++..++P+.++P+.\n++.P+...++P+.++.\n...++.....++....\n................\n................\n................\n"),Ed=pd("\n................\n................\n................\n................\n................\n................\n................\n...o........o...\n........o.......\n................\n.....o.....o....\n................\n....o....o......\n................\n................\n................\n",
"l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n................\n................\n................\n................\n......L..L......\n......O..o......\n.......O.o......\n.......OOo......\n.......Oo.......\n.......OO.......\n.......Oo.......\n.......Oo.......\n................\n","l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n......oL........\n.....Lo.........\n.......o........\n....LO..o.oo....\n......O.oo..L...\n.....L.OO.......\n.......Oo.......\n.......OO.......\n.......Oo.......\n.......OO.......\n.......Oo.......\n.......Oo.......\n................\n",
"l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n...LL..LLL......\n...LLGoLLLG.....\n...GG.o.LGG.....\n......o.........\n..OOO..o...oo...\n..L..O..o.o.LL..\n.LL...O.ooL.LLG.\n.LG.LL.OoLLG.LG.\n.LG.LG.OoLGG.GG.\n....LG.OO.......\n....G..Oo.......\n.......OO.......\n.......Oo.......\n.......Oo.......\n................\n","l0:#800 l1:#c22 l2:#f44 l3:#f88\n................\n................\n....r0....2p....\n....2p.2p.r0....\n....p0.r0.0p....\n.....p.0p..0....\n2p.....p.....r0.\nr0..2p.......2p.\n0p..r0.2p.2p.p0.\n.0..0p.r0.r0.0..\n....p0.0p.0p....\n.......p..p0....\n................\n................\n................\n................\n"),
Fd=pd("\n................\n................\n................\n................\n................\n....|...........\n................\n.......|...|....\n................\n..|.............\n.........|......\n.....|..........\n................\n..|..........|..\n................\n................\n","l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n................\n................\n................\n................\n................\n.........l......\n..llxl...xl.....\n....x.l.lllxl...\n....xllxlx.x....\n....x..x...x....\n.......x...x....\n.......x........\n.......x........\n",
"l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n................\n................\n..ll.ll.ll......\n...lxllxlllxl...\n....x..x...x....\n..llxllxll.x....\n.lllx.lxlxlxll..\n.ll.x..x.llxlll.\n....x..x.x.x....\n....x..x...x....\n.......x...x....\n.......x........\n.......x........\n","l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n.......ll.lll...\n......lllxllll..\n.ll.ll...x......\nlllxlll..x......\n...x...x.llxll..\n....x..xlllxlll.\n....x..x.x.x....\n..llxllxll.x....\n.lllx.lxlxlxll..\n.ll.x..x.llxlll.\n....x..x.x.x....\n....x..x...x....\n.......x...x....\n.......x........\n.......x........\n",
"l0:#800 l1:#c22 l2:#f44 l3:#f88\n................\n................\n................\n.........S......\n........S.......\n...S..$$Sss.S...\n..S...$$Sss.S...\n$$Sss.$$Sss..S..\n$$Sss..$Ss.$$Sss\n.$Ss....S..$$Sss\n..S..S.....$$Sss\n....$$Sss...$Ss.\n....$$Sss....S..\n.....$Ss........\n......S.........\n................\n"),Gd=pd("\n................\n................\n................\n................\n................\n................\n................\n...o........o...\n........o.......\n................\n.....o.....o....\n................\n....o....o......\n................\n................\n................\n",
"l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n................\n................\n................\n.HH.............\n.hhH............\n..hh.hHH........\n....h|hH........\n....|...........\n....|...........\n....|...........\n...|............\n................\n................\n","l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n.....hh..hh.....\n.....Hhh.Hh.....\n......Hh.Hh.....\n........||......\n.......|..hhh...\n......|...HHh...\n.....|..........\n.....|..........\n....|...........\n....|...........\n....|...........\n...|............\n................\n................\n",
"l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n..........HHHHH.\n....HHH..HHHHhh.\n..HHHHHH.Hhhhh..\n..hhhhhhh|......\n...hhhh|..HH....\n......|..hHH....\n.....|...hhHH...\n.....|...hhHH...\n....|.....hhH...\n....|.....hh....\n....|...........\n...|............\n................\n................\n","l0:#800 l1:#c22 l2:#f44 l3:#f88\n................\n................\n................\n................\n...........fF...\n.....Ff....Ff...\n.....fF.fF.fF...\n..Ff.Ff.Ff......\n..fF....fF......\n..Ff.....Ff.....\n......Ff.fF.....\n......fF.Ff.Ff..\n......Ff....fF..\n............Ff..\n................\n................\n"),
Hd=pd("\n................\n................\n................\n................\n................\n....|...........\n................\n.......|...|....\n................\n..|.............\n.........|......\n.....|..........\n................\n..|..........|..\n................\n................\n","l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n................\n................\n................\n................\n................\n................\n................\n......Hh.Hh.....\n...hh.hhhhh.hhh.\n....h...h....h..\n....h...h....h..\n................\n................\n",
"l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n................\n................\n................\n................\n.......HH.Hh....\n.......Hhhhh....\n.........h.Hh.Hh\n..HH.hh..h.hhhhh\n..Hhhhh.hh...h..\n....h...h....h..\n....h...h....h..\n................\n................\n","l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n................\n......H....HH...\n....HHhhh.Hhh|..\n.....hhhhhhh|...\n........|hh.....\n.HH..hhh.h.HH.H.\n.Hhhhhh|.hHhhhh|\n...hh....hhhhh||\n....h...hh...h..\n....h...h....h..\n....h...h....h..\n................\n................\n",
"l0:#800 l1:#c22 l2:#f44 l3:#f88\n................\n................\n................\n................\n................\n................\n................\n.......+P+......\n......P+++P.....\n......+P+P+.PP+.\n.P++..P++++P+++P\nP+P+P..+P+.++P++\n+++++...+...+++.\n.P+P.........+..\n..+.............\n................\n"),Id=pd("\n................\n................\n................\n................\n................\n................\n................\n...o........o...\n........o.......\n................\n.....o.....o....\n................\n....o....o......\n................\n................\n................\n",
"l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n................\n................\n................\n................\n................\n................\n................\n................\n.......hxh......\n......h.x.h.....\n........x.......\n........x.......\n................\n","l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n................\n................\n................\n................\n................\n................\n......hx........\n......|.xx|.....\n........x.|.....\n........x.......\n........x.......\n.......xxx......\n................\n",
"l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n.......x........\n......|||.......\n....h|.x|.h|....\n....h..x.hh||...\n....||x...|.....\nh.|x||x....x....\nh|||.xx..xx||...\n||.||.xxx...h|..\n.|.|...x....h|..\n...h|...x...||..\n...||...x.......\n....|...x.......\n........x.......\n.......xxx......\n................\n","l0:#800 l1:#c22 l2:#f44 l3:#f88\n................\n................\n................\n......|.........\n......|]E.......\n...]E|.EE.......\n...EE|.EE...|]E.\n..|EE|......|EE.\n..|..|]E..]E|...\n]E|...EE..EE|]E.\nEE|]E.EE..EE|EE.\nEE.EE.......|EE.\n.E.EE........E..\n................\n................\n................\n"),
Kd=pd("\n................\n................\n................\n................\n................\n....|...........\n................\n.......|...|....\n................\n..|.............\n.........|......\n.....|..........\n................\n..|..........|..\n................\n................\n","l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n................\n................\n................\n................\n................\n................\n................\n................\n.......Ee.......\n.......Ee.......\n.......Ee.......\n.......Ee.......\n................\n",
"l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n................\n...EEE..........\n..tt..E....EEt..\n.......E..E..t..\n.......EEE......\n...EEEEEEEEEEE..\n..E....Ee....tE.\n..t....Ee.....t.\n.t.....Ee.......\n.......Ee.......\n.......Ee.......\n.......Ee.......\n................\n","l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n...T.......T....\n..tT......tTT...\n.tttee....ttt...\n....ttT....ee...\n.....tTe.ee.....\n......tetTT.....\n..eeeeeetTTeee..\n..e....eete..ee.\n.tTT.tTTee..tTT.\n.tTT.tTTe...tTT.\n..t...tEe....t..\n.......Ee.......\n.......Ee.......\n................\n",
"l0:#800 l1:#c22 l2:#f44 l3:#f88 P:#fdd\n................\n................\n................\n..9.9...........\n..P9P...........\n..9P9...P.P.....\n..P9P...9P9.....\n...P....P9P.....\n...9.9..9P.9.9..\n...P9P..P9PP9P..\n...9P....P.9P9..\n....9P......9P..\n...9P9.....9P9..\n....9.......9...\n................\n................\n"),Ld=qd("\n................\n................\n................\n................\n................\n................\n................\n........N.......\n..N........N....\n....N.........N.\n................\n........N.......\nN...........N...\n....N...........\n.........N......\n................\n",
"l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n................\n................\n................\n................\n................\n........M.......\n.......MMm......\n.......MMm......\n........m.......\n........I.......\n......I.II......\n.......II.......\n................\n","l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n................\n................\n........X.......\n.......Nhm......\n.......NMm......\n.......NMm......\n........M.......\n........I.......\n........I.......\n.....I..I.I.....\n......I.II......\n.......II.......\n................\n",
"l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n................\n................\n........X.......\n......NMXMN.....\n.....MNNMNMm....\n......MNMMm.....\n.......MMm......\n........I.......\n........I.......\n.....II.I.IIi...\n.......III......\n........I.......\n................\n","l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n.........NNM....\n.....NN.NNNM....\n....NNNMNNM.....\n....MMMXXXNNN...\n.....NNXHXNNNM..\n....NNNXXXMMM...\n....NNNMNNN.....\n....MMM.NNNM....\n........MMM.....\n........I.......\n...IIi..I..IIIi.\n....iii.I.Iiii..\n.......III......\n........I.......\n................\n"),
Md=qd("\n................\n................\n................\n................\n................\n................\n................\n............J...\n.....J..........\n................\n....J...J.......\n.J..........J...\n.....J..........\n.........J......\n................\n................\n","l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n................\n................\n................\n................\n....h...........\n...hhh..........\n....h|..........\n.....hhhh.......\n...hh|h||h......\n...h|h.hh.......\n....hh..........\n................\n................\n",
"l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n................\n................\n................\n...hh...........\n...hhh..........\n...h|h..........\n....h|..........\n.....hh.hhh.....\n..hhh|h|||h.....\n..h||h.hhhh.....\n..hhhh..........\n................\n................\n","l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n.......|........\n.......h........\n........h.......\n...hh...h.......\n...hhh..h.......\n...h|h.h........\n....h|..........\n.....hh.hhh.....\n..hhh|h|||h.....\n..h||h.hhhh.....\n..hhhh..........\n................\n................\n",
"l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n......89.8......\n......989.......\n.....88h........\n.......h........\n........h.......\n...hh...h.......\n...hhh..h.......\n...h|h.h........\n....h|..........\n.....hh.hhh.....\n..hhh|h|||h.....\n..h||h.hhhh.....\n..hhhh..........\n................\n................\n"),Nd=qd("\n................\n................\n................\n................\n................\n................\n................\n........N.......\n..N........N....\n....N.........N.\n................\n........N.......\nN...........N...\n....N...........\n.........N......\n................\n",
"l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n................\n................\n................\n................\n................\n................\n................\n................\n........q.......\n.......qq.......\n........qq......\n........q.......\n................\n","l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n................\n................\n................\n................\n........q.......\n.......qqq......\n........q.......\n........q.......\n........q.q.....\n.......qq.qq....\n........qq......\n........q.......\n................\n",
"l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n................\n................\n................\n........A.......\n.......vAv......\n........v.......\n........q.......\n........q...q...\n......q.q.q.qq..\n.....qq.q.qq....\n.......qq.qqq...\n........qq......\n........q.......\n................\n","l0:#600 l1:#822 l2:#a55 l3:#faa\n........A.......\n.......A@A......\n.......A@A......\n.....AA.v.AA....\n....A@@vVv@@A...\n.....AA.v.AA....\n.......A@A......\n.......A@A......\n........A.......\n........q...q...\n......q.q.q.qq..\n.....qq.q.qq....\n.......qq.qqq...\n........qq......\n........q.......\n................\n"),
Od=qd("\n................\n................\n................\n................\n................\n................\n................\n............J...\n.....J..........\n................\n....J...J.......\n.J..........J...\n.....J..........\n.........J......\n................\n................\n","l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n................\n................\n................\n................\n................\n................\n................\n....hh....hh....\n....hh....hh....\n.....h....h.....\n.....h...h......\n.....h...h......\n................\n",
"l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n................\n................\n................\n................\n................\n................\n...........Z....\n...........h....\n.....Z.....h....\n.....h....h.....\n.....h...h......\n.....h...h......\n................\n","l0:#600 l1:#822 l2:#a55 l3:#faa 9:#fffafa 8:#efeaea 7:#ff0 X:#fe0\n................\n................\n................\n................\n................\n...........9....\n..........979...\n....9....97X79..\n...979....979...\n..97X79....9....\n...979.....h....\n....9......h....\n.....h....h.....\n.....h...h......\n.....h...h......\n................\n",
"l0:#600 l1:#822 l2:#a55 l3:#faa 9:#fffafa 8:#efeaea 7:#ff0 X:#fe0\n................\n....9...........\n..98989.........\n..88788....9....\n.997X799.98989..\n..88788..88788..\n..98989.997X799.\n....9....88788..\n....h....98989..\n....h......9....\n....h......h....\n....h......h....\n.....h....h.....\n.....h...h......\n.....h...h......\n................\n"),Pd=qd("\n................\n................\n................\n................\n................\n................\n................\n........N.......\n..N........N....\n....N.........N.\n................\n........N.......\nN...........N...\n....N...........\n.........N......\n................\n",
"l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n................\n................\n................\n......|.........\n.....h|...|.....\n.....||..|......\n......|..|......\n......|..|......\n......|||.......\n....|h.||.h|....\n.....||||||h....\n.....h||||......\n................\n","l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n....h|....h.....\n....h|....h|....\n...||||...||....\n....||....|.....\n.....|....|.....\n......|..|......\n......|..|......\n......|..|......\n....h.|||..h....\n....|h.||.h|....\n.....||||||h....\n.....h||||......\n................\n",
"l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n....ZX..........\n....XZ....h|....\n....h|....h|....\n...||||..||||...\n....||....||....\n.....|....|.....\n.....|....|.....\n......|..|......\n......|..|......\n......|..|...h..\n..h.h.|||..h.||.\n...||h.||.h|||..\n...h|||||||h.h..\n.....h||||......\n................\n","l0:#600 l1:#822 l2:#a55 l3:#faa\n...989.....X-...\n..98989..-XOX--.\n..89898.-XOOO-X.\n..98979..--X-X..\n...979...X.|.-X.\n....||....||....\n.....|....|.....\n.....|....|.....\n......|..|......\n......|..|......\n......|..|...h..\n..h.h.|||..h.||.\n...||h.||.h|||..\n...h|||||||h.h..\n.....h||||......\n................\n"),
Qd=qd("\n................\n................\n................\n................\n................\n................\n................\n............J...\n.....J..........\n................\n....J...J.......\n.J..........J...\n.....J..........\n.........J......\n................\n................\n","l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n................\n................\n................\n................\n................\n................\n................\n................\n.......h........\n.....h.h.|......\n.....h.h|.......\n......hh|.......\n.......h........\n",
"l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n................\n................\n.......h........\n......hh|.......\n......hh|.......\n......hh|.......\n.......h........\n.......h........\n.......h........\n.....h.h.|......\n.....h.h|.......\n......hh|.......\n.......h........\n","l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n................\n.......v........\n......vvv.......\n.....vhvvv......\n.....vhvv.......\n......hh|.......\n.......h........\n.......h........\n.......h........\n.....h.h.|......\n.....h.h|.......\n......hh|.......\n.......h........\n",
"l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n.....i...i......\n.....id.id......\n.....iiidd......\n...vvviddvvv....\n..vv--vvv--ii...\n..vivvv-vviii...\n..i..v---i..i...\n.....vvvvi......\n......vvi.......\n.......i........\n.......h........\n.....h.h.|......\n.....h.h|.......\n......hh|.......\n.......h........\n"),Rd=qd("\n................\n................\n................\n................\n................\n................\n................\n........N.......\n..N........N....\n....N.........N.\n................\n........N.......\nN...........N...\n....N...........\n.........N......\n................\n",
"l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n................\n................\n................\n................\n................\n.....v....I.....\n.....g..v.v.....\n..g..g..g.g.....\n..g..g..g.g..g..\n..g..g..g.g..g..\n..g.....g....g..\n.............g..\n................\n","l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n................\n................\n.....I....v.....\n....Iv..III.....\n.Iv..II.v.v.II..\n..II.v.II.II.v..\n..v..g..v.v..I..\n..g..g..g.g..v..\n..g..g..g.g..g..\n..g..g..g.g..g..\n..g.....g....g..\n.............g..\n................\n",
"l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n.....v...III....\n..v.III.v.v.....\n.III.v.IIIII.v..\n..v.III.v.v.III.\n.III.v.IIIII.v..\n..v..gG.v.v.III.\n..g..g..gGg..v..\n..g..g..g.g..g..\n..g..g..g.g..g..\n..g..g..g.g..g..\n..g.....g....g..\n.............g..\n................\n","l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n.....I..........\n..I.JvI.I.I.....\n.JvIIIvJvJvI.I..\n.IIvJvIIIIIvJvI.\n.JvIIIvJvJvIIIv.\n.IIv.v.IIIIvJvI.\n..v.GgG.v.v.IIv.\n.GgG.g.GgGgG.v..\n..g..g..g.g.GgG.\n..g..g..g.g..g..\n..g..g..g.g..g..\n..g.....g....g..\n.............g..\n................\n"),
Sd=qd("\n................\n................\n................\n................\n................\n................\n................\n............J...\n.....J..........\n................\n....J...J.......\n.J..........J...\n.....J..........\n.........J......\n................\n................\n","l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n................\n........mh......\n..........h.....\n...........h....\n...........h....\n...........h....\n...........h....\n...........h....\n...........h....\n.......h|.h.|h..\n.......|h|h|h|..\n........|h|h|...\n................\n",
"l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n..hMhhh....M....\n...m...hh.m.....\n.........h......\n..........h.....\n...........h....\n...........h....\n...........h....\n...........h....\n....||||...h....\n....||h||..h.||.\n.....||h|.h.|hh|\n......||h|h|h||.\n.........h|h||..\n................\n","l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n......M...M.....\n..hMhhh..mMm....\n..mMm..hmmNmm...\n.mmNmm...MMM....\n..MMM.....h.....\n...........h....\n...........h....\n..........Mh....\n...........h....\n....||||...h....\n....||h||..h.||.\n.....||h|.h.|hh|\n......||h|h|h||.\n.........h|h||..\n................\n",
"l0:#600 l1:#822 l2:#a55 l3:#faa\n....MMM.........\n....mNm...M.....\n..hMhhh..mMm....\n..mMm..hmmMmm...\n.mmMmm.mmmNmmm..\nmmmNmmm.mMMMm...\n.mMMMm..MM.MMM..\n.MM.MM...mMh....\n.........NMh....\n.........mMh....\n....||||...h....\n....||h||..h.||.\n.....||h|.h.|hh|\n......||h|h|h||.\n.........h|h||..\n................\n");
qd("\n................\n................\n................\n................\n................\n................\n................\n........N.......\n..N........N....\n....N.........N.\n................\n........N.......\nN...........N...\n....N...........\n.........N......\n................\n","l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n................\n................\n................\n................\n................\n................\n................\n........G.......\n........GG......\n........G.......\n.......GG.......\n........GG......\n........G.......\n",
"l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n................\n................\n................\n.......KQK......\n......GQKQg.....\n.......GGg......\n........G.......\n........G.......\n........GG......\n........G.......\n.......GG.......\n........GG......\n........G.......\n","l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n................\n........G#......\n.....--o-G......\n......-x-##.....\n.....--ox-G.....\n.......-oG#.....\n......--G.......\n........G.......\n........GG......\n......G.G.......\n.......GG.G.....\n........GG......\n........G.......\n",
"l0:#600 l1:#822 l2:#a55 l3:#faa +:#ff0b\n......+.-.+.....\n.....+-----+....\n....+---X---+...\n.....--OxO--....\n....--XxxxX--...\n.....--OxO--....\n....+---X---+...\n.....+-----+....\n......+.-.+.....\n........G.......\n........GGG.....\n.....GG.G.......\n.......GG.GG....\n........GG......\n........G.......\n........G.......\n");
var Td=qd("\n................\n................\n................\n................\n................\n................\n....0...........\n.........0......\n................\n....0.....0.....\n................\n..0....0..0.....\n.............0..\n......0.........\n................\n................\n","l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n................\n................\n................\n................\n................\n................\n................\n................\n................\n......9]EE......\n......9]EE......\n................\n................\n",
"l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n................\n................\n................\n................\n................\n................\n................\n......XOox......\n......9]EE......\n......9]EE......\n......9]EE......\n................\n................\n","l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n................\n................\n................\n................\n................\n......Ooxx......\n......XOox......\n......XOox......\n......9]EE......\n......9]EE......\n......9]EE......\n................\n................\n",
"l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n................\n.....XOOoxx.....\n....XXXOOoxx....\n....XXXOOoxx....\n....XXXOOoxx....\n....XXXOOoxx....\n......9]EE......\n......9]EE......\n......9]EE......\n......9]EE......\n......9]EE......\n................\n................\n"),Ud=qd("\n................\n................\n................\n................\n................\n................\n..............p.\n................\n........p.......\n.p.........p....\n....p...........\n........p...p...\n...p............\n................\n.......p........\n................\n",
"l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n................\n................\n................\n................\n................\n................\n................\n................\n................\n.......oO.......\n.......9o.......\n.......9O.......\n................\n","l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n................\n................\n................\n................\n................\n................\n................\n.......oO.......\n.......Oo.......\n.......oO.......\n.......9X.......\n.......9X.......\n................\n",
"l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n................\n................\n................\n................\n................\n.......Oo.......\n.......XOo......\n......oOo.......\n.......oO.......\n.......9X.......\n.......9X.......\n.......9X.......\n................\n","l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n.......Oo.......\n......XoXO......\n......OXOo......\n......oOoO......\n......OXOX......\n......oOoo......\n......XoOX......\n......oOXo......\n.......oO.......\n.......9X.......\n.......9X.......\n.......9X.......\n.......9X.......\n................\n"),
Vd=qd("\n................\n................\n................\n................\n................\n................\n....0...........\n.........0......\n................\n....0.....0.....\n................\n..0....0..0.....\n.............0..\n......0.........\n................\n................\n","l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n................\n................\n................\n.......Xo.......\n......XOOo......\n.......7O.......\n.......X7.......\n.......7O.......\n................\n................\n................\n................\n................\n",
"l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n................\n.......Xo.......\n......XOOo......\n......XOOo......\n......XOOo......\n.......7O.......\n.......X7.......\n.......7O.......\n.......X7.......\n.......7O.......\n.......X7.......\n................\n................\n","l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n................\n.......Xo.......\n......XOOo......\n......XOOo......\n......XOOo......\n......X7O6......\n......8O7o......\n......X7O6......\n......8O7o......\n......X7O6......\n.......O7.......\n................\n................\n",
"l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n......XOOo......\n.....XOOOOo.....\n.....XOOOOo.....\n.....XOOOOo.....\n.....XOOOOo.....\n......X7O6......\n......8O7o......\n......X7O6......\n......8O7o......\n......X7O6......\n......8O7o......\n......X7O6......\n.......O7.......\n................\n................\n"),Wd=qd("\n................\n................\n................\n................\n................\n................\n..............p.\n................\n........p.......\n.p.........p....\n....p...........\n........p...p...\n...p............\n................\n.......p........\n................\n",
"l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n................\n................\n................\n................\n................\n................\n................\n................\n......986.......\n......986.......\n......986.......\n................\n................\n","l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n................\n................\n................\n................\n................\n................\n......P++.......\n......+9r.......\n......986.......\n......986.......\n......986.......\n................\n................\n",
"l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n................\n................\n......P9+r......\n.....P+++9r.....\n.....P9+9+9.....\n.....66666r.....\n......986.......\n......986.......\n......986.......\n......986.......\n......986.......\n................\n................\n","l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n................\n.....P9+9+......\n....P++9+++.....\n...P+9+++9+r....\n...P9+9+9+9r....\n...P+68686+r....\n......984.......\n.....98884......\n......984.......\n......984.......\n......984.......\n................\n................\n"),
Xd=qd("\n................\n................\n................\n................\n................\n................\n....0...........\n.........0......\n................\n....0.....0.....\n................\n..0....0..0.....\n.............0..\n......0.........\n................\n................\n","l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n................\n................\n................\n................\n....X8..........\n...9X8o.........\n...9987.........\n....97..........\n..........X.....\n....9....987....\n...X98...987....\n....9...........\n................\n",
"l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n................\n................\n................\n................\n..99..99........\n...9X8o.........\n...9987.........\n....97...9X.o7..\n..99..9889988...\n...99O8...987...\n...X9O....987...\n....98..........\n................\n","l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n................\n................\n................\n...99988........\n..99X8o87.......\n...9X8o.........\n...9987...998...\n....97...9XOo7..\n..99999889988...\n..X99O88..987...\n..9X9O8...987...\n...998..........\n................\n",
"l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n................\n..999988........\n.99998888.......\n99X9O88o87......\n.89XO8o87.9998..\n..8XO8o..X9O888.\n...9987.99XO8oo.\n....97...9XOo7..\n..99999889987...\n.9X99O88o.987...\n.89X9O8o9.887...\n..8X9O7o........\n...9987.........\n"),Yd=qd("\n................\n................\n................\n................\n................\n................\n..............p.\n................\n........p.......\n.p.........p....\n....p...........\n........p...p...\n...p............\n................\n.......p........\n................\n",
"l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n................\n................\n................\n................\n................\n................\n................\n................\n................\n.....9]]EEE.....\n.....9]]EEE.....\n................\n................\n","l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n................\n................\n................\n................\n................\n................\n................\n.....XOOoox.....\n.....9]]EEE.....\n.....9]]EEE.....\n.....9]]EEE.....\n................\n................\n",
"l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n................\n................\n................\n................\n................\n.....XOOoox.....\n.....XOOoox.....\n.....XOOoox.....\n.....9]]EEE.....\n.....9]]EEE.....\n.....9]]EEE.....\n................\n................\n","l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n................\n..XXXOOOooooxx..\n.XXXXOOOOooxoxx.\n.XXXOOOOooooxxx.\n.XXXXOOoOooooxx.\n.XXXOXOOooooxxx.\n.....9]]EEE.....\n.....9]]EEE.....\n.....9]]EEE.....\n.....9]]EEE.....\n.....9]]EEE.....\n................\n................\n"),
Zd=qd("\n................\n................\n................\n................\n................\n................\n....0...........\n.........0......\n................\n....0.....0.....\n................\n..0....0..0.....\n.............0..\n......0.........\n................\n................\n","l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n................\n................\n................\n................\n................\n................\n................\n................\n................\n........o.......\n...oo..OO...oo..\n...OO..Ee...OO..\n................\n",
"l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n................\n................\n................\n................\n................\n................\n.........o......\n........OOO.....\n...oo...Ee......\n..OOOO.EEe......\n...Ee..Ee...OO..\n...Ee..Ee...Ee..\n................\n","l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n................\n................\n................\n.........oo.....\n........OOOO....\n...oo....Ee.....\n..OOOO...Ee.....\n...Ee...EEe.....\n...Ee...Ee..oo..\n...Ee..EEe.OOOO.\n...Ee..Ee...Ee..\n...Ee..Ee...Ee..\n................\n",
"l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n.........oo.....\n...oo...ooooo...\n..oooo.OXOOXOO..\n..OXOX...Ee.....\n.OOOOOO..Ee.....\n...Ee....Ee.....\n...Ee....Ee.oo..\n...Ee...EEeoooo.\n...Ee...EeXOXOXO\n...Ee..EEe..Ee..\n...Ee..Ee...Ee..\n...Ee..Ee...Ee..\n................\n"),$d=qd("\n................\n................\n................\n................\n................\n................\n..............p.\n................\n........p.......\n.p.........p....\n....p...........\n........p...p...\n...p............\n................\n.......p........\n................\n",
"l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n................\n................\n................\n................\n................\n................\n................\n.....00.........\n....0o300.......\n....030o30......\n.....003x0......\n.......00.......\n................\n","l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n................\n................\n................\n................\n................\n........00......\n.......0o30.....\n....000o330.....\n....0o30330.....\n....030300......\n.....003x0......\n.......000......\n................\n",
"l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n................\n................\n................\n................\n......0000......\n.....030o00.....\n....0o30o30.....\n....000o330.....\n....03x03x0.....\n....030o000.....\n.....00o30......\n.......000......\n................\n","l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n................\n................\n................\n....00..00......\n...0oo00330.....\n...0o30o0330....\n...0330o3000....\n..0o00o33030....\n..033303x030....\n..0300o0030.....\n...030o3030.....\n....000000......\n................\n"),
ae=rd("\n................\n................\n................\n................\n................\n................\n................\n........xo......\n........oo......\n...xo...........\n...oo...........\n..........xo....\n..........oo....\n................\n................\n................\n","l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n........h.......\n.......hhh......\n........h.......\n.......hhh......\n........h.......\n.......Oo.......\n.....hh.Oo......\n....hhh..Oo.....\n...hhh...Oo.....\n...hh....Oo.....\n.........Oo.....\n.........Oo.....\n.........Oo.....\n.........Oo.....\n",
"l0:#600 l1:#822 l2:#a55 l3:#faa\n........Hh......\n.....o.Hhh......\n...HhOohh.......\n..Hhh.ho.....Hh.\n.Hhh.Hhho...Hhh.\n.hh...h.Oo.Hhh..\n.....HhhOo.hh...\n......h..Oo.H.h.\n.........Oohhhhh\n.........Oo.h.h.\n.........Oo.....\n.........Oo.....\n.........Oo.....\n.........Ooo....\n........OOoo....\n.......OOOooo...\n","l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n................\n................\n..L....L........\n.LLl..LLl.......\n.KKH..KKH.......\n.KKH..KKH...L...\n..H....H...LLl..\n...........KKH..\n...........KKH..\n............H...\n................\n................\n................\n",
"l0:#744 l1:#b44 l2:#e66 l3:#f77 ts1:1 aa:#b22f\n................\n................\n................\n................\n................\n..o....o........\n.oox..oox.......\n.ee[..ee[.......\n.ee[..ee[...o...\n..[....[...oox..\n...........ee[..\n...........ee[..\n............[...\n................\n................\n................\n"),be=rd("\n................\n................\n................\n................\n................\n....Oo..........\n....oo..........\n................\n................\n...........Oo...\n...Oo......oo...\n...oo...........\n................\n................\n................\n................\n",
"l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n................\n................\n................\n......o..o......\n.......o.o......\n.......o.o......\n.......o.o......\n.......o..o.....\n.......o..o.....\n........o.o.....\n........o.o.....\n........o.o.....\n................\n","l0:#600 l1:#822 l2:#a55 l3:#faa\n...........H....\n........o.Hh....\n..H..o..o.h.....\n...HHo..oH......\n....ho..oH..HHh.\n.HHhh.o.o.HHHh..\n....h.o..o......\n..Hh...o.oHH....\n.......o.o.HH...\n.HHHH..o.o..hh..\n...HHHHo..o.....\n......ho..o.....\n....Hhh.o.o.....\n...Hh...o.o.....\n........o.o.....\n................\n",
"l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n.....9..........\n.....99.........\n....9PP99.......\n...99PR9........\n.....99...9.....\n.....9....99....\n....9....9PP99..\n....99..99PR9...\n...9RP99..99....\n..99PP9...9.....\n....99..........\n.....9..........\n................\n................\n................\n","l0:#744 l1:#b44 l2:#e66 l3:#f77\n................\n.....E..........\n....EOE.........\n...EOooE........\n...EOooE........\n...EOooE........\n....EoE....E....\n.....EE...EOE...\n.....EOE.EOooE..\n....EOooEEOooE..\n....EOooEEOooE..\n....EOooE.EoE...\n.....EoE...E....\n......E.........\n................\n................\n"),
de=rd("\n................\n................\n................\n................\n................\n................\n................\n........xo......\n........oo......\n...xo...........\n...oo...........\n..........xo....\n..........oo....\n................\n................\n................\n","l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n................\n................\n................\n................\n................\n..........Hh....\n.....hH..hHH....\n.....HHh.Hh.....\n......hHx.......\n........x.......\n........x.......\n........x.......\n................\n",
"l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n.......hH.......\n.hH.hH.HHh......\n.HHhHHh.hH.x....\n..hH.hH...x..Hh.\n....x..x0x..hHH.\n.....x.x0...Hh..\n...hH.xx0..x....\n..HHh.Hh0.x.....\n..hH..hHHx.Hh...\n.......Hh..hHH..\n.......x0...Hh..\n.......x0.......\n.......x0.......\n......xx00......\n................\n","l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n................\n................\n...%............\n..%.......%.....\n..%........%....\n.s%0.......%....\n.%%%......s%0...\n.s%0......%%%...\n..%.......s%0...\n...........%....\n................\n................\n................\n",
"l0:#744 l1:#b44 l2:#e66 l3:#f77\n................\n................\n................\n................\n................\n...%............\n..%.......%.....\n..%........%....\n.%%%.......%....\n%%s%%....%%%%%..\n%Ss.%...%%%.%%%.\n.Ss.....%Ss.Ss%.\n.s.......Ss.ss..\n..........s..s..\n................\n................\n"),ee=rd("\n................\n................\n................\n................\n................\n....Oo..........\n....oo..........\n................\n................\n...........Oo...\n...Oo......oo...\n...oo...........\n................\n................\n................\n................\n",
"l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n................\n.....hh..h......\n.....hh..hh.....\n......OOooo.....\n....hh.Ooo.hh...\n.....h.Oox.hh...\n.......Ooo......\n.......Ooo......\n.......Oox......\n.......ooo......\n.......Ooo......\n......Oooxo.....\n................\n","l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n.Hh.Hh..Hh.h.Hh.\n...OOhOOoooooo..\n..H.hXOOooHh.Hh.\n.Hh.hhOOooxh.hh.\n.....XOOoxx.....\n.....XOOoox.....\n.....XOooox.....\n.....XOOoxx.....\n.....XXOoox.....\n.....XOOoox.....\n.....XOOoxx.....\n.....XOooox.....\n....XXOOoox.....\n...XXOOOoxxx....\n................\n",
"l0:#800 l1:#c22 l2:#f44 l3:#f88\n................\n................\n................\n.++.++..........\n.++-++..........\n..---...........\n.++-++..++.++...\n.++.++..++-++...\n.........---....\n..++.++.++-++...\n..++-++.++.++...\n...---..........\n..++-++.........\n..++.++.........\n................\n................\n","l0:#744 l1:#b44 l2:#e66 l3:#f77\n................\n................\n................\n.......x0.......\n.......00.......\n..........x0....\n....x0.x0.00....\n....00.00.......\n................\n......x0..x0....\n...x0.00..00....\n...00...........\n.....x0...x0....\n.....00.x000....\n........00......\n................\n"),
fe=rd("\n................\n................\n................\n................\n................\n................\n................\n........xo......\n........oo......\n...xo...........\n...oo...........\n..........xo....\n..........oo....\n................\n................\n................\n","l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n................\n................\n...e....e.......\n....e...e.e.....\n.....Eeeee......\n...eeEeee.......\n......Eee.......\n.......Ee.......\n.......Ee.......\n.......Ee.......\n.......Ee.......\n.......Ee.......\n................\n",
"l0:#600 l1:#822 l2:#a55 l3:#faa\n..G.....G.G.....\nGGGGG...GGG.....\n.GGg...GGGg.....\nGGog.....g.G....\n..o.g...o....o..\nG..o....o..oo...\nGGG.o...o.o.GGGG\n.Go..Oo.oo..GGG.\nGg.ooOooo....Ggg\nG.g...Ooo...GG..\n.......Oo.......\n.......Oo.......\n.......Oo.......\n.......Oo.......\n.......Oo.......\n................\n","l0:#800 l1:#c22 l2:#f44 l3:#f88\n................\n................\n................\n................\n.#.....#........\n.#.....#.....#..\n.HH....HH....#..\n.H...#.H..#..HH.\n.HH..#.HH.#...H.\n...#.HH...HH.HH.\n...#.H....H.....\n..HH.HH...HH....\n...H............\n..HH............\n................\n................\n",
"l0:#744 l1:#b44 l2:#e66 l3:#f77\n................\n................\n................\n.+..............\n.++....+........\n.OO....++....+..\n.O.....OO....++.\n.OO..+.O..+..OO.\n.....++OO.++..O.\n...+.OO...OO.OO.\n..++.O....O.....\n..OO.OO...OO....\n...O............\n..OO............\n................\n................\n"),ge=rd("\n................\n................\n................\n................\n................\n....Oo..........\n....oo..........\n................\n................\n...........Oo...\n...Oo......oo...\n...oo...........\n................\n................\n................\n................\n",
"l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n.x..............\n..x........xxx..\n...xxx...xx.....\n.....xxx0.......\n.....xx00.......\n......xx0.......\n......x00.......\n......xx0.......\n......x00.......\n......x00.......\n.....xx000......\n.....xx000......\n................\n","l0:#600 l1:#822 l2:#a55 l3:#faa\n....h...|.......\n...h|..hh.......\n...h|..h||......\n.x.||..h||......\n.xx.....|..xxx..\n..xxxx...xx.x.hh\n..h..xxx0...h.h|\n.hh|.xx00..h|..|\n.h||..xx0..h||..\n.h||..x00..h||..\n..|...xx0...|...\n......x00.......\n......x00.......\n.....xx000......\n.....xx000......\n................\n",
"l0:#800 l1:#c22 l2:#f44 l3:#f88\n................\n...........#....\n..........###...\n......#....#....\n.....###........\n......#.......#.\n...#.........###\n..###.....#...#.\n...#.....###....\n..........#.....\n................\n................\n................\n................\n................\n................\n","l0:#744 l1:#b44 l2:#e66 l3:#f77\n................\n..#........#....\n.###......###...\n..#...#....#....\n.....###........\n......#.......#.\n...#.........###\n..###.....#...#.\n...#...#.###....\n......###.#.....\n.......#........\n................\n.##........#x#..\n.xx#.......#x#..\n.##.........#...\n................\n"),
he=rd("\n................\n................\n................\n................\n................\n................\n................\n........xo......\n........oo......\n...xo...........\n...oo...........\n..........xo....\n..........oo....\n................\n................\n................\n","l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n................\n................\n................\n...hh....H......\n..HHh....h......\n...HH|..H|......\n....H|.Hh|......\n....HH|.||......\n.....h|.|.......\n.....h.h|.......\n......hh........\n......hh........\n......hh........\n",
"l0:#600 l1:#822 l2:#a55 l3:#faa\n..........HH....\n...H..h.HHhhhhh.\n....HhHhh.h.hh..\n.H.hh.|hh....h|.\n..h.|.OoohHH...|\nHHhh.Ooo.Hhhhh..\n.h...Oo...hhh...\nhhh.Ooo....Hhh|.\n|.|.Oo....H.hh..\n....Oo.......h|.\n....Oo..........\n....Oo..........\n....Ooo.........\n.....Oo.........\n.....Ooo........\n....OOoox.......\n","\n................\n..........Y.....\n.........YYY....\n.........YYY....\n...Y......Y.....\n..YYY..Y........\n..YYY.YYY.......\n.. Y..YYY.......\n.......Y........\n................\n................\n................\n................\n................\n................\n................\n",
"\n................\n..........x.....\n.........xxx....\n.........xx0....\n...x......0.....\n..xxx..x........\n..xx0.xxx.......\n...0..xx0.......\n.......0........\n................\n................\n................\n................\n................\n................\n................\n"),ie=rd("\n................\n................\n................\n................\n................\n....Oo..........\n....oo..........\n................\n................\n...........Oo...\n...Oo......oo...\n...oo...........\n................\n................\n................\n................\n",
"l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n................\n................\n...........GGg..\n...GG....GgGgG..\n.GGgG....GgGg.Gg\nGGGGgG....ggGggG\n..ggggg...gGgGGG\nGGGGgG.G.Ggggggg\n.GGgG...G...GGGG\n...GG...G....GG.\n........G.......\n........G.......\n................\n","l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n..........G.G...\n.........Gg.gG..\n....GG...GgGgG..\n...GgG....GgGG..\n...GgG..[.[.GGG.\n.GG.gG..[[..GggG\nGgggg...[..[gG..\nGGGG.[..[.[.GggG\n......[.[[..GGG.\n.......[[....G..\n........[.......\n........[.......\n.......[[[......\n................\n................\n",
"\n................\n................\n................\n........]E......\n......]EEE......\n......EE........\n................\n...........]E...\n......]E...EE...\n....]EEE..]E....\n....EE....EE....\n......]E....]E..\n......EE....EE..\n................\n................\n................\n","\n................\n................\n................\n........$S......\n......$SSS......\n......SS........\n................\n...........$S...\n......$S...SS...\n....$SSS..$S....\n....SS....SS....\n......$S....$S..\n......SS....SS..\n................\n................\n................\n"),
je=rd("\n................\n................\n................\n................\n................\n................\n................\n........xo......\n........oo......\n...xo...........\n...oo...........\n..........xo....\n..........oo....\n................\n................\n................\n","l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n................\n................\n.......h...Hh...\n.....HEh..ehh...\n....HhE..ee.....\n......E..e......\n....HhE..eHh....\n.....h.E.eh.....\n.......Ee.......\n.......Ee.......\n.......Ee.......\n......EEee......\n................\n",
"l0:#600 l1:#822 l2:#a55 l3:#faa\n........h..H....\n....H..hhhH.hhh.\n....H...hhHOhhh.\n.hhOhhh.HhHOhh..\n.hhOHhhhHHOOH...\n...hOhhhHHOH.hh.\n..H.hh.HHOHH.hh.\n..HhhhHH.HH..hhH\n.hhhh.OHOH..HhhH\n.hh.hHHHH.Hhh...\n....hh.HHH.hhh..\n....hh.HH...hh..\n.......Oo.......\n.......Oo.......\n......OOoo......\n................\n","\n................\n................\n................\n.ZY.....ZY......\n.YYZY...YY......\n...YY.ZY..ZY....\n......YY..YY....\n................\n...Y............\n..ZYY.....Y.....\n..Y.ZY...ZYZY...\n.....Y...Y.YY...\n.........Y......\n................\n................\n................\n",
"\n................\n................\n................\n.Ss.....Ss......\n.ssSs...ss......\n...ss.Ss..Ss....\n......ss..ss....\n................\n...s............\n..Sss.....s.....\n..s.Ss...SsSs...\n.....s...s.ss...\n.........s......\n................\n................\n................\n"),le=rd("\n................\n................\n................\n................\n................\n....Oo..........\n....oo..........\n................\n................\n...........Oo...\n...Oo......oo...\n...oo...........\n................\n................\n................\n................\n",
"l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n................\n................\n.........T......\n.....tt.Tts.....\n....sstt..s.....\n.....st.ssT.....\n....Tts.sTt.....\n.....ttsxtt.....\n......tsx.......\n.......sx.......\n.......sx.......\n.......sx.......\n................\n","l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n...........tt...\n..T......Tttt...\n.Tt........sT...\n...sTt...T.stt..\n...sttt.Ttst....\n.Tt.sstt..s.t...\n..tt.st.ssT.....\n...tTts.sTt.....\n.....ttsxtt.....\n......tsx.......\n.......sx.......\n.......sx.......\n......ssxx......\n................\n",
"\n................\n................\n................\n................\n................\n................\n................\n................\n.].S.......S]...\n..S........]S]..\n.]S]........S...\n..S.]......]S]..\n.]S]........S...\n..]S.......].]..\n....]...........\n................\n","\n................\n................\n................\n................\n................\n................\n................\n............LL..\nLL.S.......SLh..\nLhS.........S...\n..SLL.....LLSLL.\nLLSLh.....LhSLh.\nLhS.........S...\n...SLL....LL.LL.\n....Lh....Lh.Lh.\n................\n"),
me=rd("\n................\n................\n................\n................\n................\n................\n................\n........xo......\n........oo......\n...xo...........\n...oo...........\n..........xo....\n..........oo....\n................\n................\n................\n","l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n................\n................\n................\n................\n................\n..l.............\n..l..l....l.....\n...l.l....l.l...\n....l.....lll...\n.....l.....l....\n................\n................\n................\n",
"l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n................\n................\n..........HHl...\nHHl.HHll..l||.Hl\nHl|.ll|......ll|\n..ll.....HHlll..\nHH.l.Hll.llllHH.\nl|.lll|.....lll|\n....l......ll...\n.....l.....l....\n................\n................\n................\n","\n................\n................\n................\n................\n................\n................\n................\n................\n................\n................\n................\n..YY..........YY\nYYzz....YY....zY\nYY...YY.YYYY.YY.\n...YzYY...Yz.YY.\n...YY...........\n",
"\n................\n................\n................\n................\n................\n................\n................\n................\n................\n................\n................\n..OO..........OO\nOOxx....OO....xO\nOO...OO.OOOO.OO.\n...OxOO...Ox.OO.\n...OO...........\n"),ne=rd("\n................\n................\n................\n................\n................\n....Oo..........\n....oo..........\n................\n................\n...........Oo...\n...Oo......oo...\n...oo...........\n................\n................\n................\n................\n",
"l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n................\n................\n................\n................\n.........HHh....\n....HH...xhh....\n....hhx.xx......\n......xxx.......\n.......x........\n.......x........\n......xxx.......\n................\n................\n","l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n......Hh........\n..HH...hhHHh....\n...hhhxx.Hhhh.h.\n...hx..xx..xhh..\n..hh.xx.xxxx....\n..HH..xx0...xHh.\n...Hxx.x0.xxxhh.\n...hhxxx0xH.....\n...hh..x0.Hhhh..\n.......x0.hhh...\n.......x0.......\n.......x0.......\n......xx00......\n................\n",
"\n................\n................\n....yyyy........\n...yyzyyy.......\n..yyz..yy.......\n........y.......\n...........yyyy.\n..........yz.yz.\n..........yz..z.\n...yyyyy..yz....\n..yyz.yyz.......\n..yyz..zz.......\n...z............\n................\n................\n................\n","\n................\n................\n....oooo........\n...ooxooo.......\n..oox..ox.......\n........x.......\n...........oooo.\n..........ox.ox.\n..........ox..x.\n...ooooo..ox....\n..oox.oox.......\n..oox..xx.......\n...x............\n................\n................\n................\n"),
oe=rd("\n................\n................\n................\n................\n................\n................\n................\n........xo......\n........oo......\n...xo...........\n...oo...........\n..........xo....\n..........oo....\n................\n................\n................\n","l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n................\n................\n................\n................\n....#...#.......\n....##.##.e.....\n......ee.e.##...\n......#.e...#...\n......#.e.......\n........e.......\n........e.......\n........e.......\n................\n",
"l0:#600 l1:#822 l2:#a55 l3:#faa\n.........##.....\n........##......\n.......##H......\n...##..#H.......\n..####e....e##..\n..#H..e...e.##H.\n..H...e...e..##H\n....##.e..e...##\n...##..e.e.#....\n..##H...e..#H...\n..#H....e..##H..\n........e...##..\n........e.......\n........e.......\n........e.......\n................\n","\n............Gg..\n............Gg..\n............gg..\n............g...\n.......Gg.......\n.......Gg.......\n...GGg.gg.......\n...Gg...........\n...gg..G..Gg....\n......Gg..Gg....\n......gg..gg....\n......g.........\n................\n................\n................\n................\n",
"\n............kk..\n............k[..\n............[[..\n............[...\n.......kk.......\n.......k[.......\n...kk[.[[.......\n...k[...........\n...[[..[..k[....\n......k[..k[....\n......k[..[[....\n......[.........\n................\n................\n................\n................\n"),pe=rd("\n................\n................\n................\n................\n................\n....Oo..........\n....oo..........\n................\n................\n...........Oo...\n...Oo......oo...\n...oo...........\n................\n................\n................\n................\n",
"l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n................\n.....O..........\n......O...O.....\n.......OoO......\n...OO..oO.......\n.....OOOo.......\n.......oO.OO....\n.......OoO......\n.......oO.......\n.......Oo.......\n.......oO.......\n.......Oo.......\n.......oO.......\n","l0:#600 l1:#822 l2:#a55 l3:#faa\n........G.......\n........t.......\n.......tG.......\n......GttGG.....\n.....ttGt.tG....\n......OtO.O.t...\n..G.GttOGO......\n...OOtGtGGGt....\n..G..OOGott.....\n....tGGoOGOOG...\n....tGttoOGt....\n...tGt.oOtGG....\n.GG.G.tOt.tGG...\n..tt...oO..ttG..\n.......Oo.......\n.......oO.......\n",
"\n................\n................\n................\n..........L.....\n.........LKL....\n.........KLK....\n.........LKL....\n..........L.....\n................\n................\n...........L....\n....L.....LKL...\n...LKL....KLK...\n...KLK....LKL...\n...LKL.....L....\n....L...........\n","\n................\n................\n................\n..........x.....\n.........xox....\n.........oxo....\n.........xox....\n..........x.....\n................\n................\n...........x....\n....x.....xox...\n...xox....oxo...\n...oxo....xox...\n...xox.....x....\n....x...........\n"),
qe=rd("\n................\n................\n................\n................\n................\n................\n................\n........xo......\n........oo......\n...xo...........\n...oo...........\n..........xo....\n..........oo....\n................\n................\n................\n","l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n...........o....\n..ooooo...o.x...\n.o....oo....x...\n.o.....ox..x....\n..x..o.oxxx.....\n....o..ox.......\n.oo..ooox.o..x..\no..x...oxo....x.\no.....oox..oox..\n.o...o.oxoo..x..\n..ooo..ox.....x.\n.o.....ox.....x.\n..x....ox...xx..\n.......ox.......\n................\n",
"l0:#600 l1:#822 l2:#a55 l3:#faa\nh...............\n.h......hh.o....\n..ooooo...o.xhh.\n.o....oo....x...\n.o..h..ox..x....\nh.x..o.oxxx...h.\nh...o..ox..h..h.\n.oo..ooox.o..x..\no..x...oxo....x.\no.....oox..oox..\n.o...o.oxoo..x..\n..ooo..ox.....x.\n.o.....ox.hh..x.\n..x....ox...xx..\n...hh..ox.......\n................\n","\n................\n................\n...X..........X.\n..X.X....X...X.X\n..}.}...X.X..}.}\n........}.}.....\n................\n................\n...X........X...\n..X.X......X.X..\n..}.}......}.}..\n................\n................\n................\n................\n................\n",
"\n................\n................\n...X..........X.\n..X.X....X...X.X\n..y.y...X.X..y.y\n........y.y.....\n................\n................\n...X........X...\n..X.X......X.X..\n..y.y......y.y..\n................\n................\n................\n................\n................\n"),re=rd("\n................\n................\n................\n................\n................\n....Oo..........\n....oo..........\n................\n................\n...........Oo...\n...Oo......oo...\n...oo...........\n................\n................\n................\n................\n",
"l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n................\n................\n................\n................\n................\n................\n................\n..........L.....\n.....Lo..x......\n......ooxx......\n.......ox.......\n.......ox.......\n.......ox.......\n","l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n....h.hh.|......\n.hHh.hHhhhh|h|..\n.hhhhh.hh.ho.h..\nhH.hHHhh|hhhhh|.\nHhhohhhhhhhh||h.\n.hHhhhhh|hhhh|..\nHHhhohhoh|o||h|.\nhhhh.hhohhhhh.h.\nhHh.hh|h|hhhoh|.\nHhHHh.hox..h|h.h\n.oHhhh.ox..|h|h.\n.......ox....o..\n.......ox.......\n......ooxx......\n",
"\n................\n................\n...........##...\n.....#X....#X...\n.....##.........\n..........X#....\n..........##....\n................\n...X#.........#X\n...##.........##\n..........##....\n......##..##....\n......#X........\n................\n................\n................\n","\n................\n................\n...........OO...\n.....OX....OX...\n.....OO.........\n..........XO....\n..........OO....\n................\n...XO.........OX\n...OO.........OO\n..........OO....\n......OO..OO....\n......OX........\n...........X....\n..OX......OXO...\n..OO.......O....\n"),
se=qd("\n................\n................\n................\n................\n................\n................\n................\n................\n.....g.....g....\n.......g........\n....g...........\n..........g.....\n.....g.g........\n..........g.....\n................\n................\n","l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n................\n................\n................\n................\n................\n................\n.......|........\n.......|........\n.....|.t.|......\n....|||t|||.....\n.....|.t.|......\n.......t........\n................\n",
"l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n................\n................\n.......t........\n.....|.t.|......\n....|||t|||.....\n.....|.t.|......\n.......t........\n.......t........\n....|..t..|.....\n...||||t||||....\n....||.t.||.....\n.......t........\n................\n","l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n.....h.t.h......\n....h|||h||.....\n.....|.|.|......\n.......t........\n....hh.t..hh....\n...h|||thh|||...\n.....|.t.||.....\n.......t........\n.......t........\n...hh..t..hhh...\n..h||||thh||||..\n...|||.t.||||...\n.......t........\n................\n",
"l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n....hh.|.hh.....\n...h||||h|||....\n....||Z|Z||.....\n.....Z.t.Z......\n...hhh.t..hhh...\n..h||||thh||||..\n....||ZtZ|||....\n.....Z.t.Z......\n..hhh..t.hhhhh..\n.h|||||th||||||.\n..||||ZtZ.|||...\n.....Z.t.Z......\n.....Z.t.Z......\n................\n"),te=qd("\n................\n................\n................\n................\n................\n................\n................\n................\n.....g.....g....\n.......g........\n....g...........\n..........g.....\n.....g.g........\n..........g.....\n................\n................\n",
"l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n................\n................\n................\n................\n................\n................\n................\n................\n.......T........\n.....T.T.t......\n......Ttt.......\n.......t........\n................\n","l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n................\n................\n................\n................\n........T.......\n........Tt......\n.......T........\n......Tt........\n........TT......\n........T..T....\n.....t.T..Tt....\n......TTTT......\n................\n",
"l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n........m.......\n........T.......\n......TT........\n.......T........\n........T.T.....\n........TT......\n.....t.T........\n......TT........\n........TT......\n.....T..T..TT...\n...TTt.T..TT....\n....t.TTTT......\n................\n","l0:#600 l1:#822 l2:#a55 l3:#faa\n........m.......\n.......mMm......\n.......UTt......\n.......UTt......\n........T.......\n......TT..U.T...\n.......T.TTTTt..\n...U.T..T.T.t...\n..UTTTt.TT......\n...T.t.T........\n......TT........\n........TT..T...\n.U.U.T..T..TTTt.\n.UTTTt.T..TT.t..\n..T.t.TTTT......\n................\n"),
ue=qd("l0:#600 l1:#822 l2:#a55 l3:#faa hl:#af0 hh:#4f0\n................\n................\n................\n................\n................\n..OOO..OOOO.....\n.OOoo..Oooo.....\n.Oooo..Xoo.OOO..\n....X..X...OOoo.\n....X..O..XXooo.\n.....XOOOXX.....\n.OOO.XOooX......\nOOooXXX.XXOOOO..\nOooo......OOoo..\n................\n................\n","l0:#600 l1:#822 l2:#a55 l3:#faa hl:#af0 hh:#4f0\n................\n................\n................\n................\n................\n..EEE..EEEE.....\n.EEee..Eeee.....\n.Eeee..]ee.EEE..\n....]..]...EEee.\n....]..E..]]eee.\n.....]EEE]].....\n.EEE.]Eee]......\nEEee]]].]]EEEE..\nEeee......EEee..\n................\n................\n",
"l0:#600 l1:#822 l2:#a55 l3:#faa hl:#af0 hh:#4f0\n................\n................\n................\n................\n................\n..YYY..YYYY.....\n.YYyy..Yyyy.....\n.Yyyy..Zyy.YYY..\n....Z..Z...YYyy.\n....Z..Y..ZZyyy.\n.....ZYYYZZ.....\n.YYY.ZYyyZ......\nYYyyZZZ.ZZYYYY..\nYyyy......YYyy..\n................\n................\n","l0:#600 l1:#822 l2:#a55 l3:#faa hl:#af0 hh:#4f0\n................\n................\n................\n................\n................\n..LLL..LLLL.....\n.LLll..Llll.....\n.Llll..Kll.LLL..\n....K..K...LLll.\n....K..L..KKlll.\n.....KLLLKK.....\n.LLL.KLllK......\nLLllKKK.KKLLLL..\nLlll......LLll..\n................\n................\n",
"l0:#600 l1:#822 l2:#a55 l3:#faa hl:#af0 hh:#4f0\n................\n................\n................\n................\n................\n..HHH..HHHH.....\n.HHhh..Hhhh.....\n.Hhhh..#hh.HHH..\n....#..#...HHhh.\n....#..H..##hhh.\n.....#HHH##.....\n.HHH.#Hhh#......\nHHhh###.##HHHH..\nHhhh......HHhh..\n................\n................\n"),ve=J("aa:#fff6\n................\n................\n................\n................\n................\n..OOO..OOOO.....\n.OOoo..Oooo.....\n.Oooo..Xoo.OOO..\n....X..X...OOoo.\n....X..O..XXooo.\n.....XOOOXX.....\n.OOO.XOooX......\nOOooXXX.XXOOOO..\nOooo......OOoo..\n................\n................\n"),
we=J("aa:#fff4\n................\n................\n................\n................\n................\n..OOO..OOOO.....\n.OOoo..Oooo.....\n.Oooo..Xoo.OOO..\n....X..X...OOoo.\n....X..O..XXooo.\n.....XOOOXX.....\n.OOO.XOooX......\nOOooXXX.XXOOOO..\nOooo......OOoo..\n................\n................\n"),xe=J("l0:#600 l1:#822 l2:#a55 l3:#faa hl:#af0 hh:#4f0 aa:#f00a\n................\n................\n................\n................\n................\n..SSS..SSSS.....\n.SSss..Ssss.....\n.Ssss..$ss.SSS..\n....$..$...SSss.\n....$..S..$$sss.\n.....$SSS$$.....\n.SSS.$Sss$......\nSSss$$$.$$SSSS..\nSsss......SSss..\n................\n................\n"),
Ae=qd("l0:#600 l1:#822 l2:#a55 l3:#faa hl:#af0 hh:#4f0\n................\n............oOOo\n..OoOoO....OOooO\n..oOoOoo...OOoOO\n..OOXXOO..XXXOoo\n..OO.X...XX..OO.\n.....XX.X.......\n.......X89.OO...\n...OOO.X98.OOO..\n..ooOoX.XXXOoo..\n..OOoOO..OOoOO..\n..OooOO.OOoooo..\n..oOOoO.OOoOoO..\n..OoOO...oOOo...\n................\n................\n","l0:#600 l1:#822 l2:#a55 l3:#faa hl:#af0 hh:#4f0\n................\n............eEEe\n..EeEeE....EEeeE\n..eEeEee...EEeEE\n..EE]]EE..]]]Eee\n..EE.]...]]..EE.\n.....]].].......\n.......]89.EE...\n...EEE.]98.EEE..\n..eeEe].]]]Eee..\n..EEeEE..EEeEE..\n..EeeEE.EEeeee..\n..eEEeE.EEeEeE..\n..EeEE...eEEe...\n................\n................\n",
"l0:#600 l1:#822 l2:#a55 l3:#faa hl:#af0 hh:#4f0\n................\n............yYYy\n..YyYyY....YYyyY\n..yYyYyy...YYyYY\n..YYZZYY..ZZZYyy\n..YY.Z...ZZ..YY.\n.....ZZ.Z.......\n.......Z89.YY...\n...YYY.Z98.YYY..\n..yyYyZ.ZZZYyy..\n..YYyYY..YYyYY..\n..YyyYY.YYyyyy..\n..yYYyY.YYyYyY..\n..YyYY...yYYy...\n................\n................\n","l0:#600 l1:#822 l2:#a55 l3:#faa hl:#af0 hh:#4f0\n................\n............lLLl\n..LlLlL....LLllL\n..lLlLll...LLlLL\n..LLKKLL..KKKLll\n..LL.K...KK..LL.\n.....KK.K.......\n.......K89.LL...\n...LLL.K98.LLL..\n..llLlK.KKKLll..\n..LLlLL..LLlLL..\n..LllLL.LLllll..\n..lLLlL.LLlLlL..\n..LlLL...lLLl...\n................\n................\n",
"l0:#600 l1:#822 l2:#a55 l3:#faa hl:#af0 hh:#4f0\n................\n............hHHh\n..HhHhH....HHhhH\n..hHhHhh...HHhHH\n..HH##HH..###Hhh\n..HH.#...##..HH.\n.....##.#.......\n.......#89.HH...\n...HHH.#98.HHH..\n..hhHh#.###Hhh..\n..HHhHH..HHhHH..\n..HhhHH.HHhhhh..\n..hHHhH.HHhHhH..\n..HhHH...hHHh...\n................\n................\n"),Be=J("aa:#fff6\n................\n............oOOo\n..OoOoO....OOooO\n..oOoOoo...OOoOO\n..OOXXOO..XXXOoo\n..OO.X...XX..OO.\n.....XX.X.......\n.......X89.OO...\n...OOO.X98.OOO..\n..ooOoX.XXXOoo..\n..OOoOO..OOoOO..\n..OooOO.OOoooo..\n..oOOoO.OOoOoO..\n..OoOO...oOOo...\n................\n................\n"),
Ce=J("l0:#600 l1:#822 l2:#a55 l3:#faa hl:#af0 hh:#4f0 aa:#f00a\n................\n............sSSs\n..SsSsS....SSssS\n..sSsSss...SSsSS\n..SS$$SS..$$$Sss\n..SS.$...$$..SS.\n.....$$.$.......\n.......$89.SS...\n...SSS.$98.SSS..\n..ssSs$.$$$Sss..\n..SSsSS..SSsSS..\n..SssSS.SSssss..\n..sSSsS.SSsSsS..\n..SsSS...sSSs...\n................\n................\n"),De=qd("\n................\n................\n................\n................\n................\n................\n................\n........N.......\n..N........N....\n....N.........N.\n................\n........N.......\nN...........N...\n....N...........\n.........N......\n................\n",
"l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n................\n................\n................\n................\n........HH|.....\n.....HhHhh|.....\n....HhhHhh|.....\n...HhhhHh||.....\n...Hhh|H|.......\n...Hhh|.........\n....h|..........\n................\n................\n","l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n................\n................\n................\n..........HH....\n........HHhhh...\n...HHHhhHhhhh|..\n..Hhhh9hhhhhh|..\n.Hhhhh99hhhh|...\n.Hhhhh|Hhhh|....\n.Hhhhh|.........\n..hhh|..........\n................\n................\n",
"l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n................\n................\n......Z.........\n.....9Z9..HH....\n.....9Z9HHhhh...\n...hh9Z9hhhhh|..\n..Hhh9Z9hhhhh|..\n.HhhhhZ7hhhh|...\n.Hhhhhhhhhh|....\n.Hhhhh|.........\n..hhh|..........\n................\n................\n","l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n................\n.......9........\n......999..9....\n...99.9Z9.97....\n...999ZZZ987h...\n...98998Z877h|..\n..H987888877h|..\n.Hhh9888877h|...\n.Hhhh8888hh|....\n.Hhhhhh.........\n..hhhh..........\n................\n................\n"),
Ee=qd("\n................\n................\n................\n................\n................\n................\n................\n............J...\n.....J..........\n................\n....J...J.......\n.J..........J...\n.....J..........\n.........J......\n................\n................\n","l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n................\n................\n................\n................\n........HH|.....\n.....HhHhh|.....\n....Hhh}hh|.....\n...HhhhHh||.....\n...Hhh|H|.......\n...Hhh|.........\n....h|..........\n................\n................\n",
"l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n................\n................\n................\n..........HH....\n........HHhhh...\n...HHHhhHhhhh|..\n..Hhhh}hhhhhh|..\n.Hhhhh}}hhhh|...\n.Hhhhh|Hhhh|....\n.Hhhhh|.........\n..hhh|..........\n................\n................\n","l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n................\n................\n......Z.........\n.....}Z}..HH....\n.....}Z}HHhhh...\n...hh}Z}hhhhh|..\n..Hhh}Z}hhhhh|..\n.HhhhhZFhhhh|...\n.Hhhhhhhhhh|....\n.Hhhhh|.........\n..hhh|..........\n................\n................\n",
"l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n................\n.......}........\n......}}}..}....\n...}}.}Z}.}f....\n...}}}ZZZ}Ffh...\n...}F}}FZFffh|..\n..H}FfFFFFffh|..\n.Hhh}FFFFffh|...\n.HhhhFFFFhh|....\n.Hhhhhh.........\n..hhhh..........\n................\n................\n"),Fe=qd("\n................\n................\n................\n................\n................\n................\n................\n........N.......\n..N........N....\n....N.........N.\n................\n........N.......\nN...........N...\n....N...........\n.........N......\n................\n",
"l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n................\n................\n................\n................\n........HH|.....\n.....HhHhh|.....\n....HhhAhh|.....\n...HhhhHh||.....\n...Hhh|H|.......\n...Hhh|.........\n....h|..........\n................\n................\n","l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n................\n................\n................\n..........HH....\n........HHhhh...\n...HHHhhHhhhh|..\n..HhhhAhhhhhh|..\n.HhhhhAAhhhh|...\n.Hhhhh|Hhhh|....\n.Hhhhh|.........\n..hhh|..........\n................\n................\n",
"l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n................\n................\n......9.........\n.....A9A..HH....\n.....A9AHHhhh...\n...hhA9Ahhhhh|..\n..HhhA9Ahhhhh|..\n.Hhhhh9ahhhh|...\n.Hhhhhhhhhh|....\n.Hhhhh|.........\n..hhh|..........\n................\n................\n","l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n................\n.......A........\n......AAA..A....\n...AA.A9A.Aa....\n...AAA999Aaah...\n...AaAAa9aaah|..\n..HAaaaaaaaah|..\n.HhhAaaaaaah|...\n.Hhhhaaaahh|....\n.Hhhhhh.........\n..hhhh..........\n................\n................\n"),
Ge=qd("\n................\n................\n................\n................\n................\n................\n................\n............J...\n.....J..........\n................\n....J...J.......\n.J..........J...\n.....J..........\n.........J......\n................\n................\n","l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n................\n................\n................\n................\n........HH|.....\n.....HhHhh|.....\n....Hhh0hh|.....\n...HhhhHh||.....\n...Hhh|H|.......\n...Hhh|.........\n....h|..........\n................\n................\n",
"l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n................\n................\n................\n..........HH....\n........HHhhh...\n...HHHhhHhhhh|..\n..Hhhh0hhhhhh|..\n.Hhhhh00hhhh|...\n.Hhhhh|Hhhh|....\n.Hhhhh|.........\n..hhh|..........\n................\n................\n","l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n................\n................\n......9.........\n.....393..HH....\n.....390HHhhh...\n...hh090hhhhh|..\n..Hhh090hhhhh|..\n.Hhhhh90hhhh|...\n.Hhhhhhhhhh|....\n.Hhhhh|.........\n..hhh|..........\n................\n................\n",
"l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n................\n.......3........\n......333..3....\n...33.393.30....\n...333999300h...\n...303309000h|..\n..H300000000h|..\n.Hhh3000000h|...\n.Hhhh0000hh|....\n.Hhhhhh.........\n..hhhh..........\n................\n................\n"),He=qd("\n................\n................\n................\n................\n................\n................\n................\n............J...\n.....J..........\n................\n....J...J.......\n.J..........J...\n.....J..........\n.........J......\n................\n................\n",
"l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n................\n................\n................\n................\n........HH|.....\n.....HhHhh|.....\n....Hhh]hh|.....\n...HhhhHh||.....\n...Hhh|H|.......\n...Hhh|.........\n....h|..........\n................\n................\n","l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n................\n................\n................\n..........HH....\n........HHhhh...\n...HHHhhHhhhh|..\n..Hhhh]hhhhhh|..\n.Hhhhh]]hhhh|...\n.Hhhhh|Hhhh|....\n.Hhhhh|.........\n..hhh|..........\n................\n................\n",
"l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n................\n................\n......9.........\n.....]9]..HH....\n.....]9EHHhhh...\n...hhE9Ehhhhh|..\n..HhhE9Ehhhhh|..\n.Hhhhh9Ehhhh|...\n.Hhhhhhhhhh|....\n.Hhhhh|.........\n..hhh|..........\n................\n................\n","l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n................\n.......]........\n......]]]..]....\n...]].]9].]E....\n...]]]999]Eeh...\n...]E]]E9EEeh|..\n..H]EEEEEEeeh|..\n.Hhh]EEEEeeh|...\n.HhhhEeeehh|....\n.Hhhhhh.........\n..hhhh..........\n................\n................\n"),
Ie=qd("\n................\n................\n................\n................\n................\n................\n................\n........N.......\n..N........N....\n....N.........N.\n................\n........N.......\nN...........N...\n....N...........\n.........N......\n................\n","l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n................\n................\n................\n................\n........YYz.....\n.....YyGyyz.....\n....YyGGGyz.....\n...YyyyGyzz.....\n...YyyzYz.......\n...Yyyz.........\n....yz..........\n................\n................\n",
"l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n................\n................\n................\n..........YY....\n........YYyyy...\n...YYYyyYyyyyz..\n..YyyyGyyyyyyz..\n.YyyyGGGyyyyz...\n.YyyyyzYyyyz....\n.Yyyyyz.........\n..yyyz..........\n................\n................\n","l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n................\n................\n......Q.........\n.....GQG..YY....\n.....GQGYYyyy...\n...yyGQGyyyyyz..\n..YyyGQGyyyyyz..\n.YyyyyQgyyyyz...\n.Yyyyyyyyyyz....\n.Yyyyyz.........\n..yyyz..........\n................\n................\n",
"l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n................\n.......G........\n......GGG..G....\n...GG.GQG.Gg....\n...GGGQQQGggy...\n...GgGGgQgggyz..\n..YGggggggggyz..\n.YyyGggggggyz...\n.Yyyyggggyyz....\n.Yyyyyy.........\n..yyyy..........\n................\n................\n"),Je=qd("\n................\n................\n................\n................\n................\n................\n....0...........\n.........0......\n................\n....0.....0.....\n................\n..0....0..0.....\n.............0..\n......0.........\n................\n................\n",
"l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n......ooo.......\n...o.oo.ooxxo...\n..ooo...oxo..x..\n..o.oooox.x..x..\n.oo..o.x.x..x...\n.o...ox..x..x...\n.oo.oxoo.x.x....\n...oox...xxx....\n.....x..x.x.....\n.....x...x......\n......xxx.......\n................\n................\n","l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n.....oo.........\n....o..oo.......\n....o...ooxxxx..\n....o....x...ox.\n.....o.oxo....x.\n..oo.oox.o....x.\n...ooo.ooo..xx..\n..ooo...ox.x....\n..o.o..xxo.x....\n..oooo.x.xxxx...\n...oo.....x.xx..\n....o..xxxx..xx.\n.....oo.....xx..\n.......xoxxx....\n................\n",
"l0:#600 l1:#822 l2:#a55 l3:#faa\n.......#........\n.....oo#H.......\n....o..HH....##.\n....o...oooox#H.\n...#o....##..HH.\n..#H.o.ox#H.##x.\n..HH.oox.xH.#Hx.\n..#ooo.oxo..xx..\n.#Hoo...xo.x.x..\n.HH.o..xxo.x.x..\n..ooo##x.oxxox..\n.#Hoo#H...x#xx#.\n.HH.oHHxxx#H.#H.\n....ooo...HHxH..\n.......xxxxx....\n................\n","l0:#600 l1:#822 l2:#a55 l3:#faa\n.......#........\n.....#o#H.##....\n....#H.HH.#H.##.\n....HH..ooHHo#H.\n...#o....##..HH.\n..#H.o##o#H.##x.\n..HH.o#H.oH.#Hx.\n..#ooo#ox#..ox..\n.#Hoo...#HHx.x#.\n.HH.o..#Ho.x.x#H\n..ooo##HHooxoHHH\n.#Hoo#H...x#xx#.\n.HH.oHHxxx#H.#H.\n....ooo##.HHxH..\n.......#Hxxx....\n.......HH.......\n"),
Ke=qd("l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n................\n................\n................\n................\n....o0o.9797....\n...o.oo77979....\n......oXOXO.....\n.....o.oo.......\n....eeEEEee.....\n....EEeeeEE.....\n......EEEE......\n................\n................\n","l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n....o0o.9797....\n...o.oo77979....\n......oXOXO.....\n.....o.oo.......\n....EeEeEeE.....\n....eEEEeEE.....\n....eEEEeEE.....\n...eEeEeEeE.....\n...EEEeEEE......\n...EEEeEE.......\n....EeEe........\n................\n................\n",
"l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n.......Oox......\n.......XOo......\n......Oooxx.....\n......XOOOo.....\n.....OOooxxx....\n.....XXOOOoo....\n......Oooxx.....\n......XOOOo.....\n.......oox......\n.......XOo......\n................\n................\n................\n","l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n.......XOo......\n......Oooox.....\n......XOOOo.....\n.....Oooooxx....\n.....XOOOOOo....\n....OOooooxxx...\n....XXOOOOOoo...\n.....Oooooxx....\n.....XOOOOOo....\n......oooox.....\n......XOOOo.....\n.......Oox......\n................\n................\n",
"l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n.......XOo......\n......XXOoo.....\n.....OOoooxx....\n.....XXOOOoo....\n....OOooooxxx...\n....XXOOOOOoo...\n...OOOooooxxxx..\n...XXXOOOOOooo..\n....OOooooxxx...\n....XXOx0xOoo...\n.....Oo000xx....\n.....XXx0xoo....\n......OOoxx.....\n.......XOo......\n................\n"),Le=qd("l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n................\n................\n................\n................\n................\n................\n................\n................\n................\n................\n...ox......ox...\n...ox......ox...\n................\n",
"l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n................\n................\n................\n................\n................\n................\n..OOOOOOOOOOOo..\n..OOOOxxxxOOOo..\n..OOOOOOOOOOOo..\n..oooooooooooo..\n...ox......ox...\n...ox......ox...\n................\n","l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n................\n................\n................\n..ooooooooooox..\n..ooooooooooox..\n..xxxxxxxxxxxx..\n..OOOOOOOOOOOo..\n..OOOOxxxxOOOo..\n..OOOOOOOOOOOo..\n..oooooooooooo..\n...ox......ox...\n...ox......ox...\n................\n",
"l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n................\n................\n..ooooooooooox..\n..ooooxxxxooox..\n..ooooooooooox..\n..xxxxxxxxxxxx..\n..OOOOOOOOOOOo..\n..OOOOxxxxOOOo..\n..OOOOOOOOOOOo..\n..oooooooooooo..\n...ox......ox...\n...ox......ox...\n................\n","l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n.OOOOOOOOOOOOOo.\n.OOOOOxxxxOOOOo.\n.OOOOOOOOOOOOOo.\n.oooooooooooooo.\n..ooooooooooox..\n..ooooxxxxooox..\n..ooooooooooox..\n..xxxxxxxxxxxx..\n..OOOOOOOOOOOo..\n..OOOOxxxxOOOo..\n..OOOOOOOOOOOo..\n..oooooooooooo..\n...ox......ox...\n...ox......ox...\n................\n"),
Me=qd("l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n................\n.....zzz........\n....zYYYz.......\n...zYYYYYzzz....\n....zYYYzYYYz...\n.....zzzYYYYYz..\n....zYYYzYYYz...\n...zYYYYYzzz....\n....zYYYz.......\n.....zzz........\n................\n................\n................\n","l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n................\n.....zzz........\n....zYYYz.......\n...zYYYYYzzz....\n....zYYYzYYYz...\n.....zzzYYYYYz..\n....zY90zYYYz...\n...zY999Yzzz....\n....zY9Yz.......\n.....zzz........\n................\n................\n................\n",
"l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n................\n.....zzz........\n....zYYYz.......\n...zYYYYYzzz....\n....zYYYzYYYz...\n.....zzzYYYYYz..\n....z998zYYYz...\n...z99887zzz....\n....z987z.......\n.....zzz........\n................\n................\n................\n","l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n....E...E.......\n....EzzzE.......\n....EYYYE.......\n...zY0E0Yzzz....\n....z0E0zYYYz...\n.....EEEYYYYYz..\n....z8E8zYYYz...\n...z98]888zz....\n...889E989......\n...98zzz88......\n................\n................\n................\n",
"l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n................\n................\n................\n....797..ee0e...\n...797777ee0.e..\n.....]E]eeee....\n....E]E]E.......\n...]E]eeee......\n...]EeEee.e.....\n.....e..e.e.....\n................\n................\n................\n"),Ne=qd("l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n........zzz.....\n.......zYYYz....\n....zzzYYYYYz...\n...zYYYzYYYz....\n..zYYYYYzzz.....\n...zYYYzYYYz....\n....zzzYYYYYz...\n...zYYYzYYYz....\n..zYYYYYzzz.....\n...zYYYz........\n....zzz.........\n................\n................\n",
"l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n........zzz.....\n.......zYYYz....\n....zzzYYYYYz...\n...zY90zYYYz....\n..zY999Yzzz.....\n...zY9YzYYYz....\n....zzzYYYYYz...\n...zYYYzYYYz....\n..zYYYYYzzz.....\n...zYYYz........\n....zzz.........\n................\n................\n","l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n........zzz.....\n.......zYYYz....\n....zzzYYYYYz...\n...zYYYzYYYz....\n..zYYYYYzzz.....\n...zYYYz998z....\n....zzz99987z...\n...zYYYz987z....\n..zYYYYYzzz.....\n...zYYYz........\n....zzz.........\n................\n................\n",
"l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n.......z...z....\n.......zzzzz....\n.......zYYYz....\n....zzz00z00z...\n...zYYY00z00....\n..zYYYYYzzz.....\n...zYYYz8z8z....\n....zz888Z89z...\n...zYY989z988...\n..zYYY88zzz89...\n...zYYYz........\n....zzz.........\n................\n................\n","l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n.....[...[......\n......[.[.......\n...[.00[00.[....\n...[.00[00.[....\n....[.eee.[.....\n.....[]]][......\n...[[eeeee[[....\n..[..[]]][..[...\n....[8eee8[.....\n...[.8]]]8.[....\n...[.88]88.[....\n......8.8.......\n................\n"),
Oe=qd("l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n........[[[.....\n.......[EEE[....\n....[[[EEEEE[...\n...[EEE[EEE[....\n..[EEEEE[[[.....\n...[EEE[EEE[....\n....[[[EEEEE[...\n...[EEE[EEE[....\n..[EEEEE[[[.....\n...[EEE[EEE[....\n....[[[EEEEE[...\n.......[EEE[....\n........[[[.....\n................\n","l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n........[[[.....\n.......[EEE[....\n....[[[EEEEE[...\n...[EEE[EEE[....\n..[EEEEE[[[.....\n...[EEE[E90[....\n....[[[E999E[...\n...[EEE[E9E[....\n..[EEEEE[[[.....\n...[EEE[EEE[....\n....[[[EEEEE[...\n.......[EEE[....\n........[[[.....\n................\n",
"l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n........[[[.....\n.......[EEE[....\n....[[[EEEEE[...\n...[EEE[EEE[....\n..[EEEEE[[[.....\n...[EEE[998[....\n....[[[99987[...\n...[EEE[987[....\n..[EEEEE[[[.....\n...[EEE[EEE[....\n....[[[EEEEE[...\n.......[EEE[....\n........[[[.....\n................\n","l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n.......o...o....\n.......o[[[o....\n.......oEEEo....\n....[[[E0O0E[...\n...[EEE[0O0[....\n..[EEEEEOOO.....\n...[EEE[8O8[....\n....[[888X89[...\n...[EE989O988...\n..[EEE88[[[89...\n...[EEE[EEE[....\n....[[[EEEEE[...\n.......[EEE[....\n........[[[.....\n................\n",
"l0:#600 l1:#822 l2:#a55 l3:#faa +:#fff8a4 -:#fff400 *:#f4f000\n................\n................\n................\n....+.*.........\n....+-*.........\n....+-*.........\n..oo0oo..79797..\n.o..0oo7777977..\n....ooooXOX.....\n.......OXOXO....\n......ooooXOX...\n.....o.ooOoOXO..\n....o..o..o.....\n.......o..o.....\n................\n................\n"),Pe=qd("\n................\n................\n................\n................\n................\n................\n................\n........N.......\n..N........N....\n....N.........N.\n................\n........N.......\nN...........N...\n....N...........\n.........N......\n................\n",
"l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n................\n................\n................\n................\n................\n................\n................\n.......h........\n.......h........\n.......h........\n......Hh|.......\n.......h........\n................\n","l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n................\n................\n................\n.......h........\n......Hh|.......\n......Hh|.......\n.......h........\n.......h........\n.......h........\n.....H.h.|......\n......Hh|.......\n......Hh|.......\n.......h........\n................\n",
"l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n.......W........\n......VWV.......\n.....hVWVh......\n.....hVVVh......\n.....hhVhh......\n......hhh.......\n.......h........\n.......h........\n.......h........\n.....H.h.|......\n......Hh|.......\n......Hh|.......\n.......h........\n................\n","l0:#600 l1:#822 l2:#a55 l3:#faa\n................\n................\n.....WVWW.......\n....VWWVWWVW....\n...WWVWXWVW.....\n...WVWX$$WVVW...\n..WWWVW$WVWWV...\n....VWWVWWV.....\n....WW.WVV......\n.......h........\n.......h........\n.....H.h.|......\n......Hh|.......\n......Hh|.......\n.......h........\n................\n"),
Re=qd("\n................\n................\n................\n................\n................\n................\n................\n................\n.....g.....g....\n.......g........\n....g...........\n..........g.....\n.....g.g........\n..........g.....\n................\n................\n","hg:#f004\n................\n...........G....\n........Gg.g....\n......G..GgggG..\n.....GgGGGg.....\n......GggggggG..\n.......GGgGGGgG.\n.....GGG.gG.....\n...GGgggggggGG..\n..GggGGGg.GGggG.\n...GG.G.g.G.GG..\n...GGGggggGGG...\n..GGggGg..ggGG..\n.GggGGGg..GGggG.\n..GGG..g....GG..\n................\n",
"hg:#f008\n................\n...........G....\n........Gg.g....\n......G..GgggG..\n.....GgGGGg.....\n......GggggggG..\n.......GGgGGGgG.\n.....GGG.gG.....\n...GGgggggggGG..\n..GggGGGg.GGggG.\n...GG.G.g.G.GG..\n...GGGggggGGG...\n..GGggGg..ggGG..\n.GggGGGg..GGggG.\n..GGG..g....GG..\n................\n","hg:#f00c\n................\n...........G....\n........Gg.g....\n......G..GgggG..\n.....GgGGGg.....\n......GggggggG..\n.......GGgGGGgG.\n.....GGG.gG.....\n...GGgggggggGG..\n..GggGGGg.GGggG.\n...GG.G.g.G.GG..\n...GGGggggGGG...\n..GGggGg..ggGG..\n.GggGGGg..GGggG.\n..GGG..g....GG..\n................\n",
"hg:#f00f\n................\n...........G....\n........Gg.g....\n......G..GgggG..\n.....GgGGGg.....\n......GggggggG..\n.......GGgGGGgG.\n.....GGG.gG.....\n...GGgggggggGG..\n..GggGGGg.GGggG.\n...GG.G.g.G.GG..\n...GGGggggGGG...\n..GGggGg..ggGG..\n.GggGGGg..GGggG.\n..GGG..g....GG..\n................\n"),Se=qd("\n................\n................\n................\n................\n................\n................\n................\n................\n.....g.....g....\n.......g........\n....g...........\n..........g.....\n.....g.g........\n..........g.....\n................\n................\n",
"hg:#f804\n................\n...........G....\n........Gg.g....\n......G..GgggG..\n.....GgGGGg.....\n......GggggggG..\n.......GGgGGGgG.\n.....GGG.gG.....\n...GGgggggggGG..\n..GggGGGg.GGggG.\n...GG.G.g.G.GG..\n...GGGggggGGG...\n..GGggGg..ggGG..\n.GggGGGg..GGggG.\n..GGG..g....GG..\n................\n","hg:#f808\n................\n...........G....\n........Gg.g....\n......G..GgggG..\n.....GgGGGg.....\n......GggggggG..\n.......GGgGGGgG.\n.....GGG.gG.....\n...GGgggggggGG..\n..GggGGGg.GGggG.\n...GG.G.g.G.GG..\n...GGGggggGGG...\n..GGggGg..ggGG..\n.GggGGGg..GGggG.\n..GGG..g....GG..\n................\n",
"hg:#f80c\n................\n...........G....\n........Gg.g....\n......G..GgggG..\n.....GgGGGg.....\n......GggggggG..\n.......GGgGGGgG.\n.....GGG.gG.....\n...GGgggggggGG..\n..GggGGGg.GGggG.\n...GG.G.g.G.GG..\n...GGGggggGGG...\n..GGggGg..ggGG..\n.GggGGGg..GGggG.\n..GGG..g....GG..\n................\n","hg:#f80f\n................\n...........G....\n........Gg.g....\n......G..GgggG..\n.....GgGGGg.....\n......GggggggG..\n.......GGgGGGgG.\n.....GGG.gG.....\n...GGgggggggGG..\n..GggGGGg.GGggG.\n...GG.G.g.G.GG..\n...GGGggggGGG...\n..GGggGg..ggGG..\n.GggGGGg..GGggG.\n..GGG..g....GG..\n................\n"),
Te=qd("\n................\n................\n................\n................\n................\n................\n................\n................\n.....g.....g....\n.......g........\n....g...........\n..........g.....\n.....g.g........\n..........g.....\n................\n................\n","hg:#ff04\n................\n...........G....\n........Gg.g....\n......G..GgggG..\n.....GgGGGg.....\n......GggggggG..\n.......GGgGGGgG.\n.....GGG.gG.....\n...GGgggggggGG..\n..GggGGGg.GGggG.\n...GG.G.g.G.GG..\n...GGGggggGGG...\n..GGggGg..ggGG..\n.GggGGGg..GGggG.\n..GGG..g....GG..\n................\n",
"hg:#ff08\n................\n...........G....\n........Gg.g....\n......G..GgggG..\n.....GgGGGg.....\n......GggggggG..\n.......GGgGGGgG.\n.....GGG.gG.....\n...GGgggggggGG..\n..GggGGGg.GGggG.\n...GG.G.g.G.GG..\n...GGGggggGGG...\n..GGggGg..ggGG..\n.GggGGGg..GGggG.\n..GGG..g....GG..\n................\n","hg:#ff0c\n................\n...........G....\n........Gg.g....\n......G..GgggG..\n.....GgGGGg.....\n......GggggggG..\n.......GGgGGGgG.\n.....GGG.gG.....\n...GGgggggggGG..\n..GggGGGg.GGggG.\n...GG.G.g.G.GG..\n...GGGggggGGG...\n..GGggGg..ggGG..\n.GggGGGg..GGggG.\n..GGG..g....GG..\n................\n",
"hg:#ff0f\n................\n...........G....\n........Gg.g....\n......G..GgggG..\n.....GgGGGg.....\n......GggggggG..\n.......GGgGGGgG.\n.....GGG.gG.....\n...GGgggggggGG..\n..GggGGGg.GGggG.\n...GG.G.g.G.GG..\n...GGGggggGGG...\n..GGggGg..ggGG..\n.GggGGGg..GGggG.\n..GGG..g....GG..\n................\n"),Ue=qd("\n................\n................\n................\n................\n................\n................\n................\n................\n.....g.....g....\n.......g........\n....g...........\n..........g.....\n.....g.g........\n..........g.....\n................\n................\n",
"hg:#0f04\n................\n...........G....\n........Gg.g....\n......G..GgggG..\n.....GgGGGg.....\n......GggggggG..\n.......GGgGGGgG.\n.....GGG.gG.....\n...GGgggggggGG..\n..GggGGGg.GGggG.\n...GG.G.g.G.GG..\n...GGGggggGGG...\n..GGggGg..ggGG..\n.GggGGGg..GGggG.\n..GGG..g....GG..\n................\n","hg:#0f08\n................\n...........G....\n........Gg.g....\n......G..GgggG..\n.....GgGGGg.....\n......GggggggG..\n.......GGgGGGgG.\n.....GGG.gG.....\n...GGgggggggGG..\n..GggGGGg.GGggG.\n...GG.G.g.G.GG..\n...GGGggggGGG...\n..GGggGg..ggGG..\n.GggGGGg..GGggG.\n..GGG..g....GG..\n................\n",
"hg:#0f0c\n................\n...........G....\n........Gg.g....\n......G..GgggG..\n.....GgGGGg.....\n......GggggggG..\n.......GGgGGGgG.\n.....GGG.gG.....\n...GGgggggggGG..\n..GggGGGg.GGggG.\n...GG.G.g.G.GG..\n...GGGggggGGG...\n..GGggGg..ggGG..\n.GggGGGg..GGggG.\n..GGG..g....GG..\n................\n","hg:#0f0f\n................\n...........G....\n........Gg.g....\n......G..GgggG..\n.....GgGGGg.....\n......GggggggG..\n.......GGgGGGgG.\n.....GGG.gG.....\n...GGgggggggGG..\n..GggGGGg.GGggG.\n...GG.G.g.G.GG..\n...GGGggggGGG...\n..GGggGg..ggGG..\n.GggGGGg..GGggG.\n..GGG..g....GG..\n................\n"),
Ve=qd("\n................\n................\n................\n................\n................\n................\n................\n................\n.....g.....g....\n.......g........\n....g...........\n..........g.....\n.....g.g........\n..........g.....\n................\n................\n","hg:#0ff4\n................\n...........G....\n........Gg.g....\n......G..GgggG..\n.....GgGGGg.....\n......GggggggG..\n.......GGgGGGgG.\n.....GGG.gG.....\n...GGgggggggGG..\n..GggGGGg.GGggG.\n...GG.G.g.G.GG..\n...GGGggggGGG...\n..GGggGg..ggGG..\n.GggGGGg..GGggG.\n..GGG..g....GG..\n................\n",
"hg:#0ff8\n................\n...........G....\n........Gg.g....\n......G..GgggG..\n.....GgGGGg.....\n......GggggggG..\n.......GGgGGGgG.\n.....GGG.gG.....\n...GGgggggggGG..\n..GggGGGg.GGggG.\n...GG.G.g.G.GG..\n...GGGggggGGG...\n..GGggGg..ggGG..\n.GggGGGg..GGggG.\n..GGG..g....GG..\n................\n","hg:#0ffc\n................\n...........G....\n........Gg.g....\n......G..GgggG..\n.....GgGGGg.....\n......GggggggG..\n.......GGgGGGgG.\n.....GGG.gG.....\n...GGgggggggGG..\n..GggGGGg.GGggG.\n...GG.G.g.G.GG..\n...GGGggggGGG...\n..GGggGg..ggGG..\n.GggGGGg..GGggG.\n..GGG..g....GG..\n................\n",
"hg:#0fff\n................\n...........G....\n........Gg.g....\n......G..GgggG..\n.....GgGGGg.....\n......GggggggG..\n.......GGgGGGgG.\n.....GGG.gG.....\n...GGgggggggGG..\n..GggGGGg.GGggG.\n...GG.G.g.G.GG..\n...GGGggggGGG...\n..GGggGg..ggGG..\n.GggGGGg..GGggG.\n..GGG..g....GG..\n................\n"),We=qd("\n....++++........\n...++++++9......\n..+..999935.....\n..9..636o3o.....\n.....666ooo.....\n.66666oo544oo64.\n.644666o5o4o664.\n.64.66oo544oo64.\n.64.2626ooo4.64.\n.62.2266o4o4.64.\n.64266225444.64.\n.62266265444.64.\n....22625444....\n...2624..664....\n....664..664....\n....664..664....\n",
"\n....++++........\n...++++++9......\n..+..999935.....\n..9..636o3o.....\n.....666ooo.....\n.66666oo544oo64.\n.644666o5o4o664.\n.64.66oo544oo64.\n.64.2626ooo4.64.\n.62.2266o4o4.64.\n.64266225444.64.\n.62266265444.64.\n....22625444....\n...2624..664....\n....664..664....\n....664..664....\n","\n....++++........\n...++++++9......\n..+..999935.....\n..9..636o3o.....\n.....666ooo.....\n.66666oo544oo64.\n.644666o5o4o664.\n.64.66oo544oo64.\n.64.2626ooo4.64.\n.62.2266o4o4.64.\n.64266225444.64.\n.62266265444.64.\n....22625444....\n...2624..664....\n....664..664....\n....664..664....\n",
"\n....++++........\n...++++++9......\n..+..999935.....\n..9..636o3o.....\n.....666ooo.....\n.66666oo544oo64.\n.644666o5o4o664.\n.64.66oo544oo64.\n.64.2626ooo4.64.\n.62.2266o4o4.64.\n.64266225444.64.\n.62266265444.64.\n....22625444....\n...2624..664....\n....664..664....\n....664..664....\n","\n....++++........\n...++++++9......\n..+..999935.....\n..9..636o3o.....\n.....666ooo.....\n.66666oo544oo64.\n.644666o5o4o664.\n.64.66oo544oo64.\n.64.2626ooo4.64.\n.62.2266o4o4.64.\n.64266225444.64.\n.62266265444.64.\n....22625444....\n...2624..664....\n....664..664....\n....664..664....\n"),
Xe=qd("\n................\n................\n......9.........\n.....+..........\n....++..........\n...++++.....XO..\n..999999...XOoo.\n...ooo....XOoooo\n..oo0o...XOooooo\n..oooo...XOooooo\n....Xoo..XOo.oo.\n...ooooo.XOo....\n....XXooOOoo....\n.....XXoooo.....\n....oooo........\n................\n","\n................\n................\n......9.........\n.....+..........\n....++..........\n...++++.....XO..\n..999999...XOoo.\n...ooo....XOoooo\n..oo0o...XOooooo\n..oooo...XOooooo\n....Xoo..XOo.oo.\n...ooooo.XOo....\n....XXooOOoo....\n.....XXoooo.....\n....oooo........\n................\n",
"\n................\n................\n......9.........\n.....+..........\n....++..........\n...++++.....XO..\n..999999...XOoo.\n...ooo....XOoooo\n..oo0o...XOooooo\n..oooo...XOooooo\n....Xoo..XOo.oo.\n...ooooo.XOo....\n....XXooOOoo....\n.....XXoooo.....\n....oooo........\n................\n","\n................\n................\n......9.........\n.....+..........\n....++..........\n...++++.....XO..\n..999999...XOoo.\n...ooo....XOoooo\n..oo0o...XOooooo\n..oooo...XOooooo\n....Xoo..XOo.oo.\n...ooooo.XOo....\n....XXooOOoo....\n.....XXoooo.....\n....oooo........\n................\n",
"\n................\n................\n......9.........\n.....+..........\n....++..........\n...++++.....XO..\n..999999...XOoo.\n...ooo....XOoooo\n..oo0o...XOooooo\n..oooo...XOooooo\n....Xoo..XOo.oo.\n...ooooo.XOo....\n....XXooOOoo....\n.....XXoooo.....\n....oooo........\n................\n"),Ye="\nX:#f80 O:#b60 o:#840 x:#630\n.................hhh............\n...............hh||||...........\n..............hh|||||...........\n.............hh||||.............\n.............hhh||..........hhh.\n............hh|||||........hh||h\n.........OOOhhh||||........h|..|\n.......OOoXOhh||||||oXXo...hh|..\n......OooXOOohh||||oooXXox..h|..\n.....OooXXOooX||||OOoooXXox..h|.\n....OooXXOooXXOooXXOoooXXoox.h|.\n...OooXXXoooXXOoooXOOooXXXox.h|.\n...OooXXOoooXXXOooXXOOooXXox.h|.\n..OooXXXoooXXXXOoXXXXOooXXooxh|.\n..OooXXOooXXXXXOoXXXXOooXXooxh|.\n..OoXXXOooXXXXXOoXXXOOooXXooxh|.\n.OooXXXOooXXXXXOoXXXOooXXXoox|..\n.OooXXXOooXXXXXOoXXXOooXXXoox...\n.OooXXXOooXXXXXOoXXXOooXXXoox...\n.OooXXXOooXXXXXOooXXOooXXooox...\n..OoXXOoooXXXXOooXXOOooXXoox....\n..hOoXOoooXXXXOooXXOoooXoox.....\n.hh|OoXOooXXXXOooXXOoOOOOx.h|...\n.h|...OOoooOXXOooXXOO.....h|....\nhh|......h|............XOOhooo..\nhh|.....hh|...........XX0XXX0Oo.\nhhh|...hh||..........XX000X000o.\n..h|..h|||....hhhhh..XXOOXXXXOo.\n..h|..hh|||..hh|||hhhXXO0X0X0Oo.\n.hh|....hhhhh|||..|||XXXO0X0XOo.\n.|||..................XXOXXXOo..\n.......................XOOXOo...\n";
Ye=Ye.trim();var $e=Ye.split("\n"),af="";$e.length&1&&(af=$e[0]+"\n",$e.shift());for(var bf=[],cf=$e[0].length>>1,df=$e.length>>1,ef=0;2>ef;ef++)for(var ff=0;2>ff;ff++){bf[2*ef+ff]=af;for(var gf=0;gf<df;gf++){for(var hf=0;hf<cf;hf++)bf[2*ef+ff]+=$e[ef*df+gf][ff*cf+hf];bf[2*ef+ff]+="\n"}}var jf,kf="\nX:#f80 O:#b60 o:#840 x:#630\n.................hhh............\n...............hh||||...........\n..............hh|||||...........\n.............hh||||.............\n.............hhh||..........hhh.\n............hh|||||........hh||h\n.........OOOhhh||||........h|..|\n.......OOoXOhh||||||oXXo...hh|..\n......OooXOOohh||||oooXXox..h|..\n.....OooXXOooX||||OOoooXXox..h|.\n....OooXXOooXXOooXXOoooXXoox.h|.\n...OooXXXoooXXOoooXOOooXXXox.h|.\n...OooXXOoooXXXOooXXOOooXXox.h|.\n..OooXXXoooXXXXOoXXXXOooXXooxh|.\n..OooXXOooXXXXXOoXXXXOooXXooxh|.\n..OoXXXOooXXXXXOoXXXOOooXXooxh|.\n.OooXXXOooXXXXXOoXXXOooXXXoox|..\n.OooXXXOooXXXXXOoXXXOooXXXoox...\n.OooXXXOooXXXXXOoXXXOooXXXoox...\n.OooXXXOooXXXXXOooXXOooXXooox...\n..OoXXOoooXXXXOooXXOOooXXoox....\n..hOoXOoooXXXXOooXXOoooXoox.....\n.hh|OoXOooXXXXOooXXOoOOOOx.h|...\n.h|...OOoooOXXOooXXOO.....h|....\nhh|......h|............XOOhooo..\nhh|.....hh|...........XX0XXX0Oo.\nhhh|...hh||..........XX000X000o.\n..h|..h|||....hhhhh..XXOOXXXXOo.\n..h|..hh|||..hh|||hhhXXO0X0X0Oo.\n.hh|....hhhhh|||..|||XXXO0X0XOo.\n.|||..................XXOXXXOo..\n.......................XOOXOo...\n";
kf=kf.trim();var lf=kf.split("\n"),mf="";lf.length&1&&(mf=lf[0]+"\n",lf.shift());for(var nf=mf,of=lf[0].length>>1,pf=lf.length>>1,qf=0;qf<pf;qf++){for(var rf=0;rf<of;rf++){var sf=2*rf,tf=2*qf,uf=lf[tf][sf];if(" "==uf||"."==uf)uf=lf[tf][sf+1];if(" "==uf||"."==uf)uf=lf[tf+1][sf];if(" "==uf||"."==uf)uf=lf[tf+1][sf+1];nf+=uf}nf+="\n"}jf=nf;
var vf=qd(bf[0],bf[0],bf[0],bf[0],bf[0]),xf=qd(bf[1],bf[1],bf[1],bf[1],bf[1]),yf=qd(bf[2],bf[2],bf[2],bf[2],bf[2]),zf=qd(bf[3],bf[3],bf[3],bf[3],bf[3]),Af=qd(jf,jf,jf,jf,jf);Af=qd(jf,jf,jf,jf,jf);
var Bf=qd("\n.......00.......\n......0770......\n......07770.....\n......07770.....\n.....0777760....\n.....0777660....\n.....0777660....\n....077$6$660...\n....07$7$6$60...\n....077$6$660...\n...0777666650...\n...0676666550...\n....076665550...\n....066665550...\n.....0000000....\n................\n","\n.......00.......\n......0770......\n......07770.....\n......07770.....\n.....0777760....\n.....0777660....\n.....0777660....\n....077$6$660...\n....07$7$6$60...\n....077$6$660...\n...0777666650...\n...0676666550...\n....076665550...\n....066665550...\n.....0000000....\n................\n","\n.......00.......\n......0770......\n......07770.....\n......07770.....\n.....0777760....\n.....0777660....\n.....0777660....\n....077$6$660...\n....07$7$6$60...\n....077$6$660...\n...0777666650...\n...0676666550...\n....076665550...\n....066665550...\n.....0000000....\n................\n",
"\n.......00.......\n......0770......\n......07770.....\n......07770.....\n.....0777760....\n.....0777660....\n.....0777660....\n....077$6$660...\n....07$7$6$60...\n....077$6$660...\n...0777666650...\n...0676666550...\n....076665550...\n....066665550...\n.....0000000....\n................\n","\n.......00.......\n......0770......\n......07770.....\n......07770.....\n.....0777760....\n.....0777660....\n.....0777660....\n....077$6$660...\n....07$7$6$60...\n....077$6$660...\n...0777666650...\n...0676666550...\n....076665550...\n....066665550...\n.....0000000....\n................\n");
function Cf(a){var b=a[1],d=a[2];a=a[0];for(var e=[],f=0;f<d;f++){e[f]=[];for(var g=0;g<b;g++){var h=a[f][g],k=h[0],l=h[1],n=h[2];h=h[3];k=l=(k+l+n)/3;n=255;h*=.5;e[f][g]=[Math.floor(k),Math.floor(l),Math.floor(n),Math.floor(h)]}}return[e,b,d]}function Df(a){var b=a[1],d=a[2];a=a[0];for(var e=[],f=0;f<d;f++){e[f]=[];for(var g=0;g<b;g++){var h=a[f][g],k=h[0],l=h[1],n=h[2];h=h[3];l=k=n=128+(k+l+n)/6;h*=.75;e[f][g]=[Math.floor(k),Math.floor(l),Math.floor(n),Math.floor(h)]}}return[e,b,d]}
function Ef(a,b,d,e){for(var f=[],g=0;g<a.length;g++){var h=g,k=a[g][4],l=d,n=e,p=ac(b),m=[];m[0]=p["0"];m[1]=p.n;m[2]=p.m;m[3]=p.M;m[4]=p.N;m[5]=p["9"];p=k[1];var x=k[2];k=k[0];for(var t=[],y=0;y<x;y++){t[y]=[];for(var u=0;u<p;u++){var v=k[y][u],w=v[0],q=v[1],F=v[2];v=v[3];w=(.299*w+.587*q+.114*F)/255;q=1/12;w=w<q?2*w:w>1-q?1-2*(1-w):(w-q)/(1-2*q)*(1-4*q)+2*q;F=Math.min(m.length-1,Math.floor(w*m.length));var B=Math.min(m.length-1,F+1),K=w*m.length-F,N=1-K;w=m[F][0]*N+m[B][0]*K;q=m[F][1]*N+m[B][1]*
K;F=m[F][2]*N+m[B][2]*K;if(1==l||1==n)w*=.5,q*=.5,F*=.5;if(2==l||2==n)w=Math.min(1.35*w,255),q=Math.min(1.35*q,255),F=Math.min(1.35*F,255);if(3==l||3==n)B=1-(u+y)/(p+x-2),B=255*(B-.5),w=Math.min(Math.max(0,w+B),255),q=Math.min(Math.max(0,q+B),255),F=Math.min(Math.max(0,F+B),255);if(4==l||4==n)w=Wb([w,q,F]),w[1]=Math.min(2*w[1],255),F=Xb(w),w=F[0],q=F[1],F=F[2];t[y][u]=[w,q,F,v]}}f[h]=ec([t,p,x])}return f}
var Ff=ec(Cf(cc("\nX:#f80 O:#b60 o:#840 x:#630\n.................hhh............\n...............hh||||...........\n..............hh|||||...........\n.............hh||||.............\n.............hhh||..........hhh.\n............hh|||||........hh||h\n.........OOOhhh||||........h|..|\n.......OOoXOhh||||||oXXo...hh|..\n......OooXOOohh||||oooXXox..h|..\n.....OooXXOooX||||OOoooXXox..h|.\n....OooXXOooXXOooXXOoooXXoox.h|.\n...OooXXXoooXXOoooXOOooXXXox.h|.\n...OooXXOoooXXXOooXXOOooXXox.h|.\n..OooXXXoooXXXXOoXXXXOooXXooxh|.\n..OooXXOooXXXXXOoXXXXOooXXooxh|.\n..OoXXXOooXXXXXOoXXXOOooXXooxh|.\n.OooXXXOooXXXXXOoXXXOooXXXoox|..\n.OooXXXOooXXXXXOoXXXOooXXXoox...\n.OooXXXOooXXXXXOoXXXOooXXXoox...\n.OooXXXOooXXXXXOooXXOooXXooox...\n..OoXXOoooXXXXOooXXOOooXXoox....\n..hOoXOoooXXXXOooXXOoooXoox.....\n.hh|OoXOooXXXXOooXXOoOOOOx.h|...\n.h|...OOoooOXXOooXXOO.....h|....\nhh|......h|............XOOhooo..\nhh|.....hh|...........XX0XXX0Oo.\nhhh|...hh||..........XX000X000o.\n..h|..h|||....hhhhh..XXOOXXXXOo.\n..h|..hh|||..hh|||hhhXXO0X0X0Oo.\n.hh|....hhhhh|||..|||XXXO0X0XOo.\n.|||..................XXOXXXOo..\n.......................XOOXOo...\n"))),Gf=
ec(Cf(ue[4][4])),If=[Gf,Gf,Gf,Gf,Gf],Jf=ec(Df(ue[4][4])),Kf=[Jf,Jf,Jf,Jf,Jf],Lf=ec(Cf(td[4][4])),Mf=[Lf,Lf,Lf,Lf,Lf],Nf=ec(Df(td[4][4])),Of=[Nf,Nf,Nf,Nf,Nf],Pf=ec(Cf(Td[4][4])),Qf=[Pf,Pf,Pf,Pf,Pf],Rf=ec(Df(Td[4][4])),Sf=[Rf,Rf,Rf,Rf,Rf],Tf=ec(Cf(Ld[4][4])),Uf=[Tf,Tf,Tf,Tf,Tf],Vf=ec(Df(Ld[4][4])),Wf=[Vf,Vf,Vf,Vf,Vf],Xf=ec(Cf(se[4][4])),Yf=[Xf,Xf,Xf,Xf,Xf],Zf=ec(Df(se[4][4])),$f=[Zf,Zf,Zf,Zf,Zf],ag=ec(Cf(Ke[4][4])),bg=[ag,ag,ag,ag,ag],cg=ec(Df(Ke[4][4])),dg=[cg,cg,cg,cg,cg],eg=ec(Cf(Me[4][4])),fg=ec(Cf(Je[4][4])),
gg=[fg,fg,fg,fg,fg],hg=ec(Df(Je[4][4])),ig=[hg,hg,hg,hg,hg],jg=ec(Cf(De[4][4])),kg=[jg,jg,jg,jg,jg];ec(Df(De[4][4]));var lg=ec(Cf(Re[4][4])),mg=[lg,lg,lg,lg,lg];ec(Df(Re[4][4]));var ng=ec(Cf(We[4][4])),og=[ng,ng,ng,ng,ng];ec(Df(We[4][4]));var pg=ec(Cf(Xe[4][4])),ug=[pg,pg,pg,pg,pg];ec(Df(Xe[4][4]));
var vg=ec(Cf(ae[4][4])),wg=[vg,vg,vg,vg,vg],xg=ec(Df(ae[4][4])),yg=[xg,xg,xg,xg,xg],zg=ec(Cf(Af[4][4])),Ag=[zg,zg,zg,zg,zg],Bg=ec(Df(Af[4][4])),Cg=[Bg,Bg,Bg,Bg,Bg],Dg=ec(Cf(vf[4][4])),Eg=[Dg,Dg,Dg,Dg,Dg],Fg=ec(Df(vf[4][4])),Gg=[Fg,Fg,Fg,Fg,Fg],Hg=ec(Cf(xf[4][4])),Ig=[Hg,Hg,Hg,Hg,Hg],Jg=ec(Df(xf[4][4])),Kg=[Jg,Jg,Jg,Jg,Jg],Lg=ec(Cf(yf[4][4])),Mg=[Lg,Lg,Lg,Lg,Lg],Ng=ec(Df(yf[4][4])),Og=[Ng,Ng,Ng,Ng,Ng],Pg=ec(Cf(zf[4][4])),Qg=[Pg,Pg,Pg,Pg,Pg],Rg=ec(Df(zf[4][4])),Sg=[Rg,Rg,Rg,Rg,Rg];function Ug(a,b,d,e){var f=(e?" "+e:"")+"\n";e=J("q:#d8a g:#dac G:#ecd Q:#fde"+f+b.trim());var g=J("q:#151 g:#292 G:#4c4 Q:#5f4"+f+b.trim()),h=J("q:#f30 g:#f70 G:#fa0 Q:#fe0"+f+b.trim()),k=J("q:#77f g:#99f G:#bbf Q:#eef"+f+b.trim()),l=J("q:#bb8 g:#dda G:#ffa Q:#ffe"+f+b.trim()),n=J("q:#b00 g:#d00 G:#f00 Q:#f55"+f+b.trim());b=J("q:#666 g:#888 G:#aaa Q:#fff"+f+b.trim());var p=J("q:#d8a g:#dac G:#ecd Q:#fde"+f+d.trim()),m=J("q:#151 g:#292 G:#4c4 Q:#5f4"+f+d.trim()),x=J("q:#f30 g:#f70 G:#fa0 Q:#fe0"+
f+d.trim()),t=J("q:#77f g:#99f G:#bbf Q:#eef"+f+d.trim()),y=J("q:#bb8 g:#dda G:#ffa Q:#ffe"+f+d.trim()),u=J("q:#b00 g:#d00 G:#f00 Q:#f55"+f+d.trim());d=J("q:#666 g:#888 G:#aaa Q:#fff"+f+d.trim());return[a,[e,g,h,k,l,n,b],[p,m,x,t,y,u,d]]}
var Vg=[Ug("weathered tree","\n................\n................\n................\n................\n................\n................\n............x...\n....x.o..x..x...\n....x.ox.x0x....\n.o...x.x..x..0..\n.o..o.x..x0.0...\n..o.o.x.x.0.0...\n...o..x.x.00....\n....oox.x00.....\n.....ooxx0......\n.....ooxx0......\n","\n.....ooxx0......\n..G..o0xx0......\n.Gg..0o0x0......\n...o.o0xx0......\n....oooxx0......\n.....ooxx0......\n....oooxx00.....\n...ooxooxx00....\n..ooxxxooxx00...\n................\n................\n................\n................\n................\n................\n................\n",
void 0),Ug("young sprout","\n................\n................\n................\n................\n................\n................\n................\n................\n................\n....Q...Qg......\n...Qg...gq.Qg...\n....q...o..Qq...\n.....o.oo..xx...\n......oo..xx....\n......ooxx......\n.......ox.......\n","\n.......ox.......\n.......ox.......\n.......ox.......\n.......xo.......\n.......ox.......\n.......ox.......\n.......oo.......\n.......ox.......\n......ooxx......\n................\n................\n................\n................\n................\n................\n................\n",
void 0),Ug("young sprout","\n................\n................\n................\n................\n................\n................\n................\n................\n....Q...Qg......\n...Qgg..Qq.Qg...\n...Qqg..gq.Qgq..\n....q...o..Qq...\n.....o.oo..xx...\n......oo..xx....\n......ooxx......\n.......ox.......\n","\n.......ox.......\n.......ox.......\n.......ox.......\n.......xo.......\n.......ox.......\n.......ox.......\n.......oo.......\n.......ox.......\n......ooxx......\n................\n................\n................\n................\n................\n................\n................\n"),
Ug("young sprout","\n................\n................\n................\n................\n................\n................\n................\n................\n...QQ..QGg......\n..QGgq.QGq.QQg..\n..QGgq..qq.Qgq..\n....q...o..Qqq..\n.....o.oo..xx...\n......oo..xx....\n......ooxx......\n.......ox.......\n","\n.......ox.......\n.......ox.......\n.......ox.......\n.......xo.......\n.......ox.......\n.......ox.......\n.......oo.......\n.......ox.......\n......ooxx......\n................\n................\n................\n................\n................\n................\n................\n"),
Ug("young sprout","\n................\n................\n................\n................\n................\n................\n........Qg......\n...QQ..QGg..Qg..\n..QQgq.QGq.QGgq.\n..QGgq.QGq.QGgq.\n..QGgq..qq.Qgq..\n....q...o..Qqq..\n.....o.oo..xx...\n......oo..xx....\n......ooxx......\n.......ox.......\n","\n.......ox.......\n.......ox.......\n.......ox.......\n.......xo.......\n.......ox.......\n.......ox.......\n.......oo.......\n.......ox.......\n......ooxx......\n................\n................\n................\n................\n................\n................\n................\n"),
Ug("young tree","\n................\n................\n................\n................\n................\n...QG...........\n..QGg..QGg..QG..\n..Ggg..QGg..QG..\n...go.QGgg.QGGg.\n..QGg.QGgq.GGgq.\n..Ggq..gq..Ggq..\n....o..o...Gqq..\n....o..o...xx...\n.....ooo..xx....\n......ooxx......\n......oox.......\n","\n.......ox.......\n.......ox.......\n.......ox.......\n.......xo.......\n.......ox.......\n.......ox.......\n.......oo.......\n.......ox.......\n......ooxx......\n................\n................\n................\n................\n................\n................\n................\n"),
Ug("young tree","\n................\n................\n................\n................\n................\n...QG....G..Q...\n..QGgg.QGg..QG..\n..Gggg.QGg.QQGg.\n...go.QGgg.QGGg.\n..QGg.QGgq.GGgq.\n..Ggq..gq..Ggqq.\n....o..o...Gqq..\n....o..o...xx...\n.....ooo..xx....\n......ooxx......\n......oox.......\n","\n......oox.......\n......oox.......\n......oox.......\n......oxo.......\n......oox.......\n......oox.......\n......ooo.......\n......ooo.......\n......oox.......\n.....oooxx......\n................\n................\n................\n................\n................\n................\n"),
Ug("young tree","\n................\n................\n................\n................\n...QG...G.......\n..QGGg.QGg..QG..\n.QGGgg.QGGgQGGG.\n..GgGg.GGggQGGG.\n..Qgg.QGgg.QGqG.\n..QGgqQGgqQGggq.\n..Ggq..gq.QGgq..\n....o..o...Gqq..\n....o..o...xx...\n.....ooo..xx....\n......ooxx......\n......oox.......\n","\n......oox.......\n......oox.......\n......oox.......\n......oxo.......\n......oox.......\n......oox.......\n......ooo.......\n......ooo.......\n......oox.......\n.....oooxx......\n................\n................\n................\n................\n................\n................\n"),
Ug("young tree","\n................\n................\n................\n...QGg..........\n..QGGGg.QG......\n..GGGggQggG.GG..\n..QGGgQQGGgQGGg.\n.QGGgqQgGgqQGGg.\n..QGgqQGgqqQGgq.\n..Ggq..gqqGGgq..\n...oo..oo..Gqq..\n....oo.oo..xx...\n.....oooo.xx....\n......ooxxx.....\n......ooxx......\n......oox.......\n","\n......oox.......\n......oox.......\n......oox.......\n......oxo.......\n......oox.......\n......oox.......\n......ooo.......\n......ooo.......\n......oox.......\n.....oooxx......\n................\n................\n................\n................\n................\n................\n"),
Ug("young tree","\n................\n................\n................\n...QGG...GGG....\n..QGGGg.QgGGG...\n..GgGggQGGgQGG..\n.QGGGgQGgGgQGGg.\n.QGGgqQGGgqQGGq.\n..QGgqQGgqqQGgq.\n..Ggq..gqqGGgq..\n...oo..oo.GGqq..\n....oo.oo..xx...\n.....oooo.xx....\n......ooxxx.....\n......ooxx......\n......oox.......\n","\n......oox.......\n......oox.......\n......oox.......\n......oxo.......\n......oox.......\n......oox.......\n......ooo.......\n......ooo.......\n......oox.......\n.....oooxx......\n................\n................\n................\n................\n................\n................\n"),
Ug("adult tree","\n................\n................\n....QGQQQGQ.....\n...GGQgGQQGG....\n..QGQGgQGGGGG...\n.QGQGgQGQGgQGq..\n.QGGQgQQGGQGGqq.\n.GQGgQGgGgqQgGq.\n.QGQggQQgqqGqgq.\n..GQqqQgqqQGgq..\n...QgGgogGgqqq..\n....qo.oo.Ggx...\n.....oooo.xx....\n.....oooxxx.....\n......ooxx......\n......ooxx......\n","\n......ooxx......\n......ooxx......\n......ooox......\n......ooox......\n......ooox......\n......ooxx......\n......ooxx......\n......ooox......\n.....ooooxx.....\n....oooooxxx....\n................\n................\n................\n................\n................\n................\n"),
Ug("adult tree","\n................\n........Q.......\n....QGQQGQQQ....\n...QGQGGGGGgq...\n..QGQQGQQgqgqq..\n..QGgQQgGqgqqq..\n.GQQGgGGgGqqGQG.\n.GQGGqQGggqQGGq.\n.QQGgqQqGqqGGqg.\n.QGQgqqGqqQgqgq.\n..Ggqq.gqQGqgq..\n..ooo..oxqQgqq..\n...ooo.ox..xxx..\n....oooox.xxx...\n.....oooxxxx....\n......ooxxx.....\n","\n......ooxx......\n......ooxx......\n......ooox......\n......ooox......\n......ooox......\n......ooxx......\n......ooxx......\n......ooox......\n.....ooooxx.....\n....oooooxxx....\n................\n................\n................\n................\n................\n................\n"),
Ug("adult tree","\n................\n........G.......\n..QGQQQggQgQ....\n.QGQGgQGgGGgggq.\nQQQgQQGGQggggqg.\nGgQGQgQgGqQqGQG.\nQGGQgGGGgGqQGGgq\nQQgGGqgGggQGgGqq\nGGQGGgggGqqGGggq\nQggQggqGqqQGgqqq\n.GQQggqgqQGgqgqq\n.Qggq..oxqQGgqq.\n.Qqqqo.ox..xxq..\n....oooox.xxx...\n.....oooxxxx....\n......ooxxx.....\n","\n......ooxx......\n......ooxx......\n......ooox......\n......ooox......\n......ooox......\n......ooxx......\n......ooxx......\n......ooox......\n.....ooooxx.....\n....oooooxxx....\n................\n................\n................\n................\n................\n................\n"),
Ug("adult tree","\n................\n...GQ...G...Qg..\n..QQQQQggQgQggq.\n.QGgGQGGgGGgggq.\nQGQgQGGGQgggqqg.\nGQQGggQgGqQqQQG.\nQGGggQGGgGqQGGqq\nQQgQGqgGggQGgqgq\nQGQGQgggGqqQGgqq\nQQgGggqGqqQGqqgq\n.GGgggqgqQGqGgqq\n.Qggq..oxqQGqqq.\n.Qqqqo.ox..xxq..\n....oooQg.xxx...\n.....oogqxxx....\n......ooxxx.....\n","\n......ooxxx.....\n......ooxxx.....\n......ooxxx.....\n......xooxx.....\n......oxoxx.....\n......xooxx.....\n......ooxxx.....\n.....oooxxx.....\n....ooxooxxx....\n...ooxxxoxxxx...\n................\n................\n................\n................\n................\n................\n"),
Ug("large tree","\n................\n......QQQGG.....\n...QQQgGgQgQ.g..\n.QGQGQGGgGGQQgq.\nQQQGQGGGQggggqg.\nGgQGggQgGqQqQQq.\nQGGggQGGgGqQGggq\nGQgQGqgGggQGgGqq\nQGQGQgggGqqGGggq\nQQgGggqGqqQGqgqq\n.GGgggqgqQGgGqqq\n.Qggq.ox.qQGqqq.\n.Qqqq.ox.ox.xq..\n..oox.oQgqx.xx..\n...ooxQGgqxxx...\n....oooqqxxx....\n","\n.....oooxxx.....\n.....oooxxx.....\n.....oooxxx.....\n.....oxooxx.....\n.....xoxoxx.....\n.....oxooxx.....\n.....oooxxx.....\n....ooooxxx.....\n...oooxooxxx....\n..oooxxxoxxxx...\n................\n................\n................\n................\n................\n................\n"),
Ug("large tree","\n................\n...QG.QQQGG.Q...\n.QGGQQgGgQgGGgq.\n.QQQGgGGgGGgGgq.\nQQgQQGGGQggqgqg.\nGgQGggQgGqQqQQG.\nQQGggQGGgGqQGGqq\nQGgGGqgGggQGgGgq\nGQGGQgggGqQGGgqq\nQggGggqGqqQGqqgq\n.QGgggqgqQGGGgqq\n.Qggq.ox.qQqqqq.\n.Qqqq.ox.ox.xqG.\n.Qoox.oQgqx.xGg.\n.GGooxQGgqxxxggq\n....oooqqxxx..q.\n","\n.....oooxxx.....\n.....oooxxx.....\n.....oooxxx.....\n.....oxooxx.....\n.....xoxoxx.....\n.....oxooxx.....\n.....oooxxx.....\n....ooooxxx.....\n...oooxooxxx....\n..oooxxxoxxxx...\n................\n................\n................\n................\n................\n................\n"),
Ug("grand tree","\n................\n..QQQ..QQGGQQ...\n.QgQgQgGgQgQGG..\n.GqgQgGGgGGQGGq.\nQGQqqGGGQggggqq.\nGqQGggQgGqQqQQG.\nQQGggQGGgGqQGGqq\nQGgGGqgGggQGgGgq\nQQQGGQggGqqGGgqq\nQggGggqGqqQGgqqq\n.GGgggqgqQGGqgqq\n..ggq.ox.qQGgqq.\n..Qqq.ox.ox.QQ..\n.QGgx.oQgqxQQGq.\n..GgqxQGgqxxGGq.\n...qqooqqxxxgq..\n","\n..Q..oooxxx.....\n.QGg.oooxxx.....\n.Ggqooooxxx.....\n..q.ooxooxx.....\n.....xoxoxx.....\n.....oxooxx.....\n.....oooxxx.....\n....ooooxxx.....\n...oooxooxxx....\n..oooxxxoxxxx...\n................\n................\n................\n................\n................\n................\n"),
Ug("grand tree","\n................\n..QgQ.QQQGGQQ...\n.QgQQqgGgQgQGG..\n.QQgqgGGgGGQGGq.\n.QgQqGGGQggggqq.\nGqqGggQgGqQqQQG.\nQQGggQGGgGqQGGgq\nQQQGGqgGggQGgGgq\nQGGGQgggGqqGGgqq\nQQgGggqGqqQGgqgq\n.GGgggqgqQGGGqqq\n.Qggq.ox.qQqqqq.\n.QQqq.ox.ox.QGQ.\n.QGgx.oQgqxGQGG.\n..GgqxQGgqxxGGq.\n..qqqooqqxxxg...\n","\n.Q...oooxxx.....\nQGg..oooxxx.....\nGgqoooooxxx.....\n.q..ooxooxx.....\n.....xoxoxx.....\n.....oxooxx.....\n.....oooxxx.....\n....ooooxxx.....\n...oooxooxxx....\n..oooxxxoxxxx...\n................\n................\n................\n................\n................\n................\n"),
Ug("curly tree","\n................\n..QgQ.QQQGGQQ...\n.QgQgqgGgQgQGG..\n.QQgQQGGgGGQGGq.\n.QgQqGGGQggggqq.\nGqQGggQgGqQqQQG.\nQQGggQGGgGqQGGqq\nQGQGGqgGggQGgGgq\nQQGGQgggGqqGGqqq\nQggGggqGqqQGgqgq\n.QGgggqgqQGGqgqq\n.Qggq.ox.qQGqqq.\n.QQqq.ox.ox.QQQ.\n.QGgx.oQgqxQGgG.\n..GgqxQGgqxxgqq.\n..qqqooqqxxxq...\n","\n.Q...xoooxxx....\nQGg...xoooxx....\nGgqooxoooxx.....\n.q..ooooxx......\n.....xoooxx.....\n......xoooxx....\n.....xoooxxx....\n....ooooxxx.....\n...oooxooxxx....\n..oooxxxoxxxx...\n................\n................\n................\n................\n................\n................\n"),
Ug("curly tree","\n................\n..QgQ.QQQGGQQ...\n.QgQgqgGgQgQGG..\n.QQQQgGGgGGQGGq.\n.GgGqGGGQggggqq.\nGqQGggQgGqQqQQG.\nQQGQgQGGgGqQGGqq\nQQgGGqgGggQGgGqq\nQGGGQgggGqqGGggq\nQQgGggqGqqQGgqqq\n.GGgggqgqQGGqgqq\n.Qggq.ox.qQGqqq.\n.QQqq.ox.ox.QQG.\n.QGgx.oQgqxQgGg.\n..GgqxQGgqxxGgq.\n..qqqooqqxxxq...\n","\n.Q...xoooxxx....\nQGg...xoooxx..Q.\nGgqooxoooxx..Qgq\n.q..ooooxx...gq.\n.....xoooxx.xx..\n......xoooxxx...\n.....xoooxxx....\n....ooooxxx.....\n...oooxooxxx....\n..oooxxxoxxxx...\n................\n................\n................\n................\n................\n................\n"),
Ug("hollow tree","\n................\n..QgQ.QQQGGQQ...\n.QgQQqgGgQgQGG..\n.QQgqgGGgGGQGGq.\n.GgGqGGGQggggqq.\nGQQGggQgGqQqQQG.\nQGGggQGGgGqQGGgq\nQQgGGqgGggQGgGqq\nQQGGQgggGqqGGggq\nQggGggqGqqQGgqqq\n.GGgggqgqQGGGgqq\n.Qggq.ox.qQGqqq.\n.QQqq.ox.ox.QQQ.\n.QGgx.oQgqxQGGg.\n..GgqxQGgqxxGgq.\n..qqqooqqxxxq...\n","\n.Q...oooxxxx....\nQGg.oooxxxxxx...\nGgqooox..oxxx...\n.q..ox....oxx...\n...oox....oxx...\n...ooxx..oxx....\n....ooxooxx.....\n....ooooxxx.....\n...oooxooxxx....\n..oooxxxoxxxx...\n................\n................\n................\n................\n................\n................\n"),
Ug("hollow tree","\n................\n..QQg.QQQGGQQ...\n.QgGQqgGgQgQGG..\n.QqQqgGGgGGQGGq.\n.GgGqGGGQggggqq.\nGqQGggQgGqQqQQG.\nQQGggQGGgGqQGGgq\nQGgGGqgGggQGgGqq\nQQGGQgggGqqGGgqq\nQggGggqGqqQGgqgq\n.GGgggqgqQGGGgqq\n.Qggq.ox.qQqqqq.\n.QQqq.ox.ox.QQQ.\n.QGgx.oQgqxQQGq.\n..GgqxQGgqxxGqg.\n..qqqooqqxxxg...\n","\n.Q...oooxxxx....\nQGg..ooxxxox.Q..\n.Gg.oooxx.oxQGg.\n..ooooxx..ox.xg.\n...oooxx.oxxx...\n....ooxxxox.....\n....oooxxxx.....\n....oooooxx.....\n...oooxooxxx....\n..oooxxxoxxxx...\n................\n................\n................\n................\n................\n................\n"),
Ug("massive tree","\n................\n..QQg.QQQGGQQ...\n.QgGQqgGgQgQGG..\n.QQgqgGGgGGQGGq.\n.GQQqGGGQggggqq.\nGqQGggQgGqQqQQG.\nQQGggQGGgGqQGGgq\nQGgGGqgGggQGgGqq\nQGGGQgggGqqGGggq\nQggGggqGqqQGgqgq\n.GGgggqgqQGGGqqq\n.Qggq.ox.qQqgqq.\n.QQqq.ox.ox.QQQ.\n.QGgx.oQgqxQQGq.\n..GgqxQGgqxxGqg.\n..qqqooqqxxxq...\n","\n....Oooooxxx....\n.....Ooooxxx....\n.....Oooxxxx....\n.....Ooooxxx....\n....Ooooxoxx....\n....OOoxxoxx0...\n....Oooooxx00...\n...Oooooxxxx0...\n..Ooooxooxx000..\n.Ooooxxxoxxx000.\n................\n................\n................\n................\n................\n................\n"),
Ug("zinc tree","\n................\n.....Q...QQG....\n....QGG..QGGg...\n....QGgq.GGggq..\n..Q..gq..Xgqq...\n.QGG.OOoXOoqo...\n.GGgg.XOoQg..o..\nQGgqg.Oo.gq.o...\n.GGgq.Oo.oo.QG..\n.XqqqOoo.Oo.GGg.\n.XO..OoQGOoGggq.\n.QOo.QoGqOoQGggq\nQGGoQGGGgOo.qqx.\nQgqoGGggqOogox..\n.gXOQGgqooQgg...\n...XOqqOooggq...\n","\n....XXOOoox.....\n..... XOox......\n......XOox......\n......XOox......\n......XOox......\n......XOox......\n......XOox......\n......XOox......\n.....XXOoxx.....\n....XXOOoxxx....\n................\n................\n................\n................\n................\n................\n",
"ho:#999"),Ug("bronze tree","\n................\n.....Q...QQG....\n....QGG..QGGg...\n....QGgq.GGggq..\n..Q..gq..Xgqq...\n.QGG.OOoXOoqo...\n.GGgg.XOoQg..o..\nQGgqg.Oo.gq.o...\n.GGgq.Oo.oo.QG..\n.XqqqOoo.Oo.GGg.\n.XO..OoQGOoGggq.\n.QOo.QoGqOoQGggq\nQGGoQGGGgOo.qqx.\nQgqoGGggqOogox..\n.gXOQGgqooQgg...\n...XOqqOooggq...\n","\n....XXOOoox.....\n..... XOox......\n......XOox......\n......XOox......\n......XOox......\n......XOox......\n......XOox......\n......XOox......\n.....XXOoxx.....\n....XXOOoxxx....\n................\n................\n................\n................\n................\n................\n",
"ho:#f80"),Ug("silver tree","\n................\n.....Q...QQG....\n....QGG..QGGg...\n....QGgq.GGggq..\n..Q..gq..Xgqq...\n.QGG.OOoXOoqo...\n.GGgg.XOoQg..o..\nQGgqg.Oo.gq.o...\n.GGgq.Oo.oo.QG..\n.XqqqOoo.Oo.GGg.\n.XO..OoQGOoGggq.\n.QOo.QoGqOoQGggq\nQGGoQGGGgOo.qqx.\nQgqoGGggqOogox..\n.gXOQGgqooQgg...\n...XOqqOooggq...\n","\n....XXOOoox.....\n..... XOox......\n......XOox......\n......XOox......\n......XOox......\n......XOox......\n......XOox......\n......XOox......\n.....XXOoxx.....\n....XXOOoxxx....\n................\n................\n................\n................\n................\n................\n",
"ho:#fff"),Ug("electrum tree","\n................\n.....Q...QQG....\n....QGG..QGGg...\n....QGgq.GGggq..\n..Q..gq..Xgqq...\n.QGG.OOoXOoqo...\n.GGgg.XOoQg..o..\nQGgqg.Oo.gq.o...\n.GGgq.Oo.oo.QG..\n.XqqqOoo.Oo.GGg.\n.XO..OoQGOoGggq.\n.QOo.QoGqOoQGggq\nQGGoQGGGgOo.qqx.\nQgqoGGggqOogox..\n.gXOQGgqooQgg...\n...XOqqOooggq...\n","\n....XXOOoox.....\n..... XOox......\n......XOox......\n......XOox......\n......XOox......\n......XOox......\n......XOox......\n......XOox......\n.....XXOoxx.....\n....XXOOoxxx....\n................\n................\n................\n................\n................\n................\n",
"ho:#bf6"),Ug("gold tree","\n................\n.....Q...QQG....\n....QGG..QGGg...\n....QGgq.GGggq..\n..Q..gq..Xgqq...\n.QGG.OOoXOoqo...\n.GGgg.XOoQg..o..\nQGgqg.Oo.gq.o...\n.GGgq.Oo.oo.QG..\n.XqqqOoo.Oo.GGg.\n.XO..OoQGOoGggq.\n.QOo.QoGqOoQGggq\nQGGoQGGGgOo.qqx.\nQgqoGGggqOogox..\n.gXOQGgqooQgg...\n...XOqqOooggq...\n","\n....XXOOoox.....\n..... XOox......\n......XOox......\n......XOox......\n......XOox......\n......XOox......\n......XOox......\n......XOox......\n.....XXOoxx.....\n....XXOOoxxx....\n................\n................\n................\n................\n................\n................\n",
"ho:#ff0"),Ug("platinum tree","\n................\n.....Q...QQG....\n....QGG..QGGg...\n....QGgq.GGggq..\n..Q..gq..Xgqq...\n.QGG.OOoXOoqo...\n.GGgg.XOoQg..o..\nQGgqg.Oo.gq.o...\n.GGgq.Oo.oo.QG..\n.XqqqOoo.Oo.GGg.\n.XO..OoQGOoGggq.\n.QOo.QoGqOoQGggq\nQGGoQGGGgOo.qqx.\nQgqoGGggqOogox..\n.gXOQGgqooQgg...\n...XOqqOooggq...\n","\n....XXOOoox.....\n..... XOox......\n......XOox......\n......XOox......\n......XOox......\n......XOox......\n......XOox......\n......XOox......\n.....XXOoxx.....\n....XXOOoxxx....\n................\n................\n................\n................\n................\n................\n",
"X:#eee O:#ddd o:#ccc x:#bbb"),Ug("rhodium tree","\n................\n.....Q...QQG....\n....QGG..QGGg...\n....QGgq.GGggq..\n..Q..gq..Xgqq...\n.QGG.OOoXOoqo...\n.GGgg.XOoQg..o..\nQGgqg.Oo.gq.o...\n.GGgq.Oo.oo.QG..\n.XqqqOoo.Oo.GGg.\n.XO..OoQGOoGggq.\n.QOo.QoGqOoQGggq\nQGGoQGGGgOo.qqx.\nQgqoGGggqOogox..\n.gXOQGgqooQgg...\n...XOqqOooggq...\n","\n....XXOOoox.....\n..... XOox......\n......XOox......\n......XOox......\n......XOox......\n......XOox......\n......XOox......\n......XOox......\n.....XXOoxx.....\n....XXOOoxxx....\n................\n................\n................\n................\n................\n................\n",
"X:#fee O:#ecc o:#dbb x:#caa"),Ug("amethyst tree","\n................\n.....Q...QQG....\n....QGG..QGGg...\n....QGgq.GGggq..\n..Q..gq..Xgqq...\n.QGG.OOoXOoqo...\n.GGgg.XOoQg..o..\nQGgqg.Oo.gq.o...\n.GGgq.Oo.oo.QG..\n.XqqqOoo.Oo.GGg.\n.XO..OoQGOoGggq.\n.QOo.QoGqOoQGggq\nQGGoQGGGgOo.qqx.\nQgqoGGggqOogox..\n.gXOQGgqooQgg...\n...XOqqOooggq...\n","\n....XXOOoox.....\n..... XOox......\n......XOox......\n......XOox......\n......XOox......\n......XOox......\n......XOox......\n......XOox......\n.....XXOoxx.....\n....XXOOoxxx....\n................\n................\n................\n................\n................\n................\n",
"ho:#a5f"),Ug("sapphire tree","\n................\n.....Q...QQG....\n....QGG..QGGg...\n....QGgq.GGggq..\n..Q..gq..Xgqq...\n.QGG.OOoXOoqo...\n.GGgg.XOoQg..o..\nQGgqg.Oo.gq.o...\n.GGgq.Oo.oo.QG..\n.XqqqOoo.Oo.GGg.\n.XO..OoQGOoGggq.\n.QOo.QoGqOoQGggq\nQGGoQGGGgOo.qqx.\nQgqoGGggqOogox..\n.gXOQGgqooQgg...\n...XOqqOooggq...\n","\n....XXOOoox.....\n..... XOox......\n......XOox......\n......XOox......\n......XOox......\n......XOox......\n......XOox......\n......XOox......\n.....XXOoxx.....\n....XXOOoxxx....\n................\n................\n................\n................\n................\n................\n",
"ho:#00f"),Ug("emerald tree","\n................\n.....Q...QQG....\n....QGG..QGGg...\n....QGgq.GGggq..\n..Q..gq..Xgqq...\n.QGG.OOoXOoqo...\n.GGgg.XOoQg..o..\nQGgqg.Oo.gq.o...\n.GGgq.Oo.oo.QG..\n.XqqqOoo.Oo.GGg.\n.XO..OoQGOoGggq.\n.QOo.QoGqOoQGggq\nQGGoQGGGgOo.qqx.\nQgqoGGggqOogox..\n.gXOQGgqooQgg...\n...XOqqOooggq...\n","\n....XXOOoox.....\n..... XOox......\n......XOox......\n......XOox......\n......XOox......\n......XOox......\n......XOox......\n......XOox......\n.....XXOoxx.....\n....XXOOoxxx....\n................\n................\n................\n................\n................\n................\n",
"ho:#0c0"),Ug("ruby tree","\n................\n.....Q...QQG....\n....QGG..QGGg...\n....QGgq.GGggq..\n..Q..gq..Xgqq...\n.QGG.OOoXOoqo...\n.GGgg.XOoQg..o..\nQGgqg.Oo.gq.o...\n.GGgq.Oo.oo.QG..\n.XqqqOoo.Oo.GGg.\n.XO..OoQGOoGggq.\n.QOo.QoGqOoQGggq\nQGGoQGGGgOo.qqx.\nQgqoGGggqOogox..\n.gXOQGgqooQgg...\n...XOqqOooggq...\n","\n....XXOOoox.....\n..... XOox......\n......XOox......\n......XOox......\n......XOox......\n......XOox......\n......XOox......\n......XOox......\n.....XXOoxx.....\n....XXOOoxxx....\n................\n................\n................\n................\n................\n................\n",
"ho:#c00"),Ug("diamond tree","\n................\n.....Q...QQG....\n....QGG..QGGg...\n....QGgq.GGggq..\n..Q..gq..Xgqq...\n.QGG.OOoXOoqo...\n.GGgg.XOoQg..o..\nQGgqg.Oo.gq.o...\n.GGgq.Oo.oo.QG..\n.XqqqOoo.Oo.GGg.\n.XO..OoQGOoGggq.\n.QOo.QoGqOoQGggq\nQGGoQGGGgOo.qqx.\nQgqoGGggqOogox..\n.gXOQGgqooQgg...\n...XOqqOooggq...\n","\n....XXOOoox.....\n..... XOox......\n......XOox......\n......XOox......\n......XOox......\n......XOox......\n......XOox......\n......XOox......\n.....XXOoxx.....\n....XXOOoxxx....\n................\n................\n................\n................\n................\n................\n",
"X:#fff O:#eee o:#ddd x:#ccc"),Ug("magnificent tree","\n................\n......QQQGG.....\n...GQQgGgQgQ.g..\n.QQgGgGGgGGQQgq.\nQGgQQGGGQggggqg.\nQQQGggQgGqQqQQG.\nQQGggQGGgGqQGGqq\nQGgGGqgGggQGgGgq\nQQGGQgggGqqGGqqq\nQggGggqGqqQGgggq\n.GGgggqgqQGGqqqq\n.Qggq.ox.qQqgqq.\n.Qqqq.ox.ox.xq..\n..oox.oQgqx.xx..\n...ooxQGgqxxx...\n....oooqqxxx....\n","\n.Q...oooxxx.....\nQGg..oooxxx.....\nGgqoooooxxx.....\n.q..ooxooxx.....\n.....xoxoxx.....\n.....oxooxx.....\n.....oooxxx.....\n....ooooxxx.....\n...oooxooxxx....\n..oooxxxoxxxx...\n................\n................\n................\n................\n................\n................\n")],
Wg=J("\n........000.....\n.......0aaa00...\n..00000aAaAaa...\n.0aaaaaAaAaaaa..\n0aaaaaaaaaaaaA..\n0aAaAaaaaaaaAa..\n0AaAaaaAaAaaaa..\n0aaaaaAaAaAaa...\n.aaaaaaAaAaaa0..\n.aaaaaaaaaaaaA..\n0aaAaAaaaaaaAa0.\n0aAaAaaaAaAaaaa.\n.aaaaaaAaAaaaa..\n.....aaaa.......\n.....0aa........\n................\n"),Xg=ec(jc(zc[0][4],Wg[4]));var Yg="zinc bronze silver electrum gold platinum rhodium amethyst sapphire emerald ruby diamond".split(" "),Zg="#444 #840 #888 #af5 #ff0 #ddd #fdd #b6f #00f #0c4 #f00 #fff".split(" "),$g="#000 #420 #666 #7a3 #bb0 #aaa #a88 #95a #00a #092 #a00 #eee".split(" "),ah=[J("l0:#c22 l1:#d44 l2:#e66 l3:#f88 hm:#999\n................\n......rrr.......\n.....R...r......\n.....R...r......\n......R.r.......\n......R.r.......\n.......R........\n.......R........\n......NNN.......\n.....NMMMN......\n....NMMMmmn.....\n....NMMmmmn.....\n....NMmmmmn.....\n.....Nmmmn......\n......nnn.......\n................\n"),
J("l0:#c22 l1:#d44 l2:#e66 l3:#f88 hm:#c70\n................\n......rrr.......\n.....R...r......\n.....R...r......\n......R.r.......\n......R.r.......\n.......R........\n.......R........\n......NNN.......\n.....NMMMN......\n....NMMMmmn.....\n....NMMmmmn.....\n....NMmmmmn.....\n.....Nmmmn......\n......nnn.......\n................\n"),J("l0:#c22 l1:#d44 l2:#e66 l3:#f88 hm:#fff\n................\n......rrr.......\n.....R...r......\n.....R...r......\n......R.r.......\n......R.r.......\n.......R........\n.......R........\n......NNN.......\n.....NMMMN......\n....NMMMmmn.....\n....NMMmmmn.....\n....NMmmmmn.....\n.....Nmmmn......\n......nnn.......\n................\n"),
J("l0:#c22 l1:#d44 l2:#e66 l3:#f88 hm:#dfb\n................\n......rrr.......\n.....R...r......\n.....R...r......\n......R.r.......\n......R.r.......\n.......R........\n.......R........\n......NNN.......\n.....NMMMN......\n....NMMMmmn.....\n....NMMmmmn.....\n....NMmmmmn.....\n.....Nmmmn......\n......nnn.......\n................\n"),J("l0:#c22 l1:#d44 l2:#e66 l3:#f88 hm:#ff0\n................\n......rrr.......\n.....R...r......\n.....R...r......\n......R.r.......\n......R.r.......\n.......R........\n.......R........\n......NNN.......\n.....NMMMN......\n....NMMMmmn.....\n....NMMmmmn.....\n....NMmmmmn.....\n.....Nmmmn......\n......nnn.......\n................\n"),
J("l0:#c22 l1:#d44 l2:#e66 l3:#f88 N:#fff M:#eee m:#ddd n:#ccc\n................\n......rrr.......\n.....R...r......\n.....R...r......\n......R.r.......\n......R.r.......\n.......R........\n.......R........\n......NNN.......\n.....NMMMN......\n....NMMMmmn.....\n....NMMmmmn.....\n....NMmmmmn.....\n.....Nmmmn......\n......nnn.......\n................\n"),J("l0:#c22 l1:#d44 l2:#e66 l3:#f88 N:#fee M:#ecc m:#dbb n:#caa\n................\n......rrr.......\n.....R...r......\n.....R...r......\n......R.r.......\n......R.r.......\n.......R........\n.......R........\n......NNN.......\n.....NMMMN......\n....NMMMmmn.....\n....NMMmmmn.....\n....NMmmmmn.....\n.....Nmmmn......\n......nnn.......\n................\n"),
J("l0:#c22 l1:#d44 l2:#e66 l3:#f88 hm:#95f\n................\n......ggg.......\n.....G...g......\n.....G...g......\n......G.g.......\n......G.g.......\n.......G........\n.......G........\n......ZZZ.......\n.....ZZNZZ......\n....ZZNNmYY.....\n....ZNNMmmY.....\n....ZZmnnYY.....\n.....ZYnYY......\n......YYY.......\n................\n"),J("l0:#c22 l1:#d44 l2:#e66 l3:#f88 hm:#00f\n................\n......ggg.......\n.....G...g......\n.....G...g......\n......G.g.......\n......G.g.......\n.......G........\n.......G........\n......ZZZ.......\n.....ZZNZZ......\n....ZZNNmYY.....\n....ZNNMmmY.....\n....ZZmnnYY.....\n.....ZYnYY......\n......YYY.......\n................\n"),
J("l0:#c22 l1:#d44 l2:#e66 l3:#f88 hm:#0f0\n................\n......ggg.......\n.....G...g......\n.....G...g......\n......G.g.......\n......G.g.......\n.......G........\n.......G........\n......ZZZ.......\n.....ZZNZZ......\n....ZZNNmYY.....\n....ZNNMmmY.....\n....ZZmnnYY.....\n.....ZYnYY......\n......YYY.......\n................\n"),J("l0:#c22 l1:#d44 l2:#e66 l3:#f88 hm:#f00\n................\n......ggg.......\n.....G...g......\n.....G...g......\n......G.g.......\n......G.g.......\n.......G........\n.......G........\n......ZZZ.......\n.....ZZNZZ......\n....ZZNNmYY.....\n....ZNNMmmY.....\n....ZZmnnYY.....\n.....ZYnYY......\n......YYY.......\n................\n")],
bh=[J("l0:#8558 l1:#a778 l2:#c998 l3:#fcc8 hm:#999\n................\n................\n................\n................\n.......mm.......\n......m..m......\n......m..m......\n........m.......\n........m.......\n................\n........m.......\n................\n................\n................\n................\n................\n"),J("l0:#8558 l1:#a778 l2:#c998 l3:#fcc8 hm:#c70\n................\n................\n................\n................\n.......mm.......\n......m..m......\n......m..m......\n........m.......\n........m.......\n................\n........m.......\n................\n................\n................\n................\n................\n"),
J("l0:#8558 l1:#a778 l2:#c998 l3:#fcc8 hm:#fff\n................\n................\n................\n................\n.......mm.......\n......m..m......\n......m..m......\n........m.......\n........m.......\n................\n........m.......\n................\n................\n................\n................\n................\n"),J("l0:#8558 l1:#a778 l2:#c998 l3:#fcc8 hm:#dfb\n................\n................\n................\n................\n.......mm.......\n......m..m......\n......m..m......\n........m.......\n........m.......\n................\n........m.......\n................\n................\n................\n................\n................\n"),
J("l0:#8558 l1:#a778 l2:#c998 l3:#fcc8 hm:#ff0\n................\n................\n................\n................\n.......mm.......\n......m..m......\n......m..m......\n........m.......\n........m.......\n................\n........m.......\n................\n................\n................\n................\n................\n"),J("l0:#8558 l1:#a778 l2:#c998 l3:#fcc8 N:#fff M:#eee m:#ddd n:#ccc\n................\n................\n................\n................\n.......mm.......\n......m..m......\n......m..m......\n........m.......\n........m.......\n................\n........m.......\n................\n................\n................\n................\n................\n"),
J("l0:#8558 l1:#a778 l2:#c998 l3:#fcc8 N:#fee M:#ecc m:#dbb n:#caa\n................\n................\n................\n................\n.......mm.......\n......m..m......\n......m..m......\n........m.......\n........m.......\n................\n........m.......\n................\n................\n................\n................\n................\n"),J("l0:#8558 l1:#a778 l2:#c998 l3:#fcc8 hm:#95f\n................\n................\n................\n................\n.......YY.......\n......Y..Y......\n......Y..Y......\n........Y.......\n........Y.......\n................\n........m.......\n................\n................\n................\n................\n................\n"),
J("l0:#8558 l1:#a778 l2:#c998 l3:#fcc8 hm:#00f\n................\n................\n................\n................\n.......YY.......\n......Y..Y......\n......Y..Y......\n........Y.......\n........Y.......\n................\n........m.......\n................\n................\n................\n................\n................\n"),J("l0:#8558 l1:#a778 l2:#c998 l3:#fcc8 hm:#0f0\n................\n................\n................\n................\n.......YY.......\n......Y..Y......\n......Y..Y......\n........Y.......\n........Y.......\n................\n........m.......\n................\n................\n................\n................\n................\n"),
J("l0:#8558 l1:#a778 l2:#c998 l3:#fcc8 hm:#f00\n................\n................\n................\n................\n.......YY.......\n......Y..Y......\n......Y..Y......\n........Y.......\n........Y.......\n................\n........m.......\n................\n................\n................\n................\n................\n")],ch=J("\n................\n................\n.ZZZZZZZZZZZZZZ.\n.ZXXXXXXXXXXXrZ.\n.ZXOOOOOOOOOOrZ.\n.ZXOOOOOOOOOOrZ.\n.ZXrrrrOOrrrrrZ.\n.ZZZZZXOOrZZZZZ.\n.....ZXOOrZ.....\n.....ZXOOrZ.....\n.....ZXOOrZ.....\n.....ZXOOrZ.....\n.....ZXOOrZ.....\n.....ZrrrrZ.....\n.....ZZZZZZ.....\n................\n");function c(a,b){if(!(this instanceof c))return new c(a,b);a instanceof c?(this.s=a.s,this.e=a.e):void 0==a||0==a&&void 0==b?this.e=this.s=0:(this.s=a,this.e=void 0==b?0:b,dh(this))}function eh(a,b){void 0==b&&(b=0);b*=fh;var d=Math.floor(b);a*=Math.pow(2,b-d);return new c(a,d)}aa=c.prototype;aa.clone=function(){return new c(this)};aa.reset=function(){this.e=this.s=0};
function gh(a){if(0!=a.e)if(isNaN(a.e))a.s=NaN,a.e=0;else if(Infinity==a.e)a.s=0==a.s?NaN:0>a.s?-Infinity:Infinity,a.e=0;else if(9007199254740992<a.e)isNaN(a.s)||(a.s=0==a.s?0:0>a.s?-Infinity:Infinity),a.e=0;else if(-9007199254740992>a.e)isNaN(a.s)||(a.s=0),a.e=0;else if(!Number.isInteger(a.e)){var b=Math.floor(a.e);a.s*=Math.pow(2,a.e-b);a.e=b}}
function hh(a,b){if(0==a.s)a.e=b;else{gh(a);var d=a.e-b,e=1/256,f=1/4294967296;if(1023<d)a.e=b,a.s=Infinity;else if(-1074>d)a.e=b,a.s=0;else{for(;32<=d;)d-=32,a.e-=32,a.s*=4294967296;for(;8<=d;)d-=8,a.e-=8,a.s*=256;for(;1<=d;)--d,--a.e,a.s*=2;for(;-32>=d;)d+=32,a.e+=32,a.s*=f;for(;-8>=d;)d+=8,a.e+=8,a.s*=e;for(;-1>=d;)d+=1,a.e+=1,a.s*=.5}}}function ih(a,b){a=new c(a);hh(a,b);return a}
function dh(a){if(0==a.s&&9007199254740992>=a.e&&-9007199254740992<=a.e)a.e=0;else if(1!=a.s||0!=a.e)if(gh(a),0==a.s||Infinity==a.s||-Infinity==a.s||isNaN(a.s))a.e=0;else{var b=0>a.s;b&&(a.s=-a.s);for(var d=1/256,e=1/4294967296;a.s<=e;)a.s*=4294967296,a.e-=32;for(;a.s<=d;)a.s*=256,a.e-=8;for(;.5>=a.s;)a.s*=2,a.e--;for(;4294967296<=a.s;)a.s*=e,a.e+=32;for(;256<=a.s;)a.s*=d,a.e+=8;for(;2<=a.s;)a.s*=.5,a.e++;b&&(a.s=-a.s)}}
aa.v=function(a){if(tb(a,0))return this;this.e>a.e?a=ih(a,this.e):hh(this,a.e);this.s+=a.s;dh(this);return this};aa.add=function(a){var b=new c(this);b.v(a);return b};aa.Ta=function(a){return this.v(new c(a))};aa.L=function(a){var b=new c(this);b.Ta(a);return b};aa.oa=function(a){if(tb(a,0))return this;this.e>a.e?a=ih(a,this.e):hh(this,a.e);this.s-=a.s;dh(this);return this};aa.sub=function(a){var b=new c(this);b.oa(a);return b};function jh(a,b){return(new c(a)).oa(new c(b))}
function kh(){var a=lh();a=new c(a);a.s=-a.s;return a.Ta(1)}aa.hd=function(){this.s=-this.s};aa.Rc=function(){var a=new c(this);a.hd();return a};aa.u=function(a){this.s*=a.s;this.e+=a.e;dh(this)};aa.Ia=function(a){var b=new c(this);b.u(a);return b};aa.Ja=function(a){this.s*=a;dh(this)};aa.o=function(a){var b=new c(this);b.Ja(a);return b};aa.sg=function(a){ub(this,0)||(this.s*=a.s,this.e+=a.e,dh(this))};aa.Tb=function(a){this.s/=a.s;this.e-=a.e;dh(this)};
aa.a=function(a){var b=new c(this);b.Tb(a);return b};aa.dj=function(a){this.s/=a;dh(this)};aa.cc=function(a){var b=new c(this);b.dj(a);return b};aa.abs=function(){var a=new c(this);0>a.s&&(a.s=-a.s);return a};aa.sqrt=function(){var a=new c(this);if(0>a.s)a.s=a.e=NaN;else{var b=a.e/2,d=Math.trunc(b);a.s=Math.sqrt(a.s)*Math.pow(2,b-d);a.e=d;dh(a)}return a};function mh(a,b){0>a.s&&b!=Math.floor(b)?a.s=a.e=NaN:nh(a,new c(b))}function oh(a,b){a=new c(a);mh(a,b);return a}
function ph(a,b){return oh(a,b)}function qh(a,b){if(0==b)pb(a,0)?new c(0):ub(a,0)?new c(Infinity):new c(1);else{hh(a,0);a.e=a.s;a.s=1;if(2!=b){b=Math.log(b)/rh*a.e;var d=Math.floor(b);a.e=d;a.s*=Math.pow(2,b-d)}dh(a)}}function sh(a,b){b=new c(b);qh(b,a);return b}function nh(a,b){if(tb(a,0))pb(b,0)?new c(0):ub(b,0)?new c(Infinity):new c(1);else{var d=a.log();b=b.o(d).exp();a.s=b.s;a.e=b.e}}aa.pow=function(a){var b=new c(this);nh(b,a);return b};function th(a,b){return a.pow(b)}
aa.exp=function(){var a=new c(this);qh(a,Math.E);return a};aa.log2=function(){var a=this.e;return a+=Math.log2(this.s)};aa.log10=function(){var a=this.e*uh;return a+=Math.log10(this.s)};aa.log=function(){var a=this.e*rh;return a+=Math.log(this.s)};function vh(a,b){b=1/Math.log(b);var d=a.e*Math.log(2)*b;return d+=Math.log(a.s)*b}aa.da=function(a){return tb(a,0)?0<this.s&&!isNaN(this.e):tb(this,0)?0>=a.s&&!isNaN(a.e):this.s>ih(a,this.e).s};
aa.Ea=function(a){return tb(a,0)?0<=this.s&&!isNaN(this.e):tb(this,0)?0>a.s&&!isNaN(a.e):this.s>=ih(a,this.e).s};aa.dc=function(a){return tb(a,0)?tb(this,0):this.s==ih(a,this.e).s};aa.la=function(a){return tb(a,0)?0>this.s&&!isNaN(this.e):tb(this,0)?0<=a.s&&!isNaN(a.e):this.s<ih(a,this.e).s};aa.Xa=function(a){return tb(a,0)?0>=this.s&&!isNaN(this.e):tb(this,0)?0<a.s&&!isNaN(a.e):this.s<=ih(a,this.e).s};aa.xc=function(a){return!this.dc(a)};function tb(a,b){return 0==b?0==a.s:b==ih(a,0).s}
aa.T=function(a){return 0==a?0!=this.s:a!=ih(this,0).s};function pb(a,b){return 0==b?0<a.s:a.da(new c(b))}aa.Sa=function(a){return 0==a?0<=this.s:this.Ea(new c(a))};function ub(a,b){return 0==b?0>a.s:a.la(new c(b))}aa.ze=function(a){return 0==a?0>=this.s:this.Xa(new c(a))};aa.Bi=c.prototype.Xa;aa.Ci=c.prototype.ze;aa.oi=c.prototype.Ea;aa.gf=c.prototype.Sa;function rb(a,b){return new c(a.da(b)?a:b)}function sb(a,b){return new c(a.la(b)?a:b)}
function wh(a,b){if(tb(a,0)!=tb(b,0)||pb(a,0)!=pb(b,0))return!1;var d=a.o(.002);return b.la(a.sub(d))||b.da(a.add(d))?!1:!0}aa.isNaN=function(){return isNaN(this.s)||isNaN(this.e)};function xh(a){return isNaN(a.s)||isNaN(a.e)||Infinity==a.s||Infinity==a.e||-Infinity==a.s||-Infinity==a.e}var uh=.30102999566398114,fh=1/uh,rh=.6931471805599453,yh=[],zh=[],Ah=0,Bh=Ah;yh[Ah]="latin suffixes";zh[Ah]="Latin suffixes for large numbers, such as T for trillion, Qa for quadrillion, V for vigintillion, ...";
Ah++;var Ch=Ah;yh[Ah]="suffixes up to T, then eng";zh[Ah]="Latin suffixes, but only up to T (trillion, 1e12), then switches to engineering notation";Ah++;var Dh=Ah;yh[Ah]="suffixes up to U, then eng";zh[Ah]="Latin suffixes, but only up to U (undecillion, 1e36), then switches to engineering notation";Ah++;var Eh=Ah;yh[Ah]="suffixes SI";zh[Ah]="SI suffixes, such as K for kilo (1000), G for giga (1e9), up to Y for yotta (1e24). For larger numbers switches to engineering notation";Ah++;var Fh=Ah;
yh[Ah]="suffixes abc";zh[Ah]="abc suffixes, 1a for 1000, 1b for 1000000, 1aa for 1e81, etc...";Ah++;var Gh=Ah;yh[Ah]="engineering";zh[Ah]="Use exponent notation, and the exponents are always multiples of 3. E.g. 10e6 for 10 million";Ah++;var Hh=Ah;yh[Ah]="scientific";zh[Ah]="Always uses exponents, such as 2e4 for 20000 (4 zeroes)";Ah++;var Ih=Ah;yh[Ah]="logarithm";zh[Ah]="Uses the base-10 logarithm";Ah++;var Jh=Ah;yh[Ah]="natural";zh[Ah]="Uses the natural logarithm with e = 2.71828...";Ah++;
var Kh=Ah;yh[Ah]="hexadecimal";zh[Ah]="Uses base 16";Ah++;var Lh=Ah;yh[Ah]="full";zh[Ah]="Prints value with all digits, switches to scientific once unreasonably big";Ah++;var Mh=Ah;yh[Ah]="suffixes up to T, then sci";zh[Ah]="Latin suffixes, but only up to T (trillion, 1e12), then switches to scientific notation";Ah++;var Nh=Ah;yh[Ah]="suffixes up to U, then sci";zh[Ah]="Latin suffixes, but only up to U (undecillion, 1e36), then switches to scientific notation";Ah++;yh[Ah]="suffixes SI";zh[Ah]="SI suffixes, such as K for kilo (1000), G for giga (1e9), up to Y for yotta (1e24). For larger numbers switches to scientific notation";
Ah++;for(var Ph=Bh,Qh=3,Rh="K M B T Qa Qi Sx Sp Oc N".split(" "),Sh=" U Du T Qa Qi Sx Sp Oc N".split(" "),Th=" U D T Qa Qi Sx Sp Oc N".split(" "),Vh=" D V Tg Qr Qq Sa Su Oa Na".split(" "),Wh=" De V Tg Qr Qq Sa Su Oa Na".split(" "),Xh=" C DC TC QC QG SC SG OG NG".split(" "),Yh=[],Zh=[],$h=[],ai=0;10>ai;ai++)for(var bi=0;10>bi;bi++)for(var ci=0;10>ci;ci++){var di=Xh[ai];di+=0==ai&&0==bi?Rh[ci]:0==ai?Th[ci]:Sh[ci];if(0!=ai||1!=ci||1!=bi)di+=0==ai?Vh[bi]:Wh[bi];Yh.push(di)}
for(ai=0;10>ai;ai++)for(bi=0;10>bi;bi++)for(ci=0;10>ci;ci++)di=Xh[ai],di+=0==bi?Sh[ci]:Th[ci],di+=0==ci?Wh[bi]:Vh[bi],Zh.push(di),$h.push("U"==di?"":di);function ei(a){if(!(3>a)){a=Math.floor(a/3)-1;if(0>a||Infinity==a)a=void 0;else if(1E3>a)a=Yh[a];else{for(var b=Zh[a%1E3];a;){a=Math.floor(a/1E3);if(!a)break;b=(1E3>a?$h:Zh)[a%1E3]+"Mi"+b}a=b}return a}}var fi=void 0,gi=void 0;
function hi(a){if(!a)return-1;a=a.toLowerCase();if(!fi){fi={};for(var b=0;b<Yh.length;b++)fi[Yh[b].toLowerCase()]=b}b=fi[a];if(void 0!=b)return b;if(!gi){gi=[,{},{},{},{},{},{}];for(b=1;b<Zh.length;b++)gi[Zh[b].length][Zh[b].toLowerCase()]=b;gi[2].mi=0}b=1;for(var d=0,e=!1,f=!0;;){for(var g=!1,h=6;1<=h;h--)if(!(a.length<h)){var k=a.substr(a.length-h),l=gi[h][k];if(void 0!=l){g=!0;if(2==h&&"mi"==k)b*=1E3,e=!0;else{d+=l*b;if(!f&&!e)return-1;e=!1}a=a.substr(0,a.length-h);f=!1;break}}if(!g)return-1;if(0==
a.length)break}e&&(d+=b);return d}
function ii(a){function b(g){return"."==g||d(g)}function d(g){var h;(h="-"==g||"+"==g)||(g=g.charCodeAt(0),h=48<=g&&57>=g);return h}var e=a.toLowerCase();if("inf"==e||"infinity"==e)return new c(Infinity,0);if("-inf"==e||"-infinity"==e)return new c(-Infinity,0);if("nan"==e)return new c(NaN,0);var f=a.indexOf("e");0>f&&(f=a.indexOf("E"));if(0<f&&f+1<a.length&&d(a[f+1])){e=parseFloat(a.substr(0,f));a=parseFloat(a.substr(f+1));if(a!=a||-Infinity==a)a=0;return eh(e,a)}for(f=0;f<a.length&&b(a[f]);)f++;
if(f==a.length)return new c(parseFloat(a));e=parseFloat(a.substr(0,f));a=hi(a.substr(f));return 0>a?new c(NaN):eh(e,3*(a+1))}
function ji(a,b,d,e){b--;if(pb(a,1E-6)&&ub(a,1))return ki(a,b);d&&(d=3>d?3:8<d?8:d);var f=e||10,g=10==f?uh:.6931471805599453/Math.log(f);if(0>a.s)return"-"+ji(a.Rc(),b,d,e);if(isNaN(a.s))return"NaN";if(Infinity==a.s)return"Inf";if(0==a.s)return"0";g*=a.e;e=Math.floor(vh(a.abs(),f));a=a.s*Math.pow(f,g-e);a+Math.pow(f,-b)>=f?(a/=f,e++):1>a+Math.pow(f,-b-1)&&(a*=f,e--);-1==e&&(e++,b++,a/=f);if(d){for(;0!=e%d;)a*=f,e--,b--;for(;e>=-d&&0>e;)e++,b++,a/=f}for(;1<=e&&2>=e;)e--,b--,a*=f;0>b&&(b=0);10==f?d=
a.toFixed(b):(d=a.toString(f).toUpperCase(),a=d.indexOf("."),0<=a&&(d=d.substr(0,a+b+1)));if(-1!=d.indexOf(".")){for(;"0"==d[d.length-1];)d=d.substr(0,d.length-1);"."==d[d.length-1]&&(d=d.substr(0,d.length-1))}0!=e&&(d+=(10==f?"e":"p")+e);return d}function ki(a,b){var d=a.valueOf().toString();a=-Math.floor(a.abs().log10());return d.substr(0,a+1+b)}
function li(a,b,d,e){if(0>a.s)return"-"+li(a.Rc(),b,d,e);if(isNaN(a.s))return"NaN";if(Infinity==a.s)return"Inf";if(0==a.s)return"0";if(pb(a,1E-6)&&ub(a,1))return ki(a,b);var f=a.e*uh,g=a.abs().log10();0<g&&(g+=Math.pow(10,-g-1));var h=a.s,k=3*Math.floor(g/3);g<b&&0<=g&&(k=0);-3<=g&&0>g&&(b+=-Math.floor(g),k=0);h*=Math.pow(10,f-k);if(0>=f){h=(""+1.0000000001*h).substr(0,b+1);if(-1!=h.indexOf(".")){for(;"0"==h[h.length-1];)h=h.substr(0,h.length-1);"."==h[h.length-1]&&(h=h.substr(0,h.length-1))}0!=k&&
(h+="e"+k)}else{1E3<=h+Math.pow(10,-b+2)?(h/=1E3,k+=3):1>h+Math.pow(10,-b-1)&&(h*=1E3,k-=3);f=b-1;10<=h&&f--;100<=h&&f--;1E3<=h&&f--;1E4<=h&&f--;0>f&&(f=0);h=h.toFixed(f);if(-1!=h.indexOf(".")){for(;"0"==h[h.length-1];)h=h.substr(0,h.length-1);"."==h[h.length-1]&&(h=h.substr(0,h.length-1))}"1000"==h&&(h="1",k+=3);if(0!=k)if(0==d)if(36>=k)h+=ei(k);else return ji(a,b,!e);else if(1==d)d=ei(k),h=void 0!=d?h+d:h+("e"+k);else if(2==d)if(3==k)h+="K";else if(6==k)h+="M";else if(9==k)h+="G";else if(12==k)h+=
"T";else if(15==k)h+="P";else if(18==k)h+="E";else if(21==k)h+="Z";else if(24==k)h+="Y";else return ji(a,b,!e);else if(3==d)if(12>=k)h+=ei(k);else return ji(a,b,!e);else{k=Math.floor(k/3);if(0>k)d=void 0;else for(d="";k;)d=String.fromCharCode(97+(k-1)%26)+d,k=Math.floor((k-1)/26);if(void 0!=d)h+=d;else return ji(a,b,!e)}}return h}
function mi(a,b){if(0>a.s)return"-"+mi(a.Rc(),b);if(isNaN(a.s))return"10^NaN";if(Infinity==a.s)return"10^Inf";if(0==a.s)return"0";a=a.log10();b--;10<=a&&b--;100<=a&&b--;1E3<=a&&b--;1E4<=a&&b--;1E5<=a&&b--;0>b&&(b=0);return"10^"+a.toFixed(b)}function ni(a,b){if(0>a.s)return"-"+ni(a.Rc(),b);if(isNaN(a.s))return"e^NaN";if(Infinity==a.s)return"e^Inf";if(0==a.s)return"0";a=a.log();b--;10<=a&&b--;100<=a&&b--;1E3<=a&&b--;1E4<=a&&b--;1E5<=a&&b--;0>b&&(b=0);return"e^"+a.toFixed(b)}
function oi(a,b){if(ub(a,0))return"-"+oi(a.Rc(),b);var d=pb(a,1E20),e=!1;ub(a,1)&&ub(a,Math.pow(10,-b))&&(e=!0);if(!d&&!e){a=a.valueOf().toFixed(b);if(0<b){for(b=a.length;;){d=a[b-1];if("0"!=d&&"."!=d)break;b--;if("."==d)break}a=a.substr(0,b)}return a}return ji(a,b,!1)}
c.prototype.toString=function(a,b){a=a||Qh;b=void 0==b?Ph:b;return b==Bh?li(this,a,1):b==Dh?li(this,a,0):b==Ch?li(this,a,3):b==Nh?li(this,a,0,!0):b==Mh?li(this,a,3,!0):b==Hh?ji(this,a,!1):b==Gh?ji(this,a,!0):b==Eh?li(this,a,2):b==Fh?li(this,a,4):b==Kh?"#"+ji(this,a,4,16):b==Ih?mi(this,a):b==Jh?ni(this,a):b==Lh?oi(this,a):this.s+"e"+this.e};function L(a,b,d){return ub(a,1E-4)&&pb(a,-1E-4)?"0%":a.o(100).toString(b,d)+"%"}c.prototype.valueOf=function(){var a=new c(this);hh(a,0);return a.s};
var pi="thousand million billion trillion quadrillion quintillion sextillion septillion octillion nonillion".split(" "),qi=" decillion vigintillion trigintillion quadragintillion quinquagintillion sexagintillion septuagintillion octagintillion nonagintillion".split(" "),ri=" centillion ducentillion trecentillion quadringentillion quingentillion sescentillion septingentillion octingentillion nongentillion".split(" "),si=" un duo tres quattuor quin sex septen octo novem".split(" "),ti=" deci viginti triginta quadriginta quinqua sexaginta septuaginta octoginta nonaginta".split(" ");
function ui(a){if(-Infinity==a)return"[-Inf]";if(Infinity==a)return"[Inf]";if(0>a)return"[Neg]";if(isNaN(a))return"[NaN]";if(1E3<a)return"[TooBigForFullName]";if(1E3==a)return"millillion";var b=a%10,d=Math.floor(a/10)%10,e=Math.floor(a/100)%10;if(10>a)return pi[b];var f=si[b];a=100<=a?ti[b]:qi[d];3==b&&0<d&&("d"==a[0]||"s"==a[0])&&(f="tre");return f+a+ri[e]}
function vi(a){if(0==a)return"";if(1==a)return"ten";if(2==a)return"hundred";var b="";1==a%3&&(b="ten ");2==a%3&&(b="hundred ");return b+=ui(Math.floor(a/3)-1)}function wi(){var a=xi.o(1.1);a=Math.floor(vh(a.abs(),10));return vi(a)};var yi="seeds;spores;resin;twigs;nuts;infinity seeds;amber;essence".split(";");function R(a){if(!(this instanceof R))return new R(a);a?(this.g=new c(a.g||0),this.A=new c(a.A||0),this.c=new c(a.c||0),this.G=new c(a.G||0),this.S=new c(a.S||0),this.R=new c(a.R||0),this.ma=new c(a.ma||0),this.Z=new c(a.Z||0)):(this.g=new c,this.A=new c,this.c=new c,this.G=new c,this.S=new c,this.R=new c,this.ma=new c,this.Z=new c)}function zi(a){return[a.g,a.A,a.c,a.G,a.S,a.R,a.ma,a.Z]}aa=R.prototype;aa.clone=function(){return new R(this)};
function Ai(a,b){a.g=b[0]||new c(0);a.A=b[1]||new c(0);a.c=b[2]||new c(0);a.G=b[3]||new c(0);a.S=b[4]||new c(0);a.R=b[5]||new c(0);a.ma=b[6]||new c(0);a.Z=b[7]||new c(0)}function Bi(a){var b=new R;Ai(b,a);return b}aa.reset=function(){this.g.reset();this.A.reset();this.c.reset();this.G.reset();this.S.reset();this.R.reset();this.ma.reset();this.Z.reset()};function Ci(a,b){return 0==b?a.g:1==b?a.A:2==b?a.c:3==b?a.G:4==b?a.S:5==b?a.R:6==b?a.ma:7==b?a.Z:c(0)}
aa.v=function(a){this.g.v(a.g);this.A.v(a.A);this.c.v(a.c);this.G.v(a.G);this.S.v(a.S);this.R.v(a.R);this.ma.v(a.ma);this.Z.v(a.Z);return this};aa.add=function(a){var b=R(this);b.v(a);return b};aa.Ta=function(a){a instanceof c||(a=new c(a));this.g.v(a);this.A.v(a);this.c.v(a);this.G.v(a);this.S.v(a);this.R.v(a);this.ma.v(a);this.Z.v(a);return this};aa.L=function(a){var b=R(this);b.Ta(a);return b};
aa.oa=function(a){this.g.oa(a.g);this.A.oa(a.A);this.c.oa(a.c);this.G.oa(a.G);this.S.oa(a.S);this.R.oa(a.R);this.ma.oa(a.ma);this.Z.oa(a.Z);return this};aa.sub=function(a){var b=R(this);b.oa(a);return b};aa.hd=function(){this.g.hd();this.A.hd();this.c.hd();this.G.hd();this.S.hd();this.R.hd();this.ma.hd();this.Z.hd()};aa.Rc=function(){var a=R(this);a.hd();return a};aa.u=function(a){this.g.u(a);this.A.u(a);this.c.u(a);this.G.u(a);this.S.u(a);this.R.u(a);this.ma.u(a);this.Z.u(a)};
aa.Ia=function(a){var b=R(this);b.u(a);return b};aa.Ja=function(a){this.u(new c(a))};aa.o=function(a){return this.Ia(new c(a))};aa.Tb=function(a){this.g.Tb(a);this.A.Tb(a);this.c.Tb(a);this.G.Tb(a);this.S.Tb(a);this.R.Tb(a);this.ma.Tb(a);this.Z.Tb(a)};aa.a=function(a){var b=R(this);b.Tb(a);return b};aa.dj=function(a){this.Tb(new c(a))};aa.cc=function(a){return this.a(new c(a))};
aa.sg=function(a){this.g.Sa(0)&&this.g.u(a);this.A.Sa(0)&&this.A.u(a);this.c.Sa(0)&&this.c.u(a);this.G.Sa(0)&&this.G.u(a);this.S.Sa(0)&&this.S.u(a);this.R.Sa(0)&&this.R.u(a);this.ma.Sa(0)&&this.ma.u(a);this.Z.Sa(0)&&this.Z.u(a)};aa.dc=function(a){return this.g.dc(a.g)&&this.A.dc(a.A)&&this.c.dc(a.c)&&this.G.dc(a.G)&&this.S.dc(a.S)&&this.R.dc(a.R)&&this.ma.dc(a.ma)&&this.Z.dc(a.Z)?!0:!1};
aa.Ea=function(a){return this.g.Ea(a.g)&&this.A.Ea(a.A)&&this.c.Ea(a.c)&&this.G.Ea(a.G)&&this.S.Ea(a.S)&&this.R.Ea(a.R)&&this.ma.Ea(a.ma)&&this.Z.Ea(a.Z)?!0:!1};aa.Xa=function(a){return this.g.Xa(a.g)&&this.A.Xa(a.A)&&this.c.Xa(a.c)&&this.G.Xa(a.G)&&this.S.Xa(a.S)&&this.R.Xa(a.R)&&this.ma.Xa(a.ma)&&this.Z.Xa(a.Z)?!0:!1};aa.xc=function(a){return!this.dc(a)};aa.da=function(a){return!this.Xa(a)};aa.la=function(a){return!this.Ea(a)};aa.Bi=R.prototype.Xa;aa.Ci=R.prototype.ze;aa.oi=R.prototype.Ea;
aa.gf=R.prototype.Sa;function Di(a){var b=D.b;return a.g.T(0)&&!b.g.Ea(a.g)||a.A.T(0)&&!b.A.Ea(a.A)||a.c.T(0)&&!b.c.Ea(a.c)||a.G.T(0)&&!b.G.Ea(a.G)||a.S.T(0)&&!b.S.Ea(a.S)||a.R.T(0)&&!b.R.Ea(a.R)||a.ma.T(0)&&!b.ma.Ea(a.ma)||a.Z.T(0)&&!b.Z.Ea(a.Z)?!1:!0}aa.empty=function(){return this.g.T(0)||this.A.T(0)||this.c.T(0)||this.G.T(0)||this.S.T(0)||this.R.T(0)||this.ma.T(0)||this.Z.T(0)?!1:!0};function Ei(a){for(var b=zi(a),d=0;d<b.length;d++)if(void 0==b[d]||b[d].isNaN())b[d]=new c(0);Ai(a,b)}
function Fi(a){a=zi(a);for(var b=[],d=0;d<a.length;d++)ub(a[d],0)?b[d]=a[d].Rc():b[d]=new c(0);return Bi(b)}function Gi(a){a=zi(a);for(var b=zi(D.b),d=[],e=0;e<b.length;e++)a[e].T(0)?d[e]=new c(b[e]):d[e]=new c(0);return Bi(d)}function Hi(a,b){a=zi(a);b=zi(b);for(var d=[],e=0;e<a.length;e++)d[e]=rb(a[e],b[e]);return Bi(d)}function Ii(a,b){a=zi(a);b=zi(b);for(var d=[],e=0;e<a.length;e++)d[e]=sb(a[e],b[e]);return Bi(d)}
aa.toString=function(a,b){for(var d=zi(this),e="",f=0;f<d.length;f++)d[f].xc(new c(0))&&(0<e.length&&(e+=", "),e+=d[f].toString(a,b)+" "+yi[f]);""==e&&(e="none");return e};var Ji=window.localstorageNameHTML?window.localstorageNameHTML:"local",Ki=Ji+"_recover",Li=Ji+"_success",Mi=Ji+"_prev_version",Ni=Ji+"_undo",Oi=Ji+"_daily1",Pi=Ji+"_daily2";var Qi="spring summer autumn winter ethereal infernal infinity".split(" "),Ri=0,S=Ri++,Si=Ri++,Ti=Ri++,Ui=Ri++,Vi=Ri++,Wi=Ri++,Xi=Ri++,Yi=Ri++,Zi=Ri++,$i=Ri++,aj=Ri++,bj=Ri++,cj=Ri++,dj=Ri++,ej=Ri++,fj=Ri,hj=[];hj[S]=16;hj[Si]=8;hj[Ti]=8;hj[cj]=16;
function ij(a){return a==S?"berry":a==Si?"mushroom":a==Ti?"flower":a==Ui?"stinging":a==Vi?"brassica":a==Wi?"automaton":a==Xi?"lotus":a==Yi?"mistletoe":a==Zi?"bee":a==$i?"challenge":a==aj?"fern":a==bj?"squirrel":a==cj?"nuts":a==dj?"pumpkin":a==ej?"runestone":"unknown"}
function jj(a){var b=D.challenge==kj;switch(a){case S:return"Produces seeds. Boosted by flowers. "+(b?"":"Negatively affected by nettles. ")+"Neighboring mushrooms can consume its seeds to produce spores. Neighboring watercress can copy its production.";case Si:return"Requires berries as neighbors to consume seeds to produce spores. Boosted by flowers"+(b?"":" and nettles")+". Neighboring watercress can copy its production (but also consumption).";case Ti:return"Boosts neighboring berries and mushrooms, their production but also their consumption."+
(b?"":" Negatively affected by neighboring nettles.");case Ui:return"Boosts neighboring mushrooms spores production (without increasing seeds consumption), but negatively affects orthogonally neighboring berries and flowers, so avoid touching those with this plant";case Vi:return"Produces a small amount of seeds on its own, but can produce much more resources by copying from berry and mushroom neighbors once you have those. Unlike other crops, has limited lifetime.";case Yi:return"Produces twigs (which you receive on transcend) when tree levels up, when orthogonally next to the tree only. Having more than one increases level up spores requirement and slightly decreases resin gain.";
case Zi:return"Boosts orthogonally neighboring flowers (in spring also diagonally). Since this is a boost of a boost, indirectly boosts berries and mushrooms by an entirely new factor.";case $i:return"A type of crop specific to a challenge, not available in regular runs.";case aj:return"Ethereal fern, giving starter resources";case cj:return"Produces nuts. Can have only max 1 nut plant in the field. Neighboring watercress can copy its production, but less effectively than it copies berries. Receives a limited fixed boost from flowers of high enough tier. Not boosted by other standard berry and mushroom production boosts.";
case dj:return"A crop for the halloween holiday event. It will be no longer available when the event is over.";case ej:return""}}
function lj(a){switch(a){case S:return"Produces infinity seeds. Boosted by flowers.";case Si:return"";case Ti:return"Boosts neighboring berries.";case Ui:return"";case Vi:return"Produces seeds, but has a limited lifespan. Produces more seeds than its initial cost over its lifespan.";case Yi:return"";case Zi:return"Boosts orthogonally neighboring flowers.";case $i:return"";case aj:return"";case cj:return"";case dj:return"";case ej:return"Boosts the basic field production boost of any neighboring crops in the infinity field. WARNING: The runestone, and any non-brassica crops it touches, cannot be deleted for 23 hours after placing the runestone, and this time resets when planting crops next to it later on."}}
function mj(a){1==D.i[nj].count&&(a*=2);!oj()&&D.$[pj].count&&(a*=1+qj);return a}function rj(a){1==D.i[nj].count&&(a*=2);return a}function sj(){var a=c(1),b=tj(uj);0<b&&(b=c(1).add(vj(uj,b,wj())),a.u(b));return a}function xj(){return 0!=D.Wa?!1:D.i[yj].count&&D.time-D.xb<mj(120)}function zj(){return 1!=D.Wa?!1:D.i[Aj].count&&D.time-D.kb<mj(180)}function Bj(){return 2!=D.Wa?!1:D.i[Cj].count&&D.time-D.lb<mj(240)}
function Dj(){this.name="a";this.V=R();this.Mb=R();this.jd=R();this.mg=void 0;this.Hh=this.Ra=this.index=0;this.va=c(0);this.Gd="";this.Ma=null;this.type=this.Lj=this.Mj=this.image=void 0;this.dm=this.l=0;this.Ab=this.Nb=!1;this.Ik=0;this.Yb=!1;this.lf=void 0}function Ej(a){return!a.Nb&&!a.Ab}
Dj.prototype.za=function(){var a=this.Ra;if(0==a)return a;var b=oj();if(this.type==Vi){if(null!=this.Ma){var d=D.i[this.Ma],e=Fj[this.Ma];0<d.count&&(a+=this.Ra*e.qb*d.count)}b||D.$[Gj].count&&(a*=1.5);1==D.i[Hj].count&&(a*=1.5);return a}d=this.Ra;e=60+Math.log(d)+10*this.l;e>.5*d&&(e=.5*d);var f=tj(Ij);0<f&&(f=c(1).sub(vj(Ij,f,wj())).valueOf(),a*=f);b||(f=D.K[Jj].count)&&(a-=Kj*f);f=.33*d;var g=d;e+f>g&&(g=e+f);f*=4*f;g=4*(g-e)*(g-e);a=(g-f)/g*(a-e);a=e+.5*(a+Math.sqrt(a*a+f));a>d&&(a=d);b||(D.$[Lj].count&&
(a*=1-Mj),D.K[Nj[0]].count&&0==Oj()&&(a*=1-Pj));Qj()&&(a*=.5);return a};Dj.prototype.O=function(a){var b=1.5;this.type==Ti&&(b=2);this.type==Vi&&(b=1);this.type==$i&&this.Uh&&(b=this.Uh);return this.V.o(Math.pow(b,D.eb[this.index]+(a||0)))};Dj.prototype.ub=function(){return this.type==Vi||D.challenge==Rj?R(0):this.O(-1).o(D.P[Sj].X?.66:.33)};var Tj=th(c(700),c(1/29)).a(th(c(350),c(1/29))),Uj=th(c(612500),c(1/52)).a(th(c(306250),c(1/52)));
function Vj(a,b,d,e,f){var g=oj();if(0==d&&a.type==Ti){var h=Wj();b.u(h);f&&f.push([Qi[d],!0,h,b.clone()])}1!=d||a.type!=S&&a.type!=dj||(h=Xj(),b.u(h),f&&f.push([Qi[d],!0,h,b.clone()]));1==d&&a.type==Si&&(h=Yj(),b.u(h),f&&h.T(1)&&f.push([Qi[d],!0,h,b.clone()]));2==d&&a.type==Si&&(h=Zj(),b.sg(h),f&&f.push([Qi[d],!0,h,b.clone()]));2!=d||a.type!=S&&a.type!=dj||(h=ak(),b.sg(h),f&&h.T(1)&&f.push([Qi[d],!0,h,b.clone()]));if(3==d&&(a.type==S||a.type==dj||a.type==Si||a.type==Ti||a.type==Zi||a.type==cj)&&
e){h=!1;a.type!=S&&a.type!=dj||!xj()||(h=!0);a.type==Si&&zj()&&(h=!0);a.type==Ti&&Bj()&&(h=!0);var k=bk[e.y][e.x];k.Cc||h||(e=c(ck),e.T(1)&&(b.sg(e),f&&f.push([Qi[d],!0,e,b.clone()])));!k.Cc||a.type!=S&&a.type!=dj&&a.type!=Si||(h=dk(),a.Yb&&(h=jh(h,1).o(.5).L(1)),b.u(h),f&&f.push(["winter tree warmth",!0,h,b.clone()]));!g&&k.Cc&&D.K[Nj[3]].count&&a.type==Ti&&(h=ek,b.u(h),f&&f.push(["winter tree warmth (flowers)",!0,h,b.clone()]))}if(D.challenge==fk&&5==d&&0<=a.l){g=-1;d=void 0;if(a.type==S||a.type==
dj)g=a.l,d=Tj;a.type==Si&&(g=2*a.l+2,d=Uj);e=c(1E-9);0<=g&&(e.u(ph(c(.5),g+1)),a=D.i[a.Ma],e.u(ph(c(d),-a.count)));b.u(e);f&&f.push(["infernal",!0,e,b.clone()])}}function mk(a,b){var d=new c(1);if(!a)return d;for(var e=0;4>e;e++){var f=a.x+(1==e?1:3==e?-1:0),g=a.y+(2==e?1:0==e?-1:0);0>f||f>=D.B||0>g||g>=D.D||(f=D.C[g][f],nk(f)&&T(f).type==Ui&&(f=ok(T(f),f,b),d.Tb(f.L(1))))}return d}var pk=c(.25);
Dj.prototype.Eb=function(a,b,d){var e=oj(),f=new R(this.Mb);if(this.type==dj){f=D.Qh;if(1==b||2==b||4==b||5==b)f=D.Rh;f=new R(f)}if(d)if(0<D.U[this.index].sa){d.push(["base",!0,c(0),this.jd.clone()]);for(var g=zi(this.Mb),h=zi(this.jd),k=c(NaN),l=0;l<g.length;l++){var n=g[l],p=h[l];if(!tb(n,0)||!tb(p,0))if(n=n.a(p),k.isNaN()||n.da(k))k=n}d.push(["prestige",!0,k,f.clone()])}else d.push(["base",!0,c(0),f.clone()]);this.type==dj&&(f.u(qk),d&&d.push(["pumpkin",!0,qk,f.clone()]));if(this.type==cj&&D.th)return f.Ja(0),
d&&d.push(["squirrel evolution in progress",!0,c(0),f.clone()]),f;if(this.Yb&&a&&0!=rk(a.x,a.y))return f.Ja(0),d&&d.push(["not the main 2x2 crop piece",!0,c(0),f.clone()]),f;b&&3!=b||!a||sk(a)&&D.challenge!=Rj||(D.challenge==Rj?(g=c(tk(a.F)*a.F),f.u(g),d&&d.push(["withering",!0,g,f.clone()])):(g=a.F*a.F,this.type==Si?(f.g.Ja(g),g=Math.pow(g,4),f.A.Ja(g)):f.Ja(g),d&&d.push(["growing",!0,c(g),f.clone()])));null!=this.Ma&&(g=D.i[this.Ma],h=Fj[this.Ma],0<g.count&&(h=this.type==Vi?c(uk*g.count+1):oh(h.qb,
g.count),f.u(h),d&&d.push(["upgrades ("+g.count+")",!0,h,f.clone()])));if(3==b||4==b)return f;!e&&(this.type==S||this.type==Si||this.type==dj)&&0<D.gb&&(f.u(vk),d&&d.push(["squirrel evolution",!0,vk,f.clone()]));this.type!=S&&this.type!=Si&&this.type!=dj||2!=D.i[wk].count||(h=c(xk+1),f.u(h),d&&d.push(["resin choice: production",!0,h,f.clone()]));e||(this.type!=cj&&(f.u(D.sf),d&&d.push(["achievements",!0,D.sf,f.clone()])),this.type!=S&&this.type!=Si&&this.type!=dj||!D.he||(g=c(2),f.u(g),d&&d.push(["amber production bonus active",
!0,g,f.clone()])));if(2!=e){if(this.type==S||this.type==dj)g=tj(yk),0<g&&(h=vj(yk,g,wj()).L(1),f.u(h),d&&d.push(["fruit: "+zk(yk),!0,h,f.clone()]));this.type==Si&&(g=tj(Ak),0<g&&(h=vj(Ak,g,wj()).L(1),f.u(h),d&&d.push(["fruit: "+zk(Ak),!0,h,f.clone()])),g=tj(Bk),0<g&&(h=c(1).sub(vj(Bk,g,wj())),f.g.u(h),d&&d.push(["fruit: "+zk(Bk),!0,h,f.clone()])));this.type==cj&&(g=tj(Ck),0<g&&(h=vj(Ck,g,wj()).L(1),f.u(h),d&&d.push(["fruit: "+zk(Ck),!0,h,f.clone()])));if(this.type==S||this.type==Si||this.type==dj)g=
tj(Dk),0<g&&(h=vj(Dk,g,wj()).L(1),f.g.u(h),d&&d.push(["fruit: "+zk(Dk),!0,h,f.clone()]))}if(!e){h=new R;h.Ta(1);if(this.type==S||this.type==dj)h.g=D.ai.L(1);this.type==Si&&(h.g=D.Ug.L(1),h.A=D.Ug.L(1));g=R(f);g.g.u(h.g);g.A.u(h.A);g.c.u(h.c);g.G.u(h.G);g.S.u(h.S);g.R.u(h.R);g.ma.u(h.ma);g.Z.u(h.Z);if(f.xc(g)){if(d){h=c(1);f=zi(f);k=zi(g);for(l=0;l<f.length;l++)if(f[l].xc(k[l])){h=k[l].a(f[l]);break}d.push(["ethereal crops",!0,h,g.clone()])}f=g}if(this.type==S||this.type==Si||this.type==dj)g=Ek(),
g.T(1)&&(f.g.u(g),f.A.u(g),d&&d.push(["tree's gesture",!0,g,f.clone()]));if(Fk()){if(this.type==S||this.type==dj)D.$[Gk].count&&(g=Hk.o(D.$[Gk].count).L(1),f.u(g),d&&d.push(["squirrel upgrades",!0,g,f.clone()])),h=D.U[this.index].sa,this.type==dj&&(h=D.Zi),h&&D.$[Ik].count&&(g=Jk.o(D.$[Ik].count).L(1),g=oh(g,h),f.u(g),d&&d.push(["squirrel prestiged",!0,g,f.clone()]));this.type==Si&&(D.$[Kk].count&&(g=Lk.o(D.$[Kk].count).L(1),f.u(g),d&&d.push(["squirrel upgrades",!0,g,f.clone()])),D.U[this.index].sa&&
D.$[Mk].count&&(g=Nk.o(D.$[Mk].count).L(1),g=oh(g,D.U[this.index].sa),f.u(g),d&&d.push(["squirrel prestiged",!0,g,f.clone()])))}Ok()&&D.b.S.gf(1)&&this.type!=cj&&(g=Pk(),f.u(g),d&&d.push(["unused nuts",!0,g,f.clone()]));D.b.c.gf(1)&&this.type!=cj&&(g=Qk(D.b.c),f.u(g),d&&d.push(["unused resin",!0,g,f.clone()]));this.type!=S&&this.type!=Si&&this.type!=dj||!Rk(Sk)||(h=Tk(Sk).L(1),f.u(h),d&&d.push(["ethereal mistletoe leafiness",!0,h,f.clone()]));this.type!=S&&this.type!=dj||!Rk(Uk)||(h=Tk(Uk).L(1),f.u(h),
d&&d.push(["ethereal mistletoe berry-ness",!0,h,f.clone()]));this.type==Si&&Rk(Vk)&&(h=Tk(Vk).L(1),f.u(h),d&&d.push(["ethereal mistletoe funginess",!0,h,f.clone()]))}n=Oj();if(a&&(this.type==S||this.type==Si||this.type==dj)){var m=c(1);g=0;p=a.x;var x=a.y,t=D.B,y=D.D,u=Wk(a,!1);for(h=0;h<u.length;h++)k=p+u[h][0],l=x+u[h][1],0>k||k>=t||0>l||l>=y||(k=D.C[l][k],nk(k)&&T(k).type==Ti&&(k=b?ok(T(k),k,b):bk[k.y][k.x].va,k.T(0)&&(m.v(k),g++)));f.u(m);d&&0<g&&d.push(["flowers ("+g+")",!0,m,f.clone()])}if(a&&
this.type==cj){m=c(1);g=0;p=a.x;x=a.y;t=D.B;y=D.D;u=D.hf[Ti]-1;for(h=0;4>h;h++)k=p+(1==h?1:3==h?-1:0),l=x+(2==h?1:0==h?-1:0),0>k||k>=t||0>l||l>=y||(k=D.C[l][k],nk(k)&&T(k).type==Ti&&T(k).l>=u&&(m.v(pk.o(k.F)),g++));f.u(m);d&&0<g&&d.push(["flowers ("+g+", "+L(pk)+" each)",!0,m,f.clone()])}!a||this.type!=S&&this.type!=cj&&this.type!=dj||(h=bk[a.y][a.x],g=h.og,h=b?mk(a,b):h.Ei,0<g&&(f.u(h),d&&d.push(["nettles malus ("+g+")",!0,h,f.clone()])));if(a&&this.type==Si){m=c(1);g=0;p=a.x;x=a.y;t=D.B;y=D.D;for(h=
0;4>h;h++)k=p+(1==h?1:3==h?-1:0),l=x+(2==h?1:0==h?-1:0),0>k||k>=t||0>l||l>=y||(k=D.C[l][k],Xk(k)&&T(k).type==Ui&&(k=b?ok(T(k),k,b):bk[k.y][k.x].va,k.T(0)&&(m.v(k),g++)));f.A.u(m);d&&0<g&&d.push(["nettles ("+g+")",!0,m,f.clone()])}e||this.type!=S&&this.type!=Si&&this.type!=dj||!Yk(this.type)||(g=Zk(this),0<g&&(k=$k(this.type).o(g).L(1),f.u(k),d&&d.push(["multiplicity ("+(g==Math.floor(g)?g.toString():g.toPrecision(3))+")",!0,k,f.clone()])));0<D.j&&this.type!=Vi&&this.type!=cj&&(g=c(1).add(al()),f.u(g),
d&&g.T(1)&&d.push(["tree level ("+D.j+")",!0,g,f.clone()]));Vj(this,f,n,a,d);D.challenge!=bl||this.type!=S&&this.type!=Si&&this.type!=dj||(h=c(.5),f.u(h),d&&d.push(["stormy",!0,h,f.clone()]));if(this.type==S||this.type==dj)xj()?(g=cl(),g.Ta(1),f.g.Ja(g),d&&d.push(["sun",!0,g,f.clone()])):dl(0)&&(g=cl(!0),g.Ta(1),f.g.Ja(g),d&&d.push(["sun (inactive)",!0,g,f.clone()]));this.type==Si&&(zj()?(g=lh(),f.g.u(g),d&&d.push(["mist (less seeds)",!0,g,f.clone()]),g=el(),g.Ta(1),f.A.u(g),d&&d.push(["mist (more spores)",
!0,g,f.clone()])):dl(1)&&(g=el(!0),g.Ta(1),f.A.u(g),d&&d.push(["mist (inactive)",!0,g,f.clone()])));e||(this.type!=S&&this.type!=Si&&this.type!=dj||!D.bc.T(0)||(g=D.bc.L(1),f.u(g),d&&d.push(["challenge highest levels",!0,g,f.clone()])),(this.type==S||this.type==Si||this.type==dj)&&D.$[fl].count&&D.Pa>gl&&(g=oh(c((D.Pa-gl)*hl+1),il),f.u(g),d&&d.push(["highest tree level ever "+D.Pa+" (squirrel upgrade)",!0,g,f.clone()])),this.type!=S&&this.type!=Si&&this.type!=dj||!D.$[jl].count||(h=kl(5==b),g=60*
Math.floor(h/60),g>ll&&(g=ll),h>ll&&(h=ll),0<g?(g=c(1+g*ml/ll),f.u(g),d&&d.push(["weighted time at level: "+r.I(h),!0,g,f.clone()])):d&&d.push(["time at level (begins after 1 minute)",!0,c(1),f.clone()])),this.type!=S&&this.type!=Si&&this.type!=dj||D.challenge!=kj||(g=D.Ph.L(1),f.sg(g),d&&d.push(["worker bees (challenge)",!0,g,f.clone()])),!D.Ad.T(0)||this.type!=S&&this.type!=Si&&this.type!=dj||(g=D.Ad.L(1),f.u(g),d&&d.push(["infinity field",!0,g,f.clone()])));!nl()||this.type!=S&&this.type!=Si&&
this.type!=dj||(g=new c(1.25),f.u(g),ol(1)?d&&d.push(["present effect",!0,g,f.clone()]):d&&d.push(["egg effect",!0,g,f.clone()]));if(2==b&&this.type==Vi&&a){h=bk[a.y][a.x];n=pl(this,a,null,h.Cj());p=pl(this,a,null,S);x=pl(this,a,null,Si);t=pl(this,a,null,cj);e=!e&&D.$[ql].count;y=R();for(h=g=0;4>h;h++)k=a.x+(1==h?1:3==h?-1:0),l=a.y+(2==h?1:0==h?-1:0),0>k||k>=D.B||0>l||l>=D.D||(k=D.C[l][k],k.index==rl&&(k=sl(k)),!(l=T(k))||l.type!=S&&l.type!=Si&&l.type!=cj&&l.type!=dj||(y.v(l.Eb(k,b)),g++));y.g.u(p);
y.A.u(x);y.S.u(t);e&&ub(y.g,0)&&(y.g=new c(0));f.v(y);d&&(y.empty()?d.push(["no neighbors, not copying",!1,y,f.clone()]):(ub(n,1)&&d.push(["copy reduction due to multiple watercress globally",!0,n,void 0]),d.push(['<span class="efWatercressHighlight">copying neighbors ('+g+")</span>",!1,y,f.clone()])))}return f};
function ok(a,b,d,e){if(a.type!=Ti&&a.type!=Ui)return c(0);var f=a.va.clone();e&&e.push(["base",!0,c(0),f.clone()]);var g=oj();if(a.index==tl&&!d&&D.challenge!=ul){var h=ok(vl[wl],null,1),k=ok(vl[tl],null,1);h.da(k)&&(h=h.a(k),f.u(h),e&&e.push(["adjust",!0,h,f.clone()]))}d||!b||sk(b)&&D.challenge!=Rj||(D.challenge==Rj?(h=c(tk(b.F)),f.u(h),e&&e.push(["withering",!0,h,f.clone()])):(h=c(b.F),f.u(h),e&&e.push(["growing",!0,h,f.clone()])));if(null!=a.Ma&&(h=D.i[a.Ma],k=Fj[a.Ma],0<h.count)){var l=h.count;
a.type==Ui&&(l=Math.pow(l,xl));k=k.qb.o(l).L(1);f.u(k);e&&e.push([" upgrades ("+h.count+")",!0,k,f.clone()])}Vj(a,f,Oj(),b,e);if(2!=g&&(a.type==Ti&&(h=tj(yl),0<h&&(k=vj(yl,h,wj()).L(1),f.u(k),e&&e.push(["fruit: "+zk(yl),!0,k,f.clone()]))),a.type==Ui)){h=tj(zl);if(0<h){k=vj(zl,h,wj()).L(1);f.u(k);e&&e.push(["fruit: "+zk(zl),!0,k,f.clone()]);var n=k}k=tj(Al);0<k&&(0<h?(k=vj(Al,k,wj()).o(Bl).L(1),k=jh(k.add(n),1).a(n)):k=oh(vj(Al,k,wj()).o(Bl).L(1),Cl),f.u(k),e&&e.push(["fruit: "+zk(Al),!0,k,f.clone()]))}g||
(a.type==Ti&&(n=D.bi.L(1),n.T(1)&&(f.u(n),e&&e.push(["ethereal crops",!0,n,f.clone()]))),a.type==Ui&&(n=D.Vg.L(1),n.T(1)&&(f.u(n),e&&e.push(["ethereal crops",!0,n,f.clone()]))),Fk()&&(a.type==Ui&&D.$[Dl].count&&(h=El.o(D.$[Dl].count).L(1),f.u(h),e&&e.push(["squirrel upgrades",!0,h,f.clone()])),a.type==Ti&&(D.$[Fl].count&&(h=Gl.o(D.$[Fl].count).L(1),f.u(h),e&&e.push(["squirrel upgrades",!0,h,f.clone()])),D.U[a.index].sa&&D.$[Hl].count&&(h=Il.o(D.$[Hl].count).L(1),h=oh(h,D.U[a.index].sa),f.u(h),e&&
e.push(["squirrel prestiged",!0,h,f.clone()])))),a.type==Ui&&Rk(Jl)&&(k=Tk(Jl).L(1),f.u(k),e&&e.push(["ethereal mistletoe",!0,k,f.clone()])));D.challenge==bl&&a.type==Ti&&(h=c(.5),f.u(h),e&&e.push(["stormy",!0,h,f.clone()]));a.type==Ti&&(Bj()?(n=Kl(),n.Ta(1),f.Ja(n),e&&e.push(["rainbow",!0,n,f.clone()])):dl(2)&&(n=Kl(!0),n.Ta(1),f.Ja(n),e&&e.push(["rainbow (inactive)",!0,n,f.clone()])));g||(a.type!=Ti&&a.type!=Ui||!Yk(a.type)||(n=Zk(a),0<n&&(h=$k(a.type).o(n).L(1),f.u(h),e&&e.push(["multiplicity ("+
(n==Math.floor(n)?n.toString():n.toPrecision(3))+")",!0,h,f.clone()]))),D.challenge==kj&&(n=D.Ph.L(1),f.sg(n),e&&e.push(["worker bees (challenge)",!0,n,f.clone()])));if(2!=g&&b&&a.type==Ti){g=bk[b.y][b.x];n=g.zh;if(d){g=(D.challenge==Ll?0:0==Oj())?8:4;h=new c(0);if(b)for(k=0;k<g;k++){l=b.x+(1==k||4==k||5==k?1:3==k||6==k||7==k?-1:0);var p=b.y+(0==k||4==k||7==k?-1:2==k||5==k||6==k?1:0);0>l||l>=D.B||0>p||p>=D.D||4<=k&&!Ml(b.x,b.y,l,p,D.C)||(l=D.C[p][l],nk(l)&&T(l).type==Zi&&(l=Nl(T(l),l,d),h.v(l)))}g=
h.L(1)}else g=g.Yi.L(1);h=g;0<n&&(f.u(h),e&&e.push(["bees ("+n+")",!0,h,f.clone()]))}b&&a.type==Ti&&(g=bk[b.y][b.x],n=g.og,h=d?mk(b,d):g.Ei,0<n&&(f.u(h),e&&e.push(["nettles malus ("+n+")",!0,h,f.clone()])));return f}
function Nl(a,b,d,e){var f=c(0),g=oj(),h=!1;a.type==Zi&&(h=!0);a.index==Ol&&(h=!0);a.index==Pl&&(h=!0);a.index==Ql&&(h=!0);if(!h)return e&&e.push(["base",!0,c(0),f.clone()]),f;f=a.va.clone();e&&e.push(["base",!0,c(0),f.clone()]);if(!d&&b&&(!sk(b)||D.challenge==Rj)){if(a.type==$i)return c(0);D.challenge==Rj?(d=c(tk(b.F)),f.u(d),e&&e.push(["withering",!0,d,f.clone()])):(d=c(b.F),f.u(d),e&&e.push(["growing",!0,d,f.clone()]))}if(null!=a.Ma&&(d=D.i[a.Ma],h=Fj[a.Ma],0<d.count)){var k=c(d.count);mh(k,Rl);
h=h.qb.o(k).L(1);f.u(h);e&&e.push([" upgrades ("+d.count+")",!0,h,f.clone()])}if(2!=g&&a.type==Zi){d=tj(Sl);if(0<d){h=vj(Sl,d,wj()).L(1);f.u(h);e&&e.push(["fruit: "+zk(Sl),!0,h,f.clone()]);var l=h}h=tj(Al);0<h&&(0<d?(h=vj(Al,h,wj()).o(Tl).L(1),h=jh(h.add(l),1).a(l)):h=oh(vj(Al,h,wj()).o(Tl).L(1),Ul),f.u(h),e&&e.push(["fruit: "+zk(Al),!0,h,f.clone()]))}g||(Fk()&&a.type==Zi&&D.$[Vl].count&&(g=Wl.o(D.$[Vl].count).L(1),f.u(g),e&&e.push(["squirrel upgrades",!0,g,f.clone()])),a.type==Zi&&Yk(a.type)&&(g=
Zk(a),0<g&&(l=$k(a.type).o(g).L(1),f.u(l),e&&e.push(["multiplicity ("+(g==Math.floor(g)?g.toString():g.toPrecision(3))+")",!0,l,f.clone()]))),a.type==Zi&&(g=D.Sg.L(1),g.T(1)&&(f.u(g),e&&e.push(["ethereal crops",!0,g,f.clone()]))));Vj(a,f,Oj(),b,e);return f}function Xl(a,b){return!b||.001<b.F||a.type!=Vi||0==a.l||0==D.i[Hj].count?!1:!0}
function pl(a,b,d,e){e==dj&&(e=S);if(a.type!=Vi){var f=c(0);d&&d.push(["none",!0,c(0),f.clone()]);return R()}var g=oj();f=c(a.mg||1);d&&d.push(["base",!0,c(1),f.clone()]);var h=1==D.i[Hj].count,k=Xl(a,b);if(2==D.i[Hj].count){var l=Math.min(Math.max(0,b.F),1);if(.01<l){.75>l?(l/=.75,l=l*l*l*(l*(6*l-15)+10)):l=1;var n=c(1+.5*l);f.u(n);d&&d.push(["high-yield brassica choice upgrade",!0,n,f.clone()])}}1==D.i[Hj].count&&(n=c(1.25),f.u(n),d&&d.push(["sturdy brassica choice upgrade",!0,n,f.clone()]));k&&
(n=new c(h?.666666:.333333),f.u(n),d&&d.push(["end-of-life",!0,n,f.clone()]));l=3==Oj();b&&bk[b.y][b.x].Cc&&(l=!1);l&&(n=Yl,f.u(n),d&&d.push(["winter malus",!0,n,f.clone()]));if(e!=cj){b=tj(Zl);var p=tj(Al);if((0<b||0<p)&&D.challenge!=$l){n=0<b?vj(Zl,b,wj()).L(1):new c(1);var m=e==S?am:bm,x=n,t=null;0<p&&(0<b?(m=vj(Al,p,wj()).o(cm).L(1),n=jh(n.add(m),1),t=n.a(x)):(n=vj(Al,p,wj()).o(cm).L(1),t=f.L(1),n=jh(oh(f.Ia(n).L(1).a(t).L(1),m),1),t=f.L(1).Ia(n).a(f),n=x.Ia(t)));var y=c(1),u=c(1);k&&(m=jh(n,
1).o(h?.666666:.333333).L(1),y=m.a(n));l&&(m=jh(n,1).Ia(Yl).L(1),u=m.a(n));0<b&&(f.u(x),d&&d.push(["fruit: "+zk(Zl),!0,x,f.clone()]));0<p&&(f.u(t),d&&d.push(["fruit: "+zk(Al),!0,t,f.clone()]));k&&(f.u(y),d&&d.push(["end-of-life fruit effect weakness",!0,y,f.clone()]));l&&(f.u(u),d&&d.push(["winterfruit effect weakness",!0,u,f.clone()]))}g||(g=D.Tg.L(1),g.T(1)&&(f.u(g),d&&d.push(["ethereal crops",!0,g,f.clone()])))}e==cj&&(n=c(.5),f.u(n),d&&d.push(["copying from nuts",!0,n,f.clone()]));a=D.me[a.type];
1<a&&(a=Math.pow(.66,a-1.5),f.Ja(a),d&&d.push(["reduction for multiple",!0,c(a),f.clone()]));return f}var dm=[],vl=[],em=[],im=-1;function jm(a,b,d,e,f,g,h,k,l){g||(g=sd);if(vl[im]||0>im||65535<im)throw"crop id already exists or is invalid!";var n=new Dj;n.index=im++;vl[n.index]=n;dm.push(n.index);n.name=a;n.V=b;n.Mb=d;n.Ra=f||0;n.image=g;n.Gd=h||"";n.va=e;n.type=k;n.l=l;n.dm=l;void 0!=k&&void 0!=l&&(em[k]||(em[k]=[]),em[k][l]=n);n.jd=R(n.Mb);n.Hh=n.Ra;return n.index}
function km(a,b,d,e,f){var g=lm(b),h=mm(b);return jm(a,g,h,c(0),d,e,f,S,b)}function nm(a,b,d,e,f){var g=om(b),h=pm(b);return jm(a,g,h,c(0),d,e,f,Si,b)}function qm(a,b,d,e,f){var g=rm(b),h=sm(b);return jm(a,g,h,c(0),d,e,f,cj,b)}function tm(a,b,d,e,f){var g=um(b);return jm(a,g,R({}),d,e,f,void 0,Ti,b)}function vm(a,b,d,e,f){var g=om(1.05+4*b);return jm(a,g,R({}),d,e,f,void 0,Ui,b)}function wm(a,b,d,e,f,g,h){var k=R({g:Math.pow(10,b+1)});a=jm(a,k,d,c(0),f,g,h,Vi,b);vl[a].mg=e;return a}
function xm(a,b,d,e){var f=um(0).o(2),g=R({});return jm(a,f,g,c(0),d,e,void 0,Yi,b)}function ym(a,b,d,e,f){var g=um(4*b+3.15);a=jm(a,g,R({}),c(0),e,f,void 0,Zi,b);vl[a].va=d;return a}function zm(a,b,d,e,f){return jm(a,b,R({}),c(0),d,e,f,$i,0)}function Am(a,b,d,e,f,g){return jm(a,d,R({}),c(0),e,f,g,dj,b)}
function lm(a){if(1>a)var b=0==a?c(1E3):sh(40,c(a)).o(1E3);else{b=sh(2E3,c(a));b.Ja(20);var d=a;16<=a&&(d-=.7251225);17<=a&&(d-=.2748775);b.u(sh(1.5,c((d-1)*(d-1))))}a=b;b=new c(a);b.s=Math.round(2147483648*a.s)/2147483648;dh(b);return R({g:b})}function mm(a){var b=sh(2E3,c(a));b.Ja(2);0==a&&b.Ja(2);b.u(sh(.35,c(a)));return R({g:b})}function om(a){return lm(1.5+2*a)}function pm(a){var b=mm(2+2*a).g.Rc(),d=mm(2).g.Rc();d=b.a(d).o(1);1<a&&d.Ja(Math.pow(1.25,a-1));return R({g:b,A:d})}var Bm=45,Cm=6;
function rm(a){return Dm(Bm+a*Cm).o(1.5)}function sm(a){a=th(c(1E3),c(a)).o(.05);return R({S:a})}function um(a){return lm(.5+2*a)}function Em(a){return 0==a?c(.5):1==a?c(2):c(.5).Ia(oh(c(16),a-1))}im=25;
var Fm=km("blackberry",0,60,td),Gm=km("blueberry",1,120,ud),Hm=km("cranberry",2,240,vd),Im=km("currant",3,480,wd),Jm=km("goji",4,720,yd),Km=km("gooseberry",5,960,zd),Lm=km("grape",6,1200,Ad),Mm=km("honeyberry",7,1500,Bd),Nm=km("juniper",8,1800,Cd),Om=km("lingonberry",9,2100,Dd),Pm=km("mulberry",10,2400,Ed),Qm=km("physalis",11,2700,Fd),Rm=km("raspberry",12,3E3,Gd),Sm=km("strawberry",13,3300,Hd,"Botanically speaking, not actually not a berry!"),Tm=km("wampee",14,3600,Id),Um=km("whitecurrant",15,3900,
Kd);im=50;var Vm=nm("champignon",0,60,Td),Wm=nm("matsutake",1,180,Vd),Xm=nm("morel",2,360,Ud),Ym=nm("muscaria",3,600,Wd,"amanita muscaria"),Zm=nm("oyster mushroom",4,900,Xd),$m=nm("portobello",5,1200,Yd),an=nm("shiitake",6,1500,Zd),bn=nm("truffle",7,1800,$d);im=75;
var cn=tm("anemone",0,Em(0),90,Ld),dn=tm("clover",1,Em(1),270,Md),en=tm("cornflower",2,Em(2),540,Nd),fn=tm("daisy",3,Em(3),810,Od),gn=tm("dandelion",4,Em(4),1080,Pd),hn=tm("iris",5,Em(5),1350,Qd),jn=tm("lavender",6,Em(6),1620,Rd),kn=tm("orchid",7,Em(7),1890,Sd);im=100;var wl=vm("nettle",0,c(5),60,se),tl=vm("thistle",1,c(375),120,te);im=105;var ln=wm("watercress",0,R({g:1}),c(1),60,ue);vl[ln].Mj=ve;vl[ln].Lj=xe;var mn=wm("wasabi",1,R({g:10}),c(1.25),75,Ae,"New effect over watercress: with sturdy brassica, at end of life doesn't wither but remains active at only 44% efficiency (-33% efficiency, -33% fruit bonus). With high-yield brassica, similar but 1/9th efficiency.");
vl[mn].Mj=Be;vl[mn].Lj=Ce;im=110;var nn=xm("mistletoe",0,50,Je);im=120;var on=ym("bee nest",0,c(3),60,Ke),pn=ym("beehive",1,c(243),120,Le);im=130;var qn,rn=R();qn=jm("squirrel",rn,R({}),c(0),.5,Xe,void 0,bj,0);im=150;
var sn=qm("acorn",0,60,ae,"it's a little oak tree"),tn=qm("almond",1,120,be),un=qm("beechnut",2,180,de),vn=qm("brazil nut",3,240,ee),wn=qm("cashew",4,300,fe),xn=qm("chestnut",5,360,ge),yn=qm("coconut",6,420,he),zn=qm("ginkgo nut",7,480,ie),An=qm("hazelnut",8,540,je),Bn=qm("macadamia nut",9,600,le),Cn=qm("peanut",10,660,me),Dn=qm("pecan nut",11,720,ne),En=qm("pili nut",12,780,oe),Fn=qm("pine nut",13,840,pe),Gn=qm("pistachio",14,900,qe),Hn=qm("walnut",15,960,re);im=200;
var Ol=zm("worker bee",R({g:2E4}),60,Me,"provides bonus to all crops, but only if the worker is next to a flower. This bonus is boosted if the worker is also next to a drone. Since it boosts berries, flowers, mushrooms and mushroom economy, it scales cubically rather than just linearly.");vl[Ol].Uh=c(25);vl[Ol].va=c(.2);var Pl=zm("drone",R({g:2E5}),90,Ne,"A male bee. Boosts orthogonally neighboring worker bees. Can be boosted by queen bee");vl[Pl].Uh=c(25);vl[Pl].va=c(1);
var Ql=zm("queen bee",R({g:2E6}),120,Oe,"Boosts orthogonally neighboring drones");vl[Ql].Uh=c(25);vl[Ql].va=c(1);var In=jm("aster",R({g:2E4}),R({}),c(.1),60,Pe,"Special flower only available in the bee challenge. Place worker bees orthogonally next to this flower for a global boost.");vl[In].type=Ti;vl[In].l=0;var Jn=[];function Kn(a){vl[a].Nb=!0;vl[a].V=R(0);return Jn[vl[a].type]=a}im=300;
var Ln=Kn(wm("brassica template",-1,R(0),c(1),0,If)),Mn=Kn(km("berry template",-1,0,Mf)),Nn=Kn(nm("mushroom template",-1,0,Qf)),On=Kn(tm("flower template",-1,c(0),0,Uf)),Pn=Kn(vm("stinging template",-1,c(0),0,Yf)),Qn=Kn(ym("bee template",-1,c(0),0,bg)),Rn=Kn(xm("mistletoe template",-1,0,gg)),Sn=Kn(qm("nuts template",-1,0,wg)),Tn=Kn(Am("pumpkin template (2x2)",-1,c(0),0,Ag));vl[Tn].Yb=!0;vl[Tn].lf=[Eg,Ig,Mg,Qg];var Un=[];function Vn(a){vl[a].Ab=!0;vl[a].V=R(0);return Un[vl[a].type]=a}im=400;
var Wn=Vn(wm("brassica ghost",-1,R(0),c(1),0,Kf));Vn(km("berry ghost",-1,0,Of));Vn(nm("mushroom ghost",-1,0,Sf));Vn(tm("flower ghost",-1,c(0),0,Wf));Vn(vm("stinging ghost",-1,c(0),0,$f));Vn(ym("bee ghost",-1,c(0),0,dg));Vn(xm("mistletoe ghost",-1,0,ig));Vn(qm("nuts ghost",-1,0,yg));var Xn=Vn(Am("pumpkin ghost",-1,c(0),0,Cg));vl[Xn].Yb=!0;vl[Xn].lf=[Gg,Kg,Og,Sg];im=2E3;
var Yn=R({g:666E6}),qk=c(2),Zn=Am("pumpkin (2x2)",0,Yn,10,Af,"Happy halloween! This crop takes up 2x2 field spaces. Its base seed production is "+L(qk)+" of the best planted berry anywhere in the field, so some regular berry must be planted somewhere. The pumpkin is bigger so can have more flower and other neighbors, which is a significant layout advantage. It gets the full bonus from most neighbors, but only half the bonus for winter tree warmth. It otherwise acts as a berry and gets the same bonuses and neighbor interactions. You can only have max 1 pumpkin.");
vl[Zn].Yb=!0;vl[Zn].lf=[vf,xf,yf,zf];var $n=[],Fj=[],ao=-1;
function bo(){this.name="a";this.pk=this.description=void 0;this.Rd="A";this.Sd="B";this.cj=this.bj="";this.Oi=this.Qa=void 0;this.index=0;this.jb=1;this.ve=this.gg=this.ue=this.sh=this.Bd=!1;this.V=R();this.Sf=c(1);this.qb=void 0;this.Ne="#ff0";this.Qe="000";this.kf=this.jf=void 0;this.Ud=!1;this.Fa=void 0;this.xd=function(){var a=this.name;0<D.i[this.index].count&&1!=this.jb&&(a+=" "+co(D.i[this.index].count));return a};this.Ej=function(){var a=this.name;1!=this.jb&&(a+=" "+co(D.i[this.index].count+
1));return a};this.fg=function(){return 0==this.jb?!1:D.i[this.index].count>=this.jb};this.le=function(){return D.i[this.index].f&&!this.fg()};this.O=function(a){a=oh(this.Sf,D.i[this.index].count+(a||0));return this.V.Ia(a)}}
function eo(a,b,d,e,f,g,h,k,l,n,p){if(Fj[ao]||0>ao||65535<ao)throw"upgrades id already exists or is invalid!";var m=new bo;m.index=ao++;Fj[m.index]=m;$n.push(m.index);m.name=a;m.V=b;m.jb=f;k&&(m.Ne=k);l&&(m.Qe=l);n&&(m.jf=n);p&&(m.kf=p);m.Qa=function(x){this.Bd?D.i[this.index].count=x:D.i[this.index].count++;D.i[this.index].f=!0;d()};e||(e=function(){return!0});m.Oi=e;m.description=g;m.pk=h;return m.index}
function fo(a,b,d,e,f){var g=vl[a],h="Unlock "+g.name,k="Unlocks new crop: "+g.name+".";pb(g.Mb.g,0)&&(k+=" Produces seeds.");pb(g.Mb.A,0)&&(k+=" Produces spores.");tb(g.va,0)||(k=g.type==Ui?k+" Boosts neighbor mushroom spores production without increasing seed consumption, but negatively orthogonally affects neighboring berries and flowers, so avoid touching those with this plant.":g.type==Zi?k+" Boosts neighboring flower's boost.":k+" Boosts neighbors such as berries and mushrooms. Does not boost watercress, but watercress can copy everything from berries that are boosted by flowers.");
k+=" Crop type: "+ij(g.type);h=eo(h,b,function(){a!=cn||!D.Ca[3]&&0!=D.ha||X("You unlocked the first type of flower! Flowers don't produce resources directly, but boost neighboring plants.",go,456645);a!=ho||!D.Ca[3]&&0!=D.ha||X("You unlocked the first type of mushroom! Mushrooms produce spores rather than seeds, and spores will be used by the tree.",go,8932);D.U[g.index].f=!0},function(){return e&&!e()?!1:f&&f()||void 0==d||D.Kb[vl[d].type]>vl[d].l?!0:!!D.Ga[d]},1,k,"Unlocks new crop of type "+ij(g.type),
"#dfc","#0a0",g.image[4],void 0);k=Fj[h];k.Fa=a;k.ue=!0;k.O=function(){return b};return h}
function io(a,b){var d=b.l,e=1,f=c(1);if(b.type==S){var g=lm(d).o(jo);var h=lm(d+1).o(jo/40);e=29;f=c(1.005)}else b.type==Si?(g=om(d).o(jo),h=om(d+1).o(jo/400),e=52,f=c(1.0025)):b.type==cj&&(g=rm(d),h=rm(d+1),e=20,f=c(1.0025));var k=oh((b.type==cj?h.A:h.g).a(b.type==cj?g.A:g.g),1/e);a.V=g;a.O=function(l){l=D.i[this.index].count+(l||0);if(b.type==cj){var n=th(f,c(l*l));l=g.A.Ia(oh(k,l+1)).Ia(n);return new R({A:l})}n=th(f,c(l*l));l=g.g.Ia(oh(k,l)).Ia(n);return new R({g:l})}}
function ko(a,b,d){var e=vl[a],f=e.name;e.Ma=ao;var g="production";e.type==Si&&(g="production but also consumption");var h=g="Improves "+g+" of "+e.name+" by "+Math.floor(100*(b-1))+"% (multiplicative)";e.type==Si&&(g+="<br><br>Warning: if your mushrooms don't have enough seeds from neighbors, this upgrade will not help since it also increases the consumption. Get your seeds production up first.");f=eo("Upgrade "+f,void 0,function(){},function(){return void 0==d?1<=D.Ga[a]:D.i[d].count},0,g,h,"#fdd",
"#f00",e.image[4],Dc);g=Fj[f];g.qb=c(b);g.Fa=a;g.sh=!0;io(g,e);return f}
function lo(a,b,d,e){var f=vl[a],g=f.l+hj[f.type],h=eo("Prestige "+f.name,b,function(){var k=vl[a];D.U[a].sa=1;mo(a);var l=Jn;D.challenge==Sj&&(l=Un);for(var n=0;n<D.D;n++)for(var p=0;p<D.B;p++){var m=D.C[n][p];Xk(m)&&no(m)==a&&(m.index=0,l[k.type]&&(m.index=oo+l[k.type]),m.F=0)}null!=k.Ma&&(D.i[k.Ma].count=0)},function(){return D.Kb[f.type]<g-1?!1:D.Kb[d]>e||D.ui[d]>=e?!0:!1},1,"Prestiges the crop: "+f.name+". This resets all its upgrades from this run to zero, removes any planted instances, and increases the production rate and cost of this crop, turning it into the next tier.","Prestiges the crop: "+
f.name,"#ff6","#a80",f.image[4],void 0);h=Fj[h];h.Fa=a;h.gg=!0;h.O=function(){return b}}function po(a,b){var d=a.Sf;if(b.type==Ti&&b.index!=In){var e=30;if(0==b.l||1==b.l)e=7;a.V=new R({g:um(b.l).g.o(Ao)});var f=a.V.g;b=um(b.l+1).g.o(Ao);d=oh(b.a(f),1/e)}else b.type==Zi&&(e=80,a.V=new R({g:um(4*b.l+3.15).g.o(Bo)}),f=a.V.g,b=um(4*(b.l+1)+3.15).g.o(Bo),d=oh(b.a(f),1/e));a.O=function(g){g=oh(d,D.i[this.index].count+(g||0));return this.V.Ia(g)}}
function Co(a,b,d,e,f){var g=vl[a],h=g.name;g.Ma=ao;var k=g.type==Ui?"Improves boost of "+g.name+" by "+Math.floor(100*d)+"% (scales by n^"+xl+" )":g.type==Zi?"Improves boost of "+g.name+" by "+Math.floor(100*d)+"% (scales by n^"+Rl+" )":"Improves boost of "+g.name+" by "+Math.floor(100*d)+"% (additive)";b=eo("Upgrade "+h,b,function(){},function(){return D.challenge==ul&&a==tl?!0:void 0==e?1<=D.Ga[a]:D.i[e].count},0,k,k,"#fdd","#f00",g.image[4],Dc);h=Fj[b];h.qb=c(d);h.Fa=a;h.sh=!0;h.Sf=c(f);po(h,
g);return b}var uk=.25;function Do(a,b,d,e,f){var g=vl[a],h=g.name;g.Ma=ao;var k="+"+L(c(uk))+" "+g.name+" base production (additive), +20% lifespan duration";b=eo("Upgrade "+h,b,function(){},function(){return f&&f()?!0:void 0==e?D.Ga[a]>=(d||1):D.i[e].count},0,k,k,"#fdd","#f00",g.image[4],Dc);g=Fj[b];g.qb=c(.2);g.Fa=a;g.sh=!0;g.O=function(l){l=ph(c(Eo),D.i[this.index].count+(l||0));return this.V.Ia(l)};return b}var Fo=[];
function Go(a,b,d,e,f,g,h,k){var l="Choice upgrade, pick one of the two proposed effects. Choose wisely. <br><br><b>"+e+"</b>:<br>"+g+"<br><br><b>"+f+"</b>:<br>"+h;a=eo(a,R(),d,b,1,l,"Choice upgrade, pick one of the two proposed effects","#000","#fff",k,void 0);b=Fj[a];b.Bd=!0;b.Rd=e;b.Sd=f;b.bj=g;b.cj=h;Fo.push(b);return a}function Ho(){var a=eo("<none>",R(),function(){},function(){return!1},1,"<none>","<none>");Fj[a].Ud=!0;return a}ao=25;
var Io=fo(Fm,lm(0),ln,function(){return 0<D.ha?!0:10<=D.Kc+D.Ib}),Jo=fo(Gm,lm(1),Fm,void 0,function(){return!1}),Ko=fo(Hm,lm(2),Gm,void 0,function(){return!1}),Lo=fo(Im,lm(3),Hm),Mo=fo(Jm,lm(4),Im),No=fo(Km,lm(5),Jm),Oo=fo(Lm,lm(6),Km),Po=fo(Mm,lm(7),Lm),Qo=fo(Nm,lm(8),Mm),Ro=fo(Om,lm(9),Nm),So=fo(Pm,lm(10),Om),To=fo(Qm,lm(11),Pm),Uo=fo(Rm,lm(12),Qm),Vo=fo(Sm,lm(13),Rm),Wo=fo(Tm,lm(14),Sm),Xo=fo(Um,lm(15),Tm);ao=50;
var ho=fo(Vm,om(0),Gm,void 0,function(){return!oj()&&D.K[Yo].count?!0:!1}),Zo=fo(Wm,om(1),Im,function(){return!!D.i[ho].count}),$o=fo(Xm,om(2),Km,function(){return!!D.i[Zo].count}),ap=fo(Ym,om(3),Mm,function(){return!!D.i[$o].count}),bp=fo(Zm,om(4),Om,function(){return!!D.i[ap].count}),cp=fo($m,om(5),Qm,function(){return!!D.i[bp].count}),dp=fo(an,om(6),Sm,function(){return!!D.i[cp].count}),ep=fo(bn,om(7),Um,function(){return!!D.i[dp].count});ao=75;
var gp=fo(cn,um(0),Fm,void 0,function(){return!oj()&&D.K[fp].count?!0:!1}),hp=fo(dn,um(1),Hm,function(){return!!D.i[gp].count}),ip=fo(en,um(2),Jm,function(){return!!D.i[hp].count}),jp=fo(fn,um(3),Lm,function(){return!!D.i[ip].count}),kp=fo(gn,um(4),Nm,function(){return!!D.i[jp].count}),lp=fo(hn,um(5),Pm,function(){return!!D.i[kp].count}),mp=fo(jn,um(6),Rm,function(){return!!D.i[lp].count}),np=fo(kn,um(7),Tm,function(){return!!D.i[mp].count});ao=100;
var op=fo(wl,om(1.05),void 0,function(){return D.Ga[Wm]||D.Ga[Jm]?!0:!1}),pp=fo(tl,om(5.05),void 0,function(){return 2!=oj()&&D.P[ul].X&&D.challenge!=ul?D.Ga[$m]||D.Ga[Rm]?!0:!1:!1});ao=110;var sp=fo(nn,um(0).o(2),void 0,function(){return oj()||D.challenge&&!qp[D.challenge].lc||!(0<D.ha&&D.K[rp].count)?!1:D.Ga[Fm]||D.i[Jo].count||!oj()&&D.K[fp].count?!0:!1});ao=120;
var tp=fo(on,um(3.15),void 0,function(){return 2!=oj()&&D.P[kj].X?D.Ga[fn]||D.Ga[Mm]?!0:!1:!1}),up=fo(pn,um(7.15),void 0,function(){return 2!=oj()&&D.P[kj].X&&D.i[tp].count?D.Ga[kn]||D.Ga[Um]?!0:!1:!1});ao=200;
var vp=fo(sn,rm(0),void 0,function(){return!Fk()||D.challenge&&!qp[D.challenge].Le?!1:D.j>=Bm}),wp=fo(tn,rm(1),sn,function(){return Fk()?!0:!1}),xp=fo(un,rm(2),tn,function(){return Fk()?!0:!1}),yp=fo(vn,rm(3),un,function(){return Fk()?!0:!1}),zp=fo(wn,rm(4),vn,function(){return Fk()?!0:!1}),Ap=fo(xn,rm(5),wn,function(){return Fk()?!0:!1}),Bp=fo(yn,rm(6),xn,function(){return Fk()?!0:!1}),Cp=fo(zn,rm(7),yn,function(){return Fk()?!0:!1}),Dp=fo(An,rm(8),zn,function(){return Fk()?!0:!1}),Ep=fo(Bn,rm(9),
An,function(){return Fk()?!0:!1}),Fp=fo(Cn,rm(10),Bn,function(){return Fk()?!0:!1}),Gp=fo(Dn,rm(11),Cn,function(){return Fk()?!0:!1}),Hp=fo(En,rm(12),Dn,function(){return Fk()?!0:!1}),Ip=fo(Fn,rm(13),En,function(){return Fk()?!0:!1}),Jp=fo(Gn,rm(14),Fn,function(){return Fk()?!0:!1}),Kp=fo(Hn,rm(15),Gn,function(){return Fk()?!0:!1});ao=250;var Lp=fo(mn,R({g:100}),void 0,function(){return 2!=oj()&&D.P[$l].X?D.Ga[Nm]?!0:!1:!1});ao=325;lo(Fm,lm(16),S,15);lo(Gm,lm(17),S,16);lo(Hm,lm(18),S,17);
lo(Im,lm(19),S,18);lo(Jm,lm(20),S,19);lo(Km,lm(21),S,20);lo(Lm,lm(22),S,21);lo(Mm,lm(23),S,22);lo(Nm,lm(24),S,23);lo(Om,lm(25),S,24);lo(Pm,lm(26),S,25);lo(Qm,lm(27),S,26);lo(Rm,lm(28),S,27);lo(Sm,lm(29),S,28);lo(Tm,lm(30),S,29);lo(Um,lm(31),S,30);ao=350;lo(Vm,om(8),S,17);lo(Wm,om(9),S,19);lo(Xm,om(10),S,21);lo(Ym,om(11),S,23);lo(Zm,om(12),S,25);lo($m,om(13),S,27);lo(an,om(14),S,29);lo(bn,om(15),S,31);ao=375;lo(cn,um(8),S,16);lo(dn,um(9),S,18);lo(en,um(10),S,20);lo(fn,um(11),S,22);lo(gn,um(12),S,24);
lo(hn,um(13),S,26);lo(jn,um(14),S,28);lo(kn,um(15),S,30);var Mp=oh(sm(1).S.a(sm(0).S),.05),Eo=1.65,jo=10,Ao=15,xl=1.05,Rl=1.05,Bo=10;ao=400;Co(In,R({g:1E3}).o(Ao),.5,void 0,2.5);var Np=Co(Ol,vl[Ol].V.o(10),c(.5),void 0,10);Fj[Np].description="boosts the worker bee boost "+L(Fj[Np].qb)+" (additive)";var Op=Co(Pl,vl[Pl].V.o(10),c(.5),void 0,10);Fj[Op].description="boosts the drone boost "+L(Fj[Op].qb)+" (additive)";var Pp=Co(Ql,vl[Ql].V.o(10),c(.5),void 0,10);
Fj[Pp].description="boosts the queen bee boost "+L(Fj[Pp].qb)+" (additive)";ao=500;var Qp=ko(Fm,1.25,Io);ko(Gm,1.25,Jo);ko(Hm,1.25,Ko);ko(Im,1.25,Lo);ko(Jm,1.25,Mo);ko(Km,1.25,No);ko(Lm,1.25,Oo);ko(Mm,1.25,Po);ko(Nm,1.25,Qo);ko(Om,1.25,Ro);ko(Pm,1.25,So);ko(Qm,1.25,To);ko(Rm,1.25,Uo);ko(Sm,1.25,Vo);ko(Tm,1.25,Wo);ko(Um,1.25,Xo);ao=525;var Rp=ko(Vm,1.25,ho);ko(Wm,1.25,Zo);ko(Xm,1.25,$o);ko(Ym,1.25,ap);ko(Zm,1.25,bp);ko($m,1.25,cp);ko(an,1.25,dp);ko(bn,1.25,ep);ao=550;
var Sp=Co(cn,um(0).o(Ao),.5,gp,2.5);Co(dn,um(1).o(Ao),.5,hp,2.5);Co(en,um(2).o(Ao),.5,ip,2.5);Co(fn,um(3).o(Ao),.5,jp,2.5);Co(gn,um(4).o(Ao),.5,kp,2.5);Co(hn,um(5).o(Ao),.5,lp,2.5);Co(jn,um(6).o(Ao),.5,mp,2.5);Co(kn,um(7).o(Ao),.5,np,2.5);ao=575;var Tp=Co(wl,om(1.05).o(10),.5,op,2.5);Co(tl,om(5.05).o(10),.5,pp,2.5);ao=580;var Wp=Do(ln,R({g:100}),5,void 0,function(){return!oj()&&D.K[Up].count||2!=oj()&&Vp()?!0:(1<=D.Kc||5<=D.Ib)&&1<=D.Ib}),Xp=Do(mn,R({g:1E3}),1,Lp);ao=590;
var Yp=Co(on,um(3.15).o(Bo),.5,tp,5);Co(pn,um(7.15).o(Bo),.5,up,5);ao=600;ko(sn,Mp,vp);var Zp=ko(tn,Mp,wp);ko(un,Mp,xp);ko(vn,Mp,yp);ko(wn,Mp,zp);ko(xn,Mp,Ap);ko(yn,Mp,Bp);ko(zn,Mp,Cp);ko(An,Mp,Dp);ko(Bn,Mp,Ep);ko(Cn,Mp,Fp);ko(Dn,Mp,Gp);ko(En,Mp,Hp);ko(Fn,Mp,Ip);ko(Gn,Mp,Jp);ko(Hn,Mp,Kp);ao=1E3;
var Aj=eo("mist ability",Dm(4).o(0),function(){},function(){return D.challenge==bl?!1:4<=D.j?(D.i[Aj].f=!0,D.i[Aj].count=1,!0):!1},1,'While enabled, mist temporarily increases mushroom spore production while decreasing seed consumption. In addition, mushrooms are then not affected by winter. This active ability is enabled using its icon button at the top or (by default) the shortcut "shift+2".',"Unlocks active weather ability","#fff","#88f",Hc,void 0);Fj[Aj].ve=!0;
var yj=eo("sun ability",Dm(2).o(0),function(){},function(){return D.challenge==bl?!1:2<=D.j?(D.i[yj].f=!0,D.i[yj].count=1,!0):!1},1,'While enabled, the sun temporarily increases berry seed production. In addition, berries are then not affected by winter. This active ability is enabled using its icon button at the top or (by default) the shortcut "shift+1".',"Unlocks active weather ability","#ccf","#88f",Ic,void 0);Fj[yj].ve=!0;
var Cj=eo("rainbow ability",Dm(6).o(0),function(){},function(){return D.challenge==bl?!1:6<=D.j?(D.i[Cj].f=!0,D.i[Cj].count=1,!0):!1},1,'While enabled, flowers get a boost, and are not affected by winter. This active ability is enabled using its icon button at the top or (by default) the shortcut "shift+3".',"Unlocks active weather ability","#ccf","#00f",Kc,void 0);Fj[Cj].ve=!0;ao=1025;
var $p=Go("fern choice",function(){return 3<=D.j},function(){},"Slower ferns","Richer ferns","Ferns take 9 instead of 2 minutes to appear, but contain enough resources to make up the difference exactly. Ferns left for a very long time also have a chance to become bushy. This allows to collect more fern resources during idle play, but has no effect on the overall fern income during active play. This starts taking effect only for the next fern that appears.","Ferns contain on average 25% more resources, but they'll appear as often as before so this benefits active play more than idle play. This starts taking effect only for the next fern that appears.",
kc[0]);Fj[$p].ve=!0;var aq=Ho();Ho();Ho();Ho();Ho();Ho();Ho();
var bq=.25,nj=Go("weather choice",function(){return 8<=D.j},function(){1==D.i[nj].count&&(120<D.time-D.xb&&(D.xb-=720),180<D.time-D.kb&&(D.kb-=1080),240<D.time-D.lb&&(D.lb-=1440))},"Long weather","Strong weather","Makes the active weather abilities run twice as long, but also twice as long to recharge. This benefits idle play, but gives on average no benefit for active play.","Increases all active ability weather effects by "+100*bq+"%. The active abilities recharge time remains the same so this benefits active play more than idle play.",Ic);
Fj[nj].ve=!0;
var cq=Ho(),Hj=Go("brassica choice",function(){return 14<=D.j},function(){for(var a=0;a<D.D;a++)for(var b=0;b<D.B;b++){var d=D.C[a][b];d.index==oo+ln&&(d.F=1)}},"Sturdy brassica","High-yield brassica","Increases brassica (such as watercress) copying effect constantly by 25% and its lifetime by 50%. This benefits idle play more than active play, compared to the other choice. Other effects may apply to higher tier brassica.","Increases brassica (such as watercress) copying effect by 50% initially, but after a while this bonus gradually disappears over the lifetime of the brassica. Refreshing or replanting the brassica gives back the full bonus. This benefits active play more than idle play, compared to the other choice. Other effects may apply to higher tier brassica.",ue[4]);
Fj[Hj].ve=!0;var xk=.2,wk=Go("resin choice",function(){return 22<=D.j},function(){},"Resin bonus","Production bonus","Gives a 20% bonus to resin production, but not to seed and spores production","Gives a "+100*xk+"% bonus to seed and spores production, but not to resin production",Fc);Fj[wk].ve=!0;$n=$n.sort(function(a,b){return a-b});
function dq(){if(D.challenge||!ol(3)||oj()||!D.ha||!D.i[Io].count)return!1;var a=!1;0==D.challenge&&(a=!0);if(D.challenge==eq||D.challenge==ul)a=!0;D.challenge==fk&&(a=!0);D.challenge==bl&&(a=!0);D.challenge==fq&&(a=!0);D.challenge==Rj&&(a=!0);D.challenge==$l&&(a=!0);return a?!0:!1}ao=2E3;fo(Zn,Yn,void 0,function(){return dq()});ao=3E3;lo(sn,rm(16),cj,15);lo(tn,rm(17),cj,16);lo(un,rm(18),cj,17);lo(vn,rm(19),cj,18);lo(wn,rm(20),cj,19);lo(xn,rm(21),cj,20);lo(yn,rm(22),cj,21);lo(zn,rm(23),cj,22);
lo(An,rm(24),cj,23);lo(Bn,rm(25),cj,24);lo(Cn,rm(26),cj,25);lo(Dn,rm(27),cj,26);lo(En,rm(28),cj,27);lo(Fn,rm(29),cj,28);lo(Gn,rm(30),cj,29);lo(Hn,rm(31),cj,30);
function gq(){this.description=this.name="a";this.Wc=["a"];this.nl="a";this.index=0;this.kc=this.Le=this.lc=this.Ke=this.Fc=!1;this.ja=[0];this.qb=c(0);this.If=this.Pe=0;this.Hf=1.1;this.ld=!1;this.ga=0;this.Yh=void 0;this.kk=function(){return!1};this.fl=[function(){}];this.vf=function(a){var b=D.P[this.index].X;a&&D.challenge==this.index&&b<this.ja.length&&D.j>=this.ja[b]&&b++;return b};this.Nc=function(a){return this.vf(a)>=this.ja.length};this.Ak=function(a){if(1>=this.ga)return this.Nc(a);var b=
D.P[this.index].tb;a&&D.challenge==this.index&&D.j>=this.ja[0]&&b++;return 0<b&&b>=this.ga};this.li=function(){return 2>this.ga?0:D.P[this.index].tb%this.ga};this.uf=function(a){return this.Nc(a)?this.ja[this.ja.length-1]:this.ja[this.vf(a)]};this.Ql=function(){return this.ja[this.ja.length-1]}}var hq=[],qp=[],iq=1;
function jq(a,b,d,e,f,g,h,k,l,n){if(qp[iq]||0>iq||65535<iq)throw"challenge id already exists or is invalid!";Array.isArray(b)||(b=[b]);Array.isArray(g)||(g=[g]);Array.isArray(l)||(l=[l]);var p=new gq;p.index=iq++;qp[p.index]=p;hq.push(p.index);p.name=a;p.description=e;p.$l=f;p.Wc=g;p.nl=h;p.ja=b;p.qb=d;p.kk=k;p.fl=l;p.Fc=!!(n&1);p.Ke=!!(n&2);p.lc=!!(n&4);p.Le=!!(n&16);p.kc=!!(n&8);return p.index}
var kj=jq("bee challenge",10,c(.1),"Grow bees during this challenge! This has different gameplay than the regular game.",'\n\u2022 You get only limited regular crops, and must instead boost global production using specially placed bees:<br>\n&nbsp;&nbsp;- Worker bees must be next to a flower, to add to a global boost.<br>\n&nbsp;&nbsp;- Drones must be next to a worker bee, to boost that worker.<br>\n&nbsp;&nbsp;- Queens must be next to a drone, to boost that drone.<br>\n&nbsp;&nbsp;- You still also have to use berries, mushrooms, flowers and watercress to get the necessary spores and seeds.<br>\n\u2022 The only types of crop available are 1 berry type, 1 mushroom type, 1 flower type and 3 types of bee. They\'re all available from the beginning, and no others unlock.<br>\n\u2022 The bee boost applies to the global ecosystem: all berries, mushrooms and flowers (so effectively cubic scaling).<br>\n\u2022 "Neighbor" and "next to" mean the 4-neighborhood, so orthogonally touching but not diagonally.<br>\n',
"Bee nests available in the regular game from now on after planting daisies. In the main game, bee nests boost flowers next to the bee nests. The bee types of this challenge don't exist in the main game and the bee nest works very differently in the main game (no global boost) than the bees in this challenge.","having grown a daisy.",function(){return 1<=D.Ga[fn]},function(){},0),eq=jq("rocks challenge",[15,45,75,105,135],c(.05),"The field has rocks on which you can't plant. The rock pattern is randomly generated at the start of the challenge, but will always be the same within the same when starting in the same 3-hour time interval (based on global UTC time)",
"\n\u2022 All regular crops, upgrades, ... are available and work as usual<br>\n\u2022 There are randomized unremovable rocks on the field, blocking the planting of crops<br>\n",["one extra storage slot for fruits","another extra storage slot for fruits","another extra storage slot for fruits","another extra storage slot for fruits","another extra storage slot for fruits"],"reaching tree level 15",function(){return 15<=D.j},[function(){D.ya++},function(){D.ya++},function(){D.ya++},function(){D.ya++},
function(){D.ya++}],31),Sj=jq("undeletable challenge",25,c(.05),"\nDuring this challenge, no crops can be removed, only added. Ensure to leave spots open for future crops, and plan ahead before planting!\n","\n\u2022 All regular crops, upgrades, ... are available and work as usual<br>\n\u2022 No crops can be deleted, except watercress<br>\n","deleting a crop gives 66% instead of 33% recoup of resources","reaching tree level 27",function(){return 27<=D.j},function(){},11),fq=jq("no upgrades challenge",
[20,30],c(.1),"\nDuring this challenge, crops cannot be upgraded.\n","\n\u2022 Crops cannot be upgraded, except watercress<br>\n\u2022 Ethereal upgrades, achievement boost, etc..., still apply as normal<br>\n",["unlock the auto-upgrade ability of the automaton","add more options to the cost configuration dialogs of the automaton"],"reaching ethereal tree level 2 and having automaton",function(){return 2<=D.J&&kq()},[function(){lq(29);X("Auto-upgrade unlocked!",mq,1067714398)},function(){for(var a=
1;a<D.$c.length;a++)D.$c[a]=D.$c[0];for(a=1;a<D.Cb.length;a++)D.Cb[a]=D.Cb[0];lq(30);X("Auto-upgrade extra options unlocked!",mq,1067714398)}],31);function nq(a){return a.sh&&a.index!=Wp&&a.index!=Xp}
var Rj=jq("wither challenge",[50,70,90,110,130],c(.075),"\nDuring this challenge, crops wither and must be replanted.\n","\n\u2022 Planted crops are fullgrown immediately<br>\n\u2022 Planted crops wither and disappear after 2 minutes<br>\n\u2022 Crops gradually produce less and less as they wither<br>\n\u2022 Cannot delete crops, they'll disappear over time instead, but you can replace crops immediately by more expensive crops of the same type.<br>\n\u2022 Cannot use blueprints. However, one of the later target levels of this challenge unlocks the ability to use them in this challenge too.<br>\n",["unlock the auto-action ability of the automaton",
"allow using blueprints during future wither challenge runs","unlock a second automaton auto-action","auto-action can now also automate weather, fern and brassica refresh","unlock a third automaton auto-action"],"reaching ethereal tree level 5 and having automaton with auto-unlock plants",function(){return 5<=D.J&&kq()&&oq()},[function(){pq(D,1);D.xa[0].enabled=!0;X("Automaton auto-action unlocked!",mq,1067714398,void 0,void 0,!0);lq(40)},function(){X("From now on, you can use blueprints during the wither challenge!",
mq,1067714398,void 0,void 0,!0)},function(){pq(D,2);X("An additional automaton auto-action unlocked!",mq,1067714398,void 0,void 0,!0)},function(){X("From now on, auto-actions can also be configured to activate weather, refresh brassica or pick up a fern!",mq,1067714398,void 0,void 0,!0)},function(){pq(D,3);X("An additional automaton auto-action unlocked!",mq,1067714398,void 0,void 0,!0)}],0);function tk(a){return 0>a?0:1<a?1:Math.pow(a,.66)}
var rq=jq("blackberry challenge",[19],c(.1),"\nDuring this challenge, only the first tier of each crop type is available.\n","\n\u2022 Only blackberries, champignons, anemones, nettle, bee nests, watercress and mistletoe are available, from the beginning<br>\n",["unlock the auto-unlock ability of the automaton"],"reaching ethereal tree level 3 and having automaton with auto-upgrade",function(){return 3<=D.J&&kq()&&qq()},[function(){X("Auto-unlock unlocked!",mq,1067714398);lq(33)}],15),sq=["0001000010100001001100011",
"1001010000010011110101000","0000010001000110100101000","0100100001000011000011000","0000000001000011100100000"],Ll=jq("rockier challenge",[40],c(0),"A harder version of the rocks challenge. The field has a difficult predetermined rock pattern. Beating the challenge the first time gives a new type of passive bonus. The patterns are very restrictive and don't benefit from field size above 5x5. This challenge is not a cakewalk, especially later patterns.","\n\u2022 All regular crops, upgrades, ... are available and work as usual<br>\n\u2022 There are unremovable rocks on the field, blocking the planting of crops<br>\n\u2022 Bees can't diagonally reach flowers even in spring, due to the heavy amount of rocks<br>\n\u2022 The rock pattern is predetermined, every time you beat the challenge it cycles to a next, harder, pattern<br>\n\u2022 There are 5 patterns in total, each gives an achievement<br>\n",
"multiplicity for berries and mushrooms","reaching tree level 45",function(){return 45<=D.j},function(){lq(34)},31);qp[Ll].ga=5;qp[Ll].Yh=[c(.06),c(.07),c(.08),c(.09),c(.1)];
var ul=jq("thistle challenge",[66],c(.1),"The field is full of thistles which you cannot remove. The thistle pattern is randomly determined at the start of the challenge, and is generated with a 3-hour UTC time interval as pseudorandom seed, so you can get a new pattern every 3 hours. The thistles hurt most crops, but benefit mushrooms, they are next-tier nettles.\n","\n\u2022 All regular crops, upgrades, ... are available and work as usual<br>\n\u2022 There are randomized unremovable thistles on the field, which hurt crops that touch them, but benefit mushrooms, more than nettles<br>\n",
["Unlocks the thistle crop, which is the next tier of nettles. Once unlocked, it's available in the base game once you have grown a portobello."],"having grown a portobello",function(){return 1<=D.Ga[$m]},function(){X("Thistle unlocked! Thistle is the next tier of the nettle crop.")},31),$l=jq("wasabi challenge",[65],c(.2),"You only get income from brassica, such as watercress.","\n\u2022 You can only get income from brassica, such as watercress, and their copying effect.<br>\n\u2022 Mushrooms, berries, flowers and so on all still work as normal, but you need to ensure there's a brassica next to some berry, and a brassica next to some mushroom, to get income.<br>\n\u2022 The brassica copying fruit ability does not work during this challenge.<br>\n\u2022 As usual, having multiple brassica reduces the global brassica copying effect, max 2 or so works well.<br>\n",
["Unlocks the wasabi crop, which is the next tier of brassica after watercress. Once unlocked, it's available in the base game once you have grown a juniper (berry tier 9), and can be used in re-runs of this challenge as well."],"reaching ethereal tree level 7",function(){return 7<=D.J},function(){X("Wasabi unlocked! Wasabi is the next tier of brassica, after watercress crop.")},31),tq=jq("basic challenge",[10],c(.15),"Upgrades and effects that last through transcensions don't work, everything is back to basics",
"\n\u2022 Everything, except the effects listed below, is back to basics like at the first run of the game: Upgrades and effects that last through transcensions (e.g. ethereal crops and upgrades, achievement bonus, squirrel, challenge bonus, multiplicity, ...) or unlock later (amber, ...) don't work.<br>\n\u2022 Basic upgrades, weather, seasons, etc... work, since these are part of a single run, not an effect that lasts through transcensions<br>\n\u2022 Automation with the automaton works<br>\n\u2022 Crops that were unlocked by a challenge, like bee nests, are available if unlocked, but they may not be feasibly reachable<br>\n\u2022 Fruits only partially work, as follows:<br>\n&nbsp;&nbsp;- The fruit abilities strength is virtually reduced to that of a fruit with tier as low as current tree level could drop (e.g. zinc or bronze) with all abilities at maximum level 3.<br>\n&nbsp;&nbsp;- This will be visible in the detailed crop stats in the field, the fruit tab itself will show the fruits with their original levels as if the challenge isn't active.<br>\n&nbsp;&nbsp;- You get the benefit of having multiple abilities of higher tier fruits, even though the fruit otherwise acts like a lower tier one.<br>\n\u2022 Field size remains at your current size, it is not lowered to the original 5x5.<br>\n\u2022 Reminder: you have to plant enough watercress before blackberry unlocks<br>\n",
["Alternate challenge production bonus."],"reaching tree level 50",function(){return 50<=D.j},function(){},0);qp[tq].Hf=c(.7);qp[tq].Pe=10;qp[tq].If=30;qp[tq].ld=!0;
var uq=jq("truly basic challenge",[10],c(.35),"Like the basic challenge, but even less effects work, truly everything is back to basics.","\n\u2022 Truly everything is back to basics like at the first run of the game and even a bit more difficult. Running this challenge now is as good as it can get since no future game advancement can make it easier.<br>\n\u2022 Examples of effects that don't work: ethereal crops and upgrades, achievement bonus, squirrel, challenge bonus, multiplicity, resin bonus, amber, fruits, automaton, field size (it will be 5x5), bees don't exist, ...<br>\n\u2022 Basic upgrades, weather, seasons, etc... work, since these are part of a single run, not an effect that lasts through transcensions<br>\n\u2022 The tabs such as fruit, automaton, squirrel and ethereal field are visible and usable, but won't affect the basic field during this challenge.<br>\n\u2022 Reminder: you have to plant enough watercress before blackberry unlocks<br>\n",["Automaton can do auto-prestige. This is available as part of auto-unlock and enabled by default."],
"Prestiging any crop",function(){return 1<=D.ih},function(){D.Me=1;lq(38);X("Auto-prestige unlocked!",mq,2067714398)},0);qp[uq].Hf=c(.5);qp[uq].Pe=10;qp[uq].If=25;qp[uq].ld=!0;var vq=.25;function wq(){return D.P[bl].X&&!oj()&&D.challenge!=bl}function dl(a){var b=!1;0==a&&(b=!!D.i[yj].count);1==a&&(b=!!D.i[Aj].count);2==a&&(b=!!D.i[Cj].count);return b?wq()&&D.Wa==a:!1}
var bl=jq("stormy challenge",[65],c(.1),"The weather is stormy, other weather doesn't work","\n\u2022 The weather is stormy throughout the challenge, and other weather abilities don't work.<br>\n\u2022 Every 2 minutes, a crop gets hit by lightning and turns into a ghost. By an amazing coincidence, the lightning always hits the most expensive crop.<br>\n\u2022 Berries, mushrooms and flowers are half as efficient as normal.<br>\n",["Weather effects permanently last in a weaker form after they were activated."],
"reaching tree level 65",function(){return 65<=D.j},function(){},31),fk=jq("infernal challenge",[20],c(.2),"A challenge where the season is infernal and everything is difficult.","\n\u2022 There is only one season: infernal. This doesn't affect the timing of seasons of regular runs.<br>\n\u2022 Production or boost of most crops divided through 1 billion.<br>\n\u2022 In addition, the stats of berries and mushrooms are reduced even more for higher tiers.<br>\n\u2022 Seasonal boosts don't work.<br>\n",
["Alternate challenge production bonus."],"reaching tree level 85",function(){return 85<=D.j},function(){},0);qp[fk].Hf=c(.6);qp[fk].Pe=20;qp[fk].ld=!0;var xq=[eq,Ll,kj,Sj,fq,rq,Rj,ul,bl,$l,tq,fk,uq];if(xq.length!=hq.length)throw"challenges order not same length as challenges!";function oj(){return D.challenge==uq?2:D.challenge==tq?1:0}function yq(){this.name="a";this.V=R();this.Mb=R();this.effect=c(0);this.Ra=this.index=0;this.va=c(0);this.Gd="";this.image=void 0;this.J=0;this.Ab=this.Nb=!1}
yq.prototype.O=function(a,b){var d=1.5;this.type==Xi&&(d=2);this.type==aj&&(d=1.5);a=D.ad[this.index]+(a||0);void 0!=b&&(a=b);return this.V.o(Math.pow(d,a))};yq.prototype.ub=function(){return this.O(-1).o(1)};yq.prototype.za=function(){return this.Ra};
function zq(a,b,d){a=a.va.clone();d&&d.push(["base",!0,c(0),a.clone()]);if(b){for(var e=0,f=0;8>f;f++){var g=b.x+(1==f||4==f||5==f?1:3==f||6==f||7==f?-1:0),h=b.y+(0==f||4==f||7==f?-1:2==f||5==f||6==f?1:0);0>g||g>=D.fa||0>h||h>=D.ea||4<=f&&!Ml(b.x,b.y,g,h,D.ka)||(g=D.ka[h][g],Xk(g)&&no(g)==Aq&&e++)}e&&Rk(Bq)&&(b=Tk(Bq).L(1),a.u(b),d&&d.push(["mistletoe neighbor",!0,b,a.clone()]))}return a}var Cq=c(.5),Dq=c(.5);
function Eq(){var a=new c(0);0<D.gb&&a.v(Fq);D.$[Gq].count&&a.v(Hq.o(D.$[Gq].count));D.$[Iq].count&&a.v(Jq.o(D.$[Iq].count));return a}
yq.prototype.wc=function(a,b){var d=this.effect.clone();b&&b.push(["base",!0,c(0),d.clone()]);if(a){for(var e=new c(1),f=0,g=0;4>g;g++){var h=a.x+(1==g?1:3==g?-1:0),k=a.y+(2==g?1:0==g?-1:0);0>h||h>=D.fa||0>k||k>=D.ea||(h=D.ka[k][h],Xk(h)&&Kq[no(h)].type==Xi&&(h=zq(Kq[no(h)],h),h.T(0)&&(e.v(h),f++)))}f&&(d.u(e),b&&b.push(["lotuses ("+f+")",!0,e,d.clone()]))}if(a){var l=0,n=0;for(g=e=f=0;8>g;g++)h=a.x+(1==g||4==g||5==g?1:3==g||6==g||7==g?-1:0),k=a.y+(0==g||4==g||7==g?-1:2==g||5==g||6==g?1:0),0>h||h>=
D.fa||0>k||k>=D.ea||4<=g&&!Ml(a.x,a.y,h,k,D.ka)||(h=D.ka[k][h],Xk(h)&&(no(h)==Lq&&l++,no(h)==Mq&&n++,no(h)==Aq&&f++),!(4>g||D.$[Nq].count)||h.index!=Oq&&h.index!=Pq||e++);l&&(a=Qq().L(1),d.u(a),b&&b.push(["automaton neighbor",!0,a,d.clone()]));n&&(a=Rq().L(1),d.u(a),b&&b.push(["squirrel neighbor",!0,a,d.clone()]));f&&Rk(Sq)&&(a=Tk(Sq).L(1),d.u(a),b&&b.push(["mistletoe neighbor",!0,a,d.clone()]));e&&(a=Eq().L(1),a.T(1)&&(d.u(a),b&&b.push(["tree neighbor",!0,a,d.clone()])))}this.type==S&&(a=D.K[Tq],
0<a.count&&(g=Uq.o(a.count).L(1),d.u(g),b&&b.push(["upgrades ("+a.count+")",!0,g,d.clone()])));this.type==Si&&(a=D.K[Vq],0<a.count&&(g=Wq.o(a.count).L(1),d.u(g),b&&b.push(["upgrades ("+a.count+")",!0,g,d.clone()])));this.type==Ti&&(a=D.K[Xq],0<a.count&&(g=Yq.o(a.count).L(1),d.u(g),b&&b.push(["upgrades ("+a.count+")",!0,g,d.clone()])));this.type==Ui&&(a=D.K[Zq],0<a.count&&(g=$q.o(a.count).L(1),d.u(g),b&&b.push(["upgrades ("+a.count+")",!0,g,d.clone()])));this.type==Zi&&(a=D.K[ar],0<a.count&&(g=br.o(a.count).L(1),
d.u(g),b&&b.push(["upgrades ("+a.count+")",!0,g,d.clone()])));return d};var cr=[],Kq=[],dr=[],er=-1;function fr(a,b,d,e,f,g,h,k,l,n,p){l||(l=sd);if(Kq[er]||0>er||65535<er)throw"crop2 id already exists or is invalid!";var m=new yq;m.index=er++;Kq[m.index]=m;cr.push(m.index);m.name=a;m.V=d;m.Mb=e;m.$h=h;m.Zh=k;m.Ra=g;m.image=l;m.Gd="";m.va=f;m.J=b;m.l=p;m.type=n;void 0!=n&&void 0!=p&&(dr[n]||(dr[n]=[]),dr[n][p]=m);return m.index}
function gr(a,b,d,e,f,g,h,k){a=fr(a,b,e,R({}),c(0),f,void 0,h,k,S,d);Kq[a].effect=g;return a}function hr(a,b,d,e,f,g,h,k){a=fr(a,b,e,R({}),c(0),f,void 0,h,k,Si,d);Kq[a].effect=g;return a}function ir(a,b,d,e,f,g,h,k){a=fr(a,b,e,R({}),c(0),f,void 0,h,k,Ti,d);Kq[a].effect=g;return a}function jr(a,b,d,e,f,g,h,k){a=fr(a,b,e,R({}),c(0),f,void 0,h,k,Ui,d);Kq[a].effect=g;return a}function kr(a,b,d,e,f,g,h,k){return fr(a,b,e,R({}),c(f),g,void 0,h,k,Xi,d)}
function lr(a,b,d,e,f,g,h,k){return fr(a,b,e,R({}),c(0),f,g,h,k,aj,d)}function mr(a,b,d,e,f,g,h,k){a=fr(a,b,e,R({}),c(0),f,void 0,h,k,Zi,d);Kq[a].effect=g;return a}function nr(a,b,d,e,f,g,h){a=fr(a,15,d,R({}),c(0),e,void 0,g,h,Yi,b);Kq[a].effect=f;return a}er=0;
var or=lr("fern",0,0,R({c:10}),10,"gives 1000 * n^3 starter seeds","Gives 1000 starter seeds after every transcension and also immediately now. If you have multiple, gives 1000 * n^3 starter seeds, with n the amount of ethereal ferns: first one gives 1000, with two you get 8000, three gives 27000, four gives 64000, and so on.",Re),pr=lr("fern II",2,1,R({c:200}),10,"gives 10000 * n^3 starter seeds","Gives 10000 starter seeds after every transcension and also immediately now. If you have multiple, gives 10000 * n^3 starter, with n the amount of ethereal ferns: first one gives 10000, with two you get 80000, three gives 270000, four gives 640000, and so on.",
Se),qr=lr("fern III",4,2,R({c:5E4}),10,"gives 100000 * n^3 starter seeds","Gives 100000 starter seeds after every transcension and also immediately now. If you have multiple, gives 100000 * n^3 starter, with n the amount of ethereal ferns: first one gives 100000, with two you get 800000, three gives 2700000, four gives 6400000, and so on.",Te),rr=lr("fern IV",6,3,R({c:1E6}),10,"gives 1000000 * n^3 starter seeds","Gives 1000000 starter seeds after every transcension and also immediately now. If you have multiple, gives 1000000 * n^3 starter, with n the amount of ethereal ferns: first one gives 1000000, with two you get 8000000, three gives 27000000, four gives 64000000, and so on.",
Ue),sr=lr("fern V",8,4,R({c:2E8}),10,"gives 10000000 * n^3 starter seeds","Gives 10000000 starter seeds after every transcension and also immediately now. If you have multiple, gives 10000000 * n^3 starter, with n the amount of ethereal ferns: first one gives 10000000, with two you get 80000000, three gives 270000000, four gives 640000000, and so on.",Ve);er=10;var Lq,tr=R({c:10});
Lq=fr("automaton",1,tr,R({}),c(0),1.5,"Automates things","Automates things and unlocks crop templates. Boosts 8 ethereal neighbors. Can have max 1. The higher your ethereal tree level, the more it can automate and the more challenges it unlocks. See automaton tab.",We,Wi,0);var Mq,ur=R({c:10});Mq=fr("squirrel",5,ur,R({}),c(0),1.5,"Automates things","Unlocks nuts and squirrel upgrades. Boosts 8 ethereal neighbors. Can have max 1.",Xe,bj,0);er=25;
var vr=gr("blackberry",0,0,R({c:10}),60,c(.25),"boosts berries in the basic field (additive)",td),wr=gr("blueberry",1,1,R({c:100}),60,c(1),"boosts berries in the basic field (additive)",ud),xr=gr("cranberry",4,2,R({c:1E5}),60,c(4),"boosts berries in the basic field (additive)",vd),yr=gr("currant",7,3,R({c:75E6}),60,c(16),"boosts berries in the basic field (additive)",wd),zr=gr("goji",11,4,R({c:2E12}),60,c(64),"boosts berries in the basic field (additive)",yd),Ar=gr("gooseberry",14,5,R({c:2E15}),60,
c(256),"boosts berries in the basic field (additive)",zd),Br=gr("grape",18,6,R({c:3E19}),60,c(1024),"boosts berries in the basic field (additive)",Ad);er=50;
var Cr=hr("champignon",0,0,R({c:20}),60,c(.25),"boosts mushrooms spore production and consumption in the basic field (additive)",Td),Dr=hr("matsutake",3,1,R({c:2E4}),60,c(1),"boosts mushrooms spore production and consumption in the basic field (additive)",Vd),Er=hr("morel",5,2,R({c:5E5}),60,c(4),"boosts mushrooms spore production and consumption in the basic field (additive)",Ud),Fr=hr("muscaria",7,3,R({c:5E7}),60,c(16),"boosts mushrooms spore production and consumption in the basic field (additive)",
Wd),Gr=hr("oyster mushroom",10,4,R({c:5E11}),60,c(64),"boosts mushrooms spore production and consumption in the basic field (additive)",Xd),Hr=hr("portobello",13,5,R({c:5E14}),60,c(256),"boosts mushrooms spore production and consumption in the basic field (additive)",Yd),Ir=hr("shiitake",17,6,R({c:3E18}),60,c(1024),"boosts mushrooms spore production and consumption in the basic field (additive)",Zd);er=75;
var Jr=ir("anemone",0,0,R({c:50}),10,c(.25),"boosts the boosting effect of flowers in the basic field (additive). No effect on ethereal neighbors here, but on the basic field instead.",Ld),Kr=ir("clover",3,1,R({c:25E3}),10,c(1),"boosts the boosting effect of flowers in the basic field (additive). No effect on ethereal neighbors here, but on the basic field instead.",Md),Lr=ir("cornflower",6,2,R({c:5E6}),10,c(4),"boosts the boosting effect of flowers in the basic field (additive). No effect on ethereal neighbors here, but on the basic field instead.",
Nd),Zr=ir("daisy",9,3,R({c:1E10}),10,c(16),"boosts the boosting effect of flowers in the basic field (additive). No effect on ethereal neighbors here, but on the basic field instead.",Od),$r=ir("dandelion",12,4,R({c:5E13}),10,c(64),"boosts the boosting effect of flowers in the basic field (additive). No effect on ethereal neighbors here, but on the basic field instead.",Pd),as=ir("iris",15,5,R({c:5E16}),10,c(256),"boosts the boosting effect of flowers in the basic field (additive). No effect on ethereal neighbors here, but on the basic field instead.",
Qd),bs=ir("lavender",19,6,R({c:5E20}),10,c(1024),"boosts the boosting effect of flowers in the basic field (additive). No effect on ethereal neighbors here, but on the basic field instead.",Rd);er=100;var cs=jr("nettle",2,0,R({c:200}),60,c(.35),"boosts stinging plants in the basic field (additive).",se),ds=jr("thistle",10,1,R({c:1E11}),60,c(1.4),"boosts stinging plants in the basic field (additive).",te);er=125;
var es=R({c:1E23}),fs=c(1E-4),gs=fr("watercress",21,es,R({}),c(0),10,void 0,"boosts brassica in the basic field (additive).",ue,Vi,0);Kq[gs].effect=fs;er=150;
var hs=kr("white lotus",0,0,R({c:50}),.5,10,"boosts the bonus effect of ethereal neighbors of types that boost basic field (such as berry, mushroom, but not fern). No effect if no appropriate neighbors. This crop boosts neighboring plants in the ethereal field, rather than boosting the basic field directly.",De),is=kr("pink lotus",4,1,R({c:25E4}),4,10,"boosts the bonus effect of ethereal neighbors of types that boost basic field (such as berry, mushroom, but not fern). No effect if no appropriate neighbors. This crop boosts neighboring plants in the ethereal field, rather than boosting the basic field directly.",
Ee),js=kr("blue lotus",8,2,R({c:1E9}),32,10,"boosts the bonus effect of ethereal neighbors of types that boost basic field (such as berry, mushroom, but not fern). No effect if no appropriate neighbors. This crop boosts neighboring plants in the ethereal field, rather than boosting the basic field directly.",Fe),ks=kr("black lotus",12,3,R({c:2E14}),256,10,"boosts the bonus effect of ethereal neighbors of types that boost basic field (such as berry, mushroom, but not fern). No effect if no appropriate neighbors. This crop boosts neighboring plants in the ethereal field, rather than boosting the basic field directly.",
Ge),ls=kr("gold lotus",16,4,R({c:5E17}),2048,10,"boosts the bonus effect of ethereal neighbors of types that boost basic field (such as berry, mushroom, but not fern). No effect if no appropriate neighbors. This crop boosts neighboring plants in the ethereal field, rather than boosting the basic field directly.",He),ms=kr("green lotus",20,5,R({c:1E22}),8192,10,"boosts the bonus effect of ethereal neighbors of types that boost basic field (such as berry, mushroom, but not fern). No effect if no appropriate neighbors. This crop boosts neighboring plants in the ethereal field, rather than boosting the basic field directly.",
Ie);er=200;var ns=mr("worker bee",8,0,R({c:2E9}),10,c(.01),"boosts bees in the basic field. Does not boost ethereal flowers. Gets a boost from neighboring lotuses.",Me),os=mr("drone",13,1,R({c:1E15}),10,c(.04),"boosts bees in the basic field. Does not boost ethereal flowers. Gets a boost from neighboring lotuses.",Ne),ps=mr("queen bee",19,2,R({c:1E21}),10,c(.12),"boosts bees in the basic field. Does not boost ethereal flowers. Gets a boost from neighboring lotuses.",Oe);er=250;
var Aq=nr("mistletoe",0,R({c:10}),1.5,c(.01),"Must be planted next to ethereal tree to work. Can have only max one. Gives multiple bonuses, which can be unlocked and upgraded over time.",Je);function qs(a){Kq[a].Nb=!0;Kq[a].V=R(0);return a}er=300;
var rs=qs(gr("berry template",1,-1,R(),0,c(0),"",Mf)),ss=qs(hr("mushroom template",1,-1,R(),0,c(0),"",Qf)),ts=qs(ir("flower template",1,-1,R(),0,c(0),"",Uf)),us=qs(jr("nettle template",2,-1,R(),0,c(0),"",Yf)),vs=qs(kr("lotus template",1,-1,R(),0,0,"",kg)),ws=qs(lr("fern template",1,-1,R(),0,void 0,"",mg)),xs,ys=R();xs=fr("automaton template",1,ys,R({}),c(0),0,void 0,"",og,Wi,-1);var zs=qs(xs),As,Bs=R();As=fr("squirrel template",5,Bs,R({}),c(0),0,void 0,"",ug,bj,-1);
var Cs=qs(As),Ds=qs(mr("bee template",8,-1,R(),0,c(0),"",bg)),Es=qs(nr("mistletoe template",-1,R(),0,c(0),"",gg)),Fs=R(),Gs=c(0),Hs=fr("brassica template",2,Fs,R({}),c(0),0,void 0,"",If,Vi,-1);Kq[Hs].effect=Gs;var Is=qs(Hs),Js=[],Ks=[],Ls=-1;
function Ms(){this.name="a";this.Qa=this.description=void 0;this.index=0;this.jb=1;this.V=R();this.Ne="#8cf";this.Qe="#ff0";this.kf=this.jf=void 0;this.Sf=c(1);this.Ud=!1;this.J=0;this.xd=function(){var a=this.name;1<D.K[this.index].count&&(a+=" "+co(D.K[this.index].count));return a};this.Ej=function(){var a=this.name;0<D.K[this.index].count&&(a+=" "+co(D.K[this.index].count+1));return a};this.fg=function(){return 0==this.jb?!1:D.K[this.index].count>=this.jb};this.le=function(){return D.K[this.index].f&&
!this.fg()}}Ms.prototype.O=function(a){a=oh(this.Sf,D.K[this.index].count+(a||0));return this.V.Ia(a)};function Ns(a,b,d,e,f,g,h,k,l,n,p,m){if(Ks[Ls]||0>Ls||65535<Ls)throw"upgrades2 id already exists or is invalid!";var x=new Ms;x.index=Ls++;Ks[x.index]=x;Js.push(x.index);x.name=a;x.V=d;x.jb=h;x.Sf=c(e);l&&(x.Ne=l);n&&(x.Qe=n);p&&(x.jf=p);m&&(x.kf=m);x.Qa=function(){D.K[this.index].count++;f()};x.Oi=function(){return!D.ha||D.J<b||g&&!g()?!1:!0};x.J=b;x.description=k;return x.index}
function Os(){var a=Ns("<deprecated>",99,R(),0,function(){},function(){return!1},1,"<deprecated>");Ks[a].Ud=!0}Ls=10;Os();Os();Os();Os();Os();Os();Os();Os();Os();Ls=20;var Ps=[.33,.25,.25,.25],Qs=[],Rs=0;Qs[0]=Ns("improve spring",Rs,R({c:10}),2,function(){},function(){return!0},0,"improve spring effect "+100*Ps[0]+"% (scales by n^1.25). Spring boosts flowers.",void 0,void 0,Vg[3][1][0]);
Qs[1]=Ns("improve summer",Rs,R({c:10}),2,function(){},function(){return!0},0,"improve summer effect "+100*Ps[1]+"% (scales by n^1.25). Summer boosts berry production, this ethereal upgrade additionally slightly boosts mushrooms.",void 0,void 0,Vg[3][1][1]);
Qs[2]=Ns("improve autumn",Rs,R({c:10}),2,function(){},function(){return!0},0,"improve autumn effect "+100*Ps[2]+"% (scales by n^1.25). Autumn boosts mushroom production, this ethereal upgrade additionally slightly boosts berries.",void 0,void 0,Vg[3][1][2]);Qs[3]=Ns("winter hardening",Rs,R({c:10}),2,function(){},function(){return!0},0,"increase winter tree warmth effect "+100*Ps[3]+"% (scales by n^1.25).",void 0,void 0,Vg[3][1][3]);var Kj=90;Ls=25;
var Jj=Ns("grow speed",Rs,R({c:25}),2,function(){},function(){return!0},0,"basic plants grow up to "+Kj+" seconds per upgrade level faster. This is soft-capped for already fast plants, a plant that already only takes "+Kj+" seconds, will not get much faster. So this upgrade mainly improves the higher tier, slower, crops to become faster and thus within reach.",void 0,void 0,td[0]),Ss=c(.02),Ts=1.05,Us=1.2,Vs=Ns("basic tree boost bonus",Rs,R({c:10}),1.5,function(){},function(){return!0},0,"add "+L(Ss)+
" to the basic tree production bonus per level (scales by n^"+Us+").",void 0,void 0,Vg[10][1][1]),Ws=Ns("extra fruit slot",0,R({c:50,Z:25}),2,function(){D.ya++},function(){return!0},1,"gain an extra storage slot for fruits",void 0,void 0,Nc[1]);function Xs(){oj()||D.i[Io].count||Fj[Io].Qa()}Ls=101;
var Up=Ns("blackberry secret",Rs,R({c:50}),2,function(){Xs()},function(){return!0},1,"blackberry is unlocked immediately after a transcension, the upgrade to unlock it is no longer needed and given for free. In addition, the upgrade-watercress upgrade is available from the start rather than after 5 watercress. This makes the start of a run more convenient. TIP: get a fern in the ethereal field to get 1000+ starting seeds to be able to plant a blackberry immediately too.",void 0,void 0,td[4]);Ls=28;
Ls=50;var Zs=Ns("larger field 6x6",Rs,R({c:100}),1,function(){var a=Math.max(6,D.B),b=Math.max(6,D.D);2!=oj()&&Ys(a,b)},function(){return 5<=D.B&&5<=D.D},1,"increase basic field size to 6x6 tiles",void 0,void 0,uc[0]);Ls=99;
var rp=Ns("unlock mistletoe",Rs,R({c:25}),1,function(){},function(){return!0},1,"Unlock mistletoe crop in the basic field. This crop will allow leveling up the ethereal tree through a basic field mechanic giving twigs, and the ethereal tree levels then allow to get next sets of ethereal upgrades and crops. The mistletoe will become available in the basic field when anemones become available and then needs to then be unlocked with a regular upgrade first as usual. Then it can be planted next to the basic tree to start getting twigs (which you actually get on transcend, like resin). This ethereal upgrade is the first step in that process, and this is ultimately required to progress to next stages of the game.",void 0,
void 0,Je[3]);Rs=1;Ls=100;var $s=c(.25),at=Ns("resin gain",Rs,R({c:50}),2,function(){},function(){return!0},0,"increase resin gain from tree by "+100*$s+"% (additive).",void 0,void 0,Fc);Ls++;var bt=Ns("diagonal winter warmth",Rs,R({c:150}),2,function(){},function(){return!0},1,"the winter warmth effect of the tree works also diagonally, adding 4 more possible neighbor spots for this effect.",void 0,void 0,Vg[5][1][3]);
Ns("unlock automaton",Rs,R({c:100}),2,function(){ct(Lq);lq(28);X("Auto-plant unlocked!",mq,1067714398,void 0,void 0,!0);D.nc=1},function(){return!0},1,"the automaton can be placed in the ethereal field, and when placed, boosts 8 neighboring ethereal plants, unlocks the automaton tab, allows to automate things, and allows to place crop templates",void 0,void 0,We[4]);
var dt=c(.25),et=Ns("twigs gain",Rs,R({c:100}),2,function(){},function(){return!0},0,"increase twigs gain from tree by "+100*dt+"% (additive).",void 0,void 0,Je[2]);function ft(){oj()||D.challenge==Sj||D.challenge==kj||D.challenge==rq||(D.i[Jo].count||Fj[Jo].Qa(),D.i[gp].count||Fj[gp].Qa(),D.i[sp].count||Fj[sp].Qa())}Ls=122;
var fp=Ns("blueberry secret",Rs,R({c:200}),2,function(){ft()},function(){return D.K[Up].count},1,"blueberry, as well as anemone and mistletoe, are unlocked immediately after a transcension, the upgrades to unlock them are no longer needed and given for free, and there is no more waiting required for a fullgrown blackberry.",void 0,void 0,ud[4]);Ls=105;Rs=2;Ls=120;
Ns("ethereal field 6x6",Rs,R({c:2E3,G:2E3}),1,function(){gt(Math.max(6,D.fa),Math.max(6,D.ea));ht()},function(){return 5<=D.fa&&5<=D.ea},1,"increase ethereal field size to 6x6 tiles",void 0,void 0,xc[0]);var it=Ns("twigs extraction",Rs,R({c:1E4}),1,function(){},function(){return!0},1,"increase the multiplier per level for twigs, giving exponentially more twigs at higher tree levels: base of exponentiation before: 1.25, after: 1.3",void 0,void 0,Je[1]);Ls++;
function jt(){oj()||D.challenge==Sj||D.challenge==kj||D.challenge==rq||(D.i[Ko].count||Fj[Ko].Qa(),D.i[ho].count||Fj[ho].Qa())}Ls=146;var Yo=Ns("cranberry secret",Rs,R({c:1E3}),2,function(){jt()},function(){return D.K[fp].count},1,"cranberry, as well as champignon, are unlocked immediately after a transcension, the upgrades to unlock them are no longer needed and given for free, and there is no more waiting required for a fullgrown blueberry.",void 0,void 0,vd[4]);Ls=123;Rs=3;Ls=140;
var kt=Ns("extra fruit slot",Rs,R({c:5E3,Z:250}),2,function(){D.ya++},function(){return!0},1,"gain an extra storage slot for fruits",void 0,void 0,Nc[2]),lt=Ns("resin extraction",Rs,R({c:5E4}),1,function(){},function(){return!0},1,"increase the multiplier per level for resin, giving exponentially more resin at higher tree levels: base of exponentiation before: 1.2, after: 1.25",void 0,void 0,Fc),mt=Ns("diagonal mistletoes",Rs,R({c:75E3}),1,function(){},function(){return!0},1,"mistletoes also work diagonally to the tree (10 instead of 6 possible spots)",
void 0,void 0,Je[4]);Ls=145;var nt=Ns("larger field 7x6",Rs,R({c:1E5}),1,function(){var a=Math.max(7,D.B),b=Math.max(6,D.D);2!=oj()&&Ys(a,b)},function(){return 6<=D.B&&6<=D.D},1,"increase basic field size to 7x6 tiles",void 0,void 0,uc[0]);Ls++;Rs=4;Ls=160;
var Uq=c(.25),Tq=Ns("ethereal berries",Rs,R({c:5E5}),2,function(){},function(){return!0},0,"increase bonus of all ethereal berries by "+L(Uq)+" (additive).",void 0,void 0,Lf,Dc),Wq=c(.25),Vq=Ns("ethereal mushrooms",Rs,R({c:5E5}),2,function(){},function(){return!0},0,"increase bonus of all ethereal mushrooms by "+L(Wq)+" (additive).",void 0,void 0,Pf,Dc);Rs=5;Ls=180;
Ns("ethereal field 7x6",Rs,R({c:5E6,G:5E6}),1,function(){gt(Math.max(7,D.fa),Math.max(6,D.ea));ht()},function(){return 6<=D.fa&&6<=D.ea},1,"increase ethereal field size to 7x6 tiles",void 0,void 0,xc[0]);
var ot=Ns("extra fruit slot",Rs,R({c:2E6,Z:1E4}),2,function(){D.ya++},function(){return!0},1,"gain an extra storage slot for fruits",void 0,void 0,Nc[3]),pt=Ns("unlock squirrel",Rs,R({c:1E6}),2,function(){ct(Mq);D.b.S=c(0);lq(35)},function(){return!0},1,"unlocks the squirrel, nut crops, and a new squirrel tab with a new kind of upgrade. The squirrel must be placed in the ethereal field and then also boosts 8 neighboring ethereal plants. Nuts crops unlock starting from tree level 45.",void 0,void 0,
Xe[4]),qt=c(.005),rt=c(.001),st=Ns("tree's gesture",Rs,R({c:2E6}),5,function(){},function(){return!0},95,"gain "+L(qt)+" bonus to seeds, spores, resin and twigs income per highest tree level ever reached (multiplicative). For each next upgrade, gain an additional "+L(rt)+" per upgrade level (additive). Full formula: bonus multiplier = ("+qt.L(1).toString(5)+" + "+rt.toString(5)+" * (upgrade_levels - 1)) ^ max_tree_level_ever",void 0,void 0,Vg[20][1][1]);Rs=6;Ls=200;var Pj=.25,ek=c(1.5),Nj=[];
Nj[0]=Ns("spring grow speed",Rs,R({c:2E7}),2,function(){},function(){return!0},1,"crops grow "+L(c(Pj))+" faster in spring",void 0,void 0,Vg[10][1][0]);Nj[1]=Ns("summer resin",Rs,R({c:2E7}),2,function(){},function(){return!0},1,"adds a resin bonus to summer, about half as strong as that of winter",void 0,void 0,Vg[10][1][1]);Nj[2]=Ns("autumn resin",Rs,R({c:2E7}),2,function(){},function(){return!0},1,"adds a resin bonus to autumn, about half as strong as that of winter",void 0,void 0,Vg[10][1][2]);
Nj[3]=Ns("winter warmth flowers",Rs,R({c:2E7}),2,function(){},function(){return!0},1,"winter tree warmth now also gives a flat "+L(jh(ek,1))+" bonus to flowers",void 0,void 0,Vg[10][1][3]);var Yq=c(.25),Xq=Ns("ethereal flowers",Rs,R({c:1E7}),2,function(){},function(){return!0},0,"increase bonus of all ethereal flowers by "+L(Yq)+" (additive).",void 0,void 0,Tf,Dc);Rs=7;Ls=220;
var tt=Ns("larger field 7x7",Rs,R({c:5E8}),1,function(){var a=Math.max(7,D.B),b=Math.max(7,D.D);2!=oj()&&Ys(a,b)},function(){return 7<=D.B&&6<=D.D},1,"increase basic field size to 7x7 tiles",void 0,void 0,uc[0]),ut=Ns("extra fruit slot",Rs,R({c:2E8,Z:1E5}),2,function(){D.ya++},function(){return!0},1,"gain an extra storage slot for fruits",void 0,void 0,Nc[4]);Rs=8;Ls=300;
Ns("ethereal field 7x7",Rs,R({c:1E10}),1,function(){gt(Math.max(7,D.fa),Math.max(7,D.ea));ht()},function(){return 7<=D.fa&&6<=D.ea},1,"increase ethereal field size to 7x7 tiles",void 0,void 0,xc[0]);Rs=9;Ls=400;var $q=c(.25),Zq=Ns("ethereal stinging",Rs,R({c:5E10}),2,function(){},function(){return!0},0,"increase bonus of all ethereal stinging plants (such as nettles) by "+L($q)+" (additive).",void 0,void 0,Xf,Dc);Rs=10;Ls=500;
var vt=Ns("larger field 7x8",Rs,R({c:15E11}),1,function(){var a=Math.max(7,D.B),b=Math.max(8,D.D);2!=oj()&&Ys(a,b)},function(){return 7<=D.B&&7<=D.D},1,"increase basic field size to 7x8 tiles",void 0,void 0,uc[0]),wt=Ns("twigs siphoning",Rs,R({c:5E11}),1,function(){},function(){return!!D.K[it].count},1,"gain more twigs at tree levels above 85: base of exponentiation switches from 1.3 to 1.35 starting from this level",void 0,void 0,Je[1]),xt=Ns("extra fruit slot",Rs,R({c:2E11,Z:1E6}),2,function(){D.ya++},
function(){return!0},1,"gain an extra storage slot for fruits",void 0,void 0,Nc[5]);Rs=11;Ls=600;Ns("ethereal field 7x8",Rs,R({c:2E13}),1,function(){gt(Math.max(7,D.fa),Math.max(8,D.ea));ht()},function(){return 7<=D.fa&&7<=D.ea},1,"increase ethereal field size to 7x8 tiles",void 0,void 0,xc[0]);
var yt=Ns("resin siphoning",Rs,R({c:1E13}),1,function(){},function(){return!!D.K[lt].count},1,"gain more resin at tree levels above 85: base of exponentiation switches from 1.25 to 1.3 starting from this level",void 0,void 0,Fc);Rs=12;Ls=700;
var br=c(.25),ar=Ns("ethereal bees",Rs,R({c:1E14}),2,function(){},function(){return!0},0,"increase bonus of all ethereal bees by "+L(br)+" (additive).",void 0,void 0,eg,Dc),At=Ns("unused nuts bonus",Rs,R({c:25E12}),2,function(){},function(){return zt()},1,"get a production bonus for unused nuts (logarithmic).",void 0,void 0,Gc);Rs=13;Ls=800;Rs=14;Ls=900;Rs=15;Ls=1E3;
Ns("unlock ethereal mistletoe",Rs,R({c:1E15}),2,function(){ct(Aq);lq(41)},function(){return!0},1,"unlocks the ethereal mistletoe. This crop must be placed in the ethereal field next to the tree. You can have only one of this crop at the same time. It has multiple effects that can get unlocked and upgraded over time. Upgrades cost time.",void 0,void 0,Je[4]);Rs=16;Ls=1100;Rs=17;Ls=1200;
var Bt=Ns("larger field 8x8",Rs,R({c:2E19}),1,function(){var a=Math.max(8,D.B),b=Math.max(8,D.D);2!=oj()&&Ys(a,b)},function(){return 7<=D.B&&8<=D.D},1,"increase basic field size to 8x8 tiles",void 0,void 0,uc[0]);Rs=18;Ls=1300;Ns("ethereal field 8x8",Rs,R({c:2E20}),1,function(){gt(Math.max(8,D.fa),Math.max(8,D.ea));ht()},function(){return 7<=D.fa&&8<=D.ea},1,"increase ethereal field size to 8x8 tiles",void 0,void 0,xc[0]);Rs=19;Ls=1400;Rs=20;Ls=1500;
var Ct=Ns("unlock infinity field",Rs,R({c:8}),2,function(){D.mf=D.time;lq(42)},function(){return!0},1,"unlocks the infinity field. This is a new field with its own crops producing its own resources. The crops give a small bonus to the basic field, but unlike the ethereal field the infinity field is more focused on growing itself than boosting the basic field.",void 0,void 0,Wg);Js.sort(function(a,b){return Ks[a].index-Ks[b].index});
function Dt(a,b){if(0==b)return 0==a?0:0>a?-1:1;a*=.57735/b;return a/Math.sqrt(a*a+1)}var Et=0,Ft=Et++,yk=Et++,Ak=Et++,Bk=Et++,yl=Et++,Zl=Et++,Ij=Et++,uj=Et++,zl=Et++,Gt=Et++,Ht=Et++,Ck=Et++,Sl=Et++,Al=Et++,It=Et++,Dk=Et++;Et=20;var Jt=Et++,Kt=Et++,Lt=Et++,Mt=Et++,Nt=Et++,Ot=Et++,Pt=Et++,Qt=Et++,Rt=Et++,St=Et++;
function vj(a,b,d,e){var f=.05*Math.pow(Tt(d),.75);return a==yk?c(1*f*b):a==Ak?8<=d?c(2*f*b):c(1.5*f*b):a==Bk?(a=Dt(b,5),c(.4*(1+.6*d/11)*a)):a==yl?c(1*f*b):a==Zl?c(1.25*f*b):a==Ij?(a=Dt(b,5),c(.25*(1+1.75*d/12)*a)):a==uj?8<=d?c(1*f*b):c(1.5*f*b):a==zl?8<=d?c(1.5*f*b):c(1*f*b):a>=Jt&&a<=Mt?c(.25):a>=Nt&&a<=Qt?Ut(1)?c(.3):c(0):a==Rt?Ut(2)?c(.35):c(0):a==St?Ut(3)?e&&oj()?c(.4):c(1):Ut(2)?c(.35):c(0):a==Gt||a==Ht||a==Ck?(a=Dt(b,5),d-=4,0>d&&(d=0),c((.2+.5*d/6)*a)):a==Sl?c(f*b*.5):a==Al?8<=d?c(f*b*1.25):
c(f*b*1.2):a==It?c(f*b*.5):a==Dk?c(1.1*f*b):c(.1)}var Bl=1,Cl=.3,cm=1.25,am=.6,bm=.3,Tl=.5,Ul=.4;function Vt(a){return a==Jt||a==Kt||a==Lt||a==Mt||a==Nt||a==Ot||a==Pt||a==Qt||a==Rt||a==St?!0:!1}function Wt(a,b,d){var e=!1;a==Bk&&(e=!0);a==Ij&&(e=!0);a==Gt&&(e=!0);a==Ht&&(e=!0);a==Ck&&(e=!0);a=e?oh(c(1.5),b):oh(c(1.25),b);a=a.o(Tt(d));return R({Z:a})}function Xt(a){var b=10*Tt(a.l);0<a.type&&(b*=1.25);return R({Z:b})}
function Tt(a){switch(a){case 0:return 1;case 1:return 4;case 2:return 12;case 3:return 30;case 4:return 45;case 5:return 100;case 6:return 500;case 7:return 1500;case 8:return 4E3;case 9:return 1E4;case 10:return 2E4}return 0>a?0:2E4}
function Yt(a){for(var b=new c(0),d=0;d<a.H.length;d++){var e=a.H[d];if(!Vt(e)&&e!=Ft)for(var f=a.wa[d],g=a.Bc[d];g<f;g++){var h=Wt(e,g,a.l);b.v(h.Z)}}if(b.da(a.Z.o(1.01)))for(f=d=-1;b.da(a.Z);){d++;d>=a.H.length&&(d=0);if(d==f)break;e=a.H[d];Vt(e)||e==Ft||a.wa[d]<=a.Bc[d]||(a.wa[d]--,h=Wt(e,a.wa[d],a.l),b.oa(h.Z),f=d)}a.Z=b}
function Zt(a,b,d){var e=.2,f=.25,g=.5,h=.75;d&&(e=.1,f=.15,g=.35,h=.66);return 5>b||5<=b&&9>=b?0:10<=b&&14>=b?a>h?1:0:15<=b&&19>=b?15>D.Zd?1:a>g?1:0:20<=b&&24>=b?a>f?1:0:25<=b&&29>=b?a>g?2:1:30<=b&&34>=b?a>f?2:1:35<=b&&39>=b?a>h?3:2:40<=b&&44>=b?a>g?3:2:45<=b&&49>=b?a>f?3:2:50<=b&&54>=b?a>e?3:2:55<=b&&59>=b?a>h?4:3:60<=b&&64>=b?a>g?4:3:65<=b&&69>=b?a>f?4:3:70<=b&&74>=b?a>e?4:3:75<=b&&79>=b?a>h?5:4:80<=b&&84>=b?a>g?5:4:85<=b&&89>=b?a>f?5:4:90<=b&&94>=b?a>e?5:4:95<=b&&99>=b?a>h?6:5:100<=b&&104>=b?
a>g?6:5:105<=b&&109>=b?a>f?6:5:110<=b&&114>=b?a>e?6:5:115<=b&&119>=b?a>h?7:6:120<=b&&124>=b?a>g?7:6:125<=b&&129>=b?a>f?7:6:130<=b&&134>=b?a>e?7:6:135<=b&&139>=b?a>h?8:7:140<=b&&144>=b?a>g?8:7:145<=b&&149>=b?a>f?8:7:150<=b&&154>=b?a>e?8:7:8}function $t(a){var b=1;1<=a&&(b=2);3<=a&&(b=3);5<=a&&(b=4);7<=a&&(b=5);return b}var au={};au[Ft]=!0;au[Jt]=!0;au[Kt]=!0;au[Lt]=!0;au[Mt]=!0;au[Nt]=!0;au[Ot]=!0;au[Pt]=!0;au[Qt]=!0;au[Rt]=!0;au[St]=!0;
function bu(a,b,d){if(a==b)return a;if(2<=d){if(1==a&&2==b||2==a&&1==b)return 5;if(2==a&&3==b||3==a&&2==b)return 6;if(3==a&&4==b||4==a&&3==b)return 7;if(4==a&&1==b||1==a&&4==b)return 8}if(4<=d&&(5==a&&7==b||7==a&&5==b||6==a&&8==b||8==a&&6==b))return 9;if(5<=d&&(0==a&&9==b||9==a&&0==b))return 10;var e=0;if(1<=a&&4>=a)e=1<<a-1;else if(5<=a&&7>=a)e=3<<a-5;else if(8==a)e=9;else if(9==a||10==a)e=15;var f=0;if(1<=b&&4>=b)f=1<<b-1;else if(5<=b&&7>=b)f=3<<b-5;else if(8==b)f=9;else if(9==b||10==b)f=15;var g=
e&f;a=Math.max(a,b);if(5<=d){if(10==a)return 10;if((15==e||15==f)&&0!=g)return a;if((15==e||15==f)&&0==g)return 10}if(4<=d&&(15==e||15==f)&&0!=g)return 9;if(2<=d){if((3==e||3==f)&&3==(e|f)&&0!=(e&f))return 5;if((6==e||6==f)&&6==(e|f)&&0!=(e&f))return 6;if((12==e||12==f)&&12==(e|f)&&0!=(e&f))return 7;if((9==e||9==f)&&9==(e|f)&&0!=(e&f))return 8}return 15==g?a:3==(g&3)?5:6==(g&6)?6:12==(g&12)?7:9==(g&9)?8:1==g?1:2==g?2:4==g?3:8==g?4:0}
function cu(a,b){for(var d=a.H.length,e=b.H.length,f=!0,g={},h={},k=0;k<d;k++)au[a.H[k]]||(g[a.H[k]]=!0);for(k=0;k<e;k++)if(!au[b.H[k]]){if(!g[b.H[k]]){f=!1;break}h[b.H[k]]=!0}for(k=0;k<d;k++)if(!au[a.H[k]]&&!h[a.H[k]]){f=!1;break}return f}
function du(a,b,d,e,f,g){if(!a||!b||a==b||a.l!=b.l)return null;var h=$t(a.l),k=a.H.length,l=b.H.length,n=bu(a.type,b.type,d);if(10==a.type||10==b.type)return g&&(g[0]="dragon fruits are the final form and cannot be fused, their abilities cannot be changed"),null;if(9==a.type||9==b.type){if(5>d)return a.type==b.type?g&&(g[0]="Star fruits cannot be fused with each other. Star fruits are an almost-final form and their abilities cannot be changed."):0!=a.type&&0!=b.type?g&&(g[0]="Star fruits cannot be fused with this fruit type. Star fruits are an almost-final form and its abilities cannot be changed."):
g&&(g[0]="You need another squirrel upgrade before you can perform a fuse like this."),null;if(0!=a.type&&0!=b.type)return g&&(g[0]="Star fruits can only be fused with an apple with the same abilities, to get a dragon fruit"),null}if(10==n)if(d=cu(a,b))g&&(g[0]="You fused a legendary dragon fruit! This is its final form, you cannot fuse a dragon fruit with anything else, but it's stronger than the original star fruit!");else return g&&(g[0]="You could get a legendary dragon fruit out of these fruit types, but only if they have the same abilities. Fuse a star fruit with an apple with the same set of abilities to get a dragon fruit."),
null;if(9==n)if(d=cu(a,b))g&&(g[0]="You fused a 4-season star fruit! Beware, this is an almost-final form, you cannot fuse a star fruit with anything that changes its abilities anymore. Ensure that this is what you want to spend the two input fruits on.");else return g&&(g[0]="You could get a 4-season star fruit out of these fruit types, but only if they have the same abilities. Fuse two complementing two-seasonal fruits with the same set of abilities to get a star fruit."),null;g=new eu;g.l=a.l;
g.type=a.type==b.type?a.type:n;1<=g.type&&(g.H[h]=Jt+g.type-1,1<=g.type&&4>=g.type?(g.wa[h]=a.wa[h],g.Bc[h]=a.Bc[h],g.Ha[h]=a.Ha[h]):4<g.type&&(g.wa[h]=a.wa[h],g.Bc[h]=a.Bc[h],g.Ha[h]=a.Ha[h]));g.cd=a.cd+b.cd+1;g.name=a.name||b.name;g.mark=a.mark||b.mark;n={};var p={};for(d=0;d<k;d++)au[a.H[d]]||(p[a.H[d]]=[d,a.Ha[d]],n[a.H[d]]=a.Bc[d]);k={};for(d=0;d<l;d++)if(!au[b.H[d]]){k[b.H[d]]=[d,b.Ha[d]];if(void 0==n[b.H[d]])var m=b.Bc[d];else{m=n[b.H[d]];var x=b.Bc[d];m=Math.ceil(.75*Math.min(m,x)+.25*Math.max(m,
x))}n[b.H[d]]=m}for(d=0;d<h;d++)g.H[d]=a.H[d],g.Ha[d]=a.Ha[d];for(d=0;d<h;d++)m=g.H[d],au[m]||void 0==k[m]||(m=p[m][1]+k[m][1]+1,2<m&&(m=2),g.Ha[d]=m);for(d=m=0;d<l;d++)2==b.Ha[d]&&e[d]&&(void 0!=p[b.H[d]]?(f=r.clone(f),f[p[b.H[d]][0]]=!0):m++);k=[];for(d=x=0;d<h;d++)f[d]&&x++;x=Math.max(0,h-x-m);for(d=0;d<x&&!(k.length>=h-m);d++)k.push([g.H[d],g.Ha[d]]);for(d=x;d<h&&!(k.length>=h-m);d++)f[d]&&k.push([g.H[d],g.Ha[d]]);for(d=x;d<h-m&&!(k.length>=h-m);d++)f[d]||k.push([g.H[d],g.Ha[d]]);for(d=0;d<l;d++)2==
b.Ha[d]&&e[d]&&void 0==p[b.H[d]]&&k.push([b.H[d],2]);for(d=0;d<k.length&&!(d>=h);d++)g.H[d]=k[d][0],g.Ha[d]=k[d][1];f={};p={};for(e=0;e<a.H.length;e++)f[a.H[e]]=e;l=[];d=[];k=!0;for(e=0;e<g.H.length;e++)p[g.H[e]]=e,void 0!=f[g.H[e]]?a.H[e]!=g.H[e]&&(k=!1):d.push(e);if(!k){for(e=0;e<a.H.length;e++)void 0!=p[a.H[e]]&&l.push(p[a.H[e]]);m=k=0;p=[];for(e=0;e<g.H.length;e++)p[e]=void 0!=f[g.H[e]]?l[k++]:d[m++];for(e=0;e<p.length;e++)f=p[e],p[e]=[g.H[f],g.Ha[f]];for(e=0;e<p.length;e++)g.H[e]=p[e][0],g.Ha[e]=
p[e][1]}for(d=0;d<h;d++)e=n[g.H[d]],g.wa[d]=e,g.Bc[d]=e;n={};for(h=0;h<a.H.length;h++)au[a.H[h]]||(n[a.H[h]]=a.wa[h]);for(h=0;h<b.H.length;h++)au[b.H[h]]||(n[b.H[h]]=n[b.H[h]]?Math.max(n[b.H[h]],b.wa[h]):b.wa[h]);e=rb(a.Z,b.Z);a=$t(g.l);b=[];for(h=0;h<a;h++)b[h]=e.cc(a);e=c(e);f=[];for(h=0;h<a;h++)f[h]=n[g.H[h]];for(;;){n=!1;for(h=0;h<a;h++)l=g.wa[h],b[h].Ci(0)||l>=f[h]||(l=Wt(g.H[h],l,g.l).Z,l.da(e)||(g.wa[h]++,g.Z.v(l),e.oa(l),b[h].oa(l),n=!0));if(!n)break}return g}var fu=10,gu=c(.05);
function al(){var a=c(gu),b=oj();if(!b){var d=D.K[Vs].count;d=Math.pow(d,Us);a.v(Ss.o(d))}d=D.j;d=Math.pow(d,Ts);a.Ja(d);2!=b&&(b=tj(It),0<b&&(b=hu(b).L(1),a.u(b)));return a}function hu(a){var b=wj(),d=D.j,e=115;7<b&&(e+=20*(b-7));return vj(It,a,b).o(Dt((d-(e+7))/(e+20-e),.5)+1)}function Dm(a){var b=new R;if(150>a)b.A=sh(9,c(a-1)).o(6.666666);else{var d=sh(9,c(148)).o(6.666666);a=sh(18,c(a-149));b.A=d.Ia(a)}return b}function iu(){return 1>=D.gd?c(1):c(.5*(D.gd-1)+1)}
function ju(){var a=Dm(D.j+1);a.u(iu());return a}function ku(a){if(!a||0>a)return 0;a=10>a?a:50>a?10+Math.floor((a-10)/5):18+Math.floor((a-50)/10);a>=Vg.length&&(a=Vg.length-1);return a}var lu=c(.15),mu=c(.05);
function nu(a,b){if(0>=a)return c(0);var d=1.2;D.K[lt].count&&(d=1.25);if(D.K[yt].count&&85<=a){var e=sh(d,c(83));d=1.3;e.u(oh(c(d),a-85+1));e=e.o(.25).L(.5)}else e=sh(d,c(a-1)).o(.25).L(.5);16<a&&e.Ta(2*(a-16));b&&b.push(["base (per tree level roughly x"+d+")",!0,c(0),e.clone()]);a=Oj();3==a?(d=ou(),e.u(d),b&&b.push(["winter bonus",!0,d,e.clone()])):0!=a&&(d=pu(a),pb(d,1)&&(e.u(d),b&&b.push([Qi[a]+" bonus (squirrel)",!0,d,e.clone()])));if(a=D.K[at].count)d=$s.o(a).L(1),e.u(d),b&&b.push(["ethereal upgrades",
!0,d,e.clone()]);if(a=D.$[qu].count)d=ru.o(a).L(1),e.u(d),b&&b.push(["squirrel upgrades",!0,d,e.clone()]);D.J&&(d=mu.o(D.J).L(1),e.u(d),b&&b.push(["ethereal tree level",!0,d,e.clone()]));1==D.i[wk].count&&(a=c(1.2),e.u(a),b&&b.push(["resin choice: resin",!0,a,e.clone()]));a=Ek();a.T(1)&&(e.u(a),b&&b.push(["tree's gesture",!0,a,e.clone()]));Rk(su)&&(a=Tk(su).L(1),e.u(a),b&&b.push(["ethereal mistletoe",!0,a,e.clone()]));D.bc.T(0)&&(a=D.bc.cc(100).L(1),e.u(a),b&&b.push(["challenge highest levels",!0,
a,e.clone()]));a=D.gd;1<a&&(d=oh(c(1).sub(lu),a-1),e.u(d),b&&b.push(["mistletoe malus ("+a+")",!0,d,e.clone()]));a=tj(Gt);0<a&&0<D.De&&(c(0),d=D.De/(D.time-D.Qc),0<=d&&1>=d||(d=1),a=vj(Gt,a,wj()).o(d).L(1),e.u(a),b&&b.push(["fruit resin boost",!0,a,e.clone()]));return e}
function tu(a){var b=D.j+1;if(0>=b)return R({G:0});var d=new R;d.G=c(.02);var e=1.25;D.K[it].count&&(e=1.3);D.K[wt].count&&85<=b?(d.G.u(oh(c(e),83)),e=1.35,d.G.u(oh(c(e),b-85+1))):d.G.u(oh(c(e),b-1));d.G.Ta(.55);11<b&&d.G.Ta(b-11);a&&a.push(["base (per tree level roughly x"+e+")",!0,c(0),d.clone()]);b=c(Math.log2(D.gd+1));d.G.u(b);a&&(1==D.gd?a.push(["1 mistletoe (the minimum)",!0,b,d.clone()]):a.push(["#mistletoes ("+D.gd+")",!0,b,d.clone()]));2==Oj()&&(b=uu(),d.G.u(b),a&&a.push(["autumn bonus",
!0,b,d.clone()]));if(b=D.K[et].count)b=dt.o(b).L(1),d.G.u(b),a&&a.push(["ethereal upgrades",!0,b,d.clone()]);if(b=D.$[vu].count)b=wu.o(b).L(1),d.G.u(b),a&&a.push(["squirrel upgrades",!0,b,d.clone()]);b=Ek();b.T(1)&&(d.G.u(b),a&&a.push(["tree's gesture",!0,b,d.clone()]));b=xu;D.oe&&(b==xu||Rk(b))&&(b=Tk(xu).L(1),d.G.u(b),a&&a.push(["ethereal mistletoe",!0,b,d.clone()]));D.bc.T(0)&&(b=D.bc.cc(100).L(1),d.G.u(b),a&&a.push(["challenge highest levels",!0,b,d.clone()]));b=tj(Ht);0<b&&(c(0),e=D.time-D.Qc,
0<D.Ge&&(e=D.Ge/e,1<e&&(e=1),b=vj(Ht,b,wj()).o(e).L(1),d.G.u(b),a&&a.push(["fruit twigs boost",!0,b,d.G.clone()])));return d}function yu(a){var b=new R;b.G=20>a?1==a?c(72):2==a?c(1296):sh(12,c(a-1)).o(144):sh(24,c(a-19)).o(3.8337599924474725E21);return b}var zu=10.00001;
function Au(a,b){var d=new R;d.g=c(zu);if(oj())return d;var e=D.Ye[or];a==or&&e++;b==or&&e--;d.g.Ta(e*e*e*1E3);e=D.Ye[pr];a==pr&&e++;b==pr&&e--;d.g.Ta(e*e*e*1E4);e=D.Ye[qr];a==qr&&e++;b==qr&&e--;d.g.Ta(e*e*e*1E5);e=D.Ye[rr];a==rr&&e++;b==rr&&e--;d.g.Ta(e*e*e*1E6);e=D.Ye[sr];a==sr&&e++;b==sr&&e--;d.g.Ta(e*e*e*1E7);return d}function Qk(a){return c(a.L(1).log10()).o(.1).L(1)}function Ok(){return!!D.K[At].count}function Pk(){var a=D.b.S;return Ok()?c(a.L(1).log10()).o(.025).L(1):c(1)}
var Bu=1.5,Cu=2.5,Du=2.5,Eu=1.5,ck=.75,Fu=2.5,Gu=1.5,Hu=1.25,Iu=.5,Ju=.5;function Wj(){var a=c(Bu),b=D.K[Qs[0]].count;!oj()&&b&&(b=oh(c(b),Hu).o(Ps[0]).L(1),a=a.Ia(b));var d=Ku(Jt);b=d[0];d=d[1];0<b&&(b=c(1).add(vj(d,b,wj(),!0)),a.u(b));return a}function Xj(){var a=c(Cu),b=D.K[Qs[1]].count;!oj()&&0<b&&(b=oh(new c(b),Hu).o(Ps[1]).L(1),a=a.Ia(b));var d=Ku(Kt);b=d[0];d=d[1];0<b&&(b=vj(d,b,wj(),!0).L(1),a.u(b));return a}function Yj(){return jh(Xj(),Cu).o(Iu).L(1)}
function Zj(){var a=c(Du),b=D.K[Qs[2]].count;!oj()&&0<b&&(b=oh(new c(b),Hu).o(Ps[2]).L(1),a=a.Ia(b));var d=Ku(Lt);b=d[0];d=d[1];0<b&&(b=vj(d,b,wj(),!0).L(1),a.u(b));return a}function ak(){return jh(Zj(),Du).o(Ju).L(1)}function uu(){var a=c(Eu),b=D.K[Qs[2]].count;!oj()&&b&&a.Ta(.5*Dt(b,10));return a}var Yl=c(.33);function dk(){var a=c(Fu),b=D.K[Qs[3]].count;!oj()&&b&&(b=oh(c(b),Hu).o(Ps[3]).L(1),a=a.Ia(b));var d=Ku(Mt);b=d[0];d=d[1];0<b&&(b=c(1).add(vj(d,b,wj(),!0)),a.u(b));return a}
function ou(){var a=c(Gu),b=D.K[Qs[3]].count;!oj()&&b&&a.Ta(.5*Dt(b,10));return a}function pu(a){if(!(0<=a&&3>=a&&D.K[Nj[a]].count))return c(1);var b=c(1.25);a=D.K[Qs[a]].count;!oj()&&a&&b.Ta(.25*Dt(a,10));return b}function cl(a){var b=c(1.5);b.u(sj());2!=D.i[nj].count||a||b.Ja(1+bq);a&&b.Ja(vq);return b}function lh(){var a=c(.75);2==D.i[nj].count&&a.dj(1+bq);return a}function el(a){var b=c(1);b.u(sj());2!=D.i[nj].count||a||b.Ja(1+bq);a&&b.Ja(vq);return b}
function Kl(a){var b=c(.75);b.u(sj());2!=D.i[nj].count||a||b.Ja(1+bq);a&&b.Ja(vq);return b}function Lu(a,b,d){var e=qp[a];a=e.qb;e.ga&&void 0!=d&&(a=e.Yh[d]);d=b;e.If&&(d=Math.min(e.If,d));e.Pe&&(d=Math.max(0,b-e.Pe+1));b=oh(c(d),e.Hf);return a.o(b)}function Mu(a,b){return jh(a.L(1).Ia(b.L(1)),1)}function Nu(a,b){var d=qp[a];a=D.P[a];var e=void 0,f=a.cb;d.ga&&(e=a.tb%d.ga,f=a.mb[e]);b=Lu(d.index,b,e).sub(Lu(d.index,f,e));a=D.Qf;e=D.Ue;d.ld?e=e.add(b):a=a.add(b);return Mu(a,e)}
function Ou(){var a=120;1==D.i[$p].count&&(a+=420);ub(D.b.g,10)&&ub(qb.g,.5)&&(a=5);return a}function Yk(a){return oj()?!1:void 0==a||a==S||a==dj||a==Si?D.P[Ll].X:a==Ti?D.P[Ll].X&&D.$[Pu].count:a==Zi?D.P[Ll].X&&D.$[Qu].count:a==Ui?D.P[Ll].X&&D.$[Ru].count:!1}function $k(a){return a==S||a==dj?(a=c(.25),D.$[Su].count&&a.v(Uu.o(D.$[Su].count)),a):a==Si?(a=c(.25),D.$[Vu].count&&a.v(Wu.o(D.$[Vu].count)),a):a==Ti?Xu:a==Zi?Yu:a==Ui?Zu:c(.1)}
function Zk(a){var b=a.type;if(b==dj)return b=D.Kj[S],void 0==b||vl[b].Nb?4*D.eb[Zn]-1:Zk(vl[b]);var d=a.l,e=void 0;0<d&&em[b]&&(e=em[b][d-1]);e&&!Ej(e)&&(e=void 0);var f=void 0;void 0!=d&&em[b]&&(f=em[b][d+1]);f&&!Ej(f)&&(f=void 0);a=D.eb[a.index];e&&(a+=D.eb[e.index]);f&&(a+=D.eb[f.index]);b==S&&(a+=4*D.eb[Zn]);--a;0>a&&(a=0);return a}function $u(){this.name="a";this.kk=this.Qa=this.description=void 0;this.index=0;this.image=void 0}
function av(){var a=[],b=[];this.dg=!1;this.Uj=this.Bj=this.Aj=this.index=0;this.height=function(){return Math.max(Fj.length,Math.max(a.length,b.length))}}var bv=[],cv=[],dv=-1;function ev(a,b,d,e){if(cv[dv]||0>dv||65535<dv)throw"squirrel_upgrades id already exists or is invalid!";var f=new $u;f.index=dv++;cv[f.index]=f;bv.push(f.index);f.name=a;f.image=e||bh[0];f.Qa=b||null;f.description=d;return f.index}var fv=[],gv=[],hv=[];
function iv(a,b,d,e){var f=jv;fv[f]||(fv[f]=[]);var g=fv[f];gv[f]||(gv[f]=0);hv[f]||(hv[f]=0);var h=new av;h.Hd=a||[];h.Sb=b||[];h.K=d||[];h.dg=!!e;h.index=g.length;e&&gv[f]++;(e||b)&&hv[f]++;h.Aj=gv[f];h.Bj=hv[f];0<h.index&&(a=g[h.index-1],h.Uj=a.Uj+a.Hd.length+a.Sb.length+a.K.length);g.push(h)}dv=10;
var Hk=c(.65),Lk=c(.65),Gl=c(.5),El=c(.5),Wl=c(.5),Mj=.2,Gk=ev("berry boost",void 0,"boosts berries +"+L(Hk),td[4]),Kk=ev("mushroom boost",void 0,"boosts mushroom production but also consumption by +"+L(Lk),Td[4]),Fl=ev("flower boost",void 0,"boosts the flower boost by +"+L(Gl),Ld[4]),Dl=ev("nettle boost",void 0,"boosts the nettle boost by +"+L(El),se[4]),Vl=ev("bee boost",void 0,"boosts the bee boost by +"+L(Wl),Ke[4]),kv=ev("fruit tier probability",void 0,"increases probability of getting a better fruit tier drop: moves the probability tipping point for higher tier drop by around 10%, give or take because the probability table is different for different tree levels",
Nc[4]),lv=ev("seasonal fruit probability",void 0,"increases probability of getting a better seasonal fruit drop from 1/4th to 1/3rd",Oc[3]),mv=ev("double fruit drop chance",void 0,"when the tree drops a fruit, it has "+L(c(.25))+" chance to drop 2 fruits at once",Nc[3]),Lj=ev("grow speed",void 0,"crops grow "+L(c(Mj))+" faster",td[0]),ql=ev("watercress and mushroom soup",void 0,"when watercress copies from mushroom, it no longer increases seed consumption, it copies the spores entirely for free. Also works for other brassica.",
ue[4]),Gj=ev("brassica time",void 0,"adds 50% to the lifetime of brassica, such as watercress",ue[1]),nv=c(.25),ov=ev("ethereal squirrel boost",void 0,"adds an additional "+L(nv)+" to the neighbor boost (which is originally 50%) of the ethereal squirrel",Xe[4]),pv=c(.25),qv=ev("ethereal automaton boost",void 0,"adds an additional "+L(pv)+" to the neighbor boost (which is originally 50%) of the ethereal automaton",We[4]),Hq=c(.2),Gq=ev("ethereal tree neighbor boost",void 0,"ethereal tree boosts non-lotus neighbors (non-diagonal) by "+
L(Hq),Vg[6][1][4]),rv=ev("seasonal fruit mixing",void 0,"Allows fusing mixed seasonal fruits, to get new multi-season fruit types that give the season bonus in 2 seasons:<br> \u2022 apricot + pineapple = mango (spring + summer),<br> \u2022 pineapple + pear = plum (summer + autumn),<br> \u2022 pear + medlar = quince (autumn + winter),<br> \u2022 medlar + apricot = kumquat (winter + spring).<br>Other fruit fusing rules work as usual. If this upgrade is removed due to respec, the multi-season fruits temporarily lose their season boost until getting this upgrade again. A later squirrel upgrade will extend the ability of this upgrade.",
Sc[4]),sv=ev("seasonal fruit mixing II",void 0,"A next level of fruit mixing: allows creating the 4-season star fruit! Fuse mango+quince, or alternatively plum+kumquat, but only if they have the same abilities, to get the star fruit. The star fruit is an almost-final form and cannot be fused with anything that changes its abilities anymore. If this squirrel upgrade or its predecessor is removed due to respec, star fruits temporarily lose their season boost until getting this upgrade again.",Xc[4]),
tv=ev("seasonal fruit mixing III",void 0,"The next level of fruit mixing: allows creating the legendary dragon fruit! Fuse star fruit + apple, but only if they have the same abilities, to get the dragon fruit, which is a version of the star fruit with more season bonus. The dragon fruit itself is the final form, it cannot be fused and its abilities cannot be changed. If this squirrel upgrade is removed due to respec, dragon fruits temporarily act like star fruit, or lose the season boost entirely if the star fruit squirrel upgrade is also not active, until getting this upgrade again.",
Yc[4]),ru=c(.25),qu=ev("resin bonus",void 0,"increases resin gain by "+L(c(ru)),Fc),wu=c(.25),vu=ev("twigs bonus",void 0,"increases twigs gain by "+L(c(wu)),Je[2]),uv=c(.5),vv=ev("essence bonus",void 0,"increases essence from sacrificed fruits by "+L(c(uv)),Nc[3]),Xu=c(.1),Pu=ev("flower multiplicity",void 0,"Unlocks multiplicity of flowers. Requires that regular multiplicity for berries and mushrooms has been unlocked. Given that, then this allows also the presence of multiple flowers anywhere in the field to give a global flower bonus, for all flowers with max 1 tier difference. The bonus per flower is "+
L(Xu),Od[3]),wv=ev("diagonal brassica",void 0,"brassica (such as watercress) can also copy diagonally, they can get up to 8 instead of 4 neighbors to copy from",ue[4]);function xv(){return!oj()&&!!D.$[wv].count}
var hl=.1,il=1.1,gl=75,fl=ev("highest tree level ever bonus",void 0,"unlocks a production bonus that depends on highest tree level ever reached, starting from level "+gl+". Bonus multiplier formula: ((highest level - "+(gl+") * "+hl+" + 1) ^ "+il),Vg[6][1][1]),ml=4,ll=7200,jl=ev("time at level bonus",void 0,"unlocks a production bonus that depends how much time the tree has spent at the current level, with a weighed average including 2 previous level durations. The maximum bonus is +"+L(c(ml))+" after "+
ll/3600+" hours.",kd),Yu=c(.1),Qu=ev("bee multiplicity",void 0,"Unlocks multiplicity of bees. Requires that regular multiplicity for berries and mushrooms has been unlocked. Presence of multiple bees anywhere in the field will give a global bee bonus. The bonus per bee is "+L(Yu),Ke[4]),qj=.5,pj=ev("weather duration",void 0,"increases active duration of weather effects by "+L(c(qj))+" without increasing total active+cooldown cycle time",Ic);
cv[pj].Qa=function(){var a=r.getTime(),b=mj(120),d=mj(180),e=mj(240),f=rj(1080),g=rj(1440),h=a-D.xb,k=a-D.kb;a-=D.lb;var l=b-h,n=d-k,p=e-a;if(h>rj(720)||h>b)l=0;if(k>f||k>d)n=0;if(a>g||a>e)p=0;0<n&&0<l&&(D.kb-=n);(0<l||0<n)&&0<p&&(D.lb-=p)};
var zv=ev("Evolve squirrel",function(){yv();return!0},"Resets and removes all squirrel upgrades. Gives a flat permanent production bonus. Replaces the squirrel upgrade tree with a new, more expensive, tree. You will be weaker after this, but eventually get stronger than ever before thanks to the new upgrades.",nd),Zu=c(1),Ru=ev("stinging multiplicity",void 0,"Unlocks multiplicity of stingy crops. Requires that regular multiplicity for berries and mushrooms has been unlocked. Presence of multiple nettles anywhere in the field will give a global nettle bonus. The bonus per nettle is "+
L(Zu),se[4]),Av=ev("seasonal fruit mixing",void 0,"Unlocks all fruit mixing including dragon fruit. This upgrade combines seasonal fruit mixing I, II and III.",Yc[4]);function Ut(a){return 1==a?D.$[rv].count||D.$[Av].count:2==a?D.$[sv].count||D.$[Av].count:3==a?D.$[tv].count||D.$[Av].count:!1}
var Il=c(1.5),Hl=ev("prestiged flower boost",void 0,"Prestiged flowers get a "+L(Il)+" boost",Ld[4]),Jk=c(2),Ik=ev("prestiged berry boost",void 0,"Prestiged berries get a "+L(Jk)+" boost",td[4]),Nk=c(2),Mk=ev("prestiged mushroom boost",void 0,"Prestiged mushrooms get a "+L(Nk)+" boost",Td[4]),Uu=c(.1),Su=ev("berry multiplicity boost",void 0,"Boosts the berry multiplicity by an additional "+L(Uu)+". Requires berry multiplicity has been unlocked.",td[4]),Wu=c(.2),Vu=ev("mushroom multiplicity boost",
void 0,"Boosts the mushroom multiplicity by an additional "+L(Wu)+". Requires mushroom multiplicity has been unlocked.",Td[4]),Bv=c(.5),Cv=ev("ethereal squirrel boost II",void 0,"adds an additional "+L(Bv)+" to the neighbor boost (which is originally 50%) of the ethereal squirrel",Xe[4]),Dv=c(.5),Ev=ev("ethereal automaton boost II",void 0,"adds an additional "+L(Dv)+" to the neighbor boost (which is originally 50%) of the ethereal automaton",We[4]),Jq=c(.5),Iq=ev("ethereal tree neighbor boost II",
void 0,"ethereal tree boosts non-lotus neighbors (non-diagonal) by "+L(Jq),Vg[6][1][4]),Fq=c(.2),Nq=ev("diagonal ethereal tree",void 0,"ethereal tree boost also works diagonally",Vg[6][1][4]),Fv=ev("fruit tier and double fruit chance",void 0,"increases probability of getting a better fruit tier drop: moves the probability tipping point for higher tier drop by around 10%, give or take because the probability table is different for different tree levels. In addition, adds "+L(c(.125))+" chance to drop 2 fruits at once",
Nc[4]),Gv=ev("seasonal fruit and double fruit chance",void 0,"increases probability of getting a better seasonal fruit drop from 1/4th to 1/3rd. In addition, adds "+L(c(.125))+" chance to drop 2 fruits at once",Oc[3]),jv;jv=0;iv([Gk],[ov],[Kk]);iv([Dl],[qv],[Fl]);iv([rv],void 0,[lv]);iv(void 0,[Gq],void 0,!0);iv([kv,Lj],void 0,[vv,ql]);iv([pj,Kk],void 0,[sv,Pu]);iv([Gj,Vl],void 0,[mv,Gk]);iv(void 0,[ov],void 0,!0);iv([qu],void 0,[vu]);iv([wv],void 0,[fl]);iv([jl],void 0,[Qu]);iv([Gk],void 0,[Kk]);
iv([tv],void 0,[Fl]);iv(void 0,[qv],void 0,!0);iv(void 0,[zv],void 0,!0);jv=1;iv([Ik],void 0,[Mk]);iv([Ru],void 0,[Hl]);iv([Av],void 0,[ql]);iv(void 0,[Cv],void 0,!0);iv([Fv,vv,jl],void 0,[Gv,Lj,Qu]);iv([Gq,Nq,fl],void 0,[Kk,Gk,Fl]);iv([qu],void 0,[vu]);iv(void 0,[Ev],void 0,!0);iv([wv],[Vu],[Gj]);iv([Fl],[Iq],[Pu]);iv([Kk],[ov],[Gk]);iv([Vl],[pj],[Dl]);iv(void 0,[qv],void 0,!0);var vk=c(101);
function Hv(a){if(0==D.gb){var b=oh(c(10),a).o(1E3);33<=a&&b.Ja(1E6);return b}if(1==D.gb){if(0==a)return c(0);a--;return b=oh(c(20),a).o(1E39)}return c(Infinity)}var Iv=c(15),Jv=c(20),Kv=c(20),Lv=c(20),Mv=c(30),Nv=c(0);
function mo(a){var b=vl[a],d=D.U[a];if(b.Ik!=d.sa){b.Ik=d.sa;var e=b.l;if(b.type==S){if(0>b.l)return;var f=b.l&15;f+=d.sa*hj[b.type];b.V=lm(f);b.Mb=mm(f);b.l=f;null!=b.Ma&&(f=Fj[b.Ma],io(f,b));b.Ra=b.Hh*(1+3*d.sa)}if(b.type==Ti){if(0>b.l)return;f=b.l&7;f+=d.sa*hj[b.type];b.V=um(f);b.va=Em(f);b.l=f;null!=b.Ma&&(f=Fj[b.Ma],po(f,b));b.Ra=b.Hh*(1+d.sa)}if(b.type==Si){if(0>b.l)return;f=b.l&7;f+=d.sa*hj[b.type];b.V=om(f);b.Mb=pm(f);b.l=f;null!=b.Ma&&(f=Fj[b.Ma],io(f,b));b.Ra=b.Hh*(1+d.sa)}if(b.type==cj){if(0>
b.l)return;f=b.l&15;f+=d.sa*hj[b.type];b.V=rm(f);b.Mb=sm(f);b.l=f;null!=b.Ma&&(f=Fj[b.Ma],io(f,b));b.Ra=b.Hh*(1+d.sa)}d=b.l;em[b.type][e]=void 0;em[b.type][d]=vl[a]}}function Ov(){for(var a=0;a<hj[S];a++)mo(Fm+a);for(a=0;a<hj[Si];a++)mo(Vm+a);for(a=0;a<hj[Ti];a++)mo(cn+a);for(a=0;a<hj[cj];a++)mo(sn+a)}
function Pv(a,b){return a==Rj&&2>D.P[Rj].X?(b&&X("blueprints are disabled during the wither challenge, for now...",Qv),!1):a==Sj?(b&&X("blueprints are disabled during the undeletable challenge, instead carefully plant crops 1 by 1 since you can never delete them",Qv),!1):a==kj?(b&&X("blueprints are disabled during the bee challenge",Qv),!1):a==uq?(b&&X("blueprints are disabled during the truly basic challenge",Qv),!1):!0}
function kl(a){var b=Math.max(Math.max(Rv(),D.zc[0]),Math.max(.66*D.zc[1],.33*D.zc[2]));if(a)for(a=0;a<D.Vc.length;a++)b=Math.max(b,D.Vc[a]);return b}function yv(){La({icon:nd,size:2,ib:function(){Z({type:Sv})},names:"evolution",qc:"cancel",title:"Squirrel evolution"}).content.a.innerHTML=Tv();39!=D.Na[39]&&X("Unlocked dynamic help dialog: "+Uv[39].jl,go);D.Na[39]=39}
function Vv(){if(!(D.gb+1>=fv.length)){D.gb++;D.Zj=D.Gf.add(D.b.S);D.b.S=c(0);D.Gf=c(0);Wv(D);for(var a=0;a<bv.length;a++)D.$[bv[a]]=new Xv;D.th=!0;D.Lh=!1;Yv(D);Zv=void 0;$v()}}function aw(){this.Wf=this.index=0;this.name="a";this.description="";this.Gk=3600;this.qb=c(.1);this.getTime=function(){return this.Gk*(D.nb[this.index].aa+1)};this.oh=function(){};this.nh=function(){return this.oh(D.nb[this.index].aa+1)};this.Fj=function(){}}var bw=[],cw=[],dw=0;
function ew(a,b,d,e,f){var g=new aw;g.index=dw++;cw[g.index]=g;bw.push(g.index);f=f.replace("%BONUS%",L(b));g.name=a;g.qb=b;g.Wf=d;g.Gk=e;g.description=f;return g.index}
var fw=c(.15),gw=ew("evolve",c(.1),0,86400,"Evolves the ethereal mistletoe. Does not reset anything (existing upgrades stay). At some levels unlocks new types of bonuses. Gives an extra %BONUS% bonus to the other bonuses except those that give resin or twigs (additive with evolution levels)"),Sk=ew("leafiness",c(.07),0,3600,"Gives a %BONUS% production bonus per level to the main field"),Sq=ew("friendliness",c(.07),1,3600,"Gives a %BONUS% bonus to orthogonally or diagonally neighboring ethereal crops, of any type that can receive bonus from lotuses (but not to lotuses themselves)"),
Jl=ew("stinginess",c(.07),5,3600,"Gives a %BONUS% bonus to stingy crops (for spore production) per level"),Vk=ew("funginess",c(.07),9,3600,"Gives a %BONUS% bonus to mushrooms (both production and consumption) per level"),Uk=ew("berry-ness",c(.07),11,3600,"Gives a %BONUS% bonus to berry seed production per level"),Bq=ew("lotus neighbors",c(.03),13,3600,"Gives a %BONUS% bonus to orthogonally or diagonally neighboring lotuses");dw=50;var su=ew("sappiness",c(.1),3,3600,"Gives a %BONUS% bonus to resin production per level");
cw[su].oh=function(a){return R({G:1E17}).Ia(th(new c(2),new c(a-1)))};cw[su].Fj=function(a){a=this.oh(a+1);a.G.oa(new c(1E17));return a};var xu=ew("twigginess",c(.1),7,3600,"Gives a %BONUS% bonus to twigs production per level");cw[xu].oh=function(a){return R({c:1E18}).Ia(th(new c(2),new c(a-1)))};cw[xu].Fj=function(a){a=this.oh(a+1);a.c.oa(new c(1E18));return a};function hw(){return cw[gw].qb.o(D.nb[gw].aa)}function iw(a){return a==xu||a==su?c(0):hw()}
function Tk(a){if(a==gw)return hw();if(a==xu)return a=fw.add(cw[xu].qb.o(D.nb[xu].aa)),a.u(iw(xu).L(1)),a;var b=cw[a].qb.o(D.nb[a].aa);b.u(iw(a).L(1));return b}function jw(a){if(a==gw)return L(hw());var b=cw[a].qb.o(D.nb[a].aa);a==xu&&b.v(fw);b=""+L(b);var d=iw(a);d.T(0)&&(b+=" with "+L(d)+" evo = "+L(Tk(a)));return b}function kw(a){return a==gw?!0:D.nb[gw].aa>=cw[a].Wf}function Rk(a){return kw(a)&&D.oe?D.nb[a].aa:0}
function lw(){this.name="a";this.V=R();this.Mb=R();this.Ra=this.index=0;this.Xi=c(0);this.rh=c(0);this.Gd="";this.image=void 0}aa=lw.prototype;aa.O=function(a,b){if(this.type==Vi)return this.V;var d=1.1;this.type==Ti&&(d=1.25);this.type==Zi&&(d=2);this.type==ej&&(d=1E3);a=D.Td[this.index]+(a||0);void 0!=b&&(a=b);return this.V.o(Math.pow(d,a))};aa.ub=function(a,b){b=this.O((b||0)-1).o(1);a&&this.type==Vi&&b.Ja(Math.min(Math.max(0,a.F),1));return b};aa.za=function(){return this.Ra};
aa.Eb=function(a,b){var d=this.Mb.clone();b&&b.push(["base",!0,c(0),d.clone()]);if(a&&this.type==S){for(var e=new c(1),f=0,g=0;4>g;g++){var h=a.x+(1==g?1:3==g?-1:0),k=a.y+(2==g?1:0==g?-1:0);0>h||h>=D.La||0>k||k>=D.Ka||(h=D.ta[k][h],Xk(h)&&mw[no(h)].type==Ti&&(h=nw(mw[no(h)],h),h.T(0)&&(e.v(h),f++)))}f&&(d.u(e),b&&b.push(["flowers ("+f+")",!0,e,d.clone()]))}return d};
function nw(a,b,d){var e=a.rh.clone();d&&d.push(["base",!0,c(0),e.clone()]);if(b&&a.type==Ti){a=0;for(var f=new c(1),g=0;4>g;g++){var h=b.x+(1==g?1:3==g?-1:0),k=b.y+(2==g?1:0==g?-1:0);0>h||h>=D.La||0>k||k>=D.Ka||(h=D.ta[k][h],nk(h)&&T(h).type==Zi&&(a++,h=nw(T(h),h),f.v(h)))}0<a&&(e.u(f),d&&d.push(["bees ("+a+")",!0,f,e.clone()]))}return e}
aa.wc=function(a,b){var d=this.Xi.clone();b&&b.push(["base",!0,c(0),d.clone()]);if(a){for(var e=new c(1),f=0,g=0;4>g;g++){var h=a.x+(1==g?1:3==g?-1:0),k=a.y+(2==g?1:0==g?-1:0);0>h||h>=D.La||0>k||k>=D.Ka||(h=D.ta[k][h],Xk(h)&&mw[no(h)].type==ej&&(h=nw(mw[no(h)],h),h.T(0)&&(e.v(h),f++)))}f&&(d.u(e),b&&b.push(["runestones ("+f+")",!0,e,d.clone()]))}return d};var ow=[],mw=[],pw=[],qw=-1;
function rw(a,b,d,e,f,g,h){h||(h=sd);if(mw[qw]||0>qw||65535<qw)throw"crop3 id already exists or is invalid!";var k=new lw;k.index=qw++;mw[k.index]=k;ow.push(k.index);k.name=a;k.type=b;k.l=d;k.V=e;k.Xi=f;k.Ra=g;k.image=h;k.Gd="";void 0!=b&&void 0!=d&&(pw[b]||(pw[b]=[]),pw[b][d]=k);return k.index}function sw(a,b,d,e,f,g,h){a=rw(a,Vi,b,d,f,g,h);mw[a].Mb=e;return a}function tw(a,b,d,e,f,g){a=rw(a,S,b,d,f,15,g);mw[a].Mb=e;return a}function uw(a,b,d,e,f,g){a=rw(a,Ti,b,d,f,15,g);mw[a].rh=e;return a}qw=0;
var vw=sw("zinc watercress",0,R({R:10}),R({R:20.01/86400}),c(.05),86400,Ef(ue," hm:#999")),ww=sw("bronze watercress",1,R({R:25E3}),R({R:5E4/172800}),c(.05),172800,Ef(ue," hm:#c70")),xw=sw("silver watercress",2,R({R:5E7}),R({R:2E8/259200}),c(.05),259200,Ef(ue," N:#eee M:#bbb m:#888 n:#555",0)),Uw=sw("electrum watercress",3,R({R:2E12}),R({R:4E12/86400}),c(.05),86400,Ef(ue," hm:#cfa",4));qw=300;
var Vw=tw("zinc blackberry",0,R({R:400}),R({R:200/86400}),c(.075),Ef(td," hm:#999")),Ww=tw("bronze blackberry",1,R({R:5E5}),R({R:5E5/86400}),c(.125),Ef(td," hm:#c70",2)),Xw=tw("silver blackberry",2,R({R:2E9}),R({R:1E9/86400}),c(.15),Ef(td," N:#eee M:#bbb m:#888 n:#555",2)),Yw=tw("electrum blackberry",3,R({R:1E14}),R({R:3125E9/86400}),c(.2),Ef(td," hm:#cfa",4,2));qw=600;qw=900;
var Zw=uw("zinc anemone",0,R({R:2500}),c(.5),c(.1),Ef(Ld," hm:#999",1)),$w=uw("bronze anemone",1,R({R:25E5}),c(1),c(.15),Ef(Ld," hm:#c70")),ax=uw("silver anemone",2,R({R:2E10}),c(3),c(.2),Ef(Ld," N:#eee M:#bbb m:#888 n:#555",0)),bx=uw("electrum anemone",3,R({R:1E15}),c(9),c(.3),Ef(Ld," hm:#cfa",4));qw=1200;var cx=R({R:2E11}),dx=c(4),ex=c(.5),fx=Ef(Ke," N:#eee M:#bbb m:#888 n:#555",0),gx=rw("silver bee nest",Zi,2,cx,ex,15,fx);mw[gx].rh=dx;
var hx=R({R:1E16}),ix=c(12),jx=c(.75),kx=Ef(Ke," hm:#cfa",4),lx=rw("electrum bee nest",Zi,3,hx,jx,15,kx);mw[lx].rh=ix;qw=1500;var mx=R({R:5E11}),nx=c(2),ox=c(0),px=rw("runestone",ej,0,mx,ox,3,Bf);mw[px].rh=nx;function qx(){return D.K[Ct].count}function rx(){this.name="a";this.Jk=void 0;this.Af=c(0);this.icon=this.hint=void 0;this.order=this.index=0;this.Ud=!1}
function sx(a){a=a.Af.o(100);return ub(a,1)?0:ub(a,5)?1:ub(a,20)?2:ub(a,100)?3:ub(a,500)?4:ub(a,2E3)?5:ub(a,1E4)?6:ub(a,5E4)?7:ub(a,2E5)?8:ub(a,1E6)?9:ub(a,5E6)?10:11}var tx=[],ux=[],vx=[],wx=-1;function xx(a,b){if(b>a)throw"can only move order backward for now";var d=ux[a];b=ux[b].order+1;for(var e=d.order;e>b;e--)vx[e]=vx[e-1],ux[vx[e]].order=e;vx[b]=a;d.order=b}
function yx(a,b,d,e,f){if(ux[wx]||0>wx||65535<wx)throw"medal id already exists or is invalid!";var g=new rx;g.index=wx++;ux[g.index]=g;tx.push(g.index);g.name=a;g.description=b;g.icon=d;g.Jk=e;g.Af=f;g.order=vx.length;vx[g.order]=g.index;d||(g.icon=ah[sx(g)]);return g.index}function zx(){var a=yx("deprecated","deprecated",Ax,function(){return!1},c(0));ux[a].Ud=!0}var Ax=void 0;wx=0;
yx("crowded","planted something on every single field cell. Time to delete crops when more room is needed!",Ax,function(){return 0!=D.Ae?!1:D.Yj>=D.B*D.D-5},c(.02));yx("fern 100","clicked 100 ferns",kc[0],function(){return 100<=D.dd},c(.01));yx("fern 1000","clicked 1000 ferns",kc[0],function(){return 1E3<=D.dd},c(.1));yx("fern 10000","clicked 10000 ferns",kc[0],function(){return 1E4<=D.dd},c(1));var Bx;wx=4;
for(var Cx=[1E3,1E6,1E9,1E12,1E15,1E18,1E21,1E24,1E27,1E30,1E36,1E42,1E48,1E54,1E60,1E66,1E72,1E78,1E84,1E90,1E96,1E102,1E108,1E114,1E120,1E126,1E162,1E168,1E174,1E180],Dx=[.1,.3,.5,1,2,3,5,10,20,30,50,100,200,300,400,500,1E3,2E3,3E3,5E3,7E3,1E4,2E4,25E3,3E4,4E4,5E4,6E4,7E4,8E4],Ex=0;Ex<Cx.length;Ex++){var xi=c(Cx[Ex]),Fx=wi(),Gx=xi.toString(3,Bh),Hx=xi.toString(3,Hh),Ix=Fx+" seeds",Jx=yx(Ix,"have over "+Gx+" ("+Hx+") seeds",Ec,z(function(a){return D.b.g.da(a)},xi),c(Dx[Ex]).o(.01));0<Ex&&(ux[Jx].hint=
Bx);Bx=Jx}wx=39;var Kx=[5,50,100,200,500,1E3,1500,2E3,5E3],Lx=[.01,.01,.02,.02,.05,.05,.1,.1,.2];for(Ex=0;Ex<Kx.length;Ex++){var Mx=Kx[Ex],Nx=Lx[Ex];Ix="planted "+Mx;Jx=yx(Ix,"Planted "+Mx+" or more permanent plants over the course of the game",td[0],z(function(a){return D.eh>=a},Mx),c(Nx));0<Ex&&(ux[Jx].hint=Bx);Bx=Jx}wx+=20;
var Ox=[[5,.025],[10,.05],[15,.075],[20,.1],[25,.2],[30,.3],[35,.4],[40,.5],[45,.75],[50,1],[60,1.5],[70,2.5],[80,5],[90,10],[100,15],[110,25],[120,50],[130,75],[140,150],[150,200]];for(Ex=0;Ex<Ox.length;Ex++){var Px=Ox[Ex][0],Qx=c(Ox[Ex][1]),Rx=c(Px).toString(5,Lh);Ix="tree level "+Rx;Jx=yx(Ix,"Reached tree level "+Rx,Vg[ku(Px)][1][1],z(function(a){return a<=D.Pa},Px),Qx);0<Ex&&(ux[Jx].hint=Bx);Bx=Jx}wx=104;
yx("four seasons","reached winter and seen all seasons",wc[0],function(){return 3==Oj()},c(.05));wx=110;yx("watercress","plant the entire field full of watercress",ue[4],function(){return D.me[Vi]==D.B*D.D-2},c(.01));yx("berries","plant the entire field full of berries",td[4],function(){return D.Yd[S]==D.B*D.D-2},c(.01));yx("flowers","plant the entire field full of flowers. Pretty, at least that's something",Md[4],function(){return D.Yd[Ti]==D.B*D.D-2},c(.01));
yx("mushrooms","plant the entire field full of mushrooms. I, for one, respect our new fungus overlords.",Td[4],function(){return D.Yd[Si]==D.B*D.D-2},c(.01));yx("stingy situation","plant the entire field full of nettles",se[4],function(){return D.Yd[Ui]==D.B*D.D-2},c(.01));yx("mistletoes","plant the entire field full of mistletoes. You know they only work next to the tree, right?",Je[4],function(){return D.Yd[Yi]==D.B*D.D-2},c(.05));
yx("not the bees","build the entire field full of bees.",Ke[0],function(){return D.Yd[Zi]==D.B*D.D-2},c(.1));yx("unbeelievable","fill the entire field (5x5) with bees during the bee challenge.",Me[4],function(){return 23<=D.Ga[Ol]+D.Ga[Pl]+D.Ga[Ql]},c(.2));yx("buzzy","fill the entire field (5x5) with worker bees during the bees challenge.",Me[4],function(){return 23<=D.Ga[Ol]},c(.3));
yx("unbeetable","fill the entire field (5x5) with drones during the bees challenge.",Ne[4],function(){return 23<=D.Ga[Pl]},c(.4));yx("royal buzz","fill the entire field (5x5) with queen bees during the bees challenge.",Oe[4],function(){return 23<=D.Ga[Ql]},c(.5));wx=125;var Sx=[1,5,10,20,50,100,200,500,1E3],Tx=[.1,.2,.25,.3,.5,1,2,3,4];
for(Ex=0;Ex<Sx.length;Ex++)Px=Sx[Ex],Qx=c(Tx[Ex]),Ix="transcend "+Px,Jx=yx(Ix,"Transcended "+Px+" times",ch,z(function(a){return D.ha>=a},Px),Qx),0<Ex&&(ux[Jx].hint=Bx),Bx=Jx;function Ux(a,b,d){if(a==cj)return 4*Math.pow(2,(45+6*(b-1)-5)/10)/100;a==Si&&(b=2*b+1.5);a==Ti&&(b=2*b+.5);a==Ui&&(b=8*b+3);a==Yi&&(b=4);a==Zi&&(b=8*b+6.75);return Math.pow(1.7,b)*(Math.floor(d/10)+1)/100*.25}
function Vx(a,b){var d=vl[a];return yx(d.name+" "+b,"have "+b+" fullgrown "+d.name,d.image[4],function(){return D.challenge==ul&&a==tl?!1:D.Ga[a]>=b},c(Ux(d.type,d.l,b)))}function Wx(a,b){var d=b?wx++:Vx(a,1),e=b?wx++:Vx(a,10);b=b?wx++:Vx(a,20);var f=Vx(a,30),g=Vx(a,40),h=Vx(a,50);wx++;wx++;vl[a].type!=cj&&(ux[d]&&ux[e]&&(ux[e].hint=d),ux[e]&&ux[b]&&(ux[b].hint=e),ux[b]&&ux[f]&&(ux[f].hint=b),ux[f]&&ux[g]&&(ux[g].hint=f),ux[g]&&ux[h]&&(ux[h].hint=g));return d}wx=160;Wx(Fm);Wx(Gm);Wx(Hm);Wx(Im);Wx(Jm);
Wx(Km);Wx(Lm);Wx(Mm);Wx(Nm);Wx(Om);Wx(Pm);Wx(Qm);Wx(Rm);Wx(Sm);Wx(Tm);Wx(Um);wx=320;Wx(Vm);Wx(Wm);Wx(Xm);Wx(Ym);Wx(Zm);Wx($m);Wx(an);Wx(bn);wx=400;Wx(cn);Wx(dn);Wx(en);Wx(fn);Wx(gn);Wx(hn);Wx(jn);Wx(kn);wx=480;Wx(wl);Wx(tl);wx=560;var Xx=Wx(on);Wx(pn);wx=640;Wx(ln,!0);Wx(mn,!0);wx=720;Wx(nn);wx=960;Vx(sn,1);Vx(tn,1);Vx(un,1);Vx(vn,1);Vx(wn,1);Vx(xn,1);Vx(yn,1);Vx(zn,1);Vx(An,1);Vx(Bn,1);Vx(Cn,1);Vx(Dn,1);Vx(En,1);Vx(Fn,1);Vx(Gn,1);Vx(Hn,1);wx=1E3;
yx("5 ethereal crops","Have 5 ethereal crops",void 0,function(){return 5<=D.Ch},c(.02));yx("10 ethereal crops","Have 10 ethereal crops",void 0,function(){return 10<=D.Ch},c(.05));yx("20 ethereal crops","Have 20 ethereal crops",void 0,function(){return 20<=D.Ch},c(.1));wx=1100;var Yx=[5,10,20,50,100,200,500,1E3,2E3,5E3,1E4],Zx=[.02,.05,.05,.05,.1,.1,.2,.5,.5,1,2],$x=[0,1,2,3,4,5,6,7,8,9,10];
for(Ex=0;Ex<Yx.length;Ex++)xi=Yx[Ex],Qx=c(Zx[Ex]),Ix="fruits "+xi,Jx=yx(Ix,"Found "+xi+" fruits",Nc[$x[Ex]],z(function(a){return D.vc>=a},xi),Qx),0<Ex&&(ux[Jx].hint=Bx),Bx=Jx;wx=1200;var ay=[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20];for(Ex=0;Ex<Ox.length;Ex++)Px=ay[Ex],Qx=c(Px*Px/20),Rx=Px,Ix="ethereal tree level "+Rx,Jx=yx(Ix,"Reached ethereal tree level "+Rx,Vg[ku(Px)][1][4],z(function(a){return a<=D.J},Px),Qx),0<Ex&&(ux[Jx].hint=Bx),Bx=Jx;wx=1300;
var by=[10,100,1E3,1E4,1E5,1E6,1E7,1E8,1E9,1E12,1E15,1E18,1E21,1E24,1E27],cy=[1,2,5,10,15,20,35,50,100,250,500,1E3,2E3,3E3,4E3];for(Ex=0;Ex<by.length;Ex++){xi=c(by[Ex]);Fx=wi();Gx=xi.toString(3,Bh);Hx=xi.toString(3,Hh);Ix=Fx+" resin ";var dy=ub(xi,900)?Gx:Gx+" ("+Hx+")";Jx=yx(Ix,"earned over "+dy+" resin in total",Fc,z(function(a){return D.qa.c.da(a)},xi),c(cy[Ex]).o(.01));0<Ex&&(ux[Jx].hint=Bx);Bx=Jx}wx=2E3;yx("help","viewed the main help dialog",Ya,function(){return 1==ey},c(.01));
yx("changelog","viewed the changelog",kc[0],function(){return 1==fy},c(.01));yx("stats","viewed the player stats",md,function(){return 1==gy},c(.01));wx=2010;var hy=[1,7,30],iy=[1,5,10];for(Ex=0;Ex<hy.length;Ex++){var jy=hy[Ex];Ix=jy+" "+(1==jy?"day":"days");Jx=yx(Ix,"played for "+jy+" days",void 0,z(function(a){return(D.time-D.Ub)/86400>=a},jy),c(iy[Ex]).o(.01))}wx=2020;
yx("higher transcension","performed transcension at exactly twice the initial transcenscion level",void 0,function(){return 20<=D.Pa&&20>D.j},c(.1));wx=2100;yx("the bees knees","completed the bees challenge",Oe[4],function(){return!!D.P[kj].X},c(.1));var ky=yx("on the rocks","completed the rocks challenge",$c[1],function(){return!!D.P[eq].X},c(.05));yx("undeleted","completed the undeletable challenge",void 0,function(){return!!D.P[Sj].X},c(.25));
yx("upgraded","completed the no upgrades challenge",Dc,function(){return 1<=D.P[fq].X},c(.25));yx("upgradeder","completed the no upgrades challenge stage 2",Dc,function(){return 2<=D.P[fq].X},c(.5));yx("withering","completed the wither challenge",void 0,function(){return 1<=D.P[Rj].X},c(.35));var ly=yx("withered","completed the wither challenge stage 2",void 0,function(){return 2<=D.P[Rj].X},c(.7));yx("berried","completed the blackberry challenge",td[4],function(){return 1<=D.P[rq].X},c(1));
yx("B","place a bee nest during the blackberry challenge",Ke[4],function(){return D.challenge==rq&&0<D.Ga[on]},c(1.5));var my=yx("rock lobster","completed the rocks challenge stage 2",$c[2],function(){return 2<=D.P[eq].X},c(.15));xx(my,ky);var ny=yx("this rocks!","completed the rocks challenge stage 3",$c[3],function(){return 3<=D.P[eq].X},c(.45));xx(ny,my);var oy=yx("rock star","completed the rocks challenge stage 4",$c[0],function(){return 4<=D.P[eq].X},c(2));xx(oy,ny);
var py=yx("rocking on","completed the rocks challenge stage 5",$c[1],function(){return 5<=D.P[eq].X},c(5));xx(py,oy);wx=2120;yx("rock solid","completed the rockier challenge",$c[0],function(){return D.P[Ll].X},c(2));yx("rock solid II","completed the rockier challenge map 2",$c[0],function(){return 2<=D.P[Ll].tb},c(2.5));ux[wx-1].hint=wx-2;yx("rock solid III","completed the rockier challenge map 3",$c[0],function(){return 3<=D.P[Ll].tb},c(3));ux[wx-1].hint=wx-2;
yx("rock solid IV","completed the rockier challenge map 4",$c[0],function(){return 4<=D.P[Ll].tb},c(3.5));ux[wx-1].hint=wx-2;yx("rock solid V","completed the rockier challenge map 5 (final)",$c[0],function(){return 5<=D.P[Ll].tb},c(4));ux[wx-1].hint=wx-2;wx=2130;var qy=yx("prickly predicament","completed the thistle challenge",te[4],function(){return D.P[ul].X},c(3));yx("wasaaaa, B","completed the wasabi challenge",Ae[4],function(){return D.P[$l].X},c(4));
yx("the basics","ran the basic challenge",Ax,function(){return D.P[tq].X},c(1));yx("beesic","get a bee nest during the basic challenge",Ke[4],function(){return D.challenge==tq&&0<D.Ga[on]},c(2));wx=2135;yx("basic 15","reach level 15 in the basic challenge",Ax,function(){return D.challenge==tq&&15<=D.j},c(2));yx("basic 20","reach level 20 in the basic challenge",Ax,function(){return D.challenge==tq&&20<=D.j},c(2));
yx("basic 25","reach level 25 in the basic challenge",Ax,function(){return D.challenge==tq&&25<=D.j},c(2.5));yx("basic 30","this is the final achievement for the basic challenge. Higher levels are capped and won't give additional challenge bonus.",Ax,function(){return D.challenge==tq&&30<=D.j},c(3));zx();zx();wx=2150;yx("master of basic","completed the truly basic challenge",Ax,function(){return D.P[uq].X},c(5));wx=2155;
yx("truly basic 15","reach level 15 in the truly basic challenge",Ax,function(){return D.challenge==uq&&15<=D.j},c(2));yx("truly basic 20","reach level 20 in the truly basic challenge",Ax,function(){return D.challenge==uq&&20<=D.j},c(2.5));yx("truly basic 25","this is the final achievement for the truly basic challenge. Higher levels are capped and won't give additional challenge bonus.",Ax,function(){return D.challenge==uq&&25<=D.j},c(3));zx();wx=2170;
yx("stormy","completed the stormy challenge",Mc,function(){return D.P[bl].X},c(1));yx("infernal","completed the infernal challenge",yc[2],function(){return D.P[fk].X},c(1.5));yx("infernal bees","have bees during the infernal challenge",Ke[4],function(){return D.challenge==fk&&0<D.Ga[on]},c(2));yx("infernal prestige","prestige a crop during infernal challenge",yc[3],function(){return D.challenge==fk&&1<=D.U[Fm].sa},c(3));wx=2500;
function ry(a){var b=vl[a];yx(b.name+" prestige","prestiged the "+b.name,b.image[4],function(){return 1<=D.U[a].sa},c(2*Ux(b.type,b.l+hj[b.type],1)))}for(Ex=0;16>Ex;Ex++)ry(Fm+Ex);wx=2600;for(Ex=0;8>Ex;Ex++)ry(Vm+Ex);wx=2700;for(Ex=0;8>Ex;Ex++)ry(cn+Ex);wx=2800;for(Ex=0;16>Ex;Ex++)ry(sn+Ex);wx=2900;
var sy=[1E3,1E6,1E9,1E12,1E15,1E18,1E21,1E24,1E27,1E30,1E33,1E36,1E39,1E42,1E45,1E48,1E51,1E54,1E57,1E60,1E63,1E66,1E69,1E72,1E75,1E78,1E81,1E84,1E87,1E90,1E93,1E96,1E99],ty=[1,3,5,10,20,30,40,50,60,70,80,100,150,200,300,400,500,600,700,800,900,1E3,1500,2E3,3E3,4E3,5E3,6E3,7E3,8E3,9E3,1E4,15E3];
for(Ex=0;Ex<sy.length;Ex++)xi=c(sy[Ex]),Fx=wi(),Gx=xi.toString(3,Bh),Hx=xi.toString(3,Hh),Ix=Fx+" nuts",Jx=yx(Ix,"have over "+Gx+" ("+Hx+") nuts",Gc,z(function(a){return D.b.S.da(a)},xi),c(ty[Ex]).o(.01)),0<Ex&&(ux[Jx].hint=Bx),Bx=Jx;wx=3E3;yx("ghost in the field","have a ghost-crop",Nf,function(){return 0<D.te},c(1));yx("ghost town","have 10 ghost crops in the field",Rf,function(){return 10<=D.te},c(1.5));
yx("who you gonna call?","have the whole field full of ghost crops",Vf,function(){if(0==D.te)return!1;var a=D.B*D.D-2;return D.te>=a||D.ph>=a&&4>=D.ph-D.te?!0:!1},c(2));yx("undeletable ghost","get a ghost-crop during the undeletable challenge",Nf,function(){return 0<D.te&&D.challenge==Sj},c(1));
var uy=yx("truly basic speed 2.5h","reach level 10 in the truly basic challenge in 2.5 hours or less",kd,function(){return D.challenge==uq&&10<=D.j&&9E3>=D.pa||D.P[uq].X&&9E3>=D.P[uq].Db?!0:!1},c(1)),vy=yx("truly basic speed 2h","reach level 10 in the truly basic challenge in 2 hours or less",kd,function(){return D.challenge==uq&&10<=D.j&&7200>=D.pa||D.P[uq].X&&7200>=D.P[uq].Db?!0:!1},c(2));ux[vy].hint=uy;
var wy=yx("truly basic speed 1.5h","reach level 10 in the truly basic challenge in 1.5 hours or less",kd,function(){return D.challenge==uq&&10<=D.j&&5400>=D.pa||D.P[uq].X&&5400>=D.P[uq].Db?!0:!1},c(3));ux[wy].hint=vy;var xy=yx("truly basic speed 1h","reach level 10 in the truly basic challenge in 1 hour or less",kd,function(){return D.challenge==uq&&10<=D.j&&3600>=D.pa||D.P[uq].X&&3600>=D.P[uq].Db?!0:!1},c(4));ux[xy].hint=wy;wx=3020;
yx("squirrel evolution","evolve the squirrel",nd,function(){return 1<=D.gb},c(100));var yy=yx("rather stingy","plant the entire field full of stinging crops during the thistle challenge",te[4],function(){return D.challenge==ul&&D.Yd[Ui]>=D.B*D.D-2},c(4));xx(yy,qy);wx=3040;var zy=yx("withered III","completed the wither challenge stage 3",void 0,function(){return 3<=D.P[Rj].X},c(2));xx(zy,ly);var Ay=yx("withered IV","completed the wither challenge stage 4",void 0,function(){return 4<=D.P[Rj].X},c(4));
xx(Ay,zy);var By=yx("withered V","completed the wither challenge stage 5",void 0,function(){return 5<=D.P[Rj].X},c(5));xx(By,Ay);wx=4E3;yx("One infinity","Have one crop on the infinity field",od,function(){return 1<=D.ce},c(10));yx("Two infinities","Have two crops on the infinity field",od,function(){return 2<=D.ce},c(20));yx("Four infinities","Have four crops on the infinity field",od,function(){return 4<=D.ce},c(40));
yx("Eight infinities","Have eight crops on the infinity field",od,function(){return 8<=D.ce},c(80));yx("Sixtien infinities","Have sixteen crops on the infinity field",od,function(){return 16<=D.ce},c(160));yx("Infinite infinities","Filled the entire infinity field with crops",od,function(){return 0==D.Xj},c(250));yx("One runestone","Have one runestone on the infinity field",Bf[4],function(){return 1<=D.Td[px]},c(100));
yx("Two runestones","Have two runestones on the infinity field",Bf[4],function(){return 2<=D.Td[px]},c(200));yx("Four runestones","Have four runestones on the infinity field",Bf[4],function(){return 4<=D.Td[px]},c(400));yx("Eight runestones","Have eight runestones on the infinity field",Bf[4],function(){return 8<=D.Td[px]},c(800));yx("Sixtien runestones","Have sixteen runestones on the infinity field",Bf[4],function(){return 16<=D.Td[px]},c(1600));wx=4200;
function Cy(a){var b=mw[a],d=2*mw[a].V.R.log();yx("Infinity "+na(b.name),"Have a "+b.name+" on the infinity field",b.image[4],function(){return 1<=D.Td[a]},c(d))}Cy(vw);Cy(Vw);Cy(Zw);Cy(ww);Cy(Ww);Cy($w);Cy(xw);Cy(Xw);Cy(ax);Cy(gx);Cy(Uw);Cy(Yw);Cy(bx);Cy(lx);function ol(a){var b=r.getTime();return 1==a?1670284800<=b&&1673049599>=b:!1};var oo=16,Oq=1,Pq=2,Dy=3,Ey=4,rl=5;function Fy(a,b,d){this.wb=this.F=this.index=0;this.x=a;this.y=b;this.we=this.hg=!1;this.ej=d}function sk(a){return a.index<oo?!1:T(a).type==Vi||1==a.ej&&D.challenge==Rj?0<a.F:1<=a.F}function Xk(a,b){return b&&a.index==rl?Xk(sl(a),!1):a.index>=oo}function nk(a,b){return b&&a.index==rl?nk(sl(a),!1):a.index>=oo&&!T(a).Nb&&!T(a).Ab}function no(a,b){return b&&a.index==rl?no(sl(a),!1):a.index-oo}
function T(a,b){if(b&&a.index==rl)return T(sl(a),!1);if(!(a.index<oo))return 2==a.ej?Kq[a.index-oo]:3==a.ej?mw[a.index-oo]:vl[a.index-oo]}function Gy(a,b){if(b&&a.index==rl)return Gy(sl(a),!1);a=T(a);if(!a||!a.Nb&&!a.Ab)return a}function rk(a,b){if(D.C[b][a].index!=rl)return 0;var d=0<b&&D.C[b-1][a].index==rl,e=0<a&&D.C[b][a-1].index==rl;return b+1<D.D&&D.C[b+1][a].index==rl&&!e?1:a+1<D.B&&D.C[b][a+1].index==rl&&!d?2:d&&e?3:0}
function sl(a){if(a.index==Oq)return a;if(a.index==Pq&&0<a.y)return D.C[a.y-1][a.x];if(a.index==rl){var b=rk(a.x,a.y);if(1==b)return D.C[a.y][a.x-1];if(2==b)return D.C[a.y-1][a.x];if(3==b)return D.C[a.y-1][a.x-1]}return a}function Ml(a,b,d,e,f){var g=f[b][a],h=f[e][d],k=T(g),l=T(h);l=h.index!=Pq&&h.index!=Oq&&h.index!=rl&&!(l&&l.Yb);if(!(g.index==Pq||g.index==Oq||g.index==rl||k&&k.Yb)&&l)return!0;g=sl(g);h=sl(h);b=sl(f[b][d]);a=sl(f[e][a]);return!(b==g||b==h||a==g||a==h)}
var Hy=[[0,-1,!1],[1,0,!1],[0,1,!1],[-1,0,!1]],Iy=[[-1,-1,!0],[0,-1,!1],[1,-1,!0],[-1,0,!1],[1,0,!1],[-1,1,!0],[0,1,!1],[1,1,!0]],Jy=[[0,-1,!1],[1,-1,!1],[-1,0,!1],[2,0,!1],[-1,1,!1],[2,1,!1],[0,2,!1],[1,2,!1]],Ky=[[-1,-1,!0],[0,-1,!1],[1,-1,!1],[2,-1,!0],[-1,0,!1],[2,0,!1],[-1,1,!1],[2,1,!1],[-1,2,!0],[0,2,!1],[1,2,!1],[2,2,!0]];function Wk(a,b){return(a=T(a,!1))&&a.Yb?b?Ky:Jy:b?Iy:Hy}function Ly(a){return 0==a.index||a.index==Dy}function My(a){return Xk(a)&&T(a).Nb}
function Ny(){this.f=!1;this.xe=this.sa=0}function Oy(){this.f=!1}function Py(){this.vb=this.f=!1}function Qy(){this.f=this.Ff=this.na=!1;this.count=0}function Ry(){this.f=!1;this.count=0}function Xv(){this.count=0}function Sy(){this.aa=[0,0,0];this.na=[0,0,0]}function Ty(){this.hb=this.na=!1}function Uy(){this.f=!1;this.Ic=this.Db=this.cb=this.ng=this.tb=this.aa=this.X=0;this.pd=this.od=this.mb=void 0;this.yi=this.xi=0;this.vh=c(0);this.Pj=c(0);this.pf=0;this.Tl=c(0);this.Nj=this.Oj=0}
function Vy(){this.D=this.B=0;this.data=[];this.l=[];this.name=""}function Wy(a){return 0==a?-1:2==a?Ln:3==a?Mn:4==a?Nn:5==a?On:6==a?Pn:7==a?Qn:8==a?Rn:9==a?Sn:60==a?Tn:-1}function Xy(a,b){a=0==a?-1:2==a?Is:3==a?rs:4==a?ss:5==a?ts:6==a?us:7==a?Ds:8==a?Es:32==a?zs:33==a?Cs:34==a?vs:35==a?ws:-1;if(-1==a)return a;var d=Kq[a];return d?void 0!=b&&(b=dr[d.type][b])?b.index:a:a}
function Yy(a){return a?a.type==Vi?2:a.type==S?3:a.type==Si?4:a.type==Ti?5:a.type==Ui?6:a.type==Zi?7:a.type==Yi?8:a.type==cj?9:a.type==Wi?32:a.type==bj?33:a.type==Xi?34:a.type==aj?35:a.type==dj?60:0:0}function Zy(a,b){b&&(a||(b.B=0,b.D=0,b.data=[],b.l=[]),b.B=a.B,b.D=a.D,b.data=r.clone(a.data),b.l=r.clone(a.l),b.name=a.name)}function $y(a){var b=new Vy;Zy(a,b);return b}
function az(){this.Mc=this.done=this.enabled=!1;this.type=this.ge=0;this.level=10;this.time=this.sa=this.W=0;this.Vd=!1;this.ac=0;this.ne=this.Nk=!1;this.wd=0;this.Vf=!1;this.Ie=0;this.Uf=this.Tf=!1}function bz(){this.aa=this.time=0}var cz=0;
function dz(){cz++;this.time=this.Wj=this.Rj=this.Di=this.Ti=this.ec=this.ua=0;this.Ri=-1;this.Tj=this.ia=0;this.sb=this.Bb=this.Va=-1;this.b=void 0;this.c=c(0);this.G=c(0);this.mf=this.Ge=this.De=this.ye=this.lg=this.Qc=this.j=0;this.zc=[0,0,0];this.Vc=[0,0];this.Xg=this.bb=this.ab=this.Da=this.Bf=0;this.pe=-1;this.qe=new R;this.Pi=this.Pb=this.Ob=this.Ih=this.Gb=0;this.Be=-1;this.ug=this.tg=this.uh=0;this.D=this.B=5;this.C=[];this.U=[];for(var a=0;a<dm.length;a++)this.U[dm[a]]=new Ny;this.i=[];
for(a=0;a<$n.length;a++)this.i[$n[a]]=new Qy;this.Lb=[];for(a=0;a<tx.length;a++)this.Lb[tx[a]]=new Ty;this.P=[];for(a=0;a<hq.length;a++){this.P[hq[a]]=new Uy;var b=qp[hq[a]],d=this.P[hq[a]];if(1<b.ga){d.mb=[];d.od=[];d.pd=[];for(var e=0;e<b.ga;e++)d.mb[e]=0,d.od[e]=0,d.pd[e]=0}}this.P[0]=new Uy;this.ea=this.fa=5;this.ka=[];this.ba=[];for(a=0;a<cr.length;a++)this.ba[cr[a]]=new Oy;this.J=0;this.K=[];for(a=0;a<Js.length;a++)this.K[Js[a]]=new Ry;this.Ka=this.La=5;this.ta=[];this.Aa=[];for(a=0;a<ow.length;a++)this.Aa[ow[a]]=
new Py;this.gb=0;this.Ya=[];this.Gf=c(0);this.Zj=c(0);this.Lh=this.th=!1;this.$=[];for(a=0;a<bv.length;a++)this.$[bv[a]]=new Xv;this.wi=this.Pc=this.Vb=this.nf=this.Wa=this.lb=this.xb=this.kb=0;this.Lk=4;this.Fe=2;this.paused=!1;this.kg=this.jg=0;this.uc=-1;this.Xe=!1;this.Ua=0;this.Y=[];this.ya=3;this.ca=[];this.$b=0;this.yh=Bh;this.precision=3;this.Ac=1;this.xg=!0;this.ic=1;this.Ve=!1;this.zg=this.kd=1;this.Dd=[0,0];this.Ca=[1,1,1,1,1,1];this.Pf=!0;this.fd=3;this.Cd=1;this.Fb=2;this.ig=!1;this.ed=
{};this.Na={};this.yd={};this.Md=!0;this.md=0;this.Hc=[];this.Zc=1;this.$c=[.5,.5,.5,.5,.5,.5,.5,.5,.5,.5];this.nc=1;this.Cb=[1,.5,.5,1,.5,.5,.5,.5,.5,.5];this.Ld=1;this.nd=!1;this.Yc=[1,.5,.5,1,.5,.5,.5,.5,.5,.5];this.ie=c(0);this.Me=1;this.Gc=0;this.xa=[];this.ki=this.fh=this.mh=this.lh=this.jh=this.cf=this.Pa=this.Zf=this.$g=this.Zg=this.pj=this.sj=this.tj=this.nj=this.xj=this.ha=this.challenge=0;this.df=c(0);this.fj=this.bf=this.ij=this.Zd=this.bg=this.wj=this.ei=this.ef=this.Ze=this.ae=this.re=
this.Qk=0;this.Yg=[0,0,0,0];this.$e=R();this.gj=R();this.ag=[0,0];this.jj=this.zj=this.qj=this.hi=this.gh=this.bh=this.af=this.uj=this.vj=this.di=0;this.ah=c(0);this.fi=this.se=this.Ub=0;this.qa=R();this.Jb=R();this.Xf=R();this.rj=this.kj=this.lj=this.oj=this.dh=this.vc=this.Yf=this.yj=this.kh=this.gi=this.eh=this.$f=this.hh=this.dd=0;this.cg=R();this.ii=R();this.ji=R();this.rg=this.hj=this.mj=this.ih=this.$d=0;this.qg=R();this.hk=this.fc=this.Gh=0;this.Sc=R();this.Fh=R();this.Eh=R();this.ek=this.ak=
this.bk=this.dk=this.Ji=this.Ii=this.Gi=this.ik=this.Ni=this.Mi=this.Ki=this.fk=this.Li=this.Hi=0;this.yf=R();this.wf=R();this.xf=R();this.Kf=this.pa=this.pc=this.$j=this.ck=this.gk=this.jk=0;this.rb=R();this.Od=R();this.ke=R();this.Jg=this.Ig=this.qd=this.rd=this.Se=this.Jf=this.Pd=this.Nf=this.Mf=this.Lf=this.sd=this.Kc=this.Ib=this.Re=0;this.Lc=R();this.td=R();this.ud=R();this.Hg=this.Kg=this.Te=0;this.wg=[];this.mk=[];this.Fd=[];this.Df=[];this.Cf=[];this.nk=[];this.vg=[];this.Rg=[];this.We=[];
this.Og=[];this.Qg=[];this.Ng=[];this.Pg=[];this.Jc=[];this.Oe=[];this.mc=this.yb=this.Kd=this.he=!1;this.Ef=this.ee=this.Eg=0;this.nb=[];for(a=0;a<bw.length;a++)this.nb[bw[a]]=new bz;this.fb=-1;this.Yj=this.al=this.Ch=this.$k=this.Bh=this.Ah=this.ce=this.Yk=this.Fi=this.Xj=this.Zk=this.Ae=this.Fk=this.Ek=this.Wb=0;this.eb=[];this.ad=[];this.Td=[];this.me=[];this.ph=this.te=this.il=this.pg=0;this.Ga=[];this.Gj=[];this.Ye=[];this.Pk=[];this.Yd=[];this.Hj=[];this.Vi=[];this.Mh=[];this.hl=[];this.qk=
[];this.si=this.ri=this.hc=this.Ui=this.Dc=this.tk=this.wk=this.vk=this.xk=this.uk=this.Oh=0;this.Dg=this.Jd=!1;this.xh=this.tf=0;this.sf=c(1);this.ai=c(0);this.Ug=c(0);this.bi=c(0);this.Vg=c(0);this.Sg=c(0);this.Tg=c(0);this.gd=this.Wh=this.Vh=this.Lg=this.Qd=0;this.Ph=c(0);this.bc=c(0);this.Qf=c(0);this.Ue=c(0);this.Nh=0;this.hf=[];this.ui=[];this.Ai=[];this.wh=[];this.Kj=[];this.Kb=[];this.be=[];this.zd=[];this.ti=[];this.eg=[];this.Dh=0;this.oe=!1;this.Rh=this.Qh=void 0;this.Zi=!1;this.Ad=c(0)}
function Wv(a){a.Ya=[];for(var b=fv[a.gb],d=0;d<b.length;d++)a.Ya[d]=new Sy;a=0==a.gb?"\n................\n................\n......9.........\n.....+..........\n....++..........\n...++++.....XO..\n..999999...XOoo.\n...ooo....XOoooo\n..oo0o...XOooooo\n..oooo...XOooooo\n....Xoo..XOo.oo.\n...ooooo.XOo....\n....XXooOOoo....\n.....XXoooo.....\n....oooo........\n................\n":"\n................\n................\n......9.........\n.....+..........\n....++..........\n...++++.....84..\n..999999...84ss.\n...sss....84ssss\n..ss0s...84sssss\n..ssss...84sssss\n....8ss..84s.ss.\n...sssss.84s....\n....88ss44ss....\n.....88ssss.....\n....ssss........\n................\n";
for(d=0;d<Xe.length;d++){var e=Xe[d];b=cc(a);var f=e[0];e=e[3];dc(f,b[0],b[1],b[2]);e.getContext("2d").putImageData(f,0,0)}}function pq(a,b){if(b!=a.xa.length)if(b<a.xa.length)a.xa.length=b;else for(;a.xa.length<b;)a.xa.push(new az)}function Rv(){var a=D;return a.time-(0<a.j?a.Qc:a.pc)}function ez(a){a.C=[];for(var b=0;b<a.D;b++){a.C[b]=[];for(var d=0;d<a.B;d++)a.C[b][d]=new Fy(d,b,1)}b=Math.floor((a.B-1)/2);d=Math.floor(a.D/2);a.C[d][b].index=Pq;a.C[d-1][b].index=Oq}
function fz(a){a.ka=[];for(var b=0;b<a.ea;b++){a.ka[b]=[];for(var d=0;d<a.fa;d++)a.ka[b][d]=new Fy(d,b,2)}b=Math.floor((a.fa-1)/2);d=Math.floor(a.ea/2);a.ka[d][b].index=Pq;a.ka[d-1][b].index=Oq}function gz(a){a.ta=[];for(var b=0;b<a.Ka;b++){a.ta[b]=[];for(var d=0;d<a.La;d++)a.ta[b][d]=new Fy(d,b,3)}a.ta[Math.floor((a.La-1)/2)][Math.floor(a.Ka/2)].index=6}
function Ys(a,b){var d=D,e=0;d.challenge==eq&&(e=Ey);d.challenge==Ll&&(e=Ey);d.challenge==ul&&(e=oo+tl);for(var f=(d.B+1>>1)-(a+1>>1),g=(d.D>>1)-(b>>1),h=[],k=0;k<b;k++){h[k]=[];for(var l=0;l<a;l++){var n=l+f,p=k+g;0<=n&&n<d.B&&0<=p&&p<d.D?(h[k][l]=d.C[p][n],h[k][l].x=l,h[k][l].y=k):(h[k][l]=new Fy(l,k,1),h[k][l].index=e)}}d.C=h;d.B=a;d.D=b;d.ab-=f;d.bb-=g}
function gt(a,b){for(var d=D,e=(d.fa+1>>1)-(a+1>>1),f=(d.ea>>1)-(b>>1),g=[],h=0;h<b;h++){g[h]=[];for(var k=0;k<a;k++){var l=k+e,n=h+f;g[h][k]=0<=l&&l<d.fa&&0<=n&&n<d.ea?d.ka[n][l]:new Fy(k,h,2);g[h][k].x=k;g[h][k].y=h}}d.ka=g;d.fa=a;d.ea=b}
function hz(){var a=new dz;a.b=R({g:zu});ez(a);fz(a);gz(a);a.U[ln].f=!0;a.Ub=r.getTime();a.pc=a.Ub;a.Zg=a.Ub;a.$g=a.Ub;a.Vb=a.Ub;Yv(a);a.Ri=Math.floor(281474976710656*Math.random());a.uc=Math.floor(281474976710656*Math.random());a.pe=Math.floor(281474976710656*Math.random());a.Be=Math.floor(281474976710656*Math.random());Wv(a);return a}
function Yv(a){a.Ae=0;a.Fi=0;a.Ah=0;a.Bh=0;a.$k=0;for(var b=a.Yj=0;b<fj;b++)a.Yd[b]=0,a.Hj[b]=0,a.me[b]=0,a.Vi[b]=0,a.hf[b]=-Infinity,a.Kj[b]=void 0,a.ui[b]=-Infinity,a.Ai[b]=Infinity,a.wh[b]=Infinity,a.Kb[b]=-Infinity,a.be[b]=-Infinity,a.zd[b]=-Infinity,a.ti[b]=-Infinity,a.eg[b]=-Infinity;a.il=0;a.te=0;a.ph=0;for(b=a.pg=0;b<dm.length;b++){a.eb[dm[b]]=0;a.Ga[dm[b]]=0;a.Gj[dm[b]]=0;var d=vl[dm[b]],e=a.U[dm[b]];e.f&&0<=d.l&&d.l<a.wh[d.type]&&(a.wh[d.type]=d.l)}for(b=0;b<oo;b++)a.Mh[b]=0;for(b=0;b<a.D;b++)for(e=
0;e<a.B;e++){var f=a.C[b][e];Xk(f)?(d=T(f),a.eb[d.index]++,d&&a.Vi[d.type]++,sk(f)?a.Ga[d.index]++:d.type!=Vi&&a.challenge!=Rj&&a.pg++,a.Gj[d.index]+=Math.min(Math.max(0,f.F),1),nk(f)&&(a.Fi++,(!nk(f)||.1>f.F?0:T(f).type!=Vi)&&a.Ah++,d.type!=Vi&&a.Bh++,a.me[d.type]++,sk(f)&&(a.Yd[d.type]++,a.$k++,d.type!=Vi&&a.Yj++),a.Hj[d.type]+=Math.min(Math.max(0,f.F),1)),(d.l||0)>a.hf[d.type]&&(a.Kj[d.type]=d.index),a.hf[d.type]=Math.max(d.l||0,a.hf[d.type]),1<=f.F&&(a.ui[d.type]=Math.max(d.l||0,a.ui[d.type])),
d.Ab||(a.Ai[d.type]=Math.min(d.l||0,a.Ai[d.type])),d.Nb&&a.il++,d.Ab&&a.te++,(d.Ab||d.type==Vi&&0>=f.F)&&a.ph++):0==f.index||f.index==Dy?(a.Mh[f.index]++,a.Ae++,f.index==Dy&&a.ph++):f.index==rl?(a.Mh[f.index]++,a.Fi++):a.Mh[f.index]++}a.Zk=0;a.Yk=0;a.Ch=0;a.oe=!1;for(b=0;b<cr.length;b++)a.ad[cr[b]]=0,a.Ye[cr[b]]=0;for(b=0;b<oo;b++)a.hl[b]=0;for(b=0;b<a.ea;b++)for(e=0;e<a.fa;e++)if(f=a.ka[b][e],Xk(f)){d=Kq[no(f)];a.ad[d.index]++;nk(f)&&(a.Yk++,1<=f.F&&(a.Ye[d.index]++,a.Ch++));if(d=d.index==Aq)a:{for(d=
0;4>d;d++){f=e+(1==d||4==d||5==d?1:3==d||6==d||7==d?-1:0);var g=b+(0==d||4==d||7==d?-1:2==d||5==d||6==d?1:0);if(!(0>f||f>=D.fa||0>g||g>=D.ea)&&(f=D.ka[g][f],f.index==Oq||f.index==Pq)){d=!0;break a}}d=!1}d&&(a.oe=!0)}else 0==f.index?a.Zk++:a.hl[f.index]++;a.Oh=0;a.Dc=0;a.xk=0;a.wk=0;a.uk=0;a.Ui=0;a.vk=0;for(b=a.tk=0;b<$n.length;b++)e=Fj[$n[b]],d=a.i[$n[b]],d.f&&(a.Oh++,d.na||d.count||a.Dc++,e.fg()||(a.xk++,e.O().Xa(a.b)&&a.wk++),e.ue&&(d=vl[e.Fa],a.eg[d.type]=Math.max(d.l||0,a.eg[d.type])));for(b=
0;b<dm.length;b++)d=vl[dm[b]],e=a.U[dm[b]],e.f&&(a.Kb[d.type]=Math.max(d.l||0,a.Kb[d.type]),a.eg[d.type]=Math.max(d.l||0,a.eg[d.type]));for(b=0;b<cr.length;b++)d=Kq[cr[b]],e=a.ba[cr[b]],e.f&&(a.be[d.type]=Math.max(d.l||0,a.be[d.type]));for(b=0;b<Js.length;b++)e=Ks[Js[b]],d=a.K[Js[b]],d.f&&(a.uk++,d.na||a.Ui++,e.fg()||(a.vk++,e.O().Xa(a.b)&&a.tk++));a.Xj=0;a.ce=0;a.al=0;a.Ad=c(0);for(b=0;b<ow.length;b++)a.Td[ow[b]]=0,a.Pk[ow[b]]=0;for(b=0;b<oo;b++)a.qk[b]=0;for(b=0;b<a.Ka;b++)for(e=0;e<a.La;e++)f=
a.ta[b][e],Xk(f)?(d=mw[no(f)],a.Td[d.index]++,nk(f)&&(a.ce++,1<=f.F&&(a.Pk[d.index]++,a.al++)),a.Ad.v(d.wc(f))):0==f.index||f.index==Dy?(a.qk[f.index]++,a.Xj++):a.qk[f.index]++;for(b=0;b<ow.length;b++)d=mw[ow[b]],e=a.Aa[ow[b]],e.f&&(a.zd[d.type]=Math.max(d.l||0,a.zd[d.type])),e.vb&&(a.ti[d.type]=Math.max(d.l||0,a.ti[d.type]));a.tf=0;a.xh=0;a.sf=c(1);for(b=0;b<tx.length;b++)e=ux[tx[b]],d=a.Lb[tx[b]],d.hb&&(a.tf++,d.na||a.xh++,a.sf.Ta(e.Af));for(b=a.hc=0;b<bv.length;b++)d=a.$[bv[b]],a.hc+=d.count;e=
fv[a.gb];a.ri=0;for(b=a.si=0;b<e.length&&!(b>=a.Ya.length);b++)d=!1,0<a.Ya[b].aa[0]&&a.Ya[b].aa[0]>=e[b].Hd.length&&(d=!0),0<a.Ya[b].aa[1]&&a.Ya[b].aa[1]>=e[b].Sb.length&&(d=!0),0<a.Ya[b].aa[2]&&a.Ya[b].aa[2]>=e[b].K.length&&(d=!0),d&&(a.ri=Math.max(a.ri,e[b].Aj),a.si=Math.max(a.si,e[b].Bj));a.Jd=!0;for(b=0;b<e.length;b++){if(b>=a.Ya.length){a.Jd=!1;break}a.Ya[b].aa[0]<e[b].Hd.length&&(a.Jd=!1);a.Ya[b].aa[1]<e[b].Sb.length&&(a.Jd=!1);a.Ya[b].aa[2]<e[b].K.length&&(a.Jd=!1);if(!a.Jd)break}a.Dg=a.Jd;
0==a.gb&&33==a.hc&&(a.Dg=!0);a.ai=c(0);a.Ug=c(0);a.bi=c(0);a.Vg=c(0);a.Sg=c(0);a.Tg=c(0);for(b=0;b<a.ea;b++)for(e=0;e<a.fa;e++)if(f=a.ka[b][e],d=T(f))g=d.type,g==S&&a.ai.v(d.wc(f)),g==Si&&a.Ug.v(d.wc(f)),g==Ti&&a.bi.v(d.wc(f)),g==Ui&&a.Vg.v(d.wc(f)),g==Zi&&a.Sg.v(d.wc(f)),g==Vi&&a.Tg.v(d.wc(f));for(b=0;b<a.Y.length;b++)a.Y[b].slot=b;for(b=0;b<a.ca.length;b++)a.ca[b].slot=b+100;a.Qd=0;a.Lg=0;a.Vh=0;a.Wh=0;a.Qf=c(0);a.Ue=c(0);for(b=a.Nh=0;b<hq.length;b++)if(f=hq[b],d=qp[f],e=a.P[f],e.f&&a.Qd++,e.X&&
(a.Lg++,d.Nc()&&a.Vh++,a.Wh+=e.X),e.f&&0==e.aa&&a.challenge!=d.index&&a.Nh++,0<e.cb)if(d.ga)for(g=0;g<d.ga;g++)d.ld?a.Ue.v(Lu(f,e.mb[g],g)):a.Qf.v(Lu(f,e.mb[g],g));else d.ld?a.Ue.v(Lu(f,e.cb)):a.Qf.v(Lu(f,e.cb));a.bc=Mu(a.Qf,a.Ue);for(b=a.Dh=0;b<a.Jc.length;b++)e=a.Jc[b],e.B&&e.D&&a.Dh++}
function eu(){this.l=this.type=0;this.H=[];this.wa=[];this.Bc=[];this.Ha=[];this.cd=0;this.Z=c(0);this.slot=this.mark=0;this.name="";this.rk=function(){return"apple;apricot (spring);pineapple (summer);pear (autumn);medlar (winter);mango (spring+summer);plum (summer+autumn);quince (autumn+winter);kumquat (winter+spring);star fruit (4 seasons);dragon fruit (4 seasons)".split(";")[this.type]};this.bl=function(){return Yg[this.l]+" "+this.rk()};this.toString=function(){return this.name?this.name:this.bl()};
this.Ec=function(a,b,d,e){b=""+zk(this.H[a],b);this.H[a]!=Ft&&(d||Vt(this.H[a])||(b+=" "+co(this.wa[a])),!d&&this.Ha[a]&&(e&&(b+="<b>"),1==this.Ha[a]&&(b+=" [*]"),2==this.Ha[a]&&(b+=" [**]"),e&&(b+="</b>")));return b};this.Bg=function(a,b){for(var d="",e=0;e<this.H.length;e++)0<e&&(d+=", "),d+=this.Ec(e,a,b);return d}}function iz(){if(!(0>D.Ua||D.Ua>=D.Y.length))return D.Y[D.Ua]}
function jz(a,b,d){if(!a||d&&2==oj())return 0;for(var e=0;e<a.H.length;e++)if(a.H[e]==b)return a=a.wa[e],d&&oj()&&3<a&&(a=3),a;return 0}function tj(a){return jz(iz(),a,!0)}
function Ku(a){if(2==oj())return 0;var b=tj(a);if(0<b)return[b,a];b=iz();if(!b)return[0,a];b=b.H[b.H.length-1];if(b<Nt||b>St||!Ut(1))return[0,a];b>=St&&!Ut(3)&&(b=Rt);if(b>=Rt&&!Ut(2))return[0,a];if(a>=Jt&&a<=Mt){if(b==St||b==Rt)return[1,b];if(b==Nt)return[a==Jt||a==Kt?1:0,b];if(b==Ot)return[a==Kt||a==Lt?1:0,b];if(b==Pt)return[a==Lt||a==Mt?1:0,b];if(b==Qt)return[a==Mt||a==Jt?1:0,b]}oj()&&2<a&&(a=2);return[0,a]}
function wj(){if(2==oj())return 0;var a=iz();if(!a)return 0;if(oj()){var b=Zt(1,D.j,!1);a=a.l;a>b&&(a=b);return a}return a.l}function kz(a){return 100>a?D.Y[a]:D.ca[a-100]}function lz(a,b){if(100>a)if(b)a>D.Y.length&&(a=D.Y.length),D.Y[a]=b,b.slot=a;else{for(b=a;b+1<D.Y.length;b++)D.Y[b]=D.Y[b+1],D.Y[b].slot=b;--D.Y.length}else if(a-=100,b)a>D.ca.length&&(a=D.ca.length),D.ca[a]=b,b.slot=a+100;else{for(b=a;b+1<D.ca.length;b++)D.ca[b]=D.ca[b+1],D.ca[b].slot=b+100;--D.ca.length}}
function mz(a,b){100>a?D.Y[a]=b:D.ca[a-100]=b;b.slot=a}function nz(a,b){var d=kz(a);mz(a,kz(b));mz(b,d)}function oz(a){for(var b=R(),d=0;d<D.ca.length;d++)b.v(Xt(D.ca[d]));a&&a.push(["sacrificial fruits",!0,c(0),b.clone()]);D.$[vv].count&&(d=uv.L(1),b.u(d),a&&a.push(["squirrel upgrade",!0,d,b.clone()]));return b}function pz(){if(600>D.pa){var a=Math.pow(.1,1-D.pa/600);1<a&&(a=1);0>a&&(a=0);return a}return 1}
function qz(){var a=!1;D.challenge&&!qp[D.challenge].Fc&&(a=!0);D.challenge&&D.j>D.Pa&&!D.challenge.kc&&(a=!0);var b=c(D.c);if(D.j>=fu&&!a){a=D.b.A.a(ju().A);pb(a,1)&&(a=c(1));ub(a,0)&&(a=c(0));a=a.o(.97);var d=nu(D.j+1,void 0);b.v(a.Ia(d))}b.Ja(pz());return b}function rz(){return qz().add(D.qe.c)}
function sz(){var a=!1;D.challenge&&!qp[D.challenge].lc&&(a=!0);D.challenge&&D.j>D.Pa&&!D.challenge.kc&&(a=!0);var b=c(D.G);if(D.j>=fu&&!a){a=D.b.A.a(ju().A);pb(a,1)&&(a=c(1));ub(a,0)&&(a=c(0));a=a.o(.97);var d=tu(void 0).G;b.v(a.Ia(d))}b.Ja(pz());return b}function tz(){if(2>D.pa)return c(0);var a=D.pa/3600;return a?qz().cc(a):c(0)}function uz(){if(2>D.pa)return c(0);var a=D.pa/3600;return a?sz().cc(a):c(0)}function co(a){return 2==D.Ac||0==D.Ac&&12<a?a.toString():r.fm(a)}
function Vp(a){return(a||D).ba[Lq].f}function kq(){return!!D.ad[Lq]}function vz(){return kq()&&D.Md&&2!=oj()}function wz(){return Vp()&&D.P[fq].X?!0:!1}function qq(){return Vp()&&D.P[fq].X?!0:!1}function xz(){return vz()&&qq()?!!D.Zc:!1}function yz(){return!Vp()||1>=D.P[fq].X?!1:!0}function zz(){return vz()&&Vp()?!!D.nc:!1}function oq(){return Vp()&&D.P[rq].X?!0:!1}function Az(){return vz()&&oq()&&zz()?!!D.Ld:!1}function Bz(a){var b=a||D;return!Vp(a)||!b.P[Rj].X||5>b.J?!1:!0}
function Cz(a){var b=a||D;return Bz(a)?5<=b.P[Rj].X?3:3<=b.P[Rj].X?2:1:0}function Dz(){return vz()&&Bz()?!!D.Gc:!1}function Ez(){return Vp()&&D.P[uq].X?!0:!1}function Fz(){return Bz()&&4<=D.P[Rj].X}function Gz(){return vz()&&Ez()&&zz()&&D.Ld?!!D.Me:!1}function Qq(){var a=c(Cq);a.v(pv.o(D.$[qv].count));a.v(Dv.o(D.$[Ev].count));return a}function Fk(){return!!D.ad[Mq]}function zt(){return!!D.K[pt].count}function Rq(){var a=c(Dq);a.v(nv.o(D.$[ov].count));a.v(Bv.o(D.$[Cv].count));return a}
function Hz(a,b,d){var e=fv[D.gb],f=e[a];a=D.Ya[a];for(var g=0,h=f.index-1;!(0>h);){g+=e[h].Sb.length-D.Ya[h].aa[1];if(3<=g){g=3;break}h--}if((e=0==g)&&d<a.aa[b])return 0;if(e&&d==a.aa[b])return f.dg&&D.hc<f.Uj?2:1;if(e&&d==a.aa[b]&&f.dg)return 2;if(e&&d==a.aa[b])return 1;f=1==g;return e&&d==a.aa[b]+1||f&&0==d?3:e&&d==a.aa[b]+2||f&&1==d||2==g&&0==d?4:5}function Qj(){return!ol(1)&&!ol(2)||oj()?!1:0<D.tg+900-D.time}function nl(){return!ol(1)&&!ol(2)||oj()?!1:0<D.ug+900-D.time}
function Ek(){var a=D.K[st].count;return a?oh(qt.add(rt.o(a-1)).L(1),D.Pa):new c(1)}function Iz(){if(!D)return ln;var a=ln+D.Kb[Vi];return vl[a]?a:-1}function Jz(){if(!D)return vw;var a=vw+D.zd[Vi];return mw[a]?a:vw}function Kz(){if(!D)return vw;var a=vw+D.ti[Vi];return mw[a]?a:vw}function Lz(){var a=Jz();a>vw&&D.b.la(mw[a].O())&&a--;a>vw&&D.b.la(mw[a].O())&&a--;return a};for(var Mz={},Nz=0;64>Nz;Nz++)Mz["ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[Nz]]=Nz;function Oz(a){for(var b=0;b<a.length;b++)if(void 0==Mz[a[b]])return!1;return!0}
function Pz(a){for(var b="",d={},e="",f=0;f<a.length;f++){var g=0,h=0,k=d[a.substr(f,4)];if(k)for(var l=k.length-1;0<=l;l--){var n=k[l],p=f-n;if(4096<p)break;for(var m=0;f+m<a.length&&a[f+m]==a[n+m];)m++;n=m;if(n>g&&(g=n,h=p,63<n))break}5<g||4<g&&4096>h||3<g&&32>h||(g=1);for(l=0;l<g;l++)k=a.substr(f+l,4),d[k]||(d[k]=[]),1E3<d[k].length&&(d[k]=[]),d[k].push(f+l);f+=g-1;3<=g?(b+=Qz(e.length),b+=Qz(g),b+=Qz(h),b+=e,e=""):e+=a[f]}e.length&&(b+=Qz(e.length),b+=Qz(0),b+=Qz(0),b+=e);return b}
function Rz(a){for(var b={Rb:a,yc:0},d="";b.yc<a.length;){var e=Sz(b),f=Sz(b);if(1E5<d.length+e+f)return null;var g=Sz(b);if(b.error)return null;for(var h=0;h<e;h++){if(b.yc>=a.length)return null;d+=a[b.yc++]}if(g>d.length)return null;for(h=0;h<f;h++)d+=d[d.length-g]}return d}
function Tz(a){isNaN(a)&&(a=0);-9007199254740992>a&&(a=-9007199254740992);9007199254740992<a&&(a=9007199254740992);var b=0;0>a&&(b=1,a=-a);var d=a&15;a=Math.floor(a/16);for(b="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[d|b<<4|(a?32:0)];a;)d=a&31,a=Math.floor(a/32),b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[d|(a?32:0)];return b}function Uz(a){a.yc>=a.Rb.length&&(a.error=!0);var b=Mz[a.Rb[a.yc++]];void 0==b&&(a.error=!0);return b}
function Vz(a){for(var b=a.error,d=Uz(a),e=d&15,f=d&16?1:0,g=16;d&32;){if(9007199254740992<g){a.error=!0;break}d=Uz(a);e+=(d&31)*g;g*=32}f&&(e=-e);return a.error&&!b?NaN:e}function Wz(a){var b=Uz(a);1<b&&(a.error=!0);return 1==b}
function Qz(a){if(0>a||isNaN(a))a=0;9007199254740992<a&&(a=9007199254740992);var b=a&31;a=Math.floor(a/32);for(var d="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[b|(a?32:0)];a;)b=a&31,a=Math.floor(a/32),d+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[b|(a?32:0)];return d}function Sz(a){for(var b=a.error,d=Uz(a),e=d&31,f=32;d&32;){if(9007199254740992<f){a.error=!0;break}d=Uz(a);e+=(d&31)*f;f*=32}return a.error&&!b?NaN:e}
function Xz(a){if(0>a||isNaN(a))a=0;66591<a&&(a=66591);if(32>a)return"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[a];if(1056>a)return a-=32,"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[32|a&31]+"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[a>>5&31];a-=1056;return"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[32|a&31]+"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[32|a>>5&31]+"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[a>>
10&63]}function Yz(a){var b=a.error,d=Uz(a),e=d&31;d&32&&(e+=32,d=Uz(a),e+=(d&31)<<5);d&32&&(e+=1024,d=Uz(a),e+=(d&63)<<10);return a.error&&!b?NaN:e}function Zz(a){return"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[a&63]}function $z(a){var b=a.error,d=Uz(a);return a.error&&!b?NaN:d}
function aA(a){if(0>a||isNaN(a))a=0;2130975<a&&(a=2130975);if(32>a)return"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[a];if(1056>a)return a-=32,"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[32|a&31]+"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[a>>5&31];if(33824>a)return a-=1056,"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[32|a&31]+"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[32|a>>5&31]+"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[a>>
10&31];a-=33824;return"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[32|a&31]+"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[32|a>>5&31]+"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[32|a>>10&31]+"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[a>>15&63]}function bA(a){for(var b=0,d=0;52>d;d++)b+=a&1,b*=2,a=Math.floor(a/2);return b}
function cA(a){var b=bA(a),d=!1;b<a&&(a=b,d=!0);a=2*a+(d?1:0);if(0>a||isNaN(a))a=0;9007199254740992<a&&(a=9007199254740992);if(2199023255552<a)for(a--,b="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[1|(a&31)<<1],a=Math.floor(a/32),d=0;8>d;d++)b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[a&63],a=Math.floor(a/64);else for(a*=2,d=a&31,a=Math.floor(a/32),b="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[d|(a?32:0)];a;)d=a&31,a=Math.floor(a/
32),b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[d|(a?32:0)];return b}function dA(a){var b=a.error,d=Uz(a);if(d&1){var e=(d&62)>>1;for(var f=32,g=0;8>g;g++)d=Uz(a),e+=d*f,f*=64;e++}else for(e=(d&30)>>1,f=16;d&32;){if(9007199254740992<f){a.error=!0;break}d=Uz(a);e+=(d&31)*f;f*=32}a=a.error&&!b?NaN:e;b=a&1;a=Math.floor(a/2);b&&(a=bA(a));return a}
function eA(a){var b=a.error,d=Sz(a);if(0==d)return 0;if(1==d)return 1;d-=2;var e=dA(a),f=d&1?1:0;d>>=1;0!=d&&(d=1+(d-1+3067)%2047);return a.error&&!b?NaN:r.Kk(f,d,e)}
function fA(a){var b=r.Mk(a),d=b[0],e=b[1];b=b[2];var f=e-1023,g,h="";0!=a||d?1==a?h="B":(!d&&-7<=f&&1>=f?(1==f?g=2:0==f?g=3:-1==f?g=4:-2==f?g=5:-3==f?g=6:-4==f?g=7:-5==f?g=13:-6==f?g=14:-7==f&&(g=15),h+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[g]):d&&-1<=f&&1>=f?(1==f?g=10:0==f?g=11:-1==f&&(g=12),h+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[g]):-15<=f&&16>=f?h=h+"I"+"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[f+15|(d?32:0)]:
(h=h+"J"+"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[e&31|(d?32:0)],h+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[e>>5]),h+=cA(b)):h="A";if(!d&&-2<=f&&-0>=f&&9<h.length)for(h=""+"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[(0==f?16:-1==f?32:48)|b&15],b=Math.floor(b/16),a=0;8>a;a++)h+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[b&63],b=Math.floor(b/64);return h}
function gA(a){var b=a.error,d=Uz(a);if(0==d)var e=0;else if(1==d)e=1;else{if(0==(d&48)){if(8==d){var f=Uz(a);e=f&32?1:0;f=(f&31)-15+1023}else 9==d?(f=Uz(a),e=f&32?1:0,f=(f&31)+(Uz(a)<<5)):(10==d||11==d||12==d?(e=1,10==d?f=1:11==d?f=0:12==d&&(f=-1)):(e=0,2==d?f=1:3==d?f=0:4==d?f=-1:5==d?f=-2:6==d?f=-3:7==d?f=-4:13==d?f=-5:14==d?f=-6:15==d&&(f=-7)),f+=1023);d=dA(a)}else{f=d&48;e=0;f=(16==f?0:32==f?-1:-2)+1023;d&=15;for(var g=16,h=0;8>h;h++)d+=Uz(a)*g,g*=64}e=r.Kk(e,f,d)}return a.error&&!b?NaN:e}
function hA(a){if(tb(a,0))return Tz(0);if(tb(a,1))return Tz(1);var b=1<a.e?a.e:a.e-2;isNaN(b)&&(b=-2);return Tz(b)+fA(a.s)}function iA(a){var b=Vz(a);if(0==b)return new c(0,0);if(1==b)return new c(1,0);var d=new c(0,0);d.e=b;d.s=gA(a);1>=d.e&&(d.e+=2);return d}
function jA(a){for(var b=0;b<a.length;b++)97<=a[b]&&122>=a[b]?a[b]-=97:0<=a[b]&&25>=a[b]?a[b]+=97:32==a[b]?a[b]=26:26==a[b]?a[b]=32:46==a[b]?a[b]=27:27==a[b]?a[b]=46:44==a[b]?a[b]=28:28==a[b]?a[b]=44:65==a[b]?a[b]=29:29==a[b]?a[b]=65:83==a[b]?a[b]=30:30==a[b]?a[b]=83:84==a[b]?a[b]=31:31==a[b]&&(a[b]=84)}
function kA(a){var b=Sz(a);if(a.error)return"";for(var d=[],e=0;e<b;e++){var f=e,g=a,h=g.error,k=Uz(g),l=k&31;k&32&&(l+=32,k=Uz(g),l+=(k&31)<<5);k&32&&(l+=1024,k=Uz(g),l+=(k&31)<<10);k&32&&(l+=32768,k=Uz(g),l+=(k&63)<<15);d[f]=g.error&&!h?NaN:l;if(a.error)return""}jA(d);a="";for(b=0;b<d.length;b++)e=d[b],65536>e?a+=String.fromCharCode(e):1114111>=e?(a+=String.fromCharCode((e>>10)+55232),a+=String.fromCharCode((e&1023)+56320)):a+=" ";return a}
function lA(a){if(0==a)return Zz(0);if(-Infinity==a)return Zz(13);if(Infinity==a)return Zz(14);if(isNaN(a))return Zz(15);var b=Math.floor(a),d=Math.round(64*(a-b));63<d&&(b++,d=0);a=1;16E8<=b?(a=2,b-=16E8):0>b&&(a=3,b=-b);var e=Zz(a<<4|b%16);b=Math.floor(b/16);d=Zz(d);var f="";2==a&&(f+=Zz(b%64),b=Math.floor(b/64),f+=Zz(b%64),b=Math.floor(b/64),f+=Zz(b%64),b=Math.floor(b/64));f+=Qz(b);return e+d+f}
function mA(a){var b=$z(a),d=b>>4&3;if(0==d){if(0==b)return 0;if(13==b)return-Infinity;if(14==b)return Infinity;if(15==b)return NaN;a.error=!0;return 0}var e=$z(a),f=0;2==d?(f+=$z(a),f+=64*$z(a),f+=4096*$z(a),f+=262144*Sz(a)):f=Sz(a);f=16*f+b%16;2==d?f+=16E8:3==d&&(f=-f);return f+e/64}function nA(a){var b=[],d=$z(a);56<=d&&(d=d&7|Sz(a)<<3);if(!a.error){var e=0,f=-1;0<d&&(d--,e=Math.floor(Math.sqrt(.25+2*d)-.5),(e+1)*(e+2)/2-1<d&&e++,f=e,e=d-e*(e+1)/2);for(d=e;d<=f;d++)b[d]=iA(a);return b}}
function oA(a){a=63-Math.round(a);return 0>=a?1:63<=a?0:Math.pow(10,-Math.floor(a/3))*[1,.5,.2][a%3]}function pA(a){return 11>=a?c(a):th(c(1.15),c(a+6))}function qA(a){if(ub(a,.5))return 0;if(a.Ci(1E3))return Math.round(a.valueOf());a=vh(a,1.001)-5911;return 9007199254740992<a?9007199254740992:Math.round(a)}function rA(a){return 1E3>=a?c(a):th(c(1.001),c(a+5911))}var sA=0,tA=sA++,uA=sA++,vA=sA++,wA=sA++,xA=sA++,yA=sA++,zA=sA++,AA=sA++,BA=sA++,CA=sA++,DA=sA++;sA=12;
var EA=sA++,FA=sA++,GA=sA++,HA=sA++,IA=sA++,JA=sA++,KA=sA++,LA=sA++,MA=sA++,NA=sA++,OA=sA++;function PA(a,b,d){if(!(this instanceof PA))return new PA(a,b,d);this.id=d;this.value=a;this.type=b}
function QA(a,b){switch(b){case tA:return a?"B":"A";case uA:return Zz(a);case vA:return Tz(a);case wA:return Qz(a);case xA:return Xz(a);case yA:b=r.Mk(a);if(0!=a||b[0])if(1==a)a=Qz(1);else{a=b[0];var d=b[1];b=b[2];0!=d&&(d=1+(2047+(d-1)-1020)%2047);a=""+Qz((d<<1|a)+2);a+=cA(b)}else a=Qz(0);return a;case zA:return fA(a);case AA:return hA(a);case BA:b=[];for(d=0;d<a.length;d++){var e=a.charCodeAt(d);if(55296<=e&&56319>=e&&d+1<a.length){var f=a.charCodeAt(d+1);56320<=f&&57343>=f&&(e=(e<<10)+f-56613888,
d++)}b.push(e)}jA(b);a=Qz(b.length);for(d=0;d<b.length;d++)a+=aA(b[d]);return a;case CA:a=zi(a);b="";d=0;e=-1;for(f=0;f<a.length;f++)a[f].T(0)&&(-1==e&&(d=f),e=f);f=0;0<=e&&(f=1+e*(e+1)/2+d);56>f?b+=Zz(f):(b+=Zz(56+(f&7)),b+=Qz(f>>3));for(f=d;f<=e;f++)b+=hA(a[f]);return b;case DA:return lA(a)}}
function RA(a){var b=a.type;a=a.value;if(60==b){for(var d=!0,e=1;e<a.length;e++){var f=a[0];if(f.length!=a[e].length){d=!1;break}for(b=0;b<f.length;b++){var g=f[b],h=f[b];if(g.id!=h.id||g.type!=h.type){d=!1;break}}}2>a.length&&(d=!1);b=""+Qz(a.length<<1|(d?1:0));if(d){d=a.length;h=f.length;f=a[0];b+=Qz(h);var k={},l=SA(f);for(e=0;e<f.length;e++)k[f[e].id]=e;f=[];for(var n in l)if(l.hasOwnProperty(n)){var p=(n<<6)-1,m=l[n];b+=Qz(n);b+=Qz(m.length);for(e=0;e<m.length;e++)g=m[e],b+=TA(g.id,g.type,p),
p=g.id,f.push(k[g.id])}for(n=0;n<h;n++)for(e=f[n],g=0;g<d;g++)b+=RA(a[g][e])}else for(e=0;e<a.length;e++)n=UA(a[e]),b+=Qz(n.length),b+=n;return b}if(12>b)return QA(a,b);n=""+Qz(a.length);if(b==EA)for(e=0;e<a.length;e+=6){for(g=b=0;6>g&&e+g<a.length;g++)a[e+g]&&(b|=1<<g);n+=Zz(b)}else for(e=0;e<a.length;e++)n+=QA(a[e],b-12);return n}
function TA(a,b,d){var e="";60==b?(e+=Zz(b),e+=Zz(a&63)):12>b?a==d+1?e+=Zz(b+12):(e+=Zz(b+24),e+=Zz(a&63)):a==d+1?e+=Zz(b-12+36):(e+=Zz(b-12+48),e+=Zz(a&63));return e}
function VA(a,b){var d=b.type;if(60==d)a:{var e=Sz(a),f=e>>1;if(!a.error)if(b.value=[],e&1){if(e=[],d=Sz(a),!a.error){for(var g=0;g<d;){var h=Sz(a),k=Sz(a);g+=k;g>d&&(a.error=!0);if(a.error)break a;for(var l=(h<<6)-1,n=0;n<k;n++){var p=new PA(0,0,0),m=$z(a);p.id=12<=m&&23>=m||36<=m&&47>=m?l+1:(h<<6)+$z(a);p.type=36>m?m%12:60>m?m%12+12:m;l=p.id;e.push(p);if(a.error)break a}}for(n=0;n<f;n++)for(b.value.push({}),g=0;g<d;g++)h=e[g].id,b.value[n][h]=new PA(0,e[g].type,h);for(g=0;g<d;g++)for(h=e[g].id,
n=0;n<f;n++)if(p=b.value[n][h],VA(a,p),a.error)break a}}else for(n=0;n<f;n++){e=Sz(a);a.yc+e>a.Rb.length&&(a.error=!0);if(a.error)break;d={Rb:a.Rb.substr(a.yc,e),yc:0,error:!1};b.value[n]=WA(d);if(d.error||d.yc!=e)a.error=!0;if(a.error)break;a.yc+=e}}else if(12>d)switch(d){case tA:b.value=Wz(a);break;case uA:b.value=$z(a);break;case vA:b.value=Vz(a);break;case wA:b.value=Sz(a);break;case xA:b.value=Yz(a);break;case yA:b.value=eA(a);break;case zA:b.value=gA(a);break;case AA:b.value=iA(a);break;case BA:b.value=
kA(a);break;case CA:b.value=XA(a);break;case DA:b.value=mA(a);break;default:a.error=!0}else if(f=Sz(a),b.value=[],d==EA)for(e=0;e<f;e+=6){d=$z(a);if(a.error)break;for(g=0;6>g&&e+g<f;g++)b.value[e+g]=d&1<<g?!0:!1}else for(e=0;e<f;e++){switch(d){case EA:b.value[e]=Wz(a);break;case FA:b.value[e]=$z(a);break;case GA:b.value[e]=Vz(a);break;case HA:b.value[e]=Sz(a);break;case IA:b.value[e]=Yz(a);break;case JA:b.value[e]=eA(a);break;case KA:b.value[e]=gA(a);break;case LA:b.value[e]=iA(a);break;case MA:b.value[e]=
kA(a);break;case NA:b.value[e]=XA(a);break;case OA:b.value[e]=mA(a);break;default:a.error=!0;return}if(a.error)break}}function SA(a){for(var b={},d=0;d<a.length;d++){var e=a[d],f=e.id>>6;b[f]||(b[f]=[]);b[f].push(e)}for(f in b)b.hasOwnProperty(f)&&b[f].sort(function(g,h){return g.id-h.id});return b}
function UA(a){a=SA(a);var b="",d;for(d in a)if(a.hasOwnProperty(d)){var e=(d<<6)-1,f=a[d];b+=Qz(d);b+=Qz(f.length);for(var g=0;g<f.length;g++){var h=f[g],k=f[g],l=k.type,n=k.value,p="";12>l&&l!=BA&&0===n||l==BA&&""==n||l==CA&&n.empty()||l==AA&&tb(n,0)?(p+=Zz(l+0),p+=Zz(k.id&63)):(p+=TA(k.id,k.type,e),p+=RA(k));b+=p;e=h.id}}return b}
function WA(a){for(var b={};a.yc!=a.Rb.length;){var d=Sz(a),e=Sz(a);if(a.error)break;for(var f=(d<<6)-1,g=0;g<e;g++){var h=a;var k=d,l=new PA(0,0,0),n=$z(h);l.id=12<=n&&23>=n||36<=n&&47>=n?f+1:(k<<6)+$z(h);l.type=36>n?n%12:60>n?n%12+12:n;if(12>n)switch(l.type){case tA:l.value=!1;break;case uA:l.value=0;break;case vA:l.value=0;break;case wA:l.value=0;break;case xA:l.value=0;break;case yA:l.value=0;break;case zA:l.value=0;break;case AA:l.value=c(0);break;case BA:l.value="";break;case CA:l.value=R(0);
break;case DA:l.value=0;break;default:h.error=!0}else VA(h,l);h=l;if(a.error)return b;f=h.id;b[h.id]=h}}return b}function YA(a){a||(a=0);return{gl:!0,tc:a}};function ZA(a){function b(Q){O.push(Q.type);W.push(Q.l);ra.push(Q.H.length);for(var M=0;M<Q.H.length;M++)Na.push(Q.H[M]),rc.push(Q.wa[M]),Jd.push(Q.Ha[M]),E.push(Q.Bc[M]);ye.push(Q.Z);Tb.push(Q.mark);Jc.push(Q.name);va.push(Q.cd)}function d(Q){for(var M=[],Y=0;Y<Q.length;Y++){var Ca=Y;var Ha=c(Q[Y]);ub(Ha,.5)?Ha=0:Ha.Ci(11)?Ha=Math.round(Ha.valueOf()):(Ha=vh(Ha,1.15)-6,Ha=9007199254740992<Ha?9007199254740992:Math.round(Ha));M[Ca]=Ha}e(M)}function e(Q){for(var M=0,Y=[],Ca=0;Ca<Q.length;Ca++)Y.push(Q[Ca]-
M),M=Q[Ca];y(Y,GA)}function f(){u=v.pop();B=F.pop();w=q.pop()}function g(){var Q=[];u[u.length-1].value.push(Q);v.push(u);u=Q;q.push(w);w=0;F.push(B);B=0}function h(Q){for(var M=[],Y=0;Y<Q.length;Y++){var Ca=Q[Y];if(0>=Ca)var Ha=0;else 1<=Ca?Ha=63:(Ha=-Math.log(Ca)/2.302585092994046,Ha=Math.floor(Ha),Ca/=Math.pow(10,-Ha),Ha=63-(3*Ha+(.15>Ca?3:.35>Ca?2:.75>Ca?1:0)));M[Y]=Ha}y(M,FA)}function k(Q){y(Q,OA)}function l(Q){y(Q,HA)}function n(Q){y(Q,DA)}function p(Q){y(Q,CA)}function m(Q){y(Q,wA)}function x(Q){y(Q,
vA)}function t(Q){y(Q,tA)}function y(Q,M){u.push(PA(Q,M,64*w+B++))}a.xj++;var u=[],v=[],w,q=[],F=[];var B=w=0;n(a.ua);p(a.b);m(a.j);B=4;m(a.J);y(a.c,AA);m(a.Da);a.Da&&(B=7,m(a.ab),m(a.bb),y(a.Xg,yA));B=10;n(a.Vb);n(a.wi);x(a.ia);x(a.Va);x(a.Bb);B=15;m($A);x(a.Ri);B=17;x(a.pe);B=18;n(a.ec);n(a.Ti);n(a.Di);n(a.Rj);B=22;y(a.G,AA);x(a.Wj);p(a.qe);n(a.Pc);x(a.sb);w=1;B=0;m(a.B);m(a.D);var K=a.B,N=a.D;var O=[];var W=[];for(var U=0;U<N;U++)for(var V=0;V<K;V++){var I=a.C[U][V];O.push(I.index);Xk(I)&&W.push(I.F)}y(O,
GA);y(W,KA);w=2;B=0;m(a.fa);m(a.ea);K=a.fa;N=a.ea;O=[];W=[];var ra=[];var Na=[];for(U=0;U<N;U++)for(V=0;V<K;V++)I=a.ka[U][V],O.push(I.index),Xk(I)&&(W.push(I.F),ra.push(I.hg),Na.push(I.we));y(O,GA);y(W,KA);y(ra,EA);y(Na,EA);w=3;B=0;V=[];for(I=0;I<$n.length;I++)U=!1,a.i[$n[I]].f&&(U=!0),a.i[$n[I]].Ff&&(U=!0),U&&V.push($n[I]);O=[];W=[];ra=[];Na=[];var rc=[];for(I=U=0;I<V.length;I++){if(0>V[I]-U)throw"upgrades must be registered in increasing order";O.push(V[I]-U);U=V[I];W.push(a.i[V[I]].f);ra.push(a.i[V[I]].Ff);
a.i[V[I]].f&&(Na.push(a.i[V[I]].na),rc.push(a.i[V[I]].count))}l(O);y(W,EA);y(ra,EA);y(Na,EA);l(rc);w=4;B=0;V=[];for(I=0;I<dm.length;I++)a.U[dm[I]].f&&V.push(dm[I]);O=[];W=[];ra=[];for(I=U=0;I<V.length;I++){if(0>V[I]-U)throw"crops must be registered in increasing order";O.push(V[I]-U);U=V[I];W.push(a.U[V[I]].sa);ra.push(a.U[V[I]].xe)}l(O);l(W);l(ra);w=5;B=0;V=[];for(I=0;I<Js.length;I++)a.K[Js[I]].f&&V.push(Js[I]);O=[];W=[];ra=[];for(I=U=0;I<V.length;I++){if(0>V[I]-U)throw"upgrades2 must be registered in increasing order";
O.push(V[I]-U);U=V[I];W.push(a.K[V[I]].na);ra.push(a.K[V[I]].count)}l(O);y(W,EA);l(ra);w=6;B=0;V=[];for(I=0;I<cr.length;I++)a.ba[cr[I]].f&&V.push(cr[I]);O=[];for(I=U=0;I<V.length;I++){if(0>V[I]-U)throw"crops2 must be registered in increasing order";O.push(V[I]-U);U=V[I]}l(O);w=7;B=0;V=[];for(I=0;I<tx.length;I++)a.Lb[tx[I]].hb&&V.push(tx[I]);O=[];W=[];for(I=U=0;I<V.length;I++){if(0>V[I]-U)throw"medals must be registered in increasing order";O.push(V[I]-U);U=V[I];W.push(a.Lb[V[I]].na)}l(O);y(W,EA);
w=8;B=0;n(a.kb);n(a.xb);n(a.lb);y(a.Wa,uA);n(a.nf);w=9;B=0;y(a.yh,xA);y(a.precision,xA);t(a.xg);B++;y(a.ic,xA);t(a.Ve);y(a.kd,xA);y(a.zg,xA);y(a.Dd,IA);y(a.Ca,IA);t(a.Pf);y(a.fd,uA);y(a.Cd,uA);y(a.Fb,uA);t(a.ig);y(a.Ac,uA);w=10;B=0;m(a.ha);m(a.xj);m(a.nj);m(a.tj);m(a.sj);m(a.pj);n(a.Zg);n(a.$g);m(a.Zf);m(a.Pa);m(a.cf);m(a.jh);m(a.lh);m(a.mh);m(a.rg);m(a.fh);m(a.ki);y(a.df,AA);m(a.Qk);y(a.re,yA);y(a.ae,yA);y(a.Ze,yA);y(a.ef,yA);m(a.ei);m(a.Zd);m(a.wj);m(a.bg);m(a.ij);m(a.bf);m(a.fj);l(a.Yg);p(a.$e);
p(a.gj);l(a.ag);p(a.qg);m(a.di);m(a.vj);m(a.uj);n(a.af);n(a.bh);m(a.gh);m(a.hi);m(a.qj);m(a.zj);m(a.jj);y(a.ah,AA);w=11;B=0;n(a.Ub);n(a.se);m(a.fi);p(a.qa);p(a.Jb);p(a.Xf);m(a.dd);m(a.hh);m(a.$f);m(a.eh);m(a.gi);m(a.kh);m(a.yj);m(a.Yf);m(a.vc);m(a.dh);m(a.oj);m(a.lj);m(a.kj);m(a.rj);p(a.cg);p(a.ii);n(a.$d);p(a.ji);m(a.ih);m(a.mj);m(a.hj);w=12;B=0;n(a.pc);n(a.pa);m(a.Kf);p(a.rb);p(a.Od);p(a.ke);m(a.Re);m(a.Ib);m(a.Kc);m(a.sd);m(a.Lf);m(a.Mf);m(a.Nf);m(a.Pd);m(a.Jf);m(a.Se);m(a.rd);m(a.qd);m(a.Ig);
m(a.Jg);p(a.Lc);p(a.td);n(a.Te);p(a.ud);m(a.Kg);m(a.Th);m(a.Hg);w=13;B=0;0<a.ha&&(n(a.Gh),n(a.fc),m(a.hk),p(a.Sc),p(a.Fh),p(a.Eh),m(a.Hi),m(a.Li),m(a.fk),m(a.Ki),m(a.Mi),m(a.Ni),m(a.ik),m(a.Gi),m(a.Ii),m(a.Ji),m(a.dk),m(a.bk),m(a.ak),m(a.ek),p(a.yf),p(a.wf),n(a.jk),p(a.xf),m(a.gk),m(a.ck),m(a.$j));w=14;B=0;e(a.wg);e(a.mk);d(a.Fd);d(a.Df);e(a.vg);d(a.Cf);d(a.nk);w=15;B=0;w=16;B=0;m(a.Lk);n(a.Qc);n(a.lg);n(a.ye);t(a.paused);m(a.Fe);n(a.De);n(a.Ge);k(a.zc);n(a.jg);n(a.kg);n(a.mf);k(a.Vc);n(a.Bf);w=17;
B=0;x(a.uc);t(a.Xe);m(a.ya);x(a.Ua);m(a.Y.length);m(a.ca.length);B=8;O=[];W=[];ra=[];Na=[];rc=[];var ye=[];var Tb=[];var Jc=[];var Jd=[];var va=[];var E=[];for(I=0;I<a.Y.length;I++)b(a.Y[I]);for(I=0;I<a.ca.length;I++)b(a.ca[I]);l(O);l(W);l(ra);l(Na);l(rc);y(ye,LA);l(Tb);y(Jc,MA);l(Jd);l(va);l(E);B=20;m(a.$b);w=18;B=0;O=[];W=[];ra=[];for(var P in a.ed)a.ed.hasOwnProperty(P)&&a.ed[P]&&O.push(a.ed[P]);O.sort(function(Q,M){return Q-M});for(I=O.length-1;0<I;I--)O[I]-=O[I-1];l(O);for(P in a.Na)a.Na.hasOwnProperty(P)&&
a.Na[P]&&W.push(a.Na[P]);W.sort(function(Q,M){return Q-M});for(I=W.length-1;0<I;I--)W[I]-=W[I-1];l(W);for(P in a.yd)a.yd.hasOwnProperty(P)&&a.yd[P]&&ra.push(a.yd[P]);ra.sort(function(Q,M){return Q-M});for(I=ra.length-1;0<I;I--)ra[I]-=ra[I-1];l(ra);w=19;B=0;V=[];for(I=0;I<hq.length;I++)a.P[hq[I]].f&&V.push(hq[I]);O=[];W=[];ra=[];Na=[];rc=[];ye=[];Tb=[];Jc=[];Jd=[];va=[];E=[];for(I=U=0;I<V.length;I++){if(0>V[I]-U)throw"challenges must be registered in increasing order";P=qp[V[I]];K=a.P[V[I]];O.push(V[I]-
U);U=V[I];W.push(K.X);ra.push(K.aa);Na.push(K.cb);rc.push(K.Db);ye.push(K.Ic);Tb.push(K.tb);Jc.push(K.ng);if(1<P.ga){for(N=0;N<P.ga;N++)Jd.push(K.mb[N]);for(N=0;N<P.ga;N++)va.push(K.od[N]);for(N=0;N<P.ga;N++)E.push(K.pd[N])}}l(O);l(W);l(ra);l(Na);k(rc);m(a.challenge);k(ye);l(Tb);l(Jc);l(Jd);k(va);k(E);w=20;B=0;t(a.Md);B++;l(a.Hc);m(a.Zc);h(a.$c);m(a.nc);h(a.Cb);m(a.Ld);t(a.nd);h(a.Yc);m(a.md);y(a.ie,AA);m(a.Me);m(a.Gc);y([],60);for(I=0;I<a.xa.length;I++)U=a.xa[I],g(),t(U.enabled),t(U.done),y(U.type,
uA),m(U.ac),t(U.Nk),m(U.level),m(U.W),m(U.sa),t(U.Vd),n(U.time),t(U.ne),m(U.wd),t(U.Vf),m(U.Ie),t(U.Tf),t(U.Uf),t(U.Mc),n(U.ge),f();w=21;B=0;O=[];W=[];ra=[];Na=[];for(I=0;I<a.Jc.length;I++)for((P=a.Jc[I])||(P=new Vy),K=P.B,N=P.D,O[I]=K,W[I]=N,Na[I]=P.name,U=0;U<N;U++)for(V=0;V<K;V++)ra.push(P.data[U][V]);l(O);l(W);l(ra);y(Na,MA);w=22;B=0;O=[];W=[];y(a.Gf,AA);for(I=0;I<a.Ya.length;I++)U=a.Ya[I],O.push(U.aa[0]),O.push(U.aa[1]),O.push(U.aa[2]),W.push(U.na[0]),W.push(U.na[1]),W.push(U.na[2]);l(O);l(W);
B=3;m(a.gb);y(a.Zj,AA);t(a.th);t(a.Lh);w=23;B=0;t(a.he);t(a.Kd);y(a.ee,yA);y(a.Ef,uA);t(a.yb);t(a.mc);y(a.Eg,uA);w=24;B=0;k(a.Rg);y(a.We,NA);l(a.Og);l(a.Qg);y(a.Ng,LA);y(a.Pg,LA);w=25;B=0;m(a.Gb);a.Gb&&(m(a.Ih),m(a.Ob),m(a.Pb));B=5;y(a.Pi,yA);x(a.Be);n(a.uh);n(a.tg);n(a.ug);w=26;B=0;O=[];W=[];ra=[];Na=[];rc=[];ye=[];Tb=[];Jc=[];for(I=-1;I<hq.length;I++)if(U=-1==I?0:hq[I],-1==I||a.P[U].f)K=a.P[U],O.push(K.xi),W.push(K.yi),ra.push(qA(K.vh)),Na.push(qA(K.Pj)),rc.push(K.pf),ye.push(qA(K.vh)),Tb.push(K.Oj),
Jc.push(K.Nj);l(O);k(W);l(ra);l(Na);k(rc);l(ye);l(Tb);l(Jc);w=27;B=0;O=[];W=[];ra=[];Na=[];rc=[];for(I=0;I<a.Oe.length;I++)for((P=a.Oe[I])||(P=new Vy),K=P.B,N=P.D,O[I]=K,W[I]=N,rc[I]=P.name,U=0;U<N;U++)for(V=0;V<K;V++){ra.push(P.data[U][V]);var fa=P.l[U][V]+1;0<=fa||(fa=0);Na.push(fa)}l(O);l(W);l(ra);l(Na);y(rc,MA);w=28;U=B=0;y([],60);for(I=0;I<bw.length;I++){V=bw[I];if(0>V-U)throw"ethereal mistletoe upgrades must be registered in increasing order";P=a.nb[V];g();m(V-U);m(P.aa);n(P.time);f();U=V}x(a.fb);
n(a.Wb);w=29;B=0;m(a.La);m(a.Ka);P=a.La;K=a.Ka;O=[];W=[];ra=[];for(U=0;U<K;U++)for(V=0;V<P;V++)I=a.ta[U][V],O.push(I.index),Xk(I)&&(W.push(I.F),ra.push(I.wb));y(O,GA);y(W,KA);k(ra);w=30;B=0;V=[];for(I=0;I<ow.length;I++)a.Aa[ow[I]].f&&V.push(ow[I]);O=[];W=[];for(I=U=0;I<V.length;I++){if(0>V[I]-U)throw"crops must be registered in increasing order";O.push(V[I]-U);U=V[I];W.push(a.Aa[V[I]].vb)}l(O);l(W);I=UA(u);U=aB(I);return"EF"+("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[$A>>
18&63]+"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[$A>>12&63]+"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[$A>>6&63]+"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[$A&63])+"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[Math.min(63,Math.floor(Math.log2(a.fi/100+1)))]+Pz(I)+U}function bB(a){return 0>a||isNaN(a)||Infinity==a?!1:!0}
function cB(a){function b(wa){wa=e(wa);for(var Ab=[],sc=0;sc<wa.length;sc++)Ab[sc]=pA(wa[sc]).valueOf();return Ab}function d(wa){wa=e(wa);for(var Ab=[],sc=0;sc<wa.length;sc++)Ab[sc]=pA(wa[sc]);return Ab}function e(wa){for(var Ab=[],sc=0,ce=0;ce<wa.length;ce++)sc+=wa[ce],Ab[ce]=sc;return Ab}function f(){K[K.length-1].shift(0,1);F=B.pop();va=U.pop();O=W.pop()}function g(){var wa=K[K.length-1];wa.length?(B.push(F),F=wa[0],W.push(O),O=0,U.push(va),va=0):N=!0}function h(){var wa=u([],60);K.push(wa);return wa.length}
function k(wa){wa=u(wa,FA);if(!wa)return wa;for(var Ab=0;Ab<wa.length;Ab++)wa[Ab]=oA(wa[Ab]);return wa}function l(wa){return 4194>w?u(wa,JA):u(wa,OA)}function n(wa){return u(wa,HA)}function p(wa){return u(wa,GA)}function m(wa){return 4194>w?u(wa,yA):u(wa,DA)}function x(wa){return u(wa,CA)}function t(wa){return u(wa,wA)}function y(wa){return u(wa,tA)}function u(wa,Ab){var sc=F[64*O+va];va++;return void 0==sc||sc.type!=Ab?(void 0==wa&&(N=!0),wa):sc.value}if(!Oz(a))return YA(2);if(22>a.length)return YA(1);
if("E"!=a[0]||"F"!=a[1])return YA(3);var v=Mz[a[2]]-2;var w=0>v?4096*Mz[a[2]]+64*Mz[a[3]]+Mz[a[4]]:262144*Mz[a[2]]+4096*Mz[a[3]]+64*Mz[a[4]]+Mz[a[5]];if(w>$A)return YA(7);var q=a.substr(a.length-16);v=0>v?6:7;a=a.substr(v,a.length-16-v);a=Rz(a);if(!a)return YA(5);if(q!=aB(a))return YA(6);q=new dz;a={Rb:a,yc:0};if(4103>=w)return YA(8);var F=WA(a);if(a.error)return YA(4);var B=[],K=[],N=!1,O,W=[],U=[],V,I,ra,Na,rc,ye,Tb,Jc,Jd;var va=O=0;q.ua=m();q.b=x();q.j=t();va=4;q.J=t();q.c=u(void 0,AA);4160>w&&
q.c.Ja(Math.floor(q.j/fu));q.Da=t();q.Da&&(va=7,q.ab=t(),q.bb=t(),4182<=w?q.Xg=u(void 0,yA):(q.Xg=0,va++));va=10;4105>=w&&!q.Da&&(va-=3);q.Vb=m();q.wi=m();4105<=w&&(q.ia=u(void 0,vA));4105<=w&&(q.Va=u(void 0,vA));4105<=w&&(q.Bb=u(void 0,vA));va=15;if(4106<=w&&t()!=w)return YA(4);q.Ri=4116<=w?u(void 0,vA):Math.floor(281474976710656*Math.random());va=17;q.pe=4121<=w?u(void 0,vA):Math.floor(281474976710656*Math.random());if(N)return YA(4);va=18;4126<=w&&(q.ec=m(),q.Ti=m(),q.Di=m(),q.Rj=m());va=22;4132<=
w&&(q.G=u(void 0,AA),4160>w&&q.G.Ja(Math.floor(q.j/fu)));4158<=w&&(q.Wj=u(void 0,vA));4182<=w&&(q.qe=x());4194<=w&&(q.Pc=m());524736<=w&&(q.sb=u(void 0,vA));O=1;va=0;q.B=t();q.D=t();if(N||15<q.B||15<q.D||3>q.B||3>q.D)return YA(4);var E=q.B,P=q.D;var fa=p();var Q=u(void 0,KA);if(N)return YA(4);for(v=I=V=0;v<P;v++){q.C[v]=[];for(var M=0;M<E;M++){q.C[v][M]=new Fy(M,v,1);var Y=q.C[v][M];Y.index=fa[V++];Y.index>=5E4+oo&&4154>=w?Y.index=Y.index-5E4+300:Y.index>=307+oo&&4154>=w&&(Y.index=Y.index-307+300);
Xk(Y)&&(Y.F=Q[I++]);(150==Y.index||151==Y.index)&&4170>w?Y.index=Y.F=0:Y.index==151+oo&&4171>w&&(Y.index=150+oo)}}if(V>fa.length||I>Q.length)return YA(4);O=2;va=0;q.fa=t();q.ea=t();if(N||15<q.fa||15<q.ea||3>q.fa||3>q.ea)return YA(4);a=q.fa;E=q.ea;fa=p();Q=4105<=w?u(void 0,KA):null;var Ca=4111<=w?u(void 0,EA):null;var Ha=4194<=w?u(void 0,EA):null;var Oh=ra=I=V=0;if(N)return YA(4);for(v=0;v<E;v++)for(q.ka[v]=[],M=0;M<a;M++)q.ka[v][M]=new Fy(M,v,2),Y=q.ka[v][M],Y.index=fa[V++],Xk(Y)&&(4105<=w&&(Y.F=
Q[I++]),4111<=w&&(Y.hg=Ca[ra++]),4194<=w&&(Y.we=Ha[Oh++]));if(V>fa.length||4105<=w&&I>Q.length||4111<=w&&ra>Ca.length)return YA(4);O=3;va=0;if(4187<=w){fa=n();Q=u(void 0,EA);Ca=u(void 0,EA);Ha=u(void 0,EA);var oa=n();if(N||fa.length!=Q.length||fa.length!=Ca.length||Ha.length!=oa.length||Ha.length>fa.length)return YA(4);for(a=Y=M=0;a<fa.length;a++){M=v=fa[a]+M;4193>w&&(41==v||42==v)&&(v+=284);if(!Fj[v])return YA(4);q.i[v].f=Q[a];q.i[v].Ff=Ca[a];q.i[v].f&&(q.i[v].na=Ha[Y],q.i[v].count=oa[Y],Y++);Fj[v].Ud&&
(q.i[v].f=!1,q.i[v].count=0)}}else{fa=n();Q=u(void 0,EA);Ca=n();Ha=4161<=w?u(void 0,EA):Q;if(N||fa.length!=Q.length||fa.length!=Ca.length)return YA(4);for(a=M=0;a<fa.length;a++){M=v=fa[a]+M;4186>w&&(250>v&&125<=v?v+=375:300>v&&250<=v?v+=750:350>v&&300<=v&&(v-=100));if(!Fj[v])return YA(4);q.i[v].f=!0;q.i[v].na=Q[a];q.i[v].count=Ca[a];q.i[v].Ff=Ha[a];Fj[v].Ud&&(q.i[v].f=!1,q.i[v].count=0,4110>=w&&(v==aq&&Ca[a]&&(q.i[$p].f=!0,q.i[$p].count=2),v==cq&&Ca[a]&&(q.i[nj].f=!0,q.i[nj].count=2)))}4171>w&&(q.i[wp].count=
0,q.i[Zp].count=0)}O=4;va=0;fa=n();if(4190<=w)Q=n();else for(Q=[],a=0;a<fa.length;a++)Q[a]=0;if(524672<=w)Ca=n();else for(Ca=[],a=0;a<fa.length;a++)Ca[a]=0;if(N||fa.length!=Q.length||fa.length!=Ca.length)return YA(4);for(a=M=0;a<fa.length;a++){M=v=fa[a]+M;5E4<=v&&4154>=w?v=v-5E4+300:307<=v&&4154>=w&&(v=v-307+300);if(!vl[v])return YA(4);q.U[v].f=!0;q.U[v].sa=Q[a];q.U[v].xe=Ca[a]}O=5;va=0;fa=n();Q=u(void 0,EA);Ca=n();if(N||fa.length!=Q.length||fa.length!=Ca.length)return YA(4);for(a=M=0;a<fa.length;a++){M=
v=fa[a]+M;if(!Ks[v])return YA(4);q.K[v].f=!0;q.K[v].na=Q[a];q.K[v].count=Ca[a];Ks[v].Ud&&(q.K[v].f=!1);4163>w&&v==Up&&1<q.K[v].count&&(q.K[v].count=1)}O=6;va=0;fa=n();if(N)return YA(4);for(a=M=0;a<fa.length;a++){M=v=fa[a]+M;if(!Kq[v])return YA(4);q.ba[v].f=!0}O=7;va=0;fa=n();Q=u(void 0,EA);if(N||fa.length!=Q.length)return YA(4);for(a=M=0;a<fa.length;a++){M=v=fa[a]+M;4170>w&&400<=v&&(v+=200);4186>w&&(1E3<=v?v+=1E3:600<=v?v+=400:500==v?v=643:501==v?v=644:400<=v?v=960+Math.floor((v-400)/5):369<=v?v=
560+8*Math.floor((v-369)/5)+(v-9)%5:359<=v?v=720+8*Math.floor((v-359)/5)+(v-9)%5:349<=v?v=480+8*Math.floor((v-349)/5)+(v-9)%5:299<=v?v=400+8*Math.floor((v-299)/5)+(v-9)%5:249<=v?v=320+8*Math.floor((v-249)/5)+(v-9)%5:149<=v&&(v=160+8*Math.floor((v-149)/5)+(v-9)%5));if(!ux[v])return YA(4);q.Lb[v].hb=!0;q.Lb[v].na=Q[a];ux[v].Ud&&(q.Lb[v].hb=!1,q.Lb[v].na=!1)}O=8;va=0;q.kb=m();q.xb=m();q.lb=m();4194<=w?q.Wa=u(void 0,uA):(q.kb>q.xb&&q.kb>q.lb&&(q.Wa=1),q.lb>q.xb&&q.lb>q.kb&&(q.Wa=2));4198<=w&&(q.nf=m());
if(N)return YA(4);O=9;va=0;q.yh=u(void 0,xA);q.precision=u(void 0,xA);q.xg=y();va++;q.ic=u(void 0,xA);4116<=w&&(q.Ve=y());4118<=w&&(q.kd=u(void 0,xA));4128<=w&&(q.zg=u(void 0,xA));4153<=w&&(q.Dd=u(void 0,IA));if(4158<=w)for(v=q.Ca,q.Ca=u(void 0,IA),a=q.Ca.length;a<v.length;a++)q.Ca[a]=v[a];if(N)return YA(4);4166<=w&&(q.Pf=y());4185<=w?(q.fd=u(void 0,uA),q.Cd=u(void 0,uA),q.Fb=u(void 0,uA)):(q.fd=1,q.Fb=3);4186<=w&&(q.ig=y());524417<=w&&(q.Ac=524544<=w?u(void 0,uA):y());if(N)return YA(4);O=10;va=0;
q.ha=t();q.xj=t();q.nj=t();q.tj=t();q.sj=t();q.pj=t();q.Zg=m();q.$g=m();q.Zf=t();q.Pa=t();q.cf=t();q.jh=t();q.lh=t();q.mh=t();q.rg=t();4105<=w&&(q.fh=t());4105<=w&&(q.ki=t());4106<=w&&(q.df=4110<=w?u(void 0,AA):c(t()));4110<=w&&(q.Qk=t(),q.re=u(void 0,yA),q.ae=u(void 0,yA));4123<=w&&(q.Ze=u(void 0,yA),q.ef=u(void 0,yA));4124<=w&&(q.ei=t());4138<=w&&(q.Zd=t());4139<=w&&(q.wj=t(),q.bg=t());if(4170<=w)for(q.ij=t(),q.bf=t(),q.fj=t(),v=n(),a=0;a<v.length;a++)q.Yg[a]=v[a];4182<=w&&(q.$e=x(),q.gj=x());if(4195<=
w){v=n();if(N||v.length>q.ag.length)return YA(4);for(a=0;a<v.length;a++)q.ag[a]=v[a]}else 4189<=w&&(q.ag[0]=t());4192<=w&&(q.qg=x());524672<=w&&(q.di=t(),q.vj=t(),q.uj=t(),q.af=m(),q.bh=m());524736<=w&&(q.gh=t(),q.hi=t(),q.qj=t(),q.zj=t());524739<=w&&(q.jj=t());524739<=w&&(q.ah=u(void 0,AA));if(N)return YA(4);O=11;va=0;q.Ub=m();q.se=m();q.fi=t();q.qa=x();q.Jb=x();q.Xf=x();q.dd=t();q.hh=t();q.$f=t();q.eh=t();q.gi=t();q.kh=t();q.yj=t();4105<=w&&(q.Yf=t());4113<=w&&(q.vc=t());4113<=w&&(q.dh=t());4138<=
w&&(q.oj=t());4145<=w&&(q.lj=t());4145<=w&&(q.kj=t());4156<=w&&(q.rj=t());4158<=w&&(q.cg=x());4158<=w&&(q.ii=x());4167<=w&&(q.$d=m());4174<=w&&(q.ji=x());4190<=w&&(q.ih=t());4190<=w&&(q.mj=t());4198<=w&&(q.hj=t());if(N)return YA(4);O=12;va=0;q.pc=m();q.pa=m();q.Kf=t();q.rb=x();q.Od=x();q.ke=x();q.Re=t();q.Ib=t();q.Kc=t();q.sd=t();q.Lf=t();q.Mf=t();q.Nf=t();4105<=w&&(q.Pd=t());4113<=w&&(q.Jf=t());4113<=w&&(q.Se=t());4138<=w&&(q.rd=t());4145<=w&&(q.qd=t());4145<=w&&(q.Ig=t());4156<=w&&(q.Jg=t());4158<=
w&&(q.Lc=x());4158<=w&&(q.td=x());4167<=w&&(q.Te=m());4174<=w&&(q.ud=x());4190<=w&&(q.Kg=t());4190<=w&&(q.Th=t());4198<=w&&(q.Hg=t());if(N)return YA(4);O=13;va=0;if(0<q.ha&&(q.Gh=m(),q.fc=m(),q.hk=t(),q.Sc=x(),4182>w&&(q.$e=R(q.Sc)),4192>w&&(q.qg.c=c(q.Sc.c)),q.Fh=x(),q.Eh=x(),q.Hi=t(),q.Li=t(),q.fk=t(),q.Ki=t(),q.Mi=t(),q.Ni=t(),q.ik=t(),4105<=w&&(q.Gi=t(0)),4113<=w&&(q.Ii=t()),4113<=w&&(q.Ji=t()),4138<=w&&(q.dk=t()),4145<=w&&(q.bk=t()),4145<=w&&(q.ak=t()),4156<=w&&(q.ek=t()),4158<=w&&(q.yf=x()),
4158<=w&&(q.wf=x()),4167<=w&&(q.jk=m()),4174<=w&&(q.xf=x()),4190<=w&&(q.gk=t()),4190<=w&&(q.ck=t()),4198<=w&&(q.$j=t()),N))return YA(4);O=14;va=0;q.wg=e(p());if(4122<=w)if(q.mk=e(p()),4159<=w)q.Fd=b(p()),q.Df=d(p()),q.vg=e(p()),q.Cf=d(p()),q.nk=d(p());else{q.Fd=e(p());for(a=0;a<q.Fd.length;a++)q.Fd[a]*=3;q.Df=e(p());for(a=0;a<q.Df.length;a++)q.Df[a]=jh(th(c(2),c(q.Df[a])),1);q.vg=e(p());if(4140<=w)for(q.Cf=e(p()),a=0;a<q.Cf.length;a++)q.Cf[a]=jh(th(c(2),c(q.Cf[a])),1)}if(N)return YA(4);O=15;va=0;
O=16;va=0;4110<=w&&(q.Lk=t());4115<=w&&(q.Qc=m());4167<=w&&(q.lg=m());4167<=w&&(q.ye=m());4168<=w&&(q.paused=y());4170<=w&&(q.Fe=t());4179<=w&&(q.De=m());4179<=w&&(q.Ge=m());if(4199<=w&&(q.zc=l(),N||3!=q.zc.length))return YA(4);4200<=w&&(q.jg=m());4200<=w&&(q.kg=m());524739<=w&&(q.mf=m());if(524741<=w){q.Vc=l();if(N||2!=q.Vc.length)return YA(4);q.Bf=m()}if(N)return YA(4);O=17;va=0;if(4113<=w){q.uc=u(void 0,vA);q.Xe=y();q.ya=t();v=0;if(4153>w){v=t(0);if(1<v)return YA(4);q.ya++}else q.Ua=4196>w?t(0):
u(0,vA);q.Y.length=t(0);q.ca.length=t(0);if(q.Y.length>q.ya)return YA(4);va=8;fa=n();Q=n();Ca=n();Ha=n();oa=n();var lc=u(void 0,LA);var ze=n();if(4153<=w)var Cc=u(void 0,MA);else for(Cc=[],a=0;a<ze.length;a++)Cc[a]="";if(4156<=w){var Qe=n();var Eb=n()}else{Qe=[];for(a=0;a<Ha.length;a++)Qe[a]=0;Eb=[];for(a=0;a<ze.length;a++)Eb[a]=0}var ha=4163<=w?n():[];if(N)return YA(4);var Tg=Jd=Jc=Tb=ye=rc=Na=Oh=ra=I=V=0;M=function(){var wa=new eu;wa.type=fa[V++];wa.l=Q[I++];if(!(ra>=Ca.length)){wa.H.length=Ca[ra++];
wa.Z=lc[rc++];wa.mark=ze[ye++];wa.name=Cc[Tb++];wa.cd=Eb[Jd++];for(var Ab=0;Ab<wa.H.length;Ab++)wa.H[Ab]=Ha[Oh++],wa.wa[Ab]=oa[Na++],wa.Ha[Ab]=Qe[Jc++],4163>w&&(ha[Tg]=tb(wa.Z,0)&&0==wa.cd?wa.wa[Ab]:2),wa.Bc[Ab]=ha[Tg++],4174>w&&9<=wa.H[Ab]&&17>=wa.H[Ab]&&1<=wa.type&&(wa.H[Ab]=9+wa.type-1),4196>w&&9<=wa.H[Ab]&&(wa.H[Ab]=18<=wa.H[Ab]?wa.H[Ab]-9:wa.H[Ab]+11);return wa}};if(4153>w)if(v){q.Y.length+=1;Y=M();if(!Y)return YA(4);q.Y[0]=Y;q.Ua=0}else q.Ua=q.Y.length;for(a=v;a<q.Y.length;a++){Y=M();if(!Y)return YA(4);
q.Y[a]=Y}for(a=0;a<q.ca.length;a++){Y=M();if(!Y)return YA(4);q.ca[a]=Y}if(V!=fa.length||I!=Q.length||ra!=Ca.length||Oh!=Ha.length||Na!=oa.length||rc!=lc.length||ye!=ze.length||Tb!=Cc.length||Jc!=Qe.length||Jd!=Eb.length||Tg!=ha.length)return YA(4)}4135<=w&&(va=20,q.$b=t());if(4188>w){for(a=0;a<q.Y.length;a++)Yt(q.Y[a]);for(a=0;a<q.ca.length;a++)Yt(q.ca[a])}0>q.uc&&(q.uc=Math.floor(q.Ub)&4294967295^440006961524);O=18;va=0;if(4116<=w){fa=n();Q=n();Ca=n();if(N)return YA(4);ra=I=V=0;for(a=1;a<fa.length;a++)fa[a]+=
fa[a-1];for(a=1;a<Q.length;a++)Q[a]+=Q[a-1];for(a=1;a<Ca.length;a++)Ca[a]+=Ca[a-1];for(a=0;a<fa.length;a++)q.ed[fa[a]]=fa[a];for(a=0;a<Q.length;a++)q.Na[Q[a]]=Q[a];for(a=0;a<Ca.length;a++)q.yd[Ca[a]]=Ca[a];q.Na[30]&&((q||D).Na[29]=!0)}O=19;va=0;if(4125<=w){fa=n();if(4128<=w)Q=n();else for(Q=u(void 0,EA),a=0;a<Q.length;a++)Q[a]=Q[a]?1:0;Ca=n();Ha=n();oa=l();q.challenge=t();if(4139<=w)lc=l(),ze=n(),Cc=n();else for(lc=[],ze=[],Cc=[],a=0;a<Q.length;a++)lc[a]=0,ze[a]=Q[a],Q[a]=Q[a]?1:0,Cc[a]=0;4165<=w?
(Qe=n(),Eb=l(),ha=l()):(Qe=[],Eb=[],ha=[]);if(N||fa.length!=Q.length||fa.length!=Ca.length||fa.length!=Ha.length||fa.length!=oa.length)return YA(4);for(a=M=Tg=Jd=Jc=0;a<fa.length;a++){M=v=fa[a]+M;if(!qp[v])return YA(4);Y=qp[v];E=q.P[v];E.f=!0;E.X=Q[a];E.aa=Ca[a];E.cb=Ha[a];E.Db=oa[a];E.Ic=lc[a];E.tb=ze[a];E.ng=Cc[a];if(1<Y.ga)if(E.mb=[],E.od=[],E.pd=[],4165<=w){for(v=0;v<Y.ga;v++)E.mb[v]=Qe[Jc++];for(v=0;v<Y.ga;v++)E.od[v]=Eb[Jd++];for(v=0;v<Y.ga;v++)E.pd[v]=ha[Tg++]}else{for(v=0;v<Y.ga;v++)E.mb[v]=
v<E.tb?Math.max(Y.ja[0],E.cb-2*v):0,E.od[v]=0,E.pd[v]=0;E.od[0]=E.Db;E.pd[0]=E.Ic}}if(4165<=w&&(Jc!=Qe.length||Jd!=Eb.length||Tg!=ha.length))return YA(4)}if(4139>w)for(a=q.bg=0;a<hq.length;a++)v=hq[a],q.bg+=q.P[v].tb,q.challenge==v&&q.P[v].aa--;for(a=0;a<hq.length;a++)Y=qp[hq[a]],E=q.P[hq[a]],0!=E.Ic&&E.X<Y.ja.length&&(E.Ic=0),0!=E.ng&&E.X<Y.ja.length&&(E.ng=0);O=20;va=0;4136<=w&&(q.Md=y(),va++,q.Hc=n());if(4138<=w){q.Zc=t();v=[];v=4139<=w?k():[oA(u(void 0,uA))];if(N)return YA(4);for(a=0;a<v.length;a++)q.$c[a]=
v[a];for(a=v.length;a<q.$c.length;a++)q.$c[a]=v[1]}if(4142<=w){q.nc=t();v=q.Cb.length;q.Cb=k();for(a=q.Cb.length;a<v;a++)q.Cb[a]=q.Cb[0];if(N)return YA(4)}if(4146<=w&&(q.Ld=t(),N))return YA(4);if(4147<=w){q.nd=y();v=q.Cb.length;q.Yc=k();for(a=q.Yc.length;a<v;a++)q.Yc[a]=q.Yc[0];if(N)return YA(4)}if(4149<=w){if(q.md=t(),N)return YA(4)}else q.md=1;4153<=w&&(q.ie=u(void 0,AA));4190<=w&&(q.Me=t());524608<=w&&(q.Gc=t());if(N)return YA(4);524608>w&&q.P[Rj].f&&(Y=q.P[Rj],E=qp[Rj],5>q.J&&(Y.f=!1),Y.X&&(Y.cb<
E.ja[0]?Y.X=0:Y.cb<E.ja[1]?Y.X=1:Y.cb<E.ja[2]&&(Y.X=2),Y.X||(Y.tb=0),2>Y.X&&(Y.ng=0)));if(524608<=w){Y=h();q.xa=[];pq(q,Y);for(a=0;a<Y;a++)v=q.xa[a],q.xa[a]=v,g(),v.enabled=y(),v.done=y(),v.type=u(void 0,uA),v.ac=t(),v.Nk=y(),v.level=t(),524672<=w&&(v.W=t()),524672<=w&&(v.sa=t()),524675<=w?v.Vd=y():(v.Vd=0<v.ac,0<v.ac&&v.ac--),524675<=w&&(v.time=m()),524675<=w&&(v.ne=y()),524675<=w&&(v.wd=t()),524676<=w&&(v.Vf=y()),524676<=w&&(v.Ie=t()),524676<=w&&(v.Tf=y()),524676<=w&&(v.Uf=y()),524677<=w&&(v.Mc=
y()),524677<=w&&(v.ge=m()),f();K.pop()}if(N)return YA(4);O=21;va=0;if(4154<=w){fa=n();Q=n();Ca=n();if(N)return YA(4);if(4156<=w)Ha=u(void 0,MA);else for(Ha=[],a=0;a<fa.length;a++)Ha[a]="";if(N||fa.length!=Q.length||fa.length!=Ha.length)return YA(4);ra=0;q.Jc=[];for(a=0;a<fa.length;a++){E=fa[a];P=Q[a];if(20<E||20<P)return YA(4);Y=new Vy;q.Jc[a]=Y;Y.B=E;Y.D=P;Y.name=Ha[a];Y.data=[];for(v=0;v<P;v++)for(Y.data[v]=[],M=0;M<E;M++){var wf=Ca[ra++];Y.data[v][M]=wf}}if(ra!=Ca.length)return YA(4)}if(N)return YA(4);
O=22;M=va=0;524544<=w&&(va=3,q.gb=t(),va=0);Wv(q);if(4170<=w){E=fv[q.gb];q.Gf=u(void 0,AA);fa=n();Q=[];if(4174<=w){if(Q=n(),Q.length!=fa.length)return YA(4)}else for(a=0;a<fa.length;a++)Q[a]=fa[a];va=4;524544<=w&&(q.Zj=u(void 0,AA),q.th=y(),q.Lh=y());4196>w&&39<=fa.length&&fa[37]&&(fa[37]=fa[39]=fa[40]=fa[41]=0,Q[40]=Q[37],Q[37]=Q[39]=Q[41]=!1,M++);I=V=0;if(0!=fa.length%3||fa.length>3*E.length)return YA(4);Y=Math.floor(fa.length/3);for(a=0;a<Y;a++){P=q.Ya[a];P.aa[0]=fa[V++];P.aa[1]=fa[V++];P.aa[2]=
fa[V++];P.na[0]=Q[I++];P.na[1]=Q[I++];P.na[2]=Q[I++];7<=a&&4188>w&&P.aa[1]&&(M++,P.aa[1]=0,P.na[1]=!1);if(P.aa[0]>E[a].Hd.length||P.aa[1]>E[a].Sb.length||P.aa[2]>E[a].K.length)return YA(4);for(v=0;v<P.aa[0];v++)q.$[E[a].Hd[v]].count++;for(v=0;v<P.aa[1];v++)q.$[E[a].Sb[v]].count++;for(v=0;v<P.aa[2];v++)q.$[E[a].K[v]].count++;if(P.na[0]>E[a].Hd.length||P.na[1]>E[a].Sb.length||P.na[2]>E[a].K.length)return YA(4)}}if(N)return YA(4);if(0<M){X("Due to an update some squirrel updates changed, and "+M+" of your squirrel upgrade(s) got refunded. Check the squirrel tab to re-buy them.",
dB,0,0,!1,!0);Hv(a);for(a=Y=0;a<bv.length;a++)Y+=q.$[bv[a]].count;Y+=M;for(a=new c(0);0<M;)M--,Y--,a.v(Hv(Y));q.b.S.v(a)}if(N)return YA(4);O=23;va=0;4170<=w&&(q.he=y());4173<=w&&(q.Kd=y());4173<=w&&(q.ee=u(void 0,yA));4176<=w&&(q.Ef=u(void 0,uA));524739<=w&&(q.yb=y());524739<=w&&(q.mc=y());524740<=w&&(q.Eg=u(void 0,uA));if(N)return YA(4);O=24;va=0;4175<=w&&(q.Rg=l(),q.We=u(void 0,NA),q.Og=n(),q.Qg=n(),q.Ng=u(void 0,LA),q.Pg=u(void 0,LA));if(N)return YA(4);O=25;va=0;4189<=w?(q.Gb=t(),q.Gb&&(q.Ih=t(),
q.Ob=t(),q.Pb=t()),va=5,q.Pi=u(void 0,yA),q.Be=u(void 0,vA),q.uh=m(),q.tg=m(),4195<=w&&(q.ug=m())):q.Be=q.Ri^1886545267;if(N)return YA(4);O=26;va=0;if(4194<=w){fa=n();Q=l();Ca=n();Ha=n();oa=l();lc=n();ze=n();4195<=w&&(Cc=n());if(N||fa.length!=Q.length||fa.length!=Ca.length||fa.length!=Ha.length||fa.length!=oa.length||fa.length!=lc.length||fa.length!=ze.length||4195<=w&&fa.length!=Cc.length)return YA(4);v=0;for(a=-1;a<hq.length;a++)if(M=-1==a?0:hq[a],-1==a||q.P[M].f){if(v>=fa.length)return YA(4);E=
q.P[M];E.xi=fa[v];E.yi=Q[v];E.vh=rA(Ca[v]);E.Pj=rA(Ha[v]);E.pf=oa[v];E.vh=rA(lc[v]);E.Oj=ze[v];4195<=w&&(E.Nj=Cc[v]);v++}}if(N)return YA(4);O=27;va=0;if(4194<=w){fa=n();Q=n();Ca=n();Ha=n();oa=u(void 0,MA);if(N||fa.length!=Q.length||fa.length!=oa.length||Ca.length!=Ha.length)return YA(4);Oh=ra=0;q.Oe=[];for(a=0;a<fa.length;a++){E=fa[a];P=Q[a];if(20<E||20<P)return YA(4);Y=new Vy;q.Oe[a]=Y;Y.B=E;Y.D=P;Y.name=oa[a];Y.data=[];Y.l=[];for(v=0;v<P;v++)for(Y.data[v]=[],Y.l[v]=[],M=0;M<E;M++)wf=Ca[ra++],Y.data[v][M]=
wf,wf=Ha[Oh++]-1,Y.l[v][M]=wf}if(ra!=Ca.length||Oh!=Ha.length)return YA(4)}if(N)return YA(4);O=28;va=0;if(524672<=w){M=0;Y=h();for(a=0;a<Y;a++)g(),v=t(),v+=M,cw[v]&&(M=q.nb[v],M.aa=t(),M.time=m(),f(),M=v);K.pop();q.fb=u(void 0,vA);q.Wb=m()}if(N)return YA(4);O=29;va=0;if(524736<=w){q.La=t();q.Ka=t();if(N||15<q.La||15<q.Ka||3>q.La||3>q.Ka)return YA(4);E=q.La;P=q.Ka;fa=p();Q=u(void 0,KA);if(524743<=w)Ca=l();else for(Ca=[],a=0;a<Q.length;a++)Ca[a]=0;ra=I=V=0;if(N)return YA(4);for(v=0;v<P;v++)for(q.ta[v]=
[],M=0;M<E;M++)q.ta[v][M]=new Fy(M,v,3),Y=q.ta[v][M],Y.index=fa[V++],Xk(Y)&&(Y.F=Q[I++],Y.wb=Ca[ra++]);if(V>fa.length||I>Q.length||ra>Ca.length)return YA(4)}else gz(q);O=30;va=0;if(524736<=w){fa=n();Q=n();if(N||fa.length!=Q.length)return YA(4);for(a=M=0;a<fa.length;a++){M=v=fa[a]+M;if(!mw[v])return YA(4);q.Aa[v].f=!0;q.Aa[v].vb=Q[a]}}pq(q,Cz(q));4169>=w&&(q.b.S=c(0),q.qa.S=c(0),q.Jb.S=c(0),q.Xf.S=c(0),q.rb.S=c(0),q.Od.S=c(0),q.ke.S=c(0),q.Sc.S=c(0),q.Fh.S=c(0),q.Eh.S=c(0),q.U[sn].f=!1,q.U[tn].f=!1);
if(4104>=w){for(v=0;v<q.ea;v++)for(M=0;M<q.fa;M++)Y=q.ka[v][M],Xk(Y)&&q.b.c.Ta(10);fz(q);0<q.ha&&X("Due to an update, the resin and transcension system has been reset. All your resin has been refunded so you can re-use it with the new system. The pericarps resource has been removed from the game. There are now multiple ethereal field plant types and they give direct boosts to the basic field. Unused resin also gives a small boost now. The ethereal upgrades are currently removed, but new ones, probably costing resin, may be added back in a future game update.",
dB,0,0,!1,!0);q.ba[vr].f=!0;q.ba[Cr].f=!0;q.ba[Jr].f=!0;q.ba[or].f=!0;q.cf=0;q.jh=0;q.lh=0;q.mh=0;q.qa.c=c(q.b.c);q.df=c(q.qa.c)}else 4105==w?(q.qa.c=c(q.Jb.c),q.df=c(q.qa.c)):4110>w&&(a=q.df,v=q.qa.c,v.da(a)&&(a=c(v)),v=q.Jb.c,v.da(a)&&(a=c(v)),v=c(11*q.ha),v.da(a)&&(a=c(v)),q.df=a);4112>w&&(q.ba[hs].f=!0,q.ba[Jr].f=!0,q.b.A.Ja(6.666666));if(4116>w){M=c(0);for(a=0;4>a;a++)for(Y=q.K[Qs[a]].count,v=1;v<Y;v++)M.v(oh(c(10),v).o(10)),M.oa(oh(c(2),v).o(10));pb(M,0)&&(X("ethereal season upgrades became cheaper in version v0.1.20, compensated "+
M.toString()+" resin to your stacks",dB,0,0),q.b.c.v(M))}4119>w&&(q.ha?(q.Na[1]=1,q.Na[9]=9):q.Na[1]=q.ed[1]=void 0);4126>w&&q.challenge==kj&&!q.i[Wp].f&&(q.i[Wp].f=!0);4141>w&&(q.rb.c=c(0),q.rb.G=c(0),q.rb.Z=c(0));4174>w&&q.K[pt].count&&0<q.Ya[3].aa[1]&&(X("One free squirrel respec token given due to squirrel upgrade changes"),q.Fe++);if(4174>w){P=E=0;wf=c(75E6);var Tu=c(5E7);a=c(0);for(v=0;v<q.ea;v++)for(M=0;M<q.fa;M++)Y=q.ka[v][M],Xk(Y)&&(T(Y).index==yr&&a.v(wf.o(Math.pow(1.5,E++))),T(Y).index==
Fr&&a.v(Tu.o(Math.pow(1.5,P++))));q.K[tt].count&&a.Ta(5E8);a.T(0)&&X("Some ethereal crops and upgrades were made cheaper, received refund of: "+a.toString()+" resin");q.b.c.v(a)}4180>=w&&!q.P[ul].X&&q.Lb[qy].hb&&(q.Lb[qy].na=q.Lb[qy].hb=!1);if(!bB(q.ua)||!bB(q.se)){bB(q.ua)||(q.ua=r.getTime());bB(q.$d)||(q.$d=0);bB(q.se)||(q.se=q.ua-q.Ub-q.$d);bB(q.pa)||(q.pa=q.ua-q.pc);bB(q.fc)||(q.fc=q.pc-q.Gh);for(v=0;v<q.D;v++)for(M=0;M<q.B;M++)Y=q.C[v][M],bB(Y.F)||(Y.F=0);bB(q.re)||(q.re=0);bB(q.Ze)||(q.Ze=0);
bB(q.ae)||(q.ae=0);bB(q.ef)||(q.ef=0);ub(q.b.A,0)&&(q.b.A=c(0));ub(q.b.g,0)&&(q.b.g=c(0))}524739>w&&(q.mf=0,q.K[Ct].count&&(q.mf=20==q.J?Math.max(1666655999,q.lg):1666655999));524740>w&&q.yb&&(a=q.mc,q.mc=!1,q.Eg=eB(q.ua,q),q.mc=a);if(N)return YA(4);q.tj++;return q}
function aB(a){for(var b=[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],d=0;d<a.length;d++)for(var e=Mz[a[d]]+1,f=0;16>f;){b[f]=65537*b[f]+e;if(63<b[f])e=b[f]>>6,b[f]&=63;else break;f++}a="";for(d=0;d<b.length;d++)a+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[b[d]&63];return a}
function fB(a){D=a;Ov();Yv(D);gB();Ph=D.yh;Qh=D.precision;hB(a);!D.Na[28]&&Vp()&&(D.Na[28]=28);!D.Na[31]&&Vp()&&(D.Na[31]=31);!D.Na[29]&&qq()&&(D.Na[29]=29);!D.Na[30]&&yz()&&(D.Na[30]=30);!D.Na[33]&&oq()&&(D.Na[33]=33);!D.Na[38]&&Ez()&&(D.Na[38]=38);!D.Na[40]&&Bz()&&(D.Na[40]=40);D.paused&&X("game paused",void 0,void 0,void 0,void 0,void 0,!0)}function iB(a,b,d){a.yh=Ph;a.precision=Qh;(a=ZA(a))?b&&b(a):d&&d()}function jB(a,b,d){(a=cB(a))&&!a.gl?(fB(a),b&&b(a)):d&&d(a)}
function XA(a){var b=new nA(a);if(null==b||void 0==b)return null;if(8<b.length)return a.error=!0,null;a=new R;Ai(a,b);return a};function kB(){var a=lB,b=La({size:3,title:"Number format help",Ba:!0});var d="Change the displayed number format used for most costs, amounts, percentages, etc...<br><br><b>Latin suffixes:</b><br><br>";for(var e=36,f=1;f<e;f++){var g="",h="";if(f<e-2){var k=ei(3*f);g=vi(3*f);h=", 1e"+3*f;if(4>=f){h+=" (1";for(var l=0;l<f;l++)h+=",000";h+=")"}}else f==e-2?(g="centillion",h=", 1e303",k="C"):k="etc...";d+="<b>"+k+"</b>"+(g?": ":"")+g+h+"<br>"}d+="<br><br>";e=!1;for(f=0;f<a.length;f++)if(a[f]==Eh){e=
!0;break}if(e)for(d+="<b>SI suffixes:</b><br><br>",e=9,f=1;f<e;f++){g=k="";h=", 1";for(l=0;l<f;l++)h+=",000";h+=" (1e"+3*f+")";1==f?(k=" K",g=" kilo"):2==f?(k=" M",g=" mega"):3==f?(k=" G",g=" giga"):4==f?(k=" T",g=" tera"):5==f?(k=" P",g=" peta"):6==f?(k=" E",g=" exa"):7==f?(k=" Z",g=" zetta"):8==f&&(k=" Y",g=" yotta");d+="<b>"+k+"</b>"+(g?": ":"")+g+h+"<br>"}d+="<br><br><b>Symbol meanings:</b><br><br>\n <b>.</b>: decimal point, e.g. 1.5 is one and a half<br>\n <b>*</b>: multiply, e.g. 5*5 = 25<br>\n <b>^</b>: power, e.g. 5^3 = 5*5*5 = 125<br>\n <b>10^</b>: exponential function for logarithm 10 notation<br>\n <b>e^</b>: exponential function for natural log notation. Here, e = 2.71828...<br><br><b>Formats:</b><br><br>";
for(f=0;f<a.length;f++)l=a[f],d+="<b>"+ma(yh[l])+"</b><br>",d+=zh[l]+"<br><br>";b.content.a.innerHTML=d}var lB=[Bh,Gh,Ch,Dh,Hh,Mh,Nh],mB=[];for(Ex=0;Ex<lB.length;Ex++)mB[lB[Ex]]=Ex;
function nB(){function a(w){w.h.innerText=1==D.Ac?"roman numbers: enabled":0==D.Ac?"roman numbers: up to 12":"roman numbers: disabled"}function b(){var w='<table border="1" style="border-collapse:collapse"><tr><td style="padding-left:8px; padding-right:8px; padding-top:3px; padding-bottom:3px;"><b>Example</b></td><td style="padding-left:8px; padding-right:8px; padding-top:3px; padding-bottom:3px;"><b>Notation</b></td><td width="10%" style="border:none"></td><td style="padding-left:8px; padding-right:8px; padding-top:3px; padding-bottom:3px;"><b>Example</b></td><td style="padding-left:8px; padding-right:8px; padding-top:3px; padding-bottom:3px;"><b>Notation</b></td></tr>';for(var q=
0;2*q<v.length;q++){w+="<tr>";w+='<td style="padding-left:8px; padding-right:8px; padding-top:3px; padding-bottom:3px;">';w+=v[q].valueOf();w+='</td><td style="padding-left:8px; padding-right:8px; padding-top:3px; padding-bottom:3px;">';w+=c(v[q]).toString(u,n);w+="</td>";var F=q+Math.floor(v.length/2);w+='<td style="border:none"> </td>';w+='<td style="padding-left:8px; padding-right:8px; padding-top:3px; padding-bottom:3px;">';w+=v[F].valueOf();w+='</td><td style="padding-left:8px; padding-right:8px; padding-top:3px; padding-bottom:3px;">';
w+=c(v[F]).toString(u,n);w+="</td>";w+="</tr>"}k.innerHTML="<b>Notation description:</b> "+zh[n];y.innerHTML=w+"</table>"}var d=!1,e=La({size:3,title:"Choose large number notation",zb:function(){kB()},onclose:function(){d&&(oB(),pB())}}),f=0;var g=.05;var h=(new G(e.content,0,f,1,f+g)).a;ta(h);f+=g;g=.1;h=(new G(e.content,0,f,1,f+g)).a;f+=g+.02;g=.08;var k=(new G(e.content,.1,f,.8,f+g)).a;f+=1.2*g;g=.25;var l=(new G(e.content,.1,f,.8,f+g)).a;f+=g;var n=Ph;f="Select which notation to use for large numbers.\n\n";
for(g=0;g<lB.length;g++){var p=lB[g];f+=yh[p]+":\n"+zh[p]+"\n\n"}e.title.a.h.title=f;var m=r.qf("select","10%","0%","80%","45%",h);m.title=f;for(g=0;g<lB.length;g++){p=lB[g];var x=r.rf("option",m);x.innerText="notation: "+yh[p];x.title=f}m.onchange=function(){Ph=n=lB[m.selectedIndex];b();d=!0};m.selectedIndex=mB[Ph];m.style.fontSize="100%";var t=r.qf("select","10%","50%","80%","45%",h);for(g=3;6>=g;g++)x=r.rf("option",t),x.innerText="precision: "+g;t.onchange=function(){Qh=u=t.selectedIndex+3;b();
d=!0};t.selectedIndex=Math.min(Math.max(0,Qh-3),4);t.style.fontSize="100%";var y=la("1%","0%","98%","10%",l);y.innerHTML="<b>Examples:</b>";var u=Qh,v=[0,.03,1,7.123456,150,1712.29,1.43489075E7,4294967296,2.048E23,8E29,7.10915E50,2.1065E85,3E303];e=(new G(e.content,.1,.75,.9,.8,1)).a;Ba(e);a(e);C(e,"Choose whether to use roman numbers for upgrade levels, fruit levels, etc... If disabled, roman numbers are still used up to 12, but for higher values switch to decimal.");A(e,z(function(w,q){D.Ac++;0<=
D.Ac&&1>=D.Ac||(D.Ac=0);q(w);oB()},e,a));e.id="numbers_roman";b()}
function qB(){function a(){var g=(new G(b.content,.1,d,.9,d+.06,1)).a;Ba(g);d+=.066;return g}var b=La({title:"Controls"}),d=0;var e=a();var f=function(g){var h="none";1==D.fd?h="weather":2==D.fd?h="tabs":3==D.fd?h="fruit":4==D.fd&&(h="auto-action");g.h.innerText="number keys: "+h};f(e);C(e,"Choose what the keyboard number keys do: nothing, activate weather (1-3), switch game tabs, or switch active fruit slot");A(e,z(function(g,h){D.fd++;4<D.fd&&(D.fd=0);h(g);rB()},e,f));e.id="controls_numbers";e=
a();f=function(g){var h="none";1==D.Cd?h="weather":2==D.Cd?h="tabs":3==D.Cd?h="fruit":4==D.Cd&&(h="auto-action");g.h.innerText="shift+number keys: "+h};f(e);C(e,"Choose what shift + keyboard number keys does: nothing, activate weather (1-3), switch game tabs, or switch active fruit slot");A(e,z(function(g,h){D.Cd++;4<D.Cd&&(D.Cd=0);h(g);rB()},e,f));e.id="controls_numbers_shift";e=a();f=function(g){var h="none";1==D.Fb?h="weather":2==D.Fb?h="tabs":3==D.Fb?h="fruit":4==D.Fb&&(h="auto-action");g.h.innerText=
"bracket keys: "+h};f(e);C(e,"Choose what the [], (), {} or <> keys for previous/next do: nothing, switch game tabs, or switch active fruit slot. There is no difference between the four key pair variations, the different bracket/parenthesis types are supported to have at least one convenient available set of brackets on most international keyboard layouts.");A(e,z(function(g,h){D.Fb++;4<D.Fb&&(D.Fb=0);1==D.Fb&&(D.Fb=2);4==D.Fb&&(D.Fb=0);h(g);rB()},e,f));e.id="controls_brackets"}
function sB(){function a(){var g=(new G(b.content,.1,d,.9,d+.06,1)).a;Ba(g);d+=.066;return g}var b=La({title:"Messages & Sounds"}),d=0;var e=a();var f=function(g){g.h.innerText="fern notification sound: "+(D.Dd[0]?"yes":"no")};f(e);C(e,'Notification "ding" sound when a fern pops up. Whether sound works at all depends on your browser and whether playing media is allowed by the settings. Browsers will only play the sound if the game is in a foreground tab. Browsers also require interaction with the page before they allow playing sounds at all, so sounds may not work after refreshing the page and not clicking anything.');
A(e,z(function(g,h){D.Dd[0]=1*!D.Dd[0];h(g)},e,f));e.id="preferences_fernsound";e=a();f=function(g){g.h.innerText="fullgrown notification sound: "+(D.Dd[1]?"yes":"no")};f(e);C(e,'Notification "ding" sound when crops get fullgrown. Whether sound works at all depends on your browser and whether playing media is allowed by the settings. Browsers will only play the sound if the game is in a foreground tab. Browsers also require interaction with the page before they allow playing sounds at all, so sounds may not work after refreshing the page and not clicking anything.');
A(e,z(function(g,h){D.Dd[1]=1*!D.Dd[1];h(g)},e,f));e.id="preferences_growsound";d+=.03;e=a();f=function(g){g.h.innerText="auto save in message log: "+(D.Ca[0]?"yes":"no")};f(e);C(e,"Show auto save message in the message log. This setting does not stop auto-save from working, it just does so silently.");A(e,z(function(g,h){D.Ca[0]=1*!D.Ca[0];h(g)},e,f));e.id="preferences_savemessages";e=a();f=function(g){g.h.innerText="tree levels in message log: "+(D.Ca[1]?"yes":"no")};f(e);C(e,"Show message log message when tree levels up. If disabled, the message will only appear if tree reached highest level ever.");
A(e,z(function(g,h){D.Ca[1]=1*!D.Ca[1];h(g)},e,f));e.id="preferences_treelevelmessages";e=a();f=function(g){g.h.innerText="upgrades available in message log: "+(D.Ca[2]?"yes":"no")};f(e);C(e,"Show message log message when regular upgrade available. If disabled, the message will still appear for never before seen upgrades.");A(e,z(function(g,h){D.Ca[2]=1*!D.Ca[2];h(g)},e,f));e.id="preferences_upgrademessages";e=a();f=function(g){g.h.innerText="abbreviated help in message log: "+(D.Ca[3]?"yes":"no")};
f(e);C(e,"Show abbreviated versions of help dialog in the message log. If disabled, they still appear if seen the first time ever");A(e,z(function(g,h){D.Ca[3]=1*!D.Ca[3];h(g)},e,f));e.id="preferences_helpmessages";e=a();f=function(g){g.h.innerText="pause/resume in message log: "+(D.Ca[4]?"yes":"no")};f(e);C(e,"Show game paused / resume in message log when pausing/unpausing");A(e,z(function(g,h){D.Ca[4]=1*!D.Ca[4];h(g)},e,f));e.id="preferences_pausemessages";e=a();f=function(g){g.h.innerText="fruit drops in message log: "+
(D.Ca[5]?"yes":"no")};f(e);C(e,"Show message log message when a fruit drops");A(e,z(function(g,h){D.Ca[5]=1*!D.Ca[5];h(g)},e,f));e.id="preferences_fruitdropmessages"}
function tB(){function a(){var g=(new G(b.content,.1,d,.9,d+.06,1)).a;Ba(g);d+=.066;return g}var b=La({title:"Preferences"}),d=0;var e=a();var f=function(g){g.h.innerText="interface theme: "+(2==D.kd?"dark":3==D.kd?"more dark":"light")};f(e);C(e,"Change the interface style");A(e,z(function(g,h){D.kd++;3<D.kd&&(D.kd=1);h(g);rB()},e,f));e.id="preferences_theme";e=a();f=function(g){var h="?";0==D.ic&&(h="none");1==D.ic&&(h="dark");2==D.ic&&(h="light");3==D.ic&&(h="translucent");4==D.ic&&(h="brown");
g.h.innerText="tooltip style: "+h};f(e);C(e,"Change the tooltip style or disable them");A(e,z(function(g,h){D.ic++;4<D.ic&&(D.ic=0);h(g);Qa()},e,f));e.id="preferences_tooltip";e=a();f=function(g){g.h.innerText=D.zg?"side panel: auto":"side panel: off"};f(e);C(e,"Choose whether the side panel with upgrade shortcuts and stats summary may appear or not. If on, the side panel only appears if the window is wide enough.");A(e,z(function(g,h){D.zg=D.zg?0:1;h(g);Qa();uB()},e,f));e.id="preferences_sidepanel";
e=a();f=function(g){g.h.innerText="dialog back buttons: "+(D.Pf?"rightmost":"leftmost")};f(e);C(e,'For dialogs with multiple buttons at the bottom, whether "back"/"cancel" buttons are the rightmost or leftmost of the group');A(e,z(function(g,h){D.Pf=!D.Pf;h(g)},e,f));e.id="preferences_cancelright";d+=.03;e=a();f=function(g){g.h.innerText="save when refreshing tab: "+(D.xg?"yes":"no")};f(e);C(e,'Whether to auto-save when closing or refreshing the browser tab. May not work for closing the entire browser or shutting down computer, do a manual "save now" before those to guarantee keeping the latest state. If off, then the game still auto-saves every few minutes. Toggling this setting will also immediately cause a save.');
A(e,z(function(g,h){D.xg=!D.xg;h(g);vB()},e,f));e.id="preferences_saveonclose";e=a();f=function(g){g.h.innerText="auto store interesting fruit: "+(D.ig?"yes":"no")};f(e);C(e,"Whether to automatically store a fruit of a higher tier or higher season than ever seen. Normally fruits drop to the sacrificial pool automatically and must be manually moved to storage if you want to keep them. Automatically storing only works if there is space, and only if the fruit is of a newer tier than seen before, you must still manually check fruits anyway when trying to find or fuse ones with particular abilities.");
A(e,z(function(g,h){D.ig=!D.ig;h(g);vB()},e,f));e.id="preferences_interestingfruits";d+=.03;e=a();e.h.innerText='reset "never show again" help dialogs';C(e,'Resets the "never show again" of all help dialogs, so you\'ll see them again next time until you disable them individually again.');A(e,function(){La({size:1,ib:function(){D.yd={};Oa();return!0},names:"reset",title:"Reset help"}).content.a.innerHTML='This resets the "never show again" setting of all individual help dialogs. You\'ll get the help dialogs again in the situations that make them appear. You can individually disable them again.'});
e.id="preferences_resethelp";e=a();f=function(g){g.h.innerText="enable help dialogs: "+(D.Ve?"no":"yes")};f(e);C(e,'Whether to enable pop-up help dialogs. Set to no if you consider the dialogs too intrusive. However, if you leave them enabled, you can also always disable individual help dialogs with their "never show again" button, so you can still see new ones, which may be useful to get information about new game mechanics that unlock later.');A(e,z(function(g,h){D.Ve=!D.Ve;h(g);vB()},e,f));e.id=
"preferences_enablehelp";d+=.03;e=a();e.h.innerText="messages & sounds...";C(e,"Message log and sound notifications");A(e,z(function(){sB()},e,f));e.id="preferences_notifications";e=a();e.h.innerText="controls...";C(e,"Change various keyboard controls.");A(e,function(){qB()});e.id="preferences_controls";e=a();e.h.innerText="number format...";C(e,"Change the precision and display type for large numbers.");A(e,function(){nB()});e.id="preferences_number";d+=.03}var gy=!1;
function wB(){gy=!0;var a=La({title:"Player statistics",Ba:!0,icon:md,onclose:function(){gy=!1}}).content.a,b="";0<D.ha&&(b+="<b>Current Run</b><br>");if(0<D.ha||0<D.j)b+='\u2022 tree level: <span class="efStatsValue">'+D.j+"</span><br>";b+='\u2022 start time: <span class="efStatsValue">'+r.Xd(D.pc)+"</span><br>";var d=r.getTime()-D.pc-D.Te;b+='\u2022 duration: <span class="efStatsValue">'+r.I(d)+"</span><br>";var e=R(D.rb);e.Z.v(oz().Z);b+='\u2022 total earned: <span class="efStatsValue">'+e.toString()+
"</span><br>";b+='\u2022 highest resources: <span class="efStatsValue">'+D.Od.toString()+"</span><br>";b+='\u2022 highest production/s: <span class="efStatsValue">'+D.ke.toString()+"</span><br>";b+='\u2022 ferns: <span class="efStatsValue">'+D.Re+"</span><br>";b+='\u2022 planted (permanent): <span class="efStatsValue">'+D.sd+"</span><br>";b+='\u2022 planted (brassica): <span class="efStatsValue">'+D.Ib+"</span><br>";b+='\u2022 crops deleted: <span class="efStatsValue">'+D.Lf+"</span><br>";b+='\u2022 upgrades: <span class="efStatsValue">'+
D.Mf+"</span><br>";0<D.vc&&(b+='\u2022 fruits: <span class="efStatsValue">'+D.Jf+"</span><br>",b+='\u2022 fruit upgrades: <span class="efStatsValue">'+D.Se+"</span><br>");if(0<D.ha||0<D.j)b+='\u2022 weather abilities activated: <span class="efStatsValue">'+D.Pd+"</span><br>";0<D.i[yj].count&&(b+='\u2022 sun ability berry boost, run time, cooldown time, total cycle: <span class="efStatsValue">+'+L(cl())+", "+r.I(mj(120),!0)+'</span>, <span class="efStatsValue">'+r.I(rj(720)-mj(120),!0)+'</span>, <span class="efStatsValue">'+
r.I(rj(720),!0)+"</span><br>");0<D.i[Aj].count&&(b+='\u2022 mist ability mushroom boost, run time, cooldown time, total cycle: <span class="efStatsValue">+'+L(el())+" (-"+L(kh())+" consumption), "+r.I(mj(180),!0)+'</span>, <span class="efStatsValue">'+r.I(rj(1080)-mj(180),!0)+'</span>, <span class="efStatsValue">'+r.I(rj(1080),!0)+"</span><br>");0<D.i[Cj].count&&(b+='\u2022 rainbow ability flower boost, run time, cooldown time, total cycle: <span class="efStatsValue">+'+L(Kl())+", "+r.I(mj(240),!0)+
'</span>, <span class="efStatsValue">'+r.I(rj(1440)-mj(240),!0)+'</span>, <span class="efStatsValue">'+r.I(rj(1440),!0)+"</span><br>");D.qa.c.T(0)&&(b+='\u2022 resin/hour: <span class="efStatsValue">'+tz().toString()+"</span><br>",b+='\u2022 best resin/hour: <span class="efStatsValue">'+D.Lc.c.toString()+", at level "+D.td.c.valueOf()+", at runtime "+r.I(D.ud.c.valueOf(),!0)+"</span><br>");D.qa.G.T(0)&&(b+='\u2022 twigs/hour: <span class="efStatsValue">'+uz().toString()+"</span><br>",b+='\u2022 best twigs/hour: <span class="efStatsValue">'+
D.Lc.G.toString()+", at level "+D.td.G.valueOf()+", at runtime "+r.I(D.ud.G.valueOf(),!0)+"</span><br>");0<D.ha&&(b=b+'<br><b>Total</b><br>\u2022 highest tree level: <span class="efStatsValue">'+(D.Pa+" (before: "+D.Zd+")</span><br>"),b+='\u2022 achievements: <span class="efStatsValue">'+D.Zf+"</span><br>",b+='\u2022 start time: <span class="efStatsValue">'+r.Xd(D.Ub)+"</span><br>",b+='\u2022 duration: <span class="efStatsValue">'+r.I(r.getTime()-D.Ub-D.$d)+"</span><br>",b+='\u2022 total earned: <span class="efStatsValue">'+
D.qa.toString()+"</span><br>",b+='\u2022 highest resources: <span class="efStatsValue">'+D.Jb.toString()+"</span><br>",b+='\u2022 highest production/s: <span class="efStatsValue">'+D.Xf.toString()+"</span><br>",b+='\u2022 highest earned any run: <span class="efStatsValue">'+D.$e.toString()+"</span><br>",b+='\u2022 ferns: <span class="efStatsValue">'+D.dd+"</span><br>",b+='\u2022 planted (permanent): <span class="efStatsValue">'+D.eh+"</span><br>",b+='\u2022 planted (brassica): <span class="efStatsValue">'+
D.hh+"</span><br>",b+='\u2022 crops deleted: <span class="efStatsValue">'+D.gi+"</span><br>",b+='\u2022 upgrades: <span class="efStatsValue">'+D.kh+"</span><br>",0<D.vc&&(b+='\u2022 fruits: <span class="efStatsValue">'+D.vc+"</span><br>",b+='\u2022 fruit upgrades: <span class="efStatsValue">'+D.dh+"</span><br>"),b+='\u2022 weather abilities activated: <span class="efStatsValue">'+D.Yf+"</span><br>",b+='\u2022 season changes seen: <span class="efStatsValue">'+D.ki+"</span><br>",b+='\u2022 fastest run: <span class="efStatsValue">'+
r.I(D.re)+"</span><br>",b+='\u2022 longest run: <span class="efStatsValue">'+r.I(D.ae)+"</span><br>");b+='\u2022 achievements: <span class="efStatsValue">'+D.tf+"</span><br>";b+='\u2022 achievements production bonus: <span class="efStatsValue">+'+L(jh(D.sf,1))+"</span><br>";b+='\u2022 current season: <span class="efStatsValue">'+Qi[Oj()]+"</span><br>";b+='\u2022 spring flower bonus: <span class="efStatsValue">+'+L(jh(Wj(),1))+"</span><br>";86400<=d&&(b+='\u2022 summer berry bonus: <span class="efStatsValue">+'+
L(jh(Xj(),1))+"</span><br>",b+='\u2022 summer mushroom bonus: <span class="efStatsValue">+'+L(jh(Yj(),1))+"</span><br>");172800<=d&&(b+='\u2022 autumn mushroom bonus: <span class="efStatsValue">+'+L(jh(Zj(),1))+"</span><br>",b+='\u2022 autumn berry bonus: <span class="efStatsValue">+'+L(jh(ak(),1))+"</span><br>",b+='\u2022 autumn twigs bonus: <span class="efStatsValue">+'+L(jh(uu(),1))+"</span><br>");259200<=d&&(b+='\u2022 winter harsh conditions malus: <span class="efStatsValue">-'+L(c(1).sub(c(ck)))+
"</span><br>",b+='\u2022 winter tree warmth bonus: <span class="efStatsValue">+'+L(jh(dk(),1))+"</span><br>",b+='\u2022 winter resin bonus: <span class="efStatsValue">+'+L(jh(ou(),1))+"</span><br>");Yk(S)&&(b+='\u2022 berry multiplicity: <span class="efStatsValue">+'+L($k(S))+" per other of same type of max 1 tier difference</span><br>",b+='\u2022 mushroom multiplicity: <span class="efStatsValue">+'+L($k(Si))+" per other of same type of max 1 tier difference</span><br>");Yk(Ti)&&(b+='\u2022 flower multiplicity: <span class="efStatsValue">+'+
L($k(Ti))+" per other of same type of max 1 tier difference</span><br>");Yk(Zi)&&(b+='\u2022 bee multiplicity: <span class="efStatsValue">+'+L($k(Zi))+" per other of same type of max 1 tier difference</span><br>");Yk(Ui)&&(b+='\u2022 stinging multiplicity: <span class="efStatsValue">+'+L($k(Ui))+" per other of same type of max 1 tier difference</span><br>");0<D.gb&&(b+='\u2022 squirrel evolutions: <span class="efStatsValue">'+D.gb+"</span><br>");D.ba[Aq].f&&(b+='\u2022 ethereal mistletoe upgrades completed: <span class="efStatsValue">'+
D.di+"</span><br>",b+='\u2022 ethereal mistletoe upgrades time spent: <span class="efStatsValue">'+r.I(D.bh,!0)+"</span><br>",b+='\u2022 ethereal mistletoe unspent idle time: <span class="efStatsValue">'+r.I(D.Wb,!0)+"</span><br>",b+='\u2022 ethereal mistletoe total idle time: <span class="efStatsValue">'+r.I(D.af,!0)+"</span><br>");b+="<br>";if(0<D.ha){b=b+'<b>Ethereal</b><br>\u2022 ethereal tree level: <span class="efStatsValue">'+(D.J+"</span><br>");b+='\u2022 total resin: <span class="efStatsValue">'+
D.qa.c.toString()+"</span><br>";b+='\u2022 transcensions: <span class="efStatsValue">'+D.ha+"</span><br>";d=Math.min(Math.min(15,D.Fd.length),D.wg.length);if(0<d){b=1==d?b+'\u2022 last transcension level: <span class="efStatsValue">':b+'\u2022 last transcension levels (recent first): <span class="efStatsValue">';for(e=0;e<d;e++){var f=5*D.Fd[D.Fd.length-1-e],g="";g=60>f?c(f).toString(1)+"m":300>f?c(f/60).toString(2)+"h":2880>f?c(f/60).toString(1)+"h":c(f/1440).toString(1)+"d";b+=(0==e?" ":", ")+D.wg[D.wg.length-
1-e]+" ("+g+(D.vg[D.vg.length-1-e]?", C":"")+")"}b+="</span><br>"}b+='\u2022 ethereal crops planted: <span class="efStatsValue">'+D.fh+"</span><br>";b+='\u2022 ethereal crops deleted: <span class="efStatsValue">'+D.jh+"</span><br>";b+="<br>"}qx()&&(b=b+'<b>Infinity</b><br>\u2022 infinity production boost to basic field: <span class="efStatsValue">'+(L(D.Ad)+"</span><br>"),b+='\u2022 infinity crops planted: <span class="efStatsValue">'+D.gh+"</span><br>",b+='\u2022 infinity crops deleted: <span class="efStatsValue">'+
D.hi+"</span><br>",b+="<br>");0<D.ha&&D.Qd&&(b+="<b>Challenges</b><br>",b=D.challenge?b+('\u2022 current challenge: <span class="efStatsValue">'+ma(qp[D.challenge].name)+"</span><br>"):b+'\u2022 current challenge: <span class="efStatsValue">None</span><br>',b+='\u2022 challenges attempted: <span class="efStatsValue">'+(D.ei+(D.challenge?1:0))+"</span><br>",b+='\u2022 challenges unlocked: <span class="efStatsValue">'+D.Qd+"</span><br>",b+='\u2022 challenges completed: <span class="efStatsValue">'+
D.Lg+"</span><br>",D.Lg!=D.Vh&&(b+='\u2022 challenge stages completed: <span class="efStatsValue">'+D.Wh+"</span><br>",b+='\u2022 challenge fully completed: <span class="efStatsValue">'+D.Vh+"</span><br>"),b+='\u2022 total challenge production bonus: <span class="efStatsValue">'+L(D.bc)+"</span><br>",b+="<br>");0<D.ha&&(b=D.challenge?b+"<b>Previous Run (Non-challenge)</b><br>":b+"<b>Previous Run</b><br>",b+='\u2022 tree level: <span class="efStatsValue">'+D.rg+"</span><br>",b+='\u2022 start time: <span class="efStatsValue">'+
r.Xd(D.Gh)+"</span><br>",b+='\u2022 duration: <span class="efStatsValue">'+r.I(D.fc)+"</span><br>",b+='\u2022 total earned: <span class="efStatsValue">'+D.Sc.toString()+"</span><br>",b+='\u2022 highest resources: <span class="efStatsValue">'+D.Fh.toString()+"</span><br>",b+='\u2022 highest production/s: <span class="efStatsValue">'+D.Eh.toString()+"</span><br>",b+='\u2022 ferns: <span class="efStatsValue">'+D.Hi+"</span><br>",b+='\u2022 planted (permanent): <span class="efStatsValue">'+D.Ki+"</span><br>",
b+='\u2022 planted (brassica): <span class="efStatsValue">'+D.Li+"</span><br>",b+='\u2022 crops deleted: <span class="efStatsValue">'+D.Mi+"</span><br>",b+='\u2022 upgrades: <span class="efStatsValue">'+D.Ni+"</span><br>",0<D.vc&&(b+='\u2022 fruits: <span class="efStatsValue">'+D.Ii+"</span><br>",b+='\u2022 fruit upgrades: <span class="efStatsValue">'+D.Ji+"</span><br>"),b+='\u2022 weather abilities activated: <span class="efStatsValue">'+D.Gi+"</span><br>",D.qa.c.T(0)&&(b+='\u2022 resin/hour: <span class="efStatsValue">'+
D.Sc.c.cc(D.fc/3600).toString()+"</span><br>",b+='\u2022 best resin/hour: <span class="efStatsValue">'+D.yf.c.toString()+", at level "+D.wf.c.valueOf()+", at runtime "+r.I(D.xf.c.valueOf())+"</span><br>"),D.qa.G.T(0)&&(b+='\u2022 twigs/hour: <span class="efStatsValue">'+D.Sc.G.cc(D.fc/3600).toString()+"</span><br>",b+='\u2022 best twigs/hour: <span class="efStatsValue">'+D.yf.G.toString()+", at level "+D.wf.G.valueOf()+", at runtime "+r.I(D.xf.G.valueOf())+"</span><br>"),b+="<br>");a.innerHTML=b}
var fy=!1;function xB(){return'Reddit: <a target="_blank" href="https://www.reddit.com/r/etherealfarm/">https://www.reddit.com/r/etherealfarm/</a><br/>Discord: <a target="_blank" href="https://discord.gg/9eaTxXvMT2">https://discord.gg/9eaTxXvMT2</a><br/>Fandom wiki: <a target="_blank" href="https://ethereal-farm.fandom.com/wiki/Ethereal_Farm_Wiki">https://ethereal-farm.fandom.com/wiki/Ethereal_Farm_Wiki</a><br/><br/>'}
function yB(){fy=!0;var a=kc[1];ol(1)&&(a=nc[Math.floor(4*Math.random())]);ol(2)&&(a=qc);ol(3)&&(a=Af[0]);a=La({title:"About",icon:a,onclose:function(){fy=!1},Ba:!0});var b="Ethereal Farm v"+zB();b=b+"<br/><br/>"+xB();a.content.a.innerHTML=b+'Changelog:<br/><br/>0.7.7 (2022-12-24):<br/>\u2022 Added 3 new ethereal crops (for levels 19 and up).<br/>\u2022 Added 5 new infinity crops.<br/>\u2022 Slightly buffed silver infinity flower and bee.<br/>\u2022 Added an achievement for each infinity crop type.<br/>\u2022 Presents containing seeds or spores now reveal this in the tooltip.<br/>\u2022 Added button to swap the contents of the two pages in the blueprint dialog. This affects auto-actions, since they refer to blueprints by number.<br/>\u2022 Added the accidently forgotten hat to automaton and squirrel in ethereal field.<br/>\u2022 Various tweaks and bugfixes.<br/><br/>0.7.6 (2022-12-05):<br/>\u2022 Enabled holiday event, it will activate on december 6th (depending on time zone) and last for 1 month. Presents with random effects will drop!<br/>\u2022 Bugfixes.<br/><br/>0.7.5 (2022-11-27):<br/>\u2022 Added 4 new infinity field crops.<br/>\u2022 Added a new ethereal mistletoe upgrade (requires more evolution).<br/>\u2022 Removed all time restrictions for deleting crops in ethereal field, and ethereal crops have their effect immediately rather than after growing. This is a test, some form of rate-limiting the changing of ethereal crops may come back in the future if this creates strategies that require too much activity.<br/>\u2022 Increased the flower effect of the ethereal spring upgrade from 25% to 33%, and the spring grow speed bonus from 20% to 25%<br/>\u2022 Added "upgraded crop" as a possible automaton action trigger<br/>\u2022 Auto-actions can now also be done manually, assigned to number shortcut keys, and the side panel got a small auto-action configuration button<br/>\u2022 When taking a fern when tree has just been leveling up, it now uses the best time at level from the last few minutes for its computation (when time at level production bonus is unlocked). When e.g. just switching from a seeds to a spores fruit, this was already achievable before by clicking fast enough, but now fern works well for auto actions too.<br/>\u2022 UI tweaks and fixes.<br/><br/>0.7.4 (2022-11-09):<br/>\u2022 Fix timing race condition issue that could cause season jumps during hold season.<br/>\u2022 Added back the season +1 hour amber ability<br/>\u2022 Added "Total resin allocation" stat in the resin info dialog.<br/><br/>0.7.3 (2022-11-08):<br/>\u2022 Added more infinity crops<br/>\u2022 Added new amber ability, "hold season", which holds the same season the entire run.<br/>\u2022 Slight discount for the season -1h amber ability, and removed the +1h one since "hold season" allows the same but better.<br/>\u2022 Time where freely deleting in ethereal field is possible at start of run increased from 10 to 30 minutes.<br/>\u2022 In mixed seed+spore layouts, automaton heuristics will prioritize some flowers intended for mushrooms too now.<br/>\u2022 More infinity seeds related info shown in dialogs, including detailed breakdowns for infinity crops.<br/>\u2022 Added "clear infinity field" button to automaton.<br/><br/>0.7.2 (2022-10-31):<br/>\u2022 Added nut prestige for all the nut crops.<br/>\u2022 Fixed high tier nut medals giving too much bonus compared to other crop achieves.<br/>\u2022 Increased bonus of seeds amount and tree level achieves, which should make up for the decreased nut achievements bonus.<br/>\u2022 The automatic border for named or fused fruits is now more subtle.<br/>\u2022 Improved fruit background color contrast. Reason for the visible change in 0.7.1 is that since this release fruits have the same background color in both dark and light UI themes, and that change was done because some border colors were hard to see against the light UI backgrounds.<br/>\u2022 Various fixes.<br/><br/>0.7.1 (2022-10-30):<br/>\u2022 Added two new infinity field crops.<br/>\u2022 Added "i" shortcut to go to infinity field tab.<br/>\u2022 UI tweaks: viewing pre-evolution squirrel tree, more notations for entering auto-action time, merged two groups of fruit fusing checkboxes, fruit border color tweaks, ...<br/><br/>0.7.0 (2022-10-24):<br/>\u2022 Added the infinity field, a third field tab in the game. This requires ethereal tree 20 to unlock. For this first release, the infinity field has only a single crop, as an initial test of this new feature (which also means it could change). Later more crops will be released.<br/>\u2022 Small tweaks and fixes.<br/><br/>0.6.6 (2022-10-10):<br/>\u2022 Added a halloween event, which unlocks a pumpkin crop that takes 2x2 field spaces, requiring new layouts to use it well. This event will last 1 month.<br/>\u2022 Added a page 2 to the blueprint dialog, doubling the amount of available blueprints. The "p" key is a shortcut to switch pages.<br/>\u2022 Bugfixes.<br/><br/>0.6.5 (2022-09-18):<br/>\u2022 In spring, bees can now diagonally reach flowers (but not in the rockier challenge).<br/>\u2022 Fixed auto-action taking fern before all blueprint templates planted by automaton: it now waits a few seconds before picking up fern.<br/>\u2022 Fixed auto-action select crop dialog not showing already-known crops from previous runs<br/>\u2022 Auto-action triggers can now be re-used if edited and given a condition in the future, e.g. if an auto-action recently triggered 1 hour into the run and you now set it to trigger after 2 hours, it will trigger again at that time.<br/>\u2022 Editing auto-actions to give them a condition in the past (for the current run) will no longer trigger them while or after editing them.<br/>\u2022 Added missing wither challenge stage completion medals (and another new achievement).<br/>\u2022 When having the stormy challenge reward, if auto-action activates weather at start of run, when the weather is not yet unlocked, it\'ll still be setup as the permanent weather.<br/>\u2022 Auto-action time-based trigger can now be entered in the format hours:minutes or hours, rather than minutes (so you can e.g. type 3 or 3:00, instead of 180, for 3 hours).<br/><br/>0.6.4 (2022-09-12):<br/>\u2022 Auto-action can now also activate weather, refresh brassica and take fern. This must be unlocked first with a new stage of the wither challenge.<br/>\u2022 Added a third auto-action slot as reward for another new stage of the wither challenge.<br/>\u2022 There\'s now an auto-action toggle in the side panel.<br/>\u2022 UI tweaks.<br/><br/>0.6.3 (2022-09-04):<br/>\u2022 Automaton auto-action (formerly named auto-blueprint) can now also automatically choose a fruit to switch to.<br/>\u2022 Automaton auto-action can now also use time since start of run as a possible action trigger.<br/>\u2022 Expected total income per second (once all crops are fullgrown) is now shown in the top resource tooltips for seeds, spores and nuts.<br/>\u2022 Rockier challenge completion levels now also shown on its button when choosing challenges, when all rockier cycles have already been done.<br/>\u2022 When importing a blueprint from text, tab characters are now ignored, so importing from a spreadsheet works.<br/><br/>0.6.2 (2022-08-30):<br/>\u2022 The ethereal mistletoe evolution no longer boosts the twigs or resin bonuses. The base value of the twigs and resin bonuses was increased to compensate.<br/><br/>0.6.1 (2022-08-28):<br/>\u2022 In the evolved squirrel upgrade tree, combined the 3 fruit probability upgrades into 2, and changed one into a new upgrade.<br/>\u2022 Added two more ethereal mistletoe upgrades (requiring higher evolution).<br/>\u2022 Pressing the enter key on a button focused with tab now also activates it. Let me know if this causes any issues.<br/>\u2022 Various other tweaks and bugfixes.<br/><br/>0.6.0 (2022-08-20):<br/>\u2022 Added ethereal mistletoe. Only one of this crop can be planted in the ethereal field, and it has upgrades inside that cost time. Unlocks at ethereal tree 15.<br/>\u2022 Added another new high level ethereal crop.<br/>\u2022 Automaton auto-blueprints can now also use unlocked or planted crop types as a trigger condition.<br/>\u2022 Added more truly basic challenge speed achievements<br/>\u2022 Added one more rocks challenge reward stage<br/>\u2022 Added a few more fruit-marking border colors. As a reminder, fruit border colors can be chosen by clicking the fruit icon in the "configure fruit" dialog (marking as favorite).<br/>\u2022 The game now starts with 10 seeds rather than 0 seeds, so a watercress can be planted immediately without collecting ferns in the first playthough.<br/>\u2022 Ferns spawn at regular rate at the start of the game now, rather than sped up.<br/>\u2022 All ethereal ferns give 10x more seeds, e.g. the first one now gives 1000 seeds.<br/>\u2022 Brassica production upgrade now only gives +25% instead of +100% seeds. Only early-game income is briefly affected by this.<br/>\u2022 During the basic and truly basic challenge, as well as any other run other than the first playthrough, the blackberry unlock now becomes visible after a single watercress rather than after 10.<br/>\u2022 Reordered some of the evolved squirrel upgrades near the end.<br/>\u2022 UI tweaks and fixes.<br/><br/>0.5.0 (2022-08-01):<br/>\u2022 Automaton features get unlocked earlier and there\'s a new automation feature too:<br/>&nbsp;&nbsp;1. Auto-plant is now unlocked immediately when getting automaton (at ethereal tree level 1, without a required challenge), instead of auto-choice. Before, auto-plant unlocked only at ethereal tree level 3 with the wither challenge<br/>&nbsp;&nbsp;2. Auto-upgrades and auto-choice now both unlock at ethereal tree level 2, with the no-upgrades challenge.<br/>&nbsp;&nbsp;3. Blackberry challenge now appears at ethereal tree level 3 instead of 4. This means automaton auto-unlock is now available already at ethereal tree level 3.<br/>&nbsp;&nbsp;4. Wither challenge now unlocks at ethereal tree level 5 instead of 3, and unlocks a completely new ability: auto-blueprint override (before it unlocked auto-plant).<br/>\u2022 The new auto-blueprint override ability allows to program the automaton to override the field with a chosen blueprint once a chosen tree level is reached.<br/>\u2022 Challenge target levels tweaked where appropriate, e.g. the second target of the no upgrades challenge got harder, and wither much higher.<br/>\u2022 Blackberry secret, blueberry secret and cranberry secret all unlock one ethereal tree level earlier now.<br/>\u2022 Blueberry secret and cranberry secret now also come with other unlocks (anemone, champignon, ...) already bought rather than just made visible.<br/>\u2022 Resin income from transcensions reduced during the first 10 minutes of the run to prevent resin/hr being higher after 1 minute than rest of the run when not having resin extraction yet.<br/>\u2022 Various other tweaks and fixes.<br/><br/>0.4.0 (2022-07-11):<br/>\u2022 Added squirrel evolution at the end of the squirrel upgrade tree. When purchased, this resets the squirrel tree to a new one with a new mix of new and old upgrades. This makes production initially significantly weaker, but allows getting much stronger than before eventually.<br/>\u2022 Added 4 more tiers of nuts crops.<br/>\u2022 In squirrel UI, simplified the rule used when it reveals the name of the upgrade or shows "???". There are no more red colored chips, only gray for those that aren\'t in reach to buy.<br/>\u2022 Added ctrl+z as shortcut for undo.<br/>\u2022 Fixed lightning bolt after game pause during stormy challenge.<br/>\u2022 Fixed automaton cost configuration dropdowns, which broke by the modal dialogs update.<br/>\u2022 Various other fixes and tweaks.<br/><br/>0.3.5 (2022-06-26):<br/>\u2022 Improved HTML aria annotations of modal dialogs and fruit fusing dialog. It should no longer be possible to access HTML elements that are not part of the currently active dialog.<br/>\u2022 Fixed bug preventing field size change during non-truly basic challenge.<br/><br/>0.3.4 (2022-06-25):<br/>\u2022 Improved HTML aria annotations for automaton dropdowns.<br/><br/>0.3.3 (2022-06-23):<br/>\u2022 Added 2 new ethereal crops and 2 new ethereal upgrades (field size), requires high level ethereal tree to unlock.<br/>\u2022 Ethereal tree now has a dialog to see the things that got unlocked at previous levels.<br/>\u2022 Bugfixes, including a minor fruit fusing dialog bug.<br/><br/>0.3.2 (2022-06-12):<br/>\u2022 When fusing fruits, you can now choose to keep or discard two-star [**] abilities that get transferred, and also change the priority of which abilities get pushed out by the transferred ones. Scroll down in the fuse dialog to see these new controls, but they are only visible if there\'s a two-star [**] ability in the "from"-fruit.<br/>\u2022 Layout and help of the fuse fruit dialog slightly adjusted for clarity.<br/>\u2022 Fusing a fruit that\'s worse than the original is no longer prevented: it\'s easier to learn how fusing works when allowed to see all the possible results.<br/>\u2022 Minor fixes.<br/><br/>0.3.1 (2022-05-24):<br/>\u2022 Fixed sapphire fruit treelevel ability: it scaled up too early and should only start becoming good around tree level 145<br/><br/>0.3.0 (2022-05-22):<br/>\u2022 Added the infernal challenge.<br/>\u2022 Added sapphire fruits. In these, relative importance of some abilities is changed: nettle and mushroom more important, weather less important<br/>\u2022 Seed overload slightly buffed for both amethist and sapphire fruits.<br/>\u2022 Added a first truly basic speed achievement (level 10 in 2.5 hours).<br/>\u2022 When getting automaton, the watercress upgrade is now visible from the start (as a reminder, when not yet having blackberry secret).<br/>\u2022 Tuned automaton plant order heuristics for mushrooms with brassica, and brassica fruit.<br/>\u2022 Typo fixes.<br/><br/>0.2.2 (2022-05-15):<br/>\u2022 Removed the red tutorial arrows, only the goals serve as the tutorial now.<br/><br/>0.2.1 (2022-05-14):<br/>\u2022 Added setting to disable roman numerals (for upgrade and fruit levels). It will still display them up to 12 (XII), but after that it switches to decimal.<br/>\u2022 Renamed the "save on close" setting to "save on refresh tab": this setting only works for closing tabs, but not when closing the entire browser or shutting down computer.<br/>\u2022 The seeds and spores tooltips now also show max amount had so far this run.<br/>\u2022 Tweaks to the early game tutorial.<br/><br/>0.2.0 (2022-05-11):<br/>\u2022 New version number scheme: the middle number now is incremented for changes with significant effect on gameplay (e.g. a new challenge, ...), and the rightmost for smaller tweaks or bugfixes.<br/>\u2022 New shortcuts added: "f" goes to basic field tab, "e" goes to ethereal field tab, in blueprint edit dialog "f" sets blueprint from field, "enter" overrides field with blueprint.<br/>\u2022 Removed the "shortcuts may delete crop" setting, it\'s always allowed now.<br/>\u2022 Added a new tier name and color, amethyst, to get 12 tiers total. There doesn\'t seem to exist a memorable real or fictional gem considered more precious than diamond, so it had to be inserted before sapphire: sapphire fruits now became amethyst.<br/>\u2022 Achievement tier value requirements increased. This is purely cosmetic.<br/>\u2022 Ethereal blueprints now show the resin cost.<br/>\u2022 Ethereal blueprints now get planted with priority around the tree spiraling outwards, to get likely important crops first when there\'s not enough resin.<br/>\u2022 "Clear ethereal field" action is now available in the automaton tab even if the automaton is absent.<br/>\u2022 The time to freely replant ethereal field at start of a run extended to 10 minutes.<br/>\u2022 Tweaks and fixes<br/><br/>0.1.104 (2022-05-02):<br/>\u2022 Ethereal delete tokens have been removed from the game. Instead, the ethereal field can now be freely replanted at the beginning of any run, any time later in the run, and every 2 hours thereafter. Templates can always be freely deleted. To prevent stuck situations, replacing a crop with a squirrel or automaton is always possible if no other free field spots are available.<br/>\u2022 Blueberry secret and cranberry secret now also already buy the unlock upgrade for free (rather than merely make it visible), for clarity and consitency with blackberry secret. They also no longer make unlock clover visible, instead blueberry secret makes unlock anemone immediately visible.<br/>\u2022 Bugfixes.<br/><br/>0.1.103 - Early game balancing (2022-04-27):<br/>\u2022 Added a new bee tier for the basic field.<br/>\u2022 Added achievements for amount of nuts, and more for seeds.<br/>\u2022 The "time at level" bonus is now weighted with the duration of several previous levels.<br/>\u2022 Added goals, an interactive tutorial for the early game, giving direction up to unlocking of automaton. Goal chips appear above the message log.<br/>\u2022 Reduced spore production of mushrooms above champignon by 25% but increased nettle/thistle boost by 25% and made them cheaper to compensate exactly. This makes nettles more interesting during the first run of the game.<br/>\u2022 Mistletoe now unlocks after blackberry instead of after blueberry (still requires the ethereal upgrade), and is cheaper.<br/>\u2022 The first ethereal tree level now costs 72 instead of 144 twigs, and the second 1296 instead of 1728. All others stay the same (powers of 12).<br/>\u2022 Tweaked automaton planting heuristics to prefer berries touching brassica a bit more.<br/>\u2022 Changed some blueprint letter symbols, due some crops having become whole series, and for possible future crop types. The changes are: stinging: S (was: N), bees: Z ("buzz", was: H), squirrel: Q (was: S), nuts: N (was: U)<br/>\u2022 Renamed some in-game names for clarity: old beehive -> "bee nest", new beehive -> "beehive", beehive crop type -> "bee", prickly/nettle crop type -> "stinging", upgrade crop (in field) -> "tier up"<br/>\u2022 Twigs resource display, tree spore requirement and automaton tab appear sooner in early game, for clarity.<br/>\u2022 Bugfixes and UI improvements.<br/><br/>0.1.102 (2022-04-18):<br/>\u2022 Added stormy challenge with perma weather reward.<br/>\u2022 Added 6 new higher level ethereal crops.<br/>\u2022 Added reward level caps to basic and truly basic challenge, and tweaked their bonuses to give more earlier, but diminishing returns later. The caps are very high and not intended to be reached as this takes a long time and rewards are very diminishing at that point.<br/>\u2022 Mushroom boost and nettle boost fruit abilities a bit increased.<br/>\u2022 Shift + click, and shift + number key in blueprint dialog now plants with overriding rather than without (and the ctrl shortcut got deprecated).<br/>\u2022 Reorganized the challenge info dialog in more sections to more easily find rules, goal and rewards between the text.<br/>\u2022 Bugfixes.<br/><br/>0.1.101 (2022-04-16):<br/>\u2022 A new first flower tier, anemone, is now available after blackberry instead of cranberry, much sooner, to improve the early game experience.<br/>\u2022 Lategame flower prices and effects are the same (including prestiged anemone which is what sunflower used to be).<br/>\u2022 In the ethereal field flowers changed names, but the effects are same as before.<br/>\u2022 This causes some achievements (for highest flower tier) to have to be re-earned, sorry for the incovenience.<br/>\u2022 Mushroom and flower achievements give a slightly higher boost.<br/>\u2022 Seeds income now only shows a gray numeric value if more than two thirds of seed production goes to mushrooms (as a warning), and it now shows the potential total production, rather than a negative value.<br/>\u2022 The blueprint dialog now supports shortcut keys 1-9 to select a blueprint.<br/><br/>0.1.100 - Fruity update (2022-04-10):<br/>\u2022 Added sapphire fruits, and new fruit abilities only available from this tier.<br/>\u2022 New fruit mixing type, unlocked by new squirrel upgrade. The original dragon fruit got renamed to star fruit, but behaves exactly the same.<br/>\u2022 Added a few extra fruit storage space upgrades and other ways to get some.<br/>\u2022 Due to UI space reasons, only the first 10 fruit slots can be selected as active now, the others are purely storage.<br/>\u2022 Added a new choice upgrade (resin vs production).<br/>\u2022 Added new crop count achievements.<br/>\u2022 Various other tweaks.<br/><br/>0.1.99 (2022-04-04):<br/>\u2022 New event started! Eggs with random rewards will drop every now and then. It will run throughout April.<br/>\u2022 Changed the graphics of the bee challenge: now it has in order: worker bee, drone, queen bee. This to avoid confusion with the differently functioning main game beehive. The queen also got a crown.<br/>\u2022 Made undeletable challenge a bit harder.<br/>\u2022 Made font sizes more consistent.<br/>\u2022 Fixed fern resource computation in case of growing flowers.<br/>\u2022 Various minor UI tweaks.<br/><br/>0.1.98c (2022-03-27):<br/>\u2022 Increased bonus of some of the resin and other achievements.<br/>\u2022 Crops in the final time units of growing will now already show the final fullgrown image (but still with progress bar).<br/>\u2022 New easier shortcut to transcend without blueprint: "t", "enter".<br/>\u2022 Exporting ethereal blueprint as TXT now inlcudes the tier numbers.<br/>\u2022 Bugfixes<br/><br/>0.1.98 - Balancing and QoL (2022-03-20):<br/>\u2022 Added a new ethereal upgrade.<br/>\u2022 Active weather can now be changed while one is running. This doesn\'t allow multiple at the same time and the use-time of the old one is lost.<br/>\u2022 Fern resources are now computed as if all crops are fullgrown, so clicking a fern is no longer bad if new crops just started growing.<br/>\u2022 In the passive fern choice, ferns that are not taken for a long time now have a chance to become bushy.<br/>\u2022 Added support for ethereal blueprints.<br/>\u2022 Using blueprints no longer requires the automaton to be present, but still requires it to be unlocked.<br/>\u2022 More tree level based achievements and more appropriate bonus values for them.<br/>\u2022 Challenge start button tooltips now mention when challenge was last run (once known).<br/>\u2022 Starting a challenge now also allows starting with blueprint more easily (with shortcuts: "t", "c", choose challenge, "b", choose blueprint).<br/>\u2022 Other UI improvements and bugfixes.<br/><br/>0.1.97 (2022-03-06):<br/>\u2022 All tiers of flowers, mushrooms and berries can now be prestiged.<br/>\u2022 Added two new nut tiers (to keep alphabetic naming order, some tier names have shifted).<br/>\u2022 Added "Plant entire field" option to automaton tab, which plants the same crop on all empty spots.<br/>\u2022 Dark scrollbars for dark mode themes (experimental browser dependent feature).<br/>\u2022 Various small tweaks and fixes.<br/><br/>0.1.96b (2022-02-25):<br/>\u2022 Fixed game balance breaking bugs.<br/><br/>0.1.96 (2022-02-09):<br/>\u2022 Added new fruit tier (rhodium)<br/>\u2022 Tweaks in earliest game: watercress upgrade from 50% to 100%, blackberry unlock needs 10 instead of 5 watercress, red tutorial arrows added.<br/>\u2022 Performance improvements.<br/>\u2022 Bugfixes.<br/><br/>0.1.95 (2022-01-19):<br/>\u2022 One more prestigeable berry added.<br/>\u2022 New ethereal crops and upgrades for ethereal tree level 9 to 12.<br/>\u2022 Holiday event ended.<br/>\u2022 Fixed issue with offline computation and the time based squirrel upgrade, and other bugfixes.<br/><br/>0.1.94 (2021-12-28):<br/>\u2022 Initial version of "prestige" released, a single berry type can be prestiged in this version.<br/>\u2022 Added one more tier of flower.<br/>\u2022 Added two new challenges (one is a harder variation of the other).<br/>\u2022 Added one more completion target level for the rocks challenge.<br/>\u2022 Various small fixes.<br/><br/>0.1.93 (2021-12-17):<br/>\u2022 Holiday event started!<br/>&nbsp;&nbsp;- Presents with random rewards will drop.<br/>&nbsp;&nbsp;- The squirrel and automaton got a festive hat.<br/>&nbsp;&nbsp;- This event will be active for 1 month.<br/>\u2022 Ethereal crop grow times made faster.<br/>\u2022 Other tweaks and fixes.<br/><br/>0.1.92 (2021-12-05):<br/>\u2022 Added one more tier of berry and mushroom. To keep the name order of tiers alphabetical, they are inserted in the place of certain existing crops, so some currently planted crops may have changed name and image. Their stats are the same though.<br/>\u2022 Added three more tiers of nuts.<br/>\u2022 Added eight new squirrel upgrades.<br/>\u2022 Fruit nerf: Creating a dragon fruit now requires two two-seasonal fruits with the same abilities, and a dragon fruit can no longer itself be fused with anything. This makes it more challenging to create it, but is done because it was trivial to make a dragon fruit once having one perfect two-seasonal fruit, making it irrelevant.<br/>\u2022 Fruit buff: The upgrade cost scaling of linear boost fruit abilities is now cheaper. Check your your fruit tab, since you can likely upgrade their abilities significantly. As a reminder: shift+clicking the fruit ability upgrade button will upgrade it multiple times<br/><br/>0.1.91 (2021-11-21):<br/>\u2022 Brassica/watercress winter penalty now removed when next to the tree (but no exception during the wasabi challenge anymore), so useful again during winter<br/>\u2022 Bugfixes and UI tweaks: upgrades in message log setting, wasabi during wither challenge, another \'potential\' income display bugfix, ...<br/>\u2022 Tweaks: new \'gated\' squirrel upgrade connector style, performance tweak related to infinite lifetime wasabi, added overlay text if game is computing multiple seasons after long inactivity...<br/><br/>0.1.90 "Wasabi update" (2021-11-08):<br/>\u2022 Added wasabi, the next tier of watercress, with 25% more copying and lifetime, and a challenge to unlock it.<br/>\u2022 Watercress and wasabi are of type \'brassica\', and now this name is used where \'watercress\' was used before.<br/>\u2022 Brassica are now negatively affected by winter (except during the wasabi challenge), for more seasonal variety.<br/>\u2022 Fruits of high tier dropping in main fruit storage is now a setting (off by default).<br/>\u2022 More ethereal tree achievements added and they give more bonus.<br/>\u2022 A dialog now pops up when the ethereal tree levels up with the list of things it unlocked. This because it was easy to miss its levelup before.<br/>\u2022 UI tweaks and fixes.<br/><br/>0.1.89 (2021-10-24):<br/>\u2022 High-yield watercress choice upgrade now begins at +50% copying bonus but after a while this goes down towards no bonus (it can be refreshed back to 50%), prevously this was a constant +33%. This can get more out of weather+fern combo, but is more active.<br/>\u2022 Sturdy watercress choice upgrade now only gives +50% lifetime duration, but now gives a constant +25% copying bonus. About the nerfed lifetime duration: a later update will add another form of longer duration instead.<br/>\u2022 Buffed the rainbow weather base bonus from 50% to 75%.<br/>\u2022 Added a setting for number key shortcuts: choice of activate weather, change tabs, or change active fruit slot. See main menu -> preferences -> controls.<br/>\u2022 A fruit that\'s of higher tier or season type than ever seen before can now drop in the stored fruits rather than sacrificial pool. And custom-named fruits show their name in the fruit tab when active.<br/>\u2022 Other minor QoL improvements.<br/><br/>0.1.88 (2021-10-10):<br/>\u2022 Ferns at game start now give at minimum the starter resources from ethereal ferns.<br/>\u2022 Added new choice upgrade for watercress.<br/>\u2022 Increased ethereal neighbor bonus from automaton and squirrel in the ethereal field.<br/>\u2022 Ethereal delete tokens revamp to allow more individual crop deletions and more full field replacements per season cycle:<br/>&nbsp;&nbsp;- Gives more ethereal delete tokens per season: 50% of your ethereal field cells, rather than just 2 or 3, and can carry 4x that amount.<br/>&nbsp;&nbsp;- Deleting the entire field now costs as much tokens as all individual deletions, rather than just 4 tokens, and this option is now in the automaton UI.<br/>&nbsp;&nbsp;- The reward for the "undeletable" challenge changed from ethereal token related reward to: more recoup for deleting regular crops<br/>\u2022 Certain bee related achievements now have a more fair requirement.<br/>\u2022 Watercress copying penalty when having 2 watercress reduced, but increased for more than 3 watercress.<br/>\u2022 Various UI tweaks: start-challenge button tooltips, upgrade cost in tooltips, overconsumption display fix if watercress next to mushrooms, ...<br/><br/>0.1.87 (2021-09-19):<br/>\u2022 New ethereal upgrade.<br/>\u2022 New ethereal crops. Includes bees.<br/>\u2022 Fruit tab color now hints when a non-production fruit is active.<br/>\u2022 Cosmetic tweaks.<br/><br/>0.1.86b (2021-08-28):<br/>\u2022 Fixed issue with the soft cap of grow times, so that early grow speed upgrades affect all plants at least some visible amount.<br/><br/>0.1.86 (2021-08-25):<br/>\u2022 Balanced flower upgrade costs to keep later tiers relevant.<br/>\u2022 Increased boost of squirrel upgrades for flower boost, berry boost and mushroom boost.<br/>\u2022 Fixed bug where time that resin fruit was active wasn\'t taken into account. Its bonus is supposed to only work depending on how long it was active during the last tree-level.<br/>\u2022 Ferns now give resources based on the current income when you click, rather than when they spawned or when they internally refreshed.<br/>\u2022 Resource multiplier of extra bushy ferns decreased, except for very early game. To compensate, extra bushy ferns now give a small amount of resin (0.5% of highest run for 2-minute ones). This resin itself is not counted for highest run stat, and not included in the /hr stats, but otherwise given as upcoming resin as usual.<br/>\u2022 Improved automaton heuristic for choosing which flowers to plant/upgrade first in the field, taking the other boosts of berries into account.<br/>\u2022 Bugfixes, performance improvements and other tweaks.<br/><br/>0.1.85 (2021-08-17):<br/>\u2022 Added two more tiers of nut crops<br/>\u2022 Decreased grow times of mushrooms, flowers and nuts<br/>\u2022 Wither challenge now allows using blueprints, after a new third stage of it is completed.<br/>\u2022 In the transcend dialog, shortcut key "c" added to open challenge dialog.<br/>\u2022 Other small tweaks, fixes and a performance improvement.<br/><br/>0.1.84 (2021-07-30):<br/>\u2022 Added the thistle challenge and thistle crop (next-tier nettle). Requires shiitake and tree level 66<br/>\u2022 Increased squirrel upgrade strength for the berry, mushroom, flower, bee and nettle boosts, as well as the essence boost.<br/>\u2022 Buffed weather fruit effect on the sun ability.<br/>\u2022 Fixed rightmost fruit sometimes clipped off-screen on mobile, and other fixes.<br/><br/>0.1.83 (2021-07-23):<br/>\u2022 Next fruit tier, platinum fruit, added, it has a chance to drop starting from tree level 75.<br/>\u2022 Fusing multi-season fruits with a matching single-seasonal fruit now keeps the result multi-seasonal.<br/>\u2022 Increased the achievement bonus for planting X amount of higher tier crops.<br/>\u2022 Grow speed fruit effect difference per tier made larger.<br/>\u2022 Improved "Current challenge info" dialog, with clearer old and new challenge production bonus display.<br/>\u2022 Fruit drop messages can now be disabled in the preferences.<br/>\u2022 Various other tweaks and fixes.<br/><br/>0.1.82 (2021-07-11):<br/>\u2022 1% of the challenges production bonus now also applies to resin and twigs income.<br/><br/>0.1.81 (2021-07-09):<br/>\u2022 Crops in the process of growing now count as 100% for multiplicity. This allows to change multiplicity layout without waiting for grow times.<br/>\u2022 The tree now drops a fruit every 5 levels rather than every 10 levels.<br/>\u2022 The description of the fruit grow speed ability now shows that it applies before any other reductions: the percentage value was lowered compared to 0.1.79, but back then it applied only after other reductions (to a smaller value) so this didn\'t actually decrease its power.<br/><br/>0.1.80 (2021-07-07):<br/>\u2022 Balancing to ensure getting best resin/hr after not too short runtimes:<br/>&nbsp;&nbsp;- tweaked growtime of early vs late tier crops<br/>&nbsp;&nbsp;- higher tier mushrooms now give more spores per seed rather than less spores per seed, this is a buff<br/>\u2022 Various other tweaks and fixes<br/><br/>0.1.79 (2021-06-20):<br/>\u2022 Added new ethereal upgrades, at levels 5 and 6.<br/>\u2022 Tweaked upgrade prices of berries and mushrooms so that they can\'t be cheaper than the next tier crop for the same production. This formula change makes them cheaper for lower tier crops but more expensive for higher. The new ethereal upgrades more than make up for this.<br/>\u2022 UI tweaks and fixes<br/><br/>0.1.78 (2021-06-11):<br/>\u2022 Reworked second part of the squirrel upgrade tree, replaced seasonal upgrades with new, different, ones. This solves unintended need for squirrel respeccing per season.<br/>\u2022 Free squirrel respec token for those who reached that part of the squirrel upgrades, due to those changes<br/>\u2022 It\'s now possible to do many squirrel upgrades in 1 click after respec (shift+click or new button after clicking the icon)<br/>\u2022 Turned the removed seasonal squirrel upgrades into 4 new ethereal upgrades.<br/>\u2022 Made the ethereal crops and upgrades from the previous update cheaper, and refunded the difference.<br/>\u2022 Added fifth nuts crop tier.<br/>\u2022 Added achievements for 40 crops (these do not work retroactively).<br/>\u2022 Added runtime to the best resin/hr and twigs/hr stats.<br/>\u2022 Bugfixes and UI style tweaks.<br/><br/>0.1.77 (2021-06-06):<br/>\u2022 Added new ethereal crops and upgrade (a new field size).<br/>\u2022 Added season shorten/lengthen amber abilities.<br/>\u2022 Tweaks and fixes.<br/><br/>0.1.76 (2021-06-03):<br/>\u2022 Added new ethereal crops.<br/>\u2022 Multi-season fruits now also give a slightly higher boost than the standard counterparts.<br/>\u2022 Added fourth nut crop tier.<br/>\u2022 UI style tweaks.<br/><br/>0.1.75 "Squirrel update part 2" (2021-05-29):<br/>\u2022 Added 20 new squirrel upgrades. Free respec token given so you can respec if desired<br/>\u2022 Added a third nut tier, and renamed tiers, the tiers are now: acorn, almond, brazil nut.<br/>\u2022 Tweaked the nuts cost and production to allow more squirrel upgrades: higher tiers are more expensive, but produce even more, and upgrades do more, so there is a better nuts/spores ratio. Due to the new higher cost and power of higher tiers, in older saves nuts crops are replaced by acorn.<br/>\u2022 Fruit fusing now auto-levels abilities after fusing and spends essence on this, but it never levels them higher than before fusing and leaves some essence available if a new unupgraded ability was added<br/>\u2022 Added ability to override field with blueprint (rather than not touch existing crops), using shift+click on the "To Field" button. Matching crops will be kept, but non matching ones replaced.<br/><br/>0.1.74 "Squirrel update" (2021-05-24):<br/>\u2022 Added squirrel, nuts resource and nuts crops (unlocks at ethereal tree level 5).<br/>\u2022 Added amber resource and amber processor.<br/>\u2022 Added a prelimenary small set of squirrel upgrades and amber effects to test-run the feature for now, next releases will add more content: more nut crops tiers, squirrel tech tree with interesting choices reaching beyond the nuts production limits.<br/>\u2022 Made the colors of spring and summer more easily distinguishable from each other.<br/><br/>0.1.73 (2021-05-20):<br/>\u2022 Bugfixes.<br/>\u2022 More internal changes for next update.<br/><br/>0.1.72 (2021-05-15):<br/>\u2022 Paused state is now saved in savegames.<br/>\u2022 Many internal changes for the next update, not visible or usable at this time.<br/><br/>0.1.71 (2021-05-09):<br/>\u2022 Added a pause button. Pause halts all progress, including seasons.<br/>\u2022 Various fixes, including beehive in winter accidently too low.<br/>\u2022 Development on next major feature is under way.<br/><br/>0.1.70 (2021-05-07):<br/>\u2022 The default location of back/cancel buttons in dialogs is now rightmost instead of leftmost if there are multiple bottom buttons. You can get back the original behavior in the preferences. Reason: with rightmost enabled, back buttons align, preventing accidental transcend or other action clicks when closing multiple dialogs in a row.<br/>\u2022 Various fixes<br/><br/>0.1.69 (2021-05-06):<br/>\u2022 Rockier challenge now keeps max level of each of the 5 maps separately, and gives separate bonus for each<br/>\u2022 Challenge highest level bonus now scales better for higher levels: instead of fixed bonus per level, it gives bonus per level^1.1<br/>\u2022 Replaced blueprint ctrl+shift shortcut by a new transcend-with-blueprint dialog. The fastest shortcut to transcend with blueprint is now: "t", then "b", then click chosen blueprint.<br/>\u2022 Bronze fruits are now only introduced at tree level 15, and silver at 25. Later level fruit drop rates are not affected by this change.<br/><br/>0.1.68 (2021-05-01):<br/>\u2022 Added rockier challenge (unlocks at high enough tree level)<br/>\u2022 Added the multiplicity mechanism, a bonus based on amount of crops, as reward of rockier challenge<br/>\u2022 Automaton now chooses good spots first for next auto-plant, rather than go from top to bottom<br/>\u2022 Added season effect stats to player stats dialog, and other UI tweaks<br/><br/>0.1.67 (2021-04-29):<br/>\u2022 Fruits of different types can be fused again (e.g. pineapple with pear), but the result will always be an apple. So fusing a perfect seasonal fruit is still rare, but you can use them for fusing regular fruits if desired.<br/>\u2022 Fruits now remember the random free starting levels of abilities. Fusing can now also preserve these, if two abilities are fused the result is between the two values.<br/>\u2022 The first mistletoe no longer reduces resin income or tree leveling speed. Second and higher mistletoes still do.<br/>\u2022 Bugfixes and tweaks.<br/><br/>0.1.66 (2021-04-26):<br/>\u2022 Automaton in ethereal field now gives a boost to 8 neighbors, similar to the lotus 4-neighbor boost but as its own separate multiplier.<br/>\u2022 You can now delete the entire ethereal field for 4 ethereal delete tokens.<br/>\u2022 Added some missing challenge achievements.<br/><br/>0.1.65 (2021-04-25):<br/>\u2022 New ethereal upgrades at levels 4 and 5 (ethereal berry and mushroom upgrade, ethereal field 7x6, fruit slot)<br/>\u2022 New ethereal crop (morel)<br/>\u2022 If fern left for a long time, will update its internal resources if higher. This does not benefit active play, time interval is at least as long as waiting for a new fern.<br/>\u2022 Added more stages to the rocks challenge handing out more fruit slots.<br/>\u2022 Fruits can now only be fused with others of the same type (pineapple with pineapple, ...). It\'s still easier than before fusing was introduced, when it was 100% RNG based.<br/>\u2022 Having more mistletoes affects reduces resin income more, making the choice between resin and twigs focus sharper.<br/>\u2022 Show the % bonuses given by weather abilities in various messages and windows.<br/>\u2022 Log message tooltips now also show in-game time and tree level.<br/>\u2022 More settings to disable certain log messages are added (nested under "preferences").<br/><br/>0.1.64 (2021-04-18):<br/>\u2022 Removed the Transcension II, Transcension III, etc... system (which multiplied resin and twigs by floor(tree level / 10)).<br/>\u2022 Instead, increased the base of exponentiation of resin and twigs per tree level to compensate the above. The curves have been kept as similar as possible, for levels above 45 this starts being an exponentially increasing buff<br/>\u2022 Added an alternative dark theme<br/><br/>0.1.63 (2021-04-17):<br/>\u2022 Templates now also supported in ethereal field, but not blueprints<br/>\u2022 Upgrade-crop actions and shortcuts now also work in the ethereal field<br/>\u2022 Fixed autumn increasing mushroom seed consumption while its description says it shouldn\'t<br/>\u2022 You can now ctrl+shift+click a blueprint to transcend and plant that blueprint in one go<br/>\u2022 Other small tweaks and fixes<br/><br/>0.1.62 (2021-04-13):<br/>\u2022 Mistletoe now already works while it\'s growing. This prevents issues where tree levels up before mistletoes ready when automaton plants mushrooms<br/>\u2022 The wither challenge was made of comparable difficulty as before 0.1.61 again: the production curve of withering crops tweaked to lose a bit less production initially<br/>\u2022 Resin and twigs per hour, and best per hour, stats in the top info panel.<br/>\u2022 Pressing ctrl or shift now hides tooltips.<br/>\u2022 New shortcuts: "p" picks (selects) crop under mouse cursor, or plants it on empty tile, "u" upgrades crop or blueprint template under mouse cursor, "d" deletes crop under mouse cursor. None of these requires clicking mouse button itself, and key can be held down to keep repeating the action while mouse is moved.<br/>\u2022 Added setting to disable "auto-saved" message in the log.<br/>\u2022 Now, shift+click on top-bar watercress button plants entire field full of watercress, and ctrl+click on it deletes all watercress.<br/><br/>0.1.61 (2021-04-11):<br/>\u2022 Added new ethereal upgrades for ethereal tree levels 1-3: twigs gain, blueberry secret, cranberry secret.<br/>\u2022 Berries, flowers, mushrooms, etc... now already give partial production or boost while growing.<br/>\u2022 The wither challenge got more challenging: withering now also reduces boost of flowers, nettles and beehives.<br/>\u2022 Small UI fixes and tweaks.<br/><br/>0.1.60 (2021-04-10):<br/>\u2022 Added the ability to fuse fruits, this allows adding an ability of choice to a fruit if you can collect 3 fruits with that ability. Full explanation is in fruit help.<br/>\u2022 Added ability to name blueprints<br/><br/>0.1.59 (2021-04-05):<br/>\u2022 Made blueprint watercress work and added placeable template for watercress<br/>\u2022 Added "upgrade crop" button to crop dialog, which does roughly the same as ctrl+shift+clicking it<br/>\u2022 Fruits can now be drag and dropped between slots<br/>\u2022 When no crops fullgrown yet, automaton will now upgrade blueprint to berry if can afford it even if cost limit % option is enabled (except if at 0%), to allow fast startup, as those cost limiting settings are normally used for later in a run only<br/><br/>0.1.58 (2021-04-04):<br/>\u2022 Added blueprint library, available as soon as automaton and templates are available.<br/>\u2022 Blueprint screen is accessed by clicking the tree, or pressing the "b" shortcut.<br/>\u2022 Decreased probability of two-tier lower fruits at higher tree levels.<br/>\u2022 Added shortcut keys for selecting next/previous active fruit using [ and ] (and a few alternatives).<br/>\u2022 Added shortcut key for transcend (t).<br/>\u2022 Added a "delete entire field" button to automaton that deletes all crops.<br/>\u2022 No longer uses up ethereal token when using "replace crop" in ethereal field to replace a crop with the same type.<br/><br/>0.1.57 (2021-04-03):<br/>\u2022 Added cost limit to the advanced automaton auto-unlock settings. Allows stopping auto-unlock when a crop of choice is reached.<br/>\u2022 Added 0.01%, 0.02% and 0.05% options to all percentage automaton settings.<br/>\u2022 Fruits can now be given a custom name.<br/>\u2022 Active fruit selection now works with arrows rather than a separate slot.<br/>\u2022 Added optional notification sounds in the preferences. This feature is experimental and may be removed again, because web browsers are restrictive about sound: it doesn\'t work in background tabs due to background tab pausing, doesn\'t work unless interaction with page happened, and may not work depending on other permissions.<br/><br/>0.1.56 (2021-04-02):<br/>\u2022 Added templates, which are placeholders for crop types. They do nothing but allow planning the field layout.<br/>\u2022 Templates are a new early automaton feature, unlocked immediately along with the existing automation of choice upgrades<br/>\u2022 Templates can be turned into an actual crop using ctrl+shift+click once a crop of that type is unlocked<br/>\u2022 Templates can be auto-planted by the automaton once auto-plant is available, this allows full run automation from the start<br/>\u2022 Templates are placed individually. Full-field blueprint collections are a planned feature for later<br/>\u2022 Templates are disabled during certain challenges<br/>\u2022 Lowered target level for the blackberry challenge<br/><br/>0.1.55 (2021-04-01):<br/>\u2022 Made the balancing changes of 0.1.54 milder. Depending on which state in the game, this means less extreme nerfs or less extreme buffs<br/>\u2022 Increases the effect of the resin extraction and trigs extraction upgrades, giving more resin and twigs at earlier tree level when at high enough stage of the game, to compensate for nerfs from the balance change<br/><br/>0.1.54 (2021-04-01):<br/>\u2022 Balancing of berries and mushrooms to fix issue where higher tier ones became less worth the resources<br/>\u2022 Berry and mushroom upgrades prices get a very gradual additional more-than-exponential cost increase, a soft cap to solve the above problem<br/>\u2022 To compensate, a few other stats were buffed: beehive upgrades, nettle upgrades, treelevel production bonus, and ethereal upgrade for treelevel production bonus all became slightly better than linear<br/>\u2022 Added new large number display options: hybrid with scientific instead of engineering notation<br/><br/>0.1.53 (2021-03-28):<br/>\u2022 Ethereal season upgrades now also give some mushroom benefit to summer and some berry benefit to autumn<br/>\u2022 Winter tweaks: more winter warmth base, winter warmth increases mushroom consumption, beehives affected by cold<br/>\u2022 Transcenscion now gives an additional percentage of resin and twigs, based on how many spores towards next level collected<br/>\u2022 Time countdowns now show ceil of time rather than floor and fractional seconds, and other UI tweaks<br/><br/>0.1.51 (2021-03-27):<br/>\u2022 Allow separate configuration for auto-unlock prices and auto-plant prices<br/>\u2022 Various tweaks<br/><br/>0.1.50 (2021-03-26):<br/>\u2022 Added auto-unlock for automaton, requires high enough ethereal tree and another new challenge<br/>\u2022 Added the blackberry challenge<br/>\u2022 Added ctrl+shift+click plant actions, see shortcut help dialog for info<br/>\u2022 UI tweaks<br/><br/>0.1.49 (2021-03-20):<br/>\u2022 Bugfixes<br/><br/>0.1.48 (2021-03-20):<br/>\u2022 Added auto-plant for automaton, which auto-replaces crops with better versions. Requires high enough ethereal tree and completing a new challenge to unlock<br/>\u2022 Added wither challenge<br/>\u2022 There is no auto-unlock yet (which is needed to fully automate a run), that is planned for a future version but it\'s useful to already release auto-plant now even without auto-unlock.<br/>\u2022 Fixed issue that made upgrade buttons sometimes unresponsive while automaton is doing upgrades even when having more than enough resources<br/><br/>0.1.47 (2021-03-16):<br/>\u2022 Challenge production bonus now also applies to mushrooms, significantly boosting spores output<br/>\u2022 Ethereal mushroom boost also boosts consumption now, ethereal nettles buffed a bit to compensate<br/>\u2022 Season effect rebalancing to fix the winter imbalance: before, winter scaled quadratically while other seasons only linearly with ethereal upgrades. After, all scale by n^1.25 instead.<br/>\u2022 Winter warmth now only boosts berries and mushrooms (since boosting flowers too is what made it quadratic)<br/>\u2022 Clarified in tooltip that lotus also boosts ethereal nettles<br/>\u2022 Various small UI improvements<br/><br/>0.1.46 (2021-03-14):<br/>\u2022 Bugfixes related to update timing and automaton computation.<br/>\u2022 Internal changes in preparation for future auto-plant feature (not yet finished).<br/>\u2022 Buttons to start challenges now show max reached level.<br/><br/>0.1.45 (2021-03-11):<br/>\u2022 It\'s now possible to replace crops with shift+click. Deleting is now done with ctrl+click on a crop instead.<br/>\u2022 Last unlocked crop is now also set for shift+plant.<br/>\u2022 Automatic upgrades are now only done for best type of a crop in the field. This prevents spending resources on obsolete upgrades.<br/><br/>0.1.44 (2021-03-08):<br/>\u2022 Added more ethereal crops<br/>\u2022 Added next tiers of basic crops<br/>\u2022 Re-ordered some crop names. This has no effect on stats of current games, only visual/naming. This to keep the alphabetical tier ordering after inserting new ones, noting that amanita is sorted as "muscaria"<br/>\u2022 Some crop graphics redrawn, e.g. daisy for visible contrast in winter<br/>\u2022 Auto-upgrades no longer store undo<br/>\u2022 Various fixes<br/><br/>0.1.43 (2021-03-07):<br/>\u2022 Added a second stage to the no-upgrades challenge<br/>\u2022 Added more finetuning settings for auto-upgrades, unlocked by the new stage<br/>\u2022 Many other small tweaks<br/><br/>0.1.42 (2021-03-06):<br/>\u2022 Added auto-upgrade to the automaton, requires high enough ethereal tree level and a challenge to become available<br/>\u2022 Added the no-upgrades challenge<br/>\u2022 New fruits now appear in sacrificial slots rather than storage or active slots, except the first one ever<br/>\u2022 Fix tree level-up computation during long time intervals<br/>\u2022 Other tweaks and fixes<br/><br/>0.1.41 (2021-03-01):<br/>\u2022 Added the undeletable challenge<br/>\u2022 Increased rocks challenge reward target level from 12 to 15 (nothing changes if you already got it)<br/>\u2022 Crops that depend on planting a specific crop (nettle, mistletoe and beehive) now also unlock when next higher berry is unlocked<br/>\u2022 Clicking the text "stored fruits" in fruit tab now shows where you got each slot from<br/><br/>0.1.40 (2021-02-27):<br/>\u2022 Added automaton. Can automate the choice upgrades. More features planned for later game versions<br/>\u2022 Fixed high level flower boost accidently set too low<br/>\u2022 Various tweaks and fixes<br/><br/>0.1.39 (2021-02-25):<br/>\u2022 Added two more obtainable fruit storage slots, when seeing 1 or all seasonal fruits dropped for the first time (for existing saves, this starts from 0)<br/>\u2022 Various tweaks and fixes<br/><br/>0.1.38 (2021-02-22):<br/>\u2022 Increased twigs tree level multiplier, decreased starting value to compensate: higher tree levels now give more twigs.<br/>\u2022 Season effect balancing: spring and summer should be competitive now.<br/>\u2022 Ethereal season upgrades improved and should now have same relative strength for each season.<br/>\u2022 Other minor tweaks & fixes.<br/><br/>0.1.37 (2021-02-20):<br/>\u2022 Added new high level ethereal upgrades.<br/>\u2022 Added a new high level ethereal crop.<br/>\u2022 Other balance changes.<br/>\u2022 Added icons indicating what shift/ctrl click on field will do.<br/>\u2022 Changed spring leaves color into blossom color.<br/>\u2022 Other UI tweaks<br/><br/>0.1.36 (2021-02-16):<br/>\u2022 Twigs now receive the 2x, 3x, ... higher transcenscion bonus like resin does.<br/>\u2022 Twigs gain reduced for lower tree levels, but when reaching tree level 20+ this update is a net win.<br/>\u2022 Twigs are now given at transcension rather than immediately.<br/>\u2022 Rocks challenge now also gives twigs.<br/><br/>0.1.35 (2021-02-14):<br/>\u2022 Added electrum and gold tier fruits. Electrum starts having a chance to drop at level 35.<br/>\u2022 Added seasonal fruits with extra inherent seasonal ability, can drop with lower probability then regular fruits.<br/><br/>0.1.34 (2021-02-13):<br/>\u2022 Added next higher level crop types for berry, mushroom and flower.<br/>\u2022 Autumn mushroom boost increased, and now also boosts mistletoe twigs.<br/>\u2022 Buffed the ethereal grow speed upgrade.<br/>\u2022 Made more clearly defined colors for the metal tiers (used in medals, fruits, ...).<br/>\u2022 HTML ARIA annotation improvements.<br/><br/>0.1.33 (2021-02-08):<br/>\u2022 Some challenges can have tree resin, fruit and/or twigs drop now.<br/>\u2022 Side panel upgrade tooltips now also show cost and growtime of the related plant itself.<br/>\u2022 Other UI tweaks.<br/><br/>0.1.32 (2021-02-07):<br/>\u2022 Added the "rocks" challenge, available at tree level 15.<br/>\u2022 Added ethereal upgrades for fruit slots.<br/>\u2022 Other balancing.<br/><br/>0.1.31 (2021-02-07):<br/>\u2022 Changed fern boost fruit ability into nettle boost.<br/>\u2022 Brought back the "refund for still growing plant" and made achievements based on fullgrown plants again: it turns out the QoL of this feature was more important.<br/>\u2022 Added a side panel with extra info and shortcut upgrade buttons. This only appears if the screen is wide enough.<br/>\u2022 Other UI tweaks.<br/><br/>0.1.30 (2021-02-06):<br/>\u2022 Removed the "refund still growing plant" feature since it allowed some achievement related abuse. Use the undo button instead.<br/>\u2022 Tweaked the undo button: min time between saving undo now 10 seconds instead of 1 minute (lose less work when using undo, use export save for longer term things).<br/>\u2022 Balancing changes (mostly slight buffs).<br/>\u2022 Fix issues related to playing on multiple computers with different UTC time set.<br/>\u2022 Various bee challenge bugfixes and tweaks.<br/>\u2022 Mushrooms now try to consume all resources of private berry before berries shared with other mushrooms.<br/><br/>0.1.29 "Bee update" (2021-02-06):<br/>\u2022 Added the bee challenge, which unlocks when planting a daisy (third tier flower, so it requires significant progress in the game to reach).<br/>\u2022 Added beehives, only available after successfully completing the bee challenge.<br/>\u2022 Since the necessary logic for challenges in general is added to the game for this, more will be added later.<br/><br/>0.1.28 (2021-02-03):<br/>\u2022 Fixed a bug with the previous runs level/time statistics.<br/>\u2022 Various other UI tweaks and fixes.<br/>\u2022 A larger update (bees) is coming soon, still work in progress.<br/><br/>0.1.27 (2021-01-29):<br/>\u2022 Changed fruit weather cooldown ability into weather boost.<br/>\u2022 Fixed issue with ethreal grow speed upgrade soft capping, now it should no longer accidently increase some times.<br/>\u2022 Various UI fixes.<br/><br/>0.1.26 (2021-01-28):<br/>\u2022 Minor numerical and UI fixes.<br/><br/>0.1.25 (2021-01-27):<br/>\u2022 Fixed a minor exploit with ferns.<br/>\u2022 Removed support for savegames before 0.1.7, a very old version that normally isn\'t in use anywhere anymore but added complexity to the codebase to support.<br/><br/>0.1.24 (2021-01-26):<br/>\u2022 Renamed watercress "leech" to "copy". It\'s still the exact same effect, but the name copy is more clear, since it is a strictly positive effect.<br/>\u2022 Increased weather cooldown, growth speed and mushroom economy effects of fruits.<br/>\u2022 "w" keyboard shortcut now also replants existing watercress.<br/>\u2022 More UI tweaks and fixes.<br/><br/>0.1.23 (2021-01-24):<br/>\u2022 UI tweaks and fixes.<br/><br/>0.1.22 (2021-01-24):<br/>\u2022 Added dark mode UI. Option available under preferences.<br/>\u2022 Added support for CSS stylesheets for this.<br/>\u2022 Made all unlocked dynamic in-game help dialogs available in the main help from the settings. More appear as more get unlocked during the game progression.<br/><br/>0.1.21 (2021-01-24):<br/>\u2022 Added achievements chips when new achievement unlocked.<br/>\u2022 Other related UI tweaks: latin number tweaks, tooltip infos<br/><br/>0.1.20 (2021-01-23):<br/>\u2022 New mechanic: mistletoes, twigs resource and ethereal tree leveling.<br/>\u2022 Added new ethereal upgrades and crops, both first-tier and higher ethereal-tree-level-tier ones.<br/>\u2022 Made ethereal season upgrades cheaper (2x instead of 10x cost scaling).<br/>\u2022 Increased ethereal blackberry and champignon boosts from 20% to 25%.<br/>\u2022 Other balance tweaks: more medal bonuses, higher level plants tweaked, ...<br/>\u2022 Renamed "fog ability" to "mist ability".<br/>\u2022 Added help dialog system plus preferences for this<br/><br/>0.1.19 (2021-01-17):<br/>\u2022 Improved winter: still has the harsh effect, but also has positive effect for crops next to tree ("winter tree warmth"), and makes the tree produce more resin when it levels up.<br/>\u2022 Ethereal winter upgrade now more useful: also upgrades those positive winter effects.<br/>\u2022 Added more info about season effects to the dialog gotten from clicking the time/season indicator.<br/><br/>0.1.18 (2021-01-17):<br/>\u2022 Increased starter resources of ethereal fern.<br/>\u2022 Fixed bugs related to leeching and transcension II.<br/><br/>0.1.17 "Fruit update" (2021-01-16):<br/>\u2022 Added fruits.<br/>\u2022 Only one weather ability can be active at the same time now.<br/><br/>0.1.16 (2021-01-09):<br/>\u2022 Added ethereal lotus. Lotus now boosts ethereal neighbors, while clover boosts basic flowers.<br/>\u2022 Added more ethereal upgrades<br/>\u2022 Added more achievements<br/>\u2022 Ethereal mushroom bonus improved: no longer increases consumption.<br/>\u2022 Leeching watercress now leaves a "ghost" remainder when it disappears. No effect, visual reminder of leech spot only.<br/>\u2022 Spore costs and production inflated times 6.66666, no actual consequence other than display, to avoid values with very small exponent with first mushroom.<br/><br/>0.1.15 (2021-01-08):<br/>\u2022 Swapped fog and sun ability (sun is now unlocked first).<br/>\u2022 Improve UI of "choice" upgrades to be single upgrade with a choice dialog<br/>\u2022 Increased unused resin bonus 10x<br/>\u2022 Increased amount of starter resources from ethereal fern and made it scale quadratically<br/>\u2022 Can now only delete new ethereal crops after next transcension<br/>\u2022 Bugfixes<br/><br/>0.1.14 (2020-12-30):<br/>\u2022 Ethereal crops now give 100% resin back on delete, but require ethereal deletion tokens.<br/>\u2022 Buffed watercress to have a more meaningful upgrade for the early game experience.<br/>\u2022 Added a few more achievements.<br/><br/>0.1.13 (2020-12-30):<br/>\u2022 Mushrooms now only get seeds from neighbors, so they can\'t produce spores if they don\'t have berries as neighbors in the field.<br/>\u2022 The global overconsumption system has been removed since this now takes place locally amongst groups of mushroom/berry neighbors.<br/>\u2022 Nettles now also negatively affect neighboring flowers, instead of only berries.<br/>\u2022 Leech effect takes the extra seeds consumption through the mushrooms neighboring producers.<br/>\u2022 Internal field production algorithm updated to support the neighbor-based consumption/production effects.<br/>\u2022 Trees still consume spores globally, mushrooms are not required to be next to the tree. Maybe this makes sense in a future update but it may cause an issue of discoverability when one doesn\'t yet know you want to upgrade the tree.<br/>\u2022 The goal of this is to add more crop interaction and positional elements to the game<br/><br/>0.1.12 (2020-12-28):<br/>\u2022 Fix accidental 7x7 field bug, 6x6 is currently the maximum if the relevant upgrade is purchased.<br/><br/>0.1.11 (2020-12-27):<br/>\u2022 Added back ethereal upgrades (2 for now), now costing resin. The 6x6 field size upgrade is now actually reachable.<br/><br/>0.1.10 (2020-12-26):<br/>\u2022 Internal fixes.<br/><br/>0.1.9 (2020-12-26):<br/>\u2022 The resin and transcension system has been redesigned. There are now multiple ethereal field plant types and they give direct boosts to the basic field. All resin has been refunded and can be re-used with the new system.<br/>\u2022 The pericarps resource has been removed from the game. Nothing is lost from this since only its production per second ("ethereal field power") was used and this was determined by resin which has been refunded.<br/>\u2022 Unused resin also gives a small boost now.<br/>\u2022 The ethereal upgrades (which used to cost ethereal field power) are currently removed (and replaced by ethereal plant effects instead), but new ones, probably costing resin, may be added back in a future game update.<br/>\u2022 A few other minor tweaks, e.g. the savegame now remembers which tab you had open and the assigned shift key plant.<br/><br/>0.1.8 (2020-12-24):<br/>\u2022 Changed the savegame format internally to be more compatible with future updates.<br/>\u2022 Minor tweaks and fixes.<br/><br/>0.1.7 (2020-12-23):<br/>\u2022 Added new plant type: watercress, and made it the starter plant. Also remains important as non-idle (active) plant throughout the game.<br/>\u2022 Nerfed costs and production of other plants to compensate the watercress power.<br/>\u2022 Added "a" keyboard shortcut for abilities.<br/><br/>0.1.6 (2020-12-22):<br/>\u2022 Added undo button.<br/>\u2022 Removed the free replant of same plant type at same spot since undo can be used instead now.<br/>\u2022 Weather abilities unlock immediately rather than through extra upgrade step, and merged their choice upgrades.<br/><br/>0.1.5 (2020-12-21):<br/>\u2022 Added new plant type: nettle<br/>\u2022 Added estimated time counters to several cost tooltips<br/>\u2022 Balancing tweaks<br/>\u2022 Increased ethereal upgrades but still very conservative for now as first run can still get balanced more<br/><br/>0.1.4 (2020-12-20):<br/>\u2022 Added "choice" upgrades<br/>\u2022 Added a third weather ability<br/>\u2022 Made higher level mushrooms produce more spores<br/><br/>0.1.3 (2020-12-19):<br/>\u2022 Added weather abilities<br/>\u2022 Balancing: slightly cheaper 3rth and higher tier plants<br/><br/>0.1.2 (2020-12-19):<br/>\u2022 Slightly boosted fern and it can now also give spores<br/>\u2022 Tweaked the upgrade-button UI<br/><br/>0.1.1 (2020-12-18):<br/>\u2022 Balance changes: fixed too slow beginning of game, but also the too powerful long term upgrade scaling<br/><br/>0.1.0 (2020-12-18):<br/>\u2022 Initial test release, no patches applied yet<br/>\u2022 Since this is a first alpha release, balancing and mechanics can still change quite bit!<br/><br/>Copyright (c) 2020-2022 by Lode Vandevenne'}
function AB(a){var b=a?'<font color="red"><b>Loading failed</b></font>. Read this carefully to help recover your savegame if you don\'t have backups. Copypaste all the recovery savegame(s) below and save them in a text file. Once they\'re stored safely by you, try some of them in the "import save" dialog under settings. One of them may be recent enough and work. Even if the recovery saves don\'t work now, a future version of the game may fix it. Apologies for this.':"Recovery saves. These may be older saves, some from previous game versions. Use at your own risk, but if your current save has an issue, save all of these to a text file as soon as possible so that if there's one good one it doesn't risk being overwritten by more issues. Try importing each of them, hopefully at least one will be good and recent enough.";
for(var d=BB(),e="",f=0;f<d.length;f++)e+=d[f][0]+"\n"+d[f][1]+"\n\n";0==d.length&&(e='No recovery saves found. Ethereal farm savegames are stored in local storage of your web browser for the current website. If you expected to see savegames here, there may be several possible reasons:\n\n \u2022 Your browser deleted (or doesn\'t save) local storage for this website\n\n \u2022 After manually performing a hard reset all data is erased\n\n \u2022 Never played the game on this device or in this browser.\n\n \u2022 Played the game on a different website (URL). If you played on a different website before and want to continue here, you can export the save there and import it here in the settings.\n\n \u2022 Other modifications to the URL: for example, ensure no "www" in front and "https", not "http" in front.\n\n');
!a&&0<d.length&&!CB?iB(D,function(g){e+="current\n"+g+"\n\n";DB("Recovery saves",b,e,"ethereal-farm-recovery-"+r.Xd(r.getTime(),!0)+".txt",!a)}):DB("Recover old save",b,e,"ethereal-farm-recovery-"+r.Xd(r.getTime(),!0)+".txt",!a)}
function DB(a,b,d,e,f){var g=400<a.length||1E3<d.length,h=void 0,k=void 0;document.queryCommandSupported&&document.queryCommandSupported("copy")&&document.execCommand&&(h=function(){n.select();n.focus();try{document.execCommand("copy")}catch(p){return X("failed to copy to clipboard",EB,0,0),l.a.innerText="failed to copy to clipboard, copy it manually with ctrl+c instead",l.a.style.color="red",!0}f&&Oa();X("save copied to clipboard");return!0},k="to clipboard");a=La({title:a,size:g?2:1,ib:[function(){var p=
document.createElement("a");p.setAttribute("href","data:text/plain;charset=utf-8,"+encodeURIComponent(n.value+"\n"));p.setAttribute("download",e);p.style.display="none";document.body.appendChild(p);p.click();document.body.removeChild(p);f&&Oa();X("save exported to file");return!0},h],names:["download",k],qc:"back"});if(b){var l=new G(a.content,0,0,1,.15);l.a.innerHTML=b}b=new G(a.content,0,.2,1,1);var n=r.qf("textarea","0","0","100%","100%",b.a);n.value=d;n.select()}
function FB(a,b,d){var e=r.Wd(a),f=r.vd(a);b=b.trim();""!=b&&jB(b,function(g){X("Imported save",GB,0,0);g.sj++;g.$g=r.getTime();Oa();HB();IB();JB();KB="";LB=0;MB();e&&(g.paused=!0);f&&(g.paused=!1);NB();OB();r.rc(Ki);CB=!1},function(g){var h="invalid savegame";g&&1==g.tc&&(h+="\nLoading fail reason: the string is too short to be a savegame");g&&2==g.tc&&(h+="\nLoading fail reason: not base64");g&&3==g.tc&&(h+="\nLoading fail reason: invalid signature");g&&4==g.tc&&(h+="\nLoading fail reason: parsing format");
g&&5==g.tc&&(h+="\nLoading fail reason: decompression");g&&6==g.tc&&(h+="\nLoading fail reason: checksum mismatch");g&&7==g.tc&&(h+="\nLoading fail reason: savegame is from later version than current game version");g&&8==g.tc&&(h+="\nLoading fail reason: savegame is from an early preview version of the game and no longer supported");d.a.innerText=h;d.a.style.color=""})}
function PB(){function a(){var f=(new G(b.content,.1,d,.9,d+.06,1)).a;Ba(f);d+=.066;return f}var b=La({title:"Main Menu"}),d=.05;var e=a();e.h.innerText="save now";C(e,"Save to local storage now. The game also autosaves every few minutes, but this button is useful before shutting down the computer or browser right after doing some game actions to ensure they are saved. Also force-stores the undo state.");A(e,function(){QB(D);vB(function(){X("Manually saved state locally");Oa()})});e.id="settings_save";
e=a();e.h.innerText="export save";C(e,"Export an encoded savegame, for backups.");A(e,function(){D.pj++;D.Zg=r.getTime();iB(D,function(f){DB("Export save","Export a savegame backup: copy or download the encoded savegame below, and store it somewhere safe. Do this regularly: even though the game autosaves locally in the web browser, browsers can easily lose this data. This contains all your progress!",f,"ethereal-farm-"+r.Xd(r.getTime(),!0)+".txt",!0)})});e.id="settings_export";e=a();e.h.innerText=
"import save";C(e,'Import a save, which you created with "export save". Hold shift while pressing the import button to load the savegame paused (frozen in time like it was back then, season and all, without gaining extra resources)');A(e,function(){var f=La({size:1,ib:function(k){FB(k,h.value,g);return!0},names:"import",qc:"cancel",title:"Import savegame"}),g=new G(f.content,0,0,1,.1);g.a.innerHTML='Import a savegame backup. You can create a backup with "export save". Paste in here and press "import".<br/><font color="red">Warning: this overwrites your current game!</font>';
var h=r.qf("textarea","1%","30%","98%","68%",f.content.a);h.select();h.focus()});e.id="settings_import";e=a();e.h.innerText="hard reset";C(e,"Performs a hard reset. This removes all savegame data, deletes your entire game and starts a new game from the beginning.\n\nWARNING: This is not a soft reset: nothing is kept, everything will be deleted, including achievements, settings and recovery saves. This starts over with a new, blank, savegame, and cannot be reverted. Are you sure you want to do this?");
A(e,function(){var f=La({size:1,ib:function(){RB();X("Hard reset performed, everything reset",dB,0,0);r.rc(Ji);r.rc(Ki);r.rc(Li);r.rc(Mi);r.rc(Ni);r.rc(Oi);r.rc(Pi);r.rc(Ji+"_manual");r.rc(Ji+"_transcend");r.rc(Ji+"_prev_version2");r.rc(Ji+"_daily3");fB(hz());HB();IB();JB();KB="";LB=0;hB();MB();OB();Oa();return!0},names:"reset",title:"Hard reset"});f.content.a.innerText="Performs a hard reset. This removes all savegame data, deletes your entire game and starts a new game from the beginning.\n\nWARNING: This is not a soft reset: nothing is kept, everything will be deleted, including achievements, settings and recovery saves. This starts over with a new, blank, savegame, and cannot be reverted. Are you sure you want to do this?";
f.content.a.style.color="red"});e.id="settings_hardreset";d+=.025;e=a();e.h.innerText="preferences";C(e,"Various UI, saving, gameplay and other settings.");A(e,function(){tB()});e.id="settings_preferences";e=a();e.h.innerText="number format";C(e,"Change the precision and display type for large numbers.");A(e,function(){nB()});e.id="settings_number";d+=.025;e=a();e.h.innerText="player stats";A(e,function(){wB()});e.id="settings_player_stats";D.Qd&&(e=a(),e.h.innerText="challenge stats",A(e,function(){var f=
La({size:3,icon:md,title:"Challenge stats",Ba:!0});var g="Total challenge production bonus: +"+L(D.bc)+"<br>";D.Ue.T(0)&&(g+="regular bonus: +"+L(D.Qf)+"<br>",g+="alternate bonus: +"+L(D.Ue)+"<br>");g+="<br>";for(var h=0;h<xq.length;h++){var k=qp[xq[h]],l=D.P[xq[h]];if(l.f){g+="<b>"+ma(k.name)+"</b>";g+="<br>";g=1!=k.ja.length&&l.X?g+("completed: stage "+l.X+" of "+k.ja.length):g+("completed: "+(l.X?"yes":"no"));g+="<br>";if(1<k.ja.length){g+="multiple target level stages: ";for(var n=0;n<k.ja.length;n++)g+=
(n?", ":"")+k.ja[n]}else g+="target level: "+k.ja[0];g+="<br>";g+="runs: "+l.aa;D.challenge==k.index&&(g+=" (excluding current run)");g+="<br>";if(1<k.ga)for(g+="highest levels: ",n=0;n<k.ga;n++)g+=(n?", ":"")+l.mb[n];else g+="highest level: "+l.cb;g+="<br>";1<k.ja.length&&k.Nc()?(g+="fastest first stage target level time: "+(l.Db?r.I(l.Db):"--")+"<br>",g+="fastest final stage target level time: "+(l.Ic?r.I(l.Ic):"--")+"<br>"):g+="fastest target level time: "+(l.Db?r.I(l.Db):"--")+"<br>";if(1<k.ga){g+=
"bonuses per max level (formula: "+SB(k)+"): ";for(n=0;n<k.ga;n++)g+=(n?", ":"")+L(k.Yh[n]);g+="<br>";g+="production bonuses: ";for(n=0;n<k.ga;n++)g+=(n?", ":"")+L(Lu(k.index,l.mb[n],n));g+="<br>";g+=(D.challenge==k.index?"current":"next")+" cycle: "+(l.tb%k.ga+1)+" of "+k.ga}else g+="bonus per max level (formula: "+SB(k)+"): "+L(k.qb),g+="<br>",g+="production bonus: "+L(Lu(k.index,l.cb));g+="<br>";k.ld&&(g+="This challenge uses the alternate bonus pool, it is part of a separate multiplier and so has more effect than regular challenges",
g+="<br>");if(1<k.ja.length){for(n=0;n<l.X;n++)g+="reward gotten (at level "+k.ja[n]+"): "+k.Wc[n],g+="<br>";k.Nc||(g+="(next unclaimed reward: "+k.Wc[l.X]+")",g+="<br>")}else g=l.X?g+("reward gotten: "+k.Wc[0]):g+("(unclaimed reward: "+k.Wc[0]+")"),g+="<br>";l.aa&&(k.index==D.challenge?g+="last time ran: now":l.pf?(g+="last time ran: "+r.Xd(l.pf),g+="<br>",g+="last runtime: "+r.I(l.yi)+", to level "+l.xi):g+="last time ran: unknown",g+="<br>");g+="<br>"}}f.content.a.innerHTML=g}),e.id="settings_challenge_stats");
d+=.025;e=a();e.h.innerText="help";A(e,function(){TB()});e.id="settings_help";e=a();e.h.innerText="about & changelog";A(e,function(){yB()});e.id="settings_about"}function UB(a,b,d){var e=1/11;return new G(VB,[.05+e*a,0,-.4*e,11],[.5,0,-.4,e],[.05+e*(b-1),0,.4*e,11],[.5,0,.4,e],d)}var WB=void 0,XB=void 0,YB=void 0;YB=-1;function ZB(){XB&&(ol(1)?(1!=YB&&Wa(nc[Math.floor(4*Math.random())],XB),YB=1):ol(2)?(2!=YB&&Wa(qc,XB),YB=2):ol(3)?(3!=YB&&Wa(Af[0],XB),YB=3):(0!=YB&&Wa(kc[1],XB),YB=0))};var $B=void 0,aC=void 0,bC=void 0,cC=void 0,dC=void 0,eC=void 0,fC=void 0,gC=void 0,hC=void 0,iC=void 0,jC=void 0;
function kC(a,b,d,e,f){var g=!1;0==a&&(g=!!D.i[yj].count);1==a&&(g=!!D.i[Aj].count);2==a&&(g=!!D.i[Cj].count);if(g){var h;0==a&&(h=rj(720));1==a&&(h=rj(1080));2==a&&(h=rj(1440));var k;0==a&&(k=mj(120));1==a&&(k=mj(180));2==a&&(k=mj(240));if(0==a)var l=D.xb;1==a&&(l=D.kb);2==a&&(l=D.lb);g=dl(a);l=D.time-l;a=l>h?g?1:0:l>k||D.Wa!=a?g?3:2:4}else a=null;a=0==a?"ready":1==a?"ready, perma":2==a?"recharging":3==a?"recharging, perma":4==a?"active":null;f-=e;b=b+": "+d+"<br>Run time: "+r.I(e)+". Cooldown time: "+
r.I(f);a&&(b+="<br><br>Status: "+ma(a));return b}var lC=-1,mC=-1;
function nC(){var a=wq();cC&&!D.i[yj].count&&(Ua(cC,VB),Ua(dC,VB),cC=void 0);if(D.challenge!=bl&&!cC&&D.i[yj].count){cC=UB(4,5);Aa(cC.a,!0);dC=UB(3.8,5.2,2.5);ta(dC.a);dC.a.className="efWeatherOff";dC.a.style.userSelect="none";dC.a.style.pointerEvents="none";eC=new G(cC,0,-.1,1,0);eC.a.className="efWeatherPerma";var b=new G(cC,0,0,1,1);b=Va("0%","0%","100%","100%",b.a);Wa(Ic,b);A(cC.a,function(){Z({type:oC,Je:0});OB()},"sun ability");cC.a.id="sun_button";C(cC.a,function(){return kC(0,"sun ability",
"berries get a +"+L(cl())+" production bonus and aren't negatively affected by winter",mj(120),rj(720))})}if(D.i[yj].count&&cC){var d=r.getTime()-D.xb;d>rj(720)?dC.a.h.innerHTML="":d>mj(120)||0!=D.Wa?(dC.a.className="efWeatherOff",dC.a.h.innerHTML="<small>ready in:</small><br>"+r.I(rj(720)-d,!0)):(dC.a.className="efWeatherOn",dC.a.h.innerHTML="<small>active:</small><br>"+r.I(mj(120)-d,!0));eC.a.style.visibility=a&&0==D.Wa?"visible":"hidden"}$B&&!D.i[Aj].count&&(Ua($B,VB),Ua(aC,VB),$B=void 0);D.challenge!=
bl&&!$B&&D.i[Aj].count&&($B=UB(5,6),Aa($B.a,!0),aC=UB(4.8,6.2,2.5),ta(aC.a),aC.a.style.userSelect="none",aC.a.style.pointerEvents="none",bC=new G($B,0,-.1,1,0),bC.a.className="efWeatherPerma",b=new G($B,0,0,1,1),b=Va("0%","0%","100%","100%",b.a),Wa(Hc,b),A($B.a,function(){Z({type:oC,Je:1});OB()},"mist ability"),$B.a.id="mist_button",C($B.a,function(){return kC(1,"mist ability","mushrooms produce "+L(el())+" more spores, consume "+L(kh())+" less seeds, and aren't negatively affected by winter",mj(180),
rj(1080))}));D.i[Aj].count&&$B&&(d=r.getTime()-D.kb,d>rj(1080)?aC.a.h.innerHTML="":d>mj(180)||1!=D.Wa?(aC.a.className="efWeatherOff",aC.a.h.innerHTML="<small>ready in:</small><br>"+r.I(rj(1080)-d,!0)):(aC.a.className="efWeatherOn",aC.a.h.innerHTML="<small>active:</small><br>"+r.I(mj(180)-d,!0)),bC.a.style.visibility=a&&1==D.Wa?"visible":"hidden");fC&&!D.i[Cj].count&&(Ua(fC,VB),Ua(gC,VB),fC=void 0);D.challenge!=bl&&!fC&&D.i[Cj].count&&(fC=UB(6,7),Aa(fC.a,!0),gC=UB(5.8,7.2,2.5),ta(gC.a),gC.a.style.userSelect=
"none",gC.a.style.pointerEvents="none",hC=new G(fC,0,-.1,1,0),hC.a.className="efWeatherPerma",b=new G(fC,0,0,1,1),b=Va("0%","0%","100%","100%",b.a),Wa(Kc,b),A(fC.a,function(){Z({type:oC,Je:2});OB()},"rainbow ability"),fC.a.id="rainbow_button",C(fC.a,function(){return kC(2,"rainbow ability","rainbow ability: flowers get a +"+L(Kl())+" boost and aren't negatively affected by winter",mj(240),rj(1440))}));D.i[Cj].count&&fC&&(d=r.getTime()-D.lb,d>rj(1440)?gC.a.h.innerHTML="":d>mj(240)||2!=D.Wa?(gC.a.className=
"efWeatherOff",gC.a.h.innerHTML="<small>ready in:</small><br>"+r.I(rj(1440)-d,!0)):(gC.a.className="efWeatherOn",gC.a.h.innerHTML="<small>active:</small><br>"+r.I(mj(240)-d,!0)),hC.a.style.visibility=a&&2==D.Wa?"visible":"hidden");D.challenge!=bl||iC?D.challenge!=bl&&iC&&(Ua(iC,VB),iC=void 0):(iC=UB(4,5),Aa(iC.a,!0),b=new G(iC,0,0,1,1),b=Va("0%","0%","100%","100%",b.a),Wa(Mc,b),A(iC.a,function(){La({title:"Lightning info",icon:Mc}).content.a.innerHTML="Stormy weather is active throughout this challenge and lightning will strike a crop every 2 minutes. In addition, berries, mushrooms and flowers are half as effective.<br><br>Struck crops become ghosts. These can't be replanted by the automaton, but you can override multiple at once with a blueprint."},
"lightning info"),iC.a.id="lightning_button",C(iC.a,"Stormy weather is active throughout this challenge and lightning will strike a crop every 2 minutes. In addition, berries, mushrooms and flowers are half as effective."));if(pb(D.qa.g,1E3)){var e=(b=D.ia==pC)?Kz():Iz();jC&&lC==e&&mC==b||(jC&&(jC.clear(),Ua(jC,VB)),lC=e,(mC=b)?(a=mw[e].image[4],d=mw[e].name):(a=ue[4],d="watercress",0<=e&&(a=vl[e].image[4],d=vl[e].name)),jC=UB(9,10),jC.a.title=b?"Refresh brassica: replants brassica remainders, upgrades to next tier if possible, and else refreshes partially used up ones. Hotkey: w. With ctrl, deletes all brassica. With shift, plants the highest possible brassica everywhere it can. If it did nothing without shift, will act like shift was pressed. Use carefully: while you don't lose any infinity seeds from refreshing because brassica give a refund based on their remaining lifespan, it is more efficient for income to have multiple halfway brassica than a single fully refreshed one, unless you're away for a while.":
"Refresh "+d+": active "+d+" and remainders only. Hotkey: w. With ctrl, deletes all "+d+". With shift, plants "+d+" everywhere it can.",Aa(jC.a,!0),b=new G(jC,0,0,1,1),b=Va("0%","0%","100%","100%",b.a),Wa(a,b),A(jC.a,function(f){D.ia==pC?qC(r.vd(f),f.shiftKey):rC(r.vd(f),f.shiftKey)},"refresh "+d+". with shift: deletes all "+d),jC.a.id="watercress_button")}else jC&&(jC.clear(),Ua(jC,VB),jC=void 0)}
function rC(a,b,d){if(!a||!b){var e=!1,f=!1,g=!1,h=!1,k=vl[ln].V.g,l=Iz();if(!(0>l)){for(var n=c(D.b.g),p=0;p<D.D;p++)for(var m=0;m<D.B;m++){var x=n.Ea(k),t=D.C[p][m],y=T(t);t.index==Dy?a?(Z({type:sC,x:m,y:p,silent:!0,ra:d}),g=!0):x&&(n.oa(k),Z({type:tC,x:m,y:p,W:vl[l],sc:!0,silent:!0,ra:d}),e=!0):y&&y.type==Vi&&(x||a)?(Z({type:sC,x:m,y:p,silent:!0,ra:d}),f=Ej(y)?y:vl[l],a||(n.oa(k),Z({type:tC,x:m,y:p,W:f,sc:!0,silent:!0,ra:d})),f=!0):t.index!=oo+Ln&&t.index!=oo+Wn||!x?b&&x&&(0==t.index||t.index==
Dy||t.index==oo+Ln||t.index==oo+Wn)&&(t.index!=oo+Ln&&t.index!=oo+Wn||Z({type:sC,x:m,y:p,silent:!0,ra:d}),n.oa(k),Z({type:tC,x:m,y:p,W:vl[l],sc:!0,silent:!0,ra:d}),h=!0):a||(n.oa(k),Z({type:uC,x:m,y:p,W:vl[l],sc:!0,silent:!0,ra:d}),f=!0)}h?X("planting brassica"):e?X("replanting brassica"):f?X(a?"deleting brassica":"refreshing brassica"):g?X("cleared brassica remainders"):n.la(k)?X("nothing done: only refreshes existing brassica or remainders of brassica, and requires enough resources available to plant the brassica"):
X("nothing done: only refreshes existing brassica or remainders of brassica. A second click can fill up the rest of the field with brassica, when having enough resources.");d||OB()}}}
function qC(a,b,d,e){if(!a||!b){var f=!1,g=!1,h=!1,k=!1,l=Jz();if(!(0>l)){var n=vw;l>vw&&(n=l-1);var p=vw;n>vw&&(p=n-1);for(var m=c(D.b.R),x=mw[l].V.R,t=mw[n].V.R,y=mw[p].V.R,u=0,v=0,w=[],q=0;q<D.Ka;q++){w[q]=[];for(var F=0;F<D.La;F++){w[q][F]=!1;var B=m.Ea(x),K=m.Ea(t),N=m.Ea(y),O=D.ta[q][F],W=T(O);if(O.index==Dy)if(a)Z({type:vC,x:F,y:q,silent:!0,ra:d}),h=!0;else{if(B||K||N)W=B?mw[l]:K?mw[n]:mw[p],K=B?x:K?t:y,m.oa(K),Z({type:wC,x:F,y:q,W:W,sc:!0,silent:!0,ra:d}),f=!0,u++}else if(W&&W.type==Vi&&a)Z({type:vC,
x:F,y:q,silent:!0,ra:d}),m.v(W.ub(O).R),v++;else if(b&&0==O.index)!(B||K||N)||0!=O.index&&O.index!=Dy||(W=B?mw[l]:K?mw[n]:mw[p],K=B?x:K?t:y,m.oa(K),Z({type:wC,x:F,y:q,W:W,sc:!0,silent:!0,ra:d}),u++,k=!0);else if(W&&W.type==Vi&&W.l<mw[l].l){var U=W.ub(O);B=m.Ea(x.sub(U.R));K=m.Ea(t.sub(U.R));N=m.Ea(y.sub(U.R));if(B||K||N)W=B?mw[l]:K?mw[n]:mw[p],K=B?x:K?t:y,m.v(U.R),Z({type:vC,x:F,y:q,silent:!0,ra:d}),m.oa(K),Z({type:wC,x:F,y:q,W:W,sc:!0,silent:!0,ra:d}),.999>O.F&&u++,g=!0}}}if(!a&&!b&&!u)for(q=0;q<
D.Ka;q++)for(F=0;F<D.La;F++)O=D.ta[q][F],(W=T(O))&&W.type==Vi&&Ej(W)&&(K=W.O(),U=W.ub(O),B=m.Ea(K.R),f||(B=m.Ea(K.R.sub(U.R))),B&&(m.v(U.R),Z({type:vC,x:F,y:q,silent:!0,ra:d}),m.oa(K.R),Z({type:wC,x:F,y:q,W:W,sc:!0,silent:!0,ra:d}),.999>O.F&&u++,g=!0));0!=u||b||a||d?(k?X("planting infinity brassica"):f?X("replanting infinity brassica"):v?X("deleting infinity brassica"):g?X("refreshing infinity brassica"):h?X("cleared infinity brassica remainders"):m.la(x)?X("nothing done: only refreshes existing infinity brassica or remainders of infinity brassica, and requires enough resources available to plant the infinity brassica"):
b&&!e?X("nothing done: with shift, only adds new infinity brassica where possible, doesn't refresh existing ones"):X("nothing done: no brassica or brassica remainders available to refresh"),d||OB()):qC(!1,!0,!1,!0)}}}
function xC(a){var b=La({title:"Choose weather",size:1,zb:"Select which weather to activate for this auto-action.",qc:"cancel"}),d=new G(b.content,.05,.3,.3,[.3,.25]),e=Va("0%","0%","100%","100%",d.a);Wa(Ic,e);Aa(d.a);A(d.a,function(){a(0);db()},"Sun");d.a.title="Sun";d=new G(b.content,.35,.3,.6,[.3,.25]);e=Va("0%","0%","100%","100%",d.a);Wa(Hc,e);Aa(d.a);A(d.a,function(){a(1);db()},"Mist");d.a.title="Mist";b=new G(b.content,.7,.3,.95,[.3,.25]);d=Va("0%","0%","100%","100%",b.a);Wa(Kc,d);Aa(b.a);A(b.a,
function(){a(2);db()},"Rainbow");b.a.title="Rainbow"}function yC(a,b){var d=r.Wd(a),e=r.vd(a),f=a.key;a=a.code;4==a.length&&"Key"==a.substr(0,3)&&"A"<=a[3]&&"Z">=a[3]&&(f=a[3].toLowerCase());6==a.length&&"Digit"==a.substr(0,5)&&(void 0==b||a[5]<b)&&(f=a[5]);return{key:f,code:a,shift:d,aj:e}}
document.addEventListener("keydown",function(a){if(0<Ga){if(27==a.keyCode||"Escape"==a.code)eb?Ra():db(!0)}else{var b=D.fd;r.Wd(a)&&(b=D.Cd);var d=yC(a,1==b?"4":0==b?"0":void 0);a=d.key;var e=d.code,f=d.shift;d=d.aj;if("0"<=a&&"9">=a){if(0==b)return;var g=a-0;"0"==g&&(g=10);1==b?("1"==a&&(Z({type:oC,Je:0}),OB()),"2"==a&&(Z({type:oC,Je:1}),OB()),"3"==a&&(Z({type:oC,Je:2}),OB())):2==b?zC(g-1):3==b?(b=g-1,b<D.Y.length&&b<AC()&&(Z({type:BC,slot:g-1,silent:!0,Ck:!0}),OB())):4==b&&(g--,0<=g&&g<D.xa.length&&
CC(g));f&&(DC(),EC())}"t"!=a||f||d||(D.challenge?FC():D.j>=fu&&GC());"w"!=a||d||(D.ia==pC?qC(!1,f):rC(!1,f));"b"!=a||f||d||D.ia!=pC&&(D.ia==HC||D.ia==IC?JC(void 0,void 0,!0):JC(void 0,void 0,!1));if("u"==a&&!f&&!d&&D.ia==KC){b=void 0;D.C[LC]&&(b=D.C[LC][MC]);g=!1;b&&b.index==Dy||(g|=NC(MC,LC));var h=g;D.Da&&MC==D.ab&&LC==D.bb&&(Z({type:OC,x:MC,y:LC}),g=!0);!g&&b&&((b=D.C[LC][MC])&&b.index==Dy&&(Z({type:tC,x:MC,y:LC,W:vl[ln],sc:!0}),g=!0),!h&&b&&nk(b)&&T(b).type==Vi&&1>b.F&&(Z({type:uC,x:MC,y:LC,W:T(b),
sc:!0,silent:!0}),g=!0));g&&OB()}"u"!=a||f||d||D.ia!=HC||(g=0|PC(QC,RC))&&OB();if("u"==a&&!f&&!d&&D.ia==pC){b=void 0;D.ta[SC]&&(b=D.ta[SC][TC]);g=!1;!g&&b&&b.index==Dy&&(Z({type:wC,x:TC,y:SC,W:mw[Lz()],sc:!0}),g=!0);if(!g&&b&&nk(b)&&T(b).type==Vi&&1>b.F){h=Lz();var k=Jz();h>=T(b).index&&(Z({type:UC,x:TC,y:SC,W:mw[h],sc:!0,silent:!0}),k<=h||.9>b.F)&&(g=!0)}!g&&b&&(g|=VC(TC,SC));g&&OB()}if("p"==a&&!f&&!d&&D.ia==KC){g=!1;D.Da&&MC==D.ab&&LC==D.bb&&(Z({type:OC,x:MC,y:LC}),g=!0);if(D.C[LC]){if(b=D.C[LC][MC])Xk(b)?
D.Va=T(b).index:0<=D.Va&&vl[D.Va]&&(Z({type:tC,x:MC,y:LC,W:vl[D.Va],Oa:!0}),g=!0)}else null!=WC&&D.U[WC]&&D.U[WC].f&&(D.Va=WC);g&&OB()}"p"==a&&!f&&!d&&D.ia==HC&&D.ka[RC]&&(b=D.ka[RC][QC])&&(Xk(b,!0)?D.Bb=T(b,!0).index:0<=D.Bb&&Kq[D.Bb]&&(Z({type:XC,x:QC,y:RC,W:Kq[D.Bb],Oa:!0}),OB()));"p"==a&&!f&&!d&&D.ia==pC&&D.ta[SC]&&(b=D.ta[SC][TC])&&(Xk(b,!0)?D.sb=T(b,!0).index:0<=D.sb&&mw[D.sb]&&(Z({type:wC,x:TC,y:SC,W:mw[D.sb],Oa:!0}),OB()));"d"!=a||f||d||D.ia!=KC||(g=!1,D.Da&&MC==D.ab&&LC==D.bb&&(Z({type:OC,
x:MC,y:LC}),g=!0),D.C[LC]&&(b=D.C[LC][MC])&&(Xk(b,!0)||b.index==Dy)&&(Z({type:sC,x:MC,y:LC}),g=!0),g&&OB());"d"!=a||f||d||D.ia!=HC||!D.ka[RC]||(b=D.ka[RC][QC])&&Xk(b)&&(Z({type:YC,x:QC,y:RC}),OB());"d"==a&&f&&!d&&D.ia==HC&&D.ka[RC]&&(b=D.ka[RC][QC])&&Xk(b)&&(ZC(QC,RC),OB());"d"!=a||f||d||D.ia!=pC||!D.ta[SC]||(b=D.ta[SC][TC])&&(Xk(b)||b.index==Dy)&&(Z({type:vC,x:TC,y:SC}),OB());"d"==a&&f&&!d&&D.ia==pC&&D.ta[SC]&&(b=D.ta[SC][TC])&&Xk(b)&&($C(TC,SC),OB());"f"!=a||f||d||aD(KC);"e"!=a||f||d||0<D.ha&&aD(HC);
"i"!=a||f||d||0<qx()&&aD(pC);"z"==a&&!f&&d&&(bD(),OB());"Escape"!=e||f||d||PB();"]"!=a&&"}"!=a&&")"!=a&&">"!=a||d||(2==D.Fb&&zC((void 0==cD[D.ia]?0:cD[D.ia])+1),3==D.Fb&&D.Ua+1<D.Y.length&&D.Ua+1<AC()&&(Z({type:BC,slot:D.Ua+1}),OB()));"["!=a&&"{"!=a&&"("!=a&&"<"!=a||d||(2==D.Fb&&zC((void 0==cD[D.ia]?0:cD[D.ia])-1),3==D.Fb&&0<D.Ua&&(Z({type:BC,slot:D.Ua-1}),OB()))}});function dD(a){function b(){var I=new G(e,.01,g,.4,g+.05);g+=.06;return I}var d;0==a?d="Configure auto upgrade":1==a?d="Configure auto plant":2==a&&(d="Configure auto unlock");var e=La({title:d,zb:z(lq,0==a?29:1==a?31:33,!1),Ba:!0}).content,f=0;d=.06;var g=0,h=[1,.5,.2,.1,.05,.02,.01,.005,.002,.001,5E-4,2E-4,1E-4,0],k=0==a?"upgrades":1==a?"planting":"unlock";if(yz()){if(0==a){var l="berry mushroom flower nettle beehive brassica".split(" ");var n=[3,4,5,6,7,2];zt()&&(l.push("nuts"),n.push(9));l.push("other");
n.push(1);var p=D.$c}else if(1==a||2==a)l="berry mushroom flower nettle beehive mistletoe brassica".split(" "),n=[3,4,5,6,7,8,2],p=1==a?D.Cb:D.Yc,zt()&&(l.push("nuts"),n.push(9)),l.push("other"),n.push(1);f=.12;var m=new G(e,.01,g,1,g+.07);m.a.innerText="Select max resource amount for "+k+" of each crop type:";f=g+=f;if(2==a){if(Ez()){var x=b();g+=.2*d;x.a.className="efButton";var t=function(){x.a.h.innerText=D.Me?"auto-prestige enabled":"auto-prestige disabled"};Aa(x.a);ta(x.a);C(x.a,"whether to also apply automation of crop prestige upgrades. This uses the same cost settings as auto-unlock");
t();A(x.a,function(){D.Me=D.Me?0:1;t();db();dD(a)},"enable or disable auto-prestige")}x=b();g+=.2*d;x.a.className="efButton";t=function(){x.a.h.innerText=D.nd?"shared with auto-plant":"customized below"};Aa(x.a);ta(x.a);t();A(x.a,function(){D.nd=!D.nd;t();db();dD(a)},"share auto-unlock resource fraction settings with auto-plant")}if(2!=a||!D.nd){for(var y=0;y<l.length;y++){var u=n[y];m=new G(e,.01,g,.4,g+d);g+=1.2*d;Aa(m.a);ta(m.a);var v=[];var w=0;for(var q=1,F=0;F<h.length;F++){v[F]=L(c(h[F]),3,
Lh);var B=Math.abs(h[F]-p[u]);B<q&&(w=F,q=B)}p[u]=h[w];yb(m,l[y],w,v,z(function(I,ra){p[I]=h[ra]},u));C(m.a,"max fraction of current amount of resources that the automaton is allowed to spend on this type of auto "+k)}g+=d/4;m=new G(e,.01,g,.4,g+d);g+=1.2*d;Aa(m.a);ta(m.a);yb(m,"set all to",w,v,function(I){for(var ra=0;ra<l.length;ra++)p[n[ra]]=h[I];db();dD(a)});if(2==a){g=f;d=.06;var K=new G(e,.5,g,.9,g+d);g+=1.2*d;var N=D.ie,O=function(){var I="Cost limit: "+N.toString();I=tb(N,0)?I+" (unlimited)":
I+" seeds";K.a.innerText=I};O();d=.06;w=new G(e,.5,g,.9,g+d);var W=r.qf("textarea","0","0","100%","100%",w.a),U=function(){var I=ii(W.value);if(!I||isNaN(I.s)||isNaN(I.e)||ub(I,0))I=c(0);N=I;O()};W.onchange=function(){U();D.ie=N};W.onkeyup=U;g+=1.2*d;g+=.03;d=.06;w=new G(e,.5,g,.9,g+d);w.a.innerHTML="Change cost limit in the text box above. Automaton will not buy unlocks more expensive than this value.<br><br>Use 0 to indicate unlimited (default). For example, set to 1001 to prevent auto-unlocking anything higher than blackberry.";
g+=1.2*d}}}else{var V=0==a?D.$c:1==a?D.Cb:D.Yc;m=b();Aa(m.a);ta(m.a);h=[1,.5,.2,.1,.05,.02,.01,.005,.002,.001];v=[];w=0;q=1;for(F=0;F<h.length;F++)v[F]=L(c(h[F]),3,Lh),B=Math.abs(h[F]-V[0]),B<q&&(w=F,q=B);V[0]=h[w];yb(m,"max cost",w,v,function(I){V[0]=h[I]});C(m.a,"max fraction of current amount of resources that the automaton is allowed to spend on auto "+k);g+=.03;d=.06;w=new G(e,0,g,1,g+d);w.a.innerHTML="Start the no-upgrades challenge again and beat its next stage to unlock more finetuning options in this dialog";
g+=1.2*d}}var eD=!1;
function fD(){function a(p,m){var x=p.a.h,t=Fj[k[m]];m=D.Hc[m];var y=ma(t.name)+": ";2==m?(p.$a=1,y+=ma(t.Rd)):3==m?(p.$a=2,y+=ma(t.Sd)):(y+="Manual",p.$a=0);x.innerText=y;void 0!=p.$a&&(p.a.className=0==p.$a?"efAutomatonManual":1==p.$a?"efAutomatonAuto2":"efAutomatonAuto")}function b(){g-=.096;var p=new G(e,.45,g,.53,g+.08);g+=.096;return p}function d(){var p=new G(e,.01,g,.4,g+.08);g+=.096;return p}eD=!0;var e=La({onclose:function(){eD=!1},Ba:!0,title:"Configure auto choices"}).content,f=0,g=0;
f=.15;var h=new G(e,.01,g,1,g+.07);h.a.innerText="Choose the action for each choice upgrade dropped by the tree";g+=f;var k=[$p,nj,Hj,wk];f=[3,8,14,22];for(var l=0;l<k.length;l++)if(!(D.Pa<f[l])){var n=Fj[k[l]];h=d();Aa(h.a);ta(h.a);a(h,l);A(h.a,z(function(p,m){D.Hc[m]||(D.Hc[m]=1);D.Hc[m]++;3<D.Hc[m]&&(D.Hc[m]=1);a(p,m)},h,l));C(h.a,"Configure automaton for this specific choice upgrade:<br><br><b>"+n.Rd+":</b><br>"+n.bj+"<br><br><b>"+n.Sd+":</b><br>"+n.cj+"<br><br><b>Manual:</b><br>Handle this upgrade manually instead of through the automaton.");
h=b();Aa(h.a,!0);n=Va("0%","0%","100%","100%",h.a);Wa(ld,n);A(h.a,z(function(p){p=Fj[k[p]];La({title:p.name+" info"}).content.a.innerHTML="<b>"+p.Rd+":</b><br>"+p.bj+"<br><br><b>"+p.Sd+":</b><br>"+p.cj+"<br><br><b>Manual:</b><br>Handle this upgrade manually instead of through the automaton."},l))}}
function gD(a){var b="Trigger: ";if(0==a.type)b+="tree level: "+a.level;else if(1==a.type||2==a.type||3==a.type||5==a.type){var d=vl[a.W-1],e=a.sa,f=d?d.name:"none";d&&e&&(f+=" (prestiged)");1==a.type&&(b+="unlocked crop: "+f);2==a.type&&(b+="planted crop: "+f);3==a.type&&(b+="fullgrown crop: "+f);5==a.type&&(b+="upgraded crop: "+f)}else 4==a.type&&(b+="run time: "+r.I(a.time,!0));d="";a.Vd&&(e=D.Jc[a.ac],d+="Override blueprint "+(a.ac+1)+" "+(e&&0!=e.data.length?'"'+e.name+'"':"[empty]"));a.ne&&
(""!=d&&(d+=". "),e=D.Y[a.wd],d+="Select fruit slot "+(a.wd+1),e&&(d+=' "'+e.toString()+'"'));Fz()&&(a.Tf&&(""!=d&&(d+=". "),d+="Refresh brassica"),a.Vf&&(""!=d&&(d+=". "),0==a.Ie&&(d+="Activate sun"),1==a.Ie&&(d+="Activate mist"),2==a.Ie&&(d+="Activate rainbow")),a.Uf&&(""!=d&&(d+=". "),d+="Pick up fern"));""==d&&(d="None");return b+"<br>Action: "+d}function hD(){for(var a=Cz(),b=0;b<a;b++){var d=D.xa[b];d.done=iD(d)}}
function jD(a,b){function d(){var p="";if(0==f.type)p+="tree level: "+f.level;else if(1==f.type||2==f.type||3==f.type||5==f.type){var m=vl[f.W-1],x=f.sa,t=m?m.name:"none";m&&x&&(t+=" (prestiged)");1==f.type&&(p+="unlocked crop: "+t);2==f.type&&(p+="planted crop: "+t);3==f.type&&(p+="fullgrown crop: "+t);5==f.type&&(p+="upgraded crop: "+t)}else 4==f.type&&(p+="run time: "+r.I(f.time,!0));n.a.h.innerText=p}function e(){var p=new G(g,.01,h,.6,h+.08);h+=.096;return p}var f=D.xa[a];f.done=f.Mc=!0;var g=
La({onclose:function(){f.done=f.Mc=iD(f);f.ge=0;b()},Ba:!0,title:"Configure automaton trigger "+(a+1),zb:"Here you can configure the conditions at which this automaton action will trigger, e.g. after some tree level is reached, some crops are unlocked or after a certain time"}).content,h=0;var k=e();Ba(k.a);ta(k.a);var l=[0,1,2,3,5,4];yb(k,"Trigger by",[0,1,2,3,5,4][f.type],"tree level;unlocked crop;planted crop;fullgrown crop;upgraded crop;run time".split(";"),function(p){f.type=l[p];d(a)},!0);var n=
e();Ba(n.a);ta(n.a);A(n.a,function(){if(0==f.type)Bb("Tree level","Enter tree level at which to perform action",function(y){y=parseInt(y);0<=y&&1E6>y||(y=0);f.level=y;d(a)},""+f.level);else if(1==f.type||2==f.type||3==f.type||5==f.type)kD(f.W,f.sa,function(y,u){f.W=y+1;f.sa=u;d()});else if(4==f.type){var p=""+Math.floor(f.time/3600),m=""+Math.floor(f.time%3600/60),x=""+f.time%60;if("0"==x){1==m.length&&(m="0"+m);var t=p+":"+m}else t="",0!=p&&(t+=p+"h "),0!=m&&(t+=m+"m "),0!=x&&(t+=x+"s"),t=t.trim();
Bb("Run time","Enter time since start of run. Supported formats, e.g. for one and a half hours: 1:30, 1h30m, 1.5h or 1.5",function(y){y=y.split(":");var u=1==y.length?na(y[0].charAt(y[0].length-1)):"";if("d"==u||"h"==u||"m"==u||"s"==u)for(y=y[0].split(/([a-zA-Z])/),u=f.time=0;u+1<y.length;u+=2){var v=parseFloat(y[u].trim()),w=y[u+1];"d"==w?f.time+=86400*v:"h"==w?f.time+=3600*v:"m"==w?f.time+=60*v:"s"==w&&(f.time+=v)}else u=parseFloat(y[0]),v=1<y.length?parseFloat(y[1]):0,y=2<y.length?parseFloat(y[2]):
0,0<=u||(u=0),0<=v||(v=0),0<=y||(y=0),f.time=3600*u+60*v+y;isNaN(f.time)&&(f.time=0);d(a)},""+t)}});d()}
function lD(a,b){function d(n){n=.08*(void 0==n?1:n);var p=new G(e,.01,g,.8,g+n);g+=1.2*n;return p}var e=La({onclose:b,Ba:!0,title:"Configure automaton action "+(a+1),zb:"Here you can select one or more automaton actions that occur when the condition is triggered"}).content,f=D.xa[a],g=0;b=d(.7);Qb(b,f.Vd,"Enable auto-blueprint",function(n){f.Vd=n},"Enable auto-blueprint");b=d();Ba(b.a);ta(b.a);var h=z(function(n){var p=f.ac,m=D.Jc[p];n.a.h.innerText="Chosen blueprint: ["+(p+1)+"] "+(m&&0!=m.data.length?
m.name:"[empty]")},b,a);A(b.a,function(){JC(void 0,void 0,void 0,function(n){f.ac=n;h()})});h();b=d(.7);Qb(b,f.ne,"Enable auto-fruit",function(n){f.ne=n},"Enable auto-fruit");b=d();Ba(b.a);ta(b.a);var k=z(function(n){var p=D.Y[f.wd],m="Chosen fruit slot: "+f.wd;p&&(m+='. "'+p.toString()+'"');n.a.h.innerText=m},b,a);A(b.a,function(){mD(function(n){f.wd=n;k()})});k();if(Fz()){b=d(.7);Qb(b,f.Tf,"Refresh brassica",function(n){f.Tf=n},"Refresh brassica");b=d(.7);Qb(b,f.Vf,"Activate weather",function(n){f.Vf=
n},"Activate weather");b=d();Ba(b.a);ta(b.a);var l=z(function(n){n.a.h.innerText="Chosen weather: "+["sun","mist","rainbow"][f.Ie]},b,a);A(b.a,function(){xC(function(n){f.Ie=n;l()})});l();b=d(.7);Qb(b,f.Uf,"Pick up fern",function(n){f.Uf=n},"Pick up fern")}}var nD=!1;
function oD(){function a(n,p){var m=n.a.h,x="";p?(n.$a=2,x+="Auto on"):(n.$a=0,x+="Auto off");m.innerText=x;void 0!=n.$a&&(n.a.className=0==n.$a?"efAutomatonManual":1==n.$a?"efAutomatonAuto2":"efAutomatonAuto")}function b(n){n=new G(d,.01,f,n||.6,f+.08);f+=.096;return n}nD=!0;var d=La({onclose:function(){nD=!1},Ba:!0,title:"Configure auto actions",zb:'Auto-action lets the automaton perform actions after a certain trigger condition is met, such as overriding the field with another blueprint at a chosen tree level. You must configure both a trigger (when will the action be performed) and an action (what does it perform, it can do multiple things at once)<br><br>\nThe automatic blueprint is useful to get a different layout later in the run than at the start of the run. You choose your starting blueprint as usual at the start of the run, the automaton will override with the chosen one. You can also choose a fruit to match.\n<br><br>\nDuring some challenges you may want this disabled, toggle it off in the automaton tab in this case.\n<br><br>It\'s also possible to activate auto-actions manually with the "Do now" button. You can also configure the number keys to do this in the main settings under Controls.'}).content,
e=0,f=0;e=.05;var g=new G(d,.01,f,1,f+.07);g.a.innerText="Choose at which tree level to override with which blueprint";f+=e;e=Cz();for(var h=[],k=0;k<e;k++){var l=D.xa[k];1<e&&(g=b(),g.a.innerHTML="<br>Auto-action "+(k+1)+":",g.a.style.vAlign="bottom");g=b(1);g.a.innerHTML=gD(l);h.push(g);l=0;g=new G(d,l,f,l+.24,f+.07);Ba(g.a);ta(g.a);g.a.h.innerText="Edit trigger";A(g.a,z(function(n){jD(n,function(){h[n].a.innerHTML=gD(D.xa[n])})},k));l+=.25;g=new G(d,l,f,l+.24,f+.07);Ba(g.a);ta(g.a);g.a.h.innerText=
"Edit action";A(g.a,z(function(n){lD(n,function(){h[n].a.innerHTML=gD(D.xa[n])})},k));l+=.25;1<e&&(g=new G(d,l,f,l+.24,f+.07),Aa(g.a),ta(g.a),g.a.h.innerText="toggle",A(g.a,z(function(n,p){D.xa[p].enabled=!D.xa[p].enabled;a(n,D.xa[p].enabled)},g,k)),l+=.25,a(g,D.xa[k].enabled));g=new G(d,l,f,l+.24,f+.07);Ba(g.a);ta(g.a);g.a.h.innerText="Do now";A(g.a,z(function(n){CC(n)},k));C(g.a,"Do this action manually now. This ignores the action trigger, and does not affect when or whether the automaton will do this action. You can do it manually any time or multiple times indepdendently from the automaton. You can also configure the number keys to do these in the settings.");
l+=.25;f+=.072}}function pD(){aD(KC);window.setTimeout(function(){for(var a=0;a<D.D;a++)for(var b=0;b<D.B;b++){var d=D.C[a][b];(Xk(d)||d.index==Dy)&&Z({type:sC,x:b,y:a,silent:!0})}OB()},333)}
function qD(){var a=0,b=0;aD(HC);window.setTimeout(function(){for(var d=0;d<D.ea;d++)for(var e=0;e<D.fa;e++)Xk(D.ka[d][e])&&(a++,b++,Z({type:YC,x:e,y:d,silent:!0}));d=c(D.b.c);OB();e=D.b.c;a?a!=b?X("Deleted entire ethereal field, where possible"):X("Deleted entire ethereal field. All resin refunded: "+e.sub(d).toString()):X("Nothing to delete in ethereal field")},333)}
function rD(){var a=0;aD(pC);window.setTimeout(function(){for(var b=0;b<D.Ka;b++)for(var d=0;d<D.La;d++){var e=D.ta[b][d];if(Xk(e)||e.index==Dy)a++,Z({type:vC,x:d,y:b,silent:!0})}b=c(D.b.R);OB();d=D.b.R;a?X("Deleted entire ethereal field. All infinity seeds refunded: "+d.sub(b).toString()):X("Nothing to delete in infinity field")},333)}
function sD(){function a(B){var K=B.a.h;D.Md?(K.innerText="Automation on",B.$a=1):(K.innerText="All automation off",B.$a=0);d()}function b(){h+=.02;var B=new G(tD,.01,h,1,h+.01);B.a.innerHTML="<hr>";h+=.02;return B}function d(){for(var B=0;B<l.length;B++)e(l[B])}function e(B){void 0!=B.$a&&(B.a.className=!D.Md&&!B.Sl||B.Ok&&!B.Ok()?"efAutomatonGlobalOff":B.$a?"efAutomatonAuto":"efAutomatonManual")}function f(B){h-=.096;var K=new G(tD,[.4,0,.2,.08],h,[.4,0,1.2,.08],h+.08,1);h+=.096;B||l.push(K);Ba(K.a);
B=K.a;ta(B);B.h.style.lineHeight="100%";ua(K.a,"configure");K.a.h.innerText="\u2699";K.a.h.title="Configure";return K}function g(B){var K=new G(tD,k+.01,h,k+.4,h+.08);h+=.096;B||l.push(K);return K}tD.clear();$a(tD);var h=0,k=0,l=[];if(kq()){var n=new G(tD,[1,0,-.25],[0,0,.01],[1,0,-.06],[0,0,.2]);var p=Va("0%","0%","100%","100%",n.a);Wa(We[4],p);Aa(n.a,!0);A(n.a,function(){var B=La({zb:uD,title:"Automaton features unlock sources",Ba:!0});var K="This is what unlocked the automaton features you got so far:<br/><br/> \u2022 Automaton itself: unlock automaton upgrade (ethereal tree level 1)<br/> \u2022 Blueprints and templates: initial<br/> \u2022 Clear / Plant entire field buttons: initial<br/> \u2022 Neighbor bonus in ethereal field: initial<br/> \u2022 Auto-plant (blueprints, and increase crop tier when unlocked): initial<br/>";
qq()&&(K+=" \u2022 Auto-upgrades: no-upgrades challenge (ethereal tree level 2)<br/>");yz()&&(K+=" \u2022 Finetuning options for auto-plant and auto-upgrades costs: no-upgrades challenge stage 2<br/>");wz()&&(K+=" \u2022 Automation of choice upgrades: no-upgrades challenge (ethereal tree level 2)<br/>");oq()&&(K+=" \u2022 Auto-unlock: blackberry challenge (ethereal tree level 3)<br/>");Bz()&&(K+=" \u2022 Auto-action: wither challenge (ethereal tree level 5)<br/>");2<=Cz()&&(K+=" \u2022 Extra auto-action slots: further wither challenge stages<br/>");
Fz()&&(K+=" \u2022 Auto-action weather, brassica refresh and fern: wither challenge stage 4<br/>");Ez()&&(K+=" \u2022 Auto-prestige: truly basic challenge<br/>");B.content.a.innerHTML=K},"automaton icon");n=.07;p=new G(tD,.01,h,1,h+.07);p.a.innerText="Toggle on or off all automation:";h+=n;p=g();Aa(p.a);ta(p.a);a(p);A(p.a,z(function(B){D.paused?(D.Md=!D.Md,a(B),uB()):(Z({type:vD,jc:0,Xb:!D.Md,Qa:function(){a(B)}}),OB())},p));p.Sl=!0;p.$a=!0;b();var m=h;n=.07;p=new G(tD,.01,h,1,h+.07);p.a.innerText=
"Special actions:";var x=h+=n;p=g();Ba(p.a);ta(p.a);p.a.h.innerText="Clear entire field";A(p.a,pD);C(p.a,"Immediately delete all crops from the entire field");p=g();Ba(p.a);ta(p.a);p.a.h.innerText="Plant entire field...";A(p.a,z(function(){aD(KC);wD(0,0,!1,!1,!0)}));C(p.a,"Plant a chosen crop in all open spots in the field, as resources allow.");qx()&&(k=.41,h=x);p=g();Ba(p.a);ta(p.a);p.a.h.innerText="Clear ethereal field";p.a.style.textShadow="0px 0px 5px #ff8";A(p.a,qD);C(p.a,"Delete all crops from the ethereal field. Only succeeds if deleting is possible at this time. As usual, all resin is refunded. Note that this will also delete the automaton itself, so this will disable the automaton tab until you place the automaton back.");
qx()&&(p=g(),Ba(p.a),ta(p.a),p.a.h.innerText="Clear infinity field",p.a.style.textShadow="0px 0px 5px #88f",A(p.a,rD),C(p.a,"Immediately delete all crops from the infinity field. All infinity seeds will be refunded as usual."),k=0);x=void 0;qq()?oq()?Bz()||(x="Reach ethereal tree level 5 and beat the wither challenge to unlock auto-action"):x="Reach ethereal tree level 3 and beat the blackberry challenge to unlock auto-unlock of next-tier plants":x="Reach ethereal tree level 2 and beat the no upgrades challenge to unlock auto-upgrades";
void 0!=x&&(p=new G(tD,.5,m+n,.9,m+3*n),p.a.innerText=x,p.a.className="efGoal");(qq()||wz())&&b();if(wz()){n=.07;p=new G(tD,.01,h,1,h+.07);p.a.innerText="Automate choice upgrades:";C(p.a,"Automate the choice upgrades that the tree drops at certain levels.\nThe choice is automatically made at the moment the corresponding upgrade unlocks, but not after the fact.");h+=n;var t=function(B){var K=B.a.h;D.md?(K.innerText="Auto-choice on",B.$a=1):(K.innerText="Auto-choice off",B.$a=0);e(B)};p=g();Aa(p.a);
ta(p.a);t(p);A(p.a,z(function(B){var K=D.md;D.paused?(D.md=D.md?0:1,t(B),uB()):(Z({type:vD,jc:4,Xb:D.md?0:1,Qa:function(){t(B)}}),OB());if(!K){K=!1;for(var N=0;N<D.Hc.length;N++)if(1<D.Hc[N]){K=!0;break}K||fD()}},p));p=f();A(p.a,function(){fD()})}if(qq()){n=.1;p=new G(tD,.01,h,1,h+.07);p.a.innerText="Automate crop upgrades:";C(p.a,"Automatically upgrade crops. Only performs upgrades that boost crops for crops planted in the field, and up to the max cost that you can choose.");h+=n;var y=function(B){var K=
B.a.h;D.Zc?(K.innerText="Auto-upgrades on",B.$a=1):(K.innerText="Auto-upgrades off",B.$a=0);e(B)};p=g();Aa(p.a);ta(p.a);y(p);A(p.a,z(function(B){D.paused?(D.Zc=D.Zc?0:1,y(B),uB()):(Z({type:vD,jc:1,Xb:D.Zc?0:1,Qa:function(){y(B)}}),OB())},p));p=f();A(p.a,function(){dD(0)});n=.1;p=new G(tD,.01,h,1,h+.07);p.a.innerText="Auto-upgrades done: "+D.rd;h+=n;var u=p,v=D.rd;xD(function(){if(!u||!document.body.contains(u.a))return!1;v!=D.rd&&(u.a.innerText="Auto-upgrades done: "+D.rd,v=D.rd);return!0})}b();if(Vp()){n=
.1;p=new G(tD,.01,h,1,h+.07);p.a.innerText="Auto-plant:";C(p.a,"Automatically plants crops. Only replaces existing crops to higher tiers of the same type (e.g. berries stay berries), does not plant anything on empty field cells.");h+=n;var w=function(B){var K=B.a.h;D.nc?(K.innerText="Auto-plant on",B.$a=1):(K.innerText="Auto-plant off",B.$a=0);e(B)};p=g();Aa(p.a);ta(p.a);w(p);A(p.a,z(function(B){D.paused?(D.nc=D.nc?0:1,w(B),d(),uB()):(Z({type:vD,jc:2,Xb:D.nc?0:1,Qa:function(){w(B);d()}}),OB())},p));
p=f();A(p.a,function(){dD(1)});n=.1;p=new G(tD,.01,h,1,h+.07);p.a.innerText="Auto-plants done: "+D.qd;h+=n;u=p;v=D.qd;xD(function(){if(!u||!document.body.contains(u.a))return!1;v!=D.qd&&(u.a.innerText="Auto-plants done: "+D.qd,v=D.qd);return!0});var q=function(B){var K=B.a.h;D.Ld?(K.innerText="Auto-unlock on",B.$a=1):(K.innerText="Auto-unlock off",B.$a=0);e(B)};oq()&&(p=g(),p.Ok=function(){return!!D.nc},Aa(p.a),ta(p.a),q(p),A(p.a,z(function(B){D.paused?(D.Ld=D.Ld?0:1,q(B),uB()):(Z({type:vD,jc:3,Xb:D.Ld?
0:1,Qa:function(){q(B)}}),OB())},p)),p=f(),A(p.a,function(){dD(2)}))}b();if(Bz()){n=.07;p=new G(tD,.01,h,1,h+.07);p.a.innerText="Automaton auto-action:";C(p.a,"Allows to perform an action, such as override blueprint (overplant the field with a different chosen blueprint) at a configurable trigger condition (such as tree level reached).");h+=n;var F=function(B){var K=B.a.h;D.Gc?(K.innerText="Auto-action on",B.$a=1):(K.innerText="Auto-action off",B.$a=0);e(B)};p=g();Aa(p.a);ta(p.a);F(p);A(p.a,z(function(B){var K=
D.Gc;D.paused?(D.Gc=D.Gc?0:1,F(B),uB()):(Z({type:vD,jc:5,Xb:D.Gc?0:1,Qa:function(){F(B)}}),OB());if(!K){K=!1;for(var N=0;N<D.xa.length;N++){var O=D.xa[N];if(O.Vd||0<O.ac||O.ne||0<O.wd||0<O.time){K=!0;break}}K||oD()}},p));p=f();A(p.a,function(){oD()})}}else n=.1,p=new G(tD,.01,h,1,h+.07),p.a.innerHTML="<br><br>Place automaton in the ethereal field first to unlock the automation features of this tab. You can plant it there like any other ethereal crop.",h+=.2,p=g(),Ba(p.a),ta(p.a),p.a.h.innerText="Go to ethereal field now",
p.a.style.textShadow="0px 0px 5px #ff8",A(p.a,function(){aD(HC)})};function yD(a){var b=!1,d="",e=rz();if(!a||e.T(0))b=!0,d+="\u2022 "+e.toString()+" resin from tree level "+D.j,d+="<br>",d=tb(D.b.c,0)?d+("\u2022 Unused resin boost: "+L(jh(Qk(e),1))+"<br/>"):d+("\u2022 Unused resin boost (including existing): "+L(jh(Qk(e.add(D.b.c)),1))+"<br/>");e=sz();if(!a||e.T(0))b=!0,d=0==D.ha?d+("\u2022 "+e.toString()+" twigs from mistletoes (not yet available on first transcend)"):d+("\u2022 "+e.toString()+" twigs from mistletoes"),d+="<br>";if(D.j>=fu){b=!0;d+="\u2022 "+
oz().Z+" fruit essence from "+D.ca.length+" fruits in the sacrificial pool (see fruit tab)<br/>";for(var f=e=a=0;f<D.Y.length;f++)a=Math.max(a,D.Y[f].l);for(f=0;f<D.ca.length;f++)e=Math.max(e,D.ca[f].l);e>a&&(d+='<span class="efWarningOnDialogText">\u2192 Warning: you have a fruit in sacrificial pool of higher tier than any stored fruit, check the fruit tab if you want to keep it</span><br/>')}b||(d+="\u2022 Nothing. But, see current challenge rules for challenge specific rewards.<br/>");return d}
function GC(a){function b(){Z({type:zD,challenge:0});Oa();OB();return!0}AD=BD=!1;var d=void 0,e=void 0,f=!1;D.Qd&&(d="challenges",D.Nh&&(d="challenges\n(new!)"),e=function(){CD();return!0},f=!0);var g=void 0,h=void 0,k=void 0,l=!1;Vp()&&D.Dh&&(g="with blueprint",h=function(){JC(!0);return!0},l=!0);k=function(n){var p=r.Wd(n),m=r.vd(n);!l||"b"!=n.key&&"B"!=n.key||m||BD||JC(!0);!f||"c"!=n.key&&"C"!=n.key||m||AD||CD();"Enter"!=n.key||p||m||b()};h&&!e&&(e=h,d=g,g=h=void 0);d=La({size:2,ib:[b,e,h],names:["transcend",
d,g],qc:"cancel",fe:k,title:a?"New regular run":"Transcension",pb:"efDialogEthereal"}).content;e="";a||(e+="Transcension starts a new basic field. Your first transcension also unlocks an ethereal field. On this field you can plant ethereal crops with resin. These crops give bonuses to the basic field in various ways. Resin can also be used for other ethereal upgrades. Unused resin also gives a slight boost. <br/>");e=e+"<br/>You will get:<br/>"+yD(a);e+="<br/>What will be reset:<br/>\u2022 Basic field with all crops<br/>\u2022 Basic upgrades<br/>\u2022 Basic resources: seeds, spores<br/>\u2022 Tree level<br/>\u2022 Fruits in the sacrificial pool";
D.ca.length&&(e+=" (you have: "+D.ca.length+" fruits in there)");e+="<br/>";D.qa.ma.T(0)&&(e+="\u2022 Some types of activated amber effects<br/>");e=e+"<br/>What will be kept:<br/>\u2022 Achievements<br/>\u2022 Resin, twigs and fruit essence<br/>\u2022 Ethereal field and ethereal crops<br/>\u2022 Ethereal upgrades<br/>\u2022 Fruits in the storage slots (have: "+(D.Y.length+")<br/>");e+="\u2022 Current season<br/>";D.qa.ma.T(0)&&(e+="\u2022 Amber resource<br/>");zt()&&(e+="\u2022 Nuts and squirrel upgrades<br/>");
d.a.innerHTML=e+"<br/><br/>"};function DD(a,b,d){var e=qp[a],f=D.P[a],g=!1,h=void 0,k=void 0,l=void 0,n=void 0,p=void 0;b||(h=function(){Z({type:zD,challenge:e.index});Oa();OB();return!0},k="start",kq()&&D.Dh&&Pv(a)&&(n="with blueprint",l=function(){JC(!0,a);return!0},g=!0,p=function(m){var x=r.Wd(m),t=r.vd(m);!g||"b"!=m.key&&"B"!=m.key||t||BD||JC(!0,a);"Enter"!=m.key||x||t||h()}));b=La({ib:[h,l],names:[k,n],fe:p,title:ma(e.name),Ba:!0});k=""+e.description;k=k+"<br><br><b>Challenge rules:</b><br>"+e.$l;e.Fc&&e.Ke&&e.lc&&e.Le&&
e.kc?(k=zt()?k+"\u2022 You can gain resin, twigs, nuts and fruits as usual (but they only become available at at least tree level 10)":k+"\u2022 You can gain resin, twigs and fruits as usual (but they only become available at tree level 10)",k+="<br>"):e.Fc&&e.Ke&&e.lc&&!e.Le&&e.kc?(k+="\u2022 You can gain resin, twigs and fruits as usual (but they only become available at tree level 10)",zt()&&(k+="<br>\u2022 No nuts can be grown during this challenge"),k+="<br>"):e.Fc||e.Ke||e.lc||e.Le?(k=e.Fc?
e.kc?k+"\u2022 Tree gains resin as usual, but it's only available when reaching at least level 10":k+"\u2022 Tree gains resin as usual, but it's only available when reaching at least level 10 and not when reaching higher level than highest regular run":k+"\u2022 Tree does not gain any resin",k+="<br>",k=e.Ke?e.kc?k+"\u2022 Tree drops fruits as usual, but the level 5 fruit is dropped at level 10 instead":k+"\u2022 Tree drops fruits as usual, but the level 5 fruit is dropped at level 10 instead, and no fruits are dropped above highest level ever reached with a regular run":
k+"\u2022 Tree does not drop any fruits",k+="<br>",k=e.lc?e.kc?k+"\u2022 Twigs can be gained from mistletoes as usual, but they're only available when reaching at least level 10":k+"\u2022 Twigs can be gained from mistletoes as usual, but they're only available when reaching at least level 10 and not when reaching higher level than highest regular run":k+"\u2022 No twigs can be gained from mistletoes",k+="<br>",zt()&&(k=e.Le?k+"\u2022 Nuts crops can be grown as usual (once high enough tree level reached to unlock them)":
k+"\u2022 No nuts can be grown during this challenge",k+="<br>")):(k=zt()?k+"\u2022 You cannot gain any resin, twigs, nuts or fruits during this challenge":k+"\u2022 You cannot gain any resin, twigs or fruits during this challenge",k+="<br>");l=e.uf(d);k+="<br><b>Goal:</b><br>";k=1<e.ja.length?k+("\u2022 Reach <b>tree level "+l+"</b> to successfully complete the next stage of the challenge, or reach any other max level to increase challenge production bonus.<br>\u2022 This challenge has ")+(e.ja.length+
" stages in total, each gives 1 reward, you can complete only 1 stage at the time"):k+("\u2022 Reach <b>tree level "+e.ja[0]+"</b> to successfully complete the challenge, or reach any other max level to increase challenge production bonus.");k+="<br>";k+="<br>";k+="<b>Rewards:</b>";k+="<br>";e.Nc(d)||(k=1<e.ja.length&&0<f.X?k+("\u2022 Next completion reward (at level "+l+"): "+e.Wc[e.vf(d)]):k+("\u2022 Reward (at level "+l+"): "+e.Wc[0]),k+="<br>");k+="\u2022 Max level reached with this challenge gives <b>("+
SB(e,e.ga?void 0:L(e.qb))+") production bonus</b> per level to the game, whether successfully completed or not. The bonus applies to seeds and spores, and 1/100th of it to resin and twigs.";if(e.ga)for(k+="<br>",k+="\u2022 <b>bonus</b> value itself depends on cycle, respectively: ",l=0;l<e.ga;l++)k+=(l?", ":"")+L(e.Yh[l]);k+="<br>";e.ld&&(k+="\u2022 This challenge uses the alternate bonus pool, it is part of a separate multiplier and so has more effect than regular challenges",k+="<br>");e.If&&(k+=
"\u2022 This challenge is capped to level "+e.If+" and gives no further bonus after that.",k+="<br>");if(1<e.ja.length){k+="\u2022 All reward target level stages (can only complete one per run): ";for(l=0;l<e.ja.length;l++)k+=(l?", ":"")+e.ja[l];k+="<br>"}for(l=0;l<f.X;l++)k+="\u2022 Reward gotten: "+e.Wc[l],k+="<br>";k+="<br>";k+="<b>Current stats:</b><br>";k+=ED(a,d);k+="<br>";k+="<b>This challenge was unlocked by:</b> "+e.nl;b.content.a.innerHTML=k}
function ED(a,b){var d=qp[a],e=D.P[a],f=D.challenge==d.index,g="";if(1<d.ga){a=e.tb%d.ga;var h=Math.max(e.mb[a],f?D.j:0);f?(g+="\u2022 Current cycle: "+(a+1)+" of "+d.ga,g=g+"<br>\u2022 Next cycle: "+((e.tb+1)%d.ga+1+" of "+d.ga)):g+="\u2022 Next cycle: "+(a+1)+" of "+d.ga;g+="<br>";if(f){g+="\u2022 Max levels reached: ";for(var k=0;k<d.ga;k++)g+=(k?", ":"")+e.mb[k],k==a&&(g+=" <b>(after: "+h+")</b>");g+="<br>\u2022 Production bonuses: ";for(k=0;k<d.ga;k++)g+=(k?", ":"")+L(Lu(d.index,e.mb[k],k)),
k==a&&(g+=" <b>(after: "+L(Lu(d.index,h,a))+")</b>")}else{g+="\u2022 Max levels reached: ";for(k=0;k<d.ga;k++)g+=(k?", ":"")+e.mb[k];g+="<br>\u2022 Production bonuses: ";for(k=0;k<d.ga;k++)g+=(k?", ":"")+L(Lu(d.index,e.mb[k],k))}g+="<br>"}else h=Math.max(e.cb,f?D.j:0),f?(g+="\u2022 Max level reached before: "+e.cb+", <b>after: "+h+"</b><br>",a=Nu(a,h),g+="\u2022 Production bonus before: "+L(Lu(d.index,e.cb))+", <b>after: "+L(Lu(d.index,h))+"</b>"+(d.ld?" (alternate multiplier)":"")+". Total (all challenges) before: "+
L(D.bc)+", <b>after: "+L(a)+"</b><br>"):(g+="\u2022 Max level reached: "+e.cb+"<br>",g+="\u2022 Production bonus: "+L(Lu(d.index,e.cb))+"<br>");g=f?g+("\u2022 Times ran (excluding the current run): "+e.aa+", times successful: "+e.tb+"<br>"):g+("\u2022 Times ran: "+e.aa+", times successful: "+e.tb+"<br>");1<d.ja.length&&d.Nc(b)?(g+="\u2022 Fastest first stage target level time: "+(e.Db?r.I(e.Db):"--")+"<br>",g+="\u2022 Fastest final stage target level time: "+(e.Ic?r.I(e.Ic):"--")+"<br>"):g+="\u2022 Fastest target level time: "+
(e.Db?r.I(e.Db):"--")+"<br>";g+="\u2022 Completed: "+(1!=d.ja.length&&d.vf(b)?""+d.vf(b)+" of "+d.ja.length:d.vf(b)?"yes":"no")+"<br>";e.aa&&(g=d.index==D.challenge?g+"\u2022 last time ran: now<br>":e.pf?g+("\u2022 Last time ran: "+r.I(r.getTime()-e.pf,void 0,1)+" ago<br>"):g+"\u2022 Last time ran: unknown<br>");return g}function FD(a,b){return a&&b?"Finish challenge":a&&!b?"End challenge":b?"Complete challenge":"Abort challenge"}var AD=!1;
function CD(a){AD=!0;var b=La({onclose:function(){AD=!1},title:"Challenge",pb:"efDialogEthereal"}).content,d=new G(b,[0,0,.01],[0,0,.01],[1,0,-.01],.33),e="";e=(a?e+"You end a challenge as usual, but start another new challenge rather than a regular run. Choose a challenge below to view its description.<br/><br/>Regular transcension resources gotten...:<br/>":e+"You transcend as usual, but start a challenge rather than a regular run. Choose a challenge below to view its description.<br/><br/>You get the usual transcension resources:<br/>")+
yD(a);d.a.innerHTML=e;a=new G(b,0,.32,1,1);for(d=b=0;d<xq.length;d++){var f=qp[xq[d]],g=D.P[xq[d]];if(g.f){var h=!f.vf(!0),k=!f.Nc(!0),l=new G(a,.2,b,.8,b+.075);b+=.07875;Ba(l.a);var n=D.challenge==f.index;e=ma(f.name);if(h)e+=" (New!)";else if(k)e+=" ("+Math.max(g.cb,n?D.j:0)+" / "+f.uf(!0)+")";else if(1<f.ga)if(f.Ak(!0)){e+=" (";for(h=0;h<f.ga;h++)e+=(0<h?", ":"")+g.mb[h];e+=")"}else e+=" (New cycle!)";else e+=" ("+Math.max(g.cb,n?D.j:0)+")";l.a.h.innerText=e;l.a.onclick=z(function(p){DD(p.index,
!1,!0)},f);e=ED(xq[d],!0);C(l.a,e)}}}
function FC(){AD=BD=!1;var a=void 0,b=void 0,d=void 0,e=!1;kq()&&D.Dh&&(a="with blueprint",b=function(){JC(!0);return!0},e=!0);d=function(l){var n=r.Wd(l),p=r.vd(l);!e||"b"!=l.key||n||p||BD||JC(!0);"c"!=l.key||n||p||AD||CD()};var f=qp[D.challenge],g=D.P[D.challenge],h=f.Nc(),k=D.j>=f.uf();a=La({ib:b,names:a,fe:d,title:FD(h,k),pb:"efDialogEthereal"});b="";b=ma(f.name)+"<br>";h||(b=1<f.ja.length&&0<g.X?k?b+"You successfully completed the next stage of the challenge for the first time!<br><br>Reward: "+f.Wc[g.X]:
b+"You didn't successfully complete the next stage of the challenge, but can still get the challenge bonus for highest tree level reached.":k?b+"You successfully completed the challenge for the first time!<br><br>Reward: "+f.Wc[0]:b+"You didn't successfully complete the challenge, but can still get the challenge bonus for highest tree level reached.");k=g.cb;h=void 0;1<f.ga&&(h=f.li(),k=g.mb[h]);0<g.aa&&(b=b+"<br><br>Previous highest level: "+g.cb,f.ga&&(b+=" (previous matching cycle: "+k+")"),b=
b+"<br>Current level: "+D.j);g=Math.max(D.j,k);b=b+"<br><br>Production bonus from challenge max reached level"+((1<f.ga?" for this cycle":"")+":<br>");b+="\u2022 Before (level "+k+"): "+L(Lu(D.challenge,k,h))+" ("+L(D.bc)+" total for all challenges)<br>";D.j>k?(k=Nu(f.index,g),b+="\u2022 After (level "+g+"): "+L(Lu(D.challenge,g,h))+" ("+L(k)+" total for all challenges)<br>",f.ld&&(b+="\u2022 This challenge uses the alternate bonus pool, it is part of a separate multiplier and so has more effect than regular challenges<br>")):
b+="\u2022 After stays the same, max level not beaten";a.content.a.innerHTML=b+"<br><br>You can now choose to start a new regular run, or any challenge of your choice, from the beginning.";f=new G(a.content,.25,.6,.75,.8);g=(new G(f,0,0,1,.3,1)).a;Ba(g);g.h.innerText="Start regular run";g.h.style.textShadow="0px 0px 5px #ff0";C(g,"Show the transcension dialog");A(g,function(){GC(!0)});g=(new G(f,0,.32,1,.6,1)).a;Ba(g);g.h.innerText="Start a new challenge";g.h.style.textShadow="0px 0px 5px #f60";C(g,
"Transcend and start a challenge");A(g,function(){CD(!0)})}function SB(a,b){b=b||"bonus";return a.Pe?b+" * max(0, level - "+(a.Pe-1)+") ^ "+a.Hf:b+" * level ^ "+a.Hf}var GD=void 0;function HB(){GD&&(Ua(GD,zb),GD=void 0)}
function HD(){var a=D.challenge;HB();var b=qp[a];a=D.P[a];GD=new G(zb,.2,.85,.8,.95);GD.a.style.backgroundColor="#fcce";GD.a.style.zIndex=15;var d=new G(GD,.01,[.5,0,-.35],.99,[.5,0,.35]);d.a.style.color="#000";ta(d.a);var e="Challenge Completed!";1<b.ja.length&&(0<a.X&&a.X+1<b.ja.length?e="Next challenge stage completed!":a.X+1>=b.ja.length&&(e="Final challenge stage completed!"));d.a.h.innerHTML=e+'<br><br>"'+ma(b.name)+'"';A(GD.a,HB)}var ID=void 0;function JD(){ID&&(Ua(ID,zb),ID=void 0)}
function KD(a){JD();a=qp[a];ID=new G(zb,.2,.85,.8,.95);ID.a.style.backgroundColor="#fcce";ID.a.style.zIndex=15;var b=new G(ID,.01,[.5,0,-.35],.99,[.5,0,.35]);b.a.style.color="#000";ta(b.a);b.a.h.innerHTML='Challenge Unlocked!<br><br>"'+ma(a.name)+'"';A(ID.a,JD)};var LD;function MD(a,b,d){var e="<br/>"+d+":<br/>";for(d=0;d<a.length;d++){e+="\u2022 "+a[d][0];var f=a[d][2];if(a[d][1])if(pb(f,0)&&ub(f,.05)){var g=new c(1);g.Tb(f);e+=": \u00f7 "+g.toString()}else(g=L(jh(f,1)))&&"-"!=g[0]&&"+"!=g[0]&&(g="+"+g),void 0!=f&&0<d&&(e+=": "+g);else void 0!=f&&0<d&&(e+=": "+f.toString());f=a[d][3];void 0!=f&&(e+=0==d?": ":" \u21d2 ",e=b?e+L(f):e+f.toString());e+="<br/>"}return e}
function ND(a,b,d){var e=D.U[b.index],f=ma(b.name);null!=b.Ma&&(f+=" level "+D.i[b.Ma].count);var g=bk[a.y][a.x];if(b.Nb)return f+="<br/><br/>This template represents all crops of type "+ij(b.type),f+'<br/><br/>It is a placeholder for planning the field layout and does nothing.<br><br>Templates are a feature provided by the automaton.<br><br>Tip: ctrl+shift+click, or press "u", on a template to turn it into a crop of highest available tier of this type';if(b.Ab)return f+="<br/><br/>ghostly remainder of a "+
ij(b.type)+", does nothing. Automaton won't touch this either.";f+="<br/>";f=e.sa?f+("Crop type: "+ij(b.type)+(b.l?" (tier "+(b.l+1)+", prestige: "+e.sa+"x)":"")):f+("Crop type: "+ij(b.type)+(b.l?" (tier "+(b.l+1)+")":""));(e=jj(b.type))&&(f+="<br/>"+e);b.Gd&&(f+="<br/><br/>"+ma(b.Gd));f+="<br/><br/>";b.type!=Yi||g.Cc||(f+='<font color="#f88">This mistletoe is not planted next to the tree and therefore does nothing at all. Plant next to tree to be able to get twigs.</font><br/><br/>');b.index!=Ol||
g.ci||(f+='<font color="#f88">This worker bee is not next to a flower and therefore does nothing at all. Plant next to a flower to get worker bee boost.</font><br/><br/>');if(e=1>a.F&&b.type!=Vi&&D.challenge!=Rj){D.challenge==Rj?f+="Withering. Time left: "+r.I(120*a.F):d?(f+="Growing. Total growing time: "+r.I(b.za()),b.za()!=b.Ra&&(f+=" (base: "+r.I(b.Ra)+")")):f+="Growing. Time to grow left: "+r.I((1-a.F)*b.za(),!0,4,!0)+" (of: "+r.I(b.za(),!0,4,!0)+")";f+="<br/><br/>";var h=b.Eb(a,2),k=ok(b,a,
2),l=Nl(b,a,2);h.empty()||(f+="Current production/sec: "+b.Eb(a,0).toString()+"<br>",f+="Expected production/sec: "+h.toString(),D.challenge==$l&&(f+="<br>NOTE: this production is only accessible through copying with watercress etc... during the wasabi challenge!"));k.T(0)&&(h=ok(b,a,0),h.T(0)&&(f+="Current boost: "+L(h)+"<br>"),f+="Expected boost: "+L(k));l.T(0)&&(h=Nl(b,a,0),h.T(0)&&(f+="Current boost: "+L(h)+"<br>"),f+="Expected boost: "+L(l));f+="<br/>"}else if(b.type==Vi){if(d)f+="Short-lived plant. Total lifetime: "+
b.za()+"s<br/><br/>",f+="Copy ability: if this plant has orthogonal (non-diagonal) berry or mushroom neighbors, the watercress will duplicate all their production (but also consumption), no matter what tier. This has diminishing returns if there are multiple watercress in the field, max 2 watercress makes sense. A badly placed watercress can negatively affect the copying of others. At early game, having many watercress is useful though due to their regular (non-copy) production.<br/>";else if(k="Short-lived plant",
l=a.F,Xl(b,a)&&(k="Short-lived, end of life but weakly active",l=0),f+=k+". Time left: "+r.I(l*b.za(),!0,4,!0)+" of "+r.I(b.za(),!0,4,!0)+"<br/>",D.i[Io].count||0<D.ha){f+='<br/><span class="efWatercressHighlight">Copies neighbors: Duplicates full production of long-lived berry and mushroom neighbors for free, but copies less if there are more brassica on the whole field, so try to get a few well-placed brassica instead.';if(oj()||!D.$[ql].count)f+=" (note: mushroom copy also consumes more seeds)";
f+="</span><br/>"}f+="<br/>"}else D.challenge==Rj?f+="Withering. Time left: "+r.I(120*a.F,!0,4,!0)+"<br/><br/>":(f+="Grow time: "+r.I(b.za()),b.za()!=b.Ra&&(f+=" (base: "+r.I(b.Ra)+")"),f+="<br/><br/>");k=g.Uc;l=g.jd;D.challenge==$l&&b.type!=Vi&&g.lk&&(k=g.lk,l=g.dl);k.empty()&&b.type!=Si&&b.type!=S&&b.type!=dj||(D.challenge==$l&&b.type!=Vi?f+="Copyable production per second: "+k.toString()+"<br/>":e||(f+="Production per second: "+k.toString()+"<br/>"),b.type==Vi&&(e=g.Rk())&&e.length&&(e=e[e.length-
1][3])&&e.T&&e.T(0)&&(f+="Copying: "+L(e)+"<br/>"),e=k,ub(e.g,0)||ub(e.A,0)||ub(e.c,0)||ub(e.G,0)||ub(e.S,0)||ub(e.R,0)||ub(e.ma,0)||ub(e.Z,0)||b.type==Si?l.xc(k)?b.type==Si?(f+="Needs more seeds, requires berries as neighbors.<br>Potential max production: "+l.toString()+"<br/>",f+="Satisfied: no ("+L(k.g.a(l.g))+")<br/>"):b.type!=Vi&&(f+="Needs more input resources, potential max production: "+l.toString()+"<br/>"):f+="Satisfied: fully ("+L(g.ni.g.a(g.He.g))+")<br/>":!g.Uc.xc(g.Hb)||ub(g.Hb.g,0)&&
pb(g.Hb.g,-1E-6)||(f+="After consumption: ",f=g.Hb.empty()&&OD()?f+"none: a mushroom is consuming all seeds. Plant high tier berries away from a mushroom to get some income for upgrades.":f+g.Hb.toString(),f+="<br/>"),f+="<br/>");b.type==Si&&(f+="Efficiency: "+l.A.a(l.g.Rc()).toString()+" spores/seed, "+l.g.a(l.A.Rc()).toString()+" seeds/spore<br/>");b.index==Ol&&(f+="Global field-wide boost to berries, flowers and mushrooms: "+L(g.va)+" (base: "+L(b.va)+")<br/>",f+="All worker bees together: "+L(D.Ph)+
"<br/>",f+="<br/>");b.index==Pl&&(f+="Boost to neighbor worker bees: "+L(g.va)+" (base: "+L(b.va)+")<br/>",f+="<br/>");b.index==Ql&&(f+="Boost to neighbor drones: "+L(Nl(b,a))+" (base: "+L(b.va)+")<br/>",f+="<br/>");!b.va.T(0)||b.type!=Ti&&b.type!=Ui||(f=b.type==Ui?f+("Boosting spores: "+L(ok(b,a))+". Nerfing orthogonally neighboring berries and flowers<br/>"):f+("Boosting neighbors: "+L(ok(b,a))+"<br/>"),f+="<br/>");b.va.T(0)&&b.type==Zi&&(f+="Boosting flowers: "+L(Nl(b,a))+"<br/>",f+="<br/>");g=
b.ub();e=[void 0];a=PD(a.x,a.y,e,!0);d?(f+="Num planted of this type: "+D.eb[b.index]+"<br>",f=f+"<br/>Cost: <br> \u2022 Base planting cost: "+(b.V.toString()+"<br>"),f+=" \u2022 Last planting cost: "+b.O(-1).toString()+"<br>",b.type!=cj&&(f+=" \u2022 Next planting cost: "+b.O().toString()+"<br>"),f+=" \u2022 Recoup on delete: "+g.toString(),a&&e[0]&&(f+="<br/> \u2022 Next tier cost: "+e[0].toString()+" ("+ob(e[0])+")")):(b.type!=cj&&(f+=" \u2022 Next planting cost (p): "+b.O().toString()+" ("+ob(b.O())+
")<br>"),f+=" \u2022 Recoup on delete (d): "+g.toString(),a&&e[0]&&(f+="<br/> \u2022 Next tier cost (u): "+e[0].toString()+" ("+ob(e[0])+")"));return f}
function QD(){function a(){var t=!D.challenge||qp[D.challenge].Fc,y=!D.challenge||qp[D.challenge].lc,u=[],v=[];var w="<b>"+ma(Vg[ku(D.j)][0])+"</b><br/>";w+="Tree level: "+D.j+"<br/>";0==D.j&&tb(D.b.A,0)&&(w+="This tree needs to be rejuvenated first. Requires spores.<br/>");if(D.challenge){var q=qp[D.challenge],F=D.P[D.challenge],B=F.cb;1<q.ga&&(B=F.mb[F.tb%q.ga]);w+="<br>";if(0<B)D.j>B?(w+="<b>Challenge active</b>: "+ma(q.name)+". You beat your previous best of lvl "+B+" with lvl "+D.j+".",w+=" This will bring your total challenge production bonus from "+
L(D.bc)+" to "+L(Nu(D.challenge,D.j))):w+="<b>Challenge active</b>: "+ma(q.name)+". You did not yet reach your previous best of lvl "+B+".";else{w+="<b>Challenge active</b>: "+ma(q.name);B=D.bc;var K=Nu(D.challenge,D.j);B.xc(K)&&(w+=". So far, it will bring your total challenge production bonus from "+L(B)+" to "+L(K))}1<q.ja.length?q.Nc()||(w+="<br>Current challenge target level: <b>"+q.ja[F.X]+"</b>"):F.X||(w+="<br>Challenge target level: <b>"+q.ja[0]+"</b>");w+="<br>"}if(0<D.j||pb(D.b.A,0)){w+=
"<br/>";q=ju();F=D.b.A.a(ju().A);w+="Next level requires: "+q.toString()+" ("+ob(q)+", "+L(F)+") <br/>";0<D.gd&&(w+="This requirement was increased "+L(jh(iu(),1))+" by "+D.gd+" mistletoes<br/>");w+="Time at this level: "+r.I(Rv())+"<br/>";w+="<br>";t?(D.challenge&&D.j>D.Pa&&!D.challenge.kc?w+="No further resin gained during this challenge, higher level than max regular level reached":(t=D.b.A.a(ju().A),w+="Resin added at next tree level: "+nu(D.j+1,u).toString()+" (getting "+L(t)+" of this so far)"),
w=w+"<br/>Total resin ready: "+rz().toString(),w+="<br/>"):w+="The tree doesn't produce resin during this challenge.<br/>";w+="<br/>";0<D.gd&&(y?(D.challenge&&D.j>D.Pa&&!D.challenge.kc?w+="No further twigs gained during this challenge, higher level than max regular level reached":(t=D.b.A.a(ju().A),w+="Twigs added at next tree level: "+tu(v).G.toString()+" (getting "+L(t)+" of this so far)"),w=w+"<br>Total twigs ready: "+sz().toString(),w+="<br/>"):w+="The tree doesn't produce twigs during this challenge.<br/>",
w+="<br/>");w+="Tree level production boost to crops: "+L(al());0<tj(It)&&(y=hu(tj(It)).L(1),w+=" (of which "+L(y)+" multiplicative from the fruit)");w+="<br>";3==Oj()&&(w=w+"<br/>During winter, the tree provides winter warmth: +"+(L(jh(dk(),1))+" berry / mushroom stats and no negative winter effect for any crop next to the tree<br>"));D.Nh&&(w+='<br/><span class="efWarningOnDialogText">New challenge available!</span><br>');if(D.i[Aj].f||D.i[yj].f||D.i[Cj].f)w+="<br/>Abilities discovered:<br>",D.i[yj].f&&
(w+="\u2022 Sun: benefits berries when active<br>"),D.i[Aj].f&&(w+="\u2022 Mist: benefits mushrooms when active<br>"),D.i[Cj].f&&(w+="\u2022 Rainbow: benefits flowers when active<br>");u&&1<=u.length&&(w+=MD(u,!1,"Resin gain breakdown"));v&&1<=v.length&&(w+=MD(v,!1,"Twigs gain breakdown"));Yk(S)&&(w+="<br>Multiplicities:<br>");Yk(S)&&(w+="\u2022 Berry and mushroom: +"+L($k(S))+" per other of same type of max 1 tier difference<br>");Yk(Ti)&&(w+="\u2022 Flower: +"+L($k(Ti))+" per other of same type of max 1 tier difference<br>");
Yk(Zi)&&(w+="\u2022 Bee: +"+L($k(Zi))+" per other of same type of max 1 tier difference<br>");Yk(Ui)&&(w+="\u2022 Stinging: +"+L($k(Ui))+" per other of same type of max 1 tier difference<br>")}return w}var b=D.challenge||Vp()||D.Qd||D.j>=fu,d=!0,e=La({Sj:b,fe:function(t){r.Wd(t);var y=r.vd(t);!Vp()||"b"!=t.key&&"B"!=t.key||y||BD||JC(!1);!D.Qd||"c"!=t.key&&"C"!=t.key||y||AD||CD();D.j>=fu&&("t"==t.key||"T"==t.key)&&!y&&GC()},Ba:!1,onclose:function(){d=!1},Xk:!0,title:"Tree",pb:"efDialogTranslucent"}),
f=e.content,g=new G(e.icon,0,0,1,1);g=Va("0%","0%","100%","100%",g.a);Wa(Vg[ku(D.j)][1][Oj()],g);g=new G(e.icon,0,1,1,2);g=Va("0%","0%","100%","100%",g.a);Wa(Vg[ku(D.j)][2][Oj()],g);var h=new G(f,0,0,1,.65);$a(h);f=new G(f,0,.67,1,1);g=a();h.a.innerHTML=g;var k=D.j;xD(function(){if(!d)return!1;if(k!=D.j){k=D.j;var t=a();h.a.innerHTML=t}return!0});g=.05;if(D.challenge){var l=qp[D.challenge],n=D.P[D.challenge],p=l.Nc(),m=D.j>=l.uf(),x=(new G(f,.15,g,.85,g+.15,1)).a;g+=.1725;Ba(x);x.h.innerText=FD(p,
m);p&&m?C(x,"Finish the challenge. If you broke the max level record, your challenge production bonus will increase."):p&&!m?C(x,"End the challenge."):m?n.X?C(x,"Successfully finish the next stage of this challenge."):C(x,"Successfully finish the challenge for the first time."):1<l.ja.length?C(x,"Open the dialog to abort the challenge, you don't get its next reward, but if you broke the max level record, your challenge production bonus will still increase. The dialog will show the amounts."):C(x,
"Open the dialog to abort the challenge, you don't get its one-time reward, but if you broke the max level record, your challenge production bonus will still increase. The dialog will show the amounts.");x.h.style.textShadow="0px 0px 5px #f40";A(x,function(){FC()});x=(new G(f,.15,g,.85,g+.15,1)).a;g+=.1725;Ba(x);x.h.innerText="Current challenge info";C(x,"Description and statistics for the current challenge");A(x,function(){DD(D.challenge,!0,!1)})}else D.j<fu?1<=D.j&&((new G(f,.15,g,.85,g+.15)).a.innerText=
"Reach tree level "+fu+" to unlock transcension",g+=.1725):(x=(new G(f,.15,g,.85,g+.15,1)).a,g+=.1725,Ba(x),x.h.innerText="Transcension",x.h.style.textShadow="0px 0px 5px #ff0",C(x,"Show the transcension dialog"),A(x,function(){GC()}),D.Qd&&(x=(new G(f,.15,g,.85,g+.15,1)).a,g+=.1725,Ba(x),x.h.innerText="Challenges",x.h.style.textShadow="0px 0px 5px #f60",C(x,"Transcend and start a challenge"),A(x,function(){CD()})));Vp()&&(x=(new G(f,.15,g,.85,g+.15,1)).a,g+=.1725,Ba(x),x.h.innerText="Blueprints",
x.h.style.textShadow="0px 0px 5px #008",A(x,function(){JC()}));b&&(x=(new G(f,.15,g,.85,g+.15,1)).a,g+=.1725,Ba(x),x.h.innerText="Back",A(x,function(){e.Of()}))}function PD(a,b,d,e){if(!D.C[b])return null;if(a=D.C[b][a])if(a=T(a,!0)){if(a.type==$i)return null;b=e?D.eg[a.type]:D.Kb[a.type];for(var f=null;!(b<=a.l||0>b);){var g=em[a.type][b];if(!g||!D.U[g.index].f&&!e)break;void 0!=d&&(d[0]=g.O(),f=g);if(g.O().Xa(D.b)){void 0!=d&&(d[1]=!1);break}else void 0!=d&&(d[1]=!0);b--}return f}}
function NC(a,b){var d=[void 0],e=PD(a,b,d);if(e&&!d[1])return Z({type:uC,x:a,y:b,W:e,Oa:!0}),!0;d[1]?X("not enough resources for crop upgrade: have "+Gi(d[0]).toString()+", need "+d[0].toString()+" ("+ob(d[0])+")",Qv,0,0):0<=a&&a<D.B&&0<=b&&b<D.D&&Xk(D.C[b][a],!0)?0!=D.C[b][a].index&&(Xk(D.C[b][a])&&T(D.C[b][a]).Nb&&!D.i[Io].count?X("Crop not replaced, no higher tier unlocked or available. Must plant watercress first to unlock blackberry.",Qv):X("Crop not replaced, no higher tier unlocked or available",
Qv)):X("No crop to upgrade tier here. Move mouse cursor over a crop and press u to upgrade it to the next tier",Qv);return!1}
function RD(a,b){var d=D.C[b][a];if(Xk(d,!0)){var e=T(d,!0),f=La({icon:e.image[4],title:"Crop info",pb:"efDialogTranslucent"}),g=0;e.type==Vi&&(g+=.17);e.type==dj&&(g+=.15);var h=new G(f.content,0,[0,0,.01],1,.5+g),k=(new G(f.content,[0,0,.2],[.5+g,0,.01],[1,0,-.2],.565+g)).a,l=(new G(f.content,[0,0,.2],[.57+g,0,.01],[1,0,-.2],.635+g)).a,n=(new G(f.content,[0,0,.2],[.64+g,0,.01],[1,0,-.2],.705+g)).a;f=(new G(f.content,[0,0,.2],[.71+g,0,.01],[1,0,-.2],.775+g)).a;var p=void 0;$a(h);Ba(k);k.h.innerText=
"Upgrade tier";C(k,"Replace crop with the highest tier of this type you can afford, or turn template into real crop. This deletes the original crop, (with cost recoup if applicable), and then plants the new higher tier crop.");A(k,function(){NC(a,b)&&(Oa(),OB())});Ba(l);l.h.innerText="Replace crop";C(l,"Replace the crop with a new one you choose, same as delete then plant. Shows the list of unlocked crops.");A(l,function(){wD(a,b,!0,e.ub())});Ba(n);n.h.innerText="Delete crop";n.h.style.color="#c00";
C(n,"Delete crop and get some of its cost back.");A(n,function(){Z({type:sC,x:a,y:b});Oa();OB()});Ba(f);f.h.innerText="Detailed stats / bonuses";C(f,"Show breakdown of multipliers and bonuses and other detailed stats.");A(f,function(){var m=La({size:3,title:"Detailed crop stats",Ba:!0,icon:e.image[4],pb:"efDialogTranslucent"});var x=""+ND(d,e,!0);x+="<br/>";var t=d,y="";t.index==rl&&(t=sl(t));var u=sk(t)||no(t)==mn&&1==D.i[Hj].count?"Breakdown":"Preliminary breakdown",v=bk[t.y][t.x],w=v.Rk();w&&0<
w.length&&(y=v.Cj()==cj?y+MD(w,!0,u+" (copy nuts)"):y+MD(w,!0,u+" (copy)"));e.Eb(t).empty()&&e.type!=S&&e.type!=dj&&e.type!=Si&&e.type!=cj||(t=v.Dj(),y+=MD(t,!1,u+" (production/s)"));!e.va.T(0)||e.type!=Ti&&e.type!=Ui||(t=v.Dj(),y+=MD(t,!0,u+" (neighbor boost +%)"));e.va.T(0)&&e.type==Zi&&(t=v.Dj(),y+=MD(t,!0,u+" (flower boost +%)"));m.content.a.innerHTML=x+y});Fa=z(function(m,x){m=ND(m,x);m!=p&&(p=h.a.innerHTML=m)},d,e);Fa(d,e)}else d.index==Oq||d.index==Pq?QD():wD(a,b,!1)}
function SD(){TD.clear();LD=[];for(var a=0;a<D.D;a++){LD[a]=[];for(var b=0;b<D.B;b++)LD[a][b]=new UD}var d=D.B/D.D;d=new G(TD,[.5,0,-.5,d],[.5,0,-.5,1/d],[.5,0,.5,d],[.5,0,.5,1/d]);a=TD.a;var e=a.clientWidth;a=a.clientHeight;xa(d.a,"grid");ua(d.a,"basic field");b=Math.floor(e/D.B)-1;e=Math.floor(a/D.D)-1;b=e=Math.min(b,e);for(a=0;a<D.D;a++){var f=la("0",a/D.D*100+"%","100%",101/D.D+"%",d.a);xa(f,"row");for(b=0;b<D.B;b++){var g=la(b/D.B*100+"%","0",101/D.B+"%","100%",f),h=Va("0%","0%","100%","100%",
g),k=Va("0%","0%","100%","100%",g),l=la("0","0","100%","100%",g);xa(g,"cell");l.style.boxSizing="border-box";sa(l);LD[a][b].a=l;LD[a][b].canvas=k;LD[a][b].Fg=h;r.ob(l,"mouseover","fieldover",z(function(n,p){MC=n;LC=p;VD&&WD(XD)},b,a));r.ob(l,"mouseout","fieldout",z(function(n,p){n==MC&&p==LC&&(LC=MC=-1,VD&&WD(XD))},b,a));r.ob(l,"mouseup","fieldclick",z(function(n,p){window.setTimeout(function(){MC=n;LC=p;VD&&WD(XD)})},b,a));C(l,z(function(n,p){var m=sl(D.C[p][n]),x=void 0;if(D.Da&&n==D.ab&&p==D.bb)return 1<
D.ha&&2==D.Da?'Fern: provides some resource when activated.<br><br> The amount is based on production at time the fern is activated,<br>or starter resources when there is no production yet.<br><br>Extra bushy ferns give more resources, and give a small amount of resin, based on highest-earning resin run ever, once far enough in the game. Resin given by ferns is itself not included in the "highest-earning resin run" metric, and is also not included in resin/hr stats, but will be given on transcend as usual':
"Fern: provides some resource when activated.<br><br> The amount is based on production at time the fern is activated,<br>or starter resources when there is no production yet.";if(D.Gb&&n==D.Ob&&p==D.Pb)x=ol(1)?"Present: provides a random bonus when activated. Presents are a temporary festive event!":"Egg: provides a random bonus when activated. Eggs are a temporary festive event!",n=YD(),1==n&&(x+="<br>(this one feels like it contains seeds)"),2==n&&(x+="<br>(this one feels like it contains spores)");
else{if(0==m.index)return;if(m.index==Dy)x='Remains of a watercress that was copying from multiple plants. Visual reminder of good copying-spot only, this is an empty field spot and does nothing. Allows replanting this watercress with "w" key or the watercress button in the top bar.';else if(Xk(m))x=ND(m,T(m));else if(m.index==Oq||m.index==Pq)n=ju().A.sub(D.b.A).a(qb.A),ub(n,0)&&(n=c(0)),0>=D.j&&tb(D.b.A,0)?(x="a weathered tree",pb(D.b.A,0)&&(x+="<br>("+r.I(n.valueOf(),!0)+")")):(x=D.b.A.a(ju().A),
x=ma(Vg[ku(D.j)][0])+" level "+D.j+".<br>Next level requires: "+ju().toString()+"<br>("+r.I(n.valueOf(),!0)+", "+L(x)+")",x+="<br>Time at this level: "+r.I(Rv(),!0)+"<br/>")}return x},b,a,l),!0);l.style.cursor="pointer";A(l,z(function(n,p,m,x){var t=D.C[p][n],y=D.Da&&n==D.ab&&p==D.bb,u=D.Gb&&n==D.Ob&&p==D.Pb;D.Da&&n==D.ab&&p==D.bb&&(Z({type:OC,x:n,y:p}),OB());D.Gb&&n==D.Ob&&p==D.Pb&&(Z({type:ZD,x:n,y:p}),OB());if(y||u||t.index!=Oq&&t.index!=Pq)if(0==t.index||t.index==Dy){var v=x.shiftKey;x=pa(x);
if(v&&x){if(0<=D.Va&&vl[D.Va]){x=vl[D.Va];m=D.Kb[x.type];var w=em[x.type][m];x.type==$i&&(w=x);w&&D.U[w.index].f||(w=x);if(w.O().da(D.b)&&0<m){m--;var q=em[x.type][m];q&&D.U[q.index].f&&(w=q)}w.O().da(D.b)&&0<m&&(m--,(q=em[x.type][m])&&D.U[q.index].f&&(w=q));w.O().da(D.b)&&(q=em[x.type][-1])&&D.U[q.index].f&&(w=q);Z({type:tC,x:n,y:p,W:w,Oa:!0});OB()}}else v&&!x?0<=D.Va&&vl[D.Va]?(x=vl[D.Va],Z({type:tC,x:n,y:p,W:x,Oa:!0}),OB()):X("shift+click, or p, repeats last planted plant, but no last plant is set, plant the regular way first",
Qv,0,0):x&&!v?(t=Iz(),0<=t&&(Z({type:tC,x:n,y:p,W:vl[t],sc:!0}),OB())):y||u||RD(n,p)}else Xk(t,!0)&&(m=n,q=p,w=t,t.index==rl&&(w=sl(t),m=w.x,q=w.y),v=x.shiftKey,x=pa(x),v&&x?(n=T(w),(w=em[n.type][D.Kb[n.type]])&&D.U[w.index].f||(w=n),n.type==$i&&(w=n),D.Va=w.index,w.O().da(D.b)&&(D.Va=n.index),w.l>n.l&&(Z({type:uC,x:m,y:q,W:w,Oa:!0}),OB())):v&&!x?0<=D.Va&&vl[D.Va]&&(x=vl[D.Va],n=T(t),n.index==D.Va&&(n.type!=Vi&&!sk(w)||My(w)||Xk(w)&&T(w).Ab)?Z({type:sC,x:m,y:q}):Z({type:uC,x:m,y:q,W:x,Oa:!0}),OB()):
x&&!v?(t=Iz(),T(w).index==Ln&&D.b.g.Sa(100)&&0<=t?Z({type:uC,x:m,y:q,W:vl[t],sc:!0}):(Z({type:sC,x:m,y:q}),OB())):y||u||RD(n,p));else RD(n,p)},b,a,l));g=Math.round(e/16);4>g&&(g=4);g=la((b+.2)/D.B*100+"%",(a+.85)/D.D*100+"%",100/D.B*.6+"%",100/D.D*.05+"%",d.a);g.style.minHeight="5px";Da(g);LD[a][b].progress=g}}}
var $D=[0,1,0,0,1,0,1,1,0,1,1,0,1,0,1,1,1,1,0,1,1,1,1,1,0,1,0,0,1,0,1,0,1,1,1,0,0,0,1,0,0,1,1,0,1,1,0,0,1,0,0,0,0,1,1,0,1,1,0,1,1,0,1,0,1,0,1,1,1,1,1,0,1,1,1,1,1,0,1,1,0,0,1,0,0,1,0,0,1,9,1,0,1,0,1,0,1,0,0,0,0,1,0,0,1,0,0,1,1,0,1,0,1,0,1,0,1,0,0,1,0,1,0,1,1,1,1,1,1,1,1,0,0,0,1,1,1,0,0,1,0,0,1,0,0,1,0,1,1,0];function aE(a,b,d,e,f,g){a.fillStyle=f||"#840";b*=3;for(f=0;5>f;f++){f>=5-e&&(a.fillStyle=g||"#f80");for(var h=30*f+b,k=0;3>k;k++)$D[h+k]&&a.fillRect(d+k,11+f,1,1)}}
function bE(a,b,d,e,f){a=a.getContext("2d");10>b?aE(a,b,6,d,e,f):100>b?(aE(a,Math.floor(b/10),4,d,e,f),aE(a,b%10,8,d,e,f)):1E3>b?(aE(a,Math.floor(b/100),2,d,e,f),aE(a,Math.floor(b/10)%10,6,d,e,f),aE(a,b%10,10,d,e,f)):1E4>b&&(aE(a,Math.floor(b/1E3),0,d,e,f),aE(a,Math.floor(b/100)%10,4,d,e,f),aE(a,Math.floor(b/10)%10,8,d,e,f),aE(a,b%10,12,d,e,f))};var wE;
function CE(a,b,d){var e="Ethereal "+b.name;e=e+"<br/>Crop type: "+(ij(b.type)+(b.l&&Ej(b)?" (tier "+(b.l+1)+")":""));e+="<br/>";if(b.Nb)return e+="<br/><br/>This template represents all crops of type "+ij(b.type),e+'<br/><br/>It is a placeholder for planning the field layout and does nothing.<br><br>Templates are a feature provided by the automaton.<br><br>Tip: ctrl+shift+click, or press "u", on a template to turn it into a crop of highest available tier of this type';1>a.F&&(e+="Growing. Time to grow left: "+r.I((1-
a.F)*b.za(),!0,4,!0),e+="<br/><br/>");b.Zh?e+="Effect: "+b.Zh+"<br/>":b.$h&&(e+="Effect: "+b.$h+"<br/>");if(b.index==Aq){var f=cw[D.fb],g=D.nb[D.fb];e=f?e+("<br/>Upgrade time left: "+r.I(f.getTime()-g.time,!0,4)+"<br/>"):e+"<br/>Not upgrading<br/>"}if(b.type==S||b.type==Si||b.type==Ti||b.type==Ui||b.type==Zi||b.type==Vi)f=b.wc(a),e=e+"<br/>Boost amount: "+L(f),e+="<br/>";g=b.index==Lq;var h=b.index==Mq,k=b.index==Aq;1<=a.F&&(b.va.T(0)&&(e+="<br/>Boosting neighbors: "+L(zq(b,a))+"<br/>"),g&&(e+="<br/>Boosting non-lotus neighbors orthogonally and diagonally: "+
L(Qq())+"<br/>"),h&&(e+="<br/>Boosting non-lotus neighbors orthogonally and diagonally: "+L(Rq())+"<br/>"),k&&Rk(Sq)&&(e+="<br/>Boosting non-lotus neighbors orthogonally and diagonally: "+L(Tk(Sq))+"<br/>"),k&&Rk(Bq)&&(e+="Boosting lotus neighbors orthogonally and diagonally: "+L(Tk(Bq))+"<br/>"));d&&(e=e+"<br/>Num planted of this type: "+D.ad[b.index],e+="<br/>");f=[void 0];a=DE(a.x,a.y,f);g||h||k?(e+="<br/>\u2022 Cost: "+b.V.toString(),e+="<br/>\u2022 Recoup on delete (d): "+b.O(-1).o(1).toString()+
" (full refund)"):d?(e+="<br/>Cost: ",d&&(e+="<br/>\u2022 Base planting cost: "+b.V.toString()),e+="<br/>\u2022 Next planting cost: "+b.O().toString()+" ("+ob(b.O())+")",e+="<br/>\u2022 Last planting cost: "+b.O(-1).toString(),e+="<br/>\u2022 Recoup on delete: "+b.O(-1).o(1).toString()+" (full refund)",e=a&&f[0]?e+("<br/>\u2022 Next tier cost:"+f[0].toString()+" ("+ob(f[0])+")"):e+"<br/>\u2022 Next tier cost: ?"):(e+="<br/>\u2022 Next planting cost (p): "+b.O().toString()+" ("+ob(b.O())+")",e+="<br/>\u2022 Recoup on delete (d): "+
b.O(-1).o(1).toString()+" (full refund)",a&&f[0]?(d="<br/>\u2022 Next tier cost (u): "+f[0].toString()+" ("+ob(f[0])+")",f[1]||(d="<b>"+d+"</b>"),e+=d):e+="<br/>\u2022 Next tier cost (u): ?");return e+="<br><br>Ethereal tree level that unlocked this crop: "+b.J}
function DE(a,b,d){if(!D.ka[b])return null;a=D.ka[b][a];if(!a)return null;a=T(a);if(!a||a.type==$i)return null;b=D.be[a.type];for(var e=a.ub(),f=null;!(b<=a.l||0>b);){var g=dr[a.type][b];if(!g||!D.ba[g.index].f)break;var h=g.O().sub(e);void 0!=d&&(d[0]=h,f=g);if(h.Xa(D.b)){void 0!=d&&(d[1]=!1);break}else void 0!=d&&(d[1]=!0);b--}return f}
function EE(a,b,d){if(!D.ka[b])return null;a=D.ka[b][a];if(!a)return null;var e=T(a);if(!e||e.type==$i)return null;var f=e.l-1;b=e.ub();a=null;if(-1>f)return null;e=dr[e.type][f];if(!e||!D.ba[e.index].f)return null;b=e.O().sub(b);void 0!=d&&(d[0]=b,a=e);b.Xa(D.b)?void 0!=d&&(d[1]=!1):void 0!=d&&(d[1]=!0);return a}
function PC(a,b){var d=[void 0],e=DE(a,b,d);e&&!d[1]?Z({type:FE,x:a,y:b,W:e,Oa:!0}):d[1]?X("not enough resources for next crop tier: have "+Gi(d[0]).toString()+", need "+d[0].toString(),Qv,0,0):!(0<=a&&a<D.fa&&0<=b&&b<D.ea)||D.ka[b][a].index<oo?X("No crop to upgrade tier here. Move mouse cursor over a crop and press u to upgrade it to the next tier",Qv):X("Crop not replaced, no higher tier unlocked or available",Qv);return!0}
function ZC(a,b){var d=[void 0],e=EE(a,b,d);e&&!d[1]?Z({type:FE,x:a,y:b,W:e,Oa:!0}):e&&d[1]?X("not enough resources for lower crop tier: have "+Gi(d[0]).toString()+", need "+d[0].toString()+". This can happen if you have a lot of the lower tier crop planted.",Qv,0,0):e||X("Crop not replaced, no lower tier available",Qv);return!0}
function GE(){var a=Vp(),b=La({Sj:a,Ba:!1,Xk:!0,title:"Tree",pb:"efDialogTranslucent"}),d=b.content,e=new G(b.icon,0,0,1,1);e=Va("0%","0%","100%","100%",e.a);Wa(Vg[ku(D.J)][1][4],e);e=new G(b.icon,0,1,1,2);e=Va("0%","0%","100%","100%",e.a);Wa(Vg[ku(D.J)][2][4],e);e=new G(d,0,0,1,.65);$a(e);d=new G(d,0,.67,1,1);var f="";f=0<D.J?f+("<b>Ethereal tree level "+D.J+"</b>"):f+"<b>Ethereal tree</b>";f+="<br><br>";var g=yu(D.J+1);f+="<b>Twigs required for next level: </b>"+g.G.sub(D.b.G).toString()+" (total: "+
g.toString()+")";0<D.J&&5>=D.J&&0==D.eb[nn]&&0==D.challenge&&(f+='<br><font color="red">You must plant mistletoe(s) in the basic field to get twigs to level up the ethereal tree and progress the game</font>');f+="<br><br>";0<D.J&&(f+="<b>Resin production bonus to basic tree: </b>"+L(mu.o(D.J)),f+="<br><br>");f+="<b>Total resin earned entire game: </b>"+D.qa.c.toString();f=f+"<br/><br/><b>Ethereal boosts from crops on this field to basic field:</b><br>\u2022 starter resources: "+(Au().toString()+"<br>");
f+="\u2022 berry boost: "+L(D.ai)+"<br>";f+="\u2022 mushroom boost: "+L(D.Ug)+"<br>";f+="\u2022 flower boost: "+L(D.bi)+"<br>";D.Vg.T(0)&&(f+="\u2022 stinging boost: "+L(D.Vg)+"<br>");D.Sg.T(0)&&(f+="\u2022 bee boost: "+L(D.Sg)+"<br>");D.Tg.T(0)&&(f+="\u2022 brassica boost: "+L(D.Tg)+"<br>");e.a.innerHTML=f+"<br><br>";e=.05;Vp()&&(f=(new G(d,.15,e,.85,e+.15,1)).a,e+=.1725,Ba(f),f.h.innerText="Ethereal blueprints",f.h.style.textShadow="0px 0px 5px #008",A(f,function(){Oa();JC(void 0,void 0,!0)}));
0<D.J&&(f=(new G(d,.15,e,.85,e+.15,1)).a,e+=.1725,Ba(f),f.h.innerText="See previous unlocks",A(f,function(){HE()}),C(f,"Show the things that got unlocked by reaching previous ethereal tree levels"));a&&(f=(new G(d,.15,e,.85,e+.15,1)).a,e+=.1725,Ba(f),f.h.innerText="Back",A(f,function(){b.Of()}))}
function IE(a,b){var d=La({icon:Kq[no(D.ka[b][a])].image[4],title:"Ethereal mistletoe",pb:"efDialogTranslucent",ib:[function(){JE(a,b,!0);return!0}],names:["crop info"],Ba:!0,zb:function(){lq(41,!0)},qc:"close"});if(D.oe){var e=0,f=[],g=(new G(d.content,[0,0,.2],[e,0,.01],[1,0,-.2],e+.07)).a;e+=.07;Ba(g);g.h.innerText="Delete crop";g.h.style.color="#c00";C(g,"Delete crop, get 100% of the original resin cost back. Only works if deleting in ethereal field is currently possible. While deleted or not planted next to the tree, the mistletoe upgrades are paused.");
A(g,function(){Z({type:YC,x:a,y:b});Oa();OB()});e+=.015;for(g=0;g<bw.length;g++){var h=bw[g];if(kw(h)){h=cw[h];var k=(new G(d.content,[0,0,.2],[e,0,.01],[1,0,-.2],e+.07)).a;e+=.07;Ba(k);A(k,z(function(u){Z({type:KE,index:u});OB();y()},h.index));var l=z(function(u){var v=bw[u];u=cw[v];var w=D.nb[v];v="Upgrade: "+u.name;v=0==w.time?v+(". Time: "+r.I(u.getTime())):v+(". Total time: "+r.I(u.getTime(),!0)+". Time left: "+r.I(u.getTime()-w.time,!0,4));var q=u.nh();if(q){v+=". Resource cost: "+q.toString();
var F=c(Infinity);if(pb(q.g,0)){var B=q.g.a(D.b.g).o(100);F=sb(F,B)}pb(q.A,0)&&(B=q.A.a(D.b.A).o(100),F=sb(F,B));pb(q.S,0)&&(B=q.S.a(D.b.S).o(100),F=sb(F,B));pb(q.c,0)&&(B=q.c.a(D.b.c).o(100),F=sb(F,B));pb(q.G,0)&&(B=q.G.a(D.b.G).o(100),F=sb(F,B));q="";ub(F,.001)&&(F=c(0));q+=F.toString()+"% of stacks";v+=" ("+q+")"}v+=". Current level: "+co(w.aa)+". "+ma(u.description);u.index!=gw&&(v+=". Unlocked at evolution level "+co(u.Wf));if(u.index==gw){w=-1;q=Rk(gw);for(F=0;F<bw.length;F++)B=cw[bw[F]],B.Wf<=
q||0<=w&&B.Wf>w||(w=B.Wf);v=0<=w?v+(". Next new upgrade unlocks at evolution level: "+w+" (current level: "+Rk(gw)+")"):v+". Next new upgrade unlocks at evolution level: N/A";v+=". Current evolution bonus: "+jw(u.index)}else v+=". Current bonus: "+jw(u.index);return v},g),n=l();h.nh()&&(n=l);C(k,n);f.push(k);k.pl=z(function(u,v){var w=bw[u],q=cw[w];w=D.nb[w];v=f[v];var F=q.nh(),B="<b>"+ma(q.name)+" "+co(w.aa+1)+"</b>",K=0==w.time?"Time: "+r.I(q.getTime(),!0):"Time left: "+r.I(q.getTime()-w.time,!0,
4);B=F?B+(". Cost: "+F.toString()+", "+r.I(q.getTime()-w.time,!0)):B+(". "+K);v.h.innerHTML=B;v.h.style.color=D.fb==u?"#988":0<=D.fb?"#888":""},g,f.length-1)}}e+=.015;var p=(new G(d.content,[0,0,.2],[e,0,.01],[1,0,-.2],e+.07)).a;e+=.07;Ba(p);p.h.innerText="Stop current upgrade";C(p,"Stops current ongoing upgrade, if there is one. The current time duration of the ongoing upgrade will be remembered, so if you start it again later it will continue where it left off. This also works if doing other upgrades in-between.");
A(p,function(){Z({type:LE});OB();y()});f.push(p);p.pl=function(){p.h.style.color=0>D.fb?"#888":""};var m=new G(d.content,[0,0,.2],[e,0,.01],[1,0,-.2],.8),x="",t=D.nb[gw].aa,y=function(){D.nb[gw].aa!=t&&(db(),IE(a,b));for(var u=0;u<f.length;u++)f[u].pl();u="";if(0<=D.fb){var v=cw[D.fb],w=D.nb[D.fb];u+="Upgrading: "+ma(v.name)+". "+ma(v.description);u=u+"<br><br>Time left: "+r.I(v.getTime()-w.time,!0,4)}else u+="Not upgrading";D.Wb&&(u+="<br>Unused time: "+r.I(D.Wb,!0));u+="<br><br><b>Current bonuses:</b>";
kw(Sk)&&(u+="<br>Production (leafiness): "+jw(Sk));kw(Sq)&&(u+="<br>Neighbor (friendliness): "+jw(Sq));kw(Bq)&&(u+="<br>Neighbor (lotus): "+jw(Bq));kw(Jl)&&(u+="<br>Stingy: "+jw(Jl));kw(su)&&(u+="<br>Resin: "+jw(su));kw(Vk)&&(u+="<br>Mushrooms: "+jw(Vk));kw(Uk)&&(u+="<br>Berries: "+jw(Uk));u+="<br>Twigs: "+jw(xu);u!=x&&(m.a.innerHTML=u);x=u};y();Fa=y}else d.content.a.innerText="The ethereal mistletoe must be planted orthogonally (not diagonally) next to the tree, otherwise it does nothing. Its upgrades are currently paused."}
function JE(a,b,d){var e=D.ka[b][a];if(Xk(e)&&T(e).index==Aq&&!d)IE(a,b);else if(Xk(e)){var f=Kq[no(e)],g=La({icon:f.image[4],title:"Ethereal crop info",pb:"efDialogTranslucent"}),h=new G(g.content,0,[0,0,.01],1,.17);d=(new G(g.content,[0,0,.2],[.63,0,.01],[1,0,-.2],.695)).a;var k=(new G(g.content,[0,0,.2],[.7,0,.01],[1,0,-.2],.765)).a,l=(new G(g.content,[0,0,.2],[.77,0,.01],[1,0,-.2],.835)).a,n=(new G(g.content,[0,0,.2],[.84,0,.01],[1,0,-.2],.905)).a;g=(new G(g.content,[0,0,.2],[.91,0,.01],[1,0,
-.2],.975)).a;var p=void 0;Ba(d);d.h.innerText="Upgrade tier";C(d,"Replace crop with the highest tier of this type you can afford, or turn template into real crop. This deletes the original crop, (with cost recoup if applicable), and then plants the new higher tier crop.");A(d,function(){PC(a,b)&&(Oa(),OB())});Ba(k);k.h.innerText="Downgrade tier";C(k,"Downgrade crop to 1 tier lower (refunding the resin cost difference), if it already is at the lowest tier it will be turned into a blueprint template.");
A(k,function(){ZC(a,b)&&(Oa(),OB())});Ba(l);l.h.innerText="Replace crop";C(l,"Replace the crop with a new one you choose, same as delete then plant. Shows the list of unlocked ethereal crops.");A(l,function(){ME(a,b,!0,f.ub())});Ba(n);n.h.innerText="Delete crop";n.h.style.color="#c00";C(n,"Delete crop, get 100% of the original resin cost back.");A(n,function(){Z({type:YC,x:a,y:b});Oa();OB()});Ba(g);g.h.innerText="Detailed stats / bonuses";C(g,"Show breakdown of multipliers and bonuses and other detailed stats.");
A(g,function(){var m=La({size:3,title:"Detailed crop stats",Ba:!0,icon:f.image[4],pb:"efDialogTranslucent"});var x=""+CE(e,f,!0);x+="<br/>";var t="";if(f.type==S||f.type==Si||f.type==Ti||f.type==Ui||f.type==Zi||f.type==Vi){var y=[];f.wc(e,y);t+=MD(y,!0,"Breakdown (boost to basic field)")}f.type==Xi&&(y=[],zq(f,e,y),t+=MD(y,!0,"Breakdown (boost to ethereal neighbors)"));m.content.a.innerHTML=x+t});Fa=z(function(m,x){m=CE(m,x,!1);m!=p&&(p=h.a.innerHTML=m)},e,f);Fa(e,f)}else e.index==Oq||e.index==Pq?
GE():ME(a,b)}
function ht(){NE.clear();wE=[];for(var a=0;a<D.ea;a++){wE[a]=[];for(var b=0;b<D.fa;b++)wE[a][b]=new UD}var d=D.fa/D.ea;d=new G(NE,[.5,0,-.5,d],[.5,0,-.5,1/d],[.5,0,.5,d],[.5,0,.5,1/d]);a=NE.a;var e=a.clientWidth;a=a.clientHeight;xa(d.a,"grid");ua(d.a,"ethereal field");b=Math.floor(e/D.fa)-1;e=Math.floor(a/D.ea)-1;b=e=Math.min(b,e);for(a=0;a<D.ea;a++){var f=la("0",a/D.ea*100+"%","100%",101/D.ea+"%",d.a);xa(f,"row");for(b=0;b<D.fa;b++){var g=la(b/D.fa*100+"%","0",101/D.fa+"%","100%",f),h=Va("0%","0%",
"100%","100%",g),k=Va("0%","0%","100%","100%",g),l=la("0","0","100%","100%",g);xa(g,"cell");l.className="efNoOutline";l.style.boxSizing="border-box";sa(l);wE[a][b].a=l;wE[a][b].canvas=k;wE[a][b].Fg=h;r.ob(l,"mouseover","fieldover",z(function(n,p){QC=n;RC=p;OE&&PE(QE)},b,a));r.ob(l,"mouseout","fieldout",z(function(n,p){n==QC&&p==RC&&(RC=QC=-1,OE&&PE(QE))},b,a));r.ob(l,"mouseup","fieldclick",z(function(n,p){window.setTimeout(function(){QC=n;RC=p;OE&&PE(QE)})},b,a));C(l,z(function(n,p){p=D.ka[p][n];
n=void 0;if(0!=p.index){if(Xk(p))n=CE(p,Kq[no(p)],!1);else if(p.index==Oq||p.index==Pq){n=0<D.J?"Ethereal tree level "+D.J:"Ethereal tree";p=yu(D.J+1);var m=D.b.G.a(p.G);n+="<br><br>Twigs required for next level: </b>"+p.G.sub(D.b.G).toString()+" of "+p.toString()+" (have "+D.b.G.toString()+", "+L(m)+")";p=Eq();p.T(0)&&(n=D.$[Nq].count?n+("<br><br>Boosting non-lotus neighbors orthogonally and diagonally: "+L(p)):n+("<br><br>Boosting non-lotus neighbors orthogonally but not diagonally: "+L(p)))}return n}},
b,a,l),!0);A(l,z(function(n,p,m,x){m=D.ka[p][n];if(m.index==Oq||m.index==Pq)JE(n,p);else if(0==m.index){var t=x.shiftKey;x=pa(x);if(t&&x){if(0<=D.Bb&&Kq[D.Bb]){x=Kq[D.Bb];t=D.be[x.type];m=dr[x.type][t];x.type==$i&&(m=x);m&&D.ba[m.index].f||(m=x);if(m.O().da(D.b)&&0<t){t--;var y=dr[x.type][t];y&&D.ba[y.index].f&&(m=y)}m.O().da(D.b)&&0<t&&(t--,(y=dr[x.type][t])&&D.ba[y.index].f&&(m=y));m.O().da(D.b)&&(y=dr[x.type][-1])&&D.ba[y.index].f&&(m=y);Z({type:XC,x:n,y:p,W:m,Oa:!0});OB()}}else t&&!x?0<=D.Bb&&
Kq[D.Bb]?(x=Kq[D.Bb],Z({type:XC,x:n,y:p,W:x,Oa:!0}),OB()):X("shift+click, or p, repeats last planted plant, but no last plant is set, plant the regular way first",Qv,0,0):JE(n,p)}else Xk(m)&&(t=x.shiftKey,x=pa(x),t&&x?(t=T(m),(m=dr[t.type][D.be[t.type]])&&D.ba[m.index].f||(m=t),t.type==$i&&(m=t),D.Bb=m.index,m.O().da(D.b)&&(D.Bb=t.index),m.l>t.l&&(Z({type:FE,x:n,y:p,W:m,Oa:!0}),OB())):t&&!x?(x=Kq[D.Bb],t=T(m),t.index!=D.Bb||sk(m)?Z({type:FE,x:n,y:p,W:x,Oa:!0}):Z({type:YC,x:n,y:p}),OB()):x&&!t?(Z({type:YC,
x:n,y:p}),OB()):JE(n,p))},b,a,l));g=Math.round(e/16);4>g&&(g=4);g=la((b+.2)/D.fa*100+"%",(a+.85)/D.ea*100+"%",100/D.fa*.6+"%",100/D.ea*.05+"%",d.a);g.style.minHeight="5px";Da(g);wE[a][b].progress=g}}}
function RE(a,b){var d=La({qc:"ok",Ba:!0,title:(b?"Ethereal tree level ":"Reached ethereal tree level ")+a,Xl:!b,pb:"efDialogEthereal"}),e="";if(!b){e=(1==a?e+"Thanks to twigs, the ethereal tree leveled up! This is the tree in the ethereal field, not the one in the basic field. Leveling up the ethereal tree unlocks new ethereal crops and/or upgrades, depending on the level. Each level also provides a resin production boost to the basic tree.":e+("The ethereal tree leveled up to level "+a+"!"))+"<br><br>";
var f=yu(a),g=yu(a+1);e+="It consumed "+f.toString()+". The next level will require "+g.toString()+".<br><br>"}f="";g=!1;for(var h=0;h<Js.length;h++){var k=Ks[Js[h]];k.J==a&&(f+="<b>\u2022 Upgrade</b>: "+ma(k.name)+"<br>",g=!0)}for(h=0;h<cr.length;h++)k=Kq[cr[h]],Ej(k)&&k.J==a&&(f+="<b>\u2022 Crop</b>: Ethereal "+k.name+"<br>",g=!0);for(h=0;h<cr.length;h++)k=Kq[cr[h]],k.Nb&&k.J==a&&(f+="<b>\u2022 Template</b>: Ethereal "+k.name+"<br>",g=!0);2==a&&(f+="<b>\u2022 Challenge</b>: No upgrades challenge (requires having automaton to unlock)<br>",
g=!0);3==a&&(f+="<b>\u2022 Challenge</b>: Blackberry challenge (requires automaton with auto-upgrades to unlock)<br>",g=!0);5==a&&(f+="<b>\u2022 Challenge</b>: Wither challenge (requires automaton with auto-unlock crops to unlock)<br>",g=!0);7==a&&(f+="<b>\u2022 Challenge</b>: Wasabi challenge<br>",g=!0);e=(b?e+"The following new ethereal things got, or will get, unlocked at this level:<br><br>":g?e+"New ethereal things unlocked! These are available in the ethereal field and/or ethereal upgrades tab:":
e+'No new ethereal upgrades, crops or challenges unlocked. New content for this ethereal tree level may be added in future game updates. You can always see this dialog again later by clicking the ethereal tree using "See previous unlocks".')+"<br><br>";e+=f;d.content.a.innerHTML=e}
function HE(){function a(h){var k=(new G(b.content,.08,d,.92,d+.06)).a;Ba(k);d+=.066;k.h.innerText=h;return k}for(var b=La({onclose:function(){ey=!1},Ba:!0,title:"Previous ethereal tree level unlocks"}),d=.05,e=0;e<=D.J;e++){var f=D.J-e,g=a("level "+f);A(g,z(RE,f,!0))}}function SE(){for(var a=R(),b=D.fa,d=D.ea,e={},f=0;f<d;f++)for(var g=0;g<b;g++){var h=T(D.ka[f][g]);if(h){var k=e[h.index]||0;e[h.index]=k+1;a.v(h.O(void 0,k))}}return a};var TE;
function UE(a,b,d){var e=ma(b.name);e=e+"<br/>Crop type: Infinity "+(ij(b.type)+(b.l&&Ej(b)?" (tier "+(b.l+1)+")":""));var f=lj(b.type);f&&(e+="<br/>"+f);e+="<br/><br/>";1>a.F&&(b.type==Vi?(e=d?e+("Finite lifetime: "+r.I(b.za())+"<br/><br/>"):e+("Finite lifetime. Time left: "+r.I(a.F*b.za(),!0,4,!0)+" of "+r.I(b.za(),!0,4,!0)+"<br/>"),e+="<br/>"):(e+="Grow time: "+r.I(b.za()),b.za()!=b.Ra&&(e+=" (base: "+r.I(b.Ra)+")"),e+="<br/><br/>"));0<a.wb&&(e=b.type==ej?e+("Can only be deleted in "+r.I(a.wb)):e+
("Due to runestone, can only be deleted in "+r.I(a.wb)),e+="<br/><br/>");d=b.Eb(a);d.empty()||(b.type==Vi&&(f=d.o(b.za()),e+="Total production over full lifetime: "+f.toString()+"<br>"),e+="Production per second: "+d.toString(),e+=" ("+d.R.o(3600).toString()+"/h)",f=b.Eb(void 0),f.R.xc(d.R)&&(e=e+"<br/>Base production/s: "+f.toString(),e+=" ("+f.R.o(3600).toString()+"/h)"),e+="<br/><br/>");d=nw(b,a);d.T(0)&&(e=b.type==ej?e+("Boost to neighboring crops basic field boost: "+L(d)+"<br><br>"):b.type==
Zi?e+("Boost to neighboring flowers: "+L(d)+"<br><br>"):e+("Boost to neighboring berries: "+L(d)+"<br><br>"));d=b.wc(a);d.T(0)&&(f=b.Xi,e+="Production boost to basic field: "+L(d),f.xc(d)&&(e+=" (base: "+L(f)+")"),e+="<br/><br/>");d=b.ub(a);f=[void 0];a=VE(a.x,a.y,f);var g=b.O();b.type==Vi?(e+=" \u2022 Planting cost: "+g.toString()+" ("+ob(g)+")<br>",e+=" \u2022 Recoup on delete: "+d.toString()+" (100% but scaled by remaining lifetime)"):(e+=" \u2022 Base cost: "+b.V.toString()+"<br>",e+=" \u2022 Next planting cost: "+
g.toString()+" ("+ob(g)+")<br>",e+=" \u2022 Recoup on delete: "+d.toString()+" (100% full refund)");a&&f[0]&&(e+="<br/> \u2022 Next tier cost: "+f[0].toString()+" ("+ob(f[0])+")");return e}
function VE(a,b,d){if(!D.ta[b])return null;var e=D.ta[b][a];if(!e)return null;a=T(e);if(!a||a.type==$i)return null;b=D.zd[a.type];e=a.ub(e);for(var f=null;!(b<=a.l||0>b);){var g=pw[a.type][b];if(!g||!D.Aa[g.index].f)break;var h=g.O().sub(e);void 0!=d&&(d[0]=h,f=g);if(h.Xa(D.b)){void 0!=d&&(d[1]=!1);break}else void 0!=d&&(d[1]=!0);b--}return f}
function WE(a,b,d){if(!D.ta[b])return null;a=D.ta[b][a];if(!a)return null;var e=T(a);if(!e||e.type==$i)return null;var f=e.l-1;b=e.ub();a=null;if(-1>f)return null;e=pw[e.type][f];if(!e||!D.Aa[e.index].f)return null;b=e.O().sub(b);void 0!=d&&(d[0]=b,a=e);b.Xa(D.b)?void 0!=d&&(d[1]=!1):void 0!=d&&(d[1]=!0);return a}
function VC(a,b){var d=[void 0],e=VE(a,b,d);e&&!d[1]?Z({type:UC,x:a,y:b,W:e,Oa:!0}):d[1]?X("not enough resources for next infinity crop tier: have "+Gi(d[0]).toString()+", need "+d[0].toString()+" ("+ob(d[0])+")",Qv,0,0):!(0<=a&&a<D.La&&0<=b&&b<D.Ka)||D.ta[b][a].index<oo?X("No crop to upgrade tier here. Move mouse cursor over a crop and press u to upgrade it to the next tier",Qv):X("Crop not replaced, no higher tier unlocked or available",Qv);return!0}
function $C(a,b){var d=[void 0],e=WE(a,b,d);e&&!d[1]?Z({type:UC,x:a,y:b,W:e,Oa:!0}):e&&d[1]?X("not enough resources for lower crop tier: have "+Gi(d[0]).toString()+", need "+d[0].toString()+". This can happen if you have a lot of the lower tier crop planted.",Qv,0,0):e||X("Crop not replaced, no lower tier available",Qv);return!0}
function XE(){var a=La({Ba:!0,title:"Infinity pond",pb:"efDialogTranslucent",icon:Wg}).content;var b="Nothing in this pond yet<br><br>Total boost from infinity crops to basic field: "+L(D.Ad);b+=" (max ever had: "+L(D.ah)+")";a.a.innerHTML=b}
function YE(a,b){var d=D.ta[b][a];if(Xk(d)){var e=mw[no(d)],f=La({icon:e.image[4],title:"Infinity crop info",pb:"efDialogTranslucent"}),g=new G(f.content,0,[0,0,.01],1,.17),h=(new G(f.content,[0,0,.2],[.55,0,.01],[1,0,-.2],.615)).a,k=(new G(f.content,[0,0,.2],[.62,0,.01],[1,0,-.2],.685)).a,l=(new G(f.content,[0,0,.2],[.77+-.08,0,.01],[1,0,-.2],.755)).a,n=(new G(f.content,[0,0,.2],[.76,0,.01],[1,0,-.2],.905+-.08)).a;f=(new G(f.content,[0,0,.2],[.91+-.08,0,.01],[1,0,-.2],.895)).a;var p=void 0;Ba(h);
h.h.innerText="Upgrade tier";C(h,"Replace crop with the highest tier of this type you can afford. This deletes the original crop (which gives refund), and then plants the new higher tier crop.");A(h,function(){VC(a,b)&&(Oa(),OB())});Ba(k);k.h.innerText="Downgrade tier";C(k,"Replace crop the tier one below, refunding the cost of the current one, then planting the lower tier crop with the lower resource cost.");A(k,function(){$C(a,b)&&(Oa(),OB())});Ba(l);l.h.innerText="Replace crop";C(l,"Replace the crop with a new one you choose, same as delete then plant. Shows the list of unlocked infinity crops.");
A(l,function(){ZE(a,b,!0,e.ub(d))});Ba(n);n.h.innerText="Delete crop";n.h.style.color="#c00";e.type==Vi?C(n,"Delete crop, get 100% of the original cost back, scaled down by the remaining lifetime."):C(n,"Delete crop, get 100% of the original cost back.");A(n,function(){Z({type:vC,x:a,y:b});Oa();OB()});Ba(f);f.h.innerText="Detailed stats / bonuses";C(f,"Show breakdown of multipliers and bonuses and other detailed stats.");A(f,function(){var m=La({size:3,title:"Detailed crop stats",Ba:!0,icon:e.image[4],
pb:"efDialogTranslucent"});var x=""+UE(d,e,!0);x+="<br/>";var t="";if(e.type==S||e.type==Vi){var y=[];e.Eb(d,y);t+=MD(y,!1,"Breakdown (production/s)")}e.type==Ti&&(y=[],nw(e,d,y),t+=MD(y,!0,"Breakdown (neighbor boost +%)"));m.content.a.innerHTML=x+t});Fa=z(function(m,x){m=UE(m,x,!1);m!=p&&(p=g.a.innerHTML=m)},d,e);Fa(d,e)}else 6==d.index?XE():ZE(a,b)}
function $E(){aF.clear();TE=[];for(var a=0;a<D.Ka;a++){TE[a]=[];for(var b=0;b<D.La;b++)TE[a][b]=new UD}var d=D.La/D.Ka;d=new G(aF,[.5,0,-.5,d],[.5,0,-.5,1/d],[.5,0,.5,d],[.5,0,.5,1/d]);a=aF.a;var e=a.clientWidth;a=a.clientHeight;xa(d.a,"grid");ua(d.a,"infinity field");b=Math.floor(e/D.La)-1;e=Math.floor(a/D.Ka)-1;b=e=Math.min(b,e);for(a=0;a<D.Ka;a++){var f=la("0",a/D.Ka*100+"%","100%",101/D.Ka+"%",d.a);xa(f,"row");for(b=0;b<D.La;b++){var g=la(b/D.La*100+"%","0",101/D.La+"%","100%",f),h=Va("0%","0%",
"100%","100%",g),k=Va("0%","0%","100%","100%",g),l=la("0","0","100%","100%",g);xa(g,"cell");l.className="efNoOutline";l.style.boxSizing="border-box";sa(l);TE[a][b].a=l;TE[a][b].canvas=k;TE[a][b].Fg=h;r.ob(l,"mouseover","fieldover",z(function(n,p){TC=n;SC=p;bF&&cF(dF)},b,a));r.ob(l,"mouseout","fieldout",z(function(n,p){n==TC&&p==SC&&(SC=TC=-1,bF&&cF(dF))},b,a));r.ob(l,"mouseup","fieldclick",z(function(n,p){window.setTimeout(function(){TC=n;SC=p;bF&&cF(dF)})},b,a));C(l,z(function(n,p){n=D.ta[p][n];
p=void 0;if(0!=n.index){if(6==n.index)return n="Infinity pond",pb(D.Ad,0)&&(n=n+"<br><br>Total boost from infinity crops to basic field: "+L(D.Ad)),n;Xk(n)&&(p=UE(n,mw[no(n)],!1));return p}},b,a,l),!0);A(l,z(function(n,p,m,x){m=D.ta[p][n];if(6==m.index)YE(n,p);else if(0==m.index||m.index==Dy){var t=x.shiftKey;x=pa(x);if(t&&x){if(0<=D.sb&&mw[D.sb]){x=mw[D.sb];t=D.zd[x.type];m=pw[x.type][t];x.type==$i&&(m=x);m&&D.Aa[m.index].f||(m=x);if(m.O().da(D.b)&&0<t){t--;var y=pw[x.type][t];y&&D.Aa[y.index].f&&
(m=y)}m.O().da(D.b)&&0<t&&(t--,(y=pw[x.type][t])&&D.Aa[y.index].f&&(m=y));m.O().da(D.b)&&(y=pw[x.type][-1])&&D.Aa[y.index].f&&(m=y);Z({type:wC,x:n,y:p,W:m,Oa:!0});OB()}}else t&&!x?0<=D.sb&&mw[D.sb]?(x=mw[D.sb],Z({type:wC,x:n,y:p,W:x,Oa:!0}),OB()):X("shift+click, or p, repeats last planted plant, but no last plant is set, plant the regular way first",Qv,0,0):x&&!t?(Z({type:wC,x:n,y:p,W:mw[Lz()],Oa:!0}),OB()):YE(n,p)}else Xk(m)?(t=x.shiftKey,(x=pa(x))&&t?(t=T(m),(m=pw[t.type][D.zd[t.type]])&&D.Aa[m.index].f||
(m=t),t.type==$i&&(m=t),D.sb=m.index,m.O().da(D.b)&&(D.sb=t.index),m.l>t.l&&(Z({type:UC,x:n,y:p,W:m,Oa:!0}),OB())):x&&!t?(Z({type:vC,x:n,y:p}),OB()):t&&!x?0<=D.sb&&mw[D.sb]&&(x=mw[D.sb],t=T(m),t.index==D.sb&&(t.type!=Vi&&!sk(m)||My(m)||Xk(m)&&T(m).Ab)?Z({type:vC,x:n,y:p}):Z({type:UC,x:n,y:p,W:x,Oa:!0}),OB()):YE(n,p)):YE(n,p)},b,a,l));g=Math.round(e/16);4>g&&(g=4);g=la((b+.2)/D.La*100+"%",(a+.85)/D.Ka*100+"%",100/D.La*.6+"%",100/D.Ka*.05+"%",d.a);g.style.minHeight="5px";Da(g);TE[a][b].progress=g}}}
;function eF(a,b,d,e,f,g,h,k,l,n){var p=n?.4:.6,m=new G(e,.33*b+.01,[0,0,.33*d*.9+.01,p],.33*(b+1)-.01,[0,0,.33*(d+1)*.9-.01,p]);m.a.className="efPlantChip";b=new G(m,0,[.5,0,-.25],[0,0,.5],[.5,0,.25]);d=Va("0%","0%","100%","100%",b.a);Wa(a.image[4],d);var x=new G(m,[n?.1:0,0,.5],n?.1:.05,1,.95);d="";d=k||n?d+("<b>"+ma(a.name)+"</b><br>"):d+("<b>Plant "+a.name+"</b><br>");e=a.O();l&&(e=e.sub(l));d+="type: "+ij(a.type);n||(d+="<br>cost: "+e.toString());x.a.innerHTML=d;a.index==ln&&(x.a.id="help_arrow_plant_watercress");
a.index==Fm&&(x.a.id="help_arrow_plant_blackberry");a.index==Gm&&(x.a.id="help_arrow_plant_blueberry");g&&(Aa(b.a,!0),A(b.a,g,ma(a.name)+" info"));f&&(A(x.a,f,(k?"Replace with ":"Plant ")+a.name),Aa(x.a,!0));h?(g&&C(b.a,function(){return"Show "+a.name+" info"},!0),f?C(x.a,function(){return(k?"Replace with ":"Plant ")+a.name+"<br><br>"+h()},!0):C(x.a,function(){return ma(a.name)+"<br><br>"+h()},!0)):(g&&C(b.a,"Show "+a.name+" info"),f&&C(b.a,(k?"Replace with ":"Plant ")+a.name));f&&D.b.la(e)&&!n&&
(m.a.className="efButtonTranslucentCantAfford",xD(function(){if(!m||!document.body.contains(x.a))return!1;var t=a.O();l&&(t=t.sub(l));return D.b.oi(t)?(m.a.className="efPlantChip",!1):!0}))}
function fF(){for(var a=[],b=0;b<dm.length;b++)D.U[dm[b]].f&&a.push(dm[b]);var d=[],e={};for(b=0;b<a.length;b++)if(!e[a[b]]){var f=vl[a[b]];f.type==$i&&(d.push(f.index),e[f.index]=!0)}var g=void 0;for(b=0;b<a.length;b++)e[a[b]]||(f=vl[a[b]],f.type!=dj||g&&!f.V.da(g.V)||(g=f));g&&(d.push(g.index),e[g.index]=!0);g=void 0;for(b=0;b<a.length;b++)e[a[b]]||(f=vl[a[b]],f.type!=S||g&&!f.V.da(g.V)||(g=f));g&&(d.push(g.index),e[g.index]=!0);g=void 0;for(b=0;b<a.length;b++)e[a[b]]||(f=vl[a[b]],f.type!=Si||g&&
!f.V.da(g.V)||(g=f));g&&(d.push(g.index),e[g.index]=!0);g=void 0;for(b=0;b<a.length;b++)e[a[b]]||(f=vl[a[b]],f.type!=cj||g&&!f.V.da(g.V)||(g=f));g&&(d.push(g.index),e[g.index]=!0);g=void 0;for(b=0;b<a.length;b++)e[a[b]]||(f=vl[a[b]],f.type!=Ti||g&&!f.V.da(g.V)||(g=f));g&&(d.push(g.index),e[g.index]=!0);g=void 0;for(b=0;b<a.length;b++)e[a[b]]||(f=vl[a[b]],f.type!=Zi||g&&!f.V.da(g.V)||(g=f));g&&(d.push(g.index),e[g.index]=!0);g=void 0;for(b=0;b<a.length;b++)e[a[b]]||(f=vl[a[b]],f.type!=Ui||g&&!f.V.da(g.V)||
(g=f));g&&(d.push(g.index),e[g.index]=!0);g=void 0;for(b=0;b<a.length;b++)e[a[b]]||(f=vl[a[b]],f.type!=Vi||g&&!f.V.da(g.V)||(g=f));g&&(d.push(g.index),e[g.index]=!0);g=void 0;for(b=0;b<a.length;b++)e[a[b]]||(f=vl[a[b]],f.type!=Yi||g&&!f.V.da(g.V)||(g=f));g&&(d.push(g.index),e[g.index]=!0);f=[];for(b=0;b<a.length;b++)e[a[b]]||f.push(a[b]);f.sort(function(h,k){var l=vl[h].V.g,n=vl[k].V.g;if(tb(l,0)||tb(n,0))l=c(vl[h].l),n=c(vl[k].l);return l.la(n)?1:-1});for(b=0;b<f.length;b++)d.push(f[b]),e[f[b]]=
!0;return d}
function gF(){La({Ba:!0,title:"Planting help"}).content.a.innerHTML='The planting dialog allows to plant crops on the field. Use the plant button to perform the action now, or click the icon of the crop to view details.<br><br>The following actions and shortcuts are available:<br><br>To plant a new crop on an empty field tile:<br>\u2022 Click empty field tile, then click desired crop in the planting dialog<br>\u2022 OR: Shift+click empty field tile to plant the last-planted or unlocked crop<br>\u2022 OR: Ctrl+click empty field to plant watercress<br><br>To remove a crop from the field:<br>\u2022 Click the crop on the field, then the "Delete crop" button<br>\u2022 OR: Hover mouse over the crop in the field, then press the "d" key<br>\u2022 OR: Ctrl+click the crop in the field (requires a setting under preferences)<br><br>To replace a crop to the highest unlocked tier of its type that you can afford:<br>\u2022 Click the crop on the field, then the "Upgrade tier" button<br>\u2022 OR: Hover mouse over the crop in the field, then press the "u" key<br>\u2022 OR: Ctrl+shift+click the crop in the field<br><br>To replace a crop in the field with a different one:<br>\u2022 Click the crop on the field, then the "Replace crop" button and choose the new one in the planting dialog<br>\u2022 OR: Shift+click the crop in the field to replace it with the last planted or unlocked crop (requires a setting under preferences)'}
function wD(a,b,d,e,f){for(var g=0,h=0;h<dm.length;h++)D.U[dm[h]].f&&g++;h=1;9<g&&(h=2);12<g&&(h=3);h=La({size:h,zb:gF,title:d?"Replace crop":"Plant crop",pb:"efDialogTranslucent"});var k=g=0,l=new G(h.content,.01,.01,.99,.05);d?(ta(l.a),l.a.h.innerHTML="Replace crop with..."):l.a.innerHTML="Choose a crop to plant, or click its icon for info";l=new G(h.content,0,.12,1,1);$a(l);var n=fF();for(h=0;h<n.length;h++){var p=n[h],m=vl[p],x=z(function(y){var u="";y=vl[y];if(y.Nb)u+="This template represents all crops of type "+
ij(y.type),u+="<br/><br/>It is a placeholder for planning the field layout and does nothing.<br><br>Templates are a feature provided by the automaton.<br><br>Tip: ctrl+shift+click a template, or hover over it and press 'u', to turn it into a crop of highest available tier of this type.";else if(y.Ab)u+="Ghostly remainder of a "+ij(y.type)+", does nothing. Automaton won't touch this either.";else{u+="Crop type: "+ij(y.type)+(y.l?" (tier "+(y.l+1)+")":"");var v=jj(y.type);v&&(u+=".<br>"+v);y.Gd&&(u+=
"<br/><br/>"+ma(y.Gd));y.type==Vi&&(u+=".<br><br>Copy ability: if this plant has orthogonal (non-diagonal) berry or mushroom neighbors, the watercress will duplicate all their production (but also consumption), no matter what tier. This has diminishing returns if there are multiple watercress in the field, max 2 watercress makes sense. A badly placed watercress can negatively affect the copying of others. At early game, having many watercress is useful though due to their regular (non-copy) production.");
v=y.O();u+="<br><br>Planting cost: "+v.toString()+" ("+ob(v)+")";y.type==Vi?u+=".<br><br>Living time: "+r.I(y.za()):(u+=".<br><br>Grow time: "+r.I(y.za()),y.za()!=y.Ra&&(u+=" (base: "+r.I(y.Ra)+")"));u=y.type==Ti?u+(".<br><br>Neighbor boost: "+L(ok(y,D.C[b][a]))):y.type==Zi?u+(".<br><br>Flower boost: "+L(Nl(y,D.C[b][a]))):u+(".<br><br>Production/sec: "+y.Eb(D.C[b][a],2).toString());u+="."}return u},p);p=z(function(y){D.Va=y;y=vl[y];if(f){for(var u=!1,v=0;v<D.D;v++)for(var w=0;w<D.B;w++)Ly(D.C[v][w])&&
(Z({type:tC,x:w,y:v,W:y,silent:!0}),u=!0);u||X('Entire field is already full, clear field first or have some open gaps to use "plant all"',Qv)}else d?Z({type:uC,x:a,y:b,W:y}):Z({type:tC,x:a,y:b,W:y});Oa();OB();return!0},p);var t=z(function(y,u,v){y=ma(v.name)+"<br><br>"+y();La({size:350>y.length?1:2,title:"Crop info",names:"plant",ib:u,icon:v.image[4]}).content.a.innerHTML=y},x,p,m);eF(m,g,k,l,p,t,x,d,e);g++;3<=g&&(g=0,k++)}l.update()}
function kD(a,b,d){for(var e=[],f=1<=D.ih,g=0;g<dm.length;g++){var h=D.U[dm[g]];if(h.xe||h.f){if(1<h.xe||h.sa)f=!0;e.push(dm[g])}}var k=void 0;f&&(k='Select crop by clicking it. This will immediately close the dialog, so the "prestige" checkbox must be checked or unchecked before choosing the crop.<br><br>Note that this dialog does not prevent combinations of prestiged with crops that cannot be prestiged, ensure an existing combination is chosen for your use case.');h=La({zb:k,title:"Select crop",
pb:"efDialogTranslucent",qc:"cancel"});var l=k=0;if(f){var n=new G(h.content,.01,.01,.25,.05),p=function(){var x=new G(n,0,0,[0,1],1),t=new G(n,[0,1.2],0,1,1),y=Va("0%","0%","100%","100%",x.a);Wa(b?Rb:Sb,y);Aa(x.a);t.a.innerText="Prestiged\n"};A(n.a,z(function(){b=b?0:1;p()},g),'checkbox "prestiged" ('+(b?"checked":"unchecked")+")");p()}f=new G(h.content,0,.12,1,1);$a(f);for(g=0;g<e.length;g++){var m=e[g];h=vl[m];m=z(function(x){a=x;d(a,b);db()},m);eF(h,k,l,f,m,void 0,void 0,!1,void 0,!0);k++;3<=
k&&(k=0,l++)}f.update()};function hF(a,b,d,e,f,g,h,k,l,n){b=new G(e,.33*b+.01,[0,0,.33*d+.01,.5],.33*(b+1)-.01,[0,0,.33*(d+1)-.01,.5]);b.a.className="efEtherealPlantChip";d=new G(b,0,[.5,0,-.35],[0,0,.7],[.5,0,.35]);e=Va("0%","0%","100%","100%",d.a);Wa(a.image[4],e);e=new G(b,[0,0,.7],0,1,[0,0,1]);var p="";p=k?p+("<b>"+ma(a.name)+"</b><br>"):p+("<b>Plant "+a.name+"</b><br>");var m=a.O();l&&(m=m.sub(l));k&&n&&no(n)==a.index&&(m=R());p+="type: "+ij(a.type)+"<br>";p+="cost: "+m.toString();l=void 0;g&&(Aa(d.a,!0),A(d.a,g,ma(a.name)+
" info"));f&&(l=new G(b,[0,0,.7],[0,0,0],[1,0,-.02],[0,0,.98]),A(l.a,f,(k?"Replace with ":"Plant ")+a.name),Aa(l.a));h?(g&&C(d.a,function(){return"Show ethereal "+a.name+" info"},!0),f&&C(l.a,function(){return(k?"Replace with ethereal ":"Plant ethereal ")+a.name+"<br><br>"+h()},!0),C(e.a,function(){return"Ethereal "+a.name+"<br><br>"+h()},!0)):(g&&C(d.a,"Show "+a.name+" info"),f&&C(d.a,(k?"Replace with ethereal ":"Plant ethereal ")+a.name));f&&D.b.la(m)&&(b.a.className="efButtonCantAfford");e.a.innerHTML=
p}function iF(){for(var a=[],b=0;b<cr.length;b++)D.ba[cr[b]].f&&a.push(cr[b]);var d=[],e={},f=[];for(b=0;b<a.length;b++)e[a[b]]||f.push(a[b]);f.sort(function(g,h){var k=Kq[g].V.c,l=Kq[h].V.c;if(tb(k,0)||tb(l,0))k=c(Kq[g].l),l=c(Kq[h].l);return k.la(l)?1:-1});for(b=0;b<f.length;b++)d.push(f[b]),e[f[b]]=!0;return d}
function ME(a,b,d,e){for(var f=0,g=0;g<cr.length;g++)D.ba[cr[g]].f&&f++;var h=f=0;g=La({title:d?"Replace ethereal crop":"Plant ethereal crop",pb:"efDialogEthereal"}).content;var k=new G(g,0,0,1,.05);ta(k.a);d?(ta(k.a),k.a.h.innerHTML="Replace crop with..."):k.a.h.innerHTML="Choose an ethereal crop to plant. Click the icon for more info, or the text to plant it now.<br>They cost resin, so choose wisely.<br>Ethereal crops give various bonuses to the basic field.";k=new G(g,0,.1,1,1);$a(k);var l=iF();
for(g=0;g<l.length;g++){var n=l[g],p=Kq[n],m=z(function(t){var y=Kq[t];t="Cost: "+y.O().toString();t+="<br><br>Grow time: "+r.I(y.Ra);y.Zh?t+="<br><br>Effect: "+y.Zh:y.$h&&(t+="<br><br>Effect: "+y.$h);t+="<br><br>Ethereal tree level that unlocked this crop: "+y.J;var u=D.ka[b][a];if(y.effect.T(0)){var v=y.effect,w=y.wc(u);v.dc(w)?t+=".<br><br>Boost: "+L(v):(t+=".<br><br>Boost (base): "+L(v),t+=".<br>Boost (here): "+L(w))}y.va.T(0)&&(t+=".<br><br>Boost here: "+L(zq(y,u)));return t},n);n=z(function(t){var y=
Kq[t];d?Z({type:FE,x:a,y:b,W:y}):Z({type:XC,x:a,y:b,W:y});D.Bb=t;Oa();OB();return!0},n);var x=z(function(t,y,u){t="Ethereal "+ma(u.name)+"<br><br>"+t();La({size:350>t.length?1:2,title:"Ethereal crop info",names:"plant",ib:y,icon:u.image[4]}).content.a.innerHTML=t},m,n,p);hF(p,f,h,k,n,x,m,d,e,D.ka[b][a]);f++;3<=f&&(f=0,h++)}k.update()};function jF(a,b,d,e,f,g,h,k,l,n){var p=new G(e,.33*b+.01,[0,0,.33*d+.01,.5],.33*(b+1)-.01,[0,0,.33*(d+1)-.01,.5]);p.a.className="efEtherealPlantChip";b=new G(p,0,[.5,0,-.35],[0,0,.7],[.5,0,.35]);d=Va("0%","0%","100%","100%",b.a);Wa(a.image[4],d);var m=new G(p,[0,0,.7],0,1,[0,0,1]);d="";d=k?d+("<b>"+ma(a.name)+"</b><br>"):d+("<b>Plant "+a.name+"</b><br>");e=a.O();l&&(e=e.sub(l));k&&n&&no(n)==a.index&&(e=R());d+="type: "+ij(a.type)+"<br>";d+="cost: "+e.toString();n=void 0;g&&(Aa(b.a,!0),A(b.a,g,ma(a.name)+
" info"));f&&(n=new G(p,[0,0,.7],[0,0,0],[1,0,-.02],[0,0,.98]),A(n.a,f,(k?"Replace with ":"Plant ")+a.name),Aa(n.a));h?(g&&C(b.a,function(){return"Show infinity "+a.name+" info"},!0),f&&C(n.a,function(){return(k?"Replace with infinity ":"Plant infinity ")+a.name+"<br><br>"+h()},!0),C(m.a,function(){return"Infinity "+a.name+"<br><br>"+h()},!0)):(g&&C(b.a,"Show "+a.name+" info"),f&&C(b.a,(k?"Replace with infinity ":"Plant infinity ")+a.name));m.a.innerHTML=d;f&&D.b.la(e)&&(p.a.className="efButtonTranslucentCantAfford",
xD(function(){if(!p||!document.body.contains(m.a))return!1;var x=a.O();l&&(x=x.sub(l));return D.b.oi(x)?(p.a.className="efPlantChip",!1):!0}))}function kF(){for(var a=[],b=0;b<ow.length;b++)D.Aa[ow[b]].f&&a.push(ow[b]);var d=[],e={},f=[];for(b=0;b<a.length;b++)e[a[b]]||f.push(a[b]);f.sort(function(g,h){var k=mw[g].V.R,l=mw[h].V.R;if(tb(k,0)||tb(l,0))k=c(mw[g].l),l=c(mw[h].l);return k.la(l)?1:-1});for(b=0;b<f.length;b++)d.push(f[b]),e[f[b]]=!0;return d}
function ZE(a,b,d,e){for(var f=0,g=0;g<ow.length;g++)D.Aa[ow[g]].f&&f++;var h=f=0;g=La({title:d?"Replace infinity crop":"Plant infinity crop",pb:"efDialogEthereal"}).content;var k=new G(g,0,0,1,.05);ta(k.a);d?(ta(k.a),k.a.h.innerHTML="Replace crop with..."):k.a.h.innerHTML="Choose an infinity crop to plant. Click the icon for more info, or the text to plant it now.";k=new G(g,0,.1,1,1);$a(k);var l=kF();for(g=0;g<l.length;g++){var n=l[g],p=mw[n];if(D.Aa[n].f){var m=z(function(t,y){var u=mw[t],v=D.ta[b][a];
t="Crop type: "+ij(u.type)+(u.l?" (tier "+(u.l+1)+")":"")+"<br>";var w=lj(u.type);w&&(t=t+w+"<br><br>");var q=w=u.O();d&&(q=w.sub(e),no(v)==u.index&&(q=R()));y?(t+="<br>Base cost: "+u.V.toString(),t+="<br>Next cost: "+u.O().toString()):t+="Cost: "+u.O().toString();d&&(t+="<br>Replacement cost: "+q.toString());t=u.type==Vi?t+("<br><br>Finite lifetime: "+r.I(u.Ra)):t+("<br><br>Grow time: "+r.I(u.Ra));y=u.Eb(v);y.empty()||(t+="<br><br>Production: "+y.toString()+"/s",u.type==S&&(t+=" (boostable)"),y.R.T(0)&&
ub(y.R,.1)&&pb(y.R,-.1)&&(t+=" ("+y.R.o(3600).toString()+"/h)"),u.type==Vi&&(y=y.o(u.za()),t+="<br>Total production over full lifetime: "+y.toString()));y=nw(u);y.T(0)&&(t+="<br><br>Boost to neighbors: "+L(y));u=u.wc();u.T(0)&&(t+="<br><br>Production boost to basic field: "+L(u));return t},n);n=z(function(t){var y=mw[t];d?Z({type:UC,x:a,y:b,W:y}):Z({type:wC,x:a,y:b,W:y});D.sb=t;Oa();OB();return!0},n);var x=z(function(t,y,u){t=ma(u.name)+"<br><br>"+t(!0);La({size:350>t.length?1:2,title:"Infinity crop info",
names:"plant",ib:y,icon:u.image[4]}).content.a.innerHTML=t},m,n,p);jF(p,f,h,k,n,x,m,d,e,D.ta[b][a]);f++;3<=f&&(f=0,h++)}}k.update()};var lF,mF,nF=0,oF="",pF="",qF="",rF="",sF="",tF="",uF="",vF="",wF="",xF="",yF=[],cD=[],zF=!1;function zC(a){void 0!=yF[a]&&aD(yF[a])}
function aD(a,b){var d=D.ia;if(D.ia==AF&&D.ia!=a&&D.xh)for(var e=0;e<tx.length;e++){var f=D.Lb[tx[e]];f.hb&&(f.na=!0)}b||(D.ia=a);for(e=0;e<mF.length;e++)mF[e].a.style.visibility=a==e?"visible":"hidden";for(e=0;e<lF.length;e++)lF[e]&&(lF[e].className=a==e?"efButtonHighlighted":"efButton");a==BF&&CF();a==DF&&(D.Xe=!0,EF=null,FF());a==GF&&sD();a==AF&&(pB(),IB());a==IC&&HF();a==IF&&JF();a==KF&&$v();d==KF&&(D.Dg&&(D.Lh=!0),LF&&(Zv=LF.a.scrollTop));Ra();MF();Ta();nC()}
function NF(){if(D.ia==BF&&D.Dc){for(var a=0;a<$n.length;a++){var b=D.i[$n[a]];b.f&&!b.na&&(b.na=!0)}Yv(D)}if(D.ia==AF&&D.xh){for(a=0;a<tx.length;a++);Yv(D)}if(D.ia==IC&&D.Ui){for(a=0;a<Js.length;a++)b=D.K[Js[a]],b.f&&!b.na&&(b.na=!0);Yv(D)}b=KC;if(lF[b]){var d="field";0<D.j&&(d+="<br/>("+D.j+")");D.Da&&(d='<b><font color="#2d0">'+d+"</font></b>");d!=sF&&(lF[b].style.lineHeight="",sF=lF[b].h.innerHTML=d)}b=BF;lF[b]&&(d="upgrades<br/>("+D.wk+"/"+D.xk+")",D.Dc&&(d='<b><font color="red">'+d+"</font></b>"),
d!=oF&&(lF[b].style.lineHeight="",oF=lF[b].h.innerHTML=d));b=DF;if(lF[b]){var e=iz();d=""+(D.Y.length+D.ca.length);var f=OF(e);e&&e.name&&(d=e.name,12<d.length&&(a=d.lastIndexOf(" ",12),9<=a&&12>=a||(a=12),d=d.substr(0,a)));!e&&D.Y.length&&(d="none");if(2==oj())d="fruit<br/>(disabled)";else{d="fruit<br/>("+d+")";if(f){var g=7,h=e?e.l:0;for(a=0;a<D.Y.length;a++){var k=D.Y[a];!k||k==e||k.l<h-1||(k=OF(k),k<g&&(g=k))}7>f&&f<g&&(f=0);7==f&&0==D.Y.length+D.ca.length&&(f=0)}e=void 0;a=!1;g=2==D.kd||3==D.kd;
D.Xe&&7!=f?5<=f?e=g?"#cec":"#050":4<=f?e=g?"#ccf":"#00b":2<=f?e=g?"#ecb":"#630":1<=f&&1==f&&0==D.me[Vi]&&(e=g?"#fbb":"#700"):(e="red",a=!0);e&&(d='<font color="'+e+'">'+d+"</font>");a&&(d="<b>"+d+"</b>")}d!=pF&&(lF[b].style.lineHeight="",pF=lF[b].h.innerHTML=d)}b=HC;lF[b]&&(d="ethereal field",e=void 0,0<D.J?(f=yu(D.J+1),f=D.b.G.a(f.G),d+="<br/>"+D.J+" ("+L(f,2)+")"):0<D.J&&(d+="<br/>("+D.J+")"),D.oe&&0>D.fb&&(e="#0f0"),D.ad[Aq]&&!D.oe&&(e="#fa0"),e&&(d='<font color="'+e+'">'+d+"</font>"),d!=tF&&(lF[b].style.lineHeight=
"",tF=lF[b].h.innerHTML=d));b=IC;lF[b]&&(d=9<nF?"eth. upgrades":"ethereal upgrades",d+="<br/>("+D.tk+"/"+D.vk+")",D.Ui&&(d='<b><font color="red">'+d+"</font></b>"),d!=qF&&(lF[b].style.lineHeight="",qF=lF[b].h.innerHTML=d));b=pC;lF[b]&&(d="infinity field",0==D.ce&&(d='<b><font color="red">'+d+"</font></b>"),d!=uF&&(lF[b].style.lineHeight="",uF=lF[b].h.innerHTML=d));b=GF;lF[b]&&(d="automaton",kq()?vz()||(d=2==oj()?d+"<br>(disabled)":d+"<br>(off)"):d='<font color="#c00">'+(d+"<br>(absent)</font>"),d!=
vF&&(lF[b].style.lineHeight="",vF=lF[b].h.innerHTML=d));b=KF;lF[b]&&(d="squirrel",Fk()?D.Jd||D.Dg&&D.Lh||!Hv(D.hc).Bi(D.b.S)?zF=!1:(d='<b><font color="red">'+d+"</font></b>",zF||$v(),zF=!0):d='<font color="#c00">'+(d+"<br>(absent)</font>"),d!=wF&&(lF[b].style.lineHeight="",wF=lF[b].h.innerHTML=d));b=IF;lF[b]&&(d="amber<br/>("+D.b.ma.toString()+")",d!=xF&&(xF=lF[b].h.innerHTML=d,lF[b].style.lineHeight=""));b=AF;lF[b]&&(d="achievements<br/>("+D.tf+")",D.xh&&D.ia!=AF&&(d='<b><font color="red">'+d+"</font></b>"),
d!=rF&&(rF=lF[b].h.innerHTML=d,lF[b].style.lineHeight=""))}
function MF(){var a=[];a[KC]=!0;a[BF]=0<D.Oh;a[DF]=0<D.vc;a[HC]=0<D.ha;a[IC]=0<D.uk;a[pC]=qx();a[GF]=Vp();a[AF]=0<D.tf;a[KF]=zt();a[IF]=D.qa.ma.T(0);for(var b=0,d=0;d<a.length;d++)a[d]&&b++;nF=b;D.Tj=nF;if(1==b)for(d=0;d<a.length;d++)a[d]&&(a[d]=!1);1>=b?.172!=PF.Id&&(PF.Id=.172,PF.update(zb.a)):.295!=PF.Id&&(PF.Id=.295,PF.update(zb.a));var e=!0;for(d=0;d<a.length;d++)if(a[d]!=!!lF[d]){e=!1;break}if(e)NF();else{lF=[];QF.a.innerHTML="";d=0;var f=!1;6<=b&&(f=!0);var g=Math.floor(b/2);7<=b&&9>=b&&(g=
4);var h=b-g;yF=[];e=KC;if(a[e]){var k=f?d<g?g:h:b;lF[e]=la(100/k*(f?d<g?d:d-g:d)+"%",f?d<g?"0%":"50%":"0%",100/k+"%",f?"50%":"100%",QF.a);Ba(lF[e]);A(lF[e],z(function(l){aD(l)},e),"tab button: field tab",!0);lF[e].h.innerText="field";lF[e].id="field_tab";sF="";yF[d]=e;cD[e]=d;d++}e=BF;a[e]&&(k=f?d<g?g:h:b,lF[e]=la(100/k*(f?d<g?d:d-g:d)+"%",f?d<g?"0%":"50%":"0%",100/k+"%",f?"50%":"100%",QF.a),Ba(lF[e]),A(lF[e],z(function(l){aD(l)},e),"tab button: upgrades tab",!0),lF[e].h.innerText="upgrades",lF[e].id=
"upgrades_tab",oF="",yF[d]=e,cD[e]=d,d++);e=HC;a[e]&&(k=f?d<g?g:h:b,lF[e]=la(100/k*(f?d<g?d:d-g:d)+"%",f?d<g?"0%":"50%":"0%",100/k+"%",f?"50%":"100%",QF.a),Ba(lF[e]),A(lF[e],z(function(l){aD(l)},e),"tab button: ethereal field tab",!0),lF[e].h.innerText="ethereal field",lF[e].id="ethereal_field_tab",lF[e].h.style.textShadow="0px 0px 5px #ff8",tF="",yF[d]=e,cD[e]=d,d++);e=IC;a[e]&&(k=f?d<g?g:h:b,lF[e]=la(100/k*(f?d<g?d:d-g:d)+"%",f?d<g?"0%":"50%":"0%",100/k+"%",f?"50%":"100%",QF.a),Ba(lF[e]),A(lF[e],
z(function(l){aD(l)},e),"tab button: ethereal upgrades tab",!0),lF[e].h.innerText="ethereal upgrades",lF[e].id="ethereal_upgrades_tab",lF[e].h.style.textShadow="0px 0px 5px #ff8",qF="",yF[d]=e,cD[e]=d,d++);e=pC;a[e]&&(k=f?d<g?g:h:b,lF[e]=la(100/k*(f?d<g?d:d-g:d)+"%",f?d<g?"0%":"50%":"0%",100/k+"%",f?"50%":"100%",QF.a),Ba(lF[e]),A(lF[e],z(function(l){aD(l)},e),"tab button: infinity field tab",!0),lF[e].h.innerText="infinity field",lF[e].id="infinity_field_tab",lF[e].h.style.textShadow="0px 0px 5px #88f",
uF="",yF[d]=e,cD[e]=d,d++);e=DF;a[e]&&(k=f?d<g?g:h:b,lF[e]=la(100/k*(f?d<g?d:d-g:d)+"%",f?d<g?"0%":"50%":"0%",100/k+"%",f?"50%":"100%",QF.a),Ba(lF[e]),A(lF[e],z(function(l){aD(l)},e),"tab button: fruit tab",!0),lF[e].h.innerText="fruit",lF[e].id="fruit_tab",pF="",yF[d]=e,cD[e]=d,d++);e=GF;a[e]&&(k=f?d<g?g:h:b,lF[e]=la(100/k*(f?d<g?d:d-g:d)+"%",f?d<g?"0%":"50%":"0%",100/k+"%",f?"50%":"100%",QF.a),Ba(lF[e]),A(lF[e],z(function(l){aD(l)},e),"tab button: automaton tab",!0),lF[e].h.innerText="automaton",
lF[e].id="automaton_tab",vF="",yF[d]=e,cD[e]=d,d++);e=KF;a[e]&&(k=f?d<g?g:h:b,lF[e]=la(100/k*(f?d<g?d:d-g:d)+"%",f?d<g?"0%":"50%":"0%",100/k+"%",f?"50%":"100%",QF.a),Ba(lF[e]),A(lF[e],z(function(l){aD(l)},e),"tab button: squirrel tab",!0),lF[e].h.innerText="squirrel",lF[e].id="squirrel_tab",wF="",yF[d]=e,cD[e]=d,d++);e=IF;a[e]&&(k=f?d<g?g:h:b,lF[e]=la(100/k*(f?d<g?d:d-g:d)+"%",f?d<g?"0%":"50%":"0%",100/k+"%",f?"50%":"100%",QF.a),Ba(lF[e]),A(lF[e],z(function(l){aD(l)},e),"tab button: amber tab",!0),
lF[e].h.innerText="amber",lF[e].id="amber_tab",xF="",yF[d]=e,cD[e]=d,d++);e=AF;a[e]&&(k=f?d<g?g:h:b,lF[e]=la(100/k*(f?d<g?d:d-g:d)+"%",f?d<g?"0%":"50%":"0%",100/k+"%",f?"50%":"100%",QF.a),Ba(lF[e]),A(lF[e],z(function(l){aD(l)},e),"tab button: achievements tab",!0),lF[e].id="achievements_tab",lF[e].h.innerText="achievements",rF="",yF[d]=e,cD[e]=d,d++);NF();aD(D.ia,!0)}};var RF=100,SF="",TF=1,UF=void 0,VF=[],WF=0,EB=1,Qv=2,GB=3,XF=4,dB=5,go=6,YF=7,ZF=8,$F=9,aG=10,mq=11,bG=12,cG=13,dG=14,eG=15;
function fG(a,b,d){void 0==a&&(a=WF);void 0==d&&(d=.5);var e="#fff",f="#000";if(0!=a)if(a==EB)e="#f00",f="#ff0";else if(a==Qv)e="#f00";else if(a==GB)e="#888";else if(a==$F){e=Math.min(Math.max(0,d+.5),1);e=Zb([255*e,255*e,0]);var g;var h=Math.min(Math.max(0,d-.5),1);f=.16-.05*r.de(0,b)*d;f=Zb(Xb([255*f,255,255*h,255]))}else if(a==eG)e="#f00",f="#000";else{var k=0;f=0;var l=1;e=g=1;h=0;var n=.05,p=!1;a==Qv?k=f=0:a==dB?(k=f=.16,g=0,h=.5):a==XF?k=f=0:a==go?(k=f=.5,n=0):a==YF?k=f=.3:a==ZF?(k=.16,f=.66,
n=0):a==aG?(k=f=.9,n=0):a==mq?l=g=0:a==bG?k=f=.1:a==cG?(k=.33,l=1,e=.9,f=0,g=1,h=.5,d=0):a==dG&&(k=.8,f=.2,h=1,d=0);if(0<d||a==XF)k+=r.de(0,b)*n*d,0>k&&(k+=1),1<k&&--k,f+=r.de(1,b)*n*d,0>f&&(f+=1),1<f&&--f,a==XF&&(k=r.de(0,b),f=r.de(1,b)),l+=.1*r.de(2,b)*d,0>l&&(l=0),1<l&&(l=1),g+=.1*r.de(3,b)*d,0>g&&(g=0),1<g&&(g=1),h=Math.min(Math.max(0,d*d+.25*(r.de(4,b)-.5)),1),e=r.de(5,b)*d*.2,a=Xb([255*f,255*g,255*h,255]),a=(.2126*a[0]+.7152*a[1]+.0722*a[2])/255,.5>a&&(e=1-e),b=Xb([255*k,255*l,255*e,255]),.25>
Math.abs(a-(.2126*b[0]+.7152*b[1]+.0722*b[2])/255)&&(e=.5<a?.1:.9,p=!0);e=Zb((p?Vb:Xb)([255*k,255*l,255*e,255]));f=Zb(Xb([255*f,255*g,255*h,255]))}return[e,f]}
function X(a,b,d,e,f,g,h){if(g||h)window.setTimeout(function(){X(a,b,d,e,f,!1)},g?700:0);else{h=fG(b,d,e);g=h[0];h=h[1];var k=D&&D.time?D.time-D.pc:0,l="date: "+r.Xd(D&&D.ua?D.ua:r.getTime());D&&D.time&&(l+=", game time: "+r.I(k),l+=", tree level: "+D.j);k=gG.a;a=ma(a);if(!f&&a==SF&&UF)TF++,a=""+SF+" ("+TF+"x)",UF.innerHTML=a,UF.title=l;else{SF=a;a=""+a;TF=1;var n=r.rf("span",k);VF.push(n);n.style.display="block";n.innerHTML=a;n.style.color=g||"white";h&&(n.style.backgroundColor=h);n.style.margin=
"4px";UF=n;UF.title=l;100<k.childNodes.length&&r.Qb(k.childNodes[0]);k.scrollTop=k.scrollHeight;VF.length>RF&&(r.Qb(VF[0]),VF.shift(0))}}}var hG=void 0,iG=!1;function jG(a,b){if(a!=hG)if(hG=a,iG=!!b,a){var d=b?.845:.865,e=b?.84:.861;gG.Id!=d&&(gG.Id=d,ib(gG,zb.a),kG.yk=e,ib(kG,zb.a),kG.a.className=b?"efGoalSmall":"efGoal",kG.a.style.visibility="visible");kG.a.innerText="Goal: "+a}else gG.Id=kG.Id,ib(gG,zb.a),kG.a.style.visibility="hidden"}var lG=!1;
function mG(){lG||!hG||iG||(lG=!0,kG.a.style.animation="none",window.setTimeout(function(){kG.a.style.animation="efGoalAnimFrame 0.5s"}),window.setTimeout(function(){lG=!1},1E3))}function RB(){var a=gG.a;a.innerText="";a.style.overflowY="scroll";xa(a,"log");UF=void 0;SF="";TF=1;a.style.backgroundColor="#000";a.onclick=IB};var qb=R(),nG=R(),oG=R(),pG=R(),qG=R(),rG=R(),sG=R(),tG=R(),uG,vG=-1;function wG(a){for(var b={},d=0;d<D.D;d++)for(var e=0;e<D.B;e++){var f=D.C[d][e],g=bk[d][e];Xk(f)&&(f=T(f).index,b[f]||(b[f]=c(0)),b[f].v(zi(g.Ce)[a]))}a=[];for(var h in b)a.push(h);a.sort(function(k,l){return k<l});d="";for(e=0;e<a.length;e++)h=a[e],tb(b[h],0)||(d+="\u2022 "+vl[h].name+": "+b[h].toString()+"/s<br/>");return d}
function xG(a){if(qx()){for(var b={},d=0;d<D.Ka;d++)for(var e=0;e<D.La;e++){var f=D.ta[d][e];if(Xk(f)){var g=T(f),h=g.index;b[h]||(b[h]=c(0));f=g.Eb(f);b[h].v(zi(f)[a])}}a=[];for(var k in b)a.push(k);a.sort(function(l,n){return l<n});d="";for(e=0;e<a.length;e++)k=a[e],tb(b[k],0)||(d+="\u2022 "+mw[k].name+": "+b[k].toString()+"/s<br/>");return d}}var yG=-1,zG=-1;
function AG(){var a=qb.clone();qb=R();nG=R();oG=R();pG=R();qG=R();rG=R();for(var b=0;b<D.D;b++)for(var d=0;d<D.B;d++){var e=D.C[b][d],f=bk[b][d];Xk(e)&&(qb.v(f.Hb),nG.v(Hi(f.zf,new R)),oG.v(Fi(f.zf)),pG.v(f.Ce),qG.v(Hi(f.Ce,new R)),rG.v(Fi(f.Ce)))}qb.R=a.R;if(5<r.getTime()-yG&&0<D.pg||D.pg!=zG){tG=new R;for(b=0;b<D.D;b++)for(d=0;d<D.B;d++)e=D.C[b][d],(a=T(e))&&tG.v(a.Eb(e,2));sG=BG(1);yG=r.getTime();zG=D.pg}}var CG=["efSeasonBgSpring","efSeasonBgSummer","efSeasonBgAutumn","efSeasonBgWinter"];
function OD(){return pb(nG.g,0)&&qb.g.la(nG.g.o(.3))}
function DG(a,b){var d=yi[b],e=Ci(D.b,b),f;if(a&&(2==b&&(f=rz()),3==b&&(f=sz()),7==b)){var g=[];f=oz(g).Z}var h=!1;if(!a){var k=Ci(qb,b);var l=Ci(nG,b);var n=Ci(pG,b);var p=Ci(qG,b);h=!wh(k,n)}var m="";if(a)2==b&&(m+="<b>"+ma(d)+"</b><br/><br/>",m=m+"Transcend to gain the upcoming resin.<br><br>Total resin earned ever: "+D.qa.c.toString(),m=m+"<br/><br/>Unspent resin: "+(e.toString()+"<br/>"),m+="\u2192 Production boost for unspent resin: "+L(jh(Qk(D.b.c),1)),oj()&&(m+=" (not active during basic challenge)"),
m=m+"<br><br>Collected upcoming resin: "+f.toString(),1<=D.ha&&(m+=" (previous run: "+D.Sc.c.toString()+" at level "+D.rg+", "+r.I(D.fc,!0)+")"),m+="<br>",f.T(0)&&(m+="\u2192 Upcoming boost with unspent resin: "+L(jh(Qk(f.add(D.b.c)),1))+"<br>"),k=pz(),1>k&&pb(f,0)&&(m=m+"<br>Reduction for being very early in run: -"+L(c(1-k)),m+="<br>"),m=m+"<br>Resin/hour: "+tz().toString(),0<D.ha&&(k=2>D.fc?c(0):(k=D.fc/3600)?D.qg.cc(k):c(0),m+=" (previous run: "+k.toString()+")"),m=m+"<br>Best/hour: "+(D.Lc.c.toString()+
" at level "+D.td.c.valueOf()+", "+r.I(D.ud.c.valueOf(),!0)),0<D.ha&&(m+=" (previous run: "+D.yf.c.toString()+", lvl "+D.wf.c.valueOf()+", "+r.I(D.xf.c.valueOf(),!0)+")"),m+="<br><br>",D.challenge&&!qp[D.challenge].Fc?m+="No resin is gained during the current challenge<br>":(k=D.b.A.a(ju().A),m+="Resin added next tree level: "+nu(D.j+1,void 0).toString()+" (getting "+L(k)+" of this so far)<br>")),3==b&&(m+="<b>"+ma(d)+"</b><br/><br/>",m=m+"Plant a mistletoe next to the tree in the basic field to gain twigs on transcension.<br><br>Total twigs earned entire game: "+
D.qa.G.toString(),m=m+"<br><br>Collected upcoming twigs: "+f.toString(),1<=D.ha&&(m+=" (previous run: "+D.Sc.G.toString()+" at level "+D.rg+")"),m+="<br>",k=pz(),1>k&&pb(f,0)&&(m=m+"<br>Reduction for being very early in run: -"+L(c(1-k)),m+="<br>"),m+="Twigs/hour: "+uz().toString(),0<D.ha&&(d=m,m=2>D.fc?c(0):(m=D.fc/3600)?D.Sc.G.cc(m):c(0),m=d+(" (previous run: "+m.toString()+", "+r.I(D.fc,!0)+")")),m=m+"<br>Best/hour: "+(D.Lc.G.toString()+" at level "+D.td.G.valueOf()+", "+r.I(D.ud.G.valueOf(),!0)),
0<D.ha&&(m+=" (previous run: "+D.yf.G.toString()+", lvl "+D.wf.G.valueOf()+", "+r.I(D.xf.G.valueOf(),!0)+")"),m+="<br><br>",D.challenge&&!qp[D.challenge].lc?m+="No twigs are gained during the current challenge<br>":(k=D.b.A.a(ju().A),m+="Twigs added next tree level: "+tu(void 0).toString()+" (getting "+L(k)+" of this so far)<br>")),7==b&&(m=m+"<b>Fruit essence</b><br/><br/>Current amount: "+(e.toString()+"<br/><br/>"),m+="Amount from next sacrificed fruits: "+f.toString()+"<br/><br/>",m+="You can use this to level up the abilities of all fruits: leveling up fruit abilities does not consume global essence, every fruit can use all of it.<br/><br/>",
1<g.length&&(m+=MD(g,!1,"Upcoming essence breakdown"))),6==b&&(m=m+"<b>Amber</b><br/><br/>Current amount: "+(e.toString()+"<br/><br/>"),m+="Amber drops every now and then when the tree levels. You can use it in the 'amber' tab.<br/><br/>");else{m="<b>"+ma(d)+"</b><br/><br/>";m+="Current amount: "+e.toString()+"<br/>";if(5==b){e=c(0);f=c(0);g={};for(a=0;a<D.Ka;a++)for(var x=0;x<D.La;x++){var t=D.ta[a][x];if(Xk(t)){var y=T(t),u=y.index;g[u]||(g[u]=0);g[u]++;t=y.ub(t,-g[u]+1);e.v(t.R);y.type==Vi&&f.v(t.R)}}e=
[e,f];m+="In field: "+e[0].toString()+" (brassica: "+e[1].toString()+")<br>";m+="Total (field + current): "+e[0].add(D.b.R).toString()+"<br>";m+="Total earned ever: "+D.qa.R.toString()+"<br>"}m+="<br/>";0==b&&OD()&&(m+="<b>Mushrooms are consuming almost all seeds! Plant some high level berries away from mushrooms to get more seeds for upgrades and better crops, or remove some mushrooms if stuck without income</b><br/><br/>");if(0==b||1==b)m+="Highest had: "+Ci(D.Od,b).toString(),m+="<br><br>";1==
b&&pb(nG.A,0)&&qb.A.la(nG.A.o(.9))&&(m=OD()?m+"<b>Mushrooms are consuming almost all seeds! Plant some high level berries away from mushrooms to get more seeds for upgrades and better crops, or remove some mushrooms if stuck without income</b><br/><br/>":m+"<b>Mushrooms are getting less seeds than they can potentially consume! Better upgrade berries first now, upgrading mushrooms doesn't help now because they'll then want to consume even more seeds</b><br/><br/>");1==b&&(m+="Spores aren't used for crops but will automatically level up the tree, which increases the tree progress<br><br>");
4==b&&(m+="Nuts are used for squirrel upgrades, which you can access in the 'squirrel' tab<br><br>",Ok()&&(m+="Production boost for unspent nuts: "+L(jh(Pk(),1)),m+="<br><br>"));if(0==b)k.xc(l)?(m=m+("Production ("+d+"/s):<br/>\u2022 To stacks: ")+(k.toString()+"/s (= going to your resources)<br/>"),m+="\u2022 To consumers: "+l.sub(k).toString()+"/s (= going to neighboring mushrooms)<br/>",m+="\u2022 Total: "+l.toString()+"/s (= what goes to stacks plus what goes to mushroom)<br/>"):(m+="\u2022 Production: "+
k.toString()+"/s<br/>",m+="\u2022 Consumption: 0/s<br/>"),m+="<br/>",h&&(m=m+"Hypothetical production if mushrooms could over-consume and give their full potential spores production:<br/>\u2022 To stacks: "+(n.toString()+"/s (= what would be leftover for stacks if mushrooms could consume all they want, could be negative if mushrooms over-consume)<br/>"),m+="\u2022 To consumers: "+p.sub(n).toString()+"/s (= what mushrooms want to consume if enough seed production available)<br/>",m+="<br/><br/>");
else if(1==b)k.xc(l)?(m=m+("Production ("+d+"/s):<br/>\u2022 Actual: ")+(k.toString()+"/s (= going to your resources)<br/>"),m+="\u2022 Potential: "+l.toString()+"/s (= what mushrooms can produce if given enough seed income from neighboring berries or they could over-consume)<br/>"):m+="Production ("+d+"/s): "+k.toString()+"/s <br/>",m+="<br/>";else{m+="Production ("+d+"/s): "+k.toString()+"/s";if(5==b||k.T(0)&&ub(k,.1)&&pb(k,-.1))m+=" ("+k.o(3600).toString()+"/h)";m+="<br/><br/>"}0<D.pg&&Ci(tG,b).T(0)&&
(d=Ci(sG,b),k=Ci(tG,b),m+="Expected when all fullgrown: ",m=d.xc(k)?0==b?m+(d.toString()+"/s (hypothetical if mushrooms could over-consume: "+k.toString()+"/s)"):m+(d.toString()+"/s (potential: "+k.toString()+"/s)"):m+(d.toString()+"/s"),m+="<br/>")}return m}
function EG(a,b,d){var e=yi[d],f=Ci(D.b,d),g;b&&(2==d&&(g=rz()),3==d&&(g=sz()),7==d&&(g=oz().Z));var h=uG[a],k=!1;k=a="";if(b)2==d||3==d?(k=2==d?tz():uz(),a=e+"<br>"+f.toString()+"<br>(+"+g.toString()+", "+k.toString()+"/hr)",k=e+" "+f.toString()+" (+"+g.toString()+", "+k.toString()+"/hr)"):(a=e+"<br>"+f.toString(),g&&(a+="<br>(+"+g.toString()+")"),k=e+" "+f.toString());else{g=Ci(qb,d);pb(g,-1E-9)&&ub(g,1E-9)&&(g=c(0));var l=Ci(nG,d);var n=Ci(pG,d);Ci(qG,d);k=!wh(g,n);var p="",m="";!D.he||0!=d&&1!=
d||(p='<span class="efAmberInfo">',m="</span>");a=e+("<br>"+f.toString());a+="<br>"+p+g.toString()+"/s"+m;0==d&&OD()&&(a+=' <font color="#888">('+l.toString()+"/s)</font>");1==d&&k&&(a+=' <font color="#888">('+n.toString()+"/s)</font>");k=e+" "+f.toString()+", "+g.toString()+"/s"}h.h.innerHTML=a;ua(h,k);h.hm!=d&&(h.hm=d,C(h,function(){return DG(b,d)},!0,!0),h.style.cursor="pointer",A(h,function(){var x=La({size:2,title:ma(e+" income"),pb:"efDialogTranslucent",Ba:!0}),t=5==d?xG(d):wG(d);""==t&&(t=
" \u2022 None yet");var y=void 0;Fa=z(function(u,v){u=DG(b,d);if(u!=y){var w=u;b||(w+="Breakdown per crop type (as potential production/s): <br/>"+t);var q=void 0;2==d&&(q=[],nu(D.j+1,q),q=MD(q,!1,"Resin gain breakdown"),q+="<br>Upcoming resin source breakdown:<br>",pb(D.c,0)&&(q+=" \u2022 Tree: "+D.c.toString()+"<br>"),pb(D.qe.c,0)&&(q+=" \u2022 Ferns (not included in the /hr stat): "+D.qe.c.toString()+"<br>"),tb(D.c,0)&&tb(D.qe.c,0)&&(q+=" \u2022 None yet<br>"));3==d&&(q=[],tu(q),q=MD(q,!1,"Twigs gain breakdown"));
q&&(w+=q);if(2==d){w+="<br>Total resin allocation:<br>";var F=D.b.c,B=SE().c;q=cw[xu].Fj(D.nb[xu].aa).c;F=D.qa.c.sub(F).sub(B).sub(q);w+="\u2022 Stacks: "+D.b.c.toString()+"<br>";w+="\u2022 Ethereal field: "+SE().toString()+"<br>";w+="\u2022 Ethereal upgrades: "+F.toString()+"<br>";D.nb[xu].aa&&(w+="\u2022 Ethereal mistletoe: "+q.toString()+"<br>")}v.a.innerHTML=w;y=u}},h,x.content);Fa()},"info box: "+e+" resource"))}
function FG(){function a(){var e="";if(0<D.j){e+="<b>Level:</b> "+D.j;D.j>=fu&&(e+=". Transcension available, click the tree.");e+="<br><br>";var f=ju().A.sub(D.b.A).a(qb.A);e+="<b>Next tree level requires:</b> "+ju().toString()+" ("+r.I(f.valueOf(),!0)+")<br><br>";e+="<b>Progress to next level:</b> "+Math.floor(100*d).toString()+"%<br><br>";1<=D.ha&&(e+="<b>Max level ever:</b> "+D.Pa+"<br><br>")}e+="<b>Time in this field:</b> "+r.I(D.pa,!0,4,!0)+"<br><br>";e+="<b>Current season:</b> "+ma(Qi[Oj()])+
"<br><br>";e+="<b>"+ma(Qi[Oj()])+" effects:</b><br>";f=Oj();0==f&&(e+="\u2022 +"+L(jh(Wj(),1))+" bonus to flower boost<br>",D.P[kj].X&&(e+="\u2022 Bees can reach flowers diagonally too, so they can have 8 neighbors<br>"),D.K[Nj[f]].count&&!oj()&&(e+="\u2022 Crops grow "+L(c(Pj))+" faster (ethereal upgrade)<br>"));1==f&&(e+="\u2022 +"+L(jh(Xj(),1))+" bonus to berry seed production<br>",Yj().T(1)&&(e+="\u2022 +"+L(jh(Yj(),1))+" bonus to mushroom spore production (but also consumption)<br>"),D.K[Nj[f]].count&&
!oj()&&(e+="\u2022 Resin bonus: "+L(jh(pu(f),1))+" (ethereal upgrade)<br>"));2==f&&(e+="\u2022 +"+L(jh(Zj(),1))+" bonus to mushroom spores production, without increasing consumption<br>",ak().T(1)&&(e+="\u2022 +"+L(jh(ak(),1))+" bonus to berry seed production<br>"),D.K[rp].count&&!oj()&&(e+="\u2022 Twigs bonus: "+L(jh(uu(),1))+" more twigs added when tree levels with mistletoes<br>"),D.K[Nj[f]].count&&!oj()&&(e+="\u2022 Resin bonus: "+L(jh(pu(f),1))+" (ethereal upgrade)<br>"));if(3==f){var g=D.Lb[Xx].hb;
e+="\u2022 Harsh conditions: -"+L(c(1).sub(c(ck)))+" berry / mushroom / flower"+(g?" / beehive":"")+" stats when not next to the tree<br>";e+="\u2022 Brassica frost: -"+L(c(1).sub(Yl))+" brassica copying and -"+L(c(1).sub(Yl))+" brassica copying fruit ability when not next to the tree<br>";g=!oj()&&D.K[bt].count?" (orthogonal or diagonal: 10 spots)":" (current reach: orthogonal, 6 spots)";e+="\u2022 Winter tree warmth: +"+L(jh(dk(),1))+" berry / mushroom stats (also consumption) and no harsh conditions for any crop when next to the tree "+
g+"<br>";D.K[Nj[f]].count&&!oj()&&(e+="\u2022 Winter tree warmth for flowers: "+L(jh(ek,1))+" (ethereal upgrade)<br>");e+="\u2022 Resin bonus: "+L(jh(ou(),1))+" more resin added when tree levels up during the winter<br>"}5==f&&(e+="\u2022 Crops produce less, the higher tier and upgrade level the worse the effect<br>");e+="<br>";3>=f&&(e+="<b>Season change in:</b> "+GG()+".<br>",e+="<br>");f=!!D.i[yj].count;g=!!D.i[Aj].count;var h=!!D.i[Cj].count;if(f||g||h)e+="<b>Weather abilities:</b><br>",f&&(e+=
"<b>Sun:</b> berry production boost: +"+L(cl())+", and not negatively affected by winter. Run time: "+r.I(mj(120))+". Cooldown time: "+r.I(rj(720)-mj(120))+"<br>"),g&&(e+="<b>Mist:</b> mushroom production boost: +"+L(el())+", consumption reduced by "+L(kh())+", and not negatively affected by winter. Run time: "+r.I(mj(180))+". Cooldown time: "+r.I(rj(1080)-mj(180))+"<br>"),h&&(e+="<b>Rainbow:</b> flower boost: +"+L(Kl())+", and not negatively affected by winter. Run time: "+r.I(mj(240))+". Cooldown time: "+
r.I(rj(1440)-mj(240))+"<br>");return e}var b=La({size:2,title:"Game info"}).content,d=Math.min(1,D.b.A.a(ju().A).valueOf());b.a.innerHTML=a();Fa=function(){b.a.innerHTML=a()}}function GG(){return D.yb&&D.mc?"At end of run":D.yb&&!D.mc?"At end of run ("+r.I(HG()+IG(),!0)+")":r.I(HG()+IG(),!0)}
function JG(){var a=KG.a;if(!uG.length){vG=-1;for(var b=0;2>b;b++)for(var d=0;4>d;d++){var e=4*b+d,f=la(25*d+"%",50*b+"%","25%","50%",a);f.className="efInfo";ta(f);f.style.textOverflow="hidden";f.style.whiteSpace="nowrap";uG[e]=f;f.style.lineHeight="90%"}}if(Oj()!=vG)for(vG=Oj(),e=0;e<uG.length;e++)uG[e].className="efInfo "+CG[Oj()];a="\ud83c\udf31 spring \ud83c\udf31;\u2600\ufe0f summer \u2600\ufe0f;\ud83c\udf42 autumn \ud83c\udf42;\u2744\ufe0f winter \u2744\ufe0f;ethereal;\ud83d\udd25 infernal \ud83d\udd25".split(";")[Oj()];
b=0<D.j?"level "+D.j:"time";d=Math.min(1,D.b.A.a(ju().A).valueOf());0<D.j&&(b+=" ("+Math.floor(100*d)+"%)");D.j>=fu&&5>D.ha&&(b='<span style="text-shadow:0px 0px 5px #ff0">'+b+"</span>");d=r.I(D.pa,!0,4,!0);Qj()?d='<font color="#4f8">'+d+"</font>":nl()&&(d='<font color="#f80">'+d+"</font>");D.yb&&(a='<span class="efAmberInfo">'+a+"</span>");uG[0].h.innerHTML=b+"<br>"+d+"<br>"+a;uG[0].style.cursor="pointer";uG[0].gm||(uG[0].gm=!0,A(uG[0],function(){FG()},"info box: time and level"),C(uG[0],function(){var g=
"Season change in: "+GG()+".<br>";if(1<=D.j){var h=ju().A.sub(D.b.A).a(qb.A);g+="<br>Next tree level requires: "+ju().toString()+"<br>("+r.I(h.valueOf(),!0)+")"}1<=D.ha&&(g+="<br><br>Max level ever: "+D.Pa);Qj()&&(g+="<br><br>",g=ol(1)?g+("Grow speed effect from present active: crops grow twice as fast for 15 minutes. Time remaining: "+r.I(D.tg+900-D.time,!0,4,!0)):g+("Grow speed effect from egg active: crops grow twice as fast for 15 minutes. Time remaining: "+r.I(D.tg+900-D.time,!0,4,!0)));nl()&&
(g+="<br><br>",g=ol(1)?g+("Production boost effect from present active: +25% boost to seeds and spores production for 15 minutes. Time remaining: "+r.I(D.ug+900-D.time,!0,4,!0)):g+("Production boost effect from egg active: +25% boost to seeds and spores production for 15 minutes. Time remaining: "+r.I(D.ug+900-D.time,!0,4,!0)));return g},!0));ua(uG[0],b+", "+d+", "+a);AG();e=1;D.Jb.g.T(0)&&EG(e++,!1,0);D.Jb.A.T(0)&&EG(e++,!1,1);(D.Jb.c.T(0)||D.c.T(0))&&EG(e++,!0,2);(D.Jb.G.T(0)||D.G.T(0)||D.K[rp].count)&&
EG(e++,!0,3);D.Jb.Z.T(0)&&EG(e++,!0,7);D.Jb.S.T(0)&&EG(e++,!1,4);qx()?EG(e++,!1,5):D.Jb.ma.T(0)&&EG(e++,!0,6)};var LG=[],MG=[],NG=[],OG=[],PG=void 0,QG,RG,SG;
function pB(){if(PG!=TG){PG=TG;LG=[];MG=[];NG=[];OG=[];RG=new G(TG,.02,.02,1,.05);QG=new G(TG,.02,.15,.9,2);$a(TG);var a=r.rf("span",QG.a);xa(a,"heading");ua(a,"achievements list")}a="Achievement production bonus: +"+L(jh(D.sf,1));a=a+"<br>Achievements earned: "+D.tf;RG.a.innerHTML=a;for(var b=vx.length,d=!1,e=-1,f=0;f<b;f++){var g=ux[vx[f]],h=D.Lb[vx[f]],k=!1;h.hb&&(k=!0);void 0!=g.hint&&D.Lb[g.hint].hb&&(k=!0);if(k){e++;k=g.icon;h.hb||(k=bh[sx(g)]);if(OG[e]){var l=OG[e];if(l.icon==k&&l.na==h.na&&
l.index==f&&l.hb==h.Nm)continue}OG[e]={icon:k,na:h.na,index:f,hb:h.hb};d=!0;l=e%10;var n=Math.floor(e/10);LG[e]?l=LG[e]:(l=new G(QG,[0,0,l/10],[0,0,n/10],(l+1)/10-.005,[0,0,(n+1)/10-.005]),LG[e]=l);l=l.a;MG[e]?n=MG[e]:(n=Va("0%","0%","100%","100%",l),MG[e]=n);l=LG[e];n=MG[e];l=l.a;Wa(k,n);h.hb?ua(l,"achievement: "+g.name):ua(l,"not-yet-earned achievement: "+g.name);l.style.border=h.hb?"3px solid "+Zg[sx(g)]:"";l.style.backgroundColor=h.hb?$g[sx(g)]:"#8888";k=NG[e];!h.hb||h.na||NG[e]||(k=Va("0","0",
"25%","25%",l),MG[e]=n,NG[e]=k,Wa(Bc,k));!h.na&&h.hb||!NG[e]||(r.Qb(k),NG[e]=void 0);n=z(function(p,m,x,t,y){m.hb&&!m.na&&(m.na=!0,r.Qb(t),NG[y]=void 0)},g,h,l,k,e);h=z(function(p,m){var x=sx(p);return m.hb?ma(p.name)+": "+na(p.description)+"<br><br>Production bonus: +"+L(p.Af)+"<br><br>Tier "+co(x)+": "+Yg[x]:ma(p.name)+'<br><br>Not yet earned. Unearned achievements are normally hidden, except hinted ones like this shown as "?"<br><br>Production bonus: +'+L(p.Af)+"<br>Tier "+co(x)+": "+Yg[x]},g,
h,l,k,e);C(l,h);r.ob(l,"mouseover","medalseen",n);A(l,z(function(p,m,x){La({size:1,title:"Achievement",icon:x.icon}).content.a.innerHTML=p();m()},h,n,g))}}b=e;if(d){d=100<D.tf;if(SG)for(e=0;e<SG.length;e++)Ua(SG[e],QG);SG=[];l=0;n=Math.floor(b/10)+(d?1.5:2);l=new G(QG,[0,0,l/10],[0,0,n/10],(l+10-1)/10-.005,[0,0,(n+1)/10-.005]);SG.push(l);d?l.a.innerHTML=a+"<br><br>Key: tiers from lowest to highest:":l.a.innerText="Key: tiers from lowest to highest:";for(f=0;f<Zg.length;f++)l=f%10,n=Math.floor(b/10)+
Math.floor(f/10)+3,l=new G(QG,[0,0,l/10],[0,0,n/10],(l+1)/10-.005,[0,0,(n+1)/10-.005]),SG.push(l),l.a.style.backgroundColor=$g[f],l.a.style.color=r.Pl($g[f]),l.a.style.border="4px solid "+Zg[f],ta(l.a),l.a.h.innerText=Yg[f]}}var UG=void 0;function IB(){UG&&(Ua(UG,zb),UG=void 0)}
function VG(a){IB();a=ux[a];UG=new G(zb,.2,.85,.8,.95);UG.a.style.backgroundColor="#ddde";var b=new G(UG,.01,[.5,0,-.35],[0,0,.7],[.5,0,.35]);b=Va("0%","0%","100%","100%",b.a);Wa(a.icon,b);b=new G(UG,[0,0,.7],[.5,0,-.35],.99,[.5,0,.35]);b.a.style.color="#000";b.a.innerHTML="Achievement Unlocked<br><br>"+ma(a.name)+" (+"+L(a.Af)+")";A(UG.a,IB)};function WG(a,b){a.a.style.backgroundColor="#ccc";a.a.style.border="1px solid black";b.Ne&&(a.a.style.backgroundColor=b.Ne);b.Qe&&(a.a.style.border="1px solid "+b.Qe);if(b.jf){var d=Va("0%","0%","100%","100%",a.a);Wa(b.jf,d)}b.kf&&(d=Va("0%","0%","100%","100%",a.a),Wa(b.kf,d))}
function XG(a,b,d,e){b.a.className="efUpgradeChip";var f=a.O(d?-1:0),g=D.b.la(f),h=300*Qh+3*Ph+D.Ac,k=D.i[a.index];if(void 0!=b.Za){var l=!0;b.Za!=a.index&&(l=!1);b.mm!=k.count&&(l=!1);b.lm!=d&&(l=!1);b.km!=g&&(l=!1);b.nm!=h&&(l=!1);if(l)return}e&&(a.index==Wp&&(b.a.id=1==e?"help_arrow_upgrade_watercress":"help_arrow_upgrade_watercress_side"),a.index==Io&&(b.a.id=1==e?"help_arrow_unlock_blackberry":"help_arrow_unlock_blackberry_side"),a.index==Jo&&(b.a.id=1==e?"help_arrow_unlock_blueberry":"help_arrow_unlock_blueberry_side"),
a.index==gp&&(b.a.id=1==e?"help_arrow_unlock_anemone":"help_arrow_unlock_anemone_side"),a.index==op&&(b.a.id=1==e?"help_arrow_unlock_nettle":"help_arrow_unlock_nettle_side"));b.Za=a.index;b.mm=k.count;b.lm=d;b.km=g;b.nm=h;e=b.Si;k=h=d?a.xd():a.Ej();b.$i.clear();WG(b.$i,a);ua(b.$i.a,"info: "+h);ua(b.Kl.a,"buy: "+h+", cost: "+f.toString());d?(k+="<br>",k=a.Bd&&d?k+("Chosen: "+(1==D.i[a.index].count?a.Rd:a.Sd)):k+("Cost: "+f.toString())):(k=k+"<br>"+(a.Bd?"Choose":"Cost: "+f.toString()),e.a.className=
g?"efTextCantAfford":"",r.ob(b.a,"mouseover","upgradeseen",function(){D.i[a.index].na=!0}));e.a.innerHTML=k}
function YG(a,b,d){var e=a.O(b?-1:0),f="";a.description&&(f+=a.description);f+="<br><br>Cost: "+e.toString();b||(f+=" ("+ob(e)+")");f=a.Bd&&0!=D.i[a.index].count?f+("<br><br>Chosen: "+(1==D.i[a.index].count?a.Rd:a.Sd)):f+("<br><br>Have of this upgrade: "+D.i[a.index].count);void 0==a.Fa||a.ue||(f+="<br>Have of this crop: "+D.eb[a.Fa]);if(void 0!=a.Fa&&!a.gg){b=vl[a.Fa];e=D.U[a.Fa];f=f+"<hr>Crop info ("+(b.name+"):<br><br>");b.Mb.empty()||(f+="Base production: "+b.Mb.toString()+"<br>",f+="Upgraded production: "+
b.Eb().toString()+"<br>");b.va.T(0)&&(f+="Base boost: "+L(b.va)+"<br>",f+="Upgraded boost: "+L(b.type==Zi?Nl(b):ok(b))+"<br>");var g=b.O();f+="Planting cost: "+g.toString()+" ("+ob(g)+")<br>";b.type==Vi?f+="Living time: "+r.I(b.za()):(f+="Grow time: "+r.I(b.za()),b.za()!=b.Ra&&(f+=" (base: "+r.I(b.Ra)+")"));f=f+"<br>Type: "+(ij(b.type)+(b.l?" (tier "+(b.l+1)+")":"")+"<br>");e.sa&&(f+="Prestiged: "+e.sa+"x<br>");d&&(b=vl[a.Fa])&&(f+="<br>"+b.Gd)}return f}
function ZG(a){var b=Fj[a.Za],d=void 0,e=void 0;b.Bd||(d=function(){Z({type:$G,Za:b.index,shift:!1});1==b.jb&&Oa();OB();h.content.a.innerHTML=YG(b,void 0,!0);return!0},e=1==b.jb?"buy":"buy one");var f=void 0,g=void 0;b.Bd||1==b.jb||(f=function(){Z({type:$G,Za:b.index,shift:!0});OB();h.content.a.innerHTML=YG(b,void 0,!0);return!0},g="buy many");a.sk();var h=La({size:1,ib:[d,f],names:[e,g],qc:"close",title:ma(b.name),Tk:.1});h.content.a.innerHTML=YG(b,void 0,!0);WG(h.icon,b)}
function aH(a,b,d,e,f,g){if(e.Si)XG(a,e,f,g),e.sk();else{var h=new G(e,[0,0,.8],.05,1,.3);e.Si=h;h=new G(e,.01,[.5,0,-.35],[0,0,.7],[.5,0,.35]);e.$i=h;var k=new G(e,[0,0,.8],.01,.9,[.5,0,.35]);e.Kl=k;e.Za=a.index;var l="",n=function(){l=YG(Fj[e.Za],f)};f||(Aa(k.a),A(k.a,z(function(p,m){var x=Fj[e.Za];x.Bd?(p=La({size:2,title:ma(x.name),ib:[function(){Z({type:$G,Za:x.index,shift:!1,Rf:1});OB()},function(){Z({type:$G,Za:x.index,shift:!1,Rf:2});OB()}],names:[x.Rd,x.Sd],Tk:.1}),p.content.a.innerHTML=
x.description,WG(p.icon,x)):(Z({type:$G,Za:x.index,shift:m.shiftKey}),OB());window.getSelection?window.getSelection().removeAllRanges():document.selection&&document.selection.empty()},Ex)),r.ob(e.a,"mouseover","upgradeseen",function(){D.i[Fj[e.Za].index].na=!0}));C(k.a,function(){n();return l},!0);C(h.a,function(){return"Show "+na(Fj[e.Za].name)+" info"});Aa(h.a);A(h.a,function(){ZG(e)});e.sk=n;XG(a,e,f,g);e.sk();r.ob(e.a,"mouseover","fieldover",z(function(){WC=a.Fa},b,d));r.ob(e.a,"mouseout","fieldout",
z(function(){WC=null},b,d))}}var WC=null,bH=null,cH=!1,dH=[];
function eH(){function a(g,h){for(var k=void 0,l=0;l<$n.length;l++)if(!b[$n[l]]){var n=Fj[$n[l]];D.i[$n[l]].f&&0==n.jb&&void 0!=n.Fa&&vl[n.Fa].type==g&&(void 0==k||n.V.da(k.V))&&(k=n)}k&&h.push(k.index)}dH=[];var b={};var d=[];for(var e=0;e<$n.length;e++)if(!b[$n[e]]){var f=Fj[$n[e]];1==f.jb&&f.V.A.T(0)&&d.push($n[e])}d=d.sort(function(g,h){g=Fj[g];h=Fj[h];return g.V.A.la(h.V.A)?1:-1});for(e=0;e<d.length;e++)dH.push(d[e]),b[d[e]]=!0;d=[];for(e=0;e<$n.length;e++)b[$n[e]]||(f=Fj[$n[e]],1==f.jb&&tb(f.V.A,
0)&&d.push($n[e]));d=d.sort(function(g,h){g=Fj[g];h=Fj[h];return g.V.g.la(h.V.g)?1:-1});for(e=0;e<d.length;e++)dH.push(d[e]),b[d[e]]=!0;d=[];for(e=0;e<$n.length;e++)b[$n[e]]||(f=Fj[$n[e]],1<f.jb&&d.push($n[e]));d=d.sort(function(g,h){g=Fj[g];h=Fj[h];return g.V.g.la(h.V.g)?1:-1});for(e=0;e<d.length;e++)dH.push(d[e]),b[d[e]]=!0;d=[];a(S,d);a(Si,d);a(cj,d);a(Ti,d);a(Zi,d);a(Ui,d);a(Vi,d);d=d.sort(function(g,h){g=Fj[g];h=Fj[h];return g.V.g.la(h.V.g)?1:-1});for(e=0;e<d.length;e++)dH.push(d[e]),b[d[e]]=
!0;d=[];for(e=0;e<$n.length;e++)b[$n[e]]||(f=Fj[$n[e]],0==f.jb&&(void 0==f.Fa||D.eb[f.Fa])&&d.push($n[e]));d=d.sort(function(g,h){g=Fj[g];h=Fj[h];return g.V.g.la(h.V.g)?1:-1});for(e=0;e<d.length;e++)dH.push(d[e]),b[d[e]]=!0;d=[];for(e=0;e<$n.length;e++)b[$n[e]]||(f=Fj[$n[e]],0==f.jb&&d.push($n[e]));d=d.sort(function(g,h){g=Fj[g];h=Fj[h];return g.V.g.la(h.V.g)?1:-1});for(e=0;e<d.length;e++)dH.push(d[e]),b[d[e]]=!0}var fH=[],gH=[],hH=void 0;
function CF(){0==dH.length&&eH();iH=[];var a=0;bH&&(a=bH.a.scrollTop);var b;if(hH!=jH){jH.clear();gH=[];hH=jH;bH=b=new G(jH,0,.01,1,1);$a(b);var d=new G(b,.01,.02,.95,.15);d.a.innerHTML="Hold shift to buy as many as possible<br>Click icon or see tooltip for more info";jH.am=b;jH.Si=d}else b=jH.am,d=jH.Si;var e=[0,0];d=[];for(var f=0;f<dH.length;f++){var g=dH[f];Fj[g].le()&&d.push(g)}for(f=0;f<d.length;f++){g=Fj[d[f]];var h=f&1,k=f>>1;h=gH[f]||new G(b,.49*h+.01,[.15,0,.45*k+.01,.27],.49*(h+1)-.01,
[.15,0,.45*(k+1)-.01,.27]);gH[f]=h;aH(g,f&1,f>>1,h,!1,1)}for(f=d.length;f<gH.length;f++)gH[f]&&(Ua(gH[f],b),gH[f]=void 0);var l=[];for(f=0;f<dH.length;f++)g=dH[f],D.i[g].count&&l.push(g);0<l.length&&(h=0,k=(d.length+1>>1)+.33,h=new G(b,.01,[.15,0,.45*k+.01,.27],.48,[.15,0,.45*(k+1)-.01,.27],void 0,!0),gH[f]=h,Ba(h.a),h.a.innerText="See Completed Upgrades",A(h.a,function(){for(var n=La({Ba:!0,title:"Completed upgrades"}),p=0;p<l.length;p++){var m=Fj[l[p]];la(e[0],e[1],200,20,n.content.a);var x=p&1,
t=p>>1;x=new G(n.content,.49*x+.01,[0,0,.45*t+.01,.27],.49*(x+1)-.01,[0,0,.45*(t+1)-.01,.27]);aH(m,p&1,p>>1,x,!0);x.a.style.color="#2a2";x.a.style.borderColor="#2a2"}n.content.update()}));b.update();bH.a.scrollTop=a;cH=!0}var iH=[];function kH(a,b,d){b.a.className="efEtherealUpgradeChip";var e=a.O(d?-1:0),f=new G(b,[0,0,.8],.05,1,.3),g=d?a.xd():a.Ej(),h=ma(g),k=new G(b,.01,[.5,0,-.35],[0,0,.7],[.5,0,.35]);a.Ne&&(k.a.style.backgroundColor=a.Ne);a.Qe&&(k.a.style.border="1px solid "+a.Qe);if(a.jf){var l=Va("0%","0%","100%","100%",k.a);Wa(a.jf,l)}a.kf&&(l=Va("0%","0%","100%","100%",k.a),Wa(a.kf,l));b=new G(b,[0,0,.8],.01,.9,[.5,0,.35]);var n=ma(g);n+="<br><br>Cost: "+e.toString();n+="<br><br>have of this upgrade: "+D.K[a.index].count;
a.description&&(n+="<br><br>"+a.description);n+="<br><br>This ethereal upgrade is non-refundable and permanent. Lasts through transcensions.";if(0<a.J||0<D.J)n+="<br><br>Ethereal tree level: "+a.J;h=h+"<br>Cost: "+e.toString();d||(Aa(b.a),D.b.la(e)&&(f.a.className="efTextCantAfford"),A(b.a,z(function(){Z({type:lH,Za:a.index});OB()},Ex),"buy "+g));C(b.a,n);C(k.a,"Show "+g+" info");Aa(k.a);A(k.a,function(){La({size:1,title:"Ethereal upgrade info"}).content.a.innerHTML=n},"info: "+g);f.a.innerHTML=h}
var mH=null,nH=[];function oH(){nH=[];var a={};var b=[];for(var d=0;d<Js.length;d++)a[Js[d]]||b.push(Js[d]);b=b.sort(function(e,f){e=Ks[e];f=Ks[f];return e.J!=f.J?e.J<f.J?1:-1:e.V.c.xc(f.V.c)?e.V.c.la(f.V.c)?1:-1:e.index<f.index?-1:1});for(d=0;d<b.length;d++)nH.push(b[d]),a[b[d]]=!0}
function HF(){0==nH.length&&oH();var a=0;mH&&(a=mH.a.scrollTop);pH.clear();var b=new G(pH,0,.01,1,1);mH=b;$a(b);for(var d=new G(b,.01,0,.99,.2),e=[],f=0;f<nH.length;f++){var g=nH[f];Ks[g].le()&&e.push(g)}f="Ethereal upgrades are permanent and the resin is not refundable. You can also spend resin on plants in the ethereal field instead.<br><br>Level up the ethereal tree to get more upgrades.<br><br>";f=0==e.length?f+"<i>No further ethereal upgrades are available for now.</i>":f+"Click the icon of an upgrade or see its tooltip for a more detailed description.";
d.a.innerHTML=f;var h=[0,0];for(f=0;f<e.length;f++){d=Ks[e[f]];g=f&1;var k=f>>1,l=.45;g=new G(b,g*l+.01,[.25,0,k*l+.01,.25],(g+1)*l-.01,[.25,0,(k+1)*l-.01,.25]);kH(d,g,!1)}var n=[];for(f=0;f<nH.length;f++)g=nH[f],D.K[g].count&&n.push(g);0<n.length&&(g=0,k=(e.length+1>>1)+.33,l=.45,e=new G(b,0*l+.01,[.25,0,k*l+.01,.27],1*l-.01,[.25,0,(k+1)*l-.01,.27],void 0,!0),Ba(e.a),e.a.innerText="See Completed Upgrades",A(e.a,function(){for(var p=La({Ba:!0,title:"Completed ethereal upgrades"}),m=0;m<n.length;m++){var x=
Ks[n[m]];la(h[0],h[1],200,20,p.content.a);var t=m&1,y=m>>1;t=new G(p.content,.45*t+.01,[0,0,.45*y+.01,.27],.45*(t+1)-.01,[0,0,.45*(y+1)-.01,.27]);kH(x,t,!0);t.a.style.color="#2a2";t.a.style.borderColor="#2a2"}p.content.update()}));b.update();mH.a.scrollTop=a}var qH=[];var rH=void 0;
function zk(a,b){if(b){switch(a){case Ft:return"/";case yk:return"BB";case Ak:return"MB";case Bk:return"ME";case yl:return"FB";case Ij:return"G";case uj:return"WB";case Zl:return"BC";case zl:return"NB";case Jt:return 0==Oj()?"S":"s";case Kt:return 1==Oj()?"S":"s";case Lt:return 2==Oj()?"S":"s";case Mt:return 3==Oj()?"S":"s";case Nt:return 0!=Oj()&&1!=Oj()||!Ut(1)?"s":"S";case Ot:return 1!=Oj()&&2!=Oj()||!Ut(1)?"s":"S";case Pt:return 2!=Oj()&&3!=Oj()||!Ut(1)?"s":"S";case Qt:return 3!=Oj()&&0!=Oj()||
!Ut(1)?"s":"S";case Rt:return Ut(2)?"S":"s";case St:return Ut(3)?"S":"s";case Gt:return"RS";case Ht:return"TW";case Ck:return"NU";case Sl:return"BE";case Al:return"X";case It:return"T";case Dk:return"O"}return"?"}switch(a){case Ft:return"none";case yk:return"berry boost";case Ak:return"mushroom boost";case Bk:return"mushroom economy";case yl:return"flower boost";case Ij:return"growing speed";case uj:return"weather boost";case Zl:return"brassica copying";case zl:return"nettle boost";case Jt:return"spring boost";
case Kt:return"summer boost";case Lt:return"autumn boost";case Mt:return"winter boost";case Nt:return"spring and summer boost";case Ot:return"summer and autumn boost";case Pt:return"autumn and winter boost";case Qt:return"winter and spring boost";case Rt:return"4-seasons boost";case St:return"ultra seasons boost";case Gt:return"resin boost";case Ht:return"twigs boost";case Ck:return"nuts boost";case Sl:return"bee boost";case Al:return"mix nettle/brass/bee";case It:return"treelevel prod boost";case Dk:return"seeds overload"}return"unknown"}
function sH(a){switch(a){case Ft:return"none, fuse fruits to fill this slot";case yk:return"boosts berry production";case Ak:return"boosts mushroom production but also consumption";case Bk:return"reduces mushroom consumption (with a soft cap)";case yl:return"boosts flowers effect";case Ij:return"reduces crop grow time (Before any other reductions. A soft cap applies.)";case uj:return"increases the weather effect abilities";case Zl:return"increases the copy effect of brassica (such as watercress)";
case zl:return"boosts the nettle effect";case Jt:return"boosts the spring flower boost, only during the spring season";case Kt:return"boosts the summer berry boost, only during the summer season";case Lt:return"boosts the autumn mushroom boost, only during the autumn season";case Mt:return"boosts the winter tree warmth effect, only during the winter season";case Nt:return"boosts the spring flower boost and the summer berry boost, only during the respective seasons";case Ot:return"boosts the summer berry boost and the autumn mushroom boost, only during the respective seasons";
case Pt:return"boosts the autumn mushroom boost and the winter tree warmth effect, only during the respective seasons";case Qt:return"boosts the winter tree warmth effect and the spring flower boost, only during the respective seasons";case Rt:return"boosts the special effect of each of the 4 seasons, when the applicable season is active: flower boost in spring, berry boost in summer, mushroom boost in autumn, tree warmth boost in winter";case St:return"boosts the special effect of each of the 4 seasons, even more for dragon fruit, when the applicable season is active: flower boost in spring, berry boost in summer, mushroom boost in autumn, tree warmth boost in winter";
case Gt:return"boost resin income (with a soft cap), taking into account the time this fruit was active";case Ht:return"boost twigs income (with a soft cap), taking into account the time this fruit was active";case Ck:return"boosts nuts production (with a soft cap)";case Sl:return"boosts the beehive bonus";case Al:return"divides given boost over nettle, brassica and bee, balanced differently for spores and seeds, but only additively if corresponding non-mix abilities are present";case It:return"boosts the production boost that is given by the tree level, the listed multiplier is reached for high enough tree level";
case Dk:return"boosts seeds, but increases mushroom seed consumption by the same amount"}return"unknown"}var EF=null,tH=null;
function uH(a){var b=La({title:"Fruit help",Ba:!0}),d="";a||(d+="Fruits drop when the tree reaches certain levels. Fruits have one or more abilities from a random set. At higher tree levels, higher tier fruits with more and stronger abilities can drop.<br/><br/>You can move fruits between the stored and sacrificial slots with the buttons in the fruit dialog. You can choose the active fruit with the arrows. You can only have one active fruit and only the abilities of the active fruit have an effect. You can switch the active fruit at any time. You can also select no fruit at all by toggling the arrow above an active one.<br/><br/>Fruit essence can be used to level up abilities, increasing their effect. If the fruit has mutliple abilities, click the ability you want to upgrade first.<br/><br/>All fruit essence is available for all fruits, leveling up an ability in one fruit does not consume any fruit essence for other fruits. Example: if you have 50 fruit essence and 3 fruits, then you can use 50 essence in fruit 1, you can also use 50 essence in fruit 2, and you can also use 50 essence in fruit 3, and in any future fruits as well. If you now sacrifice a fruit that gives 10 essence, you have 10 more essence available for all the others.<br/><br/>Leveling up abilities permanently affects this fruit, you cannot undo it. This only matters if this fruit has more than one ability so that you have to choose which ones to level up. And if unhappy with this fruit, you can always wait for a next one and sacrifice this one.<br/><br/>To get more fruit essence, sacrifice fruits by putting them in the sacrificial pool and transcending (available at high enough tree level). The amount of fruit essence of sacrificed fruits depends on their tier (zinc, bronze, ...), the ability levels or how much essence you've used to level them up don't matter for this.<br/><br/>The active and stored fruits do not get sacrificed and stay after transcension.<br/><br/>Higher tier fruits may have more abilities, and abilities provide more boost.<br/><br/>You can rename fruits with the rename button. Named fruits will also have their name show up in the fruit tab when active. You can also mark fruits as favorite: click the fruit logo in the fruit dialog to alter border color (visual effect only).<br/><br/><b>Fruit related hotkeys</b><br/><br/>Note: on mac, ctrl means command instead.<br/> \u2022 <b>ctrl + click fruit</b>: move fruit between sacrificial and storage slots, if possible.<br/> \u2022 <b>shift + click fruit</b>: same as ctrl + click fruit.<br/> \u2022 <b>drag & drop</b>: drag fruits between slots, re-order slots.<br/> \u2022 <b>shift + click fruit ability upgrade</b>: buy multiple abilities up to 25% of currently available essence<br/> \u2022 <b>], } or )</b>: select next active fruit<br/> \u2022 <b>[, { or (</b>: select previous active fruit<br/><br/>");d+=
'<b>Fusing Fruits</b><br/><br/>Fruits of the same tier (bronze and up) can be fused together to allow transferring abilities to create the fruit with the combination you want, when the random drops aren\'t giving it. Fusing does not increase strength of stats, it\'s only about allowing control of the combination.<br/><br/>Fusing fruits destroys the two original fruits and creates a new one with a new set of abilities. The rules are as follows:<br/> \u2022 The two input fruits, called the "from" and the "into" fruits, create one new fruit the "result" fruit<br/> \u2022 The result fruit will initially have the same abilities as the "into" fruit, but some may be pushed out if transferring occurs<br/> \u2022 Any abilities in the "from" fruit that match the "into" fruit, will charge up the matching ability: it becomes charged (marked [*]), or transferable (marked [**]) if already charged<br/> \u2022 Any abilities in the "from" fruit that are transferable [**] will be transferred to the result fruit and push out the last ability of the result fruit. The fuse dialog also gives the option to disable some of them from being transferred, if they are undesired.<br/> \u2022 Any other abilities of the "from" fruit disappear and don\'t matter, the only abilities of the "from" fruit that matter are: abilities that match the "into" fruit (to charge them up), and transferable abilities (to replace abilities).<br/> \u2022 The order of abilities of the input fruits matters (to determine which get pushed out), but you can freely reorder abilities: either in the regular fruit dialog (where abilities can be moved up or down), or using the priority checkboxes in the fuse dialog.<br/> \u2022 The seasonal abilities of some fruit types (pineapple, ...) do not participate in fusing. The resulting fruit will be an apple if the two original fruits are of a different type, or will be seasonal if both original fruits are the same seasonal type (e.g. both pineapple). Some later upgrades in the game change this.<br/> \u2022 After fusing, abilities will be auto-leveled up (using the usual amount of fruit essence), based on what levels they had before, and leaving some essence unused if a new unupgraded ability is added. You may need to do a few more upgrades manually again anyway. No essence is lost in this process.<br/><br/>Summary of the rules: getting 3 fruits with the same ability allows, with at least two fuse actions, to create a transferable ability that you can transfer to any fruit of choice with a third fuse action, replacing an unwanted ability of choice.<br/>Example: if you desire a silver fruit with flower boost and berry boost, one way you could reach it is:<br/> \u2022 collect 3 silver fruits that have flower boost in any slot, fruits A, B and C<br/> \u2022 fuse A with B, resulting in a fruit AB with charged flower boost, marked [*]<br/> \u2022 fuse AB with C, resulting in a fruit ABC with transferable flower boost, marked [**]<br/> \u2022 collect a fruit D that has berry boost, and if necessary, move berry boost to the first slot<br/> \u2022 fuse ABC into D, resulting in the desired fruit with flower boost and berry boost. Don\'t forget to level up its abilities, since they\'ll all be set to level 1.';
Ut(1)&&(d+="<br/><br/><b>Seasonal fruit mixing</b><br/><br/>You unlocked the squirrel upgrade for seasonal fruit mixing! This works when fuxing certain combinations of two different seasonal fruits together.<br/><br/>The combinations are:<br><br>\u2022 Apricot + Pineapple = Mango (spring + summer)<br>\u2022 Pineapple + Pear = Plum (summer + autumn)<br>\u2022 Pear + Medlar = Quince (autumn + winter)<br>\u2022 Medlar + Apricot = Kumquat (winter + spring)<br/><br/>If (and only if) you also have the second fruit mixing upgrade purchased, then in addition you can create the all-season star fruit. This one is harder to fuse, since the fruits must also have the same set of abilities:<br><br>\u2022 Mango + Quince = Star Fruit (4 seasons)<br>\u2022 Plum + Kumquat = Star Fruit (4 seasons)<br/><br/>If (and only if) you also have the second fruit mixing upgrade purchased, then in addition you can create the all-season star fruit. This one is harder to fuse, since the fruits must also have the same set of abilities:<br><br>\u2022 Star Fruit + Apple = Dragon Fruit (stronger 4 seasons boost)<br><br><br/>");
b.content.a.innerHTML=d}
function vH(a,b){function d(){function m(U,V,I){var ra=I||F;(new G(x,[.01,0,V||0],[0,0,ra],1,[0,0,ra+.1])).a.innerText=U;void 0==I&&(F+=.05)}var x=n.content,t=x.a.scrollTop;x.clear();for(var y=[],u=-1,v=0;v<D.Y.length+D.ca.length;v++){var w=v<D.Y.length?D.Y[v]:D.ca[v-D.Y.length];w!=a&&w.l==a.l&&(-1==u&&100<=w.slot&&(u=y.length),y.push(w))}0==u&&(u=-1);var q=0,F=.03;m("Fusing exists to gradually choose a set of abilities from the random drops, it doesn't make fruits stronger. Only abilities marked [**] can be transferred to other fruits. The [*] then [**] marks can be created by fusing the same abilities. No fruit essence is lost from fusing.");F+=
.1;F+=.05;m("Choose other fruit to fuse:");for(v=0;v<y.length;v++){0!=v&&v==u&&(q=0,F+=.1,F+=.1*.1,m("Sacrificial:"),F-=.1*.1);q>.1*9.5&&(q=0,F+=.1);var B=new G(x,[.01,0,q],[0,0,F],[.01,0,q+.1],[0,0,F+.1]);q+=.1;w=y[v];wH(B,w,0,void 0,!0);Aa(B.a);A(B.a,z(function(U){tH=g=U;e();d()},w),"select "+xH(w))}0==y.length&&(B=new G(x,.01,[0,0,F],.9,[0,0,F+.1]),B.a.innerText="[ No fruit to fuse, must have at least 1 other fruit of the same tier ]");F+=.1;y=F+=.05;m("From:");m("Into:",.2,y);var K=F;for(v=q=
0;3>v;v++)if(B=new G(x,[.01,0,q],[0,0,F],[.01,0,q+.1],[0,0,F+.1]),q+=.1,w=a,h!=(0==v)&&(w=g),1==v){var N=Va("0%","0%","100%","100%",B.a);Wa(fd,N);Aa(B.a,!0);A(B.a,z(function(U,V){if(V.shiftKey){if(!g)return;g=U}else h=!h;d()},a),"swap fuse order");C(B.a,"Swap the fuse order of the two input fruits")}else{if(w){var O=0==v?'First selected fuse fruit: "from" fruit':'Second selected fuse fruit: "into" fruit';wH(B,w,0,void 0,!0,O)}else B.a.style.backgroundColor="#ccc",B.a.style.border="1px solid black",
C(B.a,"Empty fuse fruit slot, select a fruit above to fuse");Aa(B.a);var W=0==v?"From fruit":"Into fruit";A(B.a,z(function(U){U?yH(U,W+" stats"):X(W+" empty, select one from the list above first",Qv)},w,v),W+": see stats"+(w?". "+xH(w):". Empty."))}F+=.1;m("Fused result:",.4,y);F+=.05;m("Result stats:");B=0;Ut(1)&&(B=2);Ut(2)&&(B=4);Ut(3)&&(B=5);v=[void 0];y=h?g:a;u=h?a:g;N=du(y,u,B,k,l,v);q=0;B=new G(x,[.01,0,q+.4],[0,0,K],[.01,0,q+.1+.4],[0,0,K+.1]);q+=.1;N?(wH(B,N,0,void 0,!0,"fused fruit result"),
Aa(B.a),A(B.a,z(function(U){yH(U,"Fuse result fruit stats")},N),"Fused result: see stats"+(w?". "+xH(w):""))):(B.a.style.backgroundColor="#ccc",B.a.style.border="1px solid black",C(B.a,"Fused fruit appears here when successful"),A(B.a,z(function(){X(W+" empty, select one from the list above first",Qv)},N),"Fused result: see stats. Empty"));v[0]&&(F+=.025,q=0,B=new G(x,[.01,0,0],[0,0,F],[.99,0,0],[0,0,F+.1]),q+=.1,B.a.innerHTML=v[0]+"<br><br><br><br>&nbsp;",B.a.style.color="#f00",F+=.1*1.1);if(N){w=
.1*.35;for(v=-1;v<N.H.length;v++)B=new G(x,[.01,0,0],[0,0,F],1,[0,0,F+w]),-1==v?B.a.innerText=ma(N.toString())+", fused "+N.cd+" times":(O="",q=h?g:a,K=!1,v<q.H.length&&q.H[v]==N.H[v]&&N.Ha[v]>q.Ha[v]&&(K=!0),O+="ability: "+N.Ec(v,!1,!1,K),O=v<q.H.length?O+(" (was: "+q.Ec(v)+")"):O+" (was: none)",B.a.innerHTML=O),F+=1.2*w;O+="\n";for(v=O=0;v<u.H.length;v++)2==u.Ha[v]&&O++;if(0==O)F+=w,m('When the "from" fruit has two-star [**] abilities, you can transfer them to the "to" fruit. To get [**] abilities, fuse two fruits with the same ability to get [*], then one more fuse to get [**].');
else{F+=w;m('Two-star [**] abilities below are transferred from the "from" fruit into the "to" fruit. Optionally you can use the checkboxes below to prevent some abilities from transferring, or to prioritize which original abilities get kept and pushed out:');F+=1.1*w;q=[];for(v=0;v<u.H.length;v++)B=new G(x,[.01,0,0],[0,0,F],1,[0,0,F+w]),2==u.Ha[v]&&(O="",K=new G(B,0,0,[0,1],1),B=new G(B,[0,1.2],0,1,1),N=Va("0%","0%","100%","100%",K.a),Wa(k[v]?Rb:Sb,N),q[u.H[v]]=!0,Aa(K.a),A(K.a,z(function(U){k[U]=
!k[U];d()},v),"Checkbox to transfer "+u.Ec(v)+": "+(k[v]?"checked":"unchecked")),O+=u.Ec(v),O+="\n",B.a.innerText=O,F+=1.2*w);for(v=0;v<p;v++)q[y.H[v]]||(B=new G(x,[.01,0,0],[0,0,F],1,[0,0,F+w]),O="",K=new G(B,0,0,[0,1],1),B=new G(B,[0,1.2],0,1,1),N=Va("0%","0%","100%","100%",K.a),Wa(l[v]?Rb:Sb,N),Aa(K.a),A(K.a,z(function(U){l[U]=!l[U];d()},v),"Checkbox to prioritize "+y.Ec(v)+": "+(l[v]?"checked":"unchecked")),O+=y.Ec(v),O+="\n",B.a.innerText=O,F+=1.2*w)}}x.a.scrollTop=t}function e(){for(var m=0;m<
p;m++)k[m]=!0,l[m]=!1}var f=EF;tH=EF=null;var g=void 0,h=!1,k=[],l=[],n=La({undefined:void 0,ib:function(){g&&(h?Z({type:zH,zk:g,s:a,ml:k,Vk:l}):Z({type:zH,zk:a,s:g,ml:k,Vk:l}));OB();b&&b(EF)},names:"fuse",bm:!0,title:"Fuse fruits",zb:z(uH,!0),onclose:function(){EF=f;tH=null}}),p=$t(a.l);e();d()}
function AH(a,b,d){function e(){for(var F=0;F<n.length;F++){F==l?(n[F].a.style.boxShadow="0px 0px 5px #000",n[F].a.style.border="",n[F].a.style.backgroundColor="#8f8"):(n[F].a.style.boxShadow="",n[F].a.style.border="1px solid #000",n[F].a.style.backgroundColor="#6d6");var B=Wt(b.H[F],b.wa[F],b.l);B=B.Z.Bi(D.b.Z.sub(b.Z));Vt(b.H[F])?(n[F].a.style.color="#0008",n[F].a.style.textShadow="2px 0 #fff8, 0 2px #fff8"):(n[F].a.style.color=B?"#000":"#797",n[F].a.style.textShadow="")}F=b.H[l];var K=b.wa[l];
if(0>l||Vt(F)){if(y.a.innerHTML="click ability to view or level up",q.style.visibility="hidden",w.style.visibility="hidden",v.style.visibility="hidden",u.style.visibility="hidden",0>l)return}else q.style.visibility="",w.style.visibility="",v.style.visibility="",u.style.visibility="";p+=m;k=ma(zk(F));Vt(F)||(k+=" "+co(K));k+="<br>";k+=ma(sH(F));k+="<br>";Vt(F)?(k+="Boost: "+L(vj(F,K,b.l)),k+="<br>",k+="<br>",k+="This is an inherent fruit ability. It doesn't take up a regular ability slot for this fruit tier. It cannot be upgraded nor moved."):
(B=Wt(F,K,b.l),k+="Current level: "+L(vj(F,K,b.l)),k+="<br>",k+="Next level: "+L(vj(F,K+1,b.l))+", cost: "+B.toString(),q.h.innerText="Buy 1",F=D.b.Z.sub(b.Z),F.la(B.Z)?q.className="efButtonCantAfford":q.className="efButton",C(q,"Levels up this ability. Does not permanently use up essence, only for this fruit: all essence can be used in all fruits."),A(q,function(){Z({type:BH,bd:b,index:l,shift:!1});OB();f()}),w.h.innerText="Buy many",F=D.b.Z.sub(b.Z),F.o(.25).la(B.Z)?w.className="efButtonCantAfford":
w.className="efButton",C(w,"Levels up this ability multiple times, using up to 25% of the available essence. Does not permanently use up essence, only for this fruit: all essence can be used in all fruits."),A(w,function(){Z({type:BH,bd:b,index:l,shift:!0});OB();f()}),v.h.innerText="^",v.className=0>=l?"efButtonCantAfford":"efButton",C(v,"Moves up this ability in the order. This has no effect on ability strength, but can affect fusing of fruits"),A(v,function(){0>=l||(Z({type:CH,bd:b,index:l,ol:!0}),
l--,OB(),f())}),u.h.innerText="v",u.className=l+1>=$t(b.l)?"efButtonCantAfford":"efButton",C(u,"Moves down this ability in the order. This has no effect on ability strength, but can affect fusing of fruits"),A(u,function(){l+1>=$t(b.l)||(Z({type:CH,bd:b,index:l,ol:!1}),l++,OB(),f())}));y.a.innerHTML=k}function f(F){F&&(b=F);AH(a,b,l)}a.content.clear();a.icon.clear();EF!=b&&(EF=b,FF());var g=new G(a.icon,.05,.05,.95,.95),h=Va("0%","0%","100%","100%",g.a);Wa(Zc[b.type][b.l],h);DH(g,b);g=new G(a.content,
.1,.01,.9,.15);var k=ma(b.toString());k+="<br>";k+="Tier "+co(b.l)+": "+Yg[b.l]+", type: "+b.rk();k+="<br><br>";k+="Fruit essence available: "+D.b.Z.sub(b.Z).toString()+" of "+D.b.Z.toString();k+="<br>";k+="Fruit essence used: "+b.Z.toString();k+="<br>";k+="Get on sacrifice: "+Xt(b).toString();b.cd&&(k+="<br>",k+="Fuses done: "+b.cd);g.a.innerHTML=k;var l=void 0==d?1<b.H.length?-1:0:d,n=[],p=.22,m=.04;for(d=0;d<b.H.length;d++){g=new G(a.content,.1,p,.9,p+m);p+=1.1*m;var x=b.H[d],t=b.wa[d];k=ma(b.Ec(d));
k+=" ("+L(vj(x,t,b.l))+")";ta(g.a);g.a.h.innerHTML=k;n[d]=g;g.a.style.backgroundColor="#fff";Aa(g.a);A(g.a,z(function(F){l=F==l?-1:F;e()},d))}p+=.02;m=.27;d=new G(a.content,.1,p,.9,p+m);d.a.style.backgroundColor="#0f02";d.a.style.border="1px solid black";p+=m;var y=new G(d,.01,0,.99,.5),u=(new G(d,.01,.7,.15,.95)).a;Ba(u);var v=(new G(d,.16,.7,.3,.95)).a;Ba(v);var w=(new G(d,.31,.7,.645,.95)).a;Ba(w);var q=(new G(d,.655,.7,.99,.95)).a;Ba(q);p+=.03;m=.05;100<=b.slot&&(d=(new G(a.content,.1,p,.9,p+
m)).a,p+=1.1*m,Ba(d),d.h.innerText="to storage slot",D.Y.length>=D.ya&&(d.className="efButtonCantAfford"),A(d,function(){Z({type:EH,bd:b,slot:0});OB();Oa()}));100>b.slot&&(d=(new G(a.content,.1,p,.9,p+m)).a,p+=1.1*m,Ba(d),d.h.innerText="to sacrificial pool",A(d,function(){Z({type:EH,bd:b,slot:1});OB();Oa()}),d=(new G(a.content,.1,p,.9,p+m)).a,p+=1.1*m,Ba(d),d.h.innerText="make active",b.slot==D.Ua&&(d.className="efButtonCantAfford"),A(d,function(){b.slot>=FH&&nz(b.slot,D.Ua);D.Ua=b.slot;FF();OB();
Oa()}));0<b.l&&(d=(new G(a.content,.1,p,.9,p+m)).a,p+=1.1*m,Ba(d),d.h.innerText="fuse",A(d,function(){vH(b,f)}));d=(new G(a.content,.1,p,.9,p+m)).a;p+=1.1*m;Ba(d);d.h.innerText="rename";A(d,function(){Bb("Rename fruit","Enter new fruit name, or empty for default",function(F){b.name=Pb(F);FF();Ga&&f()},b.name)});Aa(h,!0);A(h,function(){b.mark=((b.mark||0)+1)%7;FF();f()},"fruit icon: "+xH(b)+". Click to mark favorite");C(h,"click to mark as favorite and toggle color style. This is a visual effect only.");
e()}function GH(a){var b=La({onclose:function(){FF()},zb:z(uH,!1),title:"Configure fruit",pb:"efDialogTranslucent"});AH(b,a,void 0)}function yH(a,b){b=La({title:b||"Fruit info"}).content;for(var d=0,e=-1;e<a.H.length;e++)(new G(b,[.01,0,0],[0,0,d],1,[0,0,d+.1])).a.innerText=-1==e?a.toString()+", fused "+a.cd+" times":"ability: "+a.Ec(e),d+=.05}
function HH(){var a=La({title:"Fruit storage slot sources",Ba:!0});var b="You have "+D.ya+" fruit storage slots available. Here's where they came from:";b+="<br/><br/> \u2022 3: initial amount<br/>";0!=D.$b&&(b+=" \u2022 1: for having seen at least 1 seasonal fruit<br/>");15==(D.$b&15)&&(b+=" \u2022 1: for having seen all 4 types of seasonal fruit<br/>");240==(D.$b&240)&&(b+=" \u2022 1: for having seen all 4 types of 2-seasonal fruit<br/>");256==(D.$b&256)&&(b+=" \u2022 1: for having seen a star fruit<br/>");
512==(D.$b&512)&&(b+=" \u2022 1: for having seen a dragon fruit<br/>");var d=0;D.K[Ws].count&&d++;D.K[kt].count&&d++;D.K[ot].count&&d++;D.K[ut].count&&d++;D.K[xt].count&&d++;0<d&&(b+=" \u2022 "+d+": ethereal upgrades<br/>");D.P[eq].X&&(b+=" \u2022 "+D.P[eq].X+": for completing the rocks challenge",b+="<br/>");a.content.a.innerHTML=b}
function DH(a,b){a.a.style.backgroundColor=$g[b.l]+"6";if(b.mark)a.a.style.border="3px solid "+(IH[b.mark]||"#fff");else if(b.name||b.cd&&4>=b.type)a.a.style.border="2px solid #999";a.a.style.boxShadow=EF==b?"0px 0px 16px #000":tH==b?"0px 0px 16px #800":"";a.a.style.outline="1px solid black"}var IH="#000 #f00 #dc0 #4c4 #66f #fff #f80".split(" "),JH="none red yellow green blue white orange".split(" ");
function xH(a,b){if(!a)return b||"none";b="";a.name&&(b+='"'+a.name+'". ');b+=a.bl();a.mark&&(b+=". Mark: "+JH[a.mark]);return b}
function KH(a,b){var d="";b&&(d+=b+"<br>");d+=ma(a.toString());d=d+"<br>Tier "+(co(a.l)+": "+Yg[a.l]+", type: "+a.rk());d+="<br>";for(b=0;b<a.H.length;b++){var e=a.H[b],f=a.wa[b];d+="<br>";d=Vt(e)?d+("Extra ability: "+ma(a.Ec(b))+" ("+L(vj(e,f,a.l))+")"):e==Ft?d+("Ability: "+ma(a.Ec(b))):d+("Ability: "+ma(a.Ec(b))+" ("+L(vj(e,f,a.l))+")")}d=d+"<br><br>Fruit essence available: "+(D.b.Z.sub(a.Z).toString()+" of "+D.b.Z.toString());return d=d+"<br>Get on sacrifice: "+Xt(a).toString()}
function wH(a,b,d,e,f,g){var h=new G(a,[0,0,0,0,1],[0,0,0,0,1],[1,0,0,0,-1],[1,0,0,0,-1]),k=new G(h,0,0,1,1);a.a.style.backgroundColor="#000";h.a.style.backgroundColor="#aaa";h=Va("0%","0%","100%","100%",k.a);Wa(Zc[b.type][b.l],h);g=KH(b,g);DH(k,b);C(k.a,g);a.a.style.userSelect="none";f||(d=0==d?"storage":"sacrificial",e=void 0==e?d+" slot: "+xH(b):d+" slot "+e+": "+xH(b),Aa(a.a),A(a.a,function(l){l.shiftKey||pa(l)?100<=b.slot?D.Y.length>=D.ya||(Z({type:EH,bd:b,slot:0}),OB()):(Z({type:EH,bd:b,slot:1}),
OB()):GH(b)},e))}var LH=-1;function MH(a,b,d){d&&(a.a.draggable=!0,r.Cg(a.a,"dragstart",function(){LH=d.slot;Qa()}));r.Cg(a.a,"drop",function(e){e.preventDefault();e=LH;LH=-1;0<=e&&e<=100+D.ca.length&&(e=kz(e))&&(Z({type:EH,bd:e,cl:b}),OB())});r.Cg(a.a,"dragenter",function(e){e.preventDefault();return!1});r.Cg(a.a,"dragover",function(e){e.preventDefault();return!1});r.Cg(a.a,"dragend",function(e){e.preventDefault();LH=-1;return!1})}var FH=10;function AC(){return Math.min(FH,D.ya)}
function FF(){var a=0;rH&&(a=rH.a.scrollTop);NH.clear();var b=new G(NH,0,.01,.98,1);rH=b;$a(b);var d=Math.max(10,AC()),e=1/d,f=0,g=D.ya,h=new G(b,.01,[0,0,f+.1/3],.85,[0,0,f+.1]);f+=.1*.8;var k='<font color="red">none</font>';-1==D.Ua&&(k='<font color="red">none, click arrow above a fruit to select one</font>');var l=iz();l&&(k=l.toString()+": "+l.Bg(!0,!0));h.a.innerHTML="Fruit collection. Active fruit: "+k;C(h.a,"The chosen active fruit. Active fruit requires a fruit in storage, and the arrow above it lit. You can choose it using the arrow buttons below.");
h=new G(b,.01,[0,0,f+.1/3],.33,[0,0,f+.1]);f+=e;h.a.innerText="Stored fruits ("+D.Y.length+" / "+D.ya+")";k="Fruits in storage slots are kept after transcension, unlike those in the sacrificial pool. To get a fruit in here, click a fruit elsewhere and use its dialog to move it to storage, or drag and drop it here.";C(h.a,k);var n=AC();0<D.Ua&&D.Ua>=n&&(D.Ua=n-1);var p=[];if(Bz())for(l=0;l<D.xa.length;l++){var m=D.xa[l];m.ne&&(p[m.wd]=!0)}for(l=m=0;l<n;l++){var x=new G(b,[.01,0,m],[0,0,f],[.01,0,m+
e],[0,0,f+e]);m+=e;var t=Va("0%","0%","100%","100%",x.a),y=l==D.Ua?bd:cd;p[l]&&(y=l==D.Ua?dd:ed);Wa(y,t);t=l<D.Y.length?D.Y[l]:void 0;Aa(x.a,!0);y="Make this fruit active";t&&(y+="<br><br>"+KH(t));C(x.a,y);A(x.a,z(function(u){var v=u;u==D.Ua&&(v=-1);Z({type:BC,slot:v,silent:!0,Ck:!0});OB()},l),"activate fruit "+l+": "+xH(D.Y[l],"none"))}f+=e;Aa(h.a);A(h.a,HH);for(l=m=0;l<g;l++)m+.5*e>e*d&&(m=0,f+=1.2*e),x=new G(b,[.01,0,m],[0,0,f],[.01,0,m+.98*e],[0,0,f+e]),m+=e,x.a.style.border="1px solid black",
(t=l<D.Y.length?D.Y[l]:void 0)?wH(x,t,0,l):(x.a.style.backgroundColor="#ccc",C(x.a,"No stored fruit present in this slot. "+k),A(x.a,z(function(u){EF=null;FF();X("No stored fruit present in this slot. "+u,Qv,0,0)},k),"empty storage fruit slot")),MH(x,l,t);f+=e;h=new G(b,.01,[0,0,f+.1/3],.99,[0,0,f+.1]);f+=e;h.a.innerText="Sacrificial fruit pool ("+D.ca.length+" / \u221e)";k="Fruits in here will be turned into fruit essence on the next transcension. To get a fruit in here, click a fruit elsewhere and use its dialog to move it to the sacrificial pool, or drag and drop it here.";
C(h.a,k);g=Math.max(6,D.ca.length+2);for(l=m=0;l<g;l++)x=new G(b,[.01,0,m],[0,0,f],[.01,0,m+.98*e],[0,0,f+e]),m+=e,m+.5*e>e*d&&(m=0,f+=e),x.a.style.border="1px solid black",(t=l<D.ca.length?D.ca[l]:void 0)?wH(x,t,1,l):(h=Math.min(l,l-D.ca.length+4),0==h?(x.a.style.border="1px solid #000",x.a.style.backgroundColor="#ccc"):1==h?(x.a.style.border="1px solid #0008",x.a.style.backgroundColor="#ccc8"):2==h?(x.a.style.border="1px solid #0004",x.a.style.backgroundColor="#ccc6"):3==h?(x.a.style.border="1px solid #0002",
x.a.style.backgroundColor="#ccc4"):4==h?(x.a.style.border="1px solid #0002",x.a.style.backgroundColor="#ccc2"):5==h&&(x.a.style.border="1px solid #0002",x.a.style.backgroundColor="#ccc1"),C(x.a,"No fruit present in this sacrificial pool slot. "+k),A(x.a,z(function(u){EF=null;FF();X("No fruit present in this sacrificial pool slot. "+u,Qv,0,0)},k),"empty sacrificial fruit slot")),MH(x,l+100,t);f+=e;oz().empty()||(h=new G(b,.01,[0,0,f+.1/3],.99,[0,0,f+.1]),f+=e,h.a.innerText="Sacrifice value on transcend: "+
oz());rH.a.scrollTop=a}function OF(a){return a?0<jz(a,uj)?6:0<jz(a,Ij)?5:0<jz(a,Bk)||0<jz(a,zl)?4:0<jz(a,Ht)||0<jz(a,Gt)?3:0<jz(a,Ck)?2:0<jz(a,Zl)?1:0:7}var OH=void 0;function PH(){OH&&(Ua(OH,zb),OH=void 0)}
function QH(a){X(a,YF,208302236);PH();OH=new G(zb,.2,.85,.8,.95);OH.a.style.backgroundColor="#cfcd";var b=new G(OH,.01,[.5,0,-.35],[0,0,.7],[.5,0,.35]);b=Va("0%","0%","100%","100%",b.a);Wa(Nc[3],b);b=new G(OH,[0,0,.7],[.5,0,-.35],.99,[.5,0,.35]);b.a.style.color="#000";b.a.innerHTML=a;A(OH.a,PH)}
function mD(a){for(var b=FH,d=La({undefined:void 0,Ba:!0,title:"Select fruit slot",zb:"Select fruit to automatically swap to when triggering this automaton action. This selects the fruit slot, not the fruit: if you move fruits around in the fruit tab, the original slot position, not the moved fruit, is used. In the fruit tab, the selected slot will show a small gear icon as a reminder. Only slots from the topmost row can be selected."}).content,e=0,f=.03,g=0;g<D.ya&&!(g>=b);g++){e>.1*9.5&&(e=0,f+=
.1);var h=D.Y[g],k=new G(d,[.01,0,e],[0,0,f],[.01,0,e+.1],[0,0,f+.1]);e+=.101;h?wH(k,h,0,void 0,!0):(k.a.style.backgroundColor="#ccc",k.a.style.border="1px solid black",C(k.a,"Slot "+g+", no stored fruit present in this slot."));Aa(k.a);var l="select fruit slot "+g;h&&(l+='. "'+xH(h)+'"');A(k.a,z(function(n){a(n);db()},g),l)}};var RH=0,SH=[],TH={},UH=void 0;function JB(){UH&&(Ua(UH,zb),UH=void 0)}function VH(a){JB();UH=new G(zb,.19,.86,.81,.94);UH.a.style.backgroundColor="#cffd";UH.a.style.zIndex=15;var b=new G(UH,.01,[.5,0,-.35],.99,[.5,0,.35]);b.a.style.color="#000";ta(b.a);b.a.h.innerHTML=a;A(UH.a,JB)}
function WH(a,b,d,e,f,g,h,k){var l=0>a;a=Math.abs(a);var n=!!D.Na[a],p=!!D.ed[a];D.Na[a]=a;if(!k){var m=!1;l||(D.yd[a]&&(m=!0),D.Ve&&(m=p,D.ed[a]=a));h||n&&!D.Ca[3]||(m?""!=b&&X(b||d,go,175786661):X(d,go,175786661))}if(l)return!1;l=!0;h||(D.yd[a]&&(l=!1),TH[a]&&(D.yd[a]=a,l=!1),D.Ve&&(l=!1));if(!l)return!n&&b&&VH(b),!1;0>RH&&(RH=0);if(RH)return SH.push(arguments),!0;f&&(d+=f);D.ed[a]=a;if(!h){var x=function(){D.yd[a]=a;TH[a]=a};var t="never show again"}n=Uv[a].name;RH++;x=La({size:g?3:2,title:n,icon:e,
ib:x,names:t,qc:"ok",Uk:!0,onclose:function(){RH--;if(SH.length){var y=Array.prototype.slice.call(SH[0],0);y[7]=!0;SH.shift();WH.apply(this,y)}},pb:"efDialogTranslucent"});t=.8;if(g){t=g[0].length;n=g.length;for(l=0;l<n;l++)for(p=0;p<t;p++)g[l][p]&&(m=new G(x.content,[.25,0,.3*(p/t-.5)],[.85,0,.3*(l/n-.5)],[.25,0,.3*((p+1)/t-.5)],[.85,0,.3*((l+1)/n-.5)]),m=Va("0%","0%","101%","101%",m.a),Wa(g[l][p],m));t=.7}x=new G(x.content,0,0,1,t);$a(x);x.a.innerHTML=d;return!0}var XH=[],Uv={};
function YH(a,b,d,e,f,g,h){XH.push(a);Uv[a]={};var k=Uv[a];k.id=a;k.jl=d;k.name=b;k.text=e;k.image=f;k.Yl=g;k.images=h}function lq(a,b){var d=0>a;a=Math.abs(a);if(a=Uv[a]){var e="function"==typeof a.text?a.text():a.text;return WH(a.id*(d?-1:1),a.jl,e,a.image,a.Yl,a.images,b)}}YH(8,"Upgrades","You unlocked your first upgrade!",'You unlocked your first upgrade! Upgrades can unlock new crops, upgrade existing crops, or have various other effects. Upgrades usually cost seeds.<br><br>Upgrades can be performed in the "upgrades" tab. Depending on screen size, it may also be available directly on the right side of the screen.');
YH(3,"Permanent crop & watercress copying","You unlocked your first permanent type of plant.","You unlocked your first permanent type of plant. Plants like this don't wither, keep producing forever, and have much more powerful production upgrades too.<br><br>Watercress also remains useful: if you plant a watercress next to permanent plants, it copies all its orthogonal neighbors' production, no matter how high level it is. However there's a penalty to copying for having many watercress, so max 1 or 2 makes sense.<br><br>TIP: See shortcuts in the main help menu for various shortcuts that make planting easier (\"p\" or shift+click to plant last crop, ctrl+click to plant watercress, ...).",
void 0,"<br><br>The image below shows an optimal configuration to use for watercress copying: it duplicates the production of 4 blackberries:",[[void 0,td[4],void 0],[td[4],ue[4],td[4]],[void 0,td[4],void 0]]);
YH(19,"Mushrooms","You unlocked your first type of mushroom","You unlocked your first type of mushroom. Mushrooms produce spores, but they consume seeds from orthogonally touching berries. If the berry cannot produce enough seeds for the mushroom, the mushroom produces less spores.<br><br>Spores let the tree level up (but mushrooms don't have to touch the tree), unlocking next kinds of bonuses.<br><br>The mushroom can (and should!) be boosted by flowers. This boosts its production, but also increases its seed consumption.<br><br>Leave some berries without mushrooms too, otherwise you won't get enough seed production for next upgrades and crops.",void 0,
"<br><br>The image shows a possible configuration for mushrooms: it extracts seeds from the berry it touches. In addition, both the mushroom and berry are boosted by flowers. In addition, there's another berry that doesn't touch a mushroom so that there's some global seed production too.",[[Td[4],ud[4],void 0],[Ld[4],Ld[4],void 0],[ud[4],Ld[4],void 0]]);
YH(20,"Flowers","You unlocked your first type of flower","You unlocked your first type of flower. Flowers boost resource-producing crops such as berries and mushrooms, if planted next to them. It can boost all the 4 orthogonal neighboring crops.",void 0,"<br><br>The image shows a possible good configuration for flower boost: multiple flowers boost multiple berries. The center-most blackberry is receiving the boost 4 times.",[[td[4],Ld[4],td[4]],[Ld[4],td[4],Ld[4]],[td[4],Ld[4],td[4]]]);
YH(21,"Nettles","Unlocked a new crop: nettle. Nettle boosts mushrooms it touches orthogonally, but hurts flowers and berries.","Unlocked a new crop: nettle. Nettle boosts mushrooms it touches orthogonally, but hurts flowers and berries. The mushroom boost increases spore production without increasing seeds consumption. The boost is an additional multiplier independent from flower boost to mushroom, so having both a nettle and a flower works even better.",se[4],"<br><br>The image shows a possible configuration where the mushroom receives boost from both nettle (top) and flower (bottom). The top left flower and top right blackberry in this image however are negatively affected by the nettle.",
[[Ld[4],se[4],td[4]],[ud[4],Td[4],ud[4]],[Md[4],Md[4],Md[4]]]);YH(6,"Tree leveled up","Tree leveled up","Thanks to spores, the tree completely rejuvenated and is now a "+Vg[ku(1)][0]+", level 1. More spores will level up the tree more. The tree can unlock abilities and more at higher levels. Click the tree in the field for more info.",void 0,void 0,[[void 0,Vg[ku(1)][1][0]],[void 0,Vg[ku(1)][2][0]]]);
YH(12,"Sun ability","Tree reached level 2 and discovered sun ability","The tree reached level 2 and discovered the sun ability!<br><br>"+Fj[yj].description,Ic);YH(14,"Mist ability","Tree reached level 4 and discovered mist ability","The tree reached level 4 and discovered the mist ability! You now have multiple abilities, only one ability can be active at the same time.<br><br>"+Fj[Aj].description,Hc);
YH(15,"Rainbow ability","Tree reached level 6 and discovered rainbow ability","The tree reached level 6 and discovered the rainbow ability!<br><br>"+Fj[Cj].description,Kc);
YH(2,"Tree dropped fruit","Tree reached level 5 and dropped a fruit",'The tree reached level 5 and dropped a fruit! Fruits provide boosts and can be upgraded with fruit essence. Essence is gained by sacrificing fruits, and the full amount of fruit essence can be used for upgrading all other fruits at the same time. See the "fruit" tab, it also has a more extensive help dialog for fruits.<br><br>A possible strategy: keep fruits with good abilities you like. Sacrifice any other surplus fruits, so you can use the essence to upgrade the good fruits.',Nc[0]);
YH(18,"Tree dropped better fruit","Tree reached level 15 and dropped another fruit","The tree reached level 15 and dropped another fruit! It drops one every 5 levels. Fruits from higher tree levels have random probability to be of better, higher tier, types.",Nc[1]);
YH(7,"Tree can transcend","Tree reached level 10 and it's now possible to transcend","The tree reached adulthood at level 10, and is now able to transcend! Click the tree in the field to view the transcension dialog.<br><br>Transcension will restart the basic field from the beginning, but will unlock a new type of field and a new type of upgrades. You can choose to transcend now, or level the tree a bit more first and transcend later.<br><br> The tree also dropped another fruit, check the fruit tab whether you want to keep it since it's in the sacrificial pool for now.",void 0,
void 0,[[void 0,Vg[ku(10)][1][0]],[void 0,Vg[ku(10)][2][0]]]);
YH(1,"Transcension","You performed your first transcension! You can use resin in the ethereal field tab.","You performed your first transcension! Check the new ethereal field tab, spend resin on ethereal plants for bonuses to your basic field. Get more resin by transcending again.",void 0,"<br><br>The following image shows an example of an ethereal field setup with several ethereal crops that give boosts to the main field: all types of basic field berries, mushrooms and flowers are boosted by this example, and runs start with starting seeds from the fern. The image also shows a white lotus that boosts the neighboring ethereal crops to make their boosts even bigger.",[[Re[4],
Ld[4],void 0],[td[4],De[4],Td[4]],[void 0,td[4],void 0]]);YH(9,"Ethereal upgrades","You unlocked your first ethereal upgrade!",'You unlocked your first ethereal upgrade, thanks to planting an ethereal crop! Check the new "ethereal upgrades" tab to view this new type of upgrade. Ethereal upgrades cost resin, just like ethereal plants do, but ethereal upgrades are permanent and non-refundable, unlike ethereal crops which can be deleted give 100% refund');
YH(17,"Mistletoes","Unlocked a new crop: mistletoe","Unlocked a new crop: mistletoe. Mistletoe can be placed next to the basic field tree to create twigs, orthogonally, not diagonally. They produce twigs, which, like resin, you only actually get when transcending. Twigs help the ethereal field tree. However having more than one mistletoe increases the spore requirement for leveling the basic tree and slightly decreases resin gain, and more mistletoes give diminishing returns (but still increases it). Mistletoes that are not planted next to the tree do nothing at all.",
Je[4],"<br><br>The image shows a possible configuration where mistletoes are next to the tree and thus give twigs on tree level up.",[[Vg[ku(2)][1][0],Je[4]],[Vg[ku(2)][2][0],Je[4]]]);
YH(22,"Ethereal tree leveled up","The ethereal tree leveled up, unlocking new ethereal upgrades, crops and boosts","Thanks to twigs, the ethereal tree leveled up! This is the tree in the ethereal field, not the one in the basic field. Leveling up the ethereal tree unlocks new ethereal crops and/or upgrades, depending on the level. Each level also provides a resin production boost to the basic tree.",void 0,void 0,[[void 0,Vg[ku(1)][1][4]],[void 0,Vg[ku(1)][2][4]]]);
YH(24,"Challenges","You unlocked a challenge!","You unlocked a challenge! Challenges can be accessed from the tree, as an alternative to regular transcension. All challenges give a production bonus (to seeds and spores, and a smaller amount to resin and twigs) for highest tree level reached. Challenges may also give one-time rewards for successfully reaching a certain level. Challenges can be ran as many times as desired, redoing them can increase the max level reached.",void 0);
YH(25,"Bee challenge",void 0,"You started the bee challenge! Rules are different from the standard game. You can click the tree at any time to view the current challenge rules, reward and stats. Plant some watercress or blackberry to get started.",Oe[4],"<br><br>The image below shows a possible configuration for the bees: all workers touch a flower as required, drones touch workers for extra boost (so bees provide a boost-boost), and queens touch drones to make that boost stronger (a boost-boost-boost). More than 1 flower does not increase boost but multiple drones or queens do. The rightmost worker bee gives most boost because it touches 3 drones, and the topmost drone gives least boost since it touches the least queens. You can fill in gaps in the picture where more drones or queens would increase the boost more. Not shown in the picture is that you also need some mushroom and berry production running somewhere, which can also be boosted by flowers in the standard way.",
[[void 0,Me[4],Ne[4],Oe[4]],[Me[4],Pe[4],Me[4],Ne[4]],[void 0,Me[4],Ne[4],Oe[4]],[void 0,Ne[4],Oe[4],void 0]]);YH(26,"Challenge completed","","The tree reached the challenge's target level, you can successfully complete the challenge and can get its main reward! You can complete the challenge from the tree dialog, or continue to reach a higher level for more challenge max-level bonus. You can also replay the challenge at any later time to increase the max level.",void 0);
YH(27,"Bees","You unlocked bees!","You unlocked bees! Bees boost orthogonally neighboring flowers, while flowers boost berries and mushrooms (so bees are a boost of a boost). This adds a new independent multiplier that can be upgraded to the game.",Ke[4],"<br><br>The image shows a possible configuration for bees, such that the bees boost flowers, which in turn boost berries and mushrooms. It's ensured both the mushroom and the berry it consumes from have a bee-boosted flower.",[[void 0,Ad[4],Od[4],
Ad[4]],[Ad[4],Od[4],Ke[4],Od[4]],[void 0,Ad[4],Od[4],Ad[4]],[void 0,Ke[4],Od[4],Wd[4]]]);
YH(28,"Automaton & Blueprints","You unlocked the automaton!","You unlocked the automaton! You can place the automaton in the ethereal field. When placed, it gives a boost to neighbors, and the automaton tab and blueprints unlock, allowing to automate various parts of the game.<br><br>You must place the automaton in the ethereal field before this works, then go to the new automaton tab, and configure its settings before it actually automates anything.<br><br>More and more automation features become available later in the game.<br><br>When removing the automaton from the ethereal field, most automation features will be disabled, but they all come back the way they were when placing the automaton again.<br><br>The automaton initially has the following features unlocked:<br><br> \u2022 Blueprints and templates: Templates are translucent blue looking versions of crops that can be placed in the field using the regular planting menu. Blueprints can be created and placed from the blueprint button in the tree.<br> \u2022 Auto-plant: the automaton will automatically plant crops according to a blueprint, and plant higher tiers once you unlock those tiers.<br> \u2022 Buttons to delete all crops in the main field or in the ethereal field: these are in the automaton tab and are for convenience. Deleting the ethereal field still uses tokens as usual.<br> \u2022 Neighbor boost in the ethereal field: the automaton in the ethereal field gives an independent boost to neighbors, similar to lotuses.<br>",We[4],
void 0,[[void 0,Uf[4],void 0],[Uf[4],Mf[4],Uf[4]],[void 0,Uf[4],void 0]]);
YH(29,"Auto upgrades","You unlocked auto upgrades!","You unlocked auto-upgrades for the automaton! See the automaton tab. You can enable or disable auto-upgrades, and choose a max cost the automaton is allowed to spend.<br><br>All basic upgrades that boost crops will be automatically performed by the automaton, at their normal cost, when enabled.<br><br>In addition, you can automate the choice upgrades, but you must configure which choice for which upgrade you prefer in the automaton settings first.",We[4]);
YH(30,"Auto upgrades more options","You unlocked more auto upgrade options!",'You unlocked more finetuning options for the auto upgrades. See the automaton tab in the dialogs behind the "gear": you can now configure the max cost per crop type (berry, mushroom, flower, ...).',We[4]);
YH(31,"Auto plant","You unlocked auto plant!","You unlocked auto-planting for the automaton! See the automaton tab. You can enable or disable auto-plant, and choose a max cost the automaton is allowed to spend.<br><br>How this works: the automaton will replace existing crops or blueprint templates with a higher tier, if that higher tier is unlocked. The automaton will not plant new crops from scratch, and will only replace crops or blueprint templates of the same type, e.g. berry to berry, flower to flower, ...<br><br>For example: If you have a blackberry, and now unlock blueberry, the automaton will automatically replace all planted blackberries in the field with blueberries, given enough resources.",We[4]);
YH(32,"Auto plant more options","You unlocked auto plant more options!",'You unlocked more finetuning options for auto planting, you can now choose how many resources the automaton can spend on crops of each type. Use the "gear" button next to the auto-plant button to finetune these options',We[4]);
YH(33,"Auto unlock","You unlocked auto-unlock!","You unlocked auto-unlock. This will unlock the next tiers of crops automatically. Combined with auto-plant and blueprint templates, this can almost fully automate a run.<br><br>Once you planted the general shape of your field with cheap crops or blueprint templates, everything will happen automatically from then on. Just place berries, mushrooms, flowers, nettles and bees once to indicate the layout.<br><br>Tip: ensure there are some berries that don't touch a mushroom, because if a mushroom consumes all seeds of a berry, income will stop and the automaton won't get resources for further upgrades and planting, resulting in a deadlock.",We[4]);
YH(34,"Multiplicity","You unlocked multiplicity! Mushrooms and berries boost each other no matter at what location.","You unlocked multiplicity! Berries now boost other berries just by having multiple anywhere field, and similarly, mushrooms boost mushrooms. This works across tiers, but max 1 tier higher or lower (e.g. blackberry affects blueberry, but it won't affect the 2-higher tier cranberry). For example, if there are 4 berry plants anywhere in the field, each berry receives a boost from the three others. Crops that are growing already fully count for multiplicity.",
td[4],void 0,[[td[4],void 0,ud[4]],[void 0,void 0,void 0],[ud[4],void 0,td[4]]]);
YH(35,"Squirrel & Nuts","You unlocked the squirrel and the nuts crops!",'You unlocked the squirrel and the nuts crops! The squirrel gives an entirely new tech tree of ugrades. Place a squirrel in the ethereal field (it\'ll also boost neighbors!). Grow nuts in the main field using the new nuts crops. Use nuts to buy squirrel upgrades, in the new squirrel tab.\n <br><br>\n Nuts crops unlock at tree level 45, the first one is Almond. You can have max 1 nut crop in the main field, but it can be upgraded and replaced with better types. Nuts crops benefit from flowers, but only in a limited form independent of flower upgrades or bees, nuts crops are not affected by the same boosts as berries or mushrooms, they have their own more limited boosts. Watercress can copy from nuts, but only at half effectiveness and without fruit bonus.\n <br><br>\n Buy squirrel upgrades in the squirrel tab. Squirrel upgrades are laid out in a tech tree. Each next squirrel upgrade costs exponentially more than the previous one, no matter what order you do them in. Get higher tree levels and nut crops to get enough nuts for the next one.\n <br><br>\n You can respec the squirrel upgrades if you regret a decision, using a respec token. You get a few for free, more can be gotten for amber in the amber tab.\n <br><br>\n Once you ever respecced squirrel upgrades, the "buy all to here" option unlocks for upgrades you have seen before: click the upgrade icon of any squirrel upgrade further down in the tree, then use this button to automatically buy this upgrade and all squirrel upgrades required to reach this one (including all of gated stages), if you can afford it. This avoid having to click every individual upgrade again after respec.\n <br><br>\n Planting and upgrading nuts crops cost spores instead of seeds. They work with automaton just like most other crops. If the automaton is spending too much spores on nuts upgrades and you want the tree to level up instead, decrease the allowed % setting for nuts upgrades in the automaton settings.\n ',Xe[4],
void 0,[[Ed[4],Qd[4],Ed[4]],[Qd[4],be[4],ue[4]],[Ed[4],Qd[4],Ed[4]]]);
YH(36,"Amber","The tree dropped amber!","The tree dropped a piece of amber! From now on, every now and then, the tree can drop amber when it levels up.\n <br><br>\n Amber can be used in the new amber tab for various effects.\n <br><br>\n Effects:\n <br>\n \u2022 Production boost: gives a boost to berries and mushrooms for the entire run, this lasts until next transcension.\n <br>\n \u2022 Other effects may unlock later.\n ",void 0,void 0,void 0);
YH(37,"Combined Seasonal Fruits","You unlocked combined seasonal fruits fusing!","You unlocked fusing of multi-season fruits! Now when you fuse fruits of different seasons, they may form a new fruit that gives the bonus for both seasons. The following combinations work:\n <br><br>\n \u2022 Apricot + Pineapple = Mango (spring + summer)\n <br>\n \u2022 Pineapple + Pear = Plum (summer + autumn)\n <br>\n \u2022 Pear + Medlar = Quince (autumn + winter)\n <br>\n \u2022 Medlar + Apricot = Kumquat (winter + spring)\n <br><br>\n Other combinations (e.g. Apricot + Pear, or Quince + Plum) don't work and just give a regular apple, or a lowest common denominator seasonal fruit.\n <br><br>\n To get these multi-season fruits, fuse fruits as you usually do. All other fusing rules, such as the combining of abilities (and inability to fuse in case of full ability mismatches), work as usual, the change is now some mixed combinations give a new improved multi-season fruit rather than an apple.\n <br><br>\n Later, if (and only if) you get the second fruit-mixing squirrel upgrade, you additionally get the following combinations to make the 4-seasons star fruit:\n <br><br>\n \u2022 Mango + Quince = Star Fruit (4 seasons)\n <br>\n \u2022 Plum + Kumquat = Star Fruit (4 seasons)\n <br><br>\n Combinations that don't cover all 4 seasons, such as mango+plum, won't work, it must be one of the combinations listed above.\n <br><br>\n Remember, star fruit fusing is not yet available if you just unlocked the first fruit mixing upgrade now, the star fruit requires the second such squirrel upgrade. Now you already know how to prepare for it though.\n ",
Nc[8],void 0,[[Oc[1],Pc[1],Qc[8]],[Rc[1],Sc[4],Uc[7]],[Vc[4],Wc[1],Xc[9]]]);YH(38,"Auto prestige","You unlocked auto prestige!","You unlocked auto-prestige for the automaton! This is integrated with auto-unlock: the same cost settings of auto-unlock are used for auto-prestige, and you can use a toggle to enable/disable auto-prestige in the auto-unlock settings.",We[4]);YH(39,"Squirrel evolution","Squirrel evolution",function(){return Tv()},nd);
YH(40,"Auto action","You unlocked auto actions by the automaton!","You unlocked auto actions by the automaton! This lets the automaton override the field with another blueprint and/or pick a fruit after a chosen trigger, such as tree level, unlocked crop or time.<br><br>You must enable and configure this feature in the automaton tab before it works, using the auto-action toggle and configuration buttons. You must configure both a trigger, and the action(s), and set buttons and checkboxes to enabled.<br><br>\nThe automatic blueprint is useful to get a different layout later in the run than at the start of the run. You choose your starting blueprint as usual at the start of the run, the automaton will override with the chosen one. You can also choose a fruit to match.\n<br><br>\nDuring some challenges you may want this disabled, toggle it off in the automaton tab in this case.\n",
We[4]);
YH(41,"Ethereal mistletoe","You got the ethereal mistletoe!","You got the ethereal mistletoe!\n <br><br>\n This crop has more effect the more you upgrade it. Upgrades cost time, and most don't cost other resources except some with other costs that unlock later.\n <br><br>\n The evolve upgrade will unlock new upgrades at certain levels, and also gives a boost to the effects of all other upgrades at the same time. The first such upgrade unlocks after the first evolve, the next only at the third evolve, and more follow after that. Evolve does not reset current upgrades, they keep existing at their level and can still be leveled up as normal.\n <br><br>\n The ethereal mistletoe must be planted orthogonally (not diagonally) next to the ethereal tree, otherwise none of its effects work and its upgrades don't progress.\n <br><br>\n Similar to squirrel and automaton, the ethereal mistletoe can give a boost to neighbors in the ethereal field, but this ability is unlocked only by later upgrades.\n <br><br>\n You can only have one upgrade in progress at the same time. You can always freely stop an upgrade. This pauses the upgrade, it remembers the time spent so far. You can do any other upgrade during this time. Any other resources are also paid back during pause.\n <br><br>\n If the mistletoe is sitting idle and not doing any upgrades, unused idle time is accumulated. Unused idle time will speed up active upgrades by 2x, so unused time is not lost. The mistletoe must still be correctly planted for idle time to accumulate.\n ",Je[4],
void 0,[[Vg[ku(15)][1][4],Je[4]],[Vg[ku(15)][2][4],void 0]]);
YH(42,"Infinity field","You unlocked the infinity field!","You unlocked the infinity field!\n <br><br>\n The infinity field is a new field in a new tab, in which you can plant infinity crops. Infinity crops produce infinity seeds, which allow planting more and better infinity crops.\n <br><br>\n The crops in the infinity field can give a small production boost to the basic field, which can add up to a better boost if the whole infinity field is filled.\n <br><br>\n Unlike the ethereal field, the infinity field is more focused on growing and improving itself slowly over time with its own resource, rather than merely boosting the basic field.\n <br><br>\n The first crop, a brassica, is not a permanent crop (similar to brassica in basic field, but without the copying ability and longer lifespan), and will need to be planted multiple times to collect enough infinity seeds for better crops. After that, permanent crops will unlock too.\n ",Wg,
void 0,[[zc[0],zc[0],zc[0]],[zc[0],Xg,zc[0]],[zc[0],zc[0],zc[0]]]);
function ZH(){var a=La({Ba:!0,title:"Shortcuts"});var b="<b>List of keyboard shortcuts:</b><br/><br/>";kq()||(b+="More shortcuts will appear in this list later as you progress through the game.<br/><br/>");b+='Note: on mac, ctrl means command instead.<br/><br/> \u2022 <b>esc</b>: close current dialog. If no dialogs are open, shows main menu.<br/> \u2022 <b>"p"</b>: when crop in field under mouse cursor: pick (select) this crop for planting (no mouse click required)<br/> \u2022 <b>"p"</b>: when empty field mouse cursor: plant the selected crop here (no mouse click required)<br/> \u2022 <b>"d"</b>: delete crop under mouse cursor (no mouse click required)<br/> \u2022 <b>"u"</b>: upgrade tier: replace crop or template under mouse cursor with highest available tier of the same type that you can afford (no mouse click required)<br/> \u2022 <b>"shift+d"</b>: downgrade tier, in ethereal field<br/> \u2022 <b>shift + click empty field</b>: plant last planted or unlocked crop type.<br/> \u2022 <b>ctrl + click empty field</b>: plant a watercress (does not affect last planted type for shift key).<br/> \u2022 <b>ctrl + click non-empty field</b>: delete crop.<br/> \u2022 <b>shift + click non-empty field</b>: replace crop.<br/> \u2022 <b>ctrl + shift + click field</b>: upgrade tier: replace crop or template with highest unlocked tier (if enabled in preferences), pick this crop type as last planted, and on empty field, plant highest tier of picked crop type you can afford.<br/> \u2022 <b>"w"</b>: replant watercress on all field tiles that have a watercress remainder, and refresh existing ones. Such a remainder appears for watercress that have been copying from multiple plants, that is, a good copying spot. Copying has diminishing returns if there are multiple watercress anywhere on the map, 1 or 2 is effective (check the seeds/s income to view the effect).<br/> \u2022 <b>"t"</b>: show transcend dialog (if available)<br/> \u2022 <b>"f"</b>: go to the basic field tab<br/> \u2022 <b>"e"</b>: go to the ethereal field tab (if available)<br/> \u2022 <b>"i"</b>: go to the infinity field tab (if available)<br/> \u2022 <b>"ctrl + z"</b>: undo / redo<br/> \u2022 <b>], }, ) or ></b>: select next active fruit. Can be changed in the preferences under "controls" to instead select next game tab.<br/> \u2022 <b>[, {, ( or <</b>: select previous active fruit. Can be changed in the preferences under "controls" to instead select previous game tab.<br/> \u2022 <b>number keys "1-9"</b>: by default, select fruit slot (when available). Can be changed in the preferences under "controls" to instead activate weather, change game tabs or do auto-actions.<br/> \u2022 <b>"shift" + number keys "1-9"</b>: by default, activate weather (1-3). Can be changed in the preferences under "controls" to instead select fruit slots, change game tabs or do auto-actions.<br/>';0<
D.vc&&(b+="<br/><b>Fruits tab:</b><br/><br/> \u2022 <b>ctrl + click fruit</b>: move fruit between sacrificial and storage slots, if possible.<br/> \u2022 <b>shift + click fruit</b>: same as ctrl + click fruit.<br/> \u2022 <b>shift + click fruit ability upgrade</b>: buy multiple abilities up to 25% of currently available essence.<br/>");kq()&&(b+='<br/><b>Blueprints:</b><br/><br/> \u2022 <b>"b"</b>: open the blueprint library, when available.<br/> \u2022 <b>"t" followed by "b"</b>: transcend and open the transcend-with-blueprint dialog.<br/> \u2022 <b>"t" followed by "Enter"</b>: transcend without blueprint.<br/> \u2022 <b>"t" followed by "c"</b>: transcend and open the start-new-challenge dialog.<br/> \u2022 <b>number keys "1-9" in blueprint selection dialog</b>: open or use this blueprint<br/> \u2022 <b>"shift" + number keys "1-9" in blueprint selection dialog</b>: plant this blueprint (overriding)<br/> \u2022 <b>"p" in blueprint selection dialog</b>: toggle page 1 / page 2<br/> \u2022 <b>shift + click blueprint</b>: immediately plant this blueprint, rather than opening its edit screen.<br/> \u2022 <b>shift + click blueprint "To Field"</b>: plant this blueprint, but let it override non-matching crops. Without shift, it only plants on empty field spots.<br/> \u2022 <b>shift + click squirrel upgrade</b>: when you unlocked this type of upgrades and have respecced at least once: upgrade all upgrades until this one, only available if you can afford it and this upgrade was seen before.<br/> \u2022 <b>"f" in blueprint editing dialog</b>: set blueprint from field.<br/> \u2022 <b>"enter" in blueprint editing dialog</b>: plant blueprint (overriding).<br/>');
a.content.a.innerHTML=b+"<br/><b>Special button actions:</b><br/><br/> \u2022 <b>shift + click upgrade</b>: buy as many of this upgrade as you can afford.<br/> \u2022 <b>shift + click undo</b>: save the undo state now, rather than load it. This overwrites your undo so eliminates any chance of undoing now. This will also be overwritten again if you do actions a minute later.<br/> \u2022 <b>shift + click save import dialog</b>: import and old savegame, but force paused state, do not run the time, so you get the resources and season at the time of saving rather than with all production during that time added.<br/> \u2022 <b>ctrl + click save import dialog</b>: import and old savegame, but force non-paused state, even if the savegame was saved while paused, this will cause all time between saving and now to be ran.<br/><br/><br/>"}
function $H(){La({Ba:!0,title:"Help"}).content.a.innerHTML='Ethereal farm is an incremental game taking place on a field with a mysterious tree in the center. Most crops are permanent and there\'s no harvesting/selling/withering as in many farm games, instead it\'s about growing better and better plant types, with various neighbor-interaction rules with other plants in the field.<br/><br/>The text in the message log at the bottom will guide you through how to play. A short summary of the first steps: initially you have no resources but can get some from clicking ferns. Then you can click on field tiles to plant crops and soon resources are gained automatically and soon after that permanently. The rest will be revealed when the time is ready.<br/><br/>You can click resources in the resource panel to see more detailed breakdown. You can click fullgrown crops to see detailed stats. As the game progresses, more types of information may appear in there.<br/><br/><b>Savegame recovery:</b><br/><br/>This game auto-saves every few minutes in local storage in the web browser, but please use <i>settings -> export save</i> regularly for backups, because a local storage savegame can easily get lost.<br/><br/>If something goes wrong with your savegame, there may be a few older recovery savegames. Click <a style="color:#11f;" id="recovery">here</a> to view them.<br/><br/><br/>Game version: Ethereal Farm v'+
zB()+"<br/><br/>Copyright (c) 2020-2022 by Lode Vandevenne";A(document.getElementById("recovery"),function(){AB()})}var ey=!1;
function TB(){function a(k){var l=(new G(b.content,.08,d,.92,d+.06)).a;Ba(l);d+=.066;l.h.innerText=k;return l}ey=!0;var b=La({onclose:function(){ey=!1},Ba:!0,title:"Help"}),d=.05;var e=a("Main help");A(e,$H);e=a("Keyboard shortcuts");A(e,ZH);e=a("Number format help");A(e,function(){kB()});0<D.vc&&(e=a("Fruit help"),A(e,uH));kq()&&(e=a("Blueprint help"),A(e,aI));e=a("Recovery saves");A(e,function(){AB()});d+=.03;for(var f=!1,g=0;g<XH.length;g++){var h=XH[g];if(D.Na[h]||D.ed[h])e=Uv[h],f||((new G(b.content,
.1,d,.9,d+.06)).a.innerText="Dynamic help dialogs",d+=.06,f=!0),e=a(e.name),A(e,z(function(k){lq(k,!0)},h))}d+=.03;(new G(b.content,.1,d,.9,d+.06)).a.innerText="More help topics may appear here as the game progresses. Any in-game help dialog that pops up will become permanently available here once it's unlocked"}
function uD(){function a(k){var l=(new G(b,.08,d,.92,d+.06)).a;Ba(l);d+=.066;l.h.innerText=k;return l}ey=!0;var b=La({title:"Automaton help",Ba:!0,onclose:function(){ey=!1}}).content;$a(b);for(var d=.05,e=[28,30,31,29,32,33,40,38],f=0;f<e.length;f++){var g=e[f];if(D.Na[g]||D.ed[g]){var h=a(Uv[g].name);A(h,z(function(k){lq(k,!0)},g))}}(new G(b,.1,d,.9,d+.06)).a.innerText="More help topics may appear here as the game progresses, when new automaton features get unlocked"}
var bI=0,cI=bI++,dI=bI++,eI=bI++,fI=bI++,gI=bI++,hI=bI++,iI=bI++,jI=bI++,kI=bI++,lI=bI++,mI=bI++,nI=bI++,oI=bI++,pI=bI++,qI=bI++,rI=bI++,sI=bI++,tI=bI++,uI=bI++,vI=bI++,wI=bI++,xI=bI++,yI=bI++,zI=bI++,AI=bI++,BI=bI++,CI=bI++,DI=bI++,EI=bI++,FI=bI++,GI=bI++,HI=bI++,II=bI++,JI=bI++,KI=cI,LI=0;
function MI(){if(Vp())return[cI,0];var a=D.Kc+D.Ib;if(0==D.ha)if(0==D.sd){if(ub(D.b.g,10)&&0==a)return[fI,0];if(5>D.Ib)return a=2*(25*D.Ae+D.Ib)+(0<Ga?1:0),[gI,a];if(D.i[Wp].f&&0==D.i[Wp].count&&!D.i[Io].f)return a=(D.ia==BF?0:1)+(NI?0:2)+(D.Dc?0:4)+(D.b.g.Sa(100)?0:8),[hI,a];if(10>D.Ib)return a=2*(25*D.Ae+D.Ib)+(0<Ga?1:0),[iI,a];if(D.i[Io].f&&0==D.i[Io].count)return a=(D.ia==BF?0:1)+(NI?0:2)+(D.Dc?0:4)+(D.b.g.Sa(1E3)?0:8),[jI,a];if(1>D.sd)return a=8*(25*D.Ae+D.Kc)+(0<Ga?4:0)+(D.Bh?2:0)+(D.b.g.Sa(1E3)?
1:0),[kI,a]}else{if(0==D.j)return D.i[gp].f&&0==D.i[gp].count?(a=(D.ia==BF?0:1)+(NI?0:2)+(D.Dc?0:4)+(D.b.g.Sa(6330)?0:8),[lI,a]):1>D.Ga[cn]&&!D.i[Jo].count?[mI,0]:D.i[Jo].count?1>D.Ga[Gm]&&!D.i[Ko].count?(a=8*(25*D.Ae+D.Kc)+(0<Ga?4:0)+(D.Bh?2:0)+(D.b.g.Sa(4E4)?1:0),[oI,a]):0==D.i[ho].count?[pI,0]:D.b.A.ze(0)?[qI,0]:[rI,0]:(a=(D.ia==BF?0:1)+(NI?0:2)+(D.Dc?0:4)+(D.b.g.Sa(4E4)?0:8),[nI,a]);if(10>D.j){if(!D.Pd&&3>=D.j)return a=D.j,[sI,a];if(5>D.j)return[tI,0];if(!D.Xe&&5<=D.j&&7>D.j)return a=(D.ia==DF?
1:0)+2*D.Tj,[uI,a];if(!D.i[op].count)return a=(D.ia==BF?0:1)+(NI?0:2)+(D.b.g.Sa(238E12)&&D.i[Zo].count?0:4),[vI,a];if(1>D.Ga[wl]&&!D.i[No].count)return[wI,0];if(10>D.j)return[xI,0]}else return a=0<Ga?1:0,[yI,a]}else{if(!D.cf)return a=(D.ia==HC?1:0)+2*D.Tj+(0<Ga?4:0),[zI,a];if(!D.K[rp].count&&0==D.J&&!D.challenge)return ub(D.qa.c,50)&&4>D.ha?ub(D.b.c,2<D.lh?25:2<=D.ha?15:10)?[2>D.ha&&1>D.j&&!D.i[Jo].count?BI:CI,0]:[AI,0]:[ub(D.b.c,25)?DI:EI,0];if(D.K[rp].count&&0==D.J)return D.eb[nn]?[HI,0]:D.i[sp].f?
(a=D.i[sp].f?1:0,[GI,a]):[FI,0];if(1<=D.J&&!Vp())return[D.b.c.Sa(100)?JI:II,0]}return[cI,0]}function OI(){for(var a=0,b=0;;){if(0==D.C[b][a].index||D.C[b][a].index==Dy)return[a,b];a++;a>=D.B&&(a=0,b++);if(b>=D.D)break}return null}var PI=!1;
function Ta(){if(LD&&QI){if(Vp())var a=[cI,0];else{var b=MI();a=b&&D.challenge?b[0]==zI||b[0]==AI||b[0]==EI||b[0]==JI?b:0==D.Lg?D.j>=qp[D.challenge].uf()?[eI,0]:[dI,0]:[cI,0]:b}b=a[0];a=a[1];if(b!=KI||a!=LI){Jb();if(b==cI)jG(void 0);else if(b==dI)jG("Click the challenge info dialog in the tree to see the goal and reward during a challenge.",!0);else if(b==eI)jG("You finished the challenge, transcend to complete challenge and get its reward.");else if(b==fI)jG("Collect 10 seeds by clicking ferns.");
else if(b==gI){jG("Plant 5 watercress on the field ("+D.Ib+" / 5 planted). To plant, click a field cell, then choose the watercress crop. Each costs 10 seeds.");var d=0<Ga?document.getElementById("help_arrow_plant_watercress"):null;if(PI)if(d)Ib(d,1.5,1,d,.8,.5);else{var e=OI();e&&(d=e[0],e=e[1],Ib(LD[e][d].a,1.5,1.5,LD[e][d].a,.8,.8,TD.a))}}else if(b==hI)jG("Upgrade watercress, after getting enough seeds."),PI&&(1==D.ia&&gH[0]?(d=document.getElementById("help_arrow_upgrade_watercress"))&&Ib(PF.a,
.6,.2,d,.85,.5):NI&&RI[1]?(d=document.getElementById("help_arrow_upgrade_watercress_side"))&&Ib(PF.a,.9,.2,d,.15,.5):NI||!D.Dc&&!D.b.g.Sa(100)||Ib(PF.a,.6,.2,lF[1],.5,1));else if(b==iI)jG("Plant up to 10 watercress on the field to reveal a next upgrade ("+D.Ib+" / 10 planted).");else if(b==jI)jG('Buy the "Unlock blackberry" upgrade, the first permanent (non-withering) crop. To get seeds to afford it, plant more watercress first.'),PI&&(1==D.ia&&gH[0]?(d=document.getElementById("help_arrow_unlock_blackberry"))&&
Ib(PF.a,.6,.2,d,.85,.5):NI&&RI[1]?(d=document.getElementById("help_arrow_unlock_blackberry_side"))&&Ib(PF.a,.9,.25,d,.15,.5):NI||!D.Dc&&!D.b.g.Sa(1E3)||Ib(PF.a,.6,.2,lF[1],.5,1));else if(b==kI){if(jG('Plant a blackberry and wait for it to grow. To get seeds to afford it, plant more watercress first. If the field is full of watercress, you can use "replace crop" to delete it and plant blackberry there.'),PI&&!D.Bh&&D.b.g.Sa(1E3))if(d=0<Ga?document.getElementById("help_arrow_plant_blackberry"):null)Ib(d,
1.5,1,d,.8,.5);else if(e=OI())d=e[0],e=e[1],Ib(LD[e][d].a,1.5,1.5,LD[e][d].a,.8,.8,TD.a)}else b==lI?(jG("Unlock the anemone flower. To get more seed production to afford it, plant more blackberries and watercress first."),PI&&(1==D.ia&&gH[0]?(d=document.getElementById("help_arrow_unlock_anemone"))&&Ib(d,1.2,1.2,d,.85,.5,PF.a):NI||!D.Dc&&!D.b.g.Sa(6330)||Ib(PF.a,.6,.2,lF[1],.5,1))):b==mI?jG("Plant an anemone flower. Plant it orthogonally next to a berry to boost the berry (a flower on its own doesn't produce anything). Keep planting more watercress, berries and flowers for more income."):
b==nI?(jG("Unlock blueberry. To afford this, if needed plant more blackberries boosted by flowers and watercress copying, or use upgrades."),PI&&(1==D.ia&&gH[0]?(d=document.getElementById("help_arrow_unlock_blueberry"))&&Ib(PF.a,.6,.2,d,.85,.5):NI&&RI[1]||NI||!D.Dc&&!D.b.g.Sa(1E3)||Ib(PF.a,.6,.2,lF[1],.5,1))):b==oI?(jG("Plant a blueberry, or replace a blackberry by one, and wait for it to grow."),PI&&!D.eb[Gm]&&D.b.g.Sa(4E4)&&D.i[Jo].count&&!D.i[Ko].f&&(d=0<Ga?document.getElementById("help_arrow_plant_blueberry"):
null)&&Ib(d,1.5,1,d,.8,.5)):b==pI?jG("Unlock champignon. To afford this, if needed plant more berries boosted by flowers and watercress copying, or use upgrades. Plant watercress next to your best berry to copy its production, this copy effect works best if there are only a few watercress on the whole field"):b==qI?jG("Plant champignon next to a high tier berry to produce spores. It will consume seeds directly from that berry. Also leave some berry without mushroom to keep global seed production."):
b==rI?jG("Wait for the tree to level up through enough spores. Improve berries next to champignons to speed up spore production. Also keep berries without champignon for global seed production."):b==sI?(jG("Reach tree level 2 and activate the sun ability. It's also possible to unlock other crops like cranberry while waiting."),PI&&2<=D.j&&(d=document.getElementById("sun_button"))&&Ib(d,2.5,1.5,d,1,.6)):b==tI?jG("Reach tree level 5 to get a fruit drop. Keep upgrading, unlocking new crop tiers (clover, currant, ...) and replacing existing crops with them for more income. Find an effective field layout. Put a flower next to mushrooms for more spores."):
b==uI?(jG("Check the fruit tab to see the newly dropped fruit and inspect its abilities."),PI&&D.ia!=DF&&Ib(PF.a,.5,.2,lF[DF],.5,1)):b==vI?(jG("Unlock nettle. To reach this, unlock and grow other crops first, up to matsutake mushroom (requires fullgrown currant). Keep upgrading and improving for more income."),PI&&(1==D.ia&&gH[0]?(d=document.getElementById("help_arrow_unlock_nettle"))&&Ib(d,1.2,1.2,d,.85,.5,PF.a):NI&&RI[1]?(d=document.getElementById("help_arrow_unlock_nettle_side"))&&Ib(PF.a,.9,.2,
d,.15,.5):!NI&&D.b.g.Sa(238E12)&&D.i[Zo].count&&Ib(PF.a,.5,.3,lF[1],.5,.9))):b==wI?jG("Plant a nettle. Plant it next to a mushroom to boost its spore production by 500% (but keep at least 1 berry and flower). Beware that nettle negatively affects other flowers and berries it orthogonally touches."):b==xI?jG("Reach tree level 10 to unlock transcension."):b==yI?jG("Click the tree and then transcend. Check fruit tab first in case you want to keep a fruit. You can also get a few more tree levels to collect more resin first - but transcending will be worth it!"):
b==zI?(jG("Plant an ethereal crop of your choice in the new ethereal field."),PI&&D.ia!=HC&&0==Ga&&Ib(PF.a,.5,.2,lF[HC],.6,.95)):b==BI?jG("Grow the basic field again and reach tree level 10 or higher to transcend again for more resin.\nTIP: shift+click watercress icon in top right corner to fill entire field with watercress (requires enough seeds). Check help -> keyboard shoftcuts for easier ways to plant.",!1):b==CI?jG("Grow the basic field again and reach tree level 10 or higher to transcend again for more resin.",
!0):b==DI?jG('Collect 25 resin from transcensions to afford the "unlock mistletoe" ethereal upgrade.',!0):b==AI?jG("Plant a crop in the ethereal field, or choose an upgrade in the ethereal upgrades tab, with the resin you have."):b==EI?jG("Unlock mistletoes in the ethereal upgrades tab."):b==FI?jG("Grow the basic field until you can plant mistletoe."):b==GI?jG("Unlock and plant a mistletoe next to the basic tree to collect twigs."):b==HI?jG("Reach enough twigs from mistletoes through transcensions to level up the ethereal tree.",
!0):b==II?jG("Unlock the automaton in the ethereal upgrades tab once you have enough resin.",!0):b==JI?jG("Unlock the automaton in the ethereal upgrades tab"):jG("UNKNOWN GOAL (TODO)");KI!=b&&(KI!=cI&&0<=KI&&(b==cI?X("Goal completed!",eG):b>KI&&X("Goal completed! A new goal appeared.",eG)),b!=cI&&mG());KI=b;LI=a}}};function SI(a,b,d,e,f,g,h,k){d.clear();d.a.style.backgroundColor=b?"#aaf":f?g?"#fbb":"#ff7":"#edc";a||(a=new Vy);f=a.B;var l=(g=a.D)?f/g:1;l=new G(d,[.5,0,-.5,l],[.5,0,-.5,1/l],[.5,0,.5,l],[.5,0,.5,1/l]);for(var n=[],p=[],m=0;m<g;m++){n[m]=[];for(var x=0;x<f;x++){var t=a.data[m][x];if(t=b?Kq[Xy(t,a.l[m][x])]:vl[Wy(t)]){if(n[m][x]=t.image[4],t.Yb)if(1==f&&1==g)n[m][x]=Ff;else{var y=m*f+x;p[y]?n[m][x]=t.lf[p[y]][4]:(n[m][x]=t.lf[0][4],p[y+1]=1,p[y+f]=2,p[y+f+1]=3)}}else n[m][x]=void 0}}f=Va("0%","0%",
"100%","100%",l.a);fc(n,f);a.B&&a.D||(ta(l.a),l.a.h.innerText="[empty]",l.a.h.style.color="#000");g=a.name;if(b){var u=TI(a,0),v=TI(a,1),w=TI(a,2),q=TI(a,3);C(f,function(){var F="Ethereal field resin value: "+(u.empty()?"0 resin":u.toString());F=F+"<br>Blueprint resin value: "+(v.empty()?"0 resin":v.toString());F=F+"<br>Plant resin cost: "+(w.empty()?"0 resin":w.toString());F=F+"<br>Override resin cost: "+(q.empty()?"0 resin":q.toString());return F=F+"<br><br>Currently have resin: "+D.b.c.toString()})}k||
(b="",g&&void 0!=e&&h?b="["+(e+1)+"] "+g+":":void 0!=e&&h?b="["+(e+1)+"]:":g&&(b=g+":"),b&&((new G(d,0,-.1,1,0)).a.innerText=b));h="blueprint";void 0!=e&&(h+=" "+(e+1));a.name&&(h+=": "+a.name);d.a.setAttribute("aria-description",h+": "+UI(a))}
function VI(a,b,d){if(a&&0!=a.B&&0!=a.D&&Pv(D.challenge,!0)){var e=!1,f=Math.floor((a.B-1)/2)-Math.floor((D.B-1)/2),g=Math.floor(a.D/2)-Math.floor(D.D/2),h=a.B,k=a.D,l=!1;1==h&&1==k&&(h=D.B,k=D.D,l=!0);for(var n=[],p=!1,m=0;m<k;m++)for(var x=0;x<h;x++){if(l){var t=D.C[m][x];var y=a.data[0][0];var u=x;var v=m}else{u=x-f;v=m-g;if(0>u||0>v||u>=D.B||v>=D.D)continue;t=D.C[v][u];y=a.data[m][x]}var w=v*D.B+u;if(!n[w]&&(y=vl[Wy(y)])){if(y.Yb&&(n[w+1]=n[w+D.B]=n[w+D.B+1]=!0,b)){w=D.C[v][u+1];var q=D.C[v+1][u],
F=D.C[v+1][u+1];Xk(w,!0)&&sl(w)!=t&&Z({type:sC,x:u+1,y:v,silent:!0,ra:!!d});Xk(q,!0)&&sl(q)!=t&&Z({type:sC,x:u,y:v+1,silent:!0,ra:!!d});Xk(F,!0)&&sl(F)!=t&&Z({type:sC,x:u+1,y:v+1,silent:!0,ra:!!d})}y.type!=dj||D.U[Tn].f||(e=!0);if((w=T(t))&&w.type==Vi&&y.type==Vi)if(pb(D.b.g,1E4))y=w;else{if(.25<t.F)continue}else if(b){if(0!=t.index&&t.index!=Dy&&(w=T(t,!0),t.index!=rl)){if(!w)continue;if(w.index==y.index)continue;if(w.type==y.type&&!w.Ab)continue}}else if(!(0==t.index||t.index==Dy||w&&w.Ab&&w.type==
y.type))continue;D.U[y.index].f&&(w&&t.index==rl&&(Z({type:sC,x:u,y:v,silent:!0,ra:!!d}),w=void 0),Z({type:w?uC:tC,x:u,y:v,W:y,Oa:!1,silent:!0,ra:!!d}),p=!0)}}p?X("Planted blueprint"):X("This blueprint had no effect on the current field");e&&!ol(3)&&X("Pumpkins can no longer be planted, the event finished",Qv)}}
function WI(a,b,d){if(0==a||0>a)return[0,0];if(void 0!=b&&void 0!=d){if(0>a||a>=b*d)return[0,0];var e=Math.min(b,d),f=Math.floor((e-1)/2),g=Math.floor(e/2),h=e*e;if(a>=h)return h=a-h,a=h%e,h=Math.floor(h/e),b>d?(e&1)==(h&1)?[-(-f-1-Math.floor(h/2)),g-a-(e&1?0:1)]:[-(e-f+Math.floor(h/2)),a-g]:(e&1)!=(h&1)?[f-a,-g-1-Math.floor(h/2)]:[a-f-(e&1?0:1),e-g+Math.floor(h/2)]}b=Math.floor((Math.sqrt(a)-1)/2)+1;d=(a-4*b*(b-1))%(8*b);e=d%(2*b);switch(Math.floor(d/(2*b))){case 0:return[b-d,-b];case 1:return[-b,
e-b];case 2:return[e-b,b];case 3:return[b,b-e]}}
function XI(a,b){if(a&&0!=a.B&&0!=a.D){for(var d=Math.floor((a.B-1)/2)-Math.floor((D.fa-1)/2),e=Math.floor(a.D/2)-Math.floor(D.ea/2),f=a.B,g=a.D,h=[],k=[],l=[],n=0;n<g;n++)for(var p=0;p<f;p++){var m=g;var x=WI(n*f+p,f,m);x[0]+=f>>1;x[1]+=m>>1;m=x;var t=m[0],y=m[1];m=t-d;x=y-e;0>m||0>x||m>=D.fa||x>=D.ea||!(t=Kq[Xy(a.data[y][t],a.l[y][t])])||((y=T(D.ka[x][m]))?y.index!=t.index&&b&&(y.type==t.type?t.l<y.l?k.push({type:FE,x:m,y:x,W:t,Oa:!1,silent:!0,zi:!0}):l.push({type:FE,x:m,y:x,W:t,Oa:!1,silent:!0,
zi:!0}):(k.push({type:YC,x:m,y:x,Oa:!1,silent:!0}),l.push({type:XC,x:m,y:x,W:t,Oa:!1,silent:!0,zi:!0}))):l.push({type:XC,x:m,y:x,W:t,Oa:!1,silent:!0,zi:!0}))}for(a=0;a<k.length;a++)h.push(k[a]);for(a=0;a<l.length;a++)h.push(l[a]);if(h.length){for(a=0;a<h.length;a++)Z(h[a]);X("Planted ethereal blueprint")}else X("This ethereal blueprint had no effect on the current field")}}
function YI(a){var b=D.B,d=D.D;a.B=b;a.D=d;a.data=[];for(var e=0;e<d;e++){a.data[e]=[];for(var f=0;f<b;f++)a.data[e][f]=Yy(T(D.C[e][f],!0))}ZI(a)}function $I(a){var b=D.fa,d=D.ea;a.B=b;a.D=d;a.data=[];a.l=[];for(var e=0;e<d;e++){a.data[e]=[];a.l[e]=[];for(var f=0;f<b;f++){var g=D.ka[e][f],h=T(g);a.data[e][f]=Yy(T(g));a.l[e][f]=h?h.l:0}}ZI(a)}function ZI(a){if(a){for(var b=a.B,d=a.D,e=0;e<d;e++)for(var f=0;f<b;f++)if(0!=a.data[e][f])return;a.B=0;a.D=0;a.data=[];a.l=[]}}
function UI(a,b){var d="";if(a)for(var e=a.B,f=a.D,g=0;g<f;g++){for(var h=0;h<e;h++){var k=a.data[g][h];k=0==k?".":2==k?"W":3==k?"B":4==k?"M":5==k?"F":6==k?"S":7==k?"Z":8==k?"I":9==k?"N":32==k?"A":33==k?"Q":34==k?"L":35==k?"E":60==k?"U":-1;d+=k;"."!=k&&" "!=k&&b&&a.l&&a.l[g]&&0<=a.l[g][h]&&(d+=a.l[g][h])}d+="\n"}return d}
function aJ(a){var b="B=berry, M=mushroom, F=flower, S=stinging, Z=bee, I=mistletoe, W=brassica (watercress, ...), ";D.U[sn].f&&(b+="N=nuts, ");a&&(b+="E=fern, L=lotus, ",a&&D.ba[Lq].f&&(b+="A=automaton, "),D.ba[Mq].f&&(b+="Q=squirrel, "));return b+".=empty/tree"}
function bJ(a,b,d){var e=La({ib:function(){a(g.value)},names:"import",title:"Import blueprint"}),f="Letter meanings: "+aJ(d);e.content.a.innerHTML=f;f+=".";var g=r.qf("textarea","1%","15%","98%","70%",e.content.a);b&&(g.value=UI(b,d));g.select();g.focus()}var cJ=void 0,dJ=-1;
function eJ(a,b,d,e){if(Vp()){var f=!1,g=a;a=$y(a);var h=La({ib:function(){f?(a=$y(g),l(),f=!1):cJ&&dJ==d&&(a=$y(cJ),l(),f=!0);return!0},names:"undo",oncancel:function(){f&&(cJ=$y(g),dJ=d,Zy(a,g))},qc:"ok",title:"Blueprint",onclose:e,zb:aI,fe:function(t){var y=yC(t);"f"!=y.key||y.shift||y.aj||(b?$I(a):YI(a),l(),f=!0);"Enter"!=t.key||y.shift||y.aj||(b?XI(a,!0):VI(a,!0),Zy(a,g),Oa(),l())}}),k=new G(h.content,[0,0,.25],0,[0,0,.75],[0,0,.5]);SI(a,b,k,d,void 0,void 0,void 0,!0);var l=function(){SI(a,b,
k,d,void 0,void 0,void 0,!0);var t=a.name;t||(t=b?"Ethereal blueprint":"Blueprint");h.em.innerText=t;if(b){t="To field";var y=TI(a,2);y=y.empty()?"0 resin":y.toString();t+=" ("+y+")";y=TI(a,3);y=y.empty()?"0 resin":y.toString();m.h.innerText=t;x.h.innerText="Override field ("+(y+")");t=TI(a,1);p.a.innerText="Total value: "+t.toString()}},n=.51;if(b){var p=new G(h.content,[0,0,.25],[0,0,n],[0,0,.75],[0,0,n+.055]);n+=.055}e=function(t,y,u){var v=(new G(h.content,[0,0,.25],[0,0,n],[0,0,.75],[0,0,n+.055])).a;
n+=.055*1.1;Ba(v);v.h.innerText=t;A(v,y);u&&C(v,u);return v};var m=e("To field",function(){b?XI(a,!1):VI(a,!1);Zy(a,g);Oa();l()},"Plant this blueprint on the field. Only empty spots of the field are overridden, existing crops will stay, even if their type differs.");var x=e("Override field",function(){b?XI(a,!0):VI(a,!0);Zy(a,g);Oa();l()},"Plant this blueprint on the field. Existing crops from the field are also deleted and overridden, if their type differs and the blueprint is non-empty at that spot.");
e("From field",function(){b?$I(a):YI(a);l();f=!0},"Save the current field state into this blueprint. You can use the cancel button below to undo this.");e("To TXT",function(t){DB("Export blueprint",void 0,UI(a,b&&b&&!t.shiftKey),"blueprint-"+r.Xd(r.getTime(),!0)+".txt",!1)},"Export the blueprint to text format, for external storage and sharing");e("From TXT",function(){bJ(function(t){var y=t;t=a;if(""!=y){y=y.trim();y=y.split("\n");var u=y.length;if(!(1>u||11<u)){for(var v=0,w=[],q=[],F=!1,B=0;B<
u;B++){w[B]=[];q[B]=[];for(var K=0,N=y[B],O=0;O<N.length;){var W=N[O++];if("\t"!=W){if(" "==W&&(0==B&&(F=!0),F))continue;W?(W=W.toUpperCase(),W="W"==W?2:"B"==W?3:"M"==W?4:"F"==W?5:"S"==W?6:"Z"==W?7:"I"==W?8:"N"==W?9:"A"==W?32:"Q"==W?33:"L"==W?34:"E"==W?35:"U"==W?60:0):W=0;w[B][K]=W;for(W="";O<N.length&&48<=N.charCodeAt(O)&&57>=N.charCodeAt(O);)W+=N[O++];b&&(q[B][K]=""==W?-1:parseInt(W));K++}}K>v&&(v=K)}if(!(1>v||11<v)){for(B=0;B<u;B++)for(K=w[B].length;K<v;K++)w[B][K]=0,b&&(q[B][K]=0);t.B=v;t.D=u;
t.data=w;t.l=q;ZI(t)}}}l();f=!0},a,b)},"Import the blueprint from text format, as generated with To TXT. You can use the cancel button below to undo this.");e("Rename",function(){Bb("Rename blueprint","Enter new blueprint name, or empty for default",function(t){a.name=Pb(t);l();f=!0},a.name)},"Rename this blueprint. This name shows up in the main blueprint overview. You can use the cancel button below to undo this.");e("Delete blueprint",function(){a.B=0;a.D=0;a.data=[];a.name="";l();f=!0},"Delete this blueprint. You can use the cancel button below to undo this.");
l()}}
function aI(){La({title:"Blueprint help",Ba:!0}).content.a.innerHTML='Blueprints allow planting a whole field layout at once, and storing layouts<br/><br/>A field layout represents a crop type for each tile. Crop types are for example berry, mushroom, flower, nettle, ... A layout never refers to a specific crop, such as blackberry or blueberry, only to the type (here "berry") in general.<br/><br/>Planting a blueprint places crop templates on the field. You can also plant individual crop templates yourself using the regular plant dialog.<br/><br/>The blueprint will only plant templates on empty field cells, when a field cell already has something (including another template) it is not overplanted.<br/><br/>If the blueprint and field have a different size, it still just works and plants anything it can that is not out of bounds, centered around the tree. The tree is not present in the blueprint itself, it assumes where the standard position of a field of that size is.<br/><br/>To create a blueprint, you can use two methods:<br/> \u2022 From field: the current field layout is copied to the blueprint, e.g. wherever there\'s any berry on the field, produces a berry template in the blueprint.<br/> \u2022 From text (TXT): Write a field layout on multiple lines of text using letter symbols (B for berry, ...). Export TXT does the opposite.<br/><br/>Keyboard shotcuts for blueprints:<br/>Note: on mac, ctrl means command instead.<br/> \u2022 "b": open the blueprint dialog (from field, or from ethereal field)<br/> \u2022 shift + click blueprint in main blueprint dialog: plant it immediately, and overriding existing field crops, rather than opening its editing dialog (if not empty)<br/> \u2022 "t", "b": open transcend dialog, and then open transcend-with-blueprint dialog<br/> \u2022 "1-9" in blueprint selection dialog: shortcuts to open or use this blueprint<br/> \u2022 "shift 1-9" in blueprint selection dialog: override field with this blueprint (shift key not necessary in transcend-with-blueprint dialog)<br/> \u2022 "f" in blueprint editing dialog: set blueprint from fuild<br/> \u2022 "Enter" in blueprint editing dialog: override field with blueprint<br/> \u2022 "u": when mouse hovering over blueprint template: upgrade template to highest crop tier you can afford of that type<br/><br/>Once automaton is advanced enough, it can also use blueprints.'}
function fJ(a,b,d,e,f,g,h){if(e)e(f),db();else{var k=d?D.Oe:D.Jc;for(e=0;e<=f;e++)k[e]||(k[e]=new Vy);e=r.Wd(h);h=r.vd(h);var l=k[f]&&k[f].B&&k[f].D;a?D.j<fu&&0!=D.j&&!D.challenge?X("not high enough tree level to transcend (transcend with blueprint tries to transcend first, then plant the blueprint)",Qv):(g=b||0,D.challenge?Z({type:zD,challenge:g}):D.j>=fu&&Z({type:zD,challenge:g}),Z({type:gJ,ac:k[f]}),Oa(),OB()):(e&&!h||!e&&h&&165024E4>D.Ub)&&l?(d?XI(k[f],!0):VI(k[f],!0),Oa(),OB()):e&&h&&l?1640995200<
D.Ub||D.j<fu&&0!=D.j&&!D.challenge||d||(D.j>=fu&&(X("Transcended and planted blueprint"),Z({type:zD,challenge:0})),Z({type:gJ,ac:k[f]}),Oa(),OB()):(g=z(function(n,p){SI(k[n],d,p,f,a,b,!0)},f,g),eJ(k[f],d,f,g))}}var BD=!1,hJ=0,iJ=0;
function JC(a,b,d,e){if(Vp()){var f=d?iJ:hJ,g=[],h=void 0,k=void 0,l=void 0,n=void 0,p=void 0;a&&!b&&(h="challenges",D.Nh&&(h="challenges\n(new!)"),k=function(){CD()});h||(l="swap pages",n=function(){for(var t=d?D.Oe:D.Jc,y=0;9>y;y++){var u=t[y];t[y]=t[y+9];t[y+9]=u}db();JC(a,b,d,e);return!0},p="Swaps the contents of the two blueprint pages. This affects automaton configuration referring to blueprints, since it refers to blueprints by number.");var m=a?b?ma(qp[b].name)+" with blueprint":"Transcend with blueprint":
d?"Ethereal blueprint library":"Blueprint library";BD=!0;h=La({qc:e?"cancel":"back",title:m,fe:function(t){var y=yC(t).key;"p"==y&&(f=d?iJ=!iJ:hJ=!hJ,db(),JC(a,b,d,e));var u=-1;"1"==y&&(u=1);"2"==y&&(u=2);"3"==y&&(u=3);"4"==y&&(u=4);"5"==y&&(u=5);"6"==y&&(u=6);"7"==y&&(u=7);"8"==y&&(u=8);"9"==y&&(u=9);0>u||(u--,y=u,f&&(u+=9),fJ(a,b,d,e,u,g[y],t))},zb:aI,ib:[function(){f=d?iJ=!iJ:hJ=!hJ;db();JC(a,b,d,e);return!0},k||n],names:[f?"page 1":"page 2",h||l],jm:[void 0,k?void 0:p],onclose:function(){BD=!1}});
k=new G(h.content,0,0,1,1);l=d?D.Oe:D.Jc;for(n=0;9>n;n++){p=n;f&&(p+=9);m=n%3;var x=Math.floor(n/3);m=new G(k,.33*(m+.05),.33*(x+.05),.33*(m+.95),.33*(x+.95));g[n]=m;SI(l[p],d,m,p,a,b,!0);Aa(m.a,!0);A(m.a,z(function(t,y,u){return fJ(a,b,d,e,t,y,u)},p,m))}jb(k,h.content)}}
function TI(a,b){var d=R();if(0==b)return SE();if(!a||0==a.B||0==a.D)return d;var e=Math.floor((a.B-1)/2)-Math.floor((D.fa-1)/2),f=Math.floor(a.D/2)-Math.floor(D.ea/2),g={};if(3==b){for(var h=D.fa,k=D.ea,l=0;l<k;l++)for(var n=0;n<h;n++){var p=n+e,m=l+f,x=void 0;if(0<=p&&0<=m&&p<a.B&&m<a.D){x=a.data[m][p];var t=a.l[m][p];x=Kq[Xy(x,t)]}t=D.ka[l][n];t.index!=Pq&&t.index!=Oq&&(b=T(t),x||(x=b),x&&(t=g[x.index]||0,g[x.index]=t+1,d.v(x.O(void 0,t))))}a=SE();d.oa(a)}else for(h=a.B,k=a.D,m=0;m<k;m++)for(p=
0;p<h;p++)if(n=p-e,l=m-f,!(0>n||0>l||n>=D.fa||l>=D.ea)&&(x=a.data[m][p],t=a.l[m][p],x=Kq[Xy(x,t)]))t=D.ka[l][n],t.index==Pq||t.index==Oq||2==b&&0!=t.index||(t=g[x.index]||0,g[x.index]=t+1,2==b&&(t+=D.ad[x.index]),d.v(x.O(void 0,t)));return d};var jJ=0,kJ=1,lJ=2,mJ=3,nJ=4,oJ=5;function pJ(a){return a==jJ?Iv:a==kJ?Jv:a==lJ?Kv:a==mJ?Lv:a==nJ?Mv:a==oJ?Nv:c(999999999)}
function JF(){function a(e,f){var g=(new G(qJ,.1,b,.75,b+.065)).a;Ba(g);b+=.065*1.35;void 0!=f&&(e+=" ("+pJ(f).toString()+" amber)");g.h.innerText=e;void 0!=f&&A(g,function(){Z({type:rJ,effect:f});OB();JF()});return g}qJ.clear();(new G(qJ,0,0,1,.1)).a.innerHTML="\n Amber Processor. Use amber for various effects.\n <br><br>\n Amber is gained gradually while the tree levels up, it may drop some every now and then.\n <br><br>\n Have amber: "+D.b.ma.toString();var b=.3;var d=
a("Production boost 100%",kJ);C(d,"Get a 100% production boost (seeds and spores) during this run. Resets on transcend.");d.id="amber_prod";D.he?d.className="efButtonAmberActive":D.b.ma.la(Jv)&&(d.className="efButtonCantAfford");D.yb?(d=a("Stop hold season",oJ),C(d,"Stops the keep season effect. Refunds amber if keep season didn't have to extend the season. Otherwise starts the next season, which will last 24 hours."),d.id="amber_end_keep_season",D.yb?d.className="efButtonAmberActive":D.b.ma.la(Nv)&&
(d.className="efButtonCantAfford")):(d=a("Season hold this run",nJ),C(d,"Keep the current season until transcension, it won't change until the run is done. Ending the run will start the next season with 24 hours left. If the run is finished early (current season didn't need to be held), it'll give a full refund of the amber cost and no seasons are affected."),d.id="amber_keep_season",D.yb?d.className="efButtonAmberActive":D.b.ma.la(Mv)&&(d.className="efButtonCantAfford"));d=a("Season +1h",lJ);C(d,
"Make the current season 1 hour longer (1-time). Can be used once per season.");d.id="amber_lengthen";if(D.Kd)d.className="efButtonAmberActive";else if(D.b.ma.la(Kv)||D.yb)d.className="efButtonCantAfford";d=a("Season -1h",mJ);C(d,"Make the current season 1 hour shorter (1-time). If the season has less than 1 hour remaining, then it is only shortened by this remaining time, immediately activating the next season. Can be used once per season.");d.id="amber_shorten";if(D.Kd)d.className="efButtonAmberActive";
else if(D.b.ma.la(Lv)||D.yb)d.className="efButtonCantAfford";zt()&&(d=a("Squirrel respec token",jJ),C(d,"Get an additional respec token for resetting squirrel upgrades. Note that you already got some for free, no need to buy this if you still have some left."),d.id="amber_respec");D.b.ma.la(Iv)&&(d.className="efButtonCantAfford");b+=.0325;d=a("Help");A(d,function(){lq(36,!0)})};function sJ(a,b,d,e){var f="Squirrel upgrade: "+(e?"???":a.name);f=f+"<br><br>"+(e?"Buy more upgrades to reveal the description of this one":ma(a.description));f+="<br><br>";if(b||d)f+="Gated: you must buy all squirrel upgrades that come before this, including side branches above, before this one unlocks.<br><br>";a=new R({S:Hv(D.hc)});f+="Next costs: "+a.toString()+" ("+ob(a)+")";return f=f+"<br>Nuts available: "+(D.b.S.toString()+". Grow nut crops in the main field to get more nuts.")}
function tJ(a,b,d,e){for(var f=[],g=fv[D.gb],h=-1,k=a.index;0<k;k--)if(g[k].dg){h=k;break}for(var l=0;l<a.index;l++){var n=l<h;for(k=0;k<g[l].Sb.length;k++)0!=Hz(l,1,k)&&f.push({type:uJ,Rb:l,s:1,d:k});if(n){for(k=0;k<g[l].Hd.length;k++)0!=Hz(l,0,k)&&f.push({type:uJ,Rb:l,s:0,d:k});for(k=0;k<g[l].K.length;k++)0!=Hz(l,2,k)&&f.push({type:uJ,Rb:l,s:2,d:k})}}for(k=0;k<=d;k++)f.push({type:uJ,Rb:l,s:b,d:k});g=f.length;h=c(0);for(k=0;k<g;k++)h.v(Hv(k));if(h.da(D.b.S))e?Z({type:uJ,Rb:a.index,s:b,d:d}):X("not enough resources to buy these "+
g+" squirrel upgrades: have: "+D.b.S.toString(Math.max(5,Qh))+", need: "+h.toString(Math.max(5,Qh))+" ("+ob(R({S:h}))+")",Qv,0,0);else for(k=0;k<f.length;k++)Z(f[k])}
function vJ(a,b,d,e,f,g,h){var k=fv[D.gb],l=!1;if(0<b.index&&!h){var n=k[b.index-1],p=D.Ya[b.index-1];p.aa[1]+1==n.Sb.length&&0<p.aa[1]&&(l=!0);1<b.index&&!l&&1==n.Sb.length&&D.Ya[b.index-2].aa[1]==k[b.index-2].Sb.length&&(l=!0)}k=h?0:Hz(b.index,f,g);var m=0==k,x=2==k,t=1==k;l=b.Aj>D.ri;var y=3<=k;y&&(d.na[f]>g||b.Bj<=D.si||3==k&&!l)&&(y=!1);var u=b.dg,v=sJ(e,x,u,y);d=new G(a,[0,0,.9],0,1,.97);ta(d.a);k=y?"???":ma(e.name);l=Hv(D.hc).Xa(D.b.S);a.a.className=m?"efSquirrelBought":t&&!l?"efSquirrelCantAfford":
t?"efSquirrelBuy":x?"efSquirrelGated":"efSquirrelUnknown";l=new G(a,[0,0,.05],[0,0,.15],[0,0,.8],[0,0,.9]);l.clear();l.a.style.backgroundColor="#ccc";l.a.style.border="1px solid black";n=Va("0%","0%","100%","100%",l.a);Wa(y?bh[0]:e.image,n);Aa(l.a);h||(x?k+="<br>(Gated)":t?k+="<br>Buy":m&&(k+="<br>Bought"));var w=(t||x)&&!m&&!h,q=void 0;if(w||0<D.bf&&!y&&!m)q=function(){0<D.bf&&!t?tJ(b,f,g,x):Z({type:uJ,Rb:b.index,s:f,d:g});LF&&(Zv=LF.a.scrollTop);OB();$v()};w?(Aa(d.a),A(d.a,q)):D.bf&&!y&&q&&(d.a.onclick=
function(F){q(F)});A(l.a,function(){var F=void 0,B=void 0;w?(F=function(K){q(K)},B="Buy"):0<D.bf&&!y&&!m&&(F=function(){tJ(b,f,g);LF&&(Zv=LF.a.scrollTop);OB();$v()},B="Buy all to here");La({size:1,ib:F,names:B,title:"Squirrel upgrade",icon:e.image}).content.a.innerHTML=v});d.a.h.innerHTML=k;C(a.a,function(){return sJ(e,x,u,y)},!0)}
function wJ(a,b,d,e){var f=e?null:D.Ya[b.index],g=[b.Hd,b.Sb,b.K],h=d,k=e?.1:.145,l=k+.035,n=Math.max(Math.max(b.Hd.length,b.Sb.length),b.K.length);if(g[0].length){var p=1,m=new G(a,.33*(p-1+.5),[h+.5*(k-l)+.03,-.005],.33*(p+.5),[h+.5*(k-l)+.03,.005]);m.a.className="efConnector";m=new G(a,.33*(p-1+.5)-.005,[h-.5*(l-k)+.03,-.005],.33*(p-1+.5)+.005,h+.03);m.a.className="efConnector"}g[2].length&&(p=1,m=new G(a,.33*(p+.5),[h+.5*(k-l)+.03,-.005],.33*(p+1+.5),[h+.5*(k-l)+.03,.005]),m.a.className="efConnector",
m=new G(a,.33*(p+1+.5)-.005,[h-.5*(l-k)+.03,-.005],.33*(p+1+.5)+.005,h+.03),m.a.className="efConnector");for(p=0;p<g.length;p++){for(var x=g[p],t=h,y=b.dg,u=0;u<x.length;u++){m=cv[x[u]];var v=t;0==u&&(g[0].length||g[2].length)&&(t+=.03);var w=new G(a,.33*(p+.05),t,.33*(p+.95),t+k);vJ(w,b,f,m,p,u,e);if(0<u||1==p)m=new G(a,.33*(p+.5)-.005,v+k-l,.33*(p+.5)+.005,t-(y?.014:0)),m.a.className="efConnector",y&&(m=new G(a,.33*(p+.5)-.005,t-.015,.33*(p+.5)+.005,t),m.a.className="efConnectorTriangle");t+=l}1==
p&&b.Sb.length<n&&(m=new G(a,.33*(p+.5)-.005,t+k-l,.33*(p+.5)+.005,t+(n-b.Sb.length)*l),m.a.className="efConnector");d=Math.max(d,t)}return d}var Zv=void 0,LF=void 0,xJ=void 0;
function $v(a){xJ&&LF||(a=!1);var b=fv[D.gb];LF&&(Zv=LF.a.scrollTop);a||(yJ.clear(),LF=void 0);if(zt()){var d=a?xJ:new G(yJ,0,0,1,.1);xJ=d;if(Fk()){var e=function(g){function h(){Z({type:zJ});LF&&(Zv=LF.a.scrollTop);OB();$v()}qa(g)?h():La({size:1,ib:h,names:"Respec now",title:"Squirrel respec"}).content.a.innerHTML="Really respec? This resets and refunds all squirrel upgrades, and consumes 1 respec token<br><br>Tip: after respec, you can click on upgrades further below the tree (as long as their name is revealed) to buy all upgrades up to that one at once, so you don't have to click all the individual ones."};ta(d.a);
var f=new R({S:Hv(D.hc)});f="Upgrades done: "+D.hc+". Next costs: "+f.toString()+" ("+ob(f)+")<br>Have: "+D.b.S.toString()+" nuts. ";Ok()&&(f+="Unspent nuts production boost: "+L(jh(Pk(),1)));d.a.h.innerHTML=f;a||(d=new G(yJ,0,.1,1,.2),f=new G(d,0,0,.24,.9),A(f.a,function(){lq(35,!0)}),Ba(f.a),f.a.h.innerText="Help",f=new G(d,.26,0,.5,.9),A(f.a,e),Ba(f.a),f.a.h.innerText="Respec\n(Available: "+D.Fe+")",C(f.a,"Resets and refunds all squirrel upgrades, consumes 1 respec token"),D.gb&&(e=new G(d,.52,
0,.76,.9),A(e.a,AJ),Ba(e.a),e.a.h.innerText="See old tree",C(e.a,"Shows the old tree from before the squirrel evolution ")));LF=e=a?LF:new G(yJ,0,.2,1,1);if(!a){$a(e);e.a.style.overflowY="scroll";a=.15;for(d=0;d<b.length;d++)a=wJ(e,b[d],a,!1);!D.Dg||D.Jd||void 0!=Zv&&0!=Zv||(Zv=e.a.scrollHeight);Zv&&(e.a.scrollTop=Zv)}}else d.a.innerText="You must have squirrel in ethereal field to use the squirrel upgrades tab, place squirrel there first or replace an existing ethereal crop by a squirrel."}}
function AJ(){if(0<D.gb)for(var a=La({title:"View pre-evolution squirrel tree",Ba:!0}).content,b=0,d=fv[0],e=0;e<d.length;e++)b=wJ(a,d[e],b,!0)}var BJ=void 0,CJ=void 0,DJ=void 0;
function Tv(){return"\n This will reset all squirrel upgrades and remove their effects, but unlocks a new squirrel tree with more expensive upgrades, and gives a permanent flat bonus.\n <br><br>\n After doing this, you will initially be weaker than before, but the new upgrade tree will eventually make you much stronger, so doing this is worth it at some point and you can earn your strength back multifold.\n Most upgrades of the old squirrel upgrade tree will come back in the new tree (not necessarily in the same order as before), and some new ones appear too.\n <br><br>\n What you lose:\n <br> \u2022 All current squirrel upgrades and their effects (including layout effects such as diagonal brassica)\n <br> \u2022 All your nuts will be set to 0\n <br> \u2022 Nuts will stay at 0 and cannot be produced until next transcension\n <br><br>\n What you get:\n <br> \u2022 Permanent flat production bonus of "+L(vk)+
"\n <br> \u2022 Permanent ethereal tree neighbor bonus of "+L(Fq)+"\n <br> \u2022 New squirrel upgrade tree with more expensive upgrades, a mix of new ones and the old ones returning\n <br> \u2022 The first new squirrel upgrade is free and can be chosen immediately\n <br><br>\n WARNING: this is irreversible, you cannot respec to go back. Since you will initially be weaker, if there are any challenges or other runs you want to push soon, you may wish to do those first.\n You can also store a backup of your savegame using export from the main menu first, so that if you feel the reset was not worth it yet, you can still go back to the old savegame.\n <br><br>\n TIP: to get back to original strength over the next days, try to get the first new squirrel upgrades. To get those, push to high level berries and mushrooms, then focus on spore production to afford better nuts crops.\n "}
;var EJ=-1,FJ=-1,RI=[],GJ=void 0,NI=!1;
function uB(){if(HJ){var a=D.zg&&(0<D.xm||0<D.Oh),b=window.innerHeight;.95>window.innerWidth/b||!a?(HJ.a.style.visibility="hidden",NI=!1):(HJ.a.style.visibility="visible",NI=!0);IJ.clear();var d=(vz()?1:0)|(xz()?2:0)|(zz()?4:0)|(qq()?8:0)|(Vp()?16:0)|(Az()?32:0)|(Gz()?64:0)|(Dz()?128:0);a=d!=EJ;EJ=d;d=FJ!=300*Qh+3*Ph+D.Ac;FJ=300*Qh+3*Ph+D.Ac;if(cH||a||d){cH=!1;GJ!=JJ&&(JJ.clear(),RI=[],GJ=JJ,d=r.rf("span",JJ.a),xa(d,"heading"),ua(d,"sidepanel upgrades (only a subset of upgrades tab)"));d=[];for(var e=
0;e<dH.length;e++){var f=dH[e];Fj[f].le()&&d.push(f)}for(e=e=0;e<=d.length&&!(12<=e);e++)if(f=0==e?RI[e]||new G(JJ,.01,(-.1+e)/12,.99,(e+1)/12):12==e+1&&12<=d.length+1?RI[e]||new G(JJ,.01,(.03+e+.1)/12,.99,(e+1)/12):RI[e]||new G(JJ,.01,(.03+e+.1)/12,.99,(e+1+.1)/12),RI[e]=f,0==e){if(a){f.clear();var g="Upgrades";if(vz()&&(qq()||Vp()||Bz())){b=Bz()?.33:.5;g=Vp()?new G(f,0,0*b,1,1*b):void 0;var h=qq()?new G(f,0,1*b,1,2*b):void 0;b=Bz()?new G(f,0,2*b,1,3*b):void 0;g&&A(g.a,function(){vz()&&(D.paused?
(D.nc=1-D.nc,sD(),uB()):(Z({type:vD,jc:2,Xb:1-D.nc,Qa:function(){sD();uB()}}),OB()))});h&&A(h.a,function(){vz()&&(D.paused?(D.Zc=1-D.Zc,sD(),uB()):(Z({type:vD,jc:1,Xb:1-D.Zc,Qa:function(){sD();uB()}}),OB()))});b&&A(b.a,function(){vz()&&(D.paused?(D.Gc=1-D.Gc,sD(),uB()):(Z({type:vD,jc:5,Xb:1-D.Gc,Qa:function(){sD();uB()}}),OB()))});var k=oq()&&!Az(),l=Ez()&&!Gz(),n="Plant: "+(zz()?k||l?'<font color="#bb0">auto</font>':'<font color="#0b0">auto</font>':'<font color="#b00">manual</font>'),p="Upgrades: "+
(xz()?'<font color="#0b0">auto</font>':'<font color="#b00">manual</font>'),m="Auto-action: "+(Dz()?'<font color="#0b0">on</font>':'<font color="#b00">off</font>')+"&nbsp;&nbsp;";g&&(Aa(g.a),ta(g.a),g.a.title=k?"quick toggle auto-plant (auto unlock is currently disabled and not toggled by this button, use automaton tab to enable)":l?"quick toggle auto-plant (auto prestige is currently disabled and not toggled by this button, use automaton tab under the auto unlock settings to enable)":"quick toggle auto-plant",
g.a.h.innerHTML=n);h&&(Aa(h.a),ta(h.a),h.a.title="quick toggle auto-upgrades",h.a.h.innerHTML=p);b&&(Aa(b.a),ta(b.a),b.a.title="quick toggle auto-action",b.a.h.innerHTML=m,g=document.createElement("span"),b.a.h.appendChild(g),g.innerHTML="&#8201;\u2699&#8201;",g.className="efButton",g.title="quick edit auto-actions",A(g,function(x){oD();x.stopPropagation()}));ua(f.a,"side panel abbreviated upgrades list")}else d.length&&(ta(f.a),f.a.h.innerHTML=g,ua(f.a,"side panel abbreviated upgrades list"))}}else 12==
e+1&&12<=d.length+1?(f.clear(),f.a.style.border="",ta(f.a),f.a.h.innerText="more in upgrades tab..."):aH(Fj[d[e-1]],e&1,e>>1,f,!1,2);for(;e<RI.length;e++)RI[e]&&(Ua(RI[e],JJ),RI[e]=void 0)}if(0<D.ha||0<D.Oh){g="";pb(D.qa.c,0)&&(g+="\u2022 Total resin earned ever: "+D.qa.c.toString(),g+="<br>");0<D.ha&&(D.challenge?(d=qp[D.challenge],e=D.P[D.challenge],a=e.cb,1<d.ga&&(a=e.mb[e.tb%d.ga]),e=Math.max(D.j,a),d.Nc()?g=e>a?g+("\u2022 Previous max challenge level: "+a+" (now: "+e+")"):g+("\u2022 Max challenge level: "+
a):(d=d.uf(),g=0==a?g+("\u2022 Challenge level goal: "+d):e>a?g+("\u2022 Previous max challenge level: "+a+" (goal: "+d+")"):g+("\u2022 Max challenge level: "+a+" (goal: "+d+")"))):g=D.Zd&&D.j>D.Zd?g+("\u2022 Previous max tree level ever: "+D.Zd+" (now: "+D.Pa+")"):g+("\u2022 Max tree level ever: "+D.Pa),g+="<br>");1<=D.j&&(a=ju().A.sub(D.b.A).a(qb.A),g+="\u2022 Next tree level requires: "+ju().toString(),pb(a,0)&&(g+=" ("+r.I(a.valueOf(),!0)+")"),g+="<br>");g+="\u2022 Season change in: "+GG();g+=
"<br>";if(a=iz())g+="\u2022 Fruit: "+a.toString()+": "+a.Bg(!0,!0),g+="<br>";IJ.a.innerHTML=g}}};var TD,jH,NH,NE,aF,pH,tD,yJ,qJ,VB,KG,QF,PF,gG,kG,TG,hb=null,zb=null,Sa=null,cb=null,HJ,IJ,JJ;window.onresize=function(){hb&&hb.update()};var KC,BF,DF,HC,IC,pC,GF,KF,IF,AF;
function MB(){Jb();rB();document.body.className="efBackground";PF.clear();KJ=void 0;LJ=-1;MJ=void 0;QF.clear();lF=[];mF=[];var a=0;KC=a++;BF=a++;DF=a++;HC=a++;IC=a++;pC=a++;AF=a++;GF=a++;KF=a++;IF=a++;for(var b=0;b<a;b++)mF[b]=new G(PF,0,0,1,1);TD=mF[KC];TD.a.style.userSelect="none";jH=mF[BF];NH=mF[DF];TG=mF[AF];NE=mF[HC];NE.a.style.userSelect="none";pH=mF[IC];aF=mF[pC];aF.a.style.userSelect="none";tD=mF[GF];yJ=mF[KF];qJ=mF[IF];MF();SD();uG=[];KG.clear();ht();$E();NB();NJ=-1;D?aD(D.ia):aD(0,!0);KI=
-1}var KJ=void 0,LJ=-1,MJ=void 0;function NB(){var a=D.paused||OJ;a&&!KJ?(KJ=new G(PF,0,0,1,1,3),ta(KJ.a),KJ.a.style.pointerEvents="none",KJ.a.style.color="#f008"):!a&&KJ&&(Ua(KJ,PF),MJ=KJ=void 0);D.paused&&"Paused"!=MJ?(MJ="Paused",KJ.a.h.innerText=MJ):PJ&&"Computing"!=MJ&&(MJ="Computing",KJ.a.h.innerText=MJ);D.paused&&1!=LJ?(LJ=1,Wa(jd,WB)):D.paused||0==LJ||(LJ=0,Wa(id,WB))}function oB(){CF();MF();HF();sD();JF();$v();NB()}
function QJ(){for(var a=0;a<D.D;a++)for(var b=0;b<D.B;b++){var d=b,e=a;D.D==LD.length&&D.B==LD[0].length||SD();var f=D.C[e][d],g=LD[e][d],h=f.F,k=T(f);if(k&&k.type==Vi){var l=1<=h?4:Math.min(Math.floor(5*h),4);0<=l&&4>=l||(l=0);Xl(k,f)&&(l=-1)}else l=.1>h?0:.25>h?1:.5>h?2:.9>h?3:4,D.challenge==Rj&&(l=4);h=Oj();k=-1;f.index==Pq&&(0<D.j||pb(D.b.A,0))&&(k=Math.min(.99,D.b.A.a(ju().A).valueOf()),k=Math.round(5*k));var n=D.ab+D.bb*D.B<<3|D.Da,p=D.Ob+D.Pb*D.B<<3|D.Gb;var m=d==D.Ek&&e==D.Fk&&.5>D.time-D.Wi;
var x=1>f.F,t=sl(f).index;m&&Xk(f,!0)&&T(f,!0).Yb&&(m=!1);if(g.index!=f.index||g.Wk!=t||g.Rl!=x||g.qh!=l||h!=g.Kh||D.j!=g.j||n!=g.Wg||p!=g.Zl||k!=g.Jh||m!=g.Jl){var y=r.Qi(d,e,77777777);t=Ac[h];y=.25>y?t[0]:.5>y?t[1]:.75>y?t[2]:t[3];if(f.index==Pq||f.index==Oq)y=t[4];Wa(y,g.Fg);g.index=f.index;g.Wk=f.Wk;g.Rl=x;g.qh=l;g.Kh=h;g.j=D.j;g.Wg=n;g.Zl=p;g.Jh=k;g.Jl=m;n="field tile "+d+", "+e;if(m)Wa(We[4],g.canvas);else if(Xk(f,!0))k=T(f,!0),m=-1==l?k.Lj:k.image[l],k.Yb&&-1!=l&&k.lf&&(m=k.lf[rk(d,e)][l]),
Wa(m,g.canvas),(1<=f.F||f.index<oo)&&Ea(g.progress,-1,void 0),n=k.name+". "+n;else if(f.index==Oq)Wa(Vg[ku(D.j)][1][h],g.canvas),n="tree level "+D.j+". "+n;else if(f.index==Pq){if(Wa(Vg[ku(D.j)][2][h],g.canvas),n="tree level "+D.j+". "+n,0<D.j||pb(D.b.A,0))D.challenge==fk?bE(g.canvas,D.j,k,"#420","#fa0"):bE(g.canvas,D.j,k)}else f.index==Dy?(l=Iz(),0>l&&(l=0),Wa(vl[l].Mj||ve,g.canvas),Ea(g.progress,-1,void 0)):f.index==Ey?(l=Math.floor(4*r.Qi(d,e,245643)),Wa($c[l],g.canvas),n="rock. "+n,Ea(g.progress,
-1,void 0)):(Ea(g.progress,-1,void 0),g.a.innerText="",ic(g.canvas));D.Da&&d==D.ab&&e==D.bb?(hc((2==D.Da?mc:kc)[h],g.canvas),n="fern. "+n):D.Gb&&d==D.Ob&&e==D.Pb?ol(1)?(hc(nc[D.Ih],g.canvas),n="present. "+n):(hc(pc[D.Ih],g.canvas),n="egg. "+n):0==f.index&&(n="empty "+n);ua(g.a,n)}Xk(f)&&1>f.F&&(k=T(f),Ea(g.progress,f.F,k.type==Vi?"#0c0":"#f00"))}for(a=0;a<D.ea;a++)for(b=0;b<D.fa;b++){g=b;h=a;d=D.ka[h][g];e=wE[h][g];f=1<=d.F?4:Math.min(Math.floor(4*d.F),3);l=-1;d.index==Pq&&(0<D.J||pb(D.b.G,0))&&(l=
Math.min(.99,D.b.G.a(yu(D.J+1).G).valueOf()),l=Math.round(5*l));if(e.index!=d.index||e.qh!=f||4!=e.Kh||D.J!=e.J||0!=e.Wg||l!=e.Jh){m=r.Qi(g,h,55555);k=Ac[4];m=.25>m?k[0]:.5>m?k[1]:.75>m?k[2]:k[3];if(d.index==Pq||d.index==Oq)m=k[4];Wa(m,e.Fg);e.Kh=4;e.J=D.J;e.Wg=0;e.Jh=l;g="ethereal field tile "+g+", "+h;e.index=d.index;e.qh=f;Xk(d)?(h=Kq[no(d)],Wa(h.image[f],e.canvas),1<=d.F&&Ea(e.progress,-1,void 0),g=h.name+". "+g):d.index==Oq?(Wa(Vg[ku(D.J)][1][4],e.canvas),g="ethereal tree level "+D.J+". "+g):
d.index==Pq?(Wa(Vg[ku(D.J)][2][4],e.canvas),(0<D.J||pb(D.b.G,0))&&bE(e.canvas,D.J,l),g="ethereal tree level "+D.J+". "+g):(Ea(e.progress,-1,void 0),e.a.innerText="",ic(e.canvas));0==d.index&&(g="empty "+g);ua(e.a,g)}Xk(d)&&1>d.F&&Ea(e.progress,d.F,"#f00")}for(a=0;a<D.Ka;a++)for(b=0;b<D.La;b++){g=b;h=a;d=D.ta[h][g];e=TE[h][g];f=1<=d.F?4:Math.min(Math.floor(4*d.F),3);if(e.index!=d.index||e.qh!=f||6!=e.Kh||0!=e.Wg||-1!=e.Jh)k=r.Qi(g,h,55555),l=Ac[6],k=.25>k?l[0]:.5>k?l[1]:.75>k?l[2]:l[3],6==d.index&&
(k=l[4]),Wa(k,e.Fg),e.Kh=6,e.Wg=0,e.Jh=-1,g="infinity field tile "+g+", "+h,e.index=d.index,e.qh=f,Xk(d)?(h=mw[no(d)],Wa(h.image[f],e.canvas),g=h.name+". "+g):6==d.index?Wa(Wg,e.canvas):d.index==Dy?Wa(we,e.canvas):(e.a.innerText="",ic(e.canvas)),(1<=d.F||!Xk(d))&&Ea(e.progress,-1,void 0),0==d.index&&(g="empty "+g),ua(e.a,g);Xk(d)&&1>d.F&&Ea(e.progress,d.F,"#f00")}JG();a=[];for(b=0;b<dm.length;b++)d=D.eb[dm[b]],a[b]=!!d;for(b=0;b<$n.length;b++)d=D.i[$n[b]].count,a[dm.length+b]=!!d;d=!0;if(fH.length!=
a.length)d=!1;else for(b=0;b<a.length;b++)if(fH[b]!=a[b]){d=!1;break}d?a=!1:(fH=a,eH(),a=!0);d=[];for(b=0;b<dH.length;b++)e=dH[b],Fj[e].le()&&d.push(e);e=[];for(b=0;b<d.length;b++)f=Fj[d[b]],g=D.i[d[b]],h=f.O(0),e[b]=[D.b.la(h),g.count,f.index];d=!1;if(iH.length==e.length)for(d=!0,b=0;b<e.length;b++)if(e[b][0]!=iH[b][0]||e[b][1]!=iH[b][1]||e[b][2]!=iH[b][2]){d=!1;break}if(!d||a)CF(),cH=!0,iH=e;b=[];for(a=0;a<Js.length;a++)d=Js[a],Ks[d].le()&&b.push(d);d=[];for(a=0;a<b.length;a++)e=Ks[b[a]],f=D.K[b[a]],
g=e.O(0),d[a]=[D.b.la(g),f.count,e.index];b=!1;if(qH.length==d.length)for(b=!0,a=0;a<d.length;a++)if(d[a][0]!=qH[a][0]||d[a][1]!=qH[a][1]||d[a][2]!=qH[a][2]){b=!1;break}b||(HF(),qH=d);MF();nC();uB();NB();D.ia!=KF?a=!1:(a=!1,b=r.getTime()-DJ,60<b&&(a=!0),BJ&&CJ||(a=!0,BJ=D.b.S.clone(),CJ=qb.S.clone()),pb(D.b.S,0)&&D.b.S.da(BJ.o(1.1))&&(a=!0,BJ=D.b.S.clone()),D.b.S.gf(0)&&D.b.S.la(BJ)&&(a=!0,BJ=D.b.S.clone()),pb(qb.S,0)&&qb.S.da(CJ.o(1.1))&&(a=!0,CJ=qb.S.clone()),qb.S.gf(0)&&qb.S.la(CJ)&&(a=!0,CJ=qb.S.clone()),
.5>b&&(a=!1),a&&(BJ=D.b.S.clone(),DJ=r.getTime()));a&&$v(!0);gb&&gb();Fa&&(Fa(),0==Ga&&(Fa=void 0));ZB()}document.body.style.fontFamily="Arial, sans-serif";function RJ(a){document.getElementById("csslink").setAttribute("href",a)}function rB(){var a="?v="+zB().replace(/\./g,"_");2==D.kd?RJ("style_dark.css"+a):3==D.kd?RJ("style_dark2.css"+a):RJ("style_light.css"+a)};var D=void 0,SJ=3600,TJ=!!document.getElementById("topnotice");hb&&Ua(hb,null);hb=new G(null,0,0,1,1);cb=new G(hb,0,0,1,1);zb=new G(cb,[0,0,.01,.75],TJ?.03:.01,[0,0,.99,.75],.99);Sa=new G(hb,[0,0,.01,.75],TJ?.03:.01,[0,0,.99,.75],.99);Sa.a.style.visibility="hidden";VB=new G(zb,0,0,1,.05);KG=new G(zb,0,.05,1,.17);QF=new G(zb,0,.171,1,.29);PF=new G(zb,0,.295,1,.8);gG=new G(zb,0,.805,1,1);kG=new G(zb,0,.805,1,.85);kG.a.style.visibility="hidden";kG.a.className="efGoal";
HJ=new G(cb,[0,0,.99,.75],TJ?.03:.01,[0,0,.99,1.1],.99);HJ.a.style.visibility="hidden";HJ.a.style.overflow="hidden";IJ=new G(HJ,.02,.05,.98,.25,4);JJ=new G(HJ,.02,.25,.98,1);IJ.a.className="efBordered";IJ.a.style.padding="1%";JJ.a.className="efBordered";IJ.a.style.borderBottom="none";JJ.a.style.borderTop="none";jb(hb,document.body);hb.update();RB();
(function(){var a=UB(0,1).a,b=Va("0%","0%","100%","100%",a);Wa(ad,b);Aa(a,!0);a.title="Settings";A(a,function(){PB()},"settings");a.id="settings_button";a=UB(10,11).a;XB=Va("0%","0%","100%","100%",a);ZB();Aa(a,!0);a.title="About";A(a,function(){yB()},"about");a.id="about_button";var d=UB(1,2).a;C(d,"Pause the game. Pauses seasons, timers, growth, all progress, and everything else.<br>Allows to interact and open dialogs, but actions cannot be performed.");WB=b=Va("0%","0%","100%","100%",d);Wa(id,b);
Aa(d,!0);A(d,z(function(){D.paused=!D.paused;D.Ca[4]&&(D.paused?X("game paused"):X("game resumed from pause"));NB();ua(d,D.paused?"paused":"pause")},b),"pause");a.id="pause_button";b=UB(2,4,Ma);Ba(b.a);b.a.h.innerText="Undo";za(b.a,function(e){e.shiftKey?(X("held shift key while pressing undo button, so saving undo instead."),QB(D)):(bD(),OB());Qa()},{kl:function(){return"Undo your last action(s). Press again to redo.<br><br>Undo is saved when doing an action, but with at least "+r.I(10)+" of time in-between, so multiple actions in quick succession may all be undone.<br><br>Undo save time duration is limited to "+
r.I(SJ)+". If you undo a long time duration, you'll still get the correct amount of resources gained during that time."}});b.a.id="undo_button"})();var CB=!1,UJ=0;function vB(a){iB(D,function(b){r.Ee(b,Ji);if(!VJ){var d=r.getTime();if(d>UJ+86400){var e=Math.floor(d/86400)%2;0==e&&r.Ee(b,Oi);1==e&&r.Ee(b,Pi);UJ=d}}a&&a(b)})}
function WJ(){var a=eB(D.ua),b=D.mc;D.mc=!1;if(D.yb){D.yb=!1;if(!b)return D.mc||(X("Keep season did not yet activate, refunding amber",aG,872341239),D.b.ma=D.b.ma.add(Mv),D.jj++),!1;D.Ef=0;b=(XJ(D.time)+IG()+D.ee)%345600;D.ee=b-86400*(a+1&3)-1;return!0}}
function BB(){var a=[],b=r.Oc(Mi);b&&a.push(["last from older game version",b]);(b=r.Oc(Oi))&&a.push(["daily cycle A",b]);(b=r.Oc(Pi))&&a.push(["daily cycle B",b]);(b=r.Oc(Ni))&&a.push(["last save for undo feature",b]);(b=r.Oc(Li))&&a.push(["last known good",b]);var d=r.Oc(Ki);d&&a.push(["last known attempted",d]);d=r.Oc(Ji);b&&a.push(["last",d]);return a}function hB(a){CB=!1;bk=[];YJ=ZJ=$J=void 0;PJ=OJ=!1;aK=0;bK=a?R(a.b):R();cK=dK=0;TH={};KI=cI;LI=0;QI=!1;qb=R();eD=nD=!1;YB=-1}
function eK(){for(var a=0;a<$n.length;a++)D.i[$n[a]].f=!1}
function fK(){var a=D.challenge==Rj&&2>D.P[Rj].X;if(Vp()&&D.challenge!=Sj&&!a&&D.challenge!=kj&&2!=oj()){D.U[Ln].f=!0;D.U[Mn].f=!0;D.U[Nn].f=!0;D.U[On].f=!0;D.U[Pn].f=!0;D.P[kj].X&&(D.U[Qn].f=!0);a=!!D.challenge&&!qp[D.challenge].lc;var b=!!D.challenge&&!qp[D.challenge].Le;D.K[rp].count&&!a&&(D.U[Rn].f=!0);D.challenge==kj&&(D.U[Qn].f=!1,D.U[Pn].f=!1);b||(D.U[Sn].f=Fk());D.U[Tn].f=dq()||D.U[Zn].f}else D.U[Ln].f=!1,D.U[Mn].f=!1,D.U[Nn].f=!1,D.U[On].f=!1,D.U[Pn].f=!1,D.U[Qn].f=!1,D.U[Rn].f=!1,D.U[Sn].f=
!1,D.U[Tn].f=!1;D.ba[Lq].f?(D.ba[rs].f=!0,D.ba[ss].f=!0,D.ba[ts].f=!0,D.ba[vs].f=!0,D.ba[ws].f=!0,D.ba[us].f=D.ba[cs].f,D.ba[zs].f=D.ba[Lq].f,D.ba[Cs].f=D.ba[Mq].f,D.ba[Ds].f=D.ba[ns].f,D.ba[Es].f=D.ba[Aq].f,D.ba[Is].f=D.ba[gs].f):(D.ba[rs].f=!1,D.ba[ss].f=!1,D.ba[ts].f=!1,D.ba[vs].f=!1,D.ba[ws].f=!1,D.ba[us].f=!1,D.ba[zs].f=!1,D.ba[Cs].f=!1,D.ba[Ds].f=!1,D.ba[Es].f=!1,D.ba[Is].f=!1)}
function gK(){var a=D.P[D.challenge];if(D.challenge){var b=qp[D.challenge];a.cb=Math.max(D.j,a.cb);if(b.ga){var d=b.li();a.mb[d]=Math.max(D.j,a.mb[d])}D.j>=b.ja[0]&&(d=a.X,d<b.ja.length&&D.j>=b.ja[d]&&(1<b.ja.length?X("Completed the next stage of the challenge and got reward: "+b.Wc[d],$F,38658833):X("Completed the challenge and got reward: "+b.Wc[d],$F,38658833),b.fl[d](),a.X++),a.tb++);1<b.ja.length&&a.X>=b.ja.length&&a.ng++;D.j&&a.aa++}var e=qz();D.qg=R();D.qg.c=c(e);b=rz();var f=D.j>=fu;tb(b,
0)&&(f=!1);D.challenge&&!qp[D.challenge].Fc&&(f=!1);d=sz();var g=D.j>=fu;tb(d,0)&&(g=!1);D.challenge&&!qp[D.challenge].lc&&(g=!1);var h=c(0),k="";h=oz();k=D.challenge?k+"Starting new run":k+"Transcended";f&&(k+=". Got resin: "+b.toString());g&&(k+=". Got twigs: "+d.toString());D.ca.length&&(k+=". Sacrificed "+D.ca.length+" fruits and got "+h.toString());a.xi=D.j;a.yi=D.pa;a.vh=b;a.Pj=d;a.pf=r.getTime();a.Tl=D.qa.c;a.Oj=D.J;a.Nj=D.Pa;X(k,ZF,669840411);0==D.ha&&lq(1);D.b.c.v(b);D.qa.c.v(b);D.rb.c.v(b);
D.df.v(b);D.c=c(0);D.qe=new R;D.b.G.v(d);D.qa.G.v(d);D.rb.G.v(d);D.G=c(0);D.b.v(h);D.qa.v(h);D.rb.v(h);D.ca=[];D.Xe=!0;a=new R(D.rb);a.c=e;D.$e=Hi(D.$e,a);0<D.j&&(a=function(l,n){l.push(n);50<l.length&&l.splice(0,l.length-50)},a(D.wg,D.j),a(D.mk,D.J),a(D.Fd,(D.time-D.pc)/300),a(D.Df,D.qa.c),a(D.Cf,b),a(D.nk,d),a(D.vg,D.challenge));D.challenge||(D.Gh=D.pc,D.fc=D.pa,D.hk=D.Kf,D.Sc=D.rb,D.Fh=D.Od,D.Eh=D.ke,D.Hi=D.Re,D.Li=D.Ib,D.fk=D.Kc,D.Ki=D.sd,D.Mi=D.Lf,D.Ni=D.Mf,D.ik=D.Nf,D.Gi=D.Pd,D.Ii=D.Jf,D.Ji=
D.Se,D.dk=D.rd,D.bk=D.qd,D.ak=D.Ig,D.ek=D.Jg,D.yf=D.Lc,D.wf=D.td,D.xf=D.ud,D.jk=D.Te,D.gk=D.Kg,D.ck=D.Th,D.rg=D.j);D.challenge==bl&&(D.$j=D.Hg);a=D.time-D.pc;D.challenge||(0==D.ae?(D.re=D.pa,D.ae=D.pa,D.Ze=a,D.ef=a):(D.re=Math.min(D.re,D.pa),D.ae=Math.max(D.ae,D.pa),D.Ze=Math.min(D.Ze,a),D.ef=Math.max(D.ef,a)));D.challenge||(D.Pa=Math.max(D.j,D.Pa),D.Zd=Math.max(D.j,D.Zd));D.challenge?D.j?(D.ei++,10<=D.j&&D.bg++):D.wj++:D.ha++}
function hK(a){r.rc(Ki);CB=!1;gK();D.challenge=a||0;D.he=!1;D.jg=0;D.kg=0;D.ba[vr].f=!0;D.ba[Cr].f=!0;D.ba[Jr].f=!0;D.ba[or].f=!0;D.ba[hs].f=!0;D.time=r.getTime();D.ua=D.time;D.pc=D.time;D.pa=0;D.Kf=0;D.rb=R();D.Od=R();D.ke=R();D.Re=0;D.Ib=0;D.Kc=0;D.sd=0;D.Lf=0;D.Mf=0;D.Nf=0;D.Pd=0;D.Jf=0;D.Se=0;D.rd=0;D.qd=0;D.Ig=0;D.Jg=0;D.Lc=R();D.td=R();D.ud=R();D.Te=0;D.Kg=0;D.Th=0;D.Hg=0;D.b.g=c(0);D.b.A=c(0);var b=Au();D.b.v(b);D.qa.v(b);D.rb.v(b);b=2==oj()?[5,5]:D.K[Bt].count?[8,8]:D.K[vt].count?[7,8]:D.K[tt].count?
[7,7]:D.K[nt].count?[7,6]:D.K[Zs].count?[6,6]:[5,5];b[0]!=D.B||b[1]!=D.D?(D.B=b[0],D.D=b[1],ez(D),SD()):ez(D);for(b=0;b<D.ea;b++)for(var d=0;d<D.fa;d++)D.ka[b][d].hg=!1;D.j=0;D.zc=[0,0,0];D.Vc=[0,0];D.Bf=0;D.wm=new R;D.Da=!1;D.Vb=D.time;D.Pc=D.time;qb=new R;D.kb=0;D.xb=0;for(b=D.lb=0;b<dm.length;b++)D.U[dm[b]]||(D.U[dm[b]]=new Ny),d=D.U[dm[b]],d.f=!1,d.sa=0;D.U[ln].f=!0;Ov();for(b=0;b<$n.length;b++)D.i[$n[b]]||(D.i[$n[b]]=new Qy),d=D.i[$n[b]],d.na=!1,d.f=!1,d.count=0;WJ();if(a&&a){a==kj&&(eK(),D.U[Ol].f=
!0,D.U[Pl].f=!0,D.U[Ql].f=!0,D.U[In].f=!0,D.U[Vm].f=!0,D.U[Fm].f=!0,D.i[Np].f=!0,D.i[Op].f=!0,D.i[Pp].f=!0,D.i[Wp].f=!0);if(a==eq||a==ul){b=Math.floor(r.getTime()/10800);var e=a==eq?iK(b,491495058291):iK(b,366503875925);var f=Math.floor(D.B*D.D/3),g=[];for(b=0;b<D.D;b++)for(d=0;d<D.B;d++){var h=D.C[b][d];0==h.index&&g.push([d,b])}for(h=0;h<f&&0!=g.length;h++){b=jK(e);e=b[0];var k=Math.floor(b[1]*g.length);d=g[k][0];b=g[k][1];g.splice(k,1);a==eq?D.C[b][d].index=Ey:(D.C[b][d].index=oo+tl,D.C[b][d].F=
1)}}if(a==Ll){e=sq[D.P[Ll].tb%sq.length];for(b=0;b<D.D;b++)for(d=0;d<D.B;d++)h=D.C[b][d],0==h.index&&(h.index=Ey);f=Math.floor((D.B-1)/2)-2;g=Math.floor(D.D/2)-2;for(b=0;5>b;b++)for(d=0;5>d;d++)"1"==e[5*b+d]&&(h=D.C[g+b][f+d],h.index==Ey&&(h.index=0))}a==rq&&(eK(),D.U[ln].f=!0,D.U[Vm].f=!0,D.U[Fm].f=!0,D.U[cn].f=!0,D.U[nn].f=!0,D.U[wl].f=!0,D.i[Wp].f=!0,D.i[Rp].f=!0,D.i[Qp].f=!0,D.i[Sp].f=!0,D.i[Tp].f=!0,D.P[kj].X&&(D.U[on].f=!0,D.i[Yp].f=!0))}D.K[Up].count&&Xs();D.K[fp].count&&ft();D.K[Yo].count&&
jt();D.Va=-1;D.U[Fm].f?D.Va=Fm:D.U[ln].f&&(D.Va=ln);D.De=0;D.Ge=0;D.th=!1;for(b=0;b<D.xa.length;b++)D.xa[b].done=!1,D.xa[b].Mc=!1,D.xa[b].ge=0;3600<D.ec&&(D.ec=3600);aD(0);HB();Ra();uG=[];KG.clear()}function UD(){this.progress=this.a=void 0}
var kK=[],lK=0,OC=lK++,ZD=lK++,tC=lK++,sC=lK++,uC=lK++,$G=lK++,XC=lK++,YC=lK++,FE=lK++,lH=lK++,oC=lK++,zD=lK++,EH=lK++,BC=lK++,BH=lK++,CH=lK++,zH=lK++,gJ=lK++,uJ=lK++,zJ=lK++,Sv=lK++,rJ=lK++,vD=lK++,KE=lK++,LE=lK++,wC=lK++,vC=lK++,UC=lK++,mK=lK++,nK=lK++,oK=r.getTime(),KB="",LB=0;function QB(a){LB=r.getTime();iB(a,function(b){KB=b;r.Ee(KB,Ni)},function(){KB=""})}
function bD(){pK=!1;0!=LB&&D.time-LB>SJ&&(KB="",LB=0);""!=KB&&KB?(iB(D,function(a){jB(KB,function(){X("Undone",aG,217654408);MB();OB();KB=a;r.Ee(KB,Ni)},function(){X("Not undone, failed to load undo-save",EB,0,0)})},function(){X("Not undone, failed to save redo save",EB,0,0)}),HB(),IB(),JB(),LB=0):X("No undo present. Undo is stored when performing an action.",Qv,0,0)}
function qK(){var a=D.Ae;if(a<(ol(1)||ol(2)?3:2)){a=Math.floor(Math.random()*D.B);for(var b=Math.floor(Math.random()*D.D),d=D.C[b][a],e=4;;){if(d.index==Oq||d.index==Pq)a=(a+1)%D.B;D.Da&&a==D.ab&&b==D.bb&&(b=(b+1)%D.D);D.Gb&&a==D.Ob&&b==D.Pb&&(b=(b+1)%D.D);if(0>e--)break}return[a,b]}D.Da&&(D.ab>=D.B&&(D.ab=D.B-1),D.bb>=D.D&&(D.bb=D.D-1),d=D.C[D.bb][D.ab],0!=d.index&&d.index!=Dy||a--);D.Gb&&(D.Ob>=D.B&&(D.Ob=D.B-1),D.Pb>=D.D&&(D.Pb=D.D-1),d=D.C[D.Pb][D.Ob],0!=d.index&&d.index!=Dy||a--);e=Math.floor(Math.random()*
a);var f=0;for(b=0;b<D.D;b++)for(a=0;a<D.B;a++){d=D.C[b][a];var g=D.Da&&a==D.ab&&b==D.bb,h=D.Gb&&a==D.Ob&&b==D.Pb;if(!(0!=d.index&&d.index!=Dy||g||h)){if(f==e)return[a,b];f++}}}function rK(){for(var a=c(-1),b=0,d=null,e=0;e<D.D;e++)for(var f=0;f<D.B;f++){var g=f,h=e;D.Ah&1&&(g=D.B-1-f,h=D.D-1-e);g=D.C[h][g];nk(g)&&(!nk(g)||.1>g.F?0:T(g).type!=Vi)&&(h=T(g).V.g,h.da(a)||h.dc(a)&&g.F>b)&&(a=h,b=g.F,d=g)}return d}function XJ(a,b){b=b||D;return a-b.Ub-b.$d-b.ee}function IG(a){return(a||D).Ef?86400:0}
function sK(a,b){var d=b||D;if(d.mc)return d.Eg;a=XJ(a,b);if(isNaN(a)||Infinity==a||-Infinity==a)return 0;a=Math.floor(a/86400)%4;0>a&&(a=4+a);return a}function eB(a,b){return sK(a+IG(b),b)}function Oj(){return D.challenge==fk?5:eB(D.time)}function HG(){var a=XJ(D.time);a/=86400;a-=Math.floor(a);return 86400-86400*a}
function tK(a,b){this.x=a;this.y=b;this.va=new c;this.Yi=c(0);this.zh=0;this.Ei=c(1);this.og=0;this.jd=new R;this.Ce=new R;this.Tc=new R;this.He=new R;this.ff=new R;this.ni=new R;this.Hb=new R;this.Uc=new R;this.zf=new R;this.dl=this.lk=void 0;this.Mg=[];this.Ed=[];this.mg=new c;this.Zb=0;this.Gg=this.Nd=void 0;this.Dj=function(){if(void 0==this.Nd){this.Nd=[];var d=D.C[this.y][this.x],e=Gy(d);if(e&&(this.Ij?e.Eb(d,0,this.Nd):this.pi?ok(e,d,0,this.Nd):this.Sk&&Nl(e,d,0,this.Nd),this.je)){d=this.je[1];
e=this.je[2];var f=this.je[3];this.je[0]?this.Nd.push(['<span class="efWatercressHighlight">copying neighbors ('+d+")</span>",!1,e,f.clone()]):D.i[Io].count&&this.Nd.push(["no neighbors, not copying",!1,e,f.clone()])}}return this.Nd};this.Rk=function(){if(void 0==this.Gg){this.Gg=[];var d=D.C[this.y][this.x],e=Gy(d);e&&this.Jj&&pl(e,d,this.Gg,this.Cj())}return this.Gg};this.Jj=this.pi=this.Ij=!1;this.je=void 0;this.Qj=-1;this.ci=this.Cc=!1;this.Vj=this.oc=this.Sh=0;this.Cj=function(){return this.oc&
1?S:this.oc&2?Si:this.oc&4?cj:S};this.reset=function(){this.va.reset();this.Yi.reset();this.zh=0;this.Ei=c(1);this.og=0;this.jd.reset();this.Ce.reset();this.Tc.reset();this.He.reset();this.ff.reset();this.ni.reset();this.Hb.reset();this.Uc.reset();this.zf.reset();this.Mg=[];this.Ed=[];this.mg.reset();this.Zb=0;this.Gg=this.Nd=void 0;this.Jj=this.pi=this.Ij=!1;this.je=void 0;this.Qj=-1;this.ci=this.Cc=!1;this.Vj=this.oc=this.Sh=0}}var bk=[];
function uK(a,b){var d=b||0;b=D.B;for(var e=D.D,f=0;f<e;f++){a[f]||(a[f]=[]);for(var g=0;g<b;g++)a[f][g]?a[f][g].reset():a[f][g]=new tK(g,f)}D.gd=0;D.Ph=c(0);if(D.challenge==kj){for(f=0;f<e;f++)for(g=0;g<b;g++){var h=D.C[f][g];var k=Gy(h);if(k&&k.index==Pl&&sk(h)){var l=a[f][g],n=Nl(k,h,d);l.va=c(n);for(var p=0;4>p;p++){var m=g+(1==p?1:3==p?-1:0),x=f+(2==p?1:0==p?-1:0);if(!(0>m||m>=b||0>x||x>=e)){var t=D.C[x][m],y=Gy(t);y&&y.index==Ql&&sk(t)&&l.va.v(n.Ia(Nl(y,t,d)))}}}}for(f=0;f<e;f++)for(g=0;g<b;g++)if(h=
D.C[f][g],(k=Gy(h))&&k.index==Ol){l=a[f][g];n=Nl(k,h,d);sk(h)&&(l.va=c(n));for(p=0;4>p;p++)m=g+(1==p?1:3==p?-1:0),x=f+(2==p?1:0==p?-1:0),0>m||m>=b||0>x||x>=e||(t=D.C[x][m],y=Gy(t),m=a[x][m],y&&y.index==Pl&&sk(t)&&sk(h)&&l.va.v(n.Ia(m.va)),y&&y.index==In&&sk(t)&&(l.ci=!0));l.ci&&sk(h)&&D.Ph.v(l.va)}}for(f=0;f<e;f++)for(g=0;g<b;g++)if(h=D.C[f][g],h.index==Oq||h.index==Pq)for(p=0;8>p;p++)m=h.x+(1==p||4==p||5==p?1:3==p||6==p||7==p?-1:0),x=h.y+(0==p||4==p||7==p?-1:2==p||5==p||6==p?1:0),0>m||m>=b||0>x||
x>=e||4<=p&&!Ml(g,f,m,x,D.C)||(t=D.C[x][m],t.index==rl&&(t=sl(t),m=t.x,x=t.y),!(k=T(t))||(k.type==Yi?!D.K[mt].count:oj()||!D.K[bt].count)&&4<=p||(m=a[x][m],m.Cc=!0));var u=(D.challenge==Ll?0:0==Oj())?8:4,v=!1;for(f=0;f<e;f++)for(g=0;g<b;g++)if(h=D.C[f][g],k=Gy(h))l=a[f][g],k.type==Ui&&(l.va=ok(k,h,d),l.pi=!0),k.type==Zi&&(l.va=Nl(k,h,d),l.Sk=!0),k.type==dj&&(v=!0);for(f=0;f<e;f++)for(g=0;g<b;g++)if(h=D.C[f][g],k=Gy(h))if(l=a[f][g],k.type==Ti||k.type==S||k.type==dj||k.type==Si)for(h=Wk(h,!1),p=0;p<
h.length;p++)m=g+h[p][0],x=f+h[p][1],0>m||m>=b||0>x||x>=e||(t=D.C[x][m],(y=Gy(t))&&y.type==Ui&&(k.type!=Si&&(m=a[x][m],n=m.va,l.Ei.Tb(n.L(1))),l.og++));for(f=0;f<e;f++)for(g=0;g<b;g++)if(h=D.C[f][g],k=Gy(h))if(l=a[f][g],k.type==Ti)for(p=0;p<u;p++)m=g+(1==p||4==p||5==p?1:3==p||6==p||7==p?-1:0),x=f+(0==p||4==p||7==p?-1:2==p||5==p||6==p?1:0),0>m||m>=b||0>x||x>=e||4<=p&&!Ml(g,f,m,x,D.C)||(t=D.C[x][m],(y=Gy(t))&&y.type==Zi&&(m=a[x][m],l.Yi.v(m.va),l.zh++));for(f=0;f<e;f++)for(g=0;g<b;g++)if(h=D.C[f][g],
k=Gy(h))l=a[f][g],k.type==Ti&&(l.va=ok(k,h,d),l.pi=!0),k.type==Zi&&(l.va=Nl(k,h,d),l.Sk=!0),k.type==Yi&&l.Cc&&D.gd++;for(f=0;f<e;f++)for(g=0;g<b;g++)if(l=a[f][g],h=D.C[f][g],(k=Gy(h))&&k.type==Vi)for(k=pl(k,h,null,S),h=xv()?8:4,p=0;p<h;p++)if(m=g+(1==p||4==p||5==p?1:3==p||6==p||7==p?-1:0),x=f+(0==p||4==p||7==p?-1:2==p||5==p||6==p?1:0),!(0>m||m>=b||0>x||x>=e||4<=p&&!Ml(g,f,m,x,D.C))&&(t=D.C[x][m],t.index==rl&&(t=sl(t),m=t.x,x=t.y),m=a[x][m],m.Vj++,m.mg.v(k),y=T(t))){if(y.type==S||y.type==dj)l.oc|=
1;y.type==Si&&(l.oc|=2);y.type==cj&&(l.oc|=4)}n=!oj()&&D.$[ql].count;if(v)for(D.Qh=R(),D.Rh=R(),D.Zi=!1,f=0;f<e;f++)for(g=0;g<b;g++)h=D.C[f][g],(k=Gy(h))&&k.type==S&&(l=k.Eb(h,3,void 0),l.g.da(D.Qh.g)&&(D.Qh=l,D.Zi=D.U[k.index].sa),l=k.Eb(h,4,void 0),l.g.da(D.Rh.g)&&(D.Rh=l));for(f=0;f<e;f++)for(g=0;g<b;g++)h=D.C[f][g],(k=Gy(h))&&k.type!=Ti&&k.type!=Ui&&k.type!=Zi&&(l=a[f][g],m=k.Eb(h,d),ub(m.g,0)&&(n||m.g.u(l.mg.L(1)),l.He.g=m.g.Rc()),l.Ij=!0,l.jd=m,l.Ce=R(m),l.Tc=R(m));for(f=0;f<e;f++)for(g=0;g<
b;g++)if(h=D.C[f][g],(k=Gy(h))&&(k.type==S||k.type==dj||k.type==Si))for(l=a[f][g],h=Wk(h,!1),p=0;p<h.length;p++)if(m=g+h[p][0],x=f+h[p][1],!(0>m||m>=b||0>x||x>=e)&&(t=D.C[x][m],t.index==rl&&(t=sl(t),m=t.x,x=t.y),y=Gy(t)))m=a[x][m],k.type!=S&&k.type!=dj||y.type!=Si||l.Mg.push(m),k.type!=Si||y.type!=S&&y.type!=dj||l.Ed.push(m);for(p=0;4>p;p++){t=4==p+1;y=!1;for(x=0;x<e;x++)for(d=0;d<b;d++)if(f=x,g=d,p&1&&(f=e-x-1,g=b-d-1),h=D.C[f][g],(k=Gy(h))&&k.type==Si){l=a[f][g];if(0==p){f=[];for(g=0;g<l.Ed.length;g++)m=
l.Ed[g],1<m.Mg.length?f.push(m):(k=l.He.g.sub(l.ff.g),h=m.Tc.g,v=sb(k,h),l.ni.g.v(h),v.gf(0)&&(y=!0,l.ff.g.v(v),m.Tc.g.oa(v)));l.Ed=f}if(0!=l.Ed.length)for(k=l.He.g.sub(l.ff.g).cc(l.Ed.length),g=0;g<l.Ed.length;g++)m=l.Ed[g],m.Qj!=p&&(m.Hb=R(m.Tc),m.Qj=p),h=m.Hb.g.cc(m.Mg.length),t&&(k=l.He.g.sub(l.ff.g),h=m.Tc.g),v=sb(k,h),pb(k,0)&&l.ni.g.v(h),v.da(m.Tc.g)&&v.la(m.Tc.g.o(1.01))&&(v=m.Tc.g),v.gf(0)&&(y=!0,l.ff.g.v(v),m.Tc.g.oa(v))}if(!y)break}for(f=0;f<e;f++)for(g=0;g<b;g++)if(h=D.C[f][g],k=Gy(h))l=
a[f][g],l.Hb=new R(l.Tc),l.Uc=new R(l.jd),l.zf=new R(l.jd),k.type!=Si||tb(l.He.g,0)||(m=l.ff.g.a(l.He.g),l.Hb.A.u(m),l.Hb.g=c(0),l.Uc.A.u(m),l.Uc.g.u(m));d=new R;for(f=0;f<e;f++)for(g=0;g<b;g++)if(h=D.C[f][g],l=a[f][g],(k=Gy(h))&&k.type==Vi){v=l.oc&1?pl(k,h,null,S):c(0);u=l.oc&2?pl(k,h,null,Si):c(0);var w=l.oc&4?pl(k,h,null,cj):c(0);l=a[f][g];d.reset();var q=0;h=xv()?8:4;for(p=0;p<h;p++)if(m=g+(1==p||4==p||5==p?1:3==p||6==p||7==p?-1:0),x=f+(0==p||4==p||7==p?-1:2==p||5==p||6==p?1:0),!(0>m||m>=b||0>
x||x>=e||4<=p&&!Ml(g,f,m,x,D.C))&&(t=D.C[x][m],t.index==rl&&(t=sl(t),m=t.x,x=t.y),y=Gy(t)))if(m=a[x][m],y.type==S||y.type==dj||y.type==Si||y.type==cj)k=y.type==cj?w:y.type==S||y.type==dj?v:u,t=m.Hb.Ia(k),y=m.Uc.Ia(k),x=m.zf.Ia(k),x.g=m.Hb.g.Ia(k),ub(t.g,0)&&(t.g=new c(0)),n&&ub(y.g,0)&&(y.g=new c(0)),ub(x.g,0)&&(x.g=new c(0)),l.Hb.v(t),l.Uc.v(y),l.zf.v(x),l.Ce.v(x),d.v(x),q++;d.empty()?l.je=[!1,q,d,l.Uc]:(l.Jj=!0,l.je=[!0,q,d,l.Uc])}d=0<tj(Zl);n=3==Oj();v=!!oj()&&4>D.Kb[S];w=!v;q=u=!1;var F=D.Kb[Ti];
l=D.eb[cn+F%hj[Ti]];if(2==l||6==l)q=!0;if(3==l||7==l)u=!0;q&&(w=!1);for(f=0;f<e;f++)for(g=0;g<b;g++)if(h=D.C[f][g],k=T(h)){l=a[f][g];var B=0,K=1,N=1,O=!1;h=Wk(h,xv());for(p=0;p<h.length;p++){m=g+h[p][0];x=f+h[p][1];var W=h[p][2];0>m||m>=b||0>x||x>=e||(t=D.C[x][m],t.index==rl&&(t=sl(t),m=t.x,x=t.y),y=T(t),!y||v&&!Ej(y)||W&&y.type!=Vi||(m=a[x][m],k.type!=S&&k.type!=dj))||(y.type==Ti&&(B+=1+l.zh-l.og,y.l==F&&l.Sh++),y.type==Vi&&(K*=(4<D.eb[ln]?1.5:2.5)*(d?3:1)),y.type==Ui&&(N*=.25),w||y.type!=Si||(K*=
2,q&&m.og&&m.Vj&&(O=!0)))}O&&!l.Sh&&(K*=8);if(k.type==S||k.type==dj)n&&!l.Cc&&(N*=.5),l.Zb=(1+B)*K*N}for(f=0;f<e;f++)for(g=0;g<b;g++)if(h=D.C[f][g],k=T(h)){l=a[f][g];w=B=0;N=K=1;h=Wk(h,xv());for(p=0;p<h.length;p++)m=g+h[p][0],x=f+h[p][1],W=h[p][2],0>m||m>=b||0>x||x>=e||(t=D.C[x][m],t.index==rl&&(t=sl(t),m=t.x,x=t.y),y=T(t),!y||v&&!Ej(y)||W&&y.type!=Vi||(m=a[x][m],k.type==Si&&(y.type==Ti&&(B+=1+l.zh),y.type==Vi&&(K*=(4<D.eb[ln]?1.25:2)*(d?3:1)),y.type==Ui&&K++,y.type!=S&&y.type!=dj||!m.Sh||w++)));
k.type==Si&&(n&&!l.Cc&&(N*=.5),l.Zb=(1+B)*K*(w?1:0)*N)}for(f=0;f<e;f++)for(g=0;g<b;g++)if(h=D.C[f][g],k=T(h)){l=a[f][g];w=0;N=K=1;for(p=0;4>p;p++)if(m=g+(1==p?1:3==p?-1:0),x=f+(2==p?1:0==p?-1:0),!(0>m||m>=b||0>x||x>=e)&&(t=D.C[x][m],t.index==rl&&(t=sl(t),m=t.x,x=t.y),y=T(t)))m=a[x][m],k.type==Ti&&(y.type==Zi&&K++,y.type==Ui&&(N*=.5),y.type==S&&(w+=u?.5*m.Zb:m.Zb),y.type==dj&&(w+=u?.75*m.Zb:1.5*m.Zb),y.type==Si&&(w+=u?m.Zb:.5*m.Zb),y.type==cj&&(w+=.65)),k.type==Ui&&(y.type==Si&&w++,y.type!=S&&y.type!=
dj||w--,y.type==cj&&w--,y.type==Ti&&w--),k.type==Zi&&(y.type==Ti&&w++,y.type==Ui&&(N*=.5));k.type==Ti&&(n&&!l.Cc&&(N*=.5),l.Zb=K*N*w);k.type==Ui&&(n&&!l.Cc&&(N*=.5),l.Zb=w);k.type==Zi&&(n&&!l.Cc&&(N*=.5),l.Zb=N*w)}if(D.challenge==$l)for(f=0;f<e;f++)for(g=0;g<b;g++)l=a[f][g],h=D.C[f][g],(k=T(h))&&k.type!=Vi&&(l.lk=l.Uc,l.dl=l.jd,m=new R,l.jd=m,l.Ce=m,l.Tc=m,l.Hb=m,l.Uc=m,l.zf=m);for(f=0;f<e;f++)for(g=0;g<b;g++)l=a[f][g],l.Ed=[],l.Mg=[]}
function gB(){var a=D.B,b=D.D;bk&&bk[0]&&bk.length==b&&bk[0].length==a||(bk=[]);uK(bk,0)}function iK(a,b){return(a%16777216^b%16777216)+16777216*(Math.floor(a/16777216)^Math.floor(b/16777216))}function vK(a){var b=a%16777216;return((3454577*Math.floor(a/16777216)+9*b)%16777216*16777216+3454577*b)%281474976710656}function jK(a){if(0>a||281474976710656<=a)a=0;var b=vK(a);b=iK(b,0x650e124ef1c7);b=vK(b);a++;return[a,b/281474976710656]}
function wK(a){0>D.pe&&(D.pe=Math.floor(281474976710656*Math.random()));if(void 0!=a)return a=jK(D.pe+a),a[1];a=jK(D.pe);D.pe=a[0];return a[1]}function xK(){0>D.Be&&(D.Be=Math.floor(281474976710656*Math.random()));var a=jK(D.Be);D.Be=a[0];return a[1]}function yK(){0>D.uc&&(D.uc=Math.floor(281474976710656*Math.random()));var a=jK(D.uc);D.uc=a[0];return a[1]}
function zK(a,b){for(var d=[];;){var e=yK(),f=yK(),g=yK(),h=[yK(),yK(),yK(),yK(),yK()],k=[yK(),yK(),yK(),yK(),yK()],l=Zt(f,a,D.$[kv].count||D.$[Fv].count);f=new eu;f.l=l;var n=$t(l),p=[yk,Ak,Bk,yl,Zl,Ij,uj,zl];5<=l&&(p.push(Gt),p.push(Ht),p.push(Ck),p.push(Sl));7<=l&&(p.splice(p.indexOf(Bk),1),p.push(Al),p.push(It),p.push(Dk));for(l=0;l<n;l++){var m=Math.floor(h[l]*p.length),x=p[m];p.splice(m,1);m=1+Math.floor(4*k[l]);f.H.push(x);f.wa.push(m);f.Ha.push(0)}if(4<=D.vc){h=.75;if(D.$[lv].count||D.$[Gv].count)h=
.666;g>h&&(g=Oj(),0<=g&&3>=g&&(f.type=1+g))}1==f.type&&(f.H.push(Jt),f.wa.push(1));2==f.type&&(f.H.push(Kt),f.wa.push(1));3==f.type&&(f.H.push(Lt),f.wa.push(1));4==f.type&&(f.H.push(Mt),f.wa.push(1));for(l=0;l<f.wa.length;l++)f.Bc[l]=f.wa[l];g=D.$b;1<=f.type&&4>=f.type&&(D.$b|=1<<f.type-1);h=D.$b;!g&&h&&(QH("You got a seasonal fruit for the first time! One extra fruit storage slot added to cope with the variety."),D.ya++);15!=(g&15)&&15==(h&15)&&(QH("You've seen all 4 possible seasonal fruits! One extra fruit storage slot added to cope with the variety."),
D.ya++);g=-1;for(h=0;h<D.Y.length;h++)(k=D.Y[h])&&(g=Math.max(g,k.l));if(f.l>g)g=2;else if(f.l<g)g=0;else{p=n=0;l=0<f.type;for(h=0;h<D.Y.length;h++)if(k=D.Y[h]){k.l==g?n++:k.l+1==g&&p++;if(x=l&&k.l==g)x=f.type,x=k.type==x||9==k.type||10==k.type?!0:5==k.type?1==x||2==x:6==k.type?2==x||3==x:7==k.type?3==x||4==x:8==k.type?4==x||1==x:!1;x&&(l=!1)}g=l?2:n<p?1:0}g&&(D.Xe=!1);h=!iz();0==D.Y.length?lz(D.Y.length,f):D.ig&&g&&D.Y.length<D.ya&&(!h||D.Y.length+1!=D.ya)?(lz(D.Y.length,f),h&&(D.Ua++,D.Ua>=AC()&&
(D.Ua=-1))):lz(100+D.ca.length,f);D.Jf++;D.vc++;d.push(f);f=0;D.$[mv].count&&(f=.25);D.$[Fv].count&&(f+=.125);D.$[Gv].count&&(f+=.125);if(!(f&&!b&&1==d.length&&e<f))break}return d}function ct(a){var b=D.ba[a];b.f||(X('Ethereal crop available: "'+Kq[a].name+'"',ZF,494369596),b.f=!0)}function AK(a){var b=D.Aa[a];b.f||(X('Infinity crop available: "'+mw[a].name+'"',ZF,494369596),b.f=!0)}
function BK(){if(!eD)for(var a=0;a<Fo.length;a++){var b=Fo[a],d=b.index,e=D.i[d];!b.Bd||!e.f||0!=b.jb&&e.count>=b.jb||(e=0,2==D.Hc[a]&&(e=1),3==D.Hc[a]&&(e=2),d==wk&&1==e&&D.challenge&&!qp[D.challenge].Fc&&(e=2),0<e&&(X("Automaton auto chose: "+ma(b.name)+": "+ma(1==e?b.Rd:b.Sd),mq,101550953),Z({type:$G,Za:b.index,shift:!1,ra:!0,Rf:e})))}}
function iD(a){if(0==a.type&&D.j>=a.level)return!0;if(1==a.type||2==a.type||3==a.type||5==a.type){if(0==a.W)return!1;var b=vl[a.W-1],d=D.U[a.W-1];if(!b||!d)return!1;d=d.f&&d.sa>=a.sa;if(!d)return!1;if(1==a.type&&d||2==a.type&&0<D.eb[b.index]||3==a.type&&0<D.Ga[b.index]||5==a.type&&b.Ma&&D.i[b.Ma].count||(2==a.type||3==a.type||5==a.type)&&D.Kb[b.type]>b.l)return!0}return 4==a.type&&D.pa>=a.time?!0:!1}var CK=5;
function DK(a,b){a=D.xa[a];var d=!1;if(1==b){a.Tf&&Fz()&&(rC(!1,!1,!0),d=!0);if(a.Vd){var e=D.Jc[a.ac];e&&(VI(e,!0,!0),d=!0)}a.ne&&(Z({type:BC,slot:a.wd}),d=!0);a.Vf&&Fz()&&(Z({type:oC,Je:a.Ie,ra:!0}),d=!0)}2==b&&a.Uf&&Fz()&&(D.Da&&Z({type:OC,x:D.ab,y:D.bb,ra:!0}),d=!0);return d}
function EK(){if(!nD){1!=Cz()||D.xa[0].enabled||(D.xa[0].enabled=!0);for(var a=!1,b=0;b<D.xa.length;b++){var d=D.xa[b];if((!d.done||!d.Mc)&&d.enabled){var e=iD(d),f=d.done&&!d.Mc&&D.pa>=d.ge;e&&!d.Vd&&(f=!0);!d.done&&e&&(Z({type:mK,Il:b}),d.done=!0,d.Mc=!1,d.ge=D.pa+CK,a|=DK(b,1));!d.Mc&&f&&(Z({type:nK}),d.Mc=!0,d.ge=0,a|=DK(b,2));if(a)break}}}}var pK=!0;
function CC(a){Bz()&&(2==oj()?X("Auto actions are disabled during the truly basic challenge.",Qv,0,0):(DK(a,1)?(pK=!0,window.setTimeout(function(){pK&&(Z({type:nK}),DK(a,2))},1E3*CK)):DK(a,2),OB()))}var FK=void 0;function GK(a,b){var d=a[0];yz()&&void 0!=b&&(d=b==S?a[3]:b==Si?a[4]:b==Ti?a[5]:b==Ui?a[6]:b==Zi?a[7]:b==Vi?a[2]:b==Yi?a[8]:b==cj?a[9]:a[1]);return d}
function HK(a,b){b=a.cc(b);a=0;b.da(D.b)&&(b=b.sub(D.b),a=-Infinity,pb(b.g,0)&&(a=Math.max(a,b.g.a(qb.g).valueOf())),pb(b.A,0)&&(a=Math.max(a,b.A.a(qb.A).valueOf())),-Infinity==a&&(a=Infinity),isNaN(a)&&(a=Infinity));return a}
function IK(){FK=void 0;if(!D.b.g.ze(3E3))for(var a=0;a<$n.length;a++){var b=Fj[$n[a]],d=D.i[$n[a]];if(b.sh&&d.f&&!(0!=b.jb&&d.count>=b.jb||void 0==b.Fa||!D.eb[b.Fa]||vl[b.Fa].l<D.hf[vl[b.Fa].type])){d=GK(D.$c,vl[b.Fa].type);var e=b.O();d=HK(e,d);Infinity!=d&&(void 0==FK||d<FK.time)&&(FK={index:b.index,time:d})}}}
function JK(a){if(FK){for(var b=Fj[FK.index],d=GK(D.$c,vl[b.Fa].type),e=0;;){var f=Ii(a,D.b.o(d)),g=b.O(e);if(g.da(f))break;if(xh(g.g)||xh(g.A)||xh(g.c)||xh(g.G)||xh(g.S)||xh(g.R)||xh(g.ma)||xh(g.Z)){e--;break}if(100<e)break;e++;a.oa(g)}0<e&&Z({type:$G,Za:b.index,shift:!1,ra:!0,aa:e})}}function KK(a,b){b=void 0==b?D.Ai[a]+1:b+1;if(0>b||Infinity==b)return null;b<D.wh[a]&&(b=D.wh[a]);return(a=em[a][b])&&D.U[a.index].f?a:null}var LK=void 0;
function MK(){LK=void 0;if(D.challenge!=Sj)for(var a=[bj,Vi,Yi,S,Si,Ti,Zi,Ui,cj,dj],b=0;b<a.length;b++){var d=a[b],e=KK(d);if(e){if(d==cj&&0==e.l&&0<D.me[cj]-0&&(e=KK(d,D.hf[d]),!e))continue;if(d!=dj||!D.eb[Zn]){var f=GK(D.Cb,e.type);if(0!=f){var g=e.O();0==D.sd&&0<f&&(d==Vi||d==S)&&(f=1);f=HK(g,f);if(Infinity!=f)for(g=0;g<D.D;g++)for(var h=0;h<D.B;h++){var k=D.C[g][h];if(Xk(k)&&(k=T(k),!(k.Ab||k.type!=d||k.l>=e.l||d==cj&&0<D.me[cj]-(Ej(k)?1:0)))){if(void 0==LK||f<LK.time)LK={index:e.index,x:h,y:g,
time:f};g=D.D;break}}}}}}}
function NK(a){if(!LK)return!1;var b=vl[LK.index],d=LK.x,e=LK.y,f=GK(D.Cb,b.type),g=b.type;0==D.sd&&0<f&&(g==Vi||g==S)&&(f=1);f=Ii(a,D.b.o(f));var h=b.O();if(h.da(f))return!1;a:for(var k=D.Kb[g];;){if(0>k){g=null;break a}var l=em[g][k];if(!l){g=null;break a}if(l.O().Xa(f)){g=l;break a}k--}g&&g.O().Xa(f)&&(b=g,h=b.O());a.oa(h);a=no(D.C[e][d]);if(!(0>a)){a=vl[a].type;g=bk[e][d].Zb;for(f=0;f<D.D;f++)for(h=0;h<D.B;h++)k=D.C[f][h],Xk(k)&&(k=T(k),k.Ab||k.type!=a||k.l>=b.l||(k=bk[f][h],k.Zb>g&&(g=k.Zb,d=
h,e=f)));Z({type:uC,x:d,y:e,W:b,ra:!0,silent:!0});return!0}}var OK=void 0;function PK(){OK=void 0;for(var a=0;a<$n.length;a++){var b=Fj[$n[a]],d=D.i[$n[a]];if(b.ue&&d.f&&!d.count&&void 0!=b.Fa&&(d=vl[b.Fa],d.type!=dj||D.Vi[dj])){var e=b.O();if(!pb(D.ie,0)||!pb(e.g,D.ie))if(d=HK(e,GK(D.nd?D.Cb:D.Yc,d.type)),Infinity!=d){if(void 0==OK||d<OK.time)OK={index:b.index,time:d};if(b.index==sp&&2>d){OK={index:b.index,time:d};break}}}}}
function QK(a){if(!OK)return!1;var b=Fj[OK.index],d=Ii(a,D.b.o(GK(D.nd?D.Cb:D.Yc,vl[b.Fa].type))),e=b.O();if(e.da(d))return!1;a.oa(e);Z({type:$G,Za:b.index,shift:!1,ra:!0});return!0}var RK=void 0;function SK(){RK=void 0;for(var a=0;a<$n.length;a++){var b=Fj[$n[a]],d=D.i[$n[a]];b.gg&&d.f&&!d.count&&void 0!=b.Fa&&(d=b.O(),pb(D.ie,0)&&pb(d.g,D.ie)||(d=HK(d,GK(D.nd?D.Cb:D.Yc,vl[b.Fa].type)),Infinity!=d&&(void 0==RK||d<RK.time)&&(RK={index:b.index,time:d})))}}
function TK(a){if(!RK)return!1;var b=Fj[RK.index],d=Ii(a,D.b.o(GK(D.nd?D.Cb:D.Yc,vl[b.Fa].type))),e=b.O();if(e.da(d))return!1;a.oa(e);Z({type:$G,Za:b.index,shift:!1,ra:!0});return!0}
function UK(){function a(h){isNaN(h)||(0>h&&(h=0),b=Math.min(b,h))}var b=Infinity;D.mc||a(HG(),"season");D.time-D.kb<mj(180)&&a(mj(180)-D.time+D.kb,"mist");D.time-D.xb<mj(120)&&a(mj(120)-D.time+D.xb,"sun");D.time-D.lb<mj(240)&&a(mj(240)-D.time+D.lb,"rainbow");for(var d=0;d<D.D;d++)for(var e=0;e<D.B;e++){var f=D.C[d][e],g=T(f);if(g&&Ej(g))if(g.type==Vi)g.index==mn&&0!=D.i[Hj].count&&0==f.F||a(g.za()*f.F,"brassica");else{if(D.challenge==Rj)return a(2,"wither"),b;1>f.F&&a(2,"growth")}}for(d=0;d<D.ea;d++)for(e=
0;e<D.fa;e++)f=D.ka[d][e],(g=T(f))&&1>f.F&&a(g.za()*(1-f.F),"growing2");if(qx())for(d=0;d<D.Ka;d++)for(e=0;e<D.La;e++)f=D.ta[d][e],(g=Gy(f))&&(g.type==Vi?0!=f.F&&a(g.za()*f.F,"brassica"):1>f.F&&a(g.za()*(1-f.F),"growing3"));d=ju().A.sub(D.b.A).a(qb.A).valueOf();a(d,"tree");xz()&&FK&&a(FK.time,"auto-upgrade");zz()&&LK&&a(LK.time,"auto-plant");Az()&&OK&&a(OK.time,"auto-unlock");Gz()&&RK&&a(RK.time,"auto-prestige");D.$[jl].count&&(d=Rv(),d<ll&&a(120,"time at tree level"));0==D.Da&&(d=D.Vb-D.time+Ou(),
a(d,"fern"));1==D.Da&&1==D.i[$p].count&&(d=D.Pc-D.time+Math.max(600,1.5*Ou()),e=D.Vb-D.time+3*Math.max(600,1.5*Ou()),d=Math.max(d,e),a(d,"fern2"));D.challenge==bl&&0<D.Ah&&a(Math.max(0,120-(D.time-D.nf)),"storm");if(Dz())for(d=0;d<D.xa.length;d++)if(e=D.xa[d],e.enabled&&!e.done){if(4==e.type){if(60>e.time-D.pa)continue;a(e.time-D.pa,"auto-action")}!e.done||e.Mc||60>e.ge-D.pa||a(e.ge-D.pa,"auto-action2")}return 0>b||isNaN(b)?0:b}function Z(a){D.paused||kK.push(a)}
function VK(){var a=c(0);if(1<D.ha&&(9<=D.j||0==D.j)){var b=D.time-D.Qc,d=3600;300<=b?d=1800:240<=b?d=2E3:180<=b?d=2200:120<=b?d=2400:60<=b?d=2600:30<=b&&(d=3E3);D.time-D.ye>=d&&(a=1,7200<=b?a=3:5400<=b?a=2.5:3600<=b?a=2:1800<=b&&(a=1.5),D.ye=D.time,D.fj++,a=c(a));a.T(0)&&X("the tree dropped "+a.toString()+" amber",bG,1046741287)}a.T(0)&&tb(D.qa.ma,0)&&lq(36);return a}function BG(a){var b=[];uK(b,a);a=R();for(var d=0;d<D.D;d++)for(var e=0;e<D.B;e++)nk(D.C[d][e])&&a.v(b[d][e].Hb);return a}
function YD(){var a=D.Gb;2==a&&D.b.A.ze(0)&&(a=1);4==a&&D.qa.S.ze(0)&&(a=1);6==a&&0>=D.vc&&(a=3);7==a&&D.qa.ma.ze(0)&&(a=1);oj()&&(3==a&&(a=1),5==a&&(a=D.b.A.ze(0)?1:2));return a}var WK=[];function xD(a){50<WK.length||WK.push(a)}var $J=void 0,YJ=void 0,ZJ=void 0,XK=0,YK=0,ZK=0,PJ=!1,OJ=!1,aK=0,bK=R(),dK=0,cK=0,$K=!1,NJ=-1,QI=!1;
function OB(a){QI=!0;var b=D.paused&&!a,d=cz!=NJ||b!=$K;$K=b;NJ=cz;var e=!1;bk&&bk.length||(!b||d)&&gB();if(b){var f=r.getTime()-D.ua;D.Te+=f;D.$d+=f;D.ua=D.time=r.getTime();D.kb+=f;D.xb+=f;D.lb+=f;D.Vb+=f;D.Pc+=f;D.Wi+=f;D.Qc+=f;D.lg+=f;D.ye+=f;D.jg+=f;D.kg+=f;D.nf+=f;D.mf+=f;D.Bf+=f;d&&QJ()}else{$K=b;var g=OJ,h=!1,k=void 0;0<kK.length&&10<r.getTime()-LB&&(k=r.clone(D));var l=!1,n=!1;0==D.ua?D.ua=r.getTime():(D.Vb>D.ua&&(D.Vb=D.ua),D.Pc>D.ua&&(D.Pc=D.ua),D.kb>D.ua&&(D.kb=0),D.xb>D.ua&&(D.xb=0),D.lb>
D.ua&&(D.lb=0),D.Qc>D.ua&&(D.Qc=D.ua),D.ye>D.ua&&(D.ye=D.ua));for(var p=!1,m=0,x=0,t=R(D.b),y=D.ua,u=void 0,v=!1,w=0,q=!1;!(v||500<w++);){var F=R(D.b),B=!1,K=!1;Az()&&(PK(),K|=QK(F));Gz()&&(SK(),K|=TK(F));zz()&&(MK(),B=NK(F));vz()&&wz()&&D.md&&BK();xz()&&(IK(),B||K||JK(F));Dz()&&EK();fK();var N=r.getTime();if(0==D.ua)f=0;else if(D.ua>N){var O=D.ua-N;D.ec+=O;D.Ti+=O;D.Di=Math.max(D.Di,O);D.Rj=O;D.Wj++;f=0}else if(f=N-D.ua,3E3<f&&0<D.ec){var W=Math.min(D.ec,f);f-=W;D.ec-=W;p=!0}var U=2<f,V=0;if(U){V=
UK()+1;var I=10<V;I&&!q&&(V=2);q=I;20<w&&2>V&&(V=2);50<w&&5>V&&(V=5);200<w&&10>V&&(V=10)}else q=!1;U&&0<kK.length&&.1<V&&(V=.1);f>V&&U?(f=V,N=D.ua+f,v=!1):v=!0;if(0>f||isNaN(f))console.log("invalid delta time"),N=r.getTime(),f=N-D.ua;D.time=D.ua;D.ua=N;var ra=D.challenge==fk?5:eB(D.time),Na=ra!=(D.challenge==fk?5:eB(N));D.yb&&Na&&(Na=!1,D.mc=!0);ra!=$J&&void 0!=$J&&m++;$J=ra;var rc=eB(D.time),ye=rc!=eB(N);rc!=ZJ&&void 0!=ZJ&&x++;ZJ=rc;D.Ef&&(sK(D.time)!=sK(D.ua)||ye)&&(D.Ef=0);D.se+=f;D.pa+=f;for(var Tb=
new R,Jc=!1,Jd=!1,va=1<N-D.time;kK.length;){var E=kK[0];kK.shift();var P=E.type;if(P==mK){if(10<D.pa){l=!0;k||(k=r.clone(D));var fa=k.xa[E.Il];fa.done=!0;fa.Mc=!0}}else if(P==nK)n=!0;else if(P==$G){if(!va||E.ra){if(D.Dc)for(var Q=0;Q<$n.length;Q++){var M=D.i[$n[Q]];M.f&&!M.na&&(M.na=!0)}M=Fj[E.Za];for(var Y=E.shift&&1!=M.jb,Ca=E.aa?E.aa:1,Ha=0,Oh=R(D.b);;){var oa=M.O();if(D.challenge==fq&&nq(M))break;else if(D.b.la(oa)){Y&&0<Ha||X("not enough resources for upgrade: have "+Gi(oa).toString()+", need "+
oa.toString()+" ("+ob(oa)+")",Qv,0,0);break}else if(M.le()){D.b.oa(oa);M.Qa(E.Rf);Ha++;var lc="upgraded: "+M.xd()+", consumed: "+oa.toString();M.Bd&&(lc+=". Chosen: "+(1==D.i[M.index].count?M.Rd:M.Sd));M.ue&&(oa=vl[M.Fa].O(),lc+=". Planting cost: "+oa.toString()+" ("+ob(oa)+")");Y||E.ra||X(lc);E.ra||(l=!0);M.ue&&!E.ra&&(D.Va=M.Fa);D.Mf++;D.kh++;E.ra&&(D.rd++,D.oj++);M.gg&&(D.Kg++,D.ih++,E.ra&&(D.Th++,D.mj++))}else{Y&&0<Ha||X("this upgrade is not currently available",Qv,0,0);break}if(!Y&&Ha>=Ca)break;
if(M.fg())break;if(1E3<Ha)break}if(Y&&Ha&&!E.ra){var ze=Oh.sub(D.b);1==Ha?X("upgraded: "+M.xd()+", consumed: "+ze.toString()):X("upgraded "+M.name+" "+Ha+" times to "+M.xd()+", consumed: "+ze.toString())}Ha&&(E.Za==Io&&lq(3),E.Za==ho&&lq(19),E.Za==gp&&lq(20),E.Za==tp&&lq(27),E.Za==wl&&lq(21),E.Za==sp&&0<D.ha&&lq(17))}}else if(P==lH)va||(M=Ks[E.Za],oa=M.O(),D.b.la(oa)?X("not enough resources for ethereal upgrade: have "+Gi(oa).toString()+", need "+oa.toString(),Qv,0,0):M.le()?(D.b.oa(oa),M.Qa(),X("Ethereal upgrade applied: "+
M.xd()+", consumed: "+oa.toString()),l=!0,D.lh++):X("this ethereal upgrade is not currently available",Qv,0,0));else if(P==uJ){if(!va){var Cc=fv[D.gb][E.Rb],Qe=D.Ya[E.Rb],Eb=E.s;f=E.d;var ha=!0,Tg=0==Eb?Cc.Hd:1==Eb?Cc.Sb:Cc.K,wf=Hz(E.Rb,Eb,f),Tu=0==wf,wa=2==wf,Ab=1==wf;V=3==wf;Fk()?Tu?(X("Already bought this squirrel upgrade",Qv),ha=!1):0>Eb||2<Eb?(X("Invalid branch",EB),ha=!1):Ab?f>=Tg.length&&(X("Index out of range",EB),ha=!1):(wa?X("Cannot buy this upgrade yet, it is gated: you must buy all squirrel upgrades that come before this, including side branches above, before this one unlocks.",
Qv):X("Not available for buy",Qv),ha=!1):(X("Don't have squirrel",Qv),ha=!1);var sc=Hv(D.hc);ha&&D.b.S.la(sc)&&(ha=!1,X("not enough resources for the next squirrel upgrade: have: "+D.b.S.toString(Math.max(5,Qh))+", need: "+sc.toString(Math.max(5,Qh))+" ("+ob(R({S:sc}))+")",Qv,0,0));if(ha){M=cv[Tg[f]];var ce=D.$[Tg[f]],cE=!1;M.Qa&&(cE=M.Qa());cE||(ce.count++,Qe.aa[Eb]++,Qe.na[Eb]=Math.max(Qe.na[Eb],Qe.aa[Eb]),D.b.S.oa(sc),D.Gf.v(sc),D.ij++,D.hc++,X("Purchased squirrel upgrade: "+M.name+". Next costs: "+
Hv(D.hc).toString()+" nuts"),M.index!=rv&&M.index!=sv&&M.index!=tv||lq(37),l=!0)}}}else if(P==zJ){if(!va&&(ha=!0,Fk()?1>D.Fe&&(X("Cannot respec, no respec token available. It's possible to get one in the amber tab.",Qv,0,0),ha=!1):ha=!1,ha)){D.$=[];for(var ea=0;ea<bv.length;ea++)D.$[bv[ea]]=new Xv;var Mr=[];for(ea=0;ea<fv[D.gb].length;ea++)if(Mr[ea]=new Sy,D.Ya[ea])for(Q=0;Q<Mr[ea].na.length;Q++)Mr[ea].na[Q]=D.Ya[ea].na[Q];D.Ya=Mr;D.bf++;D.b.S.v(D.Gf);D.Gf=c(0);D.Fe--;for(ea=0;ea<D.$.length;ea++)D.$[ea]=
new Xv;X("Reset all squirrel upgrades and gave all nuts back. Consumed 1 squirrel respec token.");l=!0}}else if(P==Sv)va||(Vv(),l=!0);else if(P==rJ){if(!va&&(ha=!0,oa=pJ(E.effect),E.effect==kJ&&(D.he&&(X("Already active.",Qv,0,0),ha=!1),oj()&&(X("This amber effect cannot be used during the basic challenge.",Qv,0,0),ha=!1)),E.effect==lJ&&(D.Kd?(X("Already used this season.",Qv,0,0),ha=!1):D.yb&&(X("This doesn't work when hold season is active.",Qv,0,0),ha=!1)),E.effect==mJ&&(D.Kd?(X("Already used this season.",
Qv,0,0),ha=!1):D.yb&&(X("This doesn't work when hold season is active.",Qv,0,0),ha=!1)),E.effect==nJ&&(D.yb&&(X("Already used this run.",Qv,0,0),ha=!1),D.challenge==fk&&(X("This effect doesn't work during the infernal challenge.",Qv,0,0),ha=!1)),E.effect!=oJ||D.yb||(X("Keep season isn't active.",Qv,0,0),ha=!1),oa=new R({ma:oa}),ha&&D.b.la(oa)&&(ha=!1,X("not enough resources: have: "+Gi(oa).toString(Math.max(5,Qh))+", need: "+oa.toString(Math.max(5,Qh)),Qv,0,0)),ha)){E.effect==jJ&&(D.Fe++,X("One squirrel respec token added, now have: "+
D.Fe,bG,2215651,1));E.effect==kJ&&(D.he=!0,X("Amber production bonus activated for the remainder of this run",bG,2215651,1));E.effect==lJ&&(24<=(HG()+IG())/3600+1&&(D.Ef=1),D.Kd=!0,D.ee+=3600);if(E.effect==mJ){var uL=Math.min(3600,HG()+IG());D.Kd=!0;D.ee-=uL}E.effect==nJ&&(D.Eg=Oj(),D.yb=!0);E.effect==oJ&&WJ()&&(Na=!0,YJ=R(qb));D.b.oa(oa);D.Yg[E.effect]||(D.Yg[E.effect]=0);D.Yg[E.effect]++;l=!0}}else if(P==gJ)va||VI(E.ac,!1);else if(P==tC||P==sC||P==uC){if(!va||E.ra){var H=D.C[E.y][E.x];H.index==
rl&&(H=sl(H),E.x=H.x,E.y=H.y);var vL=H.F,wL=Xk(H)&&T(H).type==Vi;E.ra&&(D.Ek=E.x,D.Fk=E.y,D.Wi=D.time,h=!0);var oc=void 0,dE=!1;if(P==sC||P==uC)if(Xk(H)){var ba=T(H);oc=ba.ub();1>H.F&&ba.type!=Vi&&D.challenge!=Rj&&(oc=ba.O(-1),dE=!0)}else oc=R();(ha=!0,D.challenge==ul)&&Xk(H)&&T(H).index==tl&&(X("Cannot remove thistles during the thistle challenge",Qv,0,0),ha=!1);ha&&D.challenge==ul&&P==tC&&E.W.type==tl&&(X("Cannot plant thistles during the thistle challenge",Qv,0,0),ha=!1);ha&&P==uC&&E.W&&H.index==
oo+E.W.index&&Xk(H)&&T(H).type!=Vi&&(X("Already have this crop here",Qv,0,0),ha=!1);if(ha&&(P==sC||P==uC)){var eE=Xk(H)&&T(H).type==Vi;D.challenge!=Sj||eE||My(H)?D.challenge!=Rj||eE||My(H)||P==uC&&Xk(H)&&E.W.V.da(T(H).V)&&E.W.type==T(H).type||(X("Cannot delete or downgrade crops during the wither challenge, but they'll naturally disappear over time. However, you can replace crops with more expensive crops.",Qv,0,0),ha=!1):(X("Cannot delete or replace crops during the nodelete challenge. Ensure to leave open field spots for higher level plants.",
Qv,0,0),ha=!1)}if(ha&&(P==tC||P==uC)&&(ba=E.W,E.Oa&&ba.Ab&&((ba=vl[Jn[ba.type]])?E.W=ba:ba=E.W),oa=ba.O(),P==uC&&Xk(H)&&(oa=oa.sub(oc)),P!=uC&&Xk(H)?(X("field already has crop",Qv,0,0),ha=!1):0==H.index||H.index==Dy||Xk(H)?!D.U[ba.index].f||ba.Ab?(E.Oa&&(D.Va=-1,X("shift+click, or p, repeats last planted plant, but no last plant is set, plant the regular way first",Qv,0,0)),ha=!1):Di(oa)?ba.index==qn&&D.eb[qn]?(X("already have squirrel, cannot place more",Qv,0,0),ha=!1):ba.type==cj&&Ej(ba)&&0<D.me[cj]-
(P==uC&&nk(H)&&T(H).type==cj?1:0)?(X("you can only plant max 1 nut plant in the field",Qv,0,0),ha=!1):ba.index==Zn&&D.eb[Zn]&&(X("already have a pumpkin, cannot place more",Qv,0,0),ha=!1):(E.silent||X("not enough resources to plant "+ba.name+": have: "+Gi(oa).toString(Math.max(5,Qh))+", need: "+oa.toString(Math.max(5,Qh))+" ("+ob(oa)+")",Qv,0,0),ha=!1):(X("field already has something",Qv,0,0),ha=!1),ba.Yb)){var yw=!0,gd=E.x,hd=E.y;if(gd+1>=D.B||hd+1>=D.D)yw=!1;else{var fE=D.C[hd][gd+1],gE=D.C[hd+
1][gd],hE=D.C[hd+1][gd+1];if(!Ly(fE)&&sl(fE)!=H||!Ly(gE)&&sl(gE)!=H||!Ly(hE)&&sl(hE)!=H)yw=!1}yw||(X("the pumpkin requires a 2x2 open field plot to plant. The pumpkin is planted with the top left corner where you click, and requires a free space to the right, bottom and bottom-right.",Qv,0,0),ha=!1)}if(ha&&(P==sC||P==uC))if(Xk(H)){ba=T(H);Ej(ba)&&((D.challenge==Rj||1>H.F)&&ba.type!=Vi?(!E.silent&&dE&&X("plant was still growing, full refund given",aG,1197352652),D.$f--,D.Kc--):(D.gi++,D.Lf++,E.ra&&
(D.Ig++,D.kj++)));if(ba.Yb)for(var qo=[[0,1],[1,0],[1,1]],gk=0;gk<qo.length;gk++){var Uh=qo[gk];D.C[E.y+Uh[1]][E.x+Uh[0]].index=0;D.C[E.y+Uh[1]][E.x+Uh[0]].F=0}H.index=0;H.F=0;ba.type==Vi?E.silent||X("deleted "+ba.name+". Since this is a short-lived plant, nothing is refunded"):(D.b.v(oc),E.silent||X("deleted "+ba.name+", got back: "+oc.toString()));E.ra||(l=!0);Yv(D)}else H.index==Dy&&(H.index=0,H.F=0);if(ha&&(P==tC||P==uC)){ba=E.W;oa=ba.O();Ej(ba)&&(ba.type==Vi?(D.hh++,D.Ib++):(D.$f++,D.Kc++,E.ra&&
(D.qd++,D.lj++)));D.b.oa(oa);H.index=ba.index+oo;H.F=0;if(ba.Yb)for(qo=[[0,1],[1,0],[1,1]],gk=0;gk<qo.length;gk++)Uh=qo[gk],D.C[E.y+Uh[1]][E.x+Uh[0]].index=rl,D.C[E.y+Uh[1]][E.x+Uh[0]].F=0;ba.type==Vi&&(H.F=P==uC&&E.ra&&wL?vL:1);D.challenge==Rj&&(H.F=1);var iE=ba.O(1);E.silent||X("planted "+ba.name+". Consumed: "+oa.toString()+". Next costs: "+iE+" ("+ob(iE)+")");1>=D.Kc+D.Ib&&Ej(ba)&&5>D.ha&&X("Keep planting more crops on other field cells to get more income",go,28466751);var nb=D.U[ba.index];if(nb){var fm=
nb.sa+1;nb.xe<fm&&(nb.xe=fm)}Yv(D);E.ra||(l=!0)}}}else if(P==XC||P==YC||P==FE){if(!va){H=D.ka[E.y][E.x];oc=void 0;var Nr=P==YC&&Xk(H);P==FE&&Xk(H)&&(ba=T(H),ba.type!=E.W.type?Nr=!0:E.W.l<ba.l&&(Nr=!0));var zw=P==XC;P==FE&&((ba=T(H))&&ba.type==E.W.type?ba&&E.W.l>ba.l&&(zw=!0):zw=!0);var Aw=Nr&&(Xk(H)&&T(H).Nb||1>H.F&&!H.we),jE=-1;if(P==YC||P==FE)Xk(H)?(ba=T(H),oc=ba.ub(),jE=ba.type):oc=R();(ha=!0,P==FE)&&E.W&&H.index==oo+E.W.index&&(X("Already have this crop here",Qv,0,0),ha=!1);if(ha&&(P==YC||P==
FE)){var gm=null;no(H)==or&&(gm=Au().sub(Au(void 0,or)));no(H)==pr&&(gm=Au().sub(Au(void 0,pr)));no(H)==or&&D.b.la(gm)&&(X("cannot delete: must have at least the starter seeds which this crop gave to delete it, they will be forfeited.",Qv,0,0),ha=!1)}if(ha&&(P==XC||P==FE)){ba=E.W;oa=ba.O();P==FE&&Xk(H)&&(oa=oa.sub(oc));if(E.zi&&D.b.la(oa)){var Bw=ba.l,kE=-1;for(P==FE&&Xk(H)&&T(H).type==E.W.type&&(kE=T(H).l+1);;){Bw--;if(Bw<kE)break;nb=dr[ba.type][Bw];if(!Xk(H)||nb.index!=T(H).index){if(!nb)break;
var Or=nb.O();P==FE&&Xk(H)&&(Or=Or.sub(oc));if(Or.Bi(D.b)){ba=nb;E.W=nb;oa=Or;break}}}}P!=FE&&Xk(H)?(X("field already has crop",Qv,0,0),ha=!1):0==H.index||Xk(H)?D.ba[ba.index].f?D.b.la(oa)?(X("not enough resources to plant "+ba.name+": have: "+Gi(oa).toString(Math.max(5,Qh))+", need: "+oa.toString(Math.max(5,Qh)),Qv,0,0),ha=!1):ba.index==Lq&&D.ad[Lq]?(X("already have automaton, cannot place more",Qv,0,0),ha=!1):ba.index==Mq&&D.ad[Mq]?(X("already have squirrel, cannot place more",Qv,0,0),ha=!1):ba.index==
Aq&&D.ad[Aq]&&(X("already have ethereal mistletoe, cannot place more",Qv,0,0),ha=!1):(E.Oa&&(D.Bb=-1,X("shift+click, or p, repeats last planted plant, but no last plant is set, plant the regular way first",Qv,0,0)),ha=!1):(X("field already has something",Qv,0,0),ha=!1)}!ha||P!=YC&&P!=FE||(ba=Kq[no(H)],no(H)==or&&(D.b.oa(gm),D.qa.oa(gm),D.rb.oa(gm)),1>H.F&&D.cf--,Aw||D.jh++,E.silent||X("deleted ethereal "+ba.name+", got back "+oc.toString()),H.index=0,H.F=0,D.b.v(oc),P==YC&&(H.we=!1),Nr&&!Aw&&(D.jg=
D.time),Yv(D),l=!0);if(ha&&(P==XC||P==FE)){ba=E.W;var ro=oa=ba.O();P==FE&&oc&&(ro=oa.sub(oc));E.silent||X("planted ethereal "+ba.name+". Consumed: "+ro+". Next costs: "+ba.O(1));D.cf++;D.b.oa(oa);H.index=ba.index+oo;H.F=0;P==FE?(H.hg|=jE!=E.W.type,H.we|=!Aw):(H.hg=!0,H.we=!1);if(no(H)==or){var Tc=Au(or).sub(Au());D.b.v(Tc);D.qa.v(Tc);D.rb.v(Tc)}no(H)==pr&&(Tc=Au(pr).sub(Au()),D.b.v(Tc),D.qa.v(Tc),D.rb.v(Tc));no(H)==qr&&(Tc=Au(qr).sub(Au()),D.b.v(Tc),D.qa.v(Tc),D.rb.v(Tc));no(H)==rr&&(Tc=Au(rr).sub(Au()),
D.b.v(Tc),D.qa.v(Tc),D.rb.v(Tc));no(H)==sr&&(Tc=Au(sr).sub(Au()),D.b.v(Tc),D.qa.v(Tc),D.rb.v(Tc));!zw||E.W&&E.W.Nb||(D.kg=D.time);Yv(D);l=!0}}}else if(P==wC||P==vC||P==UC){if(!va){H=D.ta[E.y][E.x];oc=void 0;if(P==vC||P==UC)Xk(H)?(ba=T(H),oc=ba.ub(H)):oc=R();(ha=!0,P==UC)&&E.W&&H.index==oo+E.W.index&&Xk(H)&&T(H).type!=Vi&&(X("Already have this crop here",Qv,0,0),ha=!1);!ha||P!=vC&&P!=UC||(Xk(H)||P==vC&&H.index==Dy||(X("no crop to delete here",Qv,0,0),ha=!1),Xk(H)&&0<H.wb&&T(H).type!=Vi&&(T(H).type==
ej?(X("cannot yet delete this runestone, must wait 23 hours after planting, or again after planting crops next to it. Time left: "+r.I(H.wb),Qv,0,0),ha=!1):E.W&&E.W.type==ba.type&&E.W.l>=ba.l||(ha=!1,X("cannot yet delete this crop due to recently placed next to runestone, must wait 23 hours after placing next to runestone, time left: "+r.I(H.wb),Qv,0,0))));P==vC||E.Nl||!E.W||E.W.index!=px||D.Aa[E.W.index].vb||(Cb(function(){E.Nl=!0;Z(E)}),ha=!1);!ha||P!=wC&&P!=UC||((ba=E.W,oa=ba.O(),P==UC&&Xk(H)&&
(oa=oa.sub(oc)),P!=UC&&Xk(H))?(X("field already has crop",Qv,0,0),ha=!1):0==H.index||H.index==Dy||Xk(H)?D.Aa[ba.index].f?D.b.la(oa)&&(X("not enough resources to plant "+ba.name+": have: "+Gi(oa).toString(Math.max(5,Qh))+", need: "+oa.toString(Math.max(5,Qh))+" ("+ob(oa)+")",Qv,0,0),ha=!1):(E.Oa&&(D.sb=-1,X("shift+click, or p, repeats last planted plant, but no last plant is set, plant the regular way first",Qv,0,0)),ha=!1):(X("field already has something",Qv,0,0),ha=!1));!ha||P!=vC&&P!=UC||(Xk(H)?
(ba=mw[no(H)],1>H.F&&D.gh--,D.hi++,E.silent||X("deleted infinity "+ba.name+", got back "+oc.toString()),H.index=0,H.F=0,Yv(D),D.b.v(oc),P==vC&&Yv(D),l=!0):H.index==Dy&&(H.index=0,H.F=0),H.wb=0);if(ha&&(P==wC||P==UC)){ba=E.W;ro=oa=ba.O();P==UC&&oc&&(ro=oa.sub(oc));E.silent||X("planted infinity "+ba.name+". Consumed: "+ro+". Next costs: "+ba.O(1));D.gh++;D.b.oa(oa);H.index=ba.index+oo;H.F=ba.type==Vi?1:0;H.wb=0;if(ba.type==ej){H.wb=82800;for(var Lc=0;4>Lc;Lc++){var qg=E.x+(1==Lc?1:3==Lc?-1:0),rg=E.y+
(2==Lc?1:0==Lc?-1:0);if(!(0>qg||qg>=D.La||0>rg||rg>=D.Ka)){var hk=D.ta[rg][qg];(nb=Gy(hk))&&nb.type!=ej&&nb.type!=Vi&&(hk.wb=82800)}}}else if(ba.type!=Vi)for(Lc=0;4>Lc;Lc++)qg=E.x+(1==Lc?1:3==Lc?-1:0),rg=E.y+(2==Lc?1:0==Lc?-1:0),0>qg||qg>=D.La||0>rg||rg>=D.Ka||(hk=D.ta[rg][qg],(nb=Gy(hk))&&nb.type==ej&&(H.wb=82800,hk.wb=82800));Yv(D);l=!0}}}else if(P==OC)va&&!E.ra||!D.Da||D.ab!=E.x||D.bb!=E.y||(Jc=!0,D.dd++,D.Re++,l=!0);else if(P==ZD)!va&&(ol(1)||ol(2))&&D.Gb&&D.Ob==E.x&&D.Pb==E.y&&(Jd=!0,D.ag[1]++,
l=!0);else if(P==oC){if(!va||E.ra){var wb=E.Je,Cw=D.time-D.kb,Dw=D.time-D.xb,Ew=D.time-D.lb,so=wq();0==wb?D.i[yj].count?Dw<rj(720)?so?X("Sun selected."):D.Wa!=wb&&Dw<mj(120)?(D.Wa=wb,X("Changed weather into sun. Only one weather effect can be active at the same time.")):X(Dw<mj(120)?"sun is already active":"sun is not ready yet",Qv,0,0):(D.xb=D.time,X("sun activated, berries get a +"+L(cl())+" boost and aren't negatively affected by winter"),l=!0,D.Pd++,D.Yf++,D.Wa=wb):E.ra&&(D.Wa=wb):1==wb?D.i[Aj].count&&
(Cw<rj(1080)?so?X("Mist selected."):D.Wa!=wb&&Cw<mj(180)?(D.Wa=wb,X("Changed weather into mist. Only one weather effect can be active at the same time.")):so||X(Cw<mj(180)?"mist is already active":"mist is not ready yet",Qv,0,0):(D.kb=D.time,X("mist activated, mushrooms produce +"+L(el())+" more spores, consume "+L(kh())+" less seeds, and aren't negatively affected by winter"),l=!0,D.Pd++,D.Yf++,D.Wa=wb)):2==wb&&D.i[Cj].count&&(Ew<rj(1440)?so?X("Rainbow selected."):D.Wa!=wb&&Ew<mj(240)?(D.Wa=wb,X("Changed weather into rainbow. Only one weather effect can be active at the same time.")):
X(Ew<mj(240)?"rainbow is already active":"rainbow is not ready yet",Qv,0,0):(D.lb=D.time,X("rainbow activated, flowers get a +"+L(Kl())+" boost and aren't negatively affected by winter"),l=!0,D.Pd++,D.Yf++,D.Wa=wb));so&&(D.Wa=wb)}}else if(P==EH){if(!va){H=E.bd;if(void 0!=E.cl){var sg=E.cl,to=H.slot;ha=!0;var lE=!1;100>sg&&100<=to&&D.Y.length>=D.ya?lE=!0:100>sg&&sg>=D.ya&&(ha=!1);if(ha){if(lE)nz(to,sg);else{if(100>to){for(ea=to;ea+1<D.Y.length;ea++)D.Y[ea]=D.Y[ea+1],D.Y[ea]&&(D.Y[ea].slot=ea);D.Y.length--}else{for(ea=
to-100;ea+1<D.ca.length;ea++)D.ca[ea]=D.ca[ea+1],D.ca[ea]&&(D.ca[ea].slot=ea);D.ca.length--}if(100>sg){for(;sg>D.Y.length;)sg--;for(ea=D.Y.length;ea>sg;ea--)D.Y[ea]=D.Y[ea-1],D.Y[ea]&&(D.Y[ea].slot=ea);D.Y[sg]=H}else{for(var Pr=sg-100;Pr>D.ca.length;)Pr--;for(ea=D.ca.length;ea>Pr;ea--)D.ca[ea]=D.ca[ea-1],D.ca[ea]&&(D.ca[ea].slot=ea);D.ca[Pr]=H}H.slot=sg}l=!0}}else{var Fw=E.slot;if(Fw!=(100>H.slot?0:1))if(0==Fw)if(D.Y.length>=D.ya)X("stored slots already full",Qv,0,0);else{var gj=D.Y.length;lz(H.slot,
void 0);lz(gj,H)}else 1==Fw&&(gj=100+D.ca.length,lz(H.slot,void 0),lz(gj,H));l=!0}FF()}}else if(P==BC){if(gj=E.slot,ha=!0,-1>gj&&(ha=!1),!E.Ck&&gj>=D.Y.length&&(ha=!1),gj>=D.ya&&(ha=!1),ha){D.Ua=gj;FF();uB();if(!E.silent){var Gw=iz();X("Set active fruit: "+(Gw?Gw.toString()+": "+Gw.Bg(!1,!0):"none"))}l=!0}}else if(P==BH){H=E.bd;var ik=E.index;wb=H.H[ik];oa=Wt(wb,H.wa[ik],H.l).Z;var uo=D.b.Z.sub(H.Z);if(!Vt(wb))if(E.shift){uo.Ja(.25);for(Ha=0;uo.oi(oa)&&!(H.Z.v(oa),H.wa[ik]++,l=!0,D.Se++,D.dh++,uo.oa(oa),
oa=Wt(wb,H.wa[ik],H.l).Z,Ha++,1E3<Ha););0<Ha&&X("Fruit ability "+zk(wb)+" leveled up "+Ha+" times to level "+H.wa[ik])}else uo.la(oa)?X("not enough essence for fruit upgrade: need "+oa.toString()+", available for this fruit: "+uo.toString(),Qv,0,0):(H.Z.v(oa),H.wa[ik]++,X("Fruit ability "+zk(wb)+" leveled up to level "+H.wa[ik]),l=!0,D.Se++,D.dh++)}else if(P==CH){if(!va){H=E.bd;wb=E.index;var Hw=E.ol,xL=$t(H.l);ha=!0;Hw&&0>=wb&&(ha=!1);!Hw&&wb+1>=xL&&(ha=!1);if(ha){Eb=wb+(Hw?-1:1);var vo=H.H[wb];
H.H[wb]=H.H[Eb];H.H[Eb]=vo;vo=H.wa[wb];H.wa[wb]=H.wa[Eb];H.wa[Eb]=vo;vo=H.Ha[wb];H.Ha[wb]=H.Ha[Eb];H.Ha[Eb]=vo;FF();l=!0}}}else if(P==zH){wb=E.zk;Eb=E.s;var Qr=0;Ut(1)&&(Qr=2);Ut(2)&&(Qr=4);Ut(3)&&(Qr=5);if(H=du(wb,Eb,Qr,E.ml,E.Vk)){H.slot=wb.slot;100<=H.slot&&100>Eb.slot&&(H.slot=Eb.slot);100<=H.slot&&D.Y.length<D.ya&&(H.slot=D.Y.length);100>H.slot?D.Y[H.slot]=H:D.ca[H.slot-100]=H;var Iw=H.slot,Jw=wb.slot,Rr=Eb.slot;Iw!=Rr&&Rr>Jw&&lz(Eb.slot,null);Iw!=Jw&&lz(wb.slot,null);Iw!=Rr&&Rr<Jw&&lz(Eb.slot,
null);var Kw=D.$b;4<H.type&&(D.$b|=1<<H.type-1);var Lw=D.$b;240!=(Kw&240)&&240==(Lw&240)&&(QH("You've seen all 4 possible 2-seasonal fruits! One extra fruit storage slot added to cope with the variety."),D.ya++);256!=(Kw&256)&&256==(Lw&256)&&(QH("You've seen a star fruit for the first time! One extra fruit storage slot added to cope with the variety."),D.ya++);512!=(Kw&512)&&512==(Lw&512)&&(QH("You've seen a dragon fruit for the first time! One extra fruit storage slot added to cope with the variety."),
D.ya++);D.Jg++;D.rj++;l=!0;EF=H;FF()}}else if(P==vD)va||(0==E.jc&&(D.Md=E.Xb),4==E.jc&&(D.md=E.Xb),1==E.jc&&(D.Zc=E.Xb),2==E.jc&&(D.nc=E.Xb),3==E.jc&&(D.Ld=E.Xb),5==E.jc&&(E.Xb&&hD(),D.Gc=E.Xb),E.Qa&&E.Qa(),l=!0);else if(P==KE){if(ha=!0,0<=D.fb)X("Already have an ethereal mistletoe upgrade active",Qv,0,0),ha=!1;var Ze=cw[E.index],xd=D.nb[E.index];Ze&&xd||(ha=!1);kw(Ze.index)||(ha=!1);(oa=Ze.nh())&&!Di(oa)&&(X("not enough resources for "+Ze.name+": have: "+Gi(oa).toString(Math.max(5,Qh))+", need: "+
oa.toString(Math.max(5,Qh))+" ("+ob(oa)+")",Qv,0,0),ha=!1);ha&&(0==xd.time?X("Started ethereal mistletoe upgrade: "+ma(Ze.name),YF,35481154,.5,!0):X("Continued ethereal mistletoe upgrade: "+ma(Ze.name),YF,35481154,.5,!0),D.fb=E.index,D.vj++,oa&&D.b.oa(oa),l=!0)}else if(P==LE)if(Ze=cw[D.fb],xd=D.nb[D.fb],0<=D.fb&&Ze&&xd){if(oa=Ze.nh())X("Stopped mistletoe upgrade. Got back the cost: "+oa.toString()+". The time is remembered and the upgrade can be continued at any later time, by paying the cost again"),
D.b.v(oa);D.uj++;D.fb=-1;l=!0}else 0>D.fb&&X("Cannot stop upgrade, no mistletoe upgrade in progress",Qv,0,0);else if(P==zD&&(!E.challenge||D.P[E.challenge].f)&&(D.j>=fu||D.challenge)){u=E;l=!0;break}}l&&k&&!n&&QB(k);Na&&dK++;Yv(D);var yL=tj(Ht);tj(Gt)&&(D.De+=f);yL&&(D.Ge+=f);if(D.challenge==bl&&0<D.Ah&&D.time>=D.nf+120){if(H=rK())X(T(H).name+" was hit by lighting!"),H.index=oo+Un[T(H).type],H.F=1,D.Hg++,D.hj++;D.nf=D.time}gB();qb=R();for(hd=0;hd<D.D;hd++)for(gd=0;gd<D.B;gd++)if(H=D.C[hd][gd],nk(H)){var zL=
bk[hd][gd];ba=T(H);var hm=R();if(ba.type==Vi||D.challenge==Rj){var mE=ba.type==Vi,Mw=mE?ba.za():120,xb=f/Mw;H.F-=xb;if(0>=H.F)if(ba.index==mn&&0!=D.i[Hj].count&&D.challenge!=Rj)H.F=0;else{H.F=0;var Sr=!1;if(mE){var Nw=0;for(Lc=0;4>Lc;Lc++)qg=gd+(1==Lc?1:3==Lc?-1:0),rg=hd+(2==Lc?1:0==Lc?-1:0),0>qg||qg>=D.B||0>rg||rg>=D.D||(hk=D.C[rg][qg],(nb=T(hk))&&nb.type!=Vi&&Nw++);2<=Nw&&(Sr=!0);1==Nw&&1>=D.eb[ln]&&0==D.Mh[Dy]&&(Sr=!0);Sr&&(H.index=Dy)}Sr||(H.index=0)}}else 0==ba.za()&&(H.F=1),1>H.F&&(xb=f/ba.za(),
H.F+=xb,1<=H.F&&(H.F=1,D.challenge!=Rj&&(D.eh++,D.sd++),D.Dd[1]&&(ba.type==S?r.getTime()>XK+5&&(Ob(2E3),XK=r.getTime()):ba.type==Si?r.getTime()>YK+5&&(Ob(1800),YK=r.getTime()):r.getTime()>ZK+5&&(Ob(2200),ZK=r.getTime()))));hm=zL.Hb;qb.v(hm);Tb.v(hm.o(f))}else if(My(H)||Xk(H)&&T(H).Ab)H.F=1;for(hd=0;hd<D.ea;hd++)for(gd=0;gd<D.fa;gd++)H=D.ka[hd][gd],Xk(H)&&(ba=Kq[no(H)],1>H.F&&(0==ba.za()?H.F=1:(xb=f/ba.za(),H.F+=xb,1<=H.F&&(H.F=1,D.fh++,1==D.fh&&X("your first ethereal plant in the ethereal field has fullgrown! It provides a bonus to your basic field.",
go,126850492),H.we=!1))));if(qx())for(ub(D.b.R,10.0000000001)&&qx()&&0==D.ce&&Tb.v(R({R:10.0000000001-D.b.R})),hd=0;hd<D.Ka;hd++)for(gd=0;gd<D.La;gd++)H=D.ta[hd][gd],nk(H)?(ba=T(H),hm=ba.Eb(H),ba.type==Vi?(D.Aa[ba.index].vb=!0,Mw=ba.za(),xb=f/Mw,H.F-=xb,0>=H.F&&(H.F=0,H.index=Dy,D.zj++)):(xb=f/ba.za(),H.F+=xb,1<=H.F&&(H.F=1,D.Aa[ba.index].vb=!0,D.qj++)),H.wb&&(H.wb-=f,0>H.wb&&(H.wb=0)),qb.v(hm),Tb.v(hm.o(f))):H.wb=0;if(Jc){var wo=D.Xg;0==wo&&(wo=Ou());var nE=.25*wo,xo=wK();xo=2==D.Da?.5*xo+1:xo+.5;
var oE=nE*xo;2==D.i[$p].count&&(oE*=1.25);xb=BG(5).o(oE);ub(xb.g,2)&&(xb.g=rb(xb.g,c(2*wK()+1)));var yo=Au();xb.g.la(yo.g)&&(xb.g=rb(xb.g,yo.g.o(xo)));var Hf=new R({g:xb.g,A:xb.A});if(1==D.Da)X("That fern gave: "+Hf.toString(),YF,989456955,.5,!0);else{Hf=Hf.o(1.75);Hf.g.Ta(5);var AL=wo/120;120<=wo+1&&1<D.ha&&(!D.challenge||qp[D.challenge].Fc)&&Hf.c.v(D.$e.c.cc(200).o(AL));X("This fern is extra bushy! It gave "+Hf.toString(),YF,989456955,1,!0)}D.gj.v(Hf);Hf.c.T(0)&&(D.qe.c.v(Hf.c),Hf.c=c(0));Tb.v(Hf);
D.Vb=D.time;D.Pc=D.time;D.Da=0;0==D.Fi&&D.b.add(Hf).g.Sa(10)&&X("You have enough resources to plant. Click an empty field to plant",go,64721)}nE=0;if(!D.Da&&!Jc){var zo=Ou();if(D.time>D.Vb+zo){D.Xg=zo;if(Cc=qK()){D.Da=1;D.ab=Cc[0];D.bb=Cc[1];if(3==D.dd||oj()&&3==D.Re||7<D.dd&&.1>wK())D.Da=2;D.Dd[0]&&Ob(1E3);X('A fern spawned<span style="color:#0000"> at '+D.ab+", "+D.bb+"</span>",YF,2352600596,.5)}D.Vb=D.time;D.Pc=D.time}}else if(1==D.Da&&!Jc&&1==D.i[$p].count&&(zo=Math.max(600,1.5*Ou()),D.time>D.Pc+
zo&&D.time>D.Vb+3*zo)){var BL=Math.floor((D.time-D.Vb)/60);7<D.dd&&.1>wK(50*BL)&&(D.Da=2);D.Pc=D.time}D.Da&&(0>D.ab&&(D.ab=0),0>D.bb&&(D.bb=0),D.ab>=D.B&&(D.ab=D.B-1),D.bb>=D.D&&(D.bb=D.D-1));if(ol(1)||ol(2)){if(Jd){D.Pi=1500*(1+xK());var jk=YD(),pE=oj();if(1==jk){xb=BG(5).o(300);yo=Au();xb.g.la(yo.g)&&(xb.g=rb(xb.g,yo.g));ub(xb.g,10)&&(xb.g=rb(xb.g,c(10)));var ke=new R({g:xb.g});pE&&(ke=ke.o(.2));ol(1)?X("That present contained: "+ke.toString(),cG,38753631,.8,!0):X("That egg contained "+ke.toString(),
dG,38753631,.8,!0);Tb.v(ke)}else if(2==jk)xb=BG(5).o(300),ub(xb.A,1)&&(xb.A=rb(xb.A,c(1))),ke=new R({A:xb.A}),pE&&(ke=ke.o(.2)),ol(1)?X("That present contained: "+ke.toString(),cG,38753631,.8,!0):X("That egg contained "+ke.toString(),dG,38753631,.8,!0),Tb.v(ke);else if(3==jk)D.ug=D.time,ol(1)?X("This present boosts production for 15 minutes!",cG,38753631,.8,!0):X("This egg boosts production for 15 minutes!",dG,38753631,.8,!0);else if(4==jk){var qE=Hv(D.hc).o(4E-4).o(1+xK());xb=BG(5).o(300);xb.S.la(qE)&&
(xb.S=qE);ke=new R({S:xb.S});ol(1)?X("That present contained a nutcracker! It gave "+ke.toString(),cG,38753631,.8,!0):X("That egg was nut flavored! It gave "+ke.toString(),dG,38753631,.8,!0);Tb.v(ke)}else if(5==jk)D.tg=D.time,ol(1)?X("This present doubles crop grow speed for 15 minutes!",cG,38753631,.8,!0):X("This egg doubles crop grow speed for 15 minutes!",dG,38753631,.8,!0);else if(6==jk){ol(1)?X("This present contained fruit!",cG,38753631,.8,!0):X("This egg contained fruit!",dG,38753631,.8,!0);
var tg=zK(Math.max(5,D.Pa-2),!0);if(tg){var CL=ol(1)?cG:dG;for(ea=0;ea<tg.length;ea++)D.Ca[5]&&X("fruit dropped: "+tg[ea].toString()+". "+tg[ea].Bg(),CL,38753631,.8)}}else if(7==jk){var Ow=c(Math.floor(2*xK())+2);Tb.ma.v(Ow);ol(1)?X("That present contained "+Ow.toString()+" amber!",cG,38753631,.8,!0):X("That egg contained "+Ow.toString()+" amber!",dG,38753631,.8,!0)}D.uh=D.time;D.Gb=0}if(!D.Gb&&!Jd&&2<=D.$f&&3E3>D.ag[1]&&D.time>D.uh+D.Pi){if(Cc=qK())D.Gb=1+Math.floor(7*xK())%7,D.Ih=Math.floor(4*xK())&
3,D.Ob=Cc[0],D.Pb=Cc[1],ol(1)?X('A present appeared<span style="color:#0000"> at '+D.Ob+", "+D.Pb+"</span>",cG,5,.8):X('An egg appeared<span style="color:#0000"> at '+D.Ob+", "+D.Pb+"</span>",dG,5,.8);D.uh=0}}else D.Gb=0;var Tr=ju();if(D.time>D.Qc+1&&D.b.Ea(Tr)){var Ur=c(0),Vr=c(0),Pw=!0;D.challenge&&!qp[D.challenge].lc&&(Pw=!1);D.challenge&&!qp[D.challenge].kc&&D.j>D.Pa&&(Pw=!1);Pw&&(Vr=tu(void 0).G,D.G.v(Vr));Tb.ma.v(VK());D.j++;cK++;var Qw=!0;D.challenge&&!qp[D.challenge].Fc&&(Qw=!1);D.challenge&&
!qp[D.challenge].kc&&D.j>D.Pa&&(Qw=!1);Qw&&(Ur=nu(D.j,void 0),D.c.v(Ur));D.b.oa(Tr);D.Pa=Math.max(D.j,D.Pa);for(ea=1;ea<D.zc.length;ea++)D.zc[D.zc.length-ea]=D.zc[D.zc.length-1-ea];D.zc[0]=Rv();D.Qc=D.time;D.De=0;D.Ge=0;var Rw=D.Ca[1]||D.j>=D.Pa;Rw&&(lc="Tree leveled up to: "+Vg[ku(D.j)][0]+", level "+D.j+". Consumed: "+Tr.toString()+". Tree boost: "+L(al()),Ur.T(0)&&(lc+=". Resin added: "+Ur.toString()+". Total resin ready: "+rz().toString()),3==Oj()&&(lc+=". Winter resin bonus: "+L(jh(ou(),1))),
Vr.T(0)&&(lc+=". Twigs from mistletoe added: "+Vr.toString()),2==Oj()&&(lc+=". Autumn twigs bonus: "+L(jh(uu(),1))),9==D.j&&(lc+=". The tree is almost an adult tree now."),X(lc,YF,109168563));2==D.j?lq(12):3==D.j?WH(-13,void 0,"The tree reached level "+D.j+' and is providing a choice, see the new upgrade that provides two choices under "upgrades".'):4==D.j?lq(14):6==D.j?lq(15):8==D.j&&WH(-16,void 0,"The tree reached level "+D.j+' and is providing another choice, see the new upgrade that provides two choices under "upgrades".');
tg=void 0;0<D.j&&0==D.j%5&&(!D.challenge||qp[D.challenge].Ke&&10<=D.j&&(qp[D.challenge].kc||D.j<=D.Pa))&&(Rw&&5==D.j&&lq(2),Rw&&15==D.j&&lq(18),tg=zK(D.j),e=!0);10==D.j&&D.challenge&&qp[D.challenge].Ke&&(tg=zK(D.j),e=!0,D.Ca[5]&&X("The tree dropped the level 5 fruit at level 10 during this challenge",YF,1340887270));1==D.j?lq(6):D.j==fu&&lq(7);if(D.challenge&&D.j==qp[D.challenge].ja[0]){ba=qp[D.challenge];nb=D.P[D.challenge];if(0==nb.Db||D.pa<nb.Db)nb.Db=Math.max(.01,D.pa);if(1<ba.ga){var kk=ba.li();
if(0==nb.od[kk]||D.pa<nb.od[kk])nb.od[kk]=Math.max(.01,D.pa)}}D.challenge&&D.j==qp[D.challenge].uf()&&(ba=qp[D.challenge],nb=D.P[D.challenge],ba.Ak()?X("challenge target level reached"):(HD(),lq(26)),1<ba.ja.length&&D.j>=ba.Ql()&&(0==nb.Ic||D.pa<nb.Ic)&&(nb.Ic=Math.max(.01,D.pa)),1<ba.ga&&(kk=ba.li(),0==nb.pd[kk]||D.pa<nb.pd[kk]))&&(nb.pd[kk]=Math.max(.01,D.pa));if(tg)for(ea=0;ea<tg.length;ea++)D.Ca[5]&&X("fruit dropped: "+tg[ea].toString()+". "+tg[ea].Bg(),YF,1284767498)}if(D.time>=D.Bf+120&&D.b.Ea(Tr)){D.Bf=
D.time;for(ea=1;ea<D.Vc.length;ea++)D.Vc[D.Vc.length-ea]=D.Vc[D.Vc.length-1-ea];D.Vc[0]=kl(!1)}if(0<D.ha){var Sw=yu(D.J+1);if(D.b.Ea(Sw)){D.J++;D.lg=D.time;lc="Ethereal tree leveled up to: "+Vg[ku(D.J)][0]+", level "+D.J+". Consumed: "+Sw.toString();lc+=". Higher ethereal tree levels can unlock more ethereal upgrades and ethereal crops";D.b.oa(Sw);X(lc,ZF,48352772);RE(D.J);1==D.J&&lq(-22);for(ea=0;ea<D.J-1;ea++)void 0==D.Rg[ea]&&(D.Rg[ea]=0),void 0==D.We[ea]&&(D.We[ea]=R()),void 0==D.Og[ea]&&(D.Og[ea]=
0),void 0==D.Qg[ea]&&(D.Qg[ea]=0),void 0==D.Ng[ea]&&(D.Ng[ea]=c(0)),void 0==D.Pg[ea]&&(D.Pg[ea]=c(0));D.Rg[D.J-1]=D.se;D.We[D.J-1]=R(D.qa);D.We[D.J-1].g=c(D.Jb.g);D.We[D.J-1].A=c(D.Jb.A);D.Og[D.J-1]=D.Pa;D.Qg[D.J-1]=D.ha;D.Ng[D.J-1]=c(D.bc);D.Pg[D.J-1]=c(D.sf)}1<=D.J&&ct(wr);2<=D.J&&(ct(cs),ct(pr));3<=D.J&&(ct(Dr),ct(Kr));4<=D.J&&(ct(xr),ct(is),ct(qr));5<=D.J&&ct(Er);6<=D.J&&(ct(rr),ct(Lr));7<=D.J&&(ct(yr),ct(Fr));8<=D.J&&(ct(js),ct(ns),ct(sr));9<=D.J&&ct(Zr);10<=D.J&&(ct(ds),ct(Gr));11<=D.J&&ct(zr);
12<=D.J&&(ct($r),ct(ks));13<=D.J&&(ct(os),ct(Hr));14<=D.J&&ct(Ar);15<=D.J&&ct(as);16<=D.J&&ct(ls);17<=D.J&&ct(Ir);18<=D.J&&ct(Br);19<=D.J&&(ct(bs),ct(ps));20<=D.J&&ct(ms);21<=D.J&&ct(gs)}qx()&&(AK(vw),D.Aa[vw].vb&&AK(Vw),D.Aa[Vw].vb&&AK(Zw),D.Aa[Vw].vb&&AK(ww),D.Aa[ww].vb&&AK(Ww),D.Aa[Ww].vb&&AK($w),D.Aa[Ww].vb&&AK(xw),D.Aa[xw].vb&&AK(Xw),D.Aa[Xw].vb&&AK(ax),D.Aa[ax].vb&&AK(gx),D.Aa[Xw].vb&&AK(px),D.Aa[Xw].vb&&AK(Uw),D.Aa[Uw].vb&&AK(Yw),D.Aa[Yw].vb&&AK(bx),D.Aa[bx].vb&&AK(lx),D.Ad.da(D.ah)&&(D.ah=
D.Ad.clone()));if(D.oe)if(0<=D.fb){if(Ze=cw[D.fb],xd=D.nb[D.fb],Ze&&xd){var rE=xd.time;xd.time+=f;var Wr=Ze.getTime();if(D.Wb){var lk=D.Wb;lk=Math.min(lk,f);lk=Math.min(lk,Wr-xd.time);0<lk&&(xd.time+=lk,D.Wb-=lk)}var sE=Math.min(xd.time,Wr);sE>rE&&(D.bh+=sE-rE);if(xd.time>=Wr){var tE=xd.time-Wr;D.Wb+=tE;D.af+=tE;xd.time=0;xd.aa++;D.fb=-1;X("Ethereal mistletoe upgrade completed: "+ma(Ze.name),YF,172897358,.75);D.di++}}}else D.Wb+=f,D.af+=f;Ei(qb);Ei(Tb);D.b.v(Tb);Na&&1==dK&&!YJ&&(YJ=R(qb));for(ea=
0;ea<$n.length;ea++)if(Q=$n[ea],M=Fj[Q],ce=D.i[Q],ce.f&&D.challenge==fq&&nq(M)&&(ce.f=!1),!(ce.f||D.challenge==kj&&!M.ve||D.challenge==rq&&M.ue||D.challenge==fq&&nq(M)||Q==sp&&D.challenge&&!qp[D.challenge].lc)&&M.Oi()){if(ce.f)!D.Ca[2]&&ce.Ff||X('Received: "'+M.xd()+'"',$F,2043573365);else{ce.f=!0;D.Nf++;D.yj++;1==D.Nf&&lq(8);if(D.Ca[2]||!ce.Ff){var uE='Upgrade available: "'+M.xd()+'"';M.pk&&(uE+=": "+M.pk);X(uE,$F,193917138)}if(M.ue||M.gg)if(nb=D.U[M.Fa])fm=nb.sa+1,M.gg&&fm++,nb.xe<fm&&(nb.xe=fm)}ce.Ff=
!0}if(0<D.ha&&0<D.cf){var DL=0==D.mh,vE=0;for(ea=0;ea<Js.length;ea++)Q=Js[ea],!D.K[Q].f&&Ks[Q].Oi()&&(D.K[Q].f=!0,D.mh++,vE++,X('Ethereal upgrade available: "'+Ks[Q].xd()+'"',ZF,833862648));vE&&DL&&lq(9)}for(ea=0;ea<tx.length;ea++)Q=tx[ea],!D.Lb[Q].hb&&ux[Q].Jk()&&(D.Zf++,D.Lb[Q].hb=!0,X("Achievement unlocked: "+ma(ux[Q].name)+" (+"+L(ux[Q].Af)+")",$F,34776048,.75),pB(),VG(Q),1==D.Zf&&WH(-11,void 0,'You got your first achievement! Achievements give a slight production boost. See the "achievements" tab.'));
if(0<D.ha)for(ea=0;ea<hq.length;ea++)ba=qp[hq[ea]],nb=D.P[hq[ea]],!nb.f&&ba.kk()&&(nb.f=!0,lq(24),X("Unlocked challenge: "+ma(ba.name),$F,66240736,.75),KD(ba.index));D.qa.v(Tb);D.rb.v(Tb);D.Jb=Hi(D.Jb,D.b);D.Od=Hi(D.Od,D.b);D.Xf=Hi(D.Xf,qb);D.ke=Hi(D.ke,qb);var Xr=tz(),Yr=uz();Xr.da(D.Lc.c)&&(D.Lc.c=Xr,D.td.c=c(D.j),D.ud.c=c(D.pa),Xr.da(D.cg.c)&&(D.cg.c=Xr,D.ii.c=c(D.j),D.ji.c=c(D.pa)));Yr.da(D.Lc.G)&&(D.Lc.G=Yr,D.td.G=c(D.j),D.ud.G=c(D.pa),Yr.da(D.cg.G)&&(D.cg.G=Yr,D.ii.G=c(D.j),D.ji.G=c(D.pa)));
Yv(D)}0==D.Kf&&D.challenge==kj&&lq(25);D.fi++;D.Kf++;var Tw=r.getTime();Tw>oK+180&&aL()&&(D.nj++,vB(function(){Tw>Math.max(D.wi,Math.max(D.Zg,D.$g))+172800?(X('Auto-saved state locally. Reminder: make a manual savegame backup or risk losing everything. Use "export save" under settings.',dB,0,0),D.wi=r.getTime()):D.Ca[0]&&X("Auto-saved state locally",GB,0,0)}),oK=Tw);var xE=D.ua-y;OJ=300<xE&&!p?!0:!1;aK+=xE;PJ=OJ&&10<w;if(g&&!OJ){var yE=D.b.sub(t),zE="";0<dK&&(zE=". The season changed "+dK+" times");
var AE="";0<cK&&(AE=". The tree leveled up "+cK+" times");var EL=aK;yE=D.b.sub(bK);X("Large time delta: "+r.I(EL,!0,4,!0)+", gained at once: "+yE.toString()+zE+AE,GB,0,0)}if(1==m&&1>=dK){var BE="";if(YJ){var FL=R({g:YJ.g,A:YJ.A}),GL=R({g:qb.g,A:qb.A});BE=". Income before: "+FL.toString()+". Income now: "+GL.toString();YJ=void 0}X("The season changed to "+Qi[Oj()]+BE,YF,17843969,.75)}0<x&&(D.Kd=!1);u&&(E=u,hK(E.challenge),Yv(D),gB());OJ||(dK&&D.ki++,cK=dK=0,bK=R(D.b),aK=0);QJ();e&&FF();Ta();for(ea=
0;ea<WK.length;ea++)WK[ea]()||(WK.splice(ea,1),ea--);u&&kK.length?window.setTimeout(OB,.01):h&&window.setTimeout(OB,.4*ka)}}var bL=void 0,XD,MC=-1,LC=-1,VD;function DC(){VD=!1;bL&&(Ua(bL,zb),bL=void 0)}
function WD(a){DC();var b=cL,d=dL;if(b||d){var e=0<=a?vl[a]:void 0;VD=!0;XD=a;a=MC;var f=LC;var g=0>a||0>f||void 0==a||void 0==f?new Fy(void 0,void 0,1):D.C[f][a];a=!Xk(g);f=Xk(g)&&d&&!b&&D.Xc;var h=Xk(g)&&b&&!d&&D.Xc,k=Xk(g)&&b&&d&&D.Xc&&T(g).l<D.Kb[T(g).type];k&&(e=em[T(g).type][D.Kb[T(g).type]]);var l=Xk(g)&&b&&d&&(!D.Xc||T(g).l>=D.Kb[T(g).type]);l&&(e=T(g));if(a||f||h||k||l){var n=b?d?"Shift+ctrl":"Shift":"Ctrl",p=a?"planting":f?"deleting":h?"replacing":l?"selecting":"upgrading";bL=new G(zb,.2,
.85,.8,.95);bL.a.style.backgroundColor=a?"#dfd":f?"#fdd":"#ffd";bL.a.style.zIndex=100;var m=new G(bL,[0,0,0],[.5,0,-.35],.99,[.5,0,.35]);m.a.style.color="#000";ta(m.a);if(f)b=T(g).ub(),m.a.h.innerHTML=n+"+"+p+"<br><br>recoup: "+b.toString();else if(e){b=new G(bL,.01,[.5,0,-.35],[0,0,.7],[.5,0,.35]);b=Va("0%","0%","100%","100%",b.a);Wa(e.image[4],b);var x=function(){var t=R(0);Xk(g)&&(t=T(g).ub());t=e.O().sub(t);var y=t.Xa(D.b),u=n+"+"+p+"<br>"+ma(e.name);l||(u+="<br>"+(y?"":'<font color="#888">')+
"Cost: "+t+" ("+ob(t)+")"+(y?"":"</font>"));m.a.h.innerHTML=u};x();xD(function(){if(!cL&&!dL||!VD)return!1;x();return!0})}else m.a.h.innerHTML=n+"+"+p+"<br><br>none set";A(bL.a,DC)}}}var eL=void 0,QE,QC=-1,RC=-1,OE;function EC(){OE=!1;eL&&(Ua(eL,zb),eL=void 0)}
function PE(a){EC();var b=cL,d=dL;if(b||d){var e=0<=a?Kq[a]:void 0;OE=!0;QE=a;var f=QC,g=RC;var h=0>f||0>g||void 0==f||void 0==g?new Fy(void 0,void 0,2):D.ka[g][f];f=!Xk(h);g=Xk(h)&&d&&!b&&D.Xc;var k=Xk(h)&&b&&!d&&D.Xc,l=Xk(h)&&b&&d&&D.Xc&&T(h).l<D.be[T(h).type];l&&(e=dr[T(h).type][D.be[T(h).type]]);var n=Xk(h)&&b&&d&&(!D.Xc||T(h).l>=D.be[T(h).type]);n&&(e=T(h));if(f||g||k||l||n)if(!f||g||k||l||n||void 0!=a){var p=b?d?"Shift+ctrl":"Shift":"Ctrl",m=f?"planting":g?"deleting":k?"replacing":n?"selecting":
"upgrading";eL=new G(zb,.2,.85,.8,.95);eL.a.style.backgroundColor=f?"#dfd":g?"#fdd":"#ffd";eL.a.style.zIndex=100;var x=new G(eL,[0,0,0],[.5,0,-.35],.99,[.5,0,.35]);x.a.style.color="#000";ta(x.a);if(g)a=T(h).O(-1).o(1),x.a.h.innerHTML=p+"+"+m+"<br><br>recoup: "+a.toString();else if(e){a=new G(eL,.01,[.5,0,-.35],[0,0,.7],[.5,0,.35]);a=Va("0%","0%","100%","100%",a.a);Wa(e.image[4],a);var t=function(){var y=R(0);Xk(h)&&(y=T(h).O(-1).o(1));y=e.O().sub(y);var u=y.Xa(D.b),v=p+"+"+m+"<br>"+ma(e.name);n||
(v+="<br>"+(u?"":'<font color="#888">')+"Cost: "+y+" ("+ob(y)+")"+(u?"":"</font>"));x.a.h.innerHTML=v};t();xD(function(){if(!cL&&!dL||!OE)return!1;t();return!0})}else x.a.h.innerHTML=p+"+"+m+"<br><br>none set";A(eL.a,EC)}}}var fL=void 0,dF,TC=-1,SC=-1,bF;function gL(){bF=!1;fL&&(Ua(fL,zb),fL=void 0)}
function cF(a){gL();var b=cL,d=dL;if(b||d){var e=0<=a?mw[a]:void 0;bF=!0;dF=a;a=TC;var f=SC;var g=0>a||0>f||void 0==a||void 0==f?new Fy(void 0,void 0,3):D.ta[f][a];a=!Xk(g);f=Xk(g)&&d&&!b&&D.Xc;var h=Xk(g)&&b&&!d&&D.Xc,k=Xk(g)&&b&&d&&D.Xc&&T(g).l<D.zd[T(g).type];k&&(e=pw[T(g).type][D.zd[T(g).type]]);var l=Xk(g)&&b&&d&&(!D.Xc||T(g).l>=D.zd[T(g).type]);l&&(e=T(g));if(a||f||h||k||l){var n=b?d?"Shift+ctrl":"Shift":"Ctrl",p=a?"planting":f?"deleting":h?"replacing":l?"selecting":"upgrading";fL=new G(zb,
.2,.85,.8,.95);fL.a.style.backgroundColor=a?"#dfd":f?"#fdd":"#ffd";fL.a.style.zIndex=100;var m=new G(fL,[0,0,0],[.5,0,-.35],.99,[.5,0,.35]);m.a.style.color="#000";ta(m.a);if(f)b=T(g).O(-1).o(1),m.a.h.innerHTML=n+"+"+p+"<br><br>recoup: "+b.toString();else if(e){b=new G(fL,.01,[.5,0,-.35],[0,0,.7],[.5,0,.35]);b=Va("0%","0%","100%","100%",b.a);Wa(e.image[4],b);var x=function(){var t=R(0);Xk(g)&&(t=T(g).O(-1).o(1));t=e.O().sub(t);var y=t.Xa(D.b),u=n+"+"+p+"<br>"+ma(e.name);l||(u+="<br>"+(y?"":'<font color="#888">')+
"Cost: "+t+" ("+ob(t)+")"+(y?"":"</font>"));m.a.h.innerHTML=u};x();xD(function(){if(!cL&&!dL||!bF)return!1;x();return!0})}else m.a.h.innerHTML=n+"+"+p+"<br><br>none set";A(fL.a,gL)}}}var cL=!1,dL=!1;function hL(){if(D.ia==KC&&0==Ga){var a=cL?D.Va:Iz();WD(a)}D.ia==HC&&0==Ga&&(a=cL?D.Bb:void 0,PE(a));D.ia==pC&&0==Ga&&(a=cL?D.sb:Lz(),cF(a))}
document.addEventListener("keydown",function(a){if("Shift"==a.key||"Control"==a.key||"Meta"==a.key){"Shift"==a.key&&(cL=!0);if("Control"==a.key||"Meta"==a.key)dL=!0;hL();Qa()}});document.addEventListener("keyup",function(a){if("Shift"==a.key||"Control"==a.key||"Meta"==a.key){"Shift"==a.key&&(cL=!1);if("Control"==a.key||"Meta"==a.key)dL=!1;cL||dL?hL():(DC(),EC(),gL())}});window.addEventListener("blur",function(){dL=cL=!1;DC();EC();gL()});function iL(a){for(var b=[],d=0;d<a.length;d++)b[d]=Mz[a[d]];for(d=0;3>d;d++){a=b;var e=d,f=a.length,g=f>>1,h=f+1>>1;e++;for(var k=0;k<f;k++)a[k]^=e&63,e>>=1;for(k=1;k<a.length;k++)a[k]=a[k]+a[k-1]&63;for(k=a.length-1;0<k;k--)a[k-1]=a[k-1]+a[k]&63;for(k=0;k<f;k++)a[k]=(a[k]<<1|a[k]>>5)&63;e=[];for(k=0;k<g;k++)e[2*k]=a[k],e[2*k+1]=a[k+g];f&1&&(e[f-1]=a[f-1]);for(k=0;k<f;k++)a[k]=e[k];for(k=0;k<h;k++){g=2*k;if(g>=f)break;e=(2*k+1)%f;if((a[g]&1)==(a[e]&1)){var l=a[g];a[g]=a[e];a[e]=l}}}a="";for(d=0;d<
b.length;d++)a+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[b[d]];return a}var jL=aB;aB=function(a){a=iL(a);return iL(jL(a))};function kL(a,b){if(!a&&!b)return!0;if(void 0!=a.g){if(a.dc(b))return!0;a=zi(a);b=zi(b);if(a.length!=b.length)return!1;for(var d=0;d<a.length;d++)if(!kL(a[d],b[d]))return!1}else if(void 0!=a.s){if(!kL(a.s,b.s)||!kL(a.e,b.e))return!1}else return isNaN(a)&&isNaN(b)?!0:a==b;return!0}
function lL(a,b){return kL(a.b,b.b)&&kL(a.B,b.B)&&kL(a.D,b.D)&&kL(a.fa,b.fa)&&kL(a.ea,b.ea)&&kL(a.ua,b.ua)&&kL(a.uc,b.uc)&&kL(a.ya,b.ya)&&kL(a.j,b.j)&&kL(a.J,b.J)&&kL(a.challenge,b.challenge)&&kL(a.ec,b.ec)&&kL(a.c,b.c)&&kL(a.G,b.G)&&kL(a.U[Fm].sa,b.U[Fm].sa)&&kL(a.fb,b.fb)&&kL(a.Wb,b.Wb)?!0:!1}
function mL(a,b){b.b=r.clone(a.b);b.B=a.B;b.D=a.D;b.fa=a.fa;b.ea=a.ea;b.ua=a.ua;b.uc=a.uc;b.ya=a.ya;b.j=a.j;b.J=a.J;b.challenge=a.challenge;b.ec=a.ec;b.c=a.c;b.G=a.G;b.U||(b.U=[]);b.U[Fm]||(b.U[Fm]={});b.U[Fm].sa=a.U[Fm].sa}var nL,oL,pL=OB;OB=function(a){lL(D,nL)&&lL(D,oL)||lL(nL,oL)&&mL(nL,D);pL(a);nL={};mL(D,nL);oL={};mL(D,oL)};function qL(a){VJ?a():window.setTimeout(a)}var rL=fB;fB=function(a){nL={};mL(a,nL);oL={};mL(a,oL);rL(a)};function sL(a,b,d){a?b&&b(a):d&&d()}
function tL(a,b,d){a=ZA(a);qL(z(sL,a,b,d))}iB=function(a,b,d){a.yh=Ph;a.precision=Qh;qL(z(tL,a,b,d))};function HL(a,b,d){a&&!a.gl?(fB(a),b&&b(a)):d&&d(a)}function IL(a,b,d){a=cB(a);qL(z(HL,a,b,d))}jB=function(a,b,d){qL(z(IL,a,b,d))};window.onbeforeunload=function(){var a=qL;qL=function(b){b()};vB();qL=a};
function JL(){fy=!0;La({title:"Support",Ba:!0}).content.a.innerHTML='If you wish to support the development of this game through a donation, you can do so through PayPal:<br/><br/>\n<form action="https://www.paypal.com/donate" method="post" target="_blank">\n<input type="hidden" name="hosted_button_id" value="JGDBGRGDEZ4XJ" />\n<input type="image" src="https://www.paypalobjects.com/en_US/CH/i/btn/btn_donateCC_LG.gif" border="0" name="submit" title="PayPal - The safer, easier way to pay online!" alt="Donate with PayPal button" />\n<img alt="" border="0" src="https://www.paypal.com/en_CH/i/scr/pixel.gif" width="1" height="1" />\n</form>\n<br/><br/>You can also engage with the community:<br/>Reddit: <a target="_blank" href="https://www.reddit.com/r/etherealfarm/">https://www.reddit.com/r/etherealfarm/</a><br/>Discord: <a target="_blank" href="https://discord.gg/9eaTxXvMT2">https://discord.gg/9eaTxXvMT2</a><br/>Fandom wiki: <a target="_blank" href="https://ethereal-farm.fandom.com/wiki/Ethereal_Farm_Wiki">https://ethereal-farm.fandom.com/wiki/Ethereal_Farm_Wiki</a><br/><br/>';return!1}
var KL=xB;xB=function(){var a=""+KL();a+='If you wish to support the development of this game through a donation, you can <a href=# onclick="'+JL.name+'(); event.preventDefault();">do so here</a>.';return a+"<br><br>"};var LL=0,ML=7,NL=7,OL=2,$A=262144*(LL+2)+64*ML+NL;function zB(){var a=""+LL+"."+ML+"."+NL;0<OL&&(a+=String.fromCharCode(97+OL));return a}document.title="Ethereal Farm v"+zB();X("Welcome to Ethereal Farm v"+zB(),dB,0,0);var ka=333;function PL(){r.cm(function(){OB()})}
(function(a,b){var d=r.Oc(Ji);d||(d=r.Oc(Ni))&&console.log("local storage was corrupted, loaded from last undo save");if(d){var e=$A;4<d.length&&Oz(d)&&(e=4096*Mz[d[2]]+64*Mz[d[3]]+Mz[d[4]],e<$A&&r.Ee(d,Mi));jB(d,function(f){MB();OB();a(f);f=r.Oc(Li);(!f||!f.length||Mz[d[6]]>=Mz[f[6]])&&r.Ee(d,Li)},function(f){b(f);if(22<d.length&&Oz(d)&&"E"==d[0]&&"F"==d[1]){r.Oc(Ki)||r.Ee(d,Ki);for(var g=BB(),h=0;h<g.length;h++)X(g[h][0]+" : "+g[h][1],EB,0,0);0==g.length&&X("current: "+d,EB,0,0);g="Loading failed. Copy the saves in the dialog for recovery, or else you may lose it forever. If the dialog got closed, refresh to see it again, or copypaste the saves printed above instead, they are the same recovery saves, make sure to copy all (it is scrolled up and to the right).";
f&&4==f.tc&&(g+=" Loading fail reason: parsing format");f&&5==f.tc&&(g+=" Loading fail reason: decompression");f&&6==f.tc&&(g+=" Loading fail reason: checksum mismatch");f&&7==f.tc&&(g+=" Loading fail reason: savegame is from later version than current game version");f&&8==f.tc&&(g+=" Loading fail reason: savegame is from an early preview version of the game and no longer supported");X(g,EB,0,0);AB(!0);CB=!0}})}else b&&b(void 0)})(function(){X("Loaded local save",GB,0,0);PL()},function(){fB(hz());
MB();PL()});KB=r.Oc(Ni,"");function aL(){return CB?0<D.kh:0<D.ha||0<D.dd||0<D.Zf||0<D.$f||0<D.hh?!0:!1}var VJ=!1;window.onbeforeunload=function(){VJ=!0;if(D.xg){for(var a=0;a<Ia.length;a++)if(Ia[a].onclose)Ia[a].onclose();aL()&&vB()}};
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化