Cube("static:/396.js",["static:/398.js","static:/391.js"],function(a,b,c){function d(a,b,c){return function(){var d,e=c.subscriptions,f=e?e.indexOf(a):-1;for(j.throwIf(-1===f,"Tried to remove join already gone from subscriptions list!"),d=0;d<b.length;d++)b[d]();e.splice(f,1)}}function e(a){a.listenablesEmitted=Array(a.numberOfListenables),a.args=Array(a.numberOfListenables)}function f(a,b){return function(){var c=k.call(arguments);if(b.listenablesEmitted[a])switch(b.strategy){case"strict":throw new Error("Strict join failed because listener triggered twice.");case"last":b.args[a]=c;break;case"all":b.args[a].push(c);}else b.listenablesEmitted[a]=!0,b.args[a]="all"===b.strategy?[c]:c;g(b)}}function g(a){for(var b=0;b<a.numberOfListenables;b++)if(!a.listenablesEmitted[b])return;a.callback.apply(a.listener,a.args),e(a)}Object.defineProperty(b,"__esModule",{value:!0}),b.staticJoinCreator=function(a){return function(){var b=k.call(arguments);return(0,h.createStore)({init:function(){this[l[a]].apply(this,b.concat("triggerAsync"))}})}},b.instanceJoinCreator=function(a){return function(){j.throwIf(2>arguments.length,"Cannot create a join with less than 2 listenables!");var b,c,g=k.call(arguments),h=g.pop(),i=g.length,l={numberOfListenables:i,callback:this[h]||h,listener:this,strategy:a},m=[];for(b=0;b<i;b++)j.throwIf(this.validateListening(g[b]));for(b=0;b<i;b++)m.push(g[b].listen(f(b,l),this));return e(l),c={listenable:g},c.stop=d(c,m,this),this.subscriptions=(this.subscriptions||[]).concat(c),c}};var h=c("static:/398.js"),i=c("static:/391.js"),j=function(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}(i),k=Array.prototype.slice,l={strict:"joinStrict",first:"joinLeading",last:"joinTrailing",all:"joinConcat"};return a.exports});