PageSourceSearch

https://worldofcardgames.com/assets/js/combined_minified.js?v=1036

js worldofcardgames.com collected 2026-10-02 04:08:31 UTC 900,520 bytes, 1,758 lines download raw bytes

1'use strict';Math.randomInt||(Math.randomInt=function(a,q){return Math.floor(Math.random()*(q-a+1))+a});Math.randomIntExcluding||(Math.randomIntExcluding=function(a,q,w){if(q<a)throw RangeError;w=Array.toArray(w);for(var k=[],x=a;x<=q;x++)w.contains(x)||k.push(x);if(0===k.length)throw new RangeError("randomIntExcluding found no valid integers: min '"+a+"', max '"+q+"'");a=Math.randomInt(0,k.length-1);return k[a]});
2Math.getRotatedDimensions||(Math.getRotatedDimensions=function(a,q,w){var k=a*Math.PI/180;a=Math.sin(k);var x=Math.cos(k);k=x*q;var y=a*q,v=-a*w,d=x*w,n=x*q-a*w;q=a*q+x*w;return[Math.floor(Math.max(0,k,v,n)-Math.min(0,k,v,n)),Math.floor(Math.max(0,y,d,q)-Math.min(0,y,d,q))]});Math.degreesToRadians||(Math.degreesToRadians=function(a){return Math.PI/180*a});Math.radiansToDegrees||(Math.radiansToDegrees=function(a){return 180/Math.PI*a});
3Math.rotatePointInBox||(Math.rotatePointInBox=function(a,q,w,k,x){w=Math.degreesToRadians(w);k/=2;x/=2;a-=k;var y=q-x;q=Math.sqrt(a*a+y*y);w=Math.atan2(y,a)+w;return[Math.cos(w)*q+k,Math.sin(w)*q+x]});
4Math.getRotatedAabbMinCornerInBox||(Math.getRotatedAabbMinCornerInBox=function(a,q,w){q=+q||0;w=+w||0;var k=+a||0;if(0>=q||0>=w)return{minX:0,minY:0};a=Math.rotatePointInBox(0,0,k,q,w);var x=Math.rotatePointInBox(q,0,k,q,w),y=Math.rotatePointInBox(0,w,k,q,w);q=Math.rotatePointInBox(q,w,k,q,w);return{minX:Math.min(a[0],x[0],y[0],q[0]),minY:Math.min(a[1],x[1],y[1],q[1])}});String.prototype.reverse||(String.prototype.reverse=function(){for(var a=this.length,q="";0<a;)q+=this.charAt(a-1),a--;return q});
5String.prototype.strip||(String.prototype.strip=function(){var a=Array.isArray(arguments[0])?arguments[0].join():Array.prototype.slice.call(arguments).join();return this.replace(new RegExp("["+a+"]","g"),"")});String.prototype.capitalize||(String.prototype.capitalize=function(){return this.charAt(0).toUpperCase()+this.substr(1)});String.prototype.toProperCase||(String.prototype.toProperCase=function(){return this.replace(/\w\S*/g,function(a){return a.charAt(0).toUpperCase()+a.substr(1).toLowerCase()})});
6String.prototype.toArray||(String.prototype.toArray=function(){return this.split("")});String.prototype.repeat||(String.prototype.repeat=function(a,q){for(var w="",k=0;k<a;k++)0<k&&q&&(w+=q),w+=this;return w});String.prototype.repeatAsArray||(String.prototype.repeatAsArray=function(a){var q=[];q.pushMany(""+this,a);return q});String.prototype.pad||(String.prototype.pad=function(a,q){return this.length>=a?this:("undefined"===typeof q?" ":q).repeat(a-this.length)+""+this});
7String.prototype.contains||(String.prototype.contains=function(a){return-1!==this.indexOf(a)});Object.forEach||(Object.forEach=function(a,q){q&&Object.keys(a).forEach(function(w){q(w,a[w])})});Object.mutate||(Object.mutate=function(a,q,w){if(q){var k="undefined"!==typeof w?w:void 0;Object.keys(a).forEach(function(x){k=q(x,a[x],k)});return k}});
8Object.merge||(Object.merge=function(a,q,w,k){var x=Object.prototype.hasOwnProperty;Object.forEach(q,function(y){k&&-1===k.indexOf(y)||(x.call(a,y)&&w?a[y]=w(a[y],q[y]):a[y]=q[y])});return a});Object.map||(Object.map=function(a,q){if(!q)return a;var w={};Object.forEach(a,function(k,x){k=q(k,x);w[k[0]]=k[1]});return w});Object.isObject||(Object.isObject=function(a){return null!==a&&!Array.isArray(a)&&"object"===typeof a});
9Number.prototype.toClock||(Number.prototype.toClock=function(a){var q="",w=this;if(3600<=w){var k=""+parseInt(w/3600,10);q+=k+":";w=parseInt(w%3600,10)}60<=w?(a=""+parseInt(w/60,10),q+=(0===a.length?"00":1===a.length?"0":"")+a+":",w=parseInt(w%60,10)):"undefined"!==typeof a&&a||(q+="00:");w=""+Math.floor(w);return q+=(0===w.length?"00":1===w.length?"0":"")+w});
10Number.prototype.zeroPad||(Number.prototype.zeroPad=function(a){var q=+this;a-=q.toString().length;return 0<a?Array(a+(/\./.test(q)?2:1)).join("0")+q:q+""});Number.isNumber||(Number.isNumber=function(a){return!isNaN(parseFloat(a))&&isFinite(a)});
11(function(a){function q(m,H){var c=m;if(Array.isArray(m)){c=[];for(var e=0,h=m.length;e<h;e++)H?c.push(q(m[e])):c.push(m[e])}else Object.isObject(m)&&(c={},Object.forEach(m,function(p,t){c[p]=H?q(t,H):t}));return c}function w(m,H){this.a=q(m);this.fun=H;this.results=null;this.i=0;w.prototype.go=function(c){this.cb=c||function(){};this.next()};w.prototype.next=function(c,e){null===this.results?this.results=[]:this.results.push(e);if(c)return this.cb(c,this.results);if(!this.a.length)return this.cb(void 0,
12this.results);this.fun(this.a.shift(),this.next.bind(this),this.i++)}}var k="undefined"!==typeof process&&"undefined"!==typeof process.versions&&"undefined"!==typeof process.versions.node;k&&(require("./Math"),require("./String"),require("./Object"),require("./Number"),require("./Array"));a.SECOND=1E3;a.MINUTE=60*a.SECOND;a.HOUR=60*a.MINUTE;a.DAY=24*a.HOUR;a.WEEK=7*a.DAY;a.MONTH=30*a.DAY;a.YEAR=365*a.DAY;a.STARTUP_TIME=Date.now();a.BYTE=1;a.KB=1024*a.BYTE;a.MB=1024*a.KB;a.GB=1024*a.MB;a.TB=1024*a.GB;
13a.PB=1024*a.TB;a.clone=q;Array.prototype.serialForEach||(Array.prototype.serialForEach=function(m,H){(new w(this,m)).go(H)});Array.prototype.pushMany||(Array.prototype.pushMany=function(m,H){for(;0<H--;)this.push(q(m,!0));return this});if(k){k=require("logme").Logme;require("moment");var x=require("cli-color"),y=require("node-myformat"),v=!0;a.disableColor=function(){v=!1};a.enableColor=function(){v=!0};var d=function(){return"undefined"!==typeof arguments[0]&&arguments[0]&&arguments[0].stack?arguments[0].stack.replaceAll("\n",
14"\n                                   "):v?y.format.apply(null,arguments):y.stripColor(y.format.apply(null,arguments))};k.prototype.tokens.date=function(){return(new Date).toUTCString().replace(/GMT$/,"").trim()};var n=new k({theme:{debug:"[:date] "+x.blackBright("DEBUG   =>")+" :message",info:"[:date] "+x.cyan("INFO    =>")+" :message",warning:"[:date] "+x.yellow("WARN    =>")+" :message",error:"[:date] "+x.red("ERROR   =>")+" :message",critical:"[:date] "+x.red(x.underline("CRITICAL")+"=>")+" :message"}});
15["debug","info","warn","error","critical"].forEach(function(m){a[m]=function(){n["warn"===m?"warning":m](d.apply(this,arguments))}});a.log=console.log;a.preformatLogText=d;process.addListener("uncaughtException",a.error)}else k={log:function(){},info:function(){},warn:function(){},error:function(){},trace:function(){}},"undefined"===typeof window.console&&(window.console=k),window.location.hostname.startsWith("dev.")||window.location.href.includes("dev=true")?(a.info=window.console.log.bind?window.console.log.bind(console):
16window.console.log,a.warn=window.console.warn.bind?window.console.warn.bind(console):window.console.warn,a.error=window.console.error.bind?window.console.error.bind(console):window.console.error):(a.info=function(){},a.warn=function(){},a.error=function(){})})("undefined"===typeof exports?window.base={}:exports);
17(function(a){var q=function(w,k){this.defaultDuration=k;this.duration=w;this.finished=!1;q.prototype.start=function(x){if(!this.finished){this.cb=x;this.started=!0;this.paused=!1;if(0>=this.duration)return this.finishedHandler();this.startAt=Date.now();this.endAt=this.startAt+this.duration;this.timeout=setTimeout(this.finishedHandler.bind(this),this.duration)}};q.prototype.finishedHandler=function(){this.finished=!0;this.cb()};q.prototype.stop=function(){this.finished||clearTimeout(this.timeout)};
18q.prototype.pause=function(){this.paused||this.finished||!this.started||(this.paused=!0,this.stop(),this.duration=this.getTimeLeft())};q.prototype.resume=function(){this.paused&&!this.finished&&this.start(this.cb)};q.prototype.getTimeLeft=function(){return this.endAt-Date.now()};q.prototype.getDefaultDuration=function(){return this.defaultDuration};q.prototype.isRunning=function(){return this.started&&!this.paused&&!this.finished}};a.Timer=q})("undefined"===typeof exports?window:exports);
19Array.prototype.contains||(Array.prototype.contains=function(a){return-1!==this.indexOf(a)});Array.prototype.count||(Array.prototype.count=function(a){for(var q=0,w=0,k=this.length;w<k;w++)this[w]===a&&q++;return q});Array.prototype.containsAll||(Array.prototype.containsAll=function(a){for(var q=0,w=a.length;q<w;q++)if(-1===this.indexOf(a[q]))return!1;return!0});
20Array.prototype.unique||(Array.prototype.unique=function(){var a=[];return this.filter(function(q){if(0<=a.indexOf(q))return!1;a.push(q);return!0})});
21Array.prototype.pickRandom||(Array.prototype.pickRandom=function(a,q){if("undefined"===typeof a)return this[Math.floor(Math.random()*this.length)];if(a>=this.length)return this;var w=this,k=[];q&&Array.toArray(q).forEach(function(y){w.contains(y)&&k.push(w.indexOf(y))});q=[];for(var x=0;x<a;x++)q.push(Math.randomIntExcluding(0,this.length-1,q.concat(k)));return q.map(function(y){return w[y]})});Array.toArray||(Array.toArray=function(a){return Array.isArray(a)?a:[a]});
22Array.prototype.pushSequence||(Array.prototype.pushSequence=function(a,q){if(q>a)for(;a<=q;a++)this.push(a);else if(q<a)for(;a>=q;a--)this.push(a);else this.push(a);return this});Array.prototype.pull||(Array.prototype.pull=function(a){a=this.indexOf(a);if(-1!==a)return this.splice(a,1)[0]});Array.prototype.remove||(Array.prototype.remove=function(a){a=this.indexOf(a);if(-1!==a)return this.splice(a,1),this});
23Array.prototype.removeAll||(Array.prototype.removeAll=function(a){a=Array.toArray(a);var q=this;a.forEach(function(w){for(;q.remove(w););});return this});Array.prototype.pullAll||(Array.prototype.pullAll=function(a){a=Array.toArray(a);var q=[],w=this;a.forEach(function(k){do{var x=w.pull(k);"undefined"!==typeof x&&q.push(x)}while(x)});return q});
24Array.prototype.equals||(Array.prototype.equals=function(a){if(this.length!==a.length)return!1;for(var q=0,w=this.length;q<w;q++)if(a[q]!==this[q])return!1;return!0});Array.prototype.rotate=function(){var a=Array.prototype.push,q=Array.prototype.splice;return function(w){var k=this.length>>>0;a.apply(this,q.call(this,0,((w>>0)%k+k)%k));return this}}();
25Array.prototype.shuffle||(Array.prototype.shuffle=function(){for(var a=this.length,q,w;a;)w=Math.randomInt(0,--a),q=this[a],this[a]=this[w],this[w]=q;return this});Array.prototype.mutate||(Array.prototype.mutate=function(a,q){if(null===this)throw new TypeError;if("function"!==typeof a)throw new TypeError;for(var w=0,k=this.length;w<k;w++)q=a(this[w],q,w,this);return q});
26Array.prototype.mutateOnce||(Array.prototype.mutateOnce=function(a){if(null===this)throw new TypeError;if("function"!==typeof a)throw new TypeError;for(var q=0,w=this.length;q<w;q++){var k=a(this[q],q,this);if("undefined"!==typeof k)return k}});Array.prototype.mutateRightOnce||(Array.prototype.mutateRightOnce=function(a){if(null===this)throw new TypeError;if("function"!==typeof a)throw new TypeError;for(var q=this.length-1;0<=q;q--){var w=a(this[q],q,this);if("undefined"!==typeof w)return w}});
27Array.prototype.mutateRight||(Array.prototype.mutateRight=function(a,q){if(null===this)throw new TypeError;if("function"!==typeof a)throw new TypeError;for(var w=this.length-1;0<=w;w--)q=a(this[w],q,w,this);return q});Array.prototype.clear||(Array.prototype.clear=function(){this.length=0});Array.prototype.sum||(Array.prototype.sum=function(){return this.length?this.reduce(function(a,q,w){return(+a||0)+(+q||0)}):0});Array.prototype.average||(Array.prototype.average=function(){return this.sum()/this.length});
28Array.prototype.variance||(Array.prototype.variance=function(a){var q=this.average();return this.map(function(w){return(w-q)*(w-q)}).sum()/(this.length-(a?1:0))});Array.prototype.standardDeviation||(Array.prototype.standardDeviation=function(a){return Math.sqrt(this.variance(a))});Array.prototype.flatten||(Array.prototype.flatten=function(a){var q=[];this.forEach(function(w,k){0<k&&a&&q.push(a);q=q.concat(w)});return q});Array.prototype.filterEmpty||(Array.prototype.filterEmpty=function(){return this.filter(function(a){return!!a})});
29Array.prototype.subtract||(Array.prototype.subtract=function(a){return this.filter(function(q){return-1===a.indexOf(q)})});
30(function(a){function q(h,p){if(a.Notification)try{var t=new a.Notification(h,{icon:m(p.icon)?p.icon:p.icon.x32,body:p.body||"",tag:p.tag||""})}catch(B){}else a.webkitNotifications?(t=a.webkitNotifications.createNotification(p.icon,h,p.body),t.show()):navigator.mozNotification?(t=navigator.mozNotification.createNotification(h,p.body,p.icon),t.show()):a.external&&a.external.msIsSiteMode()&&(a.external.msSiteModeClearIconOverlay(),a.external.msSiteModeSetIconOverlay(m(p.icon)?p.icon:p.icon.x16,h),a.external.msSiteModeActivate(),
31t={ieVerification:d+1});return t}function w(h){return{close:function(){h&&(h.close?h.close():a.external&&a.external.msIsSiteMode()&&h.ieVerification===d&&a.external.msSiteModeClearIconOverlay())}}}function k(){var h;if(v)return a.Notification&&a.Notification.permissionLevel?h=a.Notification.permissionLevel():a.webkitNotifications&&a.webkitNotifications.checkPermission?h=x[a.webkitNotifications.checkPermission()]:navigator.mozNotification?h="granted":a.Notification&&a.Notification.permission?h=a.Notification.permission:
32a.external&&void 0!==a.external.msIsSiteMode()&&(h=a.external.msIsSiteMode()?"granted":"default"),h}var x=["granted","default","denied"],y={},v=function(){var h=!1;try{h=!!(a.Notification||a.webkitNotifications||navigator.mozNotification||a.external&&void 0!==a.external.msIsSiteMode())}catch(p){}return h}(),d=Math.floor(10*Math.random()+1),n=function(h){return h&&h.constructor===Function},m=function(h){return h&&h.constructor===String},H=function(h){return h&&h.constructor===Object},c=function(){},
33e={pageVisibility:!1,autoClose:0};a.notify={PERMISSION_DEFAULT:"default",PERMISSION_GRANTED:"granted",PERMISSION_DENIED:"denied",isSupported:v,config:function(h){if(h&&H(h)){var p;for(p in h){var t=h[p];p in e&&(e[p]===t||p in y&&y[p]===t)||(e[p]=t)}}return e},createNotification:function(h,p){var t;v&&(e.pageVisibility?document.hidden||document.msHidden||document.mozHidden||document.webkitHidden:1)&&m(h)&&p&&(m(p.icon)||H(p.icon))&&"granted"===k()&&(t=q(h,p));var B=w(t);e.autoClose&&t&&!t.ieVerification&&
34t.addEventListener&&t.addEventListener("show",function(){a.setTimeout(function(){B.close()},e.autoClose)});return B},permissionLevel:k,requestPermission:function(h){v&&(h=n(h)?h:c,a.webkitNotifications&&a.webkitNotifications.checkPermission?a.webkitNotifications.requestPermission(h):a.Notification&&a.Notification.requestPermission&&a.Notification.requestPermission(h))}};
34n(Object.seal)&&Object.seal(a.notify)})(window);
35function tiptoe(){function a(){var d=Array.prototype.slice.call(arguments);k=w=0;if(0===q.length){if(d[0])throw d[0];}else{v||(d[0]?q=q.slice(q.length-1):1<q.length&&(d=d.slice(1)));v=!1;var n=q.shift();x=[];try{y=!0;v=!1;var m=n.apply(a,d)}catch(H){a(H)}0<k&&0===w?a.apply(null,x):void 0!==m&&a(void 0,m);y=!1}}var q=Array.prototype.slice.call(arguments),w,k,x,y,v;a.parallel=function(){var d=1+k++;w++;return function(){w--;arguments[0]&&(x[0]=arguments[0]);x[d]=2<arguments.length?Array.prototype.slice.call(arguments,
361):arguments[1];y||0!==w||a.apply(null,x)}};a.capture=function(){v=!0};a.data={};a.exit=function(){q=[]};a.finish=function(){q=q.slice(q.length-1);a.apply(null,arguments)};a()}"undefined"!==typeof module&&"exports"in module&&(module.exports=tiptoe);
37YUI.add("sha1",function(a){function q(w,k){var x=(w&65535)+(k&65535);return(w>>16)+(k>>16)+(x>>16)<<16|x&65535}a.sha1={hash:function(w){for(var k=[],x=0;x<8*w.length;x+=8)k[x>>5]|=(w.charCodeAt(x/8)&255)<<24-x%32;w=8*w.length;k[w>>5]|=128<<24-w%32;k[(w+64>>9<<4)+15]=w;w=Array(80);x=1732584193;for(var y=-271733879,v=-1732584194,d=271733878,n=-1009589776,m=0;m<k.length;m+=16){for(var H=x,c=y,e=v,h=d,p=n,t=0;80>t;t++){var B=t;if(16>t)var F=k[m+t];else F=w[t-3]^w[t-8]^w[t-14]^w[t-16],F=F<<1|F>>>31;w[B]=
38F;B=q(q(x<<5|x>>>27,20>t?y&v|~y&d:40>t?y^v^d:60>t?y&v|y&d|v&d:y^v^d),q(q(n,w[t]),20>t?1518500249:40>t?1859775393:60>t?-1894007588:-899497514));n=d;d=v;v=y<<30|y>>>2;y=x;x=B}x=q(x,H);y=q(y,c);v=q(v,e);d=q(d,h);n=q(n,p)}k=[x,y,v,d,n];w="";for(x=0;x<4*k.length;x++)w+="0123456789abcdef".charAt(k[x>>2]>>8*(3-x%4)+4&15)+"0123456789abcdef".charAt(k[x>>2]>>8*(3-x%4)&15);return w}}},"1.0",{});
39YUI.add("yui-node-extensions",function(a){function q(v){v&&v._node&&(v._node.style.translate=(v.getData("translate-x")||0)+"px "+(v.getData("translate-y")||0)+"px")}function w(v,d){var n=v.getData(d);if(n){try{n.cancel()}catch(m){}v.setData(d,null)}}function k(v,d,n){if(!v)return 0;d||(d=/([0-9.-]+)(em|ex|px|ch|in|cm|mm|pt|pc|%)?/,n=1);return(v=(""+v).match(d))&&v.length>=n+1?+v[n]:0}function x(v){v.startsWith("#")&&(v=v.substring(1));return v.toLowerCase()}var y=a.UA.webkit?"Webkit":a.UA.gecko?"Moz":
40a.UA.opera?"O":a.UA.ie?"ms":"";a.Node.prototype.getHeight=function(){return this.get("offsetHeight")};a.Node.prototype.getWidth=function(){return this.get("offsetWidth")};a.Node.prototype.getTop=function(){return this.get("offsetTop")};a.Node.prototype.getLeft=function(){return this.get("offsetLeft")};a.Node.prototype.getContentWidth=function(){var v=this.getWidth();v-=this.getComputedStyleAsNumber("paddingLeft")+this.getComputedStyleAsNumber("paddingRight");return v-=this.getComputedStyleAsNumber("borderLeftWidth")+
41this.getComputedStyleAsNumber("borderRightWidth")};a.Node.prototype.getContentHeight=function(){var v=this.getHeight();v-=this.getComputedStyleAsNumber("paddingTop")+this.getComputedStyleAsNumber("paddingBottom");return v-=this.getComputedStyleAsNumber("borderTopWidth")+this.getComputedStyleAsNumber("borderBottomWidth")};a.Node.prototype.getContentPoly=function(){var v=["Top","Right","Bottom","Left"].map(function(m){return this.getComputedStyleAsNumber("padding"+m)}.bind(this)),d=this.getWidth(),
42n=this.getHeight();return[v[3],v[0],d-v[1],v[0],d-v[1],n-v[2],v[3],n-v[2]]};a.Node.prototype.getStyleAsNumber=function(v,d,n){return k(this.getStyle(v),d,n)};a.Node.prototype.getComputedStyleAsNumber=function(v,d,n){return k(this.getComputedStyle(v),d,n)};a.Node.prototype.setRotateStyle=function(v,d){w(this,"__rotateAnim");"undefined"!==typeof v&&null!==v&&this.setData("rotation-angle",v);"undefined"!==typeof d&&null!==d&&d&&2===d.length&&(this.setData("rotation-origin",d),this._node&&(this._node.style.transformOrigin=
43d[0]+"px "+d[1]+"px"));this&&this._node&&(this._node.style.rotate=(this.getData("rotation-angle")||0)+"deg");return this};a.Node.prototype.setRotationYStyle=function(v){w(this,"__rotationYAnim");this.setData("rotation-y",v);this&&this._node&&(this._node.style.transform="rotateY("+(this.getData("rotation-y")||0)+"deg)");return this};a.Node.prototype.setScaleStyle=function(v){w(this,"__scaleAnim");this.setData("scale",v);this&&this._node&&(v=this.getData("scale"),this._node.style.scale="number"===typeof v?
44v:1);return this};a.Node.prototype.setTranslateYStyle=function(v){w(this,"__translateAnim");this.setData("translate-y",v);q(this);return this};a.Node.prototype.setTranslateXStyle=function(v){w(this,"__translateAnim");this.setData("translate-x",v);q(this);return this};a.Node.prototype.setBorderRadiusStyle=function(v){this.setStyle(y+"BorderRadius",v);this.setStyle("borderRadius",v)};a.Node.prototype.getRotation=function(){return this.getData("rotation-angle")||0};a.Node.prototype.getRotationOrigin=
45function(){return this.getData("rotation-origin")};a.Node.prototype.getRotationY=function(){return this.getData("rotation-y")||0};a.Node.prototype.getScale=function(){var v=this.getData("scale");return"number"===typeof v?v:1};a.Node.prototype.getTranslateY=function(){return this.getData("translate-y")||0};a.Node.prototype.getTranslateX=function(){return this.getData("translate-x")||0};a.Node.prototype.setZIndex=function(v){this.setData("zIndex",v);this.setStyle("zIndex",v)};a.Node.prototype.getZIndex=
46function(){var v=this.getData("zIndex");(null===v||"undefined"===typeof v)&&(v=this.getStyleAsNumber("zIndex"))&&this.setData("zIndex",v);return v};a.Node.prototype.getBorderColor=function(){return x(this.getStyle("borderColor"))};
46a.Node.prototype.getBackgroundColor=function(){return x(this.getStyle("backgroundColor"))};a.Node.prototype.centerX=function(){this.setStyle("left",Math.floor((this.get("parentNode").getWidth()-this.getWidth())/2)+"px")};a.Node.prototype.centerY=function(){this.setStyle("top",
47Math.floor((this.get("parentNode").getHeight()-this.getHeight())/2)+"px")};a.Node.prototype.containsPoint=function(v,d){if(this.getRotation())return document.elementFromPoint(v,d)===this._node;var n=this.getXY();if(!n)return!1;var m=n[0];n=n[1];return v<m||d<n||v>m+this.getWidth()||d>n+this.getHeight()?!1:!0};YUI.prototype.getAll=function(v){return a.all(v).toArray()};a.Node.prototype.getAll=function(v){return this.all(v).toArray()};a.NodeList.prototype.toArray=function(){return this._nodes.map(function(v){return a.one(v)})}},
48"1.0",{requires:["node","dom","anim"]});YUI.add("yui-anim-rotate",function(a){a.Anim.behaviors.rotate={set:function(q,w,k,x,y,v,d){w=d(y,+k,+x-+k,v);0>w?w=360- -1*w:360<w&&(w-=360);q._node.setRotateStyle(w)}}},"1.0",{requires:["anim"]});
49YUI.add("event-windowresize",function(a){function q(){null!==w&&(300>(new Date).getTime()-w?setTimeout(q,300):(w=null,a.fire("window:resized")))}var w=null;a.on("resize",function(){w=(new Date).getTime();setTimeout(q,300)})},"1.0",{requires:["yui-node-extensions","dom"]});YUI.add("event-rightclick",function(a){a.Event.define("rightclick",{on:function(q,w,k){w._handle=q.on("contextmenu",function(x){x.preventDefault();k.fire(x)})},detach:function(q,w,k){w._handle.detach()}})},"1.0",{});
50YUI.add("ModalProgress",function(a){function q(){x.one(".message").setContent(Object.values(k).join("<br>"))}function w(){if(x){var y=x.one(".barContainer");y&&y.setStyle("top",Math.max((window.innerHeight-y.getHeight())/2,40)+"px")}}var k={},x=null;a.ModalProgress={};a.on("domready",function(){x=a.Node.create("<div>").set("id","ModalProgress").setStyle("display","none").setAttribute("role","dialog").setAttribute("aria-modal","true").setAttribute("aria-label","Loading");x.append(a.Node.create("<div>").addClass("barContainer").append(a.Node.create("<span>").addClass("bar").setStyle("width",
51"100%")).append(a.Node.create("<br>")).append(a.Node.create("<span>").addClass("message")));a.one("#mainContainer").append(x);w()});a.on("window:resized",w);a.on("ModalProgress:show",function(y){y=y||{};var v=!!Object.keys(k).length;k[y.id]=y.message;y.hasOwnProperty("percentage")&&(y=y.percentage,x.one(".bar").setStyle("width",y+"%"));q();v?w():(a.ModalScrollLock.lock(),x.removeClass("modalClosing"),x.setStyle("display","block"),w(),a.Transition.run({node:x,duration:220,opacity:1}))});a.on("ModalProgress:hide",
52function(y){y=y||{};delete k[y.id];Object.keys(k).length?(q(),w()):(a.ModalScrollLock.unlock(),x.addClass("modalClosing"),a.Transition.run({node:x,duration:160,opacity:0,cb:function(){q();x.setStyle("display","none");x.removeClass("modalClosing")}}))})},"1.0",{requires:["Transition"]});
53YUI.add("ModalError",function(a){function q(H){n&&(n=!1,m&&(a.KeyboardShortcuts.detach("escape",m),m=null),a.ModalScrollLock.unlock(),v.addClass("modalClosing"),a.Transition.run({node:v,duration:160,opacity:0,cb:function(){v.setStyle("display","none");v.removeClass("modalClosing")}}))}function w(H){v.one(".message").setContent(H.replace("Error:","<b>Error:</b>"))}function k(H){q()}function x(){"function"===typeof requestAnimationFrame?requestAnimationFrame(y):y()}function y(){var H=v.one(".messageContainer"),
54c=Math.max((window.innerHeight-H.getHeight())/2,40);H.setStyle("margin-top",c+"px")}a.ModalScrollLock||(a.ModalScrollLock={_count:0,lock:function(){this._count++;1===this._count&&(document.body.style.overflow="hidden")},unlock:function(){this._count--;0>=this._count&&(this._count=0,document.body.style.overflow="")}});var v=null,d=null,n=!1,m=null;a.ModalError={};a.on("domready",function(){v=a.Node.create("<div>").set("id","ModalError").setStyle("display","none").setAttribute("role","dialog").setAttribute("aria-modal",
55"true").setAttribute("aria-label","Error");d=a.Node.create("<div>").addClass("background");var H=a.Node.create("<img>").addClass("close").set("src",a.wocg.buildAssetImageURL("images/closeModal.png")).set("width","32").set("height","32");H.on("click",k);a.one("body").append(v.append(d.append(a.Node.create("<div>").addClass("messageContainer").append(a.Node.create("<span>").addClass("innerContainer").append(a.Node.create("<span>").addClass("message").addClass("selectable")).append(H)))));y();a.on("window:resized",
56y)});a.on("ModalError:show",function(H){H=H||{};H.message&&(a.fire("Notice:hide"),H.hasOwnProperty("message")&&w(H.message),n?x():(a.ModalScrollLock.lock(),v.removeClass("modalClosing"),v.setStyle("display","block"),x(),a.Transition.run({node:v,duration:220,opacity:1}),n=!0),H.fatal?(v.removeClass("closable"),v.one(".close").setStyle("display","none")):(v.addClass("closable"),m=k,a.Ke
56yboardShortcuts.on("escape",m),d.on("click",function(c){c.target&&c.target._node&&c.target._node.classList&&c.target._node.classList.contains("background")&&
57q()}),v.one(".close").setStyle("display","inline")))});a.on("ModalError:hide",q);a.on("ModalError:update",function(H){H=H||{};H.hasOwnProperty("message")&&(w(H.message),x());H.fatal?(v.removeClass("closable"),v.one(".close").setStyle("display","none")):(v.addClass("closable"),d.on("click",k),v.one(".close").setStyle("display","inline"))})},"1.0",{requires:["wocg","KeyboardShortcuts","Transition"]});
58YUI.add("Notice",function(a){function q(T){"string"===typeof T&&(T={message:T});T=T||{};T.type=0<=h.indexOf(T.type)?T.type:"info";T.label="string"===typeof T.label?T.label:"Notice:";T.message&&(t?c()||A||M?(J=T,y(k)):x(T):J=T)}function w(){J=null;y()}function k(){var T=J;J=null;T&&x(T)}function x(T){var ma=!1===T.duration?!1:"number"===typeof T.duration?T.duration:3200;B&&(clearTimeout(B),B=null);F&&(clearTimeout(F),F=null);a.Transition.cancel(t);G=T;d(T.type);n();t.one(".label").setContent(T.label);
59T.messageHtml?t.one(".message").setHTML(T.messageHtml):t.one(".message").setContent(T.message);p.setStyle("display","block");t.setStyle("display","block");t.setStyle("opacity",0);t.setStyle("marginTop","0px");t.setStyle("marginTop","-"+(t.getHeight()+16)+"px");!1!==ma&&(B=setTimeout(y,ma+160));A=!0;M=!1;a.Transition.run({node:t,duration:160,marginTop:0,opacity:1,easing:"ease-out-2",cb:function(){A=!1;J&&y(k)}})}function y(T){B&&(clearTimeout(B),B=null);if(t&&c())if(M)T&&(E=T);else{T&&(E=T);a.Transition.cancel(t);
60var ma=++S;A=!1;M=!0;a.Transition.run({node:t,duration:160,marginTop:t.getHeight()+16,opacity:0,easing:"ease-in-2",cb:function(){v(ma)}});F=setTimeout(function(){v(ma)},240)}else T&&T()}function v(T){if(M&&T===S){F&&(clearTimeout(F),F=null);T=E;var ma=G;G=E=null;M=!1;t.setStyle("display","none");t.setStyle("marginTop","0px");p.setStyle("display","none");a.fire("Notice:hidden",ma||{});T?T():J&&k()}}function d(T){h.forEach(function(ma){t.removeClass(ma)});t.addClass(T)}function n(){if(p){t&&(a.wocg&&
61a.wocg.isPlayspaceCompact&&a.wocg.isPlayspaceCompact()?t.addClass("compact"):t.removeClass("compact"));p.setStyle("top",H()+"px");var T=p;var ma=T.setStyle;var ea=a.wocg&&a.wocg.safeAreaTop?a.wocg.safeAreaTop():((ea=window.getComputedStyle?window.getComputedStyle(document.documentElement):null)?parseInt(ea.getPropertyValue("--safe-area-inset-top"),10):NaN)||0;ma.call(T,"paddingTop",ea+(a.wocg&&a.wocg.playspaceGutter?a.wocg.playspaceGutter():window.matchMedia&&window.matchMedia("(max-width: 640px), (max-height: 640px)").matches?
628:16)+"px");T=(T=document.documentElement)&&T.clientWidth?T.clientWidth:window.innerWidth;ma=m();T=Math.max(0,T-ma)+"px";p.setStyle("left","0px");p.setStyle("width",T)}}function m(){var T=a.one("#ad"),ma=T&&T._node;if(!ma||!ma.getBoundingClientRect||a.AdWidget&&"function"===typeof a.AdWidget.isAdRemoved&&a.AdWidget.isAdRemoved()||a.wocg&&"function"===typeof a.wocg.showMobileBannerAd&&a.wocg.showMobileBannerAd()||T.hasClass("mobile")||T.hasClass("mobileTop"))return 0;T=window.getComputedStyle(ma);
63if("none"===T.display||"hidden"===T.visibility)return 0;ma=ma.getBoundingClientRect();return 0>=ma.width||0>=ma.height?0:a.wocg&&"function"===typeof a.wocg.getAdWidth?Math.round(a.wocg.getAdWidth()):Math.round(ma.width)}function H(){var T=a.one("#menuBarContainer");if(!T||!T._node)return 0;var ma=window.getComputedStyle(T._node);if("none"===ma.display||"hidden"===ma.visibility)return 0;T=T._node.getBoundingClientRect();return 0>=T.height||0>=T.bottom?0:Math.ceil(T.bottom)}function c(){return p&&"none"!==
64p.getStyle("display")}function e(){n();L&&clearTimeout(L);L=setTimeout(function(){L=null;n()},250)}var h=["info","success","warning","error"],p=null,t=null,B=null,F=null,S=0,A=!1,M=!1,J=null,G=null,E=null,L=null;a.Notice={show:q,hide:w,isVisible:c,getCurrentOptions:function(){return G}};a.on("domready",function(){p=a.Node.create("<div>").set("id","NoticeContainer").setStyle("display","none");t=a.Node.create("<div>").set("id","Notice").addClass("info").setAttribute("role","status").setAttribute("aria-live",
65"polite");t.append(a.Node.create("<strong>").addClass("label").setContent("Notice:"));t.append(a.Node.create("<span>").addClass("message").addClass("selectable"));t.on("click",w);a.one("body").append(p.append(t));n();J&&k()});a.on("window:resized",e);a.on("ad:removed",e);a.on("theme:changed",e);a.on("Notice:show",q);a.on("Notice:hide",w)},"1.0",{requires:["Transition"]});
66YUI.add("ModalConfirm",function(a){a.ModalConfirm=function(q,w,k,x,y,v){this.modalConfirm=null;this.options={};a.ModalConfirm.prototype.init=function(d,n,m="Cancel",H="Confirm",c="green",e){e=e||{};this.options={nonDismissible:!!e.nonDismissible,cancelColor:e.cancelColor||"red",closeOnCancel:!1!==e.closeOnCancel,closeOnOk:!1!==e.closeOnOk};this.modalConfirm=a.Node.create("<div>").set("id","ModalConfirm").setStyle("display","none").setAttribute("role","dialog").setAttribute("aria-modal","true").setAttribute("aria-labelledby",
67"ModalConfirmTitle");e=a.Node.create("<div>").addClass("background");
67this.modalConfirm.append(e);if(this.options.nonDismissible)e.setStyle("cursor","default");else e.on("click",h=>{h.target&&h.target._node&&h.target._node.classList&&h.target._node.classList.contains("background")&&this.cancelHandler()});e=a.Node.create("<p>").addClass("message").addClass("selectable");e.append(a.Node.create("<span>").addClass("title").addClass("selectable").set("id","ModalConfirmTitle").setContent(d));e.append(a.Node.create("<br>"));
68e.append(a.Node.create("<span>").addClass("paragraph").addClass("selectable").setContent(n));e.append(a.Node.create("<br>"));""!=m&&(d=a.Node.create("<button>").addClass("button").addClass(this.options.cancelColor).addClass("cancel").setContent(m),d.on("click",this.cancelHandler,this),e.append(d));H=a.Node.create("<button>").addClass("button").addClass(c).addClass("ok").setContent(H);H.on("click",this.okHandler,this);e.append(H);H=a.Node.create("<span>").addClass("messageContainer");this.options.nonDismissible||
69(c=a.Node.create("<img>").addClass("close").set("src",a.wocg.buildAssetImageURL("images/closeModal.png")).set("width","32").set("height","32"),c.on("click",this.cancelHandler,this),H.append(c));this.modalConfirm.append(H.append(a.Node.create("<span>").addClass("innerContainer").append(e)));a.one("#mainContainer").append(this.modalConfirm);this.resizeHandler();a.on("window:resized",this.resizeHandler,this)};a.ModalConfirm.prototype.cancelHandler=function(d){this.options.closeOnCancel&&this.close();
70this.cb&&this.cb(!1)};a.ModalConfirm.prototype.okHandler=function(d){this.options.closeOnOk&&this.close();this.cb&&this.cb(!0)};a.ModalConfirm.prototype.show=function(d){this.modalConfirm&&(this.cb=d,this.options.nonDismissible||(this._escapeHandler=this.cancelHandler.bind(this),a.KeyboardShortcuts.on("escape",this._escapeHandler)),a.ModalScrollLock.lock(),this.modalConfirm.removeClass("modalClosing"),this.modalConfirm.setStyle("display","block"),this.resizeHandler(),a.Transition.run({node:this.modalConfirm,
71duration:220,opacity:1}))};a.ModalConfirm.prototype.close=function(){if(this.modalConfirm){this._escapeHandler&&(a.KeyboardShortcuts.detach("escape",this._escapeHandler),this._escapeHandler=null);a.detach("window:resized",this.resizeHandler,this);var d=this.modalConfirm.one(".cancel");d&&d.detach("click",this.cancelHandler,this);(d=this.modalConfirm.one(".ok"))&&d.detach("click",this.okHandler,this);a.ModalScrollLock.unlock();this.modalConfirm.addClass("modalClosing");var n=this;a.Transition.run({node:this.modalConfirm,
72duration:160,opacity:0,cb:function(){n.modalConfirm&&(n.modalConfirm.remove(!0),n.modalConfirm=null)}})}};a.ModalConfirm.prototype.resizeHandler=function(){if(this.modalConfirm){var d=this.modalConfirm.one(".messageContainer");d&&d.setStyle("top",Math.max((window.innerHeight-d.getHeight())/2,40)+"px")}};this.init(q,w,k,x,y,v)}},"1.0",{requires:["KeyboardShortcuts","Transition"]});
73YUI.add("ModalBlockReason",function(a){function q(){var k=w.filter(function(x){return"Other"!==x}).shuffle();k.push("Other");return k}var w="Rude Stalling Cheating Quitting Spamming Slow Unskilled Other".split(" ");a.ModalBlockReason=function(){this.radio=this.modal=null;a.ModalBlockReason.prototype.init=function(){this.modal=a.Node.create("<div>").set("id","ModalBlockReason").setStyle("display","none").setAttribute("role","dialog").setAttribute("aria-modal","true").setAttribute("aria-labelledby",
74"ModalBlockReasonTitle");var k=a.Node.create("<div>").addClass("background");this.modal.append(k);k.on("click",m=>{m.target&&m.target._node&&m.target._node.classList&&m.target._node.classList.contains("background")&&this.dismissHandler()});k=a.Node.create("<p>").addClass("message").addClass("selectable");k.append(a.Node.create("<span>").addClass("title").set("id","ModalBlockReasonTitle").setContent("Why did you block this player?"));k.append(a.Node.create("<br>"));k.append(a.Node.create("<span>").addClass("paragraph").setContent("Your feedback helps us keep the game fair."));
75k.append(a.Node.create("<br>"));var x=this,y=a.wocg.Theme.getCurrentThemeConfig(),v=q(),d={};v.forEach(function(m){d[m]=m+" "});this.radio=new a.Radio("blockReason",d,{dimensions:y.radioDimensions,imagePath:"images/radio/"+y.id+"/",imageBuilder:
75a.wocg.buildAssetImageURL});this.radio.addValueChangeHandler(function(m,H){x.selectHandler(H)});var n=a.Node.create("<div>").addClass("radioList");v.forEach(function(m){m=a.Node.create("<span>").addClass("reason"+m);n.append(m)});Object.forEach(this.radio.nodeMap,
76function(m,H){n.one(".reason"+m).append(H)});k.append(n);y=a.Node.create("<img>").addClass("close").set("src",a.wocg.buildAssetImageURL("images/closeModal.png")).set("width","32").set("height","32");y.on("click",this.dismissHandler,this);this.modal.append(a.Node.create("<span>").addClass("messageContainer").append(y).append(a.Node.create("<span>").addClass("innerContainer").append(k)));a.one("#mainContainer").append(this.modal);this.resizeHandler();a.on("window:resized",this.resizeHandler,this)};
77a.ModalBlockReason.prototype.selectHandler=function(k){"Other"===k?this.showOtherInput():(this.hideOtherInput(),this.close(),this.cb&&this.cb(k))};a.ModalBlockReason.prototype.showOtherInput=function(){if(!this.modal.one(".otherReasonContainer")){var k=a.Node.create("<div>").addClass("otherReasonContainer"),x=a.Node.create("<input type='text'>").set("placeholder","What happened?").setAttribute("maxlength","200"),y=a.Node.create("<span>").addClass("button").addClass("blue").setContent("Submit"),v=
78this;y.on("click",function(){v.dismissHandler()});x.on("key",function(){v.dismissHandler()},"enter");k.append(x);k.append(y);this.modal.one(".message").append(k);x.focus();this.resizeHandler()}};a.ModalBlockReason.prototype.hideOtherInput=function(){var k=this.modal.one(".otherReasonContainer");k&&(k.remove(!0),this.resizeHandler())};a.ModalBlockReason.prototype.dismissHandler=function(){var k=this.modal&&this.modal.one(".otherReasonContainer input");k=k?k.get("value").trim():"";this.close();this.cb&&
79this.cb(k?"Other":"",k)};a.ModalBlockReason.prototype.show=function(k){this.modal&&(this.cb=k,this._escapeHandler=this.dismissHandler.bind(this),a.KeyboardShortcuts.on("escape",this._escapeHandler),a.ModalScrollLock.lock(),this.modal.removeClass("modalClosing"),this.modal.setStyle("display","block"),this.resizeHandler(),a.Transition.run({node:this.modal,duration:220,opacity:1}))};a.ModalBlockReason.prototype.close=function(){a.KeyboardShortcuts.detach("escape",this._escapeHandler);a.detach("window:resized",
80this.resizeHandler,this);a.ModalScrollLock.unlock();this.modal.addClass("modalClosing");var k=this;a.Transition.run({node:this.modal,duration:160,opacity:0,cb:function(){k.modal&&(k.modal.remove(!0),k.modal=null)}})};a.ModalBlockReason.prototype.resizeHandler=function(){var k=this.modal.one(".messageContainer");k.setStyle("top",Math.max((window.innerHeight-k.getHeight())/2,40)+"px")};this.init()}},"1.0",{requires:["KeyboardShortcuts","Transition","Radio"]});
81YUI.add("ModalInput",function(a){a.ModalInput=function(q,w,k,x,y,v){this.modalInput=null;a.ModalInput.prototype.init=function(d,n,m,H,c="Cancel",e="Confirm"){this.modalInput=a.Node.create("<div>").set("id","ModalInput").setStyle("display","none").setAttribute("role","dialog").setAttribute("aria-modal","true").setAttribute("aria-labelledby","ModalInputTitle");var h=a.Node.create("<div>").addClass("background");this.modalInput.append(h);h.on("click",p=>{p.target&&p.target._node&&p.target._node.classList&&
82p.target._node.classList.contains("background")&&this.cancelHandler()});h=a.Node.create("<p>").addClass("message").addClass("selectable");h.append(a.Node.create("<span>").addClass("title").addClass("selectable").set("id","ModalInputTitle").setContent(d));h.append(a.Node.create("<br>"));h.append(a.Node.create("<span>").addClass("paragraph").addClass("selectable").setContent(n));h.append(a.Node.create("<br>"));this.inputBox=a.Node.create("<input type='text'>").set("placeholder",m).set("value",H||"");
83h.append(this.inputBox);h.append(a.Node.create("<br>"));d=a.Node.create("<button>").addClass("button").addClass("red").addClass("cancel").setContent(c);d.on("click",this.cancelHandler,this);h.append(d);e=a.Node.create("<button>").addClass("button").addClass("green").addClass("ok").setContent(e);e.on("click",this.okHandler,this);h.append(e);this.modalInput.append(a.Node.create("<span>").addClass("messageContainer").append(a.Node.create("<span>").addClass("innerContainer").append(h)));a.one("#mainContainer").append(this.modalInput);
84this.resizeHandler();a.on("window:resized",this.resizeHandler,this)};a.ModalInput.prototype.cancelHandler=function(d){this.close()};a.ModalInput.prototype.okHandler=function(d){this.close();this.cb(this.inputBox.get("value"))};a.ModalInput.prototype.show=function(d){this.modalInput&&(this.cb=d,this._escapeHandler=this.cancelHandler.bind(this),a.KeyboardShortcuts.on("escape",this._escapeHandler),a.ModalScrollLock.lock(),this.modalInput.removeClass("modalClosing"),this.modalInput.setStyle("display",
85"block"),this.resizeHandler(),a.Transition.run({node:this.modalInput,duration:220,opacity:1}),this.inputBox.on("keydown",this.keyDownHandler,this),this.inputBox.focus(),this.inputBox.select())};a.ModalInput.prototype.keyDownHandler=function(d){13===d.keyCode?this.okHandler():27===d.keyCode&&this.inputBox.blur()};a.ModalInput.prototype.close=function(){a.KeyboardShortcuts.detach("escape",this._escapeHandler);a.detach("window:resized",this.resizeHandler,this);this.modalInput.one(".cancel").detach("click",
86this.cancelHandler,this);this.modalInput.one(".ok").detach("click",this.okHandler,this);a.ModalScrollLock.unlock();this.modalInput.addClass("modalClosing");var d=this;a.Transition.run({node:this.modalInput,duration:160,opacity:0,cb:function(){d.modalInput&&(d.modalInput.remove(!0),d.modalInput=null)}});this.inputBox.detach("keydown",this.keyDownHandler,this)};a.ModalInput.prototype.resizeHandler=function(){var d=this.modalInput.one(".messageContainer");d.setStyle("top",Math.max((window.innerHeight-
87d.getHeight())/4,40)+"px")};this.init(q,w,k,x,y,v)}},"1.0",{requires:["KeyboardShortcuts","Transition"]});
88YUI.add("ModalPlayerProfile",function(a){function q(c){c&&c.userid&&w(c)}function w(c){d=c.userid;n=c.username||"Player";m=!0===c.isLiked;v=a.Node.create("<div>").set("id","ModalPlayerProfile").setStyle("display","none").setAttribute("role","dialog").setAttribute("aria-modal","true").setAttribute("aria-label","Player profile");var e=a.Node.create("<div>").addClass("background");v.append(e);e.on("click",function(S){S.target&&S.target._node&&S.target._node.classList&&S.target._node.classList.contains("background")&&
89x()});e=a.Node.create("<div>").addClass("profileContent");var h=a.Node.create("<div>").addClass("profileHeader"),p=a.Node.create("<div>").addClass("profileAvatarContainer"),t=a.wocg.User.getUseLegacyAvatars();t=a.wocg.buildAssetImageURL("pieces/avatar/"+(t?"legacy":"classic")+"/"+(c.avatar||"player1")+(t?".png":".svg"));t=a.Node.create("<img>").addClass("profileAvatar").set("src",t).set("alt","Avatar");p.append(t);h.append(p);p=a.Node.create("<div>").addClass("profileInfo");t=a.Node.create("<div>").addClass("profileUsernameRow");
90var B=a.Node.create("<span>").addClass("profileUsername").setContent(a.Escape.html(n));t.append(B);p.append(t);t=a.Node.create("<div>").addClass("profileStatusRow");B=c.online?"online":"offline";B=a.Node.create("<div>").addClass("onlineIndicator").addClass(B);t.append(B);c=c.online?"Online":"Offline";c=a.Node.create("<span>").addClass("statusText").setContent(c);t.append(c);p.append(t);h.append(p);var F=a.Node.create("<button>").addClass("likeBtn").addClass("button");k(F);F.on("click",function(){d&&
91(m?(a.wocg.Comm.send("user.unrated.player",{ratedUserid:parseInt(d,10),type:"like"}),a.wocg.trackEvent("player_unrated",{type:"like",source:"user_profile"}),m=!1):(a.wocg.Comm.send("user.rated.player",{ratedUserid:parseInt(d,10),type:"like"}),a.wocg.trackEvent("player_rated",{type:"like",source:"user_profile"}),m=!0),k(F),a.fire("friendsListCache:reset"))});h.append(F);e.append(h);h=a.Node.create("<div>").addClass("profileSeparator");e.append(h);h=a.Node.create("<div>").addClass("profileGameStats");
92c=a.Node.create("<div>").addClass("noGameStats").setContent("Loading statistics...");h.append(c);e.append(h);h=a.Node.create("<img>").addClass("close").set("src",a.wocg.buildAssetImageURL("images/closeModal.png")).set("width","32").set("height","32");h.on("click",x);c=a.Node.create("<span>").addClass("messageContainer");c.append(h);c.append(a.Node.create("<span>").addClass("innerContainer").append(e));v.append(c);a.one("#mainContainer").append(v);y();a.on("window:resized",y);H=x;a.KeyboardShortcuts.on("escape",
93H);a.ModalScrollLock.lock();v.removeClass("modalClosing");v.setStyle("display","block");y();a.Transition.run({node:v,duration:220,opacity:1});a.wocg.Comm.send("user.profile",{profileUserid:parseInt(d,10)})}function k(c){m?(c.removeClass("green").addClass("red"),c.setContent("Unlike")):(c.removeClass("red").addClass("green"),c.setContent("Like"))}function x(){v&&(H&&(a.KeyboardShortcuts.detach("escape",H),H=null),a.detach("window:resized",y),a.ModalScrollLock.unlock(),v.addClass("modalClosing"),a.Transition.run({node:v,
94duration:160,opacity:0,cb:function(){v&&(v.remove(!0),v=null)}}),n=d=null)}function y(){if(v){var c=v.one(".messageContainer");c&&c.setStyle("top",Math.max((window.innerHeight-c.getHeight())/2,40)+"px")}}var v=null,d=null,n=null,m=!1,H=null;a.ModalPlayerProfile={show:w,close:x};a.on("domready",function(){a.on("ModalPlayerProfile:show",q)});a.on("comm:user.profile",function(c){if(v&&c)try{var e=v.one(".onlineIndicator"),h=v.one(".statusText");if(e&&h){var p=[];c.online?(e.removeClass("offline").addClass("online"),
95p.push("Online")):(e.removeClass("online").addClass("offline"),c.lastSeen?p.push(utils.formatTimeAgo(c.lastSeen)):p.push("Offline"));c.memberSince&&p.push("Joined "+a.DataType.Date.format(new Date(c.memberSince),{format:"%b %Y"}));h.setContent(p.join(" · "))}var t=v.one(".profileGameStats");if(t)if(t.setContent(""),c.gameStats&&0<Object.keys(c.gameStats).length)Object.keys(c.gameStats).sort(function(S,A){return"all"===S?-1:"all"===A?1:0}).forEach(function(S){var A=c.gameStats[S],M="all"===S?"All":
96C.GAME_NAMES[S]||S;S=a.Node.create("<div>").addClass("gameStatRow");M=a.Node.create("<span>").addClass("gameName").setContent(M+":");S.append(M);M=[A.completed+" completed"];void 0!==A.winPct&&M.push(A.winPct+"% won");void 0!==A.lossPct&&M.push(A.lossPct+"% lost");A.elo&&M.push(A.elo+" ELO");A=M.join(" · ");A=a.Node.create("<span>").addClass("gameStatText").setContent(A);S.append(A);t.append(S)});else{var B=a.Node.create("<div>").addClass("noGameStats").setContent("No game statistics available");
97t.append(B)}if(void 0!==c.isLiked){m=c.isLiked;var F=v.one(".likeBtn");F&&k(F)}y()}catch(S){console.error("profileDataHandler error:",S)}})},"1.0",{requires:"wocg wocg.Comm escape datatype-date-format KeyboardShortcuts Transition".split(" ")});
98YUI.add("ModalTablePreview",function(a){function q(J){J&&(J.privateTableName||J.forTable)&&w(J)}function w(J){h&&H(!0);p=J.gameid||null;t=J.privateTableName||null;B=J.forTable||null;F=J.practiceExemptReason||null;A=null;var G=J.friendName||null;h=a.Node.create("<div>").set("id","ModalTablePreview").setStyle("display","none").setAttribute("role","dialog").setAttribute("aria-modal","true").setAttribute("aria-labelledby","ModalTablePreviewTitle");J=a.Node.create("<div>").addClass("background");h.append(J);
99J.on("click",function(L){L.target&&L.target._node&&L.target._node.classList&&L.target._node.classList.contains("background")&&H()});J=a.Node.create("<div>").addClass("modalContent");var E=a.Node.create("<div>").addClass("modalHeader");G=G?"Join "+a.Escape.html(G)+"'s game":"Table preview";E.append(a.Node.create("<div>").addClass("modalTitle").set("id","ModalTablePreviewTitle").setContent(G));E.append(a.Node.create("<div>").addClass("modalDescription").setContent("Select a seat or click the join button."));
100J.append(E);G=a.Node.create("<div>").addClass("loadingContainer");G.append(a.Node.create("<div>").addClass("loadingText").setContent("Loading table..."));J.append(G);G=a.Node.create("<div>").addClass("tableContainer").setStyle("display","none");J.append(G);G=a.Node.create("<img>").addClass("close").set("src",a.wocg.buildAssetImageURL("images/closeModal.png")).set("width","32").set("height","32");G.on("click",H);E=a.Node.create("<span>").addClass("messageContainer");E.append(G);E.append(a.Node.create("<span>").addClass("innerContainer").append(J));
101h.append(E);a.one("#mainContainer").append(h);c();a.on("window:resized",c);a.ModalScrollLock.lock();h.removeClass("modalClosing");h.setStyle("display","block");c();a.Transition.run({node:h,duration:220,opacity:1});a.KeyboardShortcuts.on("escape",H);k()}function k(){if(!S){S=!0;var J={};B&&(J.forTable=B);e.send("table.listings.start",J);M=setTimeout(function(){M=null;h&&!A&&n()},C.REQUEST_TIMEOUT)}}function x(){S&&(S=!1,e.send("table.listings.stop",{}))}function y(J){if(h&&J&&J.listings&&!A){var G=
102null,E=null;J.listings.forEach(function(L){G||p&&L.gameid!==p||L.tables.forEach(function(T){G||(B&&String(T.id)===String(B)?(G=T,E=L.gameid):t&&T.ptn===t&&(G=T,E=L.gameid))})});G?(A=G,d(E||p,G),x()):J.init&&n()}}function v(){S=!1;h&&!A&&n()}function d(J,G){if(h){var E=h.one(".loadingContainer"),L=h.one(".tableContainer"),T=h.one(".errorContainer");E&&E.setStyle("display","none");T&&T.setStyle("display","none");L&&(L.setStyle("display","block"),L.setContent(""),G&&G.started&&!G.startTime&&(G.startTime=
103Date.now()),J=a.wocg.TableListingBuilder.create(J,G,{showGameName:!0,onJoinClick:function(ma,ea){ma.stopPropagation();m(ea,null)},onSeatClick:function(ma,ea){ma.stopPropagation();ma=ma.currentTarget.getAttribute("class");var ba=null;if(ma){var X=ma.indexOf("playernumber");-1<X&&(ba=X+12,ba=+ma.substring(ba,ba+1))}m(ea,ba)}}),L.append(J));c()}}function n(){if(h){var J=h.one(".loadingText");J&&J.setContent("This game has ended");x();c()}}function m(J,G){var E=J.getData("gameid"),L=J.getData("tableid"),
104T=J.getData("privateTableName"),ma=J.getData("playerCount"),ea=a.wocg.Table.getCurrentTable();a.wocg.TableBar.leaveWarning(ea,function(){ea&&(a.wocg.goToUrl("/"),a.fire("tableBar:leaveTableLinkClicked"));setTimeout(function(){var ba={gameid:E,command:"findTable"};ba.defaultOptions=0<ma;L.includes("empty-ranked")?(ba.ranked=!0,ba.create=!0):L.includes("empty-")?(ba.ranked=!1,ba.create=!0):ba.forTable=L;T&&""!==T&&T!==C.ANONYMOUS_TABLE_NAME&&(ba.privateTableName=T);null!==G&&(ba.forPlayer=G);F&&(ba.practiceExemptReason=
105F);a.fire("menu:clicked",ba,!1);H()},ea?640:0)})}
105function H(J){h&&(M&&(clearTimeout(M),M=null),x(),a.detach("window:resized",c),a.KeyboardShortcuts.detach("escape",H),a.ModalScrollLock.unlock(),J?h&&(h.remove(!0),h=null):(h.addClass("modalClosing"),a.Transition.run({node:h,duration:160,opacity:0,cb:function(){h&&(h.remove(!0),h=null)}})),A=F=B=t=p=null)}function c(){if(h){var J=h.one(".messageContainer");J&&J.setStyle("top",Math.max((window.innerHeight-J.get("offsetHeight"))/2,40)+"px")}}var e=a.wocg.Comm,
106h=null,p=null,t=null,B=null,F=null,S=!1,A=null,M=null;a.ModalTablePreview={show:w,close:H};a.on("domready",function(){a.on("ModalTablePreview:show",q);a.on("comm:table.listings",y);a.on("comm:table.listings.finished",v)})},"1.0",{requires:"wocg wocg.Comm wocg.Table wocg.TableBar wocg.TableListingBuilder KeyboardShortcuts Transition".split(" ")});
107YUI.add("ModalInvitePlayers",function(a){function q(G){G&&G.tableHash&&w(G)}function w(G){function E(){utils.copyToClipboard(B,function(){ma.setContent("Copied");setTimeout(function(){ma.setContent("Copy")},2E3)},function(){ma.setContent("Copy failed");setTimeout(function(){ma.setContent("Copy")},2E3)})}h=G.tableHash;p=(G=a.wocg.Table.getCurrentTable())?G.tableid:null;B=window.location.origin+"?table="+encodeURIComponent(h);t=B.replace(/^https?:\/\//,"");e=a.Node.create("<div>").set("id","ModalInvitePlayers").setStyle("display",
108"none").setAttribute("role","dialog").setAttribute("aria-modal","true").setAttribute("aria-label","Invite players");G=a.Node.create("<div>").addClass("background");e.append(G);G.on("click",function(ba){ba.target&&ba.target._node&&ba.target._node.classList&&ba.target._node.classList.contains("background")&&H()});G=a.Node.create("<div>").addClass("inviteContent");var L=a.Node.create("<h3>").addClass("inviteTitle").setContent("Invite players");G.append(L);L=a.Node.create("<p>").addClass("inviteExplainer").setContent("Share the link with anyone or invite friends who are online.");
109G.append(L);L=a.Node.create("<div>").addClass("inviteLinkRow");var T=a.Node.create("<input>").addClass("inviteLinkInput").set("type","text").set("readonly",!0).set("value",t);L.append(T);var ma=a.Node.create("<button>").addClass("copyBtn").setContent("Copy");ma.on("click",E);T.on("click",E);L.append(ma);G.append(L);L=a.Node.create("<div>").addClass("inviteFriendsSection");T=a.Node.create("<div>").addClass("inviteFriendsList");var ea=a.Node.create('<div class="inviteFriendsEmpty">Loading...</div>');
110T.append(ea);L.append(T);G.append(L);L=a.Node.create("<img>").addClass("close").set("src",a.wocg.buildAssetImageURL("images/closeModal.png")).set("width","32").set("height","32");L.on("click",H);T=a.Node.create("<span>").addClass("messageContainer");T.append(L);T.append(a.Node.create("<span>").addClass("innerContainer").append(G));e.append(T);a.one("#mainContainer").append(e);c();a.on("window:resized",c);J=H;a.KeyboardShortcuts.on("escape",J);a.ModalScrollLock.lock();e.removeClass("modalClosing");
111e.setStyle("display","block");c();a.Transition.run({node:e,duration:220,opacity:1});a.on("comm:friend.list",k);a.on("comm:invite.sent",n);a.on("comm:friend.status",x);a.on("comm:friend.online",y);a.on("comm:friend.offline",v);a.on("comm:invite.broadcast",m);A=C.SOCIAL_PAGE_SIZE;M=!0;a.wocg.Comm.send("friend.list",{limit:A,offset:0})}function k(G){e&&(M=!1,F=G.people||[],S=G.hasMore||!1,d())}function x(G){if(e&&F){for(var E=0;E<F.length;E++)if(F[E].userid===G.userid){G.gameid&&G.tableid?(F[E].gameid=
112G.gameid,F[E].tableid=G.tableid,void 0!==G.playing&&(F[E].playing=G.playing),void 0!==G.solo&&(F[E].solo=G.solo)):(delete F[E].gameid,delete F[E].tableid,delete F[E].playing,delete F[E].solo);break}d()}}function y(G){if(e&&F){for(var E=!1,L=0;L<F.length;L++)if(F[L].userid===G.userid){E=!0;F[L].online=!0;F[L].username=G.username;F[L].avatar=G.avatar;F[L].isFriend=!!G.isFriend;G.gameid?(F[L].gameid=G.gameid,F[L].tableid=G.tableid,F[L].playing=!!G.playing,F[L].solo=!!G.solo,G.startedAt?F[L].startedAt=
113G.startedAt:delete F[L].startedAt):(delete F[L].gameid,delete F[L].tableid,delete F[L].playing,delete F[L].solo,delete F[L].startedAt);break}E||(E={userid:G.userid,username:G.username,avatar:G.avatar,online:!0,isFriend:!!G.isFriend},G.gameid&&(E.gameid=G.gameid,E.tableid=G.tableid,E.playing=!!G.playing,E.solo=!!G.solo,G.startedAt&&(E.startedAt=G.startedAt)),F.push(E));d()}}function v(G){if(e&&F){for(var E=0;E<F.length;E++)if(F[E].userid===G.userid){F[E].online=!1;delete F[E].gameid;delete F[E].tableid;
114delete F[E].playing;delete F[E].solo;delete F[E].startedAt;break}d()}}function d(){if(e){var G=e.one(".inviteFriendsList");if(G){G.setContent("");var E=a.wocg.Table.getCurrentTable(),L=E?E.tableid:null,T=a.wocg.User.getAvailableSeats(E),ma=!E||E.isTableFull();E=F.filter(function(ea){return ea.online&&ea.tableid!==L});E.sort(function(ea,ba){if(ea.isFriend&&!ba.isFriend)return-1;if(!ea.isFriend&&ba.isFriend)return 1;var X=ea.gameid&&ea.tableid&&ea.playing,I=ba.gameid&&ba.tableid&&ba.playing;ea=ea.gameid&&
115ea.tableid&&!ea.playing;ba=ba.gameid&&ba.tableid&&!ba.playing;return X&&!I?1:!X&&I?-1:ea&&!ba?1:!ea&&ba?-1:0});if(0===E.length||ma||0===T)T=a.Node.create('<div class="inviteFriendsEmpty">'+(ma||0===T?"No available seats":"No online friends to invite")+"</div>"),G.append(T),(T=e.one(".inviteFriendsSection"))&&T.setStyle("display","");else if((T=e.one(".inviteFriendsSection"))&&T.setStyle("display",""),E.forEac
115h(function(ea){var ba=a.wocg.User.getUseLegacyAvatars();ba=a.wocg.buildAssetImageURL("pieces/avatar/"+
116(ba?"legacy":"classic")+"/"+ea.avatar+(ba?".png":".svg"));var X=utils.buildFriendStatusText(ea,C,a.Escape.html,{showFriend:!0,currentTableId:p}),I=ea.online?"online":"offline",O=a.wocg.User.isUserInvited(ea.userid,p),fa=O?" invited":"";O=O?" disabled":"";ea='<div class="friendItem" data-userid="'+ea.userid+'" data-username="'+a.Escape.html(ea.username)+'"><img class="friendAvatar" src="'+ba+'" alt="" /><div class="friendInfo"><div class="friendName">'+a.Escape.html(ea.username)+'</div><div class="friendStatus"><div class="onlineIndicator '+
117I+'"></div><span>'+X+'</span></div></div><div class="friendActions"><button class="friendInviteBtn'+fa+'" data-userid="'+ea.userid+'"'+O+">"+a.wocg.User.INVITE_ICON_SVG+a.wocg.User.INVITE_SUCCESS_ICON_SVG+"</button></div></div>";ea=a.Node.create(ea);G.append(ea)}),G.all(".friendInviteBtn").on("click",function(ea){ea=ea.currentTarget;var ba=parseInt(ea.getAttribute("data-userid"),10);if(!a.wocg.User.isUserInvited(ba,L)){var X=a.wocg.Table.getCurrentTable();!X||X.isTableFull()?a.fire("Notice:show",
118{message:"No available seats.",type:"warning"}):(X=a.wocg.User.getAvailableSeats(X),0>=X?a.fire("Notice:show",{message:"No available seats.",type:"warning"}):a.wocg.User.getInvitedCount(L)>=X*C.MAX_INVITES_PER_SEAT_MULTIPLIER?a.fire("Notice:show",{message:"Can't invite more players. Limit reached.",type:"warning"}):(a.wocg.Comm.send("invite.send",{friendUserid:ba}),a.wocg.User.addInvitedUser(ba,L),ea.addClass("invited"),ea.set("disabled",!0),a.CustomTooltip.showOnHover(ea,"Invite sent")))}}),G.all(".friendInviteBtn").each(function(ea){var ba=
119ea.hasClass("invited");a.CustomTooltip.showOnHover(ea,ba?"Invite sent":"Invite to table")}),S&&(T=a.Node.create('<div class="loadMoreContainer"><button class="loadMoreBtn">Load more</button></div>'),E=T.one(".loadMoreBtn"),ma=function(ea){"touchend"===ea.type&&ea.preventDefault();ea.stopPropagation();!M&&S&&!M&&S&&(A=Math.max(A||0,F?F.length:0),A+=C.SOCIAL_PAGE_SIZE,M=!0,a.wocg.Comm.send("friend.list",{limit:A,offset:0}))},G.append(T),E.on("click",ma),a.wocg.isTouchDevice()))E.on("touchend",ma);c()}}}
120function n(G){e&&G&&!G.success&&(a.wocg.User.removeInvitedUser(G.friendUserid),a.fire("Notice:show",{message:G.message||"Could not send invite.",type:"error"}),d())}function m(G){e&&G&&d()}function H(){e&&(J&&(a.KeyboardShortcuts.detach("escape",J),J=null),a.detach("comm:friend.list",k),a.detach("comm:invite.sent",n),a.detach("comm:friend.status",x),a.detach("comm:friend.online",y),a.detach("comm:friend.offline",v),a.detach("comm:invite.broadcast",m),a.detach("window:resized",c),a.ModalScrollLock.unlock(),
121e.addClass("modalClosing"),a.Transition.run({node:e,duration:160,opacity:0,cb:function(){e&&(e.remove(!0),e=null)}}),B=t=p=h=null,F=[],S=!1,A=0,M=!1)}function c(){if(e){var G=e.one(".messageContainer");G&&G.setStyle("top",Math.max((window.innerHeight-G.getHeight())/2,40)+"px")}}var e=null,h=null,p=null,t=null,B=null,F=[],S=!1,A=0,M=!1,J=null;a.ModalInvitePlayers={show:w,close:H};a.on("domready",function(){a.on("ModalInvitePlayers:show",q)})},"1.0",{requires:"wocg wocg.Comm wocg.User wocg.Table escape CustomTooltip KeyboardShortcuts Transition".split(" ")});
122YUI.add("ImagePreloader",function(a){function q(p){e[p]?v.unshift(p):v.push(p)}function w(){for(;0<v.length&&6>d.length;){var p=v.shift();d.push(p);k(p)}}function k(p){var t=a.Node.create("<img>"),B=!1,F=null,S=function(A){B||(B=!0,clearTimeout(F),x(p,A))};t.on("load",function(){S(!1)});t.on("error",function(){S(!0)});t.on("abort",function(){S(!0)});F=setTimeout(function(){B||(B=!0,d.remove(p),c[p]=(c[p]||0)+1,3>c[p]&&q(p),w())},3E4);e[p]&&t.setAttribute("fetchpriority","high");t.set("src",p)}function x(p,
123t){d.remove(p);t?"number"===typeof H[p]?(H[p]++,4>H[p]&&q(p)):(H[p]=1,q(p)):(delete H[p],delete c[p],n.push(p),"undefined"!==typeof m[p]&&(m[p].forEach(function(F){F(p)}),delete m[p]));t=Object.keys(H).length;if(0<t){h=!0;var B=1===t?"":"s";99<t&&(t=" > 99");a.wocg.Table.showTableError("Loading "+t+" Image"+B+" Failed",8E3)}else h=!1;w()}var y=0,v=[],d=[],n=[],m={},H={},c={},e={},h=!1;a.ImagePreloader={preload:function(p,t,B){p=Array.toArray(p);var F=!0;p.forEach(function(S,A){B&&(e[S]=!0);n.contains(S)||
124(F=!1,t&&A===p.length-1&&("undefined"===typeof m[S]&&(m[S]=[]),m[S].push(t)),v.contains(S)||d.contains(S)||(y++,q(S),w()))});if(F&&t)return t(p)},getNetworkFailure:function(){return h}};a.on("domready",function(){})},"1.0",{requires:[]});
125YUI.add("AdWidget",function(a){function q(r,D,N){window.__wocgSetAdBlockStatus&&window.__wocgSetAdBlockStatus(r,D,N)}function w(){var r=document.documentElement;return r&&r.clientWidth?r.clientWidth:window.innerWidth}function k(){var r=document.documentElement;return r&&r.clientHeight?r.clientHeight:window.innerHeight}function x(){document&&document.body&&(document.body.classList.remove("adthrive-cat-solitaire"),document.body.classList.remove("raptiveAdsEnabled"))}function y(r){window.__raptiveAdsSuppressed=
126!!r;document&&document.body&&(document.body.classList.toggle("adthrive-disable-all",!!r),document.body.classList.toggle("adthrive-disable-video",!!r),r&&(document.body.classList.remove("topMobileAdVisible"),document.body.classList.remove("stickyFooterAdVisible")))}function v(){y(!0);window.__disableRaptiveAds?window.__disableRaptiveAds():(window.adthrive=window.adthrive||{},window.adthrive.cmd=window.adthrive.cmd||[],window.adthrive.cmd.push(function(){window.adthrive&&"function"===typeof window.adthrive.disableAds&&
127window.adthrive.disableAds();window.adthrive&&"function"===typeof window.adthrive.disablePlaylistPlayers&&window.adthrive.disablePlaylistPlayers()}))}function d(r){y(!!r);window.__raptiveAdsAllowed=!0;r||a.fire("ads:loadRequested");window.__loadRaptiveAdsIfAllowed&&window.__loadRaptiveAdsIfAllowed({disableAds:!!r})}function n(){if(!window.__adsTrackingSetup){window.__adsTrackingSetup=!0;window.displayAdsRendered=window.displayAdsRendered||0;window.displayAdsRenderedBySlot=window.displayAdsRenderedBySlot||
128{};window.videoAdsRendered=window.videoAdsRendered||0;window.bannerAdsLoadedInInterval=window.bannerAdsLoadedInInterval||0;window.bannerAdsLoadedInIntervalBySlot=window.bannerAdsLoadedInIntervalBySlot||{};var r=0,D=setInterval(function(){var N=window.googletag&&"function"===typeof window.googletag.pubads?window.googletag.pubads():null;N&&"function"===typeof N.addEventListener?(N.addEventListener("slotRenderEnded",function(P){var ca="";P&&P.slot&&P.slot.getSlotElementId&&(ca=P.slot.getSlotElementId());
129if(!P||!0!==P.isEmpty){window.__wocgFirstAdMs||(window.__wocgFirstAdMs=Math.round(performance.now()));window.displayAdsRendered+=1;window.displayAdsRenderedBySlot[ca]=(window.displayAdsRenderedBySlot[ca]||0)+1;window.bannerAdsLoadedInInterval+=1;var xa=(ca||"").replace(/[^a-zA-Z0-9]+/g,"_").replace(/^_+|_+$/g,"");
129xa&&(xa="loadedBannerAdsInIntervalBySlot_"+xa,window.bannerAdsLoadedInIntervalBySlot[xa]=(window.bannerAdsLoadedInIntervalBySlot[xa]||0)+1);f.push({t:Date.now(),slot:ca,creativeId:P.creativeId||
130null,lineItemId:P.lineItemId||null,advertiserId:P.advertiserId||null,campaignId:P.campaignId||null,size:P.size?String(P.size):null});8<f.length&&f.shift()}}),clearInterval(D)):!document.prerendering&&60<=++r&&clearInterval(D)},1E3)}}function m(){return new Promise(function(r){try{var D=document.createElement("div");D.className="ads ad-banner ad-container adsbox adunit ad-slot advertisement";D.style.cssText="position:absolute;left:-9999px;top:-9999px;width:1px;height:1px;";document.body.appendChild(D);
131requestAnimationFrame(function(){var N=window.getComputedStyle(D);N="none"===N.display||"hidden"===N.visibility||"0"===N.opacity||0===D.clientHeight||0===D.clientWidth;D.remove();r(!!N)})}catch(N){r(!1)}})}function H(){0<a.wocg.User.getSiteSupporterLevel()||ea()?q(!1,"not_applicable","ads_not_shown"):ta||(ta=!0,window.__wocgGetAdBlockStatus&&window.__wocgGetAdBlockStatus(),m().then(function(r){0<a.wocg.User.getSiteSupporterLevel()||ea()?q(!1,"not_applicable","ads_not_shown"):r?q(!0,"blocked","bait_hidden"):
132q(!1,"clear","bait_visible")}))}function c(){var r=a.one("#ad");if(!document||!document.body||!r||ea())return document&&document.body&&document.body.classList.remove("topMobileAdVisible"),document&&document.body&&document.body.classList.remove("stickyFooterAdVisible"),null;var D=a.wocg.getAdSize()[0],N=a.wocg.getAdSize()[1],P=a.one(".helpBox"),ca=a.wocg.showTopAd(),xa=a.wocg.getBottomAdOffset();ca?(r.removeClass("mobile"),r.addClass("mobileTop"),document.body.classList.add("topMobileAdVisible"),document.body.classList.toggle("stickyFooterAdVisible",
1330<xa),P&&P.setStyle("padding-bottom",xa+"px")):(r.removeClass("mobile"),r.removeClass("mobileTop"),document.body.classList.remove("topMobileAdVisible"),document.body.classList.remove("stickyFooterAdVisible"),P&&P.setStyle("padding-bottom","0px"));P=r.getComputedStyleAsNumber("top");P=isNaN(P)?null:Math.max(k()-P-a.wocg.viewportGutter(),0);null!==P?(N=Math.min(N,P),r.setStyle("maxHeight",P+"px")):r.setStyle("maxHeight","");r.setStyle("width",D+"px").setStyle("height",N+"px");ca?document.body.style.setProperty("--top-ad-height",
134N+"px"):document.body.style.removeProperty("--top-ad-height");return{adWidth:D,adHeight:N,shouldShowTopAd:ca,shouldShowStickyFooterAd:a.wocg.showStickyFooterAd()}}function e(r,D){var N=l[window.__wocgAdLayout];return N&&300<=r?N.map(function(P){return{placementName:P,slotId:P}}):300==r?[{placementName:"worldofcardgamescom_medrec_1",slotId:"worldofcardgamescom_medrec_1"}]:336==r?580<=D?[{placementName:"worldofcardgamescom_medrec_1",slotId:"worldofcardgamescom_medrec_1"},{placementName:"worldofcardgamescom_medrec_2",
135slotId:"worldofcardgamescom_medrec_2"}]:250<=D?[{placementName:"worldofcardgamescom_medrec_1",slotId:"worldofcardgamescom_medrec_1"}]:[]:[{placementName:"worldofcardgamescom_sidewall_right",slotId:"worldofcardgamescom_sidewall_right"}]}function h(){O=null;fa&&(clearTimeout(fa),fa=null)}function p(r){if(!r)return!1;try{var D=new URL(r,window.location.href)}catch(N){return!1}if("http:"!==D.protocol&&"https:"!==D.protocol)return!1;r=D.hostname;D=window.location.hostname;return!(r===D||r.endsWith("."+
136D)||D.endsWith("."+r)||"online-solitaire.com"===r||r.endsWith(".online-solitaire.com"))}function t(r){var D;a:{for(D=r.target;D&&D!==document;){if(D.tagName&&"A"===D.tagName.toUpperCase()&&D.getAttribute("href"))break a;D=D.parentNode}D=null}var N;(N=!D)||(N=(D.getAttribute("target")||"").toLowerCase(),N=r.defaultPrevented||0!==r.button||r.altKey||r.ctrlKey||r.metaKey||r.shiftKey||N&&"_self"!==N);N?h():(r=D.href||D.getAttribute("href"),p(r)?(h(),O=r,fa=setTimeout(h,1E3)):h())}function B(r){return r&&
137r.closest?!!r.closest("#ad, #raptive-sticky-footer-ad, #RaptiveRightRailVideoAdContainer, .raptive-display-ad, iframe[id^='google_ads_iframe']"):!1}function F(){try{var r=JSON.parse(localStorage.getItem("wocgRedirectIncidents")||"[]");return Array.isArray(r)?r.filter(function(D){return D&&D.t&&12096E5>Date.now()-D.t}):[]}catch(D){return[]}}function S(r){try{localStorage.setItem("wocgRedirectIncidents",JSON.stringify(r.slice(-5)))}catch(D){}}function A(r){var D=F();D.forEach(function(N){N.t===r&&(N.conf=
1381)});S(D)}function M(){document.addEventListener("pointerdown",function(r){r.isTrusted&&(ua=Date.now(),qa=B(r.target)?"ad":"page")},!0);document.addEventListener("keydown",function(r){r.isTrusted&&(ua=Date.now(),qa="page")},!0);window.addEventListener("blur",function(){B(document.activeElement)&&(na=Date.now())});document.addEventListener("visibilitychange",function(){"hidden"===document.visibilityState&&(b=Date.now())});window.addEventListener("pagehide",function(){var r=a.wocg.Table.getCurrentTable();
139if(r&&r.gameStarted&&!r.tutorial&&!r.gameOver&&!0!==window.confirmedLeave&&("hidden"!==document.visibilityState||b&&!(2E3<Date.now()-b))){r=null===ua?-1:Date.now()-ua;var D=null===na?-1:Date.now()-na;var N=O?"clicked-link":0<=D&&8E3>D?"ad-interaction":0<=r&&8E3>r?"recent-gesture":"no-gesture";var P=Date.now();try{sessionStorage.setItem("wocgMidGameExit",JSON.stringify({t:P,classification:N,creatives:f}))}catch(xa){}if("no-gesture"===N||"ad-interaction"===N){var ca=F();ca.push({t:P,c:N});S(ca)}a.wocg.trackEvent("MidGameExit",
140{classification:N,gestureAgeMs:r,gestureZone:qa,adFocusAgeMs:D,destinationURL:O,userActivation:navigator.userActivation?navigator.userActivation.isActive:null,secondsSinceLoad:Math.round(performance.now()/1E3),recentCreatives:JSON.stringify(f)})}});window.addEventListener("pageshow",function(r){var D=null;try{D=JSON.parse(sessionStorage.getItem("wocgMidGameExit")),sessionStorage.removeItem("wocgMidGameExit")}catch(P){}if(D&&D.t){var N=Date.now()-D.t;0>N||3E5<N||(A(D.t),a.wocg.trackEvent("MidGameExitReturned",
141{via:r.persisted?"bfcache":"load",awaySeconds:Math.round(N/1E3),exitClassification:D.classification,referrer:document.referrer||"",recentCreatives:JSON.stringify(D.creatives||[])}))}})}function J(r){r=r||{};if(!a.wocg.shouldHideSubscriptionLinks||!a.wocg.shouldHideSubscriptionLinks())if(a.wocg.User.isRegistered()){var D=a.wocg.User.getUsername();(new a.ModalConfirm("Premium membership","Premium membership hides ads on World of Card Games. Your subscription will be linked to your username: <strong>"+
142D+"</strong>. Make sure you're logged in to the correct account before subscribing.","","Subscribe")).show(function(N){if(N){N=(N=a.one("#rahlc"))?N.getAttribute("data-payment-link-url")||"":"";var P=a.wocg.User.getUsername();P=P?"usernameb64_"+E(P):"";if(N&&P)try{var ca=new URL(N,window.location.href);ca.searchParams.set("client_reference_id",P);var xa=ca.toString()}catch(Ba){xa=""}else xa="";if(xa){if("function"===typeof r.onConfirmed)r.onConfirmed();window.confirmedLeave=!0;window.location.href=
143xa}else a.fire("Notice:show",{message:"Subscription link is not configured yet.",type:"error"})}})}else a.fire("Notice:show",{message:"Login or register to hide ads.",type:"warning"})}function G(r){r&&r.preventDefault&&r.preventDefault();J()}function E(r){r=encodeURIComponent(r).replace(/%([0-9A-F]{2})/g,function(D,N){return String.fromCharCode(parseInt(N,16))});return btoa(r).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/g,"")}function L(){if(window.history&&window.history.replaceState){var r=
144a.wocg.createURLSearchParams(window.location.search||"");r.delete("premium");r=r.toString();window.history.replaceState(window.history.state||{},"",window.location.pathname+(r?"?"+r:"")+window.location.hash)}}function T(r){I||"success"!==(a.wocg.createURLSearchParams(window.location.search||"").get("premium")||"").toLowerCase()||(r=r&&"undefined"!==typeof r.siteSupporterLevel?r.siteSupporterLevel:a.wocg.User.getSiteSupporterLevel(),I=!0,0<r?(L(),r=new a.ModalConfirm("You're premium now","Thanks for supporting World of Card Games. Premium is active on your account, and ads are hidden.",
145"","OK"),r.show()):(r=new a.ModalConfirm("Premium is almost ready","Thanks for subscribing. Premium has not shown up on your account yet. This usually takes a few seconds. Reload the site to check again.","","Reload"),r.show(function(){window.confirmedLeave=!0;window.location.reload()})))}function ma(r){r=r||{};0<r.siteSupporterLevel&&q(!1,"not_applicable","ads_not_shown");0<r.siteSupporterLevel?(X=!0,a.one("#ad")&&a.one("#ad").remove(),a.one("body").removeClass("adsVisible"),document&&document.body&&
146document.body.classList.remove("topMobileAdVisible"),document&&document.body&&document.body.classList.remove("stickyFooterAdVisible"),a.fire("ad:removed"),v(),d(!0)):ea()?d(!0):d(!1);T(r)}function ea(){if(window){var r=a.wocg.createURLSearchParams(window.location.search||""),D="true"===(r.get("showAds")||"").toLowerCase(),N=(r.get("showAds")||"").toLowerCase(),P=(r.get("hideAds")||"").toLowerCase();if("false"===N||r.has("hideAds")&&"false"!==P)return!0;
146if(D)return!1;if(a.wocg.isPlatformMobile()&&
147"Windows"!=a.wocg.deviceOS()&&(!a.wocg.isPlatformMobile()||!window.ReactNativeWebView||window.electronAPI)&&!window.electronAPI||a.wocg.isSourceArkadium())return!0}return X}var ba,X=!1,I=!1,O=null,fa=null,ta=!1,ua=null,qa=null,na=null,b=null,f=[],u="RaptiveRightRailVideoAdContainer worldofcardgamescom_medrec_1 worldofcardgamescom_medrec_2 worldofcardgamescom_sidewall_right worldofcardgamescom_300_250_b_1 worldofcardgamescom_300_250_b_2 worldofcardgamescom_160_600_c_1 worldofcardgamescom_160_600_c_2 worldofcardgamescom_300_100 worldofcardgamescom_right_rail_video worldofcardgames_mobile_top_video raptive-sticky-footer-ad".split(" "),
148l={B:["worldofcardgamescom_300_250_b_1","worldofcardgamescom_300_250_b_2"],C:["worldofcardgamescom_160_600_c_1","worldofcardgamescom_160_600_c_2"]};window.__wocgPruneAdRailForAdLoad=function(){var r=c();if(r&&!ea()){var D={},N=r.shouldShowTopAd?[]:e(r.adWidth,r.adHeight),P;for(P=0;P<N.length;P++)D[N[P].slotId]=!0;window.__wocgAdLayout&&N.length&&300<=r.adWidth&&(D.worldofcardgamescom_300_100=!0);1024<=w()&&576<k()&&(D.worldofcardgamescom_medrec_1||D.worldofcardgamescom_medrec_2||D.worldofcardgamescom_300_250_b_1||
149D.worldofcardgamescom_160_600_c_1)&&(D.RaptiveRightRailVideoAdContainer=!0,D.worldofcardgamescom_right_rail_video=!0);D.worldofcardgames_mobile_top_video=!0;D["raptive-sticky-footer-ad"]=!0;for(P=0;P<u.length;P++)D[u[P]]||(r=document.getElementById(u[P]))&&r.parentNode&&r.parentNode.removeChild(r);(D=document.querySelector(".adLayoutSkyscraperRow"))&&!D.querySelector(".raptive-display-ad")&&D.parentNode&&D.parentNode.removeChild(D)}};a.wocg.updateAdContainerLayout=c;a.wocg.updateAds=function(){var r=
150c();if(r){var D=[],N={},P=a.one("#ad"),ca;if(r){r.shouldShowTopAd||(D=e(r.adWidth,r.adHeight));for(ca=0;ca<D.length;ca++)N[D[ca].slotId]=!0;window.__wocgAdLayout&&D.length&&300<=r.adWidth&&document.getElementById("worldofcardgamescom_300_100")&&(N.worldofcardgamescom_300_100=!0);N.worldofcardgames_mobile_top_video=r.shouldShowTopAd;N["raptive-sticky-footer-ad"]=r.shouldShowStickyFooterAd;N.worldofcardgamescom_right_rail_video=1024<=w()&&576<k()&&!!(N.worldofcardgamescom_medrec_1||N.worldofcardgamescom_medrec_2||
151N.worldofcardgamescom_300_250_b_1||N.worldofcardgamescom_160_600_c_1);N.RaptiveRightRailVideoAdContainer=N.worldofcardgamescom_right_rail_video;if(r.shouldShowTopAd&&(ca=document.getElementById("ad"))){for(D=0;D<u.length;D++)N[u[D]]||(r=document.getElementById(u[D]))&&ca.contains(r)&&r.parentNode&&r.parentNode.removeChild(r);(ca=ca.querySelector(".adLayoutSkyscraperRow"))&&!ca.querySelector(".raptive-display-ad")&&ca.parentNode&&ca.parentNode.removeChild(ca)}for(ca=0;ca<u.length;ca++)r=!!N[u[ca]],
152!(D=document.getElementById(u[ca]))||!r&&D.querySelector("iframe")||(D.style.display=r?"":"none");P&&(P.removeClass("videoDockedBottom"),N.worldofcardgamescom_right_rail_video?P.addClass("raptiveVideoDockedBottom"):P.removeClass("raptiveVideoDockedBottom"),P.setStyle("backgroundColor",""),P.setStyle("boxShadow",""),P.setStyle("pointerEvents",""))}n();H()}};a.AdWidget={isAdRemoved:ea,isHideAdsButtonVisible:function(){var r=a.one("#rahlc");r=r&&r.getDOMNode();if(ea()||!r)return!1;r=window.getComputedStyle(r);
153return"none"!==r.display&&"hidden"!==r.visibility},showSubscriptionPricing:J};a.on("domready",function(){(ba=a.one("#rahlc"))?(ba.on("click",G),a.wocg.shouldHideSubscriptionLinks&&a.wocg.shouldHideSubscriptionLinks()&&ba.setStyle("display","none"),ea()?(X=!0,q(!1,"not_applicable","ads_not_shown"),a.one("#ad")&&a.one("#ad").remove(),a.one("body").removeClass("adsVisible"),x(),a.fire("ad:removed"),v()):(n(),M(),a.wocg.updateAds(),setTimeout(a.wocg.updateAds,5E3),document.addEventListener("click",t,
154!0),window.addEventListener("beforeunload",r=>{const D=window.location.hostname,N=O,P=a.wocg.Table.getCurrentTable();if(!a.wocg.isPlatformMobile()&&!0!==window.confirmedLeave&&P&&P.gameStarted&&!P.tutorial&&!P.gameOver&&N)return a.wocg.trackEvent("Navigation Attempt",{currentHostname:D,currentPathname:window.location.pathname,destinationURL:N}),r.returnValue="You are about to leave this site. Continue?",r.preventDefault(),"You are about to leave this site. Continue?"}))):(X=!0,q(!1,"not_applicable",
155"ads_not_shown"),a.one("body").removeClass("adsVisible"),x(),v())});a.on("window:resized",function(){c();setTimeout(a.wocg.updateAds,320)});a.on("comm:user.init.complete",ma);a.on("comm:user.login.complete",ma)},"1.0",{requires:["KeyboardShortcuts","ModalConfirm"]});
156YUI.add("Checkbox",function(a){a.Checkbox=function(q,w,k,x){this.valueChangeHandlers=[];this.valueChangeHandlerScopes=[];this.visible=this.disabled=this.checked=!1;a.Checkbox.prototype.init=function(y,v,d,n){this.name=y;this.label=d;this.config=n;this.node=a.Node.create("<span>").addClass("checkbox");this.node.setStyle("paddingLeft",n.dimensions[0]+8+"px");this.node.setStyle("height",n.dimensions[1]+"px");this.node.setStyle("lineHeight",n.dimensions[1]+"px");this.node.setAttribute("name",y);this.node.setAttribute("value",
157v);this.update();
157this.node.append(document.createTextNode(d));if(n.manager)this.trackedNode=n.manager.track(this.node),this.trackedNode.on("click",this.clickHandler,this);else this.node.on("click",this.clickHandler,this)};a.Checkbox.prototype.addValueChangeHandler=function(y,v){this.valueChangeHandlers.push(y);this.valueChangeHandlerScopes.push(v)};a.Checkbox.prototype.removeValueChangeHandler=function(y){y=this.valueChangeHandlers.indexOf(y);this.valueChangeHandlers.splice(y,1);this.valueChangeHandlers.splice(y,
1581)};a.Checkbox.prototype.setChecked=function(y,v){this.checked!==y&&(this.checked=y,this.update(),v||this.callValueChangeHandlers())};a.Checkbox.prototype.setDisabled=function(y){this.disabled=y;this.update()};a.Checkbox.prototype.update=function(){var y=(this.checked?"":"un")+"checked";this.disabled&&(y+="-disabled");this.node.setStyle("backgroundImage","url("+this.config.imageBuilder(this.config.imagePath+y+".png")+")").setStyle("backgroundSize","contain");this.disabled?this.node.addClass("disabled").setStyle("cursor",
159"auto"):this.node.removeClass("disabled").setStyle("cursor","pointer");this.checked?this.node.addClass("checked"):this.node.removeClass("checked")};a.Checkbox.prototype.clickHandler=function(y){this.disabled||(this.checked=!this.checked,this.update(),this.callValueChangeHandlers())};a.Checkbox.prototype.callValueChangeHandlers=function(){this.valueChangeHandlers.forEach(function(y,v){y.call(this.valueChangeHandlerScopes[v],this,this.checked)}.bind(this))};a.Checkbox.prototype.visibilityChangeHandler=
160function(y,v){this.visible=y};a.Checkbox.prototype.resizeHandler=function(){var y=this.node.get("parentNode");y=y&&0<y.getContentWidth()?y.getContentWidth()-this.config.dimensions[0]:999;y=a.FitText.fit(this.label,y,this.config.dimensions[0]);this.node.setStyle("lineHeight",y.lineHeight+"px");this.node.setStyle("fontSize",y.fontSize+"px");this.trackedNode&&this.trackedNode.autoUpdate()};this.init(q,w,k,x)}},"1.0",{requires:["FitText"]});
161YUI.add("MoreGames",function(a){function q(H){v=!v;a.fire("moreGames:clicked",{page:a.MoreGames.getPage()})}function w(){x.setStyle("opacity","1.0");x.setStyle("display","none");y.setStyle("opacity","1.0");y.setStyle("display","none");a.Transition.run({delay:0,node:x,duration:a.wocg.SCREEN_TRANSITION_DURATION,opacity:0})}function k(){if(x){y=a.one("#moreGamesText");var H=x.getStyle("left"),c=x.getStyle("bottom"),e=x.getWidth(),h=x.getHeight();y.setStyle("fontSize","100%");var p=y.getWidth();p=e-p;
162if(!(0<p&&20>p)){var t=100,B;for(B=0;40>B;B++){p=y.getWidth();p=e-p;if(0<p&&20>p)break;t=20<=p?1.05*t:.95*t;t=parseInt(t,10);y.setStyle("fontSize",t+"%")}}H&&(H=+H.substring(0,H.length-2),t=y.getWidth(),y.setStyle("left",H+e/2-t/2+"px"));c&&(c=+c.substring(0,c.length-2),e=y.getHeight(),y.setStyle("bottom",c+h/2-e/2+"px"));y.setStyle("paddingTop","0.8em");y.setStyle("paddingLeft","0.6em");y.setStyle("paddingRight","0.7em");y.setStyle("paddingBottom","0.75em");"block"===x.getStyle("display")&&(h=y,
163d&&d.stop(),h.setStyle("opacity","1"),h.setStyle("display","block"),h.setStyle("backgroundColor","rgba(0, 0, 0, 0.8)"),c=[],Modernizr.rgba?(c.push({node:h,easing:"ease-in-out",duration:4E3,backgroundColor:"rgba("+m.concat([.8]).join(", ")+")"}),c.push({node:h,easing:"ease-in-out",duration:4E3,backgroundColor:"rgba(0, 0, 0, 0.8)"}),d=new a.Transition.Sequence(c,{loop:!0,iterations:6}),d.run()):(h.setStyle("backgroundColor","rgb("+m.join(", ")+")"),d=!0))}}var x,y,v=!0,d,n=!0,m=[173,100,31];a.MoreGames=
164{getPage:function(){return v?1:2}};a.on("domready",function(){x=a.one("#moreGames");x.on("click",q);y=a.one("#moreGamesText");var H=a.Node.create("Click Here for More Games!");H.addClass("moreGames");y.append(H);w();k()});a.on("window:resized",k);a.on("theme:changed",function(){n&&(n=!1);k()});a.on("gameSelectors.hide",function(){w()});a.on("ad:removed",k)},"1.0",{requires:[]});
165YUI.add("Radio",function(a){a.Radio=function(q,w,k){this.valueChangeHandlers=[];this.valueChangeHandlerScopes=[];this.checked=null;this.visible=!1;this.nodeMap={};this.trackedNodeMap={};this.disabledValues=[];a.Radio.prototype.init=function(x,y,v){this.name=x;this.config=v;Object.forEach(y,function(d,n){var m=a.Node.create("<span>").addClass("radio");m.setStyle("paddingLeft",v.dimensions[0]+4+"px");m.setStyle("height",v.dimensions[1]+"px");m.setStyle("lineHeight",v.dimensions[1]+"px");m.setAttribute("name",
166x);m.setAttribute("value",d);m.setAttribute("label",n);m.append(document.createTextNode(n));if(v.manager)n=v.manager.track(m),n.on("click",this.clickHandler,this),this.trackedNodeMap[d]=n;else m.on("click",this.clickHandler,this);this.nodeMap[d]=m}.bind(this));this.update()};a.Radio.prototype.addValueChangeHandler=function(x,y){this.valueChangeHandlers.push(x);this.valueChangeHandlerScopes.push(y)};a.Radio.prototype.removeValueChangeHandler=function(x){x=this.valueChangeHandlers.indexOf(x);
166this.valueChangeHandlers.splice(x,
1671);this.valueChangeHandlers.splice(x,1)};a.Radio.prototype.setChecked=function(x,y){this.checked!==x&&(this.checked=x,this.update(),y||this.callValueChangeHandlers())};a.Radio.prototype.setDisabled=function(x,y){x&&!this.disabledValues.contains(y)?this.disabledValues.push(y):x||this.disabledValues.remove(y);this.update()};a.Radio.prototype.update=function(){Object.forEach(this.nodeMap,function(x,y){var v=(this.checked!==x?"un":"")+"checked";this.disabledValues.contains(x)&&(v+="-disabled");y.setStyle("backgroundImage",
168"url("+this.config.imageBuilder(this.config.imagePath+v+".png")+")").setStyle("backgroundSize","contain");this.disabledValues.contains(x)?y.addClass("disabled").setStyle("cursor","auto"):y.removeClass("disabled").setStyle("cursor","pointer");this.checked===x?y.addClass("checked"):y.removeClass("checked")}.bind(this))};a.Radio.prototype.clickHandler=function(x){(x=x.currentTarget.getAttribute("value"))&&!this.disabledValues.contains(x)&&(this.checked=x,this.update(),this.callValueChangeHandlers())};
169a.Radio.prototype.callValueChangeHandlers=function(){this.valueChangeHandlers.forEach(function(x,y){x.call(this.valueChangeHandlerScopes[y],this,this.checked)}.bind(this))};a.Radio.prototype.visibilityChangeHandler=function(x,y){this.visible=x};a.Radio.prototype.resizeHandler=function(){Object.forEach(this.nodeMap,function(x,y){var v=y.get("parentNode");v=v&&0<v.getContentWidth()?v.getContentWidth()-this.config.dimensions[0]:999;v=a.FitText.fit(y.getAttribute("label"),v,this.config.dimensions[0]);
170y.setStyle("lineHeight",v.lineHeight+"px");y.setStyle("fontSize",v.fontSize+"px");this.config.manager&&this.trackedNodeMap[x].autoUpdate()}.bind(this))};this.init(q,w,k)}},"1.0",{requires:["FitText"]});
171YUI.add("CustomTooltip",function(a){function q(e){m&&(m.setStyle("top",Math.max(e.pageY-m.getHeight()-10,0)+"px"),"left"===H?m.setStyle("left",e.pageX-m.getWidth()-10+"px"):m.setStyle("left",e.pageX+10+"px"))}function w(e){var h=e.currentTarget.getData("customTooltipLabel");"function"===typeof h&&(h=h());void 0!==h&&null!==h&&""!==h&&!1!==h&&(y(h),e.currentTarget.setData("tooltipVisible",!0),H=e.pageX>a.one(document.body).getWidth()/2?"left":"right",q(e))}function k(e){e.currentTarget.setData("tooltipVisible",
172null);n()}function x(e){if(!d(e.currentTarget)){var h=e.currentTarget.getData("customTooltipLabel");"function"===typeof h&&(h=h());void 0!==h&&null!==h&&""!==h&&!1!==h&&(y(h,!0),v(e.currentTarget),e.currentTarget.setData("tooltipVisible",!0),c&&(clearTimeout(c),c=null),c=setTimeout(function(){e.currentTarget.setData("tooltipVisible",null);n(!0)},3200))}}function y(e,h){n();m=a.Node.create("<div>").addClass("customTooltip");if("string"===typeof e)if(-1<e.indexOf("\n")){var p=e.indexOf("\n"),t=e.substring(0,
173p);e=e.substring(p+1,e.length);m.append(t);m.append(document.createElement("br"));m.append(e)}else m.append(e);else m.append(e);a.one("#mainContainer").append(m);h&&(h=+m.getStyle("opacity")||1,m.setStyle("opacity",0),a.Transition.run({node:m,duration:160,opacity:h,easing:"linear"}))}function v(e){var h=e.getDOMNode().getBoundingClientRect(),p=window.pageXOffset||document.documentElement.scrollLeft||0,t=window.pageYOffset||document.documentElement.scrollTop||0;e=p+10;var B=p+a.one(document.body).getWidth()-
174m.getWidth()-10;p=h.left+p+h.width/2-m.getWidth()/2;h=h.top+t-m.getHeight()-10;B<e&&(B=e);p=Math.max(e,Math.min(p,B));m.setStyle("top",Math.max(Math.round(h),0)+"px");m.setStyle("left",Math.round(p)+"px")}function d(e){if(!e)return!1;var h=e.getDOMNode();if(!h||h.disabled||e.hasClass("disabled"))return!1;var p=(h.tagName||"").toLowerCase();if("a button input select textarea label".split(" ").contains(p))return!0;if("function"!==typeof h.getAttribute)return!1;p=h.getAttribute("role");if("button"===
175p||"link"===p||"menuitem"===p||e.hasClass("clickable")||e.hasClass("draggable")||e.hasClass("button")||e.hasClass("linkButton"))return!0;e=window.getComputedStyle?window.getComputedStyle(h):null;return!!e&&"pointer"===e.cursor}function n(e){c&&(clearTimeout(c),c=null);if(m){var h=m;m=null;a.Transition.cancel(h);e?a.Transition.run({node:h,duration:160,opacity:0,easing:"linear",cb:function(){h.remove(!0)}}):(h.remove(!0),m=null)}}var m=null,H="left",c=null;a.CustomTooltip={showOnHover:function(e,h,
176p=!0){var t=h;p&&(t="<strong>"+h+"</strong>");e.setData("customTooltipLabel",t);e.detach("mouseenter",w);e.detach("mouseleave",k);e.detach("click",x);if(a.UA.ios||a.UA.android){if(!d(e))e.on("click",x)}else e.on("mouseenter",w),e.on("mouseleave",k)},hideTooltip:n,detachOnHover:function(e){e&&e.getData("customTooltipLabel")&&(e.getData("tooltipVisible")&&(e.setData("tooltipVisible",null),n()),e.setData("customTooltipLabel",null),e.detach("mouseenter",w),e.detach("mouseleave",k),e.detach("click",x))},
177hasTooltip:function(e){return!!e.getData("customTooltipLabel")}};a.on("domready",function(){a.one(document.body).on("mousemove",q)})},"1.0",{requires:["event-mouseenter","Transition"]});
178YUI.add("BoxForm",function(a){a.BoxForm=function(q,w,k){this.box=q;this.togglers=k?Array.toArray(k):[];this.bar=w;this.shown=!1;this.autoHide=this.resetOnHide=!0;this.submitAttempted=this.disabled=!1;this.validationDelay=400;this.validationTimers={};a.BoxForm.prototype.init=function(){this.box.setAttribute("role","dialog").setAttribute("aria-modal","true");var x=this.box.one("input[type='submit']");x&&this.box.setAttribute("aria-label",x.get("value"));this.enableTogglers();this.bar&&this.box.setStyle("top",
179"-"+this.bar.getHeight()+"px");this.box.all("ul li label").on("click",this.labelClickHandler,this);this.setupPasswordVisibilityToggles();x=this.box.all("input[type='text']").concat(this.box.all("input[type='password']"));x.on("valueChange",this.inputTextValueChangeHandler,this);x.on("keydown",this.inputTextKeydownHandler,this);x.each(function(y){y.on("change",this.inputTextValueChangeHandler,this);
179y.on("input",this.inputTextValueChangeHandler,this);y.on("blur",this.inputTextValueChangeHandler,this);
180y.on("focus",this.inputTextValueChangeHandler,this);y.on("keyup",this.inputTextValueChangeHandler,this);try{(new MutationObserver(v=>{v.forEach(d=>{"attributes"===d.type&&"value"===d.attributeName&&this.inputTextValueChangeHandler({currentTarget:y,type:"change"})})})).observe(y._node,{attributes:!0,attributeFilter:["value"]})}catch(v){}},this);this.box.on("submit",this.submitHandler,this);if(this.cancelButton=this.box.one("input.cancel"))this.cancelButton.on("click",this.hide,this);a.on("theme:changed",
181this.resizeHandler,this);a.on("window:resized",this.resizeHandler,this)};a.BoxForm.prototype.resizeHandler=function(){this.bar&&(this.shown?this.box.setStyle("top",this.bar.getHeight()+a.wocg.safeAreaTop()+"px"):this.box.setStyle("top","-"+this.box.getHeight()+"px"))};a.BoxForm.prototype.show=function(x){this.disableTogglers();this.bar&&this.box.setStyle("top",this.bar.getHeight()+"px");this.focusFirst();this.autoHide&&(a.KeyboardShortcuts.on("escape",this.hide.bind(this)),setTimeout(function(){this.box.once("clickoutside",
182this.hide,this)}.bind(this),0));a.Transition.run({node:this.box,duration:200,opacity:1});this.updateSubmitButton();this.shown=!0};a.BoxForm.prototype.hide=function(x){this.enableTogglers();this.autoHide&&(this.box.detach("clickoutside",this.hide,this),a.KeyboardShortcuts.detach("escape",this.hide.bind(this)));a.Transition.run({node:this.box,duration:200,opacity:0,cb:function(){this.box.setStyle("top","-"+this.box.getHeight()+"px")}.bind(this)});a.fire("box:"+this.box.get("id")+":hidden");this.resetOnHide&&
183this.reset();this.shown=!1};a.BoxForm.prototype.enableTogglers=function(){this.togglers.forEach(function(x){if(x)x.once("click",this.show,this)}.bind(this))};a.BoxForm.prototype.disableTogglers=function(){this.togglers.forEach(function(x){x&&x.detach("click",this.show)}.bind(this))};a.BoxForm.prototype.submitHandler=function(x){x.preventDefault();this.submitAttempted=!0;this.updateSubmitButton();if(!this.box.one("input[type='submit']").hasClass("disabled")){var y={};this.box.getAll("input[type='text']").concat(this.box.getAll("input[type='password']")).forEach(function(v){y[v.get("name")]=
184v.get("value")});this.disable();a.fire("box:"+this.box.get("id")+":submit",y)}};a.BoxForm.prototype.showError=function(x,y){this.hideSuccess();var v=this.box.one(".errorRow");y=y&&y.subtle;v.setContent((y?"":"✘ ")+x);y?v.addClass("subtleError"):v.removeClass("subtleError");v.addClass("visible")};a.BoxForm.prototype.hideError=function(){var x=this.box.one(".errorRow");x.empty();x.removeClass("visible").removeClass("subtleError")};a.BoxForm.prototype.showSuccess=function(x){this.hideError();var y=this.box.one(".successRow");
185y&&(y.setContent("✔ "+x),y.addClass("visible"))};a.BoxForm.prototype.hideSuccess=function(){var x=this.box.one(".successRow");x&&(x.empty(),x.removeClass("visible"))};a.BoxForm.prototype.disable=function(){this.disabled||(this.disabled=!0,this.box.getAll("input").forEach(function(x){x.addClass("disabled")}),this.cancelButton&&this.cancelButton.detach("click",this.hide,this))};a.BoxForm.prototype.enable=function(){this.disabled&&(this.disabled=!1,this.box.all("input[type='text']").concat(this.box.all("input[type='password']")).removeClass("disabled"),
186this.updateSubmitButton(),this.cancelButton&&(this.cancelButton.removeClass("disabled"),this.cancelButton.on("click",this.hide,this)))};a.BoxForm.prototype.clear=function(){this.box.getAll("input[type='text']").concat(this.box.getAll("input[type='password']")).forEach(function(x){x.set("value","");this.updateInput(x)}.bind(this))};a.BoxForm.prototype.reset=function(){this.submitAttempted=!1;this.clearValidationTimers();this.resetPasswordVisibilityToggles();this.hideError();this.hideSuccess();this.clear();
187this.enable()};a.BoxForm.prototype.focusFirst=function(){var x=this.box.one("input[type='text']");x||(x=this.box.one("input[type='password']"));x&&x.focus()};a.BoxForm.prototype.setupPasswordVisibilityToggles=function(){this.box.all("input[type='password']").each(function(x){var y=x.next("label"),v=x.get("parentNode");if(y&&v&&!v.one(".passwordVisibilityToggle")){x.addClass("passwordVisibilityInput");v.addClass("hasPasswordVisibilityToggle");var d=a.Node.create("<button>").setAttribute("type","button").addClass("passwordVisibilityToggle").setAttribute("aria-label",
188"Show password").setContent("Show");d.on("click",function(n){n.preventDefault();n.stopPropagation();n="text"===x.getAttribute("type");x.setAttribute("type",n?"password":"text");d.setContent(n?"Show":"Hide");d.setAttribute("aria-label",n?"Show password":"Hide password");x.focus()});(y=v.one(".fieldDetailRow"))?v.insertBefore(d,y):v.append(d)}})};a.BoxForm.prototype.resetPasswordVisibilityToggles=function(){this.box.all(".passwordVisibilityInput").each(function(x){x.setAttribute("type","password")});
189this.box.all(".passwordVisibilityToggle").each(function(x){x.setContent("Show");x.setAttribute("aria-label","Show password")})};a.BoxForm.prototype.blur=function(){this.box.getAll("input[type='text']").concat(this.box.getAll("input[type='password']")).forEac
189h(function(x){x.blur()}.bind(this))};a.BoxForm.prototype.labelClickHandler=function(x){x.currentTarget.previous("input").focus()};a.BoxForm.prototype.inputTextValueChangeHandler=function(x){this.disabled||(this.updateInputLabel(x.currentTarget),
190"focus"!==x.type&&(this.clearInputValidationTimer(x.currentTarget),"blur"===x.type?this.updateSubmitButton():this.queueInputValidation(x.currentTarget)))};a.BoxForm.prototype.inputTextKeydownHandler=function(x){27===x.keyCode&&x.currentTarget.blur()};a.BoxForm.prototype.updateInput=function(x){this.updateInputLabel(x);this.clearInputValidationTimer(x);this.updateSubmitButton()};a.BoxForm.prototype.updateInputLabel=function(x){x.next("label")&&(x.get("value")?x.next("label").addClass("hidden"):x.next("label").removeClass("hidden"))};
191a.BoxForm.prototype.getInputValidationKey=function(x){x=x._node||x.getDOMNode();x.boxFormValidationKey||(x.boxFormValidationKey=a.guid("boxform-validation-"));return x.boxFormValidationKey};a.BoxForm.prototype.clearInputValidationTimer=function(x){x=this.getInputValidationKey(x);this.validationTimers[x]&&(clearTimeout(this.validationTimers[x]),delete this.validationTimers[x])};a.BoxForm.prototype.clearValidationTimers=function(){for(var x in this.validationTimers)this.validationTimers.hasOwnProperty(x)&&
192clearTimeout(this.validationTimers[x]);this.validationTimers={}};a.BoxForm.prototype.queueInputValidation=function(x){var y=this.getInputValidationKey(x);this.validationTimers[y]=setTimeout(function(){delete this.validationTimers[y];this.disabled||this.updateSubmitButton()}.bind(this),this.validationDelay)};a.BoxForm.prototype.validateInput=function(x){if(x.ancestor(".authHidden"))return!0;var y=x.get("value"),v=x.getAttribute("validInputs");v&&(v=JSON.parse(x.getAttribute("validInputs")));if("username"===
193x.getAttribute("name")&&-1!==y.indexOf("@"))return this.showFieldError(x,"Use a username, not an email address");var d=+x.getAttribute("boxminlength")||0,n=+x.getAttribute("boxmaxlength")||Number.MAX_VALUE,m=!!x.getAttribute("boxrequired");if(!y.length&&m){if(this.submitAttempted)return this.showFieldError(x,"Required");this.clearFieldError(x);return!1}return y.length?y.length<d?this.showFieldError(x,"Must be at least "+d+" characters"):y.length>n?this.showFieldError(x,"Must be no more than "+n+" characters"):
194"email"!==x.getAttribute("boxtype")||this.validateEmail(y)?v&&0>v.indexOf(y)?this.showFieldError(x,"Must be one of "+v):this.clearFieldError(x):this.showFieldError(x,"Please enter a valid email address"):this.clearFieldError(x)};a.BoxForm.prototype.showFieldError=function(x,y){var v=x.get("parentNode").one(".fieldDetailRow"),d=v.one(".fieldError");x.addClass("bad");v.addClass("hasFieldError");d.removeClass("good").addClass("bad");d.setContent(y);return!1};a.BoxForm.prototype.clearFieldError=function(x){var y=
195x.get("parentNode").one(".fieldDetailRow"),v=y.one(".fieldError");x.removeClass("bad");y.removeClass("hasFieldError");v.removeClass("bad").removeClass("good");v.empty();return!0};a.BoxForm.prototype.updateSubmitButton=function(){var x=!1;this.box.getAll("input[type='text']").concat(this.box.getAll("input[type='password']")).forEach(function(d){this.validateInput(d)||(x=!0)}.bind(this));var y=this.box.one("input[type='submit']"),v=!0;y.shouldBeEnabled&&(v=y.shouldBeEnabled());x||!v?y.addClass("disabled"):
196y.removeClass("disabled");(y=this.box.all("input[type='button']"))&&y.each(function(d){v=!0;d.shouldBeEnabled&&(v=d.shouldBeEnabled());x&&!d.getAttribute("boxignoreerrors")||!v?d.addClass("disabled"):d.removeClass("disabled")});return x};a.BoxForm.prototype.validateEmail=function(x){if(254<x.length||!/^[-!#$%&'*+\/0-9=?A-Z^_a-z{|}~](\.?[-!#$%&'*+/0-9=?A-Z^_a-z{|}~])*@[a-zA-Z0-9](-?[a-zA-Z0-9])*(\.[a-zA-Z](-?[a-zA-Z0-9])*)+$/.test(x))return!1;x=x.split("@");return 64<x[0].length||x[1].split(".").some(function(y){return 63<
197y.length})?!1:!0};a.BoxForm.prototype.setZindex=function(x){this.box&&this.box.setStyle("z-index",x)};this.init()}},"1.0",{requires:["KeyboardShortcuts"]});
198YUI.add("unselectable",function(a){function q(k){if(!k.target.ancestor(".selectable",!0)&&k.target.ancestor(".unselectable",!0)){if(window.getSelection){var x=window.getSelection();x.empty?x.empty():x.removeAllRanges&&x.removeAllRanges()}else document.selection&&document.selection.empty();k.halt(!0)}}function w(k){if(Modernizr.hasEvent("selectstart")){if(k.hasClass("selectable")){k.on("selectstart",function(x){try{x.stopPropagation()}catch(y){}});return}if(k.hasClass("unselectable"))k.on("selectstart",
199function(x){try{x.halt()}catch(y){}})}else k.getDOMNode().unselectable="on";(Modernizr.hasEvent("selectstart")||!k.hasClass("selectable"))&&(k=k.get("children"))&&k.toArray().forEac
199h(function(x){w(x)})}a.unselectable={};a.on("domready",function(){var k=a.one(document.body);if(k.hasClass("unselectable")){var x=k.get("children");x&&x.addClass("unselectable")}a.all("input[type='text']").concat(a.all("input[type='password']")).addClass("selectable");Modernizr.testAllProps("userSelect")||a.getAll(".unselectable").forEach(function(y){w(y)});
200k.on("selectstart",q)})},"1.0",{});
201YUI.add("Frame",function(a){function q(d){d=base.clone(d,!0);d.offsets||(d.offsets={});Object.forEach(y,function(n,m){d.parts[n]&&(m.forEach(function(H){d.parts[H]||(d.parts[H]=d.parts[n].slice())}),delete d.parts[n]);d.offsets[n]&&(m.forEach(function(H){d.offsets[H]||(d.offsets[H]=d.offsets[n].slice())}),delete d.offsets[n])});Object.keys(d.parts).forEach(function(n){d.offsets[n]||(d.offsets[n]=[0,0])});return d}function w(d){var n=d.currentTarget,m=n.getData("frameConfig");if(m&&!n.getData("disabled")){"mousedown"===
202d.type?n.setData("mouseIsDown",!0):"mouseup"===d.type&&n.setData("mouseIsDown",!1);var H=n.getData("mouseIsDown");"mouseleave"===d.type&&H&&n.setData("mouseIsDown",!1);k(n,"mouseenter"===d.type?"Hover":"mousedown"===d.type?"Clicked":"mouseup"===d.type&&m.hasHover?"Hover":"Normal")}}function k(d,n){var m=d.getData("frameConfig");if(m){var H=d.getData("backgroundSuffix");d.setData("backgroundSuffix",n);Object.forEach(m.parts,function(c,e){c=d.one("."+c);c.setStyle("backgroundImage",c.getStyle("backgroundImage").replace(H,
203n))});m.background&&d.setStyle("backgroundImage",d.getStyle("backgroundImage").replace(H,n))}}function x(d){var n=d.getData("frameConfig");if(n){Object.forEach(n.parts,function(c,e){c=d.one("."+c);c.setStyle("width",0);c.setStyle("height",0)});var m=d.getWidth(),H=d.getHeight();Object.forEach(n.parts,function(c,e){var h=d.one("."+c);h.setStyle("width",e[0]+"px");h.setStyle("height",e[1]+"px");c.startsWith("T")&&h.setStyle("top",0+n.offsets[c][1]+"px");c.startsWith("B")&&h.setStyle("bottom",0+n.offsets[c][1]+
204"px");c.endsWith("L")&&h.setStyle("left",0+n.offsets[c][0]+"px");c.endsWith("R")&&h.setStyle("right",0+n.offsets[c][0]+"px");if("L"===c||"R"===c)h.setStyle("top",(n.parts["T"+c]||[0,0])[1]+(n.offsets["T"+c]||[0,0])[1]+"px"),h.setStyle("height",H-((n.parts["T"+c]||[0,0])[1]+(n.parts["B"+c]||[0,0])[1]+(n.offsets["T"+c]||[0,0])[1]+(n.offsets["B"+c]||[0,0])[1])+"px"),n.background&&d.setStyle("padding"+v[c],e[0]);if("T"===c||"B"===c)h.setStyle("left",(n.parts[c+"L"]||[0,0])[0]+(n.offsets[c]||[0,0])[0]+
205"px"),h.setStyle("width",m-((n.parts[c+"L"]||[0,0])[0]+(n.parts[c+"R"]||[0,0])[0]+(n.offsets[c+"L"]||[0,0])[0]+(n.offsets[c+"R"]||[0,0])[0])+"px"),n.background&&d.setStyle("padding"+v[c],e[1])})}}var y={TB:["T","B"],LR:["L","R"],corner:["TL","TR","BR","BL"]},v={L:"Left",R:"Right",T:"Top",B:"Bottom"};a.Frame={create:function(d,n){n=q(n);d.setData("frameConfig",n);d.addClass("frame");["relative","absolute","fixed"].contains(d.getStyle("position").toLowerCase())||d.setStyle("position","relative");n.backgroundColor&&
206d.setStyle("backgroundColor",n.backgroundColor);n.borderRadius&&d.setBorderRadiusStyle(n.borderRadius);var m=n.hasHover||n.hasClicked?"Normal":"";d.setData("defaultBackgroundSuffix",m);d.setData("backgroundSuffix",m);n.background&&(d.setStyle("backgroundImage","url("+n.imageBuilder(n.imagePath+"Backgroun
206d"+m+".png")+")"),d.setStyle("backgroundClip","content-box"),d.setStyle("height",n.background[1]+"px"));Object.keys(n.parts).forEach(function(H){var c=a.Node.create("<div>").addClass("framePart").addClass(H);
207c.setStyle("backgroundImage","url("+n.imageBuilder(n.imagePath+H+m+".png")+")");d.append(c)});!n.hasHover||a.UA.ios||a.UA.android||(d.on("mouseenter",w),d.on("mouseleave",w));n.hasClicked&&(d.on("mousedown",w),d.on("mouseup",w));x(d)},resize:x,destroy:function(d){var n=d.getData("frameConfig");n&&(!n.hasHover||a.UA.ios||a.UA.android||(d.detach("mouseenter",w),d.detach("mouseleave",w)),n.hasClicked&&(d.detach("mousedown",w),d.detach("mouseup",w)))},preload:function(d){d=q(d);var n=Object.keys(d.parts);
208d.background&&n.push("Background");n.forEach(function(m){d.hasHover||d.hasClicked?(a.ImagePreloader.preload(d.imageBuilder(d.imagePath+m+"Normal.png")),d.hasHover&&a.ImagePreloader.preload(d.imageBuilder(d.imagePath+m+"Hover.png")),d.hasClicked&&a.ImagePreloader.preload(d.imageBuilder(d.imagePath+m+"Clicked.png"))):a.ImagePreloader.preload(d.imageBuilder(d.imagePath+m+".png"))})},disable:function(d){d.getData("frameConfig")&&(d.setData("disabled",!0),k(d,"Disabled"))},enable:function(d){d.getData("frameConfig")&&
209(d.setData("disabled",!1),k(d,d.getData("defaultBackgroundSuffix")))}}},"1.0",{requires:["ImagePreloader"]});
210YUI.add("SoundEffects",function(a){function q(){if(!H)try{H=new (window.AudioContext||window.webkitAudioContext)}catch(A){return null}return H}function w(A,M){var J=q();J&&fetch(A).then(function(G){return G.arrayBuffer()}).then(function(G){return J.decodeAudioData(G)}).then(function(G){c[M]=G}).catch(function(G){console.warn("Failed to load audio:",M,G)})}function k(A,M,J,G){var E=q(),L=c[A];if(E&&L){"running"===E.state?y():d();A=h[A]||1;try{var T=E.createBufferSource();T.buffer=L;if(void 0!==J||
211void 0!==G){void 0!==J&&(T.playbackRate.value=J);var ma=E.createGain();ma.gain.value=(void 0!==G?G:1)*A;T.connect(ma);ma.connect(E.destination)}else M?(T.playbackRate.value=.8+.32*Math.random(),ma=E.createGain(),ma.gain.value=(.72+.48*Math.random())*A,T.connect(ma),ma.connect(E.destination)):1!==A?(ma=E.createGain(),ma.gain.value=A,T.connect(ma),ma.connect(E.destination)):T.connect(E.destination);T.start(0)}catch(ea){}}}function x(){if(!B){B=!0;var A={};A[C.AUDIO_TICK_LOW]="Wood_Note1.mp3";A[C.AUDIO_TICK_HIGH]=
212"Wood_Note5.mp3";A[C.AUDIO_NOTIFICATION]="Wood_Notification19.mp3";A[C.AUDIO_HAND_OVER]="Wood_Musical3.mp3";A[C.AUDIO_GAME_OVER]="Wood_Musical1.mp3";A[C.AUDIO_CELEBRATION]="Wood_Done1.mp3";A[C.AUDIO_SCORE]="Wood_Done5.mp3";A[C.AUDIO_PLAYER_LEFT]="Wood_Error4.mp3";A[C.AUDIO_PLAYER_ENTERED]="Wood_Done4.mp3";A[C.AUDIO_GAME_UNPAUSED]="Wood_Notification2.mp3";A[C.AUDIO_GAME_PAUSED]="Wood_Notification1.mp3";A[C.AUDIO_CARD_PLACE]="Foley_Card_Place.mp3";A[C.AUDIO_CARD_PICK]="Foley_Card_Pick.mp3";A[C.AUDIO_CARD_TRICK_TAKEN]=
213"Foley_Card_Snap.mp3";A[C.AUDIO_CARD_DEAL]="Foley_Card_Deal.mp3";A[C.AUDIO_SOCIAL_NOTIFICATION]="Wood_Done9.mp3";e[C.AUDIO_TICK_HIGH]=!0;e[C.AUDIO_TICK_LOW]=!0;e[C.AUDIO_NOTIFICATION]=!0;e[C.AUDIO_GAME_PAUSED]=!0;e[C.AUDIO_GAME_UNPAUSED]=!0;e[C.AUDIO_GAME_OVER]=!0;e[C.AUDIO_PLAYER_LEFT]=!0;e[C.AUDIO_PLAYER_ENTERED]=!0;e[C.AUDIO_SOCIAL_NOTIFICATION]=!0;e[C.AUDIO_CARD_PLACE]=!0;e[C.AUDIO_CARD_PICK]=!0;e[C.AUDIO_CARD_TRICK_TAKEN]=!0;e[C.AUDIO_CARD_DEAL]=!0;h[C.AUDIO_CARD_PLACE]=4;h[C.AUDIO_CARD_PICK]=
2144;h[C.AUDIO_CARD_TRICK_TAKEN]=4;h[C.AUDIO_CARD_DEAL]=4;h[C.AUDIO_HAND_OVER]=.35;h[C.AUDIO_GAME_OVER]=.35;h[C.AUDIO_CELEBRATION]=.35;h[C.AUDIO_SCORE]=.35;p[C.AUDIO_CARD_PLACE]=!0;p[C.AUDIO_CARD_PICK]=!0;p[C.AUDIO_CARD_TRICK_TAKEN]=!0;Object.keys(A).forEach(function(M){w(a.wocg.buildAssetURL("audio/"+A[M]),M)})}}function y(){F&&(S.forEach(function(A){document.removeEventListener(A,n,{capture:!0})}),F=!1)}function v(){F||(S.forEach(function(A){document.addEventListener(A,n,{capture:!0,passive:!0})}),
215F=!0)}function d(){var A=q();if(!A)return!1;if("running"===A.state)return y(),!0;if("closed"===A.state)return!1;try{var M=A.resume();M&&M.then?M.then(function(){"running"===A.state?y():v()}).catch(function(){v()}):"running"===A.state&&y()}catch(J){v()}return!1}function n(A){A&&!1===A.isTrusted||(x(),d())}function m(A,M,J,G,E){if(M){var L=setTimeout(function(){var ma=t.indexOf(L);-1!==ma&&t.splice(ma,1);m(A,0,J,G,E)},M);t.push(L)}else{try{var T=a.wocg&&a.wocg.User&&a.wocg.User.getSoundEffectsMode?
216a.wocg.User.getSoundEffectsMode():2;if(0===T||1===T&&!e[A])return}catch(ma){}a.wocg&&a.wocg.isSourceArkadium&&a.wocg.isSourceArkadium()&&!document.hasFocus()||(M=J,void 0===M&&void 0===G&&void 0===E&&(M=p[A]||!1),k(A,M,G,E))}}var H=null,c={},e={},h={},p={},t=[],B=!1,F=!1,S="click contextmenu auxclick dblclick mousedown mouseup pointerup touchend touchstart keydown keyup".split(" ");document.addEventListener("visibilitychange",function(){"visible"===document.visibilityState&&H&&"running"!==H.state&&
217d()});a.SoundEffects={play:m,registerSounds:x,onClickRegisterSounds:function(){x();d()||v()},calculateCardDealProgression:function(A,M,J){J=J||{};var G=void 0!==J.pitchStart?J.pitchStart:1,E=void 0!==J.volumeStart?J.volumeStart:.8;A=Math.pow(A/(M-1),void 0!==J.exponent?J.exponent:1.5);return{pitch:G+A*((void 0!==J.pitchEnd?J.pitchEnd:1.16)-G)+(Math.random()-.5)*(void 0!==J.pitchVariation?J.pitchVariation:.24),volume:E+A*((void 0!==J.volumeEnd?J.volumeEnd:1.2)-E)+(Math.random()-.5)*(void 0!==J.volumeVariation?
218J.volumeVariation:.16)}},cancelPending:function(){t.forEach(function(A){clearTimeout(A)});t=[]}}},"1.0",{requires:["wocg","wocg.User"]}
218);
219YUI.add("Transition",function(a){function q(I){if("number"===typeof I)return I;I=parseFloat(I);return isNaN(I)?0:I}function w(I,O){return ea.call(I,O)}function k(I){return"function"===typeof I?E["ease-out-2"]:E[I]||"ease-out"}function x(I){return"transparent"===I?I:a.Color.toRGBA(I)}function y(I,O){var fa=I.getData(O);if(fa){try{fa.cancel()}catch(ta){}I.setData(O,null)}}function v(I){if(I&&I.getData&&null!=I.getData("__themeSwapDelay")){var O=q(I.getData("__themeSwapDelay")),fa=I.getData("__themeSwapFn");
220I.setData("__themeSwapDelay",null);I.setData("__themeSwapFn",null);fa&&t(I,O,fa)}}function d(I){if(I&&I.getData){var O=I.getData("__rzFinalize");O&&(y(I,"__scaleAnim"),O())}}function n(I,O){var fa={};Object.keys(O).forEach(function(ta){if(G.contains(ta)){var ua="width"===ta?I.getWidth():"height"===ta?I.getHeight():"rotate"===ta?+I.getRotation()||0:"rotationY"===ta?O.fromRotationY||I.getRotationY()||0:"scale"===ta?O.fromScale||I.getScale()||1:"x"===ta?"number"===typeof O.fromX?O.fromX:I.getTranslateX():
221"y"===ta?"number"===typeof O.fromY?O.fromY:I.getTranslateY():"backgroundColor"===ta?x(I.getBackgroundColor()):"borderColor"===ta?x(I.getBorderColor()):I.getStyleAsNumber(ta);fa[ta]=ua}});return fa}function m(I,O){var fa={};Object.forEach(I,function(ta,ua){if(G.contains(ta)){ua="function"===typeof I[ta]?ua():ua;var qa=O[ta];"rotate"===ta&&(qa>ua&&360+ua-qa<qa-ua?ua+=360:qa<ua&&360-ua+qa<ua-qa&&(ua=-1*(360-ua)));ta.endsWith("Color")&&"transparent"===qa&&(qa=ua.match(a.Color.re_RGBA),qa=5===qa.length?
222"rgba("+qa[1]+", "+qa[2]+", "+qa[3]+", 0)":"rgba(0, 0, 0, 0)",O[ta]=qa);fa[ta]=ua}});return fa}function H(I,O){var fa=[];Object.forEach(I,function(ta,ua){O[ta]!==ua&&fa.push(ta)});return fa}function c(I,O){return I.endsWith("Color")||"opacity"===I?O:q(O)+"px"}function e(I){function O(){var ya={duration:b,easing:f,fill:"none"};u&&(ya.iterations=I.iterations||Infinity,ya.direction="alternate");return ya}function fa(){Da||(Da=!0,oa<aa&&(L=Math.max(0,L-(aa-oa)),oa=aa),Ma&&(clearTimeout(Ma),Ma=null),xa&&
223xa(),na&&na())}function ta(){oa>=aa||(oa+=1,L=Math.max(0,L-1),oa>=aa&&fa())}var ua=I.delay||0;if(ua)return I.delay=0,setTimeout(function(){e(I)},ua/ma);var qa=I.node,na=I.cb;if(!qa||!qa._node)return na?setTimeout(na,0):void 0;(w(I,"left")||w(I,"top")||w(I,"width")||w(I,"height")||w(I,"scale")||w(I,"x")||w(I,"y")||w(I,"marginTop"))&&d(qa);var b=(I.duration||300)/ma,f=k(I.easing||"ease-out-2"),u=!!I.loop,l=n(qa,I),r=m(I,l);ua=H(l,r);if(0===ua.length)return v(qa),na?setTimeout(na,b):void 0;var D={},
224N={};ua.forEach(function(ya){D[ya]=l[ya];N[ya]=r[ya]});l=D;r=N;w(r,"rotate")&&(l.rotation=l.rotate,r.rotation=r.rotate,delete l.rotate,delete r.rotate);if(w(r,"left")||w(r,"top")){var P=w(l,"left")?q(l.left):qa.getStyleAsNumber("left");
224ua=w(l,"top")?q(l.top):qa.getStyleAsNumber("top");if(w(r,"left")){var ca=q(r.left);qa.setStyle("left",ca+"px");P=ca-P;delete l.left;delete r.left;P&&(l.x=-P,r.x=0)}w(r,"top")&&(P=q(r.top),qa.setStyle("top",P+"px"),ua=P-ua,delete l.top,delete r.top,ua&&(l.y=-ua,r.y=
2250))}w(r,"marginTop")&&(ua=w(l,"marginTop")?q(l.marginTop):qa.getStyleAsNumber("marginTop"),P=q(r.marginTop),qa.setStyle("marginTop",P+"px"),ua=P-ua,delete l.marginTop,delete r.marginTop,ua&&(l.y=(w(l,"y")?q(l.y):0)-ua,w(r,"y")||(r.y=0)));var xa=null;ca=ua=null;var Ba=0;P=0;if(qa.hasClass("card")&&!w(r,"scale")&&w(r,"x")&&w(r,"y")&&w(r,"width")&&w(r,"height")){var U=q(l.width),R=q(r.width),ia=q(l.height),ra=q(r.height);if(0<U&&0<R&&0<ia&&0<ra){var ka=R/U;if(Math.abs(ka-ra/ia)<=.04*ka&&.001<Math.abs(ka-
2261)){var ha=q(qa.getScale())||1,Ca=qa.getStyleAsNumber("left"),Fa=qa.getStyleAsNumber("top");P=Math.max(U,R);ua=Math.max(ia,ra);qa.setStyle("width",P+"px");qa.setStyle("height",ua+"px");qa.setStyle("left",Ca+R/2-P/2+"px");qa.setStyle("top",Fa+ra/2-ua/2+"px");l.x=q(l.x)+(U-R)/2;l.y=q(l.y)+(ia-ra)/2;delete l.width;delete r.width;delete l.height;delete r.height;l.scale=U/P*ha;r.scale=R/P*ha;qa.setData("__rzScaleOwned",!0);var za=T+=1;qa.setData("__rzResizeGen",za);ua=P/(ha*R);ca=P/(ha*U);Ba=parseFloat(qa._node.style.getPropertyValue("--card-border-radius"))||
2270;P=q(qa.getData("__srcBorderRadius"))||Ba;qa.setData("__srcBorderRadius",null);xa=function(){qa._node&&qa.getData("__rzResizeGen")===za&&(qa.setStyle("left",Ca+"px"),qa.setStyle("top",Fa+"px"),qa.setStyle("width",R+"px"),qa.setStyle("height",ra+"px"),qa.setData("scale",ha),qa._node.style.scale=ha,qa._node.style.removeProperty("--card-border-width"),qa._node.style.removeProperty("--card-shadow-scale"),0<Ba&&qa._node.style.setProperty("--card-border-radius",Ba+"px"),qa.setData("__rzScaleOwned",!1),
228qa.setData("__rzFinalize",null),qa.setData("__rzResizeGen",null))};qa.setData("__rzFinalize",xa)}}}var Ia=[];if(w(r,"x")||w(r,"y")){U=w(l,"x")?q(l.x):qa.getTranslateX();ia=w(l,"y")?q(l.y):qa.getTranslateY();ka=w(r,"x")?q(r.x):qa.getTranslateX();var Ga=w(r,"y")?q(r.y):qa.getTranslateY();qa.setData("translate-x",ka);qa.setData("translate-y",Ga);qa._node.style.translate=ka+"px "+Ga+"px";y(qa,"__translateAnim");U=qa._node.animate([{translate:U+"px "+ia+"px"},{translate:ka+"px "+Ga+"px"}],O());qa.setData("__translateAnim",
229U);Ia.push(U);if((ia=null!=qa.getData("__themeSwapDelay"))||ca){U=ia?q(qa.getData("__themeSwapDelay")):C.getFlatMoveThemeSwapDelay(b*ma);var La=ia?qa.getData("__themeSwapFn"):null,Pa=ua;qa.setData("__themeSwapDelay",null);qa.setData("__themeSwapFn",null);ua=P;var Ka=Ba;ca&&qa._node&&(qa._node.style.setProperty("--card-border-width",ca+"px"),qa._node.style.setProperty("--card-shadow-scale",ca),0<ua&&qa._node.style.setProperty("--card-border-radius",ua*ca+"px"));t(qa,U,function(){Pa&&qa._node&&(qa._node.style.setProperty("--card-border-width",
230Pa+"px"),qa._node.style.setProperty("--card-shadow-scale",Pa),0<Ka&&qa._node.style.setProperty("--card-border-radius",Ka*Pa+"px"));La&&La()})}}v(qa);X.forEach(function(ya){if(w(r,ya.mapKey)){var Ra=q(l[ya.mapKey]),da=q(r[ya.mapKey]);qa.setData(ya.stateKey,da);ya.writeResting(qa,da);y(qa,ya.animKey);Ra=qa._node.animate([ya.keyframe(Ra),ya.keyframe(da)],O());qa.setData(ya.animKey,Ra);Ia.push(Ra)}});var Sa=[];Object.keys(r).forEach(function(ya){"x"!==ya&&"y"!==ya&&"scale"!==ya&&"rotation"!==ya&&"rotationY"!==
231ya&&Sa.push(ya)});if(Sa.length){var Q={},W={};Sa.forEach(function(ya){Q[ya]=c(ya,l[ya]);W[ya]=c(ya,r[ya]);qa.setStyle(ya,c(ya,r[ya]))});y(qa,"__propsAnim");ua=qa._node.animate([Q,W],O());qa.setData("__propsAnim",ua);Ia.push(ua)}if(!Ia.length)return na?setTimeout(na,b):void 0;if(u)return Ia[0];var aa=Ia.length,oa=0,Da=!1,Ma=null;L+=aa;Ia.forEach(function(ya){ya.finished&&ya.finished.then(ta,function(){ta()})});Ma=setTimeout(fa,b+80);return Ia[0]}function h(I){return"undefined"!==typeof document&&document.hidden||
232"undefined"===typeof window||"function"!==typeof window.requestAnimationFrame?setTimeout(I,16):window.requestAnimationFrame(I)}function p(I){h(function(){h(I)})}function t(I,O,fa){function ta(){ua||(ua=!0,qa&&(clearTimeout(qa),qa=null),fa&&fa())}I=I&&(I._node||("function"===typeof I.animate?I:null));O=Math.max(0,(O||0)/ma);var ua=!1,qa=null,na=null;if(I&&"function"===typeof I.animate)try{na=I.animate([{},{}],{duration:O})}catch(b){}na&&na.finished&&na.finished.then(ta,ta);qa=setTimeout(ta,O+80);return{cancel:function(){ua=
233!0;qa&&(clearTimeout(qa),qa=null);if(na)try{na.cancel()}catch(b){}}}}function B(I,O){var fa=I.getData(O);fa&&(clearTimeout(fa),I.setData(O,null))}function F(I,O){O.forEach(function(fa){B(I,fa)})}function S(I,O,fa,ta){var ua=setTimeout(function(){I.getData(O)===ua&&I.setData(O,null);ta()},Math.max(0,fa));I.setData(O,ua);return ua}function A(I,O,fa,ta){var ua=(I.getData(O)||0)+1;I.setData(O,ua);fa&&I.setData(fa,ta);return ua}function M(I,O,fa){I()&&(O=Object.merge({},O),O.cb=function(){I()&&fa&&fa()},
234e(O))}function J(I,O,fa){var ta=0,ua=function(){I()&&(ta>=O.length?fa&&fa():M(I,O[ta++],ua))};ua()}var G="top left bottom right width height lineHeight rotate opacity borderColor backgroundColor borderBottomWidth borderTopWidth borderLeftWidth borderRightWidth rotationY scale x y marginTop".split(" "),E={linear:"linear","ease-in":"cubic-bezier(0.11, 0, 0.5, 0)","ease-out":"cubic-bezier(0.5, 1, 0.89, 1)","ease-in-out":"cubic-bezier(0.45, 0, 0.55, 1)","ease-in-2":"cubic-bezier(0.32, 0, 0.67, 0)","ease-out-2":"cub
234ic-bezier(0.33, 1, 0.68, 1)",
235"ease-in-out-2":"cubic-bezier(0.65, 0, 0.35, 1)","ease-in-3":"cubic-bezier(0.5, 0, 0.75, 0)","ease-out-3":"cubic-bezier(0.25, 1, 0.5, 1)","ease-in-out-3":"cubic-bezier(0.76, 0, 0.24, 1)","ease-in-out-1-4":"cubic-bezier(0.5, 0, 0.5, 1)"},L=0,T=0,ma=function(){try{var I=/[?&]animSpeed=([0-9.]+)/.exec(window.location.search);if(I){var O=parseFloat(I[1]);if(0<O&&20>=O)return O}}catch(fa){}return 1}(),ea=Object.prototype.hasOwnProperty,ba=["__translateAnim","__scaleAnim","__rotateAnim","__rotationYAnim",
236"__propsAnim"],X=[{mapKey:"scale",stateKey:"scale",animKey:"__scaleAnim",writeResting:function(I,O){I._node.style.scale=O},keyframe:function(I){return{scale:String(I)}}},{mapKey:"rotation",stateKey:"rotation-angle",animKey:"__rotateAnim",writeResting:function(I,O){I._node.style.rotate=O+"deg"},keyframe:function(I){return{rotate:I+"deg"}}},{mapKey:"rotationY",stateKey:"rotation-y",animKey:"__rotationYAnim",writeResting:function(I,O){I._node.style.transform="rotateY("+O+"deg)"},keyframe:function(I){return{transform:"rotateY("+
237I+"deg)"}}}];a.Transition={animSpeed:ma,afterCompositorDelay:t,cancel:function(I){I&&I._node&&ba.forEach(function(O){y(I,O)})},clearNodeTimer:B,consumeStashedThemeSwap:v,finalizePendingResize:d,hasActiveAnimations:function(){return 0<L},pacedSchedule:function(I){function O(){r||l||(r=!0,f&&f())}function fa(P){try{b&&b(P)}catch(ca){console.error("pacedSchedule: onItem threw for index "+P,ca)}}function ta(){if(!l){for(var P=0;D<ua&&P<na&&u()>=N;)if(fa(D),D+=1,P+=1,N=u()+qa,l)return;D>=ua?O():h(ta)}}
238I=I||{};var ua=I.count||0,qa=I.interval||0,na=0<I.maxPerFrame?I.maxPerFrame:1,b=I.onItem,f=I.onDone,u=I.now||function(){return"undefined"!==typeof window&&window.performance&&window.performance.now?window.performance.now():Date.now()},l=!1,r=!1,D=0;I={cancel:function(){l=!0},flush:function(){if(!l&&!r){for(;D<ua&&!l;)fa(D),D+=1;O()}}};if(0>=ua)return O(),I;if(0>=qa){for(;D<ua&&!l;)fa(D),D+=1;O();return I}var N=u();h(ta);return I},run:e,setNodeTimer:S,startAnimation:function(I,O,fa,ta){var ua=A(I,
239O,fa,ta),qa={isCurrent:function(){return!(!I||I.getData(O)!==ua)},afterNextPaint:function(na){p(function(){qa.isCurrent()&&na()})},clearTimers:function(na){F(I,na)},run:function(na,b){M(qa.isCurrent,Object.merge({node:I},na),b)},sequence:function(na,b){J(qa.isCurrent,na.map(function(f){return Object.merge({node:I},f)}),b)},setTimer:function(na,b,f){return S(I,na,b,function(){qa.isCurrent()&&f()})}};return qa}};a.Transition.Sequence=function(I,O){this.index=-1;a.Transition.Sequence.prototype.init=
240function(fa,ta){this.configs=fa;this.options=ta||{};
240this.startIndex=this.options.startIndex||0};a.Transition.Sequence.prototype.run=function(fa){this.cb=fa;this.next()};a.Transition.Sequence.prototype.next=function(){this.index+=1;this.index>=this.configs.length&&this.options.loop&&(this.index=this.startIndex);if(this.stopped||this.index>=this.configs.length)this.cb&&this.cb(),this.stopCB&&this.stopCB();else{var fa=this.configs[this.index];"function"===typeof fa?(fa(),this.next()):fa.delay?setTimeout(function(){this.runTransition(fa)}.bind(this),
241fa.delay):e(Object.merge(base.clone(fa),{cb:this.next.bind(this)}))}};a.Transition.Sequence.prototype.runTransition=function(fa){this.options.loop?this.anim=e(Object.merge(base.clone(fa),{loop:!0,iterations:this.options.iterations})):e(Object.merge(base.clone(fa),{cb:this.next.bind(this)}))};a.Transition.Sequence.prototype.stop=function(fa){this.stopped=!0;this.stopCB=fa;this.anim&&("function"===typeof this.anim.cancel&&this.anim.cancel(),this.anim=null)};this.init(I,O)}},"1.0",{requires:["node"]});
242YUI.add("KeyboardShortcuts",function(a){function q(k){w[k].forEach(function(x){x()})}var w={};a.KeyboardShortcuts={on:function(k,x){w.hasOwnProperty(k)||(w[k]=[],Mousetrap.bind(k,function(){q(k)}));w[k].contains(x)||w[k].push(x)},detach:function(k,x){w.hasOwnProperty(k)&&(w[k].remove(x),w[k].length||(delete w[k],Mousetrap.unbind(k)))}}},"1.0",{requires:["node"]});
243YUI.add("Animation",function(a){function q(e,h){var p={};Object.keys(e||{}).forEach(function(t){p[t]=e[t]});Object.keys(h||{}).forEach(function(t){p[t]=h[t]});return p}function w(e){e=e||{};return q(q(H,c[e.preset]||{}),e)}function k(e){return e?Array.isArray(e)?e.slice():[e]:[]}function x(e){return e?Array.isArray(e)?e.filter(Boolean):[e]:[]}function y(e,h){var p=[];k(h).forEach(function(t){p=p.concat(e.getPieces(t))});return p}function v(){return!a.wocg||!a.wocg.User||!a.wocg.User.getAnimationsMode||
2442===a.wocg.User.getAnimationsMode()}function d(){var e="undefined"!==typeof window&&window.party?window.party:null;if(e)return Promise.resolve(e);if("undefined"===typeof document)return Promise.resolve(null);m||(m=new Promise(function(h){var p=document.createElement("script");p.async=!0;p.src=a.wocg.buildAssetJSURL("js/party.min");p.onload=function(){h(window.party||null)};p.onerror=function(){h(null)};document.head.appendChild(p)}));return m}function n(e){d().then(function(h){h&&e(h)})}a.Animation=
245a.Animation||{};var m=null,H={panelDuration:240,panelScale:.96,panelMarginTop:8,itemDuration:80,itemDelay:160,itemStagger:16,itemScale:.94,itemMarginTop:6,enterEasing:"ease-out-2",exitDuration:160,exitBuffer:60,exitScale:.98,exitMarginTop:6,exitEasing:"ease-in"},c={inlineChoiceRow:{panelDuration:160,panelScale:.98,panelMarginTop:4,itemDuration:160,itemDelay:0,itemStagger:16,itemScale:.96,itemMarginTop:4,exitDuration:160,exitBuffer:60,exitScale:.98,exitMarginTop:4},singleAction:{panelDuration:160,
246panelScale:.98,panelMarginTop:4,itemDuration:160,itemDelay:0,itemStagger:0,itemScale:.96,itemMarginTop:4,exitDuration:160,exitBuffer:60,exitScale:.98,exitMarginTop:4},reviewPanel:{panelDuration:240,panelScale:.98,panelMarginTop:8,itemDuration:240,itemDelay:160,itemStagger:16,itemScale:.98,itemMarginTop:8,exitDuration:160,exitBuffer:60,exitScale:.98,exitMarginTop:8}};a.Animation.createSpotGroupAnimation=function(e,h){function p(){G.forEach(function(L){clearTimeout(L)});G=[]}function t(){p();return J+=
2471}function B(L){k(L).forEach(function(T){E[T]&&(clearTimeout(E[T]),delete E[T])})}function F(L,T,ma){L=setTimeout(function(){ma===J&&T()},L);G.push(L)}function S(L,T,ma,ea,ba,X,I){L.forEach(function(O){O&&O.node&&(a.Transition.cancel(O.node),O.node.setStyle("pointerEvents",""),O.node.setStyle("opacity",0),O.node.setStyle("marginTop","0px"),O.node.setScaleStyle(ma),O.node.setTranslateYStyle(ea),F(T,function(){O.node&&!O.destroyed&&a.Transition.run({node:O.node,opacity:1,scale:1,y:0,duration:ba,easing:X})},
248I))})}var A=h||{},M=w(A),J=0,G=[],E={};return{getOption:function(L){return M[L]},hide:function(L){L=w(q(A,L));var T=k(L.spotids),ma=y(e,T);ma.length?(t(),B(T),ma.forEach(function(ea){ea.node&&!ea.destroyed&&(a.Transition.cancel(ea.node),ea.node.setStyle("pointerEvents","none"),ea.node.setStyle("opacity",ea.node.getStyle("opacity")||1),a.Transition.run({node:ea.node,opacity:0,scale:L.exitScale,y:L.exitMarginTop,duration:L.exitDuration,easing:L.exitEasing}))}),!1!==L.remove&&T.forEach(function(ea){var ba=
249setTimeout(function(){E[ea]===ba&&(delete E[ea],e.removeSpotPieces([ea],{exit:"instant"}))},L.exitDuration+L.exitBuffer);E[ea]=ba})):B(T)},show:function(L){L=w(q(A,L));var T=q({skipAnimation:!0,suppressFadeIn:!0},L.updateOptions),ma=k(L.panelSpotids),ea=k(L.itemSpotids);if(ma.length||ea.length){var ba=t();B(ma.concat(ea));ma.forEach(function(X){e.updateSpot(X,T);S(y(e,X),0,L.panelScale,L.panelMarginTop,L.panelDuration,L.enterEasing,ba)});ea.forEach(function(X,I){e.updateSpot(X,T);S(y(e,X),L.itemDelay+
250I*L.itemStagger,L.itemScale,L.itemMarginTop,L.itemDuration,L.enterEasing,ba)})}},showPieceGroups:function(L){L=w(q(A,L));var T=L.groups||L.pieceGroups||[];if(T.length){var ma=t(),ea=[];
250T.forEach(function(ba){x(ba.pieces||ba).forEach(function(X){X&&X.spotid&&ea.push(X.spotid)})});B(ea);T.forEach(function(ba,X){var I=x(ba.pieces||ba);S(I,"number"===typeof ba.delay?ba.delay:L.itemDelay+X*L.itemStagger,"number"===typeof ba.scale?ba.scale:L.itemScale,"number"===typeof ba.marginTop?ba.marginTop:L.itemMarginTop,
251"number"===typeof ba.duration?ba.duration:L.itemDuration,ba.easing||L.enterEasing,ma)})}},showPieces:function(L){L=w(q(A,L));var T=x(L.panelPieces),ma=x(L.itemPieces||L.pieces);if(T.length||ma.length){var ea=t();B(T.concat(ma).map(function(ba){return ba&&ba.spotid}).filter(Boolean));T.forEach(function(ba){S([ba],0,L.panelScale,L.panelMarginTop,L.panelDuration,L.enterEasing,ea)});ma.forEach(function(ba,X){S([ba],L.itemDelay+X*L.itemStagger,L.itemScale,L.itemMarginTop,L.itemDuration,L.enterEasing,ea)})}}}};
252a.Animation.preloadParty=function(){return a.wocg&&a.wocg.User&&a.wocg.User.getAnimationsMode&&2===a.wocg.User.getAnimationsMode()?d():null};a.Animation.getCardPartyConfettiSettings=function(e,h){var p=null,t=.8;e&&e.gameLayout&&"function"===typeof e.getSpotNum&&(e=e.gameLayout.getPlayerSpotPosition(e.getSpotNum(h)),"E"===e||"NE"===e?p="left":"W"===e||"NW"===e?p="right":"N"===e&&(t=.88));return{direction:p,moveRatio:t}};a.Animation.runPartyConfetti=function(e,h,p){v()&&"undefined"!==typeof window&&
253window.performance&&"function"===typeof window.performance.now&&n(function(t){a.Animation._doConfetti(e,h,p,t)})};a.Animation._doConfetti=function(e,h,p,t){function B(X,I,O){var fa=Math.cos(J),ta=Math.sin(J);var ua=X*fa-I*ta;X=X*ta+I*fa;I=t.Rect.fromElement(M);I.x=E+ua;I.y=L+X+(O||0);I.width=I.height=1;return I}function F(X){return t.variation.range(X-0,X+0)}function S(X,I){return"left"===p?F(-105):"right"===p?F(-75):"up"===p?F(-90):"down"===p?F(90):X.x<ea?t.variation.range(-98,-98-I):t.variation.range(-82,
254-82+I)}if("undefined"!==typeof window&&window.performance&&"function"===typeof window.performance.now&&t&&t.scene&&t.scene.current){t.settings.gravity=180;var A=["heart","spade","diamond","club"];A.forEach(function(X){t.resolvableShapes[X]=t.resolvableShapes[X]||'<img src="'+a.wocg.buildAssetImageURL("images/suit"+X.charAt(0).toUpperCase()+X.slice(1)+".svg")+'" width="40px" height="40px"/>'});h=h||function(){return A[Math.floor(Math.random()*A.length)]};({left:!0,right:!0,up:!0,down:!0})[p]||(p=null);
255var M=e&&e._node?e._node:e;if(M&&1===M.nodeType&&window.getComputedStyle){var J=0;(e=window.getComputedStyle(M).transform)&&"none"!==e&&(e=e.match(/matrix(?:3d)?\(([^)]+)\)/))&&(e=e[1].split(",").map(parseFloat),J=Math.atan2(e[1],e[0]));var G=t.Rect.fromElement(M),E=G.x+G.width/2-20,L=G.y+G.height/2-10,T=[];[{positions:[.15,.4,.6,.85],edge:"vertical"},{positions:[.2,.5,.8],edge:"horizontal"}].forEach(function(X){X.positions.forEach(function(I){var O=40*(1-2*Math.abs(I-.5))/2;if("vertical"===X.edge){I=
256(I-.5)*G.height;var fa=G.width/2-10+O;T.push(B(-G.width/2+10-O,I));T.push(B(fa,I))}else I=(I-.5)*G.width,fa=G.height/2-10+O,T.push(B(I,-G.height/2+10-O,-10)),T.push(B(I,fa,10))})});var ma=C.PIECE_MOVE_DURATION/1E3,ea=G.x+G.width/2,ba=[(new t.ModuleBuilder).drive("size").by(new t.NumericSpline({time:0,value:.4},{time:.64,value:1})).through("relativeLifetime").relative().build(),(new t.ModuleBuilder).drive("opacity").by(new t.NumericSpline({time:0,value:0},{time:.32,value:1},{time:.64,value:1},{time:1,
257value:0})).through("relativeLifetime").build()];T.forEach(function(X){var I=S(X,16*Math.pow(Math.min(Math.abs(X.x-ea)/(G.width/2),1),2));t.scene.current.createEmitter({emitterOptions:{loops:1,duration:ma,useGravity:!0,modules:ba},emissionOptions:{rate:0,bursts:[{time:0,count:1}],sourceSampler:t.sources.dynamicSource(X),angle:I,initialLifetime:ma,initialSpeed:t.variation.range(88,96),initialSize:t.variation.range(.4,1),initialRotation:function(){return new t.Vector(0,0,0)}},rendererOptions:{shapeFactory:h}})})}}};
258a.Animation.runPartySparkles=function(e){v()&&n(function(h){a.Animation._doSparkles(e,h)})};a.Animation._doSparkles=function(e,h){function p(){if("undefined"===typeof document)return!1;var ba=document.getElementById("party-js-container");if(!ba)return!1;var X=A||document.body;ba.parentNode!==X&&X.appendChild(ba);ba.style.position=A?"absolute":"fixed";ba.style.left="0";ba.style.top="0";ba.style.width=A?"100%":"100vw";ba.style.height=A?"100%":"100vh";ba.style.pointerEvents="none";ba.style.display="block";
259ba.style.visibility="visible";ba.style.opacity="1";ba.style.zIndex=String(S);return!0}if(h&&h.sparkles){var t=null;if("undefined"!==typeof document){t=document.createElement("span");t.style.position="relative";t.style.display="block";t.style.width="1px";t.style.height="1px";t.style.overflow="visible";var B=document.createElement("img");B.src=a.wocg.buildAssetImageURL("images/gameOverStar.svg");B.style.position="absolute";B.style.left="0";B.style.top="0";B.style.width="32px";B.style.height="32px";
260B.style.transform="translate(-50%, -50%)";t.appendChild(B)}if((e=e&&e._node?e._node:e)&&1===e.nodeType){var F=e;"undefined"!==typeof document&&e.id&&0===e.id.indexOf("spot-")&&(B=document.querySelector(".piece."+e.id))&&(F=B);B=0;"undefined"!==typeof window&&window.getComputedStyle&&(F=window.getComputedStyle(F).zIndex,F=parseInt(F,10),isNaN(F)||(B=F));
260!B&&e&&"spot-gameOverBackground"===e.id&&(B=9594);var S=B+2;h&&h.settings&&"undefined"!==typeof h.settings.zIndex&&(h.settings.zIndex=S);B=null;F=
261e;var A="undefined"!==typeof document&&"spot-gameOverBackground"===e.id?document.getElementById("playspace")||document.querySelector(".playspace"):null;if("undefined"!==typeof document&&"spot-gameOverBackground"===e.id){var M=document.querySelector(".piece.spot-gameOverBackground");if(M&&M.getBoundingClientRect&&h.Rect){var J=M.getBoundingClientRect(),G=parseFloat(M.style.getPropertyValue("--end-modal-background-center-x"));M=parseFloat(M.style.getPropertyValue("--end-modal-background-center-y"));
262if(!isNaN(G)&&!isNaN(M)){B="undefined"!==typeof window?window.scrollX:0;var E="undefined"!==typeof window?window.scrollY:0;if(A&&A.getBoundingClientRect){var L=A.getBoundingClientRect();B=new h.Rect(B+J.left+G-L.left,E+J.top+M-L.top,1,1)}else B=new h.Rect(B+J.left+G,E+J.top+M,1,1)}}F=document.getElementById("spot-gameOverBackdrop")||F}var T=e;G=200;if(!B&&"undefined"!==typeof document&&F.getBoundingClientRect){J=F.getBoundingClientRect();"undefined"!==typeof window&&"number"===typeof window.innerWidth&&
263"number"===typeof window.innerHeight&&(G=document.documentElement,G=Math.max(40,Math.min(G&&G.clientWidth?G.clientWidth:window.innerWidth,G&&G.clientHeight?G.clientHeight:window.innerHeight)/2));for(M=F.parentElement;M&&!M.classList.contains("playspace");)M=M.parentElement;M||(M=F.parentElement||e.parentElement||document.body);F=M.getBoundingClientRect();E=document.createElement("div");E.style.position="absolute";E.style.left=J.left+J.width/2-F.left+"px";E.style.top=J.top+J.height/2-F.top+"px";E.style.width=
264"1px";E.style.height="1px";E.style.pointerEvents="none";E.style.zIndex=String(S);M.appendChild(E);T=E}J=1.4*G;F=J/160;J/=80;F={count:h.variation.range(4,8),lifetime:h.variation.range(F,J),speed:h.variation.range(80,160)};t&&(F.shapes=t);h.sparkles(B||T,F);if(!p())if("undefined"!==typeof window&&window.requestAnimationFrame){var ma=0,ea=function(){ma++;p()||30>ma&&window.requestAnimationFrame(ea)};window.requestAnimationFrame(ea)}else"undefined"!==typeof setTimeout&&setTimeout(p,0);T!==e&&T.parentNode&&
265setTimeout(function(){T&&T.parentNode&&T.parentNode.removeChild(T)},2E3)}}};a.Animation.runFloater=function(e,h,p){if(!(a.wocg&&a.wocg.User&&a.wocg.User.getAnimationsMode&&2!==a.wocg.User.getAnimationsMode())&&e&&e.getXY&&"string"===typeof h&&h){var t=e.getXY();if(t){var B=1.5*C.PIECE_MOVE_DURATION;p=.8*e.get("offsetWidth");var F=2*e.get("offsetHeight"),S=t[0]+e.get("offsetWidth")/2;e=t[1]+e.get("offsetHeight")/2;var A=a.Node.create('<div class="animation-floater"><img src="'+a.wocg.buildAssetImageURL("images/suit"+
266h.charAt(0).toUpperCase()+h.slice(1)+".svg")+'" width="100%" height="100%" style="display:block"/></div>');A.setStyles({position:"absolute",left:S-p/2+"px",top:e-p/2+"px",width:`${p}px`,height:`${p}px`,zIndex:1E4,opacity:0,pointerEvents:"none"});a.one("body").append(A);a.Transition.run({node:A,duration:.2*B,opacity:1});a.Transition.run({node:A,duration:B,top:e-F-p/2+"px",scale:2,easing:"ease-out-2"});setTimeout(function(){a.Transition.run({node:A,duration:.5*B,opacity:0,cb:()=>{A.remove()}})},.5*
267B)}}}},"1.0",{requires:["node","wocg","Transition"]});
268YUI.add("FitText",function(a){function q(k,x,y,v,d,n){k.setStyle("fontSize",v+"px");for(var m=k.getHeight(),H=k.getWidth();m<y&&(H<x||n&&H<=x);)v+=d,k.setStyle("fontSize",v+"px"),m=k.getHeight(),H=k.getWidth();return v-d}function w(k,x,y,v,d,n){k.setStyle("lineHeight",v+"px");for(var m=k.getHeight(),H=k.getWidth();m<=y&&(H<=x||n&&H<=x);)v+=d,k.setStyle("lineHeight",v+"px"),m=k.getHeight(),H=k.getWidth();return v-d}a.FitText={fit:function(k,x,y,v={},d="normal"){if(!k)throw Error("No text from FitText call!");
269k=k.replace(/<[^>]*>?/gm,"")||k;v.fontWeight&&(d=v.fontWeight);var n=a.Node.create("<span>").setStyle("font-weight",d);n.addClass("sizer");v.wrap&&n.setStyle("width",x+"px");n.appendChild(document.createTextNode(k));a.one("#mainContainer").append(n);var m=Math.max(1,Math.min(Math.floor(.2*y),6));d=q(n,x,y,1,m,v.wrap);d=q(n,x,y,d,1,v.wrap);v.maxSize&&(d=Math.min(d,v.maxSize));v.size&&(d=v.size);n.setStyle("fontSize",d+"px");m=w(n,x,y,1,m,v.wrap);m=w(n,x,y,m,1,v.wrap);d==v.maxSize&&(m=Math.min(m,v.maxLineHeight));
270v.lineHeight&&(m=v.lineHeight);var H=n.getWidth(),c=n.getHeight();n.remove(!0);v.wrap&&(k=k.split(" ").sort(function(e,h){return h.length-e.length}
270)[0],x=a.FitText.fit(k,x,y,{wrap:!1}),x.fontSize<d&&(d=x.fontSize));return{lineHeight:m,fontSize:d,textWidth:H,textHeight:c}}}},"1.0",{requires:[]});
271(function(a){for(var q={},w=[],k=1;13>=k;k++)w.push(k+"c"),w.push(k+"d"),w.push(k+"h"),w.push(k+"s");var x={club:"c",diamond:"d",spade:"s",heart:"h"},y={"1c":"club","1s":"spade","1h":"heart","1d":"diamond"},v=w.concat(["rj","bj"]);q.RANK_QUEEN=12;q.CARDIDS=v.concat("back");q.SUITS=["club","diamond","spade","heart"];q.TWENTYNINE_RANKING=[7,8,12,13,10,1,9,11];q.TWENTYNINE_HIGH_RANK=7;q.TWENTYNINE_VALUES=[0,0,0,0,1,1,2,3];q.TWENTYNINE_RANKING_LENGTH=q.TWENTYNINE_RANKING.length;q.PINOCHLEDD_RANKING=[11,
27212,13,10,1];q.PINOCHLEDD_VALUES=[0,0,1,1,1];q.PINOCHLEDD_RANKING_LENGTH=q.PINOCHLEDD_RANKING.length;q.PINOCHLEDD_4RUNS="1h 10h 13h 12h 11h 1d 10d 13d 12d 11d 1c 10c 13c 12c 11c 1s 10s 13s 12s 11s".split(" ");q.PINOCHLE_RANKING=[9,11,12,13,10,1];q.PINOCHLE_VALUES=[0,0,0,1,1,1];q.PINOCHLE_RANKING_LENGTH=q.PINOCHLE_RANKING.length;q.PINOCHLE_4RUNS="1h 10h 13h 12h 11h 1d 10d 13d 12d 11d 1c 10c 13c 12c 11c 1s 10s 13s 12s 11s".split(" ");q.formatTimeAgo=function(c){var e=Date.now();c=Math.floor(Math.floor((e-
273c)/1E3)/60);e=Math.floor(c/60);var h=Math.floor(e/24),p=Math.floor(h/7),t=Math.floor(h/30);return 0<t?1===t?"1 month ago":t+" months ago":0<p?1===p?"1 week ago":p+" weeks ago":0<h?1===h?"1 day ago":h+" days ago":0<e?1===e?"1 hour ago":e+" hours ago":0<c?1===c?"1 minute ago":c+" minutes ago":"Just now"};q.formatNumberWithCommas=function(c){if("undefined"===typeof c||null===c)return"";var e=String(c),h="-"===e[0];h&&(e=e.substring(1));if(!/^\d+$/.test(e))return(h?"-":"")+String(c);e=e.replace(/\B(?=(\d{3})+(?!\d))/g,
274",");return(h?"-":"")+e};q.formatGuestNumberUsername=function(c){if("undefined"===typeof c||null===c||""===c)return"Guest";c=parseInt(c,10);return isNaN(c)?"Guest":"Guest #"+q.formatNumberWithCommas(c)};q.getDisplayName=function(c,e){return"string"===typeof c&&c&&"null"!==c&&"Guest"!==c?c:q.formatGuestNumberUsername(e)};q.getDefaultAvatar=function(c,e){if(!e||!e.length)return null;c=parseInt(c,10);isNaN(c)&&(c=0);return e[Math.abs(c)%e.length]};q.normalizeHashValues=function(c,e){if(!c)return[];if(Array.isArray(c))return c;
275for(var h=[],p=0;p<e.length;p++)h.push(c[e[p]]);return h};q.getMutualIds=function(c,e){if(!(c&&c.length&&e&&e.length))return[];for(var h={},p=0;p<e.length;p++)h[String(e[p])]=!0;e=[];for(p=0;p<c.length;p++){var t=c[p];h[String(t)]&&e.push(t)}return e};q.partitionByMutual=function(c,e){if(!c||!c.length)return{mutual:[],onlyA:[]};var h={};if(e&&e.length)for(var p=0;p<e.length;p++)h[String(e[p])]=!0;e=[];p=[];for(var t=0;t<c.length;t++){var B=c[t];h[String(B)]?e.push(B):p.push(B)}return{mutual:e,onlyA:p}};
276q.buildFriendStatusText=function(c,e,h,p){p=p||{};c.gameid&&c.tableid?p.currentTableId&&c.tableid===p.currentTableId?h="Playing with you":(e=e.GAME_NAMES[c.gameid]||c.gameid,h=c.playing?p.showSolo&&c.solo?"Playing "+h(e)+" solo":"Playing "+h(e):"Waiting for "+h(e),c.playing&&p.showDuration&&p.formatGameDuration&&(e=p.formatGameDuration(c.startedAt))&&(h+=" · "+e)):h=c.online?"Online":p.formatLastSeen&&c.lastSeen?p.formatLastSeen(c.lastSeen):"Offline";p.showFriend&&c.isFriend&&(h+=" · Friend");return h};
277q.getFriendSortPriority=function(c){var e=!!c.gameid,h=c.online,p=c.isFriend;return 0<(c.unread||0)?0:e&&p?1:e&&!p?2:h&&p?3:h&&!p?4:5};q.compareFriends=function(c,e){var h=q.getFriendSortPriority(c),p=q.getFriendSortPriority(e);return h!==p?h-p:c.online||e.online||(c=c.lastSeen||0,e=e.lastSeen||0,c===e)?0:e-c};q.sortFriendsList=function(c,e){if(!c||0===c.length)return c;c.sort(function(h,p){return q.compareFriends(h,p,e)});return c};q.copyToClipboard=function(c,e,h){e=e||function(){};h=h||function(){};
278if(navigator.clipboard&&"function"===typeof navigator.clipboard.writeText)navigator.clipboard.writeText(c).then(e,h);else try{var p=document.createElement("textarea");p.value=c;p.setAttribute("readonly","");p.style.position="absolute";p.style.left="-9999px";document.body.appendChild(p);p.select();p.setSelectionRange(0,p.value.length);var t=document.execCommand("copy");document.body.removeChild(p);t?e():h()}catch(B){h()}};q.teams=function(c){return[0,1]};q.team=function(c){return 0===c||2===c?0:1};
279q.opponentTeam=function(c){return 0===c?1:0};q.teamMate=function(c){return 2>c?c+2:c-2};q.suitLetter=function(c){if(c=x[c])return c;throw Error("Invalid suit");};q.createDeck=function(c){return c?v.slice():w.slice()};q.name=function(c){if("bj"===c)return"Black Joker";if("rj"===c)return"Red Joker";if("back"===c)return"Card Back";if(c.startsWith("base"))return"Card Base";var e=q.rank(c);1===e?e="Ace":11===e?e="Jack":12===e?e="Queen":13===e&&(e="King");return e+" of "+q.suit(c).capitalize()+"s"};q.suit=
280function(c){return"bj"===c||"rj"===c?"j":"back"===c?"back":c.startsWith("base")?"base":c.endsWith("c")?"club":c.endsWith("h")?"heart":c.endsWith("d")?"diamond":c.endsWith("s")?"spade":""};q.suitColor=function(c){return"heart"===c||"diamond"===c?"red":"black"};q.suitSameColor=function(c){return{diamond:"heart",spade:"club",club:"spade",heart:"diamond"}[c]};q.suitOppositeColor=function(c){return{diamond:["spade","club"],heart:["spade","club"],club:["heart","diamond"],spade:["heart","diamond"]}[c]};
281q.suitSymbol=function(c){return{diamond:"♦",spade:"♠",club:"♣",heart:"♥",undeclared:"?","7th":"7ᵗʰ",notrump:"NT"}[c]};q.sortProp=function(c){return"bj"===c?4:"rj"===c?5:"back"===c?6:c.startsWith("base")?-1:q.suitSortProp(q.suit(c))};q.color=function(c){return q.isRed(c)?"red":"black"};q.suitSortProp=function(c){return{club:0,diamond:1,spade:2,heart:3}[c]};q.isRed=function(c){var e=q.suit(c);return"diamond"===e||"heart"===e||"rj"===c};q.isBlack=function(c){var e=q.suit(c);return"club"===e||"spade"===
282e||"bj"===c};q.isJoker=function(c){return c.endsWith("j")};q.rank=function(c,e){return"back"===c||c.startsWith("base")||q.isJoker(c)?0:+c.strip("cdhs")+(e&&q.suit(c)===e?13:0)};q.rankHighToLow=function(c,e){return"back"===c||c.startsWith("base")||q.isJoker(c)?0:14-c.strip("cdhs")+(e&&q.suit(c)===e?13:0)};q.rankAceHigh=function(c,e){if("back"===c||c.startsWith("base")||q.isJoker(c))return 0;var h=+c.strip("cdhs");1===h&&(h+=13);e&&q.suit(c)===e&&(h+=14);return h};q.rankQueenHigh=function(c){if("back"===
283c||c.startsWith("base")||q.isJoker(c))return 0;var e=+c.strip("cdhs");1===e&&(e+=13);"hearts"===q.suit(c)&&(e+=14);"12s"===c&&(e=100);return e};q.rankTwoHigh=function(c){if("back"===c||c.startsWith("base"))return 0;var e=+c.strip("cdhs");1===e&&(e+=13);2===e&&(e+=14);
283q.isJoker(c)&&(e+=15);return e};q.rankName=function(c,e){var h=q.rank(c),p="";q.isJoker(c)?p="Joker":1===h?p="Ace":2===h?p="Two":3===h?p="Three":4===h?p="Four":5===h?p="Five":6===h?p="Six":7===h?p="Seven":8===h?p="Eight":9===h?p="Nine":
28410===h?p="Ten":11===h?p="Jack":12===h?p="Queen":13===h&&(p="King");return p+(e?6===h?"es":"s":"")};q.cardsBySuit=function(c,e){for(var h={},p=0;p<q.SUITS.length;p++)h[q.SUITS[p]]=[];if(c){p=c.length;for(var t=0;t<p;t++){var B=e?e(c[t]):q.suit(c[t]);h[B].push(c[t])}}return h};q.cardsByEuchreSuit=function(c,e){for(var h={},p=0;p<q.SUITS.length;p++)h[q.SUITS[p]]=[];if(c){p=c.length;for(var t=0;t<p;t++){var B=q.euchreSuit(c[t],e);h[B].push(c[t])}}return h};q.sortSuitsByLengthInSuit=function(c,e){c.sort(function(h,
285p){return e[h].length-e[p].length});return c};q.highestCardInEachSuit=function(c,e,h,p){var t=[];c.forEach(function(B){e[B].sort(h);B=e[B];B.length&&(p?t.push(B[B.length-1]):t.push(B[0]))});return t};q.strongestSuitInHand=function(c){for(var e={},h=0;h<q.SUITS.length;h++)e[q.SUITS[h]]=0;h=-1;var p={};if(c)for(var t=c.length,B=0;B<t;B++){var F=q.suit(c[B]);e[F]++;e[F]>=h?(h=e[F],p[F]=h):delete p[F]}return p};q.spadesTrollNil=function(c){if(!c||!c.length||13!==c.length)return!1;if(-1<c.indexOf("1s"))return!0;
286var e={club:0,spade:0,heart:0,diamond:0},h={club:0,spade:0,heart:0,diamond:0};c.forEach(function(p){var t=q.suit(p);h[t]++;y[p]&&e[t]++});return q.SUITS.some(function(p,t){return 0<e[p]&&1===h[p]})?!0:5<h.spade};q.randomCard=function(){return w.pickRandom()};q.ginrummyRank=function(c,e){c=q.rank(c);10<c&&!e&&(c=10);return c};q.euchreRank=function(c,e){var h=q.rankAceHigh(c,e);e&&11===q.rank(c)&&(q.suit(c)===e?h+=4:q.color(c)===q.suitColor(e)&&(h+=17.5));return h};q.createEuchreDeck=function(){return q.createDeck().filter(function(c){return 9<=
287q.rankAceHigh(c)})};q.createSheepsheadDeck=function(){return q.createDeck().filter(function(c){c=q.rankAceHigh(c);return 7<=c&&14>=c})};q.sheepsheadSuit=function(c,e){if(!c)return null;e=e||"diamond";var h=q.suit(c);if("back"===h||"base"===h||"j"===h)return h;c=q.rank(c);return 12===c||11===c||h===e?e:h};q.sheepsheadRank=function(c,e){if(!c)return-1;e=e||"diamond";var h={club:4,spade:3,heart:2,diamond:1},p=q.suit(c);if("back"===p||"base"===p||"j"===p)return-1;var t=q.rank(c);return 12===t?900+(h[p]||
2880):11===t?800+(h[p]||0):q.sheepsheadSuit(c,e)===e?700+({1:60,10:50,13:40,9:30,8:20,7:10}[t]||0):({club:300,spade:200,heart:100}[p]||0)+({1:70,10:60,13:50,9:30,8:20,7:10}[t]||0)};q.sheepsheadValue=function(c){if(!c)return 0;c=q.rank(c);return 1===c?11:10===c?10:13===c?4:12===c?3:11===c?2:0};q.cardsBySheepsheadSuit=function(c,e){e=e||"diamond";var h={club:[],diamond:[],spade:[],heart:[]};if(!c)return h;for(var p=0;p<c.length;p++){var t=c[p],B=q.sheepsheadSuit(t,e);h[B]||(h[B]=[]);h[B].push(t)}return h};
289q.pointsInStackSheepshead=function(c){if(!c||!c.length)return 0;for(var e=0,h=0;h<c.length;h++)e+=q.sheepsheadValue(c[h]);return e};q.euchreSuit=function(c,e){var h=q.suit(c);e&&11===q.rank(c)&&q.color(c)===q.suitColor(e)&&(h=e);return h};q.leadCard=function(c,e,h,p,t){var B=!1;if(h){var F=q.suitColor(e);var S=c.filter(function(L){L=q.color(L);return F!==L});var A=q.cardsBySuit(S);if((S=q.SUITS.filter(function(L){var T=A[L];L=q.suitLetter(L);return T.length&&0>T.indexOf("1"+L)}))&&S.length)S=A[S[0]].sort(q.rankAceHigh),
290B=S[0];else{var M=c.filter(function(L){var T=q.color(L);return F===T&&q.suit(L)!==e});M.length&&(S=M.sort(q.rankAceHigh),B=S[M.length-1])}}B||(S=c[4],q.suit(S)===e&&11===q.rank(S)&&p&&(B=S));var J=[],G={};B||c.some(function(L,T){T=q.euchreSuit(L,e);if(T!==e&&1===q.rank(L)&&!G[T])return B=L,!0;G[T]||(G[T]=[]);G[T].push(L);T===e&&J.push(L)});!B&&!h&&(S=J.slice().sort(function(L,T){return q.euchreRank(L,e)-q.euchreRank(T,e)}))&&1<S.length&&p&&(p=S[0],M=q.rank(p),9===M||10===M)&&(B=t&&3<=S.length?S[S.length-
2911]:p);if(!B)for(var E in G)if(1===G[E].length&&q.euchreSuit(G[E][0],e)!==e){B=G[E][0];break}if(!B)if(h){for(h=c.length-1;0<=h;h--)if(t=c[h],q.euchreSuit(t,e)!==e&&!q.isAce(t)){B=t;break}B||(B=c[0])}else B=c[0];return B};q.euchreDiscard=function(c,e,h){var p=function(A,M){return q.euchreRank(A,e)-q.euchreRank(M,e)};c=c.slice();var t=null,B=!1;-1<c.indexOf(h)&&(c.remove(h),B=!0);var F=q.cardsByEuchreSuit(c,e);B||(B=!!F[e].length);if(B){var S=[];
291q.SUITS.forEach(function(A){e!==A&&(A=F[A],1===A.length&&
292S.push(A[0]))});S.length&&(S.sort(p),t=S[0])}t||(t=c.sort(p)[0]);return t};q.twentynineRank=function(c,e){var h=+c.strip("cdhs");h=q.TWENTYNINE_RANKING.indexOf(h);e&&q.suit(c)===e&&(h+=q.TWENTYNINE_RANKING_LENGTH);return h};q.twentynineValue=function(c){c=+c.strip("cdhs");return q.TWENTYNINE_VALUES[q.TWENTYNINE_RANKING.indexOf(c)]};q.pinochleddRank=function(c,e){var h=+c.strip("cdhs");h=q.PINOCHLEDD_RANKING.indexOf(h);e&&q.suit(c)===e&&(h+=q.PINOCHLEDD_RANKING_LENGTH);return h};q.pinochleddRankDedupe=
293function(c,e,h,p){var t=+c.strip("cdhs");t=q.PINOCHLEDD_RANKING.indexOf(t);t=4*t+e;h&&q.suit(c)===h&&(t+=4*q.PINOCHLEDD_RANKING_LENGTH);p&&(t=-t);return t};q.pinochleddValue=function(c){var e=+c.strip("cdhs");if(0>q.PINOCHLEDD_RANKING.indexOf(e))throw new RangeError("pinochleddValue invalid input "+c);return q.PINOCHLEDD_VALUES[q.PINOCHLEDD_RANKING.indexOf(e)]};q.pinochleRank=function(c,e){var h=+c.strip("cdhs");h=q.PINOCHLE_RANKING.indexOf(h);e&&q.suit(c)===e&&(h+=q.PINOCHLE_RANKING_LENGTH);return h};
294q.pinochleRankDedupe=function(c,e,h,p){var t=+c.strip("cdhs");t=q.PINOCHLE_RANKING.indexOf(t);t=4*t+e;h&&q.suit(c)===h&&(t+=4*q.PINOCHLE_RANKING_LENGTH);p&&(t=-t);return t};q.pinochleValue=function(c){var e=+c.strip("cdhs");if(0>q.PINOCHLE_RANKING.indexOf(e))throw new RangeError("pinochleValue invalid input "+c);return q.PINOCHLE_VALUES[q.PINOCHLE_RANKING.indexOf(e)]};q.pickRandom=function(c,e){var h=c[Math.floor(Math.random()*c.length)];e&&c.splice(c.indexOf(h),1);return h};q.cardIsGreaterThanAnyCardsInStack=
295function(c,e,h,p,t){if(!e||0===e.length)return!0;var B=q.suit(c);if(p&&B!==p&&B!==h)return!1;for(var F=e.length,S=!0,A=0;A<F;A++){var M=e[A],J=q.suit(M);if(!p){if((J===B||J===h)&&t(c,h)<t(M,h)){S=!1;break}}else if((J===p||J===h)&&t(c,h)<t(M,h)){S=!1;break}}return S};q.pointsInStack=function(c,e){var h=0;
295c.forEach(function(p,t){p=e.call(void 0,p);h+=p});return h};q.isAce=function(c){var e=!1;c&&"string"===typeof c&&2===c.length&&"1"===c[0]&&(e=!0);return e};q.isKing=function(c){var e=!1;c&&"string"===
296typeof c&&3===c.length&&"1"===c[0]&&"3"===c[1]&&(e=!0);return e};q.isJack=function(c){var e=!1;c&&"string"===typeof c&&"1"===c[0]&&"1"===c[1]&&(e=!0);return e};q.isQueen=function(c){var e=!1;c&&"string"===typeof c&&"1"===c[0]&&"2"===c[1]&&(e=!0);return e};q.isTen=function(c){var e=!1;c&&"string"===typeof c&&"1"===c[0]&&"0"===c[1]&&(e=!0);return e};q.copyArray=function(c){var e=[];if(!c)return e;for(var h=c.length,p=0;p<h;p++)e.push(c[p].slice());return e};q.nextPlayer=function(c,e){return c+1>e-1?
2970:c+1};q.prevPlayer=function(c,e){return 0>c-1?e-1:c-1};q.canFollowTrickSuit=function(c,e){return e.some(function(h){return q.suit(h)===c})};q.computeEloExpectation=function(c,e){return 1/(1+Math.pow(10,(+e-+c)/400))};q.computeNewEloRating=function(c,e,h,p){c+=q.computeEloDelta(e,h,p);return Math.round(c)};q.computeEloDelta=function(c,e,h){return h*(c-e)};q.eloK=function(){return 25};q.aces=function(c){return c.filter(function(e){return q.isAce(e)})};q.isHeart=function(c){return"heart"===c};q.isQueenOfSpades=
298function(c){return"12s"===c};q.handHasAllPointCards=function(c){return c.every(function(e){return q.isHeart(q.suit(e))||q.isQueenOfSpades(e)})};q.heartsPoints=function(c,e){e||(e=q.suit(c));var h=0;"heart"===e?h=1:"12s"===c&&(h=13);return h};q.removeCards=function(c,e){const h=c.slice();e.forEach(p=>{p=h.indexOf(p);-1<p&&h.splice(p,1)});return h};a.utils=q;a.heartsutils={subtractPoints:function(c,e,h){var p=h.slice();p=p.sort(function(t,B){return t-B});p=p[0];if(p===h[c])return!1;h=h.map(function(t,
299B){return B===c?t:t+e});p=h.slice();p=p.sort(function(t,B){return t-B});p=p[0];return h[c]===p?!1:!0}};var d={sorter:function(c,e){return 4*(q.rank(c)-q.rank(e))+q.suitSortProp(q.suit(c))-q.suitSortProp(q.suit(e))},sortbyrank:function(c,e){return q.rank(c)-q.rank(e)},sortbysuit:function(c,e){return q.suitSortProp(q.suit(c))-q.suitSortProp(q.suit(e))},canKnock:function(c){return(c=d.compatibleMeldsInHand(c))&&c[0]&&10>=c[0].deadwood?!0:!1},mayMeldSet:function(c,e){return q.suit(c)!==q.suit(e)&&0===
300parseInt(Math.abs(q.rank(c)-q.rank(e)),10)},mayMeldRun:function(c,e){return q.suit(c)===q.suit(e)&&1===parseInt(Math.abs(q.rank(c)-q.rank(e)),10)},mayMeld:function(c,e){return d.mayMeldRun(c,e)||d.mayMeldSet(c,e)},meldsAreCompatible:function(c,e){for(var h=c.length,p=!0,t=0;t<h;t++)if(-1<e.indexOf(c[t])){p=!1;break}return p},areSequential:function(c,e){return 1===parseInt(Math.abs(q.rank(c)-q.rank(e)),10)},areEqual:function(c,e){return 0===parseInt(Math.abs(q.rank(c)-q.rank(e)),10)},compatibleMeldsInHand:function(c,
301e){e=d.allMelds(c);for(var h=e.length,p=[],t=0;t<h;t++)if(1===h){var B=[e[t]],F=d.computeDeadwood(c,B);p.push({deadwood:F,melds:B})}else for(B=t+1;B<h;B++){F=e[t];var S=e[B],A=!1;if(d.meldsAreCompatible(F,S)){A=!0;var M=[];M.push(F);M.push(S);for(var J=!1,G=B+1;G<h;G++){var E=e[G];d.meldsAreCompatible(F,E)&&d.meldsAreCompatible(S,E)&&(J=M.slice(),J.push(E),E=d.computeDeadwood(c,J),p.push({deadwood:E,melds:J}),J=!0)}J||(G=d.computeDeadwood(c,M),p.push({deadwood:G,melds:M}))}A||(A=d.computeDeadwood(c,
302[F]),M=d.computeDeadwood(c,[S]),p.push({deadwood:M,melds:[S]}),p.push({deadwood:A,melds:[F]}))}0===p.length?p.push({deadwood:d.computeDeadwood(c,[]),melds:[[]]}):1<p.length&&p.sort(function(L,T){return L.deadwood-T.deadwood});return p},computeDeadwood:function(c,e){for(var h=e.length,p=c.length,t=0,B=0;B<p;B++){for(var F=c[B],S=!1,A=0;A<h;A++)if(-1<e[A].indexOf(F)){S=!0;break}S||(t+=q.ginrummyRank(F))}return t},bestMeldOptimizedByDeadwood:function(c,e,h,p){if(!e)return[[]];if(1===e.length)return e;
303if(0===h.length)return e[0];for(var t=e[0],B=2E3,F=function(J){J=J.map(function(E){return q.ginrummyRank(E)});var G=0;0<J.length&&(G=J.reduce(function(E,L,T,ma){return E+L}));return G},S=0;S<e.length;S++){var A=e[S],M=d.laidOffData(A.melds,c,h,p);M=d.layoff(M.deadwood,p);M=F(M);M<B&&(t=A,B=M);if(0===B)break}return t},allMelds:function(c){var e=[];d.allMeldsBySuit(c,e);d.allMeldsByRank(c,e);return e},allMeldsByRank:function(c,e){c=c.sort(d.sorter);for(var h=c.length-1,p=[],t,B=0;B<h;B++){t=c[B];var F=
304c[B+1];d.areEqual(t,F)?(0===p.length&&p.push(t),p.push(F)):(t=p.length,2<t&&(p.sort(d.sortbysuit),e.push(p),3<t&&d.meldSubsetsOfSets(p,e)),p=[])}t=p.length;2<t&&(p.sort(d.sortbysuit),e.push(p),3<t&&d.meldSubsetsOfSets(p,e))},allMeldsBySuit:function(c,e){var h=q.cardsBySuit(c),p;
304Object.keys(h).forEach(function(t){t=h[t].sort(d.sortbyrank);for(var B=[],F=t.length-1,S=0;S<F;S++){var A=t[S],M=t[S+1];d.areSequential(A,M)?(0===B.length&&B.push(A),B.push(M)):(p=B.length,2<p&&(e.push(B),3<p&&d.meldSubsetsOfRuns(B,
305e)),B=[])}p=B.length;2<p&&(e.push(B),3<p&&d.meldSubsetsOfRuns(B,e))})},meldSubsetsOfRuns:function(c,e){var h=c.length;if(3<h)for(var p=h-1;2<p;p--)for(var t=h-p+1,B=0;B<t;B++){for(var F=[],S=B;S<p+B;S++)F.push(c[S]);e.push(F)}},meldSubsetsOfSets:function(c,e){if(3<c.length){var h=c.slice(0,3);e.push(h);h=c.slice(1,4);e.push(h);h=[c[0],c[2],c[3]];e.push(h);h=[c[0],c[1],c[3]];e.push(h)}},layoff:function(c,e){if(c&&1>c.length||10===e.flatten().length)return[];e=d.meldsAsSetsAndRuns(e);var h=e.runs,p=
306h.length,t=q.cardsBySuit(c);for(c=0;c<p;c++){var B=h[c],F=q.suit(B[0]);(F=t[F])&&0<F.length&&d.layoffDeadwoodIntoMeldRun(F,B,0)}var S=[];Object.keys(t).forEach(function(A){S=S.concat(t[A])});e=e.sets;h=e.length;for(p=0;p<h;p++)c=e[p],4>c.length&&0<S.length&&d.layoffDeadwoodIntoMeldSet(S,c,0);return S},layoffDeadwoodIntoMeldSet:function(c,e,h){if(h<c.length){if(q.rank(e[0])===q.rank(c[h])){var p=c.splice(h,1);e.push(p[0]);return d.layoffDeadwoodIntoMeldSet(c,e,h)}return d.layoffDeadwoodIntoMeldSet(c,
307e,h+1)}return!1},layoffDeadwoodIntoMeldRun:function(c,e,h){var p=!1;if(h<c.length){var t=q.rank(c[h]),B=q.rank(e[0]);t<q.rank(e[0])?(t=parseInt(Math.abs(t-B),10),1===t&&(e.unshift(c[h]),c.splice(h,1),p=!0)):(B=q.rank(e[e.length-1]),t>B&&(t=parseInt(Math.abs(t-B),10),1===t&&(e.push(c[h]),c.splice(h,1),p=!0)));return p?d.layoffDeadwoodIntoMeldRun(c,e,0):d.layoffDeadwoodIntoMeldRun(c,e,h+1)}return p},meldsAsSetsAndRuns:function(c){for(var e={},h=c.length,p=[],t=[],B=0;B<h;B++){var F=c[B];!Array.isArray(F)||
3082>F.length||(d.sameSuit(F[0],F[1])?p.push(F):t.push(F))}e.runs=p;e.sets=t;return e},sameSuit:function(c,e){return q.suit(c)===q.suit(e)},validateMelds:function(c,e){if(1===c.length&&0===c[0].length)return!0;var h=c.every(function(F){return d.meldIsValid(F)});if(!h)return h;for(var p=c.length,t=0;t<p-1;t++)for(var B=t+1;B<p;B++)if(!d.meldsAreCompatible(c[t],c[B]))return!1;e&&(h=c.every(function(F){return F.every(function(S){return-1<e.indexOf(S)})}));return h},remainingDeadwood:function(c,e){var h=
309[];e.forEach(function(p){var t=!1;
309c.forEach(function(B){-1<B.indexOf(p)&&(t=!0)});t||h.push(p)});return h},meldIsValid:function(c){if(!c||!Array.isArray(c)||3>c.length||10<c.length)return!1;c.sort(d.sortbyrank);for(var e=d.mayMeldRun(c[0],c[1])?d.mayMeldRun:d.mayMeldSet,h=c.length-1,p=!0,t=0;t<h;t++)if(!e(c[t],c[t+1])){p=!1;break}return p},laidOffData:function(c,e,h,p){var t=null,B=null;e=d.remainingDeadwood(c,e);var F=[];0<h.length&&(B=q.copyArray(p),t=d.layoff(e,B),F=e.filter(function(S){return 0>
310t.indexOf(S)}));return{laidOffCards:F,melds:c,deadwood:t?t:e,kMelds:B?B:q.copyArray(p)}}};a.ginrummyutils=d;var n={N_PLAYERS:3,winningPlayerInfo:function(c,e,h,p){var t=0,B=e,F=e;c.forEach(function(S,A){A=q.suit(S);if(A===h||A===p)S=q.rankAceHigh(S,p),S>t&&(t=S,B=F);S=F+1;F=S>n.N_PLAYERS-1?0:S});return{highestRank:t,winningPlayer:B}}};a.threefiveeightutils=n;a.twentynineutils={seventhCardAllowed:function(c){var e=!1;c.extraGameOptions&&(e=c.extraGameOptions.seventhCardTwentynine);return e},redoubleAllowed:function(c){var e=
311!1;c.extraGameOptions&&(e=c.extraGameOptions.redoubleTwentynine);return e},iHaveStrongCards:function(c,e){var h=!1;e=Math.max(...e);if(0===e||17<e)if(c=c.filter(function(p){return q.twentynineRank(p)>=q.TWENTYNINE_HIGH_RANK}).length,2===c&&20<e||3===c)h=!0;return h}};var m={sorter:function(c,e,h){return q.pinochleddRank(e,h)-q.pinochleddRank(c,h)},RUN:0,ROYAL_MARRIAGE:1,COMMON_MARRIAGE_CLUBS:2,COMMON_MARRIAGE_DIAMONDS:3,COMMON_MARRIAGE_SPADES:4,COMMON_MARRIAGE_HEARTS:5,PINOCHLE:6,ACES_AROUND:7,KINGS_AROUND:8,
312QUEENS_AROUND:9,JACKS_AROUND:10};m.CM_MAP={club:m.COMMON_MARRIAGE_CLUBS,diamond:m.COMMON_MARRIAGE_DIAMONDS,spade:m.COMMON_MARRIAGE_SPADES,heart:m.COMMON_MARRIAGE_HEARTS};m.createDeck=function(c){return"1c 1d 1h 1s 10c 10d 10h 10s 11c 11d 11h 11s 12c 12d 12h 12s 13c 13d 13h 13s 1c 1d 1h 1s 10c 10d 10h 10s 11c 11d 11h 11s 12c 12d 12h 12s 13c 13d 13h 13s 1c 1d 1h 1s 10c 10d 10h 10s 11c 11d 11h 11s 12c 12d 12h 12s 13c 13d 13h 13s 1c 1d 1h 1s 10c 10d 10h 10s 11c 11d 11h 11s 12c 12d 12h 12s 13c 13d 13h 13s".split(" ").slice()};
313m.hasMarriage=function(c,e){return e?-1<c.indexOf("12"+q.suitLetter(e))&&-1<c.indexOf("13"+q.suitLetter(e)):q.SUITS.some(function(h){return m.hasMarriage(c,h)})};m.hasNoMarriages=function(c){return 0>=m.royalMarriageSuits(c).length};m.winningCard=function(c,e,h,p){var t=c[0],B=e,F=B;c.forEach(function(S,A){A=q.suit(S);(A===p||A===h)&&q.pinochleddRank(S,h)>q.pinochleddRank(t,h)&&(t=S,F=B);B=q.nextPlayer(B,4)});return{winningCard:t,winningPlayer:F}};m.validCardsToPlay=function(c,e,h,p,t){c=c.slice();
314var B=null;if(h){var F=q.cardsBySuit(c);B=F[h];F=F[p];e=m.winningCard(t,e,p,h).winningCard;if(B.length){if(q.suit(e)===h){var S=q.pinochleddRank(e);h=B.filter(function(M){return q.pinochleddRank(M)>S});B=h.length?h:B}}else if(F.length)if(q.suit(e)===h)B=F;else{var A=q.pinochleddRank(e);h=F.filter(function(M){return q.pinochleddRank(M)>A});B=h.length?h:F}else B=c}else B=c;return B};m.melds=function(c,e){var h=q.cardsBySuit(c),p=m.cardGrid(),t=[];p.forEach(function(E,L){var T=q.suit(E[0]);t.push(T);
315var ma=h[T];E.forEach(function(ea,ba){var X=0;ma.forEach(function(I){I===ea&&X++});p[L][ba]=X})});var B=[[0,0,0,0,0],[0,0,0,0,0],[0,0,0,0,0],[0,0,0,0,0]],F,S=0,A=m.meldPoints(),M=function(E,L,T){T[E]=Math.min(...L.slice(1,3));if(0<T[E])for(F=B[m.suitMapToPosition(E)],L=1;3>L;L++)F[L]+=T[E]},J=function(){var E=0,L={};p.forEach(function(ea,ba){ba=t[ba];if(ba===e)if(E=Math.min(...ea),0<E){F=B[m.suitMapToPosition(e)];for(var X=0;X<F.length;X++)F[X]=E;ea=Math.min(...ea.slice(1,3));L[ba]=ea>E?ea-E:0;if(0<
316L[ba])for(ea=1;3>ea;ea++)F[ea]+=L[ba]}else M(ba,ea,L);else M(ba,ea,L)});var T={club:0,diamond:0,heart:0,spade:0};q.SUITS.forEach(function(ea,ba){ba=m.CM_MAP[ea];var X=L[ea];m.suitMapToPosition(ea);0<X&&(ea===e?S+=A[m.ROYAL_MARRIAGE][X-1]:(T[ea]=X,S+=A[ba][X-1]))});0<E&&(S+=A[m.RUN][E-1]);var ma={nRuns:E,club:T.club,diamond:T.diamond,heart:T.heart,spade:T.spade};ma.nRoyalMarriages=e?L[e]:0;return ma}(),G=[];G=[J.nRuns,J.nRoyalMarriages];q.SUITS.forEach(function(E,L){G.push(J[E])});c=function(){var E=
317Math.min(...[p[1][0],p[2][1]]);E&&(S+=A[m.PINOCHLE][E-1]);B[1][0]+=Math.max(0,E-B[1][0]);B[2][1]+=Math.max(0,E-B[2][1]);return E}();G.push(c);(function(){var E=[],L=[],T=[],ma=[];p.forEach(function(O,fa){E.push(O[4]);L.push(O[2]);T.push(O[1]);ma.push(O[0])});var ea=Math.min(...E),ba=Math.min(...L),X=Math.min(...T),I=Math.min(...ma);0<ea&&(S+=A[m.ACES_AROUND][ea-1],B.forEach(function(O,fa){O[4]+=Math.max(0,ea-O[4])}));0<ba&&(S+=A[m.KINGS_AROUND][ba-1],B.forEach(function(O,fa){O[2]+=Math.max(0,ba-O[2])}));
3180<X&&(S+=A[m.QUEENS_AROUND][X-1],B.forEach(function(O,fa){O[1]+=Math.max(0,X-O[1])}));0<I&&(S+=A[m.JACKS_AROUND][I-1],B.forEach(function(O,fa){O[0]+=Math.max(0,I-O[0])}));return[ea,ba,X,I]}
318)().forEach(function(E){G.push(E)});return{cardMatrix:B,points:S,counts:G}};m.cardGrid=function(){return[["11c","12c","13c","10c","1c"],["11d","12d","13d","10d","1d"],["11s","12s","13s","10s","1s"],["11h","12h","13h","10h","1h"]]};m.cardGridMapToIndex=function(){return{"11c":4,"12c":3,"13c":2,"10c":1,"1c":0,"11d":9,
319"12d":8,"13d":7,"10d":6,"1d":5,"11s":14,"12s":13,"13s":12,"10s":11,"1s":10,"11h":19,"12h":18,"13h":17,"10h":16,"1h":15}};m.cardGridMapToPosition=function(){return{"1c":[0,0],"10c":[0,1],"13c":[0,2],"12c":[0,3],"11c":[0,4],"1d":[1,0],"10d":[1,1],"13d":[1,2],"12d":[1,3],"11d":[1,4],"1s":[2,0],"10s":[2,1],"13s":[2,2],"12s":[2,3],"11s":[2,4],"1h":[3,0],"10h":[3,1],"13h":[3,2],"12h":[3,3],"11h":[3,4]}};m.suitMapToYIndex=function(c){return{11:0,12:1,13:2,10:3,1:4}[c]};m.suitMapToPosition=function(c){return{club:0,
320diamond:1,spade:2,heart:3}[c]};m.meldPoints=function(){return[[15,150,225,300],[4,8,12,16],[2,4,6,8],[2,4,6,8],[2,4,6,8],[2,4,6,8],[4,30,60,90],[10,100,150,200],[8,80,120,160],[6,60,90,120],[4,40,60,80]]};m.meldTypes=function(){return"run;royal marriage;clubs marriage;diamonds marriage;spades marriage;hearts marriage;pinochle;aces around;kings around;queens around;jacks around".split(";")};m.royalMarriageSuits=function(c){return q.SUITS.filter(function(e){e=q.suitLetter(e);return-1<c.indexOf("13"+
321e)&&-1<c.indexOf("12"+e)?!0:!1})};m.cannotWin=function(c,e,h){var p=q.teamMate(e);e=h[e].points+h[p].points;h=!1;if(e+50<c||20>e)h=e;return h};m.computeScore=function(c,e,h,p,t,B,F,S){var A=[0,0],M=q.team(p);if(c)return A[M]=-h,A;var J=q.teamMate(p);S=q.nextPlayer(p,S);c=q.teamMate(S);var G=q.team(S),E=t[S].points+t[c].points;20>E&&(E=0);if(e||"number"===typeof e)return A[M]=-h,19<E&&(A[G]=E),A;e=B[p]+B[J];if(F===p||F===J)e+=2;p=t[p].points+t[J].points;A[M]=20>e||e+p<h?-h:e+p;h=B[S]+B[c];if(F===S||
322F===c)h+=2;A[G]=20>h?0:h+E;return A};m.L2U={c:"C",d:"D",s:"S",h:"H"};m.L2W={c:"club",d:"diamond",s:"spade",h:"heart"};m.PP_SUITS=["c","d","s","h"];m.PP_LETTERS={1:"A",10:"T",13:"K",12:"Q",11:"J"};m.PPCardNotation=function(c){return m.PP_LETTERS[q.rank(c)]+m.L2U[q.suitLetter(q.suit(c))]};m.hasTramCallback=function(c,e,h){var p=!0;c.every(function(t){var B=q.suit(t);return q.cardIsGreaterThanAnyCardsInStack(t,e,h,B,q.pinochleddRank)})||(p=!1);return p};m.has4runs=function(c){var e=!1;if(!c||20>c.length)return e;
323c=c.slice();e=!0;for(var h=0;20>h;h++){var p=q.PINOCHLEDD_4RUNS[h];if(-1<c.indexOf(p))c.remove(p);else{e=!1;break}}return e};a.pinochleddutils=m;var H={sorter:function(c,e,h){return q.pinochleRank(e,h)-q.pinochleRank(c,h)},RUN:0,RUN_WITH_EXTRA_KING:1,RUN_WITH_EXTRA_QUEEN:2,RUN_WITH_EXTRA_MARRIAGE:3,DOUBLE_RUN:4,NINE_OF_TRUMP:5,ROYAL_MARRIAGE:6,COMMON_MARRIAGE_CLUBS:7,COMMON_MARRIAGE_DIAMONDS:8,COMMON_MARRIAGE_SPADES:9,COMMON_MARRIAGE_HEARTS:10,PINOCHLE:11,DOUBLE_PINOCHLE:12,ACES_AROUND:13,KINGS_AROUND:14,
324QUEENS_AROUND:15,JACKS_AROUND:16};H.CM_MAP={club:H.COMMON_MARRIAGE_CLUBS,diamond:H.COMMON_MARRIAGE_DIAMONDS,spade:H.COMMON_MARRIAGE_SPADES,heart:H.COMMON_MARRIAGE_HEARTS};H.createDeck=function(c){return"1c 1d 1h 1s 10c 10d 10h 10s 11c 11d 11h 11s 12c 12d 12h 12s 13c 13d 13h 13s 9c 9d 9h 9s 1c 1d 1h 1s 10c 10d 10h 10s 11c 11d 11h 11s 12c 12d 12h 12s 13c 13d 13h 13s 9c 9d 9h 9s".split(" ").slice()};H.hasMarriage=function(c,e){return e?-1<c.indexOf("12"+q.suitLetter(e))&&-1<c.indexOf("13"+q.suitLetter(e)):
325q.SUITS.some(function(h){return H.hasMarriage(c,h)})};H.hasNoMarriages=function(c){return 0>=H.royalMarriageSuits(c).length};H.winningCard=function(c,e,h,p){var t=c[0],B=e,F=B;c.forEach(function(S,A){A=q.suit(S);(A===p||A===h)&&q.pinochleRank(S,h)>q.pinochleRank(t,h)&&(t=S,F=B);B=q.nextPlayer(B,4)});return{winningCard:t,winningPlayer:F}};H.validCardsToPlay=function(c,e,h,p,t){c=c.slice();var B=null;if(h){var F=q.cardsBySuit(c);B=F[h];F=F[p];e=H.winningCard(t,e,p,h).winningCard;if(B.length){if(q.suit(e)===
326h){var S=q.pinochleddRank(e);h=B.filter(function(M){return q.pinochleddRank(M)>S});B=h.length?h:B}}else if(F.length)if(q.suit(e)===h)B=F;else{var A=q.pinochleddRank(e);h=F.filter(function(M){return q.pinochleddRank(M)>A});B=h.length?h:F}else B=c}else B=c;return B};H.melds=function(c,e){var h=q.cardsBySuit(c),p=H.cardGrid(),t=[];p.forEach(function(E,L){var T=q.suit(E[0]);t.push(T);var ma=h[T];
326E.forEach(function(ea,ba){var X=0;ma.forEach(function(I){I===ea&&X++});p[L][ba]=X})});var B=[[0,0,0,0,0,0],
327[0,0,0,0,0,0],[0,0,0,0,0,0],[0,0,0,0,0,0]],F,S=0,A=H.meldPoints(),M=function(E,L,T){T[E]=Math.min(...L.slice(2,4));if(0<T[E])for(F=B[H.suitMapToPosition(E)],L=2;4>L;L++)F[L]+=T[E]},J=function(){var E={},L=0,T=0,ma=0,ea=0,ba=0,X=0;p.forEach(function(ta,ua){ua=t[ua];if(ua===e){var qa=ta[5],na=ta[4];var b=ta[3];var f=ta[2],u=ta[1],l=ta[0];0<l&&(X=l,B[H.suitMapToPosition(ua)][0]=l);if(1<=qa&&1<=na&&1<=b&&1<=f&&1<=u){2<=qa&&2<=na&&2<=b&&2<=f&&2<=u?ba++:2<=b&&2<=f?ea++:2<=b?T++:2<=f?ma++:L++;F=B[H.suitMapToPosition(e)];
328for(ta=1;ta<F.length;ta++)F[ta]=1;if(2<=qa&&2<=na&&2<=b&&2<=f&&2<=u)for(ta=1;ta<F.length;ta++)F[ta]=2;2<=b&&2>f&&(F[3]+=b-1);2<=f&&2>b&&(F[2]+=f-1);b=Math.min(b,f);E[ua]=1<b?b-1:0;if(0<E[ua])for(b=2;4>b;b++)F[b]+=E[ua]}else M(ua,ta,E)}else M(ua,ta,E)});0<ba?S+=A[H.DOUBLE_RUN][ba-1]:0<ea?S+=A[H.RUN_WITH_EXTRA_MARRIAGE][ea-1]:0<T?S+=A[H.RUN_WITH_EXTRA_KING][T-1]:0<ma?S+=A[H.RUN_WITH_EXTRA_QUEEN][ma-1]:0<L&&(S+=A[H.RUN][L-1]);0<X&&(S+=A[H.NINE_OF_TRUMP][X-1]);var I=0<ba||0<ea||0<T||0<ma||0<L,O={club:0,
329diamond:0,heart:0,spade:0};q.SUITS.forEach(function(ta,ua){ua=H.CM_MAP[ta];var qa=E[ta];H.suitMapToPosition(ta);0<qa&&(ta===e?I||(S+=A[H.ROYAL_MARRIAGE][qa-1]):(O[ta]=qa,S+=A[ua][qa-1]))});var fa={nRuns:L,extraKing:T,extraQueen:ma,extraMarriage:ea,doubleRun:ba,club:O.club,diamond:O.diamond,heart:O.heart,spade:O.spade,nineOfTrump:X};fa.nRoyalMarriages=e?I?0:E[e]:0;return fa}(),G=[];G=[J.nRuns,J.extraKing,J.extraQueen,J.extraMarriage,J.doubleRun,J.nineOfTrump,J.nRoyalMarriages];q.SUITS.forEach(function(E,
330L){G.push(J[E])});c=function(){var E=Math.min(...[p[1][1],p[2][2]]),L=0,T=0;1==E?(S+=A[H.PINOCHLE][0],L=1):2==E&&(S+=A[H.DOUBLE_PINOCHLE][0],T=1);B[1][1]+=Math.max(0,E-B[1][1]);B[2][2]+=Math.max(0,E-B[2][2]);return[L,T]}();G.push(c[0],c[1]);(function(){var E=[],L=[],T=[],ma=[];p.forEach(function(O,fa){fa=O[3];var ta=O[2],ua=O[1];E.push(O[5]);L.push(fa);T.push(ta);ma.push(ua)});var ea=Math.min(...E),ba=Math.min(...L),X=Math.min(...T),I=Math.min(...ma);0<ea&&(S+=A[H.ACES_AROUND][ea-1],B.forEach(function(O,
331fa){O[5]+=Math.max(0,ea-O[5])}));0<ba&&(S+=A[H.KINGS_AROUND][ba-1],B.forEach(function(O,fa){O[3]+=Math.max(0,ba-O[3])}));0<X&&(S+=A[H.QUEENS_AROUND][X-1],B.forEach(function(O,fa){O[2]+=Math.max(0,X-O[2])}));0<I&&(S+=A[H.JACKS_AROUND][I-1],B.forEach(function(O,fa){O[1]+=Math.max(0,I-O[1])}));return[ea,ba,X,I]})().forEach(function(E){G.push(E)});return{cardMatrix:B,points:S,counts:G}};H.cardGrid=function(){return["9c 11c 12c 13c 10c 1c".split(" "),"9d 11d 12d 13d 10d 1d".split(" "),"9s 11s 12s 13s 10s 1s".split(" "),
332"9h 11h 12h 13h 10h 1h".split(" ")]};H.cardGridMapToIndex=function(){return{"9c":5,"11c":4,"12c":3,"13c":2,"10c":1,"1c":0,"9d":11,"11d":10,"12d":9,"13d":8,"10d":7,"1d":6,"9s":17,"11s":16,"12s":15,"13s":14,"10s":13,"1s":12,"9h":23,"11h":22,"12h":21,"13h":20,"10h":19,"1h":18}};H.cardGridMapToPosition=function(){return{"1c":[0,0],"10c":[0,1],"13c":[0,2],"12c":[0,3],"11c":[0,4],"9c":[0,5],"1d":[1,0],"10d":[1,1],"13d":[1,2],"12d":[1,3],"11d":[1,4],"9d":[1,5],"1s":[2,0],"10s":[2,1],"13s":[2,2],"12s":[2,
3333],"11s":[2,4],"9s":[2,5],"1h":[3,0],"10h":[3,1],"13h":[3,2],"12h":[3,3],"11h":[3,4],"9h":[3,5]}};H.suitMapToPosition=function(c){return{9:0,11:1,12:2,13:3,10:4,1:5}[c]};H.suitMapToPosition=function(c){return{club:0,diamond:1,spade:2,heart:3}[c]};H.meldPoints=function(){return[[15,15],[19,19],[19,19],[23,23],[150,150],[1,2],[4,8],[2,4],[2,4],[2,4],[2,4],[4,4],[30,30],[10,100],[8,80],[6,60],[4,40]]};H.meldTypes=function(){return"run;run with extra king;run with extra queen;run with extra marriage;double run;nine of trump;royal marriage;clubs marriage;diamonds marriage;spades marriage;hearts marriage;pinochle;double pinochle;aces around;kings around;queens around;jacks around".split(";")};
334H.royalMarriageSuits=function(c){return q.SUITS.filter(function(e){e=q.suitLetter(e);return-1<c.indexOf("13"+e)&&-1<c.indexOf("12"+e)?!0:!1})};H.cannotWin=function(c,e,h){var p=q.teamMate(e);e=h[e].points+h[p].points;h=!1;e+25<c&&(h=e);return h};H.computeScore=function(c,e,h,p,t,B,F,S){var A=[0,0],M=q.team(p);if(c)return A[M]=-h,A;var J=q.teamMate(p);S=q.nextPlayer(p,S);c=q.teamMate(S);var G=q.team(S),E=t[S].points+t[c].points;if(e||"number"===typeof e)return A[M]=-h,A[G]=E,A;e=B[p]+B[J];if(F===p||
335F===J)e+=1;p=t[p].points+t[J].points;A[M]=e+p<h?-h:e+p;h=B[S]+B[c];if(F===S||F===c)h+=1;A[G]=h+E;return A};H.L2U={c:"C",d:"D",s:"S",h:"H"};H.L2W={c:"club",d:"diamond",s:"spade",h:"heart"};H.PP_SUITS=["c","d","s","h"];H.PP_LETTERS={1:"A",9:"N",10:"T",13:"K",12:"Q",11:"J"};H.PPCardNotation=function(c){return H.PP_LETTERS[q.rank(c)]+H.L2U[q.suitLetter(q.suit(c))]};H.hasTramCallback=function(c,e,h){var p=!0;c.every(function(t){var B=q.suit(t);return q.cardIsGreaterThanAnyCardsInStack(t,e,h,B,q.pinochleRank)})||
336(p=!1);return p};H.has4runs=function(c){var e=!1;if(!c||12>c.length)return e;c=c.slice();e=!0;for(var h=0;12>h;h++){var p=q.PINOCHLE_4RUNS[h];if(-1<c.indexOf(p))c.remove(p);else{e=!1;break}}return e};a.pinochleutils=H})("undefined"===typeof exports?window:exports);
337(function(a){var q={encode:function(y){for(var v="",d=y.length,n=0;n<d;n++)v+=q.nextChar(y[n]);return v},decode:function(y){for(var v="",d=y.length,n=0;n<d;n++)v+=q.prevChar(y[n]);return v},nextChar:function(y){return String.fromCharCode(y.charCodeAt(0)+1)},prevChar:function(y){return String.fromCharCode(y.charCodeAt(0)-1)}}
337,w="bobm bovt bstf btt cbtubse cbtubset cjudi cjudift cpofs cpofst cppc cvtuz dmju dmjut dpdl dpdlt dppo dppot dvn dvnnjoh dvou dvout ejdl ejdlt epsl epslt ezlf fspujd ftdpsu ftdpsut gbh gbhhpu gbhhput gbht gfdl ipnp ipnpt ipplfs ipplfst ipsoz ivnqjoh njmg npoh npspo npspot ofhsp opodf ovef pshz qblj qjlfz qjtt qjttft qppg qppo qsjdl qsjdlt qvcft qvttjft qvttz rvjn sbqf sbqfe sbqft sbqjoh sjnnjoh tdbu tfy tibh tibhhfe tibhhjoh tibht tiju tmvu tmvut tnvu tobudi tobudife tobudijoh tqbtujd tqjd uju ujut uxjol uxjoljf uxjoljft uxjolt xbol xbolfe xbolfs xbolfst xboljoh xbolt xipsf xipsfe xipsft xipsjoh".split(" "),
338k=w.length;q.BLACKLIST_EXACT=[];for(var x=0;x<k;x++)q.BLACKLIST_EXACT.push(q.decode(w[x]));w="3!hjsmt!2!dvq 3h2d bdspupnpqijmjb bmbcbnb!ipu!qpdlfu bmbtlbo!qjqfmjof bojmjohvt bqftiju bstfipmf bttibu bttipmf bttnvodi bvup!fspujd bvupfspujd cbcfmboe cbcz!cbuufs cbcz!kvjdf cbmm!hbh cbmm!hsbwz cbmm!ljdljoh cbmm!mjdljoh cbmm!tbdl cbmm!tvdljoh cbohcspt cbohcvt cbsfcbdl cbsfmz!mfhbm cbsfoblfe cbtubsep cbtujobep ccx cetn cfbofs cfbofst cfbtujbmjuz cfbwfs!dmfbwfs cfbwfs!mjqt cftujbmjuz cjh!cmbdl cjh!csfbtut cjh!lopdlfst cjh!ujut cjncpt cjsempdl cmbdl!dpdl cmpoef!bdujpo cmpoef!po!cmpoef!bdujpo cmpx!k cmpx!kpc cmpx!zpvs!mpbe cmpxkpc cmvf!xbggmf cmvnqljo cpmmpdlt cpoebhf cppuz!dbmm cspxo!tipxfst csvofuuf!bdujpo cvhhfs cvllblf cvmmezlf cvmmfu!wjcf cvmmtiju cvoh!ipmf cvohipmf cvuu!cboeju cvuudifflt cvuuipmf dbnfm!upf dbnhjsm dbntmvu dbnxipsf dbsqfu!nvodifs dbsqfunvodifs dijdl!xjui!b!ejdl dijdlfo!tiju dijoh!dipoh dipdpmbuf!sptfcvet djbmjt djsdmfkfsl dmfwfmboe!tufbnfs dmjupsjt dmpwfs!dmbnqt dmvtufsgvdl dpdltvdlfs dppobtt dpqspmbhojb dpqspqijmjb dpsoipmf dpy.{vdlfs!nbdijof dpy—{vdlfs!nbdijof dsfbnqjf dvntipu dvntiput dvoojmjohvt ebsljf ebuf!sbqf ebufsbqf effq!uispbu effquispbu efoespqijmjb ejdlifbe ejmep ejohmfcfssjft ejohmfcfssz ejsuz!qjmmpxt ejsuz!tbodif{ eph!tuzmf ephhjf!tuzmf ephhjftuzmf ephhz!tuzmf ephhztuzmf epmdfuu epnjobujpo epnjobusjy epnnft epolfz!qvodi epvcmf!epoh epvcmf!qfofusbujpo eq!bdujpo esz!ivnq evncbtt eweb fbu!nz!btt fddij fkbdvmbujpo fotijuujgjdbujpo fspujtn fvovdi gfdbm gfmdi gfmmbujp gfmudi gfnbmf!trvjsujoh gfnepn gjhhjoh gjohfscboh gjohfsjoh gjtujoh gppu!gfujti gppukpc gsjhhjoh gspuujoh gvdl gvdl!cvuupot gvdl!nbssz!ljmm gvdlfsz gvdljo gvdljoh gvdlubset gvehf!qbdlfs gvehfqbdlfs gvubobsj h.tqpu hboh!cboh hbohcboh hbz!tfy hfoefs!cfoefs hfojubmt hjbou!dpdl hjsm!po!upq hjsmt!hpof!xjme hp!gvdl!zpvstfmg hpbudy hpbutf hpe!ebno hpeebno hpllvo hpmefo!tipxfs hpp!hjsm hppeqppq hpsfhbtn hspqf hspvq!tfy hvsp iboe!kpc iboekpc ibse!dpsf ibsedpsf if.tif ifbmtmvu ifoubj ipnpfspujd ipolfz ipu!dbsm ipx!up!ljmm ipx!up!nvsefs ivhf!gbu jodftu joufsdpvstf kbdl!pgg kbjm!cbju kbjmcbju kbqt kfmmz!epovu kfsl!pgg kftvt!gvdljoh!disjtu kjhbcpp kjhhbcpp kjhhfscpp kj{{ kvhht ljlf ljocblv ljoltufs lopccjoh mfbuifs!sftusbjou mfbuifs!tusbjhiu!kbdlfu mfnpo!qbsuz mjwftfy mpmjub mpwfnbljoh nblf!nf!dpnf nblf!nf!dvn nbmf!trvjsujoh nbtuvscbuf nbtuvscbujoh nbtuvscbujpo nfobhf!b!uspjt njttjpobsz!qptjujpo npuifsgvdlfs npvoe!pg!wfovt ns!iboet nvgg!ejwfs nvggejwjoh obncmb obxbtij ofpob{j ojh!oph ojhhb ojhhfs ojnqipnbojb ojqqmf ojqqmft otgx otgx!jnbhft ovejuz ovuufo oznqip oznqipnbojb pdupqvttz pnpsbtij pof!dvq!uxp!hjsmt pof!hvz!pof!kbs pshbtn qbfepqijmf qbkffu qboujft qbouz qfepcfbs qfepqijmf qfhhjoh qfojt qipof!tfy qjfdf!pg!tiju qjmmpdl qjtt!po qjtt!qjh qjttqjh qmfbtvsf!diftu qpmf!tnplfs qpozqmbz qppgufs qppouboh qppq!divuf qppqdivuf qpso qpsop qpsophsbqiz qsjdlufbtfs qsjodf!bmcfsu!qjfsdjoh quid qvoboz qvttz!ipmf rvfbg rvffg sbhifbe sbhjoh!cpofs sbqjtu sbugvdljoh sfduvn sfwfstf!dpxhjsm sjnkpc sptz!qbmn sptz!qbmn!boe!ifs!6!tjtufst svhnvodifs svttjbo!xbstijq svtuz!uspncpof t'n tbejtn tboupsvn tdimpoh tdjttpsjoh tfnfo tfswjoh!dvou tfydbn tfyp tfyvbm tfyvbmjuz tfyvbmmz tibwfe!cfbwfs tibwfe!qvttz tifnbmf tijcbsj tijsu!mjgufs tiju!ibqqfot tijucmjnq tijuipvtf tijuqptujoh tijuufs tijuuz tipub tisjnqjoh tivu!uif!gvdl!vq tivu!uif!ifmm!vq tlbol tlffu tmboufzf tmbqqfs topxcbmmjoh tpepnj{f tpepnz tpo!pg!b!cjudi tqmpphf tqmpphf!npptf tqpphf tqsfbe!mfht tusbq!po tusbqpo tusbqqbep tusjq!dmvc tuzmf!ephhz tvdl!nz tvdljoh!nz tvjdjef!hjsmt tvmusz!xpnfo txbtujlb txjohfs ubjoufe!mpwf ubljoh!b!qjtt ubtuf!nz ufb!cbhhjoh uisfftpnf uispbujoh uivnc{jmmb ujhiu!xijuf ujuujft ujuuz upohvf!jo!b upqmftt upttfs upxfmifbe usbooz usjcbejtn uvc!hjsm uvchjsm uvtiz uxbu uxp!hjsmt!pof!dvq vodmfgvdlfs voesfttjoh vqtljsu vsfuisb!qmbz vspqijmjb wbhjob wfovt!npvoe wjbhsb wjcsbups wjpmfu!xboe wpsbsfqijmjb wpzfvs wpzfvsxfc wpzvfs wvmwb xbolfs xfu!esfbn xfucbdl xijuf!qpxfs xipsf xpsmetfy xsbqqjoh!nfo xsjolmfe!tubsgjti yyy zbpj zfmmpx!tipxfst zjggz {ppqijmjb".split(" ");
339q.BLACKLIST_PARTIAL=[];k=w.length;for(x=0;x<k;x++)q.BLACKLIST_PARTIAL.push(q.decode(w[x]));q.BLACKLIST_PARTIALS_REGEX=new RegExp("("+q.BLACKLIST_PARTIAL.join("|")+")","gi");q.BLACKLIST_EXACT_REGEX=new RegExp("\\b("+q.BLACKLIST_EXACT.join("|")+")\\b","gi");q.containsBlacklistedWord=function(y){if(!y)return!1;y=y.toLowerCase();return q.BLACKLIST_EXACT_REGEX.test(y)?(q.BLACKLIST_EXACT_REGEX.lastIndex=0,!0):q.BLACKLIST_PARTIALS_REGEX.test(y)?(q.BLACKLIST_PARTIALS_REGEX.lastIndex=0,!0):!1};a.BlackList=
340q})("undefined"===typeof exports?window:exports);
341(function(a){if("undefined"!==typeof process&&"undefined"!==typeof process.versions&&"undefined"!==typeof process.versions.node){var q=require("./BlackList");var w=q.BlackList.BLACKLIST_EXACT;var k=q.BlackList.BLACKLIST_PARTIALS_REGEX}else q=window.BlackList,w=q.BLACKLIST_EXACT,k=q.BLACKLIST_PARTIALS_REGEX;var x={censorWords:function(y,v){v||(v="@#$%!");y=x.censorPartialWords(y,v);return x.censorExactWholeWords(y,v)},censorExactWholeWords:function(y,v){y=x.censorPartialWords(y,v).split(" ");var d=
342[];Object.forEach(y,function(n,m){n=m.replace(/[^\w]|_/g,"").toLowerCase();x.wordDoesNotMatchBlacklistWord(n)?d.push(m):d.push(v)});return d.join(" ")},censorPartialWords:function(y,v){return y.replace(k,v)},wordDoesNotMatchBlacklistWord:function(y){for(var v=!0,d=w.length,n=0;n<d;n++)if(w[n]===y){v=!1;break}return v},encode:function(y){for(var v="",d=y.length,n=0;n<d;n++)v+=x.nextChar(y[n]);return v},decode:function(y){for(var v="",d=y.length,n=0;n<d;n++)v+=x.prevChar(y[n]);return v},nextChar:function(y){return String.fromCharCode(y.charCodeAt(0)+
3431)},prevChar:function(y){return String.fromCharCode(y.charCodeAt(0)-1)}};a.profanityFilter=x})("undefined"===typeof exports?window:exports);
344YUI.add("ModalGameOptions",function(a){var q={noRobots:"No",yesRobots:"Yes",dontCareRobots:"Either"},w={noBagPenaltySpades:{yesNoBagPenaltySpades:"No",noNoBagPenaltySpades:"Yes",dontCareNoBagPenaltySpades:"Either"},seventhCardTwentynine:{noSeventhCardTwentynine:"No",yesSeventhCardTwentynine:"Yes",dontCareSeventhCardTwentynine:"Either"},redoubleTwentynine:{noRedoubleTwentynine:"No",yesRedoubleTwentynine:"Yes",dontCareRedoubleTwentynine:"Either"},euchreSTD:{noEuchreSTD:"No",yesEuchreSTD:"Yes",dontCareEuchreSTD:"Either"},
345standardRulesHearts:{noStandardRulesHearts:"Yes",yesStandardRulesHearts:"No",dontCareStandardRulesHearts:"Either"}},k={allowFirstTurnHearts:"Allow first turn Hearts",noBagPenaltySpades:"Bag penalty:",seventhCardTwentynine:"Allow seventh card:",redoubleTwentynine:"Allow double-redouble:",bidderOut:"Bidder out",euchreSTD:"Stick the dealer:",standardRulesHearts:"Tournament rules:"},x={allowFirstTurnHearts:"Allow hearts on first trick",noBagPenaltySpades:"Toggle penalties for 10 bags",seventhCardTwentynine:"Use the 7th card for trump suit",
346redoubleTwentynine:"Allow doubling or redoubling bids for more points",bidderOut:"Award win to the bidder if both sides reach 500",euchreSTD:"Dealer must choose trump if no one else does",standardRulesHearts:"No no-pass and lead with hearts if Queen is held"},y={allowFirstTurnHearts:!1,noBagPenaltySpades:"noNoBagPenaltySpades",seventhCardTwentynine:"dontCareSeventhCardTwentynine",redoubleTwentynine:"dontCareRedoubleTwentynine",bidderOut:!0,euchreSTD:"dontCareEuchreSTD",standardRulesHearts:"dontCareStandardRulesHearts"};
347a.ModalGameOptions=function(v,d,n){this.modalInput=null;this.optionCheckboxes={};this.optionRadios={};this.gameid=v;this.gameOptions=d;this.type=n;this.extraPrivateTableNames=[];a.ModalGameOptions.prototype.init=function(m,H,c){this.gameid=m;this.gameOptions=H;this.type=c;this.extraPrivateTableNames=this.gameOptions?this.gameOptions.extraPrivateTableNames||[]:[];this.modalInput=a.Node.create("<div>").set("id","ModalGameOptions").setStyle("display","none").setAttribute("role","dialog").setAttribute("aria-modal",
348"true").setAttribute("aria-label","Game options");this.modalInput.append(a.Node.create("<div>").addClass("background"));this.themeConfig=a.wocg.Theme.getCurrentThemeConfig();var e={dimensions:this.themeConfig.checkboxDimensions,imagePath:"images/checkbox/"+this.themeConfig.id+"/",imageBuilder:a.wocg.buildAssetImageURL};m=a.Node.create("<span>").addClass("message").addClass("selectable");c=a.Node.create("<div>").addClass("optionsFrame");m.append(c);var h=a.Node.create("<table>").addClass("options");
349c.append(h);if(C[this.gameid].MIN_PLAYERS!==C[this.gameid].MAX_PLAYERS){c=document.createTextNode("Number of players:");this.addRow(h,"header",c);var p=a.Node.create("<span>");for(c=C[this.gameid].MIN_PLAYERS;c<=C[this.gameid].MAX_PLAYERS;c++){var t=new a.Checkbox("numSeats"+c,c,""+c,e);t.setChecked(!0);this.optionCheckboxes["numSeats"+c]=t;p.append(t.node);p.append("&nbsp;&nbsp;&nbsp;");t.node.on("click",a.bind(function(F){0===this.modalInput.getAll(".options .numSeats .checkbox.checked").length&&
350(F.setChecked(!0),a.fire("Notice:show",{message:"You have to select at least one option for number of players.",type:"warning"}))},this,t))}this.addRow(h,"numSeats",p)}c=new a.Checkbox("registeredOnly",!0,"Registered players only",e);c.node.set("id","registeredOnly");this.optionCheckboxes.registeredOnly=c;this.addRow(h,"registeredOnly",c.node,"privateTableOptions"==this.type);
350p="Only play registered players";a.wocg.User.isRegistered()&&a.wocg.User.isMultiplayerAllowed()||(p="Login to play registered players");
351a.CustomTooltip.showOnHover(c.node,p);c=new a.Checkbox("experiencedOnly",!0,"Experienced players only",e);c.node.set("id","experiencedOnly");this.optionCheckboxes.experiencedOnly=c;this.addRow(h,"experiencedOnly",c.node,"privateTableOptions"==this.type);p="Only play experienced players";a.wocg.User.isRegistered()&&a.wocg.User.isMultiplayerAllowed()||(p="Login to play experienced players");a.CustomTooltip.showOnHover(c.node,p);c=new a.Checkbox("ranked",!0,"Ranked game",e);c.node.set("id","ranked");
352this.optionCheckboxes.ranked=c;this.addRow(h,"ranked",c.node,"hostTableOptions"!=this.type);p="Play ranked games to get on leaderboard";a.wocg.User.isRegistered()&&a.wocg.User.isMultiplayerAllowed()&&a.wocg.User.isExperienced()||(p="Login and play 10 games to play ranked games");a.CustomTooltip.showOnHover(c.node,p);c=new a.Checkbox("noGamesInProgress",!0,"Exclude games in progress",e);c.node.set("id","noGamesInProgress");this.optionCheckboxes.noGamesInProgress=c;this.addRow(h,"noGamesInProgress",
353c.node,"options"!=this.type);a.CustomTooltip.showOnHover(c.node,"Only join games that haven't started");var B={dimensions:this.themeConfig.checkboxDimensions,imagePath:"images/radio/"+this.themeConfig.id+"/",imageBuilder:a.wocg.buildAssetImageURL};this.addRadioSelector(h,"Bots:","dontCareRobots","robotsChoice","robotsChoiceLi",q,B,"privateTableOptions"==this.type);C[this.gameid].EXTRA_GAME_OPTIONS.forEach(function(F){var S=C.EXTRA_GAME_OPTIONS_MAP[F];if(!S.privateTableOnly){var A=k[F],M=x[F],J=y[F];
354"checkbox"===S.ui?(S=new a.Checkbox(F,!0,A,e),this.optionCheckboxes[F]=S,S.node.set("id",F),S.setChecked(J,!0),M&&a.CustomTooltip.showOnHover(S.node,M),this.addRow(h,F,S.node,"privateTableOptions"==this.type)):"radio"===S.ui&&w[F]&&(J=this.addRadioSelector(h,A,J,F,F+"Li",w[F],B,"privateTableOptions"==this.type),J.addClass(F),M&&a.CustomTooltip.showOnHover(J,M))}}.bind(this));c=new a.Checkbox("privateTable",!0,"Private table",e);c.node.set("id","privateTable");this.optionCheckboxes.privateTable=c;
355this.addRow(h,"privateTable",c.node,"hostTableOptions"!=this.type);c=a.Node.create("<span>").addClass("privateTableName").setData("tableName",C.ANONYMOUS_TABLE_NAME);p=this.gameOptions&&this.gameOptions.privateTableName&&"none"!=this.gameOptions.privateTableName?this.gameOptions.privateTableName:"";this.inputBox=a.Node.create("<input type='text' placeholder='Table name'>").set("value",p||"").set("id","privateTableNameInputBox");c.append(this.inputBox);this.addRow(h,"privateTableNameRow",c,!0);c=new a.Checkbox("extraPrivateTables",
356!0,"Show private tables",e);c.node.set("id","extraPrivateTables");this.optionCheckboxes.extraPrivateTables=c;this.addRow(h,"extraPrivateTables",c.node,"options"!=this.type);p='Shown when tapping "Tables"';a.wocg.User.isRegistered()&&a.wocg.User.isMultiplayerAllowed()||(p="Login to show private tables");a.CustomTooltip.showOnHover(c.node,p);this.inputBoxes=[];for(c=0;c<C.MAX_PRIVATE_TABLE_NAMES-1;c++)t=a.Node.create("<span>").addClass("extraPrivateTableName").setData("tableName",C.ANONYMOUS_TABLE_NAME),
357p=this.gameOptions&&this.gameOptions.extraPrivateTableNames&&this.gameOptions.extraPrivateTableNames[c]&&"none"!=this.gameOptions.extraPrivateTableNames[c]?this.gameOptions.extraPrivateTableNames[c]:"",this.inputBoxes[c]=a.Node.create("<input type='text' placeholder='Table name "+(c+1)+"'>").set("value",p||"").set("id","extraPrivateTableNameInputBox"+(c+1)),t.append(this.inputBoxes[c]),this.addRow(h,"extraPrivateTableNameRow",t,!0);C[this.gameid].EXTRA_GAME_OPTIONS.forEach(function(F){var S=C.EXTRA_GAME_OPTIONS_MAP[F];
358S.privateTableOnly&&"radio"===S.ui&&this.addRadioSelector(h,"Bag penalty:",y[F],F,F+"Li",w[F],B,"hostTableOptions"!=this.type).addClass(F)}.bind(this));c="Save "+C.GAME_NAMES[this.gameid]+" settings";"privateTableOptions"==this.type?c="Join private "+C.GAME_NAMES[this.gameid]+" table":"hostTableOptions"==this.type&&(c="Create "+C.GAME_NAMES[this.gameid]+" table");c=a.Node.create("<a>").addClass("button").addClass("green").addClass("ok").setContent(c);c.on("click",this.okHandler,this);m.append(c);
359p=a.Node.create("<img>").addClass("close").set("src",a.wocg.buildAssetImageURL("images/closeModal.png")).set("width","32").set("height","32");p.on("click",this.cancelHandler,this);this.modalInput.one(".background").append(a.Node.create("<span>").addClass("messageContainer").set("id","messageContainer").append(a.Node.create("<span>").addClass("innerContainer").append(m).append(p)));a.one("#mainContainer").append(this.modalInput);this.modalInput.one(".background").on("click",function(F){F.target&&F.target._node&&
360F.target._node.classList&&F.target._node.classList.contains("background")&&this.close()}.bind(this));H&&this.gameOptionsHandler(H);this.installOptionChangeHandlers();this.adjustZIndexesAndCustomCursorStyles(c,[],this.optionCheckboxes,this.optionRadios);this.updatedRegisteredOnlyCheckbox();this.updatedNoGamesInProgressCheckbox();this.updatedExperiencedOnlyCheckbox();this.updatedRankedCheckbox();this.updatedEuchreSTDForRanked(this.optionCheckboxes.ranked.checked);this.updatedBotsOptions();this.updatedPrivateTableCheckbox();
361this.updatedExtraPrivateTablesCheckbox();"privateTableOptions"==this.type?this.setPrivateTableOptionStyle(!0):"hostTableOptions"==this.type&&this.gameOptions?this.setPrivateTableOptionStyle(this.gameOptions.privateTable):this.setPrivateTableOptionStyle(!1)};
361a.ModalGameOptions.prototype.addRadioSelector=function(m,H,c,e,h,p,t,B=!1){var F=a.Node.create("<span>").addClass("radioChoice");H=document.createTextNode(H);p=new a.Radio(e,p,t);this.optionRadios[e]=p;F.append(H);p.setChecked(c,!0);Object.forEach(p.nodeMap,
362function(S,A){F.append(document.createTextNode(" "));F.append(a.Node.create("<span>").addClass(S));F.one("."+S).append(A)});this.addRow(m,h,F,B);return F};a.ModalGameOptions.prototype.adjustZIndexesAndCustomCursorStyles=function(m,H,c,e){var h=this.modalInput.getZIndex()+1;Object.values(c).forEach(function(p,t){p.node.setZIndex(h)});Object.values(e).forEach(function(p,t){Object.forEach(p.nodeMap,function(B,F){F.setZIndex(h)})});m.setZIndex(h);H.forEach(function(p){p.setZIndex(h)})};a.ModalGameOptions.prototype.addRow=
363function(m,H,c,e=!1){var h=a.Node.create("<tr>"),p=a.Node.create("<td>");h.append(p);p.append(c);h.addClass(H);e&&h.addClass("hidden");m.append(h);return h};a.ModalGameOptions.prototype.installOptionChangeHandlers=function(){Object.values(this.optionCheckboxes).forEach(function(m){m.addValueChangeHandler(this.optionValueChangeHandler,this)}.bind(this));Object.values(this.optionRadios).forEach(function(m){m.addValueChangeHandler(this.optionValueChangeHandler,this)}.bind(this))};a.ModalGameOptions.prototype.optionValueChangeHandler=
364function(m,H){"extraPrivateTables"===m.name?this.modalInput.all(".optionsFrame .extraPrivateTableNameRow").setStyle("display",H?"inline-block":"none"):"privateTable"===m.name?this.setPrivateTableOptionStyle(H):"ranked"===m.name?this.updatedEuchreSTDForRanked(H):"euchreSTD"===m.name&&delete this.euchreSTDBeforeRanked};a.ModalGameOptions.prototype.setPrivateTableOptionStyle=function(m){this.modalInput.one(".optionsFrame .privateTableNameRow").setStyle("display",m?"inline-block":"none");"hostTableOptions"==
365this.type&&C[this.gameid].EXTRA_GAME_OPTIONS.forEach(function(H){C.EXTRA_GAME_OPTIONS_MAP[H].privateTableOnly&&this.modalInput.one("."+H+"Li").setStyle("display",m?"inline-block":"none")}.bind(this))};a.ModalGameOptions.prototype.gameOptionsHandler=function(m){if(C[this.gameid].MIN_PLAYERS!==C[this.gameid].MAX_PLAYERS)for(var H=C[this.gameid].MIN_PLAYERS;H<=C[this.gameid].MAX_PLAYERS;H++)this.optionCheckboxes["numSeats"+H].setChecked(m.numSeats.contains(H));this.optionCheckboxes.registeredOnly.setChecked(m.registeredOnly);
366this.optionCheckboxes.noGamesInProgress.setChecked(m.noGamesInProgress);this.optionCheckboxes.experiencedOnly.setChecked(m.experiencedOnly);this.optionCheckboxes.privateTable.setChecked(m.privateTable);m.extraPrivateTables&&(this.optionCheckboxes.extraPrivateTables.setChecked(!0),this.optionValueChangeHandler(this.optionCheckboxes.extraPrivateTables,"options"==this.type));switch(m.noRobots){case 0:this.optionRadios.robotsChoice.setChecked("yesRobots");break;case 1:this.optionRadios.robotsChoice.setChecked("noRobots");
367break;default:this.optionRadios.robotsChoice.setChecked("dontCareRobots")}C[this.gameid].EXTRA_GAME_OPTIONS.forEach(c=>{if("integer"===C.EXTRA_GAME_OPTIONS_MAP[c].type){var e="number"===typeof m[c]?m[c]:C.EXTRA_GAME_OPTIONS_MAP[c]["default"],h=c.capitalize(c);e===C.EXTRA_GAME_OPTIONS_MAP[c].no?h="no"+h:e===C.EXTRA_GAME_OPTIONS_MAP[c].yes?h="yes"+h:e===C.EXTRA_GAME_OPTIONS_MAP[c].either&&(h="dontCare"+h);this.optionRadios[c].setChecked(h)}else this.optionCheckboxes[c].setChecked(m[c])});H=this.getPrivateTableName(m.privateTableName);
368this.inputBox.set("value","none"==H?"":H);m.privateTable&&"options"!=this.type?this.setPrivateTableOptionStyle(!0):this.modalInput.one(".optionsFrame .privateTableNameRow").setStyle("display","none")};a.ModalGameOptions.prototype.getPrivateTableName=function(m){return m=((m||C.ANONYMOUS_TABLE_NAME).strip(",").trim()||C.ANONYMOUS_TABLE_NAME).substring(0,C.MAX_TABLE_NAME_LENGTH)};a.ModalGameOptions.prototype.cancelHandler=function(m){this.close()};a.ModalGameOptions.prototype.okHandler=function(m){m&&
369m.preventDefault&&m.preventDefault();this.shouldSave&&a.wocg.Comm.send("options.table.save",this.generateOptions(!0));this.cb(this.generateOptions());this.close()};a.ModalGameOptions.prototype.show=function(m,H=!0){if(this.modalInput){this.cb=m;this.shouldSave=H;this.modalInput.removeClass("modalClosing");this.modalInput.setStyle("display","block");var c=this;requestAnimationFrame(function(){c.modalInput&&(c.resize(),a.Transition.run({node:c.modalInput,duration:220,opacity:1}))});
369this.modalInput.on("keydown",
370this.keyDownHandler,this);var e=this.cancelHandler.bind(this);this.escapeFunction=function(){e()};a.KeyboardShortcuts.on("escape",this.escapeFunction);this.modalInput.one(".messageContainer").on("click",this.close,this)}};a.ModalGameOptions.prototype.keyDownHandler=function(m){13===m.keyCode?this.okHandler():27===m.keyCode&&this.inputBox.blur()};a.ModalGameOptions.prototype.close=function(m){if(!(m&&m.target&&m.target._node.closest(".innerContainer"))){a.KeyboardShortcuts.detach("escape",this.escapeFunction);
371this.modalInput.detach("keydown",this.keyDownHandler,this);this.modalInput.one(".ok").detach("click",this.okHandler,this);var H=this;this.modalInput.addClass("modalClosing");a.Transition.run({node:this.modalInput,duration:160,opacity:0,cb:function(){H.modalInput&&(H.modalInput.remove(!0),H.modalInput=null)}})}};a.ModalGameOptions.prototype.updatedRegisteredOnlyCheckbox=function(){if(!this.disabled){var m=this.optionCheckboxes.registeredOnly,H=!a.wocg.User.isRegistered()||!a.wocg.User.isMultiplayerAllowed();
372m.setDisabled(H)}};a.ModalGameOptions.prototype.updatedNoGamesInProgressCheckbox=function(){this.disabled||this.optionCheckboxes.noGamesInProgress.setDisabled(!a.wocg.User.isMultiplayerAllowed())};a.ModalGameOptions.prototype.updatedExperiencedOnlyCheckbox=function(){if(!this.disabled){var m=this.optionCheckboxes.experiencedOnly,H=!a.wocg.User.isRegistered()||!a.wocg.User.isMultiplayerAllowed();m.setDisabled(H)}};a.ModalGameOptions.prototype.updatedRankedCheckbox=function(){if(!this.disabled){var m=
373this.optionCheckboxes.ranked,H=!a.wocg.User.isRegistered()||!a.wocg.User.isMultiplayerAllowed()||!a.wocg.User.isExperienced();m.setDisabled(H)}};a.ModalGameOptions.prototype.updatedEuchreSTDForRanked=function(m){if("hostTableOptions"==this.type){var H=this.optionRadios.euchreSTD;H&&(m?("noEuchreSTD"===H.checked&&(this.euchreSTDBeforeRanked=H.checked,H.setChecked("yesEuchreSTD",!0),a.fire("Notice:show",{message:"Ranked Euchre games are always played with Stick the dealer.",type:"warning"})),H.setDisabled(!0,
374"noEuchreSTD")):(H.setDisabled(!1,"noEuchreSTD"),this.euchreSTDBeforeRanked&&(H.setChecked(this.euchreSTDBeforeRanked,!0),delete this.euchreSTDBeforeRanked)))}};a.ModalGameOptions.prototype.updatedBotsOptions=function(){if(!this.disabled&&!a.wocg.User.isMultiplayerAllowed()){var m=this.optionRadios.robotsChoice;m.setChecked("yesRobots");m.setDisabled(!0,"noRobots");m.setDisabled(!0,"yesRobots");m.setDisabled(!0,"dontCareRobots")}};a.ModalGameOptions.prototype.updatedPrivateTableCheckbox=function(){if(!this.disabled){var m=
375this.optionCheckboxes.privateTable;m.setDisabled(!a.wocg.User.isMultiplayerAllowed());a.wocg.User.isMultiplayerAllowed()&&"privateTableOptions"!=this.type||m.setChecked(!0)}};a.ModalGameOptions.prototype.updatedExtraPrivateTablesCheckbox=function(){if(!this.disabled){var m=this.optionCheckboxes.extraPrivateTables,H=!a.wocg.User.isRegistered()||!a.wocg.User.isMultiplayerAllowed();m.setDisabled(H)}};a.ModalGameOptions.prototype.generateOptions=function(m=!1){var H=function(p){return!!this.modalInput.one(".optionsFrame "+
376p+" .checkbox")&&!!this.modalInput.one(".optionsFrame "+p+" .checkbox").hasClass("checked")}.bind(this),c={};c.gameid=this.gameid;c.registeredOnly=H(".registeredOnly");c.noGamesInProgress=H(".noGamesInProgress");c.experiencedOnly=H(".experiencedOnly");m||(c.ranked=H(".ranked"));this.modalInput.one(".optionsFrame .robotsChoiceLi .noRobots .radio").hasClass("checked")?c.noRobots=1:this.modalInput.one(".optionsFrame .robotsChoiceLi .yesRobots .radio").hasClass("checked")?c.noRobots=0:c.noRobots=2;c.privateTable=
377H(".privateTable");var e=this.modalInput.one("#privateTableNameInputBox");if(e)var h=e.get("value");else(h=this.modalInput.one(".optionsFrame .privateTableNameRow .tableName"))&&(h=h.getContent());c.privateTableName=this.getPrivateTableName(h);c.extraPrivateTables=H(".extraPrivateTables");C[this.gameid].EXTRA_GAME_OPTIONS.forEach(function(p){c[p]=this.generateExtraGameOption(p,p+"Li")}.bind(this));m&&"noEuchreSTD"===this.euchreSTDBeforeRanked&&(c.euchreSTD=C.EXTRA_GAME_OPTIONS_MAP.euchreSTD.no);this.extraPrivateTableNames=
378[];for(m=0;m<C.MAX_PRIVATE_TABLE_NAMES-1;m++)(e=this.modalInput.one("#extraPrivateTableNameInputBox"+(m+1))
378)&&(h=e.get("value")),e=this.getPrivateTableName(h),e!==C.ANONYMOUS_TABLE_NAME&&this.extraPrivateTableNames.push(e);c.numSeats=C[this.gameid].MIN_PLAYERS===C[this.gameid].MAX_PLAYERS?[C[this.gameid].MIN_PLAYERS]:this.modalInput.getAll(".options .numSeats .checkbox").map(function(p){return p.hasClass("checked")?+p.getAttribute("value"):0}).filter(function(p){return 0!==p});this.extraPrivateTableNames&&
3790<this.extraPrivateTableNames.length&&(c.extraPrivateTableNames=this.extraPrivateTableNames.slice());return c};a.ModalGameOptions.prototype.generateExtraGameOption=function(m,H){var c=C.EXTRA_GAME_OPTIONS_MAP[m].ui;"radio"===c?(c=m.capitalize(m),m=this.modalInput.one(".optionsFrame ."+H+" .no"+c+" .radio").hasClass("checked")?C.EXTRA_GAME_OPTIONS_MAP[m].no:this.modalInput.one(".optionsFrame ."+H+" .yes"+c+" .radio").hasClass("checked")?C.EXTRA_GAME_OPTIONS_MAP[m].yes:C.EXTRA_GAME_OPTIONS_MAP[m].either):
380m=!!this.modalInput.one(".optionsFrame ."+m+" ."+c).hasClass("checked");return m};a.ModalGameOptions.prototype.resizeHandler=function(){this.resizeTimer&&this.resizeTimer.stop();this.resizeTimer=new Timer(200);this.resizeTimer.start(this.resize.bind(this))};a.ModalGameOptions.prototype.resize=function(){delete this.resizeTimer;if(this.modalInput){var m=this.modalInput.one(".messageContainer"),H=Math.max((window.innerHeight-m.getHeight())/2,40);m.setStyle("margin-top",H+"px")}};a.ModalGameOptions.prototype.destroy=
381function(m){this.detachGlobalEvents();this.destroyed=!0};this.globalEventHandlers={"window:resized":this.resizeHandler};a.ModalGameOptions.prototype.attachGlobalEvents=function(){Object.forEach(this.globalEventHandlers,function(m,H){a.on(m,H,this)}.bind(this))};a.ModalGameOptions.prototype.detachGlobalEvents=function(){Object.forEach(this.globalEventHandlers,function(m,H){a.detach(m,H)})};this.attachGlobalEvents();this.init(v,d,n)}},"1.0",{requires:["wocg.Comm","KeyboardShortcuts","Transition","ModalConfirm"]});
382YUI.add("ModalLegalConsentScreen",function(a){a.ModalLegalConsentScreen=function(){this.background=this.messageContainer=this.modalInput=null;this.consentCheckboxes={};a.ModalLegalConsentScreen.prototype.init=function(){this.modalInput=a.Node.create("<div>").set("id","ModalLegalConsentScreen").setStyle("display","none").setAttribute("role","dialog").setAttribute("aria-modal","true").setAttribute("aria-label","Legal consent");this.themeConfig=a.wocg.Theme.getCurrentThemeConfig();var q={dimensions:this.themeConfig.checkboxDimensions,
383imagePath:"images/checkbox/"+this.themeConfig.id+"/",imageBuilder:a.wocg.buildAssetImageURL},w=a.Node.create("<div>").addClass("instructions"),k=a.Node.create("<div>").set("id","msg_div"),x=a.Node.create("<span>").setContent("Accept ToS and Privacy Policy"),y=a.Node.create("<div>").addClass("instructions"),v=a.Node.create("<span>").setContent("To play this game, you must be over 13 years old and agree to the <a href='/world-of-card-games-terms-of-use'>Terms of Use</a> and <a href='/world-of-card-games-privacy-policy'>Privacy Policy</a>. Check the box below and agree to continue.");
384k.append(x);y.append(v);q=new a.Checkbox("legalConsent",!1,"Accept terms",q);q.node.set("id","legalConsent");this.consentCheckboxes.legalConsent=q;w.append(k);w.append(y);this.addRow(w,"legalConsent",q.node);k=a.Node.create("<button>").addClass("button").addClass("green").addClass("ok").setContent("Agree");k.on("click",this.okHandler,this);y=a.Node.create("<div>").addClass("parent");x=a.Node.create("<div>").addClass("child");x.append(q.node);x.append(k);y.append(x);w.append(y);this.background=a.Node.create("<div>").addClass("background");
385this.modalInput.append(this.background);this.modalInput.on("click",d=>{d.target&&d.target._node&&d.target._node.classList&&d.target._node.classList.contains("background")&&this.close()});this.messageContainer=a.Node.create("<span>").addClass("messageContainer").set("id","messageContainer").append(w);w=a.Node.create("<img>").addClass("close").set("src",a.wocg.buildAssetImageURL("images/closeModal.png")).set("width","32").set("height","32");w.on("click",this.close,this);this.messageContainer.append(w);
386this.modalInput.append(this.messageContainer);a.one("#mainContainer").append(this.modalInput)};a.ModalLegalConsentScreen.prototype.resize=function(){this.messageContainer.setStyle("top",Math.max((window.innerHeight-this.messageContainer.getHeight())/2,40)+"px")};a.ModalLegalConsentScreen.prototype.addRow=function(q,w,k){var x=a.Node.create("<div>");x.append(k);x.addClass(w);q.append(x);return x};a.ModalLegalConsentScreen.prototype.okHandler=function(q){this.consentCheckboxes.legalConsent.checked&&
387this.cb()};a.ModalLegalConsentScreen.prototype.show=function(q){this.modalInput&&(this.cb=q,this.modalInput.removeClass("modalClosing"),this.modalInput.setStyle("display","block"),this.resize(),a.Transition.run({node:this.modalInput,duration:220,opacity:1}))};a.ModalLegalConsentScreen.prototype.close=function(q){if(this.modalInput){this.modalInput.one(".ok").detach("click",this.okHandler,this);this.modalInput.addClass("modalClosing");var w=this;a.Transition.run({node:this.modalInput,duration:160,
388opacity:0,cb:function(){w.modalInput&&(w.modalInput.remove(!0),w.modalInput=null);w.detachGlobalEvents();w.destroyed=!0}})}};a.ModalLegalConsentScreen.prototype.destroy=function(){this.detachGlobalEvents()};this.globalEventHandlers={"comm:user.legal.complete":this.close,"user:consented":this.close};a.ModalLegalConsentScreen.prototype.attachGlobalEvents=function(){Object.forEach(this.globalEventHandlers,function(q,w){a.on(q,w,this)}.bind(this))};a.ModalLegalConsentScreen.prototype.detachGlobalEvents=
389function(){Object.forEach(this.globalEventHandlers,function(q,w){a.detach(q,w)})};this.attachGlobalEvents();this.init()}},"1.0",{requires:["wocg.Comm","KeyboardShortcuts","Transition","ModalInput"]});
390YUI.add("ModalWebview",function(a){a.ModalWebview=function(){this.iframe=this.background=this.innerContainer=this.modalWebview=null;a.ModalWebview.prototype.init=function(){this.modalWebview=a.Node.create("<div>").set("id","ModalWebview").setStyle("display","none").setAttribute("role","dialog").setAttribute("aria-modal","true").setAttribute("aria-label","Web content");this.themeConfig=a.wocg.Theme.getCurrentThemeConfig();this.background=a.Node.create("<div>").addClass("background");this.modalWebview.append(this.background);
391this.modalWebview.on("click",w=>{w.target&&w.target._node&&w.target._node.classList&&w.target._node.classList.contains("background")&&this.close()});this.innerContainer=a.Node.create("<div>").addClass("innerContainer");this.iframe=a.Node.create("<iframe>").addClass("webview-iframe");this.innerContainer.append(this.iframe);var q=a.Node.create("<img>").addClass("close").set("src",a.wocg.buildAssetImageURL("images/closeModal.png")).set("width","32").set("height","32");q.on("click",this.close.bind(this));
392this.innerContainer.append(q);this.modalWebview.append(this.innerContainer);a.one("body").append(this.modalWebview)};a.ModalWebview.prototype.show=function(q){q?(this._escapeHandler=this.close.bind(this),a.KeyboardShortcuts.on("escape",this._escapeHandler),this.modalWebview.removeClass("modalClosing"),this.modalWebview.setStyle("display","block"),this.iframe.set("src",q),this.resize(),a.Transition.run({node:this.modalWebview,duration:220,opacity:1})):console.error("URL is required to show ModalWebview")};
393a.ModalWebview.prototype.close=function(){a.KeyboardShortcuts.detach("escape",this._escapeHandler);this.modalWebview.addClass("modalClosing");var q=this;a.Transition.run({node:this.modalWebview,duration:160,opacity:0,cb:function(){q.modalWebview.setStyle("display","none");q.modalWebview.removeClass("modalClosing");
393q.iframe.set("src","")}})};a.ModalWebview.prototype.resize=function(){this.innerContainer.setStyle("top",Math.max((window.innerHeight-this.modalWebview.getHeight())/2,40)+"px")};this.init()}},
394"1.0",{requires:["wocg.Comm","KeyboardShortcuts","Transition"]});
395YUI.add("ModalRules",function(a){a.ModalRules=function(){this.iframe=this.background=this.innerContainer=this.modalRules=null;a.ModalRules.prototype.init=function(){this.modalRules=a.Node.create("<div>").set("id","ModalRules").setStyle("display","none").setAttribute("role","dialog").setAttribute("aria-modal","true").setAttribute("aria-label","Game rules");this.themeConfig=a.wocg.Theme.getCurrentThemeConfig();this.background=a.Node.create("<div>").addClass("background");this.modalRules.append(this.background);
396this.modalRules.on("click",w=>{w.target&&w.target._node&&w.target._node.classList&&w.target._node.classList.contains("background")&&this.close()});this.innerContainer=a.Node.create("<div>").addClass("innerContainer");var q=a.one("body").one("#gameSelectorContainer").one(".rulesContainer").cloneNode(!0);console.log("text",q);this.innerContainer.append(q);this.background.append(this.innerContainer);q=a.Node.create("<img>").addClass("close").set("src",a.wocg.buildAssetImageURL("images/closeModal.png")).set("width",
397"32").set("height","32");q.on("click",this.close.bind(this));this.innerContainer.append(q);this.modalRules.append(this.background);a.one("body").append(this.modalRules)};a.ModalRules.prototype.show=function(){this._escapeHandler=this.close.bind(this);a.KeyboardShortcuts.on("escape",this._escapeHandler);this.modalRules.removeClass("modalClosing");this.modalRules.setStyle("display","block");a.Transition.run({node:this.modalRules,duration:220,opacity:1})};a.ModalRules.prototype.close=function(){a.KeyboardShortcuts.detach("escape",
398this._escapeHandler);this.modalRules.addClass("modalClosing");var q=this;a.Transition.run({node:this.modalRules,duration:160,opacity:0,cb:function(){q.modalRules.setStyle("display","none");q.modalRules.removeClass("modalClosing");q.iframe&&q.iframe.set("src","")}})};this.init()}},"1.0",{requires:["wocg.Comm","KeyboardShortcuts","Transition"]});
399(function(a){function q(y,v,d){return(y="object"===typeof y?y:y&&a[y])&&"number"===typeof y[v]?y[v]:d}var w="undefined"!==typeof process&&"undefined"!==typeof process.versions&&"undefined"!==typeof process.versions.node?require("node-base"):window.base;a.PWD_SALT="b9c062eefb8047aa87dd95f15f253e38";a.SITE_SUPPORTER_LEVEL_0=0;a.SITE_SUPPORTER_LEVEL_1=1;a.SITE_SUPPORTER_LEVEL_2=2;a.SITE_SUPPORTER_LEVEL_3=3;a.SITE_SUPPORT_PAYMENTS={monthlyGold:{paymentAmount:"499",paymentPeriod:"monthly",subscription:!0,
400level:2},yearlyGold:{paymentAmount:"4800",paymentPeriod:"yearly",subscription:!0,level:0},once:{paymentAmount:"4800",paymentPeriod:"once",subscription:!1,level:1}};a.REDEAL_DECISION_DURATION=30*w.SECOND;a.MAX_REDEALS=5;a.MAX_USERLIKES=999;a.MAX_USERDISLIKES=500;a.MAX_USERMUTES=500;a.MAX_LIKES_PER_HOUR=20;a.MAX_LIKES_PER_DAY=60;a.MAX_FRIEND_MESSAGES_PER_MINUTE=10;a.MAX_FRIEND_MESSAGE_RECIPIENTS_PER_5MIN=10;a.MAX_FRIEND_MESSAGES_PER_HOUR=30;a.MAX_FRIEND_MESSAGES_PER_DAY=100;a.FRIEND_MESSAGE_COOLDOWN_SECONDS=
4011;a.MAX_FRIEND_CONVERSATION_MESSAGES=100;a.MAX_INVITES_PER_MINUTE=8;a.MAX_INVITES_PER_SEAT_MULTIPLIER=2;a.RATE_LIMIT_TTL_SECONDS=86400;a.VIOLATION_TTL_SECONDS=3600;a.BAN_TTL_SECONDS=3600;a.TABLE_INVITES_TTL_SECONDS=86400;a.USER_TABLE_CONTEXT_TTL_SECONDS=86400;a.MESSAGE_RECIPIENTS_TTL_SECONDS=300;a.MESSAGE_DUPLICATE_TTL_SECONDS=300;a.MESSAGE_PER_FRIEND_TTL_SECONDS=60;a.FRIEND_MESSAGE_HISTORY_PAGE_SIZE=50;a.SOCIAL_PAGE_SIZE=40;a.ACTIVITY_TYPES=["invite","liked","friends","message"];a.ONE_WAY_MSG_COOLDOWN_SECONDS=
4023600;a.MAX_ONE_WAY_MSGS_PER_DAY=5;a.TABLE_ACTIVITY_EXPIRY_MS=30*w.MINUTE;a.MAX_ACTIVITIES=200;a.ACTIVITY_EXPIRY_DAYS=30;a.ACTIVITY_REMOVAL_WINDOW_MS=30*w.MINUTE;a.REQUEST_TIMEOUT=4*w.SECOND;a.MAX_PRIVATE_TABLE_NAMES=5;a.MAX_USERNAME_LENGTH=20;a.TABLE_OPTIONS_SAVE_DELAY=4*w.SECOND;a.FIND_TABLE_PROGRESS_DELAY=3*w.SECOND;a.FIND_TABLE_TIMEOUT=6*w.SECOND;a.GAME_START_DELAY=11*w.SECOND;a.GAME_CONTINUE_DELAY=1*w.SECOND;a.GAME_RESTART_DELAY=3*w.SECOND;a.SHOW_TURN_TIMER_AT=10*w.SECOND;a.SHOW_PHASE_TIMER_AT=
40310*w.SECOND;a.SOLO_GAME_HINT_DELAY=30*w.SECOND;a.PRIVATE_TABLE_TURN_DURATION_MULTIPLIER=2;a.PRIVATE_TABLE_MAX_TURN_DURATION=5*w.MINUTE;a.LEAVE_RANKED_TABLE_BAN_TIME=1*w.HOUR;a.LEAVE_TABLE_BAN_TIME=10*w.MINUTE;a.DONOTRANK_RANKED_TABLE_BAN_TIME=w.WEEK;a.LEAVE_RANKED_TABLE_BAN_MSG="Don't quit ranked tables! Banned from ranked play for 1 hour.";a.INVOLUNTARY_RANKED_EXIT_BAN_THRESHOLD=3;a.INVOLUNTARY_RANKED_EXIT_WINDOW_SECONDS=604800;a.REPEAT_DISCONNECT_RANKED_BAN_MSG="Too many dropped ranked games this week. Banned from ranked play for 1 hour.";
404a.PUBLIC_TABLE_PAUSE_DURATION=5*w.MINUTE;a.PUBLIC_TABLE_UNPAUSE_COOLDOWN=10*w.SECOND;a.TABLE_POLL_INTERVAL=10*w.SECOND;a.NAME_PIECE_PULSE_DURATION=800;a.MAX_TABLE_ALIVE_DURATION=4*w.HOUR;a.TABLE_ALIVE_RECHECK_DURATION=w.HOUR;a.PIECE_DEAL_DURATION=240;a.PIECE_DEAL_INTERVAL=64;a.PIECE_DEAL_TARGET_Z_INDEX_SWITCH_RATIO=.5;a.BATCH_MOVE_ZINDEX_OPTIONS={preserveSourceZIndexDuringMove:!0,deferS
404ourceZIndexUpdate:!0,deferZIndexUpdateWhileActive:!0,targetZIndexSwitchRatio:a.PIECE_DEAL_TARGET_Z_INDEX_SWITCH_RATIO};
405a.CARD_REVEAL_STAGGER=64;a.DEAL_SOURCE_ENTER_DURATION=400;a.DEAL_SOURCE_SETTLE_DELAY=480;a.DEAL_TO_TURN_DELAY=640;a.DEAL_RESYNC_RETRY_DELAY=5*w.SECOND;a.PIECE_MOVE_DURATION=800;a.PIECE_PLAY_MOVE_DURATION=.8*a.PIECE_MOVE_DURATION;a.PIECE_PLAY_MOVE_EASING="ease-in-out";a.MOVE_AND_FLIP_FLIP_DURATION=480;a.MOVE_AND_FLIP_SOUND_DELAY=a.PIECE_MOVE_DURATION-a.MOVE_AND_FLIP_FLIP_DURATION;a.DEAL_REVEAL_DURATION=a.PIECE_MOVE_DURATION/2;a.PIECE_CLEANUP_DURATION=560;a.PIECE_CLEANUP_EASING="ease-in-2";a.CHAT_BASE_LIFESPAN=
4065*w.SECOND;a.GAME_CHAT_LIFESPAN=3.2*w.SECOND;a.MAX_CHAT_LENGTH=140;a.MAX_MESSAGE_LENGTH=140;a.SHUTDOWN_DELAY=15*w.MINUTE;a.SHUTDOWN_TIME_LOCKOUT_LENGTH=5*w.MINUTE;a.UNSELECTABLE_ANIMATE_DURATION=160;a.UNSELECTABLE_MASK_COUNT=15;a.AI_DECISION_DELAY_MIN=640;a.AI_DECISION_DELAY_MAX=960;a.AI_GO_OUT_RESPONSE_DELAY_MIN=800;a.AI_GO_OUT_RESPONSE_DELAY_MAX=3200;a.TURN_ELAPSED_REDUCTION_TIERS=[.2,.4,.6];a.WALLPAPER_CHANGE_DURATION=320;a.TABLE_BAR_ANIMATION_DELAY=320;a.TABLE_BAR_ANIMATION_DURATION=240;a.DEFAULT_AVATAR=
407"AnimalDogTambourine";a.DEFAULT_AVATARS="AnimalDogTambourine AnimalPenguinConfused AnimalKoala AnimalBeaver AnimalPandaHappy AnimalGopherConstruction AnimalFoxRockstar AnimalSquirrel2 AnimalFox2 AnimalSquirrel AnimalPenguin AnimalButterfly2 AnimalMonkeyToes AnimalAlligator AnimalDogSitting3 AnimalDogGeek AnimalRaccoon2 AnimalKangaroo AnimalSeahorse AnimalSnake".split(" ");a.DEFAULT_USERNAMES="Dog Gorilla Koala Cat Panda Mouse Otter Leopard Tiger Giraffe Zebra Lion Chimp Gator Chicken Hippo Raccoon Horse Sheep Elephant".split(" ");
408a.DEFAULT_USERNAMES_ADJECTIVES={Dog:"Loyal Playful Happy Wagging Barking Cuddly Yappy Howling Goofy Devoted".split(" "),Gorilla:"Mighty Burly Strong Gentle Hairy Hulking Stoic Noble Calm".split(" "),Koala:"Sleepy Lazy Cuddly Fuzzy Fluffy Cozy Snuggly Dozy Dreamy Clingy Pouchy Leafy".split(" "),Cat:"Curious Sneaky Purring Playful Sassy Clever Nimble Fluffy Furry Meowing Cuddly".split(" "),Panda:"Gentle Cuddly Chubby Sleepy Fluffy Lazy Clumsy Playful Fuzzy Soft Round Pudgy Goofy".split(" "),Mouse:"Tiny Squeaky Sneaky Nimble Quiet Shy Speedy Clever Timid".split(" "),
409Otter:"Playful Slick Soggy Bubbly Curious Wet Agile Furry".split(" "),Leopard:"Spotted Sneaky Swift Sleek Shadowy Quick Leaping Silent Lurking Wild".split(" "),Tiger:"Fierce Striped Swift Roaring Bold Wild Stalking".split(" "),Giraffe:"Tall Spotty Gentle Calm Elegant Lofty".split(" "),Zebra:"Striped Bold Swift Wild Plains Grazing Streaky".split(" "),Lion:"Roaring Fierce Wild Bold Roaming Royal Regal Kingly Brave Proud".split(" "),Chimp:"Playful Silly Clumsy Curious Shy Whimsy Clever Nimble".split(" "),
410Gator:"Snappy Scaly Swampy Toothy Lurking Hungry".split(" "),Chicken:"Clucky Pecky Plucky Chirpy Cheery Flappy Squawky".split(" "),Hippo:"Hefty Chubby Bulky Muddy Splashy Grumpy Hungry Plump Massive".split(" "),Raccoon:"Sneaky Crafty Bandit Masked Clever Curious Nimble".split(" "),Horse:"Swift Noble Sturdy Speedy Proud Wild Brave Dusty".split(" "),Sheep:"Woolly Fluffy Fuzzy Baaing Soft Cloudy Gentle Curly Grazing Mellow Snuggly".split(" "),Elephant:"Mighty Gentle Tusky Stompy Wise Jumbo Grand".split(" ")};
411a.DEFAULT_ADJECTIVES="Happy Playful Brave Gentle Smart Curious Silly Lively Merry Joyful Sunny Bouncy Zippy Peppy Bold Shy Kind Cool Goofy Dynamic Radiant Vibrant Bright Daring Dreamy Eager Sparkly Gleeful Spry Snappy Zany Upbeat Perky Nifty Jolly Whizzy Spunky Winsome Cheery Nimble Quick Gallant Helpful Breezy Active Agile Alert Awesome Amazing Brisk Calm Ace Airy Amiable Amused Beaming Busy Buoyant Capable Chirpy Clear Clever Cozy Crisp Dainty Epic Feisty Festive Fizzy Focused Free Fresh Funny Funky Groovy Handy Hopeful Hoppy Hyper Ideal Jumpy Light Lovely Loyal Magical Plucky Refined Robust Rosy Sassy Serene Shining Smooth Solid Sonic Sturdy Tickled Trendy Trusty Zappy".split(" ");
412a.PIECE_FADE_DURATION=320;a.TRAM_BUTTON_FADE_DURATION=800;a.GAME_OVER_INITIAL_FADE_DURATION=800;a.GAME_OVER_FADE_INTERVAL=a.PIECE_FADE_DURATION;a.FAN_ARC_RADIUS=400;a.BOT_HAND_ARC_RATIO=.32;a.PIECE_PUSH_PULL_DURATION=240;a.STATS_PLAYERCOUNTS_INTERVAL=30*w.SECOND;a.INVITE_ROBOT_CHAT_TIP_DELAY=10*w.SECOND;a.INVITE_ROBOT_CHAT_TIP_DURATION=25*w.SECOND;a.ANONYMOUS_TABLE_NAME="none";a.MAX_TABLE_NAME_LENGTH=16;a.TABLE_HASH_LENGTH=4;a.MAX_QUIT_HISTORY=50;a.REPUTATION_LIMITED_THRESHOLD=50;a.REPUTATION_MIN_GAMES=
41310;a.REPUTATION_WEIGHTS={toxicity:400,mute:250,stall:100,dislike:150};a.MAX_TABLE_MINUTES=10080;a.MIN_PLAY_TIME_SEC_THAT_COUNTS_FOR_LOSS=30;a.VENUE_SUBSCRIBER_UPDATE_INTERVAL=4*w.SECOND+500;a.MAX_PLAYERS=6;a.MAX_PLAYERS_INDEX=a.MAX_PLAYERS-1;a.DISCONNECT_GRACE_PERIOD_DELAY=5*w.SECOND;a.DISCONNECT_GRACE_PERIOD=8*w.SECOND;a.DISCONNECT_COUNTDOWN_DURATION=5*w.SECOND;a.DISCONNECT_GRACE_PERIOD_SOLO_GAME=4*w.HOUR;a.DISCONNECT_GRACE_PERIOD_RANKED_GAME=3*w.MINUTE;a.DISCONNECT_GRACE_PERIOD_RELOAD=60*w.SECOND;
414a.DISCONNECT_GRACE_PERIOD_LAST_HUMAN=3*w.MINUTE;
414a.SEAT_HOLD_PERIOD_UNRANKED_GAME=2*w.MINUTE;a.MAX_SEAT_HOLD_EVENTS_UNRANKED_GAME=3;a.RELOAD_HINT_VALID_MS=15*w.SECOND;a.RELOAD_RETURN_TURN_FLOOR=10*w.SECOND;a.CLOSING_HINT_VALID_MS=15*w.SECOND;a.AD_PADDING=0;a.AUDIO_PLAYER_LEFT="player_left";a.AUDIO_PLAYER_ENTERED="player_entered";a.AUDIO_GAME_UNPAUSED="game_unpaused";a.AUDIO_GAME_PAUSED="game_paused";a.AUDIO_TICK_LOW="tick_low";a.AUDIO_TICK_HIGH="tick_high";a.AUDIO_NOTIFICATION="notification";a.AUDIO_HAND_OVER=
415"hand_over";a.AUDIO_GAME_OVER="game_over";a.AUDIO_CELEBRATION="celebration";a.AUDIO_SCORE="score";a.AUDIO_CARD_PLACE="card_place";a.AUDIO_CARD_PICK="card_pick";a.AUDIO_CARD_TRICK_TAKEN="card_trick_taken";a.AUDIO_CARD_DEAL="card_deal";a.AUDIO_SOCIAL_NOTIFICATION="social_notification";a.POST_GAME_CHAT_WINDOW=3E4;a.POST_GAME_REMATCH_WINDOW=10*w.SECOND;a.POST_GAME_REMATCH_PUBLIC_DELAY=10*w.SECOND;a.DEFAULT_ELO_RATING=1500;a.getPieceDealInterval=function(y){return q(y,"PIECE_DEAL_INTERVAL",a.PIECE_DEAL_INTERVAL)};
416a.getPieceDealDuration=function(y){return q(y,"PIECE_DEAL_DURATION",a.PIECE_DEAL_DURATION)};a.FOUR_PLAYER_DEAL_HAND_INTERVAL=4*a.PIECE_DEAL_INTERVAL;a.getDealIntervalForPlayerCount=function(y){return a.PIECE_DEAL_INTERVAL};a.getRoundRobinDealDuration=function(y,v,d){return a.getDealSequenceDuration(Math.max(0,y||0)*Math.max(0,v||0),d)};a.getRoundRobinDealFromSourceDuration=function(y,v,d){return a.getDealFromSourceDuration(Math.max(0,y||0)*Math.max(0,v||0),d)};a.getDealSequenceDuration=function(y,
417v){return(y=Math.max(0,y||0))?(y-1)*a.getPieceDealInterval(v)+a.getPieceDealDuration(v):0};a.getDealSourceEnterDuration=function(y){return q(y,"DEAL_SOURCE_ENTER_DURATION",a.DEAL_SOURCE_ENTER_DURATION)};a.getDealFromSourceDuration=function(y,v){return(y=Math.max(0,y||0))?a.getDealSourceEnterDuration(v)+a.DEAL_SOURCE_SETTLE_DELAY+a.getDealSequenceDuration(y,v):0};a.getDealRevealDuration=function(y,v){return(y=Math.max(0,y||0))?y*("number"===typeof v?v:a.DEAL_REVEAL_DURATION):0};a.getCardRevealStaggerDuration=
418function(y){y=Math.max(0,y||0);return 1<y?(y-1)*a.CARD_REVEAL_STAGGER:0};a.getMoveAndFlipDuration=function(y,v){return(y=Math.max(0,y||0))?("number"===typeof v?v:a.PIECE_MOVE_DURATION)+a.getCardRevealStaggerDuration(y):0};a.getMoveAndFlipFaceSwapDelay=function(y,v){y="number"===typeof y?Math.max(0,y):a.PIECE_MOVE_DURATION;var d=y*Math.max(0,Math.min(1,a.MOVE_AND_FLIP_FLIP_DURATION/Math.max(1,a.PIECE_MOVE_DURATION||1)));v="number"===typeof v?Math.max(0,v):Math.max(0,y-d);return Math.round(v+d/2)};
419a.getFlatMoveThemeSwapDelay=function(y){y="number"===typeof y?Math.max(0,y):a.PIECE_MOVE_DURATION;return Math.round(y*a.PIECE_DEAL_TARGET_Z_INDEX_SWITCH_RATIO)};a.getSmallToBigDeckSwapDelay=function(y){y="number"===typeof y?Math.max(0,y):a.PIECE_MOVE_DURATION;return Math.round(.15*y)};var k={MIN_PLAYERS:2,MAX_PLAYERS:6,DEFAULT_PLAYERS:4,CARDS_PER_PLAYER:[0,7,5,5,5,5],MIN_CARDS_PER_PLAYER:5,MAX_CARDS_PER_PLAYER:7};k.DEAL_DURATION=a.getRoundRobinDealFromSourceDuration(5,k.DEFAULT_PLAYERS);k.ASK_TURN_DURATION=
42015*w.SECOND;k.ASK_RESPONSE_DELAY=.8*a.GAME_CHAT_LIFESPAN;k.FISH_TURN_START_DELAY=.4*a.GAME_CHAT_LIFESPAN;k.NO_FISH_NEXT_TURN_DELAY=.4*a.GAME_CHAT_LIFESPAN;k.ASK_AGAIN_DELAY=.8*a.GAME_CHAT_LIFESPAN;k.FISH_TURN_DURATION=15*w.SECOND;k.BOOK_SHOW_DELAY=3*w.SECOND;k.EXTRA_GAME_OPTIONS=[];k.TURNS_ELAPSED_KICK_THRESHOLD=8;k.MAX_DISCONNECT_EVENTS_RANKED_GAME=5;a.gofish=k;var x={MIN_PLAYERS:2,MAX_PLAYERS:6};x.MAX_PLAYERS_INDEX=x.MAX_PLAYERS-1;x.DEFAULT_PLAYERS=4;x.DEAL_DURATION=a.getDealFromSourceDuration(51);
421x.DRAW_TURN_DURATION=15*w.SECOND;x.PAIR_SHOW_DELAY=2*w.SECOND;x.EXTRA_GAME_OPTIONS=[];x.TURNS_ELAPSED_KICK_THRESHOLD=8;x.MAX_DISCONNECT_EVENTS_RANKED_GAME=5;x.FAN_ARC_RADIUS=1200;x.PAIR_REVEAL_MOVE_DURATION=400;x.PAIR_HOLD_DURATION=800;x.PAIR_PLAYER_GAP=80;x.getInitialRevealDuration=function(y){return Array.isArray(y)?y.reduce(function(v,d){d=Math.max(0,d||0);return 1>d?v:v+x.PAIR_REVEAL_MOVE_DURATION+(2*d-1)*a.CARD_REVEAL_STAGGER+x.PAIR_HOLD_DURATION+x.PAIR_REVEAL_MOVE_DURATION+x.PAIR_PLAYER_GAP},
4220):0};a.oldmaid=x;k={MIN_PLAYERS:4,MAX_PLAYERS:4,DEFAULT_PLAYERS:4};k.CARDS_PER_PLAYER=[].pushMany(13,4);k.MIN_CARDS_PER_PLAYER=13;k.MAX_CARDS_PER_PLAYER=13;k.DEAL_DURATION=a.getRoundRobinDealFromSourceDuration(13,k.MAX_PLAYERS);k.CHOOSE_DURATION=30*w.SECOND;k.PASS_DELAY=640;k.PASS_MOVE_DURATION=a.PIECE_MOVE_DURATION;k.PASS_MOVE_DELAY=320;k.PASS_PUSH_IN_DELAY=400;k.PLAY_TURN_DURATION=15*w.SECOND;k.TRICK_TAKE_DURATION=a.PIECE_MOVE_DURATION;k.TRICK_TAKE_DELAY=1.44*w.SECOND;k.TRAM_TAKE_DURATION=a.PIECE_MOVE_DURATION;
423k.TRAM_TAKE_DELAY=1.6*w.SECOND;k.PASS_DIRECTIONS=["left","right","across","none"];k.PASS_DIRECTIONS_VAR=["left","right","across"];k.END_GAME_SCORE_HIGH=100;k.SHOOT_FADE_IN_DURATION=800;k.SHOOT_FADE_INTERVAL=480;k.SHOOT_DURATION_TO_DISPLAYED=k.SHOOT_FADE_IN_DURATION+4*k.SHOOT_FADE_INTERVAL+k.SHOOT_FADE_INTERVAL/2+4*k.SHOOT_FADE_INTERVAL;k.SHOOT_FADE_OUT_DURATION=a.PIECE_FADE_DURATION;k.SHOOT_POST_DELAY=960;k.SHOOT_MOON_PENALTY=26;k.SHOOT_SUN_PENALTY=39;k.HAND_OVER_DURATION=4*w.SECOND;k.NO_PASS_MESSAGE_DURATION=
4242*w.SECOND;k.EXTRA_GAME_OPTIONS=["allowFirstTurnHearts","standardRulesHearts"];k.TURNS_ELAPSED_KICK_THRESHOLD=5;k.MIN_SCORE_TO_INVITE_BOTS_AT_NO_BOTS_TABLE=80;k.MAX_DISCONNECT_EVENTS_RANKED_GAME=5;k.FAN_ARC_RADIUS=1200;a.hearts=k;k={MIN_PLAYERS:4,MAX_PLAYERS:4,DEFAULT_PLAYERS:4,MIN_TEAMS:2,MAX_TEAMS:2};k.CARDS_PER_PLAYER=[].pushMany(13,4);k.MIN_CARDS_PER_PLAYER=13;k.MAX_CARDS_PER_PLAYER=13;k.DEAL_DURATION=a.getRoundRobinDealFromSourceDuration(13,k.MAX_PLAYERS);k.BID_FADE_IN_DURATION=800;k.BID_DURATION=
42530*w.SECOND;k.PLAY_DELAY=480;k.PLAY_TURN_DURATION=15*w.SECOND;k.TRICK_TAKE_DURATION=a.PIECE_MOVE_DURATION;k.TRICK_TAKE_DELAY=1.44*w.SECOND;k.TRAM_TAKE_DURATION=a.PIECE_MOVE_DURATION;k.TRAM_TAKE_DELAY=1.6*w.SECOND;k.FOLD_DURATION=a.PIECE_MOVE_DURATION;k.END_GAME_SCORE_LOW=-200;k.END_GAME_SCORE_HIGH=500;k.HAND_OVER_DURATION=4*w.SECOND;k.MAX_BAGS=9;k.TURNS_ELAPSED_KICK_THRESHOLD=5;k.EXTRA_GAME_OPTIONS=["noBagPenaltySpades"];k.MAX_DISCONNECT_EVENTS_RANKED_GAME=5;k.FAN_ARC_RADIUS=1200;a.spades=k;k={MIN_PLAYERS:4,
426MAX_PLAYERS:4,DEFAULT_PLAYERS:4,MIN_TEAMS:2,MAX_TEAMS:2};k.CARDS_PER_PLAYER=[].pushMany(5,4);k.MIN_CARDS_PER_PLAYER=5;k.MAX_CARDS_PER_PLAYER=5;k.UP_CARD_DEAL_DELAY=480;k.DEAL_DURATION=a.getRoundRobinDealFromSourceDuration(5,k.MAX_PLAYERS);k.CONSIDER_FADE_IN_DURATION=800;k.CONSIDER_TURN_DURATION=15*w.SECOND;k.CONSIDER_SUIT_STAGE_DELAY=1600;k.DISCARD_TURN_DURATION=15*w.SECOND;k.PLAY_DELAY=480;k.PLAY_TURN_DURATION=15*w.SECOND;k.TRICK_TAKE_DURATION=a.PIECE_MOVE_DURATION;k.TRICK_TAKE_DELAY=1.44*w.SECOND;
427k.TRAM_TAKE_DURATION=a.PIECE_MOVE_DURATION;k.TRAM_TAKE_DELAY=1.6*w.SECOND;k.FOLD_DURATION=a.PIECE_MOVE_DURATION;k.END_GAME_SCORE_HIGH=10;k.HAND_OVER_DURATION=4*w.SECOND;k.EXTRA_GAME_OPTIONS=["euchreSTD"];k.TURNS_ELAPSED_KICK_THRESHOLD=5;k.MAX_DISCONNECT_EVENTS_RANKED_GAME=5;k.FAN_ARC_RADIUS=1200;a.euchre=k;k={MIN_PLAYERS:4,MAX_PLAYERS:4,DEFAULT_PLAYERS:4};k.CARDS_PER_PLAYER=[].pushMany(7,4);k.MIN_CARDS_PER_PLAYER=7;k.MAX_CARDS_PER_PLAYER=11;k.BLIND_SIZE=4;k.DEAL_DURATION=a.getRoundRobinDealFromSourceDuration(k.MIN_CARDS_PER_PLAYER,
428k.MAX_PLAYERS);k.PICK_TURN_DURATION=15*w.SECOND;k.BURY_TURN_DURATION=20*w.SECOND;k.CALL_TURN_DURATION=15*w.SECOND;k.PLAY_DELAY=480;k.PLAY_TURN_DURATION=15*w.SECOND;k.TRICK_TAKE_DURATION=a.PIECE_MOVE_DURATION;k.TRICK_TAKE_DELAY=1.44*w.SECOND;k.FOLD_DURATION=a.PIECE_MOVE_DURATION;
428k.HANDS_PER_GAME=4;k.HAND_OVER_DURATION=4*w.SECOND;k.EXTRA_GAME_OPTIONS=[];k.TURNS_ELAPSED_KICK_THRESHOLD=5;k.MAX_DISCONNECT_EVENTS_RANKED_GAME=5;k.FAN_ARC_RADIUS=1200;a.sheepshead=k;k={MIN_PLAYERS:4,MAX_PLAYERS:4,DEFAULT_PLAYERS:4,
429MIN_TEAMS:2,MAX_TEAMS:2};k.CARDS_PER_PLAYER=[].pushMany(4,4);k.MAX_CARDS_PER_PLAYER=8;k.DEAL_DURATION=a.getRoundRobinDealFromSourceDuration(4,k.MAX_PLAYERS);k.CONSIDER_FADE_IN_DURATION=800;k.CONSIDER_TURN_DURATION=20*w.SECOND;k.CONSIDER_SUIT_STAGE_DELAY=1600;k.BID_FADE_IN_DURATION=800;k.DECIDE_DOUBLE_DURATION=15*w.SECOND;k.DECIDE_DOUBLE_FADE_IN_DURATION=800;k.DECIDE_REDOUBLE_DURATION=15*w.SECOND;k.DECIDE_REDOUBLE_FADE_IN_DURATION=800;k.DECLARE_DOUBLE_DURATION=480;k.DECLARE_REDOUBLE_DURATION=480;k.BID_DURATION=
43030*w.SECOND;k.TWENTYNINE_BIDS=[0,15,16,17,18,19,20,21,22,23,24,25,26,27,28];k.PLAY_DELAY=480;k.PLAY_TURN_DURATION=20*w.SECOND;k.ASK_TRUMP_DURATION=2*w.SECOND;k.DECLARE_TRUMP_DURATION=4*w.SECOND;k.DECLARE_ROYAL_TRUMP_MESSAGE_DURATION=5*w.SECOND;k.TRICK_TAKE_DURATION=a.PIECE_MOVE_DURATION;k.TRICK_TAKE_DELAY=1.44*w.SECOND;k.TRAM_TAKE_DURATION=a.PIECE_MOVE_DURATION;k.TRAM_TAKE_DELAY=1.6*w.SECOND;k.MAX_DISCONNECT_EVENTS_RANKED_GAME=5;k.END_GAME_SCORE_HIGH=6;k.END_GAME_SCORE_LOW=-6;k.HAND_OVER_DURATION=
4314*w.SECOND;k.TURNS_ELAPSED_KICK_THRESHOLD=5;k.EXTRA_GAME_OPTIONS=["seventhCardTwentynine","redoubleTwentynine"];k.FAN_ARC_RADIUS=1200;a.twentynine=k;k={MIN_PLAYERS:2,MAX_PLAYERS:2,DEFAULT_PLAYERS:2,MAX_CONSIDER_COUNT:2};k.CARDS_PER_PLAYER=[].pushMany(10,2);k.MIN_CARDS_PER_PLAYER=10;k.MAX_CARDS_PER_PLAYER=11;k.PIECE_DEAL_INTERVAL=a.getDealIntervalForPlayerCount(k.MAX_PLAYERS);k.DEAL_DURATION=a.getRoundRobinDealFromSourceDuration(10,k.MAX_PLAYERS,k);k.UP_CARD_MOVE_DURATION=a.PIECE_MOVE_DURATION/2;k.CONSIDER_FADE_IN_DURATION=
432800;k.DISCARD_TURN_DURATION=25*w.SECOND;k.CONSIDER_TURN_DURATION=25*w.SECOND;k.PICK_TURN_DURATION=25*w.SECOND;k.KNOCK_FINISH_TURN_DURATION=3*w.SECOND;k.LAYOFF_DELAY=15*w.SECOND;k.LAYOFF_FINISHED_DELAY=960;k.DONE_CLICKED_DURATION=15*w.SECOND;k.TRICK_TAKE_DELAY=480;k.BOOK_SHOW_DELAY=3*w.SECOND;k.HAND_OVER_DURATION=4*w.SECOND;k.GAME_OVER_DURATION=3*w.SECOND;k.END_GAME_SCORE_HIGH=100;k.MAX_GAME_SCORE=12E3;k.EXTRA_GAME_OPTIONS=[];k.TURNS_ELAPSED_KICK_THRESHOLD=5;k.FAN_ARC_RADIUS_MIN=800;k.FAN_ARC_RADIUS=
4331200;k.MAX_DISCONNECT_EVENTS_RANKED_GAME=5;a.ginrummy=k;k={MIN_PLAYERS:3,MAX_PLAYERS:3,DEFAULT_PLAYERS:3};k.CARDS_PER_PLAYER=[].pushMany(16,3);k.MIN_CARDS_PER_PLAYER=16;k.MAX_CARDS_PER_PLAYER=16;k.PIECE_DEAL_INTERVAL=a.getDealIntervalForPlayerCount(k.MAX_PLAYERS);k.DEAL_DURATION=a.getRoundRobinDealFromSourceDuration(16,k.MAX_PLAYERS,k);k.PLAY_DELAY=480;k.TAKE_DELAY=960;k.TAKE_MOVE_DURATION=a.PIECE_MOVE_DURATION;k.SHOW_MOVE_DURATION=a.PIECE_MOVE_DURATION;k.SHOW_DURATION=3*w.SECOND;k.SHOW_DELAY=3*w.SECOND;
434k.PLAY_TURN_DURATION=15*w.SECOND;k.TRICK_TAKE_DURATION=a.PIECE_MOVE_DURATION;k.TRICK_TAKE_DELAY=1.44*w.SECOND;k.CONSIDER_FADE_IN_DURATION=800;k.CONSIDER_TURN_DURATION=20*w.SECOND;k.DISCARD_TURN_DURATION=30*w.SECOND;k.HAND_OVER_DURATION=4*w.SECOND;k.END_GAME_SCORE_HIGH=12;k.CHOOSE_DURATION=30*w.SECOND;k.CHOOSE_PER_CARD_DURATION=5*w.SECOND;k.EXCHANGE_TURN_DURATION=30*w.SECOND;k.EXCHANGE_FADE_IN_DURATION=800;k.PASS_DELAY=640;k.PASS_MOVE_DURATION=a.PIECE_MOVE_DURATION;k.PASS_MOVE_DELAY=320;k.PASS_PUSH_IN_DELAY=
435400;k.PASS_PULL_OUT_DELAY=400;k.TRAM_TAKE_DURATION=a.PIECE_MOVE_DURATION;k.TRAM_TAKE_DELAY=1.6*w.SECOND;k.EXTRA_GAME_OPTIONS=[];k.TURNS_ELAPSED_KICK_THRESHOLD=5;k.FAN_ARC_RADIUS_MIN=800;k.FAN_ARC_RADIUS=1600;k.MAX_DISCONNECT_EVENTS_RANKED_GAME=5;a.threefiveeight=k;k={MIN_PLAYERS:4,MAX_PLAYERS:4,DEFAULT_PLAYERS:4,MAX_CARDS_PER_PLAYER:20};k.CARDS_PER_PLAYER=[].pushMany(20,4);k.DEAL_DURATION=a.getRoundRobinDealFromSourceDuration(20,k.MAX_PLAYERS);k.BIDS=[0,50,51,52,53,54,55,56,57,58,59,60,65,70,75,80,
43685,90,95,100,105,110,115,120,125,130,135,140,145,150,155,160,165,170,175,180,185,190,195,200,205,210,215,220,225,230,235,240,245,250];k.END_GAME_SCORE_HIGH=500;k.END_GAME_SCORE_LOW=-1E3;k.BID_FADE_IN_DURATION=800;k.BID_DURATION=45*w.SECOND;k.MAX_BID=251;k.MIN_BID=50;k.CONSIDER_FADE_IN_DURATION=800;k.CONSIDER_TURN_DURATION=20*w.SECOND;k.SHOW_DURATION=60*w.SECOND;k.SHOW_FADE_IN_DURATION=800;k.SHOW_FADE_OUT_DURATION=a.PIECE_FADE_DURATION;k.MELDS_FADE_DELAY=960;k.PLAY_DELAY=480;k.PLAY_TURN_DURATION=15*
437w.SECOND;k.TRICK_TAKE_DURATION=a.PIECE_MOVE_DURATION;k.TRICK_TAKE_DELAY=1.44*w.SECOND;k.HAND_OVER_DURATION=4*w.SECOND;k.FOLD_DURATION=a.PIECE_MOVE_DURATION;k.SCORES_FADE_IN_DURATION=800;k.SCORES_SHOW_DURATION=30*w.SECOND;k.SUBTOTALS_TO_HANDOVER_DELAY=640;k.NO_MARRIAGE_DURATION=480;k.EXTRA_GAME_OPTIONS=["bidderOut"];k.TURNS_ELAPSED_KICK_THRESHOLD=5;k.TRAM_TAKE_DURATION=a.PIECE_MOVE_DURATION;k.TRAM_TAKE_DELAY=1.6*w.SECOND;k.MAX_DISCONNECT_EVENTS_RANKED_GAME=5;k.FAN_ARC_RADIUS=1600;a.pinochledd=k;k=
438{MIN_PLAYERS:4,MAX_PLAYERS:4,DEFAULT_PLAYERS:4,MIN_CARDS_PER_PLAYER:12,MAX_CARDS_PER_PLAYER:16};k.CARDS_PER_PLAYER=[].pushMany(12,4);k.DEAL_DURATION=a.getRoundRobinDealFromSourceDuration(12,k.MAX_PLAYERS);k.CHOOSE_DURATION=30*w.SECOND;k.PASS_DELAY=640;k.PASS_MOVE_DURATION=a.PIECE_MOVE_DURATION;k.PASS_MOVE_DELAY=320;k.PASS_PUSH_IN_DELAY=400;k.BIDS=[0,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,
43975,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100];k.END_GAME_SCORE_HIGH=150;k.END_GAME_SCORE_LOW=-300;k.BID_FADE_IN_DURATION=800;k.BID_DURATION=45*w.SECOND;k.MAX_BID=101;k.MIN_BID=25;k.CONSIDER_FADE_IN_DURATION=800;k.CONSIDER_TURN_DURATION=20*w.SECOND;k.SHOW_DURATION=60*w.SECOND;k.SHOW_FADE_IN_DURATION=800;k.SHOW_FADE_OUT_DURATION=a.PIECE_FADE_DURATION;k.MELDS_FADE_DELAY=960;k.PLAY_DELAY=480;k.PLAY_TURN_DURATION=15*w.SECOND;k.TRICK_TAKE_DURATION=a.PIECE_MOVE_DURATION;
440k.TRICK_TAKE_DELAY=1.44*w.SECOND;k.HAND_OVER_DURATION=4*w.SECOND;k.FOLD_DURATION=a.PIECE_MOVE_DURATION;k.SCORES_FADE_IN_DURATION=800;k.SCORES_SHOW_DURATION=30*w.SECOND;k.SUBTOTALS_TO_HANDOVER_DELAY=640;k.NO_MARRIAGE_DURATION=480;k.EXTRA_GAME_OPTIONS=["bidderOut"];k.TURNS_ELAPSED_KICK_THRESHOLD=5;k.TRAM_TAKE_DURATION=a.PIECE_MOVE_DURATION;k.TRAM_TAKE_DELAY=1.6*w.SECOND;k.MAX_DISCONNECT_EVENTS_RANKED_GAME=5;k.FAN_ARC_RADIUS=1600;a.pinochle=k;
440k={CARD_TYPES:"3 4 5 6 7 8 9 10 11 12 13 14".split(" "),MIN_PLAYERS:4,
441MAX_PLAYERS:4,DEFAULT_PLAYERS:4,MIN_TEAMS:2,MAX_TEAMS:2,MAX_CARDS_PER_PLAYER:108,INIT_CARDS:11};k.MIN_CARDS_PER_PLAYER=k.INIT_CARDS;k.CARDS_PER_PLAYER=[].pushMany(k.INIT_CARDS,4);k.DEAL_DURATION=a.getRoundRobinDealFromSourceDuration(k.INIT_CARDS,k.MAX_PLAYERS);k.RED_THREE_MOVE_DELAY=a.PIECE_MOVE_DURATION/2;k.RED_THREE_MOVE_DURATION=a.PIECE_MOVE_DURATION;k.CONSIDER_FADE_IN_DURATION=800;k.CONSIDER_TURN_DURATION=25*w.SECOND;k.DISCARD_TURN_DURATION=25*w.SECOND;k.PICK_TURN_DURATION=25*w.SECOND;k.END_GAME_SCORE_HIGH=
4425E3;k.END_GAME_SCORE_LOW=-2E3;k.EXTRA_GAME_OPTIONS=[];k.FAN_ARC_RADIUS_MIN=800;k.FAN_ARC_RADIUS=1200;k.HAND_OVER_DURATION=4*w.SECOND;k.TURNS_ELAPSED_KICK_THRESHOLD=5;k.MAX_DISCONNECT_EVENTS_RANKED_GAME=5;a.canasta=k;k={CARD_TYPES:"3 4 5 6 7 8 9 10 11 12 13 14 w".split(" "),MIN_PLAYERS:4,MAX_PLAYERS:4,DEFAULT_PLAYERS:4,MIN_TEAMS:2,MAX_TEAMS:2,MAX_CARDS_PER_PLAYER:270,INIT_CARDS:11,FOOT_CARDS:13};k.CARDS_PER_PLAYER=[].pushMany(k.INIT_CARDS,4);k.MIN_CARDS_PER_PLAYER=k.INIT_CARDS;k.MAX_PLAYERS_INDEX=
443k.MAX_PLAYERS-1;k.DEAL_DURATION=a.getDealSourceEnterDuration("handfoot")+a.DEAL_SOURCE_SETTLE_DELAY+a.getRoundRobinDealDuration(k.INIT_CARDS,k.MAX_PLAYERS)+a.getRoundRobinDealDuration(k.FOOT_CARDS,k.MAX_PLAYERS);k.FOOT_DEAL_THEME_SWITCH_DELAY=a.getFlatMoveThemeSwapDelay(a.PIECE_DEAL_DURATION);k.FOOT_PICKUP_THEME_SWITCH_DELAY=a.getSmallToBigDeckSwapDelay(a.PIECE_MOVE_DURATION);k.RED_THREE_MOVE_DELAY=a.PIECE_MOVE_DURATION/2;k.RED_THREE_MOVE_DURATION=a.PIECE_MOVE_DURATION;k.CONSIDER_FADE_IN_DURATION=
444800;k.CONSIDER_TURN_DURATION=25*w.SECOND;k.DISCARD_TURN_DURATION=25*w.SECOND;k.HIGH_INITIAL_MELD_TURN_DURATION=45*w.SECOND;k.PICK_TURN_DURATION=25*w.SECOND;k.MAX_RED_THREE_REPLACEMENTS=10;k.END_GAME_SCORE_HIGH=999999;k.END_GAME_SCORE_LOW=-999999;k.EXTRA_GAME_OPTIONS=[];k.FAN_ARC_RADIUS_MIN=800;k.FAN_ARC_RADIUS=1200;k.HAND_OVER_DELAY=1.6*w.SECOND;k.HAND_OVER_DURATION=4*w.SECOND;k.TURNS_ELAPSED_KICK_THRESHOLD=5;k.MAX_DISCONNECT_EVENTS_RANKED_GAME=5;a.handfoot=k;k={MIN_PLAYERS:4,MAX_PLAYERS:4,DEFAULT_PLAYERS:4,
445MIN_TEAMS:2,MAX_TEAMS:2};k.CARDS_PER_PLAYER=[].pushMany(13,4);k.MIN_CARDS_PER_PLAYER=13;k.MAX_CARDS_PER_PLAYER=13;k.DEAL_DURATION=a.getRoundRobinDealFromSourceDuration(13,k.MAX_PLAYERS);k.PLAY_DELAY=480;k.PLAY_TURN_DURATION=15*w.SECOND;k.TRICK_TAKE_DURATION=a.PIECE_MOVE_DURATION;k.TRICK_TAKE_DELAY=1.44*w.SECOND;k.TRAM_TAKE_DURATION=a.PIECE_MOVE_DURATION;k.TRAM_TAKE_DELAY=1.6*w.SECOND;k.FOLD_DURATION=a.PIECE_MOVE_DURATION;k.END_GAME_SCORE_HIGH=7;k.HAND_OVER_DURATION=4*w.SECOND;k.TURNS_ELAPSED_KICK_THRESHOLD=
4465;k.EXTRA_GAME_OPTIONS=[];k.MAX_DISCONNECT_EVENTS_RANKED_GAME=5;k.FAN_ARC_RADIUS=1200;a.whist=k;k={CARD_TYPES:"2 3 4 5 6 7 8 9 10 11 12 13 14".split(" "),CARD_DISPLAY_SPOTS:88,MIN_PLAYERS:4,MAX_PLAYERS:4,DEFAULT_PLAYERS:4,MIN_TEAMS:2,MAX_TEAMS:2,MIN_CARDS_PER_PLAYER:7,MAX_CARDS_PER_PLAYER:52,INIT_CARDS:7};k.CARDS_PER_PLAYER=[].pushMany(k.INIT_CARDS,4);k.DEAL_DURATION=a.getRoundRobinDealFromSourceDuration(k.INIT_CARDS,k.MAX_PLAYERS);k.RED_THREE_MOVE_DELAY=a.PIECE_MOVE_DURATION/2;k.RED_THREE_MOVE_DURATION=
447a.PIECE_MOVE_DURATION;k.CONSIDER_FADE_IN_DURATION=800;k.CONSIDER_TURN_DURATION=25*w.SECOND;k.DISCARD_TURN_DURATION=25*w.SECOND;k.PICK_TURN_DURATION=25*w.SECOND;k.END_GAME_SCORE_HIGH=500;k.END_GAME_SCORE_LOW=-500;k.EXTRA_GAME_OPTIONS=[];k.FAN_ARC_RADIUS_MIN=800;k.FAN_ARC_RADIUS=1200;k.HAND_OVER_DURATION=4*w.SECOND;k.TURNS_ELAPSED_KICK_THRESHOLD=5;k.MAX_DISCONNECT_EVENTS_RANKED_GAME=5;a.rummy=k;k={CARD_TYPES:"1 2 3 4 5 6 7 8 9 10 11 12 13".split(" "),MIN_PLAYERS:2,MAX_PLAYERS:2,DEFAULT_PLAYERS:2,MIN_CARDS_PER_PLAYER:4,
448MAX_CARDS_PER_PLAYER:6,INIT_CARDS:6};k.CARDS_PER_PLAYER=[].pushMany(k.INIT_CARDS,2);k.PIECE_DEAL_INTERVAL=a.getDealIntervalForPlayerCount(k.MAX_PLAYERS);k.DEAL_DURATION=a.getRoundRobinDealFromSourceDuration(k.INIT_CARDS,k.MAX_PLAYERS,k);k.CRIB_DISCARD_DURATION=25*w.SECOND;k.PLAY_TURN_DURATION=15*w.SECOND;k.END_GAME_SCORE_HIGH=121;k.END_GAME_SCORE_LOW=0;k.EXTRA_GAME_OPTIONS=[];k.FAN_ARC_RADIUS_MIN=800;k.FAN_ARC_RADIUS=1200;k.HAND_OVER_DURATION=4*w.SECOND;k.CRIB_DISPLAY_DURATION=400;k.CRIB_SHOW_THEME_SWITCH_DELAY=
449a.getSmallToBigDeckSwapDelay(a.PIECE_MOVE_DURATION);k.TURNS_ELAPSED_KICK_THRESHOLD=5;k.MAX_DISCONNECT_EVENTS_RANKED_GAME=5;k.WINNING_SCORE=121;k.SKUNK_THRESHOLD=91;k.DOUBLE_SKUNK_THRESHOLD=61;k.MAX_PEGGING_TOTAL=31;k.CRIB_SIZE=4;k.PEGGING_VERTICAL_OFFSET=16;k.PEG_STEP_DURATION=240;k.PEG_START_DELAY=200;k.PEG_STEP_SOUND_VOLUME=.25;k.PEG_FINAL_SOUND_VOLUME=.5;k.NO_CARD_SKIP_DURATION=2*w.SECOND;k.SHOW_DURATION=60*w.SECOND;a.cribbage=k;
449k={CARD_TYPES:"2 3 4 5 6 7 8 9 10 11 12 13 14".split(" "),MIN_PLAYERS:4,
450MAX_PLAYERS:4,DEFAULT_PLAYERS:4,MIN_CARDS_PER_PLAYER:5,MAX_CARDS_PER_PLAYER:52,INIT_CARDS_2_PLAYERS:5,INIT_CARDS_MULTI:5};k.CARDS_PER_PLAYER=[].pushMany(5,4);k.DEAL_DURATION=a.getRoundRobinDealFromSourceDuration(k.INIT_CARDS_MULTI,k.MAX_PLAYERS);k.TURN_DURATION=25*w.SECOND;k.HAND_OVER_DURATION=4*w.SECOND;k.WILD_CARD_RANK="8";k.WILD_CARD_POINTS=50;k.FACE_CARD_POINTS=10;k.LOSING_SCORE=100;k.TURNS_ELAPSED_KICK_THRESHOLD=5;k.FAN_ARC_RADIUS=1200;k.EXTRA_GAME_OPTIONS=[];k.MAX_DISCONNECT_EVENTS_RANKED_GAME=
4515;a.crazyeights=k;k={CARD_TYPES:"2 3 4 5 6 7 8 9 10 11 12 13 14".split(" "),MIN_PLAYERS:4,MAX_PLAYERS:4};k.MAX_PLAYERS_INDEX=k.MAX_PLAYERS-1;k.DEFAULT_PLAYERS=4;k.MIN_TEAMS=2;k.MAX_TEAMS=2;k.MIN_CARDS_PER_PLAYER=13;k.MAX_CARDS_PER_PLAYER=13;k.INIT_CARDS=13;k.CARDS_PER_PLAYER=[].pushMany(13,4);k.DEAL_DURATION=a.getRoundRobinDealFromSourceDuration(k.INIT_CARDS,k.MAX_PLAYERS,k);k.BID_DURATION=30*w.SECOND;k.PLAY_DELAY=480;k.PLAY_DURATION=25*w.SECOND;k.HAND_OVER_DURATION=4*w.SECOND;k.TRICK_TAKE_DELAY=
4521.44*w.SECOND;k.TRICK_TAKE_DURATION=a.PIECE_MOVE_DURATION;k.FOLD_DURATION=a.PIECE_MOVE_DURATION;k.DUMMY_REVEAL_DURATION=a.PIECE_MOVE_DURATION;k.DUMMY_REVEAL_DELAY=1.6*w.SECOND;k.TURNS_ELAPSED_KICK_THRESHOLD=5;k.FAN_ARC_RADIUS=1200;k.EXTRA_GAME_OPTIONS=[];k.MAX_DISCONNECT_EVENTS_RANKED_GAME=5;k.PHASE_AUCTION="auction";k.PHASE_PLAY="play";k.PHASE_HAND_OVER="handOver";k.PHASE_RUBBER_OVER="rubberOver";k.NEITHER_VUL=0;k.NS_VUL=1;k.EW_VUL=2;k.BOTH_VUL=3;k.UNDOUBLED=0;k.DOUBLED=1;k.REDOUBLED=2;k.BID_LEVELS=
453[1,2,3,4,5,6,7];k.DENOMINATIONS=["club","diamond","heart","spade","notrump"];k.DENOMINATION_RANK={club:0,diamond:1,heart:2,spade:3,notrump:4};k.TRICK_POINTS={club:20,diamond:20,heart:30,spade:30,notrump:{first:40,subsequent:30}};k.SMALL_SLAM_BONUS={notVulnerable:500,vulnerable:750};k.GRAND_SLAM_BONUS={notVulnerable:1E3,vulnerable:1500};k.RUBBER_BONUS={twoToZero:700,twoToOne:500};k.CELEBRATION_FADE_IN_DURATION=800;k.CELEBRATION_FADE_INTERVAL=480;k.CELEBRATION_DISPLAY_DURATION=k.CELEBRATION_FADE_IN_DURATION+
4544*k.CELEBRATION_FADE_INTERVAL+k.CELEBRATION_FADE_INTERVAL/2+4*k.CELEBRATION_FADE_INTERVAL;k.CELEBRATION_FADE_OUT_DURATION=a.PIECE_FADE_DURATION;k.CELEBRATION_POST_DELAY=960;k.UNDERTRICK_PENALTIES={undoubled:{notVulnerable:50,vulnerable:100},doubled:{notVulnerable:{first:100,second:200,third:200,subsequent:300},vulnerable:{first:200,subsequent:300}},redoubled:{notVulnerable:{first:200,second:400,third:400,subsequent:600},vulnerable:{first:400,subsequent:600}}};k.HONORS_BONUS={fourHonors:100,fiveHonors:150,
455fourAcesNoTrump:150};k.UNFINISHED_RUBBER_BONUS={game:300,partScore:100};a.bridge=k;a.ALLOWED_RANKED_EXTRA_GAME_OPTIONS={hearts:{standardRulesHearts:{1:!0,2:!0}},spades:{},euchre:{euchreSTD:{1:!0,2:!0}},pinochledd:{bidderOut:{"true":!0}},pinochle:{bidderOut:{"true":!0}},twentynine:{seventhCardTwentynine:{1:!0,2:!0},redoubleTwentynine:{1:!0,2:!0}}};a.EXTRA_GAME_OPTIONS_MAP={allowFirstTurnHearts:{shortname:"afth","default":!1,privateTableOnly:!1,type:"boolean",ui:"checkbox",createTableDefault:!1},noBagPenaltySpades:{shortname:"nbps",
456"default":2,createTableDefault:2,no:2,yes:1,either:0,privateTableOnly:!0,type:"integer",minimum:0,maximum:2,ui:"radio"},seventhCardTwentynine:{shortname:"sct","default":2,no:0,yes:1,either:2,createTableDefault:1,privateTableOnly:!1,type:"integer",minimum:0,maximum:2,ui:"radio"},redoubleTwentynine:{shortname:"drt","default":2,no:0,yes:1,either:2,createTableDefault:1,privateTableOnly:!1,type:"integer",minimum:0,maximum:2,ui:"radio"},bidderOut:{shortname:"pbo","default":!0,privateTableOnly:!1,type:"boolean",
457ui:"checkbox",createTableDefault:!0},euchreSTD:{shortname:"std","default":2,no:0,yes:1,either:2,createTableDefault:1,privateTableOnly:!1,type:"integer",minimum:0,maximum:2,ui:"radio"},standardRulesHearts:{shortname:"sr","default":2,no:0,yes:1,either:2,createTableDefault:1,privateTableOnly:!1,type:"integer",minimum:0,maximum:2,ui:"radio"}};a.EXTRA_GAME_OPTIONS_PROPERTIES={allowFirstTurnHearts:"afth",noBagPenaltySpades:"nbps",seventhCardTwentynine:"sct",redoubleTwentynine:"drt",bidderOut:"pbo",euchreSTD:"std",
458standardRulesHearts:"sr"};a.GAME_NAMES={gofish:"Go Fish",oldmaid:"Old Maid",hearts:"Hearts",spades:"Spades",euchre:"Euchre",twentynine:"Twenty-Nine",ginrummy:"Gin Rummy",threefiveeight:"Sergeant Major",pinochledd:"Double Deck Pinochle",pinochle:"Pinochle",canasta:"Canasta",handfoot:"Hand & Foot",whist:"Whist",rummy:"Rummy",cribbage:"Cribbage",crazyeights:"Crazy Eights",bridge:"Bridge",sheepshead:"Sheepshead"};a.GAME_DIRS={hearts:"hearts",spades:"spades",euchre:"euchre",twentynine:"twenty-nine",ginrummy:"gin-rummy",
459threefiveeight:"sergeant-major",pinochledd:"double-deck-pinochle",pinochle:"pinochle",gofish:"go-fish",oldmaid:"old-maid",canasta:"canasta",handfoot:"hand-and-foot",whist:"whist",rummy:"rummy",cribbage:"cribbage",crazyeights:"crazy-eights",bridge:"bridge",sheepshead:"sheepshead"};a.GAME_DIRS_INV={hearts:"hearts",spades:"spades",euchre:"euchre","twenty-nine":"twentynine","gin-rummy":"ginrummy","sergeant-major":"threefiveeight","double-deck-pinochle":"pinochledd",pinochle:"pinochle","go-fish":"gofish",
460"old-maid":"oldmaid",canasta:"canasta","hand-and-foot":"handfoot",whist:"whist",rummy:"rummy",cribbage:"cribbage","crazy-eights":"crazyeights",bridge:"bridge",sheepshead:"sheepshead"};a.GAMEIDS="hearts spades euchre twentynine ginrummy threefiveeight pinochledd pinochle gofish oldmaid canasta handfoot whist rummy cribbage crazyeights bridge sheepshead".split(" ");a.GAME_TEAMS="spades euchre twentynine pinochledd pinochle canasta handfoot whist bridge".split(" ");a.GAME_BETA=[];a.DEAL_DIFFICULTIES=
461["easy","medium","hard"];a.GAME_ORDER="hearts spades euchre ginrummy cribbage pinochle pinochledd canasta handfoot rummy crazyeights bridge whist gofish oldmaid sheepshead twentynine threefiveeight".split(" ");a.GAMEIDS_MAP=a.GAMEIDS.slice().mutate(function(y,v,d){v=v||{};v[y]=d;return v});a.GAMEIDS.forEach(function(y){a[y].MAX_PLAYERS_INDEX=a[y].MAX_PLAYERS-1;a[y].MAX_TEAMS&&(a[y].MAX_TEAMS_INDEX=a[y].MAX_TEAMS-1)});a.RANKED=a.GAMEIDS.reduce(function(y,v){y[v]=!0;return y},{});a.RANKED_EXTRA_GAME_OPTIONS_MAP=
462{hearts:{"-1":{standardRulesHearts:0}}};a.RANKED_OPTIONS={hearts:["","-1"],spades:[""],euchre:[""],pinochledd:[""],twentynine:[""],crazyeights:[""],bridge:[""],pinochle:[""],whist:[""],canasta:[""],handfoot:[""],rummy:[""],cribbage:[""],ginrummy:[""],gofish:[""],oldmaid:[""],sheepshead:[""],threefiveeight:[""]};a.RANKED_OPTIONS_PRETTY={hearts:{"":"","-1":"tr"},spades:{"":""},euchre:{"":""},pinochledd:{"":""},twentynine:{"":""},crazyeights:{"":""},pinochle:{"":""},whist:{"":""},canasta:{"":""},handfoot:{"":""},
463rummy:{"":""},cribbage:{"":""},ginrummy:{"":""},gofish:{"":""},oldmaid:{"":""},sheepshead:{"":""},threefiveeight:{"":""}};a.RANKED_OPTIONS_MENU_PRETTY={hearts:{"":"Standard rules","-1":"Tournament rules"},spades:{"":""},euchre:{"":""},pinochledd:{"":""},twentynine:{"":""},crazyeights:{"":""},pinochle:{"":""},whist:{"":""},canasta:{"":""},handfoot:{"":""},rummy:{"":""},cribbage:{"":""},ginrummy:{"":""},gofish:{"":""},oldmaid:{"":""},sheepshead:{"":""},threefiveeight:{"":""}};a.THEMES={classic:{i:0,
464name:"Classic"}};a.OPTIONS=["avatar","deck","theme","wallpaper"];a.USER_OPTIONS=[{id:"muteSound",name:"Sound effects",tooltip:"Play in-game sound effects",reverse:!0},{id:"soundEffectsMode",name:"Sound effects",tooltip:"Play in-game sound effects. Quiet keeps the card sounds and the alerts, without the celebration music","default":2,radio:[{value:2,label:"All"},{value:1,label:"Quiet"},{value:0,label:"Off"}]},{id:"avatarEmotionsMode",name:"Avatar emotions",tooltip:"Show avatar emotion animations",
465"default":1,radio:[{value:2,label:"All"},{value:1,label:"Vital"},{value:0,label:"Off"}]},{id:"disableAnimations",name:"Animations",tooltip:"Show in-game cosmetic animations",reverse:!0},{id:"animationsMode",name:"Animations",tooltip:"Show in-game animations","default":2,radio:[{value:2,label:"All"},{value:1,label:"Vital"},{value:0,label:"Off"}]},{id:"gamePromptsMode",name:"Game prompts",tooltip:"Show game prompts and status messages","default":2,radio:[{value:2,label:"All"},{value:1,label:"Vital"},
466{value:0,label:"Off"}]},{id:"gameHintsMode",name:"Game hints",tooltip:"Show suggested moves when you are low on time","default":1,radio:[{value:1,label:"On"},{value:0,label:"Off"}]}
466,{id:"fanCardsCustom",name:"Narrow cards",tooltip:"Reduce spacing between cards",reverse:!1},{id:"pileCardsCustom",name:"Overlap trick cards",tooltip:"Show trick cards close together in the trick pile",reverse:!1},{id:"globalMute",name:"Table chat",tooltip:"Show messages from players at your table",reverse:!0},{id:"noCensor",
467name:"Filter chat profanity",tooltip:"Hide offensive language in chat",reverse:!0},{id:"socialNotificationsOff",name:"Social notifications",tooltip:"Show notifications for friends and activity",reverse:!0},{id:"legacyAvatars",name:"Use legacy avatars",tooltip:"Switch to the original avatar style",reverse:!1}];a.GAME_ORDER.forEach(function(y){a.RANKED[y]&&a.USER_OPTIONS.push({id:"norank_"+y,name:"Rank me "+y,reverse:!0})});a.WALLPAPERS=[{id:"fabrics",name:"Fabrics",items:[{id:"arkadium-felt.png",name:"Arkadium Felt",
468arkadiumOnly:!0},{id:"green-felt.jpg",name:"Green Felt"},{id:"blue-canvas.jpg",name:"Blue Canvas"},{id:"fabric.jpg",name:"Fabric"},{id:"fabric02.jpg",name:"Fabric #2"},{id:"fabric03.jpg",name:"Fabric #3"},{id:"fabric04.jpg",name:"Fabric #4"},{id:"fabric05.jpg",name:"Fabric #5"},{id:"fabric06.jpg",name:"Fabric #6"},{id:"fabric07.jpg",name:"Fabric #7"},{id:"fabric08.jpg",name:"Fabric #8"},{id:"fabric09.jpg",name:"Fabric #9"},{id:"fabric10.jpg",name:"Fabric #10"},{id:"fabric11.jpg",name:"Fabric #11"}]},
469{id:"assorted",name:"Assorted",items:[{id:"aloha-turkey.jpg",name:"Aloha Turkey"},{id:"anchors.jpg",name:"Anchors"},{id:"animal.jpg",name:"Animal"},{id:"animal2.jpg",name:"Animal #2"},{id:"armada.jpg",name:"Armada"},{id:"armored.jpg",name:"Armored"},{id:"autumn-butterflies.jpg",name:"Autumn Butterflies"},{id:"beachy.jpg",name:"Beachy"},{id:"blue-lotus.jpg",name:"Blue Lotus"},{id:"bones-leather.jpg",name:"Bones Leather"},{id:"broach.jpg",name:"Broach"},{id:"cabin.jpg",name:"Cabin"},{id:"camellia.jpg",
470name:"Camellia"},{id:"charcoal.jpg",name:"Charcoal"},{id:"chocolate-diamond.jpg",name:"Chocolate Diamond"},{id:"clouds.jpg",name:"Clouds"},{id:"dark-forest.jpg",name:"Dark Forest"},{id:"dark-tile.jpg",name:"Dark Tile"},{id:"denim-daisies.jpg",name:"Denim Daisies"},{id:"discs.jpg",name:"Discs"},{id:"frost.jpg",name:"Frost"},{id:"fruit-salad.jpg",name:"Fruit Salad"},{id:"fuchsia.jpg",name:"Fuchsia"},{id:"german-pinks.jpg",name:"German Pinks"},{id:"ghost-tile.jpg",name:"Ghost Tile"},{id:"giza.jpg",name:"Giza"},
471{id:"golden-victorian.jpg",name:"Golden Victorian"},{id:"grass.jpg",name:"Grass"},{id:"grunge.jpg",name:"Grunge"},{id:"hold-fast.jpg",name:"Hold Fast"},{id:"hollyhock.jpg",name:"Hollyhock"},{id:"humidor-pink.jpg",name:"Humidor Pink"},{id:"intertwined-darkened.jpg",name:"Intertwined Darkened"},{id:"iridescent.jpg",name:"Iridescent"},{id:"khaki.jpg",name:"Khaki"},{id:"lotus-vases.jpg",name:"Lotus Vases"},{id:"medallion-burned.jpg",name:"Medallion Burned"},{id:"octo-redux.jpg",name:"Octo Redux"},{id:"panda-madness.jpg",
472name:"Panda Madness"},{id:"paper-flower.jpg",name:"Paper Flower"},{id:"paragon.jpg",name:"Paragon"},{id:"picnic.jpg",name:"Picnic"},{id:"pink-lines.jpg",name:"Pink Lines"},{id:"pink.jpg",name:"Pink"},{id:"pinkie-bouquet.jpg",name:"Pinkie Bouquet"},{id:"prestige-one.jpg",name:"Prestige One"},{id:"prestige.jpg",name:"Prestige"},{id:"pumpkin.jpg",name:"Pumpkin"},{id:"purple-swirl.jpg",name:"Purple Swirl"},{id:"rafters.jpg",name:"Rafters"},{id:"ravens.jpg",name:"Ravens"},{id:"renzler.jpg",name:"Renzler"},
473{id:"royal-lobsterific.jpg",name:"Royal Lobsterific"},{id:"ruby-sundial.jpg",name:"Ruby Sundial"},{id:"simple-paisley.jpg",name:"Simple Paisley"},{id:"snowflake.jpg",name:"Snowflake"},{id:"straw-flowers.jpg",name:"Straw Flowers"},{id:"techno.jpg",name:"Techno"},{id:"ultra-violet.jpg",name:"Ultra Violet"},{id:"vintage-scarlet.jpg",name:"Vintage Scarlet"},{id:"violet-fabric.jpg",name:"Violet Fabric"}]},{id:"walls-and-floors",name:"Walls and Floors",items:[{id:"blinds.jpg",name:"Blinds"},{id:"bricks.jpg",
474name:"Bricks"},{id:"concrete.jpg",name:"Concrete"},{id:"concrete2.jpg",name:"Concrete #2"},{id:"egypt.jpg",name:"Egypt"},{id:"glass-tile.jpg",name:"Glass Tile"},{id:"marble.jpg",name:"Marble"},{id:"stone.jpg",name:"Stone"},{id:"stone2.jpg",name:"Stone #2"},{id:"stones.jpg",name:"Stones"},{id:"textured.jpg",name:"Textured"},{id:"textured2.jpg",name:"Textured #2"},{id:"tile.jpg",name:"Tile"},{id:"tile2.jpg",name:"Tile #2"},{id:"tile3.jpg",name:"Tile #3"},{id:"wood.jpg",name:"Wood"},{id:"wood2.jpg",
475name:"Wood #2"},{id:"wood3.jpg",name:"Wood #3"},{id:"wood4.jpg",name:"Wood #4"},{id:"wood5.jpg",name:"Wood #5"}]}];a.AVATARS=[{id:"men",name:"Men",items:[{id:"ManBoy",name:"Boy"},{id:"ManBoy2",name:"Boy #2"},{id:"ManBoyAngel",name:"Boy Angel"},{id:"ManBoyScientist",name:"Boy Scientist"},{id:"ManBoyScientistGun",name:"Boy Scientist Gun"},{id:"ManBusinessman",name:"Businessman"},{id:"ManCaveman",name:"Caveman"},{id:"ManChef",name:"Chef"},{id:"ManChefPizza",name:"Pizza Chef"},{id:"ManClown",name:"Clown"},
476{id:"ManCowboy",name:"Cowboy"},{id:"ManGeek",name:"Geek"},{id:"ManGeek2",name:"Geek #2"},{id:"ManGeek3",name:"Geek #3"},{id:"ManGeekBoy",name:"Geek Boy"},{id:"ManGeekBoy2",name:"Geek Boy #2"},{id:"ManGeekWalkman",name:"Geek Walkman"},{id:"ManHandyman",name:"Handyman"},{id:"ManImpatient",name:"Impatient Man"},{id:"ManMan",name:"Man"},{id:"ManMan2",name:"Man #2"},{id:"ManMan3",name:"Man #3"},{id:"ManMan4",name:"Man #4"},{id:"ManMan5",name:"Man #5"},{id:"ManMan6",name:"Man #6"},{id:"ManMan7",name:"Man #7"},
477{id:"ManMan8",name:"Man #8"},{id:"ManMan9",name:"Man #9"},{id:"ManMan10",name:"Man #10"},{id:"ManMan11",name:"Man #11"},{id:"ManConflicted",name:"Conflicted Man"},{id:"ManMuscleMan",name:"Muscle Man"},{id:"ManPirate",name:"Pirate"},{id:"ManLeprechaun",name:"Leprechaun"},{id:"ManSantaWaving",name:"Santa Claus"},{id:"ManScientist",name:"Scientist"},{id:"ManSleezyBoxer",name:"Sleezy Boxer"},{id:"ManSnowboarder",name:"Snowboarder"},{id:"ManWizard",name:"Wizard"}]},{id:"women",name:"Women",items:[{id:"WomanCowgirl",
478name:"Cowgirl"},{id:"WomanGirl",name:"Girl"},{id:"WomanGirl2",name:"Girl #2"},{id:"WomanSickGirl",name:"Sick Girl"},{id:"WomanGirlAngel",name:"Girl Angel"},{id:"WomanBusinesswoman",name:"Businesswoman"},{id:"WomanLaptop",name:"Coder"},{id:"WomanDoctor",name:"Doctor"},{id:"WomanRunner",name:"Runner"},{id:"WomanScientist",name:"Scientist"},{id:"WomanSkier",name:"Skier"},{id:"WomanTennisPlayer",name:"Tennis Player"},{id:"WomanWeightlifter",name:"Weightlifter"},{id:"WomanYoga",name:"Yogini"},{id:"WomanSuperGirl",
479name:"Supergirl"},{id:"WomanSuperGirl2",name:"Supergirl #2"},{id:"WomanSuperMom",name:"Supermom"},{id:"WomanWoman",name:"Woman"},{id:"WomanWoman2",name:"Woman #2"},{id:"WomanWoman3",name:"Woman #3"},{id:"WomanWoman4",name:"Woman #4"},{id:"WomanWoman5",name:"Woman #5"},{id:"WomanWoman6",name:"Woman #6"},{id:"WomanWoman7",name:"Woman #7"},{id:"WomanWoman8",name:"Woman #8"},{id:"WomanWoman9",name:"Woman #9"},{id:"WomanWoman10",name:"Woman #10"},{id:"WomanWoman11",name:"Woman #11"},{id:"WomanWoman12",
480name:"Woman #12"},{id:"WomanWoman13",name:"Woman #13"},{id:"WomanWoman14",name:"Woman #14"},{id:"WomanWoman15",name:"Woman #15"},{id:"WomanWoman16",name:"Woman #16"},{id:"WomanWoman17",name:"Woman #17"},{id:"WomanWoman18",name:"Woman #18"},{id:"WomanWoman19",name:"Woman #19"},{id:"WomanWoman20",name:"Woman #20"},{id:"WomanWoman21",name:"Woman #21"},{id:"WomanWomanTrenchCoat",name:"Woman Trench Coat"},{id:"WomanWomanUmbrella",name:"Woman Umbrella"}]},{id:"aliens",name:"Aliens",items:[{id:"AlienBlob",
481name:"Blob"},{id:"AlienBlue",name:"Bluey"},{id:"AlienFuzzballAngel",name:"White Fuzzy"},{id:"AlienFuzzballBlack",name:"Black Fuzzy"},{id:"AlienFuzzballGreen",name:"Green Fuzzy"},{id:"AlienLollipop",name:"Bloo"},{id:"AlienMartian",name:"Martian"},{id:"AlienOneEye",name:"One-Eye"},{id:"AlienTwoFoot",name:"Two-Foot"}]},{id:"animals",name:"Animals",items:[{id:"AnimalAlligator",name:"Alligator"},{id:"AnimalBeaver",name:"Beaver"},{id:"AnimalBee",name:"Bee"},{id:"AnimalBird",name:"Bird"},{id:"AnimalBirdGeek",
482name:"Geeky Bird"},{id:"AnimalBunnyBowTie",name:"Bowtie Bunny"},{id:"AnimalBunnyPointingUp",name:"Pointing Bunny"},{id:"AnimalBunnySad",name:"Sad Bunny"},{id:"AnimalEasterBunnyWithEggs",name:"Easter Bunny"},{id:"AnimalButterfly",name:"Butterfly"},{id:"AnimalButterfly2",name:"Butterfly #2"},{id:"AnimalCat",name:"Cat"},{id:"AnimalCatWitch",name:"Witch Cat"},{id:"AnimalChicken",name:"Chicken"},{id:"AnimalChicken2",name:"Chicken #2"},{id:"AnimalCow",name:"Cow"},{id:"AnimalDogGeek",name:"Geek Dog"},{id:"AnimalDogGeekLaying",
483name:"Laying Dog"},{id:"AnimalDogSitting",name:"Sitting Dog"},{id:"AnimalDogSitting2",name:"Sitting Dog #2"},{id:"AnimalDogSitting3",name:"Sitting Dog #3"},{id:"AnimalDogTambourine",name:"Tambourine Dog"},{id:"AnimalDoveStanding",name:"Dove"},{id:"AnimalDoveFlying",name:"Flying Dove"},{id:"AnimalDragon",name:"Dragon"},{id:"AnimalElephantCircus",name:"Circus Elephant"},{id:"AnimalFox",name:"Fox"},{id:"AnimalFox2",name:"Fox #2"},{id:"AnimalFoxRockstar",name:"Rockstar Fox"},{id:"AnimalGoatCool",name:"Cool Goat"},
484{id:"AnimalGopher",name:"Gopher"},{id:"AnimalGopherConstruction",name:"Construction Gopher"},{id:"AnimalKangaroo",name:"Kangaroo"},{id:"AnimalKoala",name:"Koala"},{id:"AnimalMonkey",name:"Monkey"},{id:"AnimalMonkeyToes",name:"Monkey Toes"},{id:"AnimalMouse",name:"Mouse"},{id:"AnimalMouseCheese",name:"Cheesy Mouse"},{id:"AnimalMouseHole",name:"Hiding Mouse"},{id:"AnimalPandaGrumpy",name:"Grumpy Panda"},{id:"AnimalPandaHappy",name:"Happy Panda"},{id:"AnimalPandaIntrigued",name:"Intrigued Panda"},{id:"AnimalPandaPerplexed",
485name:"Perplexed Panda"},{id:"AnimalPandaWaving",name:"Waving Panda"}
485,{id:"AnimalPenguin",name:"Penguin"},{id:"AnimalPenguinAsleep",name:"Sleeping Penguin"},{id:"AnimalPenguinConfused",name:"Confused Penguin"},{id:"AnimalPenguinFat",name:"Fat Penguin"},{id:"AnimalPig",name:"Pig"},{id:"AnimalPigCool",name:"Cool Pig"},{id:"AnimalPigMoney",name:"Moneybags Pig"},{id:"AnimalPigProud",name:"Proud Pig"},{id:"AnimalRabbitDrums",name:"Drumming Rabbit"},{id:"AnimalRaccoon",name:"Racoon"},{id:"AnimalRaccoon2",
486name:"Twanging Racoon"},{id:"AnimalRedNosedReindeerStars",name:"Reindeer"},{id:"AnimalRhino",name:"Rhino"},{id:"AnimalSeahorse",name:"Seahorse"},{id:"AnimalSheep",name:"Sheep"},{id:"AnimalSnake",name:"Snake"},{id:"AnimalSquirrel",name:"Squirrel"},{id:"AnimalSquirrel2",name:"Squirrel #2"},{id:"AnimalTiger",name:"Tiger"},{id:"AnimalToucan",name:"Toucan"},{id:"AnimalTurkeyNervous",name:"Nervous Turkey"},{id:"AnimalWolfHowling",name:"Howling Wolf"},{id:"AnimalWombat",name:"Wombat"},{id:"AnimalWoodpecker",
487name:"Woodpecker"}]},{id:"other",name:"Other",items:[{id:"OtherApple",name:"Apple"},{id:"OtherAstronaut",name:"Astronaut"},{id:"OtherBaby",name:"Baby"},{id:"OtherMauveIris",name:"Iris"},{id:"OtherJackOLantern",name:"Mischievous Jack O' Lantern"},{id:"OtherJackOLantern2",name:"Sad Jack O' Lantern"},{id:"OtherJackOLantern3",name:"Gleeful Jack O' Lantern"},{id:"OtherJackOLantern4",name:"Messed-up Jack O' Lantern"},{id:"OtherJackOLantern5",name:"Laughing Jack O' Lantern"},{id:"OtherNinja",name:"Ninja"},
488{id:"OtherRaceCar",name:"Racecar"},{id:"OtherRose",name:"Rose"},{id:"OtherWhiteRose",name:"Rose #2"},{id:"OtherSnowMan",name:"Snowman"},{id:"OtherChristmasTree",name:"Christmas Tree"},{id:"OtherVolcano",name:"Volcano"}]}];a.AI_AVATARS={boy:"RobotBoy RobotBoy2 RobotBoy3 RobotBoy4 RobotBoy5 RobotBoy6 RobotBoy7 RobotBoy8 RobotBoy9 RobotBoy10 RobotBoy11".split(" "),girl:["RobotGirl","RobotGirl2","RobotGirl3","RobotGirl4","RobotGirl5"]};a.AVATARS_HIDDEN_IDS=["Sembiance"].concat(a.AI_AVATARS.boy,a.AI_AVATARS.girl);
489a.AVATARS_REMOVED_IDS="AnimalSheep AnimalChicken2 AnimalDoveStanding AnimalChicken AnimalPigProud AnimalRedNosedReindeerStars AnimalBirdGeek AnimalDoveFlying AnimalPandaGrumpy AnimalRaccoon AnimalRhino AnimalMouseCheese AnimalBunnySad AnimalMonkey AnimalDogSitting2 AnimalGopher AnimalRabbitDrums AnimalBee AnimalElephantCircus AnimalPigMoney AnimalWoodpecker AnimalEasterBunnyWithEggs AnimalPandaPerplexed AnimalWombat AnimalDragon AnimalPandaIntrigued AnimalWolfHowling AnimalDogSitting AnimalGoatCool AnimalTiger AnimalDogGeekLaying".split(" ");
490a.DECKS=[{id:"assorted",name:"",items:[{id:"arkadium",name:"Arkadium"},{id:"classic",name:"Classic"},{id:"anglo",name:"Anglo-American"},{id:"egypt",name:"Egypt"},{id:"ornamental",name:"Ornamental"},{id:"tango",name:"Tango"},{id:"torres",name:"Torres"},{id:"ninaste",name:"Ninaste"},{id:"azzedarsan",name:"Azzedar's Elves"},{id:"canasta",name:"Canasta"},{id:"handfoot",name:"Hand & Foot"}]}];a.DECKS_REMOVED_IDS=["azzedarsan","canasta","handfoot","arkadium"];a.AI_NAMES={boy:"HAL 9000;T-1000;B-4;Johnny 5;Megatron;WALL-E;Tin Man;Atom;C-3PO;R2-D2".split(";"),
491girl:["EVE","Aida","Caprica 6","Pris","Cherry 2000"]};a.HAPPENING_NAMES="legacy0 invite_robot_clicked gofish_chose_card gofish_chose_player gofish_fished tram_clicked kick_player_clicked standard_rules_hearts_choice turn_hint_shown".split(" ");a.HAPPENING_NAMES_MAP=a.HAPPENING_NAMES.mutate(function(y,v,d){v=v||{};v[y]=d;return v})})("undefined"===typeof exports?window.C={}:exports);
492YUI.add("wocg",function(a){function q(Q){var W=window.wocgLayoutProjection;W=W&&W.MOBILE_BREAKPOINTS?W.MOBILE_BREAKPOINTS:O;return"string"===typeof Q?W[Q]||W.default:Q||W.default}function w(){var Q=document.documentElement;return Q&&Q.clientWidth?Q.clientWidth:window.innerWidth}function k(){var Q=document.documentElement;return Q&&Q.clientHeight?Q.clientHeight:window.innerHeight}function x(){var Q=a.one("#playspace")||a.one(".playspace");if(!Q)return null;var W=Q.getWidth();Q=Q.getHeight();return 0>=
493W||0>=Q?null:{width:W,height:Q}}function y(Q){return Q&&(Q.hasClass("playspace-compact")||Q.hasClass("playspace-small")||Q.hasClass("playspace-portrait")||Q.hasClass("playspace-landscape"))}function v(Q,W){return"number"===typeof Q&&isFinite(Q)?Math.max(0,Math.round(Q*W)):Q}function d(Q,W,aa){W.forEach(function(oa){Object.prototype.hasOwnProperty.call(Q,oa)&&(Q[oa]=v(Q[oa],aa))})}function n(Q){return ua.some(function(W){return W.test(Q)})}
493function m(Q){Object.keys(C).forEach(function(W){var aa=C[W];
494aa&&"object"===typeof aa&&!Array.isArray(aa)&&Object.keys(aa).forEach(function(oa){n(oa)&&(aa[oa]=v(aa[oa],Q))})})}function H(){var Q=a.wocg.createURLSearchParams(window.location.search||"").get("animationSpeed"),W=!1;if(null===Q)return 1;Q=(Q||"").toLowerCase();if("slow"===Q)return.5;if("very-slow"===Q||"veryslow"===Q)return.1;if("normal"===Q||"default"===Q)return 1;Q.endsWith("ms")?(W=!0,Q=Q.slice(0,-2)):Q.endsWith("x")&&(Q=Q.slice(0,-1));Q=parseFloat(Q);return!isFinite(Q)||0>=Q?1:W||20<Q?C.PIECE_MOVE_DURATION/
495Q:Q}function c(Q){Q&&3===Q.nodeType&&(Q=Q.parentNode);return Q&&Q.closest?Q.closest("[data-wocg-press-release]"):null}function e(Q,W){var aa=W.closest("a");return Q.__wocgDomPressReplay||W.__wocgDomPressReplaying||0===Q.detail||"number"===typeof Q.button&&0!==Q.button||Q.metaKey||Q.ctrlKey||Q.shiftKey||Q.altKey||W.matches(".disabled, .invited, :disabled, [disabled]")||aa&&("_blank"===aa.getAttribute("target")||aa.hasAttribute("download"))?!1:!0}function h(Q,W){if(Q&&document.documentElement.contains(Q)){Q.__wocgDomPressReplaying=
496!0;try{if("function"===typeof Q.click)Q.click();else{var aa=document.createEvent("MouseEvents");aa.initMouseEvent("click",!0,!0,window,W.detail,W.screenX,W.screenY,W.clientX,W.clientY,W.ctrlKey,W.altKey,W.shiftKey,W.metaKey,W.button||0,null);aa.__wocgDomPressReplay=!0;Q.dispatchEvent(aa)}}finally{setTimeout(function(){delete Q.__wocgDomPressReplaying},0)}}}function p(Q){var W=c(Q.target);W&&e(Q,W)&&(Q.preventDefault(),Q.stopImmediatePropagation?Q.stopImmediatePropagation():Q.stopPropagation(),setTimeout(function(){h(W,
497Q)},80))}function t(){"undefined"!==typeof _gaq&&_gaq.push(["_trackEvent","events","table","created",ba,!1]);ba=0;X=null}function B(Q){try{return decodeURIComponent((Q||"").replace(/\+/g," "))}catch(W){return Q||""}}function F(Q){var W=[];Q=Q||"";"?"===Q.charAt(0)&&(Q=Q.substring(1));Q&&Q.split("&").forEach(function(aa){if(aa){var oa=aa.indexOf("=");var Da=-1===oa?aa:aa.substring(0,oa);aa=-1===oa?"":aa.substring(oa+1);W.push([B(Da),B(aa)])}});return{get:function(aa){var oa;for(oa=0;oa<W.length;oa++)if(W[oa][0]===
498aa)return W[oa][1];return null},has:function(aa){var oa;for(oa=0;oa<W.length;oa++)if(W[oa][0]===aa)return!0;return!1},delete:function(aa){W=W.filter(function(oa){return oa[0]!==aa})},entries:function(){return W.slice()},forEach:function(aa){W.forEach(function(oa){aa(oa[1],oa[0])})},toString:function(){return W.map(function(aa){return encodeURIComponent(aa[0])+"="+encodeURIComponent(aa[1])}).join("&")}}}function S(Q){Q=(Q||"/").split("?")[0].split("#")[0].replace(/\/+$/,"")||"/";if("/"===Q)return"Free Card Games Online | Play Single or Multiplayer";
499if(0===Q.indexOf("/how-to-play-")){var W=C.GAME_DIRS_INV[Q.slice(13)];if(W)return"How to Play "+C.GAME_NAMES[W]+" - Rules & Tutorial"}W=Q.split("/");return 3===W.length&&"tutorial"===W[2]&&(W=C.GAME_DIRS_INV[W[1]])?"How to Play "+C.GAME_NAMES[W]+" - Rules & Tutorial":(Q=C.GAME_DIRS_INV[Q.slice(1)])?C.GAME_NAMES[Q]+" - Online & Free | Play Classic Card Games":null}function A(){ra=ia=R=0;ka=!1}function M(){try{if(window.performance&&performance.memory&&"number"===typeof performance.memory.usedJSHeapSize)return performance.memory.usedJSHeapSize}catch(Q){}return null}
500function J(){try{if(window.performance&&performance.memory&&"number"===typeof performance.memory.usedJSHeapSize&&"number"===typeof performance.memory.jsHeapSizeLimit&&0<performance.memory.jsHeapSizeLimit)return performance.memory.usedJSHeapSize/performance.memory.jsHeapSizeLimit}catch(Q){}return null}function G(){try{if(a.Transition&&a.Transition.hasActiveAnimations)return a.Transition.hasActiveAnimations()}catch(Q){}return!1}function E(){function Q(Ma){if(W.length){oa.frame+=1;oa.time=(Ma-Da)/1E3;
501for(Ma=0;Ma<W.length;Ma++)try{W[Ma]()}catch(ya){}window.requestAnimationFrame(Q)}else aa=!1}if(Sa)return Sa;if("undefined"===typeof window||"function"!==typeof window.requestAnimationFrame)return null;var W=[],aa=!1,oa={frame:0,time:0,add:function(Ma){-1===W.indexOf(Ma)&&W.push(Ma);
501aa||(aa=!0,window.requestAnimationFrame(Q))},remove:function(Ma){Ma=W.indexOf(Ma);-1!==Ma&&W.splice(Ma,1)}},Da=window.performance&&performance.now?performance.now():0;return Sa=oa}function L(){return Ka?Math.round((Date.now()-
502Ka)/1E3):0}function T(){var Q=G(),W=ka||document.hidden,aa=M();var oa=0>=Fa||0>=Ca?null:5*Math.floor(Ca/Fa/5);null!==oa&&(ha=oa);window.averageFPS=ha;Ia=za=Fa=Ca=0;null!==xa||null===aa||W||(xa=aa);var Da=J(),Ma=R,ya=ra,Ra=ia,da=null===aa?null:Math.round(aa/1048576),Aa=null===xa?null:Math.round(xa/1048576),Qa=null===Da?null:Math.round(100*Da)/100;try{var Ta=document.getElementsByTagName("*").length}catch(Ua){Ta=null}try{var Va=document.getElementsByTagName("iframe").length}catch(Ua){Va=null}Q={jankDrift:Ma,
503longTaskMax:ya,longTaskTotal:Ra,fpsAvg:oa,heapMB:da,heapBaselineMB:Aa,heapPressure:Qa,domNodes:Ta,iframes:Va,hidden:W,displayAdsRendered:window&&window.displayAdsRendered?window.displayAdsRendered:0,videoAdsRendered:window&&window.videoAdsRendered?window.videoAdsRendered:0,animating:Q,timestamp:Date.now()};P=(oa=null!==Da&&null!==aa&&314572800<=aa)&&.8<=Da||null!==aa&&(838860800<=aa||null!==xa&&524288E3<=aa&&aa>=2.5*xa);ca=oa&&.85<=Da;Q.degraded=!W&&(1500<=R||12E3<=ia);La.push(Q);120<La.length&&La.shift();
504aa=!1;!W&&1200<=L()&&a.wocg.Table.getCurrentTable()&&(800<=R||1800<=ra||12E3<=ia)&&(aa=!0);aa?N++:N=0;if(3<=N||ca&&a.wocg.Table.getCurrentTable())W=!(!a.wocg.PageReset||!a.wocg.PageReset.requestSevereReset()),ca&&!W&&ma("memory_critical");A()}function ma(Q){function W(oa){if(!aa){var Da=La[La.length-1]||{};Da.trigger=Q;Da.sessionDuration=L();Da.displayAdsRendered=window&&window.displayAdsRendered?window.displayAdsRendered:0;Da.videoAdsRendered=window&&window.videoAdsRendered?window.videoAdsRendered:
5050;Da.reloadClicked=!!oa;a.wocg.trackEvent("WatchdogPrompt",Da);aa=!0}}if(!Pa&&(Pa=!0,u.enablePrompt)){var aa=!1;setTimeout(function(){W(!1)},5E3);a.fire("ModalError:show",{message:"<b>Performance degraded:</b> Page performance is low and may cause freezes. Reload to continue at this table.<br /><button class='button blue' id='wocg-reload-btn'>Reload game</button>",fatal:!1});setTimeout(function(){var oa=document.getElementById("wocg-reload-btn");oa&&oa.addEventListener("click",function(){W(!0);a.wocg.reloadApp()})},
506320)}}function ea(){for(var Q=0,W=Math.max(0,La.length-5);W<La.length;W++)La[W].degraded&&Q++;return Q}var ba=0,X=null,I=[5,15,30,60],O={small:480,default:640},fa,ta="NAME_PIECE_PULSE_DURATION PIECE_DEAL_DURATION PIECE_DEAL_INTERVAL CARD_REVEAL_STAGGER DEAL_SOURCE_ENTER_DURATION DEAL_TO_TURN_DELAY PIECE_MOVE_DURATION MOVE_AND_FLIP_FLIP_DURATION PIECE_CLEANUP_DURATION UNSELECTABLE_ANIMATE_DURATION WALLPAPER_CHANGE_DURATION TABLE_BAR_ANIMATION_DELAY TABLE_BAR_ANIMATION_DURATION PIECE_FADE_DURATION TRAM_BUTTON_FADE_DURATION GAME_OVER_INITIAL_FADE_DURATION GAME_OVER_FADE_INTERVAL PIECE_PUSH_PULL_DURATION".split(" "),
507ua=[/^ASK_AGAIN_DELAY$/,/^ASK_RESPONSE_DELAY$/,/^BID_FADE_IN_DURATION$/,/^BOOK_SHOW_DELAY$/,/^CELEBRATION_(DISPLAY_DURATION|FADE_IN_DURATION|FADE_INTERVAL|FADE_OUT_DURATION|POST_DELAY)$/,/^CONSIDER_FADE_IN_DURATION$/,/^CONSIDER_SUIT_STAGE_DELAY$/,/^DEAL_DURATION$/,/^DECIDE_.*_FADE_IN_DURATION$/,/^DECLARE_.*_DURATION$/,/^DUMMY_REVEAL_(DELAY|DURATION)$/,/^FISH_TURN_START_DELAY$/,/^FOLD_DURATION$/,/^GAME_OVER_DURATION$/,/^HAND_OVER_(DELAY|DURATION)$/,/^MELDS_FADE_DELAY$/,/^NO_CARD_SKIP_DURATION$/,/^NO_FISH_NEXT_TURN_DELAY$/,
508/^NO_MARRIAGE_DURATION$/,/^NO_PASS_MESSAGE_DURATION$/,/^PAIR_SHOW_DELAY$/,/^PASS_(DELAY|MOVE_DELAY|MOVE_DURATION|PULL_OUT_DELAY|PUSH_IN_DELAY)$/,/^PEG_STEP_DURATION$/,/^PIECE_DEAL_(DURATION|INTERVAL)$/,/^PLAY_DELAY$/,/^RED_THREE_MOVE_(DELAY|DURATION)$/,/^SCORES_FADE_IN_DURATION$/,/^SHOOT_(DURATION_TO_DISPLAYED|FADE_IN_DURATION|FADE_INTERVAL|FADE_OUT_DURATION|POST_DELAY)$/,/^SHOW_(DELAY|FADE_IN_DURATION|FADE_OUT_DURATION|MOVE_DURATION)$/,/^SUBTOTALS_TO_HANDOVER_DELAY$/,/^TAKE_(DELAY|MOVE_DURATION)$/,
509/^TRAM_TAKE_(DELAY|DURATION)$/,/^TRICK_TAKE_(DELAY|DURATION)$/,/^UP_CARD_(DEAL_DELAY|MOVE_DURATION)$/];a.wocg={IS_DEV:window.location.hostname.startsWith("dev.")||window.location.href.includes("dev=true"),DOMAIN_PREFIX:window.location.hostname.startsWith("dev.")?"dev.":window.location.hostname.startsWith("staging.")?"staging.":"",DOMAIN:"worldofcardgames.com",VERSION_PREFIX:"?v=",DEBUG_ZINDEX:void 0,DEBUG_SPOT:[],Z_INDEX_MOVE_MODIFIER:200,Z_INDEX_PLAYER_CHROME_FLOOR:4E3,ENABLE_ROTATION:Modernizr.csstransforms,
510ANIMATION_SPEED:1,ANIMATION_TIME_MULTIPLIER:1,SCREEN_TRANSITION_DURATION:160,MENU_PRELOAD_DELAY:10*base.SECOND,THEME_PRELOAD_DELAY:20*base.SECOND,SOCIAL_BUTTONS_DELAY:15*base.SECOND};a.wocg.URL="https://"+a.wocg.DOMAIN_PREFIX+a.wocg.DOMAIN;var qa=[],na=console.error;console.error=function(){var Q=Array.from(arguments).map(function(W){return W instanceof Error?W.message+(W.stack?"\n"+W.stack:""):"object"===typeof W?"[object]":String(W)}).join(" ");1E3<Q.length&&(Q=Q.substring(0,1E3)+"...");qa.push({timestamp:Date.now(),
511message:Q});100<qa.length&&qa.shift();na.apply(console,arguments)};a.wocg.getConsoleLogs=function(){return qa.slice()};a.wocg.createURLSearchParams=function(Q){try{if("function"===typeof URLSearchParams)return new URLSearchParams(Q||"")}catch(W){}return F(Q)};a.wocg.scaleAnimationTime=function(Q){return v(Q,a.wocg.ANIMATION_TIME_MULTIPLIER)};(function(){var Q=H(),W=1/Q;a.wocg.ANIMATION_SPEED=Q;a.wocg.ANIMATION_TIME_MULTIPLIER=W;1!==W&&(d(C,ta,W),m(W),a.wocg.SCREEN_TRANSITION_DURATION=v(a.wocg.SCREEN_TRANSITION_DURATION,
512W))})();try{var b=(a.wocg.createURLSearchParams(window.location.search||"").get("pool")||"").toLowerCase();if("blue"===b||"green"===b)document.cookie=`pool=${b}; Path=/; SameSite=Lax`}catch(Q){}a.wocg.IS_DEV&&(window.V=V.generate(),a.wocg.VERSION_PREFIX="?v=");a.wocg.game={};a.wocg.buildAssetURL=function(Q,W){!W&&Q.endsWith(".css")&&(W="css");return"assets/"+Q+(W&&V[W]?a.wocg.VERSION_PREFIX+V[W]:"")};a.wocg.buildAssetJSURL=function(Q){return"assets/"+Q+".js"+a.wocg.VERSION_PREFIX+V.js};a.wocg.buildAssetImageURL=
513function(Q,W){return"assets/"+(W&&Modernizr.webp?Q.replaceAll("[.](jpg|png)",".webp"):Q)+a.wocg.VERSION_PREFIX+V.image};a.wocg.preloadDeck=function(Q,W){var aa=[];if(!W){for(W=1;13>=W;W++)aa.push(a.wocg.buildAssetImageURL("pieces/card/"+Q+"/"+W+"c.png")),aa.push(a.wocg.buildAssetImageURL("pieces/card/"+Q+"/"+W+"d.png")),aa.push(a.wocg.buildAssetImageURL("pieces/card/"+Q+"/"+W+"h.png")),aa.push(a.wocg.buildAssetImageURL("pieces/card/"+Q+"/"+W+"s.png"));aa.push(a.wocg.buildAssetImageURL("pieces/card/"+
514Q+"/rj.png"));aa.push(a.wocg.buildAssetImageURL("pieces/card/"+Q+"/bj.png"))}aa.push(a.wocg.buildAssetImageURL("pieces/card/"+Q+"/back.png"));a.ImagePreloader.preload(aa,null,!0)};a.wocg.gameIDToPath=function(Q){return C.GAME_DIRS[Q]};a.wocg.colorizeSuitSymbols=function(Q){Q=Q.replace(/♠/g,"<span class='suit'>♠</span>");Q=Q.replace(/♣/g,"<span class='suit'>♣</span>");Q=Q.replace(/♥/g,"<span class='suit' style='color: red;'>♥</span>");return Q=Q.replace(/♦/g,"<span class='suit' style='color: red;'>♦</span>")};
515a.wocg.getDisplayGameRanks=function(Q,W){if(!Q)return"N  ̸ A";var aa="",oa="",Da="st-e:"+W;Object.keys(Q).forEach(function(Ma){if(null!==Q[Ma]){var ya=Ma.replace(Da,"");aa+=oa+Q[Ma];(Ma=C.RANKED_OPTIONS_PRETTY[W][ya])&&(aa+=" ("+Ma+")");oa=" · "}});""===aa&&(aa="N  ̸ A");return aa};a.wocg.removePx=function(Q){var W=+Q;isNaN(Q)&&(W=+Q.replaceAll("px",""));return W};a.wocg.activeGameID=function(){var Q=a.one("body");return Q?Q.getAttribute("data-active-game")||"":""};a.wocg.hasActiveGame=function(){return""!==
516this.activeGameID()};a.wocg.setActiveGameID=function(Q){var W=a.one("body");W&&W.setAttribute("data-active-game",Q||"")};a.wocg.clearActiveGameID=function(){this.setActiveGameID("")};a.wocg.viewportGutter=function(){var Q=a.one("#mainContainer");return x()||y(Q)?this.playspaceGutter():((Q=window.getComputedStyle?window.getComputedStyle(document.documentElement):null)?parseInt(Q.getPropertyValue("--space-viewport-gutter"),10):NaN)||(a.wocg.isMobile()?8:16)};a.wocg.getRightRailAdTopOffset=function(){return 32+
517this.viewportGutter()};a.wocg.getRightRailAdVerticalSpace=function(){return this.getRightRailAdTopOffset()+this.viewportGutter()};a.wocg.getAdSize=function(){var Q=[0,0],W=a.one("#mainContainer");if(!W)return Q;var aa=W.getWidth();W=W.getHeight();W=Math.max(W-a.wocg.getRightRailAdVerticalSpace(),0);return 0<a.wocg.User.getSiteSupporterLevel()?Q:Q=a.wocg.showMobileBannerAd()?[aa,100]:a.wocg.isMobile()&&!a.wocg.isPortrait()&&896<=aa?[336,W]:1024<=aa?[336,W]:[160,W]};a.wocg.showTopAd=function(){return this.isPortrait()&&
518this.isMobile()};a.wocg.showMobileBannerAd=function(){return this.showTopAd()};a.wocg.showStickyFooterAd=function(){return this.showTopAd()&&760<=k()};a.wocg.getTopAdOffset=function(){return this.showTopAd()?this.getAdHeight():0};a.wocg.getBottomAdOffset=function(){return this.showStickyFooterAd()?this.getAdHeight():0};a.wocg.getAdWidth=function(){return a.wocg.getAdSize()[0]+C.AD_PADD
518ING};a.wocg.getAdHeight=function(){return a.wocg.getAdSize()[1]};a.wocg.isPortrait=function(){return w()<=k()};a.wocg.isLandscape=
519function(){return w()>=k()};a.wocg.isTouchDevice=function(){return"ontouchstart"in window||navigator&&navigator.maxTouchPoints&&0<navigator.maxTouchPoints||navigator&&navigator.msMaxTouchPoints&&0<navigator.msMaxTouchPoints||window.matchMedia&&window.matchMedia("(pointer: coarse)").matches};a.wocg.isMobile=function(Q){var W=window.wocgLayoutProjection;if(W&&W.isMobileSize)return W.isMobileSize(w(),k(),Q);Q=q(Q);return this.isLandscape()&&k()<=Q||this.isPortrait()&&w()<=Q};a.wocg.tableBarHeight=function(){var Q=
520window.wocgLayoutProjection;return Q?Q.TABLE_BAR_HEIGHT:56};a.wocg.tableBarSideWidth=function(){var Q=window.wocgLayoutProjection;return Q?Q.TABLE_BAR_SIDE_WIDTH:58};a.wocg.tableBarSideGutter=function(){var Q=window.wocgLayoutProjection;return Q?Q.TABLE_BAR_SIDE_GUTTER:8};a.wocg.playspaceWidth=function(){var Q=x();return Q?Q.width:w()};a.wocg.playspaceHeight=function(){var Q=x();return Q?Q.height:k()};a.wocg.isPlayspacePortrait=function(){var Q=a.one("#mainContainer");return y(Q)?Q.hasClass("playspace-portrait"):
521(Q=x())?Q.width<=Q.height:this.isPortrait()};a.wocg.isPlayspaceLandscape=function(){var Q=a.one("#mainContainer");return y(Q)?Q.hasClass("playspace-landscape"):(Q=x())?Q.width>=Q.height:this.isLandscape()};a.wocg.isPlayspaceCompact=function(Q){var W=a.one("#mainContainer");if(y(W)){if("small"===Q)return W.hasClass("playspace-small");
521if(!Q||"default"===Q)return W.hasClass("playspace-compact")}if((W=window.wocgLayoutProjection)&&W.isCompactSize)return W.isCompactSize(this.playspaceWidth(),this.playspaceHeight(),
522Q);Q=q(Q);return this.isPlayspaceLandscape()&&this.playspaceHeight()<=Q||this.isPlayspacePortrait()&&this.playspaceWidth()<=Q};a.wocg.playspaceGutter=function(){return this.isTableBarSideLayout()?this.tableBarSideGutter():this.isPlayspaceCompact()?8:16};a.wocg.getAvailablePlayspaceSize=function(){var Q=window.wocgLayoutProjection;if(Q&&Q.getAvailablePlayspaceSize){var W=!(!a.AdWidget||!a.AdWidget.isAdRemoved),aa=document.body;aa=W?!a.AdWidget.isAdRemoved():!!(aa&&aa.classList&&aa.classList.contains("adsVisible"));
523var oa=this.showMobileBannerAd(),Da={userBarHeight:this.userBarHeight(),adsVisible:aa,showTopAd:this.showTopAd(),showMobileBannerAd:oa,showStickyFooterAd:this.showStickyFooterAd()};aa&&W&&oa?(Da.adHeight=this.getAdHeight(),Da.topAdOffset=this.getTopAdOffset(),Da.bottomAdOffset=this.getBottomAdOffset()):aa&&W&&(Da.adWidth=this.getAdWidth());return Q.getAvailablePlayspaceSize(Da)}Q=w()-this.safeAreaLeft()-this.safeAreaRight();W=k()-this.userBarHeight()-this.safeAreaTop()-this.safeAreaBottom();aa=0;
524a.AdWidget&&a.AdWidget.isAdRemoved&&!a.AdWidget.isAdRemoved()&&(this.showMobileBannerAd()?(aa=this.getTopAdOffset(),oa=this.getBottomAdOffset(),W-=aa+oa):Q-=this.getAdWidth());if(this.isTableBarSideLayout()){oa=Q-=this.tableBarSideWidth()+this.tableBarSideGutter();var Ma=W}else{Da=this.tableBarHeight();Ma=W-Da-16;var ya=Q>=Ma&&Ma<=q()||Q<=Ma&&Q<=q();oa=Q;W-=Da+(ya?8:16)}return{maxWidth:Q,maxHeight:W,layoutClassWidth:oa,layoutClassHeight:Ma,userBarHeight:this.userBarHeight(),topAdOffset:aa}};a.wocg.updatePlayspaceLayoutClassesForState=
525function(Q){var W=a.one("#mainContainer");if(W){var aa=function(oa,Da){Da?W.addClass(oa):W.removeClass(oa)};aa("playspace-compact",Q.compact);aa("playspace-small",Q.small);aa("playspace-portrait",Q.portrait);aa("playspace-landscape",Q.landscape)}};a.wocg.updatePlayspaceLayoutClassesForSize=function(Q,W){var aa=window.wocgLayoutProjection;Q=aa&&aa.getClassStateForSize?aa.getClassStateForSize(Q,W):{compact:Q>=W&&W<=q()||Q<=W&&Q<=q(),small:Q>=W&&W<=q("small")||Q<=W&&Q<=q("small"),portrait:Q<=W,landscape:Q>=
526W};this.updatePlayspaceLayoutClassesForState(Q)};a.wocg.updatePlayspaceLayoutClassesForViewport=function(){this.updatePlayspaceLayoutClassesForSize(w(),k())};a.wocg.clearPlayspaceLayoutClasses=function(){var Q=a.one("#mainContainer");if(Q){var W=window.wocgLayoutProjection;(W&&W.PLAYSPACE_CLASSES?W.PLAYSPACE_CLASSES:["playspace-compact","playspace-small","playspace-portrait","playspace-landscape"]).forEach(function(aa){Q.removeClass(aa)})}};a.wocg.updatePlayspaceLayoutClasses=function(){this.updateProjectedPlayspaceLayoutClasses()};
527a.wocg.updateProjectedPlayspaceLayoutClasses=function(){var Q=this.getAvailablePlayspaceSize(),W=window.wocgLayoutProjection;(W=W&&W.getClassStateForAvailableSize?W.getClassStateForAvailableSize(Q):null)?this.updatePlayspaceLayoutClassesForState(W):this.updatePlayspaceLayoutClassesForSize(Q.layoutClassWidth||Q.maxWidth,Q.layoutClassHeight||Q.maxHeight)};a.wocg.isTableBarSideLayout=function(){var Q=window.wocgLayoutProjection;return Q&&Q.isTableBarSideLayout?Q.isTableBarSideLayout(w(),k()):this.isLandscape()&&
528576>=k()&&480<=w()};a.wocg.safeAreaTop=function(){const Q=getComputedStyle(document.documentElement);return parseInt(Q.getPropertyValue("--safe-area-inset-top"),10)||0};a.wocg.safeAreaBottom=function(){const Q=getComputedStyle(document.documentElement);return parseInt(Q.getPropertyValue("--safe-area-inset-bottom"),10)||0};a.wocg.safeAreaLeft=function(){const Q=getComputedStyle(document.documentElement);return parseInt(Q.getPropertyValue("--safe-area-inset-left"),10)||0};a.wocg.safeAreaRight=function(){const Q=
529getComputedStyle(document.documentElement);return parseInt(Q.getPropertyValue("--safe-area-inset-right"),10)||0};a.wocg.belowViewportRenderOverflow=function(){return!(0<navigator.maxTouchPoints&&window.screen)||window.innerWidth>window.innerHeight||window.innerWidth<Math.min(window.screen.width,window.screen.height)-4?0:Math.max(0,Math.max(window.screen.width,window.screen.height)-window.innerHeight)};a.wocg.userBarHeight=function(){return a.wocg.isPlatformMobile()?0:32};a.wocg.queryParams=function(){var Q=
530a.wocg.createURLSearchParams(window.location.search),W={},aa=a.one("body");Q.forEach(function(Da,Ma){W[Ma]=Da});if(aa){Q=aa.getAttribute("data-platform");var oa=aa.getAttribute("data-platform-gameid");aa=aa.getAttribute("data-source");Q&&(W.platform=Q);oa&&(W["platform-gameid"]=oa);aa&&(W.source=aa)}return W};a.wocg.PENDING_NEW_GAME_RELOAD_KEY="wocgPendingNewGameReload";a.wocg.getPendingNewGameReload=function(){try{var Q=window.sessionStorage.getItem(a.wocg.PENDING_NEW_GAME_RELOAD_KEY),W=Q?JSON.parse(Q):
531null;return!W||!W.createdAt||Date.now()-W.createdAt>2*base.MINUTE?(a.wocg.clearPendingNewGameReload(),null):W}catch(aa){return a.wocg.clearPendingNewGameReload(),null}};a.wocg.hasPendingNewGameReload=function(){return!!a.wocg.getPendingNewGameReload()};a.wocg.setPendingNewGameReload=function(Q){window.sessionStorage.setItem(a.wocg.PENDING_NEW_GAME_RELOAD_KEY,JSON.stringify({...Q,createdAt:Date.now()}))};a.wocg.clearPendingNewGameReload=function(){try{window.sessionStorage.removeItem(a.wocg.PENDING_NEW_GAME_RELOAD_KEY)}catch(Q){}};
532a.wocg.isPlatformMobile=function(){return"mobile"===a.wocg.queryParams().platform};a.wocg.isNativeApp=function(){return a.wocg.isPlatformMobile()||!!window.ReactNativeWebView||!!window.electronAPI};a.wocg.isSourceArkadium=function(){return"arkadium"==a.wocg.queryParams().source};a.wocg.shouldHideSubscriptionLinks=function(){return a.wocg.isNativeApp()||a.wocg.isSourceArkadium()};a.wocg.getStorageContext=function(){var Q=-1,W=-1;try{navigator.storage&&navigator.storage.estimate&&navigator.storage.estimate().then(function(aa){aa&&
533"number"===typeof aa.quota&&(Q=Math.round(aa.quota/1048576))},function(){}),navigator.storage&&navigator.storage.persisted&&navigator.storage.persisted().then(function(aa){W=aa?1:0},function(){})}catch(aa){}return function(){var aa={storageQuotaMB:Q,storagePersisted:W,cookieEnabled:!1,lsWritable:!1,
533cookieWritable:!1};try{aa.cookieEnabled=!!navigator.cookieEnabled}catch(oa){}try{window.localStorage.setItem("__wocgStorageProbe","1"),aa.lsWritable="1"===window.localStorage.getItem("__wocgStorageProbe"),
534window.localStorage.removeItem("__wocgStorageProbe")}catch(oa){}try{document.cookie="__wocgCookieProbe=1; path=/; SameSite=Lax",aa.cookieWritable=-1!==document.cookie.indexOf("__wocgCookieProbe=1"),document.cookie="__wocgCookieProbe=; path=/; SameSite=Lax; expires=Thu, 01 Jan 1970 00:00:00 GMT"}catch(oa){}return aa}}();a.wocg.shouldShowAuthUI=function(){return!a.wocg.isSourceArkadium()};a.wocg.platformGameid=function(){return a.wocg.queryParams()["platform-gameid"]};a.wocg.deviceType=function(){const Q=
535navigator.userAgent.toLowerCase();return Q.includes("mobile")?"mobile":Q.includes("tablet")||Q.includes("android")&&!Q.includes("mobile")?"tablet":"desktop"};a.wocg.deviceOS=function(){const Q=navigator.userAgent.toLowerCase();return Q.includes("windows")?"Windows":Q.includes("mac")?"Mac OS":Q.includes("android")?"Android":Q.includes("iphone")||Q.includes("ipad")?"iOS":Q.includes("linux")?"Linux":"Unknown"};a.wocg.updateTitleForPath=function(Q){if(Q=S(Q))document.title=Q};a.wocg.goToUrl=function(Q=
536"/",W="",aa=!0){if(!a.wocg.isSourceArkadium()){var oa=a.wocg.createURLSearchParams(window.location.search);oa.toString()&&(Q+=`?${oa.toString()}`);window.history&&window.history.pushState&&aa?(window.history.pushState(W,"",Q),a.wocg.updateTitleForPath(Q)):0==aa&&window.open(Q,"_self")}};a.wocg.reloadApp=function(){window.confirmedLeave=!0;var Q=!1,W=null,aa=function(){if(!Q)a:{if(Q=!0,W&&W.detach(),window.ReactNativeWebView)try{window.ReactNativeWebView.postMessage(JSON.stringify({type:"reload"}));
537break a}catch(oa){}window.location.reload()}};try{if(a.wocg.Comm&&a.wocg.Comm.send){W=a.on("comm:table.reloading.ack",aa);a.wocg.Comm.send("table.reloading",{});setTimeout(aa,800);return}}catch(oa){}aa()};a.wocg.getCookie=async function(Q,W){return a.wocg.isSourceArkadium()&&window.arkadium?await window.arkadium.auth.isUserAuthorized()?await window.arkadium.persistence.getRemoteStorageItem(Q):await window.arkadium.persistence.getLocalStorageItem(Q):a.Cookie.get(Q,W)};a.wocg.setCookie=async function(Q,
538W,aa){return a.wocg.isSourceArkadium()&&window.arkadium?await window.arkadium.auth.isUserAuthorized()?await window.arkadium.persistence.setRemoteStorageItem(Q,W):await window.arkadium.persistence.setLocalStorageItem(Q,W):a.Cookie.set(Q,W,aa)};a.wocg.removeCookie=async function(Q,W){return a.wocg.isSourceArkadium()&&window.arkadium?await window.arkadium.auth.isUserAuthorized()?await window.arkadium.persistence.removeRemoteStorageItem(Q):await window.arkadium.persistence.removeLocalStorageItem(Q):a.Cookie.remove(Q,
539W)};a.wocg.manageCookieSize=function(){var Q="addtl_consent euconsent-v2 cto_bundle cto_bidid pbjs-unifiedid __gads __gpi _awl panoramaId _iiq_fdata firebaseUserCreationDate pbjs-unifiedid_last _usd_online-solitaire.com questionModalLastShownDate _ga_9HKHVQH8WN cookie _pbjs_userid_consent_data _cc_id __qca settingsBackgroundColor panoramaId_expiry _ga _gid _gat _gali panoramaIdType _lr_retry_request _lr_env_src_ats wocg-cookie cookie username_cookie isFirstGameFinished useLegacyAvatars ipapi_addressId sortGinRummy rummySortDirection crazyeightsSortDirection rummyHandCardOrder o bookmarkShown wocg-bookmark-tip-displayed registerModalShown gamesPlayed googleOneTapLastPromptedAt googleOneTapLastUserCancelledAt googleOneTapPromptCount pool wocg-last-reload _ga".split(" "),
540W=document.cookie.split(";").map(function(Da){var Ma=Da.split("="),ya=Ma[0].trim();Ma=Ma.slice(1).join("=");return{name:ya,size:Da.length,value:Ma}}).filter(function(Da){return Da.name}),aa=W.reduce(function(Da,Ma){return Da+Ma.size},0);if(8192<aa){W=W.filter(function(Da){return-1===Q.indexOf(Da.name)}).sort(function(Da,Ma){return Ma.size-Da.size});for(var oa=0;oa<W.length&&8192<aa;oa++)document.cookie=W[oa].name+"=; expires=Thu, 01 Jan 1970 00:00:01 GMT; path=/; domain="+a.wocg.DOMAIN,document.cookie=
541W[oa].name+"=; expires=Thu, 01 Jan 1970 00:00:01 GMT; path=/",aa-=W[oa].size}8192<aa&&console.warn("Cookie size still over 8KB after cleanup:",aa)};a.wocg.trackEvent=function(Q,W){(async function(){var aa=W?{...W}:{},oa=a.wocg.User,Da=!!(oa&&oa.isRegistered&&oa.isRegistered());window&&"function"===typeof window.__wocgLoadAnalytics&&window.__wocgLoadAnalytics();window&&"function"===typeof window.__wocgUpdateAnalyticsIdentity&&window.__wocgUpdateAnalyticsIdentity();let Ma=Da&&oa&&oa.getCookie?oa.getCookie():
542null,ya=0;for(;Da&&(!Ma||oa&&oa.getUsername&&null===oa.getUsername())&&10>ya;)await new Promise(Ra=>setTimeout(Ra,1E3)),Ma=oa&&oa.getCookie?oa.getCookie():null,ya++;oa={signedIn:Da};aa={...oa,...aa};Da&&Ma&&window&&window.op&&window.op("identify",{profileId:Ma,properties:oa});window.op&&window.op("track",Q,aa)})();return!0};a.wocg.trackGoogleEvent=function(Q,W){window&&"function"===typeof window.__wocgLoadAnalytics&&window.__wocgLoadAnalytics();window&&"function"===typeof window.__wocgUpdateAnalyticsIdentity&&
543window.__wocgUpdateAnalyticsIdentity();window&&window.gtag&&window.gtag("event",Q,W||{});return!0};var f=!1,u={enablePrompt:!1},l=null,r=null,D=null,N=0,P=!1,ca=!1,xa=null,Ba=0,U=!1,R=0,ia=0,ra=0,ka=!1,ha=null,Ca=0,Fa=0,za=0,Ia=0,Ga=null,La=[],Pa=!1,Ka=0,Sa=null;a.wocg.startWatchdog=function(Q){if(!f){f=!0;u={...u,...Q};A();Ba=performance.now();Ka=Date.now();
543Ia=za=Fa=Ca=0;try{"PerformanceObserver"in window&&window.PerformanceObserver&&window.PerformanceLongTaskTiming&&(D=new PerformanceObserver(function(aa){aa=
544aa.getEntries();for(var oa=0;oa<aa.length;oa++){var Da=aa[oa].duration||0;ia+=Da;Da>ra&&(ra=Da)}}),D.observe({entryTypes:["longtask"]}))}catch(aa){}try{var W=E();W&&!Ga&&(Ga=function(){if(G()&&(0!==za||0!==Ia)){var aa=W.frame-za,oa=W.time-Ia;0<aa&&0<oa&&(Ca+=aa,Fa+=oa)}za=W.frame;Ia=W.time},W.add(Ga))}catch(aa){}l=setInterval(function(){var aa=performance.now(),oa=aa-Ba-1E3;document.hidden?U=ka=!0:U?U=!1:oa>R&&(R=oa);Ba=aa},1E3);r=setInterval(T,6E4)}};a.wocg.stopWatchdog=function(){if(f){f=!1;l&&
545(clearInterval(l),l=null);r&&(clearInterval(r),r=null);try{var Q=E();Q&&Ga&&(Q.remove(Ga),Ga=null)}catch(W){}if(D&&D.disconnect)try{D.disconnect()}catch(W){}A()}};a.wocg.isPerformanceDegraded=function(){var Q;(Q=P)||(Q=La.length?La[La.length-1]:null,Q=!(!Q||!Q.degraded)&&4<=ea());return Q};a.wocg.getWatchdogSnapshot=function(){var Q=La.length?La[La.length-1]:{},W="number"===typeof ha?ha:-1,aa=Math.round(Q.jankDrift||0),oa=Math.round(Q.longTaskMax||0),Da=Math.round(Q.longTaskTotal||0),Ma=null==Q.heapMB?
546-1:Q.heapMB,ya=null==Q.heapBaselineMB?-1:Q.heapBaselineMB,Ra=null==Q.domNodes?-1:Q.domNodes;Q=null==Q.iframes?-1:Q.iframes;var da=window&&window.displayAdsRendered?window.displayAdsRendered:0,Aa=ea(),Qa=P,Ta=ca,Va=J();Va=null===Va?-1:Math.round(100*Va)/100;var Ua=La.length?La[La.length-1]:{};var Ea=[];P&&Ea.push(ca?"memory_critical":"memory");1500<=(Ua.jankDrift||0)&&Ea.push("jank");(1800<=(Ua.longTaskMax||0)||12E3<=(Ua.longTaskTotal||0))&&Ea.push("longtask");Ua=Ea.length?Ea.join("+"):"none";return{fpsAvg:W,
547jankDriftMs:aa,longTaskMaxMs:oa,longTaskTotalMs:Da,heapMB:Ma,heapBaselineMB:ya,domNodes:Ra,iframes:Q,displayAdsRendered:da,degradedWindowsRecent:Aa,memoryDegraded:Qa,memoryCritical:Ta,heapPressure:Va,watchdogReason:Ua,watchdogSessionSeconds:L(),promptShown:Pa}};a.wocg.hasActiveAnimations=G;a.wocg.watchdogDebugSummary=function(){console.log("====== WATCHDOG DEBUG SUMMARY ======");console.log("Status: "+(f?"RUNNING":"STOPPED"));console.log("Options:",u);console.log("Session Duration: "+L()+" seconds");
548console.log("Current Metrics:");console.log("  - Jank Drift Max (current window so far): "+R.toFixed(2)+"ms");console.log("  - Long Task Max (current window so far): "+ra.toFixed(2)+"ms");console.log("  - Long Task Total (current window so far): "+ia.toFixed(2)+"ms");console.log("  - FPS Avg (last completed window): "+(null==ha?"n/a":ha));console.log("  - Display Ads Rendered: "+(window&&window.displayAdsRendered?window.displayAdsRendered:0));console.log("  - Video Ads Rendered: "+(window&&window.videoAdsRendered?
549window.videoAdsRendered:0));console.log("  - Consecutive Prompt Windows: "+N);console.log("  - Degraded Windows (last 5): "+ea()+"/4 needed");console.log("  - Heap: "+(null===M()?"n/a":Math.round(M()/1048576)+"MB (baseline "+(null===xa?"n/a":Math.round(xa/1048576)+"MB")+")"));console.log("  - Memory Degraded: "+P);console.log("  - Window History Length: "+La.length);console.log("Flags:");console.log("  - Prompt Shown: "+Pa);if(0<La.length){console.log("Last 5 Windows:");for(var Q=Math.max(0,La.length-
5505);Q<La.length;Q++){var W=La[Q],aa="  Window #"+(Q+1)+": jank="+W.jankDrift.toFixed(2)+"ms, longMax="+W.longTaskMax.toFixed(2)+"ms, longTotal="+W.longTaskTotal.toFixed(2)+"ms";if("number"===typeof W.fpsAvg){var oa=(60-W.fpsAvg)/60*100;aa+=", fpsAvg="+W.fpsAvg+" (deg "+(0<=oa?"+":"")+oa.toFixed(1)+"%)"}aa+=", ads="+(null!=W.displayAdsRendered?W.displayAdsRendered:"n/a")+" display, "+(null!=W.videoAdsRendered?W.videoAdsRendered:"n/a")+" video";console.log(aa)}}console.log("=====================================")};
551a.on("domready",function(){a.UA.ie&&a.one(document.body).addClass("ie");document.addEventListener&&document.addEventListener("click",p,!0);if(a.UA.ios||a.UA.android)document.addEventListener("focus",function(W){W=W.target&&W.target.tagName?W.target.tagName.toLowerCase():"";if("input"===W||"textarea"===W||"select"===W)fa=window.scrollY},!0),document.addEventListener("blur",function(W){W=W.target&&W.target.tagName?W.target.tagName.toLowerCase():"";"input"!==W&&"textarea"!==W&&"select"!==W||window.scrollTo(0,
552fa)},!0);try{a.wocg.manageCookieSize()}catch(W){console.error("Cookie cleanup failed:",W)}try{var Q=function(){a.wocg&&a.wocg.startWatchdog&&a.wocg.startWatchdog({enablePrompt:!0})};document.prerendering?document.addEventListener("prerenderingchange",Q,{once:!0}):Q()}catch(W){}});a.on("table:created",function(){var Q=Math.floor(((new Date).getTime()-base.STARTUP_TIME)/base.DAY);ba++;null===X&&(X=setTimeout(t,I[Q]*base.MINUTE))})},"1.0",{requires:["yui-node-extensions","ModalError"]});
553(function(a){var q={js:1036,css:1018,image:970,favIcon:944};Object.keys(q).forEach(function(w){a[w]=q[w]});a.generate=function(){var w=Math.floor((Date.now()-Date.parse("Thu, 14 Jun 2012 00:00:00 GMT"))/1E3),k={};Object.keys(q).forEach(function(x){k[x]=w});return k}})("undefined"===typeof exports?window.V={}:exports);
554YUI.add("wocg.AuthProviders",function(a){function q(R){return"gameOverRegister"===R}function w(R,ia,ra){(R=a.one("."+R+("facebook"===ia?"Facebook":"Google")+"Row"))&&(ra?R.addClass("authProviderPending"):R.removeClass("authProviderPending"))}function k(R,ia){R=a.one("."+R+("facebook"===ia?"Facebook":"Google")+"Row");return!(!R||R.hasClass("authHidden"))}function x(R){w(R,"google",k(R,"google"));w(R,"facebook",k(R,"facebook"))}
554function y(R){Ba[R]||(Ba[R]=window.setTimeout(function(){delete Ba[R];w(R,
555"google",!1);w(R,"facebook",!1)},50))}function v(R){var ia=k(R,"google"),ra=k(R,"facebook");if(ia||ra)ia&&!f[R]||ra&&!ca[R]?(w(R,"google",ia),w(R,"facebook",ra)):y(R)}function d(R){var ia=r[R]||[];r[R]=[];ia.forEach(function(ra){ra()})}function n(R,ia,ra){ra&&(r[R]=r[R]||[],r[R].push(ra));if(document.getElementById(R)){if("google-identity-services"===R&&window.google&&window.google.accounts&&window.google.accounts.id||"facebook-jssdk"===R&&window.FB)D[R]=!0;D[R]&&d(R)}else ra=document.createElement("script"),
556ra.id=R,ra.async=!0,ra.defer=!0,ra.src=ia,ra.onload=function(){D[R]=!0;d(R)},(ia=document.getElementsByTagName("script")[0])&&ia.parentNode?ia.parentNode.insertBefore(ra,ia):document.head.appendChild(ra)}function m(R,ia,ra,ka){a.fire("auth:socialCredential",{provider:R,method:ka||R,token:ia,surface:ra||U})}function H(R,ia){a.fire("auth:socialError",{message:R,surface:ia||U})}function c(R){var ia=R&&R.offsetWidth?Math.floor(R.offsetWidth):0;ia||(ia=R&&R.getBoundingClientRect?Math.floor(R.getBoundingClientRect().width):
5570);return ia}function e(R,ia){var ra=q(ia)?200:320,ka=(q(ia),400);if(!R)return ra;R=R.getDOMNode();if(q(ia))return(ia=c(R&&R.parentNode?R.parentNode:R))&&(ia=Math.floor(ia/.8)),Math.min(ia,ka);ia=c(R);!ia&&R&&R.parentNode&&(ia=c(R.parentNode));ia||(ia=ra);return Math.min(ia,ka)}function h(R,ia){var ra=R?R.getDOMNode():null;ra=q(ia)?c(ra):0;return q(ia)&&ra?Math.max(120,Math.min(Math.floor(ra/.8),400)):e(R,ia)}function p(R){u[R]||(u[R]=window.setTimeout(function(){u[R]=null;A(R)},120))}function t(R){xa[R]||
558(xa[R]=window.setTimeout(function(){xa[R]=null;M(R)},120))}function B(){window.google&&window.google.accounts&&window.google.accounts.id&&(window.google.accounts.id.initialize({client_id:"326535015025-k17sp7rbonjmu0g6ofcduept91cvoitg.apps.googleusercontent.com",callback:function(R){var ia=R&&R.select_by?String(R.select_by):"";ia=R&&R.state||!ia||0===ia.indexOf("btn")?"google":"google_one_tap";var ra="google_one_tap"===ia?"googleOneTap":R&&R.state?String(R.state):U;if(!R||!R.credential)return H("Google sign-in failed.",
559ra);m("google",R.credential,ra,ia)}}),na=!0,b.forEach(function(R){R()}),b=[],A(U))}function F(){na?A(U):qa||(qa=!0,n("google-identity-services","https://accounts.google.com/gsi/client",B))}function S(R){na?R():(b.push(R),F())}function A(R){var ia=a.one("#"+R+"GoogleButton");if(ia){var ra=e(ia,R),ka="continue_with:large:"+ra+":"+R;q(R)&&!ra?(w(R,"google",!0),p(R)):na?(f[R]!==ka&&(f[R]&&ia.setHTML(""),window.google.accounts.id.renderButton(ia.getDOMNode(),{theme:"filled_black",size:"large",type:"standard",
560shape:"rectangular",text:"continue_with",state:R,width:ra}),f[R]=ka),v(R)):w(R,"google",!0)}}function M(R){var ia=a.one("#"+R+"FacebookButton"),ra=a.one("."+R+"FacebookRow");if(ia&&ra&&!ra.hasClass("authHidden"))if(P&&window.FB&&window.FB.XFBML){var ka=h(ra,R),ha="continue_with:large:"+ka;q(R)&&!ka?(w(R,"facebook",!0),t(R)):ca[R]===ha?v(R):(ca[R]&&ia.setHTML(""),ia.setAttribute("data-button-type","continue_with"),ia.setAttribute("size","large"),ia.setAttribute("data-size","large"),ia.setAttribute("use-continue-as",
561"true"),ia.setAttribute("data-use-continue-as","true"),ia.setAttribute("data-width",ka),window.FB.XFBML.parse(ra.getDOMNode(),function(){ca[R]=ha;v(R)}))}else w(R,"facebook",!0)}function J(){N||(N=!0,window.fbAsyncInit=function(){window.FB.init({appId:"36118710531060897",cookie:!1,xfbml:!1,version:"v24.0"});P=!0;M(U)},window.wocgFacebookLogin=function(R){U=R||U;if(!P||!window.FB)return H("Facebook sign-in is not ready.",U);window.FB.getLoginStatus(function(ia){if(!ia||!ia.authResponse||!ia.authResponse.accessToken)return H("Facebook sign-in failed.",
562U);m("facebook",ia.authResponse.accessToken,U,"facebook")})},n("facebook-jssdk","https://connect.facebook.net/en_US/sdk.js"))}function G(){ua?(A(U),M(U)):(ua=!0,F(),J())}function E(R){U=R||U;A(U);M(U)}function L(R){R=parseInt(R,10);return isNaN(R)?0:R}function T(R,ia){return a.wocg.getCookie(R).then(function(ra){return null===ra||"undefined"===typeof ra?ia:ra})}function ma(R,ia){return a.wocg.setCookie(R,ia,{path:"/",domain:a.wocg.DOMAIN,expires:new Date(Date.now()+10*base.YEAR)})}function ea(){return T(ta.promptCount,
5630).then(function(R){return L(R)})}function ba(R,ia){return T(R,null).then(function(ra){ra=ra?new Date(ra):null;return!ra||isNaN(ra.getTime())?!0:Date.now()-ra.getTime()>=ia})}function X(){var R=!1;a.all("#ModalConfirm, #ModalInput, #ModalGameOptions, #ModalTablePreview, #ModalInvitePlayers, #ModalRules, #ModalLegalConsentScreen, #ModalError").each(function(ia){ia?(ia=ia.getDOMNode?ia.getDOMNode():ia)?(ia=window.getComputedStyle?window.getComputedStyle(ia):null,ia=!ia||"none"!==ia.display&&"hidden"
563!==
564ia.visibility&&"0"!==ia.opacity?!0:!1):ia=!1:ia=!1;ia&&(R=!0)});return R}function I(){var R=a.wocg.Table&&a.wocg.Table.getCurrentTable?a.wocg.Table.getCurrentTable():null;return!!(R&&!R.tableLeaveSent&&0<R.gameCreatedTime)}function O(){var R;if(!(R=a.wocg.isNativeApp()||a.wocg.User&&a.wocg.User.isRegistered&&a.wocg.User.isRegistered()||a.wocg.shouldShowAuthUI&&!a.wocg.shouldShowAuthUI()||a.wocg.isSourceArkadium&&a.wocg.isSourceArkadium()||a.wocg.isPlatformMobile&&a.wocg.isPlatformMobile()||a.wocg.deviceType&&
565"mobile"===a.wocg.deviceType()||a.wocg.isMobile&&a.wocg.isMobile()||I()||a.wocg.Table&&a.wocg.Table.isFindingTable&&a.wocg.Table.isFindingTable()||a.one("#loginModal.visible, #registerModal.visible, #forgotPasswordModal.visible")||X()))a:{try{R=window.sessionStorage?"true"===window.sessionStorage.getItem("googleOneTapPrompted"):!1;break a}catch(ia){}R=!1}return R?Promise.resolve(!1):Promise.all([T("gamesPlayed",0),ea(),ba(ta.lastPromptedAt,2592E5),ba(ta.lastUserCancelledAt,12096E5)]).then(function(ia){var ra=
566L(ia[0]),ka=ia[3];return 5>ra||20<=ia[1]?!1:ia[2]&&ka})}function fa(){try{window.sessionStorage&&window.sessionStorage.setItem("googleOneTapPrompted","true")}catch(R){}return Promise.all([T("gamesPlayed",0),ea()]).then(function(R){var ia=L(R[0]);R=R[1]+1;ma(ta.lastPromptedAt,(new Date).toISOString());ma(ta.promptCount,R);a.wocg.trackEvent&&a.wocg.trackEvent("google_one_tap_requested",{gamesPlayed:ia,promptCount:R})})}var ta={lastPromptedAt:"googleOneTapLastPromptedAt",lastUserCancelledAt:"googleOneTapLastUserCancelledAt",
567promptCount:"googleOneTapPromptCount"},ua=!1,qa=!1,na=!1,b=[],f={},u={},l=null,r={},D={},N=!1,P=!1,ca={},xa={},Ba={},U="login";a.wocg.AuthProviders={ensureReady:function(R){a.wocg.isNativeApp()||(U=R||U,x(U),E(U),G())},init:G,promptGoogleOneTap:function(){return l?l:l=O().then(function(R){return R?new Promise(function(ia){S(function(){window.google&&window.google.accounts&&window.google.accounts.id?O().then(function(ra){ra?(fa(),window.google.accounts.id.prompt(function(ka){var ha={dismissedReason:null,
568momentType:null,notDisplayedReason:null,skippedReason:null};if(ka){try{ka.getMomentType&&(ha.momentType=ka.getMomentType())}catch(Ca){}try{ka.isNotDisplayed&&ka.isNotDisplayed()&&(ha.momentType=ha.momentType||"display",ka.getNotDisplayedReason&&(ha.notDisplayedReason=ka.getNotDisplayedReason()))}catch(Ca){}try{ka.isSkippedMoment&&ka.isSkippedMoment()&&(ha.momentType=ha.momentType||"skipped",ka.getSkippedReason&&(ha.skippedReason=ka.getSkippedReason()))}catch(Ca){}try{ka.isDismissedMoment&&ka.isDismissedMoment()&&
569(ha.momentType=ha.momentType||"dismissed",ka.getDismissedReason&&(ha.dismissedReason=ka.getDismissedReason()))}catch(Ca){}}ha&&a.wocg.trackEvent&&("display"!==ha.momentType||ha.notDisplayedReason||a.wocg.trackEvent("google_one_tap_shown",{momentType:ha.momentType}),!ha||"user_cancel"!==ha.skippedReason&&"tap_outside"!==ha.skippedReason&&"cancel_called"!==ha.dismissedReason||(ma(ta.lastUserCancelledAt,(new Date).toISOString()),a.wocg.trackEvent("google_one_tap_cancelled",{dismissedReason:ha.dismissedReason,
570momentType:ha.momentType,notDisplayedReason:ha.notDisplayedReason,skippedReason:ha.skippedReason})))}),ia(!0)):(l=null,ia(!1))}).catch(function(){l=null;ia(!1)}):(l=null,ia(!1))})}):(l=null,!1)}).catch(function(){l=null;return!1})},cancelGoogleOneTap:function(){window.google&&window.google.accounts&&window.google.accounts.id&&window.google.accounts.id.cancel&&window.google.accounts.id.cancel()},resetSurface:function(R){R&&(delete f[R],delete ca[R],x(R),u[R]&&(window.clearTimeout(u[R]),delete u[R]),
571xa[R]&&(window.clearTimeout(xa[R]),delete xa[R]),Ba[R]&&!0!==Ba[R]&&window.clearTimeout(Ba[R]),delete Ba[R])},setSurface:E}},"1.0",{requires:["wocg"]});
572YUI.add("wocg.Auth",function(a){function q(l,r,D){if(!l||!r)return null;var N=new a.BoxForm(r,null,[]);N.autoHide=!1;var P=D&&D.host?D.host:r,ca=r.one(".authTitle"),xa=r.one(".authDescription");qa[l]={surface:l,root:r,box:N,host:P,context:d(D),defaultTitleHTML:ca?ca.getHTML():"",defaultTitle:ca?ca.getContent():"",defaultMessage:xa?xa.getContent():""};return qa[l]}function w(l){return qa[l||b||"register"]}function k(l){qa[l]&&(b=l)}function x(l,r,D){l.forEach(function(N){var P=r&&!(-1!==u.indexOf(N)&&
573a.wocg.isNativeApp());(D?D.all(N):a.all(N)).each(function(ca){P?ca.removeClass("authHidden"):ca.addClass("authHidden")})})}function y(l,r){x(l,r,ta)}function v(l){return l&&l.ancestor?l.ancestor("#userBar")?"top_menu":l.ancestor(".gameSelector")?"game_selector":"direct":"direct"}function d(l){var r={};l&&"object"===typeof l&&(r={source:l.source,title:l.title,message:l.message,mode:l.mode});r.source||(r.source="direct");"signup"!==r.mode&&(r.mode="login");return r}function n(){return"signup"!==f.mode}
574function m(l){l&&l.updateSubmitButton&&l.updateSubmitButton()}function H(l){l&&(l.submitAttempted=!1)}function c(l){na[l]&&(clearTimeout(na[l]),delete na[l]);(l=w(l))&&l.root.all(".registerGoogleRow, .registerFacebookRow").removeClass("authFadingOut")}function e(l,r){(l=(l=w(l))?l.root.one(".registerEmailToggle"):null)&&l.set("value",r)}function h(l,r){(l=(l=w(l))?l.root.one(".socialRegisterEmailSubmit"):null)&&l.set("value",r)}function p(l,r,D){if(l=l?l.one(r):a.one(r))":"!==D.slice(-1)&&(D+=":"),
575l.setContent(D)}function t(l,r){l=w(l);p(l?l.root:null,".registerMethodTitle",r)}function B(l,r){l=w(l);p(l?l.root:null,".authUsernameTitle",r)}function F(l){if(l=w(l)){var r=l.root.one(".authTitle"),D=l.root.one(".authDescription"),N=l.context||{};r&&(N.title?r.setContent(N.title):r.setHTML(l.defaultTitleHTML||l.defaultTitle));D&&D.setContent(N.message||l.defaultMessage)}}function S(l){if(!l||!l.updateSubmitButton)return!1;l.submitAttempted=!0;return l.updateSubmitButton()}function A(){H(fa);var l=
576a.one("#loginModal .authTitle"),r=a.one("#loginModal .authDescription");l&&l.setContent(n()?"Log in":"Sign up");r&&r.setContent(n()?"Choose how you want to log in":"Choose how you want to sign up");l=n()?"Log in with username":"Sign up with email";(r=a.one("#loginEmailToggle"))&&r.set("value",l);y([".loginGoogleRow",".loginFacebookRow",".loginEmailToggleRow"],!0);y(".loginUsernameTitleRow .authUsernameInputRow .loginMethodLookupRow .loginUsernameForgotRow .loginMethodTitleRow .loginPasswordRow .loginPasswordSubmitRow .loginNoMethodsRow .loginSocialEmailRow .loginSocialSubmitRow .loginRegisterEmailPasswordRow .loginRegisterSubmitRow".split(" "),
577!1);y([".loginRegisterTosRow"],!n());
577m(fa);a.wocg.isNativeApp()&&M()}function M(){H(fa);var l=a.one("#loginModal .authTitle"),r=a.one("#loginModal .authDescription");l&&l.setContent(n()?"Log in":"Sign up");r&&r.setContent(n()?"Enter your username and password":"Choose a username for your account");y(".loginGoogleRow .loginFacebookRow .loginEmailToggleRow .loginUsernameTitleRow .loginMethodTitleRow .loginNoMethodsRow .loginSocialEmailRow .loginSocialSubmitRow .loginRegisterEmailPasswordRow .loginRegisterSubmitRow".split(" "),
578!1);y([".authUsernameInputRow"],!0);y([".loginMethodLookupRow"],!n());y([".loginPasswordRow",".loginPasswordSubmitRow"],n());y([".loginUsernameForgotRow"],n());y([".loginRegisterTosRow"],!n());m(fa);(l=a.one("#login-username"))&&ta&&ta.hasClass("visible")&&l.focus()}function J(l){if(l=w(l))k(l.surface),c(l.surface),H(l.box),l.root.removeClass("authEmailExpanded").removeClass("authSocialUsernameExpanded").removeClass("authSignupSuccess"),l.root.all("input[type='button'], input[type='submit']").each(function(r){r.set("disabled",
579!1);r.removeClass("disabled")}),F(l.surface),t(l.surface,"Sign up with"),B(l.surface,"Choose a username"),e(l.surface,"gameOverRegister"===l.surface?"Continue with email":"Sign up with email"),h(l.surface,"Finish sign up"),x([".registerMethodTitleRow",".registerProviderGroup",".registerGoogleRow",".registerFacebookRow",".registerEmailToggleRow"],!0,l.root),x(".authUsernameTitleRow .authUsernameInputRow .gameOverRegisterOpenModalRow .registerEmailPasswordRow .registerSubmitRow .socialSignupEmailRow .socialSignupEmailSubmitRow".split(" "),
580!1,l.root),x([".authTosRow"],"gameOverRegister"!==l.surface,l.root),m(l.box),a.wocg.isNativeApp()&&G(l.surface,{skipFocus:!0})}function G(l,r){r=r||{};var D=w(l);if(D&&(l=D.root.one(".registerEmailPasswordRow"),!l||l.hasClass("authHidden"))){var N="gameOverRegister"===D.surface;k(D.surface);c(D.surface);H(D.box);D.root.removeClass("authSocialUsernameExpanded");t(D.surface,"Sign up with email");B(D.surface,"Choose a username");e(D.surface,"Continue");x([".registerMethodTitleRow"],!0,D.root);m(D.box);
581var P=D.root.all(".registerGoogleRow, .registerFacebookRow");P.addClass("authFadingOut");na[D.surface]=setTimeout(function(){delete na[D.surface];x([".registerProviderGroup",".registerGoogleRow",".registerFacebookRow"],!1,D.root);P.removeClass("authFadingOut");x([".authUsernameTitleRow"],!N,D.root);x([".authUsernameInputRow",".registerEmailPasswordRow"],!0,D.root);D.root.addClass("authEmailExpanded");m(D.box);var ca=D.root.one("input[name='username']");!r.skipFocus&&ca&&ca.getDOMNode()&&null!==ca.getDOMNode().offsetParent&&
582ca.focus()},160)}}function E(l,r){var D=l.one(".background");if(D)D.on("click",r);if(l=l.one(".close"))l.on("click",r)}function L(l){if(l){var r=l.getData("modalClosingTimer");r&&(clearTimeout(r),l.setData("modalClosingTimer",null));l.removeClass("modalClosing");l.addClass("visible")}}function T(l,r){l&&(l.addClass("modalClosing"),r&&r.hide(),(r=l.getData("modalClosingTimer"))&&clearTimeout(r),l.setData("modalClosingTimer",setTimeout(function(){l.removeClass("visible");l.removeClass("modalClosing");
583l.setData("modalClosingTimer",null)},160)))}function ma(){var l=a.one("#userBar .userAvatarContainer");l&&l.removeClass("open")}function ea(){return!a.wocg.shouldShowAuthUI||a.wocg.shouldShowAuthUI()}function ba(l){ea()&&ta&&fa&&(l&&!1===l.cancelGoogleOneTap||!a.wocg.AuthProviders||!a.wocg.AuthProviders.cancelGoogleOneTap||a.wocg.AuthProviders.cancelGoogleOneTap(),f=d(l),ma(),A(),L(ta),fa.show(),l&&!1===l.loadProviders||!a.wocg.AuthProviders||a.wocg.AuthProviders.ensureReady("login"))}function X(){T(ta,
584fa)}function I(l){if(l=w(l))"register"===l.surface?T(ua,l.box):(l.host&&l.host.remove(!0),delete qa[l.surface],b="register")}function O(l){var r=l?l.root.one(".gameOverRegisterOpenModal"):null;if(r)r.on("click",function(D){D&&D.preventDefault&&D.preventDefault();ba({mode:"signup",source:l.context.source||"won_modal"})})}var fa=null,ta=null,ua=null,qa={},na={},b="register",f={source:"direct",mode:"login"},u=[".loginGoogleRow",".loginFacebookRow",".registerGoogleRow",".registerFacebookRow",".registerProviderGroup"];
585a.wocg.Auth={showLogin:ba,hideLogin:X,showRegister:function(l){if(ea()){var r=w("register");ua&&r&&(a.wocg.AuthProviders&&a.wocg.AuthProviders.cancelGoogleOneTap&&a.wocg.AuthProviders.cancelGoogleOneTap(),r.context=d(l),k("register"),ma(),J("register"),L(ua),r.box.show(),a.wocg.AuthProviders&&a.wocg.AuthProviders.ensureReady("register"))}},hideRegister:I,showRegisterSuccess:function(l,r){l=w(l);if(!l||"gameOverRegister"!==l.surface)return!1;c(l.surface);H(l.box);k(l.surface);l.root.removeClass("authEmailExpanded").removeClass("authSocialUsernameExpanded");
586l.root.addClass("authSignupSuccess");var D=l.root.one(".authTitle"),N=l.root.one(".authDescription");D&&D.setHTML(r||"<strong>Account created</strong>: Username and progress is saved.");N&&N.setContent("");x(".authUsernameTitleRow .authUsernameInputRow .registerMethodTitleRow .registerEmailPasswordRow .registerSubmitRow .socialSignupEmailRow .socialSignupEmailSubmitRow .authTosRow .errorRow".split(" "),!1,l.root);m(l.box);l.root.all("input[type='button'], input[type='submit']").each(function(P){P.set("disabled",
587!0);P.addClass("disabled")});l.box.disable();return!0},mountRegisterSurface:function(l,r){r=r||{};if(!ea())return l&&l.setHTML(""),!1;var D=r.surface||"gameOverRegister",N=a.one("#"+D+"SurfaceTemplate");if(!l||!N)return!1;qa[D]&&qa[D].host&&(qa[D].host.remove(!0),delete qa[D]);N=N.getHTML?N.getHTML():N.get("innerHTML");l.setHTML(N);N=l.one("form");if(!N)return l.setHTML(""),!1;N.addClass("authEmbeddedSurface").addClass(D+"Surface");N=q(D,N,{host:N,source:r.source||"direct",title:r.title,message:r.message});
588k(D);J(D);if(N&&l&&"gameOverRegister"===N.surface){var P=(P=l&&l.getDOMNode?l.getDOMNode():null)&&P.getBoundingClientRect?P.getBoundingClientRect().width:0;!P&&l&&l.getWidth&&(P=l.getWidth());P=P||0;P=0<P&&400>=P;var ca=N.root.one(".authTitle");P?(a.wocg.isNativeApp()&&(c(N.surface),N.root.removeClass("authEmailExpanded"),x([".authUsernameInputRow",".registerEmailPasswordRow"],!1,N.root)),l.addClass("authProviderStacked"),l.addClass("authCompactCta"),N.root.addClass("authCompactCta"),ca&&ca.setHTML("<strong>Sign up</strong>: Pick a username."),
589x(".registerMethodTitleRow .registerProviderGroup .registerGoogleRow .registerFacebookRow .registerEmailToggleRow .authTosRow".split(" "),!1,N.root),x([".gameOverRegisterOpenModalRow"],!0,N.root)):(l.removeClass("authProviderStacked"),l.removeClass("authCompactCta"),N.root.removeClass("authCompactCta"));m(N.box);l=P}else l=!1;O(N);N.box.show();N.box.blur();a.wocg.AuthProviders&&!l&&(a.wocg.AuthProviders.resetSurface&&a.wocg.AuthProviders.resetSurface(D),!1!==r.loadProviders&&a.wocg.AuthProviders.ensureReady(D));
590if(!1!==r.trackShown&&a.wocg.trackEvent){r=N.context.source||"direct";l="wocgSignupPromptShown:"+D+":"+r;N=!1;try{(N="1"===window.sessionStorage.getItem(l))||window.sessionStorage.setItem(l,"1")}catch(xa){}N||a.wocg.trackEvent("signup_prompt_shown",{source:r,surface:D})}return!0},getLoginContext:function(){return{source:f.source,title:f.title,message:f.message,mode:f.mode}},getLoginMode:function(){return f.mode},getRegisterContext:function(l){l=(l=w(l))?l.context:{source:"direct"};return{source:l.source,
591title:l.title,message:l.message}},getActiveRegisterSurface:function(){return b},resetLoginForm:A,showLoginEmailLookup:M,resetRegisterForm:J,showLoginMethods:function(l){l=l||[];var r=-1!==l.indexOf("password"),D=-1!==l.indexOf("google"),N=-1!==l.indexOf("facebook"),P=a.one("#loginModal .authTitle"),ca=a.one("#loginModal .authDescription");P&&P.setContent("Log in");ca&&ca.setContent(n()?"Choose how you want to log in":"That username already has an account");P=a.wocg.isNativeApp()&&!r&&(D||N);(ca=a.one("#loginModal .loginNoMethodsRow .authHelpText"))&&
592ca.setContent(P?"This account logs in with "+(D?"Google":"Facebook")+", which isn't available in the app. Use “Forgot password” below to set a password first.":"This account does not have a login method yet.");y([".loginMethodLookupRow"],!1);y(".loginEmailToggleRow .loginUsernameTitleRow .loginSocialEmailRow .loginSocialSubmitRow .loginRegisterEmailPasswordRow .loginRegisterSubmitRow .loginRegisterTosRow".split(" "),!1);ca=a.wocg.isNativeApp()?r?1:0:l.length;p(null,"#loginMethodTitle",r&&1===ca?"Password":
593"Log in with");y([".loginMethodTitleRow"],!!l.length&&!P);y([".loginUsernameForgotRow"],r||P);y([".loginPasswordRow",".loginPasswordSubmitRow"],r);y([".loginGoogleRow"],D);y([".loginFacebookRow"],N);y([".loginNoMethodsRow"],!l.length||P);m(fa);(l=a.one("#login-username"))&&l.blur();r&&(r=a.one("#login-password"))&&r.focus();(D||N)&&!a.wocg.isNativeApp()&&a.wocg.AuthProviders&&a.wocg.AuthProviders.ensureReady("login")},showLoginRegister:function(){var l=a.one("#loginModal .authTitle"),r=a.one("#loginModal .authDescription");
594l&&l.setContent("Sign up");r&&r.setContent(n()?"No account uses this username yet":"Enter a username, email and password");y(".loginEmailToggleRow .loginUsernameTitleRow .loginMethodLookupRow .loginUsernameForgotRow .loginMethodTitleRow .loginPasswordRow .loginPasswordSubmitRow .loginGoogleRow .loginFacebookRow .loginNoMethodsRow .loginSocialEmailRow .loginSocialSubmitRow".split(" "),!1);
594y([".authUsernameInputRow",".loginRegisterEmailPasswordRow",".loginRegisterSubmitRow",".loginRegisterTosRow"],
595!0);m(fa);(l=a.one("#login-username"))&&l.focus()},showLoginSocialUsername:function(l){l=l||{};H(fa);var r=a.one("#loginModal .authTitle"),D=a.one("#loginModal .authDescription"),N=a.one("#loginModal .loginUsernameTitle"),P=a.one("#loginModal .loginSocialSubmit"),ca="facebook"===l.provider?"Facebook":"Google";ca=n()?"We did not find an account for this "+ca+" account. Choose a username to sign up":"Choose a username to finish signing up";r&&r.setContent(l.accountChoiceRequired?"Log in":"Sign up");
596D&&D.setContent(l.message||(l.accountChoiceRequired?"Enter the username for the account you want to use.":ca));N&&N.setContent(l.accountChoiceRequired?"Account username:":"Choose a username:");P&&P.set("value",l.accountChoiceRequired?"Log in":"Finish sign up");y(".loginGoogleRow .loginFacebookRow .loginEmailToggleRow .loginMethodLookupRow .loginUsernameForgotRow .loginMethodTitleRow .loginPasswordRow .loginPasswordSubmitRow .loginNoMethodsRow .loginRegisterEmailPasswordRow .loginRegisterSubmitRow".split(" "),
597!1);y([".authUsernameInputRow",".loginSocialSubmitRow"],!0);y([".loginUsernameTitleRow"],!!l.accountChoiceRequired);y([".loginSocialEmailRow"],!!l.emailRequired);y([".loginRegisterTosRow"],!l.accountChoiceRequired);m(fa);(l=a.one("#login-username"))&&l.focus()},showRegisterNeedsEmail:function(l){if(l=w(l))k(l.surface),c(l.surface),H(l.box),l.root.removeClass("authEmailExpanded"),"gameOverRegister"===l.surface?l.root.addClass("authSocialUsernameExpanded"):l.root.removeClass("authSocialUsernameExpanded"),
598t(l.surface,"Add an email address"),h(l.surface,"Finish sign up"),x(".registerMethodTitleRow .registerProviderGroup .registerGoogleRow .registerFacebookRow .registerEmailToggleRow .registerEmailPasswordRow .registerSubmitRow".split(" "),!1,l.root),x([".authUsernameTitleRow",".authUsernameInputRow",".socialSignupEmailRow",".socialSignupEmailSubmitRow"],!0,l.root),x([".authTosRow"],!0,l.root),m(l.box),(l=l.root.one("input[name='socialEmail']"))&&l.focus()},showRegisterSocialUsername:function(l,r){if(l=
599w(l)){r=r||{};var D="gameOverRegister"===l.surface;k(l.surface);c(l.surface);H(l.box);l.root.removeClass("authEmailExpanded");D?l.root.addClass("authSocialUsernameExpanded"):l.root.removeClass("authSocialUsernameExpanded");B(l.surface,r.accountChoiceRequired?"Account username":"Choose a username");h(l.surface,r.accountChoiceRequired?"Log in":"Finish sign up");var N=l.root.one(".authTitle");N&&r.accountChoiceRequired&&N.setContent("Log in");(N=l.root.one(".authDescription"))&&D&&!r.accountChoiceRequired?
600N.setContent(""):N&&r.message&&N.setContent(r.message);x(".registerMethodTitleRow .registerProviderGroup .registerGoogleRow .registerFacebookRow .registerEmailToggleRow .registerEmailPasswordRow .registerSubmitRow".split(" "),!1,l.root);x([".authUsernameTitleRow"],!D,l.root);x([".authUsernameInputRow",".socialSignupEmailSubmitRow"],!0,l.root);x([".socialSignupEmailRow"],!!r.emailRequired,l.root);x([".authTosRow"],!r.accountChoiceRequired,l.root);m(l.box);(r=l.root.one("input[name='username']"))&&
601r.focus()}},showRegisterEmailSignup:G,showLoginError:function(l,r){fa&&fa.showError(l,r)},enableLogin:function(){fa&&fa.enable()},disableLogin:function(){fa&&fa.disable()},isLoginDisabled:function(){return!(!fa||!fa.disabled)},loginHasFieldErrors:function(){return S(fa)},showRegisterError:function(l,r,D){(D=w(D))&&D.box.showError(l,r)},enableRegister:function(l){if(l=w(l))k(l.surface),l.box.enable()},disableRegister:function(l){if(l=w(l))k(l.surface),l.box.disable()},registerHasFieldErrors:function(l){l=
602w(l);return S(l?l.box:null)},setLoginZindex:function(l){fa&&fa.setZindex(l)}};a.on("domready",function(){ta=a.one("#loginModal");var l=a.one("#loginBoxForm");l&&ta&&(fa=new a.BoxForm(l,null,[]),fa.autoHide=!1,a.all("#userBar .userDropdown .login, .gameSelector .login").on("click",function(r){r&&r.stopPropagation&&r.stopPropagation();ba({source:v(r&&r.currentTarget),mode:"login"})}),E(ta,X),A());ua=a.one("#registerModal");(l=a.one("#registerBoxForm"))&&ua&&(q("register",l,{host:ua,source:"direct"}),
603a.all("#userBar .userDropdown .register, .gameSelector .register").on("click",function(r){r&&r.stopPropagation&&r.stopPropagation();ba({source:v(r&&r.currentTarget),mode:"signup"})}),E(ua,function(){I("register")}),J("register"))})}
603,"1.0",{requires:["wocg","BoxForm","wocg.AuthProviders"]});
604YUI.add("wocg.User",function(a){function q(g){var z=!1;if("string"===typeof document.cookie){for(var K=document.cookie.split(";"),ja=[],va=0;va<K.length;va++){var Oa=K[va].split("=");try{g===Oa[0].trim()&&ja.push(Oa[1].trim())}catch(Xa){}}1<ja.length?z=ja:1==ja.length&&(z=ja[0])}return z}function w(g){window.adthrive&&window.adthrive.cmd&&"string"===typeof g&&/^[0-9a-f]{64}$/i.test(g)&&(g=g.toLowerCase(),qc!==g&&(qc=g,window.adthrive.cmd.push(function(){window.adthrive&&"function"===typeof window.adthrive.identityApi?
605window.adthrive.identityApi({source:"worldofcardgames.com",sha256:g},function(z){z&&!1===z.success&&(qc=null,window.console&&"function"===typeof window.console.warn&&window.console.warn("Raptive identity failed",z))}):qc=null})))}function k(g){window.__wocgLatestRaptiveEmailSha256=g;w(g)}async function x(){var g=!1;if(a.wocg.isSourceArkadium())return await a.wocg.getCookie("wocg-cookie");try{var z=q("wocg-cookie");if(z)if("string"===typeof z)Pa(z)&&(g=z);else if("object"===typeof z)for(var K=0;K<
606z.length;K++)if(Pa(z[K])){g=z[K];break}if(0==g&&(z=q("cookie")))if("string"===typeof z)Pa(z)&&(g=z);else if("object"===typeof z)for(K=0;K<z.length;K++)if(Pa(z[K])){g=z[K];break}}catch(Oa){(g=await a.wocg.getCookie("wocg-cookie"))||(g=await a.wocg.getCookie("cookie"))}if(0==g)try{var ja=localStorage.getItem("wocg-cookie-backup");if(Pa(ja)){var va=base.clone(Lb);va.expires=new Date(Date.now()+10*base.YEAR);a.wocg.setCookie("wocg-cookie",ja,va);a.wocg.setCookie("cookie",ja,va);g=ja}}catch(Oa){}return g}
607async function y(){rc&&(clearTimeout(rc),rc=null);if(a.wocg.isSourceArkadium()&&!window.arkadium)rc=setTimeout(y,320);else{sb=await x();Cc=!0;if(a.wocg.isSourceArkadium()&&window.arkadium){const K=await window.arkadium.auth.isUserAuthorized();window.arkadium.auth.onAuthStatusChange(ja=>{K!==ja&&location.reload()})}a.all("#userBar .logout, .gameSelector .logout, #userBar .userDropdown .logout").on("click",Qc);v();n();Ba();var g=a.one("#loginBoxForm");if(g)g.all(".forgotPasswordLink").on("click",id);
608if(g=a.one("#loginMethodLookup"))g.on("click",Wb);if(g=a.one("#loginEmailToggle"))g.on("click",xb);if(g=a.one("#login-username"))g.on("valueChange",cc),g.on("input",cc),g.on("change",cc),g.on("keydown",Db);a.one("body").delegate("click",Rc,".authRegisterSurface .registerEmailToggle");a.one("body").delegate("click",yb,".authRegisterSurface .socialRegisterEmailSubmit");a.one("body").delegate("click",jd,"#loginBoxForm .loginRegisterSubmit");a.one("body").delegate("click",kd,"#loginBoxForm .loginSocialSubmit");
609g=a.one("#forgotPasswordBoxForm");var z=a.one("#forgotPasswordModal");g&&z&&(Mb=new a.BoxForm(g,null,[]),Mb.autoHide=!1,z.one(".background").on("click",function(){Sc(z)}),z.one(".close").on("click",function(){Sc(z)}),Fa());a.SoundEffects.onClickRegisterSounds();dc="true"===await a.wocg.getCookie("isFirstGameFinished");dc=!0;gc="true"===await a.wocg.getCookie("useLegacyAvatars");(hb=Tc())||(hb=za());a.wocg.Theme.setTheme("classic");a.wocg.Theme.preloadDefaultOptions();a.wocg.TableBar.themeChangedHandler();
610hb&&hb.gameid&&hb.findTable||Uc({manual:!0})}}function v(){var g=a.one("#userBar .userAvatarContainer"),z=a.one("#userBar .userDropdown .settings");g&&(g.on("click",function(K){K.target.ancestor(".userDropdown",!0)||(a.wocg.isTouchDevice()?g.toggleClass("open"):K.target.ancestor(".userName",!0)||(g.removeClass("open"),a.wocg.MenuBar.hideMenus(),a.wocg.ProfileBox.showProfileBox()))}),a.one(document.body).on("click",function(K){K.target.ancestor(".userAvatarContainer",!0)||g.removeClass("open")}));
611if(z)z.on("click",function(K){K.stopPropagation();g.removeClass("open");a.wocg.MenuBar.hideMenus();a.wocg.ProfileBox.showProfileBox()})}function d(g){return g&&g.players?g.players.filter(function(z,K){return!z.username||g.isAIPlayer(K)}).length:0}function n(){function g(Ha,eb,gb,nb,bb){Ha=Ha.filter(Boolean);if(Ha.length){var ob=Ha.length,tb=function(){--ob;0===ob&&bb&&bb()};Ha.forEach(function(Rb){Rb.style.opacity=gb;"function"!==typeof Rb.animate?tb():Rb.animate([{opacity:eb},{opacity:gb}],{duration:nb,
612easing:"ease",fill:"none"}).finished.then(tb,tb)})}else bb&&bb()}
612function z(Ha){Ha.filter(Boolean).forEach(function(eb){eb.style.opacity=""})}var K=a.one("#userBar .friendsIcon");if(K){a.wocg.isTouchDevice()||(K.on("mouseenter",function(){Gb&&(clearTimeout(Gb),Gb=null);Bb&&(clearTimeout(Bb),Bb=null);var Ha=a.one("#userBar .activityIcon");Ha&&Ha.removeClass("open");Ha=K.hasClass("open");K.addClass("open");Ha||na();if(!Eb&&!Nb)p();else if(!Eb&&Nb)S();else if(Eb&&0<Na.length){var eb=K.one(".friendsList");
613eb&&eb.hasClass("visible")&&G(eb,Na,Ob,Ha)}}),K.on("mouseleave",function(){Gb=setTimeout(function(){var Ha=K.one(".friendsViewSlider");Ha&&Ha.hasClass("showConversation")||(Ha=K.one(".conversationInput"))&&Ha._node===document.activeElement||K.removeClass("open");Gb=null},160)}));if(a.wocg.isTouchDevice())K.on("click",function(Ha){if(!Ha.target.ancestor(".friendsDropdown",!0))if(Bb&&(clearTimeout(Bb),Bb=null),(Ha=a.one("#userBar .activityIcon"))&&Ha.removeClass("open"),Ha=K.hasClass("open"),K.toggleClass("open"),
614Ha||na(),!Ha&&!Eb&&!Nb)p();else if(!Ha&&!Eb&&Nb)S();else if(!Ha&&Eb&&0<Na.length){var eb=K.one(".friendsList");eb&&eb.hasClass("visible")&&G(eb,Na,Ob,Ha)}});a.one(document.body).on("click",function(Ha){Ha.target.ancestor(".friendsIcon",!0)||(Ha=K.one(".friendsViewSlider"),Ha&&Ha.hasClass("showConversation")||(Ha=K.one(".conversationInput"))&&Ha._node===document.activeElement||K.removeClass("open"))});a.wocg.isTouchDevice()&&window.addEventListener("scroll",function(){if(K.hasClass("open")){var Ha=
615K.one(".friendsViewSlider");Ha&&Ha.hasClass("showConversation")||(Ha=K.one(".conversationInput"))&&Ha._node===document.activeElement||K.removeClass("open")}});var ja=K.one(".friendsSearchBtn"),va=K.one(".friendsSearchCloseBtn"),Oa=K.one(".friendsSearchInput"),Xa=K.one(".friendsListHeader"),kb=null;if(ja&&Xa)ja.on("click",function(Ha){Ha.stopPropagation();var eb=ja.getDOMNode(),gb=Xa.one(".friendsListCount");gb=gb?gb.getDOMNode():null;g([eb,gb],1,0,120,function(){Xa.addClass("searching");var nb=Oa?
616Oa.getDOMNode():null,bb=va?va.getDOMNode():null;g([nb,bb],0,1,120);z([eb,gb]);Oa&&Oa.focus()})});if(va&&Xa)va.on("click",function(Ha){Ha.stopPropagation();clearTimeout(kb);hc=null;var eb=Oa?Oa.getDOMNode():null,gb=va.getDOMNode();g([eb,gb],1,0,120,function(){Xa.removeClass("searching");Oa&&Oa.set("value","");var nb=ja?ja.getDOMNode():null,bb=Xa.one(".friendsListCount");bb=bb?bb.getDOMNode():null;g([nb,bb],0,1,120);z([eb,gb]);nb=K.one(".friendsList");(bb=K.one(".friendsEmpty"))&&bb.setContent("No friends yet. Like players you enjoy playing with to see them here.");
617nb&&0<Na.length?(bb&&bb.removeClass("visible"),G(nb,Na,Ob,!1)):(nb&&nb.setContent(""),bb&&bb.addClass("visible"))})});Oa&&Oa._node&&(Oa._node.addEventListener("input",function(){var Ha=Oa.get("value").trim(),eb=K.one(".friendsList");if(eb)if(clearTimeout(kb),!Ha||2>Ha.length){hc=null;var gb=K.one(".friendsEmpty");gb&&gb.removeClass("visible");G(eb,Na,Ob,!1)}else kb=setTimeout(function(){hc=Ha;ib.send("user.search",{query:Ha})},300)}),Oa.on("click",function(Ha){Ha.stopPropagation()}));m(K);setInterval(T,
6186E4)}}function m(g){(g=g.one(".friendsList"))&&!g.getData("friendsDelegatesBound")&&(g.setData("friendsDelegatesBound",!0),g.delegate("click",H,".friendJoinBtn"),g.delegate("click",c,".friendMessageBtn"),g.delegate("click",e,".friendInviteBtn"),g.delegate("click",h,".friendItem"))}function H(g){g.stopPropagation();var z=g.currentTarget;g=z.getAttribute("data-gameid");var K=z.getAttribute("data-tablehash");z=z.getAttribute("data-username");if(K){var ja=a.one("#userBar .friendsIcon");ja&&ja.removeClass("open");
619g={gameid:g,forTable:K,practiceExemptReason:"friend"};z&&(g.friendName=z);a.fire("ModalTablePreview:show",g)}}function c(g){g.stopPropagation();var z=g.currentTarget;g=parseInt(z.getAttribute("data-userid"),10);z=z.getAttribute("data-username");ua(g,z)}function e(g){g.stopPropagation();g=g.currentTarget;if(!g.hasClass("invited")){var z=parseInt(g.getAttribute("data-userid"),10),K=a.wocg.Table.getCurrentTable();if(K){var ja=K.tableid;a.wocg.User.isUserInvited(z,ja)||(K.isTableFull()?a.fire("Notice:show",
620{message:"No available seats.",type:"warning"}):(K=d(K),0>=K?a.fire("Notice:show",{message:"No available seats.",type:"warning"}):a.wocg.User.getInvitedCount(ja)>=K*C.MAX_INVITES_PER_SEAT_MULTIPLIER?a.fire("Notice:show",{message:"Can't invite more players. Limit reached.",type:"warning"}):(ib.send("invite.send",{friendUserid:z}),a.wocg.User.addInvitedUser(z,ja),g.set("disabled",!0),g.addClass("invited"),a.CustomTooltip.showOnHover(g,"Invite sent"))))}else a.fire("Notice:show",{message:"You're not at a table.",
621type:"warning"})}}function h(g){if(!g.target.ancestor("button",!0)){var z=g.target.hasClass("friendAvatar"),K=g.target.hasClass("friendName")||g.target.ancestor(".friendName");if(z||K){var ja=g.currentTarget;g=parseInt(ja.getAttribute("data-userid"),10);z=ja.getAttribute("data-username");K=ja.getAttribute("data-avatar");ja="true"===ja.getAttribute("data-online");var va=a.one("#userBar .friendsIcon");va&&va.removeClass("open");a.fire("ModalPlayerProfile:show",{userid:g,username:z,avatar:K,online:ja})}}}
622function p(g,z){z=z||{};Nb?g||(Dc=!0):(Nb=!0,g?(Xb=Math.max(Xb||0,Na?Na.length:0),Xb=Math.min(Xb+C.SOCIAL_PAGE_SIZE,Ec)):(z.silent||z.keepVisible&&Na&&0!==Na.length||S(),Xb=z.preserveCurrentLimit?Math.min(Math.max(Xb||0,Na?Na.length:0,C.SOCIAL_PAGE_SIZE),Ec):C.SOCIAL_PAGE_SIZE),ib.send("friend.list",{limit:Xb,offset:0}))}function t(){Na&&0!==Na.length||(Eb=!1);p(!1,{keepVisible:!0,preserveCurrentLimit:!0})}function B(){T();F()}function F(){if(pb){var g=a.one("#userBar .friendsIcon");if(g){var z=g.one(".conversationInput");
623g=g.one(".conversationSendBtn");if(z){var K=a.wocg.Table.getCurrentTable(),ja=!1;K&&0<K.gameCreatedTime&&K.players&&(ja=K.players.some(function(va){return va.userid===pb}));ja?(z.set("disabled",!0),z.set("placeholder","Can't message player at table"),z.set("value","")):(z.set("disabled",!1),z.set("placeholder","Type a message..."));g&&O(g,z.get("value"))}}}}function S(){var g=a.one("#userBar .friendsIcon");if(g){var z=g.one(".friendsLoading"),K=g.one(".friendsEmpty");g=g.one(".friendsList");z&&z.addClass("visible");
624K&&K.removeClass("visible");g&&g.removeClass("visible")}}function A(g){Jb=0;g.forEach(function(z){z.online&&Jb++});xa(Fb);M()}function M(){var g=a.one("#userBar .friendsIcon");g&&(g=g.one(".friendsListCount"))&&(0<Fb?g.setContent(Fb+" unread"):0<Jb?g.setContent(Jb+" online"):0<Na.length?g.setContent("All offline"):g.setContent(""))}function J(){var g=a.one("#userBar .activityIcon");g&&(g=g.one(".activityCount"))&&(0<vb?g.setContent(vb+" unread"):0<mb.length?g.setContent("All seen"):g.setContent(""))}
625function G(g,z,K,ja){var va=g?g.ancestor(".friendsListScrollable",!0):null,Oa=(va=va&&va._node?va._node:null)?va.scrollTop:0;g.setContent("");
625if(0<z.length){var Xa='<div class="friendsListItems">';z.forEach(function(Ha){var eb=Xa,gb=gc;gb=a.wocg.buildAssetImageURL("pieces/avatar/"+(gb?"legacy":"classic")+"/"+Ha.avatar+(gb?".png":".svg"));var nb=Ha.online?"online":"offline",bb=a.wocg.Table.getCurrentTable(),ob=bb?bb.tableid:null,tb=utils.buildFriendStatusText(Ha,C,a.Escape.html,{showSolo:!0,showDuration:!0,
626formatGameDuration:L,formatLastSeen:E,showFriend:!0,currentTableId:ob}),Rb="";ob=ob&&ob===Ha.tableid;var Hb=!1===Ha.playing&&!!Ha.startedAt,Sb=Ha.playing&&Ha.startedAt&&3E5<Date.now()-Ha.startedAt,ld=0===Ha.openSeats;!Ha.gameid||!Ha.tableid||ob||Ha.playing&&Ha.solo||Hb||Sb||ld||!Ha.tableHash||(Hb=Ha.username?' data-username="'+a.Escape.html(Ha.username)+'"':"",Rb+='<button class="button small lightblue friendJoinBtn" data-gameid="'+Ha.gameid+'" data-tablehash="'+Ha.tableHash+'"'+Hb+">Play</button>");
627Ha.online&&bb&&!ob&&(ob=!bb.isTableFull(),Hb=d(bb),bb=a.wocg.User.isUserInvited(Ha.userid,bb.tableid),ob&&0<Hb&&(Rb+='<button class="friendInviteBtn'+(bb?" invited":"")+'" data-userid="'+Ha.userid+'" data-username="'+a.Escape.html(Ha.username)+'"'+(bb?" disabled":"")+'><svg class="inviteIcon" width="24" height="24" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><g stroke="none" fill="currentColor"><path d="M10.5,4 C12.4329966,4 14,5.56700338 14,7.5 C14,9.43299662 12.4329966,11 10.5,11 C8.56700338,11 7,9.43299662 7,7.5 C7,5.56700338 8.56700338,4 10.5,4 Z"/><path d="M10.5,12 C11.2729518,12 12.014392,12.130752 12.7020558,12.3706786 C13.0330811,12.5017851 13.0728455,12.9175403 12.8787066,13.1178442 C11.7215265,14.216024 11,15.7704023 11,17.4939037 C11,17.7627477 11.0175562,18.0274765 11.0515807,18.2869986 C11.1237183,18.6705508 11,19 10.6096792,19 C9.30135546,18.9998058 7.33886979,18.9995589 4.72222222,18.9992591 C4.3233499,18.9992591 4,18.6858916 4,18.2993332 C4,14.8203075 6.91014913,12 10.5,12 Z"/><path d="M17,12.5 C19.7614237,12.5 22,14.7385763 22,17.5 C22,19.2273899 21.1240355,20.7501873 19.7920786,21.64842 C18.9947552,22.1861116 18.0340339,22.5 17,22.5 C14.2385763,22.5 12,20.2614237 12,17.5 C12,14.7385763 14.2385763,12.5 17,12.5 Z M17,14 C16.4477153,14 16,14.4477153 16,15 L16,16.5 L14.5,16.5 C13.9477153,16.5 13.5,16.9477153 13.5,17.5 C13.5,18.0522847 13.9477153,18.5 14.5,18.5 L16,18.5 L16,20 C16,20.5522847 16.4477153,21 17,21 C17.5522847,21 18,20.5522847 18,20 L18,18.5 L19.5,18.5 C20.0522847,18.5 20.5,18.0522847 20.5,17.5 C20.5,16.9477153 20.0522847,16.5 19.5,16.5 L18,16.5 L18,15 C18,14.4477153 17.5522847,14 17,14 Z"/></g></svg><svg class="inviteSuccessIcon" width="24" height="24" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><g stroke="none" fill="currentColor"><path d="M10.5,4 C12.4329966,4 14,5.56700338 14,7.5 C14,9.43299662 12.4329966,11 10.5,11 C8.56700338,11 7,9.43299662 7,7.5 C7,5.56700338 8.56700338,4 10.5,4 Z"/><path d="M10.5,12 C11.2729518,12 12.014392,12.130752 12.7020558,12.3706786 C13.0330811,12.5017851 13.0728455,12.9175403 12.8787066,13.1178442 C11.7215265,14.216024 11,15.7704023 11,17.4939037 C11,17.7627477 11.0175562,18.0274765 11.0515807,18.2869986 C11.1237183,18.6705508 11,19 10.6096792,19 C9.30135546,18.9998058 7.33886979,18.9995589 4.72222222,18.9992591 C4.3233499,18.9992591 4,18.6858916 4,18.2993332 C4,14.8203075 6.91014913,12 10.5,12 Z"/><path d="M17,12.5 C19.7614237,12.5 22,14.7385763 22,17.5 C22,20.2614237 19.7614237,22.5 17,22.5 C14.2385763,22.5 12,20.2614237 12,17.5 C12,14.7385763 14.2385763,12.5 17,12.5 Z M19.5303301,15.4696699 C19.2374369,15.1767767 18.7625631,15.1767767 18.4696699,15.4696699 L15.75,18.189 L15.5303301,17.9696699 C15.2374369,17.6767767 14.7625631,17.6767767 14.4696699,17.9696699 C14.1767767,18.2625631 14.1767767,18.7374369 14.4696699,19.0303301 L15.2196699,19.7803301 C15.5125631,20.0732233 15.9874369,20.0732233 16.2803301,19.7803301 L19.5303301,16.5303301 C19.8232233,16.2374369 19.8232233,15.7625631 19.5303301,15.4696699 Z"/></g></svg></button>'));
628bb=Ha.isFriend?Ha.unread||0:0;ob=(Hb=0<bb)?" hasUnread":"";Sb="";Hb&&(Hb=String(bb),Sb=["unreadBadge"],/^\d{2,}$/.test(Hb)&&Sb.push("hasBubble"),/^\d{3,}$/.test(Hb)&&Sb.push("threeDigits"),Sb='<span class="'+Sb.join(" ")+'">'+Hb+"</span>");Rb+='<button class="friendMessageBtn'+ob+'" data-userid="'+Ha.userid+'" data-username="'+a.Escape.html(Ha.username)+'" data-unread="'+bb+'"><svg width="24" height="24" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><g transform="translate(4, 5)"><path d="M0,6.31600352 C0.0246024122,7.89620564 0.69996589,9.39074089 1.8573915,10.4521186 C2.02574158,10.6311035 2.02574158,10.8870087 1.92465791,11.0589389 C1.76186103,11.3836125 1.45385751,11.9978787 1.00064734,12.9017374 C0.799591064,13.3047333 0.872464819,13.5557113 1.05450439,13.7599792 C1.23654397,13.9642472 1.56671143,13.928772 1.81564664,13.8162542 C3.10778631,13.2148388 4.1057005,12.7503681 4.80938922,12.4228421 C5.1050415,12.2859497 5.41470315,12.3574765 5.56228603,12.3920218 C6.25155802,12.5533622 6.95774154,12.634239 7.66667029,12.632673 C11.8940057,12.632673 15.3333408,9.79933823 15.3333408,6.31600316 C15.3333408,2.83266808 11.8940057,0 7.66667029,0 C3.43933507,0 0,2.83333511 0,6.31600352 Z"/></g></svg>'+
629Sb+"</button>";nb='<div class="friendStatus"><div class="onlineIndicator '+nb+'"></div><span>'+tb+"</span></div>";Ha='<div class="friendItem" data-userid="'+Ha.userid+'" data-username="'+a.Escape.html(Ha.username)+'" data-avatar="'+Ha.avatar+'" data-online="'+Ha.online+'"><img class="friendAvatar" src="'+gb+'" alt="" /><div class="friendInfo"><div class="friendName">'+a.Escape.html(Ha.username)+"</div>"+nb+'</div><div class="friendActions">'+Rb+"</div></div>";Xa=eb+Ha});Xa+="</div>";g.append(Xa)}if(K){z=
630a.Node.create('<div class="loadMoreContainer"><button class="loadMoreBtn">Load more</button></div>');K=z.one(".loadMoreBtn");var kb=function(Ha){"touchend"===Ha.type&&Ha.preventDefault();Ha.stopPropagation();!Nb&&Ob&&p(!0)};g.append(z);K.on("click",kb);if(a.wocg.isTouchDevice())K.on("touchend",kb)}z=!1;try{z=!!localStorage.getItem("wocg_friends_tooltips_seen")}catch(Ha){}if(!z){g.all(".friendMessageBtn").each(function(Ha){var eb=0<parseInt(Ha.getAttribute("data-unread"),10);a.CustomTooltip.showOnHover(Ha,
631eb?"Read message":"Send message")});g.all(".friendJoinBtn").each(function(Ha){a.CustomTooltip.showOnHover(Ha,"Join table")});g.all(".friendInviteBtn").each(function(Ha){var eb=Ha.hasClass("invited");a.CustomTooltip.showOnHover(Ha,eb?"Invite sent":"Invite to table")});try{localStorage.setItem("wocg_friends_tooltips_seen","1")}catch(Ha){}}va&&(va.scrollTop=ja?Math.min(Oa,Math.max(0,va.scrollHeight-va.clientHeight)):0)}function E(g){if(!g)return null;var z=Date.now();g=Math.floor((z-g)/6E4);z=Math.floor(g/
63260);var K=Math.floor(z/24),ja=Math.floor(K/7),va=Math.floor(K/30),Oa=Math.floor(K/365);return 1>g?"Just now":60>g?g+(1===g?" minute ago":" minutes ago"):24>z?z+(1===z?" hour ago":" hours ago"):7>K?K+(1===K?" day ago":" days ago"):5>ja?ja+(1===ja?" week ago":" weeks ago"):12>va?va+(1===va?" month ago":" months ago"):Oa+(1===Oa?" year ago":" years ago")}function L(g){if(!g)return null;var z=Date.now();g=Math.floor((z-g)/1E3);z=Math.floor(g/60);var K=Math.floor(z/60);return 1<=K?K+"h":1<=z?z+"m":g+"s"}
633function T(){var g=a.one("#userBar .friendsIcon");g&&g.hasClass("open")&&((g=g.one(".friendsList"))&&g.hasClass("visible")&&G(g,Na,Ob,!0),ma())}function ma(){if(pb){var g=a.one("#userBar .friendsIcon");if(g&&(g=g.one(".conversationOnlineIndicator"))){for(var z=null,K=0;K<Na.length;K++)if(Na[K].userid===pb){z=Na[K];break}z=z?z.online:!1;g.removeClass("online").removeClass("offline").addClass(z?"online":"offline")}}}function ea(){vb=0;ka(0);ib.send("activity.panel.viewed",{})}function ba(g,z){if(g)try{g=
634Fc+g;var K={text:z,timestamp:Date.now()};localStorage.setItem(g,JSON.stringify(K))}catch(ja){}}function X(g){if(!g)return"";try{g=Fc+g;var z=localStorage.getItem(g);if(!z)return"";var K=JSON.parse(z);return Date.now()-K.timestamp>md?(localStorage.removeItem(g),""):K.text||""}catch(ja){return""}}function I(g){if(g)try{localStorage.removeItem(Fc+g)}catch(z){}}function O(g,z){g&&(z&&z.trim()?g.set("disabled",!1):g.set("disabled",!0))}function fa(g){g&&g._node&&(g=g._node,g.value?(g.style.height="auto",
635g.style.height=Math.max(32,Math.min(g.scrollHeight,72))+"px"):g.style.height="32px")}function ta(g){var z=window.innerHeight;window.visualViewport&&window.visualViewport.height&&(z=window.visualViewport.height);var K=0;g&&g._node&&(K=g._node.getBoundingClientRect().top);g=8;a.wocg.safeAreaBottom&&(g+=a.wocg.safeAreaBottom());return Math.max(160,Math.min(z-K-g,480))}function ua(g,z){pb=g;var K=a.one("#userBar .friendsIcon");if(K){var ja=K.one(".friendsViewSlider"),va=K.one(".friendsDropdownContent"),
636Oa=K.one(".friendsListView"),Xa=K.one(".conversationTitle"),kb=K.one(".conversationMessages"),Ha=K.one(".conversationInput"),eb=K.one(".conversationBack"),gb=K.one(".conversationSendBtn");if(ja){if(Xa){for(var nb=null,bb=0;bb<Na.length;bb++)if(Na[bb].userid===g){nb=Na[bb];break}nb=(bb=nb?nb.online:!1)?"User is online":"User is offline";z='<span class="conversationOnlineIndicator '+(bb?"online":"offline")+'"></span>'+a.Escape.html(z);Xa.setContent(z);(Xa=Xa.one(".conversationOnlineIndicator"))&&a.CustomTooltip.showOnHover(Xa,
637nb)}kb&&kb.setContent('<div class="messagesLoading">Loading messages...</div>');F();Ha&&!Ha.get("disabled")&&(kb=X(g),Ha.set("value",kb),fa(Ha),(K=K.one(".conversationSendBtn"))&&O(K,Ha.get("value")));va&&Oa&&(ic=Oa=Oa.get("offsetHeight"),K=ta(va),va.setStyle("height",Oa+"px"),va.get("offsetHeight"),va.setStyle("height",K+"px"));ja.addClass("showConversation");eb&&(eb.detach("click"),eb.on("click",function(tb){tb.stopPropagation();qa()}));gb&&(gb.detach("click"),gb.on("click",function(tb){tb.stopPropagation();
638b()}));if(Ha){Ha.detach("keydown");Ha.on("keydown",function(tb){13!==tb.keyCode||tb.shiftKey||(tb.preventDefault(),b())});var ob=Ha._node;ob._inputHandler&&ob.removeEventListener("input",ob._inputHandler);ob._inputHandler=function(){var tb=ob.value;tb.trim()?ba(pb,tb):I(pb);O(gb,tb);fa(Ha)};ob.addEventListener("input",ob._inputHandler)}ib.send("friend.message.history",{friendUserid:parseInt(g,10)});ib.send("friend.message.read",{friendUserid:parseInt(g,10)})}}}function qa(){if(pb){var g=a.one("#userBar .friendsIcon");
639g&&(g=g.one(".conversationInput"))&&(g=g.get("value"))&&g.trim()&&ba(pb,g)}pb=null;if(g=a.one("#userBar .friendsIcon")){var z=g.one(".friendsViewSlider"),K=g.one(".friendsDropdownContent");K&&ic&&(K.setStyle("height",ic+"px"),setTimeout(function(){K&&K.setStyle("height","");ic=null},250));z&&z.removeClass("showConversation")}}function na(){if(pb){var g=a.one("#userBar .friendsIcon");if(g){var z=g.one(".conversationInput");z&&(g=z.get("value"))&&g.trim()&&ba(pb,g)}}ic=pb=null;if(g=a.one("#userBar .friendsIcon")){z=
640g.one(".friendsViewSlider");var K=g.one(".friendsDropdownContent"),ja=g.one(".friendsListView"),va=g.one(".friendsConversationView");z&&z.hasClass("showConversation")&&(ja&&ja.setStyle("transition","none"),va&&va.setStyle("transition","none"),z.removeClass("showConversation"),z.get("offsetHeight"),setTimeout(function(){ja&&ja.setStyle("transition","");va&&va.setStyle("transition","")},0));K&&K.setStyle("height","");(z=g.one(".conversationMessages"))&&z.setContent("");
640if(z=g.one(".conversationInput"))z.set("value",
641""),z._node&&(z._node.style.height="");z=g.one(".friendsListHeader");K=g.one(".friendsSearchInput");z&&z.removeClass("searching");K&&K.set("value","");(g=g.one(".conversationSendBtn"))&&g.setAttribute("disabled","disabled");for(var Oa in ub)ub.hasOwnProperty(Oa)&&clearTimeout(ub[Oa]);ub={};Yb={}}}function b(){if(pb){var g=a.one("#userBar .friendsIcon");if(g){var z=g.one(".conversationInput"),K=g.one(".conversationSendBtn");if(z&&(g=z.get("value").trim())){var ja="pending-"+ ++nd;z.set("value","");
642I(pb);O(K,"");fa(z);l(g,!0,null,ja);z=parseInt(pb,10);Yb[ja]={text:g,friendUserid:z};ib.send("friend.message.send",{friendUserid:z,text:g,pendingId:ja});a.wocg.trackEvent("friend_message_sent",{});ub[ja]=setTimeout(function(){delete ub[ja];u(ja,"Message timed out. Please try again.")},C.REQUEST_TIMEOUT)}}}}function f(g,z){ub[g]&&(clearTimeout(ub[g]),delete ub[g]);var K=a.one("#userBar .friendsIcon");if(K&&(g=K.one('.messageWrapper[data-pending-id="'+g+'"]'))){var ja=g.one(".messageItem");ja&&ja.removeClass("pending");
643g.removeAttribute("data-pending-id");if(z&&(g.setAttribute("data-timestamp",z),(ja=g.one(".messageTime"))?ja.setContent(utils.formatTimeAgo(z)):g.append('<span class="messageTime">'+utils.formatTimeAgo(z)+"</span>"),(K=K.one(".conversationMessages"))&&(K=K.all(".messageWrapper"))&&1<K.size())){ja=-1;for(var va=0;va<K.size();va++)if(K.item(va)===g){ja=va;break}0<ja&&(K=K.item(ja-1),g=g.hasClass("sent"),K.hasClass("sent")===g&&(g=parseInt(K.getAttribute("data-timestamp"),10))&&3E5>=z-g&&(z=K.one(".messageTime"))&&
644z.setStyle("display","none"))}}}function u(g,z){ub[g]&&(clearTimeout(ub[g]),delete ub[g]);var K=a.one("#userBar .friendsIcon");K&&((g=K.one('.messageWrapper[data-pending-id="'+g+'"]'))&&g.remove(),a.fire("Notice:show",{message:z||"Failed to send message.",type:"error"}))}function l(g,z,K,ja){var va=a.one("#userBar .friendsIcon");if(va&&(va=va.one(".conversationMessages"))){var Oa=va.one(".messagesLoading");Oa&&Oa.remove();(Oa=va.one(".messagesEmpty"))&&Oa.remove();Oa=z?"sent":"received";var Xa=ja?
645" pending":"",kb="";K?kb='<span class="messageTime">'+utils.formatTimeAgo(K)+"</span>":ja&&(kb='<span class="messageTime">Sending...</span>');g=a.Node.create('<div class="messageWrapper '+Oa+'"><div class="messageItem'+Xa+'">'+a.Escape.html(g)+"</div>"+kb+"</div>");ja&&g.setAttribute("data-pending-id",ja);K&&g.setAttribute("data-timestamp",K);(ja=va.all(".messageWrapper"))&&0<ja.size()&&(ja=ja.item(ja.size()-1))&&ja.hasClass("sent")===z&&(z=parseInt(ja.getAttribute("data-timestamp"),10),K&&z&&3E5>=
646K-z&&(K=ja.one(".messageTime"))&&K.setStyle("display","none"));va.append(g);va._node.scrollTop=va._node.scrollHeight}}function r(g,z,K){var ja=a.one("#userBar .friendsIcon");if(ja){var va=ja.one(".conversationMessages");va&&(va.setContent(""),g&&0!==g.length?(g.slice().reverse().forEach(function(Oa){var Xa=Oa.fromUserid!==z?"sent":"received",kb=Oa.timestamp?'<span class="messageTime">'+utils.formatTimeAgo(Oa.timestamp)+"</span>":"";Xa=a.Node.create('<div class="messageWrapper '+Xa+'"><div class="messageItem">'+
647a.Escape.html(Oa.text)+"</div>"+kb+"</div>");Oa.timestamp&&Xa.setAttribute("data-timestamp",Oa.timestamp);va.append(Xa)}),D(va),va._node.scrollTop=va._node.scrollHeight):K?va.setContent('<div class="messagesEmpty">Not yet friends. You can send 1 message per hour.</div>'):va.setContent('<div class="messagesEmpty">No messages yet.<br>Start a conversation!</div>'))}}function D(g){var z=g.all(".messageWrapper");!z||2>z.size()||z.each(function(K,ja){if(ja!==z.size()-1&&(ja=z.item(ja+1))){var va=K.hasClass("sent"),
648Oa=ja.hasClass("sent");va===Oa&&(va=parseInt(K.getAttribute("data-timestamp"),10),ja=parseInt(ja.getAttribute("data-timestamp"),10),va&&ja&&3E5>=ja-va&&(K=K.one(".messageTime"))&&K.setStyle("display","none"))}})}function N(g,z){g=g?"menuFriendsNotificationTransition":"menuFriendsNotification";return a.wocg.buildAssetImageURL("images/"+(z?g+"Hover.json":g+".json"))}function P(g,z){g=g?"menuActivityNotificationTransition":"menuActivityNotification";return a.wocg.buildAssetImageURL("images/"+(z?g+"Hover.json":
649g+".json"))}function ca(g){var z=a.one(g.containerSelector),K=a.one(g.iconSelector);if(2===Tb&&z&&window.lottie){var ja=z.getDOMNode();ja.innerHTML="";z.addClass("playing");var va=window.lottie.loadAnimation({container:ja,renderer:"svg",loop:!1,autoplay:!0,path:g.animationPath,rendererSettings:{preserveAspectRatio:"xMidYMid meet",viewBoxOnly:!0}}),Oa=!1,Xa=!1,kb=function(){if(!Oa&&(Oa=!0,z.removeClass("playing"),K&&K.removeClass("lottie-playing"),ja.innerHTML="",!Xa&&g.onBadgeReady&&(Xa=!0,g.onBadgeReady()),
650g.onComplete))g.onComplete()};va.addEventListener("DOMLoaded",function(){K&&K.addClass("lottie-playing");if(g.badge){var Ha=g.isTransition?"bounce":"bounceIncrement",eb=g.badge.getDOMNode();g.badge.removeClass("bounce").removeClass("bounceIncrement");var gb=function(){eb.removeEventListener("animationend",gb);g.badge.removeClass("bounce").removeClass("bounceIncrement")};eb.addEventListener("animationend",gb);g.badge.addClass(Ha)}Ha=g.isTransition?120:250;g.onBadgeReady&&setTimeout(function(){Xa||
651(Xa=!0,g.onBadgeReady())},Ha)});va.addEventListener("complete",kb);va.addEventListener("data_failed",kb);setTimeout(kb,1100)}else{if(g.onBadgeReady)g.onBadgeReady();if(g.onComplete)g.onComplete()}}function xa(g){var z=g||0,K=a.one("#userBar .friendsIcon"),ja=a.one("#userBar .friendsBadge");if(ja){var va=Vc.friends,Oa=Fb;g=!K||!K.hasClass("hasNotification")&&!K.hasClass("hasOnlineCount");if((Oa=!Kb&&0<z&&z>Oa&&K&&!K.hasClass("disabled"))&&va.playing)va.queue.push(z);else{Fb=z;M();z=function(){var Ha=
652function(gb,nb){var bb=/^\d{2,}$/.test(gb),ob=/^\d{3,}$/.test(gb);ja.setContent(gb);ja.addClass("visible");nb?ja.addClass("unread"):ja.removeClass("unread");bb?ja.addClass("hasBubble"):ja.removeClass("hasBubble");ob?ja.addClass("threeDigits"):ja.removeClass("threeDigits")},eb=function(){ja.setContent("");ja.removeClass("visible").removeClass("unread").removeClass("hasBubble").removeClass("threeDigits")};Kb?0<Jb?Ha(String(Jb),!1):eb():0<Fb?Ha(String(Fb),!0):0<Jb?Ha(String(Jb),!1):eb()};var Xa=function(){K&&
653(Kb?0<Jb?K.addClass("hasOnlineCount").removeClass("hasNotification"):K.removeClass("hasOnlineCount").removeClass("hasNotification"):0<
653Fb?K.addClass("hasNotification").removeClass("hasOnlineCount"):0<Jb?K.addClass("hasOnlineCount").removeClass("hasNotification"):K.removeClass("hasOnlineCount").removeClass("hasNotification"))},kb=function(){va.playing=!1;Xa();if(0<va.queue.length){var Ha=va.queue[va.queue.length-1];va.queue=[];xa(Ha)}};Oa?(va.playing=!0,0<Fb&&ja.addClass("unread"),Oa=K&&K.hasClass("open"),
654ca({containerSelector:"#userBar .friendsLottieContainer",iconSelector:"#userBar .friendsIcon",animationPath:N(g,Oa),badge:ja,isTransition:g,onBadgeReady:z,onComplete:kb})):(z(),Xa())}}}function Ba(){var g=a.one("#userBar .activityIcon");if(g){a.wocg.isTouchDevice()||(g.on("mouseenter",function(){Bb&&(clearTimeout(Bb),Bb=null);Gb&&(clearTimeout(Gb),Gb=null);var K=a.one("#userBar .friendsIcon");K&&K.removeClass("open");g.addClass("open");ea();if(!Ub&&!ec)U();else if(Ub){K=g.one(".activityList");var ja=
655g.one(".activityEmpty"),va=g.one(".activityLoading");va&&va.removeClass("visible");0===mb.length?(ja&&ja.addClass("visible"),K&&K.removeClass("visible")):(ja&&ja.removeClass("visible"),K&&(K.addClass("visible"),ra(K,mb)))}}),g.on("mouseleave",function(){Bb=setTimeout(function(){g.removeClass("open");Bb=null},160)}));if(a.wocg.isTouchDevice())g.on("click",function(K){if(!K.target.ancestor(".activityDropdown",!0)&&(Bb&&(clearTimeout(Bb),Bb=null),Gb&&(clearTimeout(Gb),Gb=null),(K=a.one("#userBar .friendsIcon"))&&
656K.removeClass("open"),K=g.hasClass("open"),g.toggleClass("open"),!K))if(ea(),!Ub&&!ec)U();else if(Ub){K=g.one(".activityList");var ja=g.one(".activityEmpty"),va=g.one(".activityLoading");va&&va.removeClass("visible");0===mb.length?(ja&&ja.addClass("visible"),K&&K.removeClass("visible")):(ja&&ja.removeClass("visible"),K&&(K.addClass("visible"),ra(K,mb)))}});a.one(document.body).on("click",function(K){K.target.ancestor(".activityIcon",!0)||g.removeClass("open")});a.wocg.isTouchDevice()&&window.addEventListener("scroll",
657function(){g.hasClass("open")&&g.removeClass("open")});var z=g.one(".activityList");z&&(z.delegate("click",function(K){K.stopPropagation();var ja=K.target.ancestor(".activityBtn",!0)||K.target;K=ja.getAttribute("data-action");if(ja=ja.ancestor(".activityItem")){var va=ja.getData("gameid"),Oa=ja.getData("tableHash"),Xa=parseInt(ja.getData("fromUserid"),10);ja=ja.getData("fromUsername");if("preview"===K)va&&Oa&&(K={gameid:va,forTable:Oa,practiceExemptReason:"invite"},ja&&(K.friendName=ja),a.fire("ModalTablePreview:show",
658K));else if(("like"===K||"addFriendAndReply"===K)&&Xa){va="like"===K?"activity_feed":"activity_message";ib.send("user.rated.player",{ratedUserid:Xa,type:"like"});a.wocg.trackEvent("player_rated",{type:"like",source:va});Gc.push(Xa);if(mb)for(va=0;va<mb.length;va++)mb[va].fromUserid===Xa&&(mb[va].isFriend=!0);z.all(".activityItem").each(function(kb){parseInt(kb.getData("fromUserid"),10)===Xa&&kb.all('.activityBtn[data-action="like"], .activityBtn[data-action="addFriendAndReply"]').remove()});"addFriendAndReply"===
659K&&a.wocg.User.openConversation(Xa,ja)}}},".activityBtn"),z.delegate("click",function(K){K.stopPropagation();var ja=K.target.ancestor(".activityItem");if(ja){K=parseInt(ja.getData("fromUserid"),10);var va=ja.getData("fromUsername");ja=ja.getData("fromAvatar");K&&a.fire("ModalPlayerProfile:show",{userid:K,username:va,avatar:ja})}},".activityUsername"))}}function U(g){ec=!0;var z=a.one("#userBar .activityIcon");if(z&&!g){var K=z.one(".activityLoading"),ja=z.one(".activityEmpty");z=z.one(".activityList");
660K&&K.addClass("visible");ja&&ja.removeClass("visible");z&&z.removeClass("visible")}ib.send("activity.list",{limit:C.SOCIAL_PAGE_SIZE,offset:g?mb.length:0})}function R(g,z){var K=g.one(".loadMoreContainer");K&&K.remove();var ja=g.one(".activityListItems");if(ja){var va=Date.now();z.forEach(function(Oa){-1!==C.ACTIVITY_TYPES.indexOf(Oa.type)&&(Oa=ia(Oa,va,C.TABLE_ACTIVITY_EXPIRY_MS))&&ja.append(Oa)});sc&&(z=a.Node.create('<div class="loadMoreContainer"><button class="loadMoreBtn">Load more</button></div>'),
661g.append(z),z.one(".loadMoreBtn").on("click",function(Oa){Oa.stopPropagation();U(!0)}))}}function ia(g,z,K){var ja=a.wocg.buildAssetImageURL("pieces/avatar/classic/"+(g.fromAvatar||"m1")+".svg"),va="";var Oa='<span class="activityUsername" data-userid="'+g.fromUserid+'">'+a.Escape.html(g.fromUsername)+"</span>";z="invite"===g.type&&(g.expired||z-g.timestamp>K);var Xa=g.isFriend||-1!==Gc.indexOf(g.fromUserid);K=a.wocg.Table.getCurrentTable();K="invite"===g.type&&K&&K.gameid===g.gameid&&g.tableHash&&
662K.tableHash&&String(K.tableHash)===String(g.tableHash);switch(g.type){case "liked":Oa+=" liked you";va=Xa?"":'<button class="activityBtn primary" data-action="like">Add friend</button>';break;case "friends":Oa+=" is now a friend";va="";break;case "invite":Xa=g.gameid?C.GAME_NAMES[g.gameid]||g.gameid:"";Oa+=Xa?" invited you to play "+a.Escape.html(Xa):" invited you to play a game";z||K||!g.tableHash||(va='<button class="activityBtn primary" data-action="preview">Join table</button>');break;case "message":Oa+=
663" sent you a message:";va=Xa?"":'<button class="activityBtn primary" data-action="addFriendAndReply">Add friend &amp; reply</button>';break;default:return null}Xa=utils.formatTimeAgo(g.timestamp);K?Xa+=" · Playing":z&&(Xa+=" · Invitation expired");z="message"===g.type&&g.text?'<div class="activityMessageText"><em>'+a.Escape.html(g.text)+"</em></div>":"";ja=a.Node.create('<div class="activityItem" data-activity-id="'+g.id+'"><img class="activityAvatar" src="'+ja+'" alt="" /><div class="activityContent"><div class="activityText">'+
664Oa+"</div>"+z+'<div class="activityTime">'+Xa+"</div>"+(va?'<div class="activityActions">'+va+"</div>":"")+"</div></div>");ja.setData("activityId",g.id);ja.setData("fromUserid",g.fromUserid);ja.setData("fromUsername",g.fromUsername);ja.setData("fromAvatar",g.fromAvatar);g.gameid&&ja.setData("gameid",g.gameid);g.tableHash&&ja.setData("tableHash",g.tableHash);return ja}function ra(g,z){g.setContent("");var K=Date.now(),ja=a.Node.create('<div class="activityListItems"></div>');g.append(ja);z.forEach(function(va){-1!==
665C.ACTIVITY_TYPES.indexOf(va.type)&&(va=ia(va,K,C.TABLE_ACTIVITY_EXPIRY_MS))&&ja.append(va)});
665sc&&(z=a.Node.create('<div class="loadMoreContainer"><button class="loadMoreBtn">Load more</button></div>'),g.append(z),z.one(".loadMoreBtn").on("click",function(va){va.stopPropagation();U(!0)}))}function ka(g){var z=a.one("#userBar .activityIcon");if(z){var K=z.one(".activityBadge");if(K){var ja=Vc.activity,va=vb,Oa=!z.hasClass("hasNotification");if((va=!Kb&&0<g&&g>va&&!z.hasClass("disabled"))&&ja.playing)ja.queue.push(g);
666else{vb=g;J();g=function(){var Ha=function(gb){var nb=/^\d{2,}$/.test(gb),bb=/^\d{3,}$/.test(gb);K.setContent(gb);K.addClass("visible");nb?K.addClass("hasBubble"):K.removeClass("hasBubble");bb?K.addClass("threeDigits"):K.removeClass("threeDigits")},eb=function(){K.setContent("");K.removeClass("visible").removeClass("hasBubble").removeClass("threeDigits")};Kb?eb():0<vb?Ha(String(vb)):eb()};var Xa=function(){Kb?z.removeClass("hasNotification"):0<vb?z.addClass("hasNotification"):z.removeClass("hasNotification")},
667kb=function(){ja.playing=!1;Xa();if(0<ja.queue.length){var Ha=ja.queue[ja.queue.length-1];ja.queue=[];ka(Ha)}};va?(ja.playing=!0,va=z.hasClass("open"),ca({containerSelector:"#userBar .activityLottieContainer",iconSelector:"#userBar .activityIcon",animationPath:P(Oa,va),badge:K,isTransition:Oa,onBadgeReady:g,onComplete:kb})):(g(),Xa())}}}}function ha(g){var z=a.one("#userBar .userAvatarContainer");z&&(z.all(".userDropdown .loggedIn, .userDropdown .loggedOut").each(function(K){K.getDOMNode().style.display=
668""}),z.removeClass("loggedIn").removeClass("loggedOut"),z.addClass(g?"loggedIn":"loggedOut"))}function Ca(){var g=a.one("#userBar .userName");g&&Zb&&(g.setContent(Zb),g.removeClass("loading"))}function Fa(){var g=window.location.pathname.match(Wc);g&&3===g.length&&g[1].length&&g[2].length&&(Pb.removeClass("modalClosing"),Pb.setStyle("display","block").setStyle("opacity","0"),$b=new a.BoxForm(a.one("#resetPasswordBoxForm")),$b.autoHide=!1,$b.show(),requestAnimationFrame(function(){Pb.setStyle("opacity",
669"1")}),Hc())}function za(){if(a.wocg.hasPendingNewGameReload&&a.wocg.hasPendingNewGameReload())return!1;var g=window.location.pathname.split("/");if(!g)return!1;var z=g[1];var K=g[2];if(2===g.length&&""===g[0]&&""!==g[1]){var ja=g[1].match(/^(.+)-tutorial\.html$/);if(ja&&C.GAME_DIRS_INV[ja[1]])return{gameid:C.GAME_DIRS_INV[ja[1]],platform:a.wocg.queryParams().platform,tutorial:!0}}if(!z.startsWith("how-to-play")&&2===g.length&&""===g[0]&&""!==g[1])return z=g[1],g={gameid:C.GAME_DIRS_INV[z],findTable:!a.wocg.isPlatformMobile(),
670platform:a.wocg.queryParams().platform,table:a.wocg.queryParams().table};if(!z.startsWith("how-to-play")&&(3>g.length||4<g.length)||!(z.startsWith("how-to-play")||!g[0].length&&g[1].length&&g[2].length)||!z.startsWith("how-to-play")&&4===g.length&&g[3].length)return!1;-1<z.indexOf("how-to-play")&&(K="tutorial",z=z.replace("how-to-play-",""));if(0>["tutorial"].indexOf(K)||!C.GAME_DIRS_INV[z])return!1;g={gameid:C.GAME_DIRS_INV[z],platform:a.wocg.queryParams().platform};g[K]=!0;return g}function Ia(){Ga();
671a.wocg.isSourceArkadium()||Q();Xc||(Xc=!0,document.addEventListener("prerenderingchange",function(){La();a.wocg.PageReset&&a.wocg.PageReset.shouldReconnectOnActivation&&a.wocg.PageReset.shouldReconnectOnActivation()||!ib.isConnectionEstablished()?ib.reconnectNow():W()},{once:!0}))}function Ga(){null===jc&&(jc=setInterval(function(){document.prerendering?ib.send("user.keepalive",{}):La()},6E4))}function La(){null!==jc&&(clearInterval(jc),jc=null)}function Pa(g){if("string"===typeof g&&96===g.length)try{for(var z=
6720;z<g.length;z++){var K=g[z];if("a"!=K&&"b"!=K&&"c"!=K&&"d"!=K&&"e"!=K&&"f"!=K&&"0"!=K&&"1"!=K&&"2"!=K&&"3"!=K&&"4"!=K&&"5"!=K&&"6"!=K&&"7"!=K&&"8"!=K&&"9"!=K)return!1}return!0}catch(ja){return!1}else return!1}function Ka(g,z){var K=new Promise(function(ja,va){setTimeout(function(){va(Error("Timed out in "+z+"ms."))},z)});return Promise.race([g,K])}function Sa(g){"string"===typeof g&&g&&(window.__wocgIpapiCountry=g,"function"===typeof window.__wocgStartCmpPreloadForCountry&&window.__wocgStartCmpPreloadForCountry(g))}
673function Q(){return null!==Ic?Ic:Ic=async function(){try{var g=await a.wocg.getCookie("ipapi_addressId");if(g){var z=await a.wocg.getCookie("ipapi_country");z="string"===typeof z?z.toUpperCase():"";return{addressId:g,vpn:!1,country:z}}var K=await Ka(fetch("https://api.ipapi.is?key=d4f25977f90ac082").then(function(Xa){if
673(!Xa.ok)throw Error("ipapi "+Xa.status);return Xa.json()}),640),ja=K.ip?btoa(encodeURIComponent(K.ip)):"",va=!!(K.is_vpn||K.is_proxy||K.is_tor),Oa=K.location&&"string"===typeof K.location.country_code?
674K.location.country_code.toUpperCase():"";!va&&ja&&a.wocg.setCookie("ipapi_addressId",ja,{path:"/",domain:a.wocg.DOMAIN,expires:new Date(Date.now()+base.DAY)});Oa&&(a.wocg.setCookie("ipapi_country",Oa,{path:"/",domain:a.wocg.DOMAIN,expires:new Date(Date.now()+base.DAY)}),Sa(Oa));return{addressId:ja,vpn:va,country:Oa}}catch(Xa){return console.error("Error in IP detection:",Xa),null}}()}async function W(){if(30<=tc++)ya(),a.fire("ModalError:show",{message:"There was a problem connecting to the server. Please try later.",
675fatal:!0});else if(null!==Vb&&(clearTimeout(Vb),Vb=null),null===kc&&(kc=setTimeout(Ua,3E3)),1<tc&&a.fire("ModalProgress:show",{id:"user",message:"Retrying user initialization..."}),a.wocg.isSourceArkadium()&&!window.arkadium&&!a.wocg.IS_DEV||!Cc)Vb=setTimeout(W,1E3);else{try{var g=await x();g&&(sb=g)}catch(K){}g={};Qb={cookieFetched:!!Cc,cookiePresent:!!sb,cookieLength:sb?sb.length:0,cookieLooksHex96:Pa(sb),sentCookie:!1,removedInvalidCookie:!1};Qb.initAttempt=tc;Qb.createdAt=Date.now();sb&&(Pa(sb)?
676(base.info("valid data"),g.cookie=sb,Qb.sentCookie=!0):(base.info("invalid data, removing "+sb),a.wocg.removeCookie("wocg-cookie",Lb),a.wocg.removeCookie("cookie",Lb),a.wocg.removeCookie("o",Lb),sb=null,Qb.removedInvalidCookie=!0));if(!a.wocg.isSourceArkadium()){var z=null;try{z=await Q()}catch(K){console.error("Error in IP detection:",K)}z&&(g.addressId=z.addressId,g.vpn=z.vpn)}(z=za())&&z.tutorial&&z.gameid&&(g.suppressVenueRejoin=!0);ib.send("user.init",g);Vb=setTimeout(W,3E3)}}function aa(){if(hb){var g=
677a.wocg.Table.getCurrentTable();g&&0<g.gameCreatedTime||a.fire("menu:clicked",{gameid:hb.gameid,tutorial:!1,lobby:!1,solo:!0,command:"findTable"},!1);hb=null}}function oa(){if(hb){var g=Da(hb.table);g&&a.fire("ModalTablePreview:show",{forTable:g,practiceExemptReason:"invite"});hb=null}}function Da(g){return void 0===g||null===g?null:(g=String(g).trim())?(new RegExp("^[A-Za-z0-9]{"+C.TABLE_HASH_LENGTH+"}$")).test(g)?g:/^[0-9a-f]{16}$/i.test(g)?g.toLowerCase():null:null}function Ma(){Jc=null;hb&&(Yc(hb)||
678(a.fire("gameSelectors.hide"),a.fire("comm:table.create",Object.assign({},hb,{standalone:!0}))),hb=null)}function ya(){null!==kc&&(clearTimeout(kc),kc=null);null!==Vb&&(clearTimeout(Vb),Vb=null);a.fire("ModalProgress:hide",{id:"user"})}function Ra(){a.wocg.AuthProviders&&a.wocg.AuthProviders.promptGoogleOneTap&&(null!==uc&&clearTimeout(uc),uc=setTimeout(function(){uc=null;a.wocg.AuthProviders.promptGoogleOneTap()},1E3))}function da(g){if((zb=g)&&(0==zb.vpn||null==zb.vpn)||lc||0<mc)nc=!0;zb&&zb.banned&&
679(nc=!1);nc||(vc=Object.fromEntries(Object.keys(C.RANKED).map(z=>[z,!1])),wc=xc=!0,Kc=!1,yc=!0)}function Aa(g){return g?g&&("invite"===g.practiceExemptReason||"friend"===g.practiceExemptReason||"rejoin"===g.practiceExemptReason)||g.rematchId||g&&g.privateTableName&&g.privateTableName!==C.ANONYMOUS_TABLE_NAME?!0:!!g&&!0===g.privateTable&&g.privateTableName===C.ANONYMOUS_TABLE_NAME&&!g.ranked:!1}function Qa(g){return"dbTokenMismatch"===g.newUseridReason&&!(!Qb||!Qb.sentCookie)}async function Ta(g){if(g.cookie){sb=
680g.cookie;var z=base.clone(Lb);z.expires=new Date(Date.now()+10*base.YEAR);a.wocg.setCookie("wocg-cookie",sb,z);a.wocg.setCookie("cookie",sb,z);if(!a.wocg.isSourceArkadium()&&!Qa(g))try{localStorage.setItem("wocg-cookie-backup",sb)}catch(Oa){}}Zb=g.username;k(g.emailSha256);lc=!!g.isExperienced;Lc=parseInt(g.finishedGames,10)||0;ac={};g.finishedGamesByGameid&&C.GAMEIDS.forEach(function(Oa){ac[Oa]=parseInt(g.finishedGamesByGameid[Oa],10)||0});Zc=g.ratedPlayerCounts?(parseInt(g.ratedPlayerCounts.disliked,
68110)||0)+(parseInt(g.ratedPlayerCounts.liked,10)||0)+(parseInt(g.ratedPlayerCounts.muted,10)||0):(g.dislikedPlayers&&g.dislikedPlayers.userids&&g.dislikedPlayers.userids.length||0)+(g.likedPlayers&&g.likedPlayers.userids&&g.likedPlayers.userids.length||0)+(g.mutedPlayers&&g.mutedPlayers.userids&&g.mutedPlayers.userids.length||0);zc=!!g.consented;(dc=!!g.isFirstGameFinished||dc)&&a.wocg.setCookie("isFirstGameFinished",!0,{path:"/",domain:a.wocg.DOMAIN,expires:new Date(Date.now()+base.YEAR)});if(g.isLimitedMatchmaking){var K=
682od;if(z=g.limitedMatchmakingInfo){var ja=function(Oa){return Oa+(1===Oa?" game":" games")},va=[];z.mutes&&va.push("muted you in "+ja(z.mutes));z.dislikes&&va.push("disliked you in "+ja(z.dislikes));K=[];va.length&&K.push("other players "+va.join(" and "));z.stalls&&K.push("you played slowly in "+ja(z.stalls));z.toxicity&&K.push("chat moderation flagged you in "+ja(z.toxicity));ja=2<K.length?K.slice(0,-1).join(", ")+", and "+K[K.length-1]:K.join(" and ");K="Your ability to play with other people is limited. Your score is "+
683z.score+" and needs to reach "+C.REPUTATION_LIMITED_THRESHOLD+"."+(K.length?" In your last "+z.gamesPlayed+" games, "+ja+".":"")+" Finish "+z.gamesToGo+" more "+(1===z.gamesToGo?"game":"games")+" at your practice table to return to regular matchmaking."}(new a.ModalConfirm("Matchmaking limited",K,"","OK")).show()}Ea(g.isRegistered);Ca();Eb||Nb||p(!1,{silent:!0});zc&&a.fire("user:consented",{})}
683function Va(g,z,K,ja,va){bc=z;mc=va||0;va=base.clone(Lb);delete va.expires;bc&&Zb?a.wocg.setCookie("username_cookie",
684Zb,va):a.wocg.removeCookie("username_cookie",va);vc=g||{};xc=K;wc=ja;z&&a.fire("user:loggedIn");ha(z)}function Ua(){a.fire("ModalProgress:show",{id:"user",message:"Initializing user...",percentage:100})}function Ea(g){if((g=a.all("#userBar li"))&&g.each){var z;g.each(function(K){var ja=K.getAttribute("class");0!==ja.indexOf("ad")&&(K.addClass("displayInline"),K.removeClass("disabled"),0===ja.indexOf("userBarP")&&(z=K))});z&&z.remove();(g=a.all("#menuBar li"))&&g.addClass&&g.removeClass("disabled");
685(g=(g=a.one("#footerBar"))?g.one(".findTables"):null)&&g.removeClass("disabled")}}function $a(g){return(g=a.one(g))?g.get("value").trim():""}function qb(g){return g&&g.currentTarget&&g.currentTarget.hasClass&&g.currentTarget.hasClass("disabled")}function la(g){return"register"===g||"gameOverRegister"===g}function sa(g){return"loginRegister"===g}function Z(g){return sa(g)?"register":la(g)?"register":"login"}function pa(){return jb.register&&jb.register.surface?jb.register.surface:ab&&ab.surface?ab.surface:
686a.wocg.Auth&&a.wocg.Auth.getActiveRegisterSurface?a.wocg.Auth.getActiveRegisterSurface():"register"}function wa(g){return(g=g&&g.currentTarget&&g.currentTarget.ancestor?g.currentTarget.ancestor("form.authRegisterSurface"):null)?g.getAttribute("data-auth-surface"):pa()}function Ja(g){return a.one("form[data-auth-surface='"+(g||"register")+"']")}function Za(g,z){return(z=(g=Ja(g))?g.one("input[name='"+z+"']"):null)?z.get("value"):""}function Wa(g){var z=a.wocg.Auth,K=null;z&&(la(g)&&z.getRegisterContext?
687K=z.getRegisterContext(g):"login"!==g&&"loginRegister"!==g||!z.getLoginContext||(K=z.getLoginContext()));K||(K={});K.source||(K.source="direct");return K}function cb(){return a.wocg.Auth&&a.wocg.Auth.getLoginMode?a.wocg.Auth.getLoginMode():"login"}function db(g,z){return"google_one_tap"===g?"google_one_tap":"google"===g?"google":"facebook"===g?"facebook":"register"!==Z(z)||"email"!==g&&"password"!==g?"login"!==z||"email"!==g&&"password"!==g?g||"unknown":"password":"email"}function Ya(g,z,K){var ja=
688Z(g),va=Wa(g);jb[ja]={method:db(z,g),surface:g,source:K&&K.source?K.source:va.source||"direct",fallbackEmailRequired:!(!K||!K.fallbackEmailRequired)};"register"!==ja||K&&!1===K.trackPromptClicked||a.wocg.trackEvent("signup_prompt_clicked",{method:jb[ja].method,source:jb[ja].source})}function fb(g){return jb[g]&&jb[g].source?jb[g].source:"direct"}function lb(){jb.register||Ya(ab?ab.surface:"register",ab?ab.provider:"unknown",{trackPromptClicked:!1});jb.register.fallbackEmailRequired=!0}function wb(g){var z=
689Z(g),K=jb[z]||{};"login"===z&&!jb.login&&jb.register&&(K=jb.register,jb.register=null);var ja="register"===z?"signup_completed":"login_completed";g={method:db(K.method,K.surface||g),source:K.source||Wa(g).source||"direct"};"register"===z&&(g.fallbackEmailRequired=!!K.fallbackEmailRequired);a.wocg.trackEvent(ja,g);jb[z]=null}function Wb(g){g&&g.preventDefault&&g.preventDefault();Cb=null;(g=$a("#login-username"))?ib.send("user.authMethods.lookup",{username:g}):a.wocg.Auth.showLoginError("Enter a username first.",
690{subtle:!0})}function Db(g){var z=a.one(".loginMethodLookupRow");13===g.keyCode&&z&&!z.hasClass("authHidden")&&(g.preventDefault(),Wb(g))}function cc(){var g=$a("#login-username");Cb&&g!==Cb&&(Cb=null,rb=!1,a.wocg.Auth.showLoginEmailLookup())}function xb(g){g&&g.preventDefault&&g.preventDefault();qb(g)||(rb=!1,Cb=null,"signup"===cb()?(rb=!0,a.wocg.Auth.showLoginRegister()):a.wocg.Auth.showLoginEmailLookup())}function yb(g){g&&g.preventDefault&&g.preventDefault();var z=wa(g);if(!ab)a.wocg.Auth.showRegisterError("Start with Google or Facebook again.",
691{subtle:!0},z);else if(!(a.wocg.Auth.registerHasFieldErrors&&a.wocg.Auth.registerHasFieldErrors(z)||qb(g))){g=Za(z,"socialEmail").trim();var K={username:Za(z,"username").trim()};g&&(K.email=g);a.wocg.Auth.disableRegister(z);ib.send("user.socialAuth.complete",K);ab.accountChoiceRequired||ib.send("user.legal.consent",{consented:!0})}}function oc(g){return(g=(g=Ja(g))?g.one(".registerEmailPasswordRow"):null)&&!g.hasClass("authHidden")}function $c(g){a.wocg.Auth.registerHasFieldErrors&&a.wocg.Auth.registerHasFieldErrors(g)||
692(Ya(g,"email"),a.wocg.Auth.disableRegister(g),ib.send("user.register",{username:Za(g,"username").trim(),password:a.sha1.hash(C.PWD_SALT+Za(g,"password")),email:Za(g,"email").trim()}),ib.send("user.legal.consent",{consented:!0}))}function Rc(g){g&&g.preventDefault&&g.preventDefault();qb(g)||(g=wa(g),oc(g)?$c(g):"gameOverRegister"===g?(g=Wa(g),rb=!0,Cb=null,a.wocg.Auth.showLogin({source:g.source||"won_modal",mode:"signup",loadProviders:!1}),a.wocg.Auth.showLoginRegister()):a.wocg.Auth.registerHasFieldErrors&&
693a.wocg.Auth.registerHasFieldErrors(g)||a.wocg.Auth.showRegisterEmailSignup(g))}function ad(){if(!ab)a.wocg.Auth.showLoginError("Start with Google or Facebook again.",{subtle:!0});else if(!a.wocg.Auth.loginHasFieldErrors||!a.wocg.Auth.loginHasFieldErrors()){var g=$a("#login-social-email"),z={username:$a("#login-username")};g&&(z.email=g);a.wocg.Auth.disableLogin();ib.send("user.socialAuth.complete",z);ab.accountChoiceRequired||ib.send("user.legal.consent",{consented:!0})}}function kd(g){g&&g.preventDefault&&
694g.preventDefault();a.wocg.Auth.isLoginDisabled&&a.wocg.Auth.isLoginDisabled()||ad()}function bd(){if(!a.wocg.Auth.loginHasFieldErrors||!a.wocg.Auth.loginHasFieldErrors()){rb=!0;Ya("loginRegister","email");a.wocg.Auth.disableLogin();var g=ib,z=g.send,K=Cb||$a("#login-username"),ja=a.sha1,va=ja.hash,Oa=C.PWD_SALT;var Xa=(Xa=a.one("#login-register-password"))?Xa.get("value"):"";z.call(g,"user.register",{username:K,password:va.call(ja,Oa+Xa),email:$a("#login-register-email")});ib.send("user.legal.consent",
695{consented:!0})}}
695function jd(g){g&&g.preventDefault&&g.preventDefault();a.wocg.Auth.isLoginDisabled&&a.wocg.Auth.isLoginDisabled()||bd()}function cd(g,z){z=z||"register";if(g=Ja(z)){var K=g?g.one(".socialSignupEmailSubmitRow"):null;K&&!K.hasClass("authHidden")?yb({preventDefault:function(){},currentTarget:K}):oc(z)?$c(z):(a.wocg.Auth.enableRegister(z),Rc({preventDefault:function(){},currentTarget:g.one(".registerEmailToggle")}))}}function Qc(g){(g=a.one("#userBar .userAvatarContainer"))&&g.removeClass("open");
696a.wocg.Table.getCurrentTable()&&a.fire("tableBar:leaveTableLinkClicked");a.wocg.removeCookie("wocg-cookie",Lb);a.wocg.removeCookie("cookie",Lb);a.wocg.removeCookie("o",Lb);try{localStorage.removeItem("wocg-cookie-backup")}catch(z){}sb=null;setTimeout(()=>{a.wocg.goToUrl("/","",!1)},640)}function id(g){a.wocg.Auth.hideLogin();if((g=a.one("#forgotPasswordModal"))&&Mb){var z=g.getData("modalClosingTimer");z&&(clearTimeout(z),g.setData("modalClosingTimer",null));g.removeClass("modalClosing");g.addClass("visible");
697Mb.show()}}function Sc(g){if(g){g.addClass("modalClosing");Mb&&Mb.hide();var z=g.getData("modalClosingTimer");z&&clearTimeout(z);g.setData("modalClosingTimer",setTimeout(function(){g.removeClass("visible");g.removeClass("modalClosing");g.setData("modalClosingTimer",null)},160))}}function Hc(){if(Pb){var g=Pb.one(".formContainer");g&&g.setStyle("margin-top",(window.innerHeight-g.getHeight())/2+"px")}}function dd(g){g=parseInt(g,10);return 0===g||1===g||2===g?g:null}function ed(){try{var g=a.HistoryHash.getUrl(),
698z=g.indexOf("?");if(-1<z){g=g.substring(z+1,g.length);var K=a.QueryString.parse(g);"number"===typeof K.tutorial&&(K.tutorial=!!K.tutorial);"number"===typeof K.solo&&(K.solo=!!K.solo);"number"===typeof K.ranked&&(K.ranked=!!K.ranked)}}catch(ja){}return K}function Tc(){try{a.config.useHistoryHTML5=!0;var g=new a.History,z=g.get();if(z&&z["!tutorial"]){var K;try{"hearts"===z["!tutorial"]?K={gameid:"hearts",tutorial:!0}:"pinochledd"===z["!tutorial"]?K={gameid:"pinochledd",tutorial:!0}:"pinochle"===z["!tutorial"]?
699K={gameid:"pinochle",tutorial:!0}:"spades"===z["!tutorial"]?K={gameid:"spades",tutorial:!0}:"euchre"===z["!tutorial"]&&(K={gameid:"euchre",tutorial:!0}),g.add({"!tutorial":null})}catch(va){}var ja=K}}catch(va){}return ja}function Uc(g){g=a.wocg.hasActiveGame()?320:0;setTimeout(function(){if(!(a.wocg.Table.isFindingTable()||null!==a.wocg.Table.getCurrentTable()&&!a.wocg.Table.getCurrentTable().tableLeaveSent&&0<a.wocg.Table.getCurrentTable().gameCreatedTime)){var z=!a.wocg.shouldShowAuthUI||a.wocg.shouldShowAuthUI();
700a.all(".gameSelector .login, .gameSelector .register").setStyle("display",z&&!bc?"inline":"none");a.all(".gameSelector .logout").setStyle("display",z&&bc?"inline":"none");ha(bc);(hb=Tc())||(hb=za());hb&&(hb.tutorial&&hb.gameid&&-1<C.GAMEIDS.indexOf(hb.gameid)?null===Jc&&(Yc(hb)?hb=null:Jc=setTimeout(Ma,640)):hb.findTable&&hb.gameid&&-1<C.GAMEIDS.indexOf(hb.gameid)&&hb.table?Da(hb.table)&&setTimeout(oa,640):hb.findTable&&hb.gameid&&-1<C.GAMEIDS.indexOf(hb.gameid)&&setTimeout(aa,640));Ra()}},g)}function Yc(g){var z=
701a.wocg.Table.getCurrentTable();return!(!z||!z.tutorial||z.gameid!==g.gameid)}var ib=a.wocg.Comm,Jc=null,sb=null,Cc=!1,Qb=null,zc=!1,Zb=null,rc=null,kc=null,Vb=null,Ic=null,Xc=!1,jc=null,Lb={path:"/",domain:a.wocg.DOMAIN},Mb=null,bc=!1,lc=!1,dc=!1,Lc=0,ac={},Zc=-1,gc=!1,vc={},xc=!1,nc=!1,wc=!1,Kb=!1,Mc={},mc=0,Kc=!1,fd=!1,Ac=2,Nc=1,gd=!1,Tb=2,Oc=2,fc=1,hd=!1,pc=!1,yc=!1,Pc={},Pb=a.one("#resetPassword"),$b=null,ab=null,rb=!1,Cb=null,uc=null,jb={login:null,register:null}
701,Wc=/\/reset\/([^\/]+)\/(.+)/,
702od="Your ability to play with other people is limited. Your score is based on mutes, dislikes, slow play, and chat toxicity from your last "+C.MAX_QUIT_HISTORY+" games. Finish games at your practice table to raise your score and return to regular matchmaking.",tc=0,zb={},hb,qc=null,Gb=null,Bb=null;window.__wocgSendRaptiveIdentity=function(){w(window.__wocgLatestRaptiveEmailSha256);return!0};var Eb=!1,Nb=!1,Dc=!1,Na=[],Ub=!1,ec=!1,mb=[],vb=0,sc=!1,Bc=0,pb=null,ic=null,Fc="wocg_msg_draft_",Ib=null,
703Ab=[],md=3E5,Gc=[],Ob=!1,Xb=0,Ec=1E3,hc=null,Jb=0,Fb=0,Vc={friends:{playing:!1,queue:[]},activity:{playing:!1,queue:[]}},nd=0,ub={},Yb={};a.wocg.User={getAddressId:function(){return zb?zb.addressId:""},getBannedStrikes:function(){return zb?zb.strikes:0},getSiteSupporterLevel:function(){return mc},setSiteSupporterLevel:function(g){mc=g},isBanned:function(){return!!zb&&!!zb.banned},isVPN:function(){return zb?1==zb.vpn:!1},isRegistered:function(){return bc},isMultiplayerAllowed:function(){return nc&&
704this.isFirstGameFinished()},isBlockedByFirstGameRequirement:function(){return nc&&!this.isFirstGameFinished()},isExperienced:function(){return lc},getFinishedGames:function(){return Lc},getRatedPlayerCount:function(){return Zc},getFinishedGamesByGameid:function(){return base.clone(ac,!0)},getFinishedGameCount:function(g){return parseInt(ac[g],10)||0},hasFinishedGame:function(g){return 0<(parseInt(ac[g],10)||0)},requiresGamePractice:function(g,z){return a.wocg.IS_DEV||0<mc||lc?!1:!this.hasFinishedGame(g)&&
705!Aa(z)},isPracticeExemptTableRequest:function(g){return Aa(g)},getGamePracticeRequiredMessage:function(g){g=C.GAME_NAMES[g];return g?"Finish a "+g+" practice game against bots before joining a multiplayer table.":"Finish a practice game against bots before joining a multiplayer table."},addFinishedGame:function(g){-1!==C.GAMEIDS.indexOf(g)&&(Lc++,ac[g]=(parseInt(ac[g],10)||0)+1,a.fire("user:finishedGame",{gameid:g}))},isFirstGameFinished:function(){return dc||a.wocg.IS_DEV},getIsForbiddenMessaging:function(){return xc},
706setIsForbiddenMessaging:function(g){xc=g},getIsMessagingOff:function(){return wc},setIsMessagingOff:function(g){wc=g},getSocialNotificationsOff:function(){return Kb},setSocialNotificationsOff:function(g){Kb=g},openConversation:function(g,z){if(g=parseInt(g,10)){var K=a.one("#userBar .friendsIcon");K&&K.addClass("open");ua(g,z||"")}},isAllowedRanked:function(g){return vc[g]},setIsAllowedRanked:function(g,z){vc[g]=z},getNoRank_Game:function(g){return!!Mc[g]},setNoRank_Game:function(g,z){Mc[g]=z},setIsExperienced:function(g){lc=
707g},setIsFirstGameFinished:function(g){a.wocg.setCookie("isFirstGameFinished",g,{path:"/",domain:a.wocg.DOMAIN,expires:new Date(Date.now()+base.YEAR)});dc=g},getCookie:function(){return sb},getInitCookieDiagnostics:function(){return Qb?base.clone(Qb,!0):null},getUsername:function(){return Zb},getNoCensor:function(){return Kc},setNoCensor:function(g){Kc=g},getMuteSound:function(){return fd},setMuteSound:function(g){fd=g},getSoundEffectsMode:function(){return Ac},setSoundEffectsMode:function(g){g=parseInt(g,
70810);if(0===g||1===g||2===g)Ac=g},getAvatarEmotionsMode:function(){return Nc},setAvatarEmotionsMode:function(g){g=parseInt(g,10);if(0===g||1===g||2===g)Nc=g},getDisableAnimations:function(){return gd},setDisableAnimations:function(g){gd=g},getAnimationsMode:function(){return Tb},setAnimationsMode:function(g){g=parseInt(g,10);if(0===g||1===g||2===g){var z=Tb;Tb=g;z!==Tb&&a.fire("animationsMode:changed",Tb)}},getGamePromptsMode:function(){return Oc},setGamePromptsMode:function(g){g=dd(g);null!==g&&(Oc=
709g)},getGameHintsMode:function(){return fc},setGameHintsMode:function(g){g=parseInt(g,10);if(0===g||1===g){var z=fc;fc=g;z!==fc&&a.fire("gameHintsMode:changed",fc)}},getGlobalMute:function(){return yc},setGlobalMute:function(g){yc=g},getFanCardsCustom:function(){return hd},setFanCardsCustom:function(g){hd=g},getPileCardsCustom:function(){return pc},setPileCardsCustom:function(g){pc=g},getPileCardsVertically:function(){return pc},setPileCardsVertically:function(g){pc=g},getHideWidgets:function(g){return Pc[g]},
710setHideWidgets:function(g,z){z?Pc[g]=!0:delete Pc[g];a.wocg.Table.hideWidgets(g,z)},commDisonnectedHandler:function(){a.SoundEffects.play(C.AUDIO_PLAYER_LEFT)},renderUserInbox:function(){},hideUserInbox:function(){},getSubdirPathParamsIfAny:za,getQueryStringParamsIfAny:ed,getUserConsented:function(){return zc},getUseLegacyAvatars:function(){return gc},setUseLegacyAvatars:function(g){a.wocg.setCookie("useLegacyAvatars",g,{path:"/",domain:a.wocg.DOMAIN,expires:new Date(Date.now()+10*base.YEAR)});gc=
711g},displayLegalConsentNoChoice:function(){(new a.ModalLegalConsentScreen).show(function(){ib.send("user.legal.consent",{consented:!0});a.wocg.Auth&&a.wocg.Auth.setLoginZindex(7501)});a.wocg.Auth&&a.wocg.Auth.setLoginZindex(1E4)},getAvailableSeats:d,isUserInvited:function(g,z){z!==Ib&&(Ib=z,Ab=[]);return-1!==Ab.indexOf(g)},addInvitedUser:function(g,z){z!==Ib&&(Ib=z,Ab=[]);-1===Ab.indexOf(g)&&Ab.push(g)},removeInvitedUser:function(g){g=Ab.indexOf(g);-1!==g&&Ab.splice(g,1)},getInvitedCount:function(g){return g!==
712Ib?0:Ab.length},INVITE_ICON_SVG:'<svg class="inviteIcon" width="24" height="24" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><g stroke="none" fill="currentColor"><path d="M10.5,4 C12.4329966,4 14,5.56700338 14,7.5 C14,9.43299662 12.4329966,11 10.5,11 C8.56700338,11 7,9.43299662 7,7.5 C7,5.56700338 8.56700338,4 10.5,4 Z"/><path d="M10.5,12 C11.2729518,12 12.014392,12.130752 12.7020558,12.3706786 C13.0330811,12.5017851 13.0728455,12.9175403 
71212.8787066,13.1178442 C11.7215265,14.216024 11,15.7704023 11,17.4939037 C11,17.7627477 11.0175562,18.0274765 11.0515807,18.2869986 C11.1237183,18.6705508 11,19 10.6096792,19 C9.30135546,18.9998058 7.33886979,18.9995589 4.72222222,18.9992591 C4.3233499,18.9992591 4,18.6858916 4,18.2993332 C4,14.8203075 6.91014913,12 10.5,12 Z"/><path d="M17,12.5 C19.7614237,12.5 22,14.7385763 22,17.5 C22,19.2273899 21.1240355,20.7501873 19.7920786,21.64842 C18.9947552,22.1861116 18.0340339,22.5 17,22.5 C14.2385763,22.5 12,20.2614237 12,17.5 C12,14.7385763 14.2385763,12.5 17,12.5 Z M17,14 C16.4477153,14 16,14.4477153 16,15 L16,16.5 L14.5,16.5 C13.9477153,16.5 13.5,16.9477153 13.5,17.5 C13.5,18.0522847 13.9477153,18.5 14.5,18.5 L16,18.5 L16,20 C16,20.5522847 16.4477153,21 17,21 C17.5522847,21 18,20.5522847 18,20 L18,18.5 L19.5,18.5 C20.0522847,18.5 20.5,18.0522847 20.5,17.5 C20.5,16.9477153 20.0522847,16.5 19.5,16.5 L18,16.5 L18,15 C18,14.4477153 17.5522847,14 17,14 Z"/></g></svg>',
713INVITE_SUCCESS_ICON_SVG:'<svg class="inviteSuccessIcon" width="24" height="24" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><g stroke="none" fill="currentColor"><path d="M10.5,4 C12.4329966,4 14,5.56700338 14,7.5 C14,9.43299662 12.4329966,11 10.5,11 C8.56700338,11 7,9.43299662 7,7.5 C7,5.56700338 8.56700338,4 10.5,4 Z"/><path d="M10.5,12 C11.2729518,12 12.014392,12.130752 12.7020558,12.3706786 C13.0330811,12.5017851 13.0728455,12.9175403 12.8787066,13.1178442 C11.7215265,14.216024 11,15.7704023 11,17.4939037 C11,17.7627477 11.0175562,18.0274765 11.0515807,18.2869986 C11.1237183,18.6705508 11,19 10.6096792,19 C9.30135546,18.9998058 7.33886979,18.9995589 4.72222222,18.9992591 C4.3233499,18.9992591 4,18.6858916 4,18.2993332 C4,14.8203075 6.91014913,12 10.5,12 Z"/><path d="M17,12.5 C19.7614237,12.5 22,14.7385763 22,17.5 C22,20.2614237 19.7614237,22.5 17,22.5 C14.2385763,22.5 12,20.2614237 12,17.5 C12,14.7385763 14.2385763,12.5 17,12.5 Z M19.5303301,15.4696699 C19.2374369,15.1767767 18.7625631,15.1767767 18.4696699,15.4696699 L15.75,18.189 L15.5303301,17.9696699 C15.2374369,17.6767767 14.7625631,17.6767767 14.4696699,17.9696699 C14.1767767,18.2625631 14.1767767,18.7374369 14.4696699,19.0303301 L15.2196699,19.7803301 C15.5125631,20.0732233 15.9874369,20.0732233 16.2803301,19.7803301 L19.5303301,16.5303301 C19.8232233,16.2374369 19.8232233,15.7625631 19.5303301,15.4696699 Z"/></g></svg>'};
714a.on("domready",y);a.on("comm:connected",function(){document.prerendering?Ia():(La(),W())});a.on("comm:user.init.complete",function(g){window.__wocgUserInitCompleted=!0;tc=0;ya();Ta(g);Va(g.isAllowedRanked,g.isRegistered,!!g.isForbiddenMessaging,!!g.isOffMessaging,g.siteSupporterLevel);da(g.fingerprintData);Qa(g)&&setTimeout(function(){a.fire("Notice:show",{message:"You were signed out because your account signed in somewhere else.",type:"warning"});a.wocg.Auth.showLogin({source:"signedOutElsewhere",
715mode:"login"})},640);if(g=a.wocg.queryParams().table){var z=Da(g);setTimeout(()=>{if(z){var K={forTable:z,practiceExemptReason:"invite"},ja=za();ja&&ja.gameid&&-1<C.GAMEIDS.indexOf(ja.gameid)&&(K.gameid=ja.gameid);a.fire("ModalTablePreview:show",K)}K=a.wocg.createURLSearchParams(location.search);K.delete("table");history.replaceState({url:location.pathname+"?"+K,init:!0},"",location.pathname+(K+""&&"?"+K))},640)}ib.send("activity.list",{limit:C.SOCIAL_PAGE_SIZE});window.__wocgPageResetInfo||Ra()});
716a.on("box:loginBoxForm:submit",function(g){var z=a.one(".loginSocialSubmitRow");z&&!z.hasClass("authHidden")?ad():(z=a.one(".loginRegisterEmailPasswordRow"))&&!z.hasClass("authHidden")?bd():(z=a.one(".loginPasswordRow"),!z||z.hasClass("authHidden")?(g=a.one(".loginMethodLookupRow"))&&!g.hasClass("authHidden")&&Wb():(Ya("login","password"),ib.send("user.login",{username:Cb||g.username,password:a.sha1.hash(C.PWD_SALT+g.password)})))});a.on("box:registerBoxForm:submit",function(g){cd(g,"register")});
717a.on("box:gameOverRegisterBoxForm:submit",function(g){cd(g,"gameOverRegister")});a.on("box:forgotPasswordBoxForm:submit",function(g){ib.send("user.forgotPassword",{email:g.email})});a.on("box:resetPasswordBoxForm:submit",function(g){var z=window.location.pathname.match(Wc),K=decodeURIComponent(z[1]);ib.send("user.resetPassword",{username:K,password:a.sha1.hash(C.PWD_SALT+g.password),token:z[2]})});a.on("box:resetPasswordBoxForm:hidden",function(){Pb.addClass("modalClosing");Pb.setStyle("opacity",
718"0");setTimeout(function(){Pb.setStyle("display","none");Pb.removeClass("modalClosing");a.wocg.goToUrl("/")},160)});a.on("comm:user.register.failed",function(g){if(rb)a.wocg.Auth.showLoginError(g.message),a.wocg.Auth.enableLogin();else{var z=pa();a.wocg.Auth.showRegisterError(g.message,null,z);a.wocg.Auth.enableRegister(z)}});a.on("comm:user.register.complete",function(g){k(g.emailSha256);if(rb){var z=ab&&ab.originSurface,K=jb.register&&jb.register.source;K="gameOverRegister"===z||"won_modal"===K;
719wb("loginRegister");a.wocg.Auth.hideLogin();K?a.wocg.Auth.showRegisterSuccess("gameOverRegister","<strong>Account created</strong>: Username and progress is saved."):z&&a.wocg.Auth.hideRegister(z);rb=!1;Cb=ab=null}else z=pa(),wb(z),"gameOverRegister"===z?a.wocg.Auth.showRegisterSuccess(z,"<strong>Account created</strong>: Username and progress is saved."):a.wocg.Auth.hideRegister(z),ab=null;Eb=!1;Na=[];Ub=!1;Va(g.isAllowedRanked,!0,!!g.isForbiddenMessaging,!!g.isOffMessaging,g.siteSupporterLevel);
720da(zb);Zb=g.username;Ea(!0);Ca()});a.on("comm:user.login.failed",function(g){a.wocg.Auth.showLoginError(g.message);a.wocg.Auth.enableLogin()});a.on("comm:user.login.complete",function(g){var z=null;ab&&ab.originSurface?z=ab.originSurface:!jb.login&&jb.register&&la(jb.register.surface)?z=jb.register.surface:!jb.login&&ab&&ab.surface&&(z=ab.surface);var K=jb.login&&jb.login.source,ja=jb.register&&jb.register.source;K="gameOverRegister"===z||"won_modal"===K||"won_modal"===ja;wb("login");a.wocg.Auth.hideLogin();
721K?a.wocg.Auth.showRegisterSuccess("gameOverRegister","<strong>Signed in</strong>: Your username and progress are saved."):z&&a.wocg.Auth.hideRegister(z);ab=null;rb=!1;Cb=null;Eb=!1;Na=[];Ub=!1;Ta(g);Va(g.isAllowedRanked,!0,!!g.isForbiddenMessaging,!!g.isOffMessaging,g.siteSupporterLevel);da(zb);$b&&(window.location="/")});a.on("comm:user.authMethods.failed",function(g){a.wocg.Auth.showLoginError(g.message);a.wocg.Auth.enableLogin()});a.on("comm:user.authMethods.complete",function(g){Cb=g.username;
722var z=a.one("#login-username");z&&z.set("value",g.username);rb=!1;!1===g.exists?a.wocg.Auth.showLoginRegister():a.wocg.Auth.showLoginMethods(g.methods);a.wocg.Auth.enableLogin()});a.on("comm:user.socialAuth.failed",function(g){if(ab&&ab.fromOneTap&&!a.one("#loginModal.visible"))a.wocg.trackEvent("google_one_tap_failed",{message:g.message}),ab=null,rb=!1,jb.register=null;else if(rb||ab&&("login"===ab.surface||sa(ab.surface)))a.wocg.Auth.showLoginError(g.message),a.wocg.Auth.enableLogin();else{var z=
723pa();a.wocg.Auth.showRegisterError(g.message,null,z);a.wocg.Auth.enableRegister(z)}});
723a.on("comm:user.socialAuth.needsUsername",function(g){var z=ab&&ab.surface,K=!(!ab||!ab.fromOneTap),ja="login"===z||sa(z),va=z||pa();z=!g.accountChoiceRequired;if(ja||"gameOverRegister"!==va){if(K)va=(rb=z)?"loginRegister":"login",a.wocg.Auth.showLogin({source:"google_one_tap",mode:z?"signup":"login",loadProviders:!1,cancelGoogleOneTap:!1});else if(ja&&z){var Oa=sa(va);va="loginRegister";rb=!0;Oa||(Ya("loginRegister",
724g.method),jb.login=null)}ab={provider:g.provider,method:g.method,surface:va,emailRequired:!!g.emailRequired,accountChoiceRequired:!!g.accountChoiceRequired,fromOneTap:K};g.emailRequired&&lb();ja||K?(va=cb(),K={provider:g.provider,method:g.method,emailRequired:g.emailRequired,accountChoiceRequired:g.accountChoiceRequired,message:g.message},z&&"login"===va&&(K.message="We did not find an account for this "+("facebook"===g.provider?"Facebook":"Google")+" account. Choose a username to sign up"),a.wocg.Auth.showLoginSocialUsername(K),
725a.wocg.Auth.enableLogin()):(a.wocg.Auth.showRegisterSocialUsername(va,g),a.wocg.Auth.enableRegister(va))}else K=Wa(va),ja=z?"loginRegister":"login",a.wocg.Auth.enableRegister(va),rb=z,Cb=null,a.wocg.Auth.showLogin({source:K.source||"won_modal",mode:z?"signup":"login",loadProviders:!1}),Ya(ja,g.method,{fallbackEmailRequired:!!g.emailRequired,trackPromptClicked:!1}),z||(jb.register=null),ab={provider:g.provider,method:g.method,surface:ja,originSurface:va,emailRequired:!!g.emailRequired,accountChoiceRequired:!!g.accountChoiceRequired},
726a.wocg.Auth.showLoginSocialUsername({provider:g.provider,method:g.method,emailRequired:g.emailRequired,accountChoiceRequired:g.accountChoiceRequired,message:g.message}),a.wocg.Auth.enableLogin()});a.on("comm:user.socialLogin.failed",function(g){a.wocg.Auth.showLoginError(g.message);a.wocg.Auth.enableLogin()});a.on("comm:user.socialRegister.failed",function(g){var z=pa();a.wocg.Auth.showRegisterError(g.message,null,z);a.wocg.Auth.enableRegister(z)});a.on("comm:user.socialRegister.needsEmail",function(g){var z=
727ab&&ab.surface||pa();if("gameOverRegister"===z){var K=Wa(z);a.wocg.Auth.enableRegister(z);rb=!0;a.wocg.Auth.showLogin({source:K.source||"won_modal",mode:"signup",loadProviders:!1});ab={provider:g.provider,method:g.method||g.provider,surface:"loginRegister",originSurface:z,emailRequired:!0};lb();a.wocg.Auth.showLoginSocialUsername({provider:g.provider,method:g.method||g.provider,emailRequired:!0,message:g.message});a.wocg.Auth.enableLogin()}else ab&&(ab.username=g.username,ab.provider=g.provider,ab.surface=
728z),lb(),a.wocg.Auth.showRegisterNeedsEmail(z),a.wocg.Auth.showRegisterError(g.message,{subtle:!0},z),a.wocg.Auth.enableRegister(z)});a.on("auth:socialCredential",function(g){var z=g.surface||"login",K=g.method||g.provider;if("googleOneTap"===z||"google_one_tap"===K)rb=!0,ab={provider:g.provider,method:"google_one_tap",surface:"loginRegister",fromOneTap:!0},Ya("loginRegister","google_one_tap",{source:"google_one_tap",trackPromptClicked:!1}),ib.send("user.socialAuth.start",{provider:g.provider,method:"google_one_tap",
729source:"google_one_tap",token:g.token});else if(la(z))rb=!1,ab={provider:g.provider,method:K,surface:z},Ya(z,K),a.wocg.Auth.disableRegister(z),ib.send("user.socialAuth.start",{provider:g.provider,method:K,source:fb("register"),token:g.token});else{if(z="login"===z)z=(z=a.one(".loginEmailToggleRow"))&&!z.hasClass("authHidden");z?(z=cb(),Cb=null,rb="signup"===z,ab={provider:g.provider,method:K,surface:rb?"loginRegister":"login"},Ya(rb?"loginRegister":"login",K),a.wocg.Auth.disableLogin(),ib.send("user.socialAuth.start",
730{provider:g.provider,method:K,source:fb(rb?"register":"login"),token:g.token})):(z=Cb||$a("#login-username"))?(Ya("login",K),a.wocg.Auth.disableLogin(),ib.send("user.socialLogin",{username:z,provider:g.provider,token:g.token})):a.wocg.Auth.showLoginError("Enter a username first.",{subtle:!0})}});a.on("auth:socialError",function(g){la(g.surface)?a.wocg.Auth.showRegisterError(g.message,null,g.surface):a.wocg.Auth.showLoginError(g.message)});a.on("comm:user.forgotPassword.failed",function(g){Mb.showError(g.message);
731Mb.enable()});a.on("comm:user.forgotPassword.complete",function(g){Mb.showSuccess(g.message)});a.on("comm:user.resetPassword.failed",function(g){$b.showError(g.message);$b.enable()});a.on("comm:user.resetPassword.complete",function(g){$b.hide()});a.on("comm:user.banned.complete",function(g){var z="This is your first strike. Our system runs on a three-strike policy. If you get three strikes, you will be banned for life.";2==g.banLevel&&(z="This is your second strike. Our system runs on a three-strike policy. If you get three strikes, you will be banned for life.");
7323==g.banLevel&&(z="You have been permanently banned from playing with other people.");var K="1 hour";2==g.banLevel&&(K="24 hours");3==g.banLevel&&(K="a lifetime");var ja="Our system has banned you from playing with other people for "+K+". You were banned for posting the following message:<br />"+g.message+"<br /><br />If you think an error has occurred, don't hesitate to contact us.<br /><br />"+z;setTimeout(function(){(new a.ModalConfirm("You have been banned",ja,"","OK")).show();a.wocg.goToUrl("/",
733{},!1)},1E3)});a.on("comm:user.showModal.confirm",function(g){var z=g.url,K=!0===g.reload;
733(new a.ModalConfirm(g.title||"",g.text||"",g.cancelText||"",g.okText||"OK",g.okColor||"green")).show(function(ja){ja&&K?a.wocg.reloadApp():ja&&z&&(window.location.href=z)})});a.on("comm:options",function(g){if(g){yc=g.globalMute;if("number"===typeof g.soundEffectsMode){var z=parseInt(g.soundEffectsMode,10);if(0===z||1===z||2===z)Ac=z}else g.muteSound&&(Ac=0);"number"===typeof g.avatarEmotionsMode&&(z=parseInt(g.avatarEmotionsMode,
73410),0===z||1===z||2===z)&&(Nc=z);if("number"===typeof g.animationsMode){if(z=parseInt(g.animationsMode,10),0===z||1===z||2===z)Tb=z}else g.disableAnimations&&(Tb=0);z=Object.prototype.hasOwnProperty.call(g,"gamePromptsMode");Object.prototype.hasOwnProperty.call(g,"avatar");z&&(z=dd(g.gamePromptsMode),null!==z&&(Oc=z));"number"===typeof g.gameHintsMode&&(z=parseInt(g.gameHintsMode,10),0===z||1===z)&&(fc=z);if(Object.prototype.hasOwnProperty.call(g,"avatar")||Object.prototype.hasOwnProperty.call(g,
735"pileCardsCustom"))pc=!!g.pileCardsCustom;C.USER_OPTIONS.forEach(function(K){K=K.id;if(0===K.indexOf("norank_")){var ja=K.substring(7,K.length);Mc[ja]=!!g[K]}})}});a.on("avatar:changed",function(g){var z=a.one("#userBar .userAvatar");if(z&&g){var K=gc;g=a.wocg.buildAssetImageURL("pieces/avatar/"+(K?"legacy":"classic")+"/"+g+(K?".png":".svg"));K=z.getDOMNode();K.onload=function(){this.classList.add("loaded")};K.onerror=function(){this.classList.add("loaded")};z.set("src",g)}});a.on("theme:changed",
736Hc);a.on("window:resized",Hc);a.on("comm:gameSelectors.show",Uc);a.on("table:created",function(){ha(bc);Ib=null;Ab=[]});a.on("gameselectors:done",function(){if(!hb)var g=hb=ed();g&&("findTable"!==g.command&&"findTutorial"!==g.command||a.fire("menu:clicked",g))});a.on("comm:user.legal.complete",function(){zc=!0});a.on("comm:user.deleteAccount.complete",Qc);a.on("comm:friend.list",function(g){Nb=!1;Eb=!0;Na=g.people||[];Ob=(g.hasMore||!1)&&Na.length<Ec;Gc=[];var z=a.wocg.Table.getCurrentTable();utils.sortFriendsList(Na,
737{currentTableId:z?z.tableid:null});g.tableid&&g.invitedUsers&&0<g.invitedUsers.length&&(!Ib||Ib===g.tableid)&&(Ib=g.tableid,g.invitedUsers.forEach(function(Oa){-1===Ab.indexOf(Oa)&&Ab.push(Oa)}));var K=a.one("#userBar .friendsIcon");if(K){z=K.one(".friendsLoading");var ja=K.one(".friendsEmpty"),va=K.one(".friendsList");K=K.hasClass("open")&&va&&va.hasClass("visible");z&&z.removeClass("visible");0<Na.length?(ja&&ja.removeClass("visible"),va&&(va.addClass("visible"),G(va,Na,Ob,K))):(ja&&ja.addClass("visible"),
738va&&va.removeClass("visible"));Fb=g.badgeUnread||0;A(Na);ma();Dc&&(Dc=!1,t())}});a.on("comm:user.search",function(g){if(hc){var z=a.one("#userBar .friendsIcon");if(z){var K=z.one(".friendsSearchInput");(K=K?K.get("value").trim():null)&&K===hc&&(K=z.one(".friendsList"))&&(z=z.one(".friendsEmpty"),g.people&&0!==g.people.length?(z&&z.removeClass("visible"),G(K,g.people,!1,!1)):(K.setContent(""),z&&(z.setContent("No results found."),z.addClass("visible"))))}}});a.on("comm:user.now.friends",function(g){t()});
739a.on("comm:user.rated.player",function(g){"like"!==g.type&&"dislike"!==g.type||t()});a.on("comm:user.unrated.player",function(g){"like"===g.type&&t()});a.on("comm:friend.online",function(g){if(Na){for(var z=!1,K=0;K<Na.length;K++)if(Na[K].userid===g.userid){z=!0;Na[K].online=!0;Na[K].username=g.username;Na[K].avatar=g.avatar;Na[K].isFriend=!!g.isFriend;g.gameid?(Na[K].gameid=g.gameid,Na[K].tableid=g.tableid,g.tableHash?Na[K].tableHash=g.tableHash:delete Na[K].tableHash,Na[K].playing=!!g.playing,Na[K].solo=
740!!g.solo,g.startedAt?Na[K].startedAt=g.startedAt:delete Na[K].startedAt,void 0!==g.openSeats&&null!==g.openSeats?Na[K].openSeats=g.openSeats:delete Na[K].openSeats):(delete Na[K].gameid,delete Na[K].tableid,delete Na[K].tableHash,delete Na[K].playing,delete Na[K].solo,delete Na[K].startedAt,delete Na[K].openSeats);break}z||(z={userid:g.userid,username:g.username,avatar:g.avatar,online:!0,isFriend:!!g.isFriend},g.gameid&&(z.gameid=g.gameid,z.tableid=g.tableid,g.tableHash&&(z.tableHash=g.tableHash),
741z.playing=!!g.playing,z.solo=!!g.solo,g.startedAt&&(z.startedAt=g.startedAt),void 0!==g.openSeats&&null!==g.openSeats&&(z.openSeats=g.openSeats)),Na.push(z));g=a.wocg.Table.getCurrentTable();utils.sortFriendsList(Na,{currentTableId:g?g.tableid:null});T();Na&&A(Na)}});a.on("comm:friend.offline",function(g){if(Na){for(var z=0;z<Na.length;z++)if(Na[z].userid===g.userid){Na[z].online=!1;delete Na[z].gameid;delete Na[z].tableid;delete Na[z].tableHash;delete Na[z].playing;delete Na[z].solo;delete Na[z].startedAt;
742delete Na[z].openSeats;break}g=a.wocg.Table.getCurrentTable();utils.sortFriendsList(Na,{currentTableId:g?g.tableid:null});T();Na&&A(Na)}});a.on("comm:friend.status",function(g){if(Na){for(var z=0;z<Na.length;z++)if(Na[z].userid===g.userid){g.gameid&&g.tableid?(Na[z].gameid=g.gameid,Na[z].tableid=g.tableid,g.tableHash?Na[z].tableHash=g.tableHash:delete Na[z].tableHash,void 0!==g.playing&&(Na[z].playing=g.playing),void 0!==g.solo&&(Na[z].solo=g.solo),void 0!==g.startedAt&&null!==g.startedAt?Na[z].startedAt=
743g.startedAt:delete Na[z].startedAt,void 0!==g.openSeats&&null!==g.openSeats?Na[z].openSeats=g.openSeats:delete Na[z].openSeats):(delete Na[z].gameid,delete Na[z].tableid,delete Na[z].tableHash,delete Na[z].playing,delete Na[z].solo,delete Na[z].startedAt,delete Na[z].openSeats);break}g=a.wocg.Table.getCurrentTable();utils.sortFriendsList(Na,{currentTableId:g?g.tableid:null});T()}});a.on("comm:friend.removed",function(g){if(g&&g.userid){if(Na)for(var z=0;z<Na.length;z++)if(Na[z].userid===g.userid){Na[z].isFriend=
744!1;break}t()}});a.on("friendsListCache:reset",function(){Eb=!1});a.on("comm:friend.message.history",function(g){g&&pb&&parseInt(g.friendUserid,10)===parseInt(pb,10)&&r(g.messages,parseInt(g.friendUserid,10),!!g.isOneWayMessage)});a.on("comm:friend.message.sent",function(g){if(g)if(1===g.toxicityLevel&&g.pendingId){var z=Yb[g.pendingId];if(z){ub[g.pendingId]&&(clearTimeout(ub[g.pendingId]),delete ub[g.pendingId]);var K=g.pendingId;(new a.ModalConfirm("Sure you want to send that message?","Message was identified as potentially offensive. Send anyway?",
745"Cancel","Send")).show(function(Oa){Oa?(ib.send("friend.message.send",{friendUserid:z.friendUserid,text:z.text,pendingId:K,confirmed:!0}),ub[K]=setTimeout(function(){delete ub[K];delete Yb[K];u(K,"Message timed out. Please try again.")},C.REQUEST_TIMEOUT)):(delete Yb[K],(Oa=a.one("#userBar .friendsIcon"))&&(Oa=Oa.one('.messageWrapper[data-pending-id="'+K+'"]'))&&Oa.remove())})}else u(g.pendingId,"Message couldn't be sent.")}else if(g.message&&!g.messageId){g.pendingId&&delete Yb[g.pendingId];var ja=
746"Message couldn't be sent. "+g.message;g.details&&(ja+="\n\nDetails: "+g.details);if(g.pendingId)u(g.pendingId,ja);else if(g=a.one("#userBar .friendsIcon"))if(g=g.one(".conversationMessages")){var va=a.Node.create('<div class="messageError">'+a.Escape.html(ja)+"</div>");g.append(va);g._node.scrollTop=g._node.scrollHeight;setTimeout(function(){va&&va._node&&va.remove()},3E3)}}else g.pendingId?(delete Yb[g.pendingId],f(g.pendingId,g.timestamp)):pb&&parseInt(g.friendUserid,10)===parseInt(pb,10)&&l(g.text,
747!0,g.timestamp)});a.on("comm:friend.message.received",function(g){if(g){var z=parseInt(g.fromUserid,10);if(pb&&z===parseInt(pb,10))l(g.text,!1,g.timestamp),ib.send("friend.message.read",{friendUserid:z});else{if(Na){for(g=0;g<Na.length;g++)if(Na[g].userid===z){Na[g].unread=(Na[g].unread||0)+1;break}utils.sortFriendsList(Na)}xa(Fb+1);(z=a.one("#userBar .friendsIcon"))&&z.hasClass("open")&&(z=z.one(".friendsList"))&&z.hasClass("visible")&&G(z,Na,Ob,!0);z=Date.now();!Kb&&1E4<=z-Bc&&(Bc=z,a.SoundEffects.play(C.AUDIO_SOCIAL_NOTIFICATION))}}});
748a.on("comm:friend.message.read",function(g){if(g&&g.friendUserid&&(g=parseInt(g.friendUserid,10))){var z=0,K=!1;if(Na)for(var ja=0;ja<Na.length;ja++)if(Na[ja].userid===g){z=parseInt(Na[ja].unread,10)||0;Na[ja].unread=0;K=!0;break}T();K&&0<z?xa(Math.max(0,Fb-z)):(xa(Fb),!K&&Eb&&t())}});a.on("comm:activity.list",function(g){var z=ec&&Ub,K=ec;ec=!1;Ub=!0;if(g&&g.activities){z?mb=mb.concat(g.activities):(mb=g.activities,vb=g.unreadCount||0);sc=g.hasMore||!1;var ja=a.one("#userBar .activityIcon");if(ja){var va=
749ja.one(".activityLoading"),Oa=ja.one(".activityEmpty");ja=ja.one(".activityList");va&&va.removeClass("visible");0===mb.length?(Oa&&Oa.addClass("visible"),ja&&ja.removeClass("visible")):(Oa&&Oa.removeClass("visible"),ja&&(ja.addClass("visible"),z?R(ja,g.activities):ra(ja,mb)));z||K||ka(vb)}}else z||(mb=[]),sc=!1});a.on("comm:activity.new",function(g){if(g&&g.activity){mb.unshift(g.activity);var z=a.one("#userBar .activityIcon");z&&z.hasClass("open")?(g=z.one(".activityList"),(z=z.one(".activityEmpty"))&&
750z.removeClass("visible"),g&&(g.addClass("visible"),ra(g,mb))):(ka(vb+1),g=Date.now(),!Kb&&1E4<=g-Bc&&(Bc=g,a.SoundEffects.play(C.AUDIO_SOCIAL_NOTIFICATION)))}});a.on("comm:activity.updated",function(g){if(g&&g.activity){g=g.activity;if(mb)for(var z=0;z<mb.length;z++)if(mb[z].id===g.id){mb[z]=g;break}(g=a.one("#userBar .activityIcon"))&&g.hasClass("open")&&(g=g.one(".activityList"))&&ra(g,mb)}});a.on("comm:activity.removed",function(g){if(g&&g.activityIds&&0!==g.activityIds.length){var z=g.activityIds;
751mb&&(mb=mb.filter(function(K){return-1===z.indexOf(K.id)}));0<vb&&(vb=Math.max(0,vb-z.length),ka(vb));(g=a.one("#userBar .activityIcon"))&&g.hasClass("open")&&(g=g.one(".activityList"))&&ra(g,mb)}});a.on("socialNotificationsOff:changed",function(){Na&&A(Na);ka(vb)});a.on("comm:invite.sent",function(g){if(g&&!g.success){var z=Ab.indexOf(g.friendUserid);-1!==z&&Ab.splice(z,1);a.fire("Notice:show",{message:g.message||"Could not send invite.",type:"error"});T()}});a.on("comm:invite.broadcast",function(g){g&&
752g.invitedUserid&&g.tableid&&Ib&&Ib===g.tableid&&(-1===Ab.indexOf(g.invitedUserid)&&Ab.push(g.invitedUserid),T())});a.on("comm:table.player.joined",B);a.on("comm:table.player.left",B);a.wocg.isSourceArkadium()||Q()},"1.0",{requires:"wocg wocg.Auth wocg.Comm wocg.Table wocg.TableBar wocg.FooterBar wocg.ProfileBox wocg.TableListings
752Bar wocg.StatsBox cookie sha1 datatype-date-format ModalConfirm ModalPlayerProfile ModalTablePreview CustomTooltip SoundEffects escape".split(" ")});
753YUI.add("wocg.Options",function(a){function q(v){x.send("options.set",v)}function w(v){x.send("options.unset",{names:v})}function k(v,d){y[v]=d;x.send("options.happening.set",{name:v,value:d})}var x=a.wocg.Comm,y={};a.wocg.Options={setOptions:q,setOption:function(v,d){var n={};n[v]=d;q(n);n={option:v,value:d};"avatar"!==v&&"wallpaper"!==v&&"deck"!==v&&(n.option_value=v+"_"+d);a.wocg.trackEvent("user_option_saved",n)},unsetOptions:w,unsetOption:function(v){w([v]);var d={option:v,value:!1};"avatar"!==
754v&&"wallpaper"!==v&&"deck"!==v&&(d.option_value=v+"_false");a.wocg.trackEvent("user_option_saved",d)},incrementHappening:function(v,d){k(v,(+y[v]||0)+(+d||1))},setHappening:k,getHappening:function(v){return y[v]}};a.on("comm:options",function(v){v.happenings&&(y=base.clone(v.happenings,!0))})},"1.0",{requires:["wocg","wocg.Comm"]});
755YUI.add("wocg.Theme",function(a){function q(J){if(t===J)return!1;t=J;a.wocg.MenuBar.selectItem("avatar",t);a.fire("avatar:changed",t);return!0}function w(J,G){h!==J&&(h=J,a.wocg.MenuBar.selectItem("deck",h),G||a.fire("theme:changed"))}function k(J){p===J||0<F.length&&F[F.length-1]===J||(a.wocg.MenuBar.selectItem("wallpaper",J),F.push(J),1===F.length&&x())}function x(){A=S=!1;a.ImagePreloader.preload(a.wocg.buildAssetImageURL("pieces/wallpaper/"+F[0]),y);A=!0;v()}function y(J){S=!0;v()}function v(){S&&
756A&&(a.one("#mainContainer").setStyle("backgroundImage","url("+a.wocg.buildAssetImageURL("pieces/wallpaper/"+F[0])+")").setStyle("backgroundSize","fabrics/green-felt.jpg"==F[0]||"fabrics/arkadium-felt.png"==F[0]?"100px 100px":"inherit"),A=S=!1,p=F.shift(),F.length&&x())}function d(J){if(e===J)return!1;e=J;a.one(document.body).addClass(e);J=document.getElementsByTagName("head")[0];var G=document.getElementById("themeCSSLink");G&&J.removeChild(G);G=document.createElement("link");G.id="themeCSSLink";
757G.rel="stylesheet";G.type="text/css";G.href=a.wocg.buildAssetURL("themes/"+e+"/"+e+".css");J.appendChild(G);B.push(e);setTimeout(n,50);return!0}function n(){a.one("#themeDetector")&&a.wocg.Theme[e]?setTimeout(m,50):setTimeout(n,100)}function m(){a.wocg.Theme[e].init();setTimeout(function(){a.fire("theme:changed")}
757,base.SECOND)}function H(){var J=a.wocg.Theme.getCurrentThemeConfig();Object.values(J.backdropFrames||{}).forEach(function(E){a.Frame.preload(E)});var G=J.chatBubbleFrame||{};"nw ne se sw me meleft".split(" ").forEach(function(E){G[E]&&
758a.Frame.preload(G[E])})}var c={classic:{detectorHeight:1,id:"classic",name:"Classic",wallpaper:"fabrics/green-felt.jpg",deck:"classic",font:"BuloRounded"}},e=null,h=null,p=null,t=null,B=[],F=[],S=!1,A=!1,M=new Timer(3*base.SECOND);a.wocg.Theme={getCurrentThemeConfig:function(){var J=c[e];a.wocg.Theme[e]&&(J=Object.merge(J,a.wocg.Theme[e].config));return J},getThemeForPieceType:function(J){return"card"===J?h||(e?c[e].deck:"classic"):a.wocg.Theme[e]?a.wocg.Theme[e].getThemeForPieceType(J):"classic"},
759getDeck:function(){return h},setTheme:d,preloadDefaultOptions:function(){M&&(M.stop(),M=null);var J=d("classic");k(c.classic.wallpaper);var G=a.wocg.isSourceArkadium()?"arkadium":768>a.wocg.playspaceWidth()||a.wocg.isMobile("small")?"anglo":c.classic.deck;w(G,J)}};a.on("domready",function(){});a.on("comm:options",function(J){M&&(M.stop(),M=null);var G=J.theme||"classic",E=d(G),L=a.wocg.isSourceArkadium()?"fabrics/arkadium-felt.png":a.wocg.User.getUseLegacyAvatars()?"fabrics/blue-canvas.jpg":c[G].wallpaper;
760k(J.wallpaper||L);G=a.wocg.isSourceArkadium()?"arkadium":a.wocg.isMobile()?"anglo":c[G].deck;w(J.deck||G,E);q(J.avatar)});a.on("comm:user.avatar.saved",function(J){J&&J.avatar&&q(J.avatar)});a.on("theme:changed",function(){setTimeout(H,a.wocg.THEME_PRELOAD_DELAY)});a.on("MenuBar:ItemSelected:deck",function(J){w(J);a.wocg.Options.setOption("deck",J)});a.on("MenuBar:ItemSelected:wallpaper",function(J){p!==J&&(k(J),a.wocg.Options.setOption("wallpaper",J))});a.on("MenuBar:ItemSelected:avatar",function(J){t!==
761J&&a.wocg.Options.setOption("avatar",J)})},"1.0",{requires:["wocg","wocg.Options"]});
762YUI.add("wocg.MenuBar",function(a){function q(X){var I=document.createElement("a");I.href=X;return I.hostname?I.hostname.replace(/^www\./,""):""}function w(X){return X?X.ranked&&X.gameStarted&&!X.gameOver?"This link opens one of our partner game sites.\n\nLeaving this table counts as a forfeit. Your Elo will drop, and you may be temporarily blocked from ranked games.":!X.gameStarted||X.gameOver||X.isSoloGame()?"This link opens one of our partner game sites.\n\nContinuing will leave your current table.":"This link opens one of our partner game sites.\n\nLeaving this table can lower your reputation and may result in a timeout.":
763"This link opens one of our partner game sites."}function k(X){var I=X.currentTarget.getAttribute("href");if(!I||!ba[q(I)])return!1;X.preventDefault();X.stopPropagation();(new a.ModalConfirm("You're leaving World of Card Games",w(a.wocg.Table.getCurrentTable()),"Stay here","Continue")).show(function(O){O&&(a.wocg.Table.getCurrentTable()&&a.fire("tableBar:leaveTableLinkClicked"),window.location.href=I)});return!0}function x(X){var I=X.currentTarget.getAttribute("href");if(!k(X)){var O=a.wocg.Table.getCurrentTable();
764O&&(X.preventDefault(),a.wocg.TableBar.leaveWarning(O,()=>{O&&a.fire("tableBar:leaveTableLinkClicked");I.startsWith("https")?window.location.href=I:a.wocg.goToUrl(I,"",!1)},!0))}}function y(X){E=[X]}function v(X,I=0==E.length){X=X.target.ancestor(".option",!0).getData("menuid");if(!E.contains(X)){if(!E.length)a.one(document.body).on("mouseup",d);H(I);a.wocg.ProfileBox.hideProfileBox(I);a.wocg.StatsBox.hideStatsBox(I);"stats"==X?a.wocg.StatsBox.showStatsBox(I):"userOptions"==X?a.wocg.ProfileBox.showProfileBox(I):
765n(X,I)}}function d(X){if(!X.target.ancestor(".userBarItem",!0)&&!L){var I=X.target.ancestor(".item",!0);if(I){var O=I.ancestor(".menu");X=O.getAttribute("menuid");I=I.one("span").getAttribute(O.getAttribute("menuid"));a.fire("MenuBar:ItemSelected:"+X,I,void 0)}a.one(document.body).detach("mouseup",d);H()}}function n(X,I=!0){if(!E.contains(X)){var O=a.one("#"+X+"Menu");y(X);a.KeyboardShortcuts.on("escape",H);a.Transition.cancel(O);O.removeClass("modalClosing");O.setStyle("display","flex");O.on("mousedown",
766m);I?(O.removeClass("modalInstant"),O.setStyle("opacity",0),a.Transition.run({node:O,duration:220,opacity:1})):(O.addClass("modalInstant"),O.setStyle("opacity",1))}}function m(X){L=!0}function H(X){a.KeyboardShortcuts.detach("escape",H);for(var I=E.length-1;0<=I;I--)"stats"==E[I]?a.wocg.StatsBox.hideStatsBox(X):"userOptions"==E[I]?a.wocg.ProfileBox.hideProfileBox(X):c(E[I],X)}function c(X,I=!0){if(E.contains(X)){E.remove(X);var O=a.one("#"+X+"Menu");O.on("detach",m);var fa=function(){E.contains(X)||
767(O.setStyle("display","none"),O.removeClass("modalClosing"),O.removeClass("modalInstant"))};I?(a.Transition.cancel(O),O.removeClass("modalInstant"),O.addClass("modalClosing"),a.Transition.run({node:O,duration:160,opacity:0,cb:fa})):(O.setStyle("opacity",0),fa())}}function e(X,I){if(T){var O=a.one("#"+X+"Menu");if(O.getData("spriteAttached")){if(O=O.one("span.selected"))O.removeClass("selected"),O.ancestor("td").removeClass("selected"),O.setStyle("backgroundImage","url("+O.getData("backgroundImage")+
768")");if(X=a.one("#"+X+"Menu span["+X+"='"+I+"']"))X.addClass("selected"),X.ancestor("td").addClass("selected")}else O.setData("preselected",I)}else ma[X]=I}function h(X){if(!X.currentTarget.hasClass("header")){var I=X.currentTarget.ancestor(".menu"),O=I.getAttribute("menuid");X=X.currentTarget.one("span").getAttribute(I.getAttribute("menuid"));a.fire("MenuBar:ItemSelected:"+O,X,void 0)}}
768function p(X,I,O,fa){if("avatar"==X)O=O.filter(function(qa){return!C.AVATARS_REMOVED_IDS.includes(qa.id)});else if("deck"==
769X){var ta=a.wocg.isSourceArkadium();O=O.filter(function(qa){return"arkadium"===qa.id?ta:!C.DECKS_REMOVED_IDS.includes(qa.id)})}var ua;O.forEach(function(qa,na){0===na%(ea[X]||5)&&(ua&&I.append(ua),ua=a.Node.create("<tr>"));na=a.Node.create("<span>").addClass(qa.id.split(".")[0]).setAttribute(X,(J[X]?fa+"/":"")+qa.id);if("avatar"==X){var b=M[X],f=a.wocg.User.getUseLegacyAvatars();f&&(b=b.replace("classic","legacy"));na.setData("backgroundImage","url("+a.wocg.buildAssetImageURL(b+"/"+qa.id+(f?".png":
770".svg"),!1)+")")}else"wallpaper"==X?na.setData("backgroundImage","url("+a.wocg.buildAssetImageURL(M[X]+"/"+fa+"/"+qa.id,!1)+")"):"deck"==X?na.setData("backgroundImage","url("+a.wocg.buildAssetImageURL(M[X]+"/"+qa.id+"/12h.png",!1)+"), url("+a.wocg.buildAssetImageURL(M[X]+"/"+qa.id+"/back.png",!1)+")"):na.setData("backgroundImage","url("+a.wocg.buildAssetImageURL(M[X]+"/"+fa+"/preview/sprite.png",G[X]||!1)+")");ua.append(a.Node.create("<td colspan='1'>").addClass("item").append(na))});I.append(ua)}
771function t(X){if(!X.getData("spriteAttached")){X.getAll("td.item span").forEach(function(O){O.setStyle("backgroundImage",O.getData("backgroundImage"))});X.setData("spriteAttached",!0);var I=X.getData("preselected");I&&e(X.getAttribute("menuid"),I)}}var B=a.one("#menuBarContainer");a.one("#menuBar");a.one("#menuBar .dropdown");var F=a.one("#menuBarContainer #menuLogoContainer"),S=a.all("#menuBar a"),A=a.one("#menuBarContainer #menuIconContainer");a.one("#userBarContainer");a.one("#userBar");a.one("#userBar .options");
772var M={deck:"pieces/card",avatar:"pieces/avatar/classic",wallpaper:"pieces/wallpaper",theme:"themes"},J={wallpaper:!0},G={deck:!0,avatar:!0},E=[],L=!1,T=!1,ma={},ea={deck:3},ba={"online-solitaire.com":!0,"papergames.io":!0,"play2048.co":!0};a.wocg.MenuBar={selectItem:e,setup:function(X,I){var O=a.Node.create("<div>").addClass("menu").set("id",X+"Menu").addClass("unselectable");a.one("#mainContainer").append(O);var fa=a.Node.create("<div>").addClass("background"),ta=a.Node.create("<div>").addClass("content"),
773ua=a.Node.create("<div>").addClass("innerBox");ta.append(ua);var qa=a.Node.create("<ul>").addClass("optionsMenuBar"),na=a.Node.create("<li>").addClass("option").addClass("userOptions").setData("menuid","userOptions").setContent("Options"),b=a.Node.create("<li>").addClass("option").addClass("deck").setData("menuid","deck").setContent("Deck"),f=a.Node.create("<li>").addClass("option").addClass("wallpaper").setData("menuid","wallpaper").setContent("Wallpaper"),u=a.Node.create("<li>").addClass("option").addClass("avatar").setData("menuid",
774"avatar").setContent("Avatar"),l=a.Node.create("<li>").addClass("option").addClass("stats").setData("menuid","stats").setContent("Stats");qa.appendChild(na);qa.appendChild(b);qa.appendChild(f);qa.appendChild(u);qa.appendChild(l);ua.append(qa);na.on("mousedown",v);b.on("mousedown",v);f.on("mousedown",v);u.on("mousedown",v);l.on("mousedown",v);fa.on("click",function(r){r.target&&r.target._node&&r.target._node.classList&&r.target._node.classList.contains("background")&&H()});I.forEach(function(r,D){D=
775a.Node.create("<tbody>");if(r.name.length){var N=a.Node.create("<td>").set("colSpan","5").addClass("header").append(a.Node.create("<span>").setContent(r.name));D.appendChild(a.Node.create("<tr>").append(N))}p(X,D,r.items,r.id);ua.append(a.Node.create("<table>").addClass(r.id).append(D))});ua.delegate("mousedown",h,"td");O.append(fa.append(ta));O.setAttribute("menuid",X);ma.hasOwnProperty(X)&&(e(X,ma[X]),delete ma[X]);t(O)},optionsMenuBarMouseDownHandler:v,setVisibleMenuId:y,showMenu:n,hideMenus:H};
776a.on("domready",function(){F.on("click",x);S.each(function(X){X.on("click",x)});a.one("body").delegate("click",k,"a");A.on("click",function(){B.hasClass("visible")?B.removeClass("visible"):B.addClass("visible")})});a.on("theme:changed",function(){if(!T){T=!0;var X=a.wocg.isSourceArkadium(),I=C.WALLPAPERS.map(function(O){return{id:O.id,name:O.name,items:O.items.filter(function(fa){return X||!fa.arkadiumOnly})}});a.wocg.MenuBar.setup("wallpaper",I);a.wocg.MenuBar.setup("deck",C.DECKS);a.wocg.MenuBar.setup("avatar",
777C.AVATARS)}})},"1.0",{requires:["Transition","FitText","wocg.StatsBox","wocg.ProfileBox","ModalConfirm"]});
778YUI.add("wocg.Layout",function(a){var q=["tram","play","activeSuit"],w="hand scorePlate handScore gameScore trickStorage dealerChip".
778split(" ");a.wocg.Layout=function(k,x,y,v){this.playerSpotDirections={1:["S"],2:["S","N"],3:["S","NW","NE"],4:["S","W","N","E"],5:["S","W","NW","NE","E"],6:"S W NW N NE E".split(" ")};this.playerSpotDirectionsPriority={1:["S"],2:["S","N"],3:["S","NW","NE"],4:["S","N","W","E"],5:["S","NW","W","NE","E"],6:"S N W NW NE E".split(" ")};this.numPlayers=k;this.tutorial=x;this.include=
779y.include||[];this.teams=y.teams||!1;this.ranked=v;this.avatarSize=function(){var d=a.one(".playspace").getWidth(),n=a.one(".playspace").getHeight(),m=d/n;d=Math.max(Math.floor(.18*d),64);var H=Math.max(Math.floor(.16*n),40),c=Math.min(Math.floor(.06*n),40);d=1>m?Math.min(Math.max(4*c,60),d):H;1>m&&a.wocg.isPlayspaceCompact()&&(d=Math.min(d,Math.max(48,Math.floor(.16*n))));return d};this.playspaceWidth=()=>a.wocg.playspaceWidth();this.playspaceHeight=()=>a.wocg.playspaceHeight();this.isPlayspacePortrait=
780()=>a.wocg.isPlayspacePortrait();this.isPlayspaceLandscape=()=>a.wocg.isPlayspaceLandscape();this.isPlayspaceCompact=d=>a.wocg.isPlayspaceCompact(d);this.playspaceCenter=()=>{var d=Math.floor(this.numPlayers/2);d=a.one("#spot-hand"+d).getTop()+a.one("#spot-hand"+d).getHeight();var n=a.one("#spot-hand0").getTop();return d+(n-d)/2};this.suitSelectorWidth=()=>this.isPlayspaceCompact("small")?40:48;this.tableRoundChipSize=()=>this.isPlayspaceCompact()?24:32;this.applyTableRoundChipSizing=d=>{d.width=
781this.tableRoundChipSize;d.height=this.tableRoundChipSize};this.teamsOrPlayers=()=>{if(this.teams){var d=Math.max(2,this.numPlayers/2);return Array(d).fill(this.numPlayers/d)}return Array(this.numPlayers).fill(1)};this.handOverGutter=()=>this.containerPadding();this.handOverRowGap=()=>this.actionButtonGap();this.handOverScreenGutter=()=>this.responsiveGutter();this.handOverVerticalGutterHeight=()=>2*this.handOverScreenGutter();this.hasHandOverCondensedBreakpoint=()=>{var d=this.teamsOrPlayers().length;
782return 4===d||2===d};this.handOverModalMaxWidth=()=>576;this.handOverTopMargin=d=>(d?0:140)+this.handOverGutter();this.handOverNamePlateHeight=d=>d?48:80;this.handOverRowsHeight=d=>this.teamsOrPlayers().length*this.handOverNamePlateHeight(d)+(this.teamsOrPlayers().length-1)*this.handOverRowGap();this.handOverContentHeight=(d,n)=>this.handOverTopMargin(d)+this.handOverRowsHeight(n)+this.handOverGutter();this.handOverExpandedContentHeight=d=>this.handOverContentHeight(d,!1);this.isHandOverHeaderHidden=
783()=>this.hasHandOverCondensedBreakpoint()?this.gameOverPlayspaceHeight()<=this.handOverContentHeight(!1,!0)+this.handOverVerticalGutterHeight():!1;this.isHandOverCondensed=()=>this.hasHandOverCondensedBreakpoint()?this.gameOverPlayspaceHeight()<=this.handOverExpandedContentHeight(!1)+this.handOverVerticalGutterHeight():!1;this.shouldShowGameOverRegister=()=>this.isPlayspaceCompact()?!1:this.shouldShowGameOverRatingPrompt()?!0:a.wocg.shouldShowAuthUI&&!a.wocg.shouldShowAuthUI()?!1:a.wocg.User&&!a.wocg.User.isRegistered();
784this.shouldShowGameOverRatingPrompt=()=>!!this.showGameOverRatingPrompt;this.gameOverRegisterExpandedHeight=()=>130;this.gameOverRegisterCompactHeight=()=>76;this.gameOverRatingPromptExpandedHeight=()=>90;this.gameOverRatingPromptCompactHeight=()=>114;this.gameOverRatingPromptFeedbackExpandedHeight=()=>90;this.gameOverRatingPromptFeedbackCompactHeight=()=>114;this.gameOverRatingPromptHeight=()=>"feedback"===this.gameOverRatingPromptMode?this.isGameOverRegisterCompact()?this.gameOverRatingPromptFeedbackCompactHeight():
785this.gameOverRatingPromptFeedbackExpandedHeight():this.isGameOverRegisterCompact()?this.gameOverRatingPromptCompactHeight():this.gameOverRatingPromptExpandedHeight();this.cssSpace=(d,n)=>{if("function"!==typeof getComputedStyle||"undefined"===typeof document)return n;var m=getComputedStyle(document.documentElement);return parseInt(m.getPropertyValue(d),10)||n};this.responsiveGutter=()=>this.isPlayspaceCompact()?8:16;this.containerPadding=()=>this.cssSpace("--space-container",12);this.gameOverScreenGutter=
786()=>this.responsiveGutter();this.gameOverGutter=()=>this.containerPadding();this.gameOverGap=()=>this.actionButtonGap();this.gameOverPlayspaceHeight=()=>{var d=a.one(".playspace");return(d?d.getHeight():0)||window.innerHeight};this.gameOverVerticalGutterHeight=()=>2*this.gameOverScreenGutter();this.hasGameOverCondensedBreakpoint=()=>{var d=this.teamsOrPlayers().length;return 4===d||2===d};this.gameOverRankedRowHeightAddition=(d,n)=>{if(!this.ranked||!this.teams)return 0;n="number"===typeof n?n:this.teamsOrPlayers().sum();
787return(d?32:40)*n};this.actionButtonHeight=()=>this.isPlayspaceCompact()?32:40;this.cardSpotWidth=d=>(d=a.one("#spot-"+d))?Math.round(.71621622*d.getHeight()):0;this.cardActionButtonMaxWidthThreshold=()=>this.isPlayspaceCompact()?48:88;this.spotNodeWidth=d=>(d=a.one("#spot-"+d))?d.getWidth():0;this.cardActionButtonCountWidth=d=>d?this.spotNodeWidth(d):0;this.cardActionButtonMaxWidth=(d,n)=>{n=n||{};var m=this.cardActionButtonMaxWidthThreshold();d=this.cardSpotWidth(d);if(d>=m)return d;n=(n=this.cardActionButtonCountWidth(n.countSpotId))?
788d+this.actionButtonGap()+n:d;return n>=m?n:m};this.applyPlayAreaActionButtonSizing=d=>{d.width=16;d.minWidth=this.cardActionButtonMaxWidthThreshold;d.height=this.actionButtonHeight};this.applyCardActionButtonSizing=(d,n,m)=>{this.applyPlayAreaActionButtonSizing(d);d.minWidth=()=>Math.max(this.cardSpotWidth(n),this.cardActionButtonMaxWidthThreshold());d.maxWidth=()=>this.cardActionButtonMaxWidth(n,m)};this.resetPlayAreaButtonDimensions=(d,n)=>{n&&d&&d.spotid&&n.spots[d.spotid]&&(n=n.spots[d.spotid].calcPieceTargetDimensions(d),
789d.width=n[0],d.height=n[1],d.node.setStyles({width:d.width+"px",height:d.height+"px"}),d.updateNodeAttributes())};this.getPlayAreaButtonSpanBounds=(d,n)=>{var m=this.cardSpotWidth(n),H=null,c=null;d.forEach(function(e){if(e=a.one("#spot-"+e))e=e.getStyleAsNumber("left")+(e.getWidth()-m)/2,H=null===H?e:Math.min(H,e),c=null===c?e+m:Math.max(c,e+m)});return null===H||null===c?null:{left:Math.floor(H),width:Math.ceil(c)-Math.floor(H)}};this.positionPlayAreaButtons=(d,n)=>{n=n||{};d=(d||[]).filter(function(p){return p&&
790!p.destroyed&&p.node&&p.node._node});if(d.length)if(1===d.length&&n.spanSpotIds&&n.cardSpotId){var m=this.getPlayAreaButtonSpanBounds(n.spanSpotIds,n.cardSpotId);m&&(d[0].width=m.width,d[0].node.setStyles({left:m.left+"px",width:m.width+"px"}),d[0].updateNodeAttributes())}else if(m=a.one("#playspace")){d.forEach(p=>{this.resetPlayAreaButtonDimensions(p,n.table)});var H=this.actionButtonGap(),c=d.map(function(p){return p.node.getWidth()}),e=c.sum()+H*(d.length-1),h=Math.round((m.getWidth()-e)/2);d.forEach(function(p,
791t){p.node.setStyle("left",h+"px");h+=c[t]+H})}};this.bidMessageHeight=()=>this.isPlayspaceCompact()?48:56;this.bidMessageMaxSize=()=>this.isPlayspaceCompact()?20:24;this.gameOverActionButtonHeight=()=>this.actionButtonHeight();this.gameOverModalMaxWidth=()=>576;this.gameOverTopMargin=d=>(d?0:140)+this.gameOverGutter();this.gameOverRowGap=()=>
791this.gameOverGap();this.gameOverButtonGap=()=>this.gameOverGap();this.gameOverBottomMargin=()=>this.gameOverGutter();this.gameOverActionsHeight=()=>2*this.gameOverActionButtonHeight()+
792this.gameOverButtonGap();this.gameOverActionAnchorSpot=()=>this.shouldShowGameOverRegister()?"gameOverRegister":"gameOverNamePlate"+(this.teamsOrPlayers().length-1);this.gameOverNamePlateHeight=(d,n)=>(d?48:80)+this.gameOverRankedRowHeightAddition(d,n);this.gameOverRowsHeight=d=>this.teamsOrPlayers().reduce(function(n,m){return n+this.gameOverNamePlateHeight(d,m)}.bind(this),0)+(this.teamsOrPlayers().length-1)*this.gameOverRowGap();this.gameOverRegisterHeightAddition=d=>this.shouldShowGameOverRegister()?
793this.gameOverRowGap()+(d||this.shouldShowGameOverRatingPrompt()?this.gameOverRegisterHeight():this.gameOverRegisterExpandedHeight()):0;this.gameOverContentHeight=(d,n,m)=>this.gameOverTopMargin(d)+this.gameOverRowsHeight(n)+this.gameOverRegisterHeightAddition(m)+this.gameOverButtonGap()+this.gameOverActionsHeight()+this.gameOverBottomMargin();this.gameOverExpandedContentHeight=d=>this.gameOverContentHeight(d,!1,!1);this.isGameOverHeaderHidden=()=>this.hasGameOverCondensedBreakpoint()?this.gameOverPlayspaceHeight()<=
794this.gameOverContentHeight(!1,!0,!1)+this.gameOverVerticalGutterHeight():!1;this.isGameOverCondensed=()=>this.hasGameOverCondensedBreakpoint()?this.gameOverPlayspaceHeight()<=this.gameOverExpandedContentHeight(!1)+this.gameOverVerticalGutterHeight():!1;this.actionButtonGap=()=>this.cssSpace("--space-item-gap",8);this.actionButtonRowWidth=(d,n)=>d*n+(d-1)*this.actionButtonGap();this.overlayWidthForButtonRow=(d,n)=>this.actionButtonRowWidth(d,n)+2*this.containerPadding();this.modalMaxWidth=(d,n)=>{var m=
795a.one(".playspace");(m=m?m.getWidth():0)||"undefined"===typeof window||(m=a.wocg.playspaceWidth());if(!m)return d;n="number"===typeof n?n:this.responsiveGutter();var H=a.wocg.safeAreaLeft?a.wocg.safeAreaLeft():0,c=a.wocg.safeAreaRight?a.wocg.safeAreaRight():0;return Math.min(d,Math.max(0,m-2*n-H-c))};this.gameOverRegisterWidth=()=>Math.max(0,this.modalMaxWidth(this.gameOverModalMaxWidth(),this.gameOverScreenGutter())-2*this.gameOverGutter());this.isGameOverRegisterCompact=()=>400>=this.gameOverRegisterWidth();
796this.gameOverRegisterHeight=()=>this.shouldShowGameOverRatingPrompt()?this.gameOverRatingPromptHeight():this.isGameOverRegisterCompact()?this.gameOverRegisterCompactHeight():this.gameOverRegisterExpandedHeight();a.wocg.Layout.prototype.getSpotOrder=function(){var d=[],n="namePlate name likePlayer dislikePlayer mutePlayer scorePlate handScore gameScore trickStorage avatar timer timerText inviteAI inviteAIChat leaving hand chat dealerChip stats playerLiked support2 playerMore".split(" ");w.forEach(function(c){this.include.contains(c)||
797n.remove(c)}.bind(this));this.playerSpotDirectionsPriority[this.numPlayers].forEach(c=>{var e=this.playerSpotDirections[this.numPlayers].indexOf(c);d=d.concat(n.map(h=>h+e))});d.push("tram","activeSuit","gameOverBackdrop","gameOverBackground","gameOverTitleBackground","gameOverTitle","handOverBackdrop","handOverBackground","handOverTitleBackground","handOverTitle","handOverRoundLabel","handOverRoundNumber");var m="gameOverNamePlate gameOverAvatar gameOverAvatarTeammate gameOverMedal gameOverName gameOverLike gameOverLikeTeammate gameOverScore gameOverRankPlate gameOverRankName gameOverRank gameOverSkill gameOverRankPlateTeammate gameOverRankNameTeammate gameOverRankTeammate gameOverSkillTeammate".split(" "),
798H="handOverNamePlate handOverAvatar handOverAvatarTeammate handOverMedal handOverName handOverScore".split(" ");w.forEach(function(c){this.include.contains(c)||(m.remove(c),H.remove(c))}.bind(this));this.playerSpotDirections[this.teamsOrPlayers().length].forEach((c,e)=>{d=d.concat(m.map(h=>h+e))});this.playerSpotDirections[this.teamsOrPlayers().length].forEach((c,e)=>{d=d.concat(H.map(h=>h+e))});d.push("play","gameOverRegister","gameOverLeave","gameOverChat","gameOverPlayAgain");this.tutorial&&d.push("next",
799"leaveTutorial");q.forEach(function(c){this.include.contains(c)||d.remove(c)}.bind(this));d.push("dealDeck","offscreen");return d};a.wocg.Layout.prototype.getPlayerSpotPosition=function(d){return this.playerSpotDirections[this.numPlayers][d]};a.wocg.Layout.prototype.usesInlinePlayerScorePlate=function(d,n){return 0==d||"N"===n&&!this.usesNarrowPortraitTopPlayerLayout(n)};a.wocg.Layout.prototype.isTopPlayerPosition=function(d){return"N"===d||"NE"===d||"NW"===d};a.wocg.Layout.prototype.isRightEdgePlayerPosition=
800function(d){return"E"===d||"NE"===d};a.wocg.Layout.prototype.usesNarrowPortraitTopPlayerLayout=function(d){return"N"===d&&this.isPlayspacePortrait()&&640>=this.playspaceWidth()};a.wocg.Layout.prototype.usesSmallLandscapeTopPlayerLayout=function(){return this.isPlayspaceLandscape()&&this.isPlayspaceCompact("small")};a.wocg.Layout.prototype.usesTopPlayerFixedBand=function(d){return this.isTopPlayerPosition(d)&&this.isPlayspaceCompact()&&this.isPlayspaceLandscape()};a.wocg.Layout.prototype.usesTopPlayerScoreboardBand=
801function(d){return this.isTopPlayerPosition(d)&&!this.usesSmallLandscapeTopPlayerLayout()};a.wocg.Layout.prototype.createPlayerControlFadeOptions=function(){return{entrance:"fade",exit:"fade",fadeDuration:160}};a.wocg.Layout.prototype.applyPlayerSideButtonAnchor=function(d,n,m){d.yAlignedWith="namePlate"+n;this.isRightEdgePlayerPosition(m)?(d.xRightAlignedWith="namePlate"+n,d.leftInternalMargin=50):(d.xAlignedWith="namePlate"+n,d.leftInternalMargin=-50);d.topInternalMargin=-50};a.wocg.Layout.prototype.adjustPlayerEdgeIconX=
802function(d,n,m,H,c,e,h){return"N"!==d&&"S"!==d&&"W"!==d&&"E"!==d?{left
802:n,adjusted:!1}:n<e?{left:Math.max(e,H-6),adjusted:!0}:n+m>h?{left:Math.min(h-m,c-m+6),adjusted:!0}:{left:n,adjusted:!1}};a.wocg.Layout.prototype.playerNamePlateHeight=function(){return a.wocg.isPlayspaceCompact()?32:40};a.wocg.Layout.prototype.playerScorePlateHeight=function(){return a.wocg.isPlayspaceCompact()?20:24};a.wocg.Layout.prototype.centerPlayerNamePlateWidth=function(){return this.modalMaxWidth(400,this.responsiveGutter())};
803a.wocg.Layout.prototype.topInlinePlayerNamePlateWidth=function(){var d=this.playspaceWidth();return Math.min(400,Math.max(240,Math.floor(.48*d)))};a.wocg.Layout.prototype.playerNameTextWidthOffset=function(){return a.wocg.isPlayspaceCompact()?12:24};a.wocg.Layout.prototype.playerNameTextHeight=function(d){d=a.one("#spot-namePlate"+d);if(!d)return 0;d=d.getHeight();return 2*Math.round(.72*d/2)};a.wocg.Layout.prototype.playerNameTextMaxSize=function(){return a.wocg.isPlayspaceCompact()?20:24};a.wocg.Layout.prototype.playerScoreTextMaxSize=
804function(d,n){return this.usesInlinePlayerScorePlate(d,n)?this.playerNameTextMaxSize():16};a.wocg.Layout.prototype.inlineSplitScoreTextWidth=function(d){return Math.max(Math.floor(a.one("#spot-scorePlate"+d).getWidth()/2),0)};a.wocg.Layout.prototype.splitScoreTextGap=function(){return this.isPlayspaceCompact("small")?4:this.isPlayspaceCompact()?8:16};a.wocg.Layout.prototype.splitScoreTextWidth=function(d){d=a.one("#spot-scorePlate"+d).getWidth();var n=this.splitScoreTextGap();return Math.max(Math.floor((d-
8053*n)/2),0)};a.wocg.Layout.prototype.playerScoreTextHeight=function(d){return a.one("#spot-scorePlate"+d).getHeight()};a.wocg.Layout.prototype.scoreBoardFallbackBottom=function(){return this.responsiveGutter()+(this.isPlayspaceCompact()?68:96)};a.wocg.Layout.prototype.scoreBoardBottom=function(){var d=a.one("#scoreBoardWrapper"),n=a.one("#playspace");return d&&d._node&&n&&n._node&&(d=d._node.getBoundingClientRect(),n=n._node.getBoundingClientRect(),0<d.height)?Math.round(d.bottom-n.top):this.scoreBoardFallbackBottom()};
806a.wocg.Layout.prototype.scoreBoardTop=function(){var d=a.one("#scoreBoardWrapper"),n=a.one("#playspace");return d&&d._node&&n&&n._node&&(d=d._node.getBoundingClientRect(),n=n._node.getBoundingClientRect(),0<d.height)?Math.round(d.top-n.top):this.responsiveGutter()};a.wocg.Layout.prototype.topPlayerNamePlateBottom=function(){return this.scoreBoardFallbackBottom()};a.wocg.Layout.prototype.topPlayerNamePlateTop=function(){return this.topPlayerNamePlateBottom()-this.playerNamePlateHeight()};a.wocg.Layout.prototype.narrowPortraitTopPlayerNamePlateTop=
807function(){return this.responsiveGutter()+this.playerAvatarSize()};a.wocg.Layout.prototype.topPlayerAvatarAvailableSize=function(){return Math.max(0,this.topPlayerNamePlateBottom()-this.responsiveGutter())};a.wocg.Layout.prototype.playerAvatarSize=function(){var d=this.avatarSize();return 1<this.numPlayers||this.isPlayspaceCompact()&&this.isPlayspaceLandscape()?Math.min(d,this.topPlayerAvatarAvailableSize()):d};a.wocg.Layout.prototype.topPlayerAvatarSize=function(){return this.playerAvatarSize()};
808a.wocg.Layout.prototype.create=function(){var d={};this.include.contains("activeSuit")&&(d.activeSuit=this.createActiveSuitSpot());this.include.contains("tram")&&(d.tram=this.createTramSpot());
808this.include.contains("play")&&(d.play=this.createPlaySpot());d.dealDeck=this.createDealDeckSpot();this.playerSpotDirectionsPriority[this.numPlayers].forEach(n=>{n=this.playerSpotDirections[this.numPlayers].indexOf(n);Object.merge(d,this.createPlayerStandardSpots(n,this.getPlayerSpotPosition(n)))});Object.merge(d,
809this.createGameOverSpots());Object.merge(d,this.createHandOverSpots());this.tutorial&&(d.next=this.createNextSpot(),d.leaveTutorial=this.createLeaveTutorialSpot());d.offscreen=this.createOffscreenSpot();return d};a.wocg.Layout.prototype.createPlayerStandardSpots=function(d,n){var m={};m["namePlate"+d]=this.createPlayerNamePlateSpot(d,n);m["name"+d]=this.createPlayerNameSpot(d,n);m["support2"+d]=this.createPlayerSupportSpot(d,2,n);m["playerLiked"+d]=this.createPlayerLikedSpot(d,n);m["playerMore"+d]=
810this.createPlayerMoreSpot(d,n);this.include.contains("scorePlate")&&(m["scorePlate"+d]=this.createPlayerScorePlateSpot(d,n));this.include.contains("gameScore")&&(m["gameScore"+d]=this.createPlayerGameScoreSpot(d,n));this.include.contains("handScore")&&(m["handScore"+d]=this.createPlayerHandScoreSpot(d,n));this.include.contains("trickStorage")&&(m["trickStorage"+d]=this.createPlayerTrickStorageSpot(d,n));m["avatar"+d]=this.createPlayerAvatarSpot(d,n);m["stats"+d]=this.createPlayerStatsConfig(d);m["timer"+
811d]=this.createPlayerTimerSpot(d,n);m["timerText"+d]=this.createPlayerTimerTextSpot(d,n);m["inviteAI"+d]=this.createPlayerInviteAISpot(d);m["inviteAIChat"+d]=this.createPlayerInviteAIChatSpot(d,n);m["leaving"+d]=this.createPlayerLeavingSpot(d,n);m["likePlayer"+d]=this.createPlayerLikePlayerSpot(d,n);m["dislikePlayer"+d]=this.createPlayerDislikePlayerSpot(d,n);m["mutePlayer"+d]=this.createPlayerMutePlayerSpot(d,n);this.include.contains("dealerChip")&&(m["dealerChip"+d]=this.createPlayerDealerChipSpot(d,
812n));this.include.contains("hand")&&(m["hand"+d]=this.createPlayerHandSpot(d,n));m["chat"+d]=this.createPlayerChatSpot(d,n);return m};a.wocg.Layout.prototype.createOffscreenSpot=function(){var d={type:"offscreen",zIndex:8200,width:0,height:0};d.arrangement=this.createArrangement();d.alignment=this.createAlignment();return d};a.wocg.Layout.prototype.createActiveSuitSpot=function(){var d={type:"text",options:{wrap:!1},centerX:!0,bottomInternalMargin:50};d.top=this.playspaceCenter;d.width=14;d.height=
81314;d.ensureRatio=1;d.arrangement=this.createArrangement();d.alignment=this.createAlignment("center","center");return d};a.wocg.Layout.prototype.createNextSpot=function(){var d={type:"button",zIndex:3800};this.applyPlayAreaActionButtonSizing(d);d.xRightAlignedWith="namePlate0";d.bottomMargin=this.actionButtonGap;d.above="namePlate0";d.arrangement=this.createArrangement();d.alignment=this.createAlignment("left","center");return d};a.wocg.Layout.prototype.createLeaveTutorialSpot=function(){var d={type:"button",
814zIndex:3800};this.applyPlayAreaActionButtonSizing(d);d.xAlignedWith="namePlate0";d.bottomMargin=this.actionButtonGap;d.above="namePlate0";d.arrangement=this.createArrangement();d.alignment=this.createAlignment("right","center");return d};a.wocg.Layout.prototype.createPlayerNamePlateSpot=function(d,n){var m={},H=this.usesInlinePlayerScorePlate(d,n);m.type="namePlate";m.width=18;m.height=this.playerNamePlateHeight;m.zIndex=4001;m.ensureRatio=H?9.41:4;m.minWidth=this.isPlayspaceCompact()&&this.isPlayspacePortrait()?
81564:88;m.minHeight=this.playerNamePlateHeight;m.maxHeight=this.playerNamePlateHeight;m.maxWidth=400;m.arrangement=this.createArrangement();m.alignment=this.createAlignment();m.hoverLinkedWith=["likePlayer"+d,"dislikePlayer"+d,"mutePlayer"+d];"S"===n?(m.centerX=!0,m.bottom=100,m.bottomMargin=function(){var c=this.isPlayspaceCompact()?8:16;if(a.wocg.isTableBarSideLayout&&a.wocg.isTableBarSideLayout())return c;var e=a.one("#playspace")||a.one(".playspace"),h=a.one("#tableBarContainer");if(!e||!h)return c;
816e=e._node;var p=h._node;if(!(e&&p&&e.getBoundingClientRect&&p.getBoundingClientRect))return c;e=e.getBoundingClientRect();if("none"!==h.getStyle("display"))h=p.getBoundingClientRect().top;else{h=(h=a.one("#mainContainer"))&&h._node;if(!h||!h.getBoundingClientRect)return c;p=a.wocg.tableBarHeight?a.wocg.tableBarHeight():56;var t=a.wocg.belowViewportRenderOverflow()+a.wocg.safeAreaBottom()+(a.AdWidget.isAdRemoved()||!a.wocg.showStickyFooterAd()?c:a.wocg.getAdHeight()+c);h=h.getBoundingClientRect().bottom-
817t-p}return Math.max(0,c-Math.max(0,Math.round(h-e.bottom)))}.bind(this),H&&(m.width=this.centerPlayerNamePlateWidth.bind(this),m.ensureRatio=null)):"N"===n?(m.centerX=!0,m.top=function(){return this.usesNarrowPortraitTopPlayerLayout(n)?this.narrowPortraitTopPlayerNamePlateTop():this.usesTopPlayerScoreboardBand(n)||this.usesSmallLandscapeTopPlayerLayout()?this.topPlayerNamePlateTop():H?this.playerAvatarSize()-this.playerNamePlateHeight()+1:this.playerAvatarSize()}.bind(this),H&&(m.width=this.topInlinePlayerNamePlateWidth.bind(this),
818m.ensureRatio=null)):"W"===n?(m.left=this.isPlayspaceCompact()?"8px":"16px",m.top=this.playspaceCenter):"E"===n?(m.right=this.isPlayspaceCompact()?"8px":"16px",m.top=this.playspaceCenter):"NE"===n?(m.right=3===this.numPlayers||5===this.numPlayers?80:90,m.to
818p=function(){return this.usesSmallLandscapeTopPlayerLayout()?this.topPlayerNamePlateTop():this.usesTopPlayerScoreboardBand(n)?this.topPlayerNamePlateTop():this.playerAvatarSize()}.bind(this)):"NW"===n&&(m.left=3===this.numPlayers||5===this.numPlayers?
81920:10,m.top=function(){return this.usesSmallLandscapeTopPlayerLayout()?this.topPlayerNamePlateTop():this.usesTopPlayerScoreboardBand(n)?this.topPlayerNamePlateTop():this.playerAvatarSize()}.bind(this));return m};a.wocg.Layout.prototype.createPlayerNameSpot=function(d,n){var m={};n=this.usesInlinePlayerScorePlate(d,n);m.type="text";m.width=function(){return a.one("#spot-namePlate"+d).getWidth()-this.playerNameTextWidthOffset()}.bind(this);m.height=function(){return this.playerNameTextHeight(d)}.bind(this);
820m.zIndex=4002;m.shrinkWidth=n?70:0;m.options={maxSize:this.playerNameTextMaxSize,fontWeight:"bold"};n?(m.xAlignedWith="namePlate"+d,m.leftInternalMargin=10):m.xCenteredWith="namePlate"+d;m.yCenteredWith="namePlate"+d;m.arrangement=this.createArrangement();m.alignment=this.createAlignment();return m};a.wocg.Layout.prototype.createPlayerSupportSpot=function(d,n,m){n={type:"chip",height:"24px",width:"height",zIndex:4003};this.applyPlayerSideButtonAnchor(n,d,m);n.options=this.createPlayerControlFadeOptions();
821n.arrangement=this.createArrangement();n.alignment=this.createAlignment();return n};a.wocg.Layout.prototype.createPlayerLikedSpot=function(d,n){var m={type:"chip",height:"24px",width:"height",zIndex:4003};this.applyPlayerSideButtonAnchor(m,d,n);m.options=this.createPlayerControlFadeOptions();m.arrangement=this.createArrangement();m.alignment=this.createAlignment();return m};a.wocg.Layout.prototype.createPlayerMoreSpot=function(d,n){var m={type:"chip",height:"24px",width:"height",zIndex:4003};this.applyPlayerSideButtonAnchor(m,
822d,n);m.options=this.createPlayerControlFadeOptions();m.arrangement=this.createArrangement();m.alignment=this.createAlignment();return m};a.wocg.Layout.prototype.createPlayerLikePlayerSpot=function(d,n){var m={},H=this.usesTopPlayerFixedBand(n),c=this.isPlayspaceCompact();m.type="text";m.width=function(){var e=a.one("#spot-namePlate"+d).getWidth(),h=3*Math.round(e/3);return c&&!H?e:(h-12)/3};m.height=c?"20px":"24px";m.zIndex=4003;m.above="namePlate"+d;m.xAlignedWith="namePlate"+d;m.bottomMargin=c?
823"4px":"8px";m.options=c?{maxSize:14,lineHeight:20,fadeDuration:160}:{maxSize:16,lineHeight:24,fadeDuration:160};m.arrangement=this.createArrangement();m.alignment=this.createAlignment();m.hoverLinkedWith=["likePlayer"+d,"dislikePlayer"+d,"mutePlayer"+d];return m};a.wocg.Layout.prototype.createPlayerDislikePlayerSpot=function(d,n){var m={},H=this.usesTopPlayerFixedBand(n),c=this.isPlayspaceCompact();m.type="text";m.width=function(){var e=a.one("#spot-namePlate"+d).getWidth(),h=3*Math.round(e/3);return c&&
824!H?e:(h-12)/3};m.height=c?"20px":"24px";m.zIndex=4003;m.above=c&&!H?"likePlayer"+d:"namePlate"+d;m.xCenteredWith="namePlate"+d;m.bottomMargin=c?"4px":"8px";m.options=c?{maxSize:14,lineHeight:20,fadeDuration:160}:{maxSize:16,lineHeight:24,fadeDuration:160};m.arrangement=this.createArrangement();m.alignment=this.createAlignment();m.hoverLinkedWith=["likePlayer"+d,"dislikePlayer"+d,"mutePlayer"+d];return m};a.wocg.Layout.prototype.createPlayerMutePlayerSpot=function(d,n){var m={},H=this.usesTopPlayerFixedBand(n),
825c=this.isPlayspaceCompact();m.type="text";m.width=function(){var e=a.one("#spot-namePlate"+d).getWidth(),h=3*Math.round(e/3);return c&&!H?e:(h-12)/3};m.height=c?"20px":"24px";m.zIndex=4003;m.above=c&&!H?"dislikePlayer"+d:"namePlate"+d;m.xRightAlignedWith="namePlate"+d;m.bottomMargin=c?"4px":"8px";m.options=c?{maxSize:14,lineHeight:20,fadeDuration:160}:{maxSize:16,lineHeight:24,fadeDuration:160};m.arrangement=this.createArrangement();m.alignment=this.createAlignment();m.hoverLinkedWith=["likePlayer"+
826d,"dislikePlayer"+d,"mutePlayer"+d];return m};a.wocg.Layout.prototype.createPlayerScorePlateSpot=function(d,n){var m={},H=this.usesInlinePlayerScorePlate(d,n);m.type="scorePlate";m.width=function(){var c=H?this.playerNameTextWidthOffset():this.isPlayspaceCompact()?this.isPlayspacePortrait()?16:24:40;return a.one("#spot-namePlate"+d).getWidth()-c}.bind(this);m.height=this.playerScorePlateHeight;m.zIndex=4001;H&&(m.shrinkWidth=70);H?(m.yCenteredWith="namePlate"+d,m.xRightAlignedWith="namePlate"+d,m.rightInternalMargin=
82710):(m.below="namePlate"+d,m.xCenteredWith="namePlate"+d);
827m.arrangement=this.createArrangement();m.alignment=this.createAlignment();return m};a.wocg.Layout.prototype.createPlayerGameScoreSpot=function(d,n){var m={},H=this.usesInlinePlayerScorePlate(d,n),c=this.include.contains("handScore"),e=H&&!c?0:4;m.type="text";m.width=function(){return Math.max(a.one("#spot-scorePlate"+d).getWidth()-2*e,0)};m.height="scorePlate"+d;m.height=function(){return H?this.playerNameTextHeight(d):this.playerScoreTextHeight(d)}.bind(this);
828m.zIndex=4002;m.options={maxSize:function(){return this.playerScoreTextMaxSize(d,n)}.bind(this),lineHeight:function(){return H?this.playerNameTextHeight(d):this.playerScoreTextHeight(d)}.bind(this),fontWeight:"bold"};m.yCenteredWith=(H?"namePlate":"scorePlate")+d;this.include.contains("handScore")?(H?m.width=function(){return this.inlineSplitScoreTextWidth(d)}.bind(this):(m.width=function(){return this.splitScoreTextWidth(d)}.bind(this),m.rightMargin=function(){return this.splitScoreTextGap()}.bind(this)),
829m.xRightAlignedWith="scorePlate"+d):m.xCenteredWith="scorePlate"+d;m.arrangement=this.createArrangement();m.alignment=this.createAlignment();return m};a.wocg.Layout.prototype.createPlayerHandScoreSpot=function(d,n){var m={},H=this.usesInlinePlayerScorePlate(d,n),c=this.include.contains("gameScore"),e=H&&!c?0:4;m.type="text";m.width=function(){return Math.max(a.one("#spot-scorePlate"+d).getWidth()-2*e,0)};m.height="scorePlate"+d;m.height=function(){return H?this.playerNameTextHeight(d):this.playerScoreTextHeight(d)}.bind(this);
830m.zIndex=4002;m.options={maxSize:function(){return this.playerScoreTextMaxSize(d,n)}.bind(this),lineHeight:function(){return H?this.playerNameTextHeight(d):this.playerScoreTextHeight(d)}.bind(this),fontWeight:"bold"};m.yCenteredWith=(H?"namePlate":"scorePlate")+d;this.include.contains("gameScore")?(H?m.width=function(){return this.inlineSplitScoreTextWidth(d)}.bind(this):(m.width=function(){return this.splitScoreTextWidth(d)}.bind(this),m.leftMargin=function(){return this.splitScoreTextGap()}.bind(this)),
831m.xAlignedWith="scorePlate"+d):m.xCenteredWith="scorePlate"+d;m.arrangement=this.createArrangement();m.alignment=this.createAlignment();return m};a.wocg.Layout.prototype.createPlayerTrickStorageSpot=function(d,n){n={type:"card",width:0,height:0,zIndex:4002};d=(this.include.contains("handScore")?"handScore":"scorePlate")+d;n.xCenteredWith=d;n.yCenteredWith=d;n.arrangement=this.createArrangement();n.alignment=this.createAlignment();return n};a.wocg.Layout.prototype.createPlayerAvatarSpot=function(d,
832n){var m={},H=this.usesInlinePlayerScorePlate(d,n),c=this.usesTopPlayerFixedBand(n),e=this.usesTopPlayerScoreboardBand(n),h=this.usesNarrowPortraitTopPlayerLayout(n);m.type="avatar";m.width=this.playerAvatarSize.bind(this);m.height=this.playerAvatarSize.bind(this);m.zIndex=H?4002:4E3;m.bottomInternalMargin=-1;H||c||e&&!h?(m.yBottomAlignedWith="namePlate"+d,0==d&&(m.topMargin=this.isPlayspaceCompact()?"8px":"16px"),m.bottomInternalMargin=c||e?"N"===n?"1px":0:0==d?0:"1px"):m.above="namePlate"+d;m.xCenteredWith=
833"namePlate"+d;m.arrangement=this.createArrangement();m.alignment=this.createAlignment("center","bottom");m.hoverLinkedWith=["likePlayer"+d,"dislikePlayer"+d,"mutePlayer"+d];return m};a.wocg.Layout.prototype.createPlayerHandSpot=function(d,n){var m={},H=this.usesSmallLandscapeTopPlayerLayout(),c=this.isPlayspacePortrait()&&this.isPlayspaceCompact("small"),e=this.isPlayspaceLandscape()&&a.wocg.isTableBarSideLayout&&a.wocg.isTableBarSideLayout(),h=H?24:48,p=H?8:0;m.type="card";m.zIndex=3E3;"S"===n?(m.zIndex=
8343200,m.width=H?60:92,m.height=this.avatarSize.bind(this),m.maxHeight=240,m.ensureMinRatio=2.4,m.growHeight=48,c?m.growHeight=40:H&&(m.growHeight=32),m.yAlignedWith="avatar"+d,m.xCenteredWith="avatar"+d,m.bottomMargin=function(){return H||e?Math.max(0,this.avatarSize()-this.playerAvatarSize()):0}.bind(this),m.bottomInternalMargin=c?56:44,m.arrangement=this.createArrangement("fan"),m.arrangement.arcDirection="N",e&&(m.arrangement.arcAnchorBottom=!0),m.alignment=this.createAlignment("center","top")):
835"N"===n||"NE"===n||"NW"===n?(n=this.usesInlinePlayerScorePlate(d,n),m.width="hand0",m.height="hand0",m.yBottomAlignedWith=(n?"namePlate":this.include.contains("scorePlate")?"scorePlate":"namePlate")+d,m.xCenteredWith=(n?"namePlate":"name")+d,m.to
835pInternalMargin=16,m.arrangement=this.createArrangement("fan","west"),m.arrangement.arcDirection="S",a.wocg.ENABLE_ROTATION&&(m.arrangement.rotate=180),m.arrangement.random=!0,m.shrinkHeight=h,m.shrinkWidth=h,m.maxWidth=function(t){return Math.min(.72*t.playspace.getWidth(),
836.44*t.playspace.getHeight())},m.alignment=this.createAlignment("center","bottom")):"W"===n?(m.width={heightOf:"hand0"},m.height={widthOf:"hand0"},m.xRightAlignedWith="namePlate"+d,m.yAlignedWith="namePlate"+d,m.leftInternalMargin=16,m.bottomInternalMargin=50-p,m.arrangement=this.createArrangement("fan","south"),m.arrangement.arcDirection="E",a.wocg.ENABLE_ROTATION&&(m.arrangement.rotate=90),m.arrangement.random=!0,m.shrinkHeight=h,m.shrinkWidth=h,m.maxHeight=function(t){return Math.min(.72*t.playspace.getWidth(),
837.44*t.playspace.getHeight())},m.alignment=this.createAlignment("right","center")):"E"===n&&(m.width={heightOf:"hand0"},m.height={widthOf:"hand0"},m.xAlignedWith="namePlate"+d,m.yAlignedWith="namePlate"+d,m.rightInternalMargin=16,m.bottomInternalMargin=50-p,m.arrangement=this.createArrangement("fan","north"),m.arrangement.arcDirection="W",a.wocg.ENABLE_ROTATION&&(m.arrangement.rotate=-90),m.arrangement.random=!0,m.shrinkHeight=h,m.shrinkWidth=h,m.maxHeight=function(t){return Math.min(.72*t.playspace.getWidth(),
838.44*t.playspace.getHeight())},m.alignment=this.createAlignment("left","center"));m.arrangement&&(m.arrangement.spreadBySelectability=!0);return m};a.wocg.Layout.prototype.createPlayerChatSpot=function(d,n){return this.createChatBubbleConfig("avatar"+d,n,!0)};a.wocg.Layout.prototype.applyPlayerTableRoundChipAnchor=function(d,n,m){var H=function(){var c=a.one("#spot-namePlate"+n),e=a.one("#playspace")||a.one(".playspace");if(!c||!e)return{offsetX:0,adjusted:!1};var h=this.tableRoundChipSize(),p=c.getStyleAsNumber("left"),
839t=p+c.getWidth();c=this.isRightEdgePlayerPosition(m)?p-h/2:t-h/2;e=this.adjustPlayerEdgeIconX(m,c,h,p,t,0,e.getWidth());return{offsetX:e.left-c,adjusted:e.adjusted}}.bind(this);this.isRightEdgePlayerPosition(m)?(d.xAlignedWith="namePlate"+n,d.leftInternalMargin=-50):(d.xRightAlignedWith="namePlate"+n,d.leftInternalMargin=50);d.modifyX=function(){return H().offsetX};d.above="namePlate"+n;d.topInternalMargin=50;d.modifyY=function(){return H().adjusted?-2:0}};a.wocg.Layout.prototype.createPlayerTimerSpot=
840function(d,n){var m={type:"timer"};this.applyTableRoundChipSizing(m);m.zIndex=4002;this.applyPlayerTableRoundChipAnchor(m,d,n);m.arrangement=this.createArrangement();m.alignment=this.createAlignment();return m};a.wocg.Layout.prototype.createPlayerTimerTextSpot=function(d,n){n={type:"text"};n.width="timer"+d;n.height="timer"+d;n.zIndex=4003;n.xCenteredWith="timer"+d;n.yCenteredWith="timer"+d;n.shrinkWidth=32;n.shrinkHeight=32;n.arrangement=this.createArrangement();n.alignment=this.createAlignment();
841return n};a.wocg.Layout.prototype.createPlayerInviteAISpot=function(d){var n={},m=function(){return this.isPlayspaceCompact()?24:32}.bind(this);n.type="avatar";n.width=m;n.height=function(){return m()/.92};n.zIndex=4E3;n.xRightAlignedWith="namePlate"+d;n.rightMargin=function(){return this.isPlayspaceCompact()?4:8}.bind(this);n.above="namePlate"+d;n.topInternalMargin="1px";n.arrangement=this.createArrangement();n.alignment=this.createAlignment("center","bottom");n.options={fadeDuration:160};return n};
842a.wocg.Layout.prototype.createPlayerInviteAIChatSpot=function(d,n){return this.createChatBubbleConfig("inviteAI"+d,n)};a.wocg.Layout.prototype.createPlayerLeavingSpot=function(d,n){var m={type:"chip",height:"24px",width:"height",zIndex:4003};this.applyPlayerSideButtonAnchor(m,d,n);m.options=this.createPlayerControlFadeOptions();m.arrangement=this.createArrangement();m.alignment=this.createAlignment();return m};a.wocg.Layout.prototype.createPlayerDealerChipSpot=function(d,n){var m={type:"chip"};this.applyTableRoundChipSizing(m);
843m.zIndex=4002;this.applyPlayerTableRoundChipAnchor(m,d,n);m.options={entrance:"fade",fadeDuration:160};m.arrangement=this.createArrangement();m.alignment=this.createAlignment();return m};a.wocg.Layout.prototype.createPlaySpot=function(){var d={type:"card",width:1,height:"width",samePieceDimensionsAs:"hand0",pieceTiers:[13],zIndex:3099,staticZIndex:!0,centerX:!0,bottomInternalMargin:50};d.top=this.playspaceCenter;
843d.arrangement=this.createArrangement("played");d.arrangement.factorN=1;d.arrangement.factorS=
8441;d.alignment=this.createAlignment("center","center");return d};a.wocg.Layout.prototype.createDealDeckSpot=function(){var d={type:"card",width:"hand0",height:"hand0",pieceTiers:[13],zIndex:3098,staticZIndex:!0,centerX:!0,bottomInternalMargin:50};d.top=this.playspaceCenter;d.arrangement=this.createArrangement();d.alignment=this.createAlignment("center","center");return d};a.wocg.Layout.prototype.createTramSpot=function(){var d={type:"button",zIndex:3800};this.applyPlayAreaActionButtonSizing(d);d.centerX=
845!0;d.bottomInternalMargin=50;d.top=this.playspaceCenter;d.arrangement=this.createArrangement();d.alignment=this.createAlignment("center","center");return d};a.wocg.Layout.prototype.createGameOverSpots=function(){var d={};d.gameOverBackdrop=this.createGameOverBackdrop();d.gameOverBackground=this.createGameOverBackground();d.gameOverTitleBackground=this.createGameOverTitleBackground();d.gameOverTitle=this.createGameOverTitle();for(var n=0;n<this.teamsOrPlayers().length;n++)Object.merge(d,this.createGameOverRankSpots(n));
846d.gameOverRegister=this.createGameOverRegister();d.gameOverLeave=this.createGameOverLeave();d.gameOverChat=this.createGameOverChat();d.gameOverPlayAgain=this.createGameOverPlayAgain();return d};a.wocg.Layout.prototype.createHandOverSpots=function(){var d={};d.handOverBackdrop=this.createHandOverBackdrop();d.handOverBackground=this.createHandOverBackground();d.handOverTitleBackground=this.createHandOverTitleBackground();d.handOverTitle=this.createHandOverTitle();d.handOverRoundLabel=this.createHandOverRoundLabel();
847d.handOverRoundNumber=this.createHandOverRoundNumber();for(var n=0;n<this.teamsOrPlayers().length;n++)Object.merge(d,this.createHandOverRankSpots(n));return d};a.wocg.Layout.prototype.createGameOverBackdrop=function(){var d={type:"backdrop",width:100,height:100};d.maxWidth=function(){return this.modalMaxWidth(this.gameOverModalMaxWidth(),this.gameOverScreenGutter())}.bind(this);d.maxHeight=function(){return this.gameOverContentHeight(this.isGameOverHeaderHidden(),this.isGameOverCondensed(),!0)}.bind(this);
848d.zIndex=9600;d.centerX=!0;d.centerY=!0;d.arrangement=this.createArrangement();d.alignment=this.createAlignment();return d};a.wocg.Layout.prototype.createGameOverRegister=function(){var d={type:"backdrop",inside:"gameOverBackdrop",zIndex:9603};d.width=function(){return this.gameOverRegisterWidth()}.bind(this);d.height=this.gameOverRegisterHeight;d.below="gameOverNamePlate"+(this.teamsOrPlayers().length-1);d.topMargin=this.gameOverRowGap;d.xCenteredWith="gameOverBackdrop";d.options={skipBackground:!0};
849d.arrangement=this.createArrangement();d.alignment=this.createAlignment();return d};a.wocg.Layout.prototype.createGameOverBackground=function(){var d={type:"backdrop",zIndex:9100,width:function(){return a.one("#mainContainer").getWidth()},height:function(){return a.one("#mainContainer").getHeight()},top:0,left:0,subtractPlayspaceX:!0,subtractPlayspaceY:!0,options:{skipBackground:!0}};d.arrangement=this.createArrangement();d.alignment=this.createAlignment();return d};a.wocg.Layout.prototype.createGameOverTitleBackground=
850function(){var d={type:"lottie",inside:"gameOverBackdrop",zIndex:9601,width:"320px"};d.height=function(){return this.isGameOverHeaderHidden()?0:140}.bind(this);d.centerX=!0;d.lottieConfig={path:a.wocg.buildAssetImageURL("images/gameOverHeader.json")};d.arrangement=this.createArrangement();d.alignment=this.createAlignment();return d};a.wocg.Layout.prototype.createGameOverTitle=function(){var d={type:"text",inside:"gameOverBackdrop",zIndex:9601,options:{maxSize:24,lineHeight:44},width:"160px",centerX:!0,
851height:"44px"};d.top=function(){return this.isGameOverHeaderHidden()?1E4:96}.bind(this);d.arrangement=this.createArrangement();d.alignment=this.createAlignment();return d};a.wocg.Layout.prototype.createGameOverRankSpots=function(d){var n={};n["gameOverNamePlate"+d]=this.createGameOverNamePlate(d);n["gameOverAvatar"+d]=this.createGameOverAvatar(d);n["gameOverAvatarTeammate"+d]=this.createGameOverAvatar(d,!0);n["gameOverMedal"+d]=this.createGameOverMedal(d);n["gameOverName"+d]=this.createGameOverName(d);
852n["gameOverLike"+d]=this.createGameOverLike(d);n["gameOverLikeTeammate"+d]=this.createGameOverLike(d,!0);n["gameOverScore"+d]=this.createGameOverScore(d);n["gameOverRankPlate"+d]=this.createGameOverRankPlate(d);n["gameOverRankName"+d]=this.createGameOverRankName(d);n["gameOverRank"+d]=this.createGameOverRank(d);n["gameOverSkill"+d]=this.createGameOverSkill(d);n["gameOverRankPlateTeammate"+d]=this.createGameOverRankPlate(d,!0);n["gameOverRankNameTeammate"+d]=this.createGameOverRankName(d,!0);n["gameOverRankTeammate"+
853d]=this.createGameOverRank(d,!0);n["gameOverSkillTeammate"+d]=this.createGameOverSkill(d,!0);return n};a.wocg.Layout.prototype.createGameOverNamePlate=function(d,n){n={type:"namePlate",inside:"gameOverBackdrop"};n.width=function(){return a.one("#spot-gameOverBackdrop").getWidth()-2*this.gameOverGutter()}.bind(this);n.height=function(){return this.gameOverNamePlateHeight(this.isGameOverCondensed(),this.teamsOrPlayers()[d])}.bind(this);n.zIndex=9600;0===d?n.top=function(){return this.gameOverTopMargin(this.isGameOverHeaderHidden())}.bind(this):
854(n.below="gameOverNamePlate"+(d-1),n.topMargin=this.gameOverRowGap);n.xCenteredWith="gameOverBackdrop";n.arrangement=this.createArrangement();n.alignment=this.createAlignment();return n};a.wocg.Layout.prototype.createGameOverAvatar=function(d,n){var m={type:"avatar"};m.inside="gameOverNamePlate"+d;m.zIndex=9602;m.width=function(){return this.isGameOverCondensed()?44:72}.bind(this);m.height=function(){return this.isGameOverCondensed()?48:80}.bind(this);m.right=this.gameOverGutter;n&&(m.right=function(){return(this.isGameOverCondensed()?
85544:72)+this.gameOverGutter()}.bind(this));m.arrangement=this.createArrangement();m.alignment=this.createAlignment("center","bottom");return m};a.wocg.Layout.prototype.createGameOverMedal=function(d){var n={type:"lottie"};n.inside="gameOverNamePlate"+d;n.zIndex=9602;n.width=function(){return this.isGameOverCondensed()?40:56}.bind(this);n.height=function(){return this.isGameOverCondensed()?32:48}.bind(this);n.top=function(){return this.isGameOverCondensed()?8:16}.bind(this);n.left="4px";n.arrangement=
856this.createArrangement();n.alignment=this.createAlignment("center","center");n.lottieConfig={path:a.wocg.buildAssetImageURL(`pieces/medal/classic/${d+1}.json`)};return n};a.wocg.Layout.prototype.createGameOverName=function(d){var n={type:"text"};n.inside="gameOverNamePlate"+d;n.zIndex=9602;n.options={maxSize:function(){return this.isGameOverCondensed()?16:20}.bind(this),lineHeight:function(){return this.isGameOverCondensed()?20:24}.bind(this)};n.height=function(){return this.isGameOverCondensed()?
85720:24}.bind(this);n.width=function(){return a.one("#spot-gameOverNamePlate"+d).getWidth()-8-a.one("#spot-gameOverMedal"+d).getWidth()-8-a.one("#spot-gameOverAvatar"+d).getWidth()};n.rightOf="gameOverMedal"+d;n.leftMargin="0px";n.top=function(){return this.isGameOverCondensed()?4:16}.bind(this);n.arrangement=this.createArrangement();n.alignment=this.createAlignment();return n};a.wocg.Layout.prototype.createGameOverLike=function(d,n){var m={},H=this.isPlayspaceCompact();m.type="text";m.zIndex=9605;
858m.options=H?{maxSize:14,lineHeight:20,fadeDuration:160}:{maxSize:16,lineHeight:24,fadeDuration:160};m.height=H?"20px":"24px";m.width=H?"36px":"64px";d=n?"gameOverAvatarTeammate"+d:"gameOverAvatar"+d;m.yBottomAlignedWith=d;m.xCenteredWith=d;m.bottomMargin=this.gameOverGap;m.arrangement=this.createArrangement();m.alignment=this.createAlignment("center","center");return m};a.wocg.Layout.prototype.createGameOverScore=function(d){var n={type:"text",inside:"gameOverBackdrop",zIndex:9601};n.options={maxSize:function(){return this.isGameOverCondensed()?
85916:20}.bind(this),lineHeight:function(){return this.isGameOverCondensed()?20:24}.bind(this)};n.width="gameOverName"+d;n.xCenteredWith="gameOverName"+d;n.height="gameOverName"+d;n.below="gameOverName"+d;n.arrangement=this.createArrangement();n.alignment=this.createAlignment();return n};a.wocg.Layout.prototype.createGameOverRankPlate=function(d,n){var m={type:"namePlate"};m.inside="gameOverNamePlate"+d;m.zIndex=9603;m.width=function(){return a.one("#spot-gameOverNamePlate"+d).getWidth()-2*this.gameOverGutter()}.bind(this);
860m.height=function(){return this.isGameOverCondensed()?32:40}.bind(this);m.left=this.gameOverGutter;m.below=n?"gameOverRankPlate"+d:"gameOverAvatar"+d;
860m.arrangement=this.createArrangement();m.alignment=this.createAlignment();return m};a.wocg.Layout.prototype.createGameOverRankName=function(d,n){var m={type:"text"};m.inside="gameOverNamePlate"+d;m.zIndex=9603;m.options={maxSize:function(){return this.isGameOverCondensed()?12:16}.bind(this),lineHeight:function(){return this.isGameOverCondensed()?32:
86140}.bind(this),fontWeight:"bold"};m.height=function(){return this.isGameOverCondensed()?32:40}.bind(this);m.width=function(){return a.one("#spot-gameOverNamePlate"+d).getWidth()-this.gameOverGutter()}.bind(this);m.left=this.gameOverGutter;m.below=n?"gameOverRankName"+d:"gameOverAvatar"+d;m.arrangement=this.createArrangement();m.alignment=this.createAlignment();return m};a.wocg.Layout.prototype.createGameOverRank=function(d,n){var m={type:"text"};m.inside="gameOverNamePlate"+d;m.zIndex=9603;m.options=
862{maxSize:12,lineHeight:20,fontWeight:"bold"};m.height="20px";m.maxWidth="120px";this.ranked&&!this.teams?(m.width="gameOverName"+d,m.xCenteredWith="gameOverName"+d,m.yCenteredWith="gameOverName"+d):(m.width="gameOverRankName"+d,m.xCenteredWith="gameOverRankName"+(n?"Teammate":"")+d,m.yCenteredWith="gameOverRankName"+(n?"Teammate":"")+d);m.arrangement=this.createArrangement();m.alignment=this.createAlignment();return m};a.wocg.Layout.prototype.createGameOverSkill=function(d,n){var m={type:"text"};
863m.inside="gameOverNamePlate"+d;m.zIndex=9603;m.options={maxSize:12,lineHeight:20,fontWeight:"bold"};m.height="20px";m.maxWidth="120px";this.ranked&&!this.teams?(m.width="gameOverName"+d,m.xCenteredWith="gameOverName"+d,m.yCenteredWith="gameOverName"+d):(m.width="gameOverRankName"+d,m.xCenteredWith="gameOverRankName"+(n?"Teammate":"")+d,m.yCenteredWith="gameOverRankName"+(n?"Teammate":"")+d);m.arrangement=this.createArrangement();m.alignment=this.createAlignment();return m};a.wocg.Layout.prototype.createGameOverLeave=
864function(){var d={type:"button",inside:"gameOverBackdrop",zIndex:9604,width:"40px"};d.height=this.gameOverActionButtonHeight;d.minWidth=function(){return(a.one("#spot-"+this.gameOverActionAnchorSpot()).getWidth()-this.gameOverGap())/2}.bind(this);d.below=this.gameOverActionAnchorSpot();d.topMargin=this.gameOverButtonGap;d.xAlignedWith=this.gameOverActionAnchorSpot();d.arrangement=this.createArrangement();d.alignment=this.createAlignment("left","top");return d};a.wocg.Layout.prototype.createGameOverChat=
865function(){var d={type:"button",inside:"gameOverBackdrop",zIndex:9604,width:"gameOverLeave"};d.height=this.gameOverActionButtonHeight;d.minWidth=function(){return(a.one("#spot-"+this.gameOverActionAnchorSpot()).getWidth()-this.gameOverGap())/2}.bind(this);d.yAlignedWith="gameOverLeave";d.xRightAlignedWith=this.gameOverActionAnchorSpot();d.arrangement=this.createArrangement();d.alignment=this.createAlignment("left","top");return d};a.wocg.Layout.prototype.createGameOverPlayAgain=function(){var d={type:"button",
866inside:"gameOverBackdrop",zIndex:9604};d.width=function(){return a.one("#spot-"+this.gameOverActionAnchorSpot()).getWidth()}.bind(this);d.height=this.gameOverActionButtonHeight;d.below="gameOverLeave";d.topMargin=this.gameOverButtonGap;d.xAlignedWith=this.gameOverActionAnchorSpot();d.arrangement=this.createArrangement();d.alignment=this.createAlignment("left","top");return d};a.wocg.Layout.prototype.createHandOverBackdrop=function(){var d={type:"backdrop",width:100,height:100};d.maxWidth=function(){return this.modalMaxWidth(this.handOverModalMaxWidth(),
867this.handOverScreenGutter())}.bind(this);d.maxHeight=function(){return this.handOverContentHeight(this.isHandOverHeaderHidden(),this.isHandOverCondensed())}.bind(this);d.zIndex=9600;d.centerX=!0;d.centerY=!0;d.arrangement=this.createArrangement();d.alignment=this.createAlignment();return d};a.wocg.Layout.prototype.createHandOverBackground=function(){var d={type:"backdrop",zIndex:9100,width:function(){return a.one("#mainContainer").getWidth()},height:function(){return a.one("#mainContainer").getHeight()},
868top:0,left:0,subtractPlayspaceX:!0,subtractPlayspaceY:!0,options:{skipBackground:!0}};
868d.arrangement=this.createArrangement();d.alignment=this.createAlignment();return d};a.wocg.Layout.prototype.createHandOverTitleBackground=function(){var d={type:"lottie",inside:"handOverBackdrop",zIndex:9601,width:"320px"};d.height=function(){return this.isHandOverHeaderHidden()?0:140}.bind(this);d.centerX=!0;d.topInternalMargin=-10;d.lottieConfig={path:a.wocg.buildAssetImageURL("images/handOverHeader.json")};d.arrangement=
869this.createArrangement();d.alignment=this.createAlignment();return d};a.wocg.Layout.prototype.createHandOverTitle=function(){var d={type:"text",inside:"handOverBackdrop",zIndex:9601,options:{maxSize:24,lineHeight:32},width:"160px",centerX:!0,height:"32px"};d.top=function(){return this.isHandOverHeaderHidden()?1E4:88}.bind(this);d.arrangement=this.createArrangement();d.alignment=this.createAlignment();return d};a.wocg.Layout.prototype.createHandOverRoundLabel=function(){var d={type:"text",inside:"handOverBackdrop",
870zIndex:9602,options:{maxSize:16,lineHeight:16,fontWeight:"bold"},width:"80px",centerX:!0,height:"16px"};d.top=function(){return this.isHandOverHeaderHidden()?1E4:68}.bind(this);d.arrangement=this.createArrangement();d.alignment=this.createAlignment();return d};a.wocg.Layout.prototype.createHandOverRoundNumber=function(){var d={type:"text",inside:"handOverBackdrop",zIndex:9602,options:{maxSize:32,lineHeight:40,fontWeight:"bold"},width:"80px",centerX:!0,height:"40px"};d.top=function(){return this.isHandOverHeaderHidden()?
8711E4:38}.bind(this);d.arrangement=this.createArrangement();d.alignment=this.createAlignment();return d};a.wocg.Layout.prototype.createHandOverRankSpots=function(d){var n={};n["handOverNamePlate"+d]=this.createHandOverNamePlate(d);n["handOverAvatar"+d]=this.createHandOverAvatar(d);n["handOverAvatarTeammate"+d]=this.createHandOverAvatar(d,!0);n["handOverMedal"+d]=this.createHandOverMedal(d);n["handOverName"+d]=this.createHandOverName(d);n["handOverScore"+d]=this.createHandOverScore(d);return n};a.wocg.Layout.prototype.createHandOverNamePlate=
872function(d,n){n={type:"namePlate",inside:"handOverBackdrop"};n.width=function(){return a.one("#spot-handOverBackdrop").getWidth()-2*this.handOverGutter()}.bind(this);n.height=function(){return this.handOverNamePlateHeight(this.isHandOverCondensed())}.bind(this);n.zIndex=9600;0===d?n.topMargin=function(){return this.handOverTopMargin(this.isHandOverHeaderHidden())}.bind(this):(n.below="handOverNamePlate"+(d-1),n.topMargin=this.handOverRowGap);n.xCenteredWith="handOverBackdrop";n.arrangement=this.createArrangement();
873n.alignment=this.createAlignment();return n};a.wocg.Layout.prototype.createHandOverAvatar=function(d,n){var m={type:"avatar"};m.inside="handOverNamePlate"+d;m.zIndex=9602;m.width=function(){return this.isHandOverCondensed()?44:72}.bind(this);m.height=function(){return this.isHandOverCondensed()?48:80}.bind(this);m.right=this.handOverGutter;m.bottomInternalMargin=2;n&&(m.right=function(){return(this.isHandOverCondensed()?44:72)+this.containerPadding()}.bind(this));m.arrangement=this.createArrangement();
874m.alignment=this.createAlignment("center","bottom");return m};a.wocg.Layout.prototype.createHandOverMedal=function(d){var n={type:"lottie"};n.inside="handOverNamePlate"+d;n.zIndex=9602;n.width=function(){return this.isHandOverCondensed()?40:56}.bind(this);n.height=function(){return this.isHandOverCondensed()?32:48}.bind(this);n.top=function(){return this.isHandOverCondensed()?8:16}.bind(this);n.left="4px";n.arrangement=this.createArrangement();n.alignment=this.createAlignment("center","center");n.lottieConfig=
875{path:a.wocg.buildAssetImageURL(`pieces/medal/classic/${d+1}.json`)};return n};a.wocg.Layout.prototype.createHandOverName=function(d){var n={type:"text"};n.inside="handOverNamePlate"+d;n.zIndex=9602;n.options={maxSize:function(){return this.isHandOverCondensed()?16:20}.bind(this),lineHeight:function(){return this.isHandOverCondensed()?20:24}.bind(this)};n.height=function(){return this.isHandOverCondensed()?20:24}.bind(this);n.width=function(){return a.one("#spot-handOverNamePlate"+d).getWidth()-8-
876a.one("#spot-handOverMedal"+d).getWidth()-8-a.one("#spot-handOverAvatar"+d).getWidth()};n.rightOf="handOverMedal"+d;n.leftMargin="0px";n.top=function(){return this.isHandOverCondensed()?4:16}.bind(this);
876n.arrangement=this.createArrangement();n.alignment=this.createAlignment();return n};a.wocg.Layout.prototype.createHandOverScore=function(d){var n={type:"text",inside:"handOverBackdrop",zIndex:9601};n.options={maxSize:function(){return this.isHandOverCondensed()?16:20}.bind(this),lineHeight:function(){return this.isHandOverCondensed()?
87720:24}.bind(this)};n.width="handOverName"+d;n.xCenteredWith="handOverName"+d;n.height="handOverName"+d;n.below="handOverName"+d;n.arrangement=this.createArrangement();n.alignment=this.createAlignment();return n};a.wocg.Layout.prototype.createArrangement=function(d,n){var m={};m.type=d||"stack";"fan"===d&&(m.direction=n||"east",m.arc=a.wocg.ENABLE_ROTATION);"played"===d&&(m.sources=[].pushSequence(0,this.numPlayers-1).map(function(H){return"hand"+H}),m.offset=35,m.jitter=10);return m};a.wocg.Layout.prototype.createAlignment=
878function(d,n){var m={};m.x=d||"center";m.y=n||"center";return m};a.wocg.Layout.prototype.createPlayerStatsConfig=function(d){var n={},m=this.usesInlinePlayerScorePlate(d,this.getPlayerSpotPosition(d));n.type="htmlTable";n.hoverLinkedWith=["likePlayer"+d,"dislikePlayer"+d,"mutePlayer"+d];n.width="namePlate"+d;n.height="namePlate"+d;n.growHeight=100;n.shrinkWidth=24;m&&(n.width="namePlate"+d,n.growHeight=0,n.shrinkHeight=24,n.shrinkWidth=12);n.zIndex=4001;n.above="namePlate"+d;n.xCenteredWith="namePlate"+
879d;n.arrangement=this.createArrangement();n.alignment=this.createAlignment("center","bottom");return n};a.wocg.Layout.prototype.shouldTopInviteAIChatOpenLeft=function(d,n){d=a.one("#spot-"+d);var m=a.one("#playspace")||a.one(".playspace");if(d&&m&&d._node&&m._node&&d._node.getBoundingClientRect&&m._node.getBoundingClientRect){d=d._node.getBoundingClientRect();var H=m._node.getBoundingClientRect();m=H.right-d.right-8;d=d.left-H.left-8;return m<n&&d>m}return this.isPlayspaceCompact()&&this.isPlayspaceLandscape()};
880a.wocg.Layout.prototype.createChatBubbleConfig=function(d,n,m){var H={},c=d.match(/\d+$/),e=c?parseInt(c[0],10):null;c=d.replace("avatar","namePlate");e=m&&"N"===n&&null!==e&&this.usesInlinePlayerScorePlate(e,n);H.type="chatBubble";H.width=()=>{var h=a.one(".playspace");h=h?h.getWidth():this.playspaceWidth();return 360>h?120:480>h?140:900>h?160:1200>h?180:1600>h?240:320};H.height=()=>180<=H.width()?.42857143*H.width():.75*H.width();H.options={wrap:!0,fadeDuration:160};H.zIndex=8951;if("S"===n||"W"===
881n)H.rightOf=d,H.above=d,H.options.direction="sw",m?"S"===n?(H.above=d.replace("avatar","namePlate"),H.bottomMargin=function(){return this.actionButtonHeight()+2*this.actionButtonGap()}.bind(this),H.options.direction="me"):(delete H.above,H.yAlignedWith=d.replace("avatar","namePlate"),H.topMargin=this.actionButtonGap,H.options.direction="nw"):"W"===n?(delete H.above,H.below=d,H.options.direction="nw",H.topInternalMargin=this.containerPadding):H.bottomInternalMargin="4px",H.alignment=this.createAlignment("left",
882"W"===n?"top":"bottom");else if("E"===n)H.leftOf=d,H.above=d,m?(delete H.above,H.yAlignedWith=d.replace("avatar","namePlate"),H.topMargin=this.actionButtonGap):(delete H.above,H.below=d,H.topInternalMargin=this.containerPadding),H.options.direction="ne",H.alignment=this.createAlignment("right","top");else if("NW"===n||"N"===n){(n=!m&&"N"===n&&this.shouldTopInviteAIChatOpenLeft(d,H.width()))?H.leftOf=
882d:H.rightOf=d;H.below=m?c:d;if(m)if(e)H.topMargin="8px";else{if(!this.isPlayspaceCompact()||this.isPlayspacePortrait())delete H.below,
883H.yAlignedWith=c;H.topMargin=this.actionButtonGap}else delete H.below,H.yAlignedWith=d.replace("inviteAI","namePlate"),H.topMargin=this.actionButtonGap;H.options.direction=n?"ne":"nw";H.alignment=this.createAlignment(n?"right":"left","top")}else if("NE"===n){H.leftOf=d;H.below=m?c:d;if(m){if(!this.isPlayspaceCompact()||this.isPlayspacePortrait())delete H.below,H.yAlignedWith=c}else delete H.below,H.yAlignedWith=d.replace("inviteAI","namePlate");H.topMargin=this.actionButtonGap;H.options.direction=
884"ne";H.alignment=this.createAlignment("right","top")}"undefined"!==typeof H.rightOf?H.leftMargin="8px":"undefined"!==typeof H.leftOf&&(H.rightMargin="8px");H.arrangement=this.createArrangement();return H};a.wocg.Layout.prototype.createSortByRank=function(){return["rank","sortProp"]};a.wocg.Layout.prototype.createSortByRankAceHigh=function(){return["rankAceHigh","sortProp"]};a.wocg.Layout.prototype.createSortByRankTwoHigh=function(){return["rankTwoHigh","sortProp"]};a.wocg.Layout.prototype.createSortBySuit=
885function(){return["sortProp","rank"]};a.wocg.Layout.prototype.createSortBySuitAceHigh=function(){return["sortProp","rankAceHigh"]};a.wocg.Layout.prototype.modifyPlayspaceDimensions=function(d){return[d[0],d[1]]}}},"1.0",{requires:["wocg"]});
886YUI.add("wocg.Tutorial",function(a){a.wocg.Tutorial=function(q,w){this.numPlayers=w;this.table=q;this.script=[];this.delayTimer=null;this.pendingNextClick=!1;this.standardDelay=900;this.firstTime=!0;this.game=new a.wocg.game[this.table.gameid].Game(this.table);this.savedTitle="World of Card Games";this.savedMetaDescription=null;this.url="/how-to-play-"+C.GAME_DIRS[this.table.gameid];this.buttonAnimation=a.Animation.createSpotGroupAnimation(this.table,{preset:"singleAction"});a.wocg.Tutorial.prototype.rewriteMetaDescription=
887function(k){k=a.getAll("meta");for(var x=k.length,y=0;y<x;y++)"description"===k[y].getAttribute("name")?(this.savedMetaDescription=k[y].getAttribute("content"),k[y].setAttribute("content",this.getMetaDescription())):"og:description"===k[y].getAttribute("property")&&k[y].setAttribute("content",this.getMetaDescription())};a.wocg.Tutorial.prototype.rewriteURLOnEntrance=function(k){if(!this.table.pushed&&!this.table.standalone){var x=this.url;this.rewriteHistory({gameid:k,url:x},x)}};a.wocg.Tutorial.prototype.rewriteURLOnExit=
888function(k){this.table.standalone||window.history.back()};a.wocg.Tutorial.prototype.rewriteHistory=function(k,x){a.wocg.goToUrl(x,k)};a.wocg.Tutorial.prototype.rewriteOnExit=function(k){try{var x=a.getAll("title"),y=x.length;1===y&&x[0].setContent(this.savedTitle);x=a.getAll("meta");y=x.length;for(var v=0;v<y;v++)"description"!==x[v].getAttribute("name")&&"og:description"!==x[v].getAttribute("property")||x[v].setAttribute("content",this.savedMetaDescription);this.rewriteURLOnExit(k)}catch(d){}a.fire("comm:gameSelectors.show")};
889a.wocg.Tutorial.prototype.create=function(k){this.game.create();k=this.script;k.push({delay:base.SECOND});k.push(['Hello! I will teach you how to play. Click "Next" to continue.',{delay:this.standardDelay}]);k.push(this.createNextButton.bind(this));k.push(['If you wish to stop, click "Exit" at the top left.',{delay:this.standardDelay}]);k.push(this.createLeaveTutorialButton.bind(this));k=this.table.gameid;this.rewriteMetaDescription(k);this.rewriteURLOnEntrance(k);a.wocg.User.setFanCardsCustom(!0);
890this.table.fanCardsWider()};a.wocg.Tutorial.prototype.createLeaveTutorialButton=function(){var k=this.table,x=k.createPiece("leaveTutorial","button");x.setText("Exit");x.addEventHandler("click",this.leaveTutorialButtonClickHandler,this);k.updateSpot("leaveTutorial",{skipAnimation:!0,suppressFadeIn:!0});this.buttonAnimation.showPieces({pieces:[x]})};a.wocg.Tutorial.prototype.leaveTutorialButtonClickHandler=function(){a.fire("tableBar:leaveTableLinkClicked");a.wocg.goToUrl("/",{},!1)};a.wocg.Tutorial.prototype.createNextButton=
891function(){var k=this.table,x=k.createPiece("next","button");x.setText("Next");x.addEventHandler("click",this.nextButtonClickHandler,this);k.updateSpot("next",{skipAnimation:!0,suppressFadeIn:!0});this.buttonAnimation.showPieces({pieces:[x]})};a.wocg.Tutorial.prototype.nextButtonClickHandler=function(){this.next()};a.wocg.Tutorial.prototype.next=function(){if(this.firstTime){this.firstTime=!1;var k=a.one(".helpLink");k&&"function"===typeof k.getContent&&k.getContent();this.script.push("Complete rules are available by scrolling down this page.");
892this.script.push(['Tutorial complete. Click "Exit" to close the tutorial.',function(){this.buttonAnimation.hide({spotids:"next"})}.bind(this)])}if(this.delayTimer&&this.delayTimer.isRunning())this.pendingNextClick=!0;else{var x=this.table;
892Array.toArray(this.script.shift()).forEach(function(y){if("string"===typeof y)return x.say(0,y,void 0,-1);if("function"===typeof y)return y();Object.isObject(y)&&y.delay&&(this.delayTimer=new Timer(y.delay),this.delayTimer.start(function(){this.next();!this.pendingNextClick||
893this.delayTimer&&this.delayTimer.isRunning()||(this.pendingNextClick=!1,this.next())}.bind(this)))}.bind(this))}};a.wocg.Tutorial.prototype.getPlayerConfig=function(){return[{username:"Professor",avatar:"ManSantaWaving",you:!0},{username:"Marvin",avatar:"AlienMartian"},{username:"Bingo",avatar:"AnimalDogSitting3"},{username:"Sandy",avatar:"AnimalSeahorse"}].slice(0,this.numPlayers)};a.wocg.Tutorial.prototype.revealOtherHands=function(){var k=this.table,x=0;k.players.forEach(function(y,v){0!==v&&k.spots["hand"+
894v].pieces.forEach(function(d){setTimeout(function(){d.flipInPlace(this.deck.shift())}.bind(this),C.CARD_REVEAL_STAGGER*x);x++}.bind(this))}.bind(this))};a.wocg.Tutorial.prototype.destroy=function(){this.delayTimer&&(this.delayTimer.stop(),delete this.delayTimer);this.pendingNextClick=!1;this.game.destroy&&this.game.destroy();delete this.game;this.destroyed=!0}}},"1.0",{requires:["wocg","wocg.FooterBar","Animation"]});
895YUI.add("wocg.Piece",function(a){function q(t,B){return"number"===typeof t[B]?Math.max(0,Math.min(1,t[B])):0}function w(t){return"undefined"!==typeof window&&"function"===typeof window.requestAnimationFrame?window.requestAnimationFrame(t):setTimeout(function(){t(Date.now())},16)}function k(t,B){return Object.prototype.hasOwnProperty.call(t,B)}function x(t,B){return t&&B?t.left===B.left&&t.top===B.top&&t.rotate===B.rotate&&t.width===B.width&&t.height===B.height&&t.marginTop===B.marginTop:!1}function y(t,
896B){return t&&t._node&&t._node.style?t._node.style[B]||"":""}function v(t,B,F){t&&t._node&&t._node.style&&(t._node.style[B]=F||"")}function d(t,B,F){t=(t||200)/200;var S="inset 0 0 0 var(--card-border-width, 1px) var(--color-card-border), 0 0 calc(8px * var(--card-shadow-scale, 1)) 0 rgba(0, 0, 0, 0.2)";if(F){F=Math.round(16*t);var A=-(B||0)*Math.PI/180;B=Math.round(0*Math.cos(A)-F*Math.sin(A));F=Math.round(0*Math.sin(A)+F*Math.cos(A));S+=", calc("+B+"px * var(--card-shadow-scale, 1)) calc("+F+"px * var(--card-shadow-scale, 1)) calc("+
897Math.round(16*t)+"px * var(--card-shadow-scale, 1)) rgba(0, 0, 0, 0.4)"}return S}function n(t,B,F){k(B,"duration")||(B.duration=F);k(B,"reverseDirection")||(B.reverseDirection=!1);k(B,"backsideDimOpacity")||(B.backsideDimOpacity=.24);k(B,"frontsideDimOpacity")||(B.frontsideDimOpacity=.24);k(B,"counterTranslateFlip")||(B.counterTranslateFlip=!0);k(B,"counterTranslateStrength")||(B.counterTranslateStrength=.5);k(B,"counterTranslateWidth")||(B.counterTranslateWidth=t.width);k(B,"edgeOnRotationY")||(B.edgeOnRotationY=
89888)}function m(t){return t*t}function H(t){return 1-Math.pow(1-t,2)}function c(t,B){var F=a.Node.create("<div>").addClass("flipDimmer");F.setStyles({backgroundColor:"black",borderRadius:"inherit",height:"100%",left:"0",opacity:B,pointerEvents:"none",position:"absolute",top:"0",width:"100%",zIndex:1});t.append(F);return F}function e(t,B,F,S){function A(){if(L){try{L.cancel()}catch(T){}L=null}}var M=F.counterTranslateFlip&&B&&B._node;t=Math.max(t.renderedWidth||0,t.width||0)||F.counterTranslateWidth||
899(t.node&&t.node.getWidth?t.node.getWidth():0);var J="number"===typeof F.counterTranslateStrength?F.counterTranslateStrength:1,G=F.reverseDirection?1:-1,E=t/2,L=null;return{start:function(T){if(M&&S){A();for(var ma=[],ea=0;16>=ea;ea++){var ba=ma,X=ba.push,I=T,O=(I?H:m)(Math.max(0,Math.min(1,ea/16))),fa=I?Math.sin(O*Math.PI/2):Math.cos(O*Math.PI/2);X.call(ba,{translate:(I?E*(O-fa):E*(fa+O-1))*J*G+"px 0px"})}L=B._node.animate(ma,{duration:S/(a.Transition&&a.Transition.animSpeed||1),easing:"linear",fill:"none",
900composite:"add"})}},clear:function(){A()}}}function h(t,B,F,S){var A=q(F,"backsideDimOpacity"),M=q(F,"frontsideDimOpacity"),J=e(t,B,F,S),G=null;return{startFirstHalf:function(){J.start(!1);A&&B&&(G=c(B,0),a.Transition.run({node:G,opacity:A,duration:S,easing:"ease-in"}))},startSecondHalf:function(){J.start(!0);M&&B?(G?G.setStyle("opacity",M):G=c(B,M),a.Transition.run({node:G,opacity:0,duration:S,easing:"ease-out"})):G&&(G.remove(!0),G=null)},clear:function(){G&&(G.remove(!0),G=null);J.clear()}}}var p=
901{};a.wocg.Piece=function(t,B,F,S){this.types=t;this.theme=B;this.id=F;this.config=base.clone(S,!0);this.themeConfig=this.config.themes?this.config.themes[this.theme]:this.config;this.node=null;this.eventHandlers={};this.eventHandlerScopes={};["click","mousedown","mouseenter","mouseleave"].forEach(function(A){this.eventHandlers[A]=[];this.eventHandlerScopes[A]=[]}.bind(this));this.updated=!1;this.overlays=[];this.backgroundColor=this.config.backgroundColor||"transparent";this.options={};this.selectable=
902!0;this.unselectableLevel=null;this.currentZIndex=0;this.animIn=this.animOut=this.tooltipText=null;this.fadeOutDuration=.001*C.PIECE_FADE_DURATION;this.activeUpdateTarget=this.renderedHeight=this.renderedWidth=null;a.wocg.Piece.prototype.create=function(A,M){this.options=M||{};this.node=a.Node.create(this.getNodeType());this.addClasses(["piece",this.theme,"id-"+this.id].concat(this.t
902ypes));this.entrance=this.options.entrance||this.config.entrance||M.entrance||"instant";"fade"===this.entrance&&this.node.setStyle("opacity",
9030);this.exit=this.options.exit||this.config.exit||M.exit||"instant";A.append(this.node);this.created=!0;a.wocg.DEBUG_ZINDEX===this.types[0]&&(this.debugZIndex=a.Node.create("<span>").addClass("debugZIndex"),this.node.append(this.debugZIndex));this instanceof a.wocg.Piece.card&&(A=a.Node.create("<div>").addClass("background"),this.node.append(A))};a.wocg.Piece.prototype.setTheme=function(A){A&&this.theme!==A&&(this.created&&this.removeClasses(this.theme),this.theme=A,this.themeConfig=this.config.themes?
904this.config.themes[this.theme]:this.config,this.created&&(this.addClasses(this.theme),this.updateNodeAttributes()))};a.wocg.Piece.prototype.calcTargetDimensions=function(A,M){if(this.themeConfig.fill){var J=A(this,[2E4,2E4]);this.width=J[0];this.height=J[1];return[this.width,this.height]}for(var G,E=this.getSizes(),L=0,T=E.length;L<T&&!(G=E[L],M&&(G=Math.getRotatedDimensions(M,G[0],G[1])),J=A(this,G),0<=J[0]-G[0]&&0<=J[1]-G[1]);L++);if(L>=E.length)return this.height=this.width=0,this.size=-1,[0,0];
905A=this.size;this.size=L;this.width=E[this.size][0];this.height=E[this.size][1];this.created&&("undefined"===typeof A||A>L)&&this.updateNodeAttributes();return M?Math.getRotatedDimensions(M,this.width,this.height):[this.width,this.height]};a.wocg.Piece.prototype.update=function(A,M,J,G,E){if(this.destroyed)return E?E():void 0;G=G||{};(this.spotThemeOverride||G.theme)&&this.setTheme(this.spotThemeOverride||G.theme);this.updated||"fade"!==this.entrance||-1===this.types.indexOf("chip")||(G.skipAnimation=
906!0);this.updated||"deal"!==this.entrance||(this.node.setStyle("left","-"+(this.width+50+G.playspaceX)+"px").setStyle("top","-"+(this.height+50+G.playspaceY)+"px"),this.node.setStyle("width",this.width+"px").setStyle("height",this.height+"px"),this.renderedWidth=this.width,this.renderedHeight=this.height);if(G.skipAnimation||this.config.skipAnimation)this.activeUpdateTarget=null,a.Transition.finalizePendingResize(this.node),a.Transition.consumeStashedThemeSwap(this.node),this.node.setStyle("left",
907A+"px").setStyle("top",M+"px"),this.renderedWidth!==this.width&&this.node.setStyle("width",this.width+"px"),this.renderedHeight!==this.height&&this.node.setStyle("height",this.height+"px"),this.node.setRotateStyle(J),"number"===typeof G.marginTop&&this.node.setStyle("marginTop",G.marginTop+"px"),J=function(){if(this.destroyed)return E?E():void 0;this.postUpdate(E,G)}.bind(this),this.updated||"fade"!==this.entrance||!G.delay||G.suppressFadeIn?J():setTimeout(J,G.delay);else{var L={left:A,top:M,rotate:J,
908width:this.width,height:this.height,marginTop:"number"===typeof G.marginTop?G.marginTop:null};if(x(this.activeUpdateTarget,L))return a.Transition.consumeStashedThemeSwap(this.node),setTimeout(function(){if(this.destroyed)return E?E():void 0;this.postUpdate(E,G)}.bind(this),(G.delay||0)+(G.duration||300));this.activeUpdateTarget=L;A={top:M,left:A,piece:this};null!==J&&(A.rotate=J);"number"===typeof G.marginTop&&(A.marginTop=G.marginTop);this.renderedWidth!==this.width&&(A.width=this.width);this.renderedHeight!==
909this.height&&(A.height=this.height);A.duration=G.duration;A.delay=G.delay;A.easing=G.easing;A.node=this.node;A.cb=function(){if(this.destroyed)return E?E():void 0;x(this.activeUpdateTarget,L)&&(this.activeUpdateTarget=null);this.postUpdate(E,G)}.bind(this);a.Transition.run(A)}};a.wocg.Piece.prototype.postUpdate=function(A,M){this.renderedWidth=this.width;this.renderedHeight=this.height;this.updateNodeAttributes();this.updated?A&&A(null,this):(this.updated=!0,"fade"!==this.entrance||M&&M.suppressFadeIn?
910A&&A(null,this):this.fadeIn(A,M))};a.wocg.Piece.prototype.removed=function(A,M){"fade"===(M.exit||this.exit)?this.fadeOut(A,M):A&&A()};a.wocg.Piece.prototype.flip=function(A,M,J){if(this.skipNextFlip)this.skipNextFlip=!1;else{A||(A=this.targetid);J=J||{};var G=this,E=this.node&&this.node.one?this.node.one(".background"):null;if(E){var L=E.getData("__rotationYAnim");if(L){try{L.cancel()}catch(fa){}E.setData("__rotationYAnim",null)}a.Transition.clearNodeTimer(E,"__flipDoneTimer")}if(this._flipSwapHandle){try{this._flipSwapHandle.cancel()}catch(fa){}this._flipSwapHandle=
911null}
911this._pendingFlipFinish&&(L=this._pendingFlipFinish,this._pendingFlipFinish=null,L());J.liftInPlace&&n(this,J,C.PIECE_MOVE_DURATION);var T="number"===typeof J.duration?Math.max(0,J.duration):C.PIECE_MOVE_DURATION;L=Math.max(0,Math.floor(T/2));var ma=!!J.liftInPlace&&!1!==J.animateLift&&!this.lifting;this.targetid=A;if(this.node&&A&&A!==this.id&&this instanceof a.wocg.Piece.card){var ea=this.createURL(A);if(!p[ea])try{var ba=new Image;ba.setAttribute("fetchpriority","high");ba.src=ea;ba.decode?
912ba.decode().then(function(){p[ea]=!0}).catch(function(){}):p[ea]=!0}catch(fa){p[ea]=!0}}var X="number"===typeof J.edgeOnRotationY?Math.max(1,Math.min(90,Math.abs(J.edgeOnRotationY))):90;ba=(J.reverseDirection?-1:1)*X;X*=J.reverseDirection?1:-1;var I=h(this,E,J,L);ma&&this.animateLift(T,J);I.startFirstHalf();J=function(){G._flipSwapHandle=null;G.node&&!G.destroyed&&(G.removeClasses("id-"+G.id),G.id=A,G.addClasses("id-"+G.id),delete G.targetid,G.updateNodeAttributes(),I.startSecondHalf())};var O=function(){G._pendingFlipFinish===
913O&&(G._pendingFlipFinish=null);I.clear();ma&&G.finishLift();M&&M()};E&&E._node&&T?(T/=a.Transition&&a.Transition.animSpeed||1,E.setData("rotation-y",0),E._node.style.transform="rotateY(0deg)",ba=E._node.animate([{transform:"rotateY(0deg)",easing:"cubic-bezier(0.11, 0, 0.5, 0)",offset:0},{transform:"rotateY("+ba+"deg)",offset:.5},{transform:"rotateY("+X+"deg)",easing:"cubic-bezier(0.5, 1, 0.89, 1)",offset:.5},{transform:"rotateY(0deg)",offset:1}],{duration:T,easing:"linear",fill:"none"}),E.setData("__rotationYAnim",
914ba),G._flipSwapHandle=a.Transition.afterCompositorDelay(E,L,J),G._pendingFlipFinish=O,a.Transition.setNodeTimer(E,"__flipDoneTimer",T,O)):(E&&E._node&&(E.setData("rotation-y",0),E._node.style.transform="rotateY(0deg)"),J(),O())}};a.wocg.Piece.prototype.flipInPlace=function(A,M,J){J=J||{};J.liftInPlace=!0;J.counterTranslateFlip=!1;this.flip(A,M,J)};a.wocg.Piece.prototype.fadeIn=function(A,M){M=M||{};a.Transition.run({node:this.node,opacity:M.opacity||1,duration:M.fadeDuration||this.options.fadeDuration||
915C.PIECE_FADE_DURATION,easing:"linear",cb:A})};a.wocg.Piece.prototype.fadeOut=function(A,M){M=M||{};a.Transition.run({node:this.node,opacity:0,duration:M.fadeDuration||this.options.fadeDuration||C.PIECE_FADE_DURATION,easing:"linear",cb:A})};a.wocg.Piece.prototype.animateLift=function(A,M){if(this.node){M=M||{};var J=this,G=this.height||this.node.getHeight()||200,E=Math.max(4,Math.round(.08*G*("number"===typeof M.liftMultiplier?Math.max(0,M.liftMultiplier):1))),L=this.node.getRotation?this.node.getRotation()||
9160:0,T=d(G,L,!0),ma=Math.max(0,Math.round(A/2)),ea=Math.max(0,A-ma);M="card"===M.liftDirection;var ba=this.node.getTranslateX?this.node.getTranslateX()||0:0,X=this.node.getTranslateY?this.node.getTranslateY()||0:0,I=0,O=-E;M&&(O=L*Math.PI/180,I=Math.sin(O)*E,O=-Math.cos(O)*E);this.lifting=!0;this.liftBaseX=ba;this.liftBaseY=X;this.liftUsesTransformOffset=M;this.liftBaseFilter=y(this.node,"filter");this.liftBaseWebkitFilter=y(this.node,"webkitFilter");this.liftBaseTransition=y(this.node,"transition");
917this.liftBaseWebkitTransition=y(this.node,"webkitTransition");this.setLiftShadow(T,ma,"ease-in");E={node:this.node,duration:ma,easing:"ease-in"};this.node.getData("__rzScaleOwned")||(E.scale=1.08);M?(E.x=ba+I,E.y=X+O):(T=this.node.one(".background"))&&T._node&&(T._node.style.setProperty("--deal-lift-offset",O+"px"),T._node.style.animation="card-deal-reveal-lift "+A/(a.Transition&&a.Transition.animSpeed||1)+"ms");E.cb=function(){J.node&&!J.destroyed&&J.lifting&&(J.liftFrame=w(function(){J.node&&!J.destroyed&&
918J.lifting&&(J.liftFrame=w(function(){delete J.liftFrame;if(J.node&&!J.destroyed&&J.lifting){J.setLiftShadow(d(G),ea,"ease-out");var fa={node:J.node,duration:ea,easing:"ease-out"};J.node.getData("__rzScaleOwned")||(fa.scale=1);J.liftUsesTransformOffset&&(fa.x=J.liftBaseX||0,fa.y=J.liftBaseY||0);a.Transition.run(fa)}}))}))};a.Transition.run(E)}};a.wocg.Piece.prototype.setLiftShadow=function(A,M,J){var G=this.node&&this.node.one(".background");G&&(G.setStyle("transition","box-shadow "+(M||0)/(a.Transition&&
919a.Transition.animSpeed||1)+"ms "+(J||"linear")),G.setStyle("boxShadow",A))};a.wocg.Piece.prototype.stashThemeSwap=function(A,M){this.node&&(this.node.setData("__themeSwapDelay",A),this.node.setData("__themeSwapFn",M))};a.wocg.Piece.prototype.finishLift=function(){if(this.node){this.lifting=!1;if(this.liftFrame){var A=this.liftFrame;A&&("undefined"!==typeof window&&"function"===typeof window.cancelAnimationFrame?window.cancelAnimationFrame(A):clearTimeout(A));delete this.liftFrame}if(A=this.node.one(".background"))A.setStyle("boxShadow",
920""),A.setStyle("transition","");v(this.node,"filter",this.liftBaseFilter||"");v(this.node,"webkitFilter",this.liftBaseWebkitFilter||"");v(this.node,"transition",this.liftBaseTransition||"");v(this.node,"webkitTransition",this.liftBaseWebkitTransition||"");this.liftUsesTransformOffset?(this.node.setTranslateXStyle&&this.node.setTranslateXStyle(this.liftBaseX||0),this.node.setTranslateYStyle&&this.node.setTranslateYStyle(this.liftBaseY||0)):(A=this.node.one(".background"))&&A._node&&(A._node.style.animation=
921"",A._node.style.removeProperty("--deal-lift-offset"));delete this.liftBaseX;delete this.liftBaseY;delete this.liftUsesTransformOffset;delete this.liftBaseFilter;delete this.liftBaseWebkitFilter;delete this.liftBaseTransition;delete this.liftBaseWebkitTransition;this.node.getData("__rzScaleOwned")||this.node.setScaleStyle(1)}};a.wocg.Piece.prototype.fadeOutFadeIn=function(A,M){if(this.node&&this.node._node&&"function"===typeof this.node._node.animate){var J=this.node._node,G=this,E=C.PIECE_FADE_DURATION/
922(a.Transition&&a.Transition.animSpeed||1),L=function(){G.id=A;delete G.targetid;J.style.opacity="1";J.animate([{opacity:0}
922,{opacity:1}],{duration:E,fill:"none"});M&&M()};.05>parseFloat(this.node.getStyle("opacity")||"0")?L():(J.style.opacity="0",J.animate([{opacity:1},{opacity:0}],{duration:E,fill:"none"}).finished.then(L,L))}else this.animOut||(this.animOut=new a.Anim({node:this.node,to:{opacity:"0"},duration:this.fadeOutDuration,iterations:1})),this.animIn||(this.animIn=new a.Anim({node:this.node,
923to:{opacity:"1"},duration:this.fadeOutDuration,iterations:1})),.05>parseFloat(this.node.getStyle("opacity")||"0")?(this.id=A,delete this.targetid,this.animIn.run(),M&&M()):(this.animOut.once("end",function(){this.id=A;delete this.targetid;this.animIn.run();M&&M()}.bind(this)),this.animOut.run())};a.wocg.Piece.prototype.setZIndex=function(A){this.currentZIndex=(this.config.zIndex||0)+A;this.node&&!this.destroyed&&(this.node.setZIndex(this.currentZIndex),this.updateDebugZIndex())};a.wocg.Piece.prototype.getCurrentZIndex=
924function(){return this.currentZIndex};a.wocg.Piece.prototype.updateDebugZIndex=function(){a.wocg.DEBUG_ZINDEX===this.types[0]&&this.debugZIndex.setContent(this.currentZIndex)};a.wocg.Piece.prototype.makeUnselectable=function(A){this.selectable&&(A=A||{},this.selectable=!1,this.unselectableLevel=-1,A.delay?setTimeout(function(){this.destroyed||!this.node||this.selectable||this.addClasses("unselectable")}.bind(this),A.delay):this.addClasses("unselectable"))};a.wocg.Piece.prototype.makeSelectable=function(A){this.selectable||
925(A=A||{},this.selectable=!0,A.delay?setTimeout(function(){!this.destroyed&&this.node&&this.selectable&&this.removeClasses("unselectable")}.bind(this),A.delay):this.removeClasses("unselectable"))};a.wocg.Piece.prototype.addEventHandler=function(A,M,J){"undefined"===typeof this.eventHandlers[A]||this.eventHandlers[A].contains(M)||(this.eventHandlers[A].push(M),this.eventHandlerScopes[A].push(J),1===this.eventHandlers[A].length&&(this.addClasses(A+"able"),this.node.on(A,function(G){this.eventHandler(A,
926G)}.bind(this),this)))};a.wocg.Piece.prototype.removeEventHandler=function(A,M){M=this.eventHandlers[A].indexOf(M);-1!==M&&(this.eventHandlers[A].splice(M,1),this.eventHandlerScopes[A].splice(M,1),0===this.eventHandlers[A].length&&(this.removeClasses(A+"able"),this.node.detach(A)))};a.wocg.Piece.prototype.removeEventHandlers=function(){this.node&&(this.node.detachAll(),["click","mousedown","mouseenter","mouseleave"].forEach(A=>{0<this.eventHandlers[A].length&&this.removeClasses(A+"able");this.eventHandlers[A]=
927[];this.eventHandlerScopes[A]=[]}))};a.wocg.Piece.prototype.eventHandler=function(A,M){"click"===A&&this.disabled||("click"===A&&this instanceof a.wocg.Piece.card&&a.wocg.trackGoogleEvent&&a.wocg.trackGoogleEvent("click_card"),this.eventHandlers[A].forEach(function(J,G){J.call(this.eventHandlerScopes[A][G],this)}.bind(this)))};a.wocg.Piece.prototype.updateNodeAttributes=function(A){var M=this.getBackgroundPart(),J=[M.size];M=[M.background].join(", ");if(this.node.getData("currentBackground")!==M){this.node.setData("currentBackground",
928M);var G=this instanceof a.wocg.Piece.card;G?(this.node.one(".background").setStyle("background",M),this.updated||a.ImagePreloader.preload(this.createURL(),null,!0)):1!=this.options.skipBackground&&1!=this.config.skipBackground&&this.node.setStyle("background",M);A||(G?this.node.one(".background").setStyle("backgroundSize",J.join(", ")):this.node.setStyle("backgroundSize",J.join(", ")))}};a.wocg.Piece.prototype.getBackgroundPart=function(){return{background:this.backgroundColor+(-1===this.size?"":
929" url("+this.createURL()+") no-repeat scroll 0% 0%"),size:"100% 100%"}};a.wocg.Piece.prototype.getPeekDimensions=function(){return[this.themeConfig.peekX,this.themeConfig.peekY]};a.wocg.Piece.prototype.createURL=function(A){var M=!1;A="undefined"!==typeof A?A:this.id;"string"===typeof A&&0===A.indexOf("shim")&&(M=!0);var J=M?"classic":this.theme;"avatar"==this.types[0]&&a.wocg.User.getUseLegacyAvatars()&&(J="legacy");"card"==this.types[0]&&"handfoot"===J&&(J="canasta");var G="pieces/"+this.types[0];
930M&&(A="shim");G=G+("/"+J)+("/"+A)+".png";return a.wocg.buildAssetImageURL(G)};a.wocg.Piece.prototype.createURLs=function(){return this.config.ids?this.config.ids.map(function(A){return this.createURL(A)}.bind(this)):[]};a.wocg.Piece.prototype.getId=function(){return this.targetid||this.id};a.wocg.Piece.prototype.setDeDupeId=function(A){this.deDupeId=A};a.wocg.Piece.prototype.getDeDupeId=function(){return this.deDupeId};a.wocg.Piece.prototype.name=function(){return this.config.name};a.wocg.Piece.prototype.getSizes=
931function(){if(Array.isArray(this.themeConfig.sizes))return this.themeConfig.sizes;if("undefined"!==typeof this.themeConfig.sizes[this.getId()])return this.themeConfig.sizes[this.getId()];base.error("Unable to get size for id [%s] and types [%o] and sizes: %o",this.getId(),this.types,this.themeConfig.sizes)};a.wocg.Piece.prototype.getNodeType=function(){return"<div>"};a.wocg.Piece.prototype.disable=function(){if(this.disabled)return!1;this.disabled=!0;this.node.addClass("disabled");return!0};a.wocg.Piece.prototype.enable=
932function(){if(!this.disabled)return!1;this.disabled=!1;this.node.removeClass("disabled");return!0};a.wocg.Piece.prototype.addClasses=function(A){this.node&&Array.toArray(A).forEach(function(M){this.node.addClass(M)}.bind(this))};a.wocg.Piece.prototype.removeClasses=function(A){this.node&&Array.toArray(A).forEach(function(M){this.node.removeClass(M)}.bind(this))};a.wocg.Piece.prototype.setTooltip=function(A,M){this.tooltipText!==A&&(this.tooltipText&&a.CustomTooltip.detachOnHover(this.node),this.tooltipText=
933A||null,this.tooltipBoldFont=!1===M?!1:!0,this.tooltipText&&(!1===M?a.CustomTooltip.showOnHover(this.node,this.tooltipText,!1):a.CustomTooltip.showOnHover(this.node,this.tooltipText)))};a.wocg.Piece.prototype.removeTooltip=function(){this.tooltipText&&a.CustomTooltip.detachOnHover(this.node);this.tooltipBoldFont=this.tooltipText=null};a.wocg.Piece.prototype.resize=function(){var A=this.spotThemeOverride||this.theme||a.wocg.Theme.getThemeForPieceType(this.types[0]);"card"===this.types[0]&&(A=this.spotThemeOverride||
934a.wocg.Theme.getThemeForPieceType(this.types[0]));this.setTheme(A)};a.wocg.Piece.prototype.destroy=function(){this.removeTooltip();this.detachGlobalEvents();if(this._flipSwapHandle){try{this._flipSwapHandle.cancel()}catch(J){}this._flipSwapHandle=null}
934this._pendingFlipFinish=null;if(this.node){var A=this.node.one?this.node.one(".background"):null;if(A){var M=A.getData("__rotationYAnim");if(M){try{M.cancel()}catch(J){}A.setData("__rotationYAnim",null)}a.Transition.clearNodeTimer(A,"__flipDoneTimer")}this.node.remove(!0)}this.destroyed=
935!0};this.globalEventHandlers={};a.wocg.Piece.prototype.attachGlobalEvents=function(){Object.forEach(this.globalEventHandlers,function(A,M){a.on(A,M,this)}.bind(this))};a.wocg.Piece.prototype.detachGlobalEvents=function(){Object.forEach(this.globalEventHandlers,function(A,M){a.detach(A,M)})};this.attachGlobalEvents()}},"1.0",{requires:"wocg anim event-mouseenter event-rightclick Transition wocg.Pieces".split(" ")});
936YUI.add("wocg.Pieces",function(a){var q={medal:{name:"Medal",skipAnimation:!0,entrance:"fade",exit:"fade",defaultID:"1",fill:!0},namePlate:{name:"NamePlate",skipAnimation:!0,doNotPreload:!0,skipBackground:!0,fill:!0,entrance:"fade",exit:"fade",defaultID:"namePlate"},playerLiked:{name:"PlayerLiked",skipAnimation:!0,doNotPreload:!0,entrance:"fade",exit:"fade",defaultID:"playerLiked",fill:!0},scorePlate:{name:"ScorePlate",skipAnimation:!0,doNotPreload:!0,skipBackground:!0,fill:!0,entrance:"fade",exit:"fade",
937defaultID:"scorePlate"},shotImage:{name:"ShotImage",skipAnimation:!0,doNotPreload:!0,skipBackground:!0,fill:!0,entrance:"fade",exit:"fade",defaultID:"moon"},divider:{name:"Divider",skipAnimation:!0,doNotPreload:!0,entrance:"fade",exit:"fade",zIndex:8900,fill:!0,overrides:{updateNodeAttributes:function(){},getNodeType:function(){return"<hr>"}}},play:{name:"play",skipAnimation:!0,entrance:"fade",exit:"fade",defaultID:"playDefault",themes:{classic:{sizes:{playDefault:[[120,120],[112,112],[104,104],[96,
93896],[88,88],[80,80],[72,72],[64,64],[56,56],[48,48],[40,40],[32,32],[24,24],[16,16],[8,8]],playHighlighted:[[120,120],[112,112],[104,104],[96,96],[88,88],[80,80],[72,72],[64,64],[56,56],[48,48],[40,40],[32,32],[24,24],[16,16],[8,8]],playDisabled:[[120,120],[112,112],[104,104],[96,96],[88,88],[80,80],[72,72],[64,64],[56,56],[48,48],[40,40],[32,32],[24,24],[16,16],[8,8]]}}}},pause:{name:"pause",skipAnimation:!0,entrance:"fade",exit:"fade",defaultID:"pauseDefault",themes:{classic:{sizes:{pauseDefault:[[120,
939120],[112,112],[104,104],[96,96],[88,88],[80,80],[72,72],[64,64],[56,56],[48,48],[40,40],[32,32],[24,24],[16,16],[8,8]],pauseHighlighted:[[120,120],[112,112],[104,104],[96,96],[88,88],[80,80],[72,72],[64,64],[56,56],[48,48],[40,40],[32,32],[24,24],[16,16],[8,8]],pauseDisabled:[[120,120],[112,112],[104,104],[96,96],[88,88],[80,80],[72,72],[64,64],[56,56],[48,48],[40,40],[32,32],[24,24],[16,16],[8,8]]}}}}};a.wocg.Pieces={};a.on("domready",function(){Object.forEach(q,function(w,k){a.wocg.Piece[w]=function(x,
940y,v,d){a.wocg.Piece[w].superclass.constructor.apply(this,[(d||[]).concat([w]),x,y||k.defaultID||void 0,v||k])};a.extend(a.wocg.Piece[w],a.wocg.Piece);k.overrides&&Object.forEach(k.overrides,function(x,y){a.wocg.Piece[w].prototype[x]=y})})})},"1.0",{requires:["wocg"]});
941YUI.add("wocg.Piece.card",function(a){for(var q="undefined"!==typeof CSS&&CSS.supports&&CSS.supports("corner-shape","squircle"),w={name:"Card",ids:[],entrance:"deal",backgroundColor:"#ffffff",themes:{arkadium:{peekX:20,peekY:20},classic:{peekX:20,peekY:20},egypt:{peekX:20,peekY:20},ornamental:{peekX:20,peekY:20},tango:{peekX:20,peekY:20},anglo:{peekX:20,peekY:20},torres:{peekX:20,peekY:20},ninaste:{peekX:20,peekY:20},azzedarsan:{peekX:20,peekY:20},canasta:{peekX:20,peekY:20}}},k=1;13>=k;k++)w.ids.push(k+
942"c"),w.ids.push(k+"d"),w.ids.push(k+"h"),w.ids.push(k+"s");w.ids=w.ids.concat(["rj","bj","back"]);a.wocg.Piece.card=function(x,y,v,d){a.wocg.Piece.card.superclass.constructor.apply(this,[(d||[]).concat(["card"]),x,y||w.ids[0],v||w]);a.wocg.Piece.card.prototype.calcTargetDimensions=function(n,m,H=!1){n=n(this,[2E4,2E4]);var c=H?1:n.indexOf(Math.min(...n));0>=n[c]&&(c=0==c?1:0);var e=0==c?1:0;H?n[c]=Math.floor(1.39622641*n[e]):n[e]=Math.floor(.71621622*n[c]);this.width=n[e];this.height=n[c];this.created&&
943this.updateNodeAttributes();return m?Math.getRotatedDimensions(m,this.width,this.height):[this.width,this.height]};a.wocg.Piece.card.prototype.updateNodeAttributes=function(){a.wocg.Piece.card.superclass.updateNodeAttributes.apply(this,arguments);var n=8;100>this.width&&(n=6);40>this.width&&(n=4);q&&(n=8===n?16:6===n?12:8);"arkadium"===this.theme&&(n*=2);n+="px";if(this.node&&this.node._node&&!this.node.getData("__rzScaleOwned")){var m=this.node._node.style.getPropertyValue("--card-border-radius");
944m&&m!==n&&this.node.setData("__srcBorderRadius",parseFloat(m)||0);this.node._node.style.setProperty("--card-border-radius",n)}};a.wocg.Piece.card.prototype.name=function(){return utils.name(this.targetid||this.id)};a.wocg.Piece.card.prototype.suit=function(){return utils.suit(this.targetid||this.id)};a.wocg.Piece.card.prototype.sortProp=function(){return utils.sortProp(this.targetid||this.id)};a.wocg.Piece.card.prototype.color=function(){return utils.color(this.targetid||this.id)};a.wocg.Piece.card.prototype.isRed=
945function(){return utils.isRed(this.targetid||this.id)};a.wocg.Piece.card.prototype.isBlack=function(){return utils.isBlack(this.targetid||this.id)};a.wocg.Piece.card.prototype.isJoker=function(){return utils.isJoker(this.targetid||this.id)};a.wocg.Piece.card.prototype.rank=function(n){return utils.rank(this.targetid||this.id,n)};a.wocg.Piece.card.prototype.rankAceHigh=function(n){return utils.rankAceHigh(this.targetid||this.id,n)};a.wocg.Piece.card.prototype.rankName=function(n){return utils.rankName(this.targetid||
946this.id,n)}};a.extend(a.wocg.Piece.card,a.wocg.Piece)},"1.0",{requires:["wocg","wocg.Piece"]});
947YUI.add("wocg.Piece.text",function(a){var q={name:"Text",skipAnimation:!0,doNotPreload:!0,entrance:"fade",exit:"fade",fill:!0};a.wocg.Piece.text=function(w,k,x,y){a.wocg.Piece.text.superclass.constructor.apply(this,[(y||[]).concat(["text"]),w,k,x||q]);a.wocg.Piece.text.prototype.create=function(v,d){a.wocg.Piece.text.superclass.create.apply(this,arguments);this.node.addClass("empty");this.textNode=document.createElement("span");this.node.appendChild(this.textNode)};a.wocg.Piece.text.prototype.updateNodeAttributes=
948function(){if(this.node&&this.node.getDOMNode()){var v=this.node.getContent();if(v){var d=this.node.getStyle("font-weight")||"normal",n={...this.options};"function"===typeof n.maxSize&&(n.maxSize=n.maxSize());"function"===typeof n.size&&(n.size=n.size());"function"===typeof n.lineHeight&&(n.lineHeight=n.lineHeight());"function"===typeof n.fitWidthScale&&(n.fitWidthScale=n.fitWidthScale());var m=this.node.getContentWidth();n.fitWidthScale&&(m=Math.round(m*n.fitWidthScale));v=a.FitText.fit(this.textToMeasure||
949v,m,this.node.getContentHeight(),n,d);this.options.modifySize&&(v.fontSize=Math.round(v.fontSize*this.options.modifySize));this.node.setStyle("lineHeight",v.lineHeight+"px");this.node.setStyle("fontSize",v.fontSize+"px")}}};a.wocg.Piece.text.prototype.setText=function(v,d){this.textNode.innerHTML=v;this.textToMeasure=d||v;this.options.measurePadText&&(this.textToMeasure=this.options.measurePadText+this.textToMeasure+this.options.measurePadText);v?this.node.removeClass("empty"):this.node.addClass("empty");
950this.updateNodeAttributes()};a.wocg.Piece.text.prototype.getText=function(){return this.textNode.innerText}};a.extend(a.wocg.Piece.text,a.wocg.Piece)},"1.0",{requires:["wocg","wocg.Piece","FitText"]});
951YUI.add("wocg.Piece.textInput",function(a){var q={name:"textInput",skipAnimation:!0,doNotPreload:!0,entrance:"fade",exit:"fade",fill:!0};a.wocg.Piece.textInput=function(w,k,x,y){a.wocg.Piece.textInput.superclass.constructor.apply(this,[(y||[]).concat(["textInput"]),w,k,x||q]);a.wocg.Piece.textInput.prototype.updateNodeAttributes=function(){var v=a.FitText.fit("ABCDEFG",this.width,this.height);this.node.setStyle("lineHeight",Math.floor(.8*v.lineHeight)+"px");this.node.setStyle("fontSize",Math.floor(.8*
952v.fontSize)+"px")};a.wocg.Piece.textInput.prototype.focus=function(){this.node.focus()};a.wocg.Piece.textInput.prototype.blur=function(){this.node.blur()};a.wocg.Piece.textInput.prototype.getText=function(){return this.node.get("value")};a.wocg.Piece.textInput.prototype.setText=function(v){this.node.set("value",v)};a.wocg.Piece.textInput.prototype.setMaxLength=function(v){this.node.setAttribute("maxlength",v)};a.wocg.Piece.textInput.prototype.getNodeType=function(){return"<input type='text'>"};a.wocg.Piece.textInput.prototype.destroy=
953function(){this.blur();a.wocg.Piece.textInput.superclass.destroy.apply(this,arguments)}};a.extend(a.wocg.Piece.textInput,a.wocg.Piece)},"1.0",{requires:["wocg","wocg.Piece"]});
954YUI.add("wocg.Piece.textLink",function(a){var q={name:"textLink",skipAnimation:!0,doNotPreload:!0,entrance:"fade",exit:"fade",fill:!0};a.wocg.Piece.textLink=function(w,k,x,y){a.wocg.Piece.textLink.superclass.constructor.apply(this,[(y||[]).concat(["text"]),w,k,x||q]);a.wocg.Piece.textLink.prototype.create=function(v,d){a.wocg.Piece.textLink.superclass.create.apply(this,arguments);this.node.addClass("empty");this.textNode=document.createElement("div");this.node.appendChild(this.textNode)};a.wocg.Piece.textLink.prototype.updateNodeAttributes=
955function(){if(this.node&&this.node.getDOMNode()){var v=this.node.getContent();if(v){var d=this.node.getStyle("font-weight")||"normal",n={...this.options};"function"===typeof n.maxSize&&(n.maxSize=n.maxSize());"function"===typeof n.size&&(n.size=n.size());"function"===typeof n.lineHeight&&(n.lineHeight=n.lineHeight());"function"===typeof n.fitWidthScale&&(n.fitWidthScale=n.fitWidthScale());var m=Math.ceil(this.node.getContentWidth());n.fitWidthScale&&(m=Math.round(m*n.fitWidthScale));var H=Math.ceil(this.node.getContentHeight());
956v=a.FitText.fit(this.textToMeasure||v,m,H,n,d);this.options.modifySize&&(v.fontSize=Math.round(v.fontSize*this.options.modifySize));this.node.setStyle("lineHeight",v.lineHeight+"px");this.node.setStyle("fontSize",v.fontSize+"px")}}};a.wocg.Piece.textLink.prototype.setText=function(v,d){this.textNode.innerHTML=v;var n=document.createElement("div");n.innerHTML=v;n=n.textContent||n.innerText||"";this.textToMeasure=d||n;this.options.measurePadText&&(this.textToMeasure=this.options.measurePadText+this.textToMeasure+
957this.options.measurePadText);v?this.node.removeClass("empty"):this.node.addClass("empty");this.updateNodeAttributes()};a.wocg.Piece.textLink.prototype.getText=function(){return this.textNode.innerHTML}};a.extend(a.wocg.Piece.textLink,a.wocg.Piece)},"1.0",{requires:["wocg","wocg.Piece","FitText"]});
958YUI.add("wocg.Piece.chatBubble",function(a){function q(y,v){if("function"!==typeof getComputedStyle||"undefined"===typeof document)return v;var d=getComputedStyle(document.documentElement);return parseInt(d.getPropertyValue(y),10)||v}function w(y){y?(y=y.getStyle("marginTop"),y=parseFloat(y),y=isNaN(y)?0:y):y=0;return y}function k(y,v){v=v||{};return v.fadeDuration||y.options.fadeDuration||160}var x={name:"Chat Bubble",skipAnimation:!0,doNotPreload:!0,entrance:"fade",exit:"fade",zIndex:6600,themes:{classic:{fill:!0}}};
959a.wocg.Piece.chatBubble=function(y,v,d,n){a.wocg.Piece.chatBubble.superclass.constructor.apply(this,[(n||[]).concat(["chatBubble"]),y,v,d||x]);a.wocg.Piece.chatBubble.prototype.create=function(m,H){H=H||{};a.wocg.Piece.chatBubble.superclass.create.apply(this,arguments);var c=H.direction||"se";this.addClasses(["chatBubble-"+c,"chatBubble-"+c]);this.node.on("click",function(e){e.stopPropagation()});a.Frame.create(this.node,a.wocg.Theme.getCurrentThemeConfig().chatBubbleFrame[c]);this.textContainer=
960a.Node.create("<div>").addClass("chat-bubble-text");this.node.append(this.textContainer);H.dismissible&&this.addEventHandler("click",this.dismiss,this);H.text&&this.setText(H.text)};a.wocg.Piece.chatBubble.prototype.updateNodeAttributes=function(){var m=this.textContainer.getData("textToMeasure");if(m){var H=this.node.getDOMNode().offsetHeight||this.height||0,c=this.node.getContentHeight();c=Math.max(0,H-c);var e=this.node.getDOMNode().offsetWidth||this.width||0,h=this.node.getContentWidth(),p=Math.max(0,
961e-h),t=a.wocg.isPlayspaceCompact(),B=t?q("--font-size-xs",16):q("--font-size-md",20),F=t?q("--line-height-sm",20):q("--line-height-md",24),S=t?q("--font-size-xxs",14):q("--font-size-xs",16),A=t?q("--line-height-xs",18):q("--line-height-sm",20),M=t?56:72;t=this.options.fontWeight||this.textContainer.getStyle("font-weight")||"normal";var J=Math,G=J.min,E=Math,L=E.max,T=Math,ma=T.ceil,ea=a.Node.create("<span>").addClass("sizer");ea.setStyle("fontSize",B+"px");ea.setStyle("lineHeight",F+"px");ea.setStyle("fontWeight",
962t);ea.setStyle("whiteSpace","nowrap");ea.appendChild(document.createTextNode(m));a.one("#mainContainer").append(ea);var ba=ea.getWidth();ea.remove(!0);h=G.call(J,h,L.call(E,M,ma.call(T,ba)+2));M=4;t=a.FitText.fit(m,h,F*M,this.options,t);m=Math.max(Math.min(t.fontSize,B),S);F=Math.max(Math.min(m+4,F),A);t.fontSize<S&&(M=5);S=h+p;p=this.options.direction||"se";A=-1<["ne","se"].indexOf(p);this.node.setStyle("width",S+"px");this.node.setStyle("marginLeft",A?Math.max(0,e-S)+"px":"0px");this.textContainer.setStyle("width",
963h+"px");this.textContainer.setStyle("height","auto");this.textContainer.setStyle("lineHeight",F+"px");this.textContainer.setStyle("fontSize",m+"px");this.textContainer.setStyle("overflow","hidden");e=this.textContainer.getDOMNode().scrollHeight||F;e=Math.min(F*M,Math.max(F,e));c=e+c;p=-1<["sw","se","me","meleft"].indexOf(p);this.node.setStyle("height",c+"px");this.node.setStyle("marginTop",p?H-c+"px":"0px");this.textContainer.setStyle("height",e+"px");this.updatePointer(h)}};a.wocg.Piece.chatBubble.prototype.updatePointer=
964function(m){if(this.node.get("parentNode")){var H=this.node.get("parentNode").all(".BLLL");if(H&&H.size()){var c=m+24;H.each(function(e){e.setStyle("left",c+"px")})}}};a.wocg.Piece.chatBubble.prototype.dismiss=function(){this.dismissed||this.destroyed||(this.dismissed=!0,this.node.setStyle("pointerEvents","none"),this.fadeOut())};a.wocg.Piece.chatBubble.prototype.fadeIn=function(m,H){H=H||{};if(!this.node)return m?m():void 0;var c=w(this.node);a.Transition.cancel(this.node);this.node.setStyle("opacity",
9650);this.node.setStyle("marginTop",c+4+"px");this.node.setScaleStyle(.96);a.Transition.run({node:this.node,opacity:"number"===typeof H.opacity?H.opacity:1,scale:1,marginTop:c,duration:k(this,H),easing:"ease-out-2",cb:m})};a.wocg.Piece.chatBubble.prototype.fadeOut=function(m,H){H=H||{};if(!this.node)return m?m():void 0;var c=w(this.node);a.Transition.cancel(this.node);this.node.setStyle("pointerEvents","none");a.Transition.run({node:this.node,opacity:0,scale:.98,marginTop:c+4,duration:k(this,H),easing:"ease-in",
966cb:m})};a.wocg.Piece.chatBubble.prototype.setText=function(m){this.textContainer.setData("textToMeasure",m);m=a.Escape.html(m);this.textContainer.empty();this.textContainer.append(a.Node.create(m))};a.wocg.Piece.chatBubble.prototype.getText=function(){return this.textContainer.getData("textToMeasure")}};a.extend(a.wocg.Piece.chatBubble,a.wocg.Piece)},"1.0",{requires:["wocg","wocg.Piece","escape","FitText","Transition"]});
967YUI.add("wocg.Piece.suitSelector",function(a){var q={name:"Suit Selector",doNotPreload:!0,entrance:"fade",exit:"fade",fill:!0};a.wocg.Piece.suitSelector=function(w,k,x,y){a.wocg.Piece.suitSelector.superclass.constructor.apply(this,[(y||[]).concat(["suitSelector"]),w,k,x||q]);a.wocg.Piece.suitSelector.prototype.create=function(v,d){a.wocg.Piece.suitSelector.superclass.create.apply(this,arguments);this.node.on("click",this.suitClickHandler,this);a.on("suitSelector:selected",this.suitSelectorSelectedHandler,
968this);this.textNode=document.createTextNode(utils.suitSymbol(this.id));this.node.appendChild(this.textNode)};a.wocg.Piece.suitSelector.prototype.updateNodeAttributes=function(){var v=this.textNode.nodeValue;v&&(v=a.FitText.fit(this.textToMeasure||v,this.node.getContentWidth(),this.node.getContentHeight(),{wrap:!1}),this.node.setStyle("lineHeight",v.lineHeight+"px"),this.node.setStyle("fontSize",v.fontSize+"px"))};a.wocg.Piece.suitSelector.prototype.suitClickHandler=function(v){a.fire("suitSelector:selected",
969this.id,this)};a.wocg.Piece.suitSelector.prototype.suitSelectorSelectedHandler=function(v){this.id===v?this.node.addClass("selected"):this.node.removeClass("selected")};a.wocg.Piece.suitSelector.prototype.destroy=function(){a.wocg.Piece.suitSelector.superclass.destroy.apply(this,arguments)}};a.extend(a.wocg.Piece.suitSelector,a.wocg.Piece)},"1.0",{requires:["wocg","wocg.Piece","FitText"]});
970YUI.add("wocg.Piece.chip",function(a){var q={name:"Chip",doNotPreload:!0,entrance:"fade",fill:!0};a.wocg.Piece.chip=function(w,k,x,y){a.wocg.Piece.chip.superclass.constructor.apply(this,[(y||[]).concat(["chip"]),w,k,x||q]);a.wocg.Piece.chip.prototype.create=function(v,d){a.wocg.Piece.chip.superclass.create.apply(this,arguments);this.textNode=document.createTextNode("");this.node.appendChild(this.textNode)};a.wocg.Piece.chip.prototype.setText=function(v,d){this.textNode.nodeValue=v;this.textToMeasure=
971d||v;this.options.measurePadText&&(this.textToMeasure=this.options.measurePadText+this.textToMeasure+this.options.measurePadText);v?this.node.removeClass("empty"):this.node.addClass("empty");this.updateNodeAttributes()};a.wocg.Piece.chip.prototype.getText=function(){return this.textNode.nodeValue};a.wocg.Piece.chip.prototype.updateNodeAttributes=function(){var v=this.textNode.nodeValue;if(v){var d=this.node.hasClass("spotPrefix-stockCount")||this.node.hasClass("spotPrefix-stockPileCount")||this.node.hasClass("spotPrefix-discardPileCount")||
972this.node.hasClass("spotPrefix-roundCount")||this.node.hasClass("spotPrefix-runningTotal")||this.node.hasClass("spotPrefix-peggingScore"),n={wrap:!1};
972d&&(n.maxSize=a.wocg.isPlayspaceCompact()?14:16);var m=this.node.getDOMNode(),H=d?m.offsetWidth:this.node.getContentWidth();m=d?m.offsetHeight:this.node.getContentHeight();v=a.FitText.fit(this.textToMeasure||v,H,m,n);this.node.setStyle("lineHeight",m+"px");this.node.setStyle("fontSize",(d?v.fontSize:.8*v.fontSize)+"px")}}};a.extend(a.wocg.Piece.chip,
973a.wocg.Piece)},"1.0",{requires:["wocg","wocg.Piece","FitText"]});
974YUI.add("wocg.Piece.miniCard",function(a){var q={name:"Mini Card",doNotPreload:!0,entrance:"deal",themes:{classic:{fill:!0,peekX:100,peekY:100}}};a.wocg.Piece.miniCard=function(w,k,x,y){a.wocg.Piece.miniCard.superclass.constructor.apply(this,[(y||[]).concat(["miniCard"]),w,k,x||q]);a.wocg.Piece.miniCard.prototype.create=function(v,d){a.wocg.Piece.miniCard.superclass.create.apply(this,arguments);this.textNodeRank=document.createTextNode("");this.textNodeSuit=document.createTextNode("");this.node.setStyle("lineHeight",
975"1px");this.node.appendChild(this.textNodeRank);this.node.appendChild(document.createElement("br"));this.node.appendChild(this.textNodeSuit)};a.wocg.Piece.miniCard.prototype.setRank=function(v,d){this.textNodeRank.nodeValue=v;this.textToMeasure=d||v;this.options.measurePadText&&(this.textToMeasure=this.options.measurePadText+this.textToMeasure+this.options.measurePadText);v?this.node.removeClass("empty"):this.node.addClass("empty");this.updateNodeAttributes()};a.wocg.Piece.miniCard.prototype.setSuit=
976function(v,d){this.textNodeSuit.nodeValue=v;this.textToMeasure=d||v;this.options.measurePadText&&(this.textToMeasure=this.options.measurePadText+this.textToMeasure+this.options.measurePadText);v?this.node.removeClass("empty"):this.node.addClass("empty");this.updateNodeAttributes()};a.wocg.Piece.miniCard.prototype.getText=function(){return this.textNodeRank.nodeValue+this.textNodeSuit.nodeValue};a.wocg.Piece.miniCard.prototype.updateNodeAttributes=function(){var v=Math.floor(this.node.getHeight()/
9772),d=Math.floor(.64*this.node.getWidth());this.node.setStyle("lineHeight",v+"px");this.node.setStyle("fontSize",d+"px")}};a.extend(a.wocg.Piece.miniCard,a.wocg.Piece)},"1.0",{requires:["wocg","wocg.Piece","FitText"]});
978YUI.add("wocg.Piece.timer",function(a){var q={name:"Timer",skipAnimation:!0,doNotPreload:!0,skipBackground:!0,entrance:"fade",exit:"fade",fill:!0};a.wocg.Piece.timer=function(w,k,x,y){a.wocg.Piece.timer.superclass.constructor.apply(this,[(y||[]).concat(["timer"]),w,k||"timer",x||q]);this.circleNode=this.timeout=null;a.wocg.Piece.timer.prototype.create=function(v,d){a.wocg.Piece.timer.superclass.create.apply(this,arguments);this.node.addClass("empty");var n=document.createElementNS("http://www.w3.org/2000/svg",
979"svg");n.setAttribute("class","timer");n.setAttribute("viewBox","0 0 80 80");this.circleNode=document.createElementNS("http://www.w3.org/2000/svg","circle");this.circleNode.setAttribute("cx","40");this.circleNode.setAttribute("cy","40");this.circleNode.setAttribute("r","36");this.circleNode.setAttribute("class","timer-circle-progress");n.appendChild(this.circleNode);this.node.appendChild(n)};a.wocg.Piece.timer.prototype.setTextPiece=function(v){this.textPiece=v};a.wocg.Piece.timer.prototype.setOnCriticalTime=
980function(v){this.onCriticalTime=v};a.wocg.Piece.timer.prototype.startCountdown=function(v){this.startAt=Date.now();this.endAt=this.startAt+v;null===this.timeout&&(this.timeout=setTimeout(this.updateTimer.bind(this),500))};a.wocg.Piece.timer.prototype.stopCountdown=function(){null!==this.timeout&&clearTimeout(this.timeout);this.timeout=null;this.textPiece&&this.textPiece.setText("")};a.wocg.Piece.timer.prototype.updateTimer=function(){var v=Date.now();if(v>=this.endAt)return a.SoundEffects.play(C.AUDIO_TICK_LOW),
981this.stopCountdown();if(this.textPiece){var d=this.textPiece.getText(),n=Math.ceil((this.endAt-Date.now())/base.SECOND),m=d===`${n}`;if(5==n&&!m&&d&&(this.node.addClass("red"),this.textPiece.node.addClass("red"),this.onCriticalTime))this.onCriticalTime();5>=n&&d&&this.isPlayerMe&&!m&&a.SoundEffects.play(C.AUDIO_TICK_HIGH);this.textPiece.setText(`${n}`)}this.circleNode.style.strokeDashoffset=(this.endAt-v)/(this.endAt-this.startAt)*72*Math.PI;this.timeout=setTimeout(this.updateTimer.bind(this),500)};
982a.wocg.Piece.timer.prototype.destroy=function(){null!==this.timeout&&clearTimeout(this.timeout);this.timeout=null;a.wocg.Piece.timer.superclass.destroy.apply(this,arguments)}};a.extend(a.wocg.Piece.timer,a.wocg.Piece)},"1.0",{requires:["wocg","wocg.Piece","SoundEffects"]});
983YUI.add("wocg.Piece.avatar",function(a){var q={name:"Avatar",skipAnimation:!0,doNotPreload:!0,fill:!0,entrance:"fade",exit:"fade"};a.wocg.Piece.avatar=function(w,k,x,y){a.wocg.Piece.avatar.superclass.constructor.apply(this,[(y||[]).concat(["avatar"]),w,k,x||q])};a.extend(a.wocg.Piece.avatar,a.wocg.Piece);a.wocg.Piece.avatar.prototype.create=function(w,k){a.wocg.Piece.avatar.superclass.create.apply(this,arguments);this.imgNode=a.Node.create("<img>");this.imgNode.set("src",this.createURL());this.imgNode.set("alt",
984this.id+" avatar");this.node.append(this.imgNode);a.wocg.User&&a.wocg.User.getUseLegacyAvatars&&a.wocg.User.getUseLegacyAvatars()&&this.node.addClass("legacyAvatar")};
984a.wocg.Piece.avatar.prototype.updateBackground=function(){this.imgNode&&(this.imgNode.set("src",this.createURL()),this.imgNode.set("alt",this.id+" avatar"))};a.wocg.Piece.avatar.prototype.updateNodeAttributes=function(){this.updateBackground()};a.wocg.Piece.avatar.prototype.createURL=function(w){w="undefined"!==typeof w?w:this.id;var k=
985a.wocg.User&&a.wocg.User.getUseLegacyAvatars&&a.wocg.User.getUseLegacyAvatars(),x=C.AVATARS_REMOVED_IDS&&-1<C.AVATARS_REMOVED_IDS.indexOf(w);return a.wocg.buildAssetImageURL("pieces/avatar/"+(k||x?"legacy":"classic")+"/"+w+(k||x?".png":".svg"))}},"1.0",{requires:["wocg","wocg.Piece"]});
986YUI.add("wocg.Piece.button",function(a){function q(F,S){F.node&&!F.destroyed&&a.Transition.run({node:F.node,scale:S,duration:80,easing:"ease-out"})}function w(F){var S=F.buttonPressReleaseDeadline||0;F.buttonPressReleaseDeadline=0;return Math.max(0,S-Date.now())}function k(F){F.buttonPressClickTimer&&(clearTimeout(F.buttonPressClickTimer),F.buttonPressClickTimer=null,F.buttonPressClickPending=!1)}function x(F,S){F.buttonPressDocumentMouseUpHandle&&(F.buttonPressDocumentMouseUpHandle.detach(),F.buttonPressDocumentMouseUpHandle=
987null);F.buttonPressDocumentTouchEndHandle&&(F.buttonPressDocumentTouchEndHandle.detach(),F.buttonPressDocumentTouchEndHandle=null);F.buttonPressDocumentTouchCancelHandle&&(F.buttonPressDocumentTouchCancelHandle.detach(),F.buttonPressDocumentTouchCancelHandle=null);F.buttonPressActive&&S&&(F.buttonPressReleaseDeadline=Date.now()+80);if(F.buttonPressActive||!F.node||1!==F.node.getScale())F.buttonPressActive=!1,q(F,1)}function y(F){F.buttonPressIgnoreMouseUntil=Date.now()+700}function v(F){if(!F.node||
988F.disabled||F.node.hasClass("disabled"))return!1;F.buttonPressActive=!0;q(F,.98);return!0}function d(F){F&&"number"===typeof F.button&&1<F.button||(this.buttonPressIgnoreMouseUntil||0)>Date.now()||!v(this)||(this.buttonPressDocumentMouseUpHandle&&this.buttonPressDocumentMouseUpHandle.detach(),this.buttonPressDocumentMouseUpHandle=a.one(document).once("mouseup",function(){x(this,!0)},this))}function n(){(this.buttonPressIgnoreMouseUntil||0)>Date.now()||this.buttonPressActive&&x(this,!0)}function m(){(this.buttonPressIgnoreMouseUntil||
9890)>Date.now()||this.buttonPressActive&&x(this,!0)}function H(){y(this);v(this)&&(this.buttonPressDocumentTouchEndHandle&&this.buttonPressDocumentTouchEndHandle.detach(),this.buttonPressDocumentTouchCancelHandle&&this.buttonPressDocumentTouchCancelHandle.detach(),this.buttonPressDocumentTouchEndHandle=a.one(document).once("touchend",function(){y(this);x(this,!0)},this),this.buttonPressDocumentTouchCancelHandle=a.one(document).once("touchcancel",function(){y(this);x(this)},this))}function c(){y(this);
990this.buttonPressActive&&x(this,!0)}function e(){y(this);this.buttonPressActive&&x(this)}function h(F){"buttonPressMouseDownHandle buttonPressMouseUpHandle buttonPressMouseLeaveHandle buttonPressTouchStartHandle buttonPressTouchEndHandle buttonPressTouchCancelHandle".split(" ").forEach(function(S){F[S]&&(F[S].detach(),F[S]=null)});F.buttonPressDocumentMouseUpHandle&&(F.buttonPressDocumentMouseUpHandle.detach(),F.buttonPressDocumentMouseUpHandle=null);F.buttonPressDocumentTouchEndHandle&&(F.buttonPressDocumentTouchEndHandle.detach(),
991F.buttonPressDocumentTouchEndHandle=null);F.buttonPressDocumentTouchCancelHandle&&(F.buttonPressDocumentTouchCancelHandle.detach(),F.buttonPressDocumentTouchCancelHandle=null)}function p(F,S,A){a.wocg.Piece.button.superclass.eventHandler.call(F,S,A)}function t(F){F.node&&(h(F),F.buttonPressMouseDownHandle=F.node.on("mousedown",d,F),F.buttonPressMouseUpHandle=F.node.on("mouseup",n,F),F.buttonPressMouseLeaveHandle=F.node.on("mouseleave",m,F),F.buttonPressTouchStartHandle=F.node.on("touchstart",H,F),
992F.buttonPressTouchEndHandle=F.node.on("touchend",c,F),F.buttonPressTouchCancelHandle=F.node.on("touchcancel",e,F))}var B={name:"Button",skipAnimation:!0,doNotPreload:!0,entrance:"fade",exit:"fade"};a.wocg.Piece.button=function(F,S,A,M){a.wocg.Piece.button.superclass.constructor.apply(this,[(M||[]).concat(["button"]),F,S,A||B]);a.wocg.Piece.button.prototype.create=function(J,G){a.wocg.Piece.button.superclass.create.apply(this,arguments);this.textNode=document.createTextNode("");this.textNodeContainer=
993a.Node.create("<div>");this.textNodeContainer.append(this.textNode);this.node.append(this.textNodeContainer);t(this)};a.wocg.Piece.button.prototype.calcTargetDimensions=function(J,G){this.width=J(this,[2E4,2E4])[0];
993this.height=a.wocg.isPlayspaceCompact()?32:40;return[this.width,this.height]};a.wocg.Piece.button.prototype.updateNodeAttributes=function(){if(this.textNode.nodeValue){var J=this.height||(a.wocg.isPlayspaceCompact()?32:40);this.textNodeContainer.setStyle("textAlign","center");this.textNodeContainer.setStyle("height",
994J+"px");this.textNodeContainer.setStyle("lineHeight",J+"px");var G=a.wocg.isPlayspaceCompact()?20:24;G=this.options?{...this.options,maxSize:G}:{maxSize:G};var E=this.node.getContentWidth()-8;G=a.FitText.fit(this.textNode.nodeValue,E,J,G);this.node.setStyle("lineHeight",J+"px");this.node.setStyle("fontSize",G.fontSize+"px")}};a.wocg.Piece.button.prototype.disable=function(){var J=a.wocg.Piece.button.superclass.disable.apply(this,arguments);if(!J)return J;k(this);x(this);return J};a.wocg.Piece.button.prototype.enable=
995function(){return a.wocg.Piece.button.superclass.enable.apply(this,arguments)};a.wocg.Piece.button.prototype.removeEventHandlers=function(){a.wocg.Piece.button.superclass.removeEventHandlers.apply(this,arguments);t(this)};a.wocg.Piece.button.prototype.removeEventHandler=function(){a.wocg.Piece.button.superclass.removeEventHandler.apply(this,arguments);t(this)};a.wocg.Piece.button.prototype.eventHandler=function(J,G){if("click"!==J)return p(this,J,G);if(!this.buttonPressClickPending){var E=w(this);
996if(!E)return p(this,J,G);this.buttonPressClickPending=!0;this.buttonPressClickTimer=setTimeout(function(){this.buttonPressClickTimer=null;this.buttonPressClickPending=!1;this.destroyed||this.disabled||!this.node||p(this,J,G)}.bind(this),E)}};a.wocg.Piece.button.prototype.setText=function(J){this.textNode.nodeValue=J;this.updateNodeAttributes()};a.wocg.Piece.button.prototype.getText=function(){return this.textNode.nodeValue};a.wocg.Piece.button.prototype.destroy=function(){k(this);h(this);a.wocg.Piece.button.superclass.destroy.apply(this,
997arguments)}};a.extend(a.wocg.Piece.button,a.wocg.Piece)},"1.0",{requires:["wocg","Transition","wocg.Piece"]});
998YUI.add("wocg.Piece.backdrop",function(a){var q={name:"Backdrop",skipAnimation:!0,doNotPreload:!0,entrance:"fade",exit:"fade",fill:!0};a.wocg.Piece.backdrop=function(w,k,x,y){a.wocg.Piece.backdrop.superclass.constructor.apply(this,[(y||[]).concat(["backdrop"]),w,k,x||q]);a.wocg.Piece.backdrop.prototype.create=function(v,d){a.wocg.Piece.backdrop.superclass.create.apply(this,arguments);var n=a.wocg.Theme.getCurrentThemeConfig();n.backdropFrames&&n.backdropFrames[this.id]&&a.Frame.create(this.node,n.backdropFrames[this.id])};
999a.wocg.Piece.backdrop.prototype.updateNodeAttributes=function(){a.Frame.resize(this.node)};a.wocg.Piece.backdrop.prototype.destroy=function(){this.node&&a.Frame.destroy(this.node);a.wocg.Piece.backdrop.superclass.destroy.apply(this,arguments)}};a.extend(a.wocg.Piece.backdrop,a.wocg.Piece)},"1.0",{requires:["wocg","wocg.Piece"]});
1000YUI.add("wocg.Piece.htmlTable",function(a){var q={name:"HTMLTable",skipAnimation:!0,doNotPreload:!0,entrance:"fade",exit:"fade",fill:!0};a.wocg.Piece.htmlTable=function(w,k,x,y){this.textElements=[];this.longestEl="";this.longestElLen=0;a.wocg.Piece.text.superclass.constructor.apply(this,[(y||[]).concat(["htmlTable"]),w,k,x||q]);a.wocg.Piece.htmlTable.prototype.create=function(v,d){a.wocg.Piece.text.superclass.create.apply(this,arguments);this.node.addClass("empty");this.insideContainer=a.Node.create("<div>");
1001this.insideContainer.addClass("insideContainer");this.tableNode=a.Node.create("<table>");this.insideContainer.appendChild(this.tableNode);this.node.appendChild(this.insideContainer)};a.wocg.Piece.htmlTable.prototype.setLongestElement=function(v){if(v){v=v.replace(/<[^>]*>?/gm,"");var d=0;-1<v.indexOf("&#")&&(d=v.substring(v.indexOf("&"),v.indexOf(";")+1).length);d=v.length-d;0>d&&(d=v.length);d>this.longestElLen&&(this.longestEl=v,this.longestElLen=d)}};a.wocg.Piece.htmlTable.prototype.appendHeaders=
1002function(v,d,n){for(var m=a.Node.create("<tr>"),H="",c="",e=0;e<v.length;e++){var h=a.Node.create("<th>");"number"===typeof n&&0<n?h.setAttribute("colspan",n):n&&n[e]&&h.setAttribute("colspan",n[e]);d&&d[e]&&d[e].length&&h.addClass(d[e]);m.append(h.setContent(v[e]));H+=v[e]+c;0===e&&(c=" ")}this.textElements.push(H);this.setLongestElement(H);this.tableNode.append(m)};a.wocg.Piece.htmlTable.prototype.appendRows=function(v,d,n){for(var m="",H="",c=a.Node.create("<tr>"),e=0;e<v.length;e++){var h=a.Node.create("<td>").setContent(v[e]);
1003c.append(h);"number"===typeof n&&0<n?h.setAttribute("colspan",n):n&&n[e]&&h.setAttribute("colspan",n[e]);d&&d[e]&&d[e].length&&h.addClass(d[e]);m+=H+v[e];0===e&&(H=" ")}this.tableNode.append(c);this.textElements.push(m);this.setLongestElement(m)};a.wocg.Piece.htmlTable.prototype.updateMeldCardGrid=function(){var v=this.node.one(".meldCardGrid");if(v){var d=v.getDOMNode(),n=d.getBoundingClientRect();if(n.width&&n.height){var m=v.hasClass("columns6")?6:5;d=d.ownerDocument.defaultView.getComputedStyle(d);
1004d=parseFloat(d.columnGap||d.gap)||0;n=Math.floor(Math.min((n.width-d*(m-1))/m,(n.height-3*d)/4*.71621622));1>n||(d=Math.floor(n/.71621622),v.setStyle("gridTemplateColumns","repeat("+m+", "+n+"px)"),v.setStyle("gridTemplateRows","repeat(4, "+d+"px)"))}}};a.wocg.Piece.htmlTable.prototype.updateNodeAttributes=function(){if(this.node.getContent()){var v=this.tableNode.getContentWidth(),d=this.tableNode.getContentHeight()/this.textElements.length,n=this.node.getStyle("fontSize");n=n.substring(0,n.indexOf("px"));
1005v=a.FitText.fit(this.longestEl,v,d);this.node.setStyle("fontSize",Math.min(v.fontSize,n)+"px");this.updateMeldCardGrid();v=this.insideContainer.getDOMNode();v.scrollHeight>v.clientHeight+1?this.node.addClass("isScrollable"):this.node.removeClass("isScrollable")}else this.node.removeClass("isScrollable")};a.wocg.Piece.htmlTable.prototype.destroy=function(){this.node&&a.Frame.destroy(this.node);a.wocg.Piece.htmlTable.superclass.destroy.apply(this,arguments)}};a.extend(a.wocg.Piece.htmlTable,a.wocg.Piece)},
1006"1.0",{requires:["wocg","wocg.Piece","FitText"]});
1007YUI.add("wocg.Piece.lottie",function(a){var q={name:"Lottie",skipAnimation:!0,doNotPreload:!0,entrance:"fade",exit:"fade",fill:!0};a.wocg.Piece.lottie=function(w,k,x,y){a.wocg.Piece.lottie.superclass.constructor.apply(this,[(y||[]).concat(["lottie"]),w,k,x||q]);this.animationData=this.animationPath=this.lottieAnimation=null;this.renderer="svg";this.loop=!1;this.autoplay=!0;this.name=null;this.rendererSettings={};this.onBeforePlay=this.onComplete=null;this.animationDelay=0};a.extend(a.wocg.Piece.lottie,
1008a.wocg.Piece);a.wocg.Piece.lottie.prototype.create=function(w,k){a.wocg.Piece.lottie.superclass.create.apply(this,arguments);var x=null;if(this.spotid&&a.wocg.Table.getCurrentTable()){var y=a.wocg.Table.getCurrentTable();y.spots&&y.spots[this.spotid]&&(x=y.spots[this.spotid].config)}x&&x.lottieConfig&&(x=x.lottieConfig,x.path&&(this.animationPath=x.path),x.animationData&&(this.animationData=x.animationData),x.renderer&&(this.renderer=x.renderer),void 0!==x.loop&&(this.loop=x.loop),void 0!==x.autoplay&&
1009(this.autoplay=x.autoplay),x.name&&(this.name=x.name),x.rendererSettings&&(this.rendererSettings=x.rendererSettings),x.onComplete&&(this.onComplete=x.onComplete),x.onBeforePlay&&(this.onBeforePlay=x.onBeforePlay),void 0!==x.animationDelay&&(this.animationDelay=x.animationDelay));k&&(k.path&&(this.animationPath=k.path),k.animationData&&(this.animationData=k.animationData),k.renderer&&(this.renderer=k.renderer),void 0!==k.loop&&(this.loop=k.loop),void 0!==k.autoplay&&(this.autoplay=k.autoplay),k.name&&
1010(this.name=k.name),k.rendererSettings&&(this.rendererSettings=k.rendererSettings),k.onComplete&&(this.onComplete=k.onComplete),k.onBeforePlay&&(this.onBeforePlay=k.onBeforePlay),void 0!==k.animationDelay&&(this.animationDelay=k.animationDelay));(this.animationPath||this.animationData)&&this.loadAnimation()};a.wocg.Piece.lottie.prototype.loadAnimation=function(w){if(window.lottie){this.lottieAnimation&&this.destroyAnimation();w=a.merge({container:this.node.getDOMNode(),renderer:this.renderer,loop:this.loop,
1011autoplay:this.autoplay&&0===this.animationDelay,name:this.name,rendererSettings:this.rendererSettings},w||{});this.animationData?w.animationData=this.animationData:this.animationPath&&(w.path=this.animationPath);try{this.lottieAnimation=window.lottie.loadAnimation(w),this.bindEvents()}catch(k){console.error("[Lottie] Failed to load animation:",k)}}
1011else console.warn("[Lottie] Lottie library not loaded")};a.wocg.Piece.lottie.prototype.setOnComplete=function(w){this.onComplete=w};a.wocg.Piece.lottie.prototype.setPath=
1012function(w,k){this.animationPath=w;this.animationData=null;!1!==k&&this.node&&this.loadAnimation()};a.wocg.Piece.lottie.prototype.setAnimationData=function(w,k){this.animationData=w;this.animationPath=null;!1!==k&&this.node&&this.loadAnimation()};a.wocg.Piece.lottie.prototype.bindEvents=function(){if(this.lottieAnimation){var w=this;this.lottieAnimation.addEventListener("complete",function(){if(w.onComplete&&"function"===typeof w.onComplete)w.onComplete()});this.lottieAnimation.addEventListener("data_ready",
1013function(){w.autoplay&&w.lottieAnimation.isPaused&&w.play()});this.lottieAnimation.addEventListener("data_failed",function(k){console.error("[Lottie] Failed to load animation data:",k)});this.lottieAnimation.addEventListener("error",function(k){console.error("[Lottie] Animation error:",k)})}};a.wocg.Piece.lottie.prototype.play=function(w){var k=this;w="undefined"!==typeof w?w:this.animationDelay;var x=function(){try{if(k.onBeforePlay&&"function"===typeof k.onBeforePlay)k.onBeforePlay()}catch(y){}k.lottieAnimation&&
1014k.lottieAnimation.play()};this.lottieAnimation&&(0<w?setTimeout(x,w):x())};a.wocg.Piece.lottie.prototype.pause=function(){this.lottieAnimation&&this.lottieAnimation.pause()};a.wocg.Piece.lottie.prototype.stop=function(){this.lottieAnimation&&this.lottieAnimation.stop()};a.wocg.Piece.lottie.prototype.goToAndStop=function(w,k){this.lottieAnimation&&this.lottieAnimation.goToAndStop(w,k)};a.wocg.Piece.lottie.prototype.goToAndPlay=function(w,k){this.lottieAnimation&&this.lottieAnimation.goToAndPlay(w,
1015k)};a.wocg.Piece.lottie.prototype.setSpeed=function(w){this.lottieAnimation&&this.lottieAnimation.setSpeed(w)};a.wocg.Piece.lottie.prototype.setDirection=function(w){this.lottieAnimation&&this.lottieAnimation.setDirection(w)};a.wocg.Piece.lottie.prototype.playSegments=function(w,k){this.lottieAnimation&&this.lottieAnimation.playSegments(w,k)};a.wocg.Piece.lottie.prototype.setSubframe=function(w){this.lottieAnimation&&this.lottieAnimation.setSubframe(w)};a.wocg.Piece.lottie.prototype.getDuration=function(w){return this.lottieAnimation?
1016this.lottieAnimation.getDuration(w):0};a.wocg.Piece.lottie.prototype.resize=function(){this.lottieAnimation&&this.lottieAnimation.resize()};a.wocg.Piece.lottie.prototype.updateDocumentData=function(w){this.lottieAnimation&&this.lottieAnimation.updateDocumentData(w)};a.wocg.Piece.lottie.prototype.getCurrentFrame=function(){return this.lottieAnimation?this.lottieAnimation.currentFrame:0};a.wocg.Piece.lottie.prototype.getTotalFrames=function(){return this.lottieAnimation?this.lottieAnimation.totalFrames:
10170};a.wocg.Piece.lottie.prototype.getCurrentTime=function(){return this.lottieAnimation?this.lottieAnimation.currentRawFrame/this.lottieAnimation.frameRate:0};a.wocg.Piece.lottie.prototype.isLoaded=function(){return!(!this.lottieAnimation||!this.lottieAnimation.isLoaded)};a.wocg.Piece.lottie.prototype.destroyAnimation=function(){this.lottieAnimation&&(this.lottieAnimation.destroy(),this.lottieAnimation=null)};a.wocg.Piece.lottie.prototype.updateNodeAttributes=function(){this.resize()};a.wocg.Piece.lottie.prototype.destroy=
1018function(){this.destroyAnimation();a.wocg.Piece.lottie.superclass.destroy.apply(this,arguments)}},"1.0",{requires:["wocg","wocg.Piece"]});
1019YUI.add("wocg.Spot",function(a){function q(v,d,n,m,H,c){d=[];var e=v[0].length;v=v.length;H=H||0;c=c||H;for(--v;0<=v;v--)for(var h=-((m+c)*v),p=0;p<e;p++)d.push({x:(n+H)*p,y:h,angle:0});d.forEach(function(t){t.x+=0;t.x=Math.round(t.x);t.y+=0;t.y=Math.round(t.y);t.angle=Math.round(t.angle)});return d}function w(v){var d=!1,n=!1;(v||[]).forEach(function(m){m&&(m.selectable?d=!0:n=!0)});return d&&n}function k(v,d,n,m){var H=[0],c=v?v.length:0,e=d*(c-1),h=0,p=0,t;if(!(!(2>c)&&w(v)&&0<d&&n>d))return[];
1020for(t=0;t<c-1;t++)v[t].selectable?h++:p++;if(!h||!p)return[];n=Math.min(n,(e-m*p)/h);if(!(n>d))return[];d=(e-n*h)/p;for(t=0;t<c-1;t++)H[t+1]=H[t]+(v[t].selectable?n:d);return H}function x(v,d,n,m,H,c,e){c=Math.radiansToDegrees(Math.atan(n*c/d));var h={N:270,S:90,E:0,W:180}[H]-.5*c*(v-1),p=Math.radiansToDegrees(Math.atan(.4*n/d)),t=Math.radiansToDegrees(Math.atan(.12*n/d)),B=k(e,c,Math.max(1.24*c,p),t);e=[];var F;t=p=99999;var S=-p,A=-t;
1020for(F=0;F<v;F++){var M=h+(B.length?B[F]:c*F),J=Math.degreesToRadians(M),
1021G=n/2+Math.cos(J)*d;J=m/2+Math.sin(J)*d;p=Math.min(p,G);t=Math.min(t,J);S=Math.max(S,G);A=Math.max(A,J);e.push({x:G,y:J,angle:M+90})}v=Math.getRotatedDimensions(e[0].angle,n,m);var E=0,L=0;"N"===H?(E=-1*p,E+=(v[0]-n)/2,L=-1*t):"S"===H?(E=-1*p,E+=(v[0]-n)/2,L=-1*(t+(A-t))):"W"===H?(L=-1*t,L+=(v[1]-m)/2,E=-1*p,E+=m-Math.rotatePointInBox(0,0,270,n,m)[1]):"E"===H&&(L=-1*t,L+=(v[1]-m)/2,E=-1*(p+(S-p)),E+=m-Math.rotatePointInBox(0,0,270,n,m)[1]);e.forEach(function(T){T.x+=E;T.x=Math.round(T.x);T.y+=L;T.y=
1022Math.round(T.y);T.angle=Math.round(T.angle)});return e}function y(v,d,n){var m=n.map(function(p){return p.x}),H=Math.max.apply(Math,m),c=Math.min.apply(Math,m),e=n.map(function(p){return p.y});m=Math.max.apply(Math,e);e=Math.min.apply(Math,e);var h=Math.getRotatedDimensions(n[0].angle,v,d);n=Math.getRotatedDimensions(n[n.length-1].angle,v,d);H=H-c+v+(h[0]-v)/2;H+=(n[0]-v)/2;v=m-e+d+(h[1]-d)/2;return[H,v]}a.wocg.Spot=function(v,d,n){function m(c){if(!c||!c.getXY||!c._node)return null;if(H&&H.node===
1023c._node)return H;var e=c.getXY();if(!e)return null;var h=null===H;H={node:c._node,x:e[0],y:e[1],width:c.getWidth(),height:c.getHeight()};h&&Promise.resolve().then(function(){H=null});return H}this.id=d;this.config=n;this.table=v;this.playspace=this.table.playspace;this.div=null;this.pieces=[];this.clickHandlers=[];this.clickHandlerScopes=[];this.baseZIndex=this.config.zIndex||1E3;this.zIndexModifier=0;this.pullOutOnClick=this.config.pullOutOnClick||!1;this.maxPulledOutPieces=this.config.maxPulledOutPieces||
10240;this.pulledPieces=[];a.wocg.Spot.prototype.init=function(){this.div=a.Node.create("<div/>").addClass("spot").set("id","spot-"+this.id);this.playspace.append(this.div);this.idPrefix=this.id;var c=this.idPrefix.match(/.*[^0-9]+([0-9]+)$/);c&&2===c.length&&(this.idPrefix=this.idPrefix.substring(0,this.idPrefix.length-c[1].length));a.wocg.DEBUG_SPOT&&(!0===a.wocg.DEBUG_SPOT||Array.isArray(a.wocg.DEBUG_SPOT)&&a.wocg.DEBUG_SPOT.some(function(e){return this.id.startsWith(e)}.bind(this))||a.wocg.DEBUG_SPOT===
1025this.id)&&(this.div.setStyle("backgroundColor","#"+("000"+(16777216*Math.random()|0).toString(16)).substr(-6)),this.div.setZIndex(this.getZIndex()));this.config.distinguishDuplicates&&(this.idMap={})};var H=null;a.wocg.Spot.prototype.resize=function(){var c=a.wocg.Theme.getCurrentThemeConfig().pieceConfigs[this.config.type]||{},e=m(this.playspace);if(e){this.playspaceX=e.x;this.playspaceY=e.y;var h=e.width,p=e.height,t=e=0,B=this.config.inside?this.table.spots[this.config.inside].config:void 0,F=
1026a.one("#spot-"+this.config.inside);F&&(h=+F.getWidth(),p=+F.getHeight(),B.paddingTop&&(t="function"===typeof B.paddingTop?t+B.paddingTop(this):"string"===typeof B.paddingTop&&B.paddingTop.endsWith("px")?t+ +B.paddingTop.match(/([0-9]+)px/)[1]:t+Math.floor(B.paddingTop/100*p)),B.paddingBottom&&(t="function"===typeof B.paddingBottom?t+B.paddingBottom(this):"string"===typeof B.paddingBottom&&B.paddingBottom.endsWith("px")?t+ +B.paddingBottom.match(/([0-9]+)px/)[1]:t+Math.floor(B.paddingBottom/100*p)),
1027B.paddingLeft&&(e="function"===typeof B.paddingLeft?e+B.paddingLeft(this):"string"===typeof B.paddingLeft&&B.paddingLeft.endsWith("px")?e+ +B.paddingLeft.match(/([0-9]+)px/)[1]:e+Math.floor(B.paddingLeft/100*h)),B.paddingRight&&(e="function"===typeof B.paddingRight?e+B.paddingRight(this):"string"===typeof B.paddingRight&&B.paddingRight.endsWith("px")?e+ +B.paddingRight.match(/([0-9]+)px/)[1]:e+Math.floor(B.paddingRight/100*h)),h-=e,p-=t);var S=0;"string"===typeof this.config.width&&this.config.width.endsWith("px")?
1028S=+this.config.width.match(/([0-9]+)px/)[1]:"string"===typeof this.config.width&&"height"!==this.config.width?S=+a.one("#spot-"+this.config.width).getWidth():"number"===typeof this.config.width&&this.config.width?S=Math.floor(this.config.width/100*h):"object"===typeof this.config.width&&this.config.width.heightOf?S=+a.one("#spot-"+this.config.width.heightOf).getHeight():"function"===typeof this.config.width&&(S=this.config.width(this));var A=0;"string"===typeof this.config.height&&this.config.height.endsWith("px")?
1029A=+this.config.height.match(/([0-9]+)px/)[1]:"string"===typeof this.config.height&&"width"!==this.config.height?A=+a.one("#spot-"+this.config.height).getHeight():"number"===typeof this.config.height&&this.config.height?A=Math.floor(this.config.height/100*p):"object"===typeof this.config.height&&this.config.height.widthOf?A=+a.one("#spot-"+this.config.height.widthOf).getWidth():"function"===typeof this.config.height&&(A=this.config.height(this));"string"===typeof this.config.width&&"height"===this.config.width&&
1030(S=A);"string"===typeof this.config.height&&"width"===this.config.height&&(A=S);"undefined"!==typeof this.config.shrinkWidth&&(S-=Math.floor(this.config.shrinkWidth/100*S));"undefined"!==typeof this.config.growWidth&&(S+=Math.floor(this.config.growWidth/100*S));"undefined"!==typeof this.config.shrinkHeight&&(A-=Math.floor(this.config.shrinkHeight/100*A));"undefined"!==typeof this.config.growHeight&&(A+=Math.floor(this.config.growHeight/100*A));var M=this.config.minWidth||c.minWidth||null;M&&"function"===
1031typeof M?S=Math.max(S,this.config.minWidth(this)):M&&(S=Math.max(S,M));if(this.config.maxWidth){var J="function"===typeof this.config.maxWidth?this.config.maxWidth(this):this.config.maxWidth;S=Math.min(S,J)}(J=this.config.minHeight||c.minHeight||null)&&"function"===typeof J?A=this.config.minHeight(this):M&&(A=Math.max(A,J));if(this.config.maxHeight){var G="function"===typeof this.config.maxHeight?this.config.maxHeight(this):this.config.maxHeight;A=Math.min(A,G)}G=this.config.ensureRatio||c.ensureRatio||
1032null;var E=this.config.ensureMinRatio||c.ensureMinRatio||null;c=this.config.ensureRatioRange||c.ensureRatioRange||null;if(!G&&!E&&c){var L=S/A;L<c[0]?G=c[0]:L>c[1]&&(G=c[1])}G?S/G>A?S=A*G:A=S/G:E&&S/A<E&&(S/G>A?S=A*E:A=S/E);M&&"function"===typeof M?S=Math.max(S,this.config.minWidth(this)):M&&(S=Math.max(S,M));this.config.maxWidth&&(c="function"===typeof this.config.maxWidth?this.config.maxWidth(this):this.config.maxWidth,S=Math.min(S,c));J&&"function"===typeof J?A=this.config.minHeight(this):M&&(A=
1033Math.max(A,J));this.config.maxHeight&&(M="function"===typeof this.config.maxHeight?this.config.maxHeight(this):this.config.maxHeight,A=Math.min(A,M));0!==S||"number"===typeof this.config.width&&!this.config.width||base.warn("WARNING: spot width is 0 for spot id [%s] and config: %o",this.id,this.config);0!==A||"number"===typeof this.config.height&&!this.config.height||base.warn("WARNING: spot height is 0 for spot id [%s] and config: %o",this.id,this.config);M=F?F.getStyleAsNumber("top"):0;"undefined"!==
1034typeof this.config.top?(M="string"===typeof this.config.top&&this.config.top.endsWith("px")?M+ +this.config.top.match(/([0-9]+)px/)[1]:"function"===typeof this.config.top?M+this.config.top(this):M+Math.floor(this.config.top/100*(p+t)),B&&B.paddingTop&&(M="function"===typeof B.paddingTop?M+B.paddingTop(this):"string"===typeof B.paddingTop&&B.paddingTop.endsWith("px")?M+ +B.paddingTop.match(/([0-9]+)px/)[1]:M+Math.floor(B.paddingTop/100*(p+t)))):"undefined"!==typeof this.config.bottom?(M+=Math.floor(this.config.bottom/
1035100*(p+t))-A,B&&B.paddingBottom&&(M="function"===typeof B.paddingBottom?M-B.paddingBottom(this):"string"===typeof B.paddingBottom&&B.paddingBottom.endsWith("px")?M-+B.paddingBottom.match(/([0-9]+)px/)[1]:M-Math.floor(B.paddingBottom/100*(p+t)))):"undefined"!==typeof this.config.above?M=a.one("#spot-"+this.config.above).getStyleAsNumber("top")-A:"undefined"!==typeof this.config.below?(B=a.one("#spot-"+this.config.below),(M=B.getComputedStyleAsNumber("height"))&&0!=M||(M=B.getHeight()),M=B.getStyleAsNumber("top")+
1036M):"undefined"!==typeof this.config.yCenteredWith?(B=a.one("#spot-"+this.config.yCenteredWith),M=B.getStyleAsNumber("top")+B.getHeight()/2-A/2):"undefined"!==typeof this.config.yAlignedWith?M=a.one("#spot-"+this.config.yAlignedWith).getStyleAsNumber("top"):"undefined"!==typeof this.config.yBottomAlignedWith?(B=a.one("#spot-"+this.config.yBottomAlignedWith),M=B.getStyleAsNumber("top")+B.getHeight()-A):this.config.centerY&&(M+=(p+t-A)/2);
1036"undefined"!==typeof this.config.topMargin?M="string"===typeof this.config.topMargin&&
1037this.config.topMargin.endsWith("px")?M+ +this.config.topMargin.match(/([0-9]+)px/)[1]:"function"===typeof this.config.topMargin?M+this.config.topMargin(this):M+Math.floor(this.config.topMargin/100*(p+t)):"undefined"!==typeof this.config.bottomMargin&&(M="string"===typeof this.config.bottomMargin&&this.config.bottomMargin.endsWith("px")?M-+this.config.bottomMargin.match(/([0-9]+)px/)[1]:"function"===typeof this.config.bottomMargin?M-this.config.bottomMargin(this):M-Math.floor(this.config.bottomMargin/
1038100*(p+t)));"undefined"!==typeof this.config.topInternalMargin?M="string"===typeof this.config.topInternalMargin&&this.config.topInternalMargin.endsWith("px")?M+ +this.config.topInternalMargin.match(/([0-9]+)px/)[1]:"function"===typeof this.config.topInternalMargin?M+this.config.topInternalMargin(this):M+Math.floor(this.config.topInternalMargin/100*A):"undefined"!==typeof this.config.bottomInternalMargin&&(M="string"===typeof this.config.bottomInternalMargin&&this.config.bottomInternalMargin.endsWith("px")?
1039M-+this.config.bottomInternalMargin.match(/([0-9]+)px/)[1]:"function"===typeof this.config.bottomInternalMargin?M-this.config.bottomInternalMargin(this):M-Math.floor(this.config.bottomInternalMargin/100*A));"undefined"!==typeof this.config.topExternalMargin?M+=Math.floor(+a.one("#spot-"+this.config.topExternalMargin.spot).getHeight()*(this.config.topExternalMargin.value/100)):"undefined"!==typeof this.config.bottomExternalMargin&&(M-=Math.floor(+a.one("#spot-"+this.config.bottomExternalMargin.spot).getHeight()*
1040(this.config.bottomExternalMargin.value/100)));this.config.subtractPlayspaceY?M-=this.playspaceY:this.config.addPlayspaceY&&(M+=this.playspaceY);this.config.modifyY&&(M+=this.config.modifyY());p=F?F.getStyleAsNumber("left"):0;"undefined"!==typeof this.config.left?p="string"===typeof this.config.left&&this.config.left.endsWith("px")?p+ +this.config.left.match(/([0-9]+)px/)[1]:"function"===typeof this.config.left?p+this.config.left(this):p+Math.floor(this.config.left/100*(h+e)):"undefined"!==typeof this.config.right?
1041p="string"===typeof this.config.right&&this.config.right.endsWith("px")?p+Math.floor(h+e-S-this.config.right.match(/([0-9]+)px/)[1]):"function"===typeof this.config.right?p+Math.floor(h+e-S-this.config.right(this)):p+(Math.floor(this.config.right/100*(h+e))-S):"undefined"!==typeof this.config.rightOf?(p=a.one("#spot-"+this.config.rightOf),p=p.getStyleAsNumber("left")+p.getWidth()):"undefined"!==typeof this.config.leftOf?p=a.one("#spot-"+this.config.leftOf).getStyleAsNumber("left")-S:"undefined"!==
1042typeof this.config.xCenteredWith?(p=a.one("#spot-"+this.config.xCenteredWith),p=p.getStyleAsNumber("left")+p.getWidth()/2-S/2):"undefined"!==typeof this.config.xAlignedWith?p=a.one("#spot-"+this.config.xAlignedWith).getStyleAsNumber("left"):"undefined"!==typeof this.config.xRightAlignedWith?(p=a.one("#spot-"+this.config.xRightAlignedWith),p=p.getStyleAsNumber("left")+p.getWidth()-S):this.config.centerX&&(p+=(h+e-S)/2);"undefined"!==typeof this.config.leftMargin?p="string"===typeof this.config.leftMargin&&
1043this.config.leftMargin.endsWith("px")?p+ +this.config.leftMargin.match(/([0-9]+)px/)[1]:"function"===typeof this.config.leftMargin?p+this.config.leftMargin(this):p+Math.floor(this.config.leftMargin/100*(h+e)):"undefined"!==typeof this.config.rightMargin&&(p="string"===typeof this.config.rightMargin&&this.config.rightMargin.endsWith("px")?p-+this.config.rightMargin.match(/([0-9]+)px/)[1]:"function"===typeof this.config.rightMargin?p-this.config.rightMargin(this):p-Math.floor(this.config.rightMargin/
1044100*(h+e)));"undefined"!==typeof this.config.leftInternalMargin?p="string"===typeof this.config.leftInternalMargin&&this.config.leftInternalMargin.endsWith("px")?p-+this.config.leftInternalMargin.match(/([0-9]+)px/)[1]:p+Math.floor(this.config.leftInternalMargin/100*S):"undefined"!==typeof this.config.rightInternalMargin&&(p="string"===typeof this.config.rightInternalMargin&&this.config.rightInternalMargin.endsWith("px")?p-+this.config.rightInternalMargin.match(/([0-9]+)px/)[1]:p-Math.floor(this.config.rightInternalMargin/
1045100*S));"undefined"!==typeof this.config.leftExternalMargin?p="string"===typeof this.config.leftExternalMargin&&this.config.leftExternalMargin.endsWith("px")?p-+this.config.leftExternalMargin.match(/([0-9]+)px/)[1]:p+Math.floor(+a.one("#spot-"+this.config.leftExternalMargin.spot).getWidth()*(this.config.leftExternalMargin.value/100)):"undefined"!==typeof this.config.rightExter
1045nalMargin&&(p="string"===typeof this.config.rightExternalMargin&&this.config.rightExternalMargin.endsWith("px")?p-+this.config.rightExternalMargin.match(/([0-9]+)px/)[1]:
1046p-Math.floor(+a.one("#spot-"+this.config.rightExternalMargin.spot).getWidth()*(this.config.rightExternalMargin.value/100)));this.config.subtractPlayspaceX?p-=this.playspaceX:this.config.addPlayspaceX&&(p+=this.playspaceX);this.config.modifyX&&(p+=this.config.modifyX());this.width=Math.round(S);this.height=Math.round(A);this.div.setStyle("width",this.width+"px").setStyle("height",this.height+"px");this.x=Math.round(p);this.y=Math.round(M);this.div.setStyle("left",this.x+"px").setStyle("top",this.y+
1047"px");this.pieces.forEach(function(T){T&&(this.applyPieceTheme(T),T.resize())}.bind(this))}};a.wocg.Spot.prototype.getConfiguredPieceTheme=function(c){if(!c||!c.types||!c.types.length)return null;c=c.types[0];return this.config.pieceThemes&&"undefined"!==typeof this.config.pieceThemes[c]?this.config.pieceThemes[c]:this.config.pieceTheme||null};a.wocg.Spot.prototype.applyMeldDisplayTheme=function(c){this.applyPieceTheme(c);this.updateZIndexes();this.pieces.forEach(function(e){e.setZIndex(e.getCurrentZIndex()+
1048400)})};a.wocg.Spot.prototype.applyPieceTheme=function(c,e){if(c)if(e=e||{},e.preserveThemeForPieces&&-1!==e.preserveThemeForPieces.indexOf(c))delete c.spotThemeOverride,delete c.spotThemeOverrideSpotid,c.preservedMoveTheme&&c.setTheme(c.preservedMoveTheme);else{delete c.preservedMoveTheme;var h=this.getConfiguredPieceTheme(c);h?(c.spotThemeOverride=h,c.spotThemeOverrideSpotid=this.id,c.setTheme(h)):e.theme?c.setTheme(e.theme):c.types&&"card"===c.types[0]&&c.setTheme(a.wocg.Theme.getThemeForPieceType("card"))}};
1049a.wocg.Spot.prototype.clearPieceThemeOverride=function(c){c&&c.spotThemeOverrideSpotid===this.id&&(delete c.spotThemeOverride,delete c.spotThemeOverrideSpotid)};a.wocg.Spot.prototype.addClickHandler=function(c,e){this.clickHandlers.contains(c)&&this.clickHandlerScopes.contains(e)&&this.clickHandlers.indexOf(c)===this.clickHandlerScopes.indexOf(e)||(this.clickHandlers.push(c),this.clickHandlerScopes.push(e),1===this.clickHandlers.length&&this.pieces.forEach(function(h){h.selectable&&h.addEventHandler("click",
1050this.pieceClickHandler,this)}.bind(this)))};a.wocg.Spot.prototype.removeClickHandler=function(c){c=this.clickHandlers.indexOf(c);this.clickHandlers.splice(c,1);this.clickHandlerScopes.splice(c,1);0===this.clickHandlers.length&&this.pieces.forEach(function(e){e.removeEventHandler("click",this.pieceClickHandler)}.bind(this));this.config.animations&&this.config.animations.removedClickable&&this.pieces.forEach(function(e){a.Transition.run(Object.merge(base.clone(this.config.animations.removedClickable),
1051{node:e.node}))}.bind(this))};a.wocg.Spot.prototype.pieceClickHandler=function(c){this.pullOutOnClick&&!c.dragged&&this.pullOutPiece(c);this.clickHandlers.forEach(function(e,h){e.call(this.clickHandlerScopes[h],this,c)}.bind(this))};a.wocg.Spot.prototype.pieceHoverOverHandler=function(c){this.config.animations&&(this.config.animations.hoverOver&&a.Transition.run(Object.merge(base.clone(this.config.animations.hoverOver),{node:c.node})),this.clickHandlers.length&&this.config.animations.clickableHoverOver&&
1052a.Transition.run(Object.merge(base.clone(this.config.animations.clickableHoverOver),{node:c.node})));this.config.hoverLinkedWith&&this.config.hoverLinkedWith.forEach(function(e){var h=this.table.spots[e];h.pieces.forEach(function(p){h.config.animations&&(h.config.animations.hoverOver&&a.Transition.run(Object.merge(base.clone(h.config.animations.hoverOver),{node:p.node})),h.clickHandlers.length&&h.config.animations.clickableHoverOver&&a.Transition.run(Object.merge(base.clone(h.config.animations.clickableHoverOver),
1053{node:p.node})));p.node.addClass("hover")})}.bind(this))};a.wocg.Spot.prototype.pieceHoverOutHandler=function(c){this.config.animations&&(this.config.animations.hoverOut&&a.Transition.run(Object.merge(base.clone(this.config.animations.hoverOut),{node:c.node})),this.clickHandlers.length&&this.config.animations.clickableHoverOut&&a.Transition.run(Object.merge(base.clone(this.config.animations.clickableHoverOut),{node:c.node})));this.config.hoverLinkedWith&&this.config.hoverLinkedWith.forEach(function(e){var h=
1054this.table.spots[e];h.pieces.forEach(function(p){h.config.animations&&(h.config.animations.hoverOut&&a.Transition.run(Object.merge(base.clone(h.config.animations.hoverOut),{node:p.node})),h.clickHandlers.length&&h.config.animations.clickableHoverOut&&a.Transition.run(Object.merge(base.clone(h.config.animations.clickableHoverOut),{node:p.node})));p.node.removeClass("hover")})}.bind(this))};a.wocg.Spot.prototype.setPullOutOnClickMax=function(c){this.pullOutOnClickMax=c;if(0===c)for(;this.pulledPieces.length;)this.pushInPiece(this.pulledPieces.shift())};
1055a.wocg.Spot.prototype.addPiece=function(c,e){return this.addPieces([c],e)[0]};a.wocg.Spot.prototype.addPieces=function(c,e){c=(c||[]).filter(function(t){if(t&&"function"===typeof t.getId)return!0;a.wocg.IS_DEV&&(base.error("ERROR: addPieces found an invalid piece [%o] for spot [%s]",t,this.id),console.trace());return!1}.bind(this));if(!c.length||!this.playspace||!this.playspace._node)return[];this.config.distinguishDuplicates&&c.forEach(function(t){"undefined"!==typeof this.idMap[t.getId()]?this.idMap[t.getId()]++:
1056this.idMap[t.getId()]=0;t.setDeDupeId(this.idMap[t.getId()])}.bind(this));e=e||{};this.config.options&&Object.merge(e,this.config.options);if(this.config.arrangement.random&&!e.skipRandomArrangement){var h=this.pieces.length/c.length,p=0;
1056c.forEach(function(t,B){B=Math.randomInt(Math.ceil(p),Math.floor(p+h));p+=++h;this.pieces.splice(B,0,t)}.bind(this))}else this.pieces=this.pieces.concat(c);this.config.arrangement.sort&&!e.skipSort&&this.pieces.sort(this.pieceSortComparator.bind(this));c.forEach(function(t){t.spotid=
1057this.id;this.applyPieceTheme(t,e);t.created||t.create(this.playspace,e);t.addClasses(["spot-"+this.id,"spotPrefix-"+this.idPrefix]);t.node&&t.node.setStyle("pointer-events","");this.clickHandlers.length&&t.addEventHandler("click",this.pieceClickHandler,this);!this.config.hoverLinkedWith||a.UA.ios||a.UA.android||(t.addEventHandler("mouseenter",this.pieceHoverOverHandler,this),t.addEventHandler("mouseleave",this.pieceHoverOutHandler,this));e.lifespan&&this.setPieceLifetime(t,e.lifespan)}.bind(this));
1058e.skipZIndexUpdate||this.updateZIndexes();return c};a.wocg.Spot.prototype.setPieceLifetime=function(c,e){c.lifespanTimer&&c.lifespanTimer.stop();c.lifespanTimer=new Timer(e);c.lifespanTimer.start(function(){this.removePieces([c])}.bind(this))};a.wocg.Spot.prototype.pieceSortComparator=function(c,e){var h=this.config.arrangement.sort;if("function"===typeof h&&(h=h(c,e),!Array.isArray(h)))return h;for(var p=0,t=h.length;p<t;p++){var B=h[p],F="function"===typeof B?B(c):utils[B](c instanceof a.wocg.Piece?
1059c.getId():c);B="function"===typeof B?B(e):utils[B](e instanceof a.wocg.Piece?e.getId():e);if(F<B)return-1;if(F>B)return 1}return 0};a.wocg.Spot.prototype.removePiece=function(c,e){return this.removePieces([c],e)[0]};a.wocg.Spot.prototype.removePieces=function(c,e){e=e||{};c.forEach(function(h){if(this.pieces.contains(h)){h.lifespanTimer&&(h.lifespanTimer.stop(),delete h.lifespanTimer);this.pushInPiece(h,!0);this.pieces.remove(h);if(this.config.distinguishDuplicates){var p=h.getId(),t=this.idMap[p];
10600<t?this.idMap[p]--:0===t&&delete this.idMap[p]}h.spotid=null;h.previousSpotid=this.id;this.clearPieceThemeOverride(h);this.clickHandlers.length&&h.removeEventHandler("click",this.pieceClickHandler);!this.config.hoverLinkedWith||a.UA.ios||a.UA.android||(h.removeEventHandler("mouseenter",this.pieceHoverOverHandler),h.removeEventHandler("mouseleave",this.pieceHoverOutHandler));e.skipDestroy||h.removeEventHandlers();e.playspaceX=this.playspaceX;e.playspaceY=this.playspaceY;h.removed(function(){var B=
1061null!==h.spotid?this.table.spots[h.spotid]:null,F=[];h.spotid!==this.id&&F.push("spot-"+this.id);B&&B.idPrefix===this.idPrefix||F.push("spotPrefix-"+this.idPrefix);h.removeClasses(F);e.skipDestroy||h.destroy()}.bind(this),e)}}.bind(this));!e.skipZIndexUpdate&&e.skipDestroy&&this.updateZIndexes();return c};a.wocg.Spot.prototype.updatePulledOutClasses=function(c){c=c.filter(function(e){return e&&e.piece&&e.piece.node});c.forEach(function(e){var h=e.preserveCardPosition&&e.piece.node.hasClass("card")?
1062e.piece.node.one(".background"):null;e.background=h&&h._node?h:null;e.beforeRect=e.background?e.background._node.getBoundingClientRect():null});c.forEach(function(e){e.pulledOut?e.piece.addClasses("pulledOut"):e.piece.removeClasses("pulledOut")});c.forEach(function(e){e.beforeRect&&(e.afterRect=e.background._node.getBoundingClientRect())});c.forEach(function(e){if(e.beforeRect){var h=e.beforeRect.left-e.afterRect.left,p=e.beforeRect.top-e.afterRect.top;if(h||p){var t=parseFloat(e.piece.node.getStyle("left")),
1063B=parseFloat(e.piece.node.getStyle("top"));isNaN(t)||e.piece.node.setStyle("left",t+h+"px");isNaN(B)||e.piece.node.setStyle("top",B+p+"px")}}})};a.wocg.Spot.prototype.updatePulledOutClass=function(c,e,h){this.updatePulledOutClasses([{piece:c,pulledOut:e,preserveCardPosition:h}])};a.wocg.Spot.prototype.pullOutAllPieces=function(c,e,h){c=(c||this.pieces).filter(Boolean);c.forEach(function(p){this.pulledPieces.push(p);this.pulledPieces.length>this.maxPulledOutPieces&&this.pushInPiece(this.pulledPieces[0],
1064!0)}.bind(this));this.updatePulledOutClasses(c.filter(function(p){return this.pulledPieces.includes(p)}.bind(this)).map(function(p){return{piece:p,pulledOut:!0,preserveCardPosition:!e}}));e||this.update({duration:C.PIECE_PUSH_PULL_DURATION},h)};a.wocg.Spot.prototype.pullOutPieces=function(c,e,h){var p=[];
1064(c||this.pieces).filter(Boolean).forEach(function(t){this.pulledPieces.includes(t)?this.pushInPiece(t):(this.pulledPieces.push(t),p.push(t),this.pulledPieces.length>this.maxPulledOutPieces&&this.pushInPiece(this.pulledPieces[0],
1065!0))}.bind(this));this.updatePulledOutClasses(p.filter(function(t){return this.pulledPieces.includes(t)}.bind(this)).map(function(t){return{piece:t,pulledOut:!0,preserveCardPosition:!e}}));this.pulledPieces=this.pieces.filter(t=>this.pulledPieces.includes(t));e||this.update({duration:C.PIECE_PUSH_PULL_DURATION},h)};a.wocg.Spot.prototype.pullOutPiece=function(c,e){this.pullOutPieces([c],e)};a.wocg.Spot.prototype.pushInPieces=function(c,e){c=(c||this.pulledPieces.slice()).filter(Boolean);c.forEach(function(h){this.pulledPieces.remove(h)}.bind(this));
1066this.updatePulledOutClasses(c.map(function(h){return{piece:h,pulledOut:!1,preserveCardPosition:!e}}));e||this.update({duration:C.PIECE_PUSH_PULL_DURATION})};a.wocg.Spot.prototype.pushInPiece=function(c,e){this.pushInPieces([c],e)};a.wocg.Spot.prototype.findPiece=function(c,e){e=e||{};var h=this.pieces.filter(function(p){return p&&"function"===typeof p.getId&&p.getId()===c});return h.length?e.random?h.pickRandom():h[0]:null};a.wocg.Spot.prototype.findPieceByDeDupeId=function(c,e,h){h=h||{};var p=this.pieces.filter(function(t){return t&&
1067"function"===typeof t.getId&&t.getId()===c&&t.getDeDupeId()===e});return p.length?h.random?p.pickRandom():p[0]:null};a.wocg.Spot.prototype.findPieces=function(c){if(this.config.distinguishDuplicates){var e=[],h=function(p){e.some(function(t){return t.getId()===p.getId()&&t.getDeDupeId()===p.getDeDupeId()})||e.push(p)};c.forEach(function(p){this.pieces.filter(function(t){return t&&"function"===typeof t.getId&&t.getId()===p}).forEach(function(t){h(t)})}.bind(this));return e}return c.map(function(p){return this.findPiece(p)}.bind(this)).filter(function(p){return null!==
1068p})};a.wocg.Spot.prototype.pickRandomPiece=function(){return this.pieces.pickRandom()};a.wocg.Spot.prototype.pickRandomPieces=function(c,e){return this.pieces.pickRandom(c,e).sort(function(h,p){return h.getCurrentZIndex()-p.getCurrentZIndex()}.bind(this))};a.wocg.Spot.prototype.update=function(c,e){c=c||{};if(c.delay){var h=c.delay;delete c.delay;return setTimeout(function(){this.update(c,e)}.bind(this),h)}if(!this.pieces.length)return e?e():void 0;c.resort&&this.config.arrangement.sort&&(this.pieces.sort(this.pieceSortComparator.bind(this)),
1069this.updateZIndexes());this.preUpdatePieces();var p;if(c.ascendingUpdateOrder)for(h=0,p=this.pieces.length;h<p;h++){var t=base.clone(c);t.intervalDelay&&(t.delay=t.intervalDelay*h);this.updatePiece(this.pieces[h],t,h+1===p?e:void 0)}else for(p=this.pieces.length,h=p-1;0<=h;h--)t=base.clone(c),t.intervalDelay&&(t.delay=t.intervalDelay*(p-h)),this.updatePiece(this.pieces[h],t,0===h?e:void 0)};a.wocg.Spot.prototype.preUpdatePieces=function(){if("grid"===this.config.arrangement.type||"fan"===this.config.arrangement.type&&
1070this.config.arrangement.arc&&this.pieces.length)if(this.pieces=this.pieces.filter(function(G){return G&&"function"===typeof G.calcTargetDimensions}),this.pieces.length){var c=this.calcPieceTargetDimensions(this.pieces[0]),e=this.pieces[0].getPeekDimensions()[0]*(this.config.arrangement.peekModifier||.8)/100;if("grid"!==this.config.arrangement.type){var h=this.width;if("E"===this.config.arrangement.arcDirection||"W"===this.config.arrangement.arcDirection)c.reverse(),h=this.height;e=Math.max(e,a.wocg.isPlayspaceCompact()&&
1071a.wocg.isPlayspacePortrait()?.64:.4);this.config.fannable&&"number"===typeof this.config.arrangement.peekModifier&&!a.wocg.User.getFanCardsCustom()&&(e*=this.config.arrangement.peekModifier||1);h=(h-c[0])/(this.getLayoutPieceCount()-1)/c[0];e=Math.min(e,h);h=x(this.getLayoutPieceCount(),this.config.FAN_ARC_RADIUS||C.FAN_ARC_RADIUS,c[0],c[1],this.config.arrangement.arcDirection,e,this.getSelectabilitySpacingPieces(e));if(this.config.arrangement.arcAnchorBottom&&"N"===this.config.arrangement.arcDirection){var p=
1072Math.max.apply(Math,h.map(function(G){return G.y}));h.forEach(function(G){G.y-=p})}var t=y(c[0],c[1],h);
1072h.forEach(function(G,E){this.pieces[E]&&(this.pieces[E].updateValues=Object.merge(base.clone(G),{totalWidth:t[0],totalHeight:t[1]}))}.bind(this))}else{h=c[1];e=this.config.arrangement.gridGap||0;"function"===typeof e&&(e=e());var B=Array.isArray(e)?e[0]:e,F=Array.isArray(e)?e[1]:e;e=this.config.arrangement.gridStackOffset||0;"function"===typeof e&&(e=e());h=q(this.config.arrangement.grid,this.pieces,
1073c[0],h,B,F);t=y(c[0],c[1],h);var S=[];this.cardsToDisplay.forEach(function(G,E){S.push(base.clone(G))});for(c=0;c<this.pieces.length;c++){B=this.pieces[c];var A=B.getId();F=this.cardPositions[A];var M=S[F[0]][F[1]];A=base.clone(h[this.config.arrangement.gridIndex[A]]);var J=this.cardsToDisplay[F[0]][F[1]]-M;A.x+=J*e;A.y+=J*e;0<M&&(S[F[0]][F[1]]=M-1);B.updateValues=Object.merge(base.clone(A),{totalWidth:t[0],totalHeight:t[1]})}}}};a.wocg.Spot.prototype.calcPieceTargetDimensions=function(c){if(!c)return[0,
10740];var e=null;this.config.samePieceDimensionsAs?e=this.config.samePieceDimensionsAs:"offscreen"===this.id&&c.previousSpotid&&(e=c.previousSpotid);if(e){var h=this.table.spots[e];e=h.dimensionsCallback.bind(h);"played"===this.config.arrangement.type&&this.config.arrangement.fitFourCardTrick&&(e=function(p,t){t=h.dimensionsCallback(p,t);var B=this.getFourCardTrickFitDimensions();return p.types&&-1<p.types.indexOf("card")?(p=Math.max(2,Math.min(t[1],B[1],Math.floor(B[0]/.71621622))),[p,p]):[Math.min(t[0],
1075B[0]),Math.min(t[1],B[1])]}.bind(this));return c.calcTargetDimensions(e,h.config.arrangement.rotate,h.config.arrangement.expandToWidth)}return c.calcTargetDimensions(this.dimensionsCallback.bind(this),this.config.arrangement.rotate,this.config.arrangement.expandToWidth)};a.wocg.Spot.prototype.getPlayedCardGap=function(){var c=this.config.arrangement.playedCardGap;"function"===typeof c&&(c=c());return c||0};a.wocg.Spot.prototype.getPlayedCardBoundaryGap=function(){var c=this.config.arrangement.playedCardBoundaryGap;
1076"function"===typeof c&&(c=c());return c||0};a.wocg.Spot.prototype.getFourCardTrickVisibleHandBounds=function(c){if(!(c&&c.pieces&&c.pieces.length&&this.playspace&&this.playspace._node))return null;var e=this.playspace._node.getBoundingClientRect(),h=null;c.pieces.forEach(function(p){p&&p.updated&&p.node&&p.node._node&&p.types&&-1!==p.types.indexOf("card")&&(p=p.node._node.getBoundingClientRect(),0>=p.width||0>=p.height||(p={left:p.left-e.left,top:p.top-e.top,right:p.right-e.left,bottom:p.bottom-e.top},
1077h?(h.left=Math.min(h.left,p.left),h.top=Math.min(h.top,p.top),h.right=Math.max(h.right,p.right),h.bottom=Math.max(h.bottom,p.bottom)):h=p))});return h};a.wocg.Spot.prototype.getFourCardTrickHandBoundary=function(c,e){var h=this.getFourCardTrickVisibleHandBounds(c);return"E"===e?h?h.right:c.x+c.width:"W"===e?h?h.left:c.x:"S"===e?h?h.bottom:c.y+c.height:"N"===e?h?h.top:c.y:null};a.wocg.Spot.prototype.getFourCardTrickBoundaries=function(){var c={left:0,right:this.playspace.getWidth(),top:0,bottom:this.playspace.getHeight(),
1078foundLeft:!1,foundRight:!1,foundTop:!1,foundBottom:!1};Object.keys(this.table.spots).forEach(function(e){if(/^hand\d+$/.test(e)){var h=this.table.spots[e];h&&h.config&&h.config.arrangement&&(e=h.config.arrangement.arcDirection,h=this.getFourCardTrickHandBoundary(h,e),null!==h&&("E"===e?(c.left=Math.max(c.left,h),c.foundLeft=!0):"W"===e?(c.right=Math.min(c.right,h),c.foundRight=!0):"S"===e?(c.top=Math.max(c.top,h),c.foundTop=!0):"N"===e&&(c.bottom=Math.min(c.bottom,h),c.foundBottom=!0)))}}.bind(this));
1079return c};a.wocg.Spot.prototype.getFourCardTrickFitDimensions=function(){var c=this.getPlayedCardGap(),e=this.getPlayedCardBoundaryGap(),h=this.getFourCardTrickBoundaries(),p=this.x+this.width/2,t=this.y+this.height/2,B=this.config.arrangement.offset/100,F=.5+B;return[Math.max(2,Math.floor(Math.min((p-h.left-e-c)/F,(h.right-p-e-c)/F))),Math.max(2,Math.floor(Math.min((t-h.top-e-c/2)/(.5+B*(this.config.arrangement.factorN||1)),(h.bottom-t-e-c/2)/(.5+B*(this.config.arrangement.factorS||1)))))]};a.wocg.Spot.prototype.getFourCardTrickAnchoredXY=
1080function(c,e,h,p,t){if(!(this.config.arrangement.anchorFourCardTrickToHands&&c&&c.config&&c.config.arrangement))return[p,t];e=this.getPlayedCardGap();var B=this.getPlayedCardBoundaryGap(),F=this.getFourCardTrickBoundaries(),S=this.y+this.height/2;c=c.config.arrangement.arcDirection;var A=this.config.arrangement.offset/100,M=this.config.arrangement.factorN||1,J=this.config.arrangement.factorS||1;("S"===c||"N"===c)&&F.foundTop&&F.foundBottom?(t=F.top+B,t+=Math.max(0,F.bottom-B-t-(2*h+e))/2,t="S"===
1081c?t:t+h+e):"S"===c&&F.foundTop?t=Math.min(F.top+B,S-h*(.5+A*M)-e/2):"N"===c&&F.foundBottom&&(t=Math.max(F.bottom-B-h,S+h*(A*J-.5)+e/2));return[p,t]};a.wocg.Spot.prototype.updatePiece=function(c,e,h){if(c)if(e=e||{},c.beingDragged)h&&h();else if(e.skipActivePieceLayout&&c.activeUpdateTarget)h&&h();else{"function"===typeof e.pieceUpdateOptions&&(e=Object.merge(base.clone(e),e.pieceUpdateOptions(c,e)||{}),delete e.pieceUpdateOptions);this.applyPieceTheme(c,e);var p=this.calcPieceTargetDimensions(c),
1082t=!e.skipRotation&&"number"===typeof e.targetAngleOverride,B=e.skipRotation?null:this.calcPieceAngle(c);t&&(B=e.targetAngleOverride);p=this.calcPieceXY(c,p,B);if(!t&&"played"===this.config.arrangement.type&&e.skipAnimation&&!this.config.arrangement.fitFourCardTrick){t=this.getSourceSpot(c.previousSpotid);var F=t.config.arrangement.position;(F="NW"===F||"NE"===F)||"W"!==t.config.arrangement.arcDirection?F||"E"!==t.config.arrangement.arcDirection?F||"S"!==t.config.arrangement.arcDirection||(B=360):
1083B=360:B=360}
1083delete c.updateValues;e.playspaceX=this.playspaceX;e.playspaceY=this.playspaceY;"number"===typeof c.targetMarginTop&&(e.marginTop=c.targetMarginTop);c.update(p[0],p[1],B,e,h)}else h&&h()};a.wocg.Spot.prototype.calcPieceXY=function(c,e,h){var p=e[0],t=e[1],B=c.getPeekDimensions();e=this.config.arrangement.direction;var F=this.pieces.indexOf(c);1>this.getLayoutOrderModifier()&&(F=this.getLayoutPieceCount()-1-F);var S=this.getCurrentPieceTier(),A=B[0]*(this.config.arrangement.peekModifier||
10841)/100*p;B=B[1]*(this.config.arrangement.peekModifier||1)/100*t;"fan"===this.config.arrangement.type&&this.config.arrangement.fitInsideContainer&&(("east"===this.config.arrangement.direction||"west"===this.config.arrangement.direction)&&A*(S-1)+p>this.width||("north"===this.config.arrangement.direction||"south"===this.config.arrangement.direction)&&B*(S-1)+t>this.height)&&(A=(this.width-p)/(S-1),B=(this.height-t)/(S-1));S=1;if("east"===e||"west"===e)S=p?A/p:1;else if("north"===e||"south"===e)S=t?
1085B/t:1;(S=this.getSelectabilitySpacingPieces(S))&&1>this.getLayoutOrderModifier()&&(S=S.slice().reverse());var M=Math.max(1.24*B,.4*t),J=.12*t,G=k(S,A,Math.max(1.24*A,.4*p),.12*p);J=k(S,B,M,J);S=this.x;M=this.y;if("offscreen"===this.id)return[-1*(p+50+this.playspaceX),-1*(t+50+this.playspaceY)];if("fan"===this.config.arrangement.type)if(this.config.arrangement.arc&&c.updateV
1085alues)S+=c.updateValues.x,M+=c.updateValues.y;else if("east"===e||"west"===e)S+=G.length?G[F]:F*A;else{if("north"===e||"south"===
1086e)M+=J.length?J[F]:F*B}else if("pile"===this.config.arrangement.type)"undefined"===typeof c.targetPercentageX&&"undefined"===typeof c.targetPercentageY?(F=Math.randomInt(0,this.width-p),G=Math.randomInt(0,this.height-t),c.targetPercentageX=F/this.width,c.targetPercentageY=G/this.height,S+=F,M+=G):(S+=this.width*c.targetPercentageX,M+=this.height*c.targetPercentageY);else if("played"===this.config.arrangement.type){if((G=this.config.arrangement.sources)&&F<G.length){F=this.config.arrangement.offset/
1087100;J=this.getPlayedCardGap();var E=this.getSourceSpot(c.previousSpotid);G=E.config.arrangement.position;"NW"===G||"NE"===G?(J=(Math.getRotatedDimensions(h,p,t)[0]-p)/2,S=S+p*F*4*("NW"===G?-1:1)-J,M-=5/3*F*t):"S"===G?M+=10/3*F*t:"E"===E.config.arrangement.arcDirection?S-=p*F+J:"W"===E.config.arrangement.arcDirection?S+=p*F+J:M="S"===E.config.arrangement.arcDirection?M-(t*F*this.config.arrangement.factorN+J/2):M+(t*F*this.config.arrangement.factorS+J/2)}}else if("grid"===this.config.arrangement.type)if(c.updateValues)S+=
1088c.updateValues.x,M+=c.updateValues.y;else if("east"===e||"west"===e)S+=F*A;else if("north"===e||"south"===e)M+=F*B;if("fan"===this.config.arrangement.type||"stack"===this.config.arrangement.type||"played"===this.config.arrangement.type){F=p;G=t;if("fan"===this.config.arrangement.type)if(this.config.arrangement.arc&&c.updateV
1088alues)"N"===this.config.arrangement.arcDirection||"S"===this.config.arrangement.arcDirection?F=c.updateValues.totalWidth:G=c.updateValues.totalHeight;else if("east"===e||"west"===
1089e)F=p+A*(this.getLayoutPieceCount()-1);else if("north"===e||"south"===e)G=t+B*(this.getLayoutPieceCount()-1);this.config.alignment&&("center"===this.config.alignment.x?S+=(this.width-F)/2:"right"===this.config.alignment.x&&(S+=this.width-F),"center"===this.config.alignment.y?M+=(this.height-G)/2:"bottom"===this.config.alignment.y&&(M+=this.height-G));"played"===this.config.arrangement.type&&E&&(p=this.getFourCardTrickAnchoredXY(E,p,t,S,M),S=p[0],M=p[1]);this.pulledPieces.contains(c)&&(p=a.wocg.isPlayspaceCompact()?
10908:16,this.config.arrangement.arc?(e=Math.degreesToRadians(h),M-=p*Math.cos(e),S+=p*Math.sin(e)):"north"===e?S-=p:"south"===e?S+=p*(-90===this.config.arrangement.rotate?-1:1):M="west"===e?M+p:M-p)}this.config.arrangement.arc||null===h||0===h||(e=c.width,c=c.height,0<e&&0<c&&(h=Math.getRotatedAabbMinCornerInBox(h,e,c),S-=h.minX,M-=h.minY));S=Math.floor(S);M=Math.floor(M);return[S,M]};a.wocg.Spot.prototype.calcPieceAngle=function(c){if(!a.wocg.ENABLE_ROTATION||"offscreen"===this.id)return 0;var e=c.node.getRotation(),
1091h=this.pieces.indexOf(c);"pile"===this.config.arrangement.type&&"undefined"===typeof c.pileAngle?c.pileAngle=Math.randomInt(0,359):"pile"!==this.config.arrangement.type&&"undefined"!==typeof c.pileAngle&&delete c.pileAngle;"fan"===this.config.arrangement.type&&this.config.arrangement.arc&&c.updateV
1091alues?c.fanArcAngle=c.updateValues.angle:delete c.fanArcAngle;this.config.arrangement.jitter&&"undefined"===typeof c.jitterAngle?c.jitterAngle=Math.randomInt(-1*this.config.arrangement.jitter,this.config.arrangement.jitter):
1092this.config.arrangement.jitter||"undefined"===typeof c.jitterAngle||delete c.jitterAngle;var p=this.config.arrangement.arc?void 0:this.config.arrangement.rotate;if("played"===this.config.arrangement.type){var t=this.config.arrangement.sources;t&&h<t.length&&(h=this.getSourceSpot(c.previousSpotid),!1===h.config.arrangement.arc&&180===Math.abs(h.config.arrangement.rotate)?p=h.config.arrangement.rotate:this.config.arrangement.rotate&&"object"===typeof this.config.arrangement.rotate?(h=(h=h.config.arrangement.direction)?
1093h.charAt(0).toUpperCase():null)&&"number"===typeof this.config.arrangement.rotate[h]&&(p=this.config.arrangement.rotate[h]):"number"===typeof h.config.arrangement.rotate&&(p=h.config.arrangement.rotate))}return c.pileAngle||c.fanArcAngle||c.jitterAngle||p||e?Math.round((c.pileAngle||0)+(c.fanArcAngle||0)+(c.jitterAngle||0)+(p||0)):null};a.wocg.Spot.prototype.getSelectabilitySpacingPieces=function(c){if(!this.config.arrangement.spreadBySelectability||"fan"!==this.config.arrangement.type)return null;
1094c="number"!==typeof c?!0:isFinite(c)?c<(["mobile","tablet"].includes(a.wocg.deviceType())&&a.wocg.isPlayspaceCompact()&&a.wocg.isPlayspacePortrait()?.4:.24):!1;return!c||!w(this.pieces)||this.getLayoutPieceCount()>this.pieces.length?null:this.pieces};a.wocg.Spot.prototype.updateZIndexes=function(c,e){e=e||{};for(var h=this.pieces.length-1;0<=h;h--){var p=c?c[h]:this.getPieceZIndex(h),t=this.pieces[h],B=t&&(e.skipActiveUpdatePieces&&(t.activeUpdateTarget||t.pendingMoveZIndexPreserve)||e.skipPreservingPieces&&
1095t.pendingMoveZIndexPreserve||t.beingDragged);t&&!B&&t.setZIndex(p)}};a.wocg.Spot.prototype.getPieceZIndex=function(c){c="number"===typeof c?c:this.pieces.indexOf(c);return 0>c?this.getZIndex()-1:this.getZIndex()+c};a.wocg.Spot.prototype.getZIndex=function(){return this.baseZIndex+this.zIndexModifier};a.wocg.Spot.prototype.getLayoutOrderModifier=function(){return"fan"!==this.config.arrangement.type||"east"===this.config.arrangement.direction||"south"===this.config.arrangement.direction?1:-1};a.wocg.Spot.prototype.dimensionsCallback=
1096function(c,e){var h=Math.floor((this.config.sizeWidth||this.config.size||100)/100*this.width),p=Math.floor((this.config.sizeHeight||this.config.size||100)/100*this.height),t=this.getCurrentPieceTier();if("fan"===this.config.arrangement.type||"grid"===this.config.arrangement.type){c=c.getPeekDimensions();this.config.arrangement.rotate&&(c=Math.getRotatedDimensions(this.config.arrangement.rotate,c[0],c[1]));var B=c[0]*(this.config.arrangement.peekModifier||1)/100*e[0];e=c[1]*(this.config.arrangement.peekModifier||
10971)/100*e[1];if("east"===this.config.arrangement.direction||"west"===this.config.arrangement.direction)h=this.config.arrangement.fitInsideContainer?h/(1+c[0]*(this.config.arrangement.peekModifier||1)/100*(t-2)):h-(t-1)*B;else if("north"===this.config.arrangement.direction||"south"===this.config.arrangement.direction)p=this.config.arrangement.fitInsideContainer?p/(1+c[1]*(this.config.arrangement.peekModifier||1)/100*(t-2)):p-(t-1)*e}return[h,p]};a.wocg.Spot.prototype.getLayoutPieceCount=function(){return"number"===
1098typeof this.dealLayoutCount&&this.dealLayoutCount>this.pieces.length?this.dealLayoutCount:this.pieces.length};a.wocg.Spot.prototype.getCurrentPieceTier=function(){if(!this.config.pieceTiers)return this.getLayoutPieceCount();var c;var e=0;for(c=this.config.pieceTiers.length;e<c&&!(this.config.pieceTiers[e]>=this.getLayoutPieceCount()-(this.config.pieceTierAllowance||0));e++);return e>=this.config.pieceTiers.length?this.getLayoutPieceCount():this.config.pieceTiers[e]};a.wocg.Spot.prototype.getSourceSpot=
1099function(c){var e=this.config.arrangement.sources;if(!e)return null;for(var h=null,p=e.length,t=0;t<p;t++){var B=this.table.spots[e[t]];if(c===B.id){h=B;break}}return h};a.wocg.Spot.prototype.destroy=function(){this.pieces.forEach(function(c){c.destroy()});this.div.remove(!0)};this.init()}},"1.0",{requires:["wocg","wocg.Theme"]});
1100YUI.add("wocg.Table",function(a){function q(na){return"undefined"!==typeof document&&document.hidden||"undefined"===typeof window||"function"!==typeof window.requestAnimationFrame?setTimeout(na,16):window.requestAnimationFrame(na)}function w(na,b){return Object.prototype.hasOwnProperty.call(na,b)}function k(){var na=E.getMsSinceLastMessage();return null!==na&&na>X}function x(na,b){b=b||{};
1100return b.skipAnimation||b.moveOptions&&b.moveOptions.skipAnimation||na&&na.dealFastForwarded?!0:!(!a.wocg||!a.wocg.User||
1101"function"!==typeof a.wocg.User.getAnimationsMode||0!==a.wocg.User.getAnimationsMode())}function y(na,b,f){na=C[na.gameid]||{};return"number"===typeof na[b]?na[b]:f}function v(na,b,f){w(b,"duration")||(b.duration=f);w(b,"reverseDirection")||(b.reverseDirection=!1);w(b,"backsideDimOpacity")||(b.backsideDimOpacity=.24);w(b,"frontsideDimOpacity")||(b.frontsideDimOpacity=.24);w(b,"counterTranslateFlip")||(b.counterTranslateFlip=!0);w(b,"counterTranslateStrength")||(b.counterTranslateStrength=.5);!w(b,
1102"counterTranslateWidth")&&na&&(b.counterTranslateWidth=na.width);w(b,"edgeOnRotationY")||(b.edgeOnRotationY=88)}function d(na,b){return(na=(na=na.spots[b])&&na.config&&na.config.arrangement)&&"played"===na.type}function n(na){return Math.max(1,Math.round(na.getHeight()||na.getStyleAsNumber("height")||0)+1)}function m(na,b,f,u){b=a.Transition.startAnimation(na.node,b,f,u);var l=b.isCurrent;b.isCurrent=function(){return!!(na&&na.node&&l())};return b}function H(na,b){na.node.removeClass("id-"+na.id);
1103na.id=b;delete na.targetid;na.node.addClass("id-"+na.id);na.updateNodeAttributes()}function c(na){var b=a.one(na);na=a.one("#mainContainer");if(!(b&&b._node&&na&&na._node))return null;b=b._node.getBoundingClientRect();na=na._node.getBoundingClientRect();return 0>=b.width||0>=b.height?null:{left:b.left-na.left,top:b.top-na.top,width:b.width,height:b.height}}function e(na){return na.tutorial&&na.game&&na.game.game?na.game.game:na.game}function h(na){na&&na.spots&&Object.keys(na.spots).forEach(function(b){0===
1104b.indexOf("gameOver")&&na.spots[b]&&na.spots[b].resize()})}function p(na,b,f,u){var l=b.info||{},r="object"===typeof f?f:{},D=!0===l.privateTable&&0==l.noRobots&&0==l.replaceRobots,N=r.gameid||"none";f=a.merge;na={reason:na,autoLeaveDelayMs:"path_guard"===na?200:0,urlGameid:N,realPathFindTable:!0===r.findTable,realPathTutorial:!0===r.tutorial,pathGameMismatch:"none"!==N&&N!==b.gameid,tableInfoNotSingleplayerLike:!!b.info&&!D,incomingGameid:b.gameid||"none",incomingTableid:b.tableid||"none",incomingTableHash:b.tableHash||
1105"none",incomingGameStarted:!0===b.gameStarted,incomingInfoPrivateTable:!0===l.privateTable,incomingInfoNoRobots:"undefined"!==typeof l.noRobots?l.noRobots:-1,incomingInfoReplaceRobots:!0===l.replaceRobots,incomingInfoSingleplayerLike:D,pendingNewGameReload:!(!a.wocg.hasPendingNewGameReload||!a.wocg.hasPendingNewGameReload()),connectionEstablished:!!(a.wocg.Comm&&a.wocg.Comm.isConnectionEstablished&&a.wocg.Comm.isConnectionEstablished()),navigatorOnline:navigator.onLine,cookieEnabled:navigator.cookieEnabled};
1106D="none"!==N?N:b.gameid;var P=a.wocg.User;b=P&&P.getCookie?P.getCookie():null;var ca=P&&P.getInitCookieDiagnostics?P.getInitCookieDiagnostics():null;l=P&&P.getUsername?P.getUsername()||"unknown":"unknown";N=P&&P.isRegistered?P.isRegistered():!1;r=P&&P.getFinishedGames?P.getFinishedGames():-1;D=P&&P.getFinishedGameCount&&D?P.getFinishedGameCount(D):-1;P=ca?!0===ca.cookiePresent:!1;var xa=ca?!0===ca.cookieLooksHex96:!1,Ba=ca?!0===ca.sentCookie:!1;ca=ca?!0===ca.removedInvalidCookie:!1;var U="string"===
1107typeof b&&/^[a-f0-9]{96}$/.test(b);try{var R=(a.wocg.queryParams?a.wocg.queryParams():{}).pool||"none"}catch(Ca){R="none"}a:{try{for(var ia=document.cookie.split(";"),ra=0;ra<ia.length;ra++){var ka=ia[ra].split("=");if(ka[0]&&"pool"===ka[0].trim()){var ha=ka.slice(1).join("=").trim();break a}}}catch(Ca){}ha=""}R={username:l,userRegistered:N,userFinishedGames:r,userGameFinishedGames:D,initCookiePresent:P,initCookieLooksHex96:xa,initSentCookie:Ba,initRemovedInvalidCookie:ca,postInitCookiePresent:!!b,
1108postInitCookieLooksHex96:U,poolParam:R,poolCookie:ha||"none",currentPoolInactive:!!a.wocg.currentPoolInactive};ha=window.__wocgPageResetInfo||null;ha={pageResetLoad:!!ha,pageResetTrigger:ha&&ha.trigger?ha.trigger:"none",pageResetReason:ha&&ha.resetReason?ha.resetReason:"none",pageResetReloadToAutoLeaveMs:ha&&isFinite(ha.firedAt)&&6E5>Date.now()-ha.firedAt?Math.max(0,Date.now()-ha.firedAt):-1};a.wocg.PageReset&&a.wocg.PageReset.getFireSnapshot&&(ia=a.wocg.PageReset.getFireSnapshot())&&(ha.firePoolCookie=
1109ia.poolCookie||"none",ha.firePoolParam=ia.poolParam||"none",ha.fireUsername=ia.username||"unknown",ha.fireTableGameid=ia.tableGameid||"none",ha.fireTableid=ia.tableid||"none",ha.fireTableHash=ia.tableHash||"none",ha.fireTableSingleplayer=!0===ia.tableSingleplayer,ha.fireTableSolo=!0===ia.tableSolo);u=f.call(a,na,R,ha,u||{});try{a.wocg.trackEvent("TableCreateAutoLeave",u)}catch(Ca){}a.wocg.PageReset&&a.wocg.PageReset.trackRejoinMiss&&a.wocg.PageReset.trackRejoinMiss("table_create_auto_leave",u)}function t(){null!==
1110L&&(L.stop(),L=null);null!==T&&(clearTimeout(T),T=null)}function B(){return null!==L}function F(){null!==L&&(L.stop(),L=null);a.fire("ModalProgress:show",{id:"table",message:"Finding table..."})}function S(){t();a.fire("ModalProgress:hide",{id:"table"})}function A(){return null!==G}function M(){return null!==G&&G.gameStarted&&!G.tutorial&&!G.gameOver}function J(na,b){if("number"===typeof b){var f=Date.now();b=Math.max(0,b);na.pauseExpireAt=f+b;na.pauseResumeAt=f+Math.max(0,C.PUBLIC_TABLE_UNPAUSE_COOLDOWN-
1111Math.max(0,C.PUBLIC_TABLE_PAUSE_DURATION-b))}}var G=null,E=a.wocg.Comm,L=null,T=null,ma=!1,ea="hearts spades euchre whist twentynine pinochle pinochledd bridge sheepshead".split(" "),ba=C.UNSELECTABLE_ANIMATE_DURATION,X=3*base.SECOND,I=base.SECOND,O=6.4*base.SECOND,fa=["mousedown","click","touchstart"],ta=["hint-suggested-below","hint-suggested-left","hint-suggested-right"],ua=["hint-suggested-hiding-below","hint-suggested-hiding-left","hint-suggested-hiding-right"],qa="left right rightOf leftOf xCenteredWith xAlignedWith xRightAlignedWith leftMargin rightMargin leftInternalMargin rightInternalMargin leftExternalMargin rightExternalMargin modifyX top bottom above below yCenteredWith yAlignedWith yBottomAlignedWith topMargin bottomMargin topInternalMargin bottomInternalMargin topExternalMargin bottomExternalMargin modifyY".split(" ");
1112a.wocg.Table=function(na){this.erroredOut=!1;this.standalone=!!na.standalone;this.pushed=na.pushed;this.gameid=na.gameid;this.tableid=na.tableid;this.tableHash=na.tableHash||null;this.tutorial=na.tutorial;this.json=na.json;this.info=na.info||{};this.chatLog=na.chatLog||[];this.info.gameName=a.wocg.game[this.gameid].name;this.extraGameOptions={};this.ranked=na.ranked;this.exceptionBotsAllowed=na.exceptionBotsAllowed;C[this.gameid].EXTRA_GAME_OPTIONS.forEach(function(b){this.extraGameOptions[b]=this.info[b]}.bind(this));
1113this.teams=C.GAME_TEAMS.includes(this.gameid)||!1;this.game=new a.wocg.game[this.gameid][this.tutorial?"Tutorial":"Game"](this);this.players=this.tutorial?this.game.getPlayerConfig():na.players;this.numPlayers=this.players.length;this.gameLayout=new a.wocg.game[this.gameid].Layout(this.players.length,this.tutorial,this.extraGameOptions,this.ranked);this.layout=this.gameLayout.create();this.spotOrder=this.gameLayout.getSpotOrder();this.spots={};this.playspace=null;this.partyPreloadScheduled=!1;this.leavingPlayers=
1114[];this.disconnectCountdownStartTimers={};this.activePlayers={};this.p2s=[].pushSequence(0,this.players.length-1).rotate(this.players.length-this.players.reduce(function(b,f,u){return f.you?u:b},null));this.hasClickedInviteRobot=!1;this.currentDealer=this.dealerChipPiece=this.showInviteRobotChatTipTimer=null;this.teamScores=[].pushMany(0,this.players.length/2);this.syncid=this.activeSuit=this.trickStartPlayer=null;this.sittingOutPlayers=[];this.pendingResize=this.gameOverModalOpen=this.handOverModalOpen=
1115this.handOverSeen=this.dealFastForwarded=this.dealInProgress=!1;this.replaceRobots=!0;this.playPauseButtonEnablerTimer=null;this.iVotedToPause=na.iVotedToPause?na.iVotedToPause:!1;this.pauseVoters=[];this.pauseExpireAt=this.pauseResumeAt=0;J(this,na.expiresIn);this.pauseMessageInterval=null;this.nRedeals=0;this.showRedealNoticeTimeout=null;this.selectabilitySpacingDelayUntil=this.gameCreatedTime=this.gameStartedTime=0;this.showStatsOn=!1;this.mutedPlayers=[];this.tableErrorText=this.messageBeforeTableError=
1116this.currentMessage=this.messageBox=null;this.tableErrorNonce=0;this.countdownInterval=null;this.inviteAllRobotsSent=!1;this.unblockCooldownUntil={};this.rematchId=null;this.rematchCountdown=0;this.rematchExpiryTimeout=this.rematchCountdownInterval=null;this.hasVotedRematch=!1;this.gameOverAdTimer=null;this.gameOverAdFired=!1;a.wocg.Table.prototype.create=function(b,f){this.gameCreatedTime=Date.now();this.gameStarted=b||!1;this.gamePaused=f||!1;
1116this.gameStarted&&this.players.forEach(function(P,ca){P.you&&
1117(this.players[ca].joinedDate=new Date)}.bind(this));this.playspace=a.Node.create("<div>").addClass("playspace").addClass("unselectable").addClass(this.gameid).set("id","playspace");a.one("#mainContainer").append(this.playspace);this.resizeAndPositionPlayspace();this.layout=this.gameLayout.create();this.spotOrder=this.gameLayout.getSpotOrder();this.fanCardsWider(!0);var u=0,l;a.Node.getDOMNode(this.playspace).addEventListener("wheel",function(P){clearTimeout(l);u+=Math.abs(P.deltaY);100>u&&P.preventDefault();
1118l=setTimeout(function(){u=0},1E3)},{passive:!1});var r,D=!1,N=()=>{a.wocg.trackEvent("ScrollToTopClicked",{gameid:this.gameid||"unknown"});YUI().use("anim",function(P){(new P.Anim({node:"win",to:{scroll:[0,0]},duration:.64,easing:P.Easing.easeOut})).run()})};b=()=>{!r&&56<=window.scrollY?(r=a.Node.create("<button>").addClass("button").addClass("blue").addClass("scrollToTop").setContent("Scroll to top"),r.on("click",N,this),a.one("body").append(r),D||(D=!0,a.wocg.trackEvent("ScrollToTopShown",{gameid:this.gameid||
1119"unknown"}))):r&&56>window.scrollY&&(r.remove(!0),r=null)};a.wocg.isSourceArkadium()||a.wocg.isNativeApp()||window.addEventListener("scroll",b);this.spotOrder.forEach(function(P){if("undefined"===typeof this.layout[P])base.error("Error: Missing [%s] from: %o",P,this.layout),base.error("Spot Order: %o",this.spotOrder);else{var ca=new a.wocg.Spot(this,P,this.layout[P]);this.spots[P]=ca}}.bind(this));this.createScoreBoard();this.positionScoreboard();this.resizeAllSpots();a.wocg.Table.preloadDeck();this.createPlayerPersonaPieces();
1120na.hasOwnProperty("dealer")&&this.setCurrentDealer(na.dealer,{skipAnimation:!0});this.createMessageBox();this.game.create();this.updateScoreBoard();b=e(this);b.getHandCountIsShown&&!b.getHandCountIsShown()&&this.hideScoreboard();this.tutorial||this.isSingleplayerGame()?this.disableChat():this.enableChat();a.fire("table:created",this);this.tableStateChangedHandler(!0);this.pileCardsVertically({pc:a.wocg.User.getPileCardsVertically()});this.gamePaused&&this.pauseHandler();a.Transition.run({node:this.playspace,
1121duration:a.wocg.SCREEN_TRANSITION_DURATION,opacity:1,cb:this.preloadPartyAnimationsWhenIdle.bind(this)});if(a.wocg.isSourceArkadium()&&window.arkadium)window.arkadium.lifecycle.onGameStart();b="images/gameOverHeader.json images/handOverHeader.json pieces/medal/classic/1.json pieces/medal/classic/2.json pieces/medal/classic/3.json pieces/medal/classic/4.json images/handOverBackground.svg images/gameOverStar.svg".split(" ");2===a.wocg.User.getAnimationsMode()&&(b=b.concat(["images/suitHeart.svg","images/suitSpade.svg",
1122"images/suitDiamond.svg","images/suitClub.svg"]));b.forEach(function(P){fetch(a.wocg.buildAssetImageURL(P))})};a.wocg.Table.prototype.preloadPartyAnimationsWhenIdle=function(){if(2===a.wocg.User.getAnimationsMode()&&a.Animation&&a.Animation.preloadParty&&!this.partyPreloadScheduled){this.partyPreloadScheduled=!0;var b=function(){this.partyPreloadScheduled=!1;this.destroyed||2===a.wocg.User.getAnimationsMode()&&(this.dealInProgress?this.preloadPartyAnimationsWhenIdle():a.Animation.preloadParty())}.bind(this);
1123"undefined"!==typeof window&&window.requestIdleCallback?window.requestIdleCallback(b):setTimeout(b,1E3)}};a.wocg.Table.prototype.animationsModeChangedHandler=function(b){2===b&&this.preloadPartyAnimationsWhenIdle()};a.wocg.Table.prototype.resyncHandler=function(b){if(!this.tutorial){this.selectabilitySpacingDelayUntil=Date.now()+ba;if(b.outOfSync){var f=this;setTimeout(function(){f.showMessage("Your view of the table is out of sync with the server and is being reset.",{duration:8E3,prefix:"alert"})}.bind(this),
1124800)}var u={skipAnimation:!0};b.sittingOutPlayers&&(this.sittingOutPlayers=b.sittingOutPlayers);b.hasOwnProperty("teamScores")&&(this.teamScores=b.teamScores.slice());b.tramEnabled&&this.createTramButton();b.hasOwnProperty("hands")&&this.resyncHands(b.hands);this.trickStartPlayer=null;b.hasOwnProperty("trickStartPlayer")&&(this.trickStartPlayer=b.trickStartPlayer,this.updatePlaySpotsZIndexOrder());
1124b.playedCards?this.getSpot("play").pieces.map(function(l){return l.id}).join()!==b.playedCards.join()&&
1125(this.removeSpotPieces("play"),"function"===typeof this.game.createHandPiecesResync?this.game.createHandPiecesResync("card",b.playedCards):this.createHandPiecesResync("card",b.playedCards),this.updateSpot("play",u)):this.getSpot("play")&&this.removeSpotPieces("play");b.ranked&&(this.ranked=!0);b.exceptionBotsAllowed&&(this.exceptionBotsAllowed=!0);this.game.resyncHandler(b);this.updateScoreBoard();this.initPlayPauseButtonsIfNecessary();b.nRedeals&&(this.nRedeals=b.nRedeals);b.showRedeal&&this.showRedealNotice(b.showRedeal)}};
1126a.wocg.Table.prototype.notifyMeWhenGameStarts=function(){document.hasFocus()||notify.requestPermission(function(){this.notifyGameStarted()}.bind(this))};a.wocg.Table.prototype.notifyGameStarted=function(){var b=this.getPlayerMe();b=this.getPlayerName(b)+" - your "+a.wocg.game[this.gameid].name+" game has started!";notify.createNotification("World of Card Games",{body:b,icon:"/favicon.ico"})};a.wocg.Table.prototype.createScoreBoard=function(){if(this.hasScoreBoard()){var b=a.wocg.game[this.gameid].extraScoreBoardColumns||
1127[],f=a.wocg.game[this.gameid].extraColumnHeaders,u=a.Node.create("<div>").set("id","scoreBoardWrapper"),l=a.Node.create("<table>").set("id","scoreBoard");if(this.teams){const D=4==this.players.length?[0,1]:[1,0];D.forEach(function(N,P){var ca=a.Node.create("<tr>").addClass("team"+(N+1));ca.append(a.Node.create("<td>").set("colSpan",2).set("valign","middle").addClass("team"+N+"score"));b.forEach(function(Ba){ca.append(a.Node.create("<td>").set("colSpan",2).set("valign","middle").addClass("team"+N+
1128Ba))});l.append(ca);if(P+1<D.length){var xa=a.Node.create("<tr>").addClass("title");xa.append(a.Node.create("<td>").set("colSpan",2).setContent("Score"));b.forEach(function(Ba){Ba=f?f[Ba]:Ba.toProperCase();xa.append(a.Node.create("<td>").set("colSpan",2).setContent(Ba))});l.append(xa)}})}else if("hearts"==this.gameid){var r=a.Node.create("<tr>").addClass("title");r.append(a.Node.create("<td>").set("colSpan",2).setContent("Round"));r.append(a.Node.create("<td>").set("colSpan",2).setContent("Direction"));
1129l.append(r);r=a.Node.create("<tr>").addClass("player").addClass("team1");r.append(a.Node.create("<td>").set("colSpan",2).set("valign","middle").addClass("playerName0"));r.append(a.Node.create("<td>").set("colSpan",2).set("valign","middle").addClass("playerName1"));l.append(r)}else(4==this.players.length?[0,1]:[1,0]).forEach(function(D,N){var P=a.Node.create("<tr>").addClass("player").addClass("team1").addClass("player"+D);P.append(a.Node.create("<td>").set("colSpan",2).set("valign","middle").addClass("playerScore"+
1130D));b.forEach(function(xa){P.append(a.Node.create("<td>").set("colSpan",2).set("valign","middle").addClass("player"+xa+D))});l.append(P);if(0==N){var ca=a.Node.create("<tr>").addClass("title");ca.append(a.Node.create("<td>").set("colSpan",2).setContent("Score"));b.forEach(function(xa){xa=f?f[xa]:xa.toProperCase();ca.append(a.Node.create("<td>").set("colSpan",2).setContent(xa))});l.append(ca)}});u.append(l);a.one("#mainContainer").append(u)}};a.wocg.Table.prototype.createMessageBox=function(){this.messageBox=
1131a.Node.create("<div></div>").addClass("piece").addClass("classic").addClass("text").addClass("spot-messageBox").addClass("spotPrefix-messageBox");a.one("#mainContainer").append(this.messageBox);this.resizeAndPositionMessageBox()};a.wocg.Table.prototype.resizeAndPositionMessageBox=function(){if(this.messageBox&&this.messageBox._node){var b=a.wocg.playspaceGutter(),f=c("#playspace");f&&(this.messageBox.setStyle("left",Math.floor(f.left+b)+"px"),this.messageBox.setStyle("top",Math.floor(f.top+b)+"px"),
1132this.messageBox.setStyle("marginTop","0px"));this.messageBox.setStyle("max-width","");this.messageBox.setStyle("min-width","");var u=this.messageBox._node;if(1===u.nodeType){var l=window.getComputedStyle?window.getComputedStyle(u):null;u=l?parseFloat(l.maxWidth):NaN;if(!isNaN(u)){var r=l?parseFloat(l.minWidth):NaN;l=l?parseFloat(l.paddingLeft)+parseFloat(l.paddingRight):0;var D=this.messageBox.getStyleAsNumber("left"),N=a.one("#mainContainer");if(N&&!isNaN(D)){var P=f?f.left:0,ca=f?f.height/2:N.getHeight()/
11332,xa=null;
1133Object.keys(this.spots).forEach(function(Ba){if(Ba.startsWith("namePlate")){var U=a.one("#spot-"+Ba);U&&(Ba=U.getStyleAsNumber("left"),U=U.getStyleAsNumber("top"),isNaN(Ba)||isNaN(U)||U>=ca||(Ba+=P,Ba<=D||!(null===xa||Ba<xa)||(xa=Ba)))}}.bind(this));null!==xa&&(b=Math.floor(xa-D-b-l),b>=u||80>b||(this.messageBox.setStyle("max-width",b+"px"),!isNaN(r)&&r>b&&this.messageBox.setStyle("min-width",b+"px")))}}}}};a.wocg.Table.prototype.updateScoreBoard=function(b=null){if(this.hasScoreBoard()){var f=
1134a.one("#scoreBoard");if(f){var u=e(this);if(this.teams)(4==this.players.length?[0,1]:[1,0]).forEach(D=>{if(null===b||b===D){f.one(".team"+D+"score").setContent(this.teamScores[D]||"0");var N=[[],[]];this.players.forEach((P,ca)=>{P=this.teamNumber(ca);N[P-1].push(this.getPlayerName(ca))});N.forEach((P,ca)=>{a.CustomTooltip.detachOnHover(f.one("tr.team"+(ca+1)));a.CustomTooltip.showOnHover(f.one("tr.team"+(ca+1)),`Team ${ca+1}: ${P.join(" and ")}`)})}});else if("hearts"!=this.gameid)for(var l=u.gameScores||
1135[],r=0;r<this.players.length;r++)if(null===b||b===r)f.one("td.playerScore"+r).setContent(l[r]||"0"),a.CustomTooltip.detachOnHover(f.one("tr.player"+r)),a.CustomTooltip.showOnHover(f.one("tr.player"+r),this.getPlayerName(r));u.updateScoreBoard&&u.updateScoreBoard(b);this.resizeAndPositionScoreboard()}}};a.wocg.Table.prototype.showScoreboard=function(){var b=a.one("#scoreBoardWrapper");b.setStyle("display","inline-block");this.resizeAndPositionScoreboard();a.Transition.run({node:b,opacity:1,duration:160,
1136easing:"linear"})};a.wocg.Table.prototype.hideScoreboard=function(){var b=a.one("#scoreBoardWrapper");a.Transition.run({node:b,opacity:0,duration:160,easing:"linear",cb:function(){b.setStyle("display","none")}})};a.wocg.Table.prototype.getTrickSuit=function(b){if(null===this.trickStartPlayer)return null;var f=this.getPieces("play");f.length&&this.players.length<f.length&&E.send("table.debug",{reason:"Table.getTrickSuit playedPieces.length is '"+f.length+"'"});return f.length?b?b(f[0].getId()):f[0].suit():
1137null};a.wocg.Table.prototype.updatePlaySpotsZIndexOrder=function(){var b=this.getSpot("play"),f=this.getTrickPlayOrder();!this.game.updatePlaySpotsZIndexOrder||this.game instanceof a.wocg.Tutorial?(b.config.arrangement.sources=f.map(function(u){return"hand"+this.getSpotNum(u)}.bind(this)),b.config.arrangement.skipSpaces=this.sittingOutPlayers):this.game.updatePlaySpotsZIndexOrder(b,f)};a.wocg.Table.prototype.getTrickPlayOrder=function(){for(var b=[],f=null,u=0,l=this.players.length-this.sittingOutPlayers.length;u<
1138l;u++)f=null!==f?this.getNextPlayer(f):this.trickStartPlayer,b.push(f);return b};a.wocg.Table.prototype.tableStateChangedHandler=function(b){if(this.gameStarted||this.gameOver||this.tutorial||!this.isTableFull()||this.isSingleplayerGame()||this.isSoloGame())this.countdownInterval&&(clearInterval(this.countdownInterval),this.countdownInterval=null),this.showOrHideTableMessage(b);else{var f=10;this.showMessage(`Table is full. Game will start in <b>${f} seconds</b>.`,{duration:base.DAY,scope:"table"});
1139this.countdownInterval=setInterval(()=>{f--;0==f?(a.SoundEffects.play(C.AUDIO_TICK_HIGH),this.showMessage("Dealing cards...",{duration:base.DAY,scope:"table"}),clearInterval(this.countdownInterval),this.countdownInterval=null):(3>=f&&1<=f&&a.SoundEffects.play(C.AUDIO_TICK_LOW),this.showMessage(`Table is full. Game will start in <b>${f} ${1===f?"second":"seconds"}</b>.`,{duration:base.DAY,scope:"table"}))},1E3)}this.inviteAllRobotsSent||this.tutorial||!this.info.privateTable||this.info.privateTableName!==
1140C.ANONYMOUS_TABLE_NAME||this.info.noRobots||this.sendInviteAllRobotsMessage();this.gameStarted&&this.initPlayPauseButtonsIfNecessary();this.initRankedButtons();this.isTableFull()||this.isSingleplayerGame()?(this.stopInviteRobotChatTipTimer(),this.clearInviteRobotChatTips()):this.startInviteRobotChatTipTimer()};a.wocg.Table.prototype.hasScoreBoard=function(){var b=e(this);return b.hasScoreBoard?b.hasScoreBoard():!!this.teams};a.wocg.Table.prototype.tablePlayersChangedHandler=function(b){this.game.tablePlayersChangedHandler&&
1141this.game.tablePlayersChangedHandler();this.updateScoreBoard()};a.wocg.Table.prototype.showOrHideTableMessage=function(b){if(!this.tutorial&&!this.isSingleplayerGame())if(this.gameStarted&&this.isTableFull())!this.info.chat&&this.currentMessage&&"table"===this.currentMessage.scope&&this.hideMessage(this.currentMessageText);else{var f=null,u=null,l=b=null,r=[],D=this.info.privateTable&&this.info.privateTableName!=C.ANONYMOUS_TABLE_NAME,N=!!this.info.privateTable,P=this.players.some(function(U,R){return U.username&&
1142this.isHumanPlayer(R)}.bind(this)),ca=this.gameStarted?"continue":"start",xa=[],Ba="Table";D?Ba="Private table <b>"+this.info.privateTableName+"</b>":this.info.tableNumber&&(Ba+=" <b>#"+this.info.tableNumber+"</b>");Ba+=" will "+ca+" when full.";N?(1==this.info.noRobots&&(Ba+=" Bots are off for this table."),Ba+=" Only invited players can join."):1==this.info.noRobots&&(Ba=this.exceptionBotsAllowed?Ba+" Bots allowed if all players agree.":Ba+" Bots are off for this table.");this.info.chat&&(Ba="This table is for chatting only.");
1143!this.isTableFull()&&1!=this.info.noRobots&&P&&(f=this.gameStarted?"Continue":"Start",xa.push(ca+" with bots"),f='<div class="button blue">'+f+" with bots</div>",u=this.replaceRobotsMessageClickHandler.bind(this));!D&&!this.info.tableNumber||this.isSingleplayerGame()||a.wocg.isSourceArkadium()||this.isTableFull()||(xa.unshift("invite friends"),b='<div class="button blue inviteLink">Invite players</div>',l=this.invitePlayersClickHandler.bind(this));this.showRedeal&&r.push({text:"Vote to redeal",className:"blue",
1144onClick:this.redealMessageClickHandler.bind(this)});!this.info.chat&&xa.length&&(D=1===xa.length?xa[0]:xa.slice(0,-1).join(", ")+" or "+xa[xa.length-1],Ba+=" "+D.charAt(0).toUpperCase()+D.slice(1)+".");this.showRedeal&&(Ba+=" Redeal vote closes in "+Math.floor(this.showRedeal/1E3)+" seconds.");this.isTableFull()||!P?this.info.chat?this.showMessage(Ba,{duration:base.DAY,scope:"table",buttonText:f,buttonHandler:u,buttons:r}):this.hideMessage():this.showMessage(Ba,{duration:base.DAY,scope:"table",buttonText:f,
1145buttonHandler:u,extraButtonText:b,extraButtonHandler:l,buttons:r})}};a.wocg.Table.prototype.redealAllowed=function(){return"function"===typeof this.game.redealAllowed&&this.gameStarted&&this.nRedeals<C.MAX_REDEALS};a.wocg.Table.prototype.leaveTableLinkClickHandler=function(){this.tableLeaveSentAt&&2500>Date.now()-this.tableLeaveSentAt||this.sendTableLeave(!0)};a.wocg.Table.prototype.sendTableLeave=function(b){b&&(this.ranked&&this.gameStarted&&!this.gameOver&&(a.wocg.User.setIsAllowedRanked(this.gameid,
1146!1),a.wocg.ProfileBox.userBanned(this.gameid)),this.tableLeaveSent=!0,this.tableLeaveSentAt=Date.now(),this.gameOver&&this.triggerGameOverAd(),this.gameOver&&this.tableid?(E.send("table.leave",{tableid:this.tableid}),a.fire("comm:gameSelectors.show")):E.send("table.leave"))};a.wocg.Table.prototype.gameStartedHandler=async function(b){this.gameStarted=!0;this.gameStartedTime=Date.now();this.players.forEach(function(f,u){f.you&&(this.players[u].joinedDate=new Date)}.bind(this));this.tableStateChangedHandler();
1147this.isSoloGame()||this.notifyMeWhenGameStarts();this.info.privateTable||this.hasBots()||this.showMessage("Game is starting.",{duration:base.DAY,scope:"table"});b=await a.wocg.getCookie("gamesPlayed");a.wocg.setCookie("gamesPlayed",parseInt(b||0)+1,{path:"/",domain:a.wocg.DOMAIN,expires:new Date(Date.now()+base.YEAR)})};a.wocg.Table.prototype.unmutePlayer=function(b,f){var u=this.mutedPlayers.indexOf(b);-1<u&&this.mutedPlayers.splice(u,1);f?this.hideMutePlayerButton(b):this.showMutePlayerButton(b,
1148"mute")};a.wocg.Table.prototype.mutePlayer=function(b){this.mutedPlayers.push(b);this.showMutePlayerButton(b,"unmute")};a.wocg.Table.prototype.fanCardsWider=function(b){if(a.wocg.game[this.gameid]&&a.wocg.game[this.gameid].peekModifiers){var f=this.getMaxWidthMaxHeight();f=this.gameLayout.modifyPlayspaceDimensions([f.maxWidth,f.maxHeight]);f=f[0]/f[1]*a.wocg.game[this.gameid].peekModifiers[0]*.8;f>a.wocg.game[this.gameid].maxPeekModifier&&(f=a.wocg.game[this.gameid].maxPeekModifier);var u=C[this.gameid].FAN_ARC_RADIUS||
1149C.FAN_ARC_RADIUS;this.layout.hand0.arrangement.peekModifier=f;this.layout.hand0.FAN_ARC_RADIUS=u;b||this.updateSpot("hand0")}};a.wocg.Table.prototype.usesSeparatedFourCardTrickLayout=function(){return-1<ea.indexOf(this.gameid)};a.wocg.Table.prototype.pileCardsVertically=function(b){if((4===this.numPlayers||2===this.numPlayers
1149)&&this.layout.play){var f=this.layout.play;b.pc||!this.usesSeparatedFourCardTrickLayout()?(f.arrangement.jitter=0,f.arrangement.rotate={N:0,W:0,E:0,S:0},f.arrangement.offset=
115072,f.arrangement.factorN=.4,f.arrangement.factorS=.4,delete f.arrangement.playedCardGap,delete f.arrangement.playedCardBoundaryGap,delete f.arrangement.fitFourCardTrick,delete f.arrangement.anchorFourCardTrickToHands):(f.arrangement.jitter=0,f.arrangement.rotate={N:0,W:0,E:0,S:0},f.arrangement.offset=100,f.arrangement.factorN=.5,f.arrangement.factorS=.5,f.arrangement.playedCardGap=function(){return a.wocg.isPlayspaceCompact("small")?4:8},f.arrangement.playedCardBoundaryGap=function(){return a.wocg.isPlayspaceCompact()?
11518:16},f.arrangement.fitFourCardTrick=!0,f.arrangement.anchorFourCardTrickToHands=!0);this.updateSpot("play")}};a.wocg.Table.prototype.hideOrShowAllMuteButtons=function(b){"hide"===b?this.players.forEach(function(f,u){this.showMutePlayerButton(u,"unmute")}.bind(this)):this.players.forEach(function(f,u){"Empty seat"===this.getPlayerName(u)||this.isPlayerMe(u)||(f.muted||-1<this.mutedPlayers.indexOf(u)?this.showMutePlayerButton(u,"unmute"):this.showMutePlayerButton(u,"mute"))}.bind(this))};a.wocg.Table.prototype.isPlayerMuted=
1152function(b){return a.wocg.User.getGlobalMute()?!0:0===this.mutedPlayers.length?!1:-1<this.mutedPlayers.indexOf(b)};a.wocg.Table.prototype.isPlayerMutedByUsername=function(b){return a.wocg.User.getGlobalMute()?!0:0===this.mutedPlayers.length?!1:this.mutedPlayers.some(function(f){return this.getPlayerName(f)===b}.bind(this))};a.wocg.Table.prototype.createPlayerPersonaPieces=function(){this.players.forEach(function(b,f){var u=this.teamNumber(f),l=this.getPlayerName(f),r="Empty seat"===l,D=this.getSpotNum(f),
1153N=this.createPiece("name"+D,"text");N.setText(l);N.player=f;this.updateSpot("name"+D);r||this.tutorial||this.colorizeInexperiencedUserNames({player:f,isExperienced:b.isExperienced},N);N.addClasses("team"+u);l=this.createPiece("namePlate"+D,"namePlate");l.player=f;l.addEventHandler("click",this.togglePlayerStats,this);this.updateSpot("namePlate"+D);l.addClasses("team"+u);this.showRatePlayerButton(f,"dislike",b.rating);this.showRatePlayerButton(f,"like",b.rating);["mobile","tablet"].includes(a.wocg.deviceType())&&
1154!this.isPlayerMe(f)?this.showPlayerMore(f):this.hidePlayerMore(f);"like"==b.rating&&this.showPlayerLiked(f);b.siteSupporterLevel&&this.showSiteSupporter2(f);r||this.isPlayerMe(f)||(b.muted?this.mutePlayer(f):this.unmutePlayer(f));this.spots["scorePlate"+D]&&(r=this.createPiece("scorePlate"+D,"scorePlate"),r.player=f,this.updateSpot("scorePlate"+D),r.addClasses("team"+u),0!==D&&this.gameLayout.usesInlinePlayerScorePlate(D,this.gameLayout.getPlayerSpotPosition(D))&&r.addClasses("inlineScorePlate"));
1155this.spots["gameScore"+D]&&(r=this.createPiece("gameScore"+D,"text"),r.player=f,this.updateSpot("gameScore"+D),this.game.doNotInitializeGameScore||this.updateGameScore(f,0),r.addClasses("team"+u),r.setTooltip("Game score"));this.spots["handScore"+D]&&(r=this.createPiece("handScore"+D,"text"),r.player=f,this.updateSpot("handScore"+D),this.updateHandScore(f,a.wocg.game[this.gameid].nonZeroHandScore?"–":0),r.addClasses("team"+u),r.setTooltip(`${"canasta"===this.gameid?"Meld":["ginrummy","rummy","crazyeights",
1156"handfoot"].includes(this.gameid)?"Round":"Hand"} score`));u=!b.avatar&&!this.isPlayerMe(f)&&!this.tutorial&&this.info.privateTable&&this.info.privateTableName===C.ANONYMOUS_TABLE_NAME&&!this.info.noRobots;r=this.createPiece("avatar"+D,"avatar",this.getPlayerAvatar(f));this.isPlayerMe(f)||r.addEventHandler("click",this.onAvatarClickHandler,this);r.player=f;this.updateSpot("avatar"+D,u?{suppressFadeIn:!0}:void 0);this.preloadAvatarEmotions(f);b.avatar||u||this.showInviteAIButton(f,{animate:!1})}.bind(this))};
1157a.wocg.Table.prototype.usesCompactPlayerStats=function(b){var f=this.getSpotNum(b);return this.isPlayerMe(b)||this.gameLayout.usesInlinePlayerScorePlate(f,this.gameLayout.getPlayerSpotPosition(f))};a.wocg.Table.prototype.showPlayerStats=function(b){var f=this.getSpotNum(b),u=this.spots["stats"+f],l=this.players[b],r=l.nFinishedGames||0,D=l.completionRate;if(u.pieces&&0!==u.pieces.length)u=u.pieces[0],u.fadeIn();else{u=this.createPiece("stats"+f,"htmlTable","stats");u.node.addClass("stats");u.player=
1158b;if(this.isAIPlayer(b))b=["<b>Bot</b>
1158"],D=["Filled"],u.appendRows(b,D);else{var N=a.wocg.getDisplayGameRanks(l.gameRanks,this.gameid);l=void 0!==D?D+"%":"N  ̸ A";if(this.usesCompactPlayerStats(b))b=["Elo: <b>"+N+"</b> · Games: <b>"+r+"</b> · Finishes: <b>"+l+"</b>"],u.appendRows(b);else{b=["Elo: <b>"+N+"</b>"];D=[""];r=["Games: <b>"+r+"</b>"];N=[""];l=["Finishes: <b>"+l+"</b>"];var P=[""];u.appendRows(b,D);u.appendRows(r,N);u.appendRows(l,P)}}u.addEventHandler("click",this.onStatsClickHandler,this);
1159this.updateSpot("stats"+f)}};a.wocg.Table.prototype.onAvatarClickHandler=function(b){if(!this.tutorial)if("function"===typeof this.game.onAvatarClickHandler)this.game.onAvatarClickHandler(b.player);else this.togglePlayerStats(b.player)};a.wocg.Table.prototype.updatePlayerNamePiece=function(b,f,u,l){a.Transition.clearNodeTimer(f.node,"playerNameUpdateTimer");var r=function(){l();this.updateSpot(b)}.bind(this);0<u?a.Transition.setNodeTimer(f.node,"playerNameUpdateTimer",u,r):r()};a.wocg.Table.prototype.togglePlayerStats=
1160function(b){b&&"object"===typeof b&&(b=b.player);var f=this;this.showStatsOn?(this.showStatsOn=!1,f.players.forEach(function(u,l){f.hidePlayerStats(l,function(){f.seatIsEmpty(l)||f.showPlayerAvatar(l)})})):(this.showStatsOn=!0,f.players.forEach(function(u,l){f.seatIsEmpty(l)||f.hidePlayerAvatar(l,function(){f.showPlayerStats(l)})}))};a.wocg.Table.prototype.onStatsClickHandler=function(b){var f=this;this.showStatsOn=!1;"number"!==typeof b?f.players.forEach(function(u,l){f.hidePlayerStats(l,function(){f.seatIsEmpty(l)||
1161f.showPlayerAvatar(l)})}):f.hidePlayerStats(b,function(){f.seatIsEmpty(b)||f.showPlayerAvatar(b)})};a.wocg.Table.prototype.hidePlayerStats=function(b,f){b=this.getSpotNum(b);b=this.spots["stats"+b];b.pieces.length&&(b.pieces[0].removeEventHandlers(),this.removeSpotPieces(b.id),f&&f())};a.wocg.Table.prototype.hidePlayerAvatar=function(b,f){b=this.getSpotNum(b);b=this.spots["avatar"+b];b.pieces.length&&b.pieces[0].fadeOut(f)};a.wocg.Table.prototype.showPlayerAvatar=function(b){var f=this.getSpotNum(b),
1162u=this.spots["avatar"+f];u.pieces.length?(u=u.pieces[0],u.fadeIn()):(u=this.createPiece("avatar"+f,"avatar",this.getPlayerAvatar(b)),u.addEventHandler("click",this.onAvatarClickHandler,this),u.player=b,this.updateSpot("avatar"+f))};a.wocg.Table.prototype.showInviteAIButton=function(b,f){f=f||{};if(!this.info.noRobots||this.exceptionBotsAllowed){var u=this.getSpotNum(b),l=this.spots["inviteAI"+u];if(l.pieces.length)b=l.pieces[0],!1!==f.animate&&b.node&&"hiding"===b.node.getData("inviteAIAnimationState")&&
1163(b.removeTooltip(),b.setTooltip("Invite robot"),this.animateInviteAIButtonIn(b));else{var r=this.createPiece("inviteAI"+u,"avatar","RobotNeutral");r.setTooltip("Invite robot");r.player=b;r.addEventHandler("click",this.inviteAIButtonClickHandler,this);!1===f.animate?this.updateSpot("inviteAI"+u):this.updateSpot("inviteAI"+u,{suppressFadeIn:!0,skipAnimation:!0},function(){this.animateInviteAIButtonIn(r)}.bind(this))}}};a.wocg.Table.prototype.showRatePlayerButton=function(b,f,u){if(!this.isAIPlayer(b)&&
1164!this.isPlayerMe(b)&&"Empty seat"!==this.getPlayerName(b)){var l=this.getSpotNum(b);l=f+"Player"+l;var r=0==this.spots[l].pieces.length?this.createPiece(l,"text",f+"PlayerDefault"):this.spots[l].pieces[0];"dislike"===f?(this.getPieces(l)[0].node.removeClass("active").addClass("dislike"==u?"active":""),this.getPieces(l)[0].setText("dislike"==u?"Unblock":"Block"),r.setTooltip("dislike"==u?"Show in future tables":"Ignore from future tables")):(this.getPieces(l)[0].node.removeClass("active").addClass("like"==
1165u?"":"active"),this.getPieces(l)[0].setText("like"==u?"Unlike":"Like"),r.setTooltip("like"==u?"Remove from liked players":"Like player"));r.player=b;r.addEventHandler("click",this.ratedPlayerButtonClickHandler,this);this.updateSpot(l)}};a.wocg.Table.prototype.showMutePlayerButton=function(b,f){if(!(this.isAIPlayer(b)||this.isPlayerMe(b)||"Empty seat"===this.getPlayerName(b)||a.wocg.User.getGlobalMute())){var u="mutePlayer"+this.getSpotNum(b);var l=0==this.spots[u].pieces.length?this.createPiece(u,
1166"text"):this.spots[u].pieces[0];l.setTooltip("mute"==f?"Hide chat messages":"Show chat messages");l.player=b;this.getPieces(u)[0].node.removeClass("active").addClass("mute"==f?"":"active");this.spots[u].pieces[0].setText("mute"==f?"Mute":"Unmute");l.addEventHandler("click",this.mutedPlayerButtonClickHandler,this);this.updateSpot(u)}};a.wocg.Table.prototype.showSiteSupporter2=function(b){if(!this.isAIPlayer(b)&&"Empty seat"!==this.getPlayerName(b)){var f=this.getSpotNum(b),u="support2"+f;this.spots[u].pieces.length||
1167(f=this.createPiece("support2"+f,"chip","support2"+f),f.setTooltip("Premium subscriber"),f.player=b,this.updateSpot(u))}};a.wocg.Table.prototype.hideSiteSupporter2=function(b){b=this.getSpotNum(b);var f=this.spots["support2"+b];f&&f.pieces&&f.pieces.length&&(this.removeSpotPieces(f.id),this.positionLeftButtons(b))};a.wocg.Table.prototype.showPlayerLiked=function(b){if(!this.isAIPlayer(b)&&"Empty seat"!==this.getPlayerName(b)){var f=this.getSpotNum(b),u="playerLiked"+f;this.spots[u].pieces.length||
1168(f=this.createPiece("playerLiked"+f,"chip","playerLiked"+f),f.setTooltip("Player liked"),f.player=b,this.updateSpot(u))}};a.wocg.Table.prototype.hidePlayerLiked=function(b){b=this.getSpotNum(b);var f=this.spots["playerLiked"+b];f&&f.pieces&&f.pieces.length&&(this.removeSpotPieces(f.id),this.positionLeftButtons(b))};a.wocg.Table.prototype.showPlayerMore=function(b){if(!this.isAIPlayer(b)&&"Empty seat"!==this.getPlayerName(b)){b=this.getSpotNum(b);var f="playerMore"+b;if(!this.spots[f].pieces.length){var u=
1169this.createPiece("playerMore"+b,"chip","playerMore"+b);u.setTooltip("Like, block and mute player");u.player=b;u.addEventHandler("click",this.playerMorePieceClickHandler,this);this.updateSpot(f)}}};a.wocg.Table.prototype.hidePlayerMore=function(b){b=this.getSpotNum(b);var f=this.spots["playerMore"+b];f&&f.pieces&&f.pieces.length&&(this.removeSpotPieces(f.id),this.positionLeftButtons(b))};a.wocg.Table.prototype.hideInviteAIButton=function(b,f){f=f||{};if(!this.info.noRobots||this.exceptionBotsAllowed)b=
1170this.getSpotNum(b),b=this.spots["inviteAI"+b],b.pieces.length&&(a.CustomTooltip.detachOnHover(b.pieces[0].node),!1===f.animate?this.removeSpotPieces(b.id):this.animateInviteAIButtonOut(b.pieces[0]))};a.wocg.Table.prototype.animateInviteAIButtonIn=function(b){if(b&&b.node){var f=b.node,u="hiding"===f.getData("inviteAIAnimationState"),l=m(b,"inviteAIAnimationNonce","inviteAIAnimationState","showing");a.Transition.cancel(f);f.setStyle("opacity",1);f.setScaleStyle(1);u||f.setStyle("marginTop",n(f)+"px");
1171l.afterNextPaint(function(){l.run({marginTop:0,duration:220,easing:"ease-in-out"},function(){f.setData("inviteAIAnimationState","shown");f.setStyle("marginTop","0px");f.setScaleStyle(1);f.setStyle("opacity",1)})})}};a.wocg.Table.prototype.animateInviteAIButtonOut=function(b){if(b&&b.node){var f=b.node,u=b.spotid,l=m(b,"inviteAIAnimationNonce","inviteAIAnimationState","hiding");a.Transition.cancel(f);f.setStyle("opacity",1);f.setScaleStyle(1);l.run({marginTop:n(f),duration:220,easing:"ease-in-out"},
1172function(){b.node&&b.spotid===u&&this.removeSpotPieces(u,{exit:"instant"})}.bind(this))}};a.wocg.Table.prototype.hideRatePlayerButton=function(b,f){b=this.getSpotNum(b);f=this.spots[f+"Player"+b];f.pieces.length&&(a.CustomTooltip.detachOnHover(f.pieces[0].node),a.UA.ios||a.UA.android||f.pieces[0].node.detachAll(),this.removeSpotPieces(f.id))};a.wocg.Table.prototype.hideMutePlayerButton=function(b){b=this.getSpotNum(b);b=this.spots["mutePlayer"+b];b.pieces&&b.pieces.length&&(a.CustomTooltip.detachOnHover(b.pieces[0].node),
1173this.removeSpotPieces(b.id))};a.wocg.Table.prototype.inviteAIButtonClickHandler=function(b){var f=this.getSpotNum(b.player);!(f=this.spots["inviteAI"+f].pieces[0])||f.node&&"hiding"===f.node.getData("inviteAIAnimationState")||(this.hideInviteAIButton(b.player),!this.hasClickedInviteRobot&&6>(+a.wocg.Options.getHappening("invite_robot_clicked")||0)&&(a.wocg.Options.incrementHappening("invite_robot_clicked"),this.hasClickedInviteRobot=!0),this.clearInviteRobotChatTips(),E.send("table.invite.ai",{player:b.player}))};
1174a.wocg.Table.prototype.ratedPlayerButtonClickHandler=function(b){var f=this.getSpotNum(b.player),u=this.getPieces("likePlayer"+f)[0];f=this.getPieces("dislikePlayer"+f)[0];if(u&&f){u=u.getText().toLowerCase();f=f.getText().toLowerCase();var l=b.getText().toLowerCase(),r=b.spotid.startsWith("dislike")?"dislike":"like",D={player:b.player,type:r};if("block"===l)(this.unblockCooldownUntil[b.player]||0)>Date.now()||(this.unblockCooldownUntil[b.player]=Date.now()+base.SECOND,E.send("table.rated.player",
1175D),"unlike"!=u&&this.showRatePlayerButton(b.player,r,"dislike"),(new a.ModalBlockReason).show(function(N,P){N={type:"block",reason:N||"skipped",source:"table"};P&&(N.other_reason=P);a.wocg.trackEvent("player_rated",N)}));else if("like"===l)E.send("table.rated.player",D),a.wocg.trackEvent("player_rated",{type:r,source:"table"}),"unblock"!=f&&(this.showRatePlayerButton(b.player,r,"like"),this.showPlayerLiked(b.player));else if("unblock"===l||"unlike"===l){if("unblock"===l){if((this.unblockCooldownUntil[b.player]||
11760)>Date.now())return;this.unblockCooldownUntil[b.player]=Date.now()+base.SECOND}E.send("table.unrated.player",D,"unlike"===l?"like":"");a.wocg.trackEvent("player_unrated",{type:r,source:"table"});"unlike"==l&&this.hidePlayerLiked(b.player)}}};a.wocg.Table.prototype.mutedPlayerButtonClickHandler=function(b){var f=b.getText().toLowerCase(),u={player:b.player,type:"unmute"===f?"unmute":"mute"};"mute"===f?(E.send("table.muted.player",u),this.mutePlayer(b.player)):"unmute"===f&&(E.send("table.unrated.player",
1177u,"unmute"===f?"unmute":""),this.unmutePlayer(b.player))};
1177a.wocg.Table.prototype.gameOverLikeClickHandler=function(b){var f=b.getText().toLowerCase(),u={player:b.player,type:"like"};"like"===f?(E.send("table.rated.player",u),a.wocg.trackEvent("player_rated",{type:"like",source:"table"}),b.setText("Unlike"),b.setTooltip("Remove from liked players"),b.node.addClass("active"),this.showPlayerLiked(b.player),this.showRatePlayerButton(b.player,"like","like")):"unlike"===f&&(E.send("table.unrated.player",
1178u,"like"),a.wocg.trackEvent("player_unrated",{type:"like",source:"table"}),b.setText("Like"),b.setTooltip("Like player"),b.node.removeClass("active"),this.hidePlayerLiked(b.player),this.showRatePlayerButton(b.player,"like","none"))};a.wocg.Table.prototype.playerMorePieceClickHandler=function(b){var f=document.querySelectorAll(".spot-likePlayer"+b.player+", .spot-dislikePlayer"+b.player+", .spot-mutePlayer"+b.player),u=document.querySelector(".spot-likePlayer"+b.player).classList.contains("hover");
1179f.forEach(function(l){l.classList[u?"remove":"add"]("hover")})};a.wocg.Table.prototype.positionLeftButtons=function(b=0){var f=["selectedSuit"+b,"showMeldsButton","sortButton","playerMore"+b,"playerLiked"+b,"support2"+b,"leaving"+b],u=this.gameLayout.getPlayerSpotPosition(b),l=this.gameLayout.isRightEdgePlayerPosition(u),r=a.one(".spot-namePlate"+b),D=a.one("#playspace")||a.one(".playspace"),N,P;if(r&&D){var ca=r.getStyleAsNumber("left"),xa=ca+r.getWidth(),Ba=D.getWidth(),U=!1;f.forEach(function(R){var ia=
1180this.getSpot(R);if(ia){var ra=/\d$/.test(R)?ia.findPiece(R):ia.findPiece(R+b);!ra&&R.startsWith("selectedSuit")&&(ra=ia.pieces[0])}ra&&(R=N?l?P-ra.node.getWidth()-4:P+N.node.getWidth()+4:l?xa-ra.node.getWidth()/2:ca-ra.node.getWidth()/2,ia=this.gameLayout.adjustPlayerEdgeIconX(u,R,ra.node.getWidth(),ca,xa,0,Ba),R=ia.left,U=U||ia.adjusted,ra.node.setStyle("left",R+"px"),ra.node.setStyle("marginTop",U?"-2px":"0px"),N=ra,P=R)}.bind(this))}};a.wocg.Table.prototype.updateGameScore=function(b,f,u){b=this.getSpotNum(b);
1181var l=this.getPieces("gameScore"+b)[0];u&&1<=a.wocg.User.getAnimationsMode()&&this.animateScoreChange(l,f);l.setText(null!=f&&""!==f?`${f}`:"–");this.updateSpot("gameScore"+b)};a.wocg.Table.prototype.updateHandScore=function(b,f,u){b=this.getSpotNum(b);var l=this.getPieces("handScore"+b)[0];u&&1<=a.wocg.User.getAnimationsMode()&&this.animateScoreChange(l,f,!0);l.setText(null!=f&&""!==f?`${f}`:"–");this.updateSpot("handScore"+b)};a.wocg.Table.prototype.animateScoreChange=function(b,f,u){if(b){var l=
1182b.node||b;if(l&&l._node){u=b.getText?b.getText():l.getContent();var r=isNaN(parseInt(u))?null:parseInt(u);f=isNaN(parseInt(f))?null:parseInt(f);u=f-r;if(0<u&&null!==f&&null!==r&&f>r){var D=l;r=null;if(!b.node&&l._node&&"TD"===l._node.tagName){r=l.getXY();if(!r)return;var N=l._node.style.color,P=l.getComputedStyle("lineHeight");P&&"normal"!==P||(P=l.getHeight()+"px");D=a.Node.create('<span class="scoreBoardScaleText"></span>');D.setContent(`${f}`);D.setStyles({position:"absolute",left:r[0]+"px",top:r[1]+
1183"px",width:l.getWidth()+"px",height:l.getHeight()+"px",lineHeight:P,fontSize:l.getComputedStyle("fontSize"),fontWeight:l.getComputedStyle("fontWeight"),fontFamily:l.getComputedStyle("fontFamily"),color:l.getComputedStyle("color"),textAlign:l.getComputedStyle("textAlign"),pointerEvents:"none",background:"transparent",zIndex:9999});l.setStyle("color","transparent");a.one("#mainContainer").append(D);r=function(){N?l.setStyle("color",N):l._node.style.removeProperty("color");D.remove(!0)}}P=[];P.push({node:D,
1184scale:1.2,duration:2*C.PIECE_DEAL_INTERVAL,easing:"ease-in-out"});P.push({node:D,scale:1,duration:2*C.PIECE_DEAL_INTERVAL,easing:"ease-in-out"});(new a.Transition.Sequence(P)).run(r);u="+"+u;if(l.one("span")){var ca=a.one(l._node.cloneNode(!0));ca.addClass("floater");ca.one("span").setContent(u);f=a.FitText.fit(`${f}`,l.getWidth(),l.getHeight(),{maxSize:24,fontWeight:"bold"});b=(b=b.textNode?a.one(b.textNode):null)?l.getLeft()-b.getLeft()-b.getWidth()+f.textWidth:l.getLeft();ca.setStyles({left:b+
1185"px",top:l.getTop()-l.getHeight()/2+"px",opacity:0,zIndex:4003});this.playspace.append(ca);b=l.getTop()-l.getHeight()}else{ca=a.Node.create('<div class="floater"></div>');ca.setContent(u);r=l.getXY();if(!r)return;ca.setStyles({position:"absolute",left:r[0]+"px",top:r[1]+"px",width:l.getWidth()+"px",height:l.getHeight()+"px",fontSize:l.getComputedStyle("fontSize"),fontWeight:l.getComputedStyle("fontWeight"),fontFamily:l.getComputedStyle("fontFamily"),color:l.getComputedStyle("color"),textAlign:l.getComputedStyle("textAlign"),
1186lineHeight:l.getComputedStyle("lineHeight"),opacity:0,zIndex:9999});a.one("#mainContainer").append(ca);b=r[1]-l.getHeight()}var xa=2*C.PIECE_MOVE_DURATION;a.Transition.run({node:ca,opacity:1,duration:.2*xa,easing:"linear"});xa=C.PIECE_MOVE_DURATION;a.Transition.run({node:ca,duration:xa,easing:"ease-out-2",top:b+"px"});setTimeout(()=>{a.Transition.run({node:ca,opacity:0,duration:.2*xa,easing:"linear",cb:function(){ca.remove(!0)}})},.8*xa)}}}};a.wocg.Table.prototype.clearHandScores=function(){for(var b=
11870;b<this.players.length;b++)this.updateHandScore(b)};a.wocg.Table.prototype.stopMessageBoxAnimation=function(b){b&&b._node&&(b.showHideAnimation&&"object"===typeof b.showHideAnimation&&(b.showHideAnimation.stop(),delete b.showHideAnimation),a.Transition.cancel(b))};a.wocg.Table.prototype.setMessageBoxInteractive=function(b,f){b&&b._node&&b.setStyle("pointerEvents",f?"auto":"none")};a.wocg.Table.prototype.normalizeMessageArgs=function(b,f,u,l,r,D,N,P){f&&"object"===typeof f?P=Object.assign({},f):(P=
1188Object.assign({},P||{}),P.duration=f,P.resync=u,P.buttonText=l,P.buttonHandler=r,P.extraButtonText=D,P.extraButtonHandler=N);P.text=b;P.duration=P.duration||5*base.SECOND;P.category=P.category||"important";P.scope=P.scope||null;P.timing=P.timing||null;P.prefix||(P.prefix=P.resync?"alert":P.skipPrefix?"none":"notice");return P};a.wocg.Table.prototype.clearScheduledMessage=function(){this.scheduledMessageNonce=(this.scheduledMessageNonce||0)+1;this.scheduledMessageTimer&&(this.scheduledMessageTimer.stop(),
1189this.scheduledMessageTimer=null)};a.wocg.Table.prototype.getGamePromptsMode=function(){return a.wocg.User&&a.wocg.User.getGamePromptsMode?a.wocg.User.getGamePromptsMode():2};a.wocg.Table.prototype.getGameHintsMode=function(){return a.wocg.User&&a.wocg.User.getGameHintsMode?a.wocg.User.getGameHintsMode():1};a.wocg.Table.prototype.isGamePromptMessage=function(b){return"hint"===b.category||"status"===b.category};a.wocg.Table.prototype.isVitalGamePromptMessage=function(b){return"hint"===b.category};a.wocg.Table.prototype.shouldSuppressMessage=
1190function(b){if(!this.isGamePromptMessage(b))return!1;var f=this.getGamePromptsMode();return 0===f?!0:1===f?!this.isVitalGamePromptMessage(b):!1};a.wocg.Table.prototype.shouldDelayMessage=function(b){return b.timing?"delayed"===b.timing:!1};a.wocg.Table.prototype.getMessageDelay=function(b){return b.duration?Math.min(5*base.SECOND,Math.max(0,b.duration-("phase"===b.scope?C.SHOW_PHASE_TIMER_AT:C.SHOW_TURN_TIMER_AT))):0};a.wocg.Table.prototype.isScheduledMessageCurrent=function(b){if("turn"===b.scope&&
1191b.context){if(this.currentTurnPlayer!==b.context.player||this.currentTurnType!==b.context.type)return!1}else if("phase"===b.scope&&b.context&&this.currentPhaseType!==b.context.type)return!1;return!0};a.wocg.Table.prototype.scheduleMessage=function(b){this.clearScheduledMessage();var f=this.getMessageDelay(b);if(0>=f)this.renderMessage(b);else{var u=this.scheduledMessageNonce;this.scheduledMessageTimer=new Timer(f);this.scheduledMessageTimer.start(function(){u===this.scheduledMessageNonce&&(this.scheduledMessageTimer=
1192null,this.isScheduledMessageCurrent(b)&&(b.duration=Math.max(base.SECOND,b.duration-f),this.renderMessage(b)))}.bind(this))}};a.wocg.Table.prototype.showMessage=function(b,f,u,l,r,D,N,P){b=this.normalizeMessageArgs(b,f,u,l,r,D,N,P);this.shouldSuppressMessage(b)?this.clearScheduledMessage():this.shouldDelayMessage(b)?this.scheduleMessage(b):(this.clearScheduledMessage(),this.renderMessage(b))};a.wocg.Table.prototype.renderMessage=function(b){if(this.tableErrorText&&!b.tableError)this.messageBeforeTableError=
1193b;else{var f=b.text,u=a.one(".spot-messageBox");if(!u&&(this.createMessageBox(),u=a.one(".spot-messageBox"),!u))return;if(!u||this.currentMessageText!==f||0==u.getStyle("opacity")){this.hideMessage(f);this.stopMessageBoxAnimation(u);if("alert"===b.prefix){var l=b.prefixLabel||"Alert";u.addClass("resync");u.set("innerHTML","<strong>"+l+":</strong> <span>"+f+"</span>")}else u.removeClass("resync"),u.set("innerHTML","<span>"+f+"</span>");this.currentMessageText=f;this.currentMessage=b;b.buttonText&&
1194b.buttonHandler&&(u.append(b.buttonText),l=u._node.querySelector(".button"),l.addEventListener("click",b.buttonHandler));b.extraButtonText&&b.extraButtonHandler&&(u.append(b.extraButtonText),l=u._node.querySelectorAll(".button"),l=l[l.length-1],l.addEventListener("click",b.extraButtonHandler));b.buttons&&b.buttons.length&&b.buttons.forEach(function(r){var D=a.Node.create("<div></div>").addClass("button");r.className&&D.addClass(r.className);D.set("text",r.text);r.onClick&&D._node.addEventListener("click",
1195r.onClick);u.append(D)});u.setStyle("display","block");this.setMessageBoxInteractive(u,!0);l=[];l.push({node:u,opacity:1,duration:160,easing:"linear"});u.showHideAnimation=new a.Transition.Sequence(l,{});u.showHideAnimation.run();u.lifespanTimer&&u.lifespanTimer.stop();u.lifespanTimer=new Timer(b.duration);u.lifespanTimer.start(function(){this.hideMessage(f)}.bind(this))}}};a.wocg.Table.prototype.hideMessage=function(b){b||this.clearScheduledMessage();if(this.tableErrorText){if(!b){this.messageBeforeTableError=
1196null;return}if(this.messageBeforeTableError&&this.messageBeforeTableError.text===b){this.messageBeforeTableError=null;return}}var f=a.one(".spot-messageBox");f&&(!b||this.currentMessageText===b&&0!=f.getStyle("opacity"))&&(f.lifespanTimer&&(f.lifespanTimer.stop(),delete f.lifespanTimer),this.setMessageBoxInteractive(f,!1),this.stopMessageBoxAnimation(f),b=[],b.push({node:f,opacity:0,duration:160,easing:"linear",cb:()=>{f.setStyle("display","none");delete f.showHideAnimation;this.currentMessage=this.currentMessageText=
1197null}}),f.showHideAnimation=new a.Transition.Sequence(b,{}),f.showHideAnimation.run())};a.wocg.Table.prototype.errorHandler=function(b){b.id&&"robotsNotAvailable"===b.id&&this.players.forEac
1197h(function(f,u){f.avatar||this.showInviteAIButton(u)}.bind(this))};a.wocg.Table.prototype.playerJoinedHandler=function(b){this.players[b.player].userid=b.userid;this.players[b.player].username=b.username;this.players[b.player].avatar=b.avatar;this.players[b.player.siteSupporterLevel]=b.siteSupporterLevel;b.gameRanks&&
1198(this.players[b.player].gameRanks=b.gameRanks);this.players[b.player].nFinishedGames=b.nFinishedGames?b.nFinishedGames:0;void 0!==b.completionRate&&(this.players[b.player].completionRate=b.completionRate);var f=this.getSpotNum(b.player),u=this.isHumanPlayer(b.player),l=this.spots["name"+f],r=l.pieces[0];this.updatePlayerNamePiece(l,r,16,function(){this.colorizeInexperiencedUserNames({player:b.player,isExperienced:b.isExperienced},r);r.setText(this.censorIfNeeded(b.username))}.bind(this));u&&a.SoundEffects.play(C.AUDIO_PLAYER_ENTERED);
1199this.showStatsOn?(this.removeSpotPieces("avatar"+f),this.showPlayerStats(b.player)):(this.animateJoinedPlayerAvatar(this.spots["avatar"+f].pieces[0],b.avatar,function(){this.spots["avatar"+f].pieces[0].node.removeClass("id-EmptyChair")}.bind(this),{skipPlaceholderFade:this.isSingleplayerGame()&&!u}),this.spots["avatar"+f].pieces[0].addEventHandler("click",this.onAvatarClickHandler,this));this.preloadAvatarEmotions(b.player);this.hideInviteAIButton(b.player);this.showRatePlayerButton(b.player,"dislike",
1200b.rating);this.showRatePlayerButton(b.player,"like",b.rating);b.muted?this.mutePlayer(b.player):this.unmutePlayer(b.player);["mobile","tablet"].includes(a.wocg.deviceType())&&!this.isPlayerMe(b.player)?this.showPlayerMore(b.player):this.hidePlayerMore(b.player);"like"==b.rating&&this.showPlayerLiked(b.player);b.siteSupporterLevel&&this.showSiteSupporter2(b.player);this.tutorial||this.isSingleplayerGame()?this.disableChat():this.enableChat();this.removeSpotPieces("inviteAIChat"+f);this.clearInviteRobotChatTips();
1201this.stopInviteRobotChatTipTimer();this.startInviteRobotChatTipTimer();this.showRedeal&&this.hideRedealNotice();this.tableStateChangedHandler(u);this.tablePlayersChangedHandler();this.isSoloGame()||!this.gamePaused||this.isAIPlayer(b.player)||this.isTableFull()||this.pauseHandler();this.isSoloGame()&&(this.gamePaused&&this.playHandler(),this.iVotedToPause=!1);this.updateCurrentDealer(b.player)};a.wocg.Table.prototype.colorizeInexperiencedUserNames=function(b,f){if(this.isHumanPlayer(b.player)){var u=
1202!!b.isExperienced;this.players[b.player].isExperienced=u;this.isPlayerMe(b.player)&&!1===a.wocg.User.isExperienced()&&u&&a.wocg.User.setIsExperienced(u);u?f.removeClasses("newUser"):f.addClasses("newUser")}};a.wocg.Table.prototype.playerLeavingHandler=function(b){this.hideMessage();this.leavingPlayers.contains(b.player)||this.leavingPlayers.push(b.player);this.showPlayerLeaving(b.player);this.startDisconnectCountdown(b.player)};a.wocg.Table.prototype.showPlayerLeaving=function(b){var f=this.getSpotNum(b);
1203b="leaving"+f;var u=this.spots[b];u.pieces.length||(this.createPiece(b,"chip","leaving"+f).setTooltip("Connection lost, waiting for player to reconnect"),this.updateSpot(u,null,function(l){this.positionLeftButtons(f)}.bind(this)))};a.wocg.Table.prototype.hidePlayerLeaving=function(b){this.removeSpotPieces("leaving"+this.getSpotNum(b))};a.wocg.Table.prototype.playerLeftHandler=function(b){var f=this.isHumanPlayer(b.player);this.leavingPlayers.remove(b.player);this.hideRatePlayerButton(b.player,"dislike");
1204this.hideRatePlayerButton(b.player,"like");this.hidePlayerLiked(b.player);this.hideSiteSupporter2(b.player);this.hidePlayerMore(b.player);this.unmutePlayer(b.player,!0);this.stopDisconnectCountdown(b.player);delete this.players[b.player].userid;delete this.players[b.player].username;delete this.players[b.player].avatar;this.hidePlayerLeaving(b.player);var u=this.getSpotNum(b.player);f&&a.SoundEffects.play(C.AUDIO_PLAYER_LEFT);var l=this.spots["avatar"+u];l&&l.pieces&&l.pieces.length?(l=l.pieces[0],
1205this.animateLeftPlayerAvatar(l)):(l=this.createPiece("avatar"+u,"avatar","EmptyChair"),l.addEventHandler("click",this.onAvatarClickHandler,this),l.player=b.player,this.updateSpot("avatar"+u));(l=this.spots["stats"+u])&&l.pieces[0]&&this.hidePlayerStats(b.player);u=this.spots["name"+u];var r=u.pieces[0];this.updatePlayerNamePiece(u,r,320,function(){r.removeClasses("newUser");r.setText("Empty seat")}.bind(this));setTimeout(function(){this.players[b.player].avatar||this.showInviteAIButton(b.player)}.bind(this),
1206320);this.isSingleplayerGame()&&this.disableChat();this.tableStateChangedHandler(f);
1206this.tablePlayersChangedHandler(f);this.updateCurrentDealer(b.player);f&&this.redealAllowed()&&this.game.redealAllowed()&&this.showRedealNotice(C.REDEAL_DECISION_DURATION);f&&this.gameOver&&0<this.rematchHumanCount&&(this.rematchHumanCount--,this.checkRematchAllVoted())};a.wocg.Table.prototype.playerReturnedHandler=function(b){this.leavingPlayers.remove(b.player);this.stopDisconnectCountdown(b.player);this.hidePlayerLeaving(b.player)};
1207a.wocg.Table.prototype.playerChangedHandler=function(b){var f=b.player;if(b.username){this.players[f].username=b.username;var u=this.spots["name"+this.getSpotNum(f)],l=u.pieces[0];l.setText(this.censorIfNeeded(b.username));this.updateSpot(u);this.colorizeInexperiencedUserNames({player:f,isExperienced:b.isExperienced},l)}if(b.avatar)this.players[f].avatar=b.avatar,f=this.getSpotNum(f),this.showStatsOn?(this.removeSpotPieces("avatar"+f),this.showPlayerStats(b.player)):this.dissolveAvatar(this.spots["avatar"+
1208f].pieces[0],b.avatar);else{["mobile","tablet"].includes(a.wocg.deviceType())&&!this.isPlayerMe(f)?this.showPlayerMore(f):this.hidePlayerMore(f);"like"===b.rating?(this.showRatePlayerButton(f,"dislike",b.rating),this.showRatePlayerButton(f,"like",b.rating),this.showPlayerLiked(f)):"dislike"===b.rating?(this.showRatePlayerButton(f,"dislike",b.rating),this.showRatePlayerButton(f,"like",b.rating),this.hidePlayerLiked(f)):"none"===b.rating&&(this.showRatePlayerButton(f,"dislike"),this.showRatePlayerButton(f,
1209"like"));b.muted?this.mutePlayer(f):this.unmutePlayer(f);if(b.removed){if("like"===b.removed||"dislike"===b.removed)this.showRatePlayerButton(f,"dislike"),this.showRatePlayerButton(f,"like"),this.hidePlayerLiked(f);"unmute"===b.removed&&this.unmutePlayer(f)}this.tablePlayersChangedHandler()}};a.wocg.Table.prototype.phaseStartHandler=function(b){this.tableStateChangedHandler();this.stopCountdowns();this.stopTurnHintTimer();this.clearTurnHint();this.currentPhaseType=b.type;this.currentPhaseHint=b.players.contains(this.getPlayerMe())?
1210b.hint||null:null;b.players.contains(this.getPlayerMe())&&(this.syncid=b.syncid);b.players.contains(this.getPlayerMe())&&this.dealInProgress&&this.fastForwardDealSequence();var f=b.duration-C.SHOW_PHASE_TIMER_AT;this.phaseCountdownTimer=new Timer(Math.max(0,f),b.defaultDuration);this.phaseCountdownPlayers=b.players.slice();this.phaseCountdownPlayers.forEach(function(r){this.setActivePlayer(r,b.duration)}.bind(this));var u=[],l=function(){var r=k(),D=!1;this.phaseCountdownPlayers.forEach(function(N){u.contains(N)||
1211(r&&N!==this.getPlayerMe()?D=!0:(u.push(N),this.startCountdown(N,C.SHOW_PHASE_TIMER_AT+Math.min(0,f)))
1211)}.bind(this));D&&(this.phaseCountdownTimer=new Timer(I,b.defaultDuration),this.phaseCountdownTimer.start(l))}.bind(this);this.phaseCountdownTimer.start(l);this.startTurnHintTimer(this.currentPhaseHint,b,function(){return this.currentPhaseType===b.type&&this.phaseCountdownPlayers&&this.phaseCountdownPlayers.contains(this.getPlayerMe())})};a.wocg.Table.prototype.phaseExcludeHandler=function(b){b.player===
1212this.getPlayerMe()&&this.clearScheduledMessage();b.player===this.getPlayerMe()&&(this.stopTurnHintTimer(),this.clearTurnHint(),this.currentPhaseHint=null);this.unsetActivePlayer(b.player);this.phaseCountdownPlayers&&this.phaseCountdownPlayers.remove(b.player);this.stopCountdown(b.player)};a.wocg.Table.prototype.phaseStopHandler=function(b){this.clearScheduledMessage();this.stopTurnHintTimer();this.clearTurnHint();this.currentPhaseHint=this.currentPhaseType=null;this.phaseCountdownPlayers&&this.phaseCountdownPlayers.forEach(function(f){this.unsetActivePlayer(f)}.bind(this));
1213this.phaseCountdownTimer&&(this.phaseCountdownTimer.stop(),this.phaseCountdownTimer=null);this.stopCountdowns()};a.wocg.Table.prototype.clearActiveNamePlateStyles=function(b){this.cancelActiveNamePlateProgressReturn(b.domNode);this.removeActiveNamePlateProgressEndHandler(b);this.resetActiveNamePlateProgressFill(b);b.node.removeClass("activeNamePlate");b.node.removeClass("activeNamePlateTimed");b.node.removeClass("activeNamePlateTrackReturning");b.domNode.style.backgroundImage="";b.domNode.style.backgroundColor=
1214b.baseColor;b.domNode.style.removeProperty("--active-nameplate-progress-track-color");b.domNode.style.removeProperty("--active-nameplate-progress-track-return-color");b.domNode.style.removeProperty("--active-nameplate-track-return-duration");b.domNode.style.removeProperty("--active-nameplate-progress-fill-color");b.domNode.style.removeProperty("--active-nameplate-progress-pulse-color");b.domNode.style.removeProperty("--active-nameplate-progress-duration")};a.wocg.Table.prototype.cancelActiveNamePlateProgressReturn=
1215function(b){b.activeNamePlateProgressReturnTimers&&(b.activeNamePlateProgressReturnTimers.forEach(clearTimeout),delete b.activeNamePlateProgressReturnTimers)};a.wocg.Table.prototype.resetActiveNamePlateProgressFill=function(b){b.progressFillDOMNode&&(b.progressFillDOMNode.style.backgroundColor="",b.progressFillDOMNode.style.animation="",b.progressFillDOMNode.style.animationDelay="",b.progressFillDOMNode.style.opacity="",b.progressFillDOMNode.style.transition="")};a.wocg.Table.prototype.removeActiveNamePlateProgressEndHandler=
1216function(b){b.progressAnimationEndHandler&&(b.progressFillDOMNode.removeEventListener("animationend",b.progressAnimationEndHandler),delete b.progressAnimationEndHandler)};a.wocg.Table.prototype.getActiveNamePlateProgressFill=function(b){var f=b.querySelector(".activeNamePlateProgressClip");f||(f=b.ownerDocument.createElement("div"),f.className="activeNamePlateProgressClip",b.appendChild(f));var u=f.querySelector(".activeNamePlateProgressFill");u||(u=b.ownerDocument.createElement("div"),u.className=
1217"activeNamePlateProgressFill",f.appendChild(u));return u};a.wocg.Table.prototype.bindActiveNamePlateProgressEnd=function(b,f){this.removeActiveNamePlateProgressEndHandler(f);0>=f.duration||(f.progressAnimationEndHandler=function(u){"activeNamePlateProgress"===u.animationName&&this.activePlayers[b]===f&&(delete this.activePlayers[b],this.returnActiveNamePlateProgress(f))}.bind(this),f.progressFillDOMNode.addEventListener("animationend",f.progressAnimationEndHandler))};a.wocg.Table.prototype.startActiveNamePlateTrackReturn=
1218function(b,f){b.domNode.style.setProperty("--active-nameplate-track-return-duration",f+"ms");b.node.addClass("activeNamePlateTrackReturning")};a.wocg.Table.prototype.returnActiveNamePlateProgress=function(b){this.cancelActiveNamePlateProgressReturn(b.domNode);this.removeActiveNamePlateProgressEndHandler(b);if(b.node.hasClass("activeNamePlateTimed")){var f=window.getComputedStyle(b.progressFillDOMNode);b.progressFillDOMNode.style.backgroundColor=f.backgroundColor;b.node.removeClass("activeNamePlateTimed");
1219b.node.removeClass("activeNamePlateTrackReturning");
1219b.domNode.style.setProperty("--active-nameplate-progress-track-return-color",b.baseColor);b.progressFillDOMNode.getBoundingClientRect();b.progressFillDOMNode.style.animation="";b.progressFillDOMNode.style.animationDelay="";b.progressFillDOMNode.style.transition="background-color 320ms ease-in-out";b.progressFillDOMNode.style.backgroundColor=b.baseColor;this.startActiveNamePlateTrackReturn(b,320);f=[];b.domNode.activeNamePlateProgressReturnTimers=
1220f;f.push(setTimeout(function(){delete b.domNode.activeNamePlateProgressReturnTimers;this.clearActiveNamePlateStyles(b)}.bind(this),320))}else this.clearActiveNamePlateStyles(b)};a.wocg.Table.prototype.playerTurnStartHandler=function(b){this.stopCountdowns();this.stopTurnHintTimer();this.clearTurnHint();this.currentTurnType=b.type;this.currentTurnPlayer=b.player;this.currentTurnHint=b.player===this.getPlayerMe()?b.hint||null:null;b.player===this.getPlayerMe()&&(this.syncid=b.syncid);b.player===this.getPlayerMe()&&
1221this.dealInProgress&&this.fastForwardDealSequence();this.turnCountdownTimer&&(this.turnCountdownTimer.stop(),this.turnCountdownTimer=null);var f=this.turnCountdownNonce=(this.turnCountdownNonce||0)+1,u=b.duration-C.SHOW_TURN_TIMER_AT;this.turnCountdownTimer=new Timer(Math.max(0,u),b.defaultDuration);var l=function(){f===this.turnCountdownNonce&&this.currentTurnPlayer===b.player&&this.currentTurnType===b.type&&(b.player!==this.getPlayerMe()&&k()?(this.turnCountdownTimer=new Timer(I,b.defaultDuration),
1222this.turnCountdownTimer.start(l)):(this.showAvatarEmotion(b.player,"think"),this.startCountdown(b.player,C.SHOW_TURN_TIMER_AT+Math.min(0,u))))}.bind(this);this.turnCountdownTimer.start(l);this.startTurnHintTimer(this.currentTurnHint,b,function(){return f===this.turnCountdownNonce&&this.currentTurnPlayer===b.player&&this.currentTurnType===b.type});this.setActivePlayer(b.player,b.duration);this.tableStateChangedHandler();"play"!==b.type||this.getTrickSuit()||(this.trickStartPlayer=b.player,this.updatePlaySpotsZIndexOrder());
1223a.wocg.PageReset&&(b.player===this.getPlayerMe()?a.wocg.PageReset.maybeScheduleAtTurnStart(this,b.type):a.wocg.PageReset.cancelScheduledFire())};a.wocg.Table.prototype.showTurnHint=function(b,f,u,l){if(!u&&0===this.getGameHintsMode()||!b)return this.clearTurnHint(),!1;f=this.getVisibleTurnHintTargets();if(f.length)return this.attachTurnHintTableActionClear(),(b=this.showTurnHintNotice(b,f))&&l&&l.playNotificationSound&&this.playTurnHintNotificationSound(),b;f=this.findTurnHintTargets(b);this.clearTurnHint();
1224var r=f.map(function(D){return D.piece?this.computeTurnHintArrowLeft(D.piece):null}.bind(this));f.forEach(function(D,N){this.cancelTurnHintTargetHide(D);D.piece?(null!==r[N]&&D.piece.node._node.style.setProperty("--turn-hint-arrow-left",r[N]+"px"),this.getTurnHintTargetDirection(D)||this.attachTurnHintArrowHover(D.piece,D),this.attachTurnHintActionClear(D)):D.spot&&D.spot.div&&this.attachTurnHintActionClear(D);this.addTurnHintTargetClasses(D,this.getTurnHintTargetClasses(D))}.bind(this));this.turnHintTargets=
1225f;f.length&&this.attachTurnHintTableActionClear();this.showTurnHintNotice(b,f)&&l&&l.playNotificationSound&&this.playTurnHintNotificationSound();return!0};a.wocg.Table.prototype.playTurnHintNotificationSound=function(){a.SoundEffects&&a.SoundEffects.play&&a.SoundEffects.play(C.AUDIO_NOTIFICATION)};a.wocg.Table.prototype.getVisibleTurnHintTargets=function(){return(this.turnHintTargets||[]).filter(this.isTurnHintTargetVisible.bind(this))};a.wocg.Table.prototype.cancelTurnHintTargetHide=function(b){var f=
1226this.getTurnHintTargetObject(b);f&&(f.turnHintHideId=null,b.piece&&this.detachTurnHintArrowHover(b.piece),this.detachTurnHintActionClear(b),this.removeTurnHintTargetClasses(b,["hint-suggested-hiding"].concat(ua)))};a.wocg.Table.prototype.isTurnHintTargetVisible=function(b){b=this.getTurnHintTargetNode(b);return!!b&&b.hasClass("hint-suggested")};a.wocg.Table.prototype.attachTurnHintArrowHover=function(b,f){b&&b.node&&(this.detachTurnHintArrowHover(b),b.turnHintArrowMouseMoveHandler=function(u){this.updateTurnHintArrowHover(b,
1227f,u)}.bind(this),b.turnHintArrowMouseEnterHandler=b.turnHintArrowMouseMoveHandler,b.turnHintArrowMouseLeaveHandler=function(){b.removeClasses("hint-arrow-hover")},b.node.on("mouseenter",b.turnHintArrowMouseEnterHandler),b.node.on("mousemove",b.turnHintArrowMouseMoveHandler),b.node.on("mouseleave",b.turnHintArrowMouseLeaveHandler))};a.wocg.Table.prototype.detachTurnHintArrowHover=function(b){b&&b.node&&(b.turnHintArrowMouseEnterHandler&&(b.node.detach("mouseenter",b.turnHintArrowMouseEnterHandler),
1228b.turnHintArrowMouseEnterHandler=null),b.turnHintArrowMouseMoveHandler&&(b.node.detach("mousemove",b.turnHintArrowMouseMoveHandler),b.turnHintArrowMouseMoveHandler=null),b.turnHintArrowMouseLeaveHandler&&(b.node.detach("mouseleave",b.turnHintArrowMouseLeaveHandler),b.turnHintArrowMouseLeaveHandler=null),b.removeClasses("hint-arrow-hover"))};a.wocg.Table.prototype.updateTurnHintArrowHover=function(b,f,u){this.isTurnHintArrowHover(b,f,u)?b.addClasses("hint-arrow-hover"):b.removeClasses("hint-arrow-hover")};
1229a.wocg.Table.prototype.isTurnHintArrowHover=function(b,f,u){if(!(b&&b.node&&b.node._node&&this.playspace&&this.playspace._node))return!1;var l=u._event||u,r="number"===typeof l.clientX?l.clientX:u.clientX;l="number"===typeof l.clientY?l.clientY:u.clientY;if("number"!==typeof r||"number"!==typeof l)return!1;u=this.getTurnHintPieceGeometry(b);if(!u)return!1;var D=this.playspace._node.getBoundingClientRect();r=this.turnHintTablePointToLocalPoint(u,{x:r-D.left,y:l-D.top});b=parseFloat(b.node._node.style.getPropertyValue("--turn-hint-arrow-left"));
1230isNaN(b)&&(b=u.width/2);f=f.below?u.height+44-40:-44;return r.x>=b-12&&r.x<=b+12&&r.y>=f&&r.y<=f+40};a.wocg.Table.prototype.attachTurnHintActionClear=function(b){var f=this.getTurnHintTargetNode(b);if(f){this.detachTurnHintActionClear(b);var u=function(){this.clearTurnHintAfterAction()}.bind(this);this.setTurnHintActionClearHandler(b,u);fa.forEach(function(l){f.on(l,u)})}};a.wocg.Table.prototype.detachTurnHintActionClear=function(b){var f=this.getTurnHintTargetNode(b),u=this.getTurnHintActionClearHandler(b);
1231f&&u&&(fa.forEach(function(l){f.detach(l,u)}),this.setTurnHintActionClearHandler(b,null))};a.wocg.Table.prototype.getTurnHintTargetNode=function(b){return b.piece?b.piece.node:b.spot?b.spot.div:null};a.wocg.Table.prototype.getTurnHintTargetObject=function(b){return b.piece||b.spot||null};a.wocg.Table.prototype.addTurnHintTargetClasses=function(b,f){f=Array.isArray(f)?f:[f];b.piece?b.piece.addClasses(f):b.spot&&b.spot.div&&f.forEach(function(u){b.spot.div.addClass(u)})};a.wocg.Table.prototype.removeTurnHintTargetClasses=
1232function(b,f){f=Array.isArray(f)?f:[f];b.piece?b.piece.removeClasses(f):b.spot&&b.spot.div&&f.forEach(function(u){b.spot.div.removeClass(u)})};a.wocg.Table.prototype.getTurnHintTargetClasses=function(b,f){f=f?"hint-suggested-hiding":"hint-suggested";var u=[f];(b=this.getTurnHintTargetDirection(b))&&u.push(f+"-"+b);return u};a.wocg.Table.prototype.getTurnHintTargetDirection=function(b){return b.left?"left"
1232:b.right?"right":b.below?"below":""};a.wocg.Table.prototype.getTurnHintActionClearHandler=function(b){return b.piece?
1233b.piece.turnHintActionClearHandler:b.spot?b.spot.turnHintActionClearHandler:null};a.wocg.Table.prototype.setTurnHintActionClearHandler=function(b,f){b.piece?b.piece.turnHintActionClearHandler=f:b.spot&&(b.spot.turnHintActionClearHandler=f)};a.wocg.Table.prototype.attachTurnHintTableActionClear=function(){this.playspace&&(this.detachTurnHintTableActionClear(),this.turnHintTableActionClearHandler=function(){this.clearTurnHintAfterAction()}.bind(this),fa.forEach(function(b){this.playspace.on(b,this.turnHintTableActionClearHandler)}.bind(this)))};
1234a.wocg.Table.prototype.detachTurnHintTableActionClear=function(){this.playspace&&this.turnHintTableActionClearHandler&&(fa.forEach(function(b){this.playspace.detach(b,this.turnHintTableActionClearHandler)}.bind(this)),this.turnHintTableActionClearHandler=null)};a.wocg.Table.prototype.showTurnHintNotice=function(b,f){if(this.isTurnHintNoticeVisible())return!1;b=this.getTurnHintNoticeMessage(this.getTurnHintMessage(b,f));a.fire("Notice:show",{label:"Hint:",message:b.text,messageHtml:b.html,noticeKey:"turnHint",
1235type:"info",duration:O});return!0};a.wocg.Table.prototype.isTurnHintNoticeVisible=function(){if(!(a.Notice&&a.Notice.isVisible&&a.Notice.getCurrentOptions&&a.Notice.isVisible()))return!1;var b=a.Notice.getCurrentOptions();return!!b&&"turnHint"===b.noticeKey};a.wocg.Table.prototype.hideTurnHintNotice=function(){this.isTurnHintNoticeVisible()&&a.fire("Notice:hide")};a.wocg.Table.prototype.clearTurnHintAfterAction=function(){this.clearTurnHint({immediate:!0});this.hideTurnHintNotice()};a.wocg.Table.prototype.noticeHiddenHandler=
1236function(b){b&&"turnHint"===b.noticeKey&&this.clearTurnHint()};a.wocg.Table.prototype.showCurrentTurnHint=function(){var b=this.currentTurnHint||this.currentPhaseHint;if(!b)return!1;this.showTurnHint(b,null,!0);return!0};a.wocg.Table.prototype.startTurnHintTimer=function(b,f,u){this.stopTurnHintTimer();if(b){var l=this.turnHintNonce=(this.turnHintNonce||0)+1,r=f&&f.players?C.SHOW_PHASE_TIMER_AT:C.SHOW_TURN_TIMER_AT,D=f&&"number"===typeof f.hintDuration?f.hintDuration:f&&f.duration;"number"!==typeof D||
1237D<r||(this.turnHintTimer=new Timer(D-r+base.SECOND),this.turnHintTimer.start(function(){this.turnHintTimer=null;l!==this.turnHintNonce||u&&!u.call(this)||this.showTurnHint(b,f,!1,{playNotificationSound:!0})}.bind(this)))}};a.wocg.Table.prototype.getTurnHintNoticeMessage=function(b){b=b.replace(/^Hint:\s*/,"");return{text:b,html:this.formatTurnHintNoticeHtml(b)}};a.wocg.Table.prototype.formatTurnHintNoticeHtml=function(b){var f={s:"&spades;",h:"&hearts;",d:"&diams;",c:"&clubs;"};b=a.Escape.html(b);
1238b=b.replace(/\b(A|K|Q|J|10|[2-9])([shdc])\b/g,function(u,l,r){return"<strong>"+l+f[r]+"</strong>"});return b=b.replace(/\b(Red joker|Black joker)\b/g,"<strong>$1</strong>")};a.wocg.Table.prototype.getTurnHintMessage=function(b,f){var u=a.wocg.Options?+a.wocg.Options.getHappening("turn_hint_shown")||0:this.turnHintNoticeShown;b=b.message||(f.length?"Hint: Try the highlighted move.":"Hint: Try the suggested move.");return u?b:(this.turnHintNoticeShown=!0,a.wocg.Options&&a.wocg.Options.setHappening&&
1239a.wocg.Options.setHappening("turn_hint_shown",1),b+" Hints can be disabled under settings.")};a.wocg.Table.prototype.findTurnHintTargets=function(b){var f=[],u="number"===typeof b.sourcePlayer?b.sourcePlayer:this.getPlayerMe();(u=this.getSpot("hand"+this.getSpotNum(u)))&&b.cards&&b.cards.length&&this.getTurnHintHandPieces(u,b.cards).forEac
1239h(function(l){this.addTurnHintTarget(f,{piece:l})}.bind(this));(b.spots||[]).forEach(function(l){this.addTurnHintTarget(f,this.getTurnHintSpotTarget(this.getSpot(l)))}.bind(this));
1240return f};a.wocg.Table.prototype.getTurnHintHandPieces=function(b,f){var u=this.getTurnHintRemainingCardCounts(b,f);f=Object.keys(u);return b.findPieces(f).filter(function(l){if(!this.isTurnHintHandPieceAvailable(l))return!1;l=l&&"function"===typeof l.getId?l.getId():null;if(!l||!u[l])return!1;u[l]--;return!0}.bind(this))};a.wocg.Table.prototype.getTurnHintRemainingCardCounts=function(b,f){var u={};f.forEach(function(l){u[l]=(u[l]||0)+1});b.pieces.forEach(function(l){if(l&&"function"===typeof l.getId){var r=
1241l.getId();u[r]&&this.isTurnHintCardPieceAlreadyHighlighted(l)&&u[r]--}}.bind(this));Object.keys(u).forEach(function(l){0>=u[l]&&delete u[l]});return u};a.wocg.Table.prototype.addTurnHintTarget=function(b,f){f&&(f.piece&&b.some(function(u){return u.piece===f.piece})||f.spot&&b.some(function(u){return u.spot===f.spot})||b.push(f))};a.wocg.Table.prototype.getTurnHintSpotTarget=function(b){if(!b||!this.isTurnHintSpotAvailable(b))return null;if(this.isTurnHintButtonSpot(b))return this.getTurnHintButtonSpotTarget(b);
1242var f=this.getTurnHintBackdropSpot(b);return(f=this.getTurnHintSpotPiece(f))||this.isTurnHintBackdropSpotId(b.id)&&(f=this.getTurnHintSpotPiece(b))?{piece:f}:{spot:b,below:!0}};a.wocg.Table.prototype.getTurnHintButtonSpotTarget=function(b){var f=this.getTurnHintBackdropSpot(b);f=this.getTurnHintSpotPiece(f);var u=this.getTurnHintSpotPiece(b);if(f)return{piece:f};b=u?{piece:u}:{spot:b};b.below=!0;return b};a.wocg.Table.prototype.isTurnHintButtonSpot=function(b){return!!b&&!!b.config&&("button"===b.config.type||
1243"suitSelector"===b.config.type)};a.wocg.Table.prototype.getTurnHintBackdropSpot=function(b){if(!b||!b.config)return null;for(var f=["inside","below"].map(function(l){return b.config[l]}),u=0;u<f.length;u++)if(this.isTurnHintBackdropSpotId(f[u]))return this.getSpot(f[u]);return null};a.wocg.Table.prototype.isTurnHintBackdropSpotId=function(b){return"string"===typeof b&&/Backdrop$/.test(b)};a.wocg.Table.prototype.getTurnHintSpotPiece=function(b){if(!b||!b.pieces)return null;for(var f=0;f<b.pieces.length;f++)if(this.isTurnHintSpotPieceAvailable(b.pieces[f]))return b.pieces[f];
1244return null};a.wocg.Table.prototype.isTurnHintHandPieceAvailable=function(b){return b&&b.node&&!b.disabled&&b.selectable&&!b.node.hasClass("unselectable")?!this.isTurnHintCardPieceAlreadyHighlighted(b):!1};a.wocg.Table.prototype.isTurnHintCardPieceAlreadyHighlighted=function(b){return this.isTurnHintCardPiece(b)?["highlight","legal-play","selected","pulledOut"].some(function(f){return b.node.hasClass(f)}):!1};a.wocg.Table.prototype.isTurnHintCardPiece=function(b){return!!b&&!!b.types&&-1!==b.types.indexOf("card")};
1245a.wocg.Table.prototype.isTurnHintSpotPieceAvailable=function(b){return!b||!b.node||b.disabled||this.isTurnHintCardPieceAlreadyHighlighted(b)?!1:!0};a.wocg.Table.prototype.isTurnHintSpotAvailable=function(b){return b&&b.div&&b.pieces&&b.pieces.length?b.pieces.some(this.isTurnHintSpotPieceAvailable.bind(this)):!1};a.wocg.Table.prototype.getTurnHintPieceGeometry=function(b){if(!b||!b.node||!b.node._node)return null;var f=parseFloat(b.node.getStyle("left")),u=parseFloat(b.node.getStyle("top")),l=b.width||
1246b.node._node.offsetWidth,r=b.height||b.node._node.offsetHeight;b=(b.node.getRotation?b.node.getRotation()||0:0)*Math.PI/180;return isNaN(f)||isNaN(u)||!l||!r?null:{width:l,height:r,centerX:f+l/2,centerY:u+r/2,cos:Math.cos(b),sin:Math.sin(b)}};a.wocg.Table.prototype.turnHintTablePointToLocalPoint=function(b,f){var u=f.x-b.centerX;f=f.y-b.centerY;return{x:b.width/2+u*b.cos+f*b.sin,y:b.height/2-u*b.sin+f*b.cos}};a.wocg.Table.prototype.turnHintLocalPointToTablePoint=function(b,f,u){f-=b.width/2;u-=b.height/
12472;return{x:b.centerX+f*b.cos-u*b.sin,y:b.centerY+f*b.sin+u*b.cos}};a.wocg.Table.prototype.getTurnHintGeometryCornersInLocalSpace=function(b,f){return[this.turnHintTablePointToLocalPoint(f,this.turnHintLocalPointToTablePoint(b,0,0)),this.turnHintTablePointToLocalPoint(f,this.turnHintLocalPointToTablePoint(b,b.width,0)),this.turnHintTablePointToLocalPoint(f,this.turnHintLocalPointToTablePoint(b,b.width,b.height)),this.turnHintTablePointToLocalPoint(f,this.turnHintLocalPointToTablePoint(b,0,b.height))]};
1248a.wocg.Table.prototype.isTurnHintPointInsidePolygon=function(b,f){for(var u=!1,l=0,r=f.length-1;l<f.length;r=l++)f[l].y>b.y!==f[r].y>b.y&&b.x<(f[r].x-f[l].x)*(b.y-f[l].y)/(f[r].y-f[l].y)+f[l].x&&(u=!u);return u};a.wocg.Table.prototype.getTurnHintCoveredIntervalAtY=function(b,f,u){var l=[];this.isTurnHintPointInsidePolygon({x:0,y:u},b)&&l.push(0);this.isTurnHintPointInsidePolygon({x:f,y:u},b)&&l.push(f);for(var r=0;r<b.length;r++){var D=b[r],N=b[(r+1)%b.length];.001>Math.abs(D.y-u)&&.001>Math.abs(N.y-
1249u)?(0<=D.x&&D.x<=f&&l.push(D.x),0<=N.x&&N.x<=f&&l.push(N.x)):D.y!==N.y&&(D.y<=u&&N.y>=u||N.y<=u&&D.y>=u)&&(D=D.x+(u-D.y)*(N.x-D.x)/(N.y-D.y),0<=D&&D<=f&&l.push(D))}l.sort(function(P,ca){return P-ca});l=l.filter(function(P,ca){return 0===ca||.001<Math.abs(P-l[ca-1])});return 2>l.length?null:{start:l[0],end:l[l.length-1]}};a.wocg.Table.prototype.getTurnHintArrowLeftFromOverlap=function(b,f){if(!f||!f.pieces||1>=f.pieces.length)return null;var u=this.getTurnHintPieceGeometry(b);if(!u)return null;var l=
12500,r=u.width;
1250f.pieces.forEach(function(D){if(D&&D!==b&&D.node&&D.node._node&&!(D.getCurrentZIndex&&b.getCurrentZIndex&&D.getCurrentZIndex()<=b.getCurrentZIndex())){var N=this.getTurnHintPieceGeometry(D);N&&(D=this.turnHintTablePointToLocalPoint(u,{x:N.centerX,y:N.centerY}),Math.abs(D.y-u.height/2)>.65*u.height||(N=this.getTurnHintGeometryCornersInLocalSpace(N,u),(N=this.getTurnHintCoveredIntervalAtY(N,u.width,0))&&(D.x>=u.width/2?r=Math.min(r,N.start):l=Math.max(l,N.end))))}}.bind(this));return r<=
1251l?null:(l+r)/2};a.wocg.Table.prototype.computeTurnHintArrowLeft=function(b){if(!(b&&b.node&&b.node._node&&b.node._node.style))return null;var f=b.spotid?this.getSpot(b.spotid):null,u=b.node._node.getBoundingClientRect(),l=b.width||u.width,r=0,D=u.width,N=Math.min(16,l/3),P=this.getTurnHintArrowLeftFromOverlap(b,f);if(null!==P)return Math.round(Math.max(N,Math.min(l-N,P)));f&&f.pieces&&1<f.pieces.length&&0<u.width&&0<u.height&&f.pieces.forEach(function(ca){ca&&ca!==b&&ca.node&&ca.node._node&&!(ca.getCurrentZIndex&&
1252b.getCurrentZIndex&&ca.getCurrentZIndex()<=b.getCurrentZIndex())&&(ca=ca.node._node.getBoundingClientRect(),Math.min(u.bottom,ca.bottom)-Math.max(u.top,ca.top)<=.25*Math.min(u.height,ca.height)||(ca.left>u.left&&ca.left<u.right&&(D=Math.min(D,ca.left-u.left)),ca.right>u.left&&ca.right<u.right&&(r=Math.max(r,ca.right-u.left))))});D-r<Math.min(16,.12*u.width)&&(r=0,D=u.width);return Math.round(Math.max(N,Math.min(l-N,(r+D)/2/(u.width||1)*l)))};a.wocg.Table.prototype.positionTurnHintArrow=function(b){var f=
1253this.computeTurnHintArrowLeft(b);null!==f&&b.node._node.style.setProperty("--turn-hint-arrow-left",f+"px")};a.wocg.Table.prototype.clearTurnHint=function(b){b=b||{};this.detachTurnHintTableActionClear();(this.turnHintTargets||[]).forEach(function(f){b.immediate?this.removeTurnHintTarget(f):this.hideTurnHintTarget(f)}.bind(this));this.turnHintTargets=[]};a.wocg.Table.prototype.removeTurnHintTarget=function(b){var f=this.getTurnHintTargetObject(b),u=this.getTurnHintTargetNode(b);f&&u&&(f.turnHintHideId=
1254null,this.detachTurnHintActionClear(b),b.piece&&(this.detachTurnHintArrowHover(b.piece),this.removeTurnHintArrowPosition(b.piece)),this.removeTurnHintTargetClasses(b,["hint-suggested","hint-suggested-hiding","hint-arrow-hover"].concat(ta,ua)))};a.wocg.Table.prototype.hideTurnHintTarget=function(b){var f=this.getTurnHintTargetObject(b),u=this.getTurnHintTargetNode(b);if(f&&u){var l=this.nextTurnHintHideId();f.turnHintHideId=l;this.detachTurnHintActionClear(b);b.piece&&this.detachTurnHintArrowHover(b.piece);
1255this.removeTurnHintTargetClasses(b,["hint-suggested"].concat(ta));this.addTurnHintTargetClasses(b,this.getTurnHintTargetClasses(b,!0));setTimeout(function(){f.turnHintHideId===l&&(f.turnHintHideId=null,b.piece&&this.removeTurnHintArrowPosition(b.piece),this.removeTurnHintTargetClasses(b,["hint-suggested-hiding"].concat(ua)))}.bind(this),320)}};a.wocg.Table.prototype.removeTurnHintArrowPosition=function(b){b.node&&b.node._node&&b.node._node.style&&b.node._node.style.removeProperty("--turn-hint-arrow-left")};
1256a.wocg.Table.prototype.nextTurnHintHideId=function(){return this.turnHintHideId=(this.turnHintHideId||0)+1};a.wocg.Table.prototype.stopTurnHintTimer=function(){this.turnHintNonce=(this.turnHintNonce||0)+1;this.turnHintTimer&&(this.turnHintTimer.stop(),this.turnHintTimer=null)};a.wocg.Table.prototype.getTurnTimeLeft=function(){return this.turnCountdownTimer?this.turnCountdownTimer.getTimeLeft()+C.SHOW_TURN_TIMER_AT:0};a.wocg.Table.prototype.shouldShowActiveNamePlateProgressForPlayer=function(b){return!((this.isSoloGame()||
1257this.isSingleplayerGame())&&!this.isPlayerMe(b))};a.wocg.Table.prototype.setActivePlayer=function(b,f){var u=this.spots["namePlate"+this.getSpotNum(b)];if(u&&u.pieces.length){this.activePlayers[b]&&this.removeActiveNamePlateProgressEndHandler(this.activePlayers[b]);u=u.pieces[0].node;var l=u.getDOMNode();this.cancelActiveNamePlateProgressReturn(l);u.removeClass("activeNamePlateTrackReturning");var r=this.getActiveNamePlateProgressFill(l),D=u.hasClass("team2"),N=D?"#FFC1BF":"#A5D8FF",P=D?"#FFDBD9":
1258"#D0EBFF";D=D?"#F0AFAF":"#9CC5E7";f=this.shouldShowActiveNamePlateProgressForPlayer(b)?Math.max(0,+f||0):0;
1258l.style.backgroundImage="";l.style.backgroundColor=N;l.style.opacity=1;l.style.setProperty("--active-nameplate-progress-track-color",P);l.style.setProperty("--active-nameplate-progress-fill-color",N);l.style.setProperty("--active-nameplate-progress-pulse-color",D);0<f?l.style.setProperty("--active-nameplate-progress-duration",f+"ms"):l.style.removeProperty("--active-nameplate-progress-duration");
1259this.activePlayers[b]={node:u,domNode:l,progressFillDOMNode:r,baseColor:N,duration:f};this.showActiveNamePlateProgress(b)}};a.wocg.Table.prototype.showActiveNamePlateProgress=function(b){if(!this.destroyed){var f=this.activePlayers[b];f&&(f.node.removeClass("activeNamePlate"),f.node.removeClass("activeNamePlateTimed"),this.resetActiveNamePlateProgressFill(f),f.progressFillDOMNode.getBoundingClientRect(),f.node.addClass("activeNamePlate"),0<f.duration&&(this.bindActiveNamePlateProgressEnd(b,f),f.node.addClass("activeNamePlateTimed")))}};
1260a.wocg.Table.prototype.unsetActivePlayer=function(b){if("undefined"!==typeof this.activePlayers[b]){var f=this.activePlayers[b];delete this.activePlayers[b];this.returnActiveNamePlateProgress(f)}};a.wocg.Table.prototype.clearActivePlayers=function(){this.players.forEach(function(b,f){this.unsetActivePlayer(f)}.bind(this))};a.wocg.Table.prototype.playerTurnStopHandler=function(b){a.wocg.PageReset&&a.wocg.PageReset.cancelScheduledFire();this.clearScheduledMessage();this.stopTurnHintTimer();this.clearTurnHint();
1261this.currentTurnHint=null;this.turnCountdownNonce=(this.turnCountdownNonce||0)+1;this.turnCountdownTimer&&(this.turnCountdownTimer.stop(),this.turnCountdownTimer=null);this.stopCountdowns();b&&"undefined"!==typeof b.player&&this.unsetActivePlayer(b.player)};a.wocg.Table.prototype.storeTimerPositionConfig=function(b){b.originalCountdownPositionConfig||(b.originalCountdownPositionConfig={},qa.forEach(function(f){b.originalCountdownPositionConfig[f]=b.config.hasOwnProperty(f)?b.config[f]:void 0}))};
1262a.wocg.Table.prototype.restoreTimerPositionConfig=function(b){b&&b.originalCountdownPositionConfig&&(qa.forEach(function(f){var u=b.originalCountdownPositionConfig[f];"undefined"===typeof u?delete b.config[f]:b.config[f]=u}),delete b.originalCountdownPositionConfig,b.resize())};a.wocg.Table.prototype.positionCountdownTimerSpot=function(b){var f=this.getSpotNum(b),u=this.spots["timer"+f],l=this.spots["timerText"+f];f="dealerChip"+f;var r=this.spots[f];u&&(b===this.currentDealer&&r?(this.storeTimerPositionConfig(u),
1263qa.forEach(function(D){delete u.config[D]}),u.config.leftOf=f,u.config.rightMargin="4px",u.config.yCenteredWith=f):this.restoreTimerPositionConfig(u),u.resize(),l&&l.resize())};a.wocg.Table.prototype.startCountdown=function(b,f){var u=this.getSpotNum(b),l=this.spots["timer"+u],r=this.spots["timerText"+u],D=this;this.positionCountdownTimerSpot(b);if(!l.pieces.length){var N=this.createPiece("timerText"+u,"text");N.setTooltip("Time left in turn");var P=this.createPiece("timer"+u,"timer");P.isPlayerMe=
1264this.isPlayerMe(b);P.setTextPiece(N);P.setOnCriticalTime(function(){D.showAvatarEmotion(b,"think",!0)})}this.updateSpot("timer"+u);this.updateSpot("timerText"+u);l.pieces[0].startCountdown(f);l.setPieceLifetime(l.pieces[0],f);r.setPieceLifetime(r.pieces[0],f)};a.wocg.Table.prototype.startDisconnectCountdown=function(b){var f=C.DISCONNECT_GRACE_PERIOD,u=Math.min(f,C.DISCONNECT_COUNTDOWN_DURATION||f);f=Math.max(0,f-u);this.clearDisconnectCountdownStartTimer(b);this.stopCountdown(b);0===f?this.startCountdown(b,
1265u):this.disconnectCountdownStartTimers[b]=setTimeout(function(){delete this.disconnectCountdownStartTimers[b];this.leavingPlayers.contains(b)&&this.startCountdown(b,u)}.bind(this),f)};a.wocg.Table.prototype.clearDisconnectCountdownStartTimer=function(b){this.disconnectCountdownStartTimers[b]&&(clearTimeout(this.disconnectCountdownStartTimers[b]),delete this.disconnectCountdownStartTimers[b])};a.wocg.Table.prototype.stopDisconnectCountdown=function(b){this.clearDisconnectCountdownStartTimer(b);this.stopCountdown(b)};
1266a.wocg.Table.prototype.clearDisconnectCountdownStartTimers=function(){Object.keys(this.disconnectCountdownStartTimers).forEac
1266h(function(b){this.clearDisconnectCountdownStartTimer(b)}.bind(this))};a.wocg.Table.prototype.stopCountdown=function(b){b=this.getSpotNum(b);this.removeSpotPieces("timer"+b);this.removeSpotPieces("timerText"+b);this.restoreTimerPositionConfig(this.spots["timer"+b])};a.wocg.Table.prototype.stopCountdowns=function(){this.players.forEach(function(b,f){this.leavingPlayers.contains(f)||
1267this.stopCountdown(f)}.bind(this))};a.wocg.Table.prototype.setActiveSuit=function(b){this.removeSpotPieces("activeSuit");var f=utils.suitSymbol(b),u=f||b;this.createPiece("activeSuit","text",f?b:"undeclared").setText(u);this.updateSpot("activeSuit");this.activeSuit=b};a.wocg.Table.prototype.clearActiveSuit=function(b){this.removeSpotPieces("activeSuit");this.activeSuit=null};a.wocg.Table.prototype.getActiveSuit=function(b){return this.activeSuit};a.wocg.Table.prototype.replaceRobotsMessageClickHandler=
1268function(b){this.hideMessage();this.replaceRobots=!0;this.info.replaceRobots=!0;a.fire("tableInfo:changed");E.send("table.replace.robots",{replaceRobots:!0})};a.wocg.Table.prototype.invitePlayersClickHandler=function(b){b.preventDefault();this.isTableFull()?a.fire("Notice:show",{message:"No available seats.",type:"warning"}):a.fire("ModalInvitePlayers:show",{tableHash:this.tableHash})};a.wocg.Table.prototype.sendInviteAllRobotsMessage=function(b){this.inviteAllRobotsSent=!0;this.replaceRobots=!1;
1269this.info.replaceRobots=!1;this.players.forEach(function(f,u){f.avatar||this.hideInviteAIButton(u)}.bind(this));this.stopInviteRobotChatTipTimer();this.clearInviteRobotChatTips();a.fire("tableInfo:changed");E.send("table.replace.robots",{replaceRobots:!1})};a.wocg.Table.prototype.replaceRobotsHandler=function(b){this.info.replaceRobots=b.replaceRobots;this.removeSpotPieces("replaceRobots");a.fire("tableInfo:changed")};a.wocg.Table.prototype.showRedealNotice=function(b){var f=this;!f.gameStarted||
1270f.showRedeal||f.info.privateTable&&f.info.privateTableName===C.ANONYMOUS_TABLE_NAME||(f.showRedeal=b,this.showRedealNoticeTimeout&&(clearTimeout(this.showRedealNoticeTimeout),this.showRedealNoticeTimeout=null),this.showRedealNoticeTimeout=setTimeout(function(){f.showRedeal=!1;f.showOrHideTableMessage(!0)},b),this.showOrHideTableMessage(!0))};a.wocg.Table.prototype.hideRedealNotice=function(){this.showRedeal=!1;this.showRedealNoticeTimeout&&(clearTimeout(this.showRedealNoticeTimeout),this.showRedealNoticeTimeout=
1271null);this.showOrHideTableMessage(!0)};a.wocg.Table.prototype.redealMessageClickHandler=function(b){this.hideRedealNotice();E.send("table.redeal",{})};a.wocg.Table.prototype.createTramButton=function(){if(!this.getSpot("tram").pieces.length){this.tramButtonAnimation||(this.tramButtonAnimation=a.Animation.createSpotGroupAnimation(this,{preset:"singleAction"}));var b=this.createPiece("tram","button");b.setText("TRAM");2>(+a.wocg.Options.getHappening("tram_clicked")||0)&&b.setTooltip("The rest are mine!");
1272b.addEventHandler("click",this.tramButtonClickHandler,this);this.updateSpot("tram",{skipAnimation:!0,suppressFadeIn:!0});this.tramButtonAnimation.showPieces({pieces:[b]})}};a.wocg.Table.prototype.tramButtonClickHandler=function(b){2>(+a.wocg.Options.getHappening("tram_clicked")||0)&&a.wocg.Options.incrementHappening("tram_clicked");this.removeTramButton();E.send("table."+this.gameid+".tram.take",{syncid:this.getSyncid()})};a.wocg.Table.prototype.tramEnabledHandler=function(b){this.createTramButton()};
1273a.wocg.Table.prototype.removeTramButton=function(){this.tramButtonAnimation||(this.tramButtonAnimation=a.Animation.createSpotGroupAnimation(this,{preset:"singleAction"}));this.tramButtonAnimation.hide({spotids:"tram"})};a.wocg.Table.prototype.gameOverLeaveButtonClickHandler=function(b){this.gameOverSparklesInterval&&(clearInterval(this.gameOverSparklesInterval),this.gameOverSparklesInterval=null);a.CustomTooltip.detachOnHover(b.node);a.wocg.goToUrl("/");this.leaveTableLinkClickHandler()};a.wocg.Table.prototype.setEndModalLayerActive=
1274function(b){this.playspace&&(b?this.playspace.addClass("endModalActive"):this.playspace.removeClass("endModalActive"),"undefined"!==typeof document&&document.body&&document.body.classList.toggle("endModalActive",b))};
1274a.wocg.Table.prototype.updateEndModalBackgroundCenter=function(b){if("undefined"!==typeof document){var f=document.querySelector(".piece.spot-"+b+"Background"),u=document.getElementById("spot-"+b+"Backdrop");!u&&this.playspace&&(u=this.playspace.getDOMNode());if(f&&u&&f.getBoundingClientRect&&
1275u.getBoundingClientRect){b=f.getBoundingClientRect();u=u.getBoundingClientRect();var l=u.top+u.height/2-b.top;f.style.setProperty("--end-modal-background-center-x",u.left+u.width/2-b.left+"px");f.style.setProperty("--end-modal-background-center-y",l+"px")}}};a.wocg.Table.prototype.updateGameOverBackgroundCenter=function(){this.updateEndModalBackgroundCenter("gameOver")};a.wocg.Table.prototype.updateHandOverBackgroundCenter=function(){this.updateEndModalBackgroundCenter("handOver")};a.wocg.Table.prototype.handOverHandler=
1276function(b){this.handOverSeen=!0;this.showHandOverModal(b,!0)};a.wocg.Table.prototype.getOrdinalSuffix=function(b){b=Math.abs(parseInt(b,10));var f=b%100;if(11<=f&&13>=f)return"th";switch(b%10){case 1:return"st";case 2:return"nd";case 3:return"rd";default:return"th"}};a.wocg.Table.prototype.showHandOverModal=function(b,f){function u(aa){var oa=base.clone(ha);Object.keys(aa||{}).forEach(function(Da){oa[Da]=aa[Da]});return oa}function l(aa,oa,Da,Ma){aa={pieces:[],delay:aa,duration:oa,scale:Da,marginTop:Ma};
1277ka.push(aa);return aa}function r(aa,oa,Da,Ma){Ca.updateSpot(aa,u(Da),Ma);Ca.getPieces(aa).forEach(function(ya){oa.pieces.push(ya)})}var D=b.ranks,N=b.handNum,P=["ginrummy","rummy","crazyeights","handfoot","hearts"].includes(this.gameid)?"Round":"Hand";f=a.Animation.createSpotGroupAnimation(this,{panelDuration:240,panelScale:.96,panelMarginTop:8,itemDuration:160,itemDelay:480,itemStagger:160,itemScale:.96,itemMarginTop:4});var ca=f.getOption("panelDuration"),xa=f.getOption("panelScale"),Ba=f.getOption("panelMarginTop"),
1278U=f.getOption("itemDuration");f.getOption("itemStagger");var R=f.getOption("itemScale"),ia=f.getOption("itemMarginTop");if(b.forceDisplay||2===a.wocg.User.getAnimationsMode()){a.SoundEffects.play(C.AUDIO_HAND_OVER,0);this.setEndModalLayerActive(!0);this.handOverModalOpen=!0;"undefined"!==typeof document&&document.body&&document.body.classList.add("handOverModalActive");var ra=this.handOverAnimationToken=(this.handOverAnimationToken||0)+1,ka=[],ha={skipAnimation:!0,suppressFadeIn:!0},Ca=this;this.handOverEmotionTimer&&
1279(clearTimeout(this.handOverEmotionTimer),this.handOverEmotionTimer=null);this.handOverLoserEmotionTimer&&(clearTimeout(this.handOverLoserEmotionTimer),this.handOverLoserEmotionTimer=null);this.handOverScoreAnimationTimer&&(clearTimeout(this.handOverScoreAnimationTimer),this.handOverScoreAnimationTimer=null);this.handOverCallback=function(){this.handOverAnimationToken++;this.handOverEmotionTimer&&(clearTimeout(this.handOverEmotionTimer),this.handOverEmotionTimer=null);this.handOverLoserEmotionTimer&&
1280(clearTimeout(this.handOverLoserEmotionTimer),this.handOverLoserEmotionTimer=null);this.handOverScoreAnimationTimer&&(clearTimeout(this.handOverScoreAnimationTimer),this.handOverScoreAnimationTimer=null);a.all(".handOverScoreFly").remove(!0);this.removeSpotPieces(this.getSpotidsStartingWith("handOver"));this.game&&this.game.handOverUpdateGameScores&&this.game.handOverUpdateGameScores();this.setEndModalLayerActive(!1);this.handOverModalOpen=!1;"undefined"!==typeof document&&document.body&&document.body.classList.remove("handOverModalActive");
1281this.handOverCallback=null;this.handOverCallbackTimer&&(clearTimeout(this.handOverCallbackTimer),this.handOverCallbackTimer=null)}.bind(this);this.handOverCallbackTimer=setTimeout(this.handOverCallback,C[this.gameid].HAND_OVER_DURATION-100);Ba=l(0,ca,xa,Ba);b=l(ca,ca,xa,0);var Fa=ca+ca;xa=l(800,ca,R,0);this.createPiece("handOverBackground","backdrop");r("handOverBackground",Ba,{opacity:1});this.updateHandOverBackgroundCenter();this.createPiece("handOverBackdrop","backdrop","scroll");r("handOverBackdrop",
1282Ba);this.updateHandOverBackgroundCenter();this.createPiece("handOverTitleBackground","lottie",null,{animationDelay:ca});r("handOverTitleBackground",b);Ba=P+" over!";this.createPiece("handOverTitle","text").setText(Ba);r("handOverTitle",b);this.createPiece("handOverRoundLabel","text").setText(P);r("handOverRoundLabel",xa);P=this.createPiece("handOverRoundNumber","text");Ba=this.getOrdinalSuffix(N);P.setText(`${N}<span class="ordinalSuffix">${Ba}</span>`,`${N}${Ba}`);r("handOverRoundNumber",xa);
1282b.pieces.forEach(function(aa){aa&&
1283aa.node&&aa.node.setStyle("transformOrigin","center center")});xa.pieces.forEach(function(aa){aa&&aa.node&&aa.node.setStyle("transformOrigin","center center")});var za=null,Ia=0,Ga=[];if(this.teams){var La={};D.forEach(function(aa){var oa=aa.user,Da=this.teamNumber(oa);if(!La[Da]){La[Da]=!0;for(var Ma=[],ya=0;ya<this.players.length;ya++)this.teamNumber(ya)===Da&&Ma.push(ya);Ga.push({avatarPlayer:oa,nameHTML:"<span class='team"+Da+"'>Team "+Da+"</span>",tooltip:Ma.map(function(Ra){return this.getPlayerName(Ra)}.bind(this)).join(" · "),
1284players:Ma,score:aa.scores[0].score,scores:aa.scores,scoreTooltip:aa.tooltip||null})}}.bind(this))}else D.forEach(function(aa){var oa=aa.user;Ga.push({avatarPlayer:oa,nameHTML:"<span>"+this.getPlayerName(oa)+"</span>",tooltip:null,players:[oa],score:aa.scores[0].score,scores:aa.scores,scoreTooltip:aa.tooltip||null})}.bind(this));D=Fa+40*Math.max(Ga.length-1,0)+U;Ga.forEach(function(aa,oa){var Da=Fa+40*oa,Ma=l(Da,U,R,ia);this.createPiece("handOverNamePlate"+oa,"namePlate");r("handOverNamePlate"+oa,
1285Ma);null!==za&&(aa.score!==za?Ia=0:this.teams||Ia++);za=aa.score;this.createPiece("handOverMedal"+oa,"lottie",null,{animationDelay:U+Da});r("handOverMedal"+oa,Ma);var ya=this.createPiece("handOverName"+oa,"text");ya.setText(aa.nameHTML);aa.tooltip&&ya.setTooltip(aa.tooltip);r("handOverName"+oa,Ma,null,()=>{ya.node.setStyle("width","auto")});Da=this.createPiece("handOverScore"+oa,"textLink");var Ra=a.wocg.game[this.gameid].extraColumnHeaders||null,da={};(a.wocg.game[this.gameid].extraScoreBoardColumns||
1286[]).forEach(function(Ua){var Ea=Ra?Ra[Ua]:Ua.toProperCase();da[Ea]=Ua});var Aa=this.teams,Qa=Aa?this.teamNumber(aa.avatarPlayer)-1:null,Ta=Aa?null:aa.players[0];var Va=aa.scores.map(function(Ua){var Ea=Ua.name||"Score";var $a=`data-score-key="${da[Ea]||("Score"===Ea?"score":"")}"`+(Aa?` data-team-index="${Qa}"`:` data-player-index="${Ta}"`);$a+=` data-total="${Ua.total}"`;return`${Ea}: <span class="handOverScoreValue" ${$a}>${Ua.score}</span>`}).join(" · ");Da.setText(Va);aa.scoreTooltip&&Da.setTooltip(aa.scoreTooltip,
1287!1);r("handOverScore"+oa,Ma);aa.players.forEach(function(Ua,Ea){Ea=1==Ea?"Teammate":"";this.createPiece("handOverAvatar"+Ea+oa,"avatar",this.getPlayerAvatar(Ua)).setTooltip(this.getPlayerName(Ua));r("handOverAvatar"+Ea+oa,Ma)}.bind(this))}.bind(this));f.showPieceGroups({groups:ka});var Pa=D+ca,Ka=a.one("#scoreBoard"),Sa=this;if(Ga&&Ga.length){var Q=Ga[0].score;f=D+640;var W=function(aa,oa){Ga.forEach(function(Da,Ma){Da.players&&(0===Ma||Da.score===Q)===oa&&Da.players.forEach(function(ya,Ra){Ra="handOverAvatar"+
1288(1===Ra?"Teammate":"")+Ma;ya=Sa.getPlayerAvatar(ya);Sa.showAvatarEmotionOnSpot(Ra,ya,aa,!0)})})};this.handOverEmotionTimer=setTimeout(function(){Sa.handOverAnimationToken===ra&&W("win",!0)},D);this.handOverLoserEmotionTimer=setTimeout(function(){Sa.handOverAnimationToken===ra&&W("lose",!1)},f)}this.handOverScoreAnimationTimer=setTimeout(function(){if(this.handOverAnimationToken===ra)if(Ka){var aa=this.teams,oa=Math.max(240,Math.min(C.PIECE_MOVE_DURATION,Math.floor(Math.max(0,C[this.gameid].HAND_OVER_DURATION-
1289100-Pa)/Math.max(1,Ga.length)))),Da=function(Ma){var ya=this;if(ya.handOverAnimationToken===ra){var Ra=Ga[Ma],da=this.getPieces("handOverScore"+Ma)[0];if(Ra&&da&&da.node){var Aa=da.node.all("span.handOverScoreValue"),Qa=aa?this.teamNumber(Ra.avatarPlayer)-1:null,Ta=aa?null:Ra.players[0],Va=[];Aa.each((Ua,Ea)=>{var $a=Ua.getAttribute("data-score-key")||"score";if($a=Ka.one("td."+(aa?"score"===$a?"team"+Qa+"score":"team"+Qa+$a:"score"===$a?"playerScore"+Ta:"player"+$a+Ta))){var qb=Ua._node.getBoundingClientRect(),
1290la=$a._node.getBoundingClientRect();Va.push({spanNode:Ua,spanIndex:Ea,target:$a,scoreValue:Ua.getContent(),srcFontSize:Ua.getComputedStyle("font-size"),startLeft:qb.left+window.scrollX,startTop:qb.top+window.scrollY,destLeft:la.left+window.scrollX,destTop:la.top+window.scrollY,destWidth:la.width,destHeight:la.height})}});Va.forEach(function(Ua){if(ya.handOverAnimationToken===ra){var Ea=a.Node.create('<span class="handOverScoreFly"></span>');Ea.setContent(Ua.scoreValue);Ea.setStyles({position:"absolute",
1291left:Ua.destLeft+"px",top:Ua.destTop+"px",zIndex:99999,width:Ua.destWidth+"px",height:Ua.destHeight+"px",lineHeight:Ua.destHeight+"px",fontSize:Ua.srcFontSize,display:"inline-block",textAlign:"center",opacity:"0"==Ua.scoreValue?0:1});a.one("body").append(Ea);a.Transition.run({node:Ea,duration:oa,easing:"ease-in-out",fromX:Ua.startLeft-Ua.destLeft,x:0,fromY:Ua.startTop-Ua.destTop,y:0,cb:()=>{Ea.remove(!0)}});setTimeout(()=>{if(ya.handOverAnimationToken===ra){"0"!=Ua.scoreValue&&a.SoundEffects.play(C.AUDIO_SCORE);
1292var $a=Ua.spanNode.getAttribute("data-total");ya.animateScoreChange(Ua.target,null!==$a?$a:Ua.spanNode.getContent());Aa._nodes&&Aa._nodes.length==Ua.spanIndex+1&&(ya.updateScoreBoard(aa?Qa:Ta),Ma+1<Ga.length&&Da(Ma+1))}},.8*oa)}})}}}.bind(this);Da(0)}else this.game&&this.game.handOverUpdateGameScores&&this.game.handOverUpdateGameScores()}.bind(this),Pa)}else this.showMessage(P+" complete! Next "+P.toLowerCase()+" starting...",{duration:C[this.gameid].HAND_OVER_DURATION}),this.game&&this.game.handOverUpdateGameScores&&
1293this.game.handOverUpdateGameScores()};a.wocg.Table.prototype.gameOverHandler=function(b){E.stopPolling();this.gameOver=!0;this.clearActivePlayers();this.disableChat();a.wocg.User.isFirstGameFinished()||a.wocg.User.setIsFirstGameFinished(!0);!this.finishedGameRecordedForUser&&a.wocg.User.addFinishedGame&&(a.wocg.User.addFinishedGame(this.gameid),this.finishedGameRecordedForUser=!0);if(!this.isSoloGame()){for(var f=0,u=0;u<this.players.length;u++)this.isHumanPlayer(u)&&"Empty seat"!==this.getPlayerName(u)&&
1294f++;this.rematchHumanCount=f;this.rematchId=this.tableid;this.startRematchCountdown(Math.floor(C.POST_GAME_REMATCH_WINDOW/1E3))}var l=(b.ranks||[]).map(function(D){if(D&&"object"===typeof D&&"undefined"!==typeof D.user)return D;var N={user:D[0],scores:[{score:D[1]}]};3<=D.length&&(N.medal=D[2]);return N});C[this.gameid].GAME_OVER_DURATION?setTimeout(function(){this.showGameOverModal({gameOver:!0,...b,ranks:l},!0)}.bind(this),C[this.gameid].GAME_OVER_DURATION):this.showGameOverModal({gameOver:!0,...b,
1295ranks:l},!0);if(window.electronAPI||window.ReactNativeWebView)this.gameOverAdTimer=setTimeout(()=>{this.triggerGameOverAd()},1E4);if(a.wocg.isSourceArkadium()&&window.arkadium){var r=this.getPlayerMe();if(f=b.ranks.find(D=>D[0]===r))window.arkadium.lifecycle.onChangeScore({score:f[1]})}};a.wocg.Table.prototype.triggerGameOverAd=function(){!window.electronAPI&&!window.ReactNativeWebView||this.gameOverAdFired||(this.gameOverAdFired=!0,clearTimeout(this.gameOverAdTimer),window.electronAPI&&window.electronAPI.triggerGameOver(),
1296window.ReactNativeWebView&&window.ReactNativeWebView.postMessage("gameOver"))};a.wocg.Table.prototype.showGameOverModal=function(b,f){function u(ya){var Ra=base.clone(Fa);Object.keys(ya||{}).forEach(function(da){Ra[da]=ya[da]});return Ra}function l(ya,Ra,da,Aa){ya={pieces:[],delay:ya,duration:Ra,scale:da,marginTop:Aa};Ca.push(ya);return ya}function r(ya,Ra,da,Aa){za.updateSpot(ya,u(da),Aa);za.getPieces(ya).forEach(function(Qa){Ra.pieces.push(Qa)})}function D(){return l(aa,ia,ka,ha)}var N=b.ranks,
1297P=b.elo,ca=b.skill,xa=b.bonus;this.gameLayout.gameOverRatingPromptMode=null;this.gameLayout.showGameOverRatingPrompt=!(!a.wocg.GameRating||!a.wocg.GameRating.shouldShowGameOverPrompt(this,b));this.gameLayout.showGameOverRatingPrompt&&(this.gameLayout.gameOverRatingPromptMode="initial");h(this);f=a.Animation.createSpotGroupAnimation(this,{panelDuration:240,panelScale:.96,panelMarginTop:8,itemDuration:160,itemDelay:480,itemStagger:160,itemScale:.96,itemMarginTop:4});var Ba=f.getOption("panelDuration"),
1298U=f.getOption("panelScale"),R=f.getOption("panelMarginTop"),ia=f.getOption("itemDuration"),ra=f.getOption("itemDelay");f.getOption("itemStagger");var ka=f.getOption("itemScale"),ha=f.getOption("itemMarginTop"),Ca=[],Fa={skipAnimation:!0,suppressFadeIn:!0},za=this;R=l(0,Ba,U,R);U=l(Ba,Ba,U,0);a.SoundEffects.play(C.AUDIO_GAME_OVER,0);this.setEndModalLayerActive(!0);this.gameOverModalOpen=!0;this.createPiece("gameOverBackground","backdrop");r("gameOverBackground",R,{opacity:1});
1298this.updateGameOverBackgroundCenter();
1299this.gameOverSparklesInterval&&(clearInterval(this.gameOverSparklesInterval),this.gameOverSparklesInterval=null);var Ia=function(){var ya=a.one("#spot-gameOverBackground");ya&&a.Animation&&a.Animation.runPartySparkles&&a.Animation.runPartySparkles(ya)}.bind(this);setTimeout(Ia,0);this.gameOverSparklesInterval=setInterval(Ia,480);this.createPiece("gameOverBackdrop","backdrop","scroll");r("gameOverBackdrop",R);this.updateGameOverBackgroundCenter();this.createPiece("gameOverTitleBackground","lottie",
1300null,{animationDelay:Ba});r("gameOverTitleBackground",U);Ba=N[0].user;R=this.teamNumber(Ba);R=this.teams?"Team "+R+" wins!":this.getPlayerName(Ba)+" wins!";if(Ba=this.createPiece("gameOverTitle","text")){Ba.setText(R);r("gameOverTitle",U);U.pieces.forEach(function(ya){ya&&ya.node&&ya.node.setStyle("transformOrigin","center center")});this.game&&this.game.getGameOverExplainText&&(U=this.game.getGameOverExplainText(N))&&Ba.setTooltip(U);var Ga=null,La=0,Pa=[];if(this.teams){var Ka={};N.forEach(function(ya){var Ra=
1301ya.user,da=this.teamNumber(Ra);if(!Ka[da]){Ka[da]=!0;for(var Aa=[],Qa=0;Qa<this.players.length;Qa++)this.teamNumber(Qa)===da&&Aa.push(Qa);Pa.push({avatarPlayer:Ra,nameHTML:"<span class='team"+da+"'>Team "+da+"</span>",tooltip:Aa.map(function(Ta){return this.getPlayerName(Ta)}.bind(this)).join(" · "),players:Aa,score:ya.scores[0].score,scores:ya.scores})}}.bind(this))}else N.forEach(function(ya){var Ra=ya.user;Pa.push({avatarPlayer:Ra,nameHTML:"<span>"+this.getPlayerName(Ra)+"</span>",tooltip:null,
1302players:[Ra],score:ya.scores[0].score,scores:ya.scores})}.bind(this));var Sa=ia,Q=ka,W=ha,aa=ra+40*Math.max(Pa.length-1,0)+80;if(Pa&&Pa.length){var oa=Pa[0].score;N=aa+ia;U=N+640;var Da=this,Ma=function(ya,Ra){Pa.forEach(function(da,Aa){da.players&&(0===Aa||da.score===oa)===Ra&&da.players.forEach(function(Qa,Ta){Ta="gameOverAvatar"+(1===Ta?"Teammate":"")+Aa;Qa=Da.getPlayerAvatar(Qa);Da.showAvatarEmotionOnSpot(Ta,Qa,ya,!0)})})};setTimeout(function(){Ma("win",!0)},N);setTimeout(function(){Ma("lose",
1303!1)},U)}Pa.forEach(function(ya,Ra){var da=ra+40*Ra,Aa=l(da,Sa,Q,W);this.createPiece("gameOverNamePlate"+Ra,"namePlate");r("gameOverNamePlate"+Ra,Aa);null!==Ga&&(ya.score!==Ga?La=0:this.teams||La++);Ga=ya.score;this.createPiece("gameOverMedal"+Ra,"lottie",null,{animationDelay:ia+da});r("gameOverMedal"+Ra,Aa);var Qa=this.createPiece("gameOverName"+Ra,"text");Qa.setText(ya.nameHTML);
1303ya.tooltip&&Qa.setTooltip(ya.tooltip);r("gameOverName"+Ra,Aa,null,()=>{Qa.node.setStyle("width","auto")});da=this.createPiece("gameOverScore"+
1304Ra,"textLink");var Ta=ya.scores&&0<ya.scores.length?ya.scores.map(function(Ea){return(Ea.name||"Score")+": "+Ea.score}).join(" · "):"Score: "+ya.score;if(xa)if(1===ya.players.length){var Va=ya.players[0];Array.isArray(xa[Va])&&0<xa[Va].length&&(Va=xa[Va].map(function(Ea){return`${Ea.type}: ${Ea.value}`}).join(" · "),da.setTooltip(Va))}else{var Ua=[];ya.players.forEach(function(Ea){Array.isArray(xa[Ea])&&0<xa[Ea].length&&Ua.pushMany(xa[Ea])});0<Ua.length&&(Va=Ua.map(function(Ea){return`${Ea.type}: ${Ea.value}`}).join(" · "),
1305da.setTooltip(Va))}b.scoreAnnotation&&ya.players.forEach(function(Ea){b.scoreAnnotation[Ea]&&(Ta+=" · "+b.scoreAnnotation[Ea])});da.setText(Ta);r("gameOverScore"+Ra,Aa);ya.players.forEach(function(Ea,$a){$a=1==$a?"Teammate":"";var qb=this.createPiece("gameOverAvatar"+$a+Ra,"avatar",this.getPlayerAvatar(Ea));r("gameOverAvatar"+$a+Ra,Aa);if(!this.isAIPlayer(Ea)&&!this.isPlayerMe(Ea)){var la="gameOverLike"+$a+Ra,sa=this.createPiece(la,"text"),Z=this.players[Ea]&&this.players[Ea].rating;sa.setText("like"===
1306Z?"Unlike":"Like");sa.setTooltip("like"===Z?"Remove from liked players":"Like player");sa.player=Ea;sa.rowIndex=Ra;"like"===Z&&sa.node.addClass("active");
1306sa.addEventHandler("click",this.gameOverLikeClickHandler,this);this.updateSpot(la,Fa);qb=qb.node;la=sa.node;qb&&(qb.on("mouseenter",function(Wa){Wa.node.addClass("hover")}.bind(this,sa)),qb.on("mouseleave",function(Wa){Wa.node.removeClass("hover")}.bind(this,sa)));la&&(la.on("mouseenter",function(Wa){Wa.node.addClass("hover")}.bind(this,sa)),la.on("mouseleave",
1307function(Wa){Wa.node.removeClass("hover")}.bind(this,sa)))}if(this.ranked){var pa=function(Wa,cb){if(this.teams||!cb||2>cb.length||!P||2!==P.length)return"Elo change: Based on opponent rank.";var db=0===Wa?1:1===Wa?0:null;if(null===db||!P[db]||!P[db].length)return"Elo change: Based on opponent rank.";Wa=parseInt(cb[0],10);cb=parseInt(cb[1],10);db=parseInt(P[db][0],10);if(isNaN(Wa)||isNaN(cb)||isNaN(db))return"Elo change: Based on opponent rank.";cb-=Wa;return Wa===db?"Elo change: Similar opponent rank.":
1308Wa>db&&0<cb?"Elo change: Expected win, smaller gain.":Wa>db&&0>cb?"Elo change: Upset loss, bigger drop.":Wa<db&&0<cb?"Elo change: Upset win, bigger gain.":Wa<db&&0>cb?"Elo change: Expected loss, smaller drop.":"Elo change: Based on opponent rank."}.bind(this);sa=function(Wa){var cb="",db="",Ya="";if(this.ranked&&P&&P.length>Wa){var fb=P[Wa],lb=ca?ca[Wa]:null;fb&&fb.length&&(cb=fb[0]>fb[1]?"rankDown":fb[0]<fb[1]?"rankUp":"rankSame",cb='<span class="rankOther">Rank:</span> <span class="'+cb+'">'+fb[0]+
1309" ➜ "+fb[1]+"</span>",db=pa(Wa,fb));lb&&2===lb.length&&(Wa=lb[0],lb=lb[1],Ya='<span class="rankOther">Skill:</span> <span class="'+(0<Wa?"rankUp":0<lb?"rankDown":"rankSame")+'">'+(Wa+" ⁄ "+lb)+"</span>")}return{rankText:cb,rankTooltip:db,skillText:Ya}}.bind(this);if(this.teams){this.createPiece("gameOverRankPlate"+$a+Ra,"namePlate");r("gameOverRankPlate"+$a+Ra,Aa);var wa=this.createPiece("gameOverRankName"+$a+Ra,"text");wa.setText(this.getPlayerName(Ea))}Ea=sa(Ea);if(Ea.rankText){var Ja=this.createPiece("gameOverRank"+
1310$a+Ra,"text");Ja.setText(Ea.rankText);Ja.setTooltip(Ea.rankTooltip||"Elo change: Based on opponent rank.")}if(Ea.skillText){var Za=this.createPiece("gameOverSkill"+$a+Ra,"text");Za.setText(Ea.skillText);Za.setTooltip("Successful plays / opportunities")}this.teams?r("gameOverRankName"+$a+Ra,Aa,null,()=>{wa.node.setStyle("width","auto");Ja&&Ja.node.setStyle("width","auto").setStyle("left",8+wa.node.getLeft()+wa.node.getWidth());Za&&Ja&&setTimeout(()=>{Za.node.setStyle("width","auto").setStyle("left",
13118+Ja.node.getLeft()+Ja.node.getWidth())},0)}):(Qa.node.setStyle("width","auto"),Ja&&Ja.node.setStyle("width","auto").setStyle("left",8+Qa.node.getLeft()+Qa.node.getWidth()),Za&&Ja&&setTimeout(()=>{Za.node.setStyle("width","auto").setStyle("left",8+Ja.node.getLeft()+Ja.node.getWidth())},0));r("gameOverRank"+$a+Ra,Aa);r("gameOverSkill"+$a+Ra,Aa)}}.bind(this))}.bind(this));this.gameLayout.shouldShowGameOverRegister()&&(N=D(),U=this.createPiece("gameOverRegister","backdrop","gameOverRegister"),this.gameLayout.shouldShowGameOverRatingPrompt()&&
1312a.wocg.GameRating&&U.node?a.wocg.GameRating.mountGameOverPrompt(U.node,this,b):a.wocg.Auth&&U.node&&a.wocg.Auth.mountRegisterSurface(U.node,{surface:"gameOverRegister",source:"won_modal",loadProviders:!1}),r("gameOverRegister",N,null,function(){!this.gameLayout.shouldShowGameOverRatingPrompt()&&a.wocg.AuthProviders&&a.wocg.AuthProviders.ensureReady("gameOverRegister")}.bind(this)));N=a.wocg.game[this.gameid].name;a.wocg.game[this.gameid].shortName&&(N=a.wocg.game[this.gameid].shortName);U=this.createPiece("gameOverLeave",
1313"button");U.setText("Leave table");U.setTooltip("Leave table");
1313U.addEventHandler("click",this.gameOverLeaveButtonClickHandler,this);r("gameOverLeave",D());U=this.createPiece("gameOverChat","button");U.setText("Open chat");U.setTooltip("Post-game chat");U.addEventHandler("click",this.postGameChatButtonClickHandler,this);r("gameOverChat",D());U=this.createPiece("gameOverPlayAgain","button");U.addClasses("green");U.setText("Play again");U.setTooltip("Play another game of "+N);U.addEventHandler("click",
1314this.playAgainButtonClickHandler,this);r("gameOverPlayAgain",D());0<this.rematchCountdown&&!this.isSoloGame()&&this.setGameOverPlayAgainButtonMode("rematch");f.showPieceGroups({groups:Ca})}else this.gameOverSparklesInterval&&(clearInterval(this.gameOverSparklesInterval),this.gameOverSparklesInterval=null)};a.wocg.Table.prototype.playAgainButtonClickHandler=function(b){0<this.rematchCountdown&&!this.isSoloGame()?this.hasVotedRematch||(this.hasVotedRematch=!0,this.triggerGameOverAd(),E.send("table.rematch.vote",
1315{tableid:this.tableid})):this.hasVotedRematch||(this.triggerGameOverAd(),a.fire("playAgain",this.gameid,this.info))};a.wocg.Table.prototype.setGameOverPlayAgainButtonMode=function(b){var f=this.getPieces("gameOverPlayAgain");if(f=f&&f[0]?f[0]:null)"rematch"===b?(f.setText("Rematch"),f.setTooltip("Start a rematch with the same players")):(b=a.wocg.game[this.gameid].shortName||a.wocg.game[this.gameid].name,f.setText("Play again"),f.setTooltip("Play another game of "+b))};a.wocg.Table.prototype.resetRematchState=
1316function(){this.rematchId=null;this.rematchCountdown=0;this.rematchVoters=[];this.hasVotedRematch=this.rematchAllVoted=!1;this.rematchCountdownInterval&&(clearInterval(this.rematchCountdownInterval),this.rematchCountdownInterval=null);this.rematchExpiryTimeout&&(clearTimeout(this.rematchExpiryTimeout),this.rematchExpiryTimeout=null);this.setGameOverPlayAgainButtonMode("playAgain")};a.wocg.Table.prototype.postGameChatButtonClickHandler=function(b){a.wocg.TableBar.chatLogClickHandler()};a.wocg.Table.prototype.startRematchCountdown=
1317function(b){var f=this;this.rematchCountdown=b;this.rematchVoters=[];this.rematchAllVoted=!1;this.rematchExpiryTimeout&&(clearTimeout(this.rematchExpiryTimeout),this.rematchExpiryTimeout=null);this.rematchCountdownInterval&&clearInterval(this.rematchCountdownInterval);this.rematchCountdownInterval=setInterval(function(){f.rematchCountdown--;0<f.rematchVoters.length&&!f.rematchAllVoted&&f.updateRematchMessage();0>=f.rematchCountdown&&(clearInterval(f.rematchCountdownInterval),f.rematchCountdownInterval=
1318null,f.hasVotedRematch?f.rematchExpiryTimeout=setTimeout(function(){f.hasVotedRematch&&!f.rematchAllVoted&&(f.showMessage("Rematch didn't happen. Click <b>Play again</b> to find another table.",{duration:base.DAY}),f.resetRematchState())},2E3):f.resetRematchState())},1E3)};a.wocg.Table.prototype.formatVoterList=function(b){if(0===b.length)return"";if(1===b.length)return"<b>"+b[0]+"</b>";if(2===b.length)return"<b>"+b[0]+"</b> and <b>"+b[1]+"</b>";b=b.map(function(f){return"<b>"+f+"</b>"});return b.slice(0,
1319-1).join(", ")+" and "+b[b.length-1]};a.wocg.Table.prototype.updateRematchMessage=function(){var b=this.rematchVoters,f=this.rematchCountdown,u=1===f?"second":"seconds",l=this.formatVoterList(b);this.showMessage(1===b.length?l+" wants a rematch. Click <b>Play Again</b> within <b>"+f+" "+u+"</b> to join.":l+" want a rematch. Click <b>Play Again</b> within <b>"+f+" "+u+"</b> to join.",{duration:base.DAY})};a.wocg.Table.prototype.rematchUpdateHandler=function(b){this.rematchId&&(this.rematchVoters=b.voters,
1320this.checkRematchAllVoted())};a.wocg.Table.prototype.playerLeftPostgameHandler=function(b){for(var f=-1,u=0;u<this.players.length;u++)if(this.players[u].username===b.username){f=u;break}this.rematchVoters&&this.rematchVoters.length&&(this.rematchVoters=this.rematchVoters.filter(function(D){return D!==b.username}));if(0<=f){this.hideRatePlayerButton(f,"dislike");this.hideRatePlayerButton(f,"like");this.hidePlayerLiked(f);this.hideSiteSupporter2(f);this.unmutePlayer(f,!0);this.hideMutePlayerButton(f);
1321u=this.getSpotNum(f);var l=this.spots["name"+u],r=l&&l.pieces[0];r&&this.updatePlayerNamePiece(l,r,320,function(){r.removeClasses("newUser");r.setText("Empty seat")});a.SoundEffects.play(C.AUDIO_PLAYER_LEFT);(u=this.spots["avatar"+u])&&u.pieces&&u.pieces.length&&this.animateLeftPlayerAvatar(u.pieces[0]);delete this.players[f].username;delete this.players[f].avatar}0<this.rematchHumanCount&&this.rematchHumanCount--;this.checkRematchAllVoted()};a.wocg.Table.prototype.checkRematchAllVoted=function(){var b=
1322this,f=this.rematchVoters||[];if(!(0===f.length||0>=this.rematchHumanCount)){var u=f.length>=this.rematchHumanCount;this.rematchAllVoted=u;var l=this.formatVoterList(f);u?(this.rematchExpiryTimeout&&(clearTimeout(this.rematchExpiryTimeout),this.rematchExpiryTimeout=null),this.showMessage(1===f.length?l+" wants a rematch. Starting new table...":l+" want a rematch. Starting new table...",{duration:base.DAY}),this.rematchCountdownInterval&&(clearInterval(this.rematchCountdownInterval),this.rematchCountdownInterval=
1323null),setTimeout(function(){if(b.hasVotedRematch&&b.rematchId){var r=base.clone(b.info);r.rematchId=b.rematchId;a.fire("playAgain",b.gameid,r)}b.resetRematchState()},2E3)):this.updateRematchMessage()}};a.wocg.Table.prototype.playerSayHandler=function(b){var f=this.getPlayerName(b.player);this.chatLog.push({username:f,text:b.text,toxicityLevel:b.toxicityLevel});this.say(b.player,b.text,b.chat)};a.wocg.Table.prototype.censorIfNeeded=function(b){var f=b;a.wocg.User.getNoCensor()||(f=profanityFilter.censorWords(b));
1324return f};a.wocg.Table.prototype.say=function(b,f,u,l){u&&this.isPlayerMuted(b)||(b="chat"+this.getSpotNum(b),this.removeSpotPieces(b),l?-1===l&&(l=void 0):(l=C.GAME_CHAT_LIFESPAN,u&&(l=C.CHAT_BASE_LIFESPAN,f=this.censorIfNeeded(f),30<f.length&&(l+=100*(f.length-30)))),this.createPiece(b,"chatBubble",null,{dism
1324issible:"number"===typeof l,lifespan:l,text:f}),this.updateSpot(b))};a.wocg.Table.prototype.stopInviteRobotChatTipTimer=function(){this.showInviteRobotChatTipTimer&&(this.showInviteRobotChatTipTimer.stop(),
1325this.showInviteRobotChatTipTimer=null)};a.wocg.Table.prototype.startInviteRobotChatTipTimer=function(){if(!(this.info.noRobots&&!this.exceptionBotsAllowed||this.gameOver||this.isSingleplayerGame())){var b=6>(+a.wocg.Options.getHappening("invite_robot_clicked")||0);!this.showInviteRobotChatTipTimer&&b&&(this.showInviteRobotChatTipTimer=new Timer(C.INVITE_ROBOT_CHAT_TIP_DELAY),this.showInviteRobotChatTipTimer.start(this.showInviteRobotChatTip.bind(this)))}};a.wocg.Table.prototype.showInviteRobotChatTip=
1326function(){this.showInviteRobotChatTipTimer=null;var b=this.players.map(function(l,r){return{username:l.username,i:r}}).filter(function(l){return!l.username});if(b.length){b=b.pickRandom();var f="inviteAIChat"+this.getSpotNum(b.i),u=C.INVITE_ROBOT_CHAT_TIP_DURATION;this.removeSpotPieces(f);u=this.createPiece(f,"chatBubble",null,{lifespan:u,text:"Click me to add a robot."});u.player=b.i;u.addEventHandler("click",this.inviteAIButtonClickHandler,this);this.updateSpot(f)}};a.wocg.Table.prototype.clearInviteRobotChatTips=
1327function(){this.removeSpotPieces(this.getSpotidsStartingWith("inviteAIChat"))};a.wocg.Table.prototype.dealerChangedHandler=function(b){this.setCurrentDealer(b.dealer)};a.wocg.Table.prototype.setCurrentDealer=function(b,f){this.currentDealer=b;f=f||{};var u="dealerChip"+this.getSpotNum(this.currentDealer);this.dealerChipPiece?f.skipAnimation?(this.dealerChipPiece.spot.removePiece(this.dealerChipPiece),this.getSpot(u).addPiece(this.dealerChipPiece),this.updateSpot(u,f)):this.movePiece(this.dealerChipPiece,
1328u):(this.dealerChipPiece=this.createPiece(u,"chip"),this.updateSpot(u,f));this.dealerChipPiece.setTooltip((b===this.getPlayerMe()?"You are":this.getPlayerName(b)+" is")+" the dealer")};a.wocg.Table.prototype.updateCurrentDealer=function(b){b===this.currentDealer&&(this.getSpotNum(this.currentDealer),this.dealerChipPiece&&this.dealerChipPiece.node&&this.dealerChipPiece.setTooltip((b===this.getPlayerMe()?"You are":this.getPlayerName(b)+" is")+" the dealer"))};a.wocg.Table.prototype.getDealPlayerOrder=
1329function(b){b=b||{};if(Array.isArray(b.playerDealOrder))return b.playerDealOrder.slice();var f="number"===typeof b.firstPlayer?b.firstPlayer:0;w(b,"firstPlayer")||"number"!==typeof this.currentDealer||(f=this.getNextPlayer(this.currentDealer));return[].pushSequence(0,this.players.length-1).rotate(f)};a.wocg.Table.prototype.createDealSource=function(b,f,u,l){u=u||{};if(!this.spots[b])return a.wocg.IS_DEV&&base.error("createDealSource called with invalid spot [%s]",b),l&&l(),[];this.removeSpotPieces(b,
1330{exit:"instant"});f=Math.max(0,f||0);if(!f)return l&&l(),[];var r=Object.merge({entrance:"deal"},u.createOptions||{});!1===u.enterSource&&(r.entrance="instant");f=this.createPieces(b,"card","back".repeatAsArray(f),r);r=this.getDealSourceEnterDuration(u);u=Object.merge({duration:r,easing:u.sourceEnterEasing||"ease-out-2"},u.updateOptions||{});r||(u.skipAnimation=!0);r&&a.SoundEffects.play(C.AUDIO_CARD_PLACE,0,!1,.9,.35);this.updateSpot(b,u,l);return f};a.wocg.Table.prototype.getTopDealSourcePieces=
1331function(b,f){b=this.getPieces(b);f=Math.max(0,f||0);return b.length&&f?b.slice(-f).reverse():[]};a.wocg.Table.prototype.getTopDealSourcePiece=function(b){return this.getTopDealSourcePieces(b,1)[0]||null};a.wocg.Table.prototype.getDealSourceEnterDuration=function(b){b=b||{};return x(this,b)||!1===b.createSource||!1===b.enterSource||b.updateOptions&&b.updateOptions.skipAnimation||b.createOptions&&"instant"===b.createOptions.entrance?0:w(b,"sourceEnterDuration")?b.sourceEnterDuration:y(this,"DEAL_SOURCE_ENTER_DURATION",
1332C.DEAL_SOURCE_ENTER_DURATION)};a.wocg.Table.prototype.buildDealSequence=function(b,f){f=f||{};if(Array.isArray(f.sequence))return f.sequence.slice();b=(b||[]).slice();for(var u=this.getDealPlayerOrder(f),l=f.perSeatCounts||[].pushMany(b.length,this.players.length),r=Math.max.apply(Math,l.concat([0])),D=(f.cardsByPlayer||{})[this.getPlayerMe()]||b,N=0,P=[],ca=0;ca<r;ca++)u.forEach(function(xa){if(!(ca>=("number"===typeof l[xa]?l[xa]:b.length))){var Ba=this.getSpotNum(xa);Ba=f.targetSpotPrefix?f.targetSpotPrefix+
1333Ba:"hand"+Ba;var U="back";this.isPlayerMe(xa)&&(U=D[N++]||"back");P.push({player:xa,targetSpotid:Ba,pieceid:U,flip:"back"!==U})}}.bind(this));return P};a.wocg.Table.prototype.dealFromSource=function(b,f,u){"function"===typeof f&&(u=f,f={});f=f||{};var l=f.sourceSpotid||"dealDeck",r=this.buildDealSequence(b,f),D=x(this,f),N=D?0:w(f,"intervalDelay")?f.intervalDelay:y(this,"PIECE_DEAL_INTERVAL",C.PIECE_DEAL_INTERVAL),P=D?0:w(f,"duration")?f.duration:y(this,"PIECE_DEAL_DURATION",C.PIECE_DEAL_DURATION);
1334b=w(f,"sourceCount")?f.sourceCount:r.length;var ca=w(f,"removeSourceAfterDeal")?f.removeSourceAfterDeal:"dealDeck"===l,xa=[];if(!D){var Ba={};r.forEach(function(ia){Ba[ia.targetSpotid]=(Ba[ia.targetSpotid]||0)+1});Object.keys(Ba).forEach(function(ia){var ra=this.spots[ia];ra&&(ra.dealLayoutCount=ra.pieces.length+Ba[ia],xa.push(ia))},this)}var U=function(){xa.forEach(function(ia){this.spots[ia]&&delete this.spots[ia].dealLayoutCount},this);ca&&this.removeSpotPieces(l,{exit:"instant"});this.spots[l]&&
1335this.spots[l].updateZIndexes();u&&u()}.bind(this),R=function(){if(r.length){this._dealScheduleHandle&&(this._dealScheduleHandle.cancel(),this._dealScheduleHandle=null);var ia=function(ra){var ka=r[ra],ha=ra===r.length-1;if(this.tableLeaveSent)ha&&U();else{D||this.dealFastForwarded||(ra=a.SoundEffects.calculateCardDealProgression(ra,r.length),a.SoundEffects.play(C.AUDIO_CARD_DEAL,0,!1,ra.pitch,ra.volume));var Ca=this.getTopDealSourcePiece(l);ra=Object.merge({duration:P,easing:f.easing||"ease-in-out",
1336skipAnimation:D},f.moveOptions||{});w(ra,"preserveSourceZIndexDuringMove")||(ra.preserveSourceZIndexDuringMove=!0);w(ra,"deferSourceZIndexUpdate")||(ra.deferSourceZIndexUpdate=!0);w(ra,"deferZIndexUpdateWhileActive")||(ra.deferZIndexUpdateWhileActive=!0);w(ra,"targetZIndexSwitchRatio")||(ra.targetZIndexSwitchRatio=C.PIECE_DEAL_TARGET_Z_INDEX_SWITCH_RATIO);f.skipSort&&(ra.skipSort=!0);w(ra,"skipMoveZIndexReorder")||(ra.skipMoveZIndexReorder=!0);"back"!==ka.pieceid||ka.flip||w(ra,"skipRandomArrangement")||
1337(ra.skipRandomArrangement=!0);ha=ha?U:null;if(Ca){if(!D&&("number"===typeof f.themeSwitchDelay||"number"===typeof f.themeSwitchRatio)){var Fa=Array.isArray(ra.preserveThemeForPieces)?ra.preserveThemeForPieces.slice():[];-1===Fa.indexOf(Ca)&&Fa.push(Ca);ra.preserveThemeForPieces=Fa;var za=this.spots[ka.targetSpotid];za&&Ca.stashThemeSwap("number"===typeof f.themeSwitchDelay?Math.max(0,f.themeSwitchDelay):Math.max(0,Math.round(P*Math.max(0,Math.min(1,f.themeSwitchRatio)))),function(){Ca.spotid===ka.targetSpotid&&
1338za.applyPieceTheme(Ca)})}ka.flip?(ra.flipOptions=Object.merge({duration:P},ra.flipOptions||{}),w(ra,"flipDelay")||(ra.flipDelay=0),this.moveAndFlipPiece(Ca,ka.targetSpotid,ka.pieceid,ha,ra)):this.movePiece(Ca,ka.targetSpotid,ha,ra)}else ha&&ha([])}}.bind(this);this._dealScheduleHandle=a.Transition.pacedSchedule({count:r.length,interval:N,maxPerFrame:1,onItem:ia,onDone:function(){}});this.dealFastForwarded&&this._dealScheduleHandle.flush&&this._dealScheduleHandle.flush()}else U()}.bind(this);!1!==
1339f.createSource?this.createDealSource(l,b,f,D?R:function(){setTimeout(R,C.DEAL_SOURCE_SETTLE_DELAY)}):R()};a.wocg.Table.prototype.dealRevealFromSource=function(b,f,u,l,r){"function"===typeof l&&(r=l,l={});l=l||{};var D=x(this,l);D&&(l.skipAnimation=!0,l.duration=0,l.flipOptions=Object.merge({duration:0},l.flipOptions||{}),l.flipOptions.duration=0);(b=this.getTopDealSourcePiece(b))?(D||a.SoundEffects.play(C.AUDIO_CARD_PLACE,l.soundDelay||0),w(l,"preserveSourceZIndexDuringMove")||(l.preserveSourceZIndexDuringMove=
1340!0),this.moveAndRevealPiece(b,f,u,r,l)):r&&r([])};a.wocg.Table.prototype.dealRevealCardsFromSource=function(b,f,u,l,r){"function"===typeof l&&(r=l,l={});l=l||{};u=(u||[]).slice();if(u.length){var D=function(N){var P=u[N];if("function"===typeof l.onBeforeCard)l.onBeforeCard(N,P);this.dealRevealFromSource(b,f,P,Object.merge({},l.revealOptions||{}),function(){N+1===u.length?r&&r():D(N+1)})}.bind(this);D(0)}else r&&r()};a.wocg.Table.prototype.dealCards=function(b,f,u){f&&"object"===typeof f&&(u=f,f=null);
1341u=u||{};var l=this.spots.hand0;l&&l.pieces&&0!==l.pieces.length||w(u,"skipSort")||w(u,"cardsByPlayer")||w(u,"targetSpotPrefix")||(l=this.sortCardsForSpot("hand0",b),b=l.cards,l.presorted&&(u.skipSort=!0));this.dealInProgress||this.startDealSequence();this.dealFromSource(b,u,function(){f?f():this.endDealSequence()}.bind(this))};a.wocg.Table.prototype.startDealSequence=function(){"function"===typeof this.handOverCallback?this.handOverCallback():!this.handOverSeen&&this.game&&"function"===typeof this.game.clearBoardForNewHand&&
1342this.game.clearBoardForNewHand();this.handOverSeen=!1;this.dealInProgress=!0;this.dealFastForwarded=!1};a.wocg.Table.prototype.endDealSequence=function(){this.dealFastForwarded=this.dealInProgress=!1;this.pendingResize&&(this.pendingResize=!1,this.resizeHandler())};a.wocg.Table.prototype.fastForwardDealSequence=function(){this.dealInProgress&&(this.dealFastForwarded=!0,this._dealScheduleHandle&&this._dealScheduleHandle.flush&&this._dealScheduleHandle.flush())};a.wocg.Table.prototype.sortCardsForSpot=
1343function(b,f){f=(f||[]).slice();try{var u=this.spots[b];if(!u||!u.config||!u.config.arrangement||"undefined"===typeof u.config.arrangement.sort)return{cards:f,presorted:!1};var l=a.wocg.Theme.getThemeForPieceType("card"),r={},D=f.map(function(P){var ca=new a.wocg.Piece.card(l,P);r[P]="number"===typeof r[P]?r[P]+1:0;ca.setDeDupeId(r[P]);return ca});D.sort(u.pieceSortComparator.bind(u));var N=D.map(function(P){return P.getId()});D.forEach(function(P){P&&"function"===typeof P.destroy&&P.destroy()});
1344return N.slice().sort().join(",")!==f.slice().sort().join(",")?{cards:f,presorted:!1}:{cards:N,presorted:!0}
1344}catch(P){return{cards:f,presorted:!1}}};a.wocg.Table.prototype.dealCardsFaceup=function(b,f,u){var l=C.PIECE_DEAL_INTERVAL,r=C.PIECE_DEAL_DURATION;C[this.gameid].PIECE_DEAL_INTERVAL&&(l=C[this.gameid].PIECE_DEAL_INTERVAL);C[this.gameid].PIECE_DEAL_DURATION&&(r=C[this.gameid].PIECE_DEAL_DURATION);var D={intervalDelay:l,ascendingUpdateOrder:!0,duration:r},N=this.getSpotNum(b),P="hand"+N;this.createPieces(P,
1345"card",f);setTimeout(function(){this.updateSpot(P,D,u&&0===N?u:null)}.bind(this),f.length*l)};a.wocg.Table.prototype.addSpotClickHandler=function(b,f,u){Array.toArray(b).forEach(function(l){this.spots[l].addClickHandler(f,u)}.bind(this))};a.wocg.Table.prototype.removeSpotClickHandler=function(b,f){Array.toArray(b).forEach(function(u){this.spots[u].removeClickHandler(f)}.bind(this))};a.wocg.Table.prototype.createPieces=function(b,f,u,l){return this.spots[b].addPieces(u.map(function(r){return new a.wocg.Piece[f](a.wocg.Theme.getThemeForPieceType(f),
1346r)}),l)};a.wocg.Table.prototype.createHandPiecesResync=function(b,f,u){for(var l=[],r=this.getSpot("play"),D=0;D<f.length;D++){var N=f[D];N=new a.wocg.Piece[b](a.wocg.Theme.getThemeForPieceType(b),N);N.previousSpotid=r.config.arrangement.sources[D];l.push(N)}r.addPieces(l,u)};a.wocg.Table.prototype.createPiece=function(b,f,u,l){return this.createPieces(b,f,[u],l)[0]};a.wocg.Table.prototype.removeSpotPieces=function(b,f){b=Array.toArray(b);var u=[];b.forEach(function(l){u=u.concat(this.removePieces(this.getPieces(l),
1347f))}.bind(this));return u};a.wocg.Table.prototype.removePieces=function(b,f){var u={};b.forEach(function(r,D){D=r.spotid;if(!this.spots[D])return base.error("removePieces called with an invalid spotid [%s]",D);"undefined"===typeof u[D]&&(u[D]=[]);u[D].push(r)}.bind(this));var l=[];Object.forEach(u,function(r,D){l=l.concat(this.spots[r].removePieces(D,f))}.bind(this));return l};a.wocg.Table.prototype.removePiece=function(b,f){return this.removePieces([b],f)[0]};a.wocg.Table.prototype.sweepPiecesOffscreen=
1348function(b,f,u){f=f||{};b=(b||[]).slice().filter(function(r){return r&&"function"===typeof r.getCurrentZIndex});if(!b.length)return u&&u([]),[];f=Object.merge({duration:C.PIECE_CLEANUP_DURATION,easing:C.PIECE_CLEANUP_EASING,intervalDelay:0,skipRotation:!0,skipRandomArrangement:!0},f);f.intervalDelay=0;var l=b.filter(function(r){return this.isStackedShadowSourceSpot(r.spotid)}.bind(this));l.forEach(function(r){r.addClasses("stackedCardShadow")});this.movePieces(b,"offscreen",u?()=>{l.forEach(function(r){r.removeClasses("stackedCardShadow")});
1349this.dealInProgress||u(b)}:function(){l.forEach(function(r){r.removeClasses("stackedCardShadow")})},f);return b};a.wocg.Table.prototype.isStackedShadowSourceSpot=function(b){return"stock"===b||"stockPile"===b||"discardPile"===b||"upCard"===b||"dealDeck"===b||"string"===typeof b&&b.startsWith("cardCompleteDisplay")};a.wocg.Table.prototype.sweepSpotPiecesOffscreen=function(b,f,u){b=Array.toArray(b);var l=[];b.forEach(function(r){l=l.concat(this.getPieces(r))}.bind(this));return this.sweepPiecesOffscreen(l,
1350f,u)};a.wocg.Table.prototype.cleanupPiecesOffscreen=function(b,f,u){return this.sweepPiecesOffscreen(b,f,function(l){this.removePieces(l);u&&u(l)}.bind(this))};a.wocg.Table.prototype.cleanupSpotPiecesOffscreen=function(b,f,u){return this.sweepSpotPiecesOffscreen(b,f,function(l){this.removePieces(l);u&&u(l)}.bind(this))};a.wocg.Table.prototype.discardPieces=function(b,f,u){return this.sweepPiecesOffscreen(b,f,u)};a.wocg.Table.prototype.discardPiece=function(b,f,u){return this.discardPieces([b],f,u)};
1351a.wocg.Table.prototype.discardSpotPieces=function(b,f,u){return this.sweepSpotPiecesOffscreen(b,f,u)};a.wocg.Table.prototype.movePiece=function(b,f,u,l){this.movePieces([b],f,u,l)};a.wocg.Table.prototype.canMovePieceToSpot=function(b,f){if(!this.spots[f]||!b||"function"!==typeof b.getCurrentZIndex)return!1;f=b.spotid;return null===f||"undefined"===typeof f?!1:(f=this.spots[f])?-1!==f.pieces.indexOf(b):!1};a.wocg.Table.prototype.movePieces=function(b,f,u,l){l=l||{};var r=l.delay||0;if(r)return l.delay=
13520,setTimeout(function(){this.movePieces(b,f,u,l)}.bind(this),r);var D=this.spots[f];if(D)if(b=(b||[]).slice().filter(function(za){if(za&&"function"===typeof za.getCurrentZIndex)return!0;
1352a.wocg.IS_DEV&&(base.error("ERROR: movePieces found an invalid piece [%o] with destination [%s]",za,f),console.trace());return!1}),b.length){l.skipZIndexSort||(b=b.sort((za,Ia)=>za.getCurrentZIndex()-Ia.getCurrentZIndex()));Array.isArray(l.preserveThemeForPieces)&&l.preserveThemeForPieces.forEach(function(za){za&&
1353(za.preservedMoveTheme=za.theme)});r=d(this,f)&&!w(l,"temporaryZIndex");var N=!0===l.preserveSourceZIndexDuringMove&&!w(l,"temporaryZIndex"),P=r||N;P&&(l.skipActiveMoveZIndexUpdate=!0);if(l.skipMoveZIndexReorder&&!l.skipAnimation&&!l.skipUpdate){var ca=Math.min(l.hasOwnProperty("duration")?l.duration:C.PIECE_MOVE_DURATION,C.FOUR_PLAYER_DEAL_HAND_INTERVAL),xa=l.pieceUpdateOptions;l.pieceUpdateOptions=function(za,Ia){Ia="function"===typeof xa?xa(za,Ia)||{}:{};b.contains(za)||(Ia.duration=ca);return Ia}}r&&
1354(l.playMoveTargetSpotid=f);r&&!w(l,"targetZIndexSwitchRatio")&&(l.targetZIndexSwitchRatio=C.PIECE_DEAL_TARGET_Z_INDEX_SWITCH_RATIO);var Ba=null,U={},R={},ia=[];b.forEach(function(za){var Ia=za.spotid;null===Ia||"undefined"===typeof Ia?a.wocg.IS_DEV&&(base.error("ERROR: movePieces handling piece [%s] with source [%s] but from spot has null id [%s]",za.id,f,Ia),console.trace()):this.spots[Ia]?("undefined"===typeof U[Ia]&&(U[Ia]=[],R[Ia]=this.spots[Ia].pieces.filter(function(Ga){return Ga&&"function"===
1355typeof Ga.getCurrentZIndex}).map(function(Ga){return{zindex:Ga.getCurrentZIndex(),piece:Ga}})),-1===this.spots[Ia].pieces.indexOf(za)?a.wocg.IS_DEV&&(base.error("ERROR: movePieces piece [%s] is not in source spot [%s]",za.id,Ia),console.trace()):(U[Ia].push(za),ia.push(za))):a.wocg.IS_DEV&&(base.error("ERROR: movePieces this.spots[%s] is not defined",Ia),console.trace())}.bind(this));b=ia;if(b.length){P&&(Ba=b.map(function(za){return za.getCurrentZIndex()}),l.skipUpdate||b.forEach(function(za){za.pendingMoveZIndexPreserve=
1356!0}));var ra=[],ka=0;Object.forEach(U,function(za,Ia){za=this.spots[za];ka=Math.max(ka,za.getZIndex());l.keepCardsPulledOut&&(ra=ra.concat(za.pulledPieces.slice()));za.removePieces(Ia,{skipZIndexUpdate:!0,skipDestroy:!0})}.bind(this));r={skipZIndexUpdate:!0};l.preserveThemeForPieces&&(r.preserveThemeForPieces=l.preserveThemeForPieces);l.skipRandomArrangement&&(r.skipRandomArrangement=!0);l.skipSort&&(r.skipSort=!0);D.addPieces(b,r);l.keepCardsPulledOut&&D.pullOutPieces(ra,!0);if(0===Object.values(R).length)a.wocg.IS_DEV&&
1357base.error("ERROR: movePieces has an empty sources object"),u&&u([]);else{!0===l.deferSourceZIndexUpdate&&(l.skipZIndexUpdateSpotids=(l.skipZIndexUpdateSpotids||[]).concat(Object.keys(R)).unique());r=D.pieces.filter(function(za){return za&&"function"===typeof za.getCurrentZIndex}).map(function(za){return b.contains(za)?Object.values(R).mutateOnce(function(Ia){return Ia.mutateOnce(function(Ga){return Ga.piece===za?Ga:void 0})}):{zindex:l.skipMoveZIndexReorder?D.getPieceZIndex(za):za.getCurrentZIndex(),
1358piece:za}});var ha=1!=l.skipZIndexUpdate&&1!=l.skipMoveZIndexReorder;ha&&a.wocg.Table.prototype.reorderZIndexes(R,r,D,ka);var Ca=l.skipActiveMoveZIndexUpdate?{skipActiveUpdatePieces:!0}:null;P||!0===l.deferSourceZIndexUpdate||Object.forEach(R,function(za,Ia){this.spots[za].updateZIndexes(Ia.filter(function(Ga){return!b.contains(Ga.piece)}).map(function(Ga){return Ga.zindex}),Ca)}.bind(this));D.updateZIndexes(r.map(function(za){return za.zindex}),Ca);Ba&&b.forEach(function(za,Ia){za.setZIndex(Ba[Ia])});
1359w(l,"temporaryZIndex")&&b.forEach(function(za,Ia){var Ga="target"===l.temporaryZIndex?D.getPieceZIndex(za):l.temporaryZIndex;"number"===typeof Ga&&za.setZIndex(Ga+("target"===l.temporaryZIndex?0:Ia))});var Fa=function(){if(P&&w(l,"targetZIndexSwitchRatio")&&!w(l,"temporaryZIndex")&&!l.skipAnimation){var za=l.hasOwnProperty("duration")?l.duration:C.PIECE_MOVE_DURATION;if(0<za&&"number"===typeof l.targetZIndexSwitchRatio){var Ia=Math.round(za*Math.max(0,Math.min(1,l.targetZIndexSwitchRatio)));Ia>=za||
1360a.Transition.afterCompositorDelay(b[0]&&b[0].node,Ia,function(){b.forEach(function(Ga){if(Ga&&Ga.spotid===f){ha&&D.updateZIndexes(null,{skipPreservingPieces:!0});var La=D.getPieceZIndex(Ga);"number"!==typeof La||isNaN(La)||Ga.setZIndex(La)}})})}}};l.skipUpdate||q(()=>{const za=b.map(Ia=>D.pieces.indexOf(Ia));this.updateSpotsAfterMove(Object.keys(R).concat([f]).unique().map(Ia=>this.spots[Ia]),function(){u&&u(za)},l);Fa();P&&b.forEach(function(Ia){delete Ia.pendingMoveZIndexPreserve})})}}else u&&u([])}else u&&
1361u([]);else a.wocg.IS_DEV&&(base.error("ERROR: movePieces has an invali
1361d destination spot [%s]",f),console.trace()),u&&u([])};a.wocg.Table.prototype.updateSpotsAfterMove=function(b,f,u){var l={duration:u&&u.hasOwnProperty("duration")?u.duration:C.PIECE_MOVE_DURATION};u&&u.easing&&(l.easing=u.easing);u&&u.skipRotation&&(l.skipRotation=u.skipRotation);u&&u.preserveThemeForPieces&&(l.preserveThemeForPieces=u.preserveThemeForPieces);u&&u.pieceUpdateOptions&&(l.pieceUpdateOptions=u.pieceUpdateOptions);
1362var r=base.clone(l);u&&u.intervalDelay&&(r.intervalDelay=u.intervalDelay);var D=this,N=function(P){return P.pieces.some(function(ca){return ca&&(ca.activeUpdateTarget||ca.pendingMoveZIndexPreserve)})};tiptoe(function(){b.forEach(function(P,ca){ca=ca===b.length-1?r:l;P.config.arrangement&&"played"===P.config.arrangement.type&&(ca=base.clone(ca),ca.skipActivePieceLayout=!0);P.update(ca,this.parallel())}.bind(this))},function(P){if(!D.destroyed){if(P)throw P;if(1!=u.skipZIndexUpdate){var ca=u.skipActiveMoveZIndexUpdate?
1363{skipActiveUpdatePieces:!0}:null;b.forEach(function(xa){if(!u.skipZIndexUpdateSpotids||-1===u.skipZIndexUpdateSpotids.indexOf(xa.id)){var Ba=ca;ca&&u.playMoveTargetSpotid&&xa.id!==u.playMoveTargetSpotid&&(Ba={skipPreservingPieces:!0});u.deferZIndexUpdateWhileActive&&ca&&N(xa)?setTimeout(function(){D.destroyed||N(xa)||xa.updateZIndexes(null,Ba)},0):xa.updateZIndexes(null,Ba)}})}f&&f()}})};a.wocg.Table.prototype.reorderZIndexes=function(b,f,u,l){function r(ca){for(var xa=-1,Ba=0;Ba<ca.length;Ba++){if(ca[Ba].zindex<=
1364xa)return!1;xa=ca[Ba].zindex}return!0}Object.forEach(b,function(ca,xa){xa.forEach(function(Ba){Ba.sourceid=ca})});var D=u.getZIndex();u.config.staticZIndex||(D=Math.max.apply(Math,Object.values(b).filter(function(ca){return ca.length}).map(function(ca){return ca[0].zindex}).concat(D,f.length?f[0].zindex:0))+a.wocg.Z_INDEX_MOVE_MODIFIER);"offscreen"===u.id&&(D=l);var N=D,P=Object.keys(b).mutate(function(ca,xa){xa[ca]=-1;return xa},{});f.forEach(function(ca){if(ca)if(ca.sourceid){var xa=b[ca.sourceid];
1365if(xa){var Ba=xa.indexOf(ca);if(-1!==Ba){var U=P[ca.sourceid];N+=Math.max(0,Ba-U-1-(N-D));0<=U&&(N+=Math.max(0,Ba-U-(N-xa[U].zindex)));for(var R=Ba;R>U;R--)xa[R].zindex=N-(Ba-R);P[ca.sourceid]=Ba;N++}}}else ca.zindex=N++});Object.forEach(P,function(ca,xa){ca=b[ca];if(ca.length&&!(xa>=ca.length-1)){var Ba=0<=xa?ca[xa].zindex:ca[0].zindex-1;for(xa+=1;xa<ca.length;xa++)ca[xa].zindex=++Ba}});(function(ca,xa){Object.forEach(ca,function(Ba,U){r(U)||(base.warn("INVALID ORDERING in sources[%s]: %o",Ba,U),
1366base.warn("DEST: %o",xa))});r(xa)||(base.warn("SOURCES: %o",ca),base.warn("INVALID ORDERING dest: %o",xa))})(b,f)};a.wocg.Table.prototype.makePieceUnselectable=function(b){this.makePiecesUnselectable([b])};a.wocg.Table.prototype.getSelectabilityResyncDelay=function(){return Math.max(0,this.selectabilitySpacingDelayUntil-Date.now())};a.wocg.Table.prototype.updateSelectabilitySpacing=function(b,f){var u={};"number"!==typeof f&&(f=this.getSelectabilityResyncDelay());(b||[]).forEach(function(l){var r=
1367(l=l&&l.spotid?this.spots[l.spotid]:null)&&l.config&&l.config.arrangement;r&&r.spreadBySelectability&&(u[l.id]=l)}.bind(this));Object.keys(u).forEach(function(l){u[l].update({delay:f,duration:C.UNSELECTABLE_ANIMATE_DURATION})}.bind(this))};a.wocg.Table.prototype.makePiecesUnselectable=function(b){var f=[],u=this.getSelectabilityResyncDelay();b.forEach(function(l,r){l&&l.selectable&&(l.makeUnselectable({delay:u}),f.push(l))});this.updateSelectabilitySpacing(f,u)};a.wocg.Table.prototype.makePieceSelectable=
1368function(b){this.makePiecesSelectable([b])};a.wocg.Table.prototype.makePiecesSelectable=function(b){var f=[],u=this.getSelectabilityResyncDelay();b.forEach(function(l,r){l&&!l.selectable&&(l.makeSelectable({delay:u}),f.push(l))});this.updateSelectabilitySpacing(f,u)};a.wocg.Table.prototype.moveAndFlipPiece=function(b,f,u,l,r){this.moveAndFlipPieces([b],f,u,l,r)};a.wocg.Table.prototype.moveAndRevealPiece=function(b,f,u,l,r){this.moveAndRevealPieces([b],f,u,l,r)};a.wocg.Table.prototype.moveAndRevealPieces=
1369function(b,f,u,l,r){r=Object.merge({},r||{});r.moveAndReveal=!0;this.moveAndFlipPieces(b,f,u,l,r)};a.wocg.Table.prototype.moveAndFlipPieces=function(b,f,u,l,r){b=(b||[]).slice().filter(function(aa){return aa&&"function"===typeof aa.flip});if(b.length){r=r||{};var D=r.moveAndReveal?b:null;D&&!w(r,"duration")&&(r.duration=C.PIECE_MOVE_DURATION/2);var N=r&&"number"===typeof r.duration?Math.max(0,r.duration):C.PIECE_MOVE_DURATION;if(D){w(r,"syncFlipWithMoveFrame")||(r.syncFlipWithMoveFrame=!0);w(r,"easing")||
1370(r.easing="ease-in-out-1-4");var P=r.flipOptions||(r.flipOptions={});v(b[0],P,N);w(r,"flipDelay")||(r.flipDelay=0)}else{w(r,"syncFlipWithMoveFrame")||(r.syncFlipWithMoveFrame=!0);w(r,"easing")||(r.easing="ease-in-out");P=r.flipOptions||(r.flipOptions={});w(P,"counterTranslateFlip")||(P.counterTranslateFlip=!1);var ca=Math.max(0,N*Math.max(0,Math.min(1,C.MOVE_AND_FLIP_FLIP_DURATION/Math.max(1,C.PIECE_MOVE_DURATION||1))));v(b[0],P,ca);if(!w(r,"flipDelay")){var xa=Array.isArray(u)?u[0]:u,Ba=b[0];Ba=
1371Ba&&(Ba.getId?Ba.getId():Ba.id);r.flipDelay="back"===xa&&Ba&&"back"!==Ba?0:Math.max(0,N-Math.max(0,P&&"number"===typeof P.duration?Math.max(0,P.duration):ca))}}u=this.sortPiecesForSpot(u,f);var U=b;r&&r.piecesToFlip&&(U=r.piecesToFlip.slice().filter(function(aa){return aa&&"function"===typeof aa.flip}));P=U.map(function(aa,oa){return{piece:aa,pieceid:Array.isArray(u)?u[oa]:u}}).filter(function(aa){return this.canMovePieceToSpot(aa.piece,f)}.bind(this));U=P.map(function(aa){return aa.piece});D&&(D=
1372U);ca=d(this,f);
1372var R=w(r,"flipDelay")?r.flipDelay:C.PIECE_MOVE_DURATION/8,ia=w(r,"moveStagger")?Math.max(0,r.moveStagger):0,ra=w(r,"flipStagger")?Math.max(0,r.flipStagger):0<ia?ia:1<U.length?C.CARD_REVEAL_STAGGER:0,ka=D||U;if(ca&&!r.skipRotation&&!w(r,"targetAngleOverride")){var ha=r.pieceUpdateOptions;r.pieceUpdateOptions=function(aa,oa){oa="function"===typeof ha?ha(aa,oa):null;if(-1===U.indexOf(aa)||oa&&(oa.skipRotation||w(oa,"targetAngleOverride")))return oa;oa=Object.merge({},oa||{});oa.targetAngleOverride=
13730;return oa}}if(0<ia){var Ca=r.pieceUpdateOptions;r.pieceUpdateOptions=function(aa,oa){oa="function"===typeof Ca?Ca(aa,oa):null;aa=U.indexOf(aa);if(0>=aa)return oa;oa=Object.merge({},oa||{});oa.delay=(oa.delay||0)+ia*aa;return oa}}var Fa=[];P.forEach(function(aa,oa){aa.piece.targetid=aa.pieceid;Fa.push({piece:aa.piece,pieceid:aa.pieceid,index:oa,flipOptions:r&&r.flipOptions})});var za=a.Transition&&a.Transition.animSpeed||1,Ia=function(aa,oa,Da,Ma){(oa=((Da||0)+ra*oa)/za)||!Ma?setTimeout(aa,oa):aa()},
1374Ga=function(aa,oa){for(var Da=0;Da<Fa.length;Da++)if(Fa[Da].piece===aa)return Fa[Da];return Fa[oa]||null},La=function(aa){return(aa=aa&&aa.flipOptions)&&"number"===typeof aa.duration?Math.max(0,aa.duration):N},Pa=function(){var aa=0;Fa.forEach(function(oa){aa=Math.max(aa,oa?Math.max(0,R+ra*oa.index+La(oa)-N):0)});return aa},Ka=function(aa){aa.forEach(function(oa,Da){Da=(Da=Ga(oa,Da))?Math.max(0,R+ra*Da.index+La(Da)-N):0;var Ma=function(){oa.finishLift()};Da?setTimeout(Ma,Da/za):Ma()})},Sa=function(aa){Fa.forEach(function(oa){Ia(function(){oa.piece.flip(oa.pieceid,
1375null,oa.flipOptions)},oa.index,R,aa)})},Q=function(aa){ka&&ka.forEach(function(oa,Da){var Ma=Ga(oa,Da);Ia(function(){oa.animateLift(La(Ma),Ma&&Ma.flipOptions)},Ma?Ma.index:Da,R,aa)})},W=function(){Fa.forEach(function(aa){var oa=aa.piece;"back"===aa.pieceid&&oa&&!oa.destroyed&&oa.node&&"back"===oa.targetid&&"back"!==oa.id&&!oa._flipSwapHandle&&(oa.skipNextFlip=!1,oa.flip("back",null,{duration:0}))})};P=r.syncFlipWithMoveFrame;D=r.delay?r.delay:0;P||(Q(!1),Sa(!1));this.movePieces(b,f,function(aa){var oa=
1376Pa();ka&&Ka(ka);var Da=function(){W();r.moveCallback&&r.moveCallback(aa);l&&l(aa)};oa?setTimeout(Da,oa/za):Da()},r);P&&(b=function(){q(function(){Q(!0);Sa(!0)})},D?setTimeout(b,D/za):b())}else l&&l([])};a.wocg.Table.prototype.sortPiecesForSpot=function(b,f){if(!Array.isArray(b))return b;f=this.spots[f];f.config.arrangement.sort&&(b=b.sort(f.pieceSortComparator.bind(f)));return b};a.wocg.Table.prototype.dissolveAvatar=function(b,f,u){if(b)return b.targetid=f,b.fadeOutFadeIn(f,function(){this.updateSpot(b.spotid,
1377{},u)}.bind(this)),null};a.wocg.Table.prototype.animateJoinedPlayerAvatar=function(b,f,u,l){if(b&&b.node){l=l||{};var r=b.node,D=m(b,"avatarSwapAnimationNonce");D.clearTimers(["joinAvatarPopTimer"]);a.Transition.cancel(r);r.setStyle("transformOrigin","center bottom");r.setStyle("opacity",l.skipPlaceholderFade?0:1);r.setScaleStyle(1);var N=function(){D.setTimer("joinAvatarPopTimer",60,function(){D.afterNextPaint(function(){D.run({opacity:1,duration:120,easing:"linear"});D.sequence([{scale:1.04,duration:220,
1378easing:"ease-out-2"},{scale:1,duration:100,easing:"ease-in-out"}],function(){b.node.setScaleStyle(1);b.node.setStyle("opacity",1)})})})};r=function(){H(b,f);b.node.setStyle("opacity",0);b.node.setScaleStyle(.86);u&&u();N()};l.skipPlaceholderFade?r():D.run({opacity:0,scale:.88,duration:140,easing:"ease-in-2"},r)}};a.wocg.Table.prototype.animateLeftPlayerAvatar=function(b){if(b&&b.node){var f=b.node,u=m(b,"avatarSwapAnimationNonce");u.clearTimers(["joinAvatarPopTimer"]);a.Transition.cancel(f);f.setStyle("transformOrigin",
1379"center bottom");f.setStyle("opacity",1);f.setScaleStyle(1);u.sequence([{scale:1.04,duration:48,easing:"ease-in-out"},{opacity:0,scale:.84,duration:272,easing:"ease-in-2"}],function(){H(b,"EmptyChair");b.node.setStyle("opacity",0);b.node.setScaleStyle(.86);u.sequence([{opacity:1,scale:1.04,duration:80,easing:"ease-out-2"},{scale:1,duration:120,easing:"ease-in-out"}],function(){b.node.setScaleStyle(1);b.node.setStyle("opacity",1)})})}};a.wocg.Table.prototype.dissolvePiece=function(b,f,u,l){b.targetid=
1380f;b.fadeOut(function(){b.id=f;delete b.targetid;this.updateSpot(b.spotid);b.fadeIn(u,l)}.bind(this),l)};a.wocg.Table.prototype.getPieces=function(b){return this.spots[b]?this.spots[b].pieces.slice():[]};
1380a.wocg.Table.prototype.getPiece=function(b,f){return this.getSpot(b).findPiece(f)};a.wocg.Table.prototype.getSpot=function(b){return this.spots[b]};a.wocg.Table.prototype.getSpots=function(b){return Array.toArray(b).map(function(f){return this.getSpot(f)}.bind(this))};a.wocg.Table.prototype.getSpotidsStartingWith=
1381function(b){return Array.toArray(b).map(function(f){return Object.keys(this.spots).filter(function(u){return u.startsWith(f)})}.bind(this)).flatten()};a.wocg.Table.prototype.getSpotsStartingWith=function(b){return Array.toArray(b).map(function(f){return this.getSpots(Object.keys(this.spots).filter(function(u){return u.startsWith(f)}))}.bind(this)).flatten()};a.wocg.Table.prototype.getSpotNum=function(b){return this.p2s[b]};a.wocg.Table.prototype.getPieceSpotids=function(b){return Array.toArray(b).map(function(f){return f.spotid}).unique()};
1382a.wocg.Table.prototype.getOtherPlayerPersonaSpotids=function(){var b=[];this.players.forEach(function(f,u){f=this.getSpotNum(u);0!==f&&(b.push("name"+f),b.push("namePlate"+f),b.push("dislikePlayer"+f),b.push("likePlayer"+f),b.push("avatar"+f))}.bind(this));return b};a.wocg.Table.prototype.getNextPlayer=function(b,f,u){f=(f||"").toLowerCase();u&&(f="right"===f||"ccw"===f?"left":"across"===f?f:"right");do b="right"===f||"ccw"===f?0>b-1?this.players.length-1:b-1:"across"===f?b+2>this.players.length-
13831?b-2:b+2:b+1>this.players.length-1?0:b+1;while(this.sittingOutPlayers.contains(b));return b};a.wocg.Table.prototype.isPlayerMe=function(b){return 0===this.getSpotNum(b)};a.wocg.Table.prototype.getPlayerMe=function(){return this.p2s.indexOf(0)};a.wocg.Table.prototype.seatIsEmpty=function(b){return"Empty seat"===this.getPlayerName(b)};a.wocg.Table.prototype.getPlayerName=function(b){return this.players[b]?.username?this.censorIfNeeded(this.players[b].username):"Empty seat"};a.wocg.Table.prototype.getPlayerAvatar=
1384function(b){return this.players[b]?.avatar?this.players[b].avatar:"EmptyChair"};a.wocg.Table.prototype.preloadAvatarEmotions=function(b){if(!(a.wocg.User&&a.wocg.User.getUseLegacyAvatars&&a.wocg.User.getUseLegacyAvatars())&&"number"===typeof b){var f=this.getPlayerAvatar(b);f&&"EmptyChair"!==f&&(this._preloadedAvatarEmotions||(this._preloadedAvatarEmotions={}),this._preloadedAvatarEmotions[f]||(this._preloadedAvatarEmotions[f]=!0,["win","lose","think"].forEach(function(u){u=a.wocg.buildAssetImageURL("pieces/avatar/classic/"+
1385f+"_"+u+".json");try{fetch(u,{cache:"force-cache"})}catch(l){}})))}};a.wocg.Table.prototype.showAvatarEmotion=function(b,f,u){if("number"===typeof b&&f){var l="avatar"+this.getSpotNum(b);b=this.getPlayerAvatar(b);this._queueAvatarEmotion(l,b,f,u)}};a.wocg.Table.prototype.showAvatarEmotionOnSpot=function(b,f,u,l){b&&"string"===typeof b&&f&&"EmptyChair"!==f&&u&&this._queueAvatarEmotion(b,f,u,l)};a.wocg.Table.prototype._queueAvatarEmotion=function(b,f,u,l){if(!(a.wocg.User&&a.wocg.User.getUseLegacyAvatars&&
1386a.wocg.User.getUseLegacyAvatars())){var r=a.wocg.User&&a.wocg.User.getAvatarEmotionsMode?a.wocg.User.getAvatarEmotionsMode():2;0===r||1===r&&!l||(this.avatarEmotionQueues||(this.avatarEmotionQueues={}),this.avatarEmotionQueues[b]||(this.avatarEmotionQueues[b]=[]),this.avatarEmotionStartTimes||(this.avatarEmotionStartTimes={}),l=this.avatarEmotionQueues[b],l.some(function(D){return D.emotion===u})||(r=this.avatarEmotionStartTimes[b],0<l.length&&r&&1500>Date.now()-r||(l.push({avatarId:f,emotion:u}),
13871===l.length&&this._playNextAvatarEmotion(b))))}};a.wocg.Table.prototype._playNextAvatarEmotion=function(b){var f=this,u=this.avatarEmotionQueues&&this.avatarEmotionQueues[b];if(u&&0!==u.length){var l=u[0],r=l.avatarId;l=l.emotion;var D=this.getPiece(b,r);if(D){this.avatarEmotionStartTimes[b]=Date.now();r=a.wocg.buildAssetImageURL("pieces/avatar/classic/"+r+"_"+l+".json");var N=this.createPiece(b,"lottie","avatarEmotion",{path:r,loop:!1,autoplay:!0,renderer:"svg",rendererSettings:{preserveAspectRatio:"xMidYMax meet"},
1388entrance:"instant",exit:"instant",onBeforePlay:function(){D.node.hide()},onComplete:function(){D.node.show();f.removePiece(N,{exit:"instant"});u.shift();f._playNextAvatarEmotion(b)}});if(r=D.node.getStyle("zIndex"))r=parseInt(r,10),isNaN(r)||N.setZIndex(r);this.updateSpot(b,{skipAnimation:!0})}else u.shift(),this._playNextAvatarEmotion(b)}};a.wocg.Table.prototype.getPlayerTeammate=function(b){return 2>b?b+2:b-2};a.wocg.Table.prototype.getSyncid=function(){return this.syncid};a.wocg.Table.prototype.updateSpot=
1389function(b,f,u){var l="selectedSuit showMeldsButton sortButton playerMore playerLiked support2 leaving".split(" "),r="string"===typeof b?b:b&&b.id,D=u;"string"===typeof b&&l.some(P=>b.startsWith(P))&&(D=()=>{for(var P=0;P<this.players.length;P++)this.positionLeftButtons(P);"function"===typeof u&&u.apply(this,arguments)});
1389if("gameOverBackground"===r||"gameOverBackdrop"===r||"handOverBackground"===r||"handOverBackdrop"===r){var N=D;D=function(){this.updateEndModalBackgroundCenter(r.startsWith("handOver")?
1390"handOver":"gameOver");"function"===typeof N&&N.apply(this,arguments)}.bind(this)}"string"===typeof b?this.spots[b]&&this.spots[b].update(f,D):b&&b.update(f,D)};a.wocg.Table.prototype.updateAllSpots=function(b){this.spotOrder.forEach(function(f){this.updateSpot(f,b)}.bind(this))};a.wocg.Table.prototype.resyncHands=function(b){b.forEach(function(f,u){u=this.getSpotNum(u);var l=this.getSpot("hand"+u);0===u?(this.removePieces(l.pieces),this.createPieces(l.id,"card",f),this.updateSpot(l.id,{skipAnimation:!0})):
1391this.resyncHiddenCardSpot(l,f)}.bind(this))};a.wocg.Table.prototype.resyncCardBackSpot=function(b,f){b.pieces.length!==f&&(b.pieces.length<f?this.createPieces(b.id,"card","back".repeatAsArray(f-b.pieces.length)):b.pieces.length>f&&this.removePieces(b.pieces.pickRandom(b.pieces.length-f)),this.updateSpot(b.id,{skipAnimation:!0}))};a.wocg.Table.prototype.resyncHiddenCardSpot=function(b,f){this.resyncCardBackSpot(b,f);"number"===typeof f&&(f=b.pieces.filter(function(u){return u&&"function"===typeof u.flip&&
1392("back"!==u.id||"back"!==u.getId())}),f.length&&(f.forEach(function(u){u.skipNextFlip=!1;u.flip("back",null,{duration:0})}),this.updateSpot(b.id,{skipAnimation:!0})))};a.wocg.Table.prototype.resizeAllSpots=function(b){this.spotOrder.forEach(function(f){this.spots[f]&&this.spots[f].resize(b)}.bind(this))};a.wocg.Table.prototype.isBridgeDummyHandSpot=function(b){return"bridge"===this.gameid&&this.game&&this.game.state&&null!==this.game.state.dummy&&"undefined"!==typeof this.game.state.dummy?b==="hand"+
1393this.getSpotNum(this.game.state.dummy):!1};a.wocg.Table.prototype.isOldMaidOfferedHandSpot=function(b){return"oldmaid"===this.gameid&&this.game&&this.game.offeredHandLayout&&b===this.game.offeredHandLayout.spotId};a.wocg.Table.prototype.mergeRuntimeLayoutConfig=function(b,f,u){"play"===b&&f.arrangement?u.arrangement=base.clone(f.arrangement):(this.isBridgeDummyHandSpot(b)||this.isOldMaidOfferedHandSpot(b))&&f.arrangement&&(u.arrangement=base.clone(f.arrangement),["shrinkWidth","shrinkHeight","topInternalMargin",
1394"leftInternalMargin","rightInternalMargin"].forEach(function(l){"undefined"!==typeof f[l]?u[l]=f[l]:delete u[l]}));"number"===typeof f.cribbagePointIndex&&(u.cribbagePointIndex=f.cribbagePointIndex);return u};a.wocg.Table.prototype.refreshLayoutConfigs=function(){var b=this.layout||{},f=this.gameLayout.create();Object.keys(b).forEach(function(u){"undefined"===typeof f[u]&&(f[u]=b[u])});this.layout=f;Object.keys(this.spots).forEach(function(u){var l=this.spots[u],r=this.layout[u],D=l.pullOutOnClick,
1395N=l.maxPulledOutPieces;if(r){var P=this.mergeRuntimeLayoutConfig(u,l.config||{},r);this.layout[u]=P;l.config=P;l.baseZIndex=P.zIndex||1E3;l.pullOutOnClick=D;l.maxPulledOutPieces=N;P.options&&l.pieces.forEach(function(ca){ca&&ca.options&&Object.merge(ca.options,P.options)});l.updateZIndexes()}}.bind(this));this.fanCardsWider(!0);this.updatePlayerScorePlateLayoutClasses()};a.wocg.Table.prototype.updatePlayerScorePlateLayoutClasses=function(){for(var b=0;b<this.numPlayers;b++){var f=this.spots["scorePlate"+
1396b];f&&f.pieces.length&&(f=f.pieces[0],0!==b&&this.gameLayout.usesInlinePlayerScorePlate(b,this.gameLayout.getPlayerSpotPosition(b))?f.addClasses("inlineScorePlate"):f.removeClasses("inlineScorePlate"))}};a.wocg.Table.prototype.resizeHandler=function(){this.resizeTimer&&this.resizeTimer.stop();this.resizeTimer=new Timer(200);this.resizeTimer.start(this.resize.bind(this))};a.wocg.Table.prototype.resize=function(){delete this.resizeTimer;if("true"===a.one("body").getAttribute("data-table")){a.one("#mainContainer").setStyle("height",
1397window.innerHeight+a.wocg.belowViewportRenderOverflow()+"px");this.resizeAndPositionPlayspace();this.positionScoreboard();this.refreshLayoutConfigs();this.resizeAllSpots();this.resizeAndPositionMessageBox();var b=function(){this.game&&this.game.resizeHandler&&(this.gameResizeHandlerTimer&&(clearTimeout(this.gameResizeHandlerTimer),this.gameResizeHandlerTimer=null),this.gameResizeHandlerTimer=setTimeout(()=>{this.game.resizeHandler();this.gameResizeHandlerTimer=null},200))};setTimeout(function(){if(this.dealInProgress)this.pendingResize=
1398!0;else{var f={skipAnimation:!0};this.spotOrder.forEach(function(u){"hand0"===u?this.updateSpot(u,f,b.bind(this)):(this.playPauseButtonsShouldBeDisplayed(),this.updateSpot(u,f,function(){b.bind(this)}.bind(this)))}.bind(this))}}.bind(this),500);this.resizeAndPositionScoreboard();a.one("body .helpBox").setStyle("top",a.one("#mainContainer").getHeight()+"px");a.wocg.TableBar&&a.wocg.TableBar.resize&&a.wocg.TableBar.resize()}};a.wocg.Table.prototype.getMaxWidthMaxHeight=function(){return a.wocg.getAvailablePlayspaceSize()};
1399a.wocg.Table.prototype.resizeAndPositionPlayspace=function(){a.wocg.updateAdContainerLayout&&a.wocg.updateAdContainerLayout();var b=this.getMaxWidthMaxHeight(),f=b.userBarHeight,u=this.gameLayout.modifyPlayspaceDimensions([b.maxWidth,b.maxHeight]);this.playspace.setStyle("width",u[0]+"px");this.playspace.setStyle("height",u[1]+"px");a.wocg.updatePlayspaceLayoutClasses();a.wocg.updateAdContainerLayout&&a.wocg.updateAdContainerLayout();var l=b.maxWidth-u[0],r=Math.floor(l/2);a.wocg.TableBar.isSideLayout()?
1400r=Math.max(0,l):a.AdWidget.isAdRemoved()||a.wocg.showMobileBannerAd()?a.AdWidget.isAdRemoved()||(r=Math.max(0,r)):r=Math.max(0,l);this.playspace.setStyle("left",r+a.wocg.safeAreaLeft()+"px");this.playspace.setStyle("top",Math.floor((b.maxHeight-u[1])/2)+a.wocg.safeAreaTop()+f+b.topAdOffset+"px");a.wocg.TableBar&&a.wocg.TableBar.resize&&a.wocg.TableBar.resize();this.fanCardsWider(!0);this.game&&this.game.resizePlayspaceHandler&&this.game.resizePlayspaceHandler()};a.wocg.Table.prototype.positionScoreboard=
1401function(){if(this.hasScoreBoard()&&(this.scoreBoardResizeTimer&&(clearTimeout(this.scoreBoardResizeTimer),this.scoreBoardResizeTimer=null),this.hasScoreBoard())){var b=a.one("#scoreBoardWrapper");if(b){var f=a.wocg.playspaceGutter(),u=c("#playspace");if(u){var l=Math.floor(u.left+u.width-b.getWidth()-f);l=Math.max(Math.floor(u.left+f),l);b.setStyle("left",l+"px").setStyle("right","auto");b.setStyle("top",Math.floor(u.top+f)+"px")}}}};a.wocg.Table.prototype.resizeAndPositionScoreboard=function(){this.hasScoreBoard()&&
1402(this.scoreBoardResizeTimer&&clearTimeout(this.scoreBoardResizeTimer),this.scoreBoardResizeTimer=setTimeout(function(){this.scoreBoardResizeTimer=null;this.positionScoreboard()}.bind(this),0))};a.wocg.Table.prototype.playPauseButtonsShouldBeDisplayed=function(){var b=!1;this.gameStarted&&this.isTableFull()&&!this.isSoloGame()&&(b=!0);return b};a.wocg.Table.prototype.initRankedButtons=function(){};a.wocg.Table.prototype.initPlayPauseButtonsIfNecessary=function(){this.playPauseButtonsShouldBeDisplayed()?
1403this.setPlayPauseButtons():this.disablePlayPauseButtons()};a.wocg.Table.prototype.disablePlayPauseButtons=function(){a.one("#tableBar").one(".pauseLink").addClass("disabled").removeClass("active").addClass("visible").setContent("<span>Pause</span>").setAttribute("title","Game can't be paused")};a.wocg.Table.prototype.setPlayPauseButtons=function(){var b=a.one("#tableBar")&&a.one("#tableBar").one(".pauseLink");b&&(this.iVotedToPause?b.removeClass("disabled").addClass("visible").addClass("active").setContent("<span>Resume</span>").setAttribute("title",
1404this.gamePaused?"Resume the game":"Cancel your pause request"):b.removeClass("disabled").addClass("visible").removeClass("active").setContent("<span>Pause</span>").setAttribute("title","Request to pause the game"))};a.wocg.Table.prototype.setPauseCountdowns=function(b){J(this,b)};a.wocg.Table.prototype.pauseLinkClickHandler=function(){var b=a.one("#tableBar").one(".pauseLink span").getContent();if("Resume"===b){b=this.getPauseCooldownSecondsRemaining();if(this.gamePaused&&0<b){a.fire("Notice:show",
1405{message:"Game was just paused. You can resume in "+b+" second"+(1===b?"":"s")+".",type:"warning"});return}var f="table.play"}else"Pause"===b&&(f="table.pause");f&&E.send(f,{})};a.wocg.Table.prototype.getPauseCooldownSecondsRemaining=function(){if(!this.pauseResumeAt)return 0;var b=this.pauseResumeAt-Date.now();return 0>=b?0:Math.ceil(b/base.SECOND)};a.wocg.Table.prototype.getPauseExpireSecondsRemaining=function(){if(!this.pauseExpireAt)return 0;var b=this.pauseExpireAt-Date.now();return 0>=b?0:Math.ceil(b/
1406base.SECOND)};a.wocg.Table.prototype.formatCountdown=function(b){return Math.floor(b/60)+":"+String(b%60).padStart(2,"0")};a.wocg.Table.prototype.getPublicPauseMessage=function(){var b=this.getPauseExpireSecondsRemaining();return"Game is paused. It will resume automatically in <b>"+this.formatCountdown(b)+"</b> or when a player clicks <b>Resume</b>."};a.wocg.Table.prototype.stopPauseMessageInterval=function(){this.pauseMessageInterval&&(clearInterval(this.pauseMessageInterval),this.pauseMessageInterval=
1407null)};a.wocg.Table.prototype.startPauseMessageInterval=function(){this.stopPauseMessageInterval();this.pauseExpireAt&&(this.showMessage(this.getPublicPauseMessage(),{duration:base.DAY}),this.pauseMessageInterval=setInterval(function(){if(this.gamePaused){var b=this.getPauseExpireSecondsRemaining();this.showMessage(this.getPublicPauseMessage(),{duration:base.DAY});0>=b&&this.stopPauseMessageInterval()}else this.stopPauseMessageInterval()}.bind(this),1E3))};a.wocg.Table.prototype.playHandler=function(b){this.iVotedToPause=
1408this.gamePaused=!1;this.pauseVoters=[];this.pauseExpireAt=this.pauseResumeAt=0;this.stopPauseMessageInterval();this.setPlayPauseButtons();this.showOrHidePlayPauseMessage("play",5E3)};a.wocg.Table.prototype.pauseHandler=function(b){this.gamePaused=!0;this.pauseExpireAt=this.pauseResumeAt=0;
1408b&&this.setPauseCountdowns(b.expiresIn);b&&Array.isArray(b.voters)&&(this.pauseVoters=b.voters.slice(),b=this.getPlayerMe(),this.iVotedToPause="number"===typeof b&&0<=b&&-1<this.pauseVoters.indexOf(b));this.setPlayPauseButtons();
1409a.fire("ModalError:hide");this.showOrHidePlayPauseMessage("pause")};a.wocg.Table.prototype.pauseVoteHandler=function(b){if(b){this.pauseVoters=Array.isArray(b.voters)?b.voters.slice():[];"number"===typeof b.expiresIn&&(this.pauseExpireAt=this.pauseResumeAt=0,this.setPauseCountdowns(b.expiresIn));var f=this.getPlayerMe(),u=!1;"number"===typeof f&&0<=f&&(this.iVotedToPause=u=-1<this.pauseVoters.indexOf(f));this.setPlayPauseButtons();if(!this.tutorial&&!b.paused&&0<b.votes&&0<b.required){f=b.votes+" of "+
1410b.required+" votes needed to pause.";var l=b.votes+" of "+b.required+" votes needed to pause the game.";1===b.votes&&(l=(u?"You requested to pause the game. ":"A player requested to pause the game. ")+f);this.showMessage(l,{duration:6*base.SECOND})}}};a.wocg.Table.prototype.pauseExpiredHandler=function(b){this.iVotedToPause=!1;this.pauseVoters=[];this.pauseExpireAt=this.pauseResumeAt=0;this.stopPauseMessageInterval();this.setPlayPauseButtons();this.hideMessage()};a.wocg.Table.prototype.showOrHidePlayPauseMessage=
1411function(b,f){if(!this.tutorial){if("pause"===b){a.SoundEffects.play(C.AUDIO_GAME_PAUSED);if(this.pauseExpireAt){this.startPauseMessageInterval();return}b="Game is paused. It will resume automatically in "+Math.round(C.PUBLIC_TABLE_PAUSE_DURATION/base.MINUTE)+" minutes or when a player clicks Resume."}else a.SoundEffects.play(C.AUDIO_GAME_UNPAUSED),this.stopPauseMessageInterval(),b="Game was paused, but is now resuming.";f||(f=base.DAY);this.showMessage(b,{duration:f})}};a.wocg.Table.prototype.keyDownHandler=
1412function(b){if(b&&!(116===b.keyCode||74===b.keyCode&&b.ctrlKey&&b.shiftKey||b.ctrlKey||b.metaKey||82===b.keyCode&&b.ctrlKey||82===b.keyCode&&b.metaKey)){var f=a.wocg.TableBar.isChatLogVisible();f&&8===b.keyCode?["input","textarea","select"].contains(b.target.get("nodeName").toLowerCase())||(b.halt(),b.preventDefault()):13!==b.keyCode||f?13===b.keyCode&&f?"input"===b.target.get("nodeName").toLowerCase()&&this.chatFormSubmitHandler():27===b.keyCode&&f?a.wocg.TableBar.hideChatLog():8!==b.keyCode||["input",
1413"textarea","select"].contains(b.target.get("nodeName").toLowerCase())||(b.halt(),b.preventDefault()):["input","textarea","select"].contains(b.target.get("nodeName").toLowerCase())||a.wocg.TableBar.isChatLogAvailable&&!a.wocg.TableBar.isChatLogAvailable()||(b.halt(),a.wocg.TableBar.showChatLog())}};a.wocg.Table.prototype.enableChat=function(){a.one("#tableBar").one(".chatLogLink").addClass("visible").removeClass("disabled")};a.wocg.Table.prototype.disableChat=function(){a.one("#tableBar").one(".chatLogLink").removeClass("visible").addClass("disabled")};
1414a.wocg.Table.prototype.chatFormSubmitHandler=function(){var b=a.one("#chatLog").one("#chatLogInput");if(b){var f=b.get("value").trim();f.length>C.MAX_CHAT_LENGTH&&(f=f.substring(0,C.MAX_CHAT_LENGTH-3),f+="...");0===f.length?a.wocg.TableBar.hideChatLog():(E.send("table.chat",{text:f,addressId:a.wocg.User.getAddressId()}),a.wocg.trackEvent("table_message_sent",{}),b.set("value",""),b.getDOMNode()&&("function"===typeof window.Event?f=new window.Event("input",{bubbles:!0}):(f=document.createEvent("Event"),
1415f.initEvent("input",!0,!0)),b.getDOMNode().dispatchEvent(f)),b.focus())}};a.wocg.Table.prototype.chatModerationHandler=function(b){function f(){E.send("table.chat",{text:l,toxicityLevel:r,toxicityScore:D,confirmed:!0,addressId:a.wocg.User.getAddressId()})}function u(){var N=a.one(".moderation-report-link");if(N)N.on("click",function(P){P.preventDefault();E.send("table.chat.moderation.report",{text:l,toxicityLevel:r,toxicityScore:D});(P=a.one(".moderation-report-container"))&&P.setHTML("Thanks for reporting it as a mistake.")})}
1416var l=b.text,r=b.toxicityLevel,D=b.toxicityScore||0;
14163==r?(b=new a.ModalConfirm("Can't send that message",'Message was identified as very offensive. Posting it will lower your reputation and might get you banned. We understand that feelings can run high, but please keep a civil tone. <span class="moderation-report-container"><a href="#" class="moderation-report-link">Let us know</a> if you think this was flagged by mistake.</span><br /><br /><span style=\'font-style: italic;\'>Players are matched by reputation. A low score means you won\'t be matched with good players.</span>',
1417"","OK"),b.show(),u()):2==r?((new a.ModalInput("Sure you want to send that message?",'Message was identified as offensive. Posting it will lower your reputation and might get you banned. We understand that feelings can run high, but please keep a civil tone. <span class="moderation-report-container"><a href="#" class="moderation-report-link">Let us know</a> if you think this was flagged by mistake.</span><br /><br /><span style=\'font-style: italic;\'>Players are matched by reputation. A low score means you won\'t be matched with good players.</span>',
1418"Re-type message to send","","Cancel","Confirm")).show(function(N){N&&String(N).trim().toLowerCase()===String(l).trim().toLowerCase()?f():(new a.ModalConfirm("Message not sent","Message didn't match confirmation and wasn't sent.","","OK")).show()}),u()):1==r&&(b=new a.ModalConfirm("Sure you want to send that message?",'Message was identified as offensive. We understand that feelings can run high, but please keep a civil tone. <span class="moderation-report-container"><a href="#" class="moderation-report-link">Let us know</a> if you think this was flagged by mistake.</span><br /><br /><span style=\'font-style: italic;\'>Offensive messages are logged and may result in you being banned from playing with people.</span>',
1419"Cancel","Send"),b.show(function(N){N&&f()}),u())};a.wocg.Table.prototype.isSoloGame=function(){return 1===this.players.filter((b,f)=>b.username&&this.isHumanPlayer(f)).length};a.wocg.Table.prototype.hasBots=function(){return this.players.some((b,f)=>!this.isHumanPlayer(f))};a.wocg.Table.prototype.isSingleplayerGame=function(){return 1==this.info.privateTable&&0==this.info.noRobots&&0==this.info.replaceRobots&&this.info.privateTableName==C.ANONYMOUS_TABLE_NAME};a.wocg.Table.prototype.isPrivateGame=
1420function(){return 1==this.info.privateTable&&this.info.privateTableName!=C.ANONYMOUS_TABLE_NAME};a.wocg.Table.prototype.isAIPlayer=function(b){return this.players[b].username&&(C.AI_NAMES.boy.contains(this.players[b].username)||C.AI_NAMES.girl.contains(this.players[b].username))};a.wocg.Table.prototype.isHumanPlayer=function(b){return!this.isAIPlayer(b)};a.wocg.Table.prototype.isTableFull=function(){return!this.players.some(function(b){return!b.username})};a.wocg.Table.prototype.teamNumber=function(b){let f=
1421!this.teams||1!==b&&3!==b?1:2;"ginrummy"!==this.gameid&&"cribbage"!==this.gameid||1!==b||(f=2);return f};a.wocg.Table.prototype.addSittingOutPlayer=function(b){this.sittingOutPlayers.contains(b)||this.sittingOutPlayers.push(b)};a.wocg.Table.prototype.removeSittingOutPlayer=function(b){this.sittingOutPlayers.remove(b)};a.wocg.Table.prototype.clearSittingOutPlayers=function(){this.sittingOutPlayers=[]};a.wocg.Table.prototype.getSittingOutPlayers=function(){return this.sittingOutPlayers};a.wocg.Table.prototype.adRemovedHandler=
1422function(){this.resizeHandler()};a.wocg.Table.prototype.fanCardsWiderClickedHandler=function(){this.fanCardsWider(!1)};a.wocg.Table.prototype.botsAllowedHandler=function(b){this.exceptionBotsAllowed=!0;b&&0===b.noRobots&&(this.info.noRobots=0)};a.wocg.Table.prototype.send=function(b,f){E.send(b,{...f,syncid:this.getSyncid()})};a.wocg.Table.prototype.showTableError=function(b,f,u="notice"){if(b){this.tableErrorText||!this.currentMessage||this.currentMessage.tableError||(this.messageBeforeTableError=
1423this.currentMessage);this.tableErrorText=b;var l=this.tableErrorNonce+=1,r={duration:base.DAY,tableError:!0};"Lost internet"==b?(r.prefix="alert",r.prefixLabel="Notice",b="Connection problem, reconnecting...",setTimeout(function(){this.tableErrorNonce===l&&(r.prefixLabel="Error",r.buttons=[{text:"Reload game",className:"red",onClick:function(){a.wocg.reloadApp()}}],this.showMessage(!1===navigator.onLine?"Lost internet":"Connection problem",r))}.bind(this),C.TABLE_POLL_INTERVAL)):"tip"===u?(r.prefix=
1424"none",b="<strong>Tip:</strong> "+b):(r.prefix="alert",r.prefixLabel=u.charAt(0).toUpperCase()+u.slice(1));this.showMessage(b,r);f&&setTimeout(function(){this.tableErrorNonce===l&&this.hideTableError(this.tableErrorText)}.bind(this),f)}};a.wocg.Table.prototype.hideTableError=function(b){!this.tableErrorText||b&&this.tableErrorText!==b||(b=this.messageBeforeTableError,this.messageBeforeTableError=this.tableErrorText=null,this.tableErrorNonce+=1,b?this.renderMessage(b):this.hideMessage(this.currentMessageText))};
1425a.wocg.Table.prototype.destroy=function(b){if(a.wocg.isSourceArkadium()&&window.arkadium)window.arkadium.lifecycle.onGameEnd();
1425a.wocg.PageReset&&a.wocg.PageReset.cancelScheduledFire();a.SoundEffects.cancelPending();this._dealScheduleHandle&&(this._dealScheduleHandle.cancel(),this._dealScheduleHandle=null);this.playerTurnStopHandler();this.phaseStopHandler();this.stopInviteRobotChatTipTimer();this.clearDisconnectCountdownStartTimers();this.resizeTimer&&(this.resizeTimer.stop(),delete this.resizeTimer);
1426this.gameResizeHandlerTimer&&(clearTimeout(this.gameResizeHandlerTimer),this.gameResizeHandlerTimer=null);this.rematchCountdownInterval&&(clearInterval(this.rematchCountdownInterval),this.rematchCountdownInterval=null);this.rematchExpiryTimeout&&(clearTimeout(this.rematchExpiryTimeout),this.rematchExpiryTimeout=null);this.stopPauseMessageInterval();var f=this.hasScoreBoard();this.game.destroy&&this.game.destroy();this.game.eventHandlers&&Object.forEach(this.game.eventHandlers,function(u,l){a.detach(u,
1427l)}.bind(this));f&&a.all("#scoreBoardWrapper").remove(!0);this.messageBox.lifespanTimer&&(this.messageBox.lifespanTimer.stop(),delete this.messageBox.lifespanTimer);this.clearScheduledMessage();this.currentMessage=this.currentMessageText=null;this.messageBox.remove(!0);this.setEndModalLayerActive(!1);this.gameOverModalOpen=this.handOverModalOpen=!1;this.disableChat();a.one(document).detach("keydown",this.keyDownHandler,this);this.detachGlobalEvents();a.Transition.run({node:this.playspace,duration:a.wocg.SCREEN_TRANSITION_DURATION,
1428opacity:0,cb:function(){Object.values(this.spots).forEach(function(u){u.destroy()});this.playspace.remove(!0);b&&b()}.bind(this)});(f=a.one("#party-js-container"))&&a.Transition.run({node:f,duration:a.wocg.SCREEN_TRANSITION_DURATION,opacity:0,easing:"linear"});this.gameOverSparklesInterval&&(clearInterval(this.gameOverSparklesInterval),this.gameOverSparklesInterval=null);this.destroyed=!0};this.globalEventHandlers={"ad:removed":this.adRemovedHandler,"window:resized":this.resizeHandler,"theme:changed":this.resizeHandler,
1429"animationsMode:changed":this.animationsModeChangedHandler,"comm:disconnected":this.playerTurnStopHandler,"comm:table.game.started":this.gameStartedHandler,"comm:table.player.joined":this.playerJoinedHandler,"comm:table.player.leaving":this.playerLeavingHandler,"comm:table.player.left":this.playerLeftHandler,"comm:table.player.returned":this.playerReturnedHandler,"comm:table.player.changed":this.playerChangedHandler,"comm:table.player.turn.start":this.playerTurnStartHandler,"comm:table.player.turn.stop":this.playerTurnStopHandler,
1430"comm:table.player.say":this.playerSayHandler,"comm:table.play":this.playHandler,"comm:table.pause":this.pauseHandler,"comm:table.pause.vote":this.pauseVoteHandler,"comm:table.pause.expired":this.pauseExpiredHandler,"comm:table.phase.start":this.phaseStartHandler,"comm:table.phase.exclude":this.phaseExcludeHandler,"comm:table.phase.stop":this.phaseStopHandler,"comm:table.dealer.changed":this.dealerChangedHandler,"comm:table.replace.robots":this.replaceRobotsHandler,"comm:table.bots.allowed":this.botsAllowedHandler,
1431"comm:error":this.errorHandler,"Notice:hidden":this.noticeHiddenHandler,"comm:table.chat.moderation":this.chatModerationHandler,"comm:table.rematch.update":this.rematchUpdateHandler,"comm:table.player.left.postgame":this.playerLeftPostgameHandler,"tableBar:leaveTableLinkClicked":this.leaveTableLinkClickHandler,"tableBar:pauseLinkClicked":this.pauseLinkClickHandler,"fanCardsWider:clicked":this.fanCardsWiderClickedHandler,"pileCardsVertically:clicked":this.pileCardsVertically};this.globalEventHandlers["comm:table."+
1432this.gameid+".resync"]=this.resyncHandler;this.globalEventHandlers["comm:table."+this.gameid+".tram.enable"]=this.tramEnabledHandler;this.globalEventHandlers["comm:table."+this.gameid+".gameOver"]=this.gameOverHandler;a.one(document).on("keydown",this.keyDownHandler,this);a.wocg.Table.prototype.attachGlobalEvents=function(){Object.forEach(this.globalEventHandlers,function(b,f){a.on(b,f,this)}.bind(this))};a.wocg.Table.prototype.detachGlobalEvents=function(){Object.forEach(this.globalEventHandlers,
1433function(b,f){a.detach(b,f)})};this.attachGlobalEvents();this.game.eventHandlers&&Object.forEach(this.game.eventHandlers,function(b,f){a.on(b,f,this.game)}.bind(this))};a.wocg.Table.startFindTableTimer=function(){null===L&&(L=new Timer(C.FIND_TABLE_PROGRESS_DELAY),L.start(F),null!==T&&clearTimeout(T),T=setTimeout(function(){S();a.fire("comm:gameSelectors.show")},C.FIND_TABLE_TIMEOUT))};a.wocg.Table.stopFindTableTimer=t;a.wocg.Table.isFindingTable=B;a.wocg.Table.shouldBlockGameSelectorsShow=function(na){return na&&
1434na.force?!1:ma||B()||null!==G&&!G.tableLeaveSent&&0<G.gameCreatedTime};a.wocg.Table.isPlaying=A;a.wocg.Table.isTutorial=function(){return G&&G.tutorial};a.wocg.Table.isHandOverModalOpen=function(){return null!==G&&!0===G.handOverModalOpen};a.wocg.Table.isGameOverModalOpen=function(){return null!==G&&!0===G.gameOverModalOpen};a.wocg.Table.pollingSuggested=M;a.wocg.Table.hideTableError=function(na){G&&G.hideTableError(na)};a.wocg.Table.showTableError=function(na,b,f){M()&&G&&0<na.length&&G.showTableError(na,
1435b,f)};a.wocg.Table.getCurrentTable=function(){return G};a.wocg.Table.markCurrentTableLeaveSent=function(){G&&(G.tableLeaveSent=!0)};a.wocg.Table.destroyCurrentTable=function(na){G&&(G.destroy(na),G=null)};a.wocg.Table.hideMuteButtons=function(){G&&G.hideOrShowAllMuteButtons("hide")};a.wocg.Table.showMuteButtons=function(){G&&G.hideOrShowAllMuteButtons("show")};a.wocg.Table.hideWidgets=function(na,b){if(G&&"hearts"===G.gameid&&G.game)try{G.game.
1435setHandCountIsShown(!b),b?G.game.hideHandCount():G.game.showHandCount()}catch(f){}};
1436a.wocg.Table.preloadDeck=function(){var na=new a.wocg.Piece.card(a.wocg.Theme.getThemeForPieceType("card"));a.ImagePreloader.preload(na.createURLs(),null,!0);na.destroy()};a.on("comm:table.create",function(na){var b=a.one("#mainContainer"),f=a.one("body .helpBox"),u=a.one("#globalPlayerCount"),l=a.one("#gameSelectorContainer");b&&u&&l&&(ma=!0,a.wocg.setActiveGameID(na.gameid),a.one("body").setAttribute("data-table","true"),b.setStyle("height",window.innerHeight+a.wocg.belowViewportRenderOverflow()+
1437"px"),a.wocg.updateProjectedPlayspaceLayoutClasses&&a.wocg.updateProjectedPlayspaceLayoutClasses(),f&&f.setStyle("top",b.getHeight()+"px"),u.setStyle("display","none"),l.setStyle("display","none"),b=a.wocg.User.getSubdirPathParamsIfAny(),(f=!0===na.tutorial)&&G&&!G.tutorial&&!G.tableLeaveSent&&0<G.gameCreatedTime&&(G.tableLeaveSent=!0,p("tutorial_replaces_current_table",na,b,{currentTableGameid:G.gameid||"none",currentTableid:G.tableid||"none",currentTableGameStarted:!0===G.gameStarted,currentTableGameOver:!0===
1438G.gameOver,currentTableTutorial:!0===G.tutorial}),E.send("table.leave")),"object"!==typeof b||!b.gameid||f||b.gameid===na.gameid&&(!na.info||1==na.info.privateTable&&0==na.info.noRobots&&0==na.info.replaceRobots)?(a.fire("gameSelectors.hide"),S(),E.setGameModuleLoading(!0),a.wocg.GameModuleLoader.load(na.gameid,function(r){var D=!1,N=function(P){D||(E.setGameModuleLoading(!1,P),D=!0)};if(r)ma=!1,N(!1),console.error(r),a.fire("comm:error",{message:"Could not load game assets. Please reload the page."});
1439else try{A()&&G.destroy(function(){G.resize()}),G=new a.wocg.Table(na),G.create(na.gameStarted,na.gamePaused),ma=!1,a.wocg.TableBar.showTableBar(),N(),a.getAll("#menuBar a").forEach(function(P){var ca=P._node.textContent;na.info&&ca==na.info.gameName?P.addClass("active"):P.removeClass("active")}),YUI().use("anim",function(P){(new P.Anim({node:"win",to:{scroll:[0,0]},duration:.64,easing:P.Easing.easeOut})).run()}),a.wocg.Table.isTutorial()||a.wocg.isPlatformMobile()||a.wocg.isSourceArkadium()||!C.GAME_BETA.includes(na.gameid)?
1440a.wocg.Table.isTutorial()||a.wocg.isPlatformMobile()||a.wocg.isSourceArkadium()||a.wocg.getCookie("wocg-bookmark-tip-displayed").then(P=>{P||setTimeout(()=>{G.showTableError(`Enjoying the game? Bookmark us with <b>${"Mac OS"==a.wocg.deviceOS()?"⌘":"Ctrl"} + D</b> or tap ★ in your browser!`,8E3,"tip");a.wocg.setCookie("wocg-bookmark-tip-displayed","true",{path:"/",domain:a.wocg.DOMAIN,expires:new Date(Date.now()+1*base.MONTH)})},1E3)}):setTimeout(()=>{G.showTableError("You're playing an early beta, so expect bugs. Click <b>Help</b> to send me a bug report or give me some feedback.",
14418E3)},1E3)}catch(P){ma=!1,N(!1),console.error(P),a.fire("comm:error",{message:"Could not start table. Please reload the page."})}})):(p("path_guard",na,b,{pathGameMismatch:b.gameid!==na.gameid,tableInfoNotSingleplayerLike:!!na.info&&!(1==na.info.privateTable&&0==na.info.noRobots&&0==na.info.replaceRobots)}),setTimeout(function(){E.send("table.leave")},200),S(),ma=!1))});a.on("comm:error",function(na){S();na&&"You are not currently playing a game."===na.message&&(na=a.wocg.Table.getCurrentTable())&&
1442(na.erroredOut?(a.wocg.Comm.send("table.leave"),a.fire("comm:gameSelectors.show")):na.erroredOut=!0)});a.on("comm:gameSelectors.show",function(na){G&&G.countdownInterval&&(clearInterval(G.countdownInterval),G.countdownInterval=null);A()&&(na=a.wocg.hasActiveGame()?320:0,setTimeout(function(){a.wocg.Table.isFindingTable()||null!==a.wocg.Table.getCurrentTable()&&!a.wocg.Table.getCurrentTable().tableLeaveSent&&0<a.wocg.Table.getCurrentTable().gameCreatedTime||null==G||(G.destroy(),G=null)},na))})},"1.0",
1443{requires:"wocg wocg.Comm wocg.GameModuleLoader wocg.Spot wocg.Piece wocg.Piece.card wocg.Piece.lottie ImagePreloader wocg.Layout wocg.TableBar Animation SoundEffects ModalInvitePlayers ModalBlockReason escape".split(" ")});
1444YUI.add("wocg.TableBar",function(a){function q(Z){return a.wocg.belowViewportRenderOverflow()+a.wocg.safeAreaBottom()+(a.AdWidget.isAdRemoved()||!a.wocg.showStickyFooterAd()?Z:a.wocg.getAdHeight()+Z)}function w(){return a.wocg.isTableBarSideLayout()}function k(Z,pa,wa){Z&&pa&&(Z.setStyle("left",Math.floor(pa.left+wa)+"px"),Z.setStyle("top",Math.floor(pa.top+wa)+"px"),Z.setStyle("marginTop","0px"))}function x(){return!(!ra||!ra.hasClass("visible")||ra.hasClass("disabled"))}function y(Z){var pa=a.one("#mainContainer"),
1445wa=pa&&pa._node;if(!wa||!wa.getBoundingClientRect)return null;var Ja=wa.getBoundingClientRect(),Za=Z?Z.top+Z.height/2:pa.getHeight()/2,Wa=null;Z=wa.querySelectorAll("[id^='spot-namePlate']");Array.prototype.forEach.call(Z,function(cb){cb=cb.getBoundingClientRect();var db=cb.left-Ja.left;cb.top-Ja.top>=Za||!(null===Wa||db<Wa)||(Wa=db)});return Wa}function v(Z,pa){pa&&"click"===pa.type&&a.wocg.trackEvent&&a.wocg.trackEvent("Bottom menu clicked",{type:Z,gameid:Ea&&Ea.gameid,disabled:!!(pa._currentTarget&&
1446pa._currentTarget.classList&&pa._currentTarget.classList.contains("disabled"))})}function d(){a.wocg.Theme.getCurrentThemeConfig();var Z=function(pa){(pa=a.one(".helpBox."+pa))&&pa.getAll("p").concat(pa.getAll("li")).forEac
1446h(function(wa){var Ja=wa.get("innerHTML");wa.hasClass("skipColoringSuits")||(Ja=a.wocg.colorizeSuitSymbols(Ja));wa.set("innerHTML",Ja)})};C.GAMEIDS.forEach(function(pa){Z(pa)});D()}function n(){U&&Ea&&(Ga&&(Ea.isSingleplayerGame()?Ka.setContent("Join table"):Ka.setContent("Join next table")),
1447null!==U._node.offsetParent?e():(U.setStyle("display","block"),a.Transition.run({node:U,duration:C.TABLE_BAR_ANIMATION_DURATION,opacity:1}),m(),H(),D()))}function m(){Ra.one("table").empty();da.forEach(function(Z){G(Z.username,Z.text,Z.rawUsername)})}function H(){if(!Ea.tutorial){ya&&ya.remove(!0);ya=a.Node.create("<div>").set("id","tableInfo");var Z=a.Node.create("<tbody>"),pa=[...la,...C[Ea.gameid].EXTRA_GAME_OPTIONS];pa.push("privateTable");Ea.info.privateTable?pa.push("privateTableName"):pa.push("tableNumber");
1448pa.forEach(function(wa){var Ja=Ea.info[wa],Za=a.Node.create("<tr>");Za.append(a.Node.create("<td>").addClass("key").setContent(sa[wa]));Za.append(a.Node.create("<td>").addClass("val").addClass("val_"+wa).setContent(c(wa,Ja)));Z.append(Za)});ya.append(a.Node.create("<table>").append(Z));!Ea.info.privateTable&&!Ea.info.tableNumber||Ea.isSingleplayerGame()||a.wocg.isSourceArkadium()||(pa=a.Node.create("<div>").addClass("button").addClass("blue").addClass("inviteLink").setContent("Invite players"),pa.on("click",
1449function(wa){wa.preventDefault();a.fire("ModalInvitePlayers:show",{tableHash:Ea.tableHash})}),ya.append(pa));a.one("#mainContainer").append(ya);D()}}function c(Z,pa){"noRobots"===Z&&(pa=0===pa?!0:!1);"noBagPenaltySpades"===Z&&(pa=!0===pa?!1:!0);"standardRulesHearts"===Z&&(pa=!pa);"elapsedTime"===Z&&(pa=P());"tableNumber"===Z&&(pa=`#${accounting.formatNumber(pa)}`);if(pa===C.ANONYMOUS_TABLE_NAME||""===pa||null===pa||"undefined"===typeof pa)return"N  ̸ A";Z=typeof pa;return"boolean"===Z?pa?"Yes":"No":
1450"number"===Z?accounting.formatNumber(pa):pa}function e(){Ea.tutorial||ya&&Ba&&la.concat(C[Ea.gameid].EXTRA_GAME_OPTIONS).forEach(function(Z){var pa=ya.one(".val_"+Z);pa&&pa.setContent(c(Z,Ea.info[Z]))})}function h(){U&&null!==U._node.offsetParent&&(p(),a.Transition.run({node:U,duration:C.TABLE_BAR_ANIMATION_DURATION,opacity:0,cb:function(){U.setStyle("display","none")}}))}function p(Z){"chatLog"!==Z&&J();"tableInfo"!==Z&&S()}function t(Z){v("table",Z);ya&&(null===ya._node.offsetParent?B():S())}function B(){null===
1451ya._node.offsetParent&&ya&&(F(),p("tableInfo"),ya.setStyle("display","block"),ka.addClass("active"),a.Transition.run({node:ya,duration:160,opacity:1,cb:function(){ya.once("clickoutside",S);a.KeyboardShortcuts.on("escape",S)}}))}function F(){if(ya){var Z=ya.one(".val_elapsedTime");if(Z){var pa=P();Z.setContent(pa)}}}function S(){ya&&null!==ya._node.offsetParent&&(ka.removeClass("active"),ya.detach("clickoutside",S),a.KeyboardShortcuts.detach("escape",S),a.Transition.run({node:ya,duration:160,opacity:0,
1452cb:function(){ya.setStyle("display","none")}}))}function A(Z){v("chat",Z);if(!x())return ra&&ra.hasClass("disabled")&&a.fire("Notice:show",{message:"Can't chat with bots.",type:"warning"}),!1;if(!Va)return M();J();return!0}function M(){if(!x())return!1;if(Va)return!0;ra.addClass("active");p("chatLog");Ra.setStyle("display","flex").setStyle("opacity","0.01");setTimeout(E,40);a.Transition.run({node:Ra,duration:C.TABLE_BAR_ANIMATION_DURATION,delay:40,opacity:1,cb:function(){a.KeyboardShortcuts.on("escape",
1453J);Ra.once("clickoutside",J);(window.matchMedia?window.matchMedia("(pointer: coarse)").matches:a.wocg.isTouchDevice())||Ta.focus()}});return Va=!0}function J(){Va&&(ra.removeClass("active"),Ra.detach("clickoutside",J),a.KeyboardShortcuts.detach("escape",J),Ta.blur(),a.Transition.run({node:Ra,duration:C.TABLE_BAR_ANIMATION_DURATION,opacity:0,cb:function(){Ra.setStyle("display","none")}}),Va=!1)}function G(Z,pa,wa){var Ja=a.Escape.html(Ea.censorIfNeeded(pa));Ea.isPlayerMutedByUsername(Z)&&(Ja="");var Za=
1454a.Node.create("<tr>"),Wa=a.Node.create("<button>").addClass("button small red").setContent("Flag");if(a.UA.ios||a.UA.android)Za.on("click",function(cb){cb.target.hasClass("button")||("none"===Wa.getStyle("display")||""===Wa.getStyle("display")?Wa.setStyle("display","block"):Wa.setStyle("display","none"))});Wa.on("click",function(cb){xa.send("table.chat.flag",{text:pa,offender:wa||Z});a.fire("Notice:show",{message:"Comment has been flagged and will be manually reviewed.",type:"success"})});Ra.one("table").append(Za.append(a.Node.create("<td>").addClass("player").setContent(Ea.censorIfNeeded(Z)+
1455":")).append(a.Node.create("<td>").addClass("text").setContent(Ja)).append(Wa));Va&&setTimeout(E,80)}function E(){Qa.set("scrollTop",Qa.get("scrollHeight"))}function L(Z){v("pause",Z);Z&&Z._currentTarget.classList.contains("disabled")?a.fire("Notice:show",{message:"Game can't be paused.",type:"warning"}):("Pause"===a.one("#tableBar").one(".pauseLink span").getContent()&&a.fire("Notice:show",{message:"Game will pause if all players agree. Use Resume to cancel your request.",type:"info"}),a.fire("tableBar:pauseLinkClicked"))}
1456function T(Z){v("game",Z);"click"==Z.type&&(null!==Ga._node.offsetParent?ea():ma())}function ma(Z){Ia&&clearTimeout(Ia);za&&clearTimeout(za);if(w()){Z=document.getElementById("gamesDropup");var pa=document.getElementById("playspace").offsetWidth;if("function"!==typeof getComputedStyle||"undefined"===typeof document)var wa=8;else wa=getComputedStyle(document.documentElement),wa=parseInt(wa.getPropertyValue("--space-item-gap"),10)||8;Object.assign(Z.style,{width:pa-2*wa+"px",bottom:-1*wa+"px",right:"100%",
1457marginRight:wa+"px"})}Ga._node.style.display="block"}function ea(Z){za&&clearTimeout(za);Z&&Z.relatedTarget&&(Z.relatedTarget._node.closest("#tableBar")||Z.relatedTarget._node.closest("#gamesDropup")||Z.relatedTarget._node.closest(".gamesLink"))||(Ia&&clearTimeout(Ia),Ia=setTimeout(()=>{null!==Q._node.offsetParent&&ba();Ga._node.style.display="none"},320))}function ba(Z){v("multiplayer",Z);Z=null!==Q._node.offsetParent?"none":"inline-block";Q._node.style.display=Z;W._node.style.display=Z;aa._node.style.display=
1458Z;oa._node.style.display=Z;Da._node.style.display=Z}function X(Z,pa,wa=!1,Ja){var Za=Z&&Z.players?Z.players.find(Wa=>!0===Wa.you):null;Z&&Z.gameStarted&&!Z.gameOver&&Za&&Za.joinedDate&&(new Date-Za.joinedDate)/1E3>C.MIN_PLAY_TIME_SEC_THAT_COUNTS_FOR_LOSS&&!Z.isSoloGame()||Z&&wa?(wa="Leaving the table will end the game.",Z.ranked?wa="Leaving counts as a forfeit. Your Elo will drop, and you may be temporarily blocked from ranked games.":Z.isSoloGame()||(wa="Leaving a table after 30 seconds of play will lower your reputation and may result in a timeout.\n\nPlayers are matched by reputation. A low score means you won't be matched with good players."),
1459(new a.ModalConfirm("Do you really want to leave?",wa,"No","Yes")).show(function(Wa){window.confirmedLeave=!0;Wa?pa():Ja&&Ja()})):pa()}function I(Z){v("leave_table",Z);Ea.tutorial?(a.wocg.goToUrl("/",{},!1),a.fire("tableBar:leaveTableLinkClicked")):X(Ea,function(){a.wocg.goToUrl("/");a.fire("tableBar:leaveTableLinkClicked")});ea()}function O(Z){v("new_game",Z);var pa={gameid:Ea.gameid,create:!0,solo:!0,tutorial:!1,lobby:!1,command:"findTable"};X(Ea,function(){a.wocg.goToUrl("/");a.fire("tableBar:leaveTableLinkClicked");
1460setTimeout(()=>{a.fire("menu:clicked",pa)},640)});ea()}function fa(Z){v("join_table",Z);if(a.wocg.User.isMultiplayerAllowed()){var pa={gameid:Ea.gameid,solo:!1,tutorial:!1,lobby:!1,command:"findTable"};a.wocg.User.requiresGamePractice(Ea.gameid,pa)?a.fire("Notice:show",{message:a.wocg.User.getGamePracticeRequiredMessage(Ea.gameid),type:"warning"}):(X(Ea,function(){a.wocg.goToUrl("/");a.fire("tableBar:leaveTableLinkClicked");setTimeout(()=>{a.fire("menu:clicked",pa)},640)}),ea())}else Z="You're currently banned from multiplayer games.",
1461a.wocg.User.isFirstGameFinished()?a.wocg.User.isVPN()?Z="Multiplayer is disabled on VPN or proxy connections. Turn off your VPN to play with other people.":a.wocg.User.isBanned()||(Z="The server may be down. Please try again in a few minutes."):Z=a.wocg.User.getGamePracticeRequiredMessage(Ea.gameid),a.fire("Notice:show",{message:Z,type:"warning"})}function ta(Z){v("browse_tables",Z);a.wocg.User.isMultiplayerAllowed()?(a.fire("tableListingsBar:tableListingsClicked",Ea.gameid),ea()):(Z="You're currently banned from multiplayer games.",
1462a.wocg.User.isFirstGameFinished()?a.wocg.User.isVPN()?Z="Multiplayer is disabled on VPN or proxy connections. Turn off your VPN to play with other people.":a.wocg.User.isBanned()||(Z="The server may be down. Please try again in a few minutes."):Z=a.wocg.User.getGamePracticeRequiredMessage(Ea.gameid),a.fire("Notice:show",{message:Z,type:"warning"}))}function ua(Z){v("host_table",Z);a.wocg.User.isMultiplayerAllowed()?((Z=a.wocg.GameSelectors.getGameSelector(Ea.gameid))&&Z.hostTableHandler(),ea()):(Z=
1463"You're currently banned from multiplayer games.",a.wocg.User.isFirstGameFinished()?a.wocg.User.isVPN()?Z="Multiplayer is disabled on VPN or proxy connections. Turn off your VPN to play with other people.":a.wocg.User.isBanned()||(Z="The server may be down. Please try again in a few minutes."):Z=a.wocg.User.getGamePracticeRequiredMessage(Ea.gameid),a.fire("Notice:show",{message:Z,type:"warning"}))}function qa(Z){v("private_table",Z);(Z=a.wocg.GameSelectors.getGameSelector(Ea.gameid))&&Z.joinPrivateTableHandler();
1464ea()}function na(Z){v("ranked_table",Z);var pa=a.wocg.GameSelectors.getGameSelector(Ea.gameid);pa&&pa.playRankedClickHandler(Z);ea()}function b(Z){v("leaderboard",Z);Ea.gameid&&(Z=(""+Ea.gameid).replace(/([A-Z])/g,"-$1").toLowerCase(),"twentynine"==Z&&(Z="twenty-nine"),"pinochledd"==Z&&(Z="double-deck-pinochle"),"threefiveeight"==Z&&(Z="sergeant-major"),"ginrummy"==Z&&(Z="gin-rummy"),"gofish"==Z&&(Z="go-fish"),"handfoot"==Z&&(Z="hand-and-foot"),"crazyeights"==Z&&(Z="crazy-eights"),"oldmaid"==Z&&(Z=
1465"old-maid"),Z="/"+Z+"-leaderboard",a.wocg.isPlatformMobile()?(new a.ModalWebview).show("https://worldofcardgames.com/"+Z+"?text-only=true"):window.open(Z,"_blank"));ea()}function f(Z){v("profile",Z);Ea.tutorial||a.wocg.ProfileBox.usernameClickHandler(Z)}
1465function u(Z){v("hint",Z);Ea&&!Ea.tutorial&&(Ea.showCurrentTurnHint&&Ea.showCurrentTurnHint()||a.fire("Notice:show",{message:"No hint available right now.",type:"info"}))}function l(Z){v("help",Z);a.wocg.FooterBar.gameHelpClickHandler(Z,Ea&&Ea.gameid)}
1466function r(){Ua&&(Ua=!1,d());D()}function D(Z){if(Ba){Z=a.wocg.playspaceGutter();var pa=a.one("#playspace");var wa=a.one("#mainContainer");pa&&pa._node&&wa&&wa._node?(pa=pa._node.getBoundingClientRect(),wa=wa._node.getBoundingClientRect(),wa=0>=pa.width||0>=pa.height?null:{left:pa.left-wa.left,top:pa.top-wa.top,width:pa.width,height:pa.height}):wa=null;pa=wa?wa.left:a.wocg.safeAreaLeft();var Ja=wa?wa.width:a.one(document.body).getWidth(),Za=wa?wa.top:null,Wa=wa?wa.height:null,cb=pa+Ja;if(a.one("#mainContainer .spot-namePlate2")&&
1467a.one("#mainContainer .spot-avatar1")){var db=a.one("#mainContainer .spot-avatar1").getStyleAsNumber("top");Ra.setStyle("height",db+"px")}db=wa;if(Ra&&db){Ra.setStyle("width","");Ra.setStyle("minWidth","");Ra.setStyle("maxWidth","");var Ya=Ra._node,fb=Ya&&window.getComputedStyle?window.getComputedStyle(Ya):null;Ya=fb?(parseFloat(fb.paddingLeft)||0)+(parseFloat(fb.paddingRight)||0):0;fb=fb?parseFloat(fb.minWidth):NaN;var lb=db.left+Z,wb=Math.min(320,Math.floor(db.left+db.width-lb-Z-Ya));db=y(db);null!==
1468db&&db>lb&&(wb=Math.min(wb,Math.floor(db-lb-Z-Ya)));160>wb||(Ra.setStyle("width",wb+"px"),Ra.setStyle("maxWidth",wb+"px"),!isNaN(fb)&&fb>wb&&Ra.setStyle("minWidth",wb+"px"))}k(Ra,wa,Z);k(ya,wa,Z);Qa.setStyle("height",Ra.getContentHeight()+"px");Qa.setStyle("width",Ra.getContentWidth()+"px");w()?wa?U.setStyle("left",Math.floor(cb)+"px").setStyle("top",Math.floor(Za+Z)+"px").setStyle("bottom","auto").setStyle("height",Math.max(0,Math.floor(Wa-Z-Z))+"px"):U.setStyle("left",Math.floor(cb-U.getWidth()-
1469Z)+"px").setStyle("top","auto").setStyle("bottom",a.wocg.safeAreaBottom()+Z+"px").setStyle("height",""):a.wocg.isPlayspaceCompact()&&a.wocg.isPlayspacePortrait()?(wa=a.wocg.isPlayspaceCompact("small")?pa+Z:pa+Ja/2-U.getWidth()/2,U.setStyle("left",Math.floor(wa)+"px").setStyle("top","auto").setStyle("bottom",q(Z)+"px").setStyle("height","")):U.setStyle("left",Math.floor(pa+Ja/2-U.getWidth()/2)+"px").setStyle("top","auto").setStyle("bottom",q(Z)+"px").setStyle("height","")}}function N(Z){if(null!==
1470Ma||"undefined"!==typeof Z)Ma=Z}function P(){var Z=Date.now(),pa=0;0<Ea.gameStartedTime&&(pa=Math.round(.001*(Z-Ea.gameStartedTime)));var wa=Ea.info.elapsedTime;0<wa&&(pa=Math.round(.001*(Z-Ea.gameCreatedTime))+wa);0===pa?Z="–":60>pa?Z="< 1m":3600>pa?Z=Math.round(pa/60)+"m":86400>
1470pa?(Z=Math.floor(pa/3600),pa=Math.round(pa%3600/60),60===pa&&(Z+=1,pa=0),Z+="h",0<pa&&(Z+=" "+pa+"m")):Z="Wow! More than one day!";return Z}function ca(){null!==qb&&(clearInterval(qb),qb=null)}var xa=a.wocg.Comm,Ba=null,
1471U=null,R=null,ia=null,ra=null,ka=null,ha=null,Ca=null,Fa=null,za=null,Ia=null,Ga=null,La=null,Pa=null,Ka=null,Sa=null,Q=null,W=null,aa=null,oa=null,Da=null,Ma=null,ya=null,Ra=null,da=[],Aa=null,Qa=null,Ta=null,Va=!1,Ua=!0,Ea=null,$a=null,qb=null,la="gameName elapsedTime ranked numSeats registeredOnly experiencedOnly noRobots replaceRobots".split(" "),sa={gameName:"Game",elapsedTime:"Elapsed time",ranked:"Ranked",registeredOnly:"Registered only",experiencedOnly:"Experienced only",numSeats:"Number of players",
1472allowFirstTurnHearts:"Allow first turn Hearts",standardRulesHearts:"Tournament rules",noRobots:"Bots allowed",replaceRobots:"Players replace bots",noBagPenaltySpades:"Bag penalty",seventhCardTwentynine:"Seventh card",redoubleTwentynine:"Double-redouble",bidderOut:"Bidder out",euchreSTD:"Stick the dealer",privateTable:"Private table",privateTableName:"Table name",tableNumber:"Table number",inviteLink:"Invite friends"};a.wocg.TableBar={getHelpBox:function(Z){return a.one(".helpBox."+Z)},themeChangedHandler:r,
1473showTableBar:n,hideTableBar:h,resize:D,isSideLayout:w,chatLogClickHandler:A,showChatLog:M,hideChatLog:J,leaveWarning:X,isChatLogVisible:function(){return Va},isChatLogAvailable:x,chatLogInput:function(){return Ta}};a.on("domready",function(){Ba=a.one("#tableBar");Ga=a.one("#gamesDropup");U=a.one("#tableBarContainer");if(Ba&&U){ka=Ba.one(".tableInfoLink");ka.on("click",t);ra=Ba.one(".chatLogLink");ra.on("click",A);if(R=Ba.one(".pauseLink"))R.on("click",L);ia=Ba.one(".gamesLink");if(Ga)if(a.UA.ios||
1474a.UA.android)ia.on("click",T);else ia.on("mouseenter",Ja=>{za=setTimeout(()=>{ma(Ja)},320)}),Ba.on("mouseleave",ea),ia.on("mouseleave",ea),Ga.on("mouseleave",ea),Ga.on("mouseenter",ma);else ia.on("click",I);Ga&&(La=Ga.one(".leaveTableDropdownLink"),La.on("click",I),Pa=Ga.one(".newGameDropdownLink"),Pa.on("click",O),Ka=Ga.one(".joinTableDropdownLink"),Ka.on("click",fa),Sa=Ga.one(".multiplayerDropdownLink"),Sa.on("click",ba),Q=Ga.one(".browseTablesDropdownLink"),Q.on("click",ta),W=Ga.one(".hostTableDropdownLink"),
1475W.on("click",ua),aa=Ga.one(".joinPrivateTableDropdownLink"),aa.on("click",qa),oa=Ga.one(".joinRankedTableDropdownLink"),oa.on("click",na),Da=Ga.one(".leaderboardDropdownLink"),Da.on("click",b));ha=Ba.one(".profileLink");ha.on("click",f);Ca=Ba.one(".hintLink");Ca.on("click",u);Fa=Ba.one(".helpLink");Fa.on("click",l);Ra=a.Node.create("<div>").set("id","chatLog");Aa=a.Node.create("<div>").addClass("chatLogContainer");Qa=a.Node.create("<div>").set("id","chatLogContent").addClass("selectable").append(a.Node.create("<table>"));
1476var Z=a.Node.create("<div>").addClass("chatLogInputArea");Ta=a.Node.create("<textarea>").set("id","chatLogInput").set("placeholder","Write a message").setAttribute("maxlength",C.MAX_CHAT_LENGTH).setAttribute("rows","1").setAttribute("enterkeyhint","send").setAttribute("autocapitalize","sentences").setAttribute("autocorrect","off").setAttribute("autocomplete","off");var pa=Ta.getDOMNode();pa.addEventListener("input",function(){this.style.height="auto";this.style.height=Math.max(32,Math.min(this.scrollHeight,
147770))+"px"});Ta.on("keydown",function(Ja){13!==Ja.keyCode||Ja.shiftKey||(Ja.preventDefault(),Ea&&pa.value.trim()&&Ea.chatFormSubmitHandler())});var wa=a.Node.create("<button>").addClass("chatLogSendBtn").setHTML('<svg width="24" height="24" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M17.6477927,5.11362737 L5.12850445,9.81862736 C4.49039377,10.0587094 4.0509719,10.6493903 4.00413289,11.3300334 C3.95729389,12.0106764 4.31165435,12.656069 4.9108534,12.9814329 L7.8186714,14.5323403 C8.49392522,14.8976232 9.32853299,14.7772876 9.87329729,14.2360996 L12.5982884,11.5089422 C12.8555604,11.269023 13.2564736,11.2761023 13.5051287,11.524955 C13.7537838,11.7738078 13.7608574,12.1750397 13.5211288,12.4325162 L10.7787256,15.1596737 C10.2462118,15.7018935 10.126414,16.5270396 10.4827202,17.198507 L12.0323957,20.0912107 C12.3575012,20.6908861 13.0023811,21.0455282 13.6824835,20.998652 C14.3625858,20.9517758 14.9527976,20.5120046 15.1926889,19.8733866 L19.8939515,7.34414588 C20.1276478,6.70486098 19.9679914,5.98791357 19.4851609,5.50844515 C19.0023305,5.02897674 18.2847318,4.87477754 17.6477927,5.11362737 Z"/></svg>').set("disabled",
1478!0);wa.on("click",function(Ja){Ja.stopPropagation();Ea&&Ea.chatFormSubmitHandler()});pa.addEventListener("input",function(){this.value.trim()?wa.set("disabled",!1):wa.set("disabled",!0)});Z.append(Ta);Z.append(wa);Aa.append(Qa);Aa.append(Z);Ra.append(Aa);
1478a.one("#mainContainer").append(Ra);a.wocg.isSourceArkadium()&&window.arkadium&&(window.arkadium.lifecycle.registerEventCallback(window.arkadium.lifecycle.LifecycleEvent.GAME_PAUSE,()=>{"Pause"===a.one("#tableBar").one(".pauseLink span").getContent()&&
1479this.pauseLinkClickHandler()}),window.arkadium.lifecycle.registerEventCallback(window.arkadium.lifecycle.LifecycleEvent.GAME_RESUME,()=>{"Resume"===a.one("#tableBar").one(".pauseLink span").getContent()&&this.pauseLinkClickHandler()}));D()}});a.on("table:created",function(Z){var pa=!Ea||Ea.gameid!==Z.gameid;Ea=Z;Ea.tutorial?(pa=!1,da=[],ka.removeClass("visible"),ra.removeClass("visible")):(ka.addClass("visible"),Ea.isSingleplayerGame()||ra.addClass("visible"),da=base.clone(Ea.chatLog,!0),$a&&N($a[Ea.gameid]),
1480Ea.info&&H(),m());if(pa&&Z.gameid){var wa=new XMLHttpRequest;wa.onreadystatechange=function(){if(4===wa.readyState&&200===wa.status){var Ja=(new DOMParser).parseFromString(wa.responseText,"text/html"),Za=a.one(".content");Ja=Ja.querySelector(".content");Za&&Ja?(Za.setHTML(Ja.innerHTML),a.wocg.GameRating&&a.wocg.GameRating.refreshPageBlocks&&a.wocg.GameRating.refreshPageBlocks()):console.error('No element with class "content" found')}};wa.onerror=function(){console.error("Error:",wa.statusText)};wa.open("GET",
1481`${a.wocg.URL}/${a.wocg.gameIDToPath(Z.gameid)}`,!0);wa.send()}qb||(qb=setInterval(F,6E4));setTimeout(n,C.TABLE_BAR_ANIMATION_DELAY)});a.on("comm:table.player.say",function(Z){if(Z.chat){var pa=Ea.getPlayerName(Z.player),wa=Ea.players[Z.player]&&Ea.players[Z.player].username||"";da.push({username:pa,text:Z.text,rawUsername:wa});G(pa,Z.text,wa)}});a.on("window:resized",D);a.on("theme:changed",r);a.on("tableInfo:changed",function(){Ua&&(Ua=!1,d());ya&&e();D()});a.on("comm:gameSelectors.show",function(Z){U&&
1482(Z=a.wocg.hasActiveGame()?320:0,setTimeout(function(){if(!(a.wocg.Table.isFindingTable()||null!==a.wocg.Table.getCurrentTable()&&!a.wocg.Table.getCurrentTable().tableLeaveSent&&0<a.wocg.Table.getCurrentTable().gameCreatedTime)){a.getAll("#menuBar a").forEach(function(wa){wa.removeClass("active")});if(Ea){var pa=new XMLHttpRequest;pa.onreadystatechange=function(){if(4===pa.readyState&&200===pa.status){var wa=(new DOMParser).parseFromString(pa.responseText,"text/html"),Ja=a.one(".content");wa=wa.querySelector(".content");
1483Ja&&wa?(Ja.setHTML(wa.innerHTML),a.wocg.GameRating&&a.wocg.GameRating.refreshPageBlocks&&a.wocg.GameRating.refreshPageBlocks()):console.error('No element with class "content" found')}};pa.onerror=function(){console.error("Error:",pa.statusText)};pa.open("GET",`${a.wocg.URL}/`,!0);pa.send()}h()}},Z))});a.on("comm:stats.playerCounts",function(Z){$a=Z;Ea&&N(Z[Ea.gameid])});a.on("comm:table.game.started",function(){qb||(qb=setInterval(F,6E4))});C.GAMEIDS.forEach(function(Z){a.on("comm:table."+Z+".gameOver",
1484ca)})},"1.0",{requires:["wocg","wocg.Table"]});
1485YUI.add("wocg.FooterBar",function(a){function q(X){var I=a.Node.create("<dl>");X.forEach(function(O){var fa=a.Node.create("<dt>").setContent(O.question);O=a.Node.create("<dd>").setContent(O.answer,!0);I.append(fa);I.append(O)});return I.get("outerHTML")}function w(){if(window.crypto&&window.crypto.getRandomValues&&"function"===typeof Uint8Array){var X=new Uint8Array(6);window.crypto.getRandomValues(X);return Array.prototype.map.call(X,function(I){return("0"+I.toString(16)).slice(-2)}).join("")}for(X=
1486"";12>X.length;)X+=Math.floor(16777216*Math.random()).toString(16);return X.slice(0,12)}function k(){function X(){const u=[],l=(r,D)=>{try{const N=D();void 0!==N&&null!==N&&""!==N&&u.push(`${r}: ${N}`)}catch(N){}};l("Platform",()=>`${window.electronAPI?"electron":window.ReactNativeWebView?"mobile-app":a.wocg.isSourceArkadium&&a.wocg.isSourceArkadium()?"arkadium":"web"} / ${a.wocg.deviceType()} / ${a.wocg.deviceOS()}`);l("UA",()=>String(navigator.userAgent||"").slice(0,140));l("Viewport",()=>`${window.innerWidth}x${window.innerHeight} @${window.devicePixelRatio||
14871}x ${window.innerWidth>=window.innerHeight?"landscape":"portrait"}`);l("URL",()=>String(window.location.href).slice(0,160));l("Account",()=>`${a.wocg.User.isRegistered()?"registered":"guest"}, supporter level ${a.wocg.User.getSiteSupporterLevel()}`);
1487l("Games finished",()=>a.wocg.User.getFinishedGames());l("Access",()=>`vpn=${a.wocg.User.isVPN()?1:0} banned=${a.wocg.User.isBanned()?1:0} multiplayer=${a.wocg.User.isMultiplayerAllowed()?1:0}`);l("Session",()=>`${Math.round((Date.now()-base.STARTUP_TIME)/
14881E3)}s${"number"===typeof window.averageFPS?`, avg fps ${Math.round(window.averageFPS)}`:""}`);l("Storage",()=>{const r=a.wocg.getStorageContext();return`quotaMB=${r.storageQuotaMB} persisted=${r.storagePersisted} cookies=${r.cookieWritable?1:0} ls=${r.lsWritable?1:0}`});l("Socket",()=>`connected=${a.wocg.Comm.isConnectionEstablished()?1:0} transport=${a.wocg.Comm.getSocketProtocol()||"?"}`);l("Table",()=>{if(!ua)return"";const r=ua.extraGameOptions&&Object.keys(ua.extraGameOptions).length?` options=${JSON.stringify(ua.extraGameOptions)}`:
1489"";return`ranked=${ua.ranked?1:0} players=${ua.numPlayers||"?"}${ua.info&&ua.info.privateTable?" private=1":""}${r}`});l("Recent errors",()=>{const r=a.wocg.getConsoleLogs?a.wocg.getConsoleLogs():[];return r.length?r.slice(-2).map(D=>String(D&&D.message?D.message:D).replace(/\s+/g," ").slice(0,120)).join(" | "):""});return u.join("\r\n")}let I=a.wocg.activeGameID();const O=`${""===I?"World of Card Games":I.charAt(0).toUpperCase()+I.slice(1)} feedback`,fa=a.wocg.User.getUsername(),ta=a.wocg.User.getAddressId(),
1490ua=a.wocg.Table.getCurrentTable(),qa=ua?.tableid,na=ua?.game?.state;var b=null;if(na&&qa&&a.wocg.Comm&&(!a.wocg.Comm.isConnectionEstablished||a.wocg.Comm.isConnectionEstablished())){b=w();try{var f=Object.assign({},na,{consoleLogs:a.wocg.getConsoleLogs?a.wocg.getConsoleLogs():[]});a.wocg.Comm.send("table.saveDebugState",{state:f,debugId:b})}catch(u){console.error("Error sending debug state:",u),b=null}}(function(u){let l;l="\r\n\r\n------\r\n\r\nWhen reporting a bug, please describe the bug as clearly as possible and include a screenshot if you can.\r\n\r\n"+
1491`Username: ${fa}\r\nAddress ID: ${ta}\r\n`;I&&(l+=`Active Game: ${I}\r\n`);qa&&(l+=`Table ID: ${qa}\r\n`);u&&(l+=`Debug ID: ${u}\r\n`);try{const r=X().slice(0,900);r&&(l+=`\r\n${r}`)}catch(r){}try{const r=JSON.parse(localStorage.getItem("wocgRedirectIncidents")||"[]");if(Array.isArray(r)&&r.length){const D=r.slice(-3).reverse().map(N=>`${(new Date(N.t)).toISOString()}${N.conf?" (returned)":""}`).join(", ");l+=`\r\nAd redirect flags (see OpenPanel MidGameExitReturned): ${D}`.slice(0,220)}}catch(r){}window.location.href=
1492`mailto:[email protected]?subject=${encodeURIComponent(O)}&body=${encodeURIComponent(l)}`;a.fire("Notice:show",{message:"Opening your email app. If nothing happens, email [email protected].",type:"info"})})(b)}function x(X){X.preventDefault();X.currentTarget.hasClass("mailToLink")?k():a.wocg.shouldHideSubscriptionLinks&&a.wocg.shouldHideSubscriptionLinks()||(X.currentTarget.hasClass("manageSubscriptionLink")&&a.wocg.ProfileBox&&a.wocg.ProfileBox.openBillingPortal?a.wocg.ProfileBox.openBillingPortal():
1493X.currentTarget.hasClass("cancelSubscriptionLink")&&a.wocg.ProfileBox&&a.wocg.ProfileBox.openBillingPortal&&a.wocg.ProfileBox.openBillingPortal("cancel"))}function y(X,I){M&&(M.setHTML('<div class="gameHelpContent">'+ma+'<div class="gameHelpRules">'+I+"</div></div>"),d())}function v(X){var I=C.GAME_DIRS[X];y(X,'<p class="skipColoringSuits">Could not load rules.'+(I?' <a target="_blank" href="/how-to-play-'+I+'">Open rules</a>.':"")+"</p>")}function d(){var X=M&&M.one(".gameHelpRules");X&&X.getAll("p").concat(X.getAll("li")).forEach(function(I){var O=
1494I.get("innerHTML");I.hasClass("skipColoringSuits")||(O=a.wocg.colorizeSuitSymbols(O));I.set("innerHTML",O)})}function n(X){var I=C.GAME_DIRS[X];if(!I)return v(X);if(ea[X])y(X,ea[X]);else{y(X,'<p class="skipColoringSuits">Loading rules...</p>');var O=new XMLHttpRequest;O.onreadystatechange=function(){if(4===O.readyState&&ba===X)if(200===O.status){var fa=O.responseText;(fa=(fa=(new DOMParser).parseFromString(fa,"text/html").querySelector('.gameRulesFragment[data-gameid="'+X+'"]'))?fa.innerHTML:"")?
1495(ea[X]=fa,y(X,fa)):v(X)}else v(X)};O.onerror=function(){ba===X&&v(X)};O.open("GET",a.wocg.URL+"/"+I+"-rules.html",!0);O.send()}}function m(X){a.wocg.ProfileBox.usernameClickHandler(X)}function H(X){F&&(M&&(ba="",M.setHTML(T)),A?e():c())}function c(){F&&!A&&(a.Transition.cancel(F),F.removeClass("modalClosing"),F.setStyle("opacity",0),F.setStyle("display","flex"),setTimeout(function(){a.Transition.run({node:F,duration:220,opacity:1,cb:function(){a.KeyboardShortcuts.on("escape",e);F.once("clickoutside",
1496e)}})},0),A=!0,h())}function e(X){F&&A&&(F.detach("clickoutside",e),a.KeyboardShortcuts.detach("escape",e),a.Transition.cancel(F),F.addClass("modalClosing"),a.Transition.run({node:F,duration:160,opacity:0,cb:function(){A||(F.setStyle("display","none"),F.removeClass("modalClosing"))}}),A=!1)}function h(){if(p){var X=a.AdWidget.isAdRemoved()||a.wocg.showMobileBannerAd()?0:a.wocg.getAdWidth(),I=t,O=I.setStyle;if("function"!==typeof getComputedStyle||"undefined"===typeof document)var fa=a.wocg.isMobile()?
14978:16;else fa=getComputedStyle(document.documentElement),fa=parseInt(fa.getPropertyValue("--space-viewport-gutter"),10)||(a.wocg.isMobile()?8:16);O.call(I,"right",X+fa+"px")}}var p=null,t=null,B=null,F=null,S=null,A=!1,M=null,J=null,G=null,E=null,L=!0,T="",ma="",ea={},ba="";a.wocg.FooterBar={hideFooterBar:function(){p&&p.hide()},showFooterBar:function(){p&&p.show()},faqLinkClickHandler:H,gameHelpClickHandler:function(X,I){if(F){if(!I)return H(X);if(A&&ba===I)return e();ba=I;A||c();n(I)}},mailTo:k};
1498a.on("domready",function(){p=a.one("#footerBar");t=a.one("#footerBarContainer");B=a.one("#footerIconContainer");var X=a.wocg.shouldHideSubscriptionLinks&&a.wocg.shouldHideSubscriptionLinks();a.all(".mailToLink").on("click",function(O){O.preventDefault();k()});a.all(".manageSubscriptionLink").on("click",function(O){X?O.preventDefault():a.wocg.ProfileBox&&a.wocg.ProfileBox.openBillingPortal&&(O.preventDefault(),a.wocg.ProfileBox.openBillingPortal()
1498)});a.all(".cancelSubscriptionLink").on("click",function(O){X?
1499O.preventDefault():a.wocg.ProfileBox&&a.wocg.ProfileBox.openBillingPortal&&(O.preventDefault(),a.wocg.ProfileBox.openBillingPortal("cancel"))});if(p&&t&&B){F=a.Node.create("<div>").set("id","faqBox");S=a.Node.create("<div>").addClass("background");M=a.Node.create("<div>").addClass("content");ma='<div class="button-container"><a class="button lightblue mailToLink" href="#">Report bug</a></div>';if(!X){var I=a.wocg.IS_DEV?"test_9AQ3dx6377jA3165kk":"fZe00P1nU6UIdTGfYY";ma=`<div class="button-container"><a class="button lightblue mailToLink" href="#">Report bug</a><a class="button lightblue subscription manageSubscriptionLink" target="_blank" href="https://billing.stripe.com/p/login/${I}">Manage subscription</a><a class="button lightred cancelSubscriptionLink" target="_blank" href="https://billing.stripe.com/p/login/${I}">Cancel subscription</a></div>`}I=
1500[{question:"",answer:ma},{question:"How do I change a game's options?",answer:"Click the <strong>Options</strong> icon in the top right corner of the game image on the frontpage."},{question:"How do I find a table?",answer:"Click <strong>Tables</strong> from the top right menu, browse the list of tables and click <strong>Join table</strong> to join a table."},{question:"How do I play against the computer?",answer:"Either click a game from the top menu or click <strong>Play bots</strong> under <strong>Practice</strong> in the game menu."},
1501{question:"How can I play with friends?",answer:"Click <strong>Host table</strong> under <strong>Tables</strong> in the game menu and choose a name for your table. Once you've told your friends the name of your table, they can join by clicking <strong>Join private table</strong> under <strong>Tables</strong> in the game menu."},{question:"How can I forbid robots at my table?",answer:"Click the <strong>Options</strong> icon and set <strong>Bots</strong> to <strong>No</strong>. You will now be seated at a table where robots cannot be invited. Be aware that it may take longer for the table to fill up with this setting."},
1502{question:"Why should I register?",answer:"Registering allows you to pick your own username. All your settings and statistics are tied to this account and thus you can play from different computers. As a registered user, your stats are never cleared. Registered users have extra privileges, like being able to play ranked games."},{question:"How do I chat?",answer:"Click on the <strong>Chat</strong> icon in the bottom menu, and a small text area will open up. Start typing, and see your words appear in the text area. Hit the <strong>Enter</strong> key, and your words appear on the screen."},
1503{question:"Someone is being rude, what can I do?",answer:"If you hover over a user in a game you'll find a <strong>Block</strong> button. Clicking this button records the fact that you dislike this player, and you will not be seated with them again. You can also click <strong>Mute</strong> to stop hearing their messages."},{question:"What can I do if I accidentally blocked or muted someone?",answer:"Click <strong>Settings</strong> in the top right corner or the <strong>Profile</strong> icon in the bottom menu. There you'll see a <strong>Manage blocked players</strong> area with a list of blocked players. Click on the <strong>Remove</strong> link to undo the block, so you will be able to play with this person once again. The same goes for muted players."},
1504{question:"I have another question. Who can I contact?",answer:'You can e-mail me, the owner of World of Card Games, your question directly at <a class="mailToLink" href="#">[email protected]</a>. I personally respond to every e-mail I get.'}];a.wocg.isSourceArkadium()&&(I.shift(),I.pop());T=q(I);M.setHTML(T);M.delegate("click",x,".mailToLink, .manageSubscriptionLink, .cancelSubscriptionLink");F.append(S.append(M));a.one("body").append(F);S.on("click",function(O){O.target&&O.target._node&&
1505O.target._node.classList&&O.target._node.classList.contains("background")&&e()});J=p.one(".findTables");G=p.one(".helpLink");E=p.one(".leaderboardLink");p.one(".faqLink").on("click",H);p.one(".settings").on("click",m);B.on("click",function(){t.hasClass("visible")?(t.removeClass("visible"),a.one("#footerIconContainer img").set("src",a.wocg.buildAssetImageURL("images/menuQuestion.png"))):(t.addClass("visible"),a.one("#footerIconContainer img").set("src",a.wocg.buildAssetImageURL("images/menuClose.png")))});
1506h()}});a.on("table:created",function(X){if(t){t.setStyle("display","none");J.addClass("disabled");var I=(""+X.gameid).replace(/([A-Z])/g,"-$1").toLowerCase();"pinochledd"==I&&(I="double-deck-pinochle");"twentynine"==I&&(I="twenty-nine");"threefiveeight"==I&&(I="sergeant-major");"ginrummy"==I&&(I="gin-rummy");"gofish"==I&&(I="go-fish");"handfoot"==I&&(I="hand-and-foot");"crazyeights"==I&&(I="crazy-eights");"oldmaid"==I&&(I="old-maid");X.gameid?(E.one("a").setAttribute("href","/"+I+"-leaderboard"),
1507E.removeClass("disabled")):E.addClass("disabled");if(X.tutorial)G.on("click",function(O){O.preventDefault();document.querySelector(".helpBox").scrollIntoView({behavior:"smooth"})});else I=a.Node.create("<a>").setAttribute("target","_blank").setAttribute("href","/how-to-play-"+I).setContent("Rules"),G.empty(),G.append(I);G.removeClass("disabled");X.tutorial&&p.one(".settings")&&p.one(".settings").remove()}});a.on("ad:removed",h);a.on("window:resized",h);a.on("theme:changed",function(){p&&L&&(L=!1,
1508h())});a.on("comm:gameSelectors.show",function(){if(t){var X=a.wocg.hasActiveGame()?320:0;setTimeout(function(){a.wocg.Table.isFindingTable()||null!==a.wocg.Table.getCurrentTable()&&!a.wocg.Table.getCurrentTable().tableLeaveSent&&0<a.wocg.Table.getCurrentTable().gameCreatedTime||(t.setStyle("display","block"),E.addClass("disabled"),G.addClass("disabled"),J.removeClass("disabled"))},X)}});a.on("gameSelectors.hide",function(){})},"1.0",{requires:["wocg","KeyboardShortcuts","Transition","wocg.ProfileBox"]});
1509YUI.add("wocg.ProfileBox",function(a){function q(la,sa=!0){var Z=la.target.ancestor(".option",!0).getData("menuid");"userOptions"!=Z&&(qa(sa),"stats"==Z?a.wocg.StatsBox.showStatsBox(!1):a.wocg.MenuBar.optionsMenuBarMouseDownHandler(la,sa))}function w(){if(D&&(za||(za=D.one("#legalPrivacy .legalLinks")),za)){Ia||(Ia=a.one(".footerRaptive"));Ga||(za.delegate("click",function(Wa){Wa.preventDefault();Ia&&(Wa=za.all("a, button").indexOf(Wa.currentTarget),0>Wa||(Wa=Ia.all("a, button").item(Wa))&&Wa.getDOMNode()&&
1510Wa.getDOMNode().click())},"a, button"),Ga=!0);var la=D.one(".sectionHeader.legalPrivacy"),sa=D.one("#legalPrivacy"),Z=Ia?(Ia.getHTML()||"").trim():"",pa=Ia?Ia.all("a, button"):null,wa=Ia?Ia.one(".adthrive-footer-message > span"):null;wa=wa?(wa.get("text")||"").trim():"";var Ja=a.Node.create("<ul>").addClass("options").addClass("legalPrivacyOptions").setStyles({listStyle:"none",lineHeight:"var(--line-height-md)",margin:0,padding:0}),Za=!1;Z&&pa?(pa.each(function(Wa){var cb=(Wa.get("text")||"").trim();
1511if(cb){var db=a.Node.create("<li>").setStyle("lineHeight","var(--line-height-md)"),Ya=a.Node.create("<a>").setAttribute("href",Wa.getAttribute("href")||"#").setStyles({color:"var(--color-text-primary)",fontSize:"var(--font-size-md)",lineHeight:"var(--line-height-md)",textDecoration:"underline"});["aria-haspopup","aria-controls","aria-expanded"].forEach(function(fb){var lb=Wa.getAttribute(fb);lb&&Ya.setAttribute(fb,lb)});Ya.append(document.createTextNode(cb));db.append(Ya);Ja.append(db);Za=!0}}),Za?
1512(za.setHTML(""),za.append(Ja),(Z=la?la.one("span"):null)&&Z.setContent(wa||"Legal & privacy"),la&&la.setStyle("display","block"),sa&&sa.setStyle("display","block")):(za.setHTML(""),la&&la.setStyle("display","none"),sa&&sa.setStyle("display","none"))):(za.setHTML(""),la&&la.setStyle("display","none"),sa&&sa.setStyle("display","none"))}}function k(){if(Fa)if(a.wocg.shouldHideSubscriptionLinks&&a.wocg.shouldHideSubscriptionLinks())Fa.setStyle("display","none");else{var la=Fa.one(".subscriptionCancelLink"),
1513sa=Fa.one(".subscriptionManageLink"),Z=Fa.one(".startTrialLink"),pa=Fa.one(".checkbox-label"),wa=a.wocg.User.isRegistered()&&0<a.wocg.User.getSiteSupporterLevel();la&&sa&&Z&&(Fa.setStyle("display","block"),la.setContent("Cancel"),sa.setContent("Manage"),Z.setStyle("display",wa?"none":"inline-block"),wa&&pa?(a.CustomTooltip.detachOnHover(pa),a.CustomTooltip.showOnHover(pa,"Update or cancel your subscription")):pa&&(a.CustomTooltip.detachOnHover(pa),a.CustomTooltip.showOnHover(pa,"Manage an existing subscription or start a free trial")))}}
1514function x(la){if(!a.wocg.shouldHideSubscriptionLinks||!a.wocg.shouldHideSubscriptionLinks())if(a.wocg.User.isRegistered()&&("cancel"===la||0<a.wocg.User.getSiteSupporterLevel())){var sa={};"cancel"===la&&(sa.flow="cancel");a.wocg.Comm.send("user.getBillingPortalUrl",sa)}else window.open("https://billing.stripe.com/p/login/"+qb,"_blank")}function y(){a.wocg.shouldHideSubscriptionLinks&&a.wocg.shouldHideSubscriptionLinks()||(a.wocg.User.isRegistered()?a.AdWidget&&"function"===typeof a.AdWidget.showSubscriptionPricing?
1515a.AdWidget.showSubscriptionPricing({onConfirmed:function(){qa()}}):a.fire("Notice:show",{message:"Could not load subscription page. Please try again.",type:"error"}):(new a.ModalConfirm("Subscription","You need to be logged in to subscribe. Please log in or create an account first.","","OK","blue")).show())}function v(){if(D){var la=a.Node.create("<ul>").addClass("options"),sa=a.wocg.Theme.getCurrentThemeConfig(),Z={dimensions:sa.checkboxDimensions,imagePath:"images/checkbox/"+sa.id+"/",imageBuilder:a.wocg.buildAssetImageURL};
1516C.USER_OPTIONS.forEach(function(Ya){if(!(Ma.contains(Ya.id)&&!a.wocg.IS_DEV||"legacyAvatars"===Ya.id&&a.wocg.isSourceArkadium()||0===Ya.id.indexOf("hide")||0===Ya.id.indexOf("norank")||"muteSound"===Ya.id||"disableAnimations"===Ya.id)){var fb=a.Node.create("<li>"),lb=a.Node.create("<div>").addClass("checkbox-wrapper"),wb=a.Node.create("<span>").addClass("checkbox-label");wb.append(document.createTextNode(Ya.name));if(Ya.radio){var Wb=a.Node.create("<div>").addClass("radios").addClass(Ya.id),Db={dimensions:sa.radioDimensions,
1517imagePath:"images/radio/"+sa.id+"/",imageBuilder:a.wocg.buildAssetImageURL},cc={};Ya.radio.forEach(function(xb){var yb=String(xb.value);cc[yb]=(xb.label||""+xb.value)+" ";Wb.append(a.Node.create("<span>").addClass("mode"+yb))});Db=new a.Radio(Ya.id,cc,Db);R[Ya.id]=Db;Db.addValueChangeHandler(function(xb,yb){xb=Ya.id;var oc=yb;"number"===typeof Ya["default"]&&(oc=+yb);a.wocg.Options&&a.wocg.Options.setOption&&a.wocg.Options.setOption(xb,oc);"soundEffectsMode"===xb&&a.wocg.User&&a.wocg.User.setSoundEffectsMode&&
1518a.wocg.User.setSoundEffectsMode(+yb);"avatarEmotionsMode"===xb&&a.wocg.User&&a.wocg.User.setAvatarEmotionsMode&&a.wocg.User.setAvatarEmotionsMode(+yb);"animationsMode"===xb&&a.wocg.User&&a.wocg.User.setAnimationsMode&&a.wocg.User.setAnimationsMode(+yb);"gamePromptsMode"===xb&&a.wocg.User&&a.wocg.User.setGamePromptsMode&&a.wocg.User.setGamePromptsMode(+yb);"gameHintsMode"===xb&&a.wocg.User&&a.wocg.User.setGameHintsMode&&a.wocg.User.setGameHintsMode(+yb)});Object.forEach(Db.nodeMap,function(xb,yb){Wb.one(".mode"+
1519xb).append(yb)});lb.append(wb);lb.append(Wb)}else Db=new a.Checkbox(Ya.id,!0,"",Z),Db.addValueChangeHandler(t),Db.node.addClass("item"),Db.node.addClass("checkbox-visual"),U[Ya.id]=Db,lb.append(wb),lb.append(Db.node);fb.append(lb);Ya.tooltip&&a.CustomTooltip.showOnHover(wb,Ya.tooltip);la.append(fb)}});if(!a.wocg.shouldHideSubscriptionLinks||!a.wocg.shouldHideSubscriptionLinks()){Fa=a.Node.create("<li>").setStyle("display","none");var pa=a.Node.create("<div>").addClass("checkbox-wrapper"),wa=a.Node.create("<span>").addClass("checkbox-label");
1520wa.append(document.createTextNode("Subscription"));a.CustomTooltip.showOnHover(wa,"Manage an existing subscription or start a free trial");var Ja=a.Node.create("<span>").addClass("subscriptionActions"),Za=a.Node.create("<button>").addClass("linkButton").addClass("cancelLink").addClass("subscriptionCancelLink").setContent("Cancel"),Wa=a.Node.create("<button>").addClass("linkButton").addClass("manageLink").addClass("subscriptionManageLink").setContent("Manage"),cb=a.Node.create("<button>").addClass("linkButton").addClass("manageLink").addClass("startTrialLink").setContent("Start trial");
1521Za.on("click",function(Ya){Ya.preventDefault();x("cancel")});Wa.on("click",function(Ya){Ya.preventDefault();x()});cb.on("click",function(Ya){Ya.preventDefault();y()});Ja.append(Za);Ja.append(Wa);Ja.append(cb);pa.append(wa);pa.append(Ja);Fa.append(pa);la.append(Fa)}pa=D.one(".sectionHeader.changePassword");P.insertBefore(la,pa);wa=a.Node.create("<div>").addClass("sectionHeader").addClass("people").setContent("People");Ja=a.Node.create("<ul>").addClass("options").addClass("peopleOptions");d(Ja,"like",
1522"Liked players","Manage players you have liked");d(Ja,"dislike","Blocked players","Manage players you have blocked");d(Ja,"unmute","Muted players","Manage players you have muted");P.insertBefore(wa,pa);P.insertBefore(Ja,pa);if(!a.wocg.isSourceArkadium()){wa=a.Node.create("<div>").addClass("sectionHeader").addClass("leaderboardParticipation");wa.append(a.Node.create("<span>").setContent("Leaderboard participation"));Ja=a.Node.create("<a>").addClass("button").addClass("lightblue").addClass("leaderboardsLink").setAttribute("href",
1523"/leaderboards").setAttribute("target","_blank").setContent("Leaderboards");a.wocg.isPlatformMobile()&&(Ja.removeAttribute("target"),Ja.on("click",function(Ya){Ya.preventDefault();(new a.ModalWebview).show("https://worldofcardgames.com/leaderboards?text-only=true")}));wa.append(Ja);Ja=a.Node.create("<ul>").addClass("options").addClass("leaderboardOptions");var db=a.Node.create("<li>");
1523Object.keys(C.RANKED).forEach(function(Ya){var fb=new a.Checkbox("norank_"+Ya,!0,C.GAME_NAMES[Ya],Z);fb.node.addClass("item");
1524U["norank_"+Ya]=fb;F(fb);fb.addValueChangeHandler(t);a.CustomTooltip.showOnHover(fb.node,function(){var lb=C.GAME_NAMES[Ya];lb=fb&&fb.disabled?a.wocg.User.isAllowedRanked(Ya)?"Leave ranked table to change.":"Locked for this game.":"Compete in ranked "+lb;return lb},!1);db.append(fb.node)});Ja.append(db);P.insertBefore(wa,pa);P.insertBefore(Ja,pa)}xa&&G(xa)}}function d(la,sa,Z,pa){var wa=a.Node.create("<li>"),Ja=a.Node.create("<div>").addClass("checkbox-wrapper"),Za=a.Node.create("<span>").addClass("checkbox-label");
1525Za.append(document.createTextNode(Z));pa&&a.CustomTooltip.showOnHover(Za,pa);Z=a.Node.create("<button>").addClass("linkButton").addClass("manageLink").setContent("Manage");Pa[sa]=Z;Z.on("click",function(Wa){Wa.preventDefault();La=sa;Ka||e();oa||(N&&a.KeyboardShortcuts.detach("escape",qa),oa=h,a.KeyboardShortcuts.on("escape",oa),a.on("window:resized",p),a.ModalScrollLock&&a.ModalScrollLock.lock&&a.ModalScrollLock.lock());Ka.removeClass("modalClosing");Ka.setStyle("display","block");Ka.setStyle("opacity",
15260);p();a.Transition.run({node:Ka,duration:220,opacity:1});L(sa);X(sa);n(sa,!0);c(sa);a.wocg.Comm.send("player.ratings.get",{})});Ja.append(Za);Ja.append(Z);wa.append(Ja);la.append(wa)}function n(la,sa){(la=Pa[la])&&(sa?la.setAttribute("disabled","disabled"):la.removeAttribute("disabled"))}function m(){ya.forEach(function(la){n(la,!1)})}function H(){Da&&(clearTimeout(Da),Da=null)}function c(la){H();Da=setTimeout(function(){Da=null;m();if(La===la){L(la);var sa=f(la);sa&&sa.get("childNodes").remove();
1527if(sa=u(la))sa.setHTML("Could not load players. Please try again."),sa.setStyle("display","block");ea(la);a.fire("Notice:show",{message:"Could not load players. Please try again.",type:"error"})}},4E3)}function e(){Ka=a.Node.create("<div>").set("id","ModalManagePlayerRatings").setStyle("display","none").setAttribute("role","dialog").setAttribute("aria-modal","true").setAttribute("aria-label","Manage players");var la=a.Node.create("<div>").addClass("background");la.on("click",function(pa){pa.target&&
1528pa.target._node&&pa.target._node.classList&&pa.target._node.classList.contains("background")&&h()});Ka.append(la);la=a.Node.create("<span>").addClass("messageContainer");var sa=a.Node.create("<img>").addClass("close").set("src",a.wocg.buildAssetImageURL("images/closeModal.png")).set("width","32").set("height","32");sa.on("click",h);Sa=a.Node.create("<div>").addClass("manageRatingsTitle");Q=a.Node.create("<span>").addClass("manageRatingsTitleText");W=a.Node.create("<button>").addClass("linkButton").addClass("removeInactiveLink").setStyle("display",
1529"none");W.on("click",ba);Sa.append(Q);Sa.append(W);aa=a.Node.create("<div>").addClass("manageRatingsContent");var Z=a.Node.create("<span>").addClass("innerContainer");Z.append(Sa);Z.append(aa);la.append(sa);la.append(Z);Ka.append(la);(la=a.one("#mainContainer")||a.one("body"))&&la.append(Ka)}function h(la){Ka&&("undefined"===typeof la&&(la=!0),H(),m(),La=null,oa&&(a.KeyboardShortcuts.detach("escape",oa),oa=null),a.detach("window:resized",p),a.ModalScrollLock&&a.Mod
1529alScrollLock.unlock&&a.ModalScrollLock.unlock(),
1530Ka.addClass("modalClosing"),a.Transition.run({node:Ka,duration:160,opacity:0,cb:function(){Ka&&(Ka.remove(!0),Ka=null);aa=W=Q=Sa=null;if(la&&N)a.KeyboardShortcuts.on("escape",qa)}}))}function p(){if(Ka){var la=Ka.one(".messageContainer");la&&la.setStyle("top",Math.max((window.innerHeight-la.getHeight())/2,40)+"px")}}function t(la,sa){C.USER_OPTIONS.mutateOnce(function(Za){return Za.id===la.name?Za:void 0}).reverse&&(sa=!sa);var Z=la.name;if("legacyAvatars"===Z)sa?a.wocg.Options.setOption(Z,!0):a.wocg.Options.unsetOption(Z),
1531a.wocg.User.setUseLegacyAvatars(sa),a.wocg.reloadApp();else if(Z&&0===Z.indexOf("norank_")){var pa=sa,wa=Z.substring(7,Z.length);if(!(pa||a.wocg.User.isRegistered()&&a.wocg.User.isExperienced())){la.setChecked(!1,!0);var Ja;a.wocg.User.isRegistered()?a.wocg.User.isExperienced()||(Ja="Play 10 games to join the ranked league."):Ja="You must be logged in and play 10 games to join the ranked league.";(new a.ModalConfirm("Cannot join ranked games",Ja,"","OK")).show();return}F(la,!0);pa?(new a.ModalConfirm("Are you sure?",
1532"This deletes your "+C.GAME_NAMES[wa]+" rank, which cannot be undone. This option cannot be changed again for 1 full week.")).show(function(Za){B(Za,wa,pa)}):B(!0,wa,pa)}else sa?a.wocg.Options.setOption(Z,!0):a.wocg.Options.unsetOption(Z),Z&&("fanCardsCustom"===Z?(a.wocg.User.setFanCardsCustom(sa),a.fire("fanCardsWider:clicked",{fc:!!sa})):"pileCardsCustom"===Z?(a.wocg.User.setPileCardsCustom(sa),a.fire("pileCardsVertically:clicked",{pc:sa})):"socialNotificationsOff"===Z&&(a.wocg.User.setSocialNotificationsOff(sa),
1533a.fire("socialNotificationsOff:changed",{off:!!sa})));E(la.name,sa)}function B(la,sa,Z){var pa=U["norank_"+sa];la?a.wocg.Comm.send("table.doNotRank",{rankMe:!Z,gameid:sa}):F(pa,!0)}function F(la,sa){var Z=la.name.substring(7,la.name.length),pa=a.wocg.User.getNoRank_Game(Z);a.wocg.User.isAllowedRanked(Z)?la.setChecked(!pa,sa):la.setChecked(!1,sa);la.setDisabled(!1)}function S(la,sa,Z){Object.keys(C.RANKED).forEach(function(pa){A(pa,la&&M(pa),sa,Z)})}function A(la,sa,Z,pa){if(la=U["norank_"+la])la.setDisabled(sa),
1534"undefined"!==typeof Z&&la.setChecked(Z,pa)}function M(la){var sa=a.wocg.Table.getCurrentTable();return!!sa&&sa.gameid===la&&sa.ranked&&!sa.gameOver}function J(la){if(la&&"object"===typeof la){var sa=Object.prototype.hasOwnProperty.call(la,"avatar");C.USER_OPTIONS.forEach(function(Z){if(!Ma.contains(Z.id)||a.wocg.IS_DEV)if("legacyAvatars"!==Z.id||!a.wocg.isSourceArkadium()){var pa=Z.id,wa=Object.prototype.hasOwnProperty.call(la,pa);if(sa||wa){var Ja=wa?!!la[pa]:!1;wa&&null==la[pa]&&null!=Z.reverse&&
1535(Ja=Z.reverse);"legacyAvatars"!==pa||wa||(Ja=a.wocg.User.getUseLegacyAvatars());0===pa.indexOf("norank")&&(Z=pa.substring(7,pa.length),a.wocg.User.isAllowedRanked(Z)||(Ja=!0),a.wocg.User.setNoRank_Game(Z,Ja));"socialNotificationsOff"===pa&&a.wocg.User.setSocialNotificationsOff(Ja);E(pa,Ja)}}});"undefined"!==typeof la.soundEffectsMode&&a.wocg.User&&a.wocg.User.setSoundEffectsMode&&a.wocg.User.setSoundEffectsMode(la.soundEffectsMode);"undefined"!==typeof la.avatarEmotionsMode&&a.wocg.User&&a.wocg.User.setAvatarEmotionsMode&&
1536a.wocg.User.setAvatarEmotionsMode(la.avatarEmotionsMode);"undefined"!==typeof la.animationsMode&&a.wocg.User&&a.wocg.User.setAnimationsMode&&a.wocg.User.setAnimationsMode(la.animationsMode);"undefined"!==typeof la.gamePromptsMode&&a.wocg.User&&a.wocg.User.setGamePromptsMode&&a.wocg.User.setGamePromptsMode(la.gamePromptsMode);"undefined"!==typeof la.gameHintsMode&&a.wocg.User&&a.wocg.User.setGameHintsMode&&a.wocg.User.setGameHintsMode(la.gameHintsMode)}}function G(la){if(Object.keys(U).length){J(la);
1537xa=null;var sa=Object.prototype.hasOwnProperty.call(la,"avatar");C.USER_OPTIONS.forEach(function(Z){if(!Ma.contains(Z.id)||a.wocg.IS_DEV)if("legacyAvatars"!==Z.id||!a.wocg.isSourceArkadium()){var pa=Z.id,wa=Object.prototype.hasOwnProperty.call(la,pa);if(sa||wa){wa=wa?!!la[pa]:!1;"legacyAvatars"!==pa||Object.prototype.hasOwnProperty.call(la,pa)||(wa=a.wocg.User.getUseLegacyAvatars());if(0===pa.indexOf("norank")){if(a.wocg.isSourceArkadium())return;var Ja=pa.substring(7,pa.length);a.wocg.User.isAllowedRanked(Ja)||
1538(wa=!0);U[pa].setDisabled(M(Ja))}U[pa]&&U[pa].setChecked(Z.reverse?!wa:wa,!0)}}});Object.forEach(R,function(Z,pa){var wa=la?la[Z]:void 0;"soundEffectsMode"===Z&&"undefined"===typeof wa&&la&&la.muteSound&&(wa=0);"animationsMode"===Z&&"undefined"===typeof wa&&la&&la.disableAnimations&&(wa=0);if("undefined"===typeof wa)if("gamePromptsMode"===Z&&a.wocg.User&&a.wocg.User.getGamePromptsMode)wa=a.wocg.User.getGamePromptsMode();else if("gameHintsMode"===Z&&a.wocg.User&&a.wocg.User.getGameHintsMode)wa=a.wocg.User.getGameHintsMode();
1539else{var Ja=C.USER_OPTIONS.find(function(Za){return Za.id===Z});Ja&&"undefined"!==typeof Ja["default"]&&(wa=Ja["default"])}"undefined"!==typeof wa&&pa&&pa.setChecked&&pa.setChecked(String(wa),!0)})}else xa=la,J(la)}function E(la,sa){"noCensor"===la&&a.wocg.User.setNoCensor(sa);"muteSound"===la&&a.wocg.User.setMuteSound(sa);"disableAnimations"===la&&a.wocg.User.setDisableAnimations(sa);"fanCardsCustom"===la&&a.wocg.User.setFanCardsCustom(sa);"pileCardsCustom"===la&&a.wocg.User.setPileCardsCustom(sa);
1540"globalMute"===la&&(a.wocg.User.setGlobalMute(sa),sa?a.wocg.Table.hideMuteButtons():a.wocg.Table.showMuteButtons());"legacyAvatars"===la&&a.wocg.User.setUseLegacyAvatars(sa)}function L(la){if(aa){var sa=f(la);if(null===sa){var Z=a.Node.create("<div>").addClass(Ea[la]);Z.setStyle("display","none");Z.setHTML(Va[la]);sa=a.Node.create("<ul>").addClass("managePlayerRatings").addClass(Ua[la]);sa.setStyle("display","none");sa.delegate("click",fa,"span");aa.append(Z);aa.append(sa)}}}function T(la){var sa=
1541f(la);if(!sa)return[];var Z=Date.now()-15552E6,pa=[];
1541sa.all("li").each(function(wa){var Ja=parseInt(wa.getData("lastSeen"),10);if(!(isNaN(Ja)||0>=Ja||Ja>Z)){if((Ja=wa.get("id"))&&la&&da[la]){var Za=da[la];0!==Ja.indexOf(Za)?Ja=null:(Ja=parseInt(Ja.substring(Za.length),10),Ja=isNaN(Ja)?null:Ja)}else Ja=null;null!==Ja&&pa.push({li:wa,userid:Ja})}});return pa}function ma(la,sa){var Z=parseInt(la,10);return!isNaN(Z)&&0<Z&&"undefined"!==typeof utils&&utils&&utils.formatTimeAgo?"Seen "+utils.formatTimeAgo(Z):
1542!isNaN(Z)&&0<Z&&(la="January February March April May June July August September October November December".split(" "),Z=new Date(Z),!isNaN(Z.getTime()))?"Seen "+la[Z.getMonth()]+" "+Z.getFullYear():sa?sa:"Seen recently"}function ea(la){if(W)if(!la)a.CustomTooltip&&a.CustomTooltip.detachOnHover&&a.CustomTooltip.detachOnHover(W),W.setStyle("display","none");else if(!La||la===La){var sa=T(la).length;W.setData("ratingType",la);1>sa?(a.CustomTooltip&&a.CustomTooltip.detachOnHover&&a.CustomTooltip.detachOnHover(W),
1543W.setStyle("display","none")):(W.setContent("Remove "+sa+" inactive"),W.setStyle("display","inline-block"),a.CustomTooltip&&a.CustomTooltip.showOnHover&&(a.CustomTooltip.detachOnHover&&a.CustomTooltip.detachOnHover(W),a.CustomTooltip.showOnHover(W,"Players last seen more than 6 months ago")))}}function ba(la){la.preventDefault();if(La){var sa=La,Z=T(sa);if(1>Z.length)ea(sa);else{la=Z.length;var pa=$a[sa]||"players";1===la&&(pa=pa.replace("players","player"));(new a.ModalConfirm("Remove inactive players",
1544"Remove "+la+" "+pa+" not seen in over 6 months?","Cancel","Remove")).show(function(wa){wa&&(wa=f(sa),Z.forEach(function(Ja){Ja.li&&Ja.li.remove();a.wocg.Comm.send("user.unrated.player",{ratedUserid:Ja.userid,type:sa})}),wa&&1>wa.all("li").size()&&(wa=u(sa))&&wa.setStyle("display","block"),ea(sa))})}}}function X(la){Q&&Q.setContent(Ra[la]);ya.forEach(function(sa){var Z=sa===la,pa=f(sa);sa=u(sa);pa&&pa.setStyle("display",Z?"block":"none");sa&&!Z&&sa.setStyle("display","none")});ea(la);na();p()}function I(la,
1545sa){L(la);var Z=f(la);if(Z){Z.get("childNodes").remove();var pa=u(la);if(pa){if(sa&&sa.userids&&0!==sa.userids.length){pa.setStyle("display","none");pa=sa.userids.length;for(var wa=0;wa<pa;wa++){var Ja=sa.userids[wa],Za=sa.display_dates&&sa.display_dates.length>wa?sa.display_dates[wa]:null,Wa=sa.names[wa],cb=sa.last_seen&&sa.last_seen.length>wa?parseInt(sa.last_seen[wa],10):0,db=ma(cb,Za);Za=Z;var Ya=la;a.one("#"+da[Ya]+Ja)||(cb=O(Ja,db,Wa,Ya,cb),Za.append(cb))}}else pa.setHTML(Va[la]),pa.setStyle("display",
1546"block");ea(la)}}}function O(la,sa,Z,pa,wa){Z=l(Z);sa=a.Node.create("<li><strong>"+(Z+"</strong> · "+sa)+"</li>");sa.set("id",da[pa]+la);la=parseInt(wa,10);sa.setData("lastSeen",!isNaN(la)&&0<la?la:0);sa.username=Z;la=a.Node.create("<span>").addClass("linkButton").addClass("changeLink").setContent("Remove");sa.append(la);return sa}function fa(la){var sa=la.currentTarget;if(sa){sa=sa.get("innerHTML");la.stopPropagation();var Z=la.currentTarget.ancestor("ul");la=la.currentTarget.ancestor("li");var pa=
1547la.get("id");if(pa.contains(da.dislike)){var wa="dislike";var Ja=Aa}else pa.contains(da.like)?(wa="like",Ja=Qa):(wa="unmute",Ja=Ta,a.wocg.User.getGlobalMute()?a.wocg.Table.hideMuteButtons():a.wocg.Table.showMuteButtons());pa=pa.substring(Ja,pa.length);"Remove"===sa&&(la.remove(),a.wocg.Comm.send("user.unrated.player",{ratedUserid:pa,type:wa}),a.wocg.trackEvent("player_unrated",{type:wa,source:"friends_list"}),1>Z.all("li").size()&&u(wa).setStyle("display","block"),ea(wa))}}function ta(la,sa=!0){D&&
1548(N?qa(sa):ua(sa))}function ua(la=!0){if(D&&!N){N=!0;a.wocg.MenuBar.setVisibleMenuId("userOptions");a.KeyboardShortcuts.on("escape",qa);k();w();D.removeClass("modalClosing");D.setStyle("display","flex");var sa=function(){Object.values(U).forEach(function(Z){Z.visibilityChangeHandler(!0)})};la?(D.removeClass("modalInstant"),D.setStyle("opacity",0),a.Transition.run({node:D,duration:220,opacity:1,cb:sa})):(D.addClass("modalInstant"),D.setStyle("opacity",1),sa())}}function qa(la=!0){if(D&&N){a.KeyboardShortcuts.detach("escape",
1549qa);Object.values(U).forEach(function(Z){Z.visibilityChangeHandler(!1)});ra&&ra.reset();Ca&&Ca.reset();m();La=null;var sa=function(){N=!1;D.setStyle("display","none");D.removeClass("modalClosing");D.removeClass("modalInstant")};la?(D.removeClass("modalInstant"),D.addClass("modalClosing"),a.Transition.run({node:D,duration:160,opacity:0,cb:sa})):(D.setStyle("opacity",1),sa())}}function na(){r&&D&&(N?(D.setStyle("display","flex"),k()):"none"!==D.getStyle("display")&&D.setStyle("display","none"))}function b(la){var sa=
1550la.type;"mute"===sa&&(sa="unmute");L(sa);var Z=u(sa),pa=f(sa);if(Z&&pa){Z.setStyle("display","none");Z=la.userid;var wa=la.name,Ja=la.last_seen;la=ma(Ja,la.display_date);var Za=sa;a.one("#"+da[Za]+Z)||(Z=O(Z,la,wa,Za,Ja),pa.append(Z));ea(sa)}}function f(la){return a.one("."+Ua[la])}function u(la){return a.one("."+Ea[la])}function l(la){var sa=la;a.wocg.User.getNoCensor()||(sa=profanityFilter.censorWords(la));return sa}var r=null,D=null,N=!1,P=null,ca=null,xa=null,Ba=!1,U={},R={},ia=a.one("#changePassword"),
1551ra=null,ka=!1,ha=a.one("#deleteAccount"),Ca=null,Fa=null,za=null,Ia=null,Ga=!1,La=null,Pa={},Ka=null,Sa=null,Q=null,W=null,aa=null,oa=null,Da=null,Ma=[],ya=["like","dislike","unmute"],Ra={dislike:"Blocked players",like:"Liked players",unmute:"Muted players"},da={dislike:"manageDislikes_",like:"manageLikes_",unmute:"manageUnmutes_"},Aa=da.dislike.length,Qa=da.like.length,Ta=da.unmute.length,Va={dislike:"You have not blocked any players",like:"You have not liked any players",unmute:"You have not muted any players"},
1552Ua={dislike:"manageDislikes",like:"manageLikes",unmute:"manageUnmutes"},Ea={dislike:"noDislikesMessage",like:"noLikesMessage",unmute:"noUnmutesMessage"},$a={dislike:"blocked players",like:"liked players",unmute:"muted players"},qb=a.wocg.IS_DEV?"test_9AQ3dx6377jA3165kk":"fZe00P1nU6UIdTGfYY";a.wocg.ProfileBox={censorIfNeeded:function(la){return l(la)},userBanned:function(la){A(la,!0,!1,!0)},usernameClickHandler:ta,hideProfileBox:qa,showProfileBox:ua,openBillingPortal:x};a.on("domready",function(){r=
1553a.one("#userBar");a.one("#userBarContainer");if((D=a.one("#profileBox"))&&r){D.setAttribute("role","dialog").setAttribute("aria-modal","true").setAttribute("aria-label","Profile");ca=D.one(".background");P=D.one(".profileBoxContent");var la=r.one(".userName");if(la&&!a.wocg.isTouchDevice())la.on("click",ta);if(a.all(".gameSelector .profile"))a.all(".gameSelector .profile").on("click",ta);D.one(".optionsMenuBar .deck").setData("menuid","deck").on("mousedown",function(sa){q(sa,!1)});
1553D.one(".optionsMenuBar .wallpaper").setData("menuid",
1554"wallpaper").on("mousedown",function(sa){q(sa,!1)});D.one(".optionsMenuBar .avatar").setData("menuid","avatar").on("mousedown",function(sa){q(sa,!1)});D.one(".optionsMenuBar .stats").setData("menuid","stats").on("mousedown",function(sa){q(sa,!1)});ca.on("click",function(sa){sa.target&&sa.target._node&&sa.target._node.classList&&sa.target._node.classList.contains("background")&&qa(!0)});na()}});a.on("ad:removed",na);a.on("window:resized",na);a.on("theme:changed",function(){Ba||(Ba=!0,v());na()});a.on("comm:options",
1555G);a.on("gamePromptsMode:changed",function(la){R.gamePromptsMode&&R.gamePromptsMode.setChecked&&R.gamePromptsMode.setChecked(String(la),!0)});a.on("gameHintsMode:changed",function(la){R.gameHintsMode&&R.gameHintsMode.setChecked&&R.gameHintsMode.setChecked(String(la),!0)});a.on("comm:player.ratings",function(la){H();L("like");I("like",la.likes);L("dislike");I("dislike",la.dislikes);L("unmute");I("unmute",la.mutes);La&&X(La);m()});a.on("comm:user.init.complete",function(){D&&setTimeout(function(){k()},
1556100)});a.on("user:loggedIn",function(){D&&(D&&ia&&a.wocg.User.isRegistered()&&(ia.setStyle("display","block"),D.one(".sectionHeader.changePassword").setStyle("display","block"),ra=new a.BoxForm(a.one("#changePasswordBoxForm")),ra.autoHide=!1,ra.show()),D&&ha&&a.wocg.User.isRegistered()&&(ha.setStyle("display","block"),D.one(".sectionHeader.deleteAccount").setStyle("display","block"),Ca=new a.BoxForm(a.one("#deleteAccountBoxForm")),Ca.autoHide=!1,Ca.show()),setTimeout(function(){k()},100))});a.on("box:changePasswordBoxForm:submit",
1557function(la){la.oldpassword===la.newpassword?(ra.enable(),ra.showError("New password cannot be the same as the old password."),ra.focusFirst()):a.wocg.Comm.send("user.changePassword",{username:a.wocg.User.getUsername(),oldPassword:a.sha1.hash(C.PWD_SALT+la.oldpassword),newPassword:a.sha1.hash(C.PWD_SALT+la.newpassword)})});a.on("box:changePasswordBoxForm:hidden",function(){ia.setStyle("display","none");a.wocg.goToUrl("/")});a.on("comm:user.changePassword.failed",function(la){ra.reset();ra.showError(la.message);
1558ra.focusFirst()});a.on("comm:user.changePassword.complete",function(la){ra.reset();ra.showSuccess("Password changed!");ra.blur()});a.on("comm:user.getBillingPortalUrl.complete",function(la){la&&la.url?window.open(la.url,"_blank"):a.fire("Notice:show",{message:"Could not load subscription page. Please try again.",type:"error"});k()});a.on("box:deleteAccountBoxForm:submit",function(la){ka?a.wocg.Comm.send("user.delete",{username:a.wocg.User.getUsername(),password:a.sha1.hash(C.PWD_SALT+la.password)}):
1559(Ca.enable(),ha.one("[type=submit]").setAttribute("value","NOTICE: Account will be permanently deleted. Click again to verify."),ka=!0)});a.on("comm:user.deleteAccount.failed",function(la){Ca.reset();Ca.showError(la.message);Ca.focusFirst()});a.on("comm:user.rated.player",b);a.on("comm:user.muted.player",b);a.on("comm:user.ban.ended",function(la){la=la.gameid;a.wocg.User.setIsAllowedRanked(la,!0);var sa=M(la),Z=!a.wocg.User.getNoRank_Game(la);A(la,sa,Z,!0)});a.on("comm:gameSelectors.show",function(){var la=
1560a.wocg.hasActiveGame()?320:0;setTimeout(function(){a.wocg.Table.isFindingTable()||null!==a.wocg.Table.getCurrentTable()&&!a.wocg.Table.getCurrentTable().tableLeaveSent&&0<a.wocg.Table.getCurrentTable().gameCreatedTime||S(!1)},la)});a.on("gameSelectors.hide",function(){S(!0)})},"1.0",{requires:["wocg","KeyboardShortcuts","wocg.MenuBar"]});
1561YUI.add("wocg.TableListingBuilder",function(a){function q(y){return"allgames"===y?"All games":C.GAME_NAMES[y]||y}function w(y,v){var d=y.age||0;"false"===y.started||"true"!==y.started&&!0!==y.started||(d=(y.age||0)+Math.round((v-y.startTime)/6E4));return d}function k(y,v){y=w(v,y);return y>=C.MAX_TABLE_MINUTES?" a looong time":60>y?" "+y+" min elapsed":120>y?" 1h "+(y-60)+"m elapsed":" "+Math.floor(y/60)+" h elapsed"}function x(y,v){var d={registeredOnly:{name:"Registered only",value:v.regOnly},experiencedOnly:{name:"Experienced only",
1562value:v.expOnly},privateTable:{name:"Private table",value:v.ptn}};v.id&&0===v.id.indexOf("ranked")||v.ranked?d.ranked={name:"Ranked",value:!0}:d.noRobots={name:"Bots allowed",value:v.bots};if("hearts"===y)y=v.e&&v.e.includes("sr"),v=v.e&&v.e.includes("afth"),d.allowFirstTurnHearts={name:"Allow first turn",value:v},d.standardRulesHearts={name:"Tournament rules",value:!y};else if("spades"===y)v=v.e&&v.e.includes("nbps"),d.noBagPenaltySpades={name:"No bag penalty",value:v};else if("euchre"===y)v=v.e&&
1563v.e.includes("std"),d.euchreSTD={name:"Stick the dealer",value:v};else if("twentynine"===y)y=v.e&&v.e.includes("sct"),v=v.e&&v.e.includes("drt"),d.seventhCardTwentynine={name:"Seventh card",value:y},d.redoubleTwentynine={name:"Double-redouble",value:v};else if("pinochledd"===y||"pinochle"===y)v=v.e&&v.e.includes("pbo"),d.bidderOut={name:"Bidder out",value:v};return d}a.wocg.TableListingBuilder={create:function(y,v,d){d=d||{};var n=Date.now(),m=v.players?v.players.filter(function(L){return 0!==Object.keys(L).length}).length:
15640,H=a.Node.create("<div>").addClass("tableListing").addClass(y).setData("tableid",v.id).setData("gameid",y).setData("startTime",v.startTime).setData("started",v.started).setData("privateTableName",v.ptn).setData("playerCount",m);v.id&&H.set("id",v.id);(C.GAME_TEAMS.includes(y)||"ginrummy"===y)&&H.addClass("isTeamGame");v.started?H.setData("age",w(v,n)):H.setData("age",0);v.ranked&&H.addClass("isRanked");m=v.nPlayers||(v.players?v.players.length:4);var c=a.Node.create("<div>").addClass("header").addClass("players"+
1565m),e=a.Node.create("<div>").addClass("playersContainer");c.append(e);H.append(c);c=[1,0,2,3];2===m&&(c=[0,1]);3===m&&(c=[0,1,2]);for(var h=0;h<m;h++){var p=c[h],t=v.players?v.players.find(function(L){return L.n===p}):null,B=a.Node.create("<div>").addClass("player").addClass("playernumber"+p),F=a.Node.create("<img>").set("width","32").set("height","32"),S=a.Node.create("<div>").addClass("playerNameContainer"),A=a.Node.create("<p>").addClass("playerName"),M=a.Node.create("<span>").addClass("playerBadge"),
1566J=a.Node.create("<span>").addClass("completionBadge");if(t&&0<Object.keys(t).length){var G=a.wocg.User&&a.wocg.User.getUseLegacyAvatars&&a.wocg.User.getUseLegacyAvatars();F.set("src",a.wocg.buildAssetImageURL("pieces/avatar/"+(G?"legacy":"classic")+"/"+t.avatar+(G?".png":".svg")));F.set("alt",t.avatar+" avatar");A.setContent(a.wocg.ProfileBox.censorIfNeeded(t.u));S.append(A);if(t.isBot&&(B.addClass("isBot"),S.append(M.addClass("isBot")),a.CustomTooltip.showOnHover(M,"Bot"),v.players&&v.players.length===
1567m)){B.addClass("seatAvailable");if(d.onSeatClick)B.on("click",function(L){d.onSeatClick(L,H)});a.CustomTooltip.showOnHover(B,"Click to sit here")}t.isLiked&&(B.addClass("isLiked"),S.append(M.addClass("isLiked")),a.CustomTooltip.showOnHover(M,"Liked"));!t.isBot&&void 0!==t.completionRate&&70<=t.completionRate&&10<=t.nFinishedGames&&(100===t.completionRate?J.addClass("is100"):J.setContent(t.completionRate),S.append(J),a.CustomTooltip.showOnHover(J,t.completionRate+"% completion"));t.isBot||!t.gameRanks&&
1568void 0===t.completionRate&&!t.nFinishedGames||(M=[],J=t.gameRanks?a.wocg.getDisplayGameRanks(t.gameRanks,y):null,M.push("Elo: <b>"+(J&&"N/A"!==J&&"N / A"!==J&&"N  ̸ A"!==J?J:"N  ̸ A")+"</b>"),M.push("Games: <b>"+(t.nFinishedGames||0)+"</b>"),M.push("Finishes: <b>"+(void 0!==t.completionRate?t.completionRate+"%":"N  ̸ A")+"</b>"),t=M.join("<br/>"),a.CustomTooltip.showOnHover(F,t,!1),a.CustomTooltip.showOnHover(A,t,!1))}else if(B.addClass("isEmpty"),F.set("src",a.wocg.buildAssetImageURL("images/avatarEmpty.png")),
1569F.set("alt","Empty seat"),S.append(A),A.setContent("Empty seat"),a.CustomTooltip.showOnHover(B,"Click to sit here"),d.onSeatClick)B.on("click",function(L){d.onSeatClick(L,H)});B.append(F).append(S);(2===m&&0===h||3===m&&0===h)&&e.append(a.Node.create("<div>").addClass("verticalSpacer"));(4===m&&(0===h||3===h)||2===m&&(0===h||1===h)||3===m&&2===h)&&e.append(a.Node.create("<div>").addClass("spacer30"));e.append(B);4===m&&(0===h||3===h)||2===m&&(0===h||1===h)||3===m&&2===h?e.append(a.Node.create("<div>").addClass("spacer30")):
1570(4===m&&1===h||3===m&&0===h)&&e.append(a.Node.create("<div>").addClass("spacer20"));
1570(2!==m||0!==h&&1!==h)&&(3!==m||1!==h&&2!==h)||e.append(a.Node.create("<div>").addClass("verticalSpacer"))}m=a.Node.create("<div>").addClass("content");H.append(m);c=a.Node.create("<div>").addClass("contentTop");m.append(c);e=a.Node.create("<div>").addClass("contentMiddle");m.append(e);h="";d.showGameName&&(h=q(y)+" · ","Double Deck Pinochle"===q(y)&&(h="DD Pinochle · "));B=h+"Table "+(v.tableNumber||"");v.ptn&&(B=
1571h+v.ptn);!v.id||!v.id.includes("empty-")||0!==v.age&&v.age||v.ptn||(B="New table");!v.id||!v.id.includes("empty-ranked-")||0!==v.age&&v.age||v.ptn||(B="New ranked table");v.id&&v.id.includes("empty-")&&(0===v.age||!v.age)&&v.ptn&&(B=h+v.ptn);h=a.Node.create("<span>").addClass("tableNumber").setContent(B);c.append(h);h=v.age||0;v.started&&(h=w(v,n));n=a.Node.create("<span>").addClass("tableAge").append(document.createTextNode(k(n,v))).setData("age",h).setData("startTime",v.startTime).setData("started",
1572v.started);c.append(n);y=x(y,v);for(var E in y)n=y[E],n=a.Node.create("<p>").addClass("option").addClass(n.value?"active":"").setContent(n.name),e.append(n);E="Join table";!v.id||!v.id.includes("empty-")||0!==v.age&&v.age||v.ptn||(E="Create new table");v.id&&v.id.includes("empty-")&&(0===v.age||!v.age)&&v.ptn&&(E="Host table");v=a.Node.create("<div>").addClass("button blue").setContent(E);if(d.onJoinClick)v.on("click",function(L){d.onJoinClick(L,H)});m.append(v);return H},getGameName:q,getTableAge:w,
1573getTableDisplayAge:k,buildTableOptionsLabels:x}},"1.0",{requires:["wocg","wocg.ProfileBox","CustomTooltip"]});
1574YUI.add("wocg.TableListingsBar",function(a){function q(){Ba&&(clearTimeout(Ba),Ba=null);U=!1;R.forEach(function(ka){ka.style.pointerEvents="";ka.style.transition="";ka.style.transform=""});R=[];ia.forEach(function(ka){ka.parentNode&&ka.parentNode.removeChild(ka)});ia=[];ra.forEach(function(ka){ka.style.transition=""});ra=[]}function w(ka){ka.stopPropagation();ka.currentTarget&&a.CustomTooltip.hideTooltip();var ha=ka.currentTarget&&ka.currentTarget.ancestor(".tableListing");if(ha){var Ca=ha.getData("gameid"),
1575Fa=ha.getData("tableid");ha=ha.getData("privateTableName");var za={gameid:Ca};Fa&&Fa.includes("empty-ranked")?za.ranked=!0:Fa&&Fa.includes("empty-")?za.privateTable=!1:za.forTable=Fa;ha&&""!==ha&&ha!==C.ANONYMOUS_TABLE_NAME&&(za.privateTableName=ha);if(a.wocg.User.requiresGamePractice(Ca,za)){a.fire("Notice:show",{message:a.wocg.User.getGamePracticeRequiredMessage(Ca),type:"warning"});return}}var Ia=a.wocg.Table.getCurrentTable();a.wocg.TableBar.leaveWarning(Ia,function(){Ia&&(a.wocg.goToUrl("/"),
1576a.fire("tableBar:leaveTableLinkClicked"));setTimeout(function(){if(ka.currentTarget){var Ga=ka.currentTarget.ancestor(".tableListing");if(Ga){var La=Ga.getData("gameid"),Pa=Ga.getData("tableid"),Ka=Ga.getData("privateTableName"),Sa=Ga.getData("playerCount"),Q=e(D,!1);Ga=Ga.getData("table_options_non_default");La={gameid:La,command:"findTable"};La.defaultOptions=0<Sa;Pa.includes("empty-ranked")?(La.ranked=!0,La.create=!0,Ga&&(La.rankedOption=JSON.parse(Ga))):Pa.includes("empty-")?(La.ranked=!1,La.create=
1577!0):La.forTable=Pa;Ka&&""!==Ka&&Ka!==C.ANONYMOUS_TABLE_NAME&&(La.privateTableName=Ka);Ka=ka.currentTarget.getAttribute("class");Ga="button";var W="";if(Ka){var aa=Ka.indexOf("playernumber");-1<aa&&(Ga=aa+12,La.forPlayer=+Ka.substring(Ga,Ga+1),Ga="seat",W=-1<Ka.indexOf("isBot")?"bot":"empty")}Pa=Pa.includes("empty-");ka.currentTarget.remove();a.fire("menu:clicked",La,!1);ba();Sa={gameid:D,activeTables:Q,activeMultiplayerTablesCount:qa.getData("activeMultiplayerTablesCount"),activeSoloTablesCount:qa.getData("activeSoloTablesCount"),
1578clickSource:Ga,seatType:W,placeholder:Pa,playerCount:Sa};a.wocg.trackGoogleEvent&&a.wocg.trackGoogleEvent("click_table_listings_item",Sa);a.wocg.trackEvent("Click Table Listings Item",Sa)}}},Ia?640:0)})}function k(ka,ha,Ca,Fa){if(null!==ka&&null!==ha){var za=M(ka),Ia=M("allgames");if(za&&Ia){var Ga=(Ka,Sa)=>{if(Sa.id.includes("empty-"))return null;var Q=0;Sa.started&&(Q=y(Sa,Fa));Sa=null;for(var W,aa,oa,Da,Ma=0;Ma<Ka.size();Ma++)if(W=Ka.item(Ma),W.get("id"),aa=W.getData("age"),oa=+W.getData("startTime")||
15790,Da=d(W.getData("started")),aa="undefined"!==typeof aa&&Da?+aa:0,aa=y({startTime:oa,started:Da,age:aa},Fa),Q>aa||!Da){Sa=W;break}return Sa},La=x(ka,ha,Fa),Pa=za.get("children");(Pa=Ga(Pa,ha))?za.insertBefore(La,Pa):za.append(La);za=x(ka,ha,Fa,!0);Pa=Ia.get("children");Ga=Ga(Pa,ha);ha.id.includes("empty-")||(Ga?Ia.insertBefore(za,Ga):Ia.append(za));U?"allgames"===D?La.setStyle("opacity",1):(D!==ka&&La.setStyle("opacity",1),za&&za.setStyle("opacity",1)):Ca?(a.Transition.run({node:La,opacity:1,duration:160,
1580delay:160,easing:"ease-in-out"}),za&&a.Transition.run({node:za,opacity:1,duration:160,delay:160,easing:"ease-in-out"})):(La.setStyle("opacity",1),za&&za.setStyle("opacity",1))}}}function x(ka,ha,Ca,Fa=!1){var za=ha.players.filter(ya=>0!==Object.keys(ya).length).length;za=a.Node.create("<div>
1580").set("id",Fa?"allGames"+ha.id:ha.id).setData("tableid",ha.id).setData("gameid",ka).setData("startTime",ha.startTime).setData("started",ha.started).setData("privateTableName",ha.ptn).setData("playerCount",za).addClass("tableListing").addClass(ka);
1581(C.GAME_TEAMS.includes(ka)||"ginrummy"===ka)&&za.addClass("isTeamGame");ha.started?za.setData("age",y(ha,Ca)):za.setData("age",0);ha.ranked&&za.addClass("isRanked");var Ia=a.Node.create("<div>").addClass("header").addClass("players"+ha.nPlayers),Ga=a.Node.create("<div>").addClass("playersContainer");Ia.append(Ga);za.append(Ia);Ia=[1,0,2,3];2==ha.nPlayers&&(Ia=[0,1]);3==ha.nPlayers&&(Ia=[0,1,2]);for(var La=0;La<ha.nPlayers;La++){var Pa=Ia[La],Ka=ha.players.find(ya=>ya.n==Pa),Sa=a.Node.create("<div>").addClass("player").addClass("playernumber"+
1582Pa),Q=a.Node.create("<img>").set("width","32").set("height","32"),W=a.Node.create("<div>").addClass("playerNameContainer"),aa=a.Node.create("<p>").addClass("playerName"),oa=a.Node.create("<span>").addClass("playerBadge"),Da=a.Node.create("<span>").addClass("completionBadge");Ka?(Q.set("src",a.wocg.buildAssetImageURL("pieces/avatar/classic/"+Ka.avatar+".svg")),Q.set("alt",Ka.avatar+" avatar"),aa.setContent(a.wocg.ProfileBox.censorIfNeeded(Ka.u)),W.append(aa),Ka.isBot&&(Sa.addClass("isBot"),W.append(oa.addClass("isBot")),
1583a.CustomTooltip.showOnHover(oa,"Bot"),ha.players.length==ha.nPlayers&&(Sa.addClass("seatAvailable"),Sa.on("click",w),a.CustomTooltip.showOnHover(Sa,"Click to sit here"))),Ka.isLiked&&(Sa.addClass("isLiked"),W.append(oa.addClass("isLiked")),a.CustomTooltip.showOnHover(oa,"Liked")),!Ka.isBot&&void 0!==Ka.completionRate&&70<=Ka.completionRate&&10<=Ka.nFinishedGames&&(100===Ka.completionRate?Da.addClass("is100"):Da.setContent(Ka.completionRate),W.append(Da),a.CustomTooltip.showOnHover(Da,Ka.completionRate+
1584"% completion")),Ka.isBot||!Ka.gameRanks&&void 0===Ka.completionRate&&!Ka.nFinishedGames||(oa=[],Da=Ka.gameRanks?a.wocg.getDisplayGameRanks(Ka.gameRanks,ka):null,oa.push("Elo: <b>"+(Da&&"N / A"!==Da&&"N  ̸ A"!==Da?Da:"N  ̸ A")+"</b>"),oa.push("Games: <b>"+(Ka.nFinishedGames||0)+"</b>"),oa.push("Finishes: <b>"+(void 0!==Ka.completionRate?Ka.completionRate+"%":"N  ̸ A")+"</b>"),Ka=oa.join("<br/>"),a.CustomTooltip.showOnHover(Q,Ka,!1),a.CustomTooltip.showOnHover(aa,Ka,!1))):(Sa.addClass("isEmpty"),Q.set("src",
1585a.wocg.buildAssetImageURL("images/avatarEmpty.png")),Q.set("alt","Empty seat"),W.append(aa),aa.setContent("Empty seat"),a.CustomTooltip.showOnHover(Sa,"Click to sit here"),Sa.on("click",w));Sa.append(Q).append(W);(2==ha.nPlayers&&0==La||3==ha.nPlayers&&0==La)&&Ga.append(a.Node.create("<div>").addClass("verticalSpacer"));(4==ha.nPlayers&&(0==La||3==La)||2==ha.nPlayers&&(0==La||1==La)||3==ha.nPlayers&&2==La)&&Ga.append(a.Node.create("<div>").addClass("spacer30"));Ga.append(Sa);4==ha.nPlayers&&(0==La||
15863==La)||2==ha.nPlayers&&(0==La||1==La)||3==ha.nPlayers&&2==La?Ga.append(a.Node.create("<div>").addClass("spacer30")):(4==ha.nPlayers&&1==La||3==ha.nPlayers&&0==La)&&Ga.append(a.Node.create("<div>").addClass("spacer20"));(2!=ha.nPlayers||0!=La&&1!=La)&&(3!=ha.nPlayers||1!=La&&2!=La)||Ga.append(a.Node.create("<div>").addClass("verticalSpacer"))}Ga=a.Node.create("<div>").addClass("content");za.append(Ga);La=a.Node.create("<div>").addClass("contentTop");Ga.append(La);Ia=a.Node.create("<div>").addClass("contentMiddle");
1587Ga.append(Ia);Sa="";Fa&&(Sa=p(ka)+" · ");"Double Deck Pinochle"==p(ka)&&(Sa="DD Pinochle · ");Fa=Sa+"Table "+ha.tableNumber;ha.ptn&&(Fa=Sa+ha.ptn);ha.id.includes("empty-")&&0==ha.age&&!ha.ptn&&(Fa="New table");ha.id.includes("empty-ranked-")&&0==ha.age&&!ha.ptn&&(Fa="New ranked table");ha.id.includes("empty-")&&0==ha.age&&ha.ptn&&(Fa=Sa+ha.ptn);Fa=a.Node.create("<span>").addClass("tableNumber").setContent(Fa);La.append(Fa);Fa=ha.age;ha.started&&(Fa=y(ha,Ca));Ca=a.Node.create("<span>").addClass("tableAge").append(document.createTextNode(n(Ca,
1588ha))).setData("age",Fa).setData("startTime",ha.startTime).setData("started",ha.started);La.append(Ca);Ca={registeredOnly:{name:"Registered only",value:ha.regOnly},experiencedOnly:{name:"Experienced only",value:ha.expOnly},privateTable:{name:"Private table",value:ha.ptn}};0===ha.id.indexOf("ranked")||ha.ranked?Ca.ranked={name:"Ranked",value:!0}:Ca.noRobots={name:"Bots allowed",value:ha.bots};if("hearts"==ka)ka=ha.e&&ha.e.includes("sr"),Fa=ha.e&&ha.e.includes("afth"),ka||za.setData("table_options_non_default",
1589JSON.stringify({standardRulesHearts:0}
1589)),Ca.allowFirstTurnHearts={name:"Allow first turn",value:Fa},Ca.standardRulesHearts={name:"Tournament rules",value:!ka};else if("spades"==ka)ka=ha.e&&ha.e.includes("nbps"),Ca.noBagPenaltySpades={name:"No bag penalty",value:ka};else if("euchre"==ka)ka=ha.e&&ha.e.includes("std"),Ca.euchreSTD={name:"Stick the dealer",value:ka};else if("twentynine"==ka)ka=ha.e&&ha.e.includes("sct"),Fa=ha.e&&ha.e.includes("drt"),Ca.seventhCardTwentynine={name:"Seventh card",value:ka},
1590Ca.redoubleTwentynine={name:"Double-redouble",value:Fa};else if("pinochledd"==ka||"pinochle"==ka)ka=ha.e&&ha.e.includes("pbo"),Ca.bidderOut={name:"Bidder out",value:ka};for(var Ma in Ca)ka=Ca[Ma],ka=a.Node.create("<p>").addClass("option").addClass(ka.value?"active":"").setContent(ka.name),Ia.append(ka);Ma="Join table";ha.id.includes("empty-")&&0==ha.age&&!ha.ptn&&(Ma="Create new table");ha.id.includes("empty-")&&0==ha.age&&ha.ptn&&(Ma="Host table");ha=a.Node.create("<div>").addClass("button blue").setContent(Ma);
1591ha.on("click",w);Ga.append(ha);return za}function y(ka,ha){var Ca=ka.age;"false"===ka.started||"true"!==ka.started&&!0!==ka.started||(Ca=ka.age+Math.round((ha-ka.startTime)/6E4));return Ca}function v(ka,ha){6E4<ka-r&&C.GAMEIDS.forEach(function(Ca){M(Ca).all(".tableAge").each(function(Fa){var za=d(Fa.getData("started"));za=n(ka,{age:Fa.getData("age"),startTime:+Fa.getData("startTime"),started:d(za)});Fa.setHTML(za)})})}function d(ka){return"true"===ka||!0===ka?!0:!1}function n(ka,ha){var Ca=ha.age;
1592"false"===ha.started||"true"!==ha.started&&!0!==ha.started||(Ca=ha.age+Math.round((ka-ha.startTime)/6E4));return Ca>=C.MAX_TABLE_MINUTES?" a looong time":60>Ca?" "+Ca+" min elapsed":" "+Math.round(Ca/60)+" hour elapsed"}function m(){na&&na.removeClass("open")}function H(ka){a.wocg.isTouchDevice()&&(ka.preventDefault(),ka.stopPropagation(),na.toggleClass("open"))}function c(ka,ha){q();m();D=ka;N=ha;ua.all(".tableListings").setStyle("display","none");ua.one(".tableListings."+D).setStyle("display","flex");
1593na.one(".dropupButtonText").set("text",p(D));na.one(".dropupContent li")&&na.all(".dropupContent li").removeClass("active");na.one(".dropupContent li."+D)&&na.one(".dropupContent li."+D).addClass("active");N&&na.setStyle("display","none");h()}function e(ka=D,ha=!0){var Ca=Ca=Object.values(l).filter(Fa=>(ha||!Fa.id.includes("empty-"))&&Fa.game==ka||"allgames"==ka&&!Fa.id.includes("empty-"));return Ca.length}function h(ka){var ha=e(D),Ca=p(D);N&&(Ca="Invites");qa.setContent("<strong>"+Ca+"</strong> · "+
1594(ka||ha+" open table"+(1==ha?"":"s")))}function p(ka){return"allgames"==ka?"All games":C.GAME_NAMES[ka]}function t(){q();Object.keys(l).forEach(function(ka){F(ka)})}function B(ka,ha,Ca,Fa){l[ha.id]=Object.assign({game:ka},ha);if(ha.empty&&ha.ranked){Fa=[];for(var za=0;za<C[ka].DEFAULT_PLAYERS;za++)Fa.push({});Fa={id:ha.id,bots:!1,ranked:!0,players:Fa,nPlayers:C[ka].DEFAULT_PLAYERS,regOnly:!0,age:0,started:!1,e:[]};ha.e&&(Fa.e=ha.e);ha.ptn&&(Fa.ptn=ha.ptn);B(ka,Fa,Ca,Date.now())}else ha.empty?A(ka,
1595ha,Ca):k(ka,ha,Ca,Fa)}function F(ka,ha=!1){delete l[ka];S(ka,ha)}function S(ka,ha){if(null!==ka){var Ca=a.one("#"+ka),Fa=a.one("#allGames"+ka);Ca&&(ha?a.Transition.run({node:Ca,opacity:0,duration:160,easing:"ease-in-out",cb:function(){Ca.remove()}}):Ca.remove());Fa&&(ha?a.Transition.run({node:Fa,opacity:0,duration:160,easing:"ease-in-out",cb:function(){Fa.remove()}}):Fa.remove())}}function A(ka,ha,Ca){for(var Fa=[],za=0;za<C[ka].DEFAULT_PLAYERS;za++)Fa.push({});var Ia=a.wocg.GameSelectors.getOptions(ka)||
1596{},Ga={id:ha.id,bots:1!=Ia.noRobots,players:Fa,nPlayers:C[ka].DEFAULT_PLAYERS,regOnly:Ia.registeredOnly,age:0,started:!1};Fa=[];if("hearts"==ka)Fa=["sr","afth"];else if("spades"==ka)Fa=["nbps"];else if("euchre"==ka)Fa=["std"];else if("twentynine"==ka)Fa=["sct","drt"];else if("pinochledd"==ka||"pinochle"==ka)Fa=["pbo"];ha.e&&(Ga.e=[],Fa.forEach(La=>{var Pa=Object.entries(C.EXTRA_GAME_OPTIONS_PROPERTIES).find(([,Ka])=>Ka===La)?.[0];Pa=Ia[Pa];("number"===typeof Pa?1!=Pa:Pa)&&Ga.e.push(La)}));ha.ptn&&
1597(Ga.ptn=ha.ptn);B(ka,Ga,Ca,Date.now())}function M(ka){return ua.one(".tableListings."+ka)}function J(ka="allgames",ha=null){O&&b&&(I.isConnectionEstablished()?a.wocg.User.isMultiplayerAllowed()?ta?ba():ea(ka,ha):(ha="You're currently banned from multiplayer games.",a.wocg.User.isFirstGameFinished()?a.wocg.User.isVPN()?ha="Multiplayer is disabled on VPN or proxy connections. Turn off your VPN to play with other people.":a.wocg.User.isBanned()||(ha="The server may be down. Please try again in a few minutes."):
1598ha=a.wocg.User.getGamePracticeRequiredMessage(ka),a.fire("Notice:show",{message:ha,type:"warning"})):a.fire("Notice:show",{message:"Connecting to server, please wait...",type:"info"}))}function G(){b&&!f&&a.wocg.User.isMultiplayerAllowed()&&(f=!0,b.setStyle("display","block"),a.Transition.run({node:b,duration:C.TABLE_BAR_ANIMATION_DURATION,opacity:1}))}function E(){b&&f&&(f=!1,a.Transition.run({node:b,duration:C.TABLE_BAR_ANIMATION_DURATION,opacity:0,cb:function(){f||b.setStyle("display","none")}}))}
1599function L(){var ka={};N&&(ka.tableNumber=parseInt(N));I.send("table.listings.start",ka)}function T(){P&&(clearTimeout(P),P=null);xa&&(xa.detach(),xa=null)}function ma(){T();P=setTimeout(function(){P=null;!ta||2<=ca||(ca++,a.wocg.trackEvent("TableListingsForcedReconnect",{gameid:D,attempt:ca}),xa=a.on("comm:user.init.complete",function(){xa.detach();xa=null;ta&&(L(),ma())}),I.reconnectNow())},C.REQUEST_TIMEOUT)}function ea(ka,ha=null){O&&!ta&&a.wocg.User.isMultiplayerAllowed()&&(t(),ta=!0,c(ka,ha),
1600a.Transition.cancel(O),O.removeClass("modalClosing"),O.setStyle("opacity",0),O.setStyle("display","flex"),a.Transition.run({node:O,duration:220,opacity:1,cb:function(){a.KeyboardShortcuts.on("escape",ba);O.once("clickoutside",ba)}}),r=Date.now(),ca=0,L(),ma())}function ba(ka){O&&(m(),ta?(ta=!1,T(),t(),!0!==ka&&a.wocg.Comm.send("table.listings.stop",{}),O.detach("clickoutside",ba),a.KeyboardShortcuts.detach("escape",ba),a.Transition.cancel(O),O.addClass("modalClosing"),a.Transition.run({node:O,duration:160,
1601opacity:0,cb:function(){ta||(O.setStyle("display","none"),O.removeClass("modalClosing"))}})):(!0===ka&&t(),!0!==ka&&a.wocg.Comm.send("table.listings.stop",{}
1601)))}function X(){O&&(ta?(O.setStyle("opacity",1),O.setStyle("display","flex")):O.hasClass("modalClosing")?O.setStyle("display","flex"):"none"!==O.getStyle("display")&&(O.setStyle("opacity",0),O.setStyle("display","none")))}var I=a.wocg.Comm,O=null,fa=null,ta=!1,ua=null,qa=null,na=null,b=null,f=!1,u=!0,l={},r=null,D="allgames",N=null,P=null,ca=
16020,xa=null,Ba=null,U=!1,R=[],ia=[],ra=[];a.on("domready",function(){var ka=a.one("#footerBar");if(ka&&(b=ka.one(".findTables"),O=a.one("#tableListingsBox"),b&&O)){b.on("click",J.bind(this,"allgames",null));ua=O.one(".tableListingsBoxContent");qa=O.one(".tableListingsBoxContentTitle");na=a.Node.create("<div>").addClass("dropup");na.append(a.Node.create("<span>").addClass("dropupButton").setAttribute("data-wocg-press-release","true").append(a.Node.create("<span>").addClass("dropupButtonText").set("text",
1603p(D))));na.one(".dropupButton").on("click",H);var ha=a.Node.create("<ul>").addClass("dropupContent").addClass("dropdown");na.append(ha);ua.one(".tableListingsBoxTop").append(na);ka=C.GAME_ORDER.slice();ka.unshift("allgames");ka.forEach(function(Ca){var Fa=a.Node.create("<div>").addClass("tableListings").addClass(Ca);ua.append(Fa);Fa=a.Node.create("<li>").addClass(Ca).set("text",p(Ca));Ca===D&&Fa.addClass("active");Fa.on("click",c.bind(this,Ca,null));ha.append(Fa)});fa=O.one(".background");fa.on("click",
1604function(Ca){Ca.target&&Ca.target._node&&Ca.target._node.classList&&Ca.target._node.classList.contains("background")&&ba()});a.one(document.body).on("click",function(Ca){na&&(Ca.target.ancestor(".tableListingsBoxTop .dropup",!0)||m())});X()}});a.on("ad:removed",X);a.on("window:resized",X);a.on("comm:table.listings",function(ka){if(ta){T();var ha=Date.now(),Ca=null,Fa=null,za=!1,Ia=()=>{ka.listings.forEach(function(Pa){var Ka=Pa.gameid,Sa=[];if(!a.wocg.platformGameid()||a.wocg.platformGameid()==Ka){Ka==
1605D&&(Ca=Pa.activeMultiplayerTablesCount,Fa=Pa.activeSoloTablesCount);if(ka.init){var Q={};Pa.tables.forEach(function(W){Q[W.id]=!0});for(const [W,aa]of Object.entries(l))aa.game!=Ka||Q[W]||(F(W),Sa.push(W))}for(const [W,aa]of Object.entries(l))aa.game==Ka&&aa.id.includes("empty-")&&!Pa.tables.some(oa=>oa.id==W)&&(F(W),Sa.push(W));Pa.tables.forEach(function(W){if(l[W.id]){var aa=W.id;W.expired?F(aa,!za):(W.empty&&W.ranked?(W=W.e,aa="empty-ranked-"+Ka,"hearts"===Ka&&(!W||-1>W.indexOf("sr"))&&(aa+="-1")):
1606W.empty&&(W=W.e,aa="empty-"+Ka,"hearts"===Ka&&(!W||-1>W.indexOf("sr"))&&(aa+="-1")),F(aa));Sa.push(aa)}});Pa.tables.forEach(function(W){var aa=l[W.id];W.expired||aa||N&&W.tableNumber!=N||(W.started&&(W.startTime=ha),W.empty||B(Ka,W,!Sa.includes(W.id),ha))});Pa.tables.forEach(function(W){var aa=l[W.id];W.expired||aa||N&&W.tableNumber!=N||(W.started&&(W.startTime=ha),W.empty&&B(Ka,W,!Sa.includes(W.id),ha))})}});qa.setData("activeMultiplayerTablesCount",Ca).setData("activeSoloTablesCount",Fa);v(ha,ka)};
1607if(ka.init)Ia(),h();else{q();var Ga=M(D),La={};Ga&&(ka.listings.forEach(function(Pa){Pa.tables.forEach(function(Ka){if(Ka.expired){var Sa=Ga.one("#"+("allgames"===D?"allGames"+Ka.id:Ka.id));Sa&&(Ka=Sa.getDOMNode().getBoundingClientRect(),Sa=Sa.getDOMNode().cloneNode(!0),Sa.removeAttribute("id"),Sa.style.position="fixed",Sa.style.top=Ka.top+"px",Sa.style.left=Ka.left+"px",Sa.style.width=Ka.width+"px",Sa.style.height=Ka.height+"px",Sa.style.margin="0",Sa.style.opacity="1",Sa.style.pointerEvents="none",
1608Sa.style.transition="none",Sa.style.boxSizing="border-box",Ga.getDOMNode().appendChild(Sa),ia.push(Sa))}})}),Ga.all(".tableListing").each(function(Pa){var Ka=Pa.get("id");Ka&&(La[Ka]=Pa.getDOMNode().getBoundingClientRect())}));U=za=!0;try{Ia()}finally{U=!1}h();Ga&&(Ga.all(".tableListing").each(function(Pa){var Ka=Pa.get("id");if(Ka)if(La[Ka]){Pa.getDOMNode().style.opacity="1";var Sa=La[Ka],Q=Pa.getDOMNode().getBoundingClientRect();Ka=Sa.left-Q.left;Sa=Sa.top-Q.top;if(.5<Math.abs(Ka)||.5<Math.abs(Sa))Pa=
1609Pa.getDOMNode(),Pa.style.transform="translate("+Ka+"px, "+Sa+"px)",Pa.style.transition="none",Pa.style.pointerEvents="none",R.push(Pa)}else ra.push(Pa.getDOMNode())}),0<R.length||0<ia.length||0<ra.length)&&(Ga.getDOMNode(),R.forEach(function(Pa){Pa.style.transition="transform 240ms ease-in-out";Pa.style.transform=""}
1609),ia.forEach(function(Pa){Pa.style.transition="opacity 160ms ease-in-out";Pa.style.opacity="0"}),ra.forEach(function(Pa){Pa.style.transition="opacity 320ms ease-in-out "+(0<R.length?"160ms":
1610"0ms");Pa.style.opacity="1"}),Ba=setTimeout(q,0<R.length?500:340))}}});a.on("comm:table.listings.finished",function(ka){ba(!0)});a.on("theme:changed",function(){u&&(u=!1);X()});a.on("comm:gameSelectors.show",function(){if(b){var ka=a.wocg.hasActiveGame()?320:0;setTimeout(function(){a.wocg.Table.isFindingTable()||null!==a.wocg.Table.getCurrentTable()&&!a.wocg.Table.getCurrentTable().tableLeaveSent&&0<a.wocg.Table.getCurrentTable().gameCreatedTime||setTimeout(G,C.TABLE_BAR_ANIMATION_DELAY)},ka)}});
1611a.on("table:created",function(){setTimeout(E,C.TABLE_BAR_ANIMATION_DELAY)});a.on("tableListingsBar:tableListingsClicked",J)},"1.0",{requires:"wocg wocg.Comm KeyboardShortcuts Transition wocg.MenuBar wocg.GameSelectors".split(" ")});
1612YUI.add("wocg.StatsBox",function(a){function q(J,G=!0){var E=J.target.ancestor(".option",!0).getData("menuid");"stats"!=E&&(n(G),"userOptions"==E?a.wocg.ProfileBox.showProfileBox(G):a.wocg.MenuBar.optionsMenuBarMouseDownHandler(J,G))}function w(){var J=a.wocg.Theme.getCurrentThemeConfig(),G=a.Node.create("<div>").addClass("radios"),E=a.Node.create("<span>").addClass("all");G.append(E);var L={all:"All Games "},T=-1;C.GAME_ORDER.forEach(function(ma,ea){C.GAMEIDS.contains(ma)&&(T=ea%4,G.append(a.Node.create("<span>").addClass(ma)),
1613L[ma]=C.GAME_NAMES[ma]+" ")});G.append(a.Node.create("<span>").setAttribute("colspan",T));S=new a.Radio("statGame",L,{dimensions:J.radioDimensions,imagePath:"images/radio/"+J.id+"/",imageBuilder:a.wocg.buildAssetImageURL});S.setChecked(A,!0);S.addValueChangeHandler(x);Object.forEach(S.nodeMap,function(ma,ea){G.one("."+ma).append(ea)});B.insert(G,"after");a.wocg.isSourceArkadium()&&(G.setStyle("display","none"),p.one(".statsContainer").addClass("stats-separator"),p.one(".gamePopularityHeader").setStyle("display",
1614"none"),p.one(".gamePopularity").setStyle("display","none"))}function k(J,G,E){var L=a.wocg.Theme.getCurrentThemeConfig();E=E||{};
1614var T={chart:{margin:[40,16,16,16],renderTo:J,plotBackgroundColor:null,plotBorderWidth:null,plotShadow:!1,backgroundColor:"transparent",events:{load:function(){m()}}},credits:{enabled:!1},title:null,tooltip:{useHTML:!0,style:{fontFamily:L.font,fontSize:"var(--font-size-xs)"},formatter:function(){var ea="<strong>Played:</strong> "+accounting.formatNumber(this.y)+" times";
1615return"<strong>"+this.point.name+"</strong>: "+Math.floor(this.percentage)+"%<br/>"+ea},backgroundColor:"#f8f9fa",borderColor:"#343A40",borderWidth:1,padding:"8px",borderRadius:"6px",opacity:"0.88",shadow:{color:"black",offsetX:0,offsetY:0,opacity:.02,width:12}},plotOptions:{pie:{borderColor:"#161616",size:"100%",dataLabels:{connectorWidth:2,distance:10,useHTML:!0,style:{fontFamily:L.font,fontSize:"var(--font-size-xs)"},color:"#212529",formatter:function(){return Math.floor(this.percentage)+"%"}}}},
1616series:[{type:"pie",name:"none",data:[]}]};E.title&&(T.title={text:E.title,style:{fontSize:"var(--font-size-md)",color:"#212529",fontWeight:"normal",fontFamily:L.font}});var ma="#619ED6 #6BA547 #F7D027 #E48F1B #B77EA3 #E64345 #60CEED #9CF168 #F7EA4A #FBC543 #FFC9ED #E6696E".split(" ");G.forEach(function(ea,ba){T.series[0].data.push({name:ea.name,y:ea.value,color:ma[ba]})});return T}function x(J,G){A=G;y()}function y(){function J(ba){ba=Math.floor(ba/1E3);var X=Math.floor(ba/60),I=Math.floor(X/60),
1617O=Math.floor(I/24),fa=Math.floor(O/7),ta=Math.floor(O/30),ua=Math.floor(O/365);return 0<ua?ua+" year"+(1<ua?"s":""):0<ta?ta+" month"+(1<ta?"s":""):0<fa?fa+" week"+(1<fa?"s":""):0<O?O+" day"+(1<O?"s":""):0<I?I+" hour"+(1<I?"s":""):0<X?X+" min"+(1<X?"s":""):ba+" sec"+(1!==ba?"s":"")}function G(){["user","global"].forEach(function(ba){var X=[],I=0,O=!0,fa=0;C.GAMEIDS.forEach(function(ta){ta=M[ba][ta].finished+M[ba][ta].abandoned;0<ta&&(O=!1,fa+=ta)});C.GAMEIDS.forEach(function(ta){var ua=M[ba][ta].finished+
1618M[ba][ta].abandoned;if(0!==ua){var qa=ua/fa*100;A===ta||"all"===A&&1<=qa?X.push({name:C.GAME_NAMES[ta],value:ua,id:ta}):I+=ua}});"all"!==A&&0<I&&X.push({name:"Other",value:I});X.sort(function(ta,ua){return ua.value-ta.value});O?p.one("#gamePopularityPie"+ba.toProperCase()).empty():new Highcharts.Chart(k("gamePopularityPie"+ba.toProperCase(),X,{title:"user"===ba?"You":"Globally"}))})}if(M){var E=p.one(".statsContainer .stats"),L="all"===A?M.user:M.user[A];v(L);var T=L.finished+L.abandoned,ma=L.winsAbsolute,
1619ea=L.lossesAbsolute;E.one(".played td:nth-child(2)").setContent(accounting.formatNumber(T));E.one(".finished td:nth-child(2)").setContent(accounting.formatNumber(L.finished));E.one(".abandoned td:nth-child(2)").setContent(accounting.formatNumber(L.abandoned));E.one(".winsAbsolute td:nth-child(2)").setContent(accounting.formatNumber(ma));E.one(".lossesAbsolute td:nth-child(2)").setContent(accounting.formatNumber(ea));E.one(".averageGameLength td:nth-child(2)").setContent(J(L.timePlayed*base.SECOND/
1620T||0));E.one(".totalPlaytime td:nth-child(2)").setContent(J(L.timePlayed*base.SECOND));T="all"===A?M.global:M.global[A];ma=T.finished+T.abandoned;E.one(".played td:nth-child(3)").setContent(accounting.formatNumber(ma));E.one(".finished td:nth-child(3)").setContent(accounting.formatNumber(T.finished));E.one(".abandoned td:nth-child(3)").setContent(accounting.formatNumber(T.abandoned));E.one(".winsAbsolute td:nth-child(3)").setContent(accounting.formatNumber(T.winsAbsolute));E.one(".lossesAbsolute td:nth-child(3)").setContent(accounting.formatNumber(T.lossesAbsolute));
1621E.one(".averageGameLength td:nth-child(3)").setContent(J(T.timePlayed*base.SECOND/ma||0));E.one(".totalPlaytime td:nth-child(3)").setContent(J(T.timePlayed*base.SECOND));"undefined"!==typeof Highcharts?G():(E=function(){var ba=document.createElement("script");ba.src=a.wocg.buildAssetJSURL("js/highcharts.src");ba.onload=G;document.head.appendChild(ba)},"undefined"!==typeof jQuery?E():(T=document.createElement("script"),T.src=a.wocg.buildAssetJSURL("js/jquery"),T.onload=E,document.head.appendChild(T)));
1622E=p.one(".winLossRatioBar");E.setStyle("display","none");T=L.wins+L.losses;E.setData("noWinLoss",0===T?!0:!1);T=Math.round(L.wins/T*100);E.one(".win").setData("percentage",T);E.one(".loss").setData("percentage",100-T);E=p.one(".winLossAbsoluteRatioBar");E.setStyle("display","none");T=L.winsAbsolute+L.lossesAbsolute;
1622E.setData("noWinLossAbsolute",0===T?!0:!1);L=Math.round(L.winsAbsolute/T*100);E.one(".winAbsolute").setData("percentage",L);E.one(".lossAbsolute").setData("percentage",100-L);m(!0)}}function v(J){var G=
1623function(ea,ba,X){var I="";ba&&ba.length?(I+="Elo rating: ",ba.forEach(function(O,fa){var ta=O.value;0<ta&&(0<fa&&(I+=" | "),ta=accounting.formatNumber(ta),O=O.rankedOption,X[O]=!0,O=C.RANKED_OPTIONS_PRETTY[ea][O],I+=ta,O&&(I+=" ("+O+")"))}),"Elo rating: "===I&&(I+=" Not available.")):I+="Elo rating: Not available.";return I},E=p.one(".statsExtras");if("hearts"===A){var L="";var T=" &nbsp; · &nbsp; ";var ma={};L+=G("hearts",J.elo,ma);J.nTimesQueenDroppedOnLowManHearts&&J.nTimesQueenHeldHearts&&J.nTimesQueenDroppedOnLowManHearts.length&&
1624(L.length&&(L+=T),L+=" Skill: ",J.nTimesQueenDroppedOnLowManHearts.forEach(function(ea,ba){var X=J.nTimesQueenHeldHearts[ba],I=X.rankedOption;if(ma[I]){X=X.value;ea=ea.value;var O=accounting.formatNumber(100*ea/X);0<ba&&(L+=" | ");X=accounting.formatNumber(X);ea=accounting.formatNumber(ea);ba=C.RANKED_OPTIONS_PRETTY.hearts[I];L+=O+"% ("+accounting.formatNumber(ea)+"  ̸ "+accounting.formatNumber(X)+")";ba&&(L+=" ("+ba+")")}}))}else"spades"===A?(L="",T=" &nbsp; · &nbsp; ",L+=G("spades",J.elo,{}),J.nTimesSetNilSpades&&
1625J.nTimesFacedNilSpades&&(L.length&&(L+=T),T=100*J.nTimesSetNilSpades/J.nTimesFacedNilSpades,T=accounting.formatNumber(T),L+=" Skill: "+T+"% ("+accounting.formatNumber(J.nTimesSetNilSpades)+"  ̸ "+accounting.formatNumber(J.nTimesFacedNilSpades)+")")):"euchre"===A||"pinochledd"===A||"twentynine"===A?(L="",T=" &nbsp; · &nbsp; ",L+=G(A,J.elo,{})):E.setStyle("display","none");L&&(E.setContent(L),E.setStyle("display","block"))}function d(J=!0){if(c&&!h){a.wocg.MenuBar.setVisibleMenuId("stats");var G=function(){h=
1626!0;a.KeyboardShortcuts.on("escape",n)};J?(c.removeClass("modalInstant"),c.removeClass("modalClosing"),c.setStyle("display","flex").setStyle("opacity",0),a.Transition.run({node:c,duration:220,opacity:1,cb:G})):(c.addClass("modalInstant"),c.removeClass("modalClosing"),c.setStyle("display","flex").setStyle("opacity",1),G());m();S.visibilityChangeHandler(!0);a.wocg.Comm.send("stats.get")}}function n(J=!0){if(c&&h){a.KeyboardShortcuts.detach("escape",n);var G=function(){h=!1;c.setStyle("display","none");
1627c.removeClass("modalClosing");c.removeClass("modalInstant")};J?(c.removeClass("modalInstant"),c.addClass("modalClosing"),a.Transition.run({node:c,duration:160,opacity:0,cb:G})):(c.setStyle("opacity",0),G());S.visibilityChangeHandler(!1)}}function m(J){J&&(H("Absolute"),H(""))}function H(J){var G=p.one(".winLoss"+J+"RatioContainer"),E=G.one(".winLoss"+J+"RatioLabel"),L=G.one(".winLoss"+J+"RatioBar");L.setStyle("width","0px");if(L.getData("noWinLoss"+J))L.setStyle("display","none"),G.one(".winLoss"+
1628J+"RatioNoWinLossesText").setStyle("display","inline");else{var T=G.getWidth()-E.getWidth();L.setStyle("display","block");G.one(".winLoss"+J+"RatioNoWinLossesText").setStyle("display","none");L.setStyle("width",T+"px");L.setStyle("marginLeft",E.getWidth()+"px");var ma=L.one(".win"+J);G=Math.floor(T*(ma.getData("percentage")/100));ma.setStyle("width",G+"px");ma.setStyle("height",E.getHeight()+"px");ma.setStyle("opacity",0);ma.setData("text","Win "+ma.getData("percentage")+"%");ma.setAttribute("data-percentage",
1629ma.getData("percentage"));L=L.one(".loss"+J);L.setStyle("width",Math.floor(T*(L.getData("percentage")/100))+"px");L.setStyle("marginLeft",G+"px");L.setStyle("height",E.getHeight()+"px");L.setStyle("opacity",0);L.setData("text","Lose "+L.getData("percentage")+"%");L.setAttribute("data-percentage",L.getData("percentage"));setTimeout(function(){var ea=".winLoss"+J+"RatioBar";ea=p.one(".winLoss"+J+"RatioContainer").one(ea);var ba=ea.one(".win"+J);ba.setContent(ba.getData("text"));a.Transition.run({node:ba,
1630duration:400,opacity:1});ea=ea.one(".loss"+J);ea.setContent(ea.getData("text"));a.Transition.run({node:ea,duration:400,opacity:1})},base.SECOND)}}var c=null,e=null,h=!1,p=null,t=null,B=null,F=!1,S=null,A="all",M=null;a.wocg.StatsBox={showStatsBox:d,hideStatsBox:n,statsClickHandler:function(J,G=!0){c&&(h?n(G):d(G))}};a.on("domready",function(){a.one("#userBar");if(c=a.one("#statsBox")){c.setAttribute("role","dialog").setAttribute("aria-modal","true").setAttribute("aria-label","Statistics");e=c.one(".background");
1631p=c.one(".statsBoxContent");t=c.one(".innerBox");B=a.Node.create("<ul>").addClass("optionsMenuBar");var J=a.Node.create("<li>").addClass("option").addClass("userOptions").setData("menuid","userOptions").setContent("Options"),G=a.Node.create("<li>").addClass("option").addClass("deck").setData("menuid","deck").setContent("Deck"),E=a.Node.create("<li>").addClass("option").addClass("wallpaper").setData("menuid","wallpaper").setContent("Wallpaper"),L=a.Node.create("<li>").addClass("option").addClass("avatar").setData("menuid",
1632"avatar").setContent("Avatar"),T=a.Node.create("<li>").addClass("option").addClass("stats").setData("menuid","stats").setContent("Stats");B.appendChild(J);B.appendChild(G);B.appendChild(E);B.appendChild(L);B.appendChild(T);t.prepend(B);J.on("mousedown",function(ma){q(ma,!1)});G.on("mousedown",function(ma){q(ma,!1)});E.on("mousedown",function(ma){q(ma,!1)});L.on("mousedown",function(ma){q(ma,!1)});e.on("click",function(ma){ma.target&&ma.target._node&&ma.target._node.classList&&ma.target._node.classList.contains("background")&&
1633n()})}});a.on("theme:changed",function(){c&&!F&&(F=!0,w())});a.on("comm:stats",function(J){M=J;y();J=a.wocg.platformGameid();a.wocg.isSourceArkadium()&&A!=J&&x(null,J)})},"1.0",{requires:["wocg","KeyboardShortcuts","wocg.MenuBar"]});
1634YUI.add("wocg.GameSelector",function(a){function q(){return a.wocg.isNativeApp()||0<a.wocg.User.getSiteSupporterLevel()?!0:!!(a.AdWidget&&a.AdWidget.isAdRemoved&&a.AdWidget.isAdRemoved())}function w(A){if(A&&0<A.siteSupporterLevel||q())S=!1,F&&(F.close(),F=null)}function k(){try{if(!window.localStorage)return null;var A=window.localStorage.getItem("wocgAdBlockGateSearchEntry"),M=A?JSON.parse(A):null;return!M||!M.expiresAt||Date.now()>=M.expiresAt?(window.localStorage.removeItem("wocgAdBlockGateSearchEntry"),
1635null):{createdAt:parseInt(M.createdAt,10)||Date.now(),gamesFinished:"undefined"===typeof M.gamesFinished?"used"===M.status?2:0:parseInt(M.gamesFinished,10)||0,expiresAt:parseInt(M.expiresAt,10)}}catch(J){return null}}function x(){var A=new Date;A.setHours(24,0,0,0);return A.getTime()}function y(A){try{window.localStorage&&window.localStorage.setItem("wocgAdBlockGateSearchEntry",JSON.stringify({createdAt:A.createdAt||Date.now(),gamesFinished:parseInt(A.gamesFinished,10)||0,expiresAt:A.expiresAt||x()}))}catch(M){}}
1636function v(){var A=k();return A?0>=A.gamesFinished?!0:1===A.gamesFinished&&6E5>Date.now()-A.createdAt:!1}function d(){var A=window.__wocgGetAdBlockStatus?window.__wocgGetAdBlockStatus():window.__wocgAdBlockStatus;return!(!A||!0!==A.detected)}function n(){return!!(a.wocg.User&&a.wocg.User.isRegistered&&a.wocg.User.isRegistered())}function m(){return!(a.wocg.shouldHideSubscriptionLinks&&a.wocg.shouldHideSubscriptionLinks())}function H(){var A="Ads keep World of Card Games free. Click your ad blocker icon, allow this site, then reload.";
1637m()&&(A+=n()?" Or subscribe to play ad-free.":" Sign in to subscribe.");return A}function c(){m()&&(n()?a.AdWidget&&a.AdWidget.showSubscriptionPricing?a.AdWidget.showSubscriptionPricing({onConfirmed:function(){F&&(F.close(),F=null)}}):a.fire("Notice:show",{message:"Use the Hide Ads area to subscribe and play ad-free.",type:"info"}):a.wocg.Auth&&a.wocg.Auth.showLogin?a.wocg.Auth.showLogin({source:"ad_block_gate",mode:"signup"}):a.fire("Notice:show",{message:"Sign in or create an account to subscribe.",
1638type:"warning"}))}function e(){a.wocg.updateAds&&a.wocg.updateAds();return new Promise(function(A){var M=Date.now(),J=function(){var G=Date.now()-M;
1638d()?A():q()?A():10500<=G?A():setTimeout(J,250)};J()})}function h(){if(!F&&!q()){var A=n(),M=m();F=new a.ModalConfirm("Turn off your ad blocker",H(),M?"Reload":"",M?A?"Subscribe":"Sign in":"Reload","green",{nonDismissible:!0,cancelColor:"green",closeOnCancel:!1,closeOnOk:!1});F.show(function(J){M&&J?c():(window.confirmedLeave=!0,window.location.reload())})}}
1639function p(){var A=3>a.wocg.User.getFinishedGames()?"finished_games_below_threshold":0<a.wocg.User.getSiteSupporterLevel()?"site_supporter":a.AdWidget&&a.AdWidget.isAdRemoved&&a.AdWidget.isAdRemoved()?"ads_removed":v()?"search_engine_entry_game_available":d()?null:"ad_block_not_detected";A&&"ad_block_not_detected"!==A||F||S||(S=!0,e().then(function(){S=!1;var M;if(M=3<=a.wocg.User.getFinishedGames()&&d()&&!v())M=a.wocg.Table&&a.wocg.Table.getCurrentTable?a.wocg.Table.getCurrentTable():null,M=!(M&&
1640M.gameStarted&&!M.gameOver);M&&!q()&&h()}))}var t=a.wocg.Comm,B="google. bing.com duckduckgo.com yahoo. ecosia.org search.brave.com yandex. baidu.com naver.com seznam. qwant.com startpage.com".split(" "),F=null,S=!1;(function(){try{if(!document.referrer)return!1;var A=document.createElement("a");A.href=document.referrer;var M=(A.hostname||"").toLowerCase();for(A=0;A<B.length;A++){var J=M,G=B[A];var E="."===G.charAt(G.length-1)?0===J.indexOf(G)||-1<J.indexOf("."+G):J===G||J.slice(-(G.length+1))===
1641"."+G;if(E)return!0}}catch(L){}return!1})()&&!k()&&y({createdAt:Date.now(),gamesFinished:0,expiresAt:x()});a.wocg.GameSelector=function(A,M,J){function G(){return t.isConnectionEstablished()?!0:(a.fire("Notice:show",{message:"Connecting to server, please wait...",type:"info"}),!1)}function E(I){var O="You're currently banned from multiplayer games.";a.wocg.User.isFirstGameFinished()?a.wocg.User.isVPN()?O="Multiplayer is disabled on VPN or proxy connections. Turn off your VPN to play with other people.":
1642a.wocg.User.isBanned()||(O="The server may be down. Please try again in a few minutes."):O=a.wocg.User.getGamePracticeRequiredMessage(I);return O}function L(I){a.fire("Notice:show",{message:a.wocg.User.getGamePracticeRequiredMessage(I),type:"warning"})}function T(I){return!!I&&!0===I.privateTable&&I.privateTableName===C.ANONYMOUS_TABLE_NAME&&!I.ranked}function ma(I){return a.wocg.User.isMultiplayerAllowed()?a.wocg.User.requiresGamePractice(I)?a.wocg.User.getGamePracticeRequiredMessage(I):a.wocg.User.isExperienced()?
1643a.wocg.User.getNoRank_Game(I)?"You are not participating in ranked "+C.GAME_NAMES[I]+" games.":null:"You must complete 10 games to play ranked games.":a.wocg.User.isFirstGameFinished()?a.wocg.User.isVPN()?"Multiplayer is disabled on VPN or proxy connections. Turn off your VPN to play with other people.":a.wocg.User.isBanned()?"You're currently banned from ranked games.":"The server may be down. Please try again in a few minutes.":a.wocg.User.getGamePracticeRequiredMessage(I)}function ea(I,O){var fa=
1644null,ta=C.RANKED_EXTRA_GAME_OPTIONS_MAP[I];if(ta&&O&&O.hasClass){I=Object.keys(C.RANKED_OPTIONS_MENU_PRETTY[I]);for(var ua=I.length,qa=0;qa<ua;qa++){var na=I[qa];""!==na&&O.hasClass(na)&&(fa=na,fa=ta[fa])}}return fa}function ba(){a.all("#gameSelectorContainer .dropup.open").removeClass("open")}function X(I,O,fa){I&&(I.detach("click"),I.on("click",O,fa))}this.optionCheckboxes={};this.optionRadios={};this.saveOptionsTimer=null;this.disabled=J;this.gameid=this.gameOptions=this.currentPlayerCount=null;
1645a.wocg.GameSelector.prototype.init=function(I,O){this.gameid=I;O&&(this.gameOptions=base.clone(O),this.gameOptions.gameid=I);this.update()};a.wocg.GameSelector.prototype.hide=function(){this.node.setStyle("display","none")};a.wocg.GameSelector.prototype.show=function(){this.node.setStyle("display","block")};a.wocg.GameSelector.prototype.gameOptionsHandler=function(I){I&&(this.gameOptions=I,this.gameOptions.gameid=this.gameid)};a.wocg.GameSelector.prototype.preloadImages=function(){this.disabled||
1646a.wocg.isPlatformMobile()||a.UA.ios||a.UA.android||(a.ImagePreloader.preload(a.wocg.buildAssetImageURL("images/gameSelector/"+this.themeConfig.id+"/"+this.gameid+"Hover.jpg")),a.ImagePreloader.preload(a.wocg.buildAssetImageURL("images/gameSelector/"+this.themeConfig.id+"/"+this.gameid+"[email protected]")))};a.wocg.GameSelector.prototype.findTableHandler=function(I){G()&&a.fire("tableListings
1646Bar:tableListingsClicked",this.gameid)};a.wocg.GameSelector.prototype.gameClickHandler=function(I){I&&I.preventDefault();
1647if(G()){if(a.wocg.ShutdownNotice.isShuttingDown()&&a.wocg.ShutdownNotice.getTimeLeft()<C.SHUTDOWN_TIME_LOCKOUT_LENGTH)return a.fire("Notice:show",{message:"You can't start a new game right now, the server is shutting down soon.",type:"warning"});a.wocg.Table.isFindingTable()||null!==a.wocg.Table.getCurrentTable()&&!a.wocg.Table.getCurrentTable().tableLeaveSent&&0<a.wocg.Table.getCurrentTable().gameCreatedTime||(I={...(this.gameOptions||{}),privateTable:!1,ranked:!1},a.wocg.User.isMultiplayerAllowed()?
1648!a.wocg.User.isFirstGameFinished()||a.wocg.User.requiresGamePractice(this.gameid,I)?(L(this.gameid),a.fire("menu:clicked",{gameid:this.gameid,tutorial:!1,lobby:!1,solo:!0,command:"findTable"})):(a.wocg.goToUrl("/"),this.findTable(I)):(a.fire("Notice:show",{message:E(this.gameid),type:"warning"}),a.fire("menu:clicked",{gameid:this.gameid,tutorial:!1,lobby:!1,solo:!0,command:"findTable"})),a.wocg.trackGoogleEvent&&a.wocg.trackGoogleEvent("click_selector",{gameid:this.gameid}),a.wocg.trackEvent("Click GameSelector",
1649{gameid:this.gameid}))}};a.wocg.GameSelector.prototype.playBotsClickHandler=function(I){G()&&a.fire("menu:clicked",{gameid:this.gameid,tutorial:!1,lobby:!1,solo:!0,command:"findTable"})};a.wocg.GameSelector.prototype.tutorialClickHandler=function(I){G()&&(a.fire("gameSelectors.hide"),a.fire("comm:table.create",{gameid:this.gameid,tutorial:!0}))};a.wocg.GameSelector.prototype.rulesClickHandler=function(I){a.wocg.isPlatformMobile()&&(I.preventDefault(),(new a.ModalRules).show())};a.wocg.GameSelector.prototype.dropupButtonClickHandler=
1650function(I){if(a.wocg.isPlatformMobile()||a.wocg.isTouchDevice()){var O=I.currentTarget.ancestor(".dropup");O&&O.one(".dropupContent")&&(I.preventDefault(),I.stopPropagation(),I=!O.hasClass("open"),ba(),I&&(O.addClass("open"),setTimeout(function(){a.one("body").once("click",ba)},0)))}};a.wocg.GameSelector.prototype.playRankedClickHandler=function(I,O){if(G())if(a.wocg.User.isRegistered()){var fa=ma(this.gameid);if(fa)a.fire("Notice:show",{message:fa,type:"warning"});else{var ta={gameid:this.gameid,
1651tutorial:!1,lobby:!1,ranked:!0,command:"findTable"};I?(I=ea(this.gameid,I.currentTarget))&&(ta.rankedOption=I):O&&(O.rematchId&&(ta.rematchId=O.rematchId),ta.rankedOption=O);ta.defaultOptions=!0;var ua=a.wocg.Table.getCurrentTable(),qa=!!ta.rematchId;a.wocg.TableBar.leaveWarning(ua,()=>{ua&&(a.wocg.goToUrl("/"),qa||a.fire("tableBar:leaveTableLinkClicked"));setTimeout(()=>{a.fire("menu:clicked",ta)},ua&&!qa?640:0)})}}else a.fire("ModalError:show",{message:"To play ranked games and appear on the leaderboards, <strong>register</strong> from the top right corner, <strong>finish 10 games</strong> and then <strong>join a ranked table</strong>.",
1652fatal:!1})};a.wocg.GameSelector.prototype.findTable=async function(I={},O=!0,fa=!1){if(!(!fa&&a.wocg.GameSelectors&&a.wocg.GameSelectors.shouldReloadBeforeNewGame&&a.wocg.GameSelectors.shouldReloadBeforeNewGame()&&a.wocg.GameSelectors.reloadWithPendingNewGameAction({type:"findTable",gameid:this.gameid,customOptions:I||{},saveOptions:!1!==O}))){a.CustomTooltip.hideTooltip();a.wocg.Table.startFindTableTimer();fa=a.wocg.createURLSearchParams(window.location.search);var ta=fa.get("platform-gameid");fa=
1653fa.get("table");var ua=window.location.pathname.split("/").filter(Boolean).pop();var qa=-1<Object.values(C.GAME_DIRS).indexOf(ua)&&!fa&&!(I&&0<Object.keys(I).length);I&&0<Object.keys(I).length?fa={...this.getDefaultOptions(this.gameid),...I}:(fa={...this.gameOptions},this.gameOptions||ua||ta||!O||(this.gameOptions=fa));O=a.wocg.User.isPracticeExemptTableRequest(fa);a.wocg.User.isMultiplayerAllowed()||O&&a.wocg.User.isBlockedByFirstGameRequirement()||(qa||T(fa)||a.fire("Notice:show",{message:E(fa.gameid||
1654this.gameid),type:"warning"}),qa=!0);T(fa)&&(qa=!0);fa&&(delete fa.c2c,delete fa.u2c,delete fa.c2u,delete fa.u2u,delete fa.newUser,qa?(delete fa.registeredOnly,delete fa.extraPrivateTableNames,delete fa.noGamesInProgress,delete fa.experiencedOnly,delete fa.forTable,delete fa.forPlayer,delete fa.join,fa.privateTable=!0,fa.noRobots=0,fa.ranked=!1,fa.registeredOnly=!1,fa.experiencedOnly=!1,fa.privateTableName=C.ANONYMOUS_TABLE_NAME,fa.difficulty="easy"):delete fa.difficulty);if(a.wocg.User.requiresGamePractice(fa.gameid,
1655fa))a.wocg.Table.stopFindTableTimer(),L(fa.gameid);else{fa&&delete fa.practiceExemptReason;if(t.isConnectionEstablished()){if("gofish"===fa.gameid&&!a.wocg.User.getUserConsented()&&(!fa.privateTable||fa.privateTable&&fa.privateTableName!=C.ANONYMOUS_TABLE_NAME)&&!a.wocg.isSourceArkadium()){a.wocg.Table.stopFindTableTimer();a.wocg.User.displayLegalConsentNoChoice();return}O=fa;I&&0<Object.keys(I).length&&!T(O)&&(I=a.wocg.User.getSubdirPathParamsIfAny())&&I.findTable&&I.gameid&&a.wocg.goToUrl("/");
1656p();t.send("table.find",fa)}else{ta=C.GAME_NAMES[this.gameid];I=C[this.gameid].MIN_PLAYERS;O={gameStarted:!1};O.gameid=this.gameid;O.info={elapsedTime:0,gameName:ta,noRobots:0,numSeats:4,privateTable:!0,privateTableName:"none",ranked:!1,registeredOnly:!1,replaceRobots:!1};O.players=[{avatar:"AnimalFox",gameRanks:{},isExperienced:!1,nFinishedGames:0,username:"Guest",you:!0}];for(ta=0;ta<I-1;ta++)O.players.push({});a.fire("comm:table.create",O)}a.wocg.trackGoogleEvent&&a.wocg.trackGoogleEvent("find_table",
1657fa);a.wocg.trackEvent("Find table",fa)}}};a.wocg.GameSelector.prototype.saveOptionsHandler=function(I){I&&(this.gameOptions=I)};a.wocg.GameSelector.prototype.saveOptionsAndCreateTableHandler=function(I){if(a.wocg.User.requiresGamePractice(this.gameid,I))L(this.gameid);else{var O=a.wocg.Table.getCurrentTable();a.wocg.TableBar.leaveWarning(O,()=>{O&&(a.wocg.goToUrl("/"),a.fire("tableBar:leaveTableLinkClicked"));I&&(this.gameOptions=I);setTimeout(()=>{this.findTable({...I,create:!0})},O?640:0)})}};a.wocg.GameSelector.prototype.saveOptionsAndJoinTableHandler=
1658function(I){var O=a.wocg.Table.getCurrentTable();a.wocg.TableBar.leaveWarning(O,()=>{O&&(a.wocg.goToUrl("/"),a.fire("tableBar:leaveTableLinkClicked"));setTimeout(()=>{this.findTable({...I,join:!0})},O?640:0)})};a.wocg.GameSelector.prototype.optionsClickHandler=function(I){G()&&(new a.ModalGameOptions(this.gameid,this.gameOptions,"options")).show(this.saveOptionsHandler.bind(this))};a.wocg.GameSelector.prototype.hostTableHandler=function(I){G()&&(a.wocg.User.isMultiplayerAllowed()?(new a.ModalGameOptions(this.gameid,
1659this.gameOptions,"hostTableOptions")).show(this.saveOptionsAndCreateTableHandler.bind(this)):a.fire("Notice:show",{message:E(this.gameid),type:"warning"}))};a.wocg.GameSelector.prototype.joinPrivateTableHandler=function(I){G()&&(new a.ModalGameOptions(this.gameid,this.gameOptions,"privateTableOptions")).show(this.saveOptionsAndJoinTableHandler.bind(this))};a.wocg.GameSelector.prototype.hostOrJoinPrivateTableHandler=function(I){this.findTable(I)};a.wocg.GameSelector.prototype.update=function(){a.one("#gameSelectorContainer .gameSelector")&&
1660(this.node=a.one("#gameSelectorContainer").one(".gameSelector."+this.gameid),this.image=this.node.one(".imageContainer img"),this.settings=this.node.one(".settings"),this.playerCount=this.node.one(".playerCount"),this.playButton=this.node.one(".play"),this.findTableButton=this.node.one(".findTable"),this.hostTableButton=this.node.one(".hostTable"),this.joinPrivateTableButton=this.node.one(".joinPrivateTable"),this.playBotsButton=this.node.one(".playBots"),this.tutorialButton=this.node.one(".tutorial"),
1661this.rulesButton=this.node.one(".rules"),this.playRankedButton=this.node.one(".playRanked"),this.playRankedTournamentButton=this.node.one(".playRankedTournament"));if(!this.disabled&&!a.wocg.isPlatformMobile()&&this.node){a.UA.ios||a.UA.android||(this.image.detach("mouseenter"),this.image.detach("mouseleave"),this.image.on("mouseenter",function(O){O=O.currentTarget;O.setAttribute("src",O.getAttribute("src").replaceAll("Normal","Hover"));O.getAttribute("srcset")&&O.setAttribute("srcset",O.getAttribute("srcset").replaceAll("Normal",
1662"Hover"))}),this.image.on("mouseleave",function(O){O=O.currentTarget;O.setAttribute("src",O.getAttribute("src").replaceAll("Hover","Normal"));O.getAttribute("srcset")&&O.setAttribute("srcset",O.getAttribute("srcset").replaceAll("Hover","Normal"))}));var I=C.GAME_NAMES[this.gameid];a.CustomTooltip.showOnHover(this.image,"Click to play "+I);this.settings&&a.CustomTooltip.showOnHover(this.settings,"Change "+I+" settings");this.playRankedButton&&!a.wocg.User.isRegistered()&&a.CustomTooltip.showOnHover(this.playRankedButton,
1663"Registered and experienced players only");this.playRankedTournamentButton&&!a.wocg.User.isRegistered()&&a.CustomTooltip.showOnHover(this.playRankedTournamentButton,"Tournament Rules - Registered and experienced players only")}this.node&&(a.wocg.isPlatformMobile()||X(this.image,this.gameClickHandler,this),X(this.playButton,this.gameClickHandler,this),X(this.findTableButton,this.findTableHandler,this),X(this.hostTableButton,this.hostTableHandler,this),X(this.joinPrivateTableButton,this.joinPrivateTableHandler,
1664this),X(this.playBotsButton,this.playBotsClickHandler,this),this.tutorialButton&&X(this.tutorialButton,this.tutorialClickHandler,this),this.rulesButton&&X(this.rulesButton,this.rulesClickHandler,this),this.playRankedButton&&X(this.playRankedButton,this.playRankedClickHandler,this),this.playRankedTournamentButton&&X(this.playRankedTournamentButton,this.playRankedClickHandler,this),this.node.all(".dropupButton").detach("click"),this.node.all(".dropupButton").on("click",this.dropupButtonClickHandler,
1665this),X(this.settings,this.optionsClickHandler,this),this.logoutButton&&X(this.logoutButton,this.logoutClickHandler,this));this.themeConfig=a.wocg.Theme.getCurrentThemeConfig();I=this.themeConfig.gameSelector||{};this.segmentSizes=I.segmentSizes;this.segmentPolys=I.segmentPolys};a.wocg.GameSelector.prototype.resize=function(){this.update()};a.wocg.GameSelector.prototype.updatePlayerCount=function(I){if(this.node&&(null!==this.currentPlayerCount||"undefined"!==typeof I)){var O="undefined"!==typeof I?
1666I:this.currentPlayerCount,fa=a.wocg.isSourceArkadium()?" people playing":" playing";this.playerCount.setContent(""+O+fa);this.currentPlayerCount=I}};a.wocg.GameSelector.prototype.getDefaultOptions=function(I){var O={};O.gameid=I;var fa=[];if(C[I].MIN_PLAYERS!==C[I].MAX_PLAYERS)for(var ta=C[I].MIN_PLAYERS;ta<=C[I].MAX_PLAYERS;ta++)fa.push(ta);else fa=[C[this.gameid].MIN_PLAYERS];O.numSeats=fa;O.noRobots=2;O.privateTable=!1;O.privateTableName=C.ANONYMOUS_TABLE_NAME;C[I].EXTRA_GAME_OPTIONS.forEach(function(ua){O[ua]=
1667C.EXTRA_GAME_OPTIONS_MAP[ua]["default"]});return O};a.wocg.GameSelector.prototype.destroy=function(){this.detachGlobalEvents()};a.wocg.GameSelector.prototype.moreGamesClickedHandler=function(I){this.detachGlobalEvents();var O=a.one("#gameSelectorContainer").getHeight();C.GAME_ORDER.indexOf(this.gameid);I=a.wocg.GameSelectors.getGameSelectorTop(this.gameid,I.page,O);a.Transition.run({node:this.node,duration:200,top:I});this.attachGlobalEvents()};a.wocg.GameSelector.prototype.logoutClickHandler=function(I){};
1668this.globalEventHandlers={"moreGames:clicked":this.moreGamesClickedHandler};a.wocg.GameSelector.prototype.attachGlobalEvents=function(){Object.forEach(this.globalEventHandlers,function(I,O){a.on(I,O,this)}.bind(this))};a.wocg.GameSelector.prototype.detachGlobalEvents=function(){Object.forEach(this.globalEventHandlers,function(I,O){a.detach(I,O)})};this.attachGlobalEvents();this.init(A,M)};a.on("user:finishedGame",function(){var A=k();A&&(A.gamesFinished+=1,y(A))});a.on("ad:removed",w);a.on("comm:user.init.complete",
1669w);a.on("comm:user.login.complete",w)},"1.0",{requires:["wocg","wocg.Comm","wocg.Auth","CustomTooltip","ModalConfirm"]});
1670YUI.add("wocg.GameSelectors",function(a){function q(){B&&((a.wocg.isPlatformMobile()?[a.wocg.platformGameid()]:C.GAMEIDS).forEac
1670h(function(E){if(E&&!t[E]){var L=new a.wocg.GameSelector(E,F[E],!C.GAMEIDS.contains(E));t[E]=L;M[E]&&L.updatePlayerCount(M[E]);S&&L.show()}}),k(),a.fire("gameselectors:done",{}))}function w(){(a.wocg.isPlatformMobile()?[a.wocg.platformGameid()]:C.GAMEIDS).forEach(function(E){if(E&&t[E]){var L=t[E];L.update();M[E]&&L.updatePlayerCount(M[E]);S&&L.show()}});k()}function k(){B&&
16710<B.getWidth()&&Object.forEach(t,function(E,L){L.preloadImages()})}function x(){if(B&&0!=B.getHeight()){a.wocg.updatePlayspaceLayoutClassesForViewport&&a.wocg.updatePlayspaceLayoutClassesForViewport();var E=a.AdWidget.isAdRemoved()?0:a.wocg.getTopAdOffset(),L=a.AdWidget.isAdRemoved()?0:a.wocg.getBottomAdOffset();E=a.wocg.isPlatformMobile()?B.getDOMNode().offsetTop+a.wocg.safeAreaBottom():88+E+L;E=Math.max(B.getHeight()+E,window.innerHeight);a.one("#mainContainer").setStyle("height",E+"px");a.one("body .helpBox").setStyle("top",
1672a.one("#mainContainer").getHeight()+a.one("body").getComputedStyleAsNumber("paddingTop")+"px");0<Object.keys(t).length&&0<B.getWidth()&&(v(),k())}}function y(E){if(null!==A||"undefined"!==typeof E){var L=("undefined"!==typeof E?E:A)||1,T=a.one("#globalPlayerCount .count");T&&T.setContent("&nbsp;· "+L+(1==L?" player":" players")+"  online");A=E}}function v(){Object.values(t).forEach(function(E){E.resize()})}function d(E){E=String(E||"").toLowerCase();return"1"===E||"true"===E||"yes"===E}function n(){var E=
1673a.wocg.Table.getCurrentTable();if(G)return!1;var L=a.wocg.queryParams?a.wocg.queryParams():{};if(d(L.disableAdReload)||d(L.disableNewGameReload)||window.ReactNativeWebView||window.electronAPI||a.wocg.isSourceArkadium())return!1;L=a.wocg.queryParams?a.wocg.queryParams():{};return d(L.forceNewGameReload)?!0:E&&(E.tutorial||0>=E.gameCreatedTime)?!1:!(!a.wocg.PageReset||!a.wocg.PageReset.shouldResetBeforeNewGame())}function m(E){try{a.wocg.setPendingNewGameReload(E)}catch(L){return a.wocg.clearPendingNewGameReload(),
1674!1}window.confirmedLeave=!0;if(a.wocg.PageReset&&a.wocg.PageReset.fireNewGameReset())return!0;window.location.replace(window.location.href);return!0}function H(){var E=a.wocg.getPendingNewGameReload&&a.wocg.getPendingNewGameReload();if(E&&!G){G=!0;a.wocg.clearPendingNewGameReload();try{if("playAgain"===E.type)c(E.gameid,E.options||{},!0);else if("menu"===E.type)h(E.data||{},!1!==E.saveOptions,!0);else if("findTable"===E.type){var L=p(E.gameid);L&&L.findTable(E.customOptions||{},!1!==E.saveOptions,
1675!0)}}finally{G=!1}}}function c(E,L={},T=!1){var ma=!!L.rematchId;if(ma||T||!n()||!m({type:"playAgain",gameid:E,options:L||{}}))a.wocg.goToUrl("/"),ma||a.fire("tableBar:leaveTableLinkClicked"),setTimeout(()=>{var ea=C.ALLOWED_RANKED_EXTRA_GAME_OPTIONS[E]||{};if(L.privateTable&&L.privateTableName==C.ANONYMOUS_TABLE_NAME)t[E].playBotsClickHandler();else if(L.privateTable&&L.privateTableName!=C.ANONYMOUS_TABLE_NAME){var ba={...t[E].getDefaultOptions(E),registeredOnly:!1,noGamesInProgress:!0,experiencedOnly:!1,
1676privateTable:!1,privateTableName:C.ANONYMOUS_TABLE_NAME},X;for(X in ba)if(L.hasOwnProperty(X)){ba[X]=L[X];"numSeats"==X&&(ba[X]=[L[X]]);var I=ea[X];void 0!=I&&(1==L[X]?ba[X]=I["1"]?1:!0:0==L[X]&&(ba[X]=I["2"]?0:!1))}L.rematchId&&(ba.rematchId=L.rematchId);t[E].hostOrJoinPrivateTableHandler(ba)}else if(L.ranked)ea={},1==L.standardRulesHearts&&(ea.standardRulesHearts=0),L.rematchId&&(ea.rematchId=L.rematchId),t[E].playRankedClickHandler(null,ea);else{ba={...t[E].getDefaultOptions(E),joinRecentlyCreatedTable:!0};
1677for(X in ba)L.hasOwnProperty(X)&&(ba[X]=L[X],"numSeats"==X&&(ba[X]=[L[X]]),I=ea[X],void 0!=I&&(1==L[X]?ba[X]=I["1"]?1:!0:0==L[X]&&(ba[X]=I["2"]?0:!1)));L.rematchId&&(ba.rematchId=L.rematchId);t[E].findTable(ba)}},ma?0:640)}function e(E){return E?t&&t[E]?t[E].gameOptions?{...t[E].gameOptions}:t[E].getDefaultOptions(E):null:F}function h(E,L=!0,T=!1){var ma=E.gameid,ea=p(ma);if("findTable"===E.command&&ea&&(T||!n()||!m({type:"menu",data:E,saveOptions:!1!==L}))){a.wocg.Table&&a.wocg.Table.preloadDeck&&
1678a.wocg.Table.preloadDeck();var ba={...e(ma)};if(!ba||E.defaultOptions)ba=ea.getDefaultOptions(ma);L||(ba.privateTableName=C.ANONYMOUS_TABLE_NAME,ba.privateTable=!1);E.create&&(ba.create=E.create);E.join&&(ba.join=E.join);"undefined"!==typeof E.forPlayer&&(ba.forPlayer=E.forPlayer);E.forTable&&(ba.forTable=E.forTable);E.privateTableName&&(ba.privateTableName=E.privateTableName);E.rematchId&&(ba.rematchId=E.rematchId);E.practiceExemptReason&&(ba.practiceExemptReason=E.practiceExemptReason);if(E.solo)ba.privateTable=
1679!0,ba.privateTableName=C.ANONYMOUS_TABLE_NAME,ba.noRobots=0,ba.ranked=!1,ba.registeredOnly=!1,ba.experiencedOnly=!1,delete ba.forTable,delete ba.forPlayer,delete ba.join;else{if(E.ranked&&a.wocg.User.isRegistered()&&a.wocg.User.isExperienced()){if(ba.ranked=!0,E.rankedOption){var X=E.rankedOption;
1679Object.keys(X).forEach(function(I){ba[I]=X[I]})}}else ba.privateTable=E.privateTableName&&E.privateTableName!==C.ANONYMOUS_TABLE_NAME?!0:!1;a.wocg.goToUrl("/")}ea.findTable(ba,L)}}function p(E){if(!B)return null;
1680t[E]||q();return t[E]}var t={},B=a.one("#gameSelectorContainer"),F={},S=!1,A=null,M={},J=!0,G=!1;a.wocg.GameSelectors={getGameSelectorTop:function(E,L,T){E=C.GAME_ORDER.indexOf(E);var ma=Math.floor(E/2);6===E&&(ma=1);T/=3;ma*=T;2===L&&0===E%2&&(ma-=T);return ma},getOptions:e,getGameSelector:p,reloadWithPendingNewGameAction:m,shouldReloadBeforeNewGame:n};a.on("domready",function(){x()});a.on("ad:removed",function(){x()});a.on("window:resized",x);a.on("theme:changed",function(){B&&(0===Object.keys(t).length&&
1681q(),x())});a.on("comm:gameSelectors.show",async function(E){if(B){var L=window.location.pathname.split("/")[1],T=!a.one("#gameSelectorContainer .gameSelector");if(!(S||L&&!a.wocg.isPlatformMobile())){var ma=100;a.wocg.hasActiveGame()&&(a.one("body").setAttribute("data-table-transitioning","true"),ma=960);var ea=()=>{a.one("body").setAttribute("data-table-transitioning","false");if(!a.wocg.Table.shouldBlockGameSelectorsShow(E)){a.one("body").setAttribute("data-table","false");a.wocg.clearActiveGameID();
1682a.wocg.clearPlayspaceLayoutClasses&&a.wocg.clearPlayspaceLayoutClasses();var I=a.one("#globalPlayerCount");I&&I.setStyle("display","block");B.setStyle("display","");k();Object.forEach(t,function(O,fa){!a.wocg.isPlatformMobile()&&!L||a.wocg.isPlatformMobile()&&a.wocg.platformGameid()==O?fa.show():fa.hide()});x();S=!0;a.Transition.run({delay:J?0:a.wocg.SCREEN_TRANSITION_DURATION,node:B,duration:a.wocg.SCREEN_TRANSITION_DURATION,opacity:1,cb:()=>{window.ReactNativeWebView&&window.ReactNativeWebView.postMessage("websiteLoaded")}});
1683J=!1;a.wocg.FooterBar.showFooterBar();a.wocg.TableBar.hideTableBar()}};if(T){var ba=new XMLHttpRequest;ba.onreadystatechange=function(){if(4===ba.readyState&&200===ba.status){var I=(new DOMParser).parseFromString(ba.responseText,"text/html"),O=a.one("#gameSelectorContainer");I=I.querySelector("#gameSelectorContainer");O&&I?(O.setHTML(I.innerHTML),w(),x(),setTimeout(ea,ma)):console.error('No element with class "content" found')}};ba.onerror=function(){console.error("Error:",ba.statusText)};ba.open("GET",
1684`${a.wocg.URL}/`,!0);ba.send()}else setTimeout(ea,ma);T="true"==await a.wocg.getCookie("bookmarkShown")||!1;var X=await a.wocg.getCookie("gamesPlayed");!a.wocg.isPlatformMobile()&&3<=parseInt(X||0)&&!T&&(a.fire("Notice:show",{message:`You can press <b>${-1!==window.navigator.userAgent.indexOf("Mac")?"Command":"Control"} + D</b> or tap ★ in your browser to bookmark World of Card Games.`,type:"info"}),a.wocg.setCookie("bookmarkShown",!0,{path:"/",domain:a.wocg.DOMAIN,expires:new Date(Date.now()+base.YEAR)}))}}});
1685a.on("comm:options",function(E){C.GAME_ORDER.forEach(function(L){E[L+"Options"]&&(F[L]=E[L+"Options"],t[L]&&t[L].gameOptionsHandler(F[L]))});H()});a.on("gameSelectors.hide",function(E){S&&B&&(S=!1,(E=a.one("#globalPlayerCount"))&&E.setStyle("display","none"),a.Transition.run({node:B,duration:a.wocg.SCREEN_TRANSITION_DURATION,opacity:0,cb:function(){B.setStyle("display","none")}}),Object.forEach(t,function(L,T){T.hide()}))});a.on("playAgain",c);a.on("comm:stats.playerCounts",function(E){y(E.global);
1686Object.forEach(E,function(L,T){C.GAME_ORDER.contains(L)&&(M[L]=T,t[L]&&t[L].updatePlayerCount(T))})});a.on("moreGames:clicked",function(E){page=E.page});a.on("menu:clicked",h)},"1.0",{requires:"wocg wocg.Comm wocg.Theme Checkbox FitText wocg.GameSelector Transition".split(" ")});
1687YUI.add("wocg.Comm",function(a){function q(){try{document.cookie="pool=; Path=/; Max-Age=0; SameSite=Lax"}catch(N){}}function w(){base.info("SOCKET INIT");var N={};T=!1;try{var P=SockJS.__lastInfo;if(!P){var ca=window.sessionStorage.getItem("wocgSockInfoCache");ca&&(window.sessionStorage.removeItem("wocgSockInfoCache"),P=JSON.parse(ca))}P&&P.info&&Date.now()-P.at<A&&(N.info=P.info,N.rtt=Math.max(P.rtt||0,400))}catch(xa){}E=new SockJS(`${a.wocg.URL}/sock`,null,N);E.onopen=x;E.onclose=y;E.onmessage=
1688h}function k(){J&&(J.stop(),J=null);
1688if(E){E.onopen=E.onclose=E.onmessage=function(){};try{E.close()}catch(N){}}D=ta=!1;w()}function x(){a.wocg.trackEvent("connectHandler",{serverIsShutDown:ma,connectedOnce:O,disconnectedOnce:fa,socketProtocol:E?E.protocol:null,prerendering:!!document.prerendering});ta=!0;base.info("SOCKET CONNECTED");O=!0;r=Date.now();T=!1;M=0;D=!1;a.fire("ModalProgress:hide",{id:"comm"});J&&(J.stop(),J=null);null!==L&&(L.stop(),L=null);a.fire("comm:connected");b||(window.addEventListener("offline",
1689function(N){a.wocg.trackEvent("User offline")}),window.addEventListener("online",function(N){a.wocg.trackEvent("User online");v()}),window.addEventListener("pagehide",function(N){try{c("table.closing",{})}catch(P){}}),b=!0)}function y(N){f=N&&"undefined"!==typeof N.code?N.code:null;u=N&&"undefined"!==typeof N.reason?N.reason:null;a.wocg.trackEvent("disconnectHandler",{...N,code:f,reason:u,serverIsShutDown:ma,connectedOnce:O,disconnectedOnce:fa});ta=!1;base.warn("SOCKET DISCONNECTED %o",N);O||q();
1690O||fa||d();var P=N.reason;!ma&&N&&"booted"===N.reason&&(window.__wocgPageResetInfo&&!window.__wocgUserInitCompleted?P="reset swap boot":a.wocg.User.commDisonnectedHandler());ma&&!P&&(P="booted");a.fire("comm:disconnected");O||"Normal closure"!==P?"booted"!==P&&(T||null!==L||(L=new Timer(1E3),L.start(n)),J&&J.stop(),D=!0,M=Math.min(M,S.length-1),J=new Timer(S[M++]),J.start(w)):(a.fire("ModalProgress:hide",{id:"comm"}),T||null!==L||(L=new Timer(1E3),L.start(m)))}function v(){document.hidden||ma||!D||
1691ta&&E&&1===E.readyState||(M=0,k())}function d(){fa=!0;setTimeout(function(){a.fire("comm:options",{avatar:"AnimalFox",happenings:{}})},100);setTimeout(function(){a.fire("comm:gameSelectors.show",{})},400)}function n(){T=!0;L=null}function m(){T=!0;L=null}function H(N,P){if(!E||1!==E.readyState)return!1;E.send(JSON.stringify([N,P||{}]));return!0}function c(N,P){"table.debug"===N?e(N,P):(base.info("%s SEND: [%o, %o]",((Date.now()-base.STARTUP_TIME)/1E3).toFixed(3),N,P||{}),H(N,P))}function e(N,P){ua++;
1692qa.reason=P.reason;na||(na=setTimeout(function(){qa.reason=ua+" "+(qa.reason||"");base.info("%s SEND: [%o, %o]",((Date.now()-base.STARTUP_TIME)/1E3).toFixed(3),N,qa||{});H(N,qa);ua=0;qa={};na=null},3*base.SECOND))}function h(N){p(JSON.parse(N.data))}function p(N){l=Date.now();B(!0);var P=N[0],ca=["user","options","error"];ea||ca.some(function(xa){return P.startsWith(xa)})?X&&P.startsWith("table.")&&"table.create"!==P?I.push(N):(base.info("%s RECV: %o",((Date.now()-base.STARTUP_TIME)/1E3).toFixed(3),
1693N),"gameSelectors.show"===P&&N[1]&&N[1].force&&a.wocg.Table&&a.wocg.Table.markCurrentTableLeaveSent&&a.wocg.Table.markCurrentTableLeaveSent(),"pool.inactive"===P&&(a.wocg.currentPoolInactive=!0),"user.init.complete"===P&&(ca=N[1]&&N[1].pool,a.wocg.serverPool="blue"===ca||"green"===ca?ca:null),a.fire("comm:"+P,N[1])):ba.push(N)}function t(){return{imagePreloaderNetworkFailure:a.ImagePreloader.getNetworkFailure(),averageFPS:"number"===typeof window.averageFPS?window.averageFPS:null,connectionEstablished:ta,
1694lastSocketCloseCode:f,lastSocketCloseReason:u,socketReadyState:E?E.readyState:null,msSinceLastMessage:l?Date.now()-l:null,navigatorOnline:navigator.onLine,sessionDurationSeconds:Math.max(0,Math.round((Date.now()-base.STARTUP_TIME)/1E3))}}function B(N){a.wocg.Table.hideTableError("Lost internet");a.wocg.Table.pollingSuggested()&&(clearTimeout(G),G=setTimeout(function(){if(a.wocg.Table.pollingSuggested())if(N)B(!1),a.wocg.Comm.send("table.poll.request",{});else{a.wocg.Table.showTableError("Lost internet");
1695var P=t();a.wocg.trackGoogleEvent&&a.wocg.trackGoogleEvent("list_internet",P);a.wocg.trackEvent("Lost internet",P);if(!ma&&E&&1===E.readyState&&(P=Date.now(),!(P-r<C.TABLE_POLL_INTERVAL||P-l<C.TABLE_POLL_INTERVAL))){a.wocg.trackEvent("PollForcedSocketClose",t());try{E.close()}catch(ca){}}}},C.TABLE_POLL_INTERVAL))}function F(N){let P=N.message;"You are not currently playing a game."!==P&&("You have been disconnected because you have been inactive for too long."==P&&(P+="<br /><div class='button blue' onclick='window.Y.wocg.reloadApp();'>Reconnect</div>"),
1696a.fire("ModalError:show",{message:P,fatal:N.fatal}),N.fatal&&clearTimeout(G),a.wocg.trackGoogleEvent&&a.wocg.trackGoogleEvent("server_error",{message:N.message,fatal:N.fatal}),a.wocg.trackEvent("Server error",{message:N.message,fatal:N.fatal,id:N.id}))}var S=[250,500,base.SECOND,5*base.SECOND,20*base.SECOND,base.MINUTE,5*base.MINUTE,10*base.MINUTE],A=5*base.MINUTE,M=0,J=null,G=null,E=null,L=null,T=!1,ma=!1,ea=!1,ba=[],X=!1,I=[],O=!1,fa=!1,ta=!1,ua=0,qa={},na=null,b=!1,f=null,u=null,l=0,r=0,D=!1;"undefined"!==
1697typeof document&&document.addEventListener("visibilitychange",v);a.wocg.Comm={init:w,send:function(N,P){c(N,P)},recv:function(N,P){p([N,P])},stopPolling:function(){clearTimeout(G)},reconnectNow:k,isConnectionEstablished:function(){return ta},getSocketProtocol:function(){return E?E.protocol:null},getMsSinceLastMessage:function(){return l?Date.now()-l:null},setGameModuleLoading:function(N,P){X=N;if(!N)if(!1===P)I=[];else for(;I.length;)p(I.shift())}};a.on("comm:error",F);a.on("server:shutdown",function(){ma=
1698!0;D=!1;var N=10;F({message:"Server has shut down. Reloading in <span id='shutdownReloadCountdown'>"+N+"</span> seconds...",fatal:!0});var P=setInterval(function(){N--;var ca=document.getElementById("shutdownReloadCountdown");ca&&(ca.textContent=N);0>=N&&(clearInterval(P),a.wocg.reloadApp())},base.SECOND);L&&(L.stop(),L=null);T=!1;a.fire("ModalProgress:hide",{id:"comm"})});a.on("theme:changed",function(){for(ea=!0;ba.length;)p(ba.shift())});a.on("table:created",function(N){if(a.wocg.serverPool&&(!N||
1699!N.tutorial))try{document.cookie="pool="+a.wocg.serverPool+"; Path=/; SameSite=Lax"}catch(P){}});a.on("comm:gameSelectors.show",function(){q()});a.one(document).on("keydown",function(N){27===N.keyCode&&a.UA.gecko&&N.preventDefault()})},"1.0",{requires:["wocg","ModalProgress","ModalError"]});
1700YUI.add("wocg.ShutdownNotice",function(a){function q(){a.Transition.run({node:x,opacity:0,duration:300,easing:"linear",cb:function(){x.removeClass("visible")}})}function w(){if(y){var v=k();0>=v?a.fire("server:shutdown"):(v/=base.SECOND,x.one(".clock").setContent(v.toClock()),setTimeout(w,base.SECOND))}}function k(){if(y)return Math.max(0,y-Date.now())}var x=a.one("#shutdownNotice"),y=null;a.wocg.ShutdownNotice={isShuttingDown:function(){return!!y},getTimeLeft:k};a.on("domready",function(){a.one("#mainContainer").append(x)});
1701a.on("window:resized",function(){});a.on("comm:server.shutdown",function(v){y=Date.now()+v.delay;x.addClass("visible");a.Transition.run({node:x,opacity:1,duration:300,easing:"linear"});w()});a.on("comm:disconnected",function(v){q()})},"1.0",{requires:["wocg","wocg.Comm"]});
1702YUI.add("wocg.PoolInactiveNotice",function(a){function q(){x=a.Node.create('<div id="poolInactiveNotice"><span class="message">Update ready. Reload to apply.</span></div>');a.one("#mainContainer").append(x)}function w(d){y||(y=!0,d.message&&x.one(".message").setContent(d.message),x.addClass("visible"),a.Transition.run({node:x,opacity:1,duration:300,easing:"linear"}),v&&clearTimeout(v),v=setTimeout(function(){k()},3E4))}function k(){a.Transition.run({node:x,opacity:0,duration:300,easing:"linear",cb:function(){x.removeClass("visible")}});
1703v&&(clearTimeout(v),v=null)}var x=null,y=!1,v=null;a.wocg.PoolInactiveNotice={isNotificationShown:function(){return y},hideNotice:k};a.on("domready",q);a.on("comm:pool.inactive",function(d){try{var n=a.wocg.Table&&a.wocg.Table.getCurrentTable?a.wocg.Table.getCurrentTable():null;var m=!(!n||n.destroyed||n.tutorial||!n.gameStarted||n.gameOver)}catch(H){m=!1}m||(x||q(),w(d))})},"1.0",{requires:["wocg","wocg.Comm"]});
1704YUI.add("wocg.Historian",function(a){function q(d){return(d||"/").split("?")[0].split("#")[0].replace(/\/+$/,"")||"/"}function w(){return a.wocg.Table&&a.wocg.Table.getCurrentTable?a.wocg.Table.getCurrentTable():null}function k(d){window.history&&window.history.pushState&&window.history.replaceState&&(window.history.replaceState({url:d},"",d),a.wocg.updateTitleForPath(d))}
1704function x(d){if(window.history&&window.history.pushState&&window.history.replaceState&&!a.wocg.isSourceArkadium()){var n=w();
1705n&&!n.tutorial&&!n.tableLeaveSent&&0<n.gameCreatedTime&&(d="string"===typeof d?d:window.location.pathname+window.location.search,window.history.pushState({url:d,tableBackGuard:!0},"",d))}}function y(){var d=w();if(!(d&&!d.tutorial&&!d.tableLeaveSent&&0<d.gameCreatedTime&&a.wocg.TableBar&&a.wocg.TableBar.leaveWarning))return!1;var n=window.location.pathname+window.location.search;a.wocg.TableBar.leaveWarning(d,function(){k("/"+window.location.search);a.fire("tableBar:leaveTableLinkClicked")},!1,function(){x(n)});
1706return!0}function v(){var d=window.location.pathname;d||(d="/");d+=window.location.search;window.history.replaceState({url:d,init:"true"},"",d);window.addEventListener("popstate",function(n){!y()&&n.state&&n.state.url&&(a.wocg.updateTitleForPath(n.state.url),"/"===q(n.state.url)?a.fire("comm:gameSelectors.show"):0<n.state.url.indexOf("tutorial")?a.fire("comm:table.create",{gameid:n.state.gameid,tutorial:!0,pushed:!0}):(n=q(n.state.url),1<n.length&&C.GAME_DIRS_INV[n.slice(1)]&&(k("/"+window.location.search),
1707a.fire("comm:gameSelectors.show"))))})}a.wocg.Historian={init:v};a.on("domready",v);a.on("table:created",x)},"1.0",{requires:["wocg"]});
1708YUI.add("wocg.PageReset",function(a){function q(da){try{return a.wocg.createURLSearchParams(window.location.search||"").get(da)}catch(Aa){return null}}
1708function w(da){da=q(da);return null!==da&&"false"!==da.toLowerCase()&&"0"!==da.toLowerCase()}function k(){return w("disablePageReset")||window.ReactNativeWebView||window.electronAPI||a.wocg.isSourceArkadium()?!0:!1}function x(){try{return!(!a.AdWidget||a.AdWidget.isAdRemoved())}catch(da){return!1}}function y(){return!!window.__wocgPageResetInfo||null!==
1709q("pageReset")}function v(){var da=window.__wocgPageResetInfo||null;return!!da&&"newgame"!==da.trigger}function d(da){try{for(var Aa=document.cookie.split(";"),Qa=0;Qa<Aa.length;Qa++){var Ta=Aa[Qa].split("=");if(Ta[0]&&Ta[0].trim()===da)return Ta.slice(1).join("=").trim()}}catch(Va){}return""}function n(){return d("wocg-cookie")||d("cookie")}function m(){try{window.sessionStorage.removeItem("wocgPageResetFireSnapshot")}catch(da){}}function H(){try{var da=window.sessionStorage.getItem("wocgPageResetFireSnapshot"),
1710Aa=da?JSON.parse(da):null;return!Aa||!Aa.createdAt||18E5<Date.now()-Aa.createdAt?(m(),null):Aa}catch(Qa){return m(),null}}function c(da){try{var Aa=window.sessionStorage,Qa=Aa.setItem,Ta=JSON,Va=Ta.stringify,Ua=da&&da.table;var Ea={createdAt:Date.now(),tableGameid:Ua&&Ua.gameid||"none"};Qa.call(Aa,"wocgPageResetFireSnapshot",Va.call(Ta,Ea))}catch($a){}}function e(){var da=null!==q("prewarm")?w("prewarm"):!0;return da&&O()}function h(){if(U||k()||a.wocg.currentPoolInactive||!x())return{due:!1,trigger:null};
1711if(w("forcePageReset")&&(!y()||1<ha))return{due:!0,trigger:"forced"};var da=Date.now()-Ba;var Aa=!1;try{Aa="undefined"!==typeof navigator&&"number"===typeof navigator.deviceMemory&&0<navigator.deviceMemory&&2>=navigator.deviceMemory}catch(Qa){}Aa=e()?Aa?6E5:9E5:Aa?12E5:18E5;return da>=Aa?{due:!0,trigger:"aged"}:da>
1711=(e()?6E5:12E5)&&R?{due:!0,trigger:"severe"}:da>=(e()?6E5:12E5)&&a.wocg.isPerformanceDegraded&&a.wocg.isPerformanceDegraded()?{due:!0,trigger:"degraded"}:{due:!1,trigger:null}}function p(da,
1712Aa,Qa){var Ta=new URL(window.location.href);Ta.searchParams.delete("pageReset");Qa=Qa&&Qa.gameid||"none";var Va=String(Aa||"unknown").replace(/\./g,"-");Aa=Ta.searchParams;var Ua=Aa.set;da=da+"."+Math.round((Date.now()-Ba)/6E4)+"."+Date.now()+"."+Va+".";Va=null;try{Va=a.wocg.Comm.getSocketProtocol&&a.wocg.Comm.getSocketProtocol()||null}catch($a){}if("websocket"===Va)Va="websocket";else{var Ea=window.__wocgPageResetInfo||null;Va=Ea&&"websocket"===Ea.priorTransport?"websocket":Va||"none"}Ua.call(Aa,
1713"pageReset",da+Va+"."+Qa);return Ta.toString()}function t(){try{if(!n())return!1;if(!a.wocg.getStorageContext)return!0;var da=a.wocg.getStorageContext();return!!(da.cookieEnabled&&da.cookieWritable&&da.lsWritable)}catch(Aa){return!0}}function B(){try{var da=window.SockJS&&window.SockJS.__lastInfo;da&&da.info&&window.sessionStorage.setItem("wocgSockInfoCache",JSON.stringify(da))}catch(Aa){}}function F(da){var Aa=null,Qa=!1,Ta=function(){Qa||(Qa=!0,Aa&&Aa.detach(),da&&da())};try{var Va=a.wocg.Comm;
1714if(!Va||!Va.send)return Ta();Aa=a.on("comm:table.reloading.ack",Ta);Va.send("table.reloading",{})}catch(Ua){return Ta()}setTimeout(Ta,800)}function S(da,Aa){var Qa=!1,Ta=!1,Va=!1,Ua=function(){!Va&&Qa&&Ta&&(Va=!0,Aa())};F(function(){Qa=!0;Ua()});setTimeout(function(){Ta=!0;Ua()},da)}function A(da){if(U)return"already fired";if(!t())return"storage not durable (identity would not survive the reload)";if(document.hidden)return"tab hidden";if(a.wocg.hasActiveAnimations())return"animations active";if(document.body&&
1715document.body.classList.contains("endModalActive"))return"end-of-game modal";a:{try{for(var Aa=document.querySelectorAll('[aria-modal="true"]'),Qa=0;Qa<Aa.length;Qa++)if(0<Aa[Qa].getClientRects().length){var Ta=!0;break a}}catch(Va){}Ta=!1}if(Ta)return"modal open";if(Ta=document.activeElement)if(Aa=Ta.tagName?Ta.tagName.toLowerCase():"","input"===Aa||"textarea"===Aa||"select"===Aa||Ta.isContentEditable)return"focus in input";if(da){if(da.destroyed)return"table destroyed";if(da.dealInProgress)return"deal in progress";
1716if(da.tutorial)return"tutorial table";if(!da.gameStarted)return"game not started";if(da.gameOver)return"game over";if(Ta=!w("forcePageReset"))da&&da.players&&"function"===typeof da.getPlayerMe?(Ta=da.getPlayerMe(),da="number"!==typeof Ta?null:da.players[Ta]||null):da=null,da&&da.joinedDate?(da=da.joinedDate instanceof Date?da.joinedDate.getTime():(new Date(da.joinedDate)).getTime(),Ta=isFinite(da)&&Date.now()-da<1E3*C.MIN_PLAY_TIME_SEC_THAT_COUNTS_FOR_LOSS):Ta=!1;if(Ta)return"within 30s quick-removal window"}return""}
1717function M(da,Aa){Aa=Aa&&Aa.watchdogReason&&"none"!==Aa.watchdogReason?Aa.watchdogReason:"";return"degraded"===da?Aa?"degraded_"+Aa:"degraded_unknown":"severe"===da?Aa?"severe_"+Aa:"severe_watchdog":"aged"===da?"aged":"newgame"===da?"newgame":"forced"===da?"forced":da||"unknown"}function J(da,Aa){var Qa=da&&da.table;da="none";try{var Ta=a.wocg.getWatchdogSnapshot?a.wocg.getWatchdogSnapshot():null;Ta&&Ta.watchdogReason&&(da=Ta.watchdogReason)}catch(Va){}Ta={trigger:Aa||"unknown",gameid:Qa?Qa.gameid:
1718"none"};Ta.resetReason=M(Aa,{watchdogReason:da});return Ta}function G(da,Aa,Qa){Qa=Qa||{};try{a.fire("Notice:show",{message:Aa,type:"info"}),da&&da.playspace&&(da.playspace.setStyle("pointerEvents","none"),Qa.keepTableVisible||a.Transition.run({node:da.playspace,duration:200,opacity:0}))}catch(Ta){}}function E(da){try{da||(da=a.wocg.Table&&a.wocg.Table.getCurrentTable?a.wocg.Table.getCurrentTable():null),da&&da.playspace&&(a.Transition.cancel(da.playspace),da.playspace.setStyle("pointerEvents",""),
1719da.playspace.setStyle("opacity",""))}catch(Aa){}}function L(da){setTimeout(function(){U&&(U=!1,window.confirmedLeave=!1,E(da))},1E4)}function T(da){var Aa=da&&da.table,Qa=da&&da.trigger||"unknown";if(k()||a.wocg.currentPoolInactive||A(Aa))return!1;R=!1;return ma(da,Qa)}function ma(da,Aa){var Qa=da&&da.table;if(e())return l(da,Aa);U=!0;window.confirmedLeave=!0;var Ta=J(da,Aa);c(da);try{a.wocg.trackEvent("PageResetFired",{trigger:Ta.trigger,gameid:Ta.gameid,prewarmSwap:!1})}catch(Ua){}var Va=p(Aa,Ta.resetReason,
1720Qa);B();(da=fa())&&ta();G(Qa,"Refreshing...",{keepTableVisible:da});S(250,function(){try{window.location.replace(Va),L(Qa)}catch(Ua){U=!1,window.confirmedLeave=!1,E(Qa)}});return!0}function ea(){return Date.now()-Ba>=(e()?3E5:6E5)?"newgame":null}function ba(da){e()&&!U&&!k()&&x()&&t()&&(w("forcePageReset")||ea())&&ua("newgame",da)}function X(){try{window.MutationObserver&&document.body&&(new MutationObserver(function(){if(document.body.classList.contains("endModalActive")){var da=null;try{da=a.wocg.Table&&
1721a.wocg.Table.getCurrentTable?a.wocg.Table.getCurrentTable():null}catch(Aa){}ba(da)}})).observe(document.body,{attributes:!0,attributeFilter:["class"]})}catch(da){}}function I(){ia&&(clearTimeout(ia),ia=null);ra&&(ra(),ra=null)}function O(){try{return"prerendering"in document&&"undefined"!==typeof HTMLScriptElement&&!!HTMLScriptElement.supports&&HTMLScriptElement.supports("speculationrules")}catch(da){return!1}}function fa(){try{return"onpagereveal"in window}catch(da){return!1}}function ta(){if(!Da)try{var da=
1722document.createElement("style");da.textContent="@view-transition { navigation: auto; }\n::view-transition { pointer-events: none; }\n::view-transition-old(root) { animation: wocgPageResetHoldOld 20s step-end both; }\n::view-transition-new(root) { animation: wocgPageResetHoldNew 20s step-end both; }\n@keyframes wocgPageResetHoldOld { from { opacity: 1; } to { opacity: 1; } }\n@keyframes wocgPageResetHoldNew { from { opacity: 0; } to { opacity: 0; } }";document.head.appendChild(da);Da=!0}catch(Aa){}}
1723function ua(da,Aa){if(U||!O())return!1;da=da||"aged";var Qa=window.location.pathname+window.location.search,Ta=W===Qa&&Q===da&&aa===n();if(Ta&&Sa&&18E4>=Date.now()-Sa&&Pa||Pa&&Ta&&8<=oa)return!0;Ta||(oa=0);if(Pa){try{Pa.parentNode&&Pa.parentNode.removeChild(Pa)}catch(Ua){}Pa=null}try{Q=da;Ka=p(Q,M(Q,{}),Aa);W=Qa;aa=n();Sa=Date.now();ta();var Va=document.createElement("script");Va.type="speculationrules";Va.textContent=JSON.stringify({prerender:[{urls:[Ka]}]});document.head.appendChild(Va);Pa=Va;oa+=
17241;return!0}catch(Ua){return Ka=null,!1}}function qa(){ya&&(clearTimeout(ya),ya=null);if(Ma){try{Ma.skipTransition()}catch(da){}Ma=null}}function na(){try{requestAnimationFrame(function(){requestAnimationFrame(qa)})}catch(da){qa()}}function b(da){da&&!Ma&&(Ma=da,da.ready&&da.ready.catch&&da.ready.catch(function(){}),da.finished&&da.finished.catch&&da.finished.catch(function(){}),ya=setTimeout(qa,8E3),a.wocg.Table&&a.wocg.Table.getCurrentTable&&a.wocg.Table.getCurrentTable()&&na())}function f(da){if(da.viewTransition)if(y())b(da.viewTransition);
1725else try{da.viewTransition.skipTransition()}catch(Aa){}}function u(da){if(da.viewTransition){var Aa="";try{da.activation&&da.activation.entry&&da.activation.entry.url&&(Aa=da.activation.entry.url)}catch(Qa){}if(-1===Aa.indexOf("pageReset="))try{da.viewTransition.skipTransition()}catch(Qa){}}}function l(da,Aa){ua(Aa,da&&da.table);if(!Ka||!Sa||5E3>Date.now()-Sa)return!1;U=!0;window.confirmedLeave=!0;Aa=J(da,Aa);c(da);try{a.wocg.trackEvent("PageResetFired",{trigger:Aa.trigger,gameid:Aa.gameid,prewarmSwap:!0})}catch(Qa){}S(30,
1726function(){try{window.location.replace(Ka)}catch(Qa){U=!1,window.confirmedLeave=!1}});return!0}function r(){try{var da=(new URL(window.location.href)).searchParams.get("pageReset");if(null!==da){var Aa=da.split(".");window.__wocgPageResetInfo||(window.__wocgPageResetInfo={trigger:Aa[0]||"unknown",ageMinutes:parseInt(Aa[1],10),firedAt:parseInt(Aa[2],10),resetReason:Aa[3]||M(Aa[0]||"unknown",{})});window.__wocgPageResetInfo.priorTransport=Aa[4]||"none";window.__wocgPageResetInfo.tableGameid=Aa[5]||
1727"none"}}catch(Qa){}}function D(){try{var da=new URL(window.location.href);null!==da.searchParams.get("pageReset")&&(da.searchParams.delete("pageReset"),window.history.replaceState(window.history.state,"",da.toString()))}catch(Aa){}}function N(){try{if(y()&&a.wocg.GameModuleLoader){var da=window.__wocgPageResetInfo||{},Aa=da.tableGameid&&"none"!==da.tableGameid?da.tableGameid:null;if(!Aa){if(!v())return;var Qa=H();Aa=Qa&&Qa.tableGameid}Aa&&"none"!==Aa&&!a.wocg.GameModuleLoader.isLoaded(Aa)&&a.wocg.GameModuleLoader.load(Aa)}}catch(Ta){}}
1728function P(da,Aa){if(!v()||Ga||Ia)return!1;Ga=!0;null!==Ca&&(clearTimeout(Ca),Ca=null);try{var Qa=a.wocg,Ta=Qa.trackEvent,Va=window.__wocgPageResetInfo||{},Ua={missReason:da||"unknown",trigger:Va.trigger||"unknown",resetReason:Va.resetReason||M(Va.trigger||"unknown",{}),newUseridReason:La,previousPageAgeMinutes:isFinite(Va.ageMinutes)?Va.ageMinutes:-1,userInitCompleteSeen:!!Fa,tableCreatedSeen:!!Ia,msSinceUserInitComplete:Fa?Math.max(0,Date.now()-Fa):-1,prewarmSwap:!!Ra};Aa&&(Ua=a.merge(Ua,Aa));Ta.call(Qa,
1729"PageResetRejoinMissed",Ua)}catch(Ea){}m();return!0}function ca(){v()&&(Fa=Date.now(),null!==Ca&&clearTimeout(Ca),Ca=setTimeout(function(){P("timeout_after_user_init")},1E4))}var xa={play:!0,playOrPick:!0,pick:!0,ask:!0,draw:!0,playCard:!0},Ba=Date.now(),U=!1,R=!1,ia=null,ra=null,ka=!1,ha=0,Ca=null,Fa=0,za=0,Ia=!1,Ga=!1,La="unknown",Pa=null,Ka=null,Sa=0,Q=null,W=null,aa=null,oa=0,Da=!1,Ma=null,ya=null,Ra=0;a.wocg.PageReset={isResetDue:h,requestSevereReset:function(){if(k()||a.wocg.currentPoolInactive||
1730!x()||U||Date.now()-Ba<(e()?6E5:12E5))return!1;R=!0;try{var da=a.wocg.Table&&a.wocg.Table.getCurrentTable?a.wocg.Table.getCurrentTable():null;var Aa=!da||da.destroyed||da.tutorial||!da.gameStarted||da.gameOver?!1:!0}catch(Qa){Aa=!0}return Aa},shouldResetBeforeNewGame:function(){return U||k()||!x()||!t()?!1:w("forcePageReset")?!0:!!ea()},fireNewGameReset:function(){if(U)return!1;var da=window.location.pathname+window.location.search,Aa=Sa?Date.now()-Sa:Infinity;if(e()&&"newgame"===Q&&Ka&&W===da&&aa===
1731n()&&5E3<=Aa&&18E4>=Aa){U=!0;window.confirmedLeave=!0;c(null);try{return window.location.replace(Ka),!0}catch(Va){U=!1}}U=!0;window.confirmedLeave=!0;da=ea()||M("newgame",{});var Qa=p("newgame",da);B();try{var Ta=a.wocg.Table&&a.wocg.Table.getCurrentTable?a.wocg.Table.getCurrentTable():null}catch(Va){Ta=null}if(!Ta){try{window.location.replace(Qa)}catch(Va){return U=!1,window.confirmedLeave=!1}return!0}G(Ta,"Loading the next game...");setTimeout(function(){try{window.location.replace(Qa),L(Ta)}catch(Va){U=
1732!1,window.confirmedLeave=!1,E(Ta)}},250);return!0},maybeScheduleAtTurnStart:function(da,Aa){ha+=1;Ma&&qa();I();if(da&&!da.destroyed&&!da.tutorial&&xa[Aa]&&("pick"!==Aa||"sheepshead"!==da.gameid)){var Qa=h();if(Qa.due){e()&&ua(Qa.trigger,da);var Ta=!1,Va=["pointerdown","mousedown","keydown","touchstart"],Ua=function(){Ta=!0;I()};Va.forEach(function($a){document.addEventListener($a,Ua,{capture:!0,passive:!0})});ra=function(){Va.forEach(function($a){document.removeEventListener($a,Ua,{capture:!0})})};
1733var Ea=function($a){ia=null;Ta||da.destroyed||da.currentTurnPlayer!==da.getPlayerMe()?I():a.wocg.hasActiveAnimations()&&0<$a?ia=setTimeout(function(){Ea($a-1)},900):(T({table:da,turnType:Aa,trigger:Qa.trigger}),I())};ia=setTimeout(function(){Ea(2)},800)}}},cancelScheduledFire:I,fireNow:T,trackRejoinMiss:P,getFireSnapshot:H,shouldReconnectOnActivation:function(){try{if(!y())return!1;var da=window.__wocgPageResetInfo||null;if(!da||"websocket"!==da.priorTransport)return!1;var Aa=a.wocg.Comm;if(!Aa.isConnectionEstablished())return!1;
1734var Qa=Aa.getSocketProtocol?Aa.getSocketProtocol():null;return!!Qa&&"websocket"!==Qa}catch(Ta){return!1}}};a.on("table:created",function(){Ia=!0;za||(za=Date.now());null!==Ca&&(clearTimeout(Ca),Ca=null);Ma&&na();v()&&m();if(!ka&&y()&&!Ga){ka=!0;var da=window.__wocgPageResetInfo;da&&"newgame"===da.trigger||Ra&&za&&2E3>=za-Ra||a.fire("Notice:show",{message:"Refresh complete. Play can continue.",type:"success"})}});a.on("comm:user.init.complete",function(da){da&&"string"===typeof da.newUseridReason&&
1735(La=da.newUseridReason);if((da=window.__wocgPageResetInfo)&&!da.tracked){da.tracked=!0;try{a.wocg.trackEvent("PageReset",{trigger:da.trigger||"unknown",resetReason:da.resetReason||M(da.trigger||"unknown",{}),previousPageAgeMinutes:isFinite(da.ageMinutes)?da.ageMinutes:-1,newUseridReason:La,prewarmSwap:!!Ra})}catch(Aa){}}ca()});a.on("comm:gameSelectors.show",function(da){qa();P("game_selectors_show",{gameSelectorsForce:!(!da||!da.force)});ba(null)});a.on("comm:error",function(da){qa();P("server_error",
1736{serverErrorMessage:da&&da.message?String(da.message):"unknown",serverErrorFatal:!(!da||!da.fatal)})});window.addEventListener("pageshow",function(da){da.persisted&&U&&(U=!1,window.confirmedLeave=!1,E(null))});if(e()||fa())window.addEventListener("pagereveal",f),window.addEventListener("pageswap",u);e()&&X();y()&&((e()||fa())&&ta(),r(),N(),window.__wocgPageResetViewTransition&&b(window.__wocgPageResetViewTransition),document.prerendering?document.addEventListener("prerenderingchange",function(){Ra=
1737Date.now();D();N()},{once:!0}):D())},"1.0",{requires:["wocg","wocg.GameModuleLoader"]});
1738YUI.add("wocg.GameRating",function(a){function q(U,R){try{window.localStorage.setItem(U,String(R))}catch(ia){}}function w(U){var R=parseInt;try{var ia=window.localStorage.getItem(U)}catch(ra){ia=null}U=R(ia,10);return isNaN(U)?0:U}function k(U,R){return"wocg.gameRating."+U+"."+R}function x(U){U=parseInt(U,10);return isNaN(U)||1>U||5<U?null:U}function y(U){U=parseFloat(U);return isNaN(U)||1>U?0:5<U?5:Math.round(2*U)/2}function v(U){var R=parseFloat(U);U=x(U);return null!==U&&R===U?U:null}function d(U,
1739R){return R?R:a.wocg.game&&a.wocg.game[U]&&a.wocg.game[U].name?a.wocg.game[U].name:U}function n(U,R){var ia=R&&"undefined"!==typeof R.average?parseFloat(R.average):parseFloat(U.getAttribute("data-average"));U=R&&"undefined"!==typeof R.count?parseInt(R.count,10):parseInt(U.getAttribute("data-count"),10);return!isNaN(U)&&0<U&&!isNaN(ia)?ia:0}function m(U,R){var ia=y(R),ra=v(R),ka=Math.floor(ia),ha=.5===ia%1;U.all(".gameRatingStarButton").each(function(Ca){var Fa=parseInt(Ca.getAttribute("data-rating"),
174010);Ca.toggleClass("active",Fa<=ka);Ca.toggleClass("half",ha&&Fa===ka+1);Ca.setAttribute("aria-pressed",Fa===ra?"true":"false")})}function H(U,R,ia,ra){var ka=U.getDOMNode();ka&&ka.addEventListener?(ka.addEventListener("mouseenter",function(){m(R,ia)}),ka.addEventListener("mouseleave",function(){m(R,ra())})):(U.on("mouseover",function(){m(R,ia)}),U.on("mouseout",function(){m(R,ra())}))}function c(U,R,ia,ra,ka){function ha(){return ka.clean?Ca:u[R]||Ca}if(U){ka=ka||{};var Ca=ia;U.empty();for(ia=1;5>=
1741ia;ia++)(function(Fa){var za=a.Node.create('<button class="gameRatingStarButton" type="button" data-rating="'+Fa+'" aria-label="Rate '+Fa+' out of 5" aria-pressed="false"><span class="gameRatingStar" aria-hidden="true"><svg class="gameRatingStarSvg" height="32" viewBox="0 0 32 32" width="32" xmlns="http://www.w3.org/2000/svg"><path class="gameRatingStarEmptyPath" d="m14.6848065 1.81345455c.7265464-.36677471 1.5310878-.40054444 2.2445203
1741-.15863739.7135085.24193286 1.3358593.75960191 1.6979679 1.49551452l3.2067887 6.53222408 7.1492041 1.04475574c.5553088.0833404 1.0632813.3225337 1.4756159.6761403.4124457.3537019.7291513.8218946.9018423 1.3627347.1700218.539671.1815241 1.1048281.0499466 1.6334469-.1315614.5285535-.406151 1.0205976-.8085115 1.4141752l-5.1632041 5.0679653 1.2266966 7.1634228c.1099124.6448858.0070565 1.3084873-.2926725 1.8882313-.3766255.7284685-1.009092 1.2333691-1.7272193 1.4607647-.7180673.2273766-1.521771.1772902-2.2409291-.2041661l-6.4057572-3.395994-6.39985639 3.3880117c-.57077064.3025393-1.22384958.406806-1.85882366.2967593-.8002028-.1386757-1.46913822-.5927703-1.90380581-1.2148031-.43474411-.6221423-.63511485-1.4122789-.49819879-2.2227923l1.22078171-7.1614349-5.16323312-5.065996c-.40488213-.3949273-.68008418-.8899184-.81005947-1.4213474-.1299833-.5314617-.11471841-1.099367.06133283-1.6400657.17518614-.5373892.49230418-1.0019092.90378429-1.3529587.41152537-.3510882.91744572-.5886143 1.46971521-.6720862l7.1472991-1.04676352 3.1969205-6.5302118c.2849065-.57901179.7482109-1.04831048 1.3198549-1.33688943z" fill-rule="evenodd" transform="matrix(-1 0 0 1 32 0)"></path></svg><span class="gameRatingStarFill"><svg class="gameRatingStarSvg" height="32" viewBox="0 0 32 32" width="32" xmlns="http://www.w3.org/2000/svg"><path class="gameRatingStarFullPath" d="m14.6848065 1.81345455c.7265464-.36677471 1.5310878-.40054444 2.2445203-.15863739.7135085.24193286 1.3358593.75960191 1.6979679 1.49551452l3.2067887 6.53222408 7.1492041 1.04475574c.5553088.0833404 1.0632813.3225337 1.4756159.6761403.4124457.3537019.7291513.8218946.9018423 1.3627347.1700218.539671.1815241 1.1048281.0499466 1.6334469-.1315614.5285535-.406151 1.0205976-.8085115 1.4141752l-5.1632041 5.0679653 1.2266966 7.1634228c.1099124.6448858.0070565 1.3084873-.2926725 1.8882313-.3766255.7284685-1.009092 1.2333691-1.7272193 1.4607647-.7180673.2273766-1.521771.1772902-2.2409291-.2041661l-6.4057572-3.395994-6.39985639 3.3880117c-.57077064.3025393-1.22384958.406806-1.85882366.2967593-.8002028-.1386757-1.46913822-.5927703-1.90380581-1.2148031-.43474411-.6221423-.63511485-1.4122789-.49819879-2.2227923l1.22078171-7.1614349-5.16323312-5.065996c-.40488213-.3949273-.68008418-.8899184-.81005947-1.4213474-.1299833-.5314617-.11471841-1.099367.06133283-1.6400657.17518614-.5373892.49230418-1.0019092.90378429-1.3529587.41152537-.3510882.91744572-.5886143 1.46971521-.6720862l7.1472991-1.04676352 3.1969205-6.5302118c.2849065-.57901179.7482109-1.04831048 1.3198549-1.33688943z" fill-rule="evenodd" transform="matrix(-1 0 0 1 32 0)"></path></svg></span></span></button>');
1742H(za,U,Fa,ha);za.on("click",function(Ia){Ia.preventDefault();Ia=Fa;Ia=x(Ia);!R||null===Ia||l[R]?Ia=!1:qa&&qa.isConnectionEstablished&&qa.isConnectionEstablished()?(u[R]=Ia,B(R,{}),l[R]=!0,p(R),qa.send("user.rated.game",{gameid:R,rating:Ia}),Ia=!0):(e(R,"Rating failed"),O(R,"Rating failed"),Ia=!1);Ia&&(Ca=Fa);ra&&ra(Fa,Ia);m(U,ha())});U.append(za)})(ia);m(U,ha())}}function e(U,R){(f[U]||[]).forEach(function(ia){(ia=ia.one(".gameRatingStatus"))&&ia.set("text",R||"")})}function h(U){ca[U]&&(clearTimeout(ca[U]),
1743delete ca[U])}function p(U){h(U);ca[U]=setTimeout(function(){delete ca[U];l[U]&&(e(U,"Saving..."),O(U,"Saving..."))},1E3)}function t(U,R){var ia=U&&U.getAttribute?U.getAttribute("data-gameid"):"",ra=d(ia,U&&U.getAttribute?U.getAttribute("data-game-name"):""),ka=R&&"undefined"!==typeof R.average?parseFloat(R.average):parseFloat(U.getAttribute("data-average"));R=R&&"undefined"!==typeof R.count?parseInt(R.count,10):parseInt(U.getAttribute("data-count"),10);(U=U.one(".gameRatingText"))&&(!isNaN(R)&&0<
1744R&&!isNaN(ka)?U.setHTML('Rated <span class="gameRatingAverage">'+y(ka).toFixed(1).replace(/\.0$/,"")+'</span> by <span class="gameRatingCount">'+R+"</span> "+(1===R?"player":"players")):u[ia]?U.set("text","Thanks for rating"):U.set("text","Be the first to rate "+ra))}function B(U,R){(f[U]||[]).forEach(function(ia){R&&"undefined"!==typeof R.average&&ia.setAttribute("data-average",R.average);R&&"undefined"!==typeof R.count&&ia.setAttribute("data-count",R.count);t(ia,R||{});var ra=ia.one(".gameRatingInlineStars");
1745c(ra,U,u[U]||n(ia,R||{}))})}function F(U){var R=U&&U.getAttribute?U.getAttribute("data-gameid"):"";if(R){f[R]||(f[R]=[]);f[R].push(U);u[R]=u[R]||null;t(U,{});var ia=U.one(".gameRatingInlineStars");c(ia,R,u[R]||n(U,{}))}}function S(){a.all(".gameRatingSummary").each(F)}function A(){var U=Object.keys(f).filter(function(ia){return!P[ia]});
1745if(U.length){U.forEach(function(ia){P[ia]=!0});var R=new XMLHttpRequest;R.onreadystatechange=function(){if(4===R.readyState&&200===R.status){try{var ia=JSON.parse(R.responseText)}catch(ra){return}ia&&
1746ia.games&&Object.keys(ia.games).forEach(function(ra){f[ra]&&B(ra,ia.games[ra])})}};R.onerror=function(){};R.open("GET",a.wocg.URL+"/api/game-ratings?gameids="+encodeURIComponent(U.join(",")),!0);R.send()}}function M(){Ba&&qa&&qa.isConnectionEstablished&&qa.isConnectionEstablished()&&Object.keys(f).forEach(function(U){N[U]||(N[U]=!0,qa.send("user.game.rating.get",{gameid:U}))})}function J(){Ba=!0;M()}function G(U){if(U&&U.gameid){var R=x(U.rating);D[U.gameid]=!0;null===R||l[U.gameid]?l[U.gameid]||
1747(u[U.gameid]=null):u[U.gameid]=R;B(U.gameid,U)}}function E(U){if(U&&U.gameid){var R=x(U.rating);D[U.gameid]=!0;h(U.gameid);l[U.gameid]=!1;null!==R&&(u[U.gameid]=R);B(U.gameid,U);e(U.gameid,"");r[U.gameid]&&O(U.gameid,"Thanks for rating")}}function L(){var U=Object.keys(l).filter(function(R){return l[R]});l={};U.forEach(function(R){h(R);e(R,"Rating failed");O(R,"Rating failed")})}function T(U){return a.wocg.User&&a.wocg.User.getFinishedGameCount?a.wocg.User.getFinishedGameCount(U):0}function ma(U,
1748R){U=w(U);return!U||Date.now()-U>=R}function ea(U){return 1<=U&&3>=U}function ba(U){var R=Date.now();q(k("prompted",U),R);q(k("promptedCount",U),T(U));q("wocg.gameRating.prompted.global",R)}function X(U,R){return'<div class="gameRatingPromptSurface'+(R?" "+R:"")+'"><ul>'+U+"</ul></div>"}function I(U,R){R=R?": "+a.Escape.html(R):"";return'<li class="authHeader gameRatingPromptHeader"><span class="authTitle gameRatingPromptTitle"><strong>'+a.Escape.html(U)+"</strong>"+R+"</span></li>"}function O(U,
1749R){var ia=(U=r[U])&&U.one(".gameRatingPromptStarsLabel");ia?ia.set("text",R||"Tap a star to rate"):(U=U&&U.one(".gameRatingPromptStatus"))&&U.set("text",R||"")}function fa(U,R){U&&U.gameLayout&&U.updateSpot&&(U.gameLayout.gameOverRatingPromptMode=R||null,U.spots&&Object.keys(U.spots).forEach(function(ia){0===ia.indexOf("gameOver")&&U.spots[ia]&&U.spots[ia].resize()}),["gameOverBackdrop","gameOverRegister","gameOverLeave","gameOverChat","gameOverPlayAgain"].forEach(function(ia){U.updateSpot(ia,{skipAnimation:!0})}))}
1750function ta(U,R,ia,ra){r[R]=U;U.setHTML(X(I("Share feedback","How do you like "+ia+"?")+'<li class="gameRatingPromptStarsRow"><div class="gameRatingPromptStars"></div><span class="gameRatingPromptStarsLabel">Tap a star to rate</span></li><li class="gameRatingPromptStatusRow"><p class="gameRatingPromptStatus" aria-live="polite"></p></li>'));U=U.one(".gameRatingPromptStars");c(U,R,ra?null:u[R]||null,function(ka,ha){ha||l[R]||O(R,"Rating failed")},{clean:ra})}function ua(U,R,ia){U.setHTML(X(I("Share feedback",
1751"How do you like "+ia+"?")+'<li class="submitRow gameRatingPromptActions"><a class="button lightblue gameRatingFeedbackButton" href="#">Email feedback</a></li>'));U.one(".gameRatingFeedbackButton").on("click",function(ra){ra.preventDefault();a.wocg.FooterBar&&a.wocg.FooterBar.mailTo&&a.wocg.FooterBar.mailTo()});fa(R,"feedback")}var qa=a.wocg.Comm,na=30*base.DAY,b=7*base.DAY,f={},u={},l={},r={},D={},N={},P={},ca={},xa=!1,Ba=!1;a.wocg.GameRating={init:function(){xa||(xa=!0,S(),A(),M(),a.on("comm:connected",
1752M),a.on("comm:user.init.complete",J),a.on("comm:user.game.rating",G),a.on("comm:user.rated.game",E),a.on("comm:error",L))},refreshPageBlocks:function(){f={};N={};P={};S();A();M()},shouldShowGameOverPrompt:function(U,R){if(!U||!U.gameid||U.tutorial||a.wocg.isPlatformMobile()||a.wocg.isSourceArkadium()||!D[U.gameid]||u[U.gameid]&&!ea(u[U.gameid]))return!1;var ia=T(U.gameid),ra;(ra=R&&R.ratingPromptBlocked)||(U&&R&&R.ranks&&R.ranks.length?(R=R.ranks[0],R="undefined"!==typeof R.user?R.user:R[0],ra=U.getPlayerMe?
1753U.getPlayerMe():null,R="undefined"===typeof R||null===ra||0>ra?!1:U.teams&&U.teamNumber?U.teamNumber(R)===U.teamNumber(ra):R===ra):R=!1,ra=!R);if(ra)return!1;R=w(k("promptedCount",U.gameid));return(R?ia>=R+10:3<=ia)&&ma(k("prompted",U.gameid),na)&&ma("wocg.gameRating.prompted.global",b)?!0:!1},mountGameOverPrompt:function(U,R,ia){if(U&&R&&R.gameid){var ra=R.gameid,ka=d(ra),ha=ea(u[ra]);ba(ra);U.addClass("gameRatingPromptHost");U.setHTML("");ia=a.Node.create(X(I("Share feedback","How do you like "+
1754ka+"?")+'<li class="submitRow gameRatingPromptActions"><a class="button lightblue gameRatingLoveButton" href="#">I like it</a><a class="button lightblue gameRatingFeedbackChoice" href="#">I have feedback</a></li>'));U.append(ia);ia.one(".gameRatingLoveButton").on("click",function(Ca){Ca.preventDefault();ta(U,ra,ka,ha)});ia.one(".gameRatingFeedbackChoice").on("click",function(Ca){Ca.preventDefault();ua(U,R,ka)})}}}},"1.0",{requires:"wocg wocg.Comm wocg.FooterBar node event escape".split(" ")});
1755YUI.add("wocg.GameModuleLoader",function(a){function q(x,y){a.use(["wocg.game."+x,"wocg.game."+x+".Layout","wocg.game."+x+".Game","wocg.game."+x+".Tutorial"],function(){var v=a.wocg.game&&a.wocg.game[x],d=null;v&&v.Layout&&v.Game&&v.Tutorial?w[x]=!0:(d=y||Error("Failed to attach game modules for "+x),delete w[x]);v=k[x]||[];delete k[x];for(var n=0;n<v.length;n++)v[n](d)})}var w={},k={};a.wocg.GameModuleLoader={load:function(x,y){y=y||function(){};if(w[x])return y();k[x]?k[x].push(y):(k[x]=[y],YUI.Env.mods["wocg.game."+
1756x]?q(x):(y=document.createElement("script"),y.src=a.wocg.buildAssetJSURL("js/game_"+x+"_combined_minified"),y.onload=function(){q(x)},y.onerror=function(){q(x,Error("Failed to load game bundle for "+x))},document.head.appendChild(y)))},isLoaded:function(x){return!!w[x]}}},"1.0",{requires:["wocg"]});
1757var __modules="array-extras json-parse json-stringify features dom node anim escape selector selector-css2 selector-css3 yui-node-extensions yui-anim-rotate event-windowresize event-outside event-rightclick event-valuechange event-mouseenter history-base history-hash querystring-stringify querystring-parse Checkbox Radio BoxForm CustomTooltip unselectable Transition Animation ModalProgress ModalError Notice ModalConfirm ModalInput Mod
1757alPlayerProfile Frame ImagePreloader ModalGameOptions ModalLegalConsentScreen ModalWebview ModalRules wocg wocg.GameModuleLoader wocg.Comm wocg.AuthProviders wocg.Auth wocg.User wocg.Theme wocg.MenuBar wocg.Layout wocg.Tutorial wocg.Options wocg.ShutdownNotice wocg.PoolInactiveNotice wocg.Piece wocg.Pieces wocg.Piece.card wocg.Piece.text wocg.Piece.textInput wocg.Piece.textLink wocg.Piece.chatBubble wocg.Piece.suitSelector wocg.Piece.chip wocg.Piece.miniCard wocg.Piece.timer wocg.Piece.avatar wocg.Piece.button wocg.Piece.backdrop wocg.Piece.htmlTable wocg.Piece.lottie wocg.Spot wocg.Table wocg.TableBar wocg.ProfileBox wocg.TableListingsBar wocg.StatsBox wocg.FooterBar wocg.GameSelectors wocg.GameSelector wocg.Historian wocg.PageReset wocg.GameRating AdWidget".split(" "),Y=
1758YUI({debug:window.location.hostname.startsWith("dev.")||window.location.href.includes("dev=true")}).use(__modules,function(a){a.on("domready",function(){function q(){a.wocg.GameRating.init()}a.wocg.Comm.init();document.prerendering?document.addEventListener("prerenderingchange",q,{once:!0}):q()})});

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.