Difference between revisions of "MediaWiki:Common.js"

From Team Fortress Wiki
Jump to: navigation, search
m (+MogDog66)
m (Enable custom CSS for User:Payn)
 
(163 intermediate revisions by 9 users not shown)
Line 1: Line 1:
// Note: This is a compressed version of the JavaScript code, for faster loading.
+
// This is the non-compressed version of MediaWiki:Common.js
// See http://wiki.teamfortress.com/wiki/MediaWiki:Common.js/Code.js for full readable code and licensing
 
eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--){d[e(c)]=k[c]||e(c)}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('(12(E,B){12 ka(a,b,d){if(d===B&&a.1g===1){d=a.2s("1k-"+b);if(1j d==="1F"){1O{d=d==="1c"?1c:d==="1e"?1e:d==="1b"?1b:!c.5T(d)?1Y(d):bG.1h(d)?c.8T(d):d}1N(e){}c.1k(a,b,d)}1a d=B}14 d}12 U(){14 1e}12 ca(){14 1c}12 la(a,b,d){d[0].1l=a;14 c.1q.2F.22(b,d)}12 ep(a){17 b,d,e,f,h,l,k,o,x,r,A,C=[];f=[];h=c.1k(6,6.1g?"2P":"6E");if(1j h==="12")h=h.2P;if(!(a.6O===6||!h||!h.4q||a.3y&&a.1l==="4k")){if(a.44)A=4L("(^|\\\\.)"+a.44.2J(".").3X("\\\\.(?:.*\\\\.)?")+"(\\\\.|$)");a.6O=6;17 J=h.4q.2A(0);19(k=0;k<J.18;k++){h=J[k];h.8v.1v(X,"")===a.1l?f.1H(h.2a):J.3n(k--,1)}f=c(a.2E).65(f,a.6F);o=0;19(x=f.18;o<x;o++){r=f[o];19(k=0;k<J.18;k++){h=J[k];if(r.2a===h.2a&&(!A||A.1h(h.44))){l=r.1w;e=1b;if(h.8w==="5R"||h.8w==="5I"){a.1l=h.8w;e=c(a.6u).65(h.2a)[0]}if(!e||e!==l)C.1H({1w:l,5Y:h,72:r.72})}}}o=0;19(x=C.18;o<x;o++){f=C[o];if(d&&f.72>d)2b;a.6F=f.1w;a.1k=f.5Y.1k;a.5Y=f.5Y;A=f.5Y.dS.22(f.1w,1B);if(A===1e||a.8e()){d=f.72;if(A===1e)b=1e;if(a.8g())2b}}14 b}}12 Y(a,b){14(a&&a!=="*"?a+".":"")+b.1v(fB,"`").1v(fz,"&")}12 as(a,b,d){if(c.1L(b))14 c.5L(a,12(f,h){14!!b.1n(f,h,f)===d});1a if(b.1g)14 c.5L(a,12(f){14 f===b===d});1a if(1j b==="1F"){17 e=c.5L(a,12(f){14 f.1g===1});if(cq.1h(b))14 c.1Z(b,e,!d);1a b=c.1Z(b,e)}14 c.5L(a,12(f){14 c.3H(f,b)>=0===d})}12 9N(a,b){17 d=0;b.1m(12(){if(6.1o===(a[d]&&a[d].1o)){17 e=c.1k(a[d++]),f=c.1k(6,e);if(e=e&&e.2P){3d f.2F;f.2P={};19(17 h in e)19(17 l in e[h])c.1q.31(6,h,e[h][l],e[h][l].1k)}}})}12 d1(a,b){b.4C?c.5t({1C:b.4C,4Q:1e,3c:"2B"}):c.95(b.1K||b.bE||b.2X||"");b.1p&&b.1p.3q(b)}12 a7(a,b,d){17 e=b==="1Q"?a.5B:a.8L;if(d==="4T")14 e;c.1m(b==="1Q"?cN:cO,12(){d||(e-=1Y(c.1y(a,"6a"+6))||0);if(d==="4z")e+=1Y(c.1y(a,"4z"+6))||0;1a e-=1Y(c.1y(a,"4T"+6+"dU"))||0});14 e}12 da(a,b,d,e){if(c.38(b)&&b.18)c.1m(b,12(f,h){d||cv.1h(a)?e(a,h):da(a+"["+(1j h==="28"||c.38(h)?f:"")+"]",h,d,e)});1a if(!d&&b!=1b&&1j b==="28")c.5v(b)?e(a,""):c.1m(b,12(f,h){da(a+"["+f+"]",h,d,e)});1a e(a,b)}12 S(a,b){17 d={};c.1m(ad.8C.22([],ad.2A(0,b)),12(){d[6]=a});14 d}12 aq(a){if(!ea[a]){17 b=c("<"+a+">").cQ("1P"),d=b.1y("1D");b.2I();if(d==="2y"||d==="")d="4U";ea[a]=d}14 ea[a]}12 fa(a){14 c.5h(a)?a:a.1g===9?a.7h||a.jt:1e}17 t=E.1x,c=12(){12 a(){if(!b.6C){1O{t.27.el("1J")}1N(j){3b(a,1);14}b.3r()}}17 b=12(j,s){14 35 b.fn.3V(j,s)},d=E.3z,e=E.$,f,h=/^(?:[^<]*(<[\\w\\W]+>)[^>]*$|#([\\w\\-]+)$)/,l=/\\S/,k=/^\\s+/,o=/\\s+$/,x=/\\W/,r=/\\d/,A=/^<(\\w+)\\s*\\/?>(?:<\\/\\1>)?$/,C=/^[\\],:{}\\s]*$/,J=/\\\\(?:["\\\\\\/j6]|u[0-9a-fA-F]{4})/g,w=/"[^"\\\\\\n\\r]*"|1c|1e|1b|-?\\d+(?:\\.\\d*)?(?:[eE][+\\-]?\\d+)?/g,I=/(?:^|:|,)(?:\\s*\\[)+/g,L=/(c5)[ \\/]([\\w.]+)/,g=/(jW)(?:.*5y)?[ \\/]([\\w.]+)/,i=/(k1) ([\\w.]+)/,n=/(jZ)(?:.*? jX:([\\w.]+))?/,m=jD.jJ,p=1e,q=[],u,y=6g.2v.3N,F=6g.2v.jI,M=39.2v.1H,N=39.2v.2A,O=9n.2v.5X,D=39.2v.23,R={};b.fn=b.2v={3V:12(j,s){17 v,z,H;if(!j)14 6;if(j.1g){6.2j=6[0]=j;6.18=1;14 6}if(j==="1P"&&!s&&t.1P){6.2j=t;6[0]=t.1P;6.2a="1P";6.18=1;14 6}if(1j j==="1F")if((v=h.1U(j))&&(v[1]||!s))if(v[1]){H=s?s.2t||s:t;if(z=A.1U(j))if(b.8k(s)){j=[t.1V(z[1])];b.fn.1r.1n(j,s,1c)}1a j=[H.1V(z[1])];1a{z=b.9H([v[1]],[H]);j=(z.a4?z.6y.4S(1c):z.6y).2M}14 b.5n(6,j)}1a{if((z=t.2L(v[2]))&&z.1p){if(z.id!==v[2])14 f.1S(j);6.18=1;6[0]=z}6.2j=t;6.2a=j;14 6}1a if(!s&&!x.1h(j)){6.2a=j;6.2j=t;j=t.1X(j);14 b.5n(6,j)}1a 14!s||s.6z?(s||f).1S(j):b(s).1S(j);1a if(b.1L(j))14 f.3r(j);if(j.2a!==B){6.2a=j.2a;6.2j=j.2j}14 b.3Z(j,6)},2a:"",6z:"1.4.4",18:0,j0:12(){14 6.18},83:12(){14 N.1n(6,0)},33:12(j){14 j==1b?6.83():j<0?6.2A(j)[0]:6[j]},3m:12(j,s,v){17 z=b();b.38(j)?M.22(z,j):b.5n(z,j);z.at=6;z.2j=6.2j;if(s==="1S")z.2a=6.2a+(6.2a?" ":"")+v;1a if(s)z.2a=6.2a+"."+s+"("+v+")";14 z},1m:12(j,s){14 b.1m(6,j,s)},3r:12(j){b.9v();if(b.6C)j.1n(t,b);1a q&&q.1H(j);14 6},eq:12(j){14 j===-1?6.2A(j):6.2A(j,+j+1)},5F:12(){14 6.eq(0)},7i:12(){14 6.eq(-1)},2A:12(){14 6.3m(N.22(6,1B),"2A",N.1n(1B).3X(","))},2Y:12(j){14 6.3m(b.2Y(6,12(s,v){14 j.1n(s,v,s)}))},3U:12(){14 6.at||b(1b)},1H:M,4F:[].4F,3n:[].3n};b.fn.3V.2v=b.fn;b.1E=b.fn.1E=12(){17 j,s,v,z,H,G=1B[0]||{},K=1,Q=1B.18,ga=1e;if(1j G==="7z"){ga=G;G=1B[1]||{};K=2}if(1j G!=="28"&&!b.1L(G))G={};if(Q===K){G=6;--K}19(;K<Q;K++)if((j=1B[K])!=1b)19(s in j){v=G[s];z=j[s];if(G!==z)if(ga&&z&&(b.8k(z)||(H=b.38(z)))){if(H){H=1e;v=v&&b.38(v)?v:[]}1a v=v&&b.8k(v)?v:{};G[s]=b.1E(ga,v,z)}1a if(z!==B)G[s]=z}14 G};b.1E({io:12(j){E.$=e;if(j)E.3z=d;14 b},6C:1e,8j:1,3r:12(j){j===1c&&b.8j--;if(!b.8j||j!==1c&&!b.6C){if(!t.1P)14 3b(b.3r,1);b.6C=1c;if(!(j!==1c&&--b.8j>0))if(q){17 s=0,v=q;19(q=1b;j=v[s++];)j.1n(t,b);b.fn.2T&&b(t).2T("3r").61("3r")}}},9v:12(){if(!p){p=1c;if(t.51==="3F")14 3b(b.3r,1);if(t.3w){t.3w("cg",u,1e);E.3w("4D",b.3r,1e)}1a if(t.3Q){t.3Q("4R",u);E.3Q("ah",b.3r);17 j=1e;1O{j=E.ei==1b}1N(s){}t.27.el&&j&&a()}}},1L:12(j){14 b.1l(j)==="12"},38:39.38||12(j){14 b.1l(j)==="hZ"},5h:12(j){14 j&&1j j==="28"&&"fu"in j},5T:12(j){14 j==1b||!r.1h(j)||5T(j)},1l:12(j){14 j==1b?9n(j):R[y.1n(j)]||"28"},8k:12(j){if(!j||b.1l(j)!=="28"||j.1g||b.5h(j))14 1e;if(j.7t&&!F.1n(j,"7t")&&!F.1n(j.7t.2v,"i6"))14 1e;19(17 s in j);14 s===B||F.1n(j,s)},5v:12(j){19(17 s in j)14 1e;14 1c},37:12(j){f8 j},8T:12(j){if(1j j!=="1F"||!j)14 1b;j=b.5X(j);if(C.1h(j.1v(J,"@").1v(w,"]").1v(I,"")))14 E.8l&&E.8l.eZ?E.8l.eZ(j):(35 9z("14 "+j))();1a b.37("iT 8l: "+j)},6o:12(){},95:12(j){if(j&&l.1h(j)){17 s=t.1X("bu")[0]||t.27,v=t.1V("2B");v.1l="1K/3R";if(b.1u.9j)v.2l(t.4h(j));1a v.1K=j;s.3p(v,s.1t);s.3q(v)}},1o:12(j,s){14 j.1o&&j.1o.8E()===s.8E()},1m:12(j,s,v){17 z,H=0,G=j.18,K=G===B||b.1L(j);if(v)if(K)19(z in j){if(s.22(j[z],v)===1e)2b}1a 19(;H<G;){if(s.22(j[H++],v)===1e)2b}1a if(K)19(z in j){if(s.1n(j[z],z,j[z])===1e)2b}1a 19(v=j[0];H<G&&s.1n(v,H,v)!==1e;v=j[++H]);14 j},5X:O?12(j){14 j==1b?"":O.1n(j)}:12(j){14 j==1b?"":j.3N().1v(k,"").1v(o,"")},3Z:12(j,s){17 v=s||[];if(j!=1b){17 z=b.1l(j);j.18==1b||z==="1F"||z==="12"||z==="iU"||b.5h(j)?M.1n(v,j):b.5n(v,j)}14 v},3H:12(j,s){if(s.23)14 s.23(j);19(17 v=0,z=s.18;v<z;v++)if(s[v]===j)14 v;14-1},5n:12(j,s){17 v=j.18,z=0;if(1j s.18==="4J")19(17 H=s.18;z<H;z++)j[v++]=s[z];1a 19(;s[z]!==B;)j[v++]=s[z++];j.18=v;14 j},5L:12(j,s,v){17 z=[],H;v=!!v;19(17 G=0,K=j.18;G<K;G++){H=!!s(j[G],G);v!==H&&z.1H(j[G])}14 z},2Y:12(j,s,v){19(17 z=[],H,G=0,K=j.18;G<K;G++){H=s(j[G],G,v);if(H!=1b)z[z.18]=H}14 z.8C.22([],z)},2h:1,62:12(j,s,v){if(1B.18===2)if(1j s==="1F"){v=j;j=v[s];s=B}1a if(s&&!b.1L(s)){v=s;s=B}if(!s&&j)s=12(){14 j.22(v||6,1B)};if(j)s.2h=j.2h=j.2h||s.2h||b.2h++;14 s},8K:12(j,s,v,z,H,G){17 K=j.18;if(1j s==="28"){19(17 Q in s)b.8K(j,Q,s[Q],z,H,v);14 j}if(v!==B){z=!G&&z&&b.1L(v);19(Q=0;Q<K;Q++)H(j[Q],s,z?v.1n(j[Q],Q,H(j[Q],s)):v,G);14 j}14 K?H(j[0],s):B},2O:12(){14(35 az).cj()},c6:12(j){j=j.1M();j=L.1U(j)||g.1U(j)||i.1U(j)||j.23("ix")<0&&n.1U(j)||[];14{4A:j[1]||"",5y:j[2]||"0"}},4A:{}});b.1m("iC iJ 9n 9z 39 az 4L 6g".2J(" "),12(j,s){R["[28 "+s+"]"]=s.1M()});m=b.c6(m);if(m.4A){b.4A[m.4A]=1c;b.4A.5y=m.5y}if(b.4A.c5)b.4A.lr=1c;if(D)b.3H=12(j,s){14 D.1n(s,j)};if(!/\\s/.1h("\\ls")){k=/^[\\s\\bX]+/;o=/[\\s\\bX]+$/}f=b(t);if(t.3w)u=12(){t.6e("cg",u,1e);b.3r()};1a if(t.3Q)u=12(){if(t.51==="3F"){t.8d("4R",u);b.3r()}};14 E.3z=E.$=b}();(12(){c.1u={};17 a=t.27,b=t.1V("2B"),d=t.1V("1A"),e="2B"+c.2O();d.1d.1D="2y";d.2X="  <30/><2C></2C><a 2R=\'/a\' 1d=\'2f:aX;88:1J;2o:.55;\'>a</a><2N 1l=\'52\'/>";17 f=d.1X("*"),h=d.1X("a")[0],l=t.1V("2V"),k=l.2l(t.1V("69"));if(!(!f||!f.18||!h)){c.1u={9L:d.1t.1g===3,3e:!d.1X("3e").18,cL:!!d.1X("30").18,1d:/aX/.1h(h.2s("1d")),fw:h.2s("2R")==="/a",2o:/^0.55$/.1h(h.1d.2o),7j:!!h.1d.7j,cu:d.1X("2N")[0].3g==="3u",ly:k.2G,8G:1c,9g:1e,81:1e,9j:1e,9R:1c,5Z:1b,ap:1e,9Y:1e,7d:1c};l.4m=1c;c.1u.9g=!k.4m;b.1l="1K/3R";1O{b.2l(t.4h("5g."+e+"=1;"))}1N(o){}a.3p(b,a.1t);if(E[e]){c.1u.9j=1c;3d E[e]}1O{3d b.1h}1N(x){c.1u.8G=1e}a.3q(b);if(d.3Q&&d.cp){d.3Q("9i",12 r(){c.1u.9R=1e;d.8d("9i",r)});d.4S(1c).cp("9i")}d=t.1V("1A");d.2X="<2N 1l=\'4B\' 36=\'lD\' 46=\'46\'/>";a=t.cP();a.2l(d.1t);c.1u.81=a.4S(1c).4S(1c).9T.46;c(12(){17 r=t.1V("1A");r.1d.1Q=r.1d.c3="58";t.1P.2l(r);c.5Z=c.1u.5Z=r.5B===2;if("6T"in r.1d){r.1d.1D="5w";r.1d.6T=1;c.1u.ap=r.5B===2;r.1d.1D="";r.2X="<1A 1d=\'1Q:lC;\'></1A>";c.1u.9Y=r.5B!==2}r.2X="<2C><4r><4l 1d=\'6a:0;1D:2y\'></4l><4l>t</4l></4r></2C>";17 A=r.1X("4l");c.1u.7d=A[0].8L===0;A[0].1d.1D="";A[1].1d.1D="2y";c.1u.7d=c.1u.7d&&A[0].8L===0;r.2X="";t.1P.3q(r).1d.1D="2y"});a=12(r){17 A=t.1V("1A");r="3u"+r;17 C=r in A;if(!C){A.2k(r,"14;");C=1j A[r]==="12"}14 C};c.1u.eP=a("4j");c.1u.eI=a("6m");a=b=d=f=h=1b}})();17 9d={},bG=/^(?:\\{.*\\}|\\[.*\\])$/;c.1E({3M:{},dk:0,3v:"3z"+c.2O(),77:{5p:1c,28:"le:lo-lG-lm-ll-lW",lV:1c},1k:12(a,b,d){if(c.9c(a)){a=a==E?9d:a;17 e=a.1g,f=e?a[c.3v]:1b,h=c.3M;if(!(e&&!f&&1j b==="1F"&&d===B)){if(e)f||(a[c.3v]=f=++c.dk);1a h=a;if(1j b==="28")if(e)h[f]=c.1E(h[f],b);1a c.1E(h,b);1a if(e&&!h[f])h[f]={};a=e?h[f]:h;if(d!==B)a[b]=d;14 1j b==="1F"?a[b]:a}}},5U:12(a,b){if(c.9c(a)){a=a==E?9d:a;17 d=a.1g,e=d?a[c.3v]:a,f=c.3M,h=d?f[e]:e;if(b){if(h){3d h[b];d&&c.5v(h)&&c.5U(a)}}1a if(d&&c.1u.8G)3d a[c.3v];1a if(a.56)a.56(c.3v);1a if(d)3d f[e];1a 19(17 l in a)3d a[l]}},9c:12(a){if(a.1o){17 b=c.77[a.1o.1M()];if(b)14!(b===1c||a.2s("hS")!==b)}14 1c}});c.fn.1E({1k:12(a,b){17 d=1b;if(1j a==="3o"){if(6.18){17 e=6[0].9B,f;d=c.1k(6[0]);19(17 h=0,l=e.18;h<l;h++){f=e[h].36;if(f.23("1k-")===0){f=f.4i(5);ka(6[0],f,d[f])}}}14 d}1a if(1j a==="28")14 6.1m(12(){c.1k(6,a)});17 k=a.2J(".");k[1]=k[1]?"."+k[1]:"";if(b===B){d=6.8o("k4"+k[1]+"!",[k[0]]);if(d===B&&6.18){d=c.1k(6[0],a);d=ka(6[0],a,d)}14 d===B&&k[1]?6.1k(k[0]):d}1a 14 6.1m(12(){17 o=c(6),x=[k[0],b];o.8o("kc"+k[1]+"!",x);c.1k(6,a,b);o.8o("ki"+k[1]+"!",x)})},5U:12(a){14 6.1m(12(){c.5U(6,a)})}});c.1E({3B:12(a,b,d){if(a){b=(b||"fx")+"3B";17 e=c.1k(a,b);if(!d)14 e||[];if(!e||c.38(d))e=c.1k(a,b,c.3Z(d));1a e.1H(d);14 e}},4y:12(a,b){b=b||"fx";17 d=c.3B(a,b),e=d.4o();if(e==="9f")e=d.4o();if(e){b==="fx"&&d.6Q("9f");e.1n(a,12(){c.4y(a,b)})}}});c.fn.1E({3B:12(a,b){if(1j a!=="1F"){b=a;a="fx"}if(b===B)14 c.3B(6[0],a);14 6.1m(12(){17 d=c.3B(6,a,b);a==="fx"&&d[0]!=="9f"&&c.4y(6,a)})},4y:12(a){14 6.1m(12(){c.4y(6,a)})},kX:12(a,b){a=c.fx?c.fx.6G[a]||a:a;b=b||"fx";14 6.3B(b,12(){17 d=6;3b(12(){c.4y(d,b)},a)})},kW:12(a){14 6.3B(a||"fx",[])}});17 9h=/[\\n\\t]/g,ha=/\\s+/,cB=/\\r/g,cF=/^(?:2R|4C|1d)$/,dd=/^(?:3y|2N)$/i,bL=/^(?:3y|2N|28|2V|7f)$/i,fF=/^a(?:kV)?$/i,9q=/^(?:4B|52)$/i;c.6L={"19":"fs","2H":"1R",kZ:"eH",l0:"l5",fE:"l3",kS:"kR",kF:"kD",kJ:"9r",kK:"kO",kM:"iH"};c.fn.1E({1r:12(a,b){14 c.8K(6,a,b,1c,c.1r)},hR:12(a){14 6.1m(12(){c.1r(6,a,"");6.1g===1&&6.56(a)})},6J:12(a){if(c.1L(a))14 6.1m(12(x){17 r=c(6);r.6J(a.1n(6,x,r.1r("2H")))});if(a&&1j a==="1F")19(17 b=(a||"").2J(ha),d=0,e=6.18;d<e;d++){17 f=6[d];if(f.1g===1)if(f.1R){19(17 h=" "+f.1R+" ",l=f.1R,k=0,o=b.18;k<o;k++)if(h.23(" "+b[k]+" ")<0)l+=" "+b[k];f.1R=c.5X(l)}1a f.1R=a}14 6},5x:12(a){if(c.1L(a))14 6.1m(12(o){17 x=c(6);x.5x(a.1n(6,o,x.1r("2H")))});if(a&&1j a==="1F"||a===B)19(17 b=(a||"").2J(ha),d=0,e=6.18;d<e;d++){17 f=6[d];if(f.1g===1&&f.1R)if(a){19(17 h=(" "+f.1R+" ").1v(9h," "),l=0,k=b.18;l<k;l++)h=h.1v(" "+b[l]+" "," ");f.1R=c.5X(h)}1a f.1R=""}14 6},cT:12(a,b){17 d=1j a,e=1j b==="7z";if(c.1L(a))14 6.1m(12(f){17 h=c(6);h.cT(a.1n(6,f,h.1r("2H"),b),b)});14 6.1m(12(){if(d==="1F")19(17 f,h=0,l=c(6),k=b,o=a.2J(ha);f=o[h++];){k=e?k:!l.2c(f);l[k?"6J":"5x"](f)}1a if(d==="3o"||d==="7z"){6.1R&&c.1k(6,"cY",6.1R);6.1R=6.1R||a===1e?"":c.1k(6,"cY")||""}})},2c:12(a){a=" "+a+" ";19(17 b=0,d=6.18;b<d;b++)if((" "+6[b].1R+" ").1v(9h," ").23(a)>-1)14 1c;14 1e},5a:12(a){if(!1B.18){17 b=6[0];if(b){if(c.1o(b,"69")){17 d=b.9B.3g;14!d||d.bS?b.3g:b.1K}if(c.1o(b,"2V")){17 e=b.8n;d=[];17 f=b.26;b=b.1l==="2V-6d";if(e<0)14 1b;17 h=b?e:0;19(e=b?e+1:f.18;h<e;h++){17 l=f[h];if(l.2G&&(c.1u.9g?!l.4m:l.2s("4m")===1b)&&(!l.1p.4m||!c.1o(l.1p,"cx"))){a=c(l).5a();if(b)14 a;d.1H(a)}}14 d}if(9q.1h(b.1l)&&!c.1u.cu)14 b.2s("3g")===1b?"3u":b.3g;14(b.3g||"").1v(cB,"")}14 B}17 k=c.1L(a);14 6.1m(12(o){17 x=c(6),r=a;if(6.1g===1){if(k)r=a.1n(6,o,x.5a());if(r==1b)r="";1a if(1j r==="4J")r+="";1a if(c.38(r))r=c.2Y(r,12(C){14 C==1b?"":C+""});if(c.38(r)&&9q.1h(6.1l))6.46=c.3H(x.5a(),r)>=0;1a if(c.1o(6,"2V")){17 A=c.3Z(r);c("69",6).1m(12(){6.2G=c.3H(c(6).5a(),A)>=0});if(!A.18)6.8n=-1}1a 6.3g=r}})}});c.1E({8u:{5a:1c,1y:1c,2q:1c,1K:1c,1k:1c,1Q:1c,2i:1c,2m:1c},1r:12(a,b,d,e){if(!a||a.1g===3||a.1g===8)14 B;if(e&&b in c.8u)14 c(a)[b](d);e=a.1g!==1||!c.9S(a);17 f=d!==B;b=e&&c.6L[b]||b;17 h=cF.1h(b);if((b in a||a[b]!==B)&&e&&!h){if(f){b==="1l"&&dd.1h(a.1o)&&a.1p&&c.37("1l gM h1\'t be h2");if(d===1b)a.1g===1&&a.56(b);1a a[b]=d}if(c.1o(a,"6P")&&a.57(b))14 a.57(b).7X;if(b==="9r")14(b=a.57("9r"))&&b.bS?b.3g:bL.1h(a.1o)||fF.1h(a.1o)&&a.2R?0:B;14 a[b]}if(!c.1u.1d&&e&&b==="1d"){if(f)a.1d.f9=""+d;14 a.1d.f9}f&&a.2k(b,""+d);if(!a.9B[b]&&a.eX&&!a.eX(b))14 B;a=!c.1u.fw&&e&&h?a.2s(b,2):a.2s(b);14 a===1b?B:a}});17 X=/\\.(.*)$/,ia=/^(?:7f|2N|2V)$/i,fB=/\\./g,fz=/ /g,ee=/[^\\w\\s.|`]/g,dW=12(a){14 a.1v(ee,"\\\\$&")},99={8x:0,5S:0};c.1q={31:12(a,b,d,e){if(!(a.1g===3||a.1g===8)){if(c.5h(a)&&a!==E&&!a.ei)a=E;if(d===1e)d=U;1a if(!d)14;17 f,h;if(d.2Z){f=d;d=f.2Z}if(!d.2h)d.2h=c.2h++;if(h=c.1k(a)){17 l=a.1g?"2P":"6E",k=h[l],o=h.2F;if(1j k==="12"){o=k.2F;k=k.2P}1a if(!k){a.1g||(h[l]=h=12(){});h.2P=k={}}if(!o)h.2F=o=12(){14 1j c!=="3o"&&!c.1q.9A?c.1q.2F.22(o.1w,1B):B};o.1w=a;b=b.2J(" ");19(17 x=0,r;l=b[x++];){h=f?c.1E({},f):{2Z:d,1k:e};if(l.23(".")>-1){r=l.2J(".");l=r.4o();h.44=r.2A(0).4F().3X(".")}1a{r=[];h.44=""}h.1l=l;if(!h.2h)h.2h=d.2h;17 A=k[l],C=c.1q.3Y[l]||{};if(!A){A=k[l]=[];if(!C.4P||C.4P.1n(a,e,r,o)===1e)if(a.3w)a.3w(l,o,1e);1a a.3Q&&a.3Q("3u"+l,o)}if(C.31){C.31.1n(a,h);if(!h.2Z.2h)h.2Z.2h=d.2h}A.1H(h);c.1q.3L[l]=1c}a=1b}}},3L:{},2I:12(a,b,d,e){if(!(a.1g===3||a.1g===8)){if(d===1e)d=U;17 f,h,l=0,k,o,x,r,A,C,J=a.1g?"2P":"6E",w=c.1k(a),I=w&&w[J];if(w&&I){if(1j I==="12"){w=I;I=I.2P}if(b&&b.1l){d=b.2Z;b=b.1l}if(!b||1j b==="1F"&&b.gO(0)==="."){b=b||"";19(f in I)c.1q.2I(a,f+b)}1a{19(b=b.2J(" ");f=b[l++];){r=f;k=f.23(".")<0;o=[];if(!k){o=f.2J(".");f=o.4o();x=4L("(^|\\\\.)"+c.2Y(o.2A(0).4F(),dW).3X("\\\\.(?:.*\\\\.)?")+"(\\\\.|$)")}if(A=I[f])if(d){r=c.1q.3Y[f]||{};19(h=e||0;h<A.18;h++){C=A[h];if(d.2h===C.2h){if(k||x.1h(C.44)){e==1b&&A.3n(h--,1);r.2I&&r.2I.1n(a,C)}if(e!=1b)2b}}if(A.18===0||e!=1b&&A.18===1){if(!r.4O||r.4O.1n(a,o)===1e)c.9Q(a,f,w.2F);3d I[f]}}1a 19(h=0;h<A.18;h++){C=A[h];if(k||x.1h(C.44)){c.1q.2I(a,r,C.2Z,h);A.3n(h--,1)}}}if(c.5v(I)){if(b=w.2F)b.1w=1b;3d w.2P;3d w.2F;if(1j w==="12")c.5U(a,J);1a c.5v(w)&&c.5U(a)}}}}},2T:12(a,b,d,e){17 f=a.1l||a;if(!e){a=1j a==="28"?a[c.3v]?a:c.1E(c.5e(f),a):c.5e(f);if(f.23("!")>=0){a.1l=f=f.2A(0,-1);a.e2=1c}if(!d){a.5c();c.1q.3L[f]&&c.1m(c.3M,12(){6.2P&&6.2P[f]&&c.1q.2T(a,b,6.2F.1w)})}if(!d||d.1g===3||d.1g===8)14 B;a.1W=B;a.2E=d;b=c.3Z(b);b.6Q(a)}a.6F=d;(e=d.1g?c.1k(d,"2F"):(c.1k(d,"6E")||{}).2F)&&e.22(d,b);e=d.1p||d.2t;1O{if(!(d&&d.1o&&c.77[d.1o.1M()]))if(d["3u"+f]&&d["3u"+f].22(d,b)===1e){a.1W=1e;a.43()}}1N(h){}if(!a.8e()&&e)c.1q.2T(a,b,e,1c);1a if(!a.8Z()){17 l;e=a.2E;17 k=f.1v(X,""),o=c.1o(e,"a")&&k==="4k",x=c.1q.3Y[k]||{};if((!x.3O||x.3O.1n(d,a)===1e)&&!o&&!(e&&e.1o&&c.77[e.1o.1M()])){1O{if(e[k]){if(l=e["3u"+k])e["3u"+k]=1b;c.1q.9A=1c;e[k]()}}1N(r){}if(l)e["3u"+k]=l;c.1q.9A=1e}}},2F:12(a){17 b,d,e,f;d=[];17 h=c.3Z(1B);a=h[0]=c.1q.94(a||E.1q);a.6F=6;b=a.1l.23(".")<0&&!a.e2;if(!b){e=a.1l.2J(".");a.1l=e.4o();d=e.2A(0).4F();e=4L("(^|\\\\.)"+d.3X("\\\\.(?:.*\\\\.)?")+"(\\\\.|$)")}a.44=a.44||d.3X(".");f=c.1k(6,6.1g?"2P":"6E");if(1j f==="12")f=f.2P;d=(f||{})[a.1l];if(f&&d){d=d.2A(0);f=0;19(17 l=d.18;f<l;f++){17 k=d[f];if(b||e.1h(k.44)){a.2Z=k.2Z;a.1k=k.1k;a.5Y=k;k=k.2Z.22(6,h);if(k!==B){a.1W=k;if(k===1e){a.43();a.5c()}}if(a.8g())2b}}}14 a.1W},6L:"hM ho hp hj 3y hq 8h 9E eC 9t 6F 1k hx ht 8i 2Z 4H fO fN 9y fL gD l8 6W 7R fZ fY 6u fX g2 fQ ez 2E eB gG gE 6M".2J(" "),94:12(a){if(a[c.3v])14 a;17 b=a;a=c.5e(b);19(17 d=6.6L.18,e;d;){e=6.6L[--d];a[e]=b[e]}if(!a.2E)a.2E=a.ez||t;if(a.2E.1g===3)a.2E=a.2E.1p;if(!a.6u&&a.8i)a.6u=a.8i===a.2E?a.eB:a.8i;if(a.6W==1b&&a.9E!=1b){b=t.27;d=t.1P;a.6W=a.9E+(b&&b.4w||d&&d.4w||0)-(b&&b.7H||d&&d.7H||0);a.7R=a.eC+(b&&b.4t||d&&d.4t||0)-(b&&b.7B||d&&d.7B||0)}if(a.6M==1b&&(a.8h!=1b||a.4H!=1b))a.6M=a.8h!=1b?a.8h:a.4H;if(!a.9y&&a.9t)a.9y=a.9t;if(!a.6M&&a.3y!==B)a.6M=a.3y&1?1:a.3y&2?3:a.3y&4?2:0;14 a},2h:gc,62:c.62,3Y:{3r:{4P:c.9v,4O:c.6o},4q:{31:12(a){c.1q.31(6,Y(a.8v,a.2a),c.1E({},a,{2Z:ep,2h:a.2Z.2h}))},2I:12(a){c.1q.2I(6,Y(a.8v,a.2a),a)}},gq:{4P:12(a,b,d){if(c.5h(6))6.9b=d},4O:12(a,b){if(6.9b===b)6.9b=1b}}}};c.9Q=t.6e?12(a,b,d){a.6e&&a.6e(b,d,1e)}:12(a,b,d){a.8d&&a.8d("3u"+b,d)};c.5e=12(a){if(!6.43)14 35 c.5e(a);if(a&&a.1l){6.9F=a;6.1l=a.1l}1a 6.1l=a;6.gF=c.2O();6[c.3v]=1c};c.5e.2v={43:12(){6.8Z=ca;17 a=6.9F;if(a)if(a.43)a.43();1a a.gz=1e},5c:12(){6.8e=ca;17 a=6.9F;if(a){a.5c&&a.5c();a.gx=1c}},g3:12(){6.8g=ca;6.5c()},8Z:U,8e:U,8g:U};17 98=12(a){17 b=a.6u;1O{19(;b&&b!==6;)b=b.1p;if(b!==6){a.1l=a.1k;c.1q.2F.22(6,1B)}}1N(d){}},8U=12(a){a.1l=a.1k;c.1q.2F.22(6,1B)};c.1m({5R:"aA",5I:"ai"},12(a,b){c.1q.3Y[a]={4P:12(d){c.1q.31(6,b,d&&d.2a?8U:98,a)},4O:12(d){c.1q.2I(6,b,d&&d.2a?8U:98)}}});if(!c.1u.eP)c.1q.3Y.4j={4P:12(){if(6.1o.1M()!=="6P"){c.1q.31(6,"4k.93",12(a){17 b=a.2E,d=b.1l;if((d==="4j"||d==="3k")&&c(b).65("6P").18){a.6O=B;14 la("4j",6,1B)}});c.1q.31(6,"eg.93",12(a){17 b=a.2E,d=b.1l;if((d==="1K"||d==="6f")&&c(b).65("6P").18&&a.4H===13){a.6O=B;14 la("4j",6,1B)}})}1a 14 1e},4O:12(){c.1q.2I(6,".93")}};if(!c.1u.eI){17 V,90=12(a){17 b=a.1l,d=a.3g;if(b==="4B"||b==="52")d=a.46;1a if(b==="2V-89")d=a.8n>-1?c.2Y(a.26,12(e){14 e.2G}).3X("-"):"";1a if(a.1o.1M()==="2V")d=a.8n;14 d},Z=12(a,b){17 d=a.2E,e,f;if(!(!ia.1h(d.1o)||d.eH)){e=c.1k(d,"8W");f=90(d);if(a.1l!=="5S"||d.1l!=="4B")c.1k(d,"8W",f);if(!(e===B||f===e))if(e!=1b||f){a.1l="6m";a.6O=B;14 c.1q.2T(a,b,d)}}};c.1q.3Y.6m={3I:{5S:Z,hs:Z,4k:12(a){17 b=a.2E,d=b.1l;if(d==="4B"||d==="52"||b.1o.1M()==="2V")14 Z.1n(6,a)},aS:12(a){17 b=a.2E,d=b.1l;if(a.4H===13&&b.1o.1M()!=="7f"||a.4H===32&&(d==="52"||d==="4B")||d==="2V-89")14 Z.1n(6,a)},eo:12(a){a=a.2E;c.1k(a,"8W",90(a))}},4P:12(){if(6.1l==="6r")14 1e;19(17 a in V)c.1q.31(6,a+".eK",V[a]);14 ia.1h(6.1o)},4O:12(){c.1q.2I(6,".eK");14 ia.1h(6.1o)}};V=c.1q.3Y.6m.3I;V.6k=V.eo}t.3w&&c.1m({6k:"8x",5z:"5S"},12(a,b){12 d(e){e=c.1q.94(e);e.1l=b;14 c.1q.2T(e,1b,e.2E)}c.1q.3Y[b]={4P:12(){99[b]++===0&&t.3w(a,d,1c)},4O:12(){--99[b]===0&&t.6e(a,d,1c)}}});c.1m(["8B","6d"],12(a,b){c.fn[b]=12(d,e,f){if(1j d==="28"){19(17 h in d)6[b](h,e,d[h],f);14 6}if(c.1L(e)||e===1e){f=e;e=B}17 l=b==="6d"?c.62(f,12(o){c(6).61(o,l);14 f.22(6,1B)}):f;if(d==="aj"&&b!=="6d")6.6d(d,e,f);1a{h=0;19(17 k=6.18;h<k;h++)c.1q.31(6[h],d,l,e)}14 6}});c.fn.1E({61:12(a,b){if(1j a==="28"&&!a.43)19(17 d in a)6.61(d,a[d]);1a{d=0;19(17 e=6.18;d<e;d++)c.1q.2I(6[d],a,b)}14 6},hO:12(a,b,d,e){14 6.4q(b,d,e,a)},hQ:12(a,b,d){14 1B.18===0?6.61("4q"):6.e3(b,1b,d,a)},2T:12(a,b){14 6.1m(12(){c.1q.2T(a,b,6)})},8o:12(a,b){if(6[0]){17 d=c.5e(a);d.43();d.5c();c.1q.2T(d,b,6[0]);14 d.1W}},4p:12(a){19(17 b=1B,d=1;d<b.18;)c.62(a,b[d++]);14 6.4k(c.62(a,12(e){17 f=(c.1k(6,"dZ"+a.2h)||0)%d;c.1k(6,"dZ"+a.2h,f+1);e.43();14 b[f].22(6,1B)||1e}))},dX:12(a,b){14 6.5R(a).5I(b||a)}});17 97={6k:"8x",5z:"5S",5R:"aA",5I:"ai"};c.1m(["4q","e3"],12(a,b){c.fn[b]=12(d,e,f,h){17 l,k=0,o,x,r=h||6.2a;h=h?6:c(6.2j);if(1j d==="28"&&!d.43){19(l in d)h[b](l,e,d[l],r);14 6}if(c.1L(e)){f=e;e=B}19(d=(d||"").2J(" ");(l=d[k++])!=1b;){o=X.1U(l);x="";if(o){x=o[0];l=l.1v(X,"")}if(l==="dX")d.1H("5R"+x,"5I"+x);1a{o=l;if(l==="6k"||l==="5z"){d.1H(97[l]+x);l+=x}1a l=(97[l]||l)+x;if(b==="4q"){x=0;19(17 A=h.18;x<A;x++)c.1q.31(h[x],"4q."+Y(l,r),{1k:e,2a:r,2Z:f,8v:l,dS:f,8w:o})}1a h.61("4q."+Y(l,r),f)}}14 6}});c.1m("5z 6k 8x 5S 4D 8A 7J aj 4k gP gK gI gL aA ai 5R 5I 6m 2V 4j aS eg hc 37".2J(" "),12(a,b){c.fn[b]=12(d,e){if(e==1b){e=d;d=1b}14 1B.18>0?6.8B(b,d,e):6.2T(b)};if(c.8u)c.8u[b]=1c});E.3Q&&!E.3w&&c(E).8B("aj",12(){19(17 a in c.3M)if(c.3M[a].2F)1O{c.1q.2I(c.3M[a].2F.1w)}1N(b){}});(12(){12 a(g,i,n,m,p,q){p=0;19(17 u=m.18;p<u;p++){17 y=m[p];if(y){17 F=1e;19(y=y[g];y;){if(y.5K===n){F=m[y.8t];2b}if(y.1g===1&&!q){y.5K=n;y.8t=p}if(y.1o.1M()===i){F=y;2b}y=y[g]}m[p]=F}}}12 b(g,i,n,m,p,q){p=0;19(17 u=m.18;p<u;p++){17 y=m[p];if(y){17 F=1e;19(y=y[g];y;){if(y.5K===n){F=m[y.8t];2b}if(y.1g===1){if(!q){y.5K=n;y.8t=p}if(1j i!=="1F"){if(y===i){F=1c;2b}}1a if(k.1Z(i,[y]).18>0){F=y;2b}}y=y[g]}m[p]=F}}}17 d=/((?:\\((?:\\([^()]+\\)|[^()]+)+\\)|\\[(?:\\[[^\\[\\]]*\\]|[\'"][^\'"]*[\'"]|[^\\[\\]\'"]+)+\\]|\\\\.|[^ >+~,(\\[\\\\]+)+|[>+~])(\\s*,\\s*)?((?:.|\\r|\\n)*)/g,e=0,f=6g.2v.3N,h=1e,l=1c;[0,0].4F(12(){l=1e;14 0});17 k=12(g,i,n,m){n=n||[];17 p=i=i||t;if(i.1g!==1&&i.1g!==9)14[];if(!g||1j g!=="1F")14 n;17 q,u,y,F,M,N=1c,O=k.5N(i),D=[],R=g;do{d.1U("");if(q=d.1U(R)){R=q[3];D.1H(q[1]);if(q[2]){F=q[3];2b}}}eQ(q);if(D.18>1&&x.1U(g))if(D.18===2&&o.4b[D[0]])u=L(D[0]+D[1],i);1a 19(u=o.4b[D[0]]?[i]:k(D.4o(),i);D.18;){g=D.4o();if(o.4b[g])g+=D.4o();u=L(g,u)}1a{if(!m&&D.18>1&&i.1g===9&&!O&&o.2e.4n.1h(D[0])&&!o.2e.4n.1h(D[D.18-1])){q=k.1S(D.4o(),i,O);i=q.2w?k.1Z(q.2w,q.48)[0]:q.48[0]}if(i){q=m?{2w:D.8p(),48:C(m)}:k.1S(D.8p(),D.18===1&&(D[0]==="~"||D[0]==="+")&&i.1p?i.1p:i,O);u=q.2w?k.1Z(q.2w,q.48):q.48;if(D.18>0)y=C(u);1a N=1e;19(;D.18;){q=M=D.8p();if(o.4b[M])q=D.8p();1a M="";if(q==1b)q=i;o.4b[M](y,q,O)}}1a y=[]}y||(y=u);y||k.37(M||g);if(f.1n(y)==="[28 39]")if(N)if(i&&i.1g===1)19(g=0;y[g]!=1b;g++){if(y[g]&&(y[g]===1c||y[g].1g===1&&k.3G(i,y[g])))n.1H(u[g])}1a 19(g=0;y[g]!=1b;g++)y[g]&&y[g].1g===1&&n.1H(u[g]);1a n.1H.22(n,y);1a C(y,n);if(F){k(F,p,n,m);k.ao(n)}14 n};k.ao=12(g){if(w){h=l;g.4F(w);if(h)19(17 i=1;i<g.18;i++)g[i]===g[i-1]&&g.3n(i--,1)}14 g};k.cJ=12(g,i){14 k(g,1b,1b,i)};k.7k=12(g,i){14 k(i,1b,1b,[g]).18>0};k.1S=12(g,i,n){17 m;if(!g)14[];19(17 p=0,q=o.7Y.18;p<q;p++){17 u,y=o.7Y[p];if(u=o.7O[y].1U(g)){17 F=u[1];u.3n(1,1);if(F.4i(F.18-1)!=="\\\\"){u[1]=(u[1]||"").1v(/\\\\/g,"");m=o.1S[y](u,i,n);if(m!=1b){g=g.1v(o.2e[y],"");2b}}}}m||(m=i.1X("*"));14{48:m,2w:g}};k.1Z=12(g,i,n,m){19(17 p,q,u=g,y=[],F=i,M=i&&i[0]&&k.5N(i[0]);g&&i.18;){19(17 N in o.1Z)if((p=o.7O[N].1U(g))!=1b&&p[2]){17 O,D,R=o.1Z[N];D=p[1];q=1e;p.3n(1,1);if(D.4i(D.18-1)!=="\\\\"){if(F===y)y=[];if(o.a9[N])if(p=o.a9[N](p,F,n,y,m,M)){if(p===1c)b1}1a q=O=1c;if(p)19(17 j=0;(D=F[j])!=1b;j++)if(D){O=R(D,p,j,F);17 s=m^!!O;if(n&&O!=1b)if(s)q=1c;1a F[j]=1e;1a if(s){y.1H(D);q=1c}}if(O!==B){n||(F=y);g=g.1v(o.2e[N],"");if(!q)14[];2b}}}if(g===u)if(q==1b)k.37(g);1a 2b;u=g}14 F};k.37=12(g){f8"ci 37, ce ck: "+g};17 o=k.dq={7Y:["4n","9G","5P"],2e:{4n:/#((?:[\\w\\5H-\\5G\\-]|\\\\.)+)/,78:/\\.((?:[\\w\\5H-\\5G\\-]|\\\\.)+)/,9G:/\\[36=[\'"]*((?:[\\w\\5H-\\5G\\-]|\\\\.)+)[\'"]*\\]/,an:/\\[\\s*((?:[\\w\\5H-\\5G\\-]|\\\\.)+)\\s*(?:(\\S?=)\\s*([\'"]*)(.*?)\\3|)\\s*\\]/,5P:/^((?:[\\w\\5H-\\5G\\*\\-]|\\\\.)+)/,8b:/:(c7|4x|7i|5F)-hI(?:\\((8r|8s|[\\dn+\\-]*)\\))?/,5l:/:(4x|eq|gt|lt|5F|7i|8r|8s)(?:\\((\\d*)\\))?(?=[^\\-]|$)/,5O:/:((?:[\\w\\5H-\\5G\\-]|\\\\.)+)(?:\\(([\'"]?)((?:\\([^\\)]+\\)|[^\\(\\)]*)+)\\2\\))?/},7O:{},a8:{"2H":"1R","19":"fs"},8z:{2R:12(g){14 g.2s("2R")}},4b:{"+":12(g,i){17 n=1j i==="1F",m=n&&!/\\W/.1h(i);n=n&&!m;if(m)i=i.1M();m=0;19(17 p=g.18,q;m<p;m++)if(q=g[m]){19(;(q=q.6b)&&q.1g!==1;);g[m]=n||q&&q.1o.1M()===i?q||1e:q===i}n&&k.1Z(i,g,1c)},">":12(g,i){17 n,m=1j i==="1F",p=0,q=g.18;if(m&&!/\\W/.1h(i))19(i=i.1M();p<q;p++){if(n=g[p]){n=n.1p;g[p]=n.1o.1M()===i?n:1e}}1a{19(;p<q;p++)if(n=g[p])g[p]=m?n.1p:n.1p===i;m&&k.1Z(i,g,1c)}},"":12(g,i,n){17 m,p=e++,q=b;if(1j i==="1F"&&!/\\W/.1h(i)){m=i=i.1M();q=a}q("1p",i,p,g,m,n)},"~":12(g,i,n){17 m,p=e++,q=b;if(1j i==="1F"&&!/\\W/.1h(i)){m=i=i.1M();q=a}q("6b",i,p,g,m,n)}},1S:{4n:12(g,i,n){if(1j i.2L!=="3o"&&!n)14(g=i.2L(g[1]))&&g.1p?[g]:[]},9G:12(g,i){if(1j i.fl!=="3o"){19(17 n=[],m=i.fl(g[1]),p=0,q=m.18;p<q;p++)m[p].2s("36")===g[1]&&n.1H(m[p]);14 n.18===0?1b:n}},5P:12(g,i){14 i.1X(g[1])}},a9:{78:12(g,i,n,m,p,q){g=" "+g[1].1v(/\\\\/g,"")+" ";if(q)14 g;q=0;19(17 u;(u=i[q])!=1b;q++)if(u)if(p^(u.1R&&(" "+u.1R+" ").1v(/[\\t\\n]/g," ").23(g)>=0))n||m.1H(u);1a if(n)i[q]=1e;14 1e},4n:12(g){14 g[1].1v(/\\\\/g,"")},5P:12(g){14 g[1].1M()},8b:12(g){if(g[1]==="4x"){17 i=/(-?)(\\d*)n((?:\\+|-)?\\d*)/.1U(g[2]==="8r"&&"2n"||g[2]==="8s"&&"2n+1"||!/\\D/.1h(g[2])&&"hw+"+g[2]||g[2]);g[2]=i[1]+(i[2]||1)-0;g[3]=i[3]-0}g[0]=e++;14 g},an:12(g,i,n,m,p,q){i=g[1].1v(/\\\\/g,"");if(!q&&o.a8[i])g[1]=o.a8[i];if(g[2]==="~=")g[4]=" "+g[4]+" ";14 g},5O:12(g,i,n,m,p){if(g[1]==="70")if((d.1U(g[3])||"").18>1||/^\\w/.1h(g[3]))g[3]=k(g[3],1b,1b,i);1a{g=k.1Z(g[3],i,n,1c^p);n||m.1H.22(m,g);14 1e}1a if(o.2e.5l.1h(g[0])||o.2e.8b.1h(g[0]))14 1c;14 g},5l:12(g){g.6Q(1c);14 g}},3I:{fW:12(g){14 g.4m===1e&&g.1l!=="3j"},4m:12(g){14 g.4m===1c},46:12(g){14 g.46===1c},2G:12(g){14 g.2G===1c},6D:12(g){14!!g.1t},6q:12(g){14!g.1t},7w:12(g,i,n){14!!k(n[3],g).18},ge:12(g){14/h\\d/i.1h(g.1o)},1K:12(g){14"1K"===g.1l},4B:12(g){14"4B"===g.1l},52:12(g){14"52"===g.1l},6r:12(g){14"6r"===g.1l},6f:12(g){14"6f"===g.1l},4j:12(g){14"4j"===g.1l},3k:12(g){14"3k"===g.1l},fH:12(g){14"fH"===g.1l},3y:12(g){14"3y"===g.1l||g.1o.1M()==="3y"},2N:12(g){14/2N|2V|7f|3y/i.1h(g.1o)}},c0:{5F:12(g,i){14 i===0},7i:12(g,i,n,m){14 i===m.18-1},8r:12(g,i){14 i%2===0},8s:12(g,i){14 i%2===1},lt:12(g,i,n){14 i<n[3]-0},gt:12(g,i,n){14 i>n[3]-0},4x:12(g,i,n){14 n[3]-0===i},eq:12(g,i,n){14 n[3]-0===i}},1Z:{5O:12(g,i,n,m){17 p=i[1],q=o.3I[p];if(q)14 q(g,n,i,m);1a if(p==="3G")14(g.bE||g.gp||k.86([g])||"").23(i[3])>=0;1a if(p==="70"){i=i[3];n=0;19(m=i.18;n<m;n++)if(i[n]===g)14 1e;14 1c}1a k.37("ci 37, ce ck: "+p)},8b:12(g,i){17 n=i[1],m=g;fS(n){7U"c7":7U"5F":19(;m=m.6b;)if(m.1g===1)14 1e;if(n==="5F")14 1c;m=g;7U"7i":19(;m=m.2W;)if(m.1g===1)14 1e;14 1c;7U"4x":n=i[2];17 p=i[3];if(n===1&&p===0)14 1c;17 q=i[0],u=g.1p;if(u&&(u.5K!==q||!g.am)){17 y=0;19(m=u.1t;m;m=m.2W)if(m.1g===1)m.am=++y;u.5K=q}m=g.am-p;14 n===0?m===0:m%n===0&&m/n>=0}},4n:12(g,i){14 g.1g===1&&g.2s("id")===i},5P:12(g,i){14 i==="*"&&g.1g===1||g.1o.1M()===i},78:12(g,i){14(" "+(g.1R||g.2s("2H"))+" ").23(i)>-1},an:12(g,i){17 n=i[1];n=o.8z[n]?o.8z[n](g):g[n]!=1b?g[n]:g.2s(n);17 m=n+"",p=i[2],q=i[4];14 n==1b?p==="!=":p==="="?m===q:p==="*="?m.23(q)>=0:p==="~="?(" "+m+" ").23(q)>=0:!q?m&&n!==1e:p==="!="?m!==q:p==="^="?m.23(q)===0:p==="$="?m.4i(m.18-q.18)===q:p==="|="?m===q||m.4i(0,q.18+1)===q+"-":1e},5l:12(g,i,n,m){17 p=o.c0[i[2]];if(p)14 p(g,n,i,m)}}},x=o.2e.5l,r=12(g,i){14"\\\\"+(i-0+1)},A;19(A in o.2e){o.2e[A]=4L(o.2e[A].7P+/(?![^\\[]*\\])(?![^\\(]*\\))/.7P);o.7O[A]=4L(/(^(?:.|\\r|\\n)*?)/.7P+o.2e[A].7P.1v(/\\\\(\\d+)/g,r))}17 C=12(g,i){g=39.2v.2A.1n(g,0);if(i){i.1H.22(i,g);14 i}14 g};1O{39.2v.2A.1n(t.27.2M,0)}1N(J){C=12(g,i){17 n=0,m=i||[];if(f.1n(g)==="[28 39]")39.2v.1H.22(m,g);1a if(1j g.18==="4J")19(17 p=g.18;n<p;n++)m.1H(g[n]);1a 19(;g[n];n++)m.1H(g[n]);14 m}}17 w,I;if(t.27.5f)w=12(g,i){if(g===i){h=1c;14 0}if(!g.5f||!i.5f)14 g.5f?-1:1;14 g.5f(i)&4?-1:1};1a{w=12(g,i){17 n,m,p=[],q=[];n=g.1p;m=i.1p;17 u=n;if(g===i){h=1c;14 0}1a if(n===m)14 I(g,i);1a if(n){if(!m)14 1}1a 14-1;19(;u;){p.6Q(u);u=u.1p}19(u=m;u;){q.6Q(u);u=u.1p}n=p.18;m=q.18;19(u=0;u<n&&u<m;u++)if(p[u]!==q[u])14 I(p[u],q[u]);14 u===n?I(g,q[u],-1):I(p[u],i,1)};I=12(g,i,n){if(g===i)14 n;19(g=g.2W;g;){if(g===i)14-1;g=g.2W}14 1}}k.86=12(g){19(17 i="",n,m=0;g[m];m++){n=g[m];if(n.1g===3||n.1g===4)i+=n.7X;1a if(n.1g!==8)i+=k.86(n.2M)}14 i};(12(){17 g=t.1V("1A"),i="2B"+(35 az).cj(),n=t.27;g.2X="<a 36=\'"+i+"\'/>";n.3p(g,n.1t);if(t.2L(i)){o.1S.4n=12(m,p,q){if(1j p.2L!=="3o"&&!q)14(p=p.2L(m[1]))?p.id===m[1]||1j p.57!=="3o"&&p.57("id").7X===m[1]?[p]:B:[]};o.1Z.4n=12(m,p){17 q=1j m.57!=="3o"&&m.57("id");14 m.1g===1&&q&&q.7X===p}}n.3q(g);n=g=1b})();(12(){17 g=t.1V("1A");g.2l(t.h5(""));if(g.1X("*").18>0)o.1S.5P=12(i,n){17 m=n.1X(i[1]);if(i[1]==="*"){19(17 p=[],q=0;m[q];q++)m[q].1g===1&&p.1H(m[q]);m=p}14 m};g.2X="<a 2R=\'#\'></a>";if(g.1t&&1j g.1t.2s!=="3o"&&g.1t.2s("2R")!=="#")o.8z.2R=12(i){14 i.2s("2R",2)};g=1b})();t.6Z&&12(){17 g=k,i=t.1V("1A");i.2X="<p 2H=\'bF\'></p>";if(!(i.6Z&&i.6Z(".bF").18===0)){k=12(m,p,q,u){p=p||t;m=m.1v(/\\=\\s*([^\'"\\]]*)\\s*\\]/g,"=\'$1\']");if(!u&&!k.5N(p))if(p.1g===9)1O{14 C(p.6Z(m),q)}1N(y){}1a if(p.1g===1&&p.1o.1M()!=="28"){17 F=p.2s("id"),M=F||"h3";F||p.2k("id",M);1O{14 C(p.6Z("#"+M+" "+m),q)}1N(N){}h0{F||p.56("id")}}14 g(m,p,q,u)};19(17 n in g)k[n]=g[n];i=1b}}();(12(){17 g=t.27,i=g.7k||g.h6||g.h7||g.hf,n=1e;1O{i.1n(t.27,"[1h!=\'\']:hg")}1N(m){n=1c}if(i)k.7k=12(p,q){q=q.1v(/\\=\\s*([^\'"\\]]*)\\s*\\]/g,"=\'$1\']");if(!k.5N(p))1O{if(n||!o.2e.5O.1h(q)&&!/!=/.1h(q))14 i.1n(p,q)}1N(u){}14 k(q,1b,1b,[p]).18>0}})();(12(){17 g=t.1V("1A");g.2X="<1A 2H=\'1h e\'></1A><1A 2H=\'1h\'></1A>";if(!(!g.76||g.76("e").18===0)){g.9T.1R="e";if(g.76("e").18!==1){o.7Y.3n(1,0,"78");o.1S.78=12(i,n,m){if(1j n.76!=="3o"&&!m)14 n.76(i[1])};g=1b}}})();k.3G=t.27.3G?12(g,i){14 g!==i&&(g.3G?g.3G(i):1c)}:t.27.5f?12(g,i){14!!(g.5f(i)&16)}:12(){14 1e};k.5N=12(g){14(g=(g?g.2t||g:0).27)?g.1o!=="gY":1e};17 L=12(g,i){19(17 n,m=[],p="",q=i.1g?[i]:i;n=o.2e.5O.1U(g);){p+=n[0];g=g.1v(o.2e.5O,"")}g=o.4b[g]?g+"*":g;n=0;19(17 u=q.18;n<u;n++)k(g,q[n],m);14 k.1Z(p,m)};c.1S=k;c.2w=k.dq;c.2w[":"]=c.2w.3I;c.87=k.ao;c.1K=k.86;c.9S=k.5N;c.3G=k.3G})();17 d6=/gJ$/,$a=/^(?:dw|dz|dO)/,ab=/,/,cq=/^.[^:#\\[\\.,]*$/,bb=39.2v.2A,cb=c.2w.2e.5l;c.fn.1E({1S:12(a){19(17 b=6.3m("","1S",a),d=0,e=0,f=6.18;e<f;e++){d=b.18;c.1S(a,6[e],b);if(e>0)19(17 h=d;h<b.18;h++)19(17 l=0;l<d;l++)if(b[l]===b[h]){b.3n(h--,1);2b}}14 b},7w:12(a){17 b=c(a);14 6.1Z(12(){19(17 d=0,e=b.18;d<e;d++)if(c.3G(6,b[d]))14 1c})},70:12(a){14 6.3m(as(6,a,1e),"70",a)},1Z:12(a){14 6.3m(as(6,a,1c),"1Z",a)},is:12(a){14!!a&&c.1Z(a,6).18>0},65:12(a,b){17 d=[],e,f,h=6[0];if(c.38(a)){17 l,k={},o=1;if(h&&a.18){e=0;19(f=a.18;e<f;e++){l=a[e];k[l]||(k[l]=c.2w.2e.5l.1h(l)?c(l,b||6.2j):l)}19(;h&&h.2t&&h!==b;){19(l in k){e=k[l];if(e.6z?e.3l(h)>-1:c(h).is(e))d.1H({2a:l,1w:h,72:o})}h=h.1p;o++}}14 d}l=cb.1h(a)?c(a,b||6.2j):1b;e=0;19(f=6.18;e<f;e++)19(h=6[e];h;)if(l?l.3l(h)>-1:c.1S.7k(h,a)){d.1H(h);2b}1a{h=h.1p;if(!h||!h.2t||h===b)2b}d=d.18>1?c.87(d):d;14 6.3m(d,"65",a)},3l:12(a){if(!a||1j a==="1F")14 c.3H(6[0],a?c(a):6.6D().1I());14 c.3H(a.6z?a[0]:a,6)},31:12(a,b){17 d=1j a==="1F"?c(a,b||6.2j):c.3Z(a),e=c.5n(6.33(),d);14 6.3m(!d[0]||!d[0].1p||d[0].1p.1g===11||!e[0]||!e[0].1p||e[0].1p.1g===11?e:c.87(e))},hh:12(){14 6.31(6.at)}});c.1m({6D:12(a){14(a=a.1p)&&a.1g!==11?a:1b},dw:12(a){14 c.4V(a,"1p")},hG:12(a,b,d){14 c.4V(a,"1p",d)},hF:12(a){14 c.4x(a,2,"2W")},hE:12(a){14 c.4x(a,2,"6b")},hK:12(a){14 c.4V(a,"2W")},dO:12(a){14 c.4V(a,"6b")},hL:12(a,b,d){14 c.4V(a,"2W",d)},dz:12(a,b,d){14 c.4V(a,"6b",d)},hA:12(a){14 c.9P(a.1p.1t,a)},1I:12(a){14 c.9P(a.1t)},b0:12(a){14 c.1o(a,"hn")?a.hm||a.gH.1x:c.3Z(a.2M)}},12(a,b){c.fn[a]=12(d,e){17 f=c.2Y(6,b,d);d6.1h(a)||(e=d);if(e&&1j e==="1F")f=c.1Z(e,f);f=6.18>1?c.87(f):f;if((6.18>1||ab.1h(e))&&$a.1h(a))f=f.hz();14 6.3m(f,a,bb.1n(1B).3X(","))}});c.1E({1Z:12(a,b,d){if(d)a=":70("+a+")";14 b.18===1?c.1S.7k(b[0],a)?[b[0]]:[]:c.1S.cJ(a,b)},4V:12(a,b,d){17 e=[];19(a=a[b];a&&a.1g!==9&&(d===B||a.1g!==1||!c(a).is(d));){a.1g===1&&e.1H(a);a=a[b]}14 e},4x:12(a,b,d){b=b||1;19(17 e=0;a;a=a[d])if(a.1g===1&&++e===b)2b;14 a},9P:12(a,b){19(17 d=[];a;a=a.2W)a.1g===1&&a!==b&&d.1H(a);14 d}});17 9M=/ 3z\\d+="(?:\\d+|1b)"/g,$=/^\\s+/,al=/<(?!cw|br|cr|5p|hr|4s|2N|30|g6|53)(([\\w:]+)[^>]*)\\/>/ig,9W=/<([\\w:]+)/,db=/<3e/i,eb=/<|&#?\\w+;/,9K=/<(?:2B|28|5p|69|1d)/i,a3=/46\\s*(?:[^=]|=\\s*.46.)/i,fb=/\\=([^="\'>\\s]+\\/)>/g,P={69:[1,"<2V 89=\'89\'>","</2V>"],fV:[1,"<ct>","</ct>"],cy:[1,"<2C>","</2C>"],4r:[2,"<2C><3e>","</3e></2C>"],4l:[3,"<2C><3e><4r>","</4r></3e></2C>"],cr:[2,"<2C><3e></3e><9O>","</9O></2C>"],cw:[1,"<2Y>","</2Y>"],3O:[0,"",""]};P.cx=P.69;P.3e=P.fP=P.9O=P.fR=P.cy;P.e7=P.4l;if(!c.1u.cL)P.3O=[1,"1A<1A>","</1A>"];c.fn.1E({1K:12(a){if(c.1L(a))14 6.1m(12(b){17 d=c(6);d.1K(a.1n(6,b,d.1K()))});if(1j a!=="28"&&a!==B)14 6.6q().4c((6[0]&&6[0].2t||t).4h(a));14 c.1K(6)},84:12(a){if(c.1L(a))14 6.1m(12(d){c(6).84(a.1n(6,d))});if(6[0]){17 b=c(a,6[0].2t).eq(0).9X(1c);6[0].1p&&b.3p(6[0]);b.2Y(12(){19(17 d=6;d.1t&&d.1t.1g===1;)d=d.1t;14 d}).4c(6)}14 6},cM:12(a){if(c.1L(a))14 6.1m(12(b){c(6).cM(a.1n(6,b))});14 6.1m(12(){17 b=c(6),d=b.b0();d.18?d.84(a):b.4c(a)})},gy:12(a){14 6.1m(12(){c(6).84(a)})},g9:12(){14 6.6D().1m(12(){c.1o(6,"1P")||c(6).6X(6.2M)}).3U()},4c:12(){14 6.4X(1B,1c,12(a){6.1g===1&&6.2l(a)})},cR:12(){14 6.4X(1B,1c,12(a){6.1g===1&&6.3p(a,6.1t)})},7M:12(){if(6[0]&&6[0].1p)14 6.4X(1B,1e,12(b){6.1p.3p(b,6)});1a if(1B.18){17 a=c(1B[0]);a.1H.22(a,6.83());14 6.3m(a,"7M",1B)}},9V:12(){if(6[0]&&6[0].1p)14 6.4X(1B,1e,12(b){6.1p.3p(b,6.2W)});1a if(1B.18){17 a=6.3m(6,"9V",1B);a.1H.22(a,c(1B[0]).83());14 a}},2I:12(a,b){19(17 d=0,e;(e=6[d])!=1b;d++)if(!a||c.1Z(a,[e]).18){if(!b&&e.1g===1){c.74(e.1X("*"));c.74([e])}e.1p&&e.1p.3q(e)}14 6},6q:12(){19(17 a=0,b;(b=6[a])!=1b;a++)19(b.1g===1&&c.74(b.1X("*"));b.1t;)b.3q(b.1t);14 6},9X:12(a){17 b=6.2Y(12(){if(!c.1u.9R&&!c.9S(6)){17 d=6.gA,e=6.2t;if(!d){d=e.1V("1A");d.2l(6.4S(1c));d=d.2X}14 c.9Z([d.1v(9M,"").1v(fb,\'="$1">\').1v($,"")],e)[0]}1a 14 6.4S(1c)});if(a===1c){9N(6,b);9N(6.1S("*"),b.1S("*"))}14 b},2q:12(a){if(a===B)14 6[0]&&6[0].1g===1?6[0].2X.1v(9M,""):1b;1a if(1j a==="1F"&&!9K.1h(a)&&(c.1u.9L||!$.1h(a))&&!P[(9W.1U(a)||["",""])[1].1M()]){a=a.1v(al,"<$1></$2>");1O{19(17 b=0,d=6.18;b<d;b++)if(6[b].1g===1){c.74(6[b].1X("*"));6[b].2X=a}}1N(e){6.6q().4c(a)}}1a c.1L(a)?6.1m(12(f){17 h=c(6);h.2q(a.1n(6,f,h.2q()))}):6.6q().4c(a);14 6},6X:12(a){if(6[0]&&6[0].1p){if(c.1L(a))14 6.1m(12(b){17 d=c(6),e=d.2q();d.6X(a.1n(6,b,e))});if(1j a!=="1F")a=c(a).d0();14 6.1m(12(){17 b=6.2W,d=6.1p;c(6).2I();b?c(b).7M(a):c(d).4c(a)})}1a 14 6.3m(c(c.1L(a)?a():a),"6X",a)},d0:12(a){14 6.2I(a,1c)},4X:12(a,b,d){17 e,f,h,l=a[0],k=[];if(!c.1u.81&&1B.18===3&&1j l==="1F"&&a3.1h(l))14 6.1m(12(){c(6).4X(a,b,d,1c)});if(c.1L(l))14 6.1m(12(x){17 r=c(6);a[0]=l.1n(6,x,b?r.2q():B);r.4X(a,b,d)});if(6[0]){e=l&&l.1p;e=c.1u.1p&&e&&e.1g===11&&e.2M.18===6.18?{6y:e}:c.9H(a,6,k);h=e.6y;if(f=h.2M.18===1?h=h.1t:h.1t){b=b&&c.1o(f,"4r");f=0;19(17 o=6.18;f<o;f++)d.1n(b?c.1o(6[f],"2C")?6[f].1X("3e")[0]||6[f].2l(6[f].2t.1V("3e")):6[f]:6[f],f>0||e.a4||6.18>1?h.4S(1c):h)}k.18&&c.1m(k,d1)}14 6}});c.9H=12(a,b,d){17 e,f,h;b=b&&b[0]?b[0].2t||b[0]:t;if(a.18===1&&1j a[0]==="1F"&&a[0].18<gd&&b===t&&!9K.1h(a[0])&&(c.1u.81||!a3.1h(a[0]))){f=1c;if(h=c.a0[a[0]])if(h!==1)e=h}if(!e){e=b.cP();c.9Z(a,b,e,d)}if(f)c.a0[a[0]]=h?e:1;14{6y:e,a4:f}};c.a0={};c.1m({cQ:"4c",gj:"cR",3p:"7M",gw:"9V",fT:"6X"},12(a,b){c.fn[a]=12(d){17 e=[];d=c(d);17 f=6.18===1&&6[0].1p;if(f&&f.1g===11&&f.2M.18===1&&d.18===1){d[b](6[0]);14 6}1a{f=0;19(17 h=d.18;f<h;f++){17 l=(f>0?6.9X(1c):6).33();c(d[f])[b](l);e=e.8C(l)}14 6.3m(e,a,d.2a)}}});c.1E({9Z:12(a,b,d,e){b=b||t;if(1j b.1V==="3o")b=b.2t||b[0]&&b[0].2t||t;19(17 f=[],h=0,l;(l=a[h])!=1b;h++){if(1j l==="4J")l+="";if(l){if(1j l==="1F"&&!eb.1h(l))l=b.4h(l);1a if(1j l==="1F"){l=l.1v(al,"<$1></$2>");17 k=(9W.1U(l)||["",""])[1].1M(),o=P[k]||P.3O,x=o[0],r=b.1V("1A");19(r.2X=o[1]+l+o[2];x--;)r=r.9T;if(!c.1u.3e){x=db.1h(l);k=k==="2C"&&!x?r.1t&&r.1t.2M:o[1]==="<2C>"&&!x?r.2M:[];19(o=k.18-1;o>=0;--o)c.1o(k[o],"3e")&&!k[o].2M.18&&k[o].1p.3q(k[o])}!c.1u.9L&&$.1h(l)&&r.3p(b.4h($.1U(l)[0]),r.1t);l=r.2M}if(l.1g)f.1H(l);1a f=c.5n(f,l)}}if(d)19(h=0;f[h];h++)if(e&&c.1o(f[h],"2B")&&(!f[h].1l||f[h].1l.1M()==="1K/3R"))e.1H(f[h].1p?f[h].1p.3q(f[h]):f[h]);1a{f[h].1g===1&&f.3n.22(f,[h+1,0].8C(c.3Z(f[h].1X("2B"))));d.2l(f[h])}14 f},74:12(a){19(17 b,d,e=c.3M,f=c.1q.3Y,h=c.1u.8G,l=0,k;(k=a[l])!=1b;l++)if(!(k.1o&&c.77[k.1o.1M()]))if(d=k[c.3v]){if((b=e[d])&&b.2P)19(17 o in b.2P)f[o]?c.1q.2I(k,o):c.9Q(k,o,b.2F);if(h)3d k[c.3v];1a k.56&&k.56(c.3v);3d e[d]}}});17 av=/cX\\([^)]*\\)/i,gb=/2o=([^)]*)/,hb=/-([a-z])/ig,ib=/([A-Z])/g,ay=/^-?\\d+(?:2S)?$/i,jb=/^-?\\d/,kb={2D:"67",bm:"3j",1D:"4U"},cN=["e5","l2"],cO=["e4","l1"],W,aw,aa,lb=12(a,b){14 b.8E()};c.fn.1y=12(a,b){if(1B.18===2&&b===B)14 6;14 c.8K(6,a,b,1c,12(d,e,f){14 f!==B?c.1d(d,e,f):c.1y(d,e)})};c.1E({6V:{2o:{33:12(a,b){if(b){17 d=W(a,"2o","2o");14 d===""?"1":d}1a 14 a.1d.2o}}},cW:{l4:1c,ec:1c,2o:1c,6T:1c,l6:1c},a6:{"88":c.1u.7j?"7j":"e8"},1d:12(a,b,d,e){if(!(!a||a.1g===3||a.1g===8||!a.1d)){17 f,h=c.7C(b),l=a.1d,k=c.6V[h];b=c.a6[h]||h;if(d!==B){if(!(1j d==="4J"&&5T(d)||d==1b)){if(1j d==="4J"&&!c.cW[h])d+="2S";if(!k||!("48"in k)||(d=k.48(a,d))!==B)1O{l[b]=d}1N(o){}}}1a{if(k&&"33"in k&&(f=k.33(a,1e,e))!==B)14 f;14 l[b]}}},1y:12(a,b,d){17 e,f=c.7C(b),h=c.6V[f];b=c.a6[f]||f;if(h&&"33"in h&&(e=h.33(a,1c,d))!==B)14 e;1a if(W)14 W(a,b,f)},d3:12(a,b,d){17 e={},f;19(f in b){e[f]=a.1d[f];a.1d[f]=b[f]}d.1n(a);19(f in b)a.1d[f]=e[f]},7C:12(a){14 a.1v(hb,lb)}});c.eN=c.1y;c.1m(["2i","1Q"],12(a,b){c.6V[b]={33:12(d,e,f){17 h;if(e){if(d.5B!==0)h=a7(d,b,f);1a c.d3(d,kb,12(){h=a7(d,b,f)});if(h<=0){h=W(d,b,b);if(h==="3t"&&aa)h=aa(d,b,b);if(h!=1b)14 h===""||h==="7A"?"3t":h}if(h<0||h==1b){h=d.1d[b];14 h===""||h==="7A"?"3t":h}14 1j h==="1F"?h:h+"2S"}},48:12(d,e){if(ay.1h(e)){e=1Y(e);if(e>=0)14 e+"2S"}1a 14 e}}});if(!c.1u.2o)c.6V.2o={33:12(a,b){14 gb.1h((b&&a.4M?a.4M.1Z:a.1d.1Z)||"")?1Y(4L.$1)/6s+"":b?"1":""},48:12(a,b){17 d=a.1d;d.6T=1;17 e=c.5T(b)?"":"cX(2o="+b*6s+")",f=d.1Z||"";d.1Z=av.1h(f)?f.1v(av,e):d.1Z+" "+e}};if(t.7h&&t.7h.7K)aw=12(a,b,d){17 e;d=d.1v(ib,"-$1").1M();if(!(b=a.2t.7h))14 B;if(b=b.7K(a,1b)){e=b.kC(d);if(e===""&&!c.3G(a.2t.27,a))e=c.1d(a,d)}14 e};if(t.27.4M)aa=12(a,b){17 d,e,f=a.4M&&a.4M[b],h=a.1d;if(!ay.1h(f)&&jb.1h(f)){d=h.1J;e=a.ax.1J;a.ax.1J=a.4M.1J;h.1J=b==="ke"?"kg":f||0;f=h.kh+"2S";h.1J=d;a.ax.1J=e}14 f===""?"7A":f};W=aw||aa;if(c.2w&&c.2w.3I){c.2w.3I.3j=12(a){17 b=a.8L;14 a.5B===0&&b===0||!c.1u.7d&&(a.1d.1D||c.1y(a,"1D"))==="2y"};c.2w.3I.fG=12(a){14!c.2w.3I.3j(a)}}17 dx=c.2O(),cC=/<2B\\b[^<]*(?:(?!<\\/2B>)<[^<]*)*<\\/2B>/gi,cG=/^(?:2V|7f)/i,cD=/^(?:2f|k9|k8|kk|3j|kl|4J|6f|kw|kv|kx|1K|ky|1C|kA)$/i,dE=/^(?:5q|kz)$/,cv=/\\[\\]$/,T=/\\=\\?(&|$)/,ja=/\\?/,dF=/([?&])dG=[^&]*/,dN=/^(\\w+:)?\\/\\/([^\\/?#]+)/,dP=/%20/g,dB=/#.*$/,ae=c.fn.4D;c.fn.1E({4D:12(a,b,d){if(1j a!=="1F"&&ae)14 ae.22(6,1B);1a if(!6.18)14 6;17 e=a.23(" ");if(e>=0){17 f=a.2A(e,a.18);a=a.2A(0,e)}e="5q";if(b)if(c.1L(b)){d=b;b=1b}1a if(1j b==="28"){b=c.53(b,c.5d.9C);e="d5"}17 h=6;c.5t({1C:a,1l:e,3c:"2q",1k:b,3F:12(l,k){if(k==="4v"||k==="9s")h.2q(f?c("<1A>").4c(l.7G.1v(cC,"")).1S(f):l.7G);d&&h.1m(d,[l.7G,k,l])}});14 6},kt:12(){14 c.53(6.cI())},cI:12(){14 6.2Y(12(){14 6.cK?c.3Z(6.cK):6}).1Z(12(){14 6.36&&!6.4m&&(6.46||cG.1h(6.1o)||cD.1h(6.1l))}).2Y(12(a,b){17 d=c(6).5a();14 d==1b?1b:c.38(d)?c.2Y(d,12(e){14{36:b.36,3g:e}}):{36:b.36,3g:d}}).33()}});c.1m("dM au bM bZ bN d9".2J(" "),12(a,b){c.fn[b]=12(d){14 6.8B(b,d)}});c.1E({33:12(a,b,d,e){if(c.1L(b)){e=e||d;d=b;b=1b}14 c.5t({1l:"5q",1C:a,1k:b,4v:d,3c:e})},eU:12(a,b){14 c.33(a,1b,b,"2B")},kq:12(a,b,d){14 c.33(a,b,d,"5o")},kr:12(a,b,d,e){if(c.1L(b)){e=e||d;d=b;b={}}14 c.5t({1l:"d5",1C:a,1k:b,4v:d,3c:e})},l7:12(a){c.1E(c.5d,a)},5d:{1C:5Q.2R,3L:1c,1l:"5q",8Y:"8N/x-ln-6P-lU",dA:1c,4Q:1c,7o:12(){14 35 E.ac},8M:{6w:"8N/6w, 1K/6w",2q:"1K/2q",2B:"1K/3R, 8N/3R",5o:"8N/5o, 1K/3R",1K:"1K/m3",3O:"*/*"}},5t:12(a){17 b=c.1E(1c,{},c.5d,a),d,e,f,h=b.1l.8E(),l=dE.1h(h);b.1C=b.1C.1v(dB,"");b.2j=a&&a.2j!=1b?a.2j:b;if(b.1k&&b.dA&&1j b.1k!=="1F")b.1k=c.53(b.1k,b.9C);if(b.3c==="8R"){if(h==="5q")T.1h(b.1C)||(b.1C+=(ja.1h(b.1C)?"&":"?")+(b.8R||"3s")+"=?");1a if(!b.1k||!T.1h(b.1k))b.1k=(b.1k?b.1k+"&":"")+(b.8R||"3s")+"=?";b.3c="5o"}if(b.3c==="5o"&&(b.1k&&T.1h(b.1k)||T.1h(b.1C))){d=b.lK||"8R"+dx++;if(b.1k)b.1k=(b.1k+"").1v(T,"="+d+"$1");b.1C=b.1C.1v(T,"="+d+"$1");b.3c="2B";17 k=E[d];E[d]=12(m){if(c.1L(k))k(m);1a{E[d]=B;1O{3d E[d]}1N(p){}}f=m;c.8O(b,w,e,f);c.5A(b,w,e,f);r&&r.3q(A)}}if(b.3c==="2B"&&b.3M===1b)b.3M=1e;if(b.3M===1e&&l){17 o=c.2O(),x=b.1C.1v(dF,"$lO="+o);b.1C=x+(x===b.1C?(ja.1h(b.1C)?"&":"?")+"dG="+o:"")}if(b.1k&&l)b.1C+=(ja.1h(b.1C)?"&":"?")+b.1k;b.3L&&c.8P++===0&&c.1q.2T("dM");o=(o=dN.1U(b.1C))&&(o[1]&&o[1].1M()!==5Q.9x||o[2].1M()!==5Q.lP);if(b.3c==="2B"&&h==="5q"&&o){17 r=t.1X("bu")[0]||t.27,A=t.1V("2B");if(b.dK)A.lQ=b.dK;A.4C=b.1C;if(!d){17 C=1e;A.ah=A.4R=12(){if(!C&&(!6.51||6.51==="lR"||6.51==="3F")){C=1c;c.8O(b,w,e,f);c.5A(b,w,e,f);A.ah=A.4R=1b;r&&A.1p&&r.3q(A)}}}r.3p(A,r.1t);14 B}17 J=1e,w=b.7o();if(w){b.dH?w.dJ(h,b.1C,b.4Q,b.dH,b.6f):w.dJ(h,b.1C,b.4Q);1O{if(b.1k!=1b&&!l||a&&a.8Y)w.6I("lN-lM",b.8Y);if(b.dj){c.7q[b.1C]&&w.6I("dv-bJ-lJ",c.7q[b.1C]);c.7r[b.1C]&&w.6I("dv-lL-lS",c.7r[b.1C])}o||w.6I("X-lT-m1","ac");w.6I("m4",b.3c&&b.8M[b.3c]?b.8M[b.3c]+", */*; q=0.m2":b.8M.3O)}1N(I){}if(b.d8&&b.d8.1n(b.2j,w,b)===1e){b.3L&&c.8P--===1&&c.1q.2T("au");w.5u();14 1e}b.3L&&c.6B(b,"d9",[w,b]);17 L=w.4R=12(m){if(!w||w.51===0||m==="5u"){J||c.5A(b,w,e,f);J=1c;if(w)w.4R=c.6o}1a if(!J&&w&&(w.51===4||m==="4Y")){J=1c;w.4R=c.6o;e=m==="4Y"?"4Y":!c.bT(w)?"37":b.dj&&c.bW(w,b.1C)?"9s":"4v";17 p;if(e==="4v")1O{f=c.bI(w,b.3c,b)}1N(q){e="9w";p=q}if(e==="4v"||e==="9s")d||c.8O(b,w,e,f);1a c.9m(b,w,e,p);d||c.5A(b,w,e,f);m==="4Y"&&w.5u();if(b.4Q)w=1b}};1O{17 g=w.5u;w.5u=12(){w&&9z.2v.1n.1n(g,w);L("5u")}}1N(i){}b.4Q&&b.4Y>0&&3b(12(){w&&!J&&L("4Y")},b.4Y);1O{w.lk(l||b.1k==1b?1b:b.1k)}1N(n){c.9m(b,w,1b,n);c.5A(b,w,e,f)}b.4Q||L();14 w}},53:12(a,b){17 d=[],e=12(h,l){l=c.1L(l)?l():l;d[d.18]=8m(h)+"="+8m(l)};if(b===B)b=c.5d.9C;if(c.38(a)||a.6z)c.1m(a,12(){e(6.36,6.3g)});1a 19(17 f in a)da(f,a[f],b,e);14 d.3X("&").1v(dP,"+")}});c.1E({8P:0,7q:{},7r:{},9m:12(a,b,d,e){a.37&&a.37.1n(a.2j,b,d,e);a.3L&&c.6B(a,"bZ",[b,a,e])},8O:12(a,b,d,e){a.4v&&a.4v.1n(a.2j,e,d,b);a.3L&&c.6B(a,"bN",[b,a])},5A:12(a,b,d){a.3F&&a.3F.1n(a.2j,b,d);a.3L&&c.6B(a,"bM",[b,a]);a.3L&&c.8P--===1&&c.1q.2T("au")},6B:12(a,b,d){(a.2j&&a.2j.1C==1b?c(a.2j):c.1q).2T(b,d)},bT:12(a){1O{14!a.5s&&5Q.9x==="6r:"||a.5s>=bA&&a.5s<lf||a.5s===bH||a.5s===lp}1N(b){}14 1e},bW:12(a,b){17 d=a.9o("lq-bJ"),e=a.9o("lB");if(d)c.7q[b]=d;if(e)c.7r[b]=e;14 a.5s===bH},bI:12(a,b,d){17 e=a.9o("4K-1l")||"",f=b==="6w"||!b&&e.23("6w")>=0;a=f?a.lz:a.7G;f&&a.27.1o==="9w"&&c.37("9w");if(d&&d.ch)a=d.ch(a,b);if(1j a==="1F")if(b==="5o"||!b&&e.23("5o")>=0)a=c.8T(a);1a if(b==="2B"||!b&&e.23("3R")>=0)c.95(a);14 a}});if(E.cn)c.5d.7o=12(){if(E.5Q.9x!=="6r:")1O{14 35 E.ac}1N(a){}1O{14 35 E.cn("lv.lx")}1N(b){}};c.1u.5t=!!c.5d.7o();17 ea={},cc=/^(?:4p|3a|3h)$/,cl=/^([+\\-]=)?([\\d+.\\-]+)(.*)$/,ba,ad=[["2i","6p","ks","k2","iF"],["1Q","96","iE","c3","iG"],["2o"]];c.fn.1E({3a:12(a,b,d){if(a||a===0)14 6.4f(S("3a",3),a,b,d);1a{d=0;19(17 e=6.18;d<e;d++){a=6[d];b=a.1d.1D;if(!c.1k(a,"7n")&&b==="2y")b=a.1d.1D="";b===""&&c.1y(a,"1D")==="2y"&&c.1k(a,"7n",aq(a.1o))}19(d=0;d<e;d++){a=6[d];b=a.1d.1D;if(b===""||b==="2y")a.1d.1D=c.1k(a,"7n")||""}14 6}},3h:12(a,b,d){if(a||a===0)14 6.4f(S("3h",3),a,b,d);1a{a=0;19(b=6.18;a<b;a++){d=c.1y(6[a],"1D");d!=="2y"&&c.1k(6[a],"7n",d)}19(a=0;a<b;a++)6[a].1d.1D="2y";14 6}},c8:c.fn.4p,4p:12(a,b,d){17 e=1j a==="7z";if(c.1L(a)&&c.1L(b))6.c8.22(6,1B);1a a==1b||e?6.1m(12(){17 f=e?a:c(6).is(":3j");c(6)[f?"3a":"3h"]()}):6.4f(S("4p",3),a,b,d);14 6},k3:12(a,b,d,e){14 6.1Z(":3j").1y("2o",0).3a().3U().4f({2o:b},a,d,e)},4f:12(a,b,d,e){17 f=c.bQ(b,d,e);if(c.5v(a))14 6.1m(f.3F);14 6[f.3B===1e?"1m":"3B"](12(){17 h=c.1E({},f),l,k=6.1g===1,o=k&&c(6).is(":3j"),x=6;19(l in a){17 r=c.7C(l);if(l!==r){a[r]=a[l];3d a[l];l=r}if(a[l]==="3h"&&o||a[l]==="3a"&&!o)14 h.3F.1n(6);if(k&&(l==="2i"||l==="1Q")){h.3W=[6.1d.3W,6.1d.iI,6.1d.iD];if(c.1y(6,"1D")==="5w"&&c.1y(6,"88")==="2y")if(c.1u.ap)if(aq(6.1o)==="5w")6.1d.1D="5w-4U";1a{6.1d.1D="5w";6.1d.6T=1}1a 6.1d.1D="5w-4U"}if(c.38(a[l])){(h.7p=h.7p||{})[l]=a[l][1];a[l]=a[l][0]}}if(h.3W!=1b)6.1d.3W="3j";h.7e=c.1E({},a);c.1m(a,12(A,C){17 J=35 c.fx(x,h,A);if(cc.1h(C))J[C==="4p"?o?"3a":"3h":C](a);1a{17 w=cl.1U(C),I=J.6R()||0;if(w){17 L=1Y(w[2]),g=w[3]||"2S";if(g!=="2S"){c.1d(x,A,(L||1)+g);I=(L||1)/J.6R()*I;c.1d(x,A,I+g)}if(w[1])L=(w[1]==="-="?-1:1)*L+I;J.6S(I,L,g)}1a J.6S(I,C,"")}});14 1c})},9J:12(a,b){17 d=c.6U;a&&6.3B([]);6.1m(12(){19(17 e=d.18-1;e>=0;e--)if(d[e].1w===6){b&&d[e](1c);d.3n(e,1)}});b||6.4y();14 6}});c.1m({fy:S("3a",1),f5:S("3h",1),iw:S("4p",1),ff:{2o:"3a"},fp:{2o:"3h"},iy:{2o:"4p"}},12(a,b){c.fn[a]=12(d,e,f){14 6.4f(b,d,e,f)}});c.1E({bQ:12(a,b,d){17 e=a&&1j a==="28"?c.1E({},a):{3F:d||!d&&b||c.1L(a)&&a,2z:a,41:d&&b||b&&!c.1L(b)&&b};e.2z=c.fx.iz?0:1j e.2z==="4J"?e.2z:e.2z in c.fx.6G?c.fx.6G[e.2z]:c.fx.6G.3O;e.a2=e.3F;e.3F=12(){e.3B!==1e&&c(6).4y();c.1L(e.a2)&&e.a2.1n(6)};14 e},41:{fm:12(a,b,d,e){14 d+e*a},a5:12(a,b,d,e){14(-2g.iK(a*2g.cV)/2+0.5)*e+d}},6U:[],fx:12(a,b,d){6.26=b;6.1w=a;6.2u=d;if(!b.6n)b.6n={}}});c.fx.2v={9U:12(){6.26.4G&&6.26.4G.1n(6.1w,6.2O,6);(c.fx.4G[6.2u]||c.fx.4G.3O)(6)},6R:12(){if(6.1w[6.2u]!=1b&&(!6.1w.1d||6.1w.1d[6.2u]==1b))14 6.1w[6.2u];17 a=1Y(c.1y(6.1w,6.2u));14 a&&a>-iL?a:0},6S:12(a,b,d){12 e(l){14 f.4G(l)}17 f=6,h=c.fx;6.a1=c.2O();6.3J=a;6.3U=b;6.9I=d||6.9I||"2S";6.2O=6.3J;6.4W=6.6x=0;e.1w=6.1w;if(e()&&c.6U.1H(e)&&!ba)ba=fu(h.fh,h.fk)},3a:12(){6.26.6n[6.2u]=c.1d(6.1w,6.2u);6.26.3a=1c;6.6S(6.2u==="1Q"||6.2u==="2i"?1:0,6.6R());c(6.1w).3a()},3h:12(){6.26.6n[6.2u]=c.1d(6.1w,6.2u);6.26.3h=1c;6.6S(6.6R(),0)},4G:12(a){17 b=c.2O(),d=1c;if(a||b>=6.26.2z+6.a1){6.2O=6.3U;6.4W=6.6x=1;6.9U();6.26.7e[6.2u]=1c;19(17 e in 6.26.7e)if(6.26.7e[e]!==1c)d=1e;if(d){if(6.26.3W!=1b&&!c.1u.9Y){17 f=6.1w,h=6.26;c.1m(["","X","Y"],12(k,o){f.1d["3W"+o]=h.3W[k]})}6.26.3h&&c(6.1w).3h();if(6.26.3h||6.26.3a)19(17 l in 6.26.7e)c.1d(6.1w,l,6.26.6n[l]);6.26.3F.1n(6.1w)}14 1e}1a{a=b-6.a1;6.6x=a/6.26.2z;b=6.26.41||(c.41.a5?"a5":"fm");6.4W=c.41[6.26.7p&&6.26.7p[6.2u]||b](6.6x,a,0,1,6.26.2z);6.2O=6.3J+(6.3U-6.3J)*6.4W;6.9U()}14 1c}};c.1E(c.fx,{fh:12(){19(17 a=c.6U,b=0;b<a.18;b++)a[b]()||a.3n(b--,1);a.18||c.fx.9J()},fk:13,9J:12(){iY(ba);ba=1b},6G:{iS:iN,iM:bA,3O:iO},4G:{2o:12(a){c.1d(a.1w,"2o",a.2O)},3O:12(a){if(a.1w.1d&&a.1w.1d[a.2u]!=1b)a.1w.1d[a.2u]=(a.2u==="1Q"||a.2u==="2i"?2g.49(0,a.2O):a.2O)+a.9I;1a a.1w[a.2u]=a.2O}}});if(c.2w&&c.2w.3I)c.2w.3I.iR=12(a){14 c.5L(c.6U,12(b){14 a===b.1w}).18};17 fK=/^t(?:iQ|d|h)$/i,8X=/^(?:1P|2q)$/i;c.fn.2m="f1"in t.27?12(a){17 b=6[0],d;if(a)14 6.1m(12(l){c.2m.aB(6,a,l)});if(!b||!b.2t)14 1b;if(b===b.2t.1P)14 c.2m.ak(b);1O{d=b.f1()}1N(e){}17 f=b.2t,h=f.27;if(!d||!c.3G(h,b))14 d||{29:0,1J:0};b=f.1P;f=fa(f);14{29:d.29+(f.dV||c.1u.5Z&&h.4t||b.4t)-(h.7B||b.7B||0),1J:d.1J+(f.9u||c.1u.5Z&&h.4w||b.4w)-(h.7H||b.7H||0)}}:12(a){17 b=6[0];if(a)14 6.1m(12(x){c.2m.aB(6,a,x)});if(!b||!b.2t)14 1b;if(b===b.2t.1P)14 c.2m.ak(b);c.2m.7E();17 d,e=b.63,f=b.2t,h=f.27,l=f.1P;d=(f=f.7h)?f.7K(b,1b):b.4M;19(17 k=b.45,o=b.7u;(b=b.1p)&&b!==l&&b!==h;){if(c.2m.ag&&d.2D==="af")2b;d=f?f.7K(b,1b):b.4M;k-=b.4t;o-=b.4w;if(b===e){k+=b.45;o+=b.7u;if(c.2m.fI&&!(c.2m.eT&&fK.1h(b.1o))){k+=1Y(d.92)||0;o+=1Y(d.8V)||0}e=b.63}if(c.2m.e9&&d.3W!=="fG"){k+=1Y(d.92)||0;o+=1Y(d.8V)||0}d=d}if(d.2D==="4b"||d.2D==="91"){k+=l.45;o+=l.7u}if(c.2m.ag&&d.2D==="af"){k+=2g.49(h.4t,l.4t);o+=2g.49(h.4w,l.4w)}14{29:k,1J:o}};c.2m={7E:12(){17 a=t.1P,b=t.1V("1A"),d,e,f,h=1Y(c.1y(a,"6p"))||0;c.1E(b.1d,{2D:"67",29:0,1J:0,4z:0,4T:0,1Q:"58",2i:"58",bm:"3j"});b.2X="<1A 1d=\'2D:67;29:0;1J:0;4z:0;4T:fD fC #fJ;6a:0;1Q:58;2i:58;\'><1A></1A></1A><2C 1d=\'2D:67;29:0;1J:0;4z:0;4T:fD fC #fJ;6a:0;1Q:58;2i:58;\' i2=\'0\' fE=\'0\'><4r><4l></4l></4r></2C>";a.3p(b,a.1t);d=b.1t;e=d.1t;f=d.2W.1t.1t;6.fI=e.45!==5;6.eT=f.45===5;e.1d.2D="af";e.1d.29="i4";6.ag=e.45===20||e.45===15;e.1d.2D=e.1d.29="";d.1d.3W="3j";d.1d.2D="4b";6.e9=e.45===-5;6.ef=a.45!==h;a.3q(b);c.2m.7E=c.6o},ak:12(a){17 b=a.45,d=a.7u;c.2m.7E();if(c.2m.ef){b+=1Y(c.1y(a,"6p"))||0;d+=1Y(c.1y(a,"96"))||0}14{29:b,1J:d}},aB:12(a,b,d){17 e=c.1y(a,"2D");if(e==="91")a.1d.2D="4b";17 f=c(a),h=f.2m(),l=c.1y(a,"29"),k=c.1y(a,"1J"),o=e==="67"&&c.3H("7A",[l,k])>-1;e={};17 x={};if(o)x=f.2D();l=o?x.29:2p(l,10)||0;k=o?x.1J:2p(k,10)||0;if(c.1L(b))b=b.1n(a,d,h);if(b.29!=1b)e.29=b.29-h.29+l;if(b.1J!=1b)e.1J=b.1J-h.1J+k;"ek"in b?b.ek.1n(a,e):f.1y(e)}};c.fn.1E({2D:12(){if(!6[0])14 1b;17 a=6[0],b=6.63(),d=6.2m(),e=8X.1h(b[0].1o)?{29:0,1J:0}:b.2m();d.29-=1Y(c.1y(a,"6p"))||0;d.1J-=1Y(c.1y(a,"96"))||0;e.29+=1Y(c.1y(b[0],"92"))||0;e.1J+=1Y(c.1y(b[0],"8V"))||0;14{29:d.29-e.29,1J:d.1J-e.1J}},63:12(){14 6.2Y(12(){19(17 a=6.63||t.1P;a&&!8X.1h(a.1o)&&c.1y(a,"2D")==="91";)a=a.63;14 a})}});c.1m(["e5","e4"],12(a,b){17 d="7J"+b;c.fn[d]=12(e){17 f=6[0],h;if(!f)14 1b;if(e!==B)14 6.1m(12(){if(h=fa(6))h.hX(!a?e:c(h).4w(),a?e:c(h).4t());1a 6[d]=e});1a 14(h=fa(f))?"9u"in h?h[a?"dV":"9u"]:c.1u.5Z&&h.1x.27[d]||h.1x.1P[d]:f[d]}});c.1m(["iq","dU"],12(a,b){17 d=b.1M();c.fn["ir"+b]=12(){14 6[0]?1Y(c.1y(6[0],d,"6a")):1b};c.fn["il"+b]=12(e){14 6[0]?1Y(c.1y(6[0],d,e?"4z":"4T")):1b};c.fn[d]=12(e){17 f=6[0];if(!f)14 e==1b?1b:6;if(c.1L(e))14 6.1m(12(l){17 k=c(6);k[d](e.1n(6,l,k[d]()))});if(c.5h(f))14 f.1x.i9==="ie"&&f.1x.27["9D"+b]||f.1x.1P["9D"+b];1a if(f.1g===9)14 2g.49(f.27["9D"+b],f.1P["7J"+b],f.27["7J"+b],f.1P["2m"+b],f.27["2m"+b]);1a if(e===B){f=c.1y(f,d);17 h=1Y(f);14 c.5T(h)?f:h}1a 14 6.1y(d,1j e==="1F"?e:e+"2S")}})})(5g);(12(3z){3z.1m([\'eR\',\'jM\',\'jL\',\'jG\',\'jF\',\'2f\',\'jA\'],12(i,1r){3z.fx.4G[1r]=12(fx){if(fx.6x==0){fx.3J=eM(fx.1w,1r);fx.3U=9k(fx.3U)}fx.1w.1d[1r]="9p("+[2g.49(2g.9e(2p((fx.4W*(fx.3U[0]-fx.3J[0]))+fx.3J[0]),1T),0),2g.49(2g.9e(2p((fx.4W*(fx.3U[1]-fx.3J[1]))+fx.3J[1]),1T),0),2g.49(2g.9e(2p((fx.4W*(fx.3U[2]-fx.3J[2]))+fx.3J[2]),1T),0)].3X(",")+")"}});12 9k(2f){17 1W;if(2f&&2f.7t==39&&2f.18==3)14 2f;if(1W=/9p\\(\\s*([0-9]{1,3})\\s*,\\s*([0-9]{1,3})\\s*,\\s*([0-9]{1,3})\\s*\\)/.1U(2f))14[2p(1W[1]),2p(1W[2]),2p(1W[3])];if(1W=/9p\\(\\s*([0-9]+(?:\\.[0-9]+)?)\\%\\s*,\\s*([0-9]+(?:\\.[0-9]+)?)\\%\\s*,\\s*([0-9]+(?:\\.[0-9]+)?)\\%\\s*\\)/.1U(2f))14[1Y(1W[1])*2.55,1Y(1W[2])*2.55,1Y(1W[3])*2.55];if(1W=/#([a-fA-5W-9]{2})([a-fA-5W-9]{2})([a-fA-5W-9]{2})/.1U(2f))14[2p(1W[1],16),2p(1W[2],16),2p(1W[3],16)];if(1W=/#([a-fA-5W-9])([a-fA-5W-9])([a-fA-5W-9])/.1U(2f))14[2p(1W[1]+1W[1],16),2p(1W[2]+1W[2],16),2p(1W[3]+1W[3],16)];14 eG[3z.5X(2f).1M()]}12 eM(1w,1r){17 2f;do{2f=3z.eN(1w,1r);if(2f!=\'\'&&2f!=\'jQ\'||3z.1o(1w,"1P"))2b;1r="eR"}eQ(1w=1w.1p);14 9k(2f)};17 eG={jR:[0,1T,1T],jS:[eO,1T,1T],jU:[ew,ew,jT],jy:[0,0,0],jx:[0,0,1T],jc:[dR,42,42],j9:[0,1T,1T],jd:[0,0,5C],je:[0,5C,5C],jg:[9l,9l,9l],j8:[0,6s,0],j7:[j2,j1,ex],j3:[5C,0,5C],j4:[85,ex,47],j5:[1T,eS,0],jh:[ji,50,jr],ju:[5C,0,0],jw:[jq,jp,jk],jj:[jl,0,7m],jm:[1T,0,1T],jo:[1T,jn,0],kH:[0,4d,0],jv:[75,0,jf],jP:[eO,eJ,eS],jV:[k0,jY,eJ],jO:[e1,1T,1T],jN:[eL,jE,eL],jC:[7m,7m,7m],jB:[1T,jz,jK],jH:[1T,1T,e1],iZ:[0,1T,0],ii:[1T,0,1T],ij:[4d,0,0],ih:[0,0,4d],ic:[4d,4d,0],ik:[1T,dR,0],ip:[1T,7D,im],i8:[4d,0,4d],i7:[4d,0,4d],aX:[1T,0,0],hY:[7D,7D,7D],hW:[1T,1T,1T],hV:[1T,1T,0]}})(3z);$(\'a.hT\').1r(\'2E\',\'hU\');17 2c=(12(){17 7y={};14 12(ej,1R){14(7y[1R]?7y[1R]:(7y[1R]=35 4L("(?:\\\\s|^)"+1R+"(?:\\\\s|$)"))).1h(ej.1R)}})();17 f6=2;17 79="3h";17 aE="3a";12 aC(3P){17 2U=1x.2L("f4"+3P);17 aU=1x.2L("e6"+3P);if(!aU||!2U){14 1e}17 60=aU.i0;if(2U.1t.1k==79){19(17 i=1;i<60.18;i++){60[i].1d.1D="2y"}2U.1t.1k=aE}1a{19(17 i=1;i<60.18;i++){60[i].1d.1D=60[0].1d.1D}2U.1t.1k=79}}12 f2(){17 3P=0;17 7x=35 6g();17 5J=1x.1X("2C");19(17 i=0;i<5J.18;i++){if(2c(5J[i],"i5")){17 aW=5J[i].1X("4r")[0];if(!aW)b1;17 7c=aW.1X("e7")[0];if(!7c)b1;7x[3P]=5J[i];5J[i].2k("id","e6"+3P);17 2U=1x.1V("f0");17 66=1x.1V("a");17 f3=1x.4h(79);2U.1d.e8="b5";2U.1d.7j="b5";2U.1d.ec="i3";2U.1d.i1="b5";2U.1d.1Q="iu";66.1d.2f=7c.1d.2f;66.2k("id","f4"+3P);66.2k("2R","3R:aC("+3P+");");66.2l(f3);2U.2l(1x.4h("["));2U.2l(66);2U.2l(1x.4h("]"));7c.3p(2U,7c.2M[0]);3P++}}19(17 i=0;i<3P;i++){if(2c(7x[i],"aV")||(3P>=f6&&2c(7x[i],"iv"))){aC(i)}}}3K(f2);17 7s=\'[\'+79+\']\';17 7l=\'[\'+aE+\']\';12 eV(4I){17 2Q=1x.2L("2Q"+4I);17 2K=1x.2L("2K"+4I);if(!2K||!2Q){14 1e}if(2Q.1t.1k==7s){19(17 21=2K.1t;21!=1b;21=21.2W){if(2c(21,\'7F\')||2c(21,\'7I\')){21.1d.1D=\'2y\'}}2Q.1t.1k=7l}1a if(2Q.1t.1k==7l){19(17 21=2K.1t;21!=1b;21=21.2W){if(2c(21,\'7F\')||2c(21,\'7I\')){21.1d.1D=\'4U\'}}2Q.1t.1k=7s}}12 fc(){17 4I=0;17 eW=1x.1X("1A");19(17 i=0;2K=eW[i];i++){if(2c(2K,"2K")){4I++;17 2Q=1x.1V("a");2Q.1R=\'2Q\';2Q.2k(\'id\',\'2Q\'+4I);2Q.2k(\'2R\',\'3R:eV(\'+4I+\');\');17 71=2c(2K,"aV");19(17 21=2K.1t;21!=1b&&!71;21=21.2W){if(2c(21,\'7I\')||2c(21,\'7F\')){if(21.1d.1D==\'2y\'){71=1c}}}if(71){19(17 21=2K.1t;21!=1b;21=21.2W){if(2c(21,\'7I\')||2c(21,\'7F\')){21.1d.1D=\'2y\'}}}17 eY=1x.4h(71?7l:7s);2Q.2l(eY);19(17 j=0;j<2K.2M.18;j++){if(2c(2K.2M[j],"iP")){2Q.1d.2f=2K.2M[j].1d.2f;2K.2M[j].2l(2Q)}}2K.2k(\'id\',\'2K\'+4I)}}}3K(fc);17 3f={by:$.1u.2o,bi:12(1f,3l){14 $(1f.1I(\'.1f-1z\').1I(\'aM\').1I(\'li\')[2p(3l)])},aO:12(1f,3l,2z,fd){if(3l==2p(1f.1r(\'6i\'))&&!fd&&2z)14;if(!3f.by){2z=0}1f.1r(\'6i\',3l.3N());17 7L=1f.1I(\'.1f-1z-4K\').1I();7L.1m(12(){$(6).fp(2z,12(){$(6).5x(\'1f-1z-2G\')})});$(7L[3l]).1m(12(){$(6).ff(2z,12(){$(6).6J(\'1f-1z-2G\')})});17 bv=1f.1I(\'.1f-1z\').1I(\'aM\').1I(\'li\');bv.5x(\'1f-1z-2G\');$(bv[3l]).6J(\'1f-1z-2G\');3f.fj(1f,$(7L[3l]).2i())},fj:12(1f,fv){if(1f.2c(\'1f-1z-iX\')){1f.1S(\'.1f-1z-bk\').2q(3f.bi(1f,1f.1r(\'6i\')).2q())}1a{1f.1S(\'.1f-1z-bk\').2q(1f.1r(\'c2\')+\' &iW; \'+3f.bi(1f,1f.1r(\'6i\')).2q())}if(1f.7w(\'.1f-1z-fq\')&&1f.7w(\'.1f-1z-ft\')){1O{1f.1S(\'.1f-1z-ft\').2q($(1f.1I(\'.1f-1z-fq\').1I(\'f0\')[2p(1f.1r(\'6i\'))]).2q())}1N(e){}}17 bh=2g.49(1f.1I(\'.1f-1z-4K\').2i(),2g.49(1f.1I(\'.1f-1z\').2i(),fv)).3N()+\'2S\';1f.1I(\'.1f-1z-4K\').1y(\'2i\',bh);if(1f.1r(\'c1\')){1f.1I(\'.1f-1z\').1y(\'2i\',bh)}},aH:12(1f){17 bp=1f.1I(\'.1f-1z-iV\').1K().2J(\';\');17 2z=3f.by?2p(1f.1r(\'dQ\')):0;if(1f.1r(\'7v\')!=\'1c\'){1f.1r(\'7v\',\'1c\');1f.1S(\'.1f-1z-aI a\').1K(bp[0]);1f.1I(\'.1f-1z, .1f-1z-4K\').f5(2z)}1a{1f.1r(\'7v\',\'\');1f.1S(\'.1f-1z-aI a\').1K(bp[1]);1f.1I(\'.1f-1z, .1f-1z-4K\').fy(2z)}},bC:12(1f,2G){3b(12(){1f.1r(\'iA\',2G.3N());3f.aO(1f,2G,0,1c);if(1f.2c(\'1f-1z-aV\')){3f.aH(1f)}},6s)},1f:12(){17 2x=$(6);2x.5x(\'1f-1z-iB\');17 aP=0;2x.1r(\'c2\',2x.1S(\'.1f-1z-bk\').2q());17 2G=/1f-1z-2G-(\\d+)/i.1U(2x.1r(\'2H\'));if(2G){3f.bC(2x,2p(2G[1])-1)}1a{3f.bC(2x,0)}17 2z=2x.2c(\'1f-1z-cf\')?0:bA;2x.1r(\'dQ\',2x.2c(\'1f-1z-cf\')?\'0\':\'75\');2x.1I(\'.1f-1z\').1I(\'aM\').1I(\'li\').1m(12(){17 c9=aP;$(6).4k(12(){3f.aO(2x,c9,2z,1e);$(6).5z();$(6).1S(\'*\').5z();14 1e});aP++});17 aD=2x.2c(\'1f-1z-c1\');2x.1r(\'lw\',aD?\'1c\':\'\');if(aD){17 cd=2x.1I(\'.1f-1z\').1Q().3N()+\'2S\';2x.1I(\'.1f-1z-4K\').1y(\'4z-1J\',cd)}2x.1r(\'7v\',\'\');2x.1S(\'.1f-1z-aI a\').4k(12(){3f.aH(2x);14 1e})},3V:12(){$(\'.1f-1z-lu\').1m(3f.1f)}};3K(3f.3V);12 dm(){17 6v=[\'ar\',\'cs\',\'da\',\'de\',\'es\',\'fi\',\'fr\',\'hu\',\'it\',\'ja\',\'ko\',\'lA\',\'cZ\',\'lg\',\'bK\',\'bK-br\',\'ld\',\'l9\',\'lc\',\'bP-lh\',\'bP-lj\'];17 dp=\'en\';1O{17 1P=1x.1X(\'1P\')[0]}1N(e){14}17 5r=dp;19(17 i in 6v){if(5j.4i(5j.18-1-6v[i].18).1M()==\'/\'+6v[i].1M()){5r=6v[i];2b}}if(1P.2s(\'2H\')){1P.2k(\'2H\',1P.2s(\'2H\')+\' 5r-\'+5r)}1a{1P.2k(\'2H\',\'5r-\'+5r)}}3K(dm);17 2r={8S:25,d7:0.85,8H:[\'.lF\',\'.lX\'],dL:/5b-(\\d+)x(\\d+)/i,ds:/5k((?:\\D+\\d+)+)/i,dD:12(){17 5k=2r.ds.1U($(6).1r(\'2H\'));if(5k!=1b){5k=5k[1].4i(1).2J(/\\D+/g);17 8Q=$(\'#lY\').1Q();19(17 i in 2r.8H){if($(2r.8H[i]).18){8Q-=$(2r.8H[i]).1Q()}}8Q*=2r.d7;17 4Z=[];19(17 w=0;w<5k.18;w++){4Z[w]=2p(5k[w])}4Z.4F(12(a,b){14 b-a});19(17 w=0;w<4Z.18;w++){if(4Z[w]<=8Q||w==4Z.18-1){2r.b4(6,4Z[w]);2b}}}1a{2r.b4(6,1Y(2d.1r(\'1Q\')))}},hd:12(){17 2d=$(6).1I(\'28\');if(!2d)14;if($(6).2c(\'hd-3u\')){17 b6=2d.1I(\'53[36="df"]\').1r(\'3g\')+\'&hd=1\';2d.1I(\'53[36="df"]\').1r(\'3g\',b6);2d.1I(\'5p\').1r(\'4C\',b6);17 dI=$(6).2q();$(6).2q(\'\').2q(dI)}},b4:12(6j,1Q){17 2d=$(6j).1I(\'28\');if(!2d)14;if($(6j).2c(\'6j-34\')){2d.1r(\'1Q\',1Q).1r(\'2i\',2r.8S);2d.1I(\'5p\').1r(\'1Q\',1Q).1r(\'2i\',2r.8S)}1a{17 5b=2r.dL.1U($(6j).1r(\'2H\'));if(5b!=1b){5b=1Y(5b[1])/1Y(5b[2]);17 aF=2g.lI(1Q/5b+2r.8S).3N();2d.1r(\'1Q\',1Q).1r(\'2i\',aF);2d.1I(\'5p\').1r(\'1Q\',1Q).1r(\'2i\',aF)}}},8D:1b,8A:12(){if(2r.8D!=1b){m0(2r.8D)}2r.8D=3b(2r.aQ,6s)},aQ:12(){$(\'.dC\').1m(2r.dD)},3V:12(){$(\'.dC\').1m(2r.hd);$(5g).8A(2r.8A);2r.aQ()}};3K(2r.3V);if(cH=="kp"||cH=="4j"||5j=="km:kn"){cz(\'1A.8F-1K { 1D:2y; }\');3K(12(){17 8J=1x.2L("ku-k7");if(!8J||5g.k6){cz(\'1A.8F-1K { 1D:4U; }\');14}17 2e=/(?:^| )8F-5y-(\\d+)(?: |$)/.1U(8J.1R);if(!2e&&5g.k5)2e=/(?:^| )8F-5y-(1h\\d+)(?: |$)/.1U(8J.1R);if(!2e)14;17 1C=b3+\'?5V=kd:kj.js&bw=b7&bd=1K/3R&kB=\'+2e[1];kY(1C)})}12 d2(){17 8I=1x.2L(\'ca-kT\');if(8I&&8I.1R==\'35\'){8I.1t.2R+=\'&kU=35\'}}3K(d2);17 1i={};1i.bl=\'3E://3C.3D.3x/w/3A/7/73/kI.3S\';1i.aJ=kG;1i.bc=\'3E://3C.3D.3x/w/3A/8/8f/kE.3S\';1i.b8=\'3E://3C.3D.3x/w/3A/4/4a/kP.kQ\';1i.6A=40;1i.dh=cS;1i.dl=kN;1i.dc=cS;1i.dr=kL;1i.6H=12(){14 1x.2L(\'4K\')};1i.8y=[];1i.6h=[];1i.bs={};1i.6N=[1i.bl,1i.bc];1i.1s=1b;1i.bz=1e;1i.bB=1e;1i.7Z=1e;if(!39.2v.23){39.2v.23=12(2d,5m){if(5m==1b){5m=0}1a if(5m<0){5m=2g.49(0,6.18+5m)}19(17 i=5m,j=6.18;i<j;i++){if(6[i]===2d)14 i}14-1}}17 aN={g0:1i,cU:12(3k){17 1s=1i.1s;17 1A=1x.1V(\'1A\');17 4s=1x.1V(\'4s\');4s.4C=3k;1A.2l(4s);3b(12(){1i.6H().2l(1A)},1);14{\'1A\':1A,\'4s\':4s}},bR:12(){1i.bB=1c;if(1i.bz){1i.1s.bq()}},bU:12(){1i.bz=1c;if(1i.bB){1i.1s.bq()}},bV:12(80,3s){17 1s=1i.1s;1O{17 34=1x.1V(\'34\');34.2k(\'4C\',80);34.2k(\'1d\',\'1D: 2y;\');34.2k(\'g7\',\'1c\');1i.6H().2l(34);34.3w(\'g4\',3s,1e)}1N(e){}3b(3s,fM)},bn:12(3k){17 1s=1i.1s;if(1i.6h.23(3k)==-1){1i.6h[1i.6h.18]=3k;17 68=1s.cU(3k);1i.bs[3k]=68[\'4s\'];68[\'1A\'].2k(\'1d\',\'bm: 3j; 2i: 3t; 1Q: 3t; 3W: 3j; z-3l: -cA;\')}if(1i.bs[3k].1Q){1i.8y[1i.8y.18]=3k}1a{3b(12(){1s.bn(3k)},1i.6A)}},aY:12(3s){17 1s=1i.1s;17 bg=1c;19(17 i in 1i.6N){if(1i.8y.23(1i.6N[i])==-1){bg=1e}if(1i.6h.23(1i.6N[i])==-1){1s.bn(1i.6N[i])}}if(bg){3s()}1a{3b(12(){1s.aY(3s)},1i.6A)}},d4:12(6l){1O{6l.1p.3q(6l)}1N(e){}},aZ:12(3T){14(2g.gm((3T-.5)*2g.cV)+1)/2},bj:12(7b,82,6c,3s,41){17 1s=1i.1s;7b(41(82/6c));if(82>=6c){3s()}1a{3b(12(){1s.bj(7b,82+1i.6A,6c,3s,41)},1i.6A)}},4f:12(7b,6c,3s,41){17 1s=1i.1s;14 1s.bj(7b,0.0,6c,3s,41)},di:12(80){17 1s=1i.1s;1O{17 34=1x.1V(\'34\');34.2k(\'4C\',80);34.2k(\'1d\',\'1D: 2y;\');34.2k(\'gk\',\'1c\');1i.6H().2l(34)}1N(e){}},du:12(68){17 1s=1i.1s;19(17 6l in 68){1s.d4(68[6l])}1i.7Z=1e},bq:12(){17 1s=1i.1s;if(1i.7Z)14;1i.7Z=1c;17 5D=1x.1V(\'a\');5D.2k(\'2R\',\'/\');5D.2k(\'1d\',\'1D:4U; 2D: 67; 29: 3t; 1J: 3t; 1Q: gg; 2i: gC; 4T: 3t; gB: 1C(\'+1i.bl+\') cZ-gu 3t -gs; z-3l: cA;\');1i.6H().2l(5D);17 4g=1x.2L(\'p-fU\');17 dy=$(4g).2D().29;4g.1d.cE=\'g5 g1\';17 dg=1x.2L(\'p-gh\');17 5M=1x.1V(\'1A\');5M.2k(\'2H\',\'hv\');5M.2k(\'1d\',\'88: 1J; 4z:3t; 6a:3t; 2i: 3t;\');4g.1p.3p(5M,4g);17 b2=12(3T){3T=2p(3T*1i.aJ);5D.1d.cE=\'3t \'+(-1i.aJ+3T).3N()+\'2S\';4g.1d.29=(3T+dy).3N()+\'2S\';dg.1d.6p=3T+\'2S\';5M.1d.2i=3T.3N()+\'2S\'};1s.4f(b2,1i.dh,12(){1s.di(1i.b8);3b(12(){17 dt=4g.1X(\'a\')[0].1d.8c;4g.1X(\'a\')[0].1d.8c=\'1C(\'+1i.bc+\')\';1s.4f(12(3T){b2(1.0-3T)},1i.dc,12(){3b(12(){4g.1X(\'a\')[0].1d.8c=dt;1s.du([5D,5M])},1i.dr)},1s.aZ)},1i.dl)},1s.aZ)},fe:12(){17 1s=1i.1s;1s.aY(1s.bR);1s.bV(1i.b8,1s.bU)},fo:12(){17 1s=1i.1s;17 fg=12(){17 1G={7a:12(2d,1l,fn,6Y){if(2d.3w)2d.3w(1l,fn,1e);1a if(2d.3Q){2d["e"+1l+fn]=fn;2d[1l+fn]=12(){2d["e"+1l+fn](5g.1q,6Y)};2d.3Q("3u"+1l,2d[1l+fn])}},2N:"",7Q:"gZ",4D:12(30){6.7a(1x,"aS",12(e,6Y){if(6Y)1G=6Y;1G.2N+=e?e.4H:1q.4H;if(1G.2N.18>1G.7Q.18)1G.2N=1G.2N.4i((1G.2N.18-1G.7Q.18));if(1G.2N==1G.7Q){1G.5E();1G.2N="";14}},6);6.3i.4D(30)},5E:12(30){5g.5Q=30},3i:{7W:0,7T:0,7V:0,8a:0,7g:1e,7S:1e,bt:"",4E:["bo","bo","bx","bx","bD","aL","bD","aL","8q","8q","8q"],5E:12(30){1G.5E(30)},4D:12(30){bt=6.4E;1G.7a(1x,"h8",12(e){if(e.cm.18==1&&1G.3i.7S==1c){17 aG=e.cm[0];1G.3i.7V=aG.6W;1G.3i.8a=aG.7R;1G.3i.7g=1e;1G.3i.7S=1e;1G.3i.bf()}});1G.7a(1x,"gW",12(7N){if(1G.3i.7g==1c)1G.3i.bf(30)},1e);1G.7a(1x,"gR",12(7N){1G.3i.7W=7N.bY[0].6W;1G.3i.7T=7N.bY[0].7R;1G.3i.7g=1c;1G.3i.7S=1c})},bf:12(30){bO=2g.c4(6.7W-6.7V);dY=2g.c4(6.7T-6.8a);x=((6.7W-6.7V)<0)?"aL":"bD";y=((6.7T-6.8a)<0)?"bx":"bo";1W=(bO>dY)?x:y;1W=(6.7g==1c)?"8q":1W;if(1W==6.4E[0])6.4E=6.4E.2A(1,6.4E.18);if(6.4E.18==0){6.4E=6.bt;6.5E(30)}}}};14 1G};17 1G=35 fg();1G.5E=12(){1s.fe.22(1s)};1G.4D()}};1i.1s=aN;3K(aN.fo);17 4e={6K:{\'hC\':\'3E://3C.3D.3x/w/3A/e/ea/hk.3S\',\'h4\':\'3E://3C.3D.3x/w/3A/5/54/he.3S\',\'h9\':\'3E://3C.3D.3x/w/3A/e/ed/gX.3S\',\'gN\':\'3E://3C.3D.3x/w/3A/5/59/gQ.3S\',\'gV\':\'3E://3C.3D.3x/w/3A/f/f7/gU.3S\',\'gT\':\'3E://3C.3D.3x/w/3A/0/gS/hi.3S\',\'hH\':\'3E://3C.3D.3x/w/3A/2/24/hD.3S\',\'hJ\':\'3E://3C.3D.3x/w/3A/e/ed/hP.3S\',\'hN\':\'3E://3C.3D.3x/w/3A/b/b9/hB.3S\'},eu:12(){17 em=1x.2L(\'6t\');if(!em)14[];17 6t=1x.2L(\'6t\').1X(\'a\');17 64=[];17 l;19(17 i=0;i<6t.18;i++){l=6t[i].2s(\'5V\');if(l.2e(/^hl:/i,\'\')){64[64.18]=l.4i(9).1v(/\\/[^/]+$/,\'\')}}14 64},3H:12(aR,eF){19(17 i=0;i<aR.18;i++){if(aR[i]==eF){14 i}}14-1},3V:12(){if(1j(ev)!=\'3o\'){if(4e.3H(ev,\'g8\')!=-1){14}}1O{17 64=4e.eu();17 1P=1x.1X(\'1P\')[0]}1N(e){14}17 5i=[];if(1j(4e.6K[\'5V-\'+et])!=\'3o\'){5i[0]=4e.6K[\'5V-\'+et]}1a{19(17 i in 4e.6K){if(4e.3H(64,i)!=-1){5i[5i.18]=4e.6K[i]}}}if(!5i.18)14;17 er=5i[2g.gr(2g.gf()*5i.18)];1P.1d.8c=\'1C(\'+er+\')\'}};3K(4e.3V);17 4N={aT:[\'4u:ey\'],aK:[\'4u:ey\',\'4u:eD/go\',\'4u:eD/gl\',\'4u:gv\',\'4u:gn\',\'4u:eA\',\'4u:eA/hy\'],dT:\'/e0.js\',co:\'/e0.1y\',3V:12(){19(17 i in 4N.aT){if(5j==4N.aT[i]){$.eU(b3+\'?5V=\'+8m(5j+4N.dT)+\'&bd=1K/3R&bw=b7\')}}19(17 i in 4N.aK){if(5j==4N.aK[i]){$(\'bu\').4c($(\'<30 kf="lH" 1l="1K/1y" lZ="lE" />\').1r(\'2R\',b3+\'?5V=\'+8m(5j+4N.co)+\'&bd=1K/1y&bw=b7\'))}}}};3K(4N.3V);3K(12(){$(\'.eh-36-1K\').4k(12(){$(6).6D().1I(\'.eh-b0\').4p()})});',62,1369,'||||||this||||||||||||||||||||||||||||||||||||||||||||||||||||||||||function||return|||var|length|for|else|null|true|style|false|poot|nodeType|test|spaiConstants|typeof|data|type|each|call|nodeName|parentNode|event|attr|self|firstChild|support|replace|elem|document|css|tabs|div|arguments|url|display|extend|string|konami|push|children|left|text|isFunction|toLowerCase|catch|try|body|width|className|find|255|exec|createElement|result|getElementsByTagName|parseFloat|filter||NavChild|apply|indexOf|||options|documentElement|object|top|selector|break|hasClass|obj|match|color|Math|guid|height|context|setAttribute|appendChild|offset||opacity|parseInt|html|youtubeHelper|getAttribute|ownerDocument|prop|prototype|expr|dis|none|duration|slice|script|table|position|target|handle|selected|class|remove|split|NavFrame|getElementById|childNodes|input|now|events|NavToggle|href|px|trigger|Button|select|nextSibling|innerHTML|map|handler|link|add||get|audio|new|name|error|isArray|Array|show|setTimeout|dataType|delete|tbody|pootTabsHere|value|hide|iphone|hidden|image|index|pushStack|splice|undefined|insertBefore|removeChild|ready|callback|0px|on|expando|addEventListener|com|button|jQuery|images|queue|wiki|teamfortress|http|complete|contains|inArray|filters|start|addOnloadHook|global|cache|toString|_default|tableIndex|attachEvent|javascript|png|progress|end|init|overflow|join|special|makeArray||easing||preventDefault|namespace|offsetTop|checked||set|max||relative|append|128|dynamicBg|animate|logoPortlet|createTextNode|substr|submit|click|td|disabled|ID|shift|toggle|live|tr|img|scrollTop|User|success|scrollLeft|nth|dequeue|margin|browser|radio|src|load|keys|sort|step|keyCode|indexNavigationBar|number|content|RegExp|currentStyle|pageScripts|teardown|setup|async|onreadystatechange|cloneNode|border|block|dir|pos|domManip|timeout|intWidths||readyState|checkbox|param|||removeAttribute|getAttributeNode|1px||val|ratio|stopPropagation|ajaxSettings|Event|compareDocumentPosition|window|isWindow|selectedCats|wgPageName|widths|POS|fromIndex|merge|json|embed|GET|lang|status|ajax|abort|isEmptyObject|inline|removeClass|version|blur|handleComplete|offsetWidth|139|spai|code|first|uFFFF|u00c0|mouseleave|Tables|sizcache|grep|tempPortlet|isXML|PSEUDO|TAG|location|mouseenter|focusout|isNaN|removeData|title|F0|trim|handleObj|boxModel|Rows|unbind|proxy|offsetParent|cats|closest|ButtonLink|absolute|nodes|option|padding|previousSibling|totalTime|one|removeEventListener|password|Object|preloadingImages|pootSelected|youtube|focus|node|change|orig|noop|marginTop|empty|file|100|catlinks|relatedTarget|langList|xml|state|fragment|jquery|timeStep|triggerGlobal|isReady|parent|__events__|currentTarget|speeds|theBody|setRequestHeader|addClass|categories|props|which|toPreloadImages|liveFired|form|unshift|cur|custom|zoom|timers|cssHooks|pageX|replaceWith|ref_obj|querySelectorAll|not|isCollapsed|level||cleanData||getElementsByClassName|noData|CLASS|collapseCaption|addEvent|func|Header|reliableHiddenOffsets|curAnim|textarea|tap|defaultView|last|cssFloat|matchesSelector|NavigationBarShow|211|olddisplay|xhr|specialEasing|lastModified|etag|NavigationBarHide|constructor|offsetLeft|pootcollapse|has|NavigationBoxes|reCache|boolean|auto|clientTop|camelCase|192|initialize|NavContent|responseText|clientLeft|NavPic|scroll|getComputedStyle|babies|before|evt|leftMatch|source|pattern|pageY|capture|start_y|case|stop_x|start_x|nodeValue|order|fired|sound|checkClone|progressTime|toArray|wrapAll||getText|unique|float|multiple|stop_y|CHILD|backgroundImage|detachEvent|isPropagationStopped||isImmediatePropagationStopped|charCode|fromElement|readyWait|isPlainObject|JSON|encodeURIComponent|selectedIndex|triggerHandler|pop|TAP|even|odd|sizset|attrFn|origType|preType|focusin|preloadedImages|attrHandle|resize|bind|concat|resizeTimer|toUpperCase|edittools|deleteExpando|infoboxes|talkpagelink|placeholder|access|offsetHeight|accepts|application|handleSuccess|active|availableWidth|jsonp|chromeSize|parseJSON|wa|borderLeftWidth|_change_data|Ia|contentType|isDefaultPrevented|xa|static|borderTopWidth|specialSubmit|fix|globalEval|marginLeft|ya|va|ua||onbeforeunload|acceptData|ra|min|inprogress|optDisabled|sa|onclick|scriptEval|getRGB|169|handleError|String|getResponseHeader|rgb|ta|tabIndex|notmodified|ctrlKey|pageXOffset|bindReady|parsererror|protocol|metaKey|Function|triggered|attributes|traditional|client|clientX|originalEvent|NAME|buildFragment|unit|stop|Ca|leadingWhitespace|za|na|colgroup|sibling|removeEvent|noCloneEvent|isXMLDoc|lastChild|update|after|Ba|clone|shrinkWrapBlocks|clean|fragments|startTime|old|Da|cacheable|swing|cssProps|oa|attrMap|preFilter|||XMLHttpRequest|pa|Ha|fixed|supportsFixedPosition|onload|mouseout|unload|bodyOffset|Aa|nodeIndex|ATTR|uniqueSort|inlineBlockNeedsLayout|qa||ma|prevObject|ajaxStop|Ea|Ga|runtimeStyle|Fa|Date|mouseover|setOffset|collapseTable|isVertical|expandCaption|newHeight|touch|toggleCollapse|hidelink|spaiHeight|pagesCSS|RIGHT|ul|spaiSappinMahWiki|changeTab|ind|onResize|haystack|keydown|pagesJS|Table|collapsed|HeaderRow|red|preloadImages|smoothInOut|contents|continue|changeHeight|wgScript|setWidth|right|playerUrl|raw|spaiSappingMahWikiWav||||sappedLogo|ctype||check_direction|allPreloaded|bestHeight|getTab|inAnimation|titletext|spaiImage|visibility|preloadImage|UP|pootLinkText|spySappingMahWiki||preloadingRefs|orig_keys|head|cowtabs|action|DOWN|animationsEnabled|loadedSound|200|loadedImages|delayHeight|LEFT|textContent|TEST|Ja|304|httpData|Modified|pt|Va|ajaxComplete|ajaxSuccess|x_magnitude|zh|speed|imagesLoaded|specified|httpSuccess|soundLoaded|preloadSound|httpNotModified|xA0|changedTouches|ajaxError|setFilters|vertical|originalTitle|paddingLeft|abs|webkit|uaMatch|only|_toggle|thisInd|||vb|teenie|unrecognized|noanimations|DOMContentLoaded|dataFilter|Syntax|getTime|expression|wb|touches|ActiveXObject|suffixCSS|fireEvent|Na|col||fieldset|checkOn|Ra|area|optgroup|thead|appendCSS|10000|Sa|nb|pb|backgroundPosition|Ta|ob|wgAction|serializeArray|matches|elements|htmlSerialize|wrapInner|Pa|Qa|createDocumentFragment|appendTo|prepend|2000|toggleClass|createImgDiv|PI|cssNumber|alpha|__className__|no|detach|Oa|talkpageplus|swap|destroyNode|POST|Za|maxWidth|beforeSend|ajaxSend|||anim_spaiBackUp|Ua||movie|navPortlet|anim_spaiFallDown|playSound|ifModified|uuid|anim_spaiWait|langClass|||defaultLang|selectors|anim_sapperDestroyed|widthsR|oldBackground|spyAnimationFinished|If|parents|mb|logoPortletOffset|prevUntil|processData|ub|youtubebox|setSize|qb|rb|_|username|resultHtml|open|scriptCharset|ratioR|ajaxStart|sb|prevAll|tb|pootslideduration|165|origHandler|suffixJS|Width|pageYOffset|Ya|hover|y_magnitude|lastToggle|Page|224|exclusive|die|Top|Left|collapsibleTable|th|styleFloat|subtractsBorderForOverflowNotVisible|||fontWeight||Xa|doesNotIncludeMarginInBodyOffset|keypress|diff|frameElement|element|using|doScroll|catlinksnode||beforeactivate|Ka||selectedCat||wgTitle|getCategories|wPrefs|245|107|WindPower|srcElement|MogDog66|toElement|clientY|Pilk||needle|colors|readOnly|changeBubbles|230|specialChange|144|getColor|curCSS|240|submitBubbles|while|backgroundColor|140|doesAddBorderForTableAndCells|getScript|toggleNavigationBar|divs|hasAttribute|NavToggleText|parse|span|getBoundingClientRect|createCollapseButtons|ButtonText|collapseButton|slideUp|autoCollapse||throw|cssText|||createNavigationBarToggleButton|force|hitItDoc|fadeIn|Konami|tick||updatePoot|interval|getElementsByName|linear||initKonami|fadeOut|edittabs||htmlFor|navbar|setInterval|babysize|hrefNormalized||slideDown|Ma||La|solid|5px|cellspacing|Wa|visible|reset|doesNotAddBorder|000|xb|newValue|1000|layerY|layerX|tfoot|shiftKey|caption|switch|replaceAll|logo|legend|enabled|screenX|relatedNode|prevValue|constants|bottom|screenY|stopImmediatePropagation|canplaythrough|center|meta|preload|noDynamicBackground|unwrap|||1E8|512|header|random|160px|navigation||prependTo|autoplay|armorytest|sin|Lagg|armory|innerText|beforeunload|floor|50000px||repeat|Esquilax|insertAfter|cancelBubble|wrap|returnValue|outerHTML|background|200px|offsetX|wheelDelta|timeStamp|view|contentWindow|mouseup|Until|mousedown|mousemove|property|Demoman|charAt|dblclick|Background_Demoman_vector|touchstart|03|Heavy|Background_Engineer_vector|Engineer|touchend|Background_Pyro_vector|HTML|3838404037393739666513|finally|can|changed|__sizzle__|Soldier|createComment|mozMatchesSelector|webkitMatchesSelector|touchmove|Pyro|||keyup||Background_Soldier_vector|msMatchesSelector|sizzle|andSelf|Background_Heavy_vector|bubbles|Background_Scout_vector|Category|contentDocument|iframe|attrChange|attrName|cancelable||beforedeactivate|eventPhase||portlet|0n|detail|userpagev2|reverse|siblings|Background_Spy_vector|Scout|Background_Medic_vector|prev|next|parentsUntil|Medic|child|Sniper|nextAll|nextUntil|altKey|Spy|delegate|Background_Sniper_vector|undelegate|removeAttr|classid|external|_blank|yellow|white|scrollTo|silver|array|rows|textAlign|cellpadding|normal|20px|collapsible|isPrototypeOf|violet|purple|compatMode|||olive||CSS1Compat|||navy|magenta|maroon|orange|outer|203||noConflict|pink|Height|inner|||6em|autocollapse|slideToggle|compatible|fadeToggle|off|pootselected|nojs|Boolean|overflowY|marginRight|paddingBottom|paddingRight|frameBorder|overflowX|Number|cos|1E4|fast|600|400|NavHead|able|animated|slow|Invalid|regexp|showhide|mdash|notitle|clearInterval|lime|size|183|189|darkmagenta|darkolivegreen|darkorange|bfnrt|darkkhaki|darkgreen|cyan|||brown|darkblue|darkcyan|130|darkgrey|darkorchid|153|darkviolet|122|148|fuchsia|215|gold|150|233|204||parentWindow|darkred|indigo|darksalmon|blue|black|182|outlineColor|lightpink|lightgrey|navigator|238|borderTopColor|borderRightColor|lightyellow|hasOwnProperty|userAgent|193|borderLeftColor|borderBottomColor|lightgreen|lightcyan|khaki|transparent|aqua|azure|220|beige|lightblue|opera|rv|216|mozilla|173|msie|paddingTop|fadeTo|getData|testJsEdittools|noDefaultEdittools|specialchars|datetime|date|||setData|MediaWiki|fontSize|rel|1em|pixelLeft|changeData|Edittools|email|month|Special|Upload||edit|getJSON|post|marginBottom|serialize|editpage|search|range|tel|time|HEAD|week|nocache|getPropertyValue|colSpan|Team_Fortress_Wiki_Egg_Logo_Sap|colspan|196|green|Team_Fortress_Wiki_Egg_Spy|tabindex|usemap|2250|frameborder|900|useMap|Team_Fortress_Wiki_Egg|wav|rowSpan|rowspan|talk|section|rea|clearQueue|delay|importScriptURI|readonly|maxlength|Bottom|Right|cellSpacing|zIndex|maxLength|lineHeight|ajaxSetup|offsetY|ru|||sv|ro|clsid|300|pl|hans||hant|send|96B8|11cf|www|D27CDB6E|1223|Last|safari|u00a0||container|Microsoft|pootvertical|XMLHTTP|optSelected|responseXML|nl|Etag|4px|radiotest|screen|infobox|AE6D|stylesheet|round|Since|jsonpCallback|None|Type|Content|1_|host|charset|loaded|Match|Requested|urlencoded|applet|444553540000|testchamber|bodyContent|media|clearTimeout|With|01|plain|Accept'.split('|'),0,{}))
 
  
/* Google Analytics - Uncompressed */
+
// External links open in new windows/tabs:
 +
$('a.external').attr('target', '_blank');
 +
 
 +
/** Collapsible tables *********************************************************
 +
  *
 +
  *  Description: Allows tables to be collapsed, showing only the header. See
 +
  *              [[Wikipedia:NavFrame]].
 +
  *  Maintainers: [[User:R. Koot]]
 +
  */
 +
var hasClass = (function () {
 +
    var reCache = {};
 +
    return function (element, className) {
 +
        return (reCache[className] ? reCache[className] : (reCache[className] = new RegExp("(?:\\s|^)" + className + "(?:\\s|$)"))).test(element.className);
 +
    };
 +
})();
 +
 
 +
var autoCollapse = 2;
 +
var collapseCaptionLang = {'ar': 'أخف', 'cs': 'sbalit', 'da': 'fold sammen', 'de': 'einklappen', 'es': 'contraer', 'fi': 'supista', 'fr': 'masquer', 'hu': 'becsuk', 'it': 'comprimi', 'ja': '折り畳む', 'ko': '접기', 'nl': 'samenvouwen', 'pl': 'zwiń', 'pt': 'ocultar', 'pt-br': 'ocultar', 'ro': 'restrânge', 'ru': 'свернуть', 'sv': 'dölj', 'tr': 'daralt', 'zh-hans': '折叠', 'zh-hant': '合併'};
 +
var expandCaptionLang = {'ar': 'أظهر', 'cs': 'rozbalit', 'da': 'fold ud', 'de': 'ausklappen', 'es': 'expandir', 'fi': 'Laajenna', 'fr': 'afficher', 'hu': 'kinyit', 'it': 'espandi', 'ja': '展開する', 'ko': '펼치기', 'nl': 'uitvouwen', 'pl': 'rozwiń', 'pt': 'expandir', 'pt-br': 'expandir', 'ro': 'extinde', 'ru': 'развернуть', 'sv': 'visa', 'tr': 'genişlet', 'zh-hans': '展开', 'zh-hant': '展開'};
 +
var collapseCaption = collapseCaptionLang[mw.config.get("wgPageName").split("/").pop()] || 'collapse';
 +
var expandCaption = expandCaptionLang[mw.config.get("wgPageName").split("/").pop()] || 'expand';
 +
 +
window.collapseTable = function ( tableIndex ) {
 +
    var Button = document.getElementById( 'collapseButton' + tableIndex );
 +
    var Table = document.getElementById( 'collapsibleTable' + tableIndex );
 +
 +
    if ( !Table || !Button ) {
 +
        return false;
 +
    }
 +
 +
    var Rows = Table.rows;
 +
    var i;
 +
 +
    if ( Button.firstChild.data === collapseCaption ) {
 +
        for ( i = 1; i < Rows.length; i++ ) {
 +
            Rows[i].style.display = 'none';
 +
        }
 +
        Button.firstChild.data = expandCaption;
 +
    } else {
 +
        for ( i = 1; i < Rows.length; i++ ) {
 +
            Rows[i].style.display = Rows[0].style.display;
 +
        }
 +
        Button.firstChild.data = collapseCaption;
 +
    }
 +
};
 +
 +
function createCollapseButtons() {
 +
    var tableIndex = 0;
 +
    var NavigationBoxes = {};
 +
    var Tables = document.getElementsByTagName( 'table' );
 +
    var i;
 +
 +
    function handleButtonLink( index, e ) {
 +
        window.collapseTable( index );
 +
        e.preventDefault();
 +
    }
 +
 +
    for ( i = 0; i < Tables.length; i++ ) {
 +
        if ( $( Tables[i] ).hasClass( 'collapsible' ) ) {
 +
 +
            /* only add button and increment count if there is a header row to work with */
 +
            var HeaderRow = Tables[i].getElementsByTagName( 'tr' )[0];
 +
            if ( !HeaderRow ) continue;
 +
            var Header = HeaderRow.getElementsByTagName( 'th' )[0];
 +
            if ( !Header ) continue;
 +
 +
            NavigationBoxes[ tableIndex ] = Tables[i];
 +
            Tables[i].setAttribute( 'id', 'collapsibleTable' + tableIndex );
 +
 +
            var Button    = document.createElement( 'span' );
 +
            var ButtonLink = document.createElement( 'a' );
 +
            var ButtonText = document.createTextNode( collapseCaption );
 +
 +
            Button.className = 'collapseButton';  /* Styles are declared in Common.css */
 +
 +
            ButtonLink.style.color = Header.style.color;
 +
            ButtonLink.setAttribute( 'id', 'collapseButton' + tableIndex );
 +
            ButtonLink.setAttribute( 'href', '#' );
 +
            $( ButtonLink ).on( 'click', $.proxy( handleButtonLink, ButtonLink, tableIndex ) );
 +
            ButtonLink.appendChild( ButtonText );
 +
 +
            Button.appendChild( document.createTextNode( '[' ) );
 +
            Button.appendChild( ButtonLink );
 +
            Button.appendChild( document.createTextNode( ']' ) );
 +
 +
            Header.insertBefore( Button, Header.firstChild );
 +
            tableIndex++;
 +
        }
 +
    }
 +
 +
    for ( i = 0;  i < tableIndex; i++ ) {
 +
        if ( $( NavigationBoxes[i] ).hasClass( 'collapsed' ) || ( tableIndex >= autoCollapse && $( NavigationBoxes[i] ).hasClass( 'autocollapse' ) ) ) {
 +
            window.collapseTable( i );
 +
        }
 +
        else if ( $( NavigationBoxes[i] ).hasClass ( 'innercollapse' ) ) {
 +
            var element = NavigationBoxes[i];
 +
            while ((element = element.parentNode)) {
 +
                if ( $( element ).hasClass( 'outercollapse' ) ) {
 +
                    window.collapseTable ( i );
 +
                    break;
 +
                }
 +
            }
 +
        }
 +
    }
 +
}
 +
 +
$( createCollapseButtons );
 +
 
 +
/** Dynamic Navigation Bars (experimental) *************************************
 +
*
 +
*  Description: See [[Wikipedia:NavFrame]].
 +
*  Maintainers: UNMAINTAINED
 +
*/
 +
 
 +
// set up the words in your language
 +
var NavigationBarHide = '[' + collapseCaption + ']';
 +
var NavigationBarShow = '[' + expandCaption + ']';
 +
 
 +
// shows and hides content and picture (if available) of navigation bars
 +
// Parameters:
 +
//    indexNavigationBar: the index of navigation bar to be toggled
 +
function toggleNavigationBar(indexNavigationBar){
 +
    var NavToggle = document.getElementById("NavToggle" + indexNavigationBar);
 +
    var NavFrame = document.getElementById("NavFrame" + indexNavigationBar);
 +
 
 +
    if (!NavFrame || !NavToggle) {
 +
        return false;
 +
    }
 +
 
 +
    // if shown now
 +
    if (NavToggle.firstChild.data == NavigationBarHide) {
 +
        for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) {
 +
            if (hasClass(NavChild, 'NavContent') || hasClass(NavChild, 'NavPic')) {
 +
                NavChild.style.display = 'none';
 +
            }
 +
        }
 +
    NavToggle.firstChild.data = NavigationBarShow;
 +
 
 +
    // if hidden now
 +
    } else if (NavToggle.firstChild.data == NavigationBarShow) {
 +
        for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) {
 +
            if (hasClass(NavChild, 'NavContent') || hasClass(NavChild, 'NavPic')) {
 +
                NavChild.style.display = 'block';
 +
            }
 +
        }
 +
        NavToggle.firstChild.data = NavigationBarHide;
 +
    }
 +
}
 +
 
 +
// adds show/hide-button to navigation bars
 +
function createNavigationBarToggleButton(){
 +
    var indexNavigationBar = 0;
 +
    // iterate over all < div >-elements
 +
    var divs = document.getElementsByTagName("div");
 +
    for (var i = 0; NavFrame = divs[i]; i++) {
 +
        // if found a navigation bar
 +
        if (hasClass(NavFrame, "NavFrame")) {
 +
 
 +
            indexNavigationBar++;
 +
            var NavToggle = document.createElement("a");
 +
            NavToggle.className = 'NavToggle';
 +
            NavToggle.setAttribute('id', 'NavToggle' + indexNavigationBar);
 +
            NavToggle.setAttribute('href', 'javascript:toggleNavigationBar(' + indexNavigationBar + ');');
 +
 
 +
            var isCollapsed = hasClass( NavFrame, "collapsed" );
 +
            /*
 +
            * Check if any children are already hidden.  This loop is here for backwards compatibility:
 +
            * the old way of making NavFrames start out collapsed was to manually add style="display:none"
 +
            * to all the NavPic/NavContent elements.  Since this was bad for accessibility (no way to make
 +
            * the content visible without JavaScript support), the new recommended way is to add the class
 +
            * "collapsed" to the NavFrame itself, just like with collapsible tables.
 +
            */
 +
            for (var NavChild = NavFrame.firstChild; NavChild != null && !isCollapsed; NavChild = NavChild.nextSibling) {
 +
                if ( hasClass( NavChild, 'NavPic' ) || hasClass( NavChild, 'NavContent' ) ) {
 +
                    if ( NavChild.style.display == 'none' ) {
 +
                        isCollapsed = true;
 +
                    }
 +
                }
 +
            }
 +
            if (isCollapsed) {
 +
                for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) {
 +
                    if ( hasClass( NavChild, 'NavPic' ) || hasClass( NavChild, 'NavContent' ) ) {
 +
                        NavChild.style.display = 'none';
 +
                    }
 +
                }
 +
            }
 +
            var NavToggleText = document.createTextNode(isCollapsed ? NavigationBarShow : NavigationBarHide);
 +
            NavToggle.appendChild(NavToggleText);
 +
 
 +
            // Find the NavHead and attach the toggle link (Must be this complicated because Moz's firstChild handling is borked)
 +
            for(var j=0; j < NavFrame.childNodes.length; j++) {
 +
                if (hasClass(NavFrame.childNodes[j], "NavHead")) {
 +
                    NavToggle.style.color = NavFrame.childNodes[j].style.color;
 +
                    NavFrame.childNodes[j].appendChild(NavToggle);
 +
                }
 +
            }
 +
            NavFrame.setAttribute('id', 'NavFrame' + indexNavigationBar);
 +
        }
 +
    }
 +
}
 +
 
 +
$( createNavigationBarToggleButton );
 +
 
 +
//END Collapsible tables *********************************************************
 +
 
 +
// PootTabs by User:WindPower~
 +
// It puts tabs on pages.
 +
var pootTabsHere = {
 +
    animationsEnabled: $.support.opacity,
 +
getTab:function(poot, index) {
 +
return $(poot.children('.poot-tabs').children('ul').children('li')[parseInt(index)]);
 +
},
 +
changeTab:function(poot, index, duration, force) {
 +
if(index == parseInt(poot.attr('pootSelected')) && !force && duration) return;
 +
if(!pootTabsHere.animationsEnabled) {
 +
duration = 0;
 +
}
 +
poot.attr('pootSelected', index.toString());
 +
var babies = poot.children('.poot-tabs-content').children();
 +
babies.each(function() {
 +
$(this).fadeOut(duration, function(){
 +
$(this).removeClass('poot-tabs-selected');
 +
});
 +
});
 +
$(babies[index]).each(function() {
 +
$(this).fadeIn(duration, function(){
 +
$(this).addClass('poot-tabs-selected');
 +
});
 +
});
 +
var cowtabs = poot.children('.poot-tabs').children('ul').children('li');
 +
cowtabs.removeClass('poot-tabs-selected');
 +
$(cowtabs[index]).addClass('poot-tabs-selected');
 +
pootTabsHere.updatePoot(poot, $(babies[index]).height());
 +
},
 +
updatePoot:function(poot, babysize) {
 +
if(poot.hasClass('poot-tabs-notitle')) {
 +
poot.find('.poot-tabs-titletext').html(pootTabsHere.getTab(poot, poot.attr('pootSelected')).html());
 +
} else {
 +
poot.find('.poot-tabs-titletext').html(poot.attr('originalTitle') + ' &mdash; ' + pootTabsHere.getTab(poot, poot.attr('pootSelected')).html());
 +
}
 +
if(poot.has('.poot-tabs-edittabs') && poot.has('.poot-tabs-navbar')) {
 +
try {
 +
poot.find('.poot-tabs-navbar').html($(poot.children('.poot-tabs-edittabs').children('span')[parseInt(poot.attr('pootSelected'))]).html());
 +
} catch(e) {}
 +
}
 +
var bestHeight = Math.max(poot.children('.poot-tabs-content').height(), Math.max(poot.children('.poot-tabs').height(), babysize)).toString() + 'px';
 +
poot.children('.poot-tabs-content').css('height', bestHeight);
 +
if(poot.attr('vertical')) {
 +
poot.children('.poot-tabs').css('height', bestHeight);
 +
}
 +
},
 +
toggleCollapse:function(poot) {
 +
var pootLinkText = poot.children('.poot-tabs-showhide').text().split(';');
 +
var duration = pootTabsHere.animationsEnabled ? parseInt(poot.attr('pootslideduration')) : 0;
 +
if(poot.attr('pootcollapse') != 'true') {
 +
poot.attr('pootcollapse', 'true');
 +
poot.find('.poot-tabs-hidelink a').text(pootLinkText[0]);
 +
poot.children('.poot-tabs, .poot-tabs-content').slideUp(duration);
 +
}
 +
else {
 +
poot.attr('pootcollapse', '');
 +
poot.find('.poot-tabs-hidelink a').text(pootLinkText[1]);
 +
poot.children('.poot-tabs, .poot-tabs-content').slideDown(duration);
 +
}
 +
},
 +
delayHeight:function(poot, selected) {
 +
setTimeout(function() {
 +
poot.attr('pootselected', selected.toString());
 +
pootTabsHere.changeTab(poot, selected, 0, true);
 +
if(poot.hasClass('poot-tabs-collapsed')) {
 +
pootTabsHere.toggleCollapse(poot);
 +
}
 +
}, 100);
 +
},
 +
poot:function() {
 +
var dis = $(this);
 +
dis.removeClass('poot-tabs-nojs'); // If this thing runs, JS is on
 +
var ind = 0;
 +
dis.attr('originalTitle', dis.find('.poot-tabs-titletext').html());
 +
var selected = /poot-tabs-selected-(\d+)/i.exec(dis.attr('class'));
 +
if(selected) {
 +
pootTabsHere.delayHeight(dis, parseInt(selected[1])-1);
 +
}
 +
else {
 +
pootTabsHere.delayHeight(dis, 0);
 +
}
 +
var duration = dis.hasClass('poot-tabs-noanimations') ? 0 : 200;
 +
dis.attr('pootslideduration', dis.hasClass('poot-tabs-noanimations') ? '0' : '75');
 +
dis.children('.poot-tabs').children('ul').children('li').each(function(){
 +
var thisInd = ind;
 +
$(this).click(function(){
 +
pootTabsHere.changeTab(dis, thisInd, duration, false);
 +
$(this).blur();
 +
$(this).find('*').blur();
 +
return false;
 +
});
 +
ind++;
 +
});
 +
var isVertical = dis.hasClass('poot-tabs-vertical');
 +
dis.attr('pootvertical', isVertical ? 'true' : '');
 +
if(isVertical) {
 +
var teenie = dis.children('.poot-tabs').width().toString() + 'px';
 +
dis.children('.poot-tabs-content').css('margin-left', teenie);
 +
}
 +
dis.attr('pootcollapse', ''); // False
 +
dis.find('.poot-tabs-hidelink a').click(function(){
 +
pootTabsHere.toggleCollapse(dis);
 +
return false;
 +
});
 +
},
 +
init:function() {
 +
$('.poot-tabs-container').each(pootTabsHere.poot);
 +
}
 +
};
 +
$(pootTabsHere.init);
 +
 
 +
// Language support fixes
 +
var langFixes = {
 +
init: function() {
 +
// Supported list of languages (not including the default one):
 +
var langList = ['ar', 'cs', 'da', 'de', 'es', 'fi', 'fr', 'hu', 'it', 'ja', 'ko', 'nl', 'no', 'pl', 'pt', 'pt-br', 'ro', 'ru', 'sv', 'tr', 'zh-hans', 'zh-hant'];
 +
// Assumed language if the page is in none of the languages above:
 +
var defaultLang = 'en';
 +
var lang = defaultLang;
 +
for(var i in langList) {
 +
if(mw.config.get('wgPageName').substr(mw.config.get('wgPageName').length - 1 - langList[i].length).toLowerCase() == '/' + langList[i].toLowerCase()) {
 +
lang = langList[i];
 +
break;
 +
}
 +
}
 +
$('body').addClass('lang-' + lang);
 +
}
 +
};
 +
$(langFixes.init);
 +
 
 +
// Custom tooltip component. See Template:Tooltip
 +
var wikiTooltip = {
 +
    init: function() {
 +
        var $tooltips = $('.wiki-tooltip .wiki-tooltip-content');
 +
        if ($tooltips[0]) {
 +
            $tooltips.each(function() {
 +
                var $this = $(this);
 +
                function handler() {
 +
                    // Check for links and handle them on handheld devices
 +
                    if (!!$this.closest('a').attr('href')) {
 +
                        $this.closest('a').removeAttr('title');
 +
 
 +
                        widthRect <= 1000 ? wikiTooltip.hasLink($this) : wikiTooltip.removeAnchor($this);
 +
                    }
 +
                   
 +
                    // Prevent tooltips from overflowing the viewport
 +
                    var bounding = $this[0].getBoundingClientRect();
 +
                    edgeRect = {
 +
                        left: Math.floor(($this.width() + bounding.left + 10)),
 +
                        right: Math.floor(($this.width() + bounding.right + 10))
 +
                    };
 +
 
 +
                    widthRect = $(window).innerWidth();
 +
                    if (edgeRect.left >= (widthRect || document.documentElement.clientWidth)) {
 +
                        $this.css('left', '');
 +
                        $this.css('right', '50%');
 +
                    } else if (edgeRect.right <= (widthRect || document.documentElement.clientWidth)) {
 +
                        $this.css('right', '');
 +
                        $this.css('left', '50%');
 +
                    }
 +
                }
 +
                $(handler);
 +
                setTimeout(function() {
 +
                    $(window).on('resize', handler);
 +
                }, 250);
 +
            });
 +
        }
 +
    },
 +
    hasLink: function(tooltip) {
 +
        if (tooltip.find('a').length < 1) {
 +
            var $a = $('<a>');
 +
            var url = tooltip.closest('a');
 +
            var href = url.attr('href');
 +
 
 +
            $a.attr('href', href);
 +
            url.attr('href', 'javascript:void(0);');
 +
            tooltip.append($a);
 +
        }
 +
    },
 +
    removeAnchor: function(tooltip) {
 +
        var url = tooltip.closest('a');
 +
        var href = url.attr('href');
 +
 
 +
        innerLink = tooltip.find('a').attr('href');
 +
        if (innerLink) {
 +
            href = innerLink;
 +
            url.attr('href', href);
 +
            tooltip.find('a').remove();
 +
        } else {
 +
            return;
 +
        }
 +
    }
 +
};
 +
$(wikiTooltip.init);
 +
 
 +
// Logged-in body class injection
 +
var loggedinBodyClass = {
 +
init: function() {
 +
$('body').addClass(mw.config.get('wgUserName') == null ? 'not-logged-in' : 'logged-in');
 +
}
 +
};
 +
$(loggedinBodyClass.init);
 +
 
 +
// Resize YouTube embed, turn HD on, etc, by User:WindPower
 +
var youtubeHelper = {
 +
chromeSize: 25, // This is the height (in pixels) of the chrome of YouTube's embedded video player. Update this whenever they release a new embedded video player
 +
maxWidth: 0.85, // Maximum fraction of the available width that the video may take
 +
infoboxes: ['.infobox', '.testchamber'], // Selectors of infobox-style boxes that should be deducted from the page's available width
 +
ratioR: /ratio-(\d+)x(\d+)/i,
 +
widthsR: /widths((?:\D+\d+)+)/i,
 +
setSize:function() {
 +
var widths = youtubeHelper.widthsR.exec($(this).attr('class'));
 +
if(widths != null) {
 +
widths = widths[1].substr(1).split(/\D+/g);
 +
var availableWidth = $('#bodyContent').width();
 +
for(var i in youtubeHelper.infoboxes) {
 +
if($(youtubeHelper.infoboxes[i]).length) {
 +
availableWidth -= $(youtubeHelper.infoboxes[i]).width();
 +
}
 +
}
 +
availableWidth *= youtubeHelper.maxWidth;
 +
var intWidths = [];
 +
for(var w = 0; w < widths.length; w++) {
 +
intWidths[w] = parseInt(widths[w]);
 +
}
 +
intWidths.sort(function(a, b){return b - a;});
 +
for(var w = 0; w < intWidths.length; w++) {
 +
if(intWidths[w] <= availableWidth || w == intWidths.length-1) {
 +
youtubeHelper.setWidth(this, intWidths[w]);
 +
break;
 +
}
 +
}
 +
}
 +
else {
 +
youtubeHelper.setWidth(this, parseFloat(obj.attr('width')));
 +
}
 +
},
 +
setUrl:function() {
 +
var obj = $(this).children('object');
 +
if(!obj.length) return;
 +
obj.append($('<param name="allowscriptaccess" value="true"></param>'));
 +
obj.append($('<param name="allowfullscreen" value="true"></param>'));
 +
var titleParts = mw.config.get('wgPageName').split(/\//g);
 +
var lang = 'en';
 +
if(titleParts.length == 2 && !mw.config.get('wgCanonicalSpecialPageName')) {
 +
lang = titleParts[titleParts.length-1];
 +
}
 +
var playerUrl = obj.children('param[name="movie"]').attr('value') + '&version=2&fs=1&theme=dark&color=white' + ($(this).hasClass('hd-on') ? '&hd=1' : '') + '&cc_load_policy=1&modestbranding=1&hl=' + lang + '&cc_lang_pref=' + lang;
 +
obj.children('param[name="movie"]').attr('value', playerUrl);
 +
obj.children('embed').attr('src', playerUrl).attr('allowscriptaccess', 'always').attr('allowfullscreen', 'true');
 +
var resultHtml = $(this).html();
 +
$(this).html('').html(resultHtml);
 +
},
 +
setWidth:function(youtube, width) {
 +
var obj = $(youtube).children('object');
 +
if(!obj) return;
 +
if($(youtube).hasClass('youtube-audio')) {
 +
obj.attr('width', width).attr('height', youtubeHelper.chromeSize); // Set <object> height
 +
obj.children('embed').attr('width', width).attr('height', youtubeHelper.chromeSize); // Set <embed> height
 +
}
 +
else {
 +
var ratio = youtubeHelper.ratioR.exec($(youtube).attr('class'));
 +
if(ratio != null) {
 +
ratio = parseFloat(ratio[1])/parseFloat(ratio[2]);
 +
var newHeight = Math.round(width / ratio + youtubeHelper.chromeSize).toString();
 +
obj.attr('width', width).attr('height', newHeight); // Set <object> height
 +
obj.children('embed').attr('width', width).attr('height', newHeight); // Set <embed> height
 +
}
 +
}
 +
},
 +
resizeTimer:null,
 +
resize:function() {
 +
if(youtubeHelper.resizeTimer != null) {
 +
clearTimeout(youtubeHelper.resizeTimer);
 +
}
 +
youtubeHelper.resizeTimer = setTimeout(youtubeHelper.onResize, 100);
 +
},
 +
onResize:function() {
 +
$('.youtubebox').each(youtubeHelper.setSize);
 +
},
 +
init:function() {
 +
$('.youtubebox').each(youtubeHelper.setUrl);
 +
$(window).resize(youtubeHelper.resize);
 +
youtubeHelper.onResize();
 +
}
 +
};
 +
$(youtubeHelper.init);
 +
 
 +
// Edittools loader copied from http://en.wikipedia.org/wiki/MediaWiki:Common.js/edit.js?oldid=407371785
 +
// Only slightly modified by seb26
 +
 
 +
/**
 +
*  Edittools javascript loader ************************************************
 +
*
 +
*  Description: Pulls in [[MediaWiki:Edittools.js]]. Includes a cache-bypassing
 +
*  version number in the URL in order to allow any changes to the edittools to
 +
*  be rapidly deployed to users.
 +
*
 +
*  Note that, by default, this function does nothing unless the element with
 +
*  the ID "editpage-specialchars" (which contains the old edittools code in
 +
*  [[MediaWiki:Edittools]], and will be retained as a placeholder in the new
 +
*  implementation) has a class named "edittools-version-NNN", where NNN is a
 +
*  number.  If the class name has "test" before the number, the code will only
 +
*  run for users who have set "window.testJsEdittools = true" in their user JS.
 +
*  The "test" should be retained in the class name until the new edittools
 +
*  implementation is ready and fully tested, and until at least 30 days have
 +
*  passed since this loader stub was added (which will be in 27 June 2008).
 +
*
 +
*  For compatibility with Alex Smotrov's original implementation, on which this
 +
*  code is loosely based (see [[mw:User talk:Alex Smotrov/edittools.js]]), this
 +
*  loader can also be disabled by setting "window.noDefaultEdittools = true".
 +
*
 +
*  Maintainers: [[User:Ilmari Karonen]]
 +
*/
 +
 
 +
if (['edit', 'submit'].indexOf(mw.config.get('wgAction')) !== -1 || mw.config.get('wgPageName') == "Special:Upload") //scripts specific to editing pages
 +
{
 +
 +
  // Prevent the static edittools from flashing before the compact edittools below is loaded.
 +
  mw.util.addCSS('div.edittools-text { display:none; }');
 +
 +
  $(function () {
 +
    // needs to be deferred until the DOM has fully loaded
 +
    var placeholder = document.getElementById("editpage-specialchars");
 +
    if (!placeholder || window.noDefaultEdittools) {
 +
      //Show the static edittools again for users with "window.noDefaultEdittools=true".
 +
      mw.util.addCSS('div.edittools-text { display:block; }');
 +
      return;
 +
    }
 +
    var match = /(?:^| )edittools-version-(\d+)(?: |$)/.exec(placeholder.className);
 +
 +
    // set window.testJsEdittools = true to enable testing before full deployment
 +
    if (!match && window.testJsEdittools)
 +
        match = /(?:^| )edittools-version-(test\d+)(?: |$)/.exec(placeholder.className);
 +
 +
    if (!match) return;
 +
    var url = mw.config.get('wgScript') + '?title=MediaWiki:Edittools.js&action=raw&ctype=text/javascript&nocache=' + match[1];
 +
    mw.loader.load(url);
 +
  });
 +
}
 +
 
 +
/********* MediaWiki:Valve.js *********/
 +
function talkpageplus()
 +
{
 +
    var talkpagelink = document.getElementById('ca-talk');
 +
    if (talkpagelink && talkpagelink.className == 'new')
 +
    {
 +
        talkpagelink.firstChild.href += '&section=new';
 +
    }
 +
}
 +
$(talkpageplus);
 +
 
 +
// Konami code easter egg by WindPower, modified by Wookipan
 +
// Constants:
 +
var spaiConstants = {};
 +
// Editable constants:
 +
// General info:
 +
spaiConstants.spaiEnabled = true;
 +
spaiConstants.spaiImage = '/w/images/7/73/Team_Fortress_Wiki_Egg_Spy.png';
 +
spaiConstants.spaiHeight = 196;
 +
spaiConstants.sapperClass = '--sapped';
 +
spaiConstants.spaiSappingMahWikiWav = '/w/images/4/4a/Team_Fortress_Wiki_Egg.wav';
 +
spaiConstants.timeStep = 40; // In milliseconds; 40 ms => 25 fps
 +
// Animation timing (all times in milliseconds):
 +
spaiConstants.anim_spaiFallDown = 2000; // Time for Spy to fall down
 +
spaiConstants.anim_spaiWait = 900; // Time Spy waits before going back up
 +
spaiConstants.anim_spaiBackUp = 2000; // Time for Spy to go back up
 +
spaiConstants.anim_sapperDestroyed = 2250; // Time until Sapper gets destroyed
 +
// End editable constants
 +
spaiConstants.theBody = function(){return document.getElementById('content');};
 +
spaiConstants.preloadedImages = [];
 +
spaiConstants.preloadingImages = [];
 +
spaiConstants.preloadingRefs = {};
 +
spaiConstants.toPreloadImage = spaiConstants.spaiImage;
 +
spaiConstants.self = null;
 +
spaiConstants.loadedSound = false;
 +
spaiConstants.loadedImages = false;
 +
spaiConstants.fired = false;
 +
// End constants
 +
 
 +
if (!Array.prototype.indexOf) {
 +
  Array.prototype.indexOf = function (obj, fromIndex) {
 +
    if (fromIndex == null) {
 +
        fromIndex = 0;
 +
    } else if (fromIndex < 0) {
 +
        fromIndex = Math.max(0, this.length + fromIndex);
 +
    }
 +
    for (var i = fromIndex, j = this.length; i < j; i++) {
 +
        if (this[i] === obj)
 +
            return i;
 +
    }
 +
    return -1;
 +
  };
 +
}
 +
 
 +
var spaiSappinMahWiki = {
 +
constants: spaiConstants,
 +
createImgDiv:function(image) {
 +
var self = spaiConstants.self;
 +
var div = document.createElement('div');
 +
var img = document.createElement('img');
 +
img.src = image;
 +
div.appendChild(img);
 +
setTimeout(function(){spaiConstants.theBody().appendChild(div);}, 1);
 +
return {
 +
'div': div,
 +
'img': img
 +
};
 +
},
 +
imagesLoaded:function() {
 +
spaiConstants.loadedImages = true;
 +
if(spaiConstants.loadedSound) {
 +
spaiConstants.self.spySappingMahWiki();
 +
}
 +
},
 +
soundLoaded:function() {
 +
spaiConstants.loadedSound = true;
 +
if(spaiConstants.loadedImages) {
 +
spaiConstants.self.spySappingMahWiki();
 +
}
 +
},
 +
preloadSound:function(sound, callback) {
 +
var self = spaiConstants.self;
 +
try {
 +
var audio = document.createElement('audio');
 +
audio.setAttribute('src', sound);
 +
audio.setAttribute('style', 'display: none;');
 +
audio.setAttribute('preload', 'true');
 +
spaiConstants.theBody().appendChild(audio);
 +
audio.addEventListener('canplaythrough', callback, false);
 +
}
 +
catch(e) {}
 +
setTimeout(callback, 1000); // Fallback
 +
},
 +
preloadImage:function(image) {
 +
var self = spaiConstants.self;
 +
if(spaiConstants.preloadingImages.indexOf(image) == -1) {
 +
spaiConstants.preloadingImages[spaiConstants.preloadingImages.length] = image;
 +
var nodes = self.createImgDiv(image);
 +
spaiConstants.preloadingRefs[image] = nodes['img'];
 +
nodes['div'].setAttribute('style', 'visibility: hidden; height: 0px; width: 0px; overflow: hidden; z-index: -10000;');
 +
}
 +
if(spaiConstants.preloadingRefs[image].width) {
 +
spaiConstants.preloadedImages[spaiConstants.preloadedImages.length] = image;
 +
}
 +
else
 +
{
 +
setTimeout(function(){self.preloadImage(image);}, spaiConstants.timeStep);
 +
}
 +
},
 +
preloadImages:function(callback) {
 +
var self = spaiConstants.self;
 +
var allPreloaded = true;
 +
for(var i in spaiConstants.toPreloadImages) {
 +
if(spaiConstants.preloadedImages.indexOf(spaiConstants.toPreloadImages[i]) == -1) {
 +
allPreloaded = false;
 +
}
 +
if(spaiConstants.preloadingImages.indexOf(spaiConstants.toPreloadImages[i]) == -1) {
 +
self.preloadImage(spaiConstants.toPreloadImages[i]);
 +
}
 +
}
 +
if(allPreloaded) {
 +
callback();
 +
} else {
 +
setTimeout(function(){self.preloadImages(callback);}, spaiConstants.timeStep);
 +
}
 +
},
 +
destroyNode:function(node) {
 +
try {
 +
node.parentNode.removeChild(node);
 +
} catch(e) {
 +
// Ze goggles, zey do nothin
 +
}
 +
},
 +
smoothInOut:function(progress) {
 +
return (Math.sin((progress-.5)*Math.PI)+1)/2;
 +
},
 +
inAnimation:function(func, progressTime, totalTime, callback, easing) {
 +
var self = spaiConstants.self;
 +
func(easing(progressTime / totalTime));
 +
if(progressTime >= totalTime) {
 +
callback();
 +
} else {
 +
setTimeout(function(){self.inAnimation(func, progressTime + spaiConstants.timeStep, totalTime, callback, easing);}, spaiConstants.timeStep);
 +
}
 +
},
 +
animate:function(func, totalTime, callback, easing) {
 +
var self = spaiConstants.self;
 +
return self.inAnimation(func, 0.0, totalTime, callback, easing);
 +
},
 +
playSound:function(sound) {
 +
var self = spaiConstants.self;
 +
try {
 +
var audio = document.createElement('audio');
 +
audio.setAttribute('src', sound);
 +
audio.setAttribute('style', 'display: none;');
 +
audio.setAttribute('autoplay', 'true');
 +
spaiConstants.theBody().appendChild(audio);
 +
}
 +
catch(e) {}
 +
},
 +
spyAnimationFinished:function(nodes) {
 +
var self = spaiConstants.self;
 +
for(var node in nodes) {
 +
self.destroyNode(nodes[node]);
 +
}
 +
spaiConstants.fired = false;
 +
},
 +
spySappingMahWiki:function() {
 +
var self = spaiConstants.self;
 +
if(spaiConstants.fired) return;
 +
spaiConstants.fired = true;
 +
var spai = document.createElement('a');
 +
spai.setAttribute('href', '/');
 +
spai.setAttribute('style', 'display:block; position: absolute; top: 0px; left: 0px; width: 160px; height: 200px; border: 0px; background: url('+spaiConstants.spaiImage+') no-repeat 0px -50000px; z-index: 10000;');
 +
spaiConstants.theBody().appendChild(spai);
 +
var logoPortlet = document.getElementById('p-logo');
 +
var changeHeight = function(progress) {
 +
progress = parseInt(progress * spaiConstants.spaiHeight);
 +
spai.style.backgroundPosition = '0px ' + (-spaiConstants.spaiHeight + progress).toString() + 'px';
 +
};
 +
self.animate(changeHeight, spaiConstants.anim_spaiFallDown, function(){
 +
self.playSound(spaiConstants.spaiSappingMahWikiWav);
 +
setTimeout(function(){
 +
logoPortlet.classList.add('wiki-logo' + spaiConstants.sapperClass);
 +
self.animate(function(progress){changeHeight(1.0-progress);}, spaiConstants.anim_spaiBackUp, function(){
 +
setTimeout(function(){
 +
logoPortlet.removeAttribute('class');
 +
self.spyAnimationFinished([spai]);
 +
}, spaiConstants.anim_sapperDestroyed);
 +
}, self.smoothInOut);
 +
}, spaiConstants.anim_spaiWait);
 +
}, self.smoothInOut);
 +
},
 +
hitItDoc:function() {
 +
var self = spaiConstants.self;
 +
self.preloadImages(self.imagesLoaded);
 +
self.preloadSound(spaiConstants.spaiSappingMahWikiWav, self.soundLoaded);
 +
},
 +
initKonami: function () {
 +
var self = spaiConstants.self;
 +
/*
 +
* Konami-JS ~
 +
* :: Now with support for touch events and multiple instances for
 +
* :: those situations that call for multiple easter eggs!
 +
* Code: https://github.com/georgemandis/konami-js
 +
* Copyright (c) 2009 George Mandis (https://george.mand.is)
 +
* Version: 1.6.3 (11/11/2021)
 +
* Licensed under the MIT License (http://opensource.org/licenses/MIT)
 +
* Tested in: Safari 4+, Google Chrome 4+, Firefox 3+, IE7+, Mobile Safari 2.2.1+ and Android
 +
*/
 +
var Konami = function (callback) {
 +
var konami = {
 +
addEvent: function (obj, type, fn, ref_obj) {
 +
if (obj.addEventListener)
 +
obj.addEventListener(type, fn, false);
 +
else if (obj.attachEvent) {
 +
// IE
 +
obj["e" + type + fn] = fn;
 +
obj[type + fn] = function () {
 +
obj["e" + type + fn](window.event, ref_obj);
 +
}
 +
obj.attachEvent("on" + type, obj[type + fn]);
 +
}
 +
},
 +
removeEvent: function (obj, eventName, eventCallback) {
 +
if (obj.removeEventListener) {
 +
obj.removeEventListener(eventName, eventCallback);
 +
} else if (obj.attachEvent) {
 +
obj.detachEvent(eventName);
 +
}
 +
},
 +
input: "",
 +
pattern: "38384040373937396665",
 +
keydownHandler: function (e, ref_obj) {
 +
if (ref_obj) {
 +
konami = ref_obj;
 +
} // IE
 +
konami.input += e ? e.keyCode : event.keyCode;
 +
if (konami.input.length > konami.pattern.length) {
 +
konami.input = konami.input.substr((konami.input.length - konami.pattern.length));
 +
}
 +
if (konami.input === konami.pattern) {
 +
konami.code(konami._currentLink);
 +
konami.input = '';
 +
e.preventDefault();
 +
return false;
 +
}
 +
},
 +
load: function (link) {
 +
this._currentLink = link;
 +
this.addEvent(document, "keydown", this.keydownHandler, this);
 +
this.iphone.load(link);
 +
},
 +
unload: function () {
 +
this.removeEvent(document, 'keydown', this.keydownHandler);
 +
this.iphone.unload();
 +
},
 +
code: function (link) {
 +
window.location = link
 +
},
 +
iphone: {
 +
start_x: 0,
 +
start_y: 0,
 +
stop_x: 0,
 +
stop_y: 0,
 +
tap: false,
 +
capture: false,
 +
orig_keys: "",
 +
keys: ["UP", "UP", "DOWN", "DOWN", "LEFT", "RIGHT", "LEFT", "RIGHT", "TAP", "TAP"],
 +
input: [],
 +
code: function (link) {
 +
konami.code(link);
 +
},
 +
touchmoveHandler: function (e) {
 +
if (e.touches.length === 1 && konami.iphone.capture === true) {
 +
var touch = e.touches[0];
 +
konami.iphone.stop_x = touch.pageX;
 +
konami.iphone.stop_y = touch.pageY;
 +
konami.iphone.tap = false;
 +
konami.iphone.capture = false;
 +
konami.iphone.check_direction();
 +
}
 +
},
 +
touchendHandler: function () {
 +
konami.iphone.input.push(konami.iphone.check_direction());
 +
 
 +
if (konami.iphone.input.length > konami.iphone.keys.length) konami.iphone.input.shift();
 +
 
 +
if (konami.iphone.input.length === konami.iphone.keys.length) {
 +
var match = true;
 +
for (var i = 0; i < konami.iphone.keys.length; i++) {
 +
if (konami.iphone.input[i] !== konami.iphone.keys[i]) {
 +
match = false;
 +
}
 +
}
 +
if (match) {
 +
konami.iphone.code(konami._currentLink);
 +
}
 +
}
 +
},
 +
touchstartHandler: function (e) {
 +
konami.iphone.start_x = e.changedTouches[0].pageX;
 +
konami.iphone.start_y = e.changedTouches[0].pageY;
 +
konami.iphone.tap = true;
 +
konami.iphone.capture = true;
 +
},
 +
load: function (link) {
 +
this.orig_keys = this.keys;
 +
konami.addEvent(document, "touchmove", this.touchmoveHandler);
 +
konami.addEvent(document, "touchend", this.touchendHandler, false);
 +
konami.addEvent(document, "touchstart", this.touchstartHandler);
 +
},
 +
unload: function () {
 +
konami.removeEvent(document, 'touchmove', this.touchmoveHandler);
 +
konami.removeEvent(document, 'touchend', this.touchendHandler);
 +
konami.removeEvent(document, 'touchstart', this.touchstartHandler);
 +
},
 +
check_direction: function () {
 +
x_magnitude = Math.abs(this.start_x - this.stop_x);
 +
y_magnitude = Math.abs(this.start_y - this.stop_y);
 +
x = ((this.start_x - this.stop_x) < 0) ? "RIGHT" : "LEFT";
 +
y = ((this.start_y - this.stop_y) < 0) ? "DOWN" : "UP";
 +
result = (x_magnitude > y_magnitude) ? x : y;
 +
result = (this.tap === true) ? "TAP" : result;
 +
return result;
 +
}
 +
}
 +
}
 +
 
 +
typeof callback === "string" && konami.load(callback);
 +
if (typeof callback === "function") {
 +
konami.code = callback;
 +
konami.load();
 +
}
 +
 
 +
return konami;
 +
};
 +
// End of Konami-JS
 +
var konami = new Konami();
 +
konami.code = function() {
 +
if (spaiConstants.spaiEnabled) {
 +
self.hitItDoc.apply(self);
 +
}
 +
 +
document.dispatchEvent(new CustomEvent('konami:fire'));
 +
};
 +
konami.load();
 +
}
 +
};
 +
spaiConstants.self = spaiSappinMahWiki;
 +
$(spaiSappinMahWiki.initKonami);
 +
 
 +
// Dynamic background by WindPower
 +
// WindPower is secksy and makes this wiki awesome with his very breath. (- Smashman)
 +
var dynamicBg = {
 +
categories: {
 +
// Format:
 +
// 'CategoryName': 'URL of background image',  ---OR--- 'title-PageTitle': 'URL of background image',
 +
// Categories don't have to be class names, they can be things like "Weapons", "Featured articles", "Maps", "Help", etc.
 +
'Scout': '/w/images/e/ea/Background_Scout_vector.png',
 +
'Soldier': '/w/images/5/54/Background_Soldier_vector.png',
 +
'Pyro': '/w/images/e/ed/Background_Pyro_vector.png',
 +
                'Demoman': '/w/images/5/59/Background_Demoman_vector.png',
 +
                'Engineer': '/w/images/f/f7/Background_Engineer_vector.png',
 +
                'Heavy': '/w/images/0/03/Background_Heavy_vector.png',
 +
                'Medic': '/w/images/2/24/Background_Medic_vector.png',
 +
                'Sniper': '/w/images/e/ed/Background_Sniper_vector.png',
 +
                'Spy': '/w/images/b/b9/Background_Spy_vector.png'
 +
// (No comma at the end of the last line)
 +
},
 +
getCategories:function() {
 +
var catlinksnode = document.getElementById('catlinks');
 +
if(!catlinksnode) return [];
 +
var catlinks = document.getElementById('catlinks').getElementsByTagName('a');
 +
var cats = [];
 +
var l;
 +
for(var i = 0; i < catlinks.length; i++) {
 +
l = catlinks[i].getAttribute('title');
 +
if(l.match(/^Category:/i, '')) {
 +
cats[cats.length] = l.substr(9).replace(/\/[^/]+$/, '');
 +
}
 +
}
 +
return cats;
 +
},
 +
inArray:function(haystack, needle) {
 +
for(var i = 0; i < haystack.length; i++) {
 +
if(haystack[i] == needle) {
 +
return i;
 +
}
 +
}
 +
return -1;
 +
},
 +
init:function() {
 +
if(typeof(wPrefs) != 'undefined') {
 +
if(dynamicBg.inArray(wPrefs, 'noDynamicBackground') != -1) {
 +
return; // Script disabled
 +
}
 +
}
 +
try {
 +
var cats = dynamicBg.getCategories();
 +
var body = document.getElementsByTagName('body')[0];
 +
} catch(e) {
 +
return;
 +
}
 +
var selectedCats = [];
 +
if(typeof(dynamicBg.categories['title-' + mw.config.get('wgTitle')]) != 'undefined') {
 +
selectedCats[0] = dynamicBg.categories['title-' + mw.config.get('wgTitle')];
 +
}
 +
else {
 +
for(var i in dynamicBg.categories) {
 +
if(dynamicBg.inArray(cats, i) != -1) {
 +
selectedCats[selectedCats.length] = dynamicBg.categories[i];
 +
}
 +
}
 +
}
 +
if(!selectedCats.length) return; // No match, keep default style
 +
var selectedCat = selectedCats[Math.floor(Math.random()*selectedCats.length)];
 +
body.style.backgroundImage='url('+selectedCat+')';
 +
}
 +
};
 +
$(dynamicBg.init);
 +
 
 +
// Page-specific JavaScript/CSS
 +
var pageScripts = {
 +
pagesJS: ['Main_Page', 'User:WindPower', 'User:MogDog66', 'User:WindPower/Main_Page', 'User:Lexar/Main_Page/Template:Benjas', 'User:Lexar/RandomPage', 'User:Lexar/responsive_infobox', 'User:Lexar/sandbox', 'User:Tark', 'User:Tark/Sandbox', 'Team_Fortress_Wiki:April_Fools\'_Day/2021/Main_Page', 'User:PhoneWave', 'User:Wookipan/Sandbox'],
 +
pagesCSS: ['Main_Page', 'User:WindPower', 'User:Pilk/armory', 'User:Pilk', 'User:Esky', 'User:Lagg', 'User:MogDog66', 'User:CrushBOT', 'User:MogDog66/userpagev2', 'User:NVis', 'User:NVis/Sandbox', 'User:Lexar', 'User:MogDog66/MPR', 'User:WindPower/Main_Page', 'User:Moussekateer/3DViewer', 'User:T-Wayne', 'User:FreeXMan', 'User:Nixshadow', 'User:Ath', 'User:Carez', 'User:Lexar/Main_Page/Template:Benjas', 'User:Lexar/RandomPage', 'User:MogDog66/Sandbox', 'User:Obilisk', 'User:Lexar/itembox_tooltip', 'User:Lexar/sandbox', 'User:Lexar/responsive_infobox', 'User:Hagbard Celine', 'User:Wookipan', 'User:Wookipan/Sandbox', 'User:GrampaSwood', 'Team_Fortress_Wiki:April_Fools\'_Day/2019/Main_Page', 'User:Tark', 'User:Tark/Sandbox', 'User:Boba', 'User:Boba/Projects', 'User:FanCyy', 'User:Dan_greene', 'User:Boba/Sandbox', 'User:Ashe', 'Team_Fortress_Wiki:April_Fools\'_Day/2021/Main_Page', 'User:PhoneWave', 'User:Foxbite', 'User:Mediarch', 'User:Payn'],
 +
suffixJS: '/Page.js',
 +
suffixCSS: '/Page.css',
 +
init: function() {
 +
for(var i in pageScripts.pagesJS) {
 +
if(mw.config.get('wgPageName') == pageScripts.pagesJS[i]) {
 +
mw.loader.load(mw.config.get('wgScript') + '?title=' + encodeURIComponent(mw.config.get('wgPageName') + pageScripts.suffixJS) + '&ctype=text/javascript&action=raw');
 +
}
 +
}
 +
for(var i in pageScripts.pagesCSS) {
 +
if(mw.config.get('wgPageName') == pageScripts.pagesCSS[i]) {
 +
mw.loader.load(mw.config.get('wgScript') + '?title=' + encodeURIComponent(mw.config.get('wgPageName') + pageScripts.suffixCSS) + '&ctype=text/css&action=raw', 'text/css');
 +
}
 +
}
 +
}
 +
};
 +
$(pageScripts.init);
 +
 
 +
// Fancy diffs
 +
var fancyDiffs = {
 +
isBigDiff: false,
 +
isBigDiffThreshold: 72,
 +
toggle: function(element) {
 +
var expanded = element.hasClass('diff-expanded');
 +
var contents = element.parent().children('.diff-contents');
 +
if(expanded) { // Just collapse then
 +
element.removeClass('diff-expanded');
 +
if(fancyDiffs.isBigDiff) {
 +
contents.hide();
 +
} else {
 +
contents.slideUp('fast');
 +
}
 +
} else if(element.hasClass('diff-data-loaded')) { // Stuff is already loaded, expand
 +
element.addClass('diff-expanded');
 +
contents.slideDown('fast');
 +
} else if(!element.hasClass('diff-data-requested')) { // Stuff is not loaded
 +
element.addClass('diff-data-requested');
 +
var fileName = element.find('span').text().replace(/^\s+|\s+$/g);
 +
var patchName = element.closest('.diffname');
 +
var diffName = mw.config.get('wgPageName');
 +
if(patchName && patchName.length && patchName.attr('class')) {
 +
diffName = patchName.attr('class').substr(9);
 +
}
 +
$.get('/w/?title=Template:PatchDiff/' + encodeURIComponent(diffName.replace(/^Template:PatchDiff\//, '')) + '/' + encodeURIComponent(fileName) + '&action=raw', function(data) {
 +
contents.html(data);
 +
if(fancyDiffs.isBigDiff) {
 +
contents.show();
 +
} else {
 +
contents.slideDown('fast');
 +
}
 +
element.removeClass('diff-data-requested').addClass('diff-data-loaded').addClass('diff-expanded');
 +
});
 +
}
 +
 +
},
 +
init: function() {
 +
var diffText = $('.diff-name-text');
 +
if(diffText.length) {
 +
// Preload leetle gif
 +
$('body').append($('<img/>').attr('src', '/w/images/4/43/Patch_diff_loading.gif').css('display', 'none'));
 +
diffText.find('span').each(function() {
 +
$(this).text($(this).find('a').text().replace(/^\s+|\s+$/g));
 +
});
 +
diffText.click(function() {
 +
fancyDiffs.toggle($(this));
 +
return false;
 +
});
 +
fancyDiffs.isBigDiff = $('.diff-file').length > fancyDiffs.isBigDiffThreshold;
 +
}
 +
}
 +
};
 +
$(fancyDiffs.init);
 +
 
 +
// 3D/2D viewer
 +
$('#switch-to-3d').click(function() {
 +
$('.container-2d').hide();
 +
$('.viewer-3d, .viewer-3d-multi, .buttons-container-3d').show();
 +
});
 +
 
 +
$('#switch-to-2d').click(function() {
 +
$('.viewer-3d, .viewer-3d-multi, .buttons-container-3d').hide();
 +
$('.container-2d').show();
 +
});
 +
 
 +
// 3D model viewer
 +
var viewer3d = {
 +
dragging: null,
 +
draggingFrameX: 0,
 +
draggingFrameY: 0,
 +
viewers: [],
 +
frameThresholdX: 10,
 +
frameThresholdY: 128,
 +
realMod: function(x, y) {
 +
return ((x % y) + y) % y;
 +
},
 +
init: function() {
 +
$('.viewer-3d').each(viewer3d.bind);
 +
$(document).mouseup(viewer3d.release);
 +
$(document).mousemove(viewer3d.move);
 +
},
 +
bind: function() {
 +
var v = $(this);
 +
var num = viewer3d.viewers.length;
 +
var allModels = [];
 +
var modelID = 0;
 +
var viewerSize = 0;
 +
while(true) {
 +
var modelMap = v.find('.viewer-3d-map-' + modelID);
 +
var urlNode = v.find('.viewer-3d-url-' + modelID);
 +
if(!modelMap.length || !urlNode.length) break;
 +
var url = $('<div/>').html(urlNode.text()).text();
 +
var framesS = $('<div/>').html(modelMap.text()).text().replace(/^\s+|\s+$/g).split(/,/g);
 +
var frameMap = [];
 +
var heightMap = [];
 +
var leftCropMap = [];
 +
var totalW = parseInt(framesS[0]);
 +
var maxFrameW = parseInt(framesS[1]);
 +
var totalH = parseInt(framesS[2]);
 +
var verticalSteps = parseInt(framesS[3]);
 +
var midVertical = Math.floor(verticalSteps / 2);
 +
for(var f = 4; f < framesS.length; f += 3) {
 +
frameMap.push(parseInt(framesS[f]));
 +
heightMap.push(parseInt(framesS[f + 1]));
 +
leftCropMap.push(parseInt(framesS[f + 2]));
 +
}
 +
allModels.push({
 +
imageURL: url,
 +
map: frameMap,
 +
cropMap: leftCropMap,
 +
totalWidth: totalW,
 +
totalHeight: totalH,
 +
maxFrameWidth: maxFrameW,
 +
xStep: verticalSteps
 +
});
 +
viewerSize = Math.max(viewerSize, totalH, maxFrameW);
 +
modelID++;
 +
}
 +
if(!modelID) return;
 +
var overlayNode = $('<div class="viewer-3d-overlay"></div>');
 +
var frameN = v.find('.viewer-3d-frame');
 +
v.find('img').detach();
 +
var klasses = v.attr('class').split(/ /g);
 +
var startFrame = 0;
 +
for(var k in klasses) {
 +
if(klasses[k].substr(0, 11) == 'startframe-') {
 +
startFrame = Math.max(0, parseInt(klasses[k].substr(11)));
 +
}
 +
}
 +
var viewer = {
 +
node: v,
 +
frameX: startFrame,
 +
frameY: midVertical,
 +
models: allModels,
 +
currentModel: -1,
 +
frameNode: frameN,
 +
width: viewerSize,
 +
height: viewerSize,
 +
mouseX: 0,
 +
mouseY: 0,
 +
overlay: overlayNode
 +
};
 +
viewer3d.viewers.push(viewer);
 +
v.hover(viewer3d.hover, viewer3d.unhover).mousedown(viewer3d.drag).append(overlayNode).attr('data-id', num).css({
 +
width: viewer.width + 'px',
 +
height: viewer.height + 'px'
 +
});
 +
frameN.mousedown(viewer3d.drag).attr('data-id', num).css('height', viewer.height + 'px');
 +
viewer3d.changeVersion(viewer, 0);
 +
},
 +
getCurrentModel: function(v) {
 +
return v.models[v.currentModel];
 +
},
 +
changeVersion: function(v, version) {
 +
version = Math.max(0, Math.min(v.models.length - 1, version));
 +
if(v.currentModel == version) return;
 +
v.currentModel = version;
 +
v.frameNode.css('background', 'url(' + viewer3d.getCurrentModel(v).imageURL + ') top left no-repeat');
 +
viewer3d.display(v, v.frameX, v.frameY);
 +
},
 +
hover: function(e) {
 +
var v = viewer3d.getViewer(this);
 +
if(viewer3d.dragging != v) {
 +
v.overlay.animate({'opacity': '1'}, 'fast');
 +
}
 +
},
 +
unhover: function(e) {
 +
var v = viewer3d.getViewer(this);
 +
if(viewer3d.dragging != v) {
 +
v.overlay.animate({'opacity': '0.5'}, 'fast');
 +
}
 +
},
 +
drag: function(e) {
 +
var v = viewer3d.getViewer(this);
 +
v.mouseX = e.pageX;
 +
v.mouseY = e.pageY;
 +
viewer3d.dragging = v;
 +
draggingFrameX = v.frameX;
 +
draggingFrameY = v.frameY;
 +
return false;
 +
},
 +
release: function() {
 +
var v = viewer3d.dragging;
 +
viewer3d.dragging = null;
 +
if(v != null) {
 +
v.frameX = viewer3d.draggingFrameX;
 +
v.frameY = viewer3d.draggingFrameY;
 +
v.overlay.animate({'opacity': '0.5'}, 'fast');
 +
}
 +
viewer3d.draggingFrameX = 0;
 +
viewer3d.draggingFrameY = 0;
 +
},
 +
getViewer: function(node) {
 +
return viewer3d.viewers[parseInt($(node).attr('data-id'))];
 +
},
 +
display: function(v, frameX, frameY) {
 +
var model = viewer3d.getCurrentModel(v);
 +
var frameID = viewer3d.realMod(frameX * model.xStep + frameY, model.map.length);
 +
var frameOffset = model.map[frameID];
 +
var frameWidth = 0;
 +
if(frameID == model.map.length - 1) {
 +
frameWidth = model.totalWidth - frameOffset;
 +
} else {
 +
frameWidth = model.map[frameID + 1] - frameOffset;
 +
}
 +
v.frameNode.css({
 +
backgroundPosition: (-frameOffset - frameID) + 'px 0px',
 +
left: Math.round((v.width - model.maxFrameWidth) / 2.0 + model.cropMap[frameID]) + 'px',
 +
top: Math.round((v.height - model.totalHeight) / 2) + 'px',
 +
width: frameWidth + 'px',
 +
height: model.totalHeight + 'px'
 +
});
 +
},
 +
move: function(e) {
 +
if(viewer3d.dragging == null) {
 +
return;
 +
}
 +
var v = viewer3d.dragging;
 +
var model = viewer3d.getCurrentModel(v);
 +
var mouseDeltaX = e.pageX - v.mouseX;
 +
var mouseDeltaY = e.pageY - v.mouseY;
 +
var frameDeltaX = Math.round(mouseDeltaX / viewer3d.frameThresholdX);
 +
var frameDeltaY = -Math.round(mouseDeltaY / viewer3d.frameThresholdY);
 +
viewer3d.draggingFrameX = v.frameX + frameDeltaX;
 +
viewer3d.draggingFrameY = Math.max(0, Math.min(model.xStep - 1, v.frameY + frameDeltaY));
 +
viewer3d.display(v, viewer3d.draggingFrameX, viewer3d.draggingFrameY);
 +
}
 +
};
 +
$(viewer3d.init);
 +
var selector3d = {
 +
bind: function() {
 +
var viewer = viewer3d.getViewer($(this).find('.viewer-3d'));
 +
var keepGoing = true;
 +
var modelVariant = 0;
 +
var selector;
 +
while(keepGoing) {
 +
selector = $(this).find('.selector-' + modelVariant);
 +
if(selector.length) {
 +
selector.attr('data-variant', modelVariant).click(function() {
 +
viewer3d.changeVersion(viewer, parseInt($(this).attr('data-variant')));
 +
return false;
 +
});
 +
}
 +
modelVariant++;
 +
keepGoing = selector.length;
 +
}
 +
},
 +
init: function() {
 +
$('.viewer-3d-multi, .viewer-3d-container').each(selector3d.bind);
 +
}
 +
};
 +
$(selector3d.init);
 +
 
 +
// Code to get 3D viewer drag working on touch devices
 +
// Source: http://www.jquery4u.com/mobile/jquery-add-dragtouch-support-ipad/
 +
$.fn.addTouch = function(){
 +
    this.each(function(i,el){
 +
      $(el).bind('touchstart touchmove touchend touchcancel',function(){
 +
        //we pass the original event object because the jQuery event
 +
        //object is normalized to w3c specs and does not provide the TouchList
 +
        handleTouch(event);
 +
      });
 +
    });
 +
 
 +
    var handleTouch = function(event)
 +
    {
 +
      var touches = event.changedTouches,
 +
              first = touches[0],
 +
              type = '';
 +
 
 +
      switch(event.type)
 +
      {
 +
        case 'touchstart':
 +
          type = 'mousedown';
 +
          break;
 +
 
 +
        case 'touchmove':
 +
          type = 'mousemove';
 +
          event.preventDefault();
 +
          break;
 +
 
 +
        case 'touchend':
 +
          type = 'mouseup';
 +
          break;
 +
 
 +
        default:
 +
          return;
 +
      }
 +
 
 +
      var simulatedEvent = document.createEvent('MouseEvent');
 +
      simulatedEvent.initMouseEvent(type, true, true, window, 1, first.screenX, first.screenY, first.clientX, first.clientY, false, false, false, false, 0/*left*/, null);
 +
      first.target.dispatchEvent(simulatedEvent);
 +
    };
 +
  };
 +
 
 +
$('.viewer-3d').addTouch();
 +
 
 +
// End 3D viewer touch device code
 +
 
 +
// Start weapon wear table tabs -----
 +
var WeaponWearTable = {
 +
tabSwitch: function($this,tab,weapons,weapon) {
 +
if (!$this.hasClass('current')) {
 +
var tabIndex = $this.index();
 +
$this.parent().find('.current').removeClass('current');
 +
$this.addClass('current');
 +
weapons.find('.current').removeClass('current');
 +
weapon.eq(tabIndex).addClass('current');
 +
}
 +
},
 +
init: function() {
 +
$('.weapon-wear-table').each(function(){
 +
var $this = $(this),
 +
tabs = $this.children('.tabs'),
 +
tab = tabs.children('li'),
 +
weapons = $this.children('.weapons'),
 +
weapon = weapons.children('li');
 +
tab.click(function(){
 +
WeaponWearTable.tabSwitch($(this),tab,weapons,weapon);
 +
});
 +
});
 +
}
 +
};
 +
$(WeaponWearTable.init);
 +
// End weapon wear table tabs -----
 +
 
 +
// Start Bilibili iframe support -----
 +
var Bilibili = {
 +
  init: function() {
 +
    var $videos = $('.bilibili-video');
 +
    $videos.each(function() {
 +
      var $this = $(this);
 +
      var aid = parseInt($this.data('vaid'));
 +
      var danmaku = parseInt($this.data('vdanmaku'));
 +
      var page = parseInt($this.data('vpage'));
 +
      var width = $this.data('vwidth');
 +
      var height = $this.data('vheight');
 +
      var iframeSrc = 'https://www.bilibili.com/blackboard/html5mobileplayer.html?aid=' + aid + '&high_quality=1&danmaku=' + danmaku + '&page=' + page + '&hideCoverInfo=1&hideDanmakuButton=1';
 +
      var iframe = '<iframe src="' + iframeSrc + '" width="' + width + '" height="' + height + '" frameborder="0" allowfullscreen="true"></iframe>';
 +
      $this.append(iframe);
 +
    });
 +
  }
 +
};
 +
$(Bilibili.init);
 +
// End Bilibili iframe support -----
 +
 
 +
// Start custom username highlighting -----
 +
var uGroupHighlight = {
 +
  init: function() {
 +
    if ($('.mw-userlink')[0]) {
 +
      var params = {
 +
        action: 'query',
 +
        list: 'allusers',
 +
        augroup: ['sysop', 'moderator', 'bot'],
 +
        auprop: 'groups',
 +
        aulimit: 100,
 +
        format: 'json'
 +
      };
 +
 
 +
      var api = new mw.Api();
 +
 
 +
      api.get(params).done(function(data) {
 +
        var uGroups = data.query.allusers, user;
 +
        for (user in uGroups) {
 +
          var name = uGroups[user].name;
 +
          var group = uGroups[user].groups;
 +
 
 +
          $('bdi').each(function() {
 +
            if ($(this).text().match('\\b' + name + '\\b')) {
 +
              $(this).closest('.mw-userlink').addClass(group.includes('bot') ? 'bot' : 'staff');
 +
            }
 +
          });
 +
        }
 +
      });
 +
    }
 +
  },
 +
};
 +
$(uGroupHighlight.init);
 +
// End custom username highlighting -----
 +
 
 +
// Start login icon randomizer -----
 +
var iconRandomizer = {
 +
    init: function() {
 +
        var classes = [
 +
            '/w/images/3/33/Login_Scout.png',
 +
            '/w/images/d/d8/Login_Soldier.png',
 +
            '/w/images/7/71/Login_Pyro.png',
 +
            '/w/images/5/53/Login_Demoman.png',
 +
            '/w/images/3/35/Login_Heavy.png',
 +
            '/w/images/a/ab/Login_Engineer.png',
 +
            '/w/images/d/d4/Login_Medic.png',
 +
            '/w/images/e/e4/Login_Sniper.png',
 +
            '/w/images/2/27/Login_Spy.png'
 +
        ];
 +
 
 +
        // pick a random class image out of nine choices
 +
        pickClass = classes[Math.floor(Math.random() * classes.length)];
 +
 
 +
        // ensure all relative elements are hit
 +
        var nodes = $('#pt-userpage, #pt-anonuserpage, #pt-login');
 +
        if (nodes.length) {
 +
            for (var i = 0; i < nodes.length; i++) {
 +
                nodes.css('background-image', 'url(' + pickClass + ')');
 +
            }
 +
        }
 +
    }
 +
};
 +
 
 +
$(iconRandomizer.init);
 +
// End login icon randomizer -----
 +
 
 +
// Start 'Audio player'
 +
var audioPlayer = {
 +
    currentAudio: null,
 +
 
 +
    init: function () {
 +
        var audioPauseImg = new Image();
 +
        var audioPlayImg = new Image();
 +
        audioPauseImg.src = '/w/images/d/d2/Pause_icon.png';
 +
        audioPlayImg.src = '/w/images/6/67/Play_icon.png';
 +
 
 +
        $('.tfwiki-audio-player').each(function () {
 +
            var audioPlayerElement = $(this);
 +
            var audioLink = audioPlayerElement.children('a');
 +
            var audioURL = audioLink.attr('href');
 +
            var audio = null;
 +
            var audioStatus = audioPlayerElement.find('.tfwiki-audio-player-action');
 +
 +
audioStatus.removeClass('inactive');
 +
 
 +
            audioPlayerElement.on('click', function (e) {
 +
                if (e.target !== audioStatus[0]) {
 +
                    return;
 +
                }
 +
 
 +
                e.preventDefault();
 +
 +
                if (!audio) {
 +
                    audio = new Audio(audioURL);
 +
                    audio.volume = 0.5;
 +
                    audio.addEventListener('ended', function () {
 +
                        audioStatus.text(audioStatus.data('text-play'));
 +
                        audioStatus.removeClass('playing');
 +
                    });
 +
                }
 +
 
 +
                if (audioPlayer.currentAudio && audioPlayer.currentAudio !== audio) {
 +
                    audioPlayer.currentAudio.pause();
 +
                    audioPlayer.currentAudio.currentTime = 0;
 +
                    audioPlayer.currentAudioStatus.text(audioPlayer.currentAudioStatus.data('text-play'));
 +
                    audioPlayer.currentAudioStatus.removeClass('playing');
 +
                }
 +
 
 +
                if (audio.paused) {
 +
                    audio.play();
 +
                    audioStatus.text(audioStatus.data('text-pause'));
 +
                    audioPlayer.currentAudio = audio;
 +
                    audioPlayer.currentAudioStatus = audioStatus;
 +
                    audioStatus.addClass('playing');
 +
                } else {
 +
                    audio.pause();
 +
                    audioStatus.text(audioStatus.data('text-resume'));
 +
                    audioPlayer.currentAudio = null;
 +
                    audioPlayer.currentAudioStatus = null;
 +
                    audioStatus.removeClass('playing');
 +
                }
 +
            });
 +
 
 +
            audioLink.on('click', function (e) {
 +
                e.preventDefault();
 +
                window.open(audioURL, '_blank');
 +
            });
 +
        });
 +
    }
 +
};
 +
 
 +
$(audioPlayer.init);
 +
// End 'Audio player'
 +
 
 +
/* Google Analytics */
 
   var _gaq = _gaq || [];
 
   var _gaq = _gaq || [];
 
   _gaq.push(['_setAccount', 'UA-18260470-1']);
 
   _gaq.push(['_setAccount', 'UA-18260470-1']);
Line 14: Line 1,481:
 
     var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
 
     var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
 
   })();
 
   })();
 +
/* GoSquared analytics */
 +
  var GoSquared = {};
 +
  GoSquared.acct = "GSN-106863-S";
 +
  (function(w){
 +
    function gs(){
 +
      w._gstc_lt = +new Date;
 +
      var d = document, g = d.createElement("script");
 +
      g.type = "text/javascript";
 +
      g.src = "//d1l6p2sc9645hc.cloudfront.net/tracker.js";
 +
      var s = d.getElementsByTagName("script")[0];
 +
      s.parentNode.insertBefore(g, s);
 +
    }
 +
    w.addEventListener ?
 +
      w.addEventListener("load", gs, false) :
 +
      w.attachEvent("onload", gs);
 +
  })(window);

Latest revision as of 03:59, 10 May 2024

// This is the non-compressed version of MediaWiki:Common.js

// External links open in new windows/tabs:
$('a.external').attr('target', '_blank');

 /** Collapsible tables *********************************************************
  *
  *  Description: Allows tables to be collapsed, showing only the header. See
  *               [[Wikipedia:NavFrame]].
  *  Maintainers: [[User:R. Koot]]
  */
 var hasClass = (function () {
    var reCache = {};
    return function (element, className) {
        return (reCache[className] ? reCache[className] : (reCache[className] = new RegExp("(?:\\s|^)" + className + "(?:\\s|$)"))).test(element.className);
    };
 })(); 

var autoCollapse = 2;
var collapseCaptionLang = {'ar': 'أخف', 'cs': 'sbalit', 'da': 'fold sammen', 'de': 'einklappen', 'es': 'contraer', 'fi': 'supista', 'fr': 'masquer', 'hu': 'becsuk', 'it': 'comprimi', 'ja': '折り畳む', 'ko': '접기', 'nl': 'samenvouwen', 'pl': 'zwiń', 'pt': 'ocultar', 'pt-br': 'ocultar', 'ro': 'restrânge', 'ru': 'свернуть', 'sv': 'dölj', 'tr': 'daralt', 'zh-hans': '折叠', 'zh-hant': '合併'};
var expandCaptionLang = {'ar': 'أظهر', 'cs': 'rozbalit', 'da': 'fold ud', 'de': 'ausklappen', 'es': 'expandir', 'fi': 'Laajenna', 'fr': 'afficher', 'hu': 'kinyit', 'it': 'espandi', 'ja': '展開する', 'ko': '펼치기', 'nl': 'uitvouwen', 'pl': 'rozwiń', 'pt': 'expandir', 'pt-br': 'expandir', 'ro': 'extinde', 'ru': 'развернуть', 'sv': 'visa', 'tr': 'genişlet', 'zh-hans': '展开', 'zh-hant': '展開'};
var collapseCaption = collapseCaptionLang[mw.config.get("wgPageName").split("/").pop()] || 'collapse';
var expandCaption = expandCaptionLang[mw.config.get("wgPageName").split("/").pop()] || 'expand';
 
window.collapseTable = function ( tableIndex ) {
    var Button = document.getElementById( 'collapseButton' + tableIndex );
    var Table = document.getElementById( 'collapsibleTable' + tableIndex );
 
    if ( !Table || !Button ) {
        return false;
    }
 
    var Rows = Table.rows;
    var i;
 
    if ( Button.firstChild.data === collapseCaption ) {
        for ( i = 1; i < Rows.length; i++ ) {
            Rows[i].style.display = 'none';
        }
        Button.firstChild.data = expandCaption;
    } else {
        for ( i = 1; i < Rows.length; i++ ) {
            Rows[i].style.display = Rows[0].style.display;
        }
        Button.firstChild.data = collapseCaption;
    }
};
 
function createCollapseButtons() {
    var tableIndex = 0;
    var NavigationBoxes = {};
    var Tables = document.getElementsByTagName( 'table' );
    var i;
 
    function handleButtonLink( index, e ) {
        window.collapseTable( index );
        e.preventDefault();
    }
 
    for ( i = 0; i < Tables.length; i++ ) {
        if ( $( Tables[i] ).hasClass( 'collapsible' ) ) {
 
            /* only add button and increment count if there is a header row to work with */
            var HeaderRow = Tables[i].getElementsByTagName( 'tr' )[0];
            if ( !HeaderRow ) continue;
            var Header = HeaderRow.getElementsByTagName( 'th' )[0];
            if ( !Header ) continue;
 
            NavigationBoxes[ tableIndex ] = Tables[i];
            Tables[i].setAttribute( 'id', 'collapsibleTable' + tableIndex );
 
            var Button     = document.createElement( 'span' );
            var ButtonLink = document.createElement( 'a' );
            var ButtonText = document.createTextNode( collapseCaption );
 
            Button.className = 'collapseButton';  /* Styles are declared in Common.css */
 
            ButtonLink.style.color = Header.style.color;
            ButtonLink.setAttribute( 'id', 'collapseButton' + tableIndex );
            ButtonLink.setAttribute( 'href', '#' );
            $( ButtonLink ).on( 'click', $.proxy( handleButtonLink, ButtonLink, tableIndex ) );
            ButtonLink.appendChild( ButtonText );
 
            Button.appendChild( document.createTextNode( '[' ) );
            Button.appendChild( ButtonLink );
            Button.appendChild( document.createTextNode( ']' ) );
 
            Header.insertBefore( Button, Header.firstChild );
            tableIndex++;
        }
    }
 
    for ( i = 0;  i < tableIndex; i++ ) {
        if ( $( NavigationBoxes[i] ).hasClass( 'collapsed' ) || ( tableIndex >= autoCollapse && $( NavigationBoxes[i] ).hasClass( 'autocollapse' ) ) ) {
            window.collapseTable( i );
        } 
        else if ( $( NavigationBoxes[i] ).hasClass ( 'innercollapse' ) ) {
            var element = NavigationBoxes[i];
            while ((element = element.parentNode)) {
                if ( $( element ).hasClass( 'outercollapse' ) ) {
                    window.collapseTable ( i );
                    break;
                }
            }
        }
    }
}
 
$( createCollapseButtons );

/** Dynamic Navigation Bars (experimental) *************************************
 *
 *  Description: See [[Wikipedia:NavFrame]].
 *  Maintainers: UNMAINTAINED
 */

// set up the words in your language
var NavigationBarHide = '[' + collapseCaption + ']';
var NavigationBarShow = '[' + expandCaption + ']';

// shows and hides content and picture (if available) of navigation bars
// Parameters:
//     indexNavigationBar: the index of navigation bar to be toggled
function toggleNavigationBar(indexNavigationBar){
    var NavToggle = document.getElementById("NavToggle" + indexNavigationBar);
    var NavFrame = document.getElementById("NavFrame" + indexNavigationBar);

    if (!NavFrame || !NavToggle) {
        return false;
    }

    // if shown now
    if (NavToggle.firstChild.data == NavigationBarHide) {
        for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) {
            if (hasClass(NavChild, 'NavContent') || hasClass(NavChild, 'NavPic')) {
                NavChild.style.display = 'none';
            }
        }
    NavToggle.firstChild.data = NavigationBarShow;

    // if hidden now
    } else if (NavToggle.firstChild.data == NavigationBarShow) {
        for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) {
            if (hasClass(NavChild, 'NavContent') || hasClass(NavChild, 'NavPic')) {
                NavChild.style.display = 'block';
            }
        }
        NavToggle.firstChild.data = NavigationBarHide;
    }
}

// adds show/hide-button to navigation bars
function createNavigationBarToggleButton(){
    var indexNavigationBar = 0;
    // iterate over all < div >-elements 
    var divs = document.getElementsByTagName("div");
    for (var i = 0; NavFrame = divs[i]; i++) {
        // if found a navigation bar
        if (hasClass(NavFrame, "NavFrame")) {

            indexNavigationBar++;
            var NavToggle = document.createElement("a");
            NavToggle.className = 'NavToggle';
            NavToggle.setAttribute('id', 'NavToggle' + indexNavigationBar);
            NavToggle.setAttribute('href', 'javascript:toggleNavigationBar(' + indexNavigationBar + ');');

            var isCollapsed = hasClass( NavFrame, "collapsed" );
            /*
             * Check if any children are already hidden.  This loop is here for backwards compatibility:
             * the old way of making NavFrames start out collapsed was to manually add style="display:none"
             * to all the NavPic/NavContent elements.  Since this was bad for accessibility (no way to make
             * the content visible without JavaScript support), the new recommended way is to add the class
             * "collapsed" to the NavFrame itself, just like with collapsible tables.
             */
            for (var NavChild = NavFrame.firstChild; NavChild != null && !isCollapsed; NavChild = NavChild.nextSibling) {
                if ( hasClass( NavChild, 'NavPic' ) || hasClass( NavChild, 'NavContent' ) ) {
                    if ( NavChild.style.display == 'none' ) {
                        isCollapsed = true;
                    }
                }
            }
            if (isCollapsed) {
                for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) {
                    if ( hasClass( NavChild, 'NavPic' ) || hasClass( NavChild, 'NavContent' ) ) {
                        NavChild.style.display = 'none';
                    }
                }
            }
            var NavToggleText = document.createTextNode(isCollapsed ? NavigationBarShow : NavigationBarHide);
            NavToggle.appendChild(NavToggleText);

            // Find the NavHead and attach the toggle link (Must be this complicated because Moz's firstChild handling is borked)
            for(var j=0; j < NavFrame.childNodes.length; j++) {
                if (hasClass(NavFrame.childNodes[j], "NavHead")) {
                    NavToggle.style.color = NavFrame.childNodes[j].style.color;
                    NavFrame.childNodes[j].appendChild(NavToggle);
                }
            }
            NavFrame.setAttribute('id', 'NavFrame' + indexNavigationBar);
        }
    }
}

 $( createNavigationBarToggleButton );

//END Collapsible tables *********************************************************

// PootTabs by User:WindPower~
// It puts tabs on pages.
var pootTabsHere = {
    animationsEnabled: $.support.opacity,
	getTab:function(poot, index) {
		return $(poot.children('.poot-tabs').children('ul').children('li')[parseInt(index)]);
	},
	changeTab:function(poot, index, duration, force) {
		if(index == parseInt(poot.attr('pootSelected')) && !force && duration) return;
		if(!pootTabsHere.animationsEnabled) {
			duration = 0;
		}
		poot.attr('pootSelected', index.toString());
		var babies = poot.children('.poot-tabs-content').children();
		babies.each(function() {
			$(this).fadeOut(duration, function(){
				$(this).removeClass('poot-tabs-selected');
			});
		});
		$(babies[index]).each(function() {
			$(this).fadeIn(duration, function(){
				$(this).addClass('poot-tabs-selected');
			});
		});
		var cowtabs = poot.children('.poot-tabs').children('ul').children('li');
		cowtabs.removeClass('poot-tabs-selected');
		$(cowtabs[index]).addClass('poot-tabs-selected');
		pootTabsHere.updatePoot(poot, $(babies[index]).height());
	},
	updatePoot:function(poot, babysize) {
		if(poot.hasClass('poot-tabs-notitle')) {
			poot.find('.poot-tabs-titletext').html(pootTabsHere.getTab(poot, poot.attr('pootSelected')).html());
		} else {
			poot.find('.poot-tabs-titletext').html(poot.attr('originalTitle') + ' &mdash; ' + pootTabsHere.getTab(poot, poot.attr('pootSelected')).html());
		}
		if(poot.has('.poot-tabs-edittabs') && poot.has('.poot-tabs-navbar')) {
			try {
				poot.find('.poot-tabs-navbar').html($(poot.children('.poot-tabs-edittabs').children('span')[parseInt(poot.attr('pootSelected'))]).html());
			} catch(e) {}
		}
		var bestHeight = Math.max(poot.children('.poot-tabs-content').height(), Math.max(poot.children('.poot-tabs').height(), babysize)).toString() + 'px';
		poot.children('.poot-tabs-content').css('height', bestHeight);
		if(poot.attr('vertical')) {
			poot.children('.poot-tabs').css('height', bestHeight);
		}
	},
	toggleCollapse:function(poot) {
		var pootLinkText = poot.children('.poot-tabs-showhide').text().split(';');
		var duration = pootTabsHere.animationsEnabled ? parseInt(poot.attr('pootslideduration')) : 0;
		if(poot.attr('pootcollapse') != 'true') {
			poot.attr('pootcollapse', 'true');
			poot.find('.poot-tabs-hidelink a').text(pootLinkText[0]);
			poot.children('.poot-tabs, .poot-tabs-content').slideUp(duration);
		}
		else {
			poot.attr('pootcollapse', '');
			poot.find('.poot-tabs-hidelink a').text(pootLinkText[1]);
			poot.children('.poot-tabs, .poot-tabs-content').slideDown(duration);
		}
	},
	delayHeight:function(poot, selected) {
		setTimeout(function() {
			poot.attr('pootselected', selected.toString());
			pootTabsHere.changeTab(poot, selected, 0, true);
			if(poot.hasClass('poot-tabs-collapsed')) {
				pootTabsHere.toggleCollapse(poot);
			}
		}, 100);
	},
	poot:function() {
		var dis = $(this);
		dis.removeClass('poot-tabs-nojs'); // If this thing runs, JS is on
		var ind = 0;
		dis.attr('originalTitle', dis.find('.poot-tabs-titletext').html());
		var selected = /poot-tabs-selected-(\d+)/i.exec(dis.attr('class'));
		if(selected) {
			pootTabsHere.delayHeight(dis, parseInt(selected[1])-1);
		}
		else {
			pootTabsHere.delayHeight(dis, 0);
		}
		var duration = dis.hasClass('poot-tabs-noanimations') ? 0 : 200;
		dis.attr('pootslideduration', dis.hasClass('poot-tabs-noanimations') ? '0' : '75');
		dis.children('.poot-tabs').children('ul').children('li').each(function(){
			var thisInd = ind;
			$(this).click(function(){
				pootTabsHere.changeTab(dis, thisInd, duration, false);
				$(this).blur();
				$(this).find('*').blur();
				return false;
			});
			ind++;
		});
		var isVertical = dis.hasClass('poot-tabs-vertical');
		dis.attr('pootvertical', isVertical ? 'true' : '');
		if(isVertical) {
			var teenie = dis.children('.poot-tabs').width().toString() + 'px';
			dis.children('.poot-tabs-content').css('margin-left', teenie);
		}
		dis.attr('pootcollapse', ''); // False
		dis.find('.poot-tabs-hidelink a').click(function(){
			pootTabsHere.toggleCollapse(dis);
			return false;
		});
	},
	init:function() {
		$('.poot-tabs-container').each(pootTabsHere.poot);
	}
};
$(pootTabsHere.init);

// Language support fixes
var langFixes = {
	init: function() {
		// Supported list of languages (not including the default one):
		var langList = ['ar', 'cs', 'da', 'de', 'es', 'fi', 'fr', 'hu', 'it', 'ja', 'ko', 'nl', 'no', 'pl', 'pt', 'pt-br', 'ro', 'ru', 'sv', 'tr', 'zh-hans', 'zh-hant'];
		// Assumed language if the page is in none of the languages above:
		var defaultLang = 'en';
		var lang = defaultLang;
		for(var i in langList) {
			if(mw.config.get('wgPageName').substr(mw.config.get('wgPageName').length - 1 - langList[i].length).toLowerCase() == '/' + langList[i].toLowerCase()) {
				lang = langList[i];
				break;
			}
		}
		$('body').addClass('lang-' + lang);
	}
};
$(langFixes.init);

// Custom tooltip component. See Template:Tooltip
var wikiTooltip = {
    init: function() {
        var $tooltips = $('.wiki-tooltip .wiki-tooltip-content');
        if ($tooltips[0]) {
            $tooltips.each(function() {
                var $this = $(this);
                function handler() {
                    // Check for links and handle them on handheld devices
                    if (!!$this.closest('a').attr('href')) {
                        $this.closest('a').removeAttr('title');

                        widthRect <= 1000 ? wikiTooltip.hasLink($this) : wikiTooltip.removeAnchor($this);
                    }
                    
                    // Prevent tooltips from overflowing the viewport
                    var bounding = $this[0].getBoundingClientRect();
                    edgeRect = {
                        left: Math.floor(($this.width() + bounding.left + 10)),
                        right: Math.floor(($this.width() + bounding.right + 10))
                    };

                    widthRect = $(window).innerWidth();
                    if (edgeRect.left >= (widthRect || document.documentElement.clientWidth)) {
                        $this.css('left', '');
                        $this.css('right', '50%');
                    } else if (edgeRect.right <= (widthRect || document.documentElement.clientWidth)) {
                        $this.css('right', '');
                        $this.css('left', '50%');
                    }
                }
                $(handler);
                setTimeout(function() {
                    $(window).on('resize', handler);
                }, 250);
            });
        }
    },
    hasLink: function(tooltip) {
        if (tooltip.find('a').length < 1) {
            var $a = $('<a>');
            var url = tooltip.closest('a');
            var href = url.attr('href');

            $a.attr('href', href);
            url.attr('href', 'javascript:void(0);');
            tooltip.append($a);
        }
    },
    removeAnchor: function(tooltip) {
        var url = tooltip.closest('a');
        var href = url.attr('href');

        innerLink = tooltip.find('a').attr('href');
        if (innerLink) {
            href = innerLink;
            url.attr('href', href);
            tooltip.find('a').remove();
        } else {
            return;
        }
    }
};
$(wikiTooltip.init);

// Logged-in body class injection
var loggedinBodyClass = {
	init: function() {
		$('body').addClass(mw.config.get('wgUserName') == null ? 'not-logged-in' : 'logged-in');
	}
};
$(loggedinBodyClass.init);

// Resize YouTube embed, turn HD on, etc, by User:WindPower
var youtubeHelper = {
	chromeSize: 25, // This is the height (in pixels) of the chrome of YouTube's embedded video player. Update this whenever they release a new embedded video player
	maxWidth: 0.85, // Maximum fraction of the available width that the video may take
	infoboxes: ['.infobox', '.testchamber'], // Selectors of infobox-style boxes that should be deducted from the page's available width
	ratioR: /ratio-(\d+)x(\d+)/i,
	widthsR: /widths((?:\D+\d+)+)/i,
	setSize:function() {
		var widths = youtubeHelper.widthsR.exec($(this).attr('class'));
		if(widths != null) {
			widths = widths[1].substr(1).split(/\D+/g);
			var availableWidth = $('#bodyContent').width();
			for(var i in youtubeHelper.infoboxes) {
				if($(youtubeHelper.infoboxes[i]).length) {
					availableWidth -= $(youtubeHelper.infoboxes[i]).width();
				}
			}
			availableWidth *= youtubeHelper.maxWidth;
			var intWidths = [];
			for(var w = 0; w < widths.length; w++) {
				intWidths[w] = parseInt(widths[w]);
			}
			intWidths.sort(function(a, b){return b - a;});
			for(var w = 0; w < intWidths.length; w++) {
				if(intWidths[w] <= availableWidth || w == intWidths.length-1) {
					youtubeHelper.setWidth(this, intWidths[w]);
					break;
				}
			}
		}
		else {
			youtubeHelper.setWidth(this, parseFloat(obj.attr('width')));
		}
	},
	setUrl:function() {
		var obj = $(this).children('object');
		if(!obj.length) return;
		obj.append($('<param name="allowscriptaccess" value="true"></param>'));
		obj.append($('<param name="allowfullscreen" value="true"></param>'));
		var titleParts = mw.config.get('wgPageName').split(/\//g);
		var lang = 'en';
		if(titleParts.length == 2 && !mw.config.get('wgCanonicalSpecialPageName')) {
			lang = titleParts[titleParts.length-1];
		}
		var playerUrl = obj.children('param[name="movie"]').attr('value') + '&version=2&fs=1&theme=dark&color=white' + ($(this).hasClass('hd-on') ? '&hd=1' : '') + '&cc_load_policy=1&modestbranding=1&hl=' + lang + '&cc_lang_pref=' + lang;
		obj.children('param[name="movie"]').attr('value', playerUrl);
		obj.children('embed').attr('src', playerUrl).attr('allowscriptaccess', 'always').attr('allowfullscreen', 'true');
		var resultHtml = $(this).html();
		$(this).html('').html(resultHtml);
	},
	setWidth:function(youtube, width) {
		var obj = $(youtube).children('object');
		if(!obj) return;
		if($(youtube).hasClass('youtube-audio')) {
			obj.attr('width', width).attr('height', youtubeHelper.chromeSize); // Set <object> height
			obj.children('embed').attr('width', width).attr('height', youtubeHelper.chromeSize); // Set <embed> height
		}
		else {
			var ratio = youtubeHelper.ratioR.exec($(youtube).attr('class'));
			if(ratio != null) {
				ratio = parseFloat(ratio[1])/parseFloat(ratio[2]);
				var newHeight = Math.round(width / ratio + youtubeHelper.chromeSize).toString();
				obj.attr('width', width).attr('height', newHeight); // Set <object> height
				obj.children('embed').attr('width', width).attr('height', newHeight); // Set <embed> height
			}
		}
	},
	resizeTimer:null,
	resize:function() {
		if(youtubeHelper.resizeTimer != null) {
			clearTimeout(youtubeHelper.resizeTimer);
		}
		youtubeHelper.resizeTimer = setTimeout(youtubeHelper.onResize, 100);
	},
	onResize:function() {
		$('.youtubebox').each(youtubeHelper.setSize);
	},
	init:function() {
		$('.youtubebox').each(youtubeHelper.setUrl);
		$(window).resize(youtubeHelper.resize);
		youtubeHelper.onResize();
	}
};
$(youtubeHelper.init);

// Edittools loader copied from http://en.wikipedia.org/wiki/MediaWiki:Common.js/edit.js?oldid=407371785
// Only slightly modified by seb26

/** 
 *  Edittools javascript loader ************************************************
 *
 *  Description: Pulls in [[MediaWiki:Edittools.js]]. Includes a cache-bypassing
 *  version number in the URL in order to allow any changes to the edittools to
 *  be rapidly deployed to users.
 *
 *  Note that, by default, this function does nothing unless the element with
 *  the ID "editpage-specialchars" (which contains the old edittools code in
 *  [[MediaWiki:Edittools]], and will be retained as a placeholder in the new
 *  implementation) has a class named "edittools-version-NNN", where NNN is a
 *  number.  If the class name has "test" before the number, the code will only
 *  run for users who have set "window.testJsEdittools = true" in their user JS.
 *  The "test" should be retained in the class name until the new edittools
 *  implementation is ready and fully tested, and until at least 30 days have
 *  passed since this loader stub was added (which will be in 27 June 2008).
 *
 *  For compatibility with Alex Smotrov's original implementation, on which this
 *  code is loosely based (see [[mw:User talk:Alex Smotrov/edittools.js]]), this
 *  loader can also be disabled by setting "window.noDefaultEdittools = true".
 *
 *  Maintainers: [[User:Ilmari Karonen]]
 */

if (['edit', 'submit'].indexOf(mw.config.get('wgAction')) !== -1 || mw.config.get('wgPageName') == "Special:Upload") //scripts specific to editing pages
{
 
  // Prevent the static edittools from flashing before the compact edittools below is loaded.
  mw.util.addCSS('div.edittools-text { display:none; }');
 
  $(function () {
    // needs to be deferred until the DOM has fully loaded
    var placeholder = document.getElementById("editpage-specialchars");
    if (!placeholder || window.noDefaultEdittools) {
      //Show the static edittools again for users with "window.noDefaultEdittools=true".
      mw.util.addCSS('div.edittools-text { display:block; }');
      return;
    }
    var match = /(?:^| )edittools-version-(\d+)(?: |$)/.exec(placeholder.className);
 
    // set window.testJsEdittools = true to enable testing before full deployment
    if (!match && window.testJsEdittools)
        match = /(?:^| )edittools-version-(test\d+)(?: |$)/.exec(placeholder.className);
 
    if (!match) return;
    var url = mw.config.get('wgScript') + '?title=MediaWiki:Edittools.js&action=raw&ctype=text/javascript&nocache=' + match[1];
    mw.loader.load(url);
  });
}

/********* MediaWiki:Valve.js *********/
function talkpageplus()
{
    var talkpagelink = document.getElementById('ca-talk');
    if (talkpagelink && talkpagelink.className == 'new')
    {
        talkpagelink.firstChild.href += '&section=new';
    }
}
$(talkpageplus);

// Konami code easter egg by WindPower, modified by Wookipan
// Constants:
	var spaiConstants = {};
	// Editable constants:
		// General info:
			spaiConstants.spaiEnabled = true;
			spaiConstants.spaiImage = '/w/images/7/73/Team_Fortress_Wiki_Egg_Spy.png';
			spaiConstants.spaiHeight = 196;
			spaiConstants.sapperClass = '--sapped';
			spaiConstants.spaiSappingMahWikiWav = '/w/images/4/4a/Team_Fortress_Wiki_Egg.wav';
			spaiConstants.timeStep = 40; // In milliseconds; 40 ms => 25 fps
		// Animation timing (all times in milliseconds):
			spaiConstants.anim_spaiFallDown = 2000; // Time for Spy to fall down
			spaiConstants.anim_spaiWait = 900; // Time Spy waits before going back up
			spaiConstants.anim_spaiBackUp = 2000; // Time for Spy to go back up
			spaiConstants.anim_sapperDestroyed = 2250; // Time until Sapper gets destroyed
	// End editable constants
	spaiConstants.theBody = function(){return document.getElementById('content');};
	spaiConstants.preloadedImages = [];
	spaiConstants.preloadingImages = [];
	spaiConstants.preloadingRefs = {};
	spaiConstants.toPreloadImage = spaiConstants.spaiImage;
	spaiConstants.self = null;
	spaiConstants.loadedSound = false;
	spaiConstants.loadedImages = false;
	spaiConstants.fired = false;
// End constants

if (!Array.prototype.indexOf) {
  Array.prototype.indexOf = function (obj, fromIndex) {
    if (fromIndex == null) {
        fromIndex = 0;
    } else if (fromIndex < 0) {
        fromIndex = Math.max(0, this.length + fromIndex);
    }
    for (var i = fromIndex, j = this.length; i < j; i++) {
        if (this[i] === obj)
            return i;
    }
    return -1;
  };
}

var spaiSappinMahWiki = {
	constants: spaiConstants,
	createImgDiv:function(image) {
		var self = spaiConstants.self;
		var div = document.createElement('div');
		var img = document.createElement('img');
		img.src = image;
		div.appendChild(img);
		setTimeout(function(){spaiConstants.theBody().appendChild(div);}, 1);
		return {
			'div': div,
			'img': img
		};
	},
	imagesLoaded:function() {
		spaiConstants.loadedImages = true;
		if(spaiConstants.loadedSound) {
			spaiConstants.self.spySappingMahWiki();
		}
	},
	soundLoaded:function() {
		spaiConstants.loadedSound = true;
		if(spaiConstants.loadedImages) {
			spaiConstants.self.spySappingMahWiki();
		}
	},
	preloadSound:function(sound, callback) {
		var self = spaiConstants.self;
		try {
			var audio = document.createElement('audio');
			audio.setAttribute('src', sound);
			audio.setAttribute('style', 'display: none;');
			audio.setAttribute('preload', 'true');
			spaiConstants.theBody().appendChild(audio);
			audio.addEventListener('canplaythrough', callback, false);
		}
		catch(e) {}
		setTimeout(callback, 1000); // Fallback
	},
	preloadImage:function(image) {
		var self = spaiConstants.self;
		if(spaiConstants.preloadingImages.indexOf(image) == -1) {
			spaiConstants.preloadingImages[spaiConstants.preloadingImages.length] = image;
			var nodes = self.createImgDiv(image);
			spaiConstants.preloadingRefs[image] = nodes['img'];
			nodes['div'].setAttribute('style', 'visibility: hidden; height: 0px; width: 0px; overflow: hidden; z-index: -10000;');
		}
		if(spaiConstants.preloadingRefs[image].width) {
			spaiConstants.preloadedImages[spaiConstants.preloadedImages.length] = image;
		}
		else
		{
			setTimeout(function(){self.preloadImage(image);}, spaiConstants.timeStep);
		}
	},
	preloadImages:function(callback) {
		var self = spaiConstants.self;
		var allPreloaded = true;
		for(var i in spaiConstants.toPreloadImages) {
			if(spaiConstants.preloadedImages.indexOf(spaiConstants.toPreloadImages[i]) == -1) {
				allPreloaded = false;
			}
			if(spaiConstants.preloadingImages.indexOf(spaiConstants.toPreloadImages[i]) == -1) {
				self.preloadImage(spaiConstants.toPreloadImages[i]);
			}
		}
		if(allPreloaded) {
			callback();
		} else {
			setTimeout(function(){self.preloadImages(callback);}, spaiConstants.timeStep);
		}
	},
	destroyNode:function(node) {
		try {
			node.parentNode.removeChild(node);
		} catch(e) {
			// Ze goggles, zey do nothin
		}
	},
	smoothInOut:function(progress) {
		return (Math.sin((progress-.5)*Math.PI)+1)/2;
	},
	inAnimation:function(func, progressTime, totalTime, callback, easing) {
		var self = spaiConstants.self;
		func(easing(progressTime / totalTime));
		if(progressTime >= totalTime) {
			callback();
		} else {
			setTimeout(function(){self.inAnimation(func, progressTime + spaiConstants.timeStep, totalTime, callback, easing);}, spaiConstants.timeStep);
		}
	},
	animate:function(func, totalTime, callback, easing) {
		var self = spaiConstants.self;
		return self.inAnimation(func, 0.0, totalTime, callback, easing);
	},
	playSound:function(sound) {
		var self = spaiConstants.self;
		try {
			var audio = document.createElement('audio');
			audio.setAttribute('src', sound);
			audio.setAttribute('style', 'display: none;');
			audio.setAttribute('autoplay', 'true');
			spaiConstants.theBody().appendChild(audio);
		}
		catch(e) {}
	},
	spyAnimationFinished:function(nodes) {
		var self = spaiConstants.self;
		for(var node in nodes) {
			self.destroyNode(nodes[node]);
		}
		spaiConstants.fired = false;
	},
	spySappingMahWiki:function() {
		var self = spaiConstants.self;
		if(spaiConstants.fired) return;
		spaiConstants.fired = true;
		var spai = document.createElement('a');
		spai.setAttribute('href', '/');
		spai.setAttribute('style', 'display:block; position: absolute; top: 0px; left: 0px; width: 160px; height: 200px; border: 0px; background: url('+spaiConstants.spaiImage+') no-repeat 0px -50000px; z-index: 10000;');
		spaiConstants.theBody().appendChild(spai);
		var logoPortlet = document.getElementById('p-logo');
		var changeHeight = function(progress) {
			progress = parseInt(progress * spaiConstants.spaiHeight);
			spai.style.backgroundPosition = '0px ' + (-spaiConstants.spaiHeight + progress).toString() + 'px';
		};
		self.animate(changeHeight, spaiConstants.anim_spaiFallDown, function(){
			self.playSound(spaiConstants.spaiSappingMahWikiWav);
			setTimeout(function(){
				logoPortlet.classList.add('wiki-logo' + spaiConstants.sapperClass);
				self.animate(function(progress){changeHeight(1.0-progress);}, spaiConstants.anim_spaiBackUp, function(){
					setTimeout(function(){
						logoPortlet.removeAttribute('class');
						self.spyAnimationFinished([spai]);
					}, spaiConstants.anim_sapperDestroyed);
				}, self.smoothInOut);
			}, spaiConstants.anim_spaiWait);
		}, self.smoothInOut);
	},
	hitItDoc:function() {
		var self = spaiConstants.self;
		self.preloadImages(self.imagesLoaded);
		self.preloadSound(spaiConstants.spaiSappingMahWikiWav, self.soundLoaded);
	},
	initKonami: function () {
		var self = spaiConstants.self;
		/*
			 * Konami-JS ~
			 * :: Now with support for touch events and multiple instances for
			 * :: those situations that call for multiple easter eggs!
			 * Code: https://github.com/georgemandis/konami-js
			 * Copyright (c) 2009 George Mandis (https://george.mand.is)
			 * Version: 1.6.3 (11/11/2021)
			 * Licensed under the MIT License (http://opensource.org/licenses/MIT)
			 * Tested in: Safari 4+, Google Chrome 4+, Firefox 3+, IE7+, Mobile Safari 2.2.1+ and Android
		*/
		var Konami = function (callback) {
			var konami = {
				addEvent: function (obj, type, fn, ref_obj) {
					if (obj.addEventListener)
						obj.addEventListener(type, fn, false);
					else if (obj.attachEvent) {
						// IE
						obj["e" + type + fn] = fn;
						obj[type + fn] = function () {
							obj["e" + type + fn](window.event, ref_obj);
						}
						obj.attachEvent("on" + type, obj[type + fn]);
					}
				},
				removeEvent: function (obj, eventName, eventCallback) {
					if (obj.removeEventListener) {
						obj.removeEventListener(eventName, eventCallback);
					} else if (obj.attachEvent) {
						obj.detachEvent(eventName);
					}
				},
				input: "",
				pattern: "38384040373937396665",
				keydownHandler: function (e, ref_obj) {
					if (ref_obj) {
						konami = ref_obj;
					} // IE
					konami.input += e ? e.keyCode : event.keyCode;
					if (konami.input.length > konami.pattern.length) {
						konami.input = konami.input.substr((konami.input.length - konami.pattern.length));
					}
					if (konami.input === konami.pattern) {
						konami.code(konami._currentLink);
						konami.input = '';
						e.preventDefault();
						return false;
					}
				},
				load: function (link) {
					this._currentLink = link;
					this.addEvent(document, "keydown", this.keydownHandler, this);
					this.iphone.load(link);
				},
				unload: function () {
					this.removeEvent(document, 'keydown', this.keydownHandler);
					this.iphone.unload();
				},
				code: function (link) {
					window.location = link
				},
				iphone: {
					start_x: 0,
					start_y: 0,
					stop_x: 0,
					stop_y: 0,
					tap: false,
					capture: false,
					orig_keys: "",
					keys: ["UP", "UP", "DOWN", "DOWN", "LEFT", "RIGHT", "LEFT", "RIGHT", "TAP", "TAP"],
					input: [],
					code: function (link) {
						konami.code(link);
					},
					touchmoveHandler: function (e) {
						if (e.touches.length === 1 && konami.iphone.capture === true) {
							var touch = e.touches[0];
							konami.iphone.stop_x = touch.pageX;
							konami.iphone.stop_y = touch.pageY;
							konami.iphone.tap = false;
							konami.iphone.capture = false;
							konami.iphone.check_direction();
						}
					},
					touchendHandler: function () {
						konami.iphone.input.push(konami.iphone.check_direction());

						if (konami.iphone.input.length > konami.iphone.keys.length) konami.iphone.input.shift();

						if (konami.iphone.input.length === konami.iphone.keys.length) {
							var match = true;
							for (var i = 0; i < konami.iphone.keys.length; i++) {
								if (konami.iphone.input[i] !== konami.iphone.keys[i]) {
									match = false;
								}
							}
							if (match) {
								konami.iphone.code(konami._currentLink);
							}
						}
					},
					touchstartHandler: function (e) {
						konami.iphone.start_x = e.changedTouches[0].pageX;
						konami.iphone.start_y = e.changedTouches[0].pageY;
						konami.iphone.tap = true;
						konami.iphone.capture = true;
					},
					load: function (link) {
						this.orig_keys = this.keys;
						konami.addEvent(document, "touchmove", this.touchmoveHandler);
						konami.addEvent(document, "touchend", this.touchendHandler, false);
						konami.addEvent(document, "touchstart", this.touchstartHandler);
					},
					unload: function () {
						konami.removeEvent(document, 'touchmove', this.touchmoveHandler);
						konami.removeEvent(document, 'touchend', this.touchendHandler);
						konami.removeEvent(document, 'touchstart', this.touchstartHandler);
					},
					check_direction: function () {
						x_magnitude = Math.abs(this.start_x - this.stop_x);
						y_magnitude = Math.abs(this.start_y - this.stop_y);
						x = ((this.start_x - this.stop_x) < 0) ? "RIGHT" : "LEFT";
						y = ((this.start_y - this.stop_y) < 0) ? "DOWN" : "UP";
						result = (x_magnitude > y_magnitude) ? x : y;
						result = (this.tap === true) ? "TAP" : result;
						return result;
					}
				}
			}

			typeof callback === "string" && konami.load(callback);
			if (typeof callback === "function") {
				konami.code = callback;
				konami.load();
			}

			return konami;
		};
		// End of Konami-JS
		var konami = new Konami();
		konami.code = function() {
			if (spaiConstants.spaiEnabled) {
				self.hitItDoc.apply(self);
			}
			
			document.dispatchEvent(new CustomEvent('konami:fire'));
		};
		konami.load();
	}
};
spaiConstants.self = spaiSappinMahWiki;
$(spaiSappinMahWiki.initKonami);

// Dynamic background by WindPower
// WindPower is secksy and makes this wiki awesome with his very breath. (- Smashman)
var dynamicBg = {
	categories: {
		// Format:
		// 'CategoryName': 'URL of background image',  ---OR--- 'title-PageTitle': 'URL of background image',
		// Categories don't have to be class names, they can be things like "Weapons", "Featured articles", "Maps", "Help", etc.
		'Scout': '/w/images/e/ea/Background_Scout_vector.png',
		'Soldier': '/w/images/5/54/Background_Soldier_vector.png',
		'Pyro': '/w/images/e/ed/Background_Pyro_vector.png',
                'Demoman': '/w/images/5/59/Background_Demoman_vector.png',
                'Engineer': '/w/images/f/f7/Background_Engineer_vector.png',
                'Heavy': '/w/images/0/03/Background_Heavy_vector.png',
                'Medic': '/w/images/2/24/Background_Medic_vector.png',
                'Sniper': '/w/images/e/ed/Background_Sniper_vector.png',
                'Spy': '/w/images/b/b9/Background_Spy_vector.png'
		// (No comma at the end of the last line)
	},
	getCategories:function() {
		var catlinksnode = document.getElementById('catlinks');
		if(!catlinksnode) return [];
		var catlinks = document.getElementById('catlinks').getElementsByTagName('a');
		var cats = [];
		var l;
		for(var i = 0; i < catlinks.length; i++) {
			l = catlinks[i].getAttribute('title');
			if(l.match(/^Category:/i, '')) {
				cats[cats.length] = l.substr(9).replace(/\/[^/]+$/, '');
			}
		}
		return cats;
	},
	inArray:function(haystack, needle) {
		for(var i = 0; i < haystack.length; i++) {
			if(haystack[i] == needle) {
				return i;
			}
		}
		return -1;
	},
	init:function() {
		if(typeof(wPrefs) != 'undefined') {
			if(dynamicBg.inArray(wPrefs, 'noDynamicBackground') != -1) {
				return; // Script disabled
			}
		}
		try {
			var cats = dynamicBg.getCategories();
			var body = document.getElementsByTagName('body')[0];
		} catch(e) {
			return;
		}
		var selectedCats = [];
		if(typeof(dynamicBg.categories['title-' + mw.config.get('wgTitle')]) != 'undefined') {
			selectedCats[0] = dynamicBg.categories['title-' + mw.config.get('wgTitle')];
		}
		else {
			for(var i in dynamicBg.categories) {
				if(dynamicBg.inArray(cats, i) != -1) {
					selectedCats[selectedCats.length] = dynamicBg.categories[i];
				}
			}
		}
		if(!selectedCats.length) return; // No match, keep default style
		var selectedCat = selectedCats[Math.floor(Math.random()*selectedCats.length)];
		body.style.backgroundImage='url('+selectedCat+')';
	}
};
$(dynamicBg.init);

// Page-specific JavaScript/CSS
var pageScripts = {
	pagesJS: ['Main_Page', 'User:WindPower', 'User:MogDog66', 'User:WindPower/Main_Page', 'User:Lexar/Main_Page/Template:Benjas', 'User:Lexar/RandomPage', 'User:Lexar/responsive_infobox', 'User:Lexar/sandbox', 'User:Tark', 'User:Tark/Sandbox', 'Team_Fortress_Wiki:April_Fools\'_Day/2021/Main_Page', 'User:PhoneWave', 'User:Wookipan/Sandbox'],
	pagesCSS: ['Main_Page', 'User:WindPower', 'User:Pilk/armory', 'User:Pilk', 'User:Esky', 'User:Lagg', 'User:MogDog66', 'User:CrushBOT', 'User:MogDog66/userpagev2', 'User:NVis', 'User:NVis/Sandbox', 'User:Lexar', 'User:MogDog66/MPR', 'User:WindPower/Main_Page', 'User:Moussekateer/3DViewer', 'User:T-Wayne', 'User:FreeXMan', 'User:Nixshadow', 'User:Ath', 'User:Carez', 'User:Lexar/Main_Page/Template:Benjas', 'User:Lexar/RandomPage', 'User:MogDog66/Sandbox', 'User:Obilisk', 'User:Lexar/itembox_tooltip', 'User:Lexar/sandbox', 'User:Lexar/responsive_infobox', 'User:Hagbard Celine', 'User:Wookipan', 'User:Wookipan/Sandbox', 'User:GrampaSwood', 'Team_Fortress_Wiki:April_Fools\'_Day/2019/Main_Page', 'User:Tark', 'User:Tark/Sandbox', 'User:Boba', 'User:Boba/Projects', 'User:FanCyy', 'User:Dan_greene', 'User:Boba/Sandbox', 'User:Ashe', 'Team_Fortress_Wiki:April_Fools\'_Day/2021/Main_Page', 'User:PhoneWave', 'User:Foxbite', 'User:Mediarch', 'User:Payn'],
	suffixJS: '/Page.js',
	suffixCSS: '/Page.css',
	init: function() {
		for(var i in pageScripts.pagesJS) {
			if(mw.config.get('wgPageName') == pageScripts.pagesJS[i]) {
				mw.loader.load(mw.config.get('wgScript') + '?title=' + encodeURIComponent(mw.config.get('wgPageName') + pageScripts.suffixJS) + '&ctype=text/javascript&action=raw');
			}
		}
		for(var i in pageScripts.pagesCSS) {
			if(mw.config.get('wgPageName') == pageScripts.pagesCSS[i]) {
				mw.loader.load(mw.config.get('wgScript') + '?title=' + encodeURIComponent(mw.config.get('wgPageName') + pageScripts.suffixCSS) + '&ctype=text/css&action=raw', 'text/css');
			}
		}
	}
};
$(pageScripts.init);

// Fancy diffs
var fancyDiffs = {
	isBigDiff: false,
	isBigDiffThreshold: 72,
	toggle: function(element) {
		var expanded = element.hasClass('diff-expanded');
		var contents = element.parent().children('.diff-contents');
		if(expanded) { // Just collapse then
			element.removeClass('diff-expanded');
			if(fancyDiffs.isBigDiff) {
				contents.hide();
			} else {
				contents.slideUp('fast');
			}
		} else if(element.hasClass('diff-data-loaded')) { // Stuff is already loaded, expand
			element.addClass('diff-expanded');
			contents.slideDown('fast');
		} else if(!element.hasClass('diff-data-requested')) { // Stuff is not loaded
			element.addClass('diff-data-requested');
			var fileName = element.find('span').text().replace(/^\s+|\s+$/g);
			var patchName = element.closest('.diffname');
			var diffName = mw.config.get('wgPageName');
			if(patchName && patchName.length && patchName.attr('class')) {
				diffName = patchName.attr('class').substr(9);
			}
			$.get('/w/?title=Template:PatchDiff/' + encodeURIComponent(diffName.replace(/^Template:PatchDiff\//, '')) + '/' + encodeURIComponent(fileName) + '&action=raw', function(data) {
				contents.html(data);
				if(fancyDiffs.isBigDiff) {
					contents.show();
				} else {
					contents.slideDown('fast');
				}
				element.removeClass('diff-data-requested').addClass('diff-data-loaded').addClass('diff-expanded');
			});
		}
		
	},
	init: function() {
		var diffText = $('.diff-name-text');
		if(diffText.length) {
			// Preload leetle gif
			$('body').append($('<img/>').attr('src', '/w/images/4/43/Patch_diff_loading.gif').css('display', 'none'));
			diffText.find('span').each(function() {
				$(this).text($(this).find('a').text().replace(/^\s+|\s+$/g));
			});
			diffText.click(function() {
				fancyDiffs.toggle($(this));
				return false;
			});
			fancyDiffs.isBigDiff = $('.diff-file').length > fancyDiffs.isBigDiffThreshold;
		}
	}
};
$(fancyDiffs.init);

// 3D/2D viewer
$('#switch-to-3d').click(function() {
	$('.container-2d').hide();
	$('.viewer-3d, .viewer-3d-multi, .buttons-container-3d').show();
});

$('#switch-to-2d').click(function() {
	$('.viewer-3d, .viewer-3d-multi, .buttons-container-3d').hide();
	$('.container-2d').show();
});

// 3D model viewer
var viewer3d = {
	dragging: null,
	draggingFrameX: 0,
	draggingFrameY: 0,
	viewers: [],
	frameThresholdX: 10,
	frameThresholdY: 128,
	realMod: function(x, y) {
		return ((x % y) + y) % y;
	},
	init: function() {
		$('.viewer-3d').each(viewer3d.bind);
		$(document).mouseup(viewer3d.release);
		$(document).mousemove(viewer3d.move);
	},
	bind: function() {
		var v = $(this);
		var num = viewer3d.viewers.length;
		var allModels = [];
		var modelID = 0;
		var viewerSize = 0;
		while(true) {
			var modelMap = v.find('.viewer-3d-map-' + modelID);
			var urlNode = v.find('.viewer-3d-url-' + modelID);
			if(!modelMap.length || !urlNode.length) break;
			var url = $('<div/>').html(urlNode.text()).text();
			var framesS = $('<div/>').html(modelMap.text()).text().replace(/^\s+|\s+$/g).split(/,/g);
			var frameMap = [];
			var heightMap = [];
			var leftCropMap = [];
			var totalW = parseInt(framesS[0]);
			var maxFrameW = parseInt(framesS[1]);
			var totalH = parseInt(framesS[2]);
			var verticalSteps = parseInt(framesS[3]);
			var midVertical = Math.floor(verticalSteps / 2);
			for(var f = 4; f < framesS.length; f += 3) {
				frameMap.push(parseInt(framesS[f]));
				heightMap.push(parseInt(framesS[f + 1]));
				leftCropMap.push(parseInt(framesS[f + 2]));
			}
			allModels.push({
				imageURL: url,
				map: frameMap,
				cropMap: leftCropMap,
				totalWidth: totalW,
				totalHeight: totalH,
				maxFrameWidth: maxFrameW,
				xStep: verticalSteps
			});
			viewerSize = Math.max(viewerSize, totalH, maxFrameW);
			modelID++;
		}
		if(!modelID) return;
		var overlayNode = $('<div class="viewer-3d-overlay"></div>');
		var frameN = v.find('.viewer-3d-frame');
		v.find('img').detach();
		var klasses = v.attr('class').split(/ /g);
		var startFrame = 0;
		for(var k in klasses) {
			if(klasses[k].substr(0, 11) == 'startframe-') {
				startFrame = Math.max(0, parseInt(klasses[k].substr(11)));
			}
		}
		var viewer = {
			node: v,
			frameX: startFrame,
			frameY: midVertical,
			models: allModels,
			currentModel: -1,
			frameNode: frameN,
			width: viewerSize,
			height: viewerSize,
			mouseX: 0,
			mouseY: 0,
			overlay: overlayNode
		};
		viewer3d.viewers.push(viewer);
		v.hover(viewer3d.hover, viewer3d.unhover).mousedown(viewer3d.drag).append(overlayNode).attr('data-id', num).css({
			width: viewer.width + 'px',
			height: viewer.height + 'px'
		});
		frameN.mousedown(viewer3d.drag).attr('data-id', num).css('height', viewer.height + 'px');
		viewer3d.changeVersion(viewer, 0);
	},
	getCurrentModel: function(v) {
		return v.models[v.currentModel];
	},
	changeVersion: function(v, version) {
		version = Math.max(0, Math.min(v.models.length - 1, version));
		if(v.currentModel == version) return;
		v.currentModel = version;
		v.frameNode.css('background', 'url(' + viewer3d.getCurrentModel(v).imageURL + ') top left no-repeat');
		viewer3d.display(v, v.frameX, v.frameY);
	},
	hover: function(e) {
		var v = viewer3d.getViewer(this);
		if(viewer3d.dragging != v) {
			v.overlay.animate({'opacity': '1'}, 'fast');
		}
	},
	unhover: function(e) {
		var v = viewer3d.getViewer(this);
		if(viewer3d.dragging != v) {
			v.overlay.animate({'opacity': '0.5'}, 'fast');
		}
	},
	drag: function(e) {
		var v = viewer3d.getViewer(this);
		v.mouseX = e.pageX;
		v.mouseY = e.pageY;
		viewer3d.dragging = v;
		draggingFrameX = v.frameX;
		draggingFrameY = v.frameY;
		return false;
	},
	release: function() {
		var v = viewer3d.dragging;
		viewer3d.dragging = null;
		if(v != null) {
			v.frameX = viewer3d.draggingFrameX;
			v.frameY = viewer3d.draggingFrameY;
			v.overlay.animate({'opacity': '0.5'}, 'fast');
		}
		viewer3d.draggingFrameX = 0;
		viewer3d.draggingFrameY = 0;
	},
	getViewer: function(node) {
		return viewer3d.viewers[parseInt($(node).attr('data-id'))];
	},
	display: function(v, frameX, frameY) {
		var model = viewer3d.getCurrentModel(v);
		var frameID = viewer3d.realMod(frameX * model.xStep + frameY, model.map.length);
		var frameOffset = model.map[frameID];
		var frameWidth = 0;
		if(frameID == model.map.length - 1) {
			frameWidth = model.totalWidth - frameOffset;
		} else {
			frameWidth = model.map[frameID + 1] - frameOffset;
		}
		v.frameNode.css({
			backgroundPosition: (-frameOffset - frameID) + 'px 0px',
			left: Math.round((v.width - model.maxFrameWidth) / 2.0 + model.cropMap[frameID]) + 'px',
			top: Math.round((v.height - model.totalHeight) / 2) + 'px',
			width: frameWidth + 'px',
			height: model.totalHeight + 'px'
		});
	},
	move: function(e) {
		if(viewer3d.dragging == null) {
			return;
		}
		var v = viewer3d.dragging;
		var model = viewer3d.getCurrentModel(v);
		var mouseDeltaX = e.pageX - v.mouseX;
		var mouseDeltaY = e.pageY - v.mouseY;
		var frameDeltaX = Math.round(mouseDeltaX / viewer3d.frameThresholdX);
		var frameDeltaY = -Math.round(mouseDeltaY / viewer3d.frameThresholdY);
		viewer3d.draggingFrameX = v.frameX + frameDeltaX;
		viewer3d.draggingFrameY = Math.max(0, Math.min(model.xStep - 1, v.frameY + frameDeltaY));
		viewer3d.display(v, viewer3d.draggingFrameX, viewer3d.draggingFrameY);
	}
};
$(viewer3d.init);
var selector3d = {
	bind: function() {
		var viewer = viewer3d.getViewer($(this).find('.viewer-3d'));
		var keepGoing = true;
		var modelVariant = 0;
		var selector;
		while(keepGoing) {
			selector = $(this).find('.selector-' + modelVariant);
			if(selector.length) {
				selector.attr('data-variant', modelVariant).click(function() {
					viewer3d.changeVersion(viewer, parseInt($(this).attr('data-variant')));
					return false;
				});
			}
			modelVariant++;
			keepGoing = selector.length;
		}
	},
	init: function() {
		$('.viewer-3d-multi, .viewer-3d-container').each(selector3d.bind);
	}
};
$(selector3d.init);

// Code to get 3D viewer drag working on touch devices
// Source: http://www.jquery4u.com/mobile/jquery-add-dragtouch-support-ipad/
$.fn.addTouch = function(){
    this.each(function(i,el){
      $(el).bind('touchstart touchmove touchend touchcancel',function(){
        //we pass the original event object because the jQuery event
        //object is normalized to w3c specs and does not provide the TouchList
        handleTouch(event);
      });
    });

    var handleTouch = function(event)
    {
      var touches = event.changedTouches,
              first = touches[0],
              type = '';

      switch(event.type)
      {
        case 'touchstart':
          type = 'mousedown';
          break;

        case 'touchmove':
          type = 'mousemove';
          event.preventDefault();
          break;

        case 'touchend':
          type = 'mouseup';
          break;

        default:
          return;
      }

      var simulatedEvent = document.createEvent('MouseEvent');
      simulatedEvent.initMouseEvent(type, true, true, window, 1, first.screenX, first.screenY, first.clientX, first.clientY, false, false, false, false, 0/*left*/, null);
      first.target.dispatchEvent(simulatedEvent);
    };
  };

$('.viewer-3d').addTouch();

// End 3D viewer touch device code

// Start weapon wear table tabs -----
var WeaponWearTable = {
	tabSwitch: function($this,tab,weapons,weapon) {
		if (!$this.hasClass('current')) {
			var tabIndex = $this.index();
			$this.parent().find('.current').removeClass('current');
			$this.addClass('current');
			weapons.find('.current').removeClass('current');
			weapon.eq(tabIndex).addClass('current');
		}
	},
	init: function() {
		$('.weapon-wear-table').each(function(){
			var $this = $(this),
			tabs = $this.children('.tabs'),
			tab = tabs.children('li'),
			weapons = $this.children('.weapons'),
			weapon = weapons.children('li');
			tab.click(function(){
				WeaponWearTable.tabSwitch($(this),tab,weapons,weapon);
			});
		});
	}
};
$(WeaponWearTable.init);
// End weapon wear table tabs -----

// Start Bilibili iframe support -----
var Bilibili = {
  init: function() {
    var $videos = $('.bilibili-video');
    $videos.each(function() {
      var $this = $(this);
      var aid = parseInt($this.data('vaid'));
      var danmaku = parseInt($this.data('vdanmaku'));
      var page = parseInt($this.data('vpage'));
      var width = $this.data('vwidth');
      var height = $this.data('vheight');
      var iframeSrc = 'https://www.bilibili.com/blackboard/html5mobileplayer.html?aid=' + aid + '&high_quality=1&danmaku=' + danmaku + '&page=' + page + '&hideCoverInfo=1&hideDanmakuButton=1';
      var iframe = '<iframe src="' + iframeSrc + '" width="' + width + '" height="' + height + '" frameborder="0" allowfullscreen="true"></iframe>';
      $this.append(iframe);
    });
  }
};
$(Bilibili.init);
// End Bilibili iframe support -----

// Start custom username highlighting -----
var uGroupHighlight = {
  init: function() {
    if ($('.mw-userlink')[0]) {
      var params = {
        action: 'query',
        list: 'allusers',
        augroup: ['sysop', 'moderator', 'bot'],
        auprop: 'groups',
        aulimit: 100,
        format: 'json'
      };

      var api = new mw.Api();

      api.get(params).done(function(data) {
        var uGroups = data.query.allusers, user;
        for (user in uGroups) {
          var name = uGroups[user].name;
          var group = uGroups[user].groups;

          $('bdi').each(function() {
            if ($(this).text().match('\\b' + name + '\\b')) {
              $(this).closest('.mw-userlink').addClass(group.includes('bot') ? 'bot' : 'staff');
            }
          });
        }
      });
    }
  },
};
$(uGroupHighlight.init);
// End custom username highlighting -----

// Start login icon randomizer -----
var iconRandomizer = {
    init: function() {
        var classes = [
            '/w/images/3/33/Login_Scout.png',
            '/w/images/d/d8/Login_Soldier.png',
            '/w/images/7/71/Login_Pyro.png',
            '/w/images/5/53/Login_Demoman.png',
            '/w/images/3/35/Login_Heavy.png',
            '/w/images/a/ab/Login_Engineer.png',
            '/w/images/d/d4/Login_Medic.png',
            '/w/images/e/e4/Login_Sniper.png',
            '/w/images/2/27/Login_Spy.png'
        ];

        // pick a random class image out of nine choices
        pickClass = classes[Math.floor(Math.random() * classes.length)];

        // ensure all relative elements are hit
        var nodes = $('#pt-userpage, #pt-anonuserpage, #pt-login');
        if (nodes.length) {
            for (var i = 0; i < nodes.length; i++) {
                nodes.css('background-image', 'url(' + pickClass + ')');
            }
        }
    }
};

$(iconRandomizer.init);
// End login icon randomizer -----

// Start 'Audio player'
var audioPlayer = {
    currentAudio: null,

    init: function () {
        var audioPauseImg = new Image();
        var audioPlayImg = new Image();
        audioPauseImg.src = '/w/images/d/d2/Pause_icon.png';
        audioPlayImg.src = '/w/images/6/67/Play_icon.png';

        $('.tfwiki-audio-player').each(function () {
            var audioPlayerElement = $(this);
            var audioLink = audioPlayerElement.children('a');
            var audioURL = audioLink.attr('href');
            var audio = null;
            var audioStatus = audioPlayerElement.find('.tfwiki-audio-player-action');
		
			audioStatus.removeClass('inactive');

            audioPlayerElement.on('click', function (e) {
                if (e.target !== audioStatus[0]) {
                    return;
                }

                e.preventDefault();
				
                if (!audio) {
                    audio = new Audio(audioURL);
                    audio.volume = 0.5;
                    audio.addEventListener('ended', function () {
                        audioStatus.text(audioStatus.data('text-play'));
                        audioStatus.removeClass('playing');
                    });
                }

                if (audioPlayer.currentAudio && audioPlayer.currentAudio !== audio) {
                    audioPlayer.currentAudio.pause();
                    audioPlayer.currentAudio.currentTime = 0;
                    audioPlayer.currentAudioStatus.text(audioPlayer.currentAudioStatus.data('text-play'));
                    audioPlayer.currentAudioStatus.removeClass('playing');
                }

                if (audio.paused) {
                    audio.play();
                    audioStatus.text(audioStatus.data('text-pause'));
                    audioPlayer.currentAudio = audio;
                    audioPlayer.currentAudioStatus = audioStatus;
                    audioStatus.addClass('playing');
                } else {
                    audio.pause();
                    audioStatus.text(audioStatus.data('text-resume'));
                    audioPlayer.currentAudio = null;
                    audioPlayer.currentAudioStatus = null;
                    audioStatus.removeClass('playing');
                }
            });

            audioLink.on('click', function (e) {
                e.preventDefault();
                window.open(audioURL, '_blank');
            });
        });
    }
};

$(audioPlayer.init);
// End 'Audio player'

/* Google Analytics */
  var _gaq = _gaq || [];
  _gaq.push(['_setAccount', 'UA-18260470-1']);
  _gaq.push(['_setDomainName', '.teamfortress.com']);
  _gaq.push(['_trackPageview']);

  (function() {
    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
  })();
/* GoSquared analytics */
  var GoSquared = {};
  GoSquared.acct = "GSN-106863-S";
  (function(w){
    function gs(){
      w._gstc_lt = +new Date;
      var d = document, g = d.createElement("script");
      g.type = "text/javascript";
      g.src = "//d1l6p2sc9645hc.cloudfront.net/tracker.js";
      var s = d.getElementsByTagName("script")[0];
      s.parentNode.insertBefore(g, s);
    }
    w.addEventListener ?
      w.addEventListener("load", gs, false) :
      w.attachEvent("onload", gs);
  })(window);