ractive
Version:
Next-generation DOM manipulation
2 lines • 72.4 kB
JavaScript
!function(a){"use strict";var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,$,_,ab,bb,cb,db,eb,fb,gb,hb,ib,jb=a.document||null,kb={},lb={},mb={},nb={},ob={}.hasOwnProperty,pb=function(){},qb={},rb=/^\s+/,sb=/\s+$/,tb="Missing Ractive.parse - cannot parse template. Either preparse or use the version that includes the parser",ub=1,vb=2,wb=3,xb=4,yb=5,zb=6,Ab=7,Bb=8,Cb=9,Db=10,Eb=11,Fb=12,Gb=20,Hb=21,Ib=22,Jb=23,Kb=24,Lb=26,Mb=30,Nb=31,Ob=32,Pb=33,Qb=34,Rb=35,Sb=36,Tb=40,Ub={unset:!0},Vb={html:"http://www.w3.org/1999/xhtml",mathml:"http://www.w3.org/1998/Math/MathML",svg:"http://www.w3.org/2000/svg",xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"},Wb="0.3.3";try{Object.defineProperty({},"test",{value:0}),Object.defineProperties({},{test:{value:0}}),D=Object.defineProperty,E=Object.defineProperties}catch(Xb){D=function(a,b,c){a[b]=c.value},E=function(a,b){var c;for(c in b)b.hasOwnProperty(c)&&D(a,c,b[c])}}try{Object.create(null),F=Object.create,G=function(){return Object.create(null)}}catch(Xb){F=function(){var a=function(){};return function(b,c){var d;return a.prototype=b,d=new a,c&&Object.defineProperties(d,c),d}}(),G=function(){return{}}}var Yb,Zb,$b,_b=function(a){return a.replace(/[A-Z]/g,function(a){return"-"+a.toLowerCase()})};!function(){var a;jb&&(a=jb.createElement("div"),void 0!==a.style.transition?(Zb="transition",$b="transitionend",Yb=!0):void 0!==a.style.webkitTransition?(Zb="webkitTransition",$b="webkitTransitionEnd",Yb=!0):Yb=!1)}(),z=function(a,c,d,e,f){var g,h,i,j,k;c.transitionsEnabled&&("string"==typeof a?g=a:(g=a.n,a.a?h=a.a:a.d&&(i=new TextFragment({descriptor:a.d,root:c,owner:d,contextStack:parentFragment.contextStack}),h=i.toJson(),i.teardown())),k=c.transitions[g]||b.transitions[g],k&&(j=c._transitionManager,j.push(d.node),k.call(c,d.node,function(){j.pop(d.node)},h,j.info,f)))},x=function(a,b){var c,d=[];for(c=jb.createElement("div"),c.innerHTML=a;c.firstChild;)d[d.length]=c.firstChild,b.appendChild(c.firstChild);return d},function(){var a,b,c;y=function(b,c,d,e,f){var g,h,i,j,k,l,m;for(i=c.descriptor.i,g=d;e>g;g+=1)h=c.fragments[g],j=g-f,k=g,l=c.keypath+"."+(g-f),m=c.keypath+"."+g,h.index+=f,a(h,i,j,k,f,l,m);p(b)},a=function(d,e,f,g,h,i,j){var k,l,m;for(d.indexRefs&&void 0!==d.indexRefs[e]&&(d.indexRefs[e]=g),k=d.contextStack.length;k--;)m=d.contextStack[k],m.substr(0,i.length)===i&&(d.contextStack[k]=m.replace(i,j));for(k=d.items.length;k--;)switch(l=d.items[k],l.type){case Ab:b(l,e,f,g,h,i,j);break;case Bb:a(l.fragment,e,f,g,h,i,j);break;case xb:case vb:case wb:c(l,e,f,g,h,i,j)}},b=function(b,c,d,e,f,g,h){var i,j;for(i=b.attributes.length;i--;)j=b.attributes[i],j.fragment&&(a(j.fragment,c,d,e,f,g,h),j.twoway&&j.updateBindings());if(b.proxyFrags)for(i=b.proxyFrags.length;i--;)a(b.proxyFrags[i],c,d,e,f,g,h);b.node._ractive&&(b.node._ractive.keypath.substr(0,g.length)===g&&(b.node._ractive.keypath=b.node._ractive.keypath.replace(g,h)),b.node._ractive.index[c]=e),b.fragment&&a(b.fragment,c,d,e,f,g,h)},c=function(b,c,d,e,f,g,h){var i;if(b.descriptor.x&&(b.keypath&&k(b),b.expressionResolver&&b.expressionResolver.teardown(),b.expressionResolver=new T(b)),b.keypath?b.keypath.substr(0,g.length)===g&&(k(b),b.keypath=b.keypath.replace(g,h),j(b)):b.indexRef===c&&(b.value=e,b.render(e)),b.fragments)for(i=b.fragments.length;i--;)a(b.fragments[i],c,d,e,f,g,h)}}(),function(a){var b,c;U=function(a,d,e,f,g){var h,i;for(this.root=a,this.keypath=d,this.fn=c(e,f.length),this.values=[],this.refs=[],h=f.length;h--;)i=f[h],i[0]?this.values[h]=i[1]:this.refs[this.refs.length]=new b(a,i[1],this,h,g);this.selfUpdating=this.refs.length<=1,this.update()},U.prototype={bubble:function(){this.selfUpdating?this.update():this.deferred||(this.root._defEvals[this.root._defEvals.length]=this,this.deferred=!0)},update:function(){var a;try{a=this.fn.apply(null,this.values)}catch(b){if(this.root.debug)throw b;a=void 0}return v(a,this.value)||(i(this.root,this.keypath),this.root._cache[this.keypath]=a,l(this.root,this.keypath),this.value=a),this},teardown:function(){for(;this.refs.length;)this.refs.pop().teardown();i(this.root,this.keypath),this.root._evaluators[this.keypath]=null},refresh:function(){this.selfUpdating||(this.deferred=!0);for(var a=this.refs.length;a--;)this.refs[a].update();this.deferred&&(this.update(),this.deferred=!1)}},b=function(a,b,c,d,e){this.evaluator=c,this.keypath=b,this.root=a,this.argNum=d,this.type=Mb,this.priority=e,this.value=c.values[d]=a.get(b),j(this)},b.prototype={update:function(){var a=this.root.get(this.keypath);v(a,this.value)||(this.evaluator.values[this.argNum]=a,this.evaluator.bubble(),this.value=a)},teardown:function(){k(this)}},c=function(b,c){var d,e;if(b=b.replace(/❖/g,"_"),a[b])return a[b];for(e=[];c--;)e[c]="_"+c;return d=new Function(e.join(","),"return("+b+")"),a[b]=d,d}}({}),function(){var a,b;T=function(b){var c,d,e,f,g;for(this.root=b.root,this.mustache=b,this.args=[],this.scouts=[],c=b.descriptor.x,g=b.parentFragment.indexRefs,this.str=c.s,e=this.unresolved=c.r?c.r.length:0,e||this.init(),d=0;e>d;d+=1)f=c.r[d],g&&void 0!==g[f]?this.resolveRef(d,!0,g[f]):this.scouts[this.scouts.length]=new a(this,f,b.contextStack,d)},T.prototype={init:function(){this.keypath=b(this.str,this.args),this.createEvaluator(),this.mustache.resolve(this.keypath)},teardown:function(){for(;this.scouts.length;)this.scouts.pop().teardown()},resolveRef:function(a,b,c){this.args[a]=[b,c],--this.unresolved||this.init()},createEvaluator:function(){this.root._evaluators[this.keypath]?this.root._evaluators[this.keypath].refresh():this.root._evaluators[this.keypath]=new U(this.root,this.keypath,this.str,this.args,this.mustache.priority)}},a=function(a,b,c,d){var e,f;f=this.root=a.root,e=o(f,b,c),e?a.resolveRef(d,!1,e):(this.ref=b,this.argNum=d,this.resolver=a,this.contextStack=c,f._pendingResolution[f._pendingResolution.length]=this)},a.prototype={resolve:function(a){this.keypath=a,this.resolver.resolveRef(this.argNum,!1,a)},teardown:function(){this.keypath||h(this)}},b=function(a,b){var c;return c=a.replace(/❖([0-9]+)/g,function(a,c){return b[c][1]}),"("+c.replace(/[\.\[\]]/g,"-")+")"}}(),function(){var a,c;A=function(d,e){var f,g;if(g=a(d,e))return g;if(g=a(b,e))return g;if(jb&&(f=jb.getElementById(e),f&&"SCRIPT"===f.tagName)){if(!b.parse)throw new Error(tb);b.partials[e]=b.parse(f.innerHTML)}return g=b.partials[e],g?c(g):(d.debug&&console&&console.warn&&console.warn('Could not find descriptor for partial "'+e+'"'),[])},a=function(a,d){if(a.partials[d]){if("string"==typeof a.partials[d]){if(!b.parse)throw new Error(tb);a.partials[d]=b.parse(a.partials[d])}return c(a.partials[d])}},c=function(a){return 1===a.length&&"string"==typeof a[0]?a[0]:a}}(),$=function(a,b){var c,d,e,f,g;if(a.owner=b.owner,a.root=b.root,a.parentNode=b.parentNode,a.contextStack=b.contextStack||[],a.owner.type===xb&&(a.index=b.index),a.owner.parentFragment){if(f=a.owner.parentFragment.indexRefs){a.indexRefs=G();for(g in f)a.indexRefs[g]=f[g]}a.priority=a.owner.parentFragment.priority+1}else a.priority=0;for(b.indexRef&&(a.indexRefs||(a.indexRefs={}),a.indexRefs[b.indexRef]=b.index),a.items=[],e={parentFragment:a},c=b.descriptor?b.descriptor.length:0,d=0;c>d;d+=1)e.descriptor=b.descriptor[d],e.index=d,a.items[a.items.length]=a.createItem(e)},X=function(a,b){var c,d,e;e=a.parentFragment=b.parentFragment,a.root=e.root,a.contextStack=e.contextStack,a.descriptor=b.descriptor,a.index=b.index||0,a.priority=e.priority,e.parentNode&&(a.parentNode=e.parentNode),a.type=b.descriptor.t,b.descriptor.r&&(e.indexRefs&&void 0!==e.indexRefs[b.descriptor.r]?(d=e.indexRefs[b.descriptor.r],a.indexRef=b.descriptor.r,a.value=d,a.render(a.value)):(c=o(a.root,b.descriptor.r,a.contextStack),c?a.resolve(c):(a.ref=b.descriptor.r,a.root._pendingResolution[a.root._pendingResolution.length]=a,a.descriptor.n&&a.render(!1)))),b.descriptor.x&&(a.expressionResolver=new T(a))},Y=function(){var a;a=this.root.get(this.keypath,!0),v(a,this.value)||(this.render(a),this.value=a)},Z=function(a){this.keypath=a,j(this),this.update(),this.expressionResolver&&(this.expressionResolver=null)},function(){var a,b,c;_=function(d,e){var f;return f={descriptor:d.descriptor.f,root:d.root,parentNode:d.parentNode,owner:d},d.descriptor.n?(c(d,e,!0,f),void 0):(s(e)?a(d,e,f):t(e)?b(d,f):c(d,e,!1,f),void 0)},a=function(a,b,c){var d,e;if(b.length<a.length)for(e=a.fragments.splice(b.length,a.length-b.length);e.length;)e.pop().teardown(!0);else if(b.length>a.length)for(d=a.length;d<b.length;d+=1)c.contextStack=a.contextStack.concat(a.keypath+"."+d),c.index=d,a.descriptor.i&&(c.indexRef=a.descriptor.i),a.fragments[d]=a.createFragment(c);a.length=b.length},b=function(a,b){a.length||(b.contextStack=a.contextStack.concat(a.keypath),b.index=0,a.fragments[0]=a.createFragment(b),a.length=1)},c=function(a,b,c,d){var e,f,g;if(f=s(b)&&0===b.length,e=c?f||!b:b&&!f){if(a.length||(d.contextStack=a.contextStack,d.index=0,a.fragments[0]=a.createFragment(d),a.length=1),a.length>1)for(g=a.fragments.splice(1);g.length;)g.pop().teardown(!0)}else a.length&&(a.teardownFragments(!0),a.length=0)}}(),gb=function(a){var b,c,d,e;for(b=0;b<a.length;b+=1)c=a[b],d=a[b-1],e=a[b+1],(c.mustacheType===Cb||c.mustacheType===Db)&&(a.splice(b,1),d&&e&&d.type===ub&&e.type===ub&&(d.value+=e.value,a.splice(b,1)),b-=1);return a},hb=function(a){var b,c,d;for(d="";a.length;){if(b=a.indexOf("<!--"),c=a.indexOf("-->"),-1===b&&-1===c){d+=a;break}if(-1!==b&&-1===c)throw"Illegal HTML - expected closing comment sequence ('-->')";if(-1!==c&&-1===b||b>c)throw"Illegal HTML - unexpected closing comment sequence ('-->')";d+=a.substr(0,b),a=a.substring(c+3)}return d},ib=function(a){var b,c,d,e,f,g;for(f=/^\s*\r?\n/,g=/\r?\n\s*$/,b=2;b<a.length;b+=1)c=a[b],d=a[b-1],e=a[b-2],c.type===ub&&d.type===Eb&&e.type===ub&&g.test(e.value)&&f.test(c.value)&&(d.mustacheType!==vb&&d.mustacheType!==wb&&(e.value=e.value.replace(g,"\n")),c.value=c.value.replace(f,""),""===c.value&&a.splice(b--,1));return a},function(a){var b=function(a,b,c){var d;if("string"==typeof b&&u(c)){if(d=a.get(b),void 0===d&&(d=0),u(d))a.set(b,d+c);else if(a.debug)throw new Error("Cannot add to a non-numeric value")}else if(a.debug)throw new Error("Bad arguments")};a.add=function(a,c){b(this,a,void 0===c?1:c)},a.subtract=function(a,c){b(this,a,void 0===c?-1:-c)},a.toggle=function(a){var b;if("string"==typeof a)b=this.get(a),this.set(a,!b);else if(this.debug)throw new Error("Bad arguments")}}(kb),function(a){var c,d;a.animate=function(a,b,d){var e,f,g;if("object"==typeof a){d=b||{},g=[];for(e in a)ob.call(a,e)&&(g[g.length]=c(this,e,a[e],d));return{stop:function(){for(;g.length;)g.pop().stop()}}}return d=d||{},f=c(this,a,b,d),{stop:function(){f.stop()}}},d={stop:pb},c=function(a,c,e,f){var g,h,i,j,k;for(k=a.get(c),j=ab.animations.length;j--;)ab.animations[j].keypath===c&&ab.animations[j].stop();return v(k,e)?(f.complete&&f.complete(1,f.to),d):(f.easing&&(g="function"==typeof f.easing?f.easing:a.easing&&a.easing[f.easing]?a.easing[f.easing]:b.easing[f.easing],"function"!=typeof g&&(g=null)),h=void 0===f.duration?400:f.duration,i=new V({keypath:c,from:k,to:e,root:a,duration:h,easing:g,step:f.step,complete:f.complete}),ab.push(i),a._animations[a._animations.length]=i,i)}}(kb),kb.bind=function(a){var b=this._bound;-1===b.indexOf(a)&&(b[b.length]=a,a.init(this))},kb.cancelFullscreen=function(){b.cancelFullscreen(this.el)},kb.fire=function(a){var b,c,d,e=this._subs[a];if(e)for(b=Array.prototype.slice.call(arguments,1),c=0,d=e.length;d>c;c+=1)e[c].apply(this,b)},kb.get=function(a){var b,c,d,e,f,g,h,i,j;if(!a)return this.data;if(b=this._cache,s(a)){if(!a.length)return this.data;d=a.slice(),e=d.join("."),j=!0}else{if(ob.call(b,a)&&b[a]!==Ub)return b[a];d=q(a),e=d.join(".")}return!ob.call(b,e)||b[e]===Ub||void 0===b[e]&&j?this._evaluators[e]?(i=this._evaluators[e].value,b[e]=i,i):(f=d.pop(),g=d.join("."),h=d.length?this.get(d):this.data,null!==h&&"object"==typeof h&&h!==Ub?((c=this._cacheMap[g])?-1===c.indexOf(e)&&(c[c.length]=e):this._cacheMap[g]=[e],i=h[f],this.modifyArrays&&("("===e.charAt(0)||!s(i)||i._ractive&&i._ractive.setting||bb(i,e,this)),b[e]=i,i):void 0):b[e]},i=function(a,b){var c,d;if(a.modifyArrays&&"("!==b.charAt(0)&&(c=a._cache[b],s(c)&&!c._ractive.setting&&cb(c,b,a)),a._cache[b]=Ub,d=a._cacheMap[b])for(;d.length;)i(a,d.pop())},l=function(a,b,c){var d;for(d=0;d<a._deps.length;d+=1)n(a,b,d,c)},n=function(a,b,c,d){var e,f,g,h;if(e=a._deps[c]){if(f=e[b])for(g=f.length;g--;)f[g].update();if(!d&&(h=a._depsMap[b]))for(g=h.length;g--;)n(a,h[g],c)}},m=function(a,b,c){var d,e,f;for(f=b.length,d=0;d<a._deps.length;d+=1)if(a._deps[d])for(e=f;e--;)n(a,b[e],d,c)},p=function(a){for(var b,c;a._defEvals.length;)b=a._defEvals.pop(),b.update().deferred=!1;for(;a._defAttrs.length;)c=a._defAttrs.pop(),c.update().deferred=!1},j=function(a){var b,c,d,e,f,g,h,i;for(g=a.root,h=a.keypath,i=a.priority,b=g._deps[i]||(g._deps[i]={}),c=b[h]||(b[h]=[]),c[c.length]=a,d=q(h);d.length;)d.pop(),e=d.join("."),f=g._depsMap[e]||(g._depsMap[e]=[]),void 0===f[h]&&(f[h]=0,f[f.length]=h),f[h]+=1,h=e},W=function(a,b){var c,d;c=b.el?w(b.el):a.el,c&&!b.append&&(c.innerHTML=""),a._transitionManager=d=B(a,b.complete),a.fragment=new H({descriptor:a.template,root:a,owner:a,parentNode:c}),c&&c.appendChild(a.fragment.docFrag),a._transitionManager=null,d.ready()},o=function(a,b,c){var d,e,f,g,h,i;if("."===b)return c[c.length-1];if("."===b.charAt(0))return c[c.length-1]+b;for(d=q(b),e=d.pop(),c=c.concat();c.length;)if(f=c.pop(),g=q(f),h=a.get(g.concat(d)),"object"==typeof h&&null!==h&&ob.call(h,e)){i=f+"."+b;break}return i||void 0===a.get(b)||(i=b),i},h=function(a){if(a.keypath)k(a);else{var b=a.root._pendingResolution.indexOf(a);-1!==b&&a.root._pendingResolution.splice(b,1)}},k=function(a){var b,c,d,e,f,g,h;for(f=a.root,g=a.keypath,h=a.priority,b=f._deps[h][g],b.splice(b.indexOf(a),1),c=q(g);c.length;)c.pop(),d=c.join("."),e=f._depsMap[d],e[g]-=1,e[g]||(e.splice(e.indexOf(g),1),e[g]=void 0),g=d},kb.link=function(a){var b=this;return function(c){b.set(a,c)}},function(a){var b,c;a.observe=function(a,c,d){var e,f=[];if("object"==typeof a){d=c;for(e in a)ob.call(a,e)&&(c=a[e],f[f.length]=b(this,e,c,d));return{cancel:function(){for(;f.length;)f.pop().cancel()}}}return b(this,a,c,d)},b=function(a,b,d,e){var f;return f=new c(a,b,d,e),e&&e.init===!1||f.update(!0),j(f),{cancel:function(){k(f)}}},c=function(a,b,c,d){this.root=a,this.keypath=b,this.callback=c,this.priority=0,this.context=d&&d.context?d.context:a},c.prototype={update:function(a){var b;if(b=this.root.get(this.keypath,!0),!v(b,this.value)||a){try{this.callback.call(this.context,b,this.value)}catch(c){if(this.root.debug)throw c}this.value=b}}}}(kb),kb.off=function(a,b){var c,d;b||(a?this._subs[a]=[]:this._subs={}),c=this._subs[a],c&&(d=c.indexOf(b),-1!==d&&c.splice(d,1))},kb.on=function(a,b){var c,d,e=this;if("object"==typeof a){c=[];for(d in a)ob.call(a,d)&&(c[c.length]=this.on(d,a[d]));return{cancel:function(){for(;c.length;)c.pop().cancel()}}}return this._subs[a]?this._subs[a].push(b):this._subs[a]=[b],{cancel:function(){e.off(a,b)}}},kb.renderHTML=function(){return this.fragment.toString()},kb.requestFullscreen=function(){b.requestFullscreen(this.el)},function(a){var b,c;a.set=function(a,d,e){var f,g,h,i,j,k,l;if(g=[""],f=[],t(a)&&(e=d),k=this._transitionManager,this._transitionManager=l=B(this,e),t(a))for(h in a)ob.call(a,h)&&(j=q(h),i=j.join("."),d=a[h],b(this,i,j,d,f,g));else j=q(a),i=j.join("."),b(this,i,j,d,f,g);return f.length&&this._pendingResolution.length&&c(this),g.length&&m(this,g,!0),f.length&&m(this,f),p(this),this._transitionManager=k,l.ready(),this.setting||(this.setting=!0,"object"==typeof a?this.fire("set",a):this.fire("set",a,d),this.setting=!1),this},b=function(a,b,c,d,e,f){var g,h,j,k,l,m;if(k=c.slice(),l=[],g=a.get(b),g!==d){for(j=a.data;c.length>1;)h=l[l.length]=c.shift(),j[h]||(m||(m=l.join(".")),j[h]=/^\s*[0-9]+\s*$/.test(c[0])?[]:{}),j=j[h];h=c[0],j[h]=d}else if("object"!=typeof d)return;for(i(a,m||b),e[e.length]=b;k.length>1;)k.pop(),b=k.join("."),-1===f.indexOf(b)&&(f[f.length]=b)},c=function(a){var b,c,d;for(b=a._pendingResolution.length;b--;)c=a._pendingResolution.splice(b,1)[0],(d=o(a,c.ref,c.contextStack))?c.resolve(d):a._pendingResolution[a._pendingResolution.length]=c}}(kb),kb.teardown=function(a){var b,c,d;for(this.fire("teardown"),d=this._transitionManager,this._transitionManager=c=B(this,a),this.fragment.teardown(!0);this._animations[0];)this._animations[0].stop();for(b in this._cache)i(this,b);for(;this._bound.length;)this.unbind(this._bound.pop());this._transitionManager=d,c.ready()},kb.toggleFullscreen=function(){b.isFullscreen(this.el)?this.cancelFullscreen():this.requestFullscreen()},kb.unbind=function(a){var b,c=this._bound;b=c.indexOf(a),-1!==b&&(c.splice(b,1),a.teardown(this))},kb.update=function(a,b){var c,d;return"function"==typeof a&&(b=a),d=this._transitionManager,this._transitionManager=c=B(this,b),i(this,a||""),l(this,a||""),p(this),this._transitionManager=d,c.ready(),"string"==typeof a?this.fire("update",a):this.fire("update"),this},lb.backbone=function(a,b){var c,d,e,f,g,h,i;return b&&(b+=".",g=new RegExp("^"+b.replace(/\./g,"\\.")),h=b.length),{init:function(j){b?(i=function(a){var c,d;d={};for(c in a)ob.call(a,c)&&(d[b+c]=a[c]);return d},f=function(a){c||(d=!0,j.set(i(a.changed)),d=!1)},e=function(b,e){d||g.test(b)&&(c=!0,a.set(b.substring(h),e),c=!1)}):(f=function(a){c||(d=!0,j.set(a.changed),d=!1)},e=function(b,e){d||(c=!0,a.set(b,e),c=!1)}),a.on("change",f),j.on("set",e),j.set(b?i(a.attributes):a.attributes)},teardown:function(b){a.off("change",f),b.off("set",e)}}},lb.statesman=function(a,b){var c,d,e,f,g,h,i;return b&&(b+=".",g=new RegExp("^"+b.replace(/\./g,"\\.")),h=b.length,i=function(a){var c,d;if(a){d={};for(c in a)ob.call(a,c)&&(d[b+c]=a[c]);return d}}),{init:function(j){var k;b?(f=function(a){c||(d=!0,a=i(a),j.set(a),d=!1)},j.twoway&&(e=function(b,e){d||g.test(b)&&(c=!0,a.set(b.substring(h),e),c=!1)})):(f=function(a){c||(d=!0,j.set(a),d=!1)},j.twoway&&(e=function(b,e){d||(c=!0,a.set(b,e),c=!1)})),a.on("change",f),j.twoway&&j.on("set",e),k=b?i(a.get()):a.get(),k&&j.set(b?i(a.get()):a.get())},teardown:function(b){a.off("change",f),b.off("set",e)}}},c={linear:function(a){return a},easeIn:function(a){return Math.pow(a,3)},easeOut:function(a){return Math.pow(a-1,3)+1},easeInOut:function(a){return(a/=.5)<1?.5*Math.pow(a,3):.5*(Math.pow(a-2,3)+2)}},mb.hover=function(a,b){var c,d;return c=function(c){b({node:a,original:c,hover:!0})},d=function(c){b({node:a,original:c,hover:!1})},a.addEventListener("mouseover",c),a.addEventListener("mouseout",d),{teardown:function(){a.removeEventListener("mouseover",c),a.removeEventListener("mouseout",d)}}},function(){var a=function(a){return function(b,c){var d;return b.addEventListener("keydown",d=function(d){var e=d.which||d.keyCode;e===a&&(d.preventDefault(),c({node:b,original:d}))}),{teardown:function(){b.removeEventListener(d)}}}};mb.enter=a(13),mb.tab=a(9),mb.escape=a(27),mb.space=a(32)}(),mb.tap=function(a,b){var c,d,e,f;return e=5,f=400,c=function(a){var c,d,g,h,i,j;d=a.clientX,g=a.clientY,c=this,h=function(a){b({node:c,original:a}),j()},i=function(a){(Math.abs(a.clientX-d)>=e||Math.abs(a.clientY-g)>=e)&&j()},j=function(){jb.removeEventListener("mousemove",i),jb.removeEventListener("mouseup",h)},jb.addEventListener("mousemove",i),jb.addEventListener("mouseup",h),setTimeout(j,f)},a.addEventListener("mousedown",c),d=function(a){var c,d,g,h,i,j,k,l;1===a.touches.length&&(h=a.touches[0],d=h.clientX,g=h.clientY,c=this,i=h.identifier,k=function(a){var d;d=a.changedTouches[0],d.identifier!==i&&l(),a.preventDefault(),b({node:c,original:a}),l()},j=function(a){var b;(1!==a.touches.length||a.touches[0].identifier!==i)&&l(),b=a.touches[0],(Math.abs(b.clientX-d)>=e||Math.abs(b.clientY-g)>=e)&&l()},l=function(){window.removeEventListener("touchmove",j),window.removeEventListener("touchend",k),window.removeEventListener("touchcancel",l)},window.addEventListener("touchmove",j),window.addEventListener("touchend",k),window.addEventListener("touchcancel",l),setTimeout(l,f))},a.addEventListener("touchstart",d),{teardown:function(){a.removeEventListener("mousedown",c),a.removeEventListener("touchstart",d)}}},function(){var a,c,e,f,g,h,i,j,k,l,m,n,o;d=function(a){var c,d;return c=this,d=function(a){l(this,d,a||{})},d.prototype=F(c.prototype),c!==b&&f(d,c),h(d,a),i(d),j(d,a),k(d),d.extend=c.extend,d},m=["data","partials","transitions","eventDefinitions"],n=["el","template","complete","modifyArrays","twoway","lazy","append","preserveWhitespace","sanitize","noIntro","transitionsEnabled"],o=m.concat(n),f=function(a,b){m.forEach(function(d){b[d]&&(a[d]=c(b[d]))}),n.forEach(function(c){void 0!==b[c]&&(a[c]=b[c])})},g=function(a,b){return/_super/.test(a)?function(){var c=this._super;this._super=b,a.apply(this,arguments),this._super=c}:a},h=function(a,b){var c,d;m.forEach(function(c){var d=b[c];d&&(a[c]?e(a[c],d):a[c]=d)}),n.forEach(function(c){void 0!==b[c]&&(a[c]=b[c])});for(c in b)ob.call(b,c)&&!ob.call(a.prototype,c)&&-1===o.indexOf(c)&&(d=b[c],a.prototype[c]="function"==typeof d&&"function"==typeof a.prototype[c]?g(d,a.prototype[c]):d)},i=function(a){var c;if("string"==typeof a.template){if(!b.parse)throw new Error(tb);if("#"===a.template.charAt(0)&&jb){if(c=jb.getElementById(a.template.substring(1)),!c||"SCRIPT"!==c.tagName)throw new Error("Could not find template element ("+a.template+")");a.template=b.parse(c.innerHTML,a)}else a.template=b.parse(a.template,a)}},j=function(a,b){t(a.template)&&(a.partials||(a.partials={}),e(a.partials,a.template.partials),b.partials&&e(a.partials,b.partials),a.template=a.template.template)},k=function(a){var c,d;if(a.partials)for(c in a.partials)if(ob.call(a.partials,c)){if("string"==typeof a.partials[c]){if(!b.parse)throw new Error(tb);d=b.parse(a.partials[c],a)}else d=a.partials[c];a.partials[c]=d}},l=function(d,e,f){!f.template&&e.template&&(f.template=e.template),m.forEach(function(b){f[b]?a(f[b],e[b]):e[b]&&(f[b]=c(e[b]))}),n.forEach(function(a){void 0===f[a]&&void 0!==e[a]&&(f[a]=e[a])}),b.call(d,f),d.init&&d.init.call(d,f)},a=function(a,b){var c;for(c in b)ob.call(b,c)&&!ob.call(a,c)&&(a[c]=b[c])},c=function(a){var b,c={};for(b in a)ob.call(a,b)&&(c[b]=a[b]);return c},e=function(a,b){var c;for(c in b)ob.call(b,c)&&(a[c]=b[c])}}(),f=function(a,c){return u(a)&&u(c)?b.interpolators.number(+a,+c):s(a)&&s(c)?b.interpolators.array(a,c):t(a)&&t(c)?b.interpolators.object(a,c):function(){return c}},g={number:function(a,b){var c=b-a;return c?function(b){return a+b*c}:function(){return a}},array:function(a,c){var d,e,f,g;for(d=[],e=[],g=f=Math.min(a.length,c.length);g--;)e[g]=b.interpolate(a[g],c[g]);for(g=f;g<a.length;g+=1)d[g]=a[g];for(g=f;g<c.length;g+=1)d[g]=c[g];return function(a){for(var b=f;b--;)d[b]=e[b](a);return d}},object:function(a,c){var d,e,f,g,h=[];f={},e={};for(g in a)ob.call(a,g)&&(ob.call(c,g)?(h[h.length]=g,e[g]=b.interpolate(a[g],c[g])):f[g]=a[g]);for(g in c)ob.call(c,g)&&!ob.call(a,g)&&(f[g]=c[g]);return d=h.length,function(a){for(var b,c=d;c--;)b=h[c],f[b]=e[b](a);return f}}};var ac=G();E(ac,{preserveWhitespace:{enumerable:!0,value:!1},append:{enumerable:!0,value:!1},twoway:{enumerable:!0,value:!0},modifyArrays:{enumerable:!0,value:!0},data:{enumerable:!0,value:{}},lazy:{enumerable:!0,value:!1},debug:{enumerable:!0,value:!1},transitions:{enumerable:!0,value:{}},eventDefinitions:{enumerable:!0,value:{}},noIntro:{enumerable:!0,value:!1},transitionsEnabled:{enumerable:!0,value:!0}}),b=function(a){var c,d,e,f,g,h;for(c in ac)ob.call(a,c)||(a[c]="object"==typeof ac[c]?{}:ac[c]);if(E(this,{_guid:{value:"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(a){var b,c;return b=0|16*Math.random(),c="x"==a?b:8|3&b,c.toString(16)})},_subs:{value:G()},_cache:{value:{}},_cacheMap:{value:G()},_deps:{value:[]},_depsMap:{value:G()},_pendingResolution:{value:[]},_defAttrs:{value:[]},_defEvals:{value:[]},_proxies:{value:G()},_customProxies:{value:G()},_evaluators:{value:G()},_bound:{value:[]},_transitionManager:{value:null,writable:!0},_animations:{value:[]},nodes:{value:{}}}),this.modifyArrays=a.modifyArrays,this.twoway=a.twoway,this.lazy=a.lazy,this.debug=a.debug,a.el&&(this.el=w(a.el),!this.el&&this.debug))throw new Error("Could not find container element");if(this.data=a.data||{},this.partials={},this.transitions=a.transitions,this.eventDefinitions=a.eventDefinitions,a.bindings)if(s(a.bindings))for(e=0;e<a.bindings.length;e+=1)this.bind(a.bindings[e]);else this.bind(a.bindings);if(f=a.template,"string"==typeof f){if(!b.parse)throw new Error(tb);if("#"===f.charAt(0)&&jb){if(g=jb.getElementById(f.substring(1)),!g)throw new Error("Could not find template element ("+f+")");h=b.parse(g.innerHTML,a)}else h=b.parse(f,a)}else h=f;if(t(h)&&(this.partials=h.partials,h=h.template),h&&1===h.length&&"string"==typeof h[0]&&(h=h[0]),this.template=h,a.partials)for(c in a.partials)if(ob.call(a.partials,c)){if(d=a.partials[c],"string"==typeof d){if(!b.parse)throw new Error(tb);d=b.parse(d,a)}this.partials[c]=d}for(c in this.partials)ob.call(this.partials,c)&&1===this.partials[c].length&&"string"==typeof this.partials[c][0]&&(this.partials[c]=this.partials[c][0]);this.transitionsEnabled=a.noIntro?!1:a.transitionsEnabled,W(this,{el:this.el,append:a.append,complete:a.complete}),this.transitionsEnabled=a.transitionsEnabled},function(){var a,b,d,e;jb&&(a=function(a,b){var c,d={};for(c=b.length;c--;)d[b[c]]=a[b[c]];return d},b=function(a,b,c,d){for(var e,f=b.length;f--;)e=b[f],a.style[e]=c&&c[e]?"function"==typeof c[e]?c[e](d):c[e]:0},d=function(a,b){var c;if(!b)return a;for(c in b)ob.call(b,c)&&(a[c]=b[c]);return a},Yb&&(e=function(e,f,g,h){return"string"==typeof e&&(e=[e]),function(i,j,k,l,m){var n,o,p,q,r,s,t,u,v,w,x;k=bc(k),s=k.duration||f.duration,c=_b(k.easing||f.easing),t=(k.delay||f.delay||0)+(k.stagger||f.stagger||0)*l.i,u=m?g:h,v=m?h:g,o=window.getComputedStyle(i),r=i.getAttribute("style"),m?(w=i.style.position,x=i.style.visibility,i.style.position="absolute",i.style.visibility="hidden",setTimeout(function(){p=a(o,e),u=g,v=d(p,h),i.style.position=w,i.style.visibility=x,b(i,e,u,k),setTimeout(q,0)},t)):setTimeout(function(){p=a(o,e),u=d(p,h),v=g,b(i,e,u,k),setTimeout(q,0)},t),q=function(){i.style[Zb+"Duration"]=s/1e3+"s",i.style[Zb+"Properties"]=e.map(_b).join(","),i.style[Zb+"TimingFunction"]=c,n=function(){i.removeEventListener($b,n),m&&i.setAttribute("style",r||""),j()},i.addEventListener($b,n),b(i,e,v,k)}}},nb.slide=e(["height","borderTopWidth","borderBottomWidth","paddingTop","paddingBottom","overflowY"],{duration:400,easing:"easeInOut"},{overflowY:"hidden"},{overflowY:"hidden"}),nb.fade=e("opacity",{duration:300,easing:"linear"}),nb.fly=e(["opacity","left","position"],{duration:400,easing:"easeOut"},{position:"relative",left:"-500px"},{position:"relative",left:0})))}();var bc=function(a){return"fast"===a?{duration:200}:"slow"===a?{duration:600}:u(a)?{duration:+a}:a||{}};!function(a){var b,c,d;jb&&(c=function(a,b,e){var f,g;return 3===a.nodeType?(d(a,b,e),void 0):(f=Array.prototype.slice.call(a.childNodes),g=function(){return f.length?(c(f.shift(),g,e),void 0):(b(),void 0)},g(),void 0)},d=function(a,b,c){var d,e,f,g;return d=a._hiddenData,(e=d.length)?(g=0,f=setInterval(function(){var c,h,i,j,k;c=d.substr(0,g),h=d.substring(g),i=/^\w+/.exec(h),j=i?i[0].length:0,k=new Array(j+1).join(" "),a.data=c+k,g===e&&(clearInterval(f),delete a._hiddenData,b()),g+=1},c),void 0):(b(),void 0)},b=function(a,b,d){var e,f,g,h;d=bc(d),e=d.interval||(d.speed?1e3/d.speed:d.duration?a.textContent.length/d.duration:4),f=a.getAttribute("style"),g=window.getComputedStyle(a),a.style.visibility="hidden",setTimeout(function(){var i,j,k;j=g.width,i=g.height,k=g.visibility,h(a),setTimeout(function(){a.style.width=j,a.style.height=i,a.style.visibility="visible",c(a,function(){a.setAttribute("style",f||""),b()},e)},d.delay||0)}),h=function(a){var b,c;if(3===a.nodeType)return a._hiddenData=""+a.data,a.data="",void 0;for(b=Array.prototype.slice.call(a.childNodes),c=b.length;c--;)h(b[c])}},a.typewriter=b)}(nb),function(a){var b,c,d,e;if(jb){if(a.fullscreenEnabled=jb.fullscreenEnabled||jb.mozFullScreenEnabled||jb.webkitFullscreenEnabled,!a.fullscreenEnabled)return a.requestFullscreen=a.cancelFullscreen=pb,void 0;e=jb.createElement("div"),e.requestFullscreen?b="requestFullscreen":e.mozRequestFullScreen?b="mozRequestFullScreen":e.webkitRequestFullscreen&&(b="webkitRequestFullscreen"),a.requestFullscreen=function(a){a[b]&&a[b]()},jb.cancelFullscreen?c="cancelFullscreen":jb.mozCancelFullScreen?c="mozCancelFullScreen":jb.webkitCancelFullScreen&&(c="webkitCancelFullScreen"),a.cancelFullscreen=function(){jb[c]()},void 0!==jb.fullscreenElement?d="fullscreenElement":void 0!==jb.mozFullScreenElement?d="mozFullScreenElement":void 0!==jb.webkitFullscreenElement&&(d="webkitFullscreenElement"),a.isFullscreen=function(a){return a===jb[d]}}}(b),V=function(a){var c;this.startTime=Date.now();for(c in a)ob.call(a,c)&&(this[c]=a[c]);this.interpolator=b.interpolate(this.from,this.to),this.running=!0},V.prototype={tick:function(){var a,b,c,d,e;return this.running?(d=Date.now(),a=d-this.startTime,a>=this.duration?(this.root.set(this.keypath,this.to),this.step&&this.step(1,this.to),this.complete&&this.complete(1,this.to),e=this.root._animations.indexOf(this),-1===e&&console&&console.warn&&console.warn("Animation was not found"),this.root._animations.splice(e,1),this.running=!1,!1):(b=this.easing?this.easing(a/this.duration):a/this.duration,c=this.interpolator(b),this.root.set(this.keypath,c),this.step&&this.step(b,c),!0)):!1},stop:function(){var a;this.running=!1,a=this.root._animations.indexOf(this),-1===a&&console&&console.warn&&console.warn("Animation was not found"),this.root._animations.splice(a,1)}},ab={animations:[],tick:function(){var a,b;for(a=0;a<this.animations.length;a+=1)b=this.animations[a],b.tick()||this.animations.splice(a--,1);this.animations.length?C(this.boundTick):this.running=!1},boundTick:function(){ab.tick()},push:function(a){this.animations[this.animations.length]=a,this.running||(this.running=!0,this.tick())}},function(a,b,c){var d,e;if(c.requestAnimationFrame)return C=c.requestAnimationFrame,void 0;for(d=0;d<a.length&&!C;++d)C=c[a[d]+"RequestAnimationFrame"];C||(e=c.setTimeout,C=function(a){var c,d,f;return c=Date.now(),d=Math.max(0,16-(c-b)),f=e(function(){a(c+d)},d),b=c+d,f})}(["ms","moz","webkit","o"],0,a),function(){var a,b,c,d,e,f;bb=function(a,c,d){var e,f,g;a._ractive?(e=a._ractive.roots,f=a._ractive.keypathsByGuid,f[d._guid]||(e[e.length]=d,f[d._guid]=[]),g=f[d._guid],-1===g.indexOf(c)&&(g[g.length]=c)):(D(a,"_ractive",{value:{roots:[d],keypathsByGuid:{}},configurable:!0}),a._ractive.keypathsByGuid[d._guid]=[c],b(a))},cb=function(a,b,d){var e,f,g,h;if(!a._ractive)throw new Error("Attempted to remove keypath from non-wrapped array. This error is unexpected - please send a bug report to @rich_harris");if(e=a._ractive.roots,f=a._ractive.keypathsByGuid,!f[d._guid])throw new Error("Ractive instance was not listed as a dependent of this array. This error is unexpected - please send a bug report to @rich_harris");if(g=f[d._guid],h=g.indexOf(b),-1===h)throw new Error("Attempted to unlink non-linked keypath from array. This error is unexpected - please send a bug report to @rich_harris");g.splice(h,1),g.length||(e.splice(e.indexOf(d),1),f[d._guid]=null),e.length||c(a)},a=function(a,b,c){var d,e,f,g,h,j;j=a._ractive.keypathsByGuid,d=function(a){for(var b=a.length;b--;)e(a[b])},e=function(a){var b,c=a._transitionManager;a._transitionManager=b=B(a,pb),f(a,j[a._guid]),a._transitionManager=c,b.ready()},f=function(a,b){for(var c=b.length;c--;)g(a,b[c])},g=function(a,d){var e,f,g,j,k,n,o;for(i(a,d),k=[],n=[],o=0;o<a._deps.length;o+=1)if(e=a._deps[o],e&&(f=e[d])){for(h(a,d,f,k,n),p(a);k.length;)k.pop().smartUpdate(b,c);for(;n.length;)n.pop().update()}for(p(a),j=[],g=q(d);g.length;)g.pop(),j[j.length]=g.join(".");
m(a,j,!0),l(a,d+".length",!0)},h=function(a,b,c,d,e){var f,g;for(f=c.length;f--;)g=c[f],g.type===Mb?g.update():g.keypath===b&&g.type===xb?d[d.length]=g:e[e.length]=g},d(a._ractive.roots)},d=[],f=["pop","push","reverse","shift","sort","splice","unshift"],f.forEach(function(b){var c=function(){var c=Array.prototype[b].apply(this,arguments);return this._ractive.setting=!0,a(this,b,arguments),this._ractive.setting=!1,c};D(d,b,{value:c})}),e={},e.__proto__?(b=function(a){a.__proto__=d},c=function(a){delete a._ractive,a.__proto__=Array.prototype}):(b=function(a){var b,c;for(b=f.length;b--;)c=f[b],D(a,c,{value:d[c],configurable:!0})},c=function(a){var b;for(b=f.length;b--;)delete a[f[b]];delete a._ractive})}(),function(){var a,b,c,d,e,f;a={"accept-charset":"acceptCharset",accesskey:"accessKey",bgcolor:"bgColor","class":"className",codebase:"codeBase",colspan:"colSpan",contenteditable:"contentEditable",datetime:"dateTime",dirname:"dirName","for":"htmlFor","http-equiv":"httpEquiv",ismap:"isMap",maxlength:"maxLength",novalidate:"noValidate",pubdate:"pubDate",readonly:"readOnly",rowspan:"rowSpan",tabindex:"tabIndex",usemap:"useMap"},J=function(a){return b(this,a.name),null===a.value||"string"==typeof a.value?(c(this,a),void 0):(this.root=a.root,this.element=a.element,this.parentNode=a.parentNode,this.lcName=this.name.toLowerCase(),this.parentFragment=this.element.parentFragment,this.fragment=new P({descriptor:a.value,root:this.root,owner:this,contextStack:a.contextStack}),this.parentNode&&(d(this,a),this.selfUpdating=e(this),this.isBindable=f(this),this.isBindable&&"name"===this.propertyName&&(this.isTwowayNameAttr=!0),this.ready=!0),void 0)},J.prototype={bind:function(a){var b,c,d,e,f=this,g=this.parentNode;if(!this.fragment)return!1;if(1!==this.fragment.items.length||this.fragment.items[0].type!==vb||!this.fragment.items[0].keypath&&!this.fragment.items[0].ref)return this.root.debug&&console&&console.warn&&console.warn("Not a valid two-way data binding candidate - must be a single interpolator:",this.fragment.items),!1;if(this.interpolator=this.fragment.items[0],this.keypath=this.interpolator.keypath||this.interpolator.descriptor.r,"SELECT"===g.tagName&&"value"===this.propertyName)for(b=g.getElementsByTagName("option"),e=b.length,d=0;e>d;d+=1)if(c=b[d],c.hasAttribute("selected")){this.root.set(this.keypath,c.value);break}if("checkbox"===g.type||"radio"===g.type?"name"===this.propertyName?(g.name="{{"+this.keypath+"}}",this.updateViewModel=function(){g.checked&&f.root.set(f.keypath,g.value)}):"checked"===this.propertyName&&(this.updateViewModel=function(){f.root.set(f.keypath,g.checked)}):this.updateViewModel=function(){var a;a=g.value,"0"===a?a=0:""!==a&&(a=+a||a),f.root.set(f.keypath,a)},this.updateViewModel)for(this.twoway=!0,this.boundEvents=["change","click","blur"],a||(this.boundEvents[3]="input",g.attachEvent&&(this.boundEvents[4]="keyup")),d=this.boundEvents.length;d--;)g.addEventListener(this.boundEvents[d],this.updateViewModel)},updateBindings:function(){this.keypath=this.interpolator.keypath||this.interpolator.r,"name"===this.propertyName&&(this.parentNode.name="{{"+this.keypath+"}}")},teardown:function(){var a;if(this.boundEvents)for(a=this.boundEvents.length;a--;)this.parentNode.removeEventListener(this.boundEvents[a],this.updateViewModel);this.fragment&&this.fragment.teardown()},bubble:function(){this.selfUpdating?this.update():!this.deferred&&this.ready&&(this.root._defAttrs[this.root._defAttrs.length]=this,this.deferred=!0)},update:function(){var a,b;if(!this.ready)return this;if(this.twoway){if(b=this.lcName,a=this.interpolator.value,"name"===b&&("checkbox"===this.parentNode.type||"radio"===this.parentNode.type))return this.parentNode.checked=a===this.parentNode.value?!0:!1,this;if(jb.activeElement===this.parentNode)return this}if(a=this.fragment.getValue(),void 0===a&&(a=""),a!==this.value){if(this.useProperty)return this.parentNode[this.propertyName]=a,this;if(this.namespace)return this.parentNode.setAttributeNS(this.namespace,this.name,a),this;"id"===this.lcName&&(void 0!==this.value&&(this.root.nodes[this.value]=void 0),this.root.nodes[a]=this.parentNode),this.parentNode.setAttribute(this.name,a),this.value=a}return this},toString:function(){var a;return null===this.value?this.name:this.fragment?(a=this.fragment.toString(),this.name+"="+JSON.stringify(a)):this.name+"="+JSON.stringify(this.value)}},b=function(a,b){var c,d;if(c=b.indexOf(":"),-1===c||(d=b.substr(0,c),"xmlns"===d))a.name=b;else if(b=b.substring(c+1),a.name=b,a.namespace=Vb[d],!a.namespace)throw'Unknown namespace ("'+d+'")'},c=function(a,b){b.parentNode&&(a.namespace?b.parentNode.setAttributeNS(a.namespace,b.name,b.value):b.parentNode.setAttribute(b.name,b.value),"id"===b.name.toLowerCase()&&(b.root.nodes[b.value]=b.parentNode)),a.value=b.value},d=function(b,c){var d,e;!b.parentNode||b.namespace||c.parentNode.namespaceURI&&c.parentNode.namespaceURI!==Vb.html||(d=b.lcName,e=a[d]||d,void 0!==c.parentNode[e]&&(b.propertyName=e),("boolean"==typeof c.parentNode[e]||"value"===e)&&(b.useProperty=!0))},e=function(a){var b,c,d;for(b=a.fragment.items.length;b--;)if(c=a.fragment.items[b],c.type!==ub){if(c.type!==vb)return!1;if(d)return!1;d=!0}return!0},f=function(a){var b,c;return a.root.twoway?(b=a.element.descriptor.e.toLowerCase(),c=a.propertyName,!("name"!==c&&"value"!==c&&"checked"!==c||"input"!==b&&"textarea"!==b&&"select"!==b)):!1}}(),I=function(a,b){var c,d,e,f,g,h,i,j,k,l,m,n;if(this.type=Ab,c=this.parentFragment=a.parentFragment,d=this.descriptor=a.descriptor,this.root=n=c.root,this.parentNode=c.parentNode,this.index=a.index,this.eventListeners=[],this.customEventListeners=[],this.parentNode){if(d.a&&d.a.xmlns){if(e=d.a.xmlns,"string"!=typeof e)throw new Error("Namespace attribute cannot contain mustaches")}else e="svg"===d.e.toLowerCase()?Vb.svg:this.parentNode.namespaceURI;this.node=jb.createElementNS(e,d.e)}if(d.f&&("string"!=typeof d.f||this.node&&this.node.namespaceURI&&this.node.namespaceURI!==Vb.html?"style"===d.e&&void 0!==this.node.styleSheet?(this.fragment=new P({descriptor:d.f,root:n,contextStack:c.contextStack,owner:this}),b&&(this.bubble=function(){this.node.styleSheet.cssText=this.fragment.toString()})):(this.fragment=new H({descriptor:d.f,root:n,parentNode:this.node,contextStack:c.contextStack,owner:this}),b&&this.node.appendChild(this.fragment.docFrag)):(this.html=d.f,b&&(this.node.innerHTML=this.html))),b&&d.v)for(f in d.v)if(ob.call(d.v,f))for(g=f.split("-"),h=g.length;h--;)this.addEventProxy(g[h],d.v[f],c.contextStack);this.attributes=[],l=[];for(j in d.a)ob.call(d.a,j)&&(k=d.a[j],i=new J({element:this,name:j,value:void 0===k?null:k,root:n,parentNode:this.node,contextStack:c.contextStack}),this.attributes[this.attributes.length]=i,i.isBindable&&l.push(i),i.isTwowayNameAttr?m=i:i.update());if(b){for(;l.length;)l.pop().bind(this.root.lazy);m&&(m.updateViewModel(),m.update()),b.appendChild(this.node),d.t1&&z(d.t1,n,this,c.contextStack,!0)}},I.prototype={addEventProxy:function(a,c,d){var e,f,g,h,i,j,k,l=this.root;if(this.node._ractive||D(this.node,"_ractive",{value:{keypath:d.length?d[d.length-1]:"",index:this.parentFragment.indexRefs}}),e="string"==typeof c?c:c.n,k=a+"="+e,c.a?f=c.a:c.d&&(g=!0,f=new P({descriptor:c.d,root:this.root,owner:this,contextStack:d}),this.proxyFrags||(this.proxyFrags=[]),this.proxyFrags[this.proxyFrags.length]=f),void 0!==f){if(this.node._ractive[k])throw new Error("You cannot have two proxy events with the same trigger event ("+k+")");this.node._ractive[k]={dynamic:g,payload:f}}return(h=l.eventDefinitions[a]||b.eventDefinitions[a])?(l._customProxies[k]||(l._customProxies[k]=function(a){var b,c;if(!a.node)throw new Error("Proxy event definitions must fire events with a `node` property");a.keypath=a.node._ractive.keypath,a.context=l.get(a.keypath),a.index=a.node._ractive.index,a.node._ractive[k]&&(b=a.node._ractive[k],c=b.dynamic?b.payload.toJson():b.payload),l.fire(e,a,c)}),j=l._customProxies[k],i=h(this.node,j),this.customEventListeners[this.customEventListeners.length]=i,void 0):(void 0!==this.node["on"+a]&&l.debug&&console&&console.warn&&console.warn("Invalid event handler ("+a+")"),l._proxies[k]||(l._proxies[k]=function(a){var b,c,d={node:this,original:a,keypath:this._ractive.keypath,context:l.get(this._ractive.keypath),index:this._ractive.index};this._ractive&&this._ractive[k]&&(b=this._ractive[k],c=b.dynamic?b.payload.toJson():b.payload),l.fire(e,d,c)}),j=l._proxies[k],this.eventListeners[this.eventListeners.length]={n:a,h:j},this.node.addEventListener(a,j),void 0)},teardown:function(a){var b,c=this;for(c.fragment&&c.fragment.teardown(!1);c.attributes.length;)c.attributes.pop().teardown();for(;c.eventListeners.length;)b=c.eventListeners.pop(),c.node.removeEventListener(b.n,b.h);for(;c.customEventListeners.length;)c.customEventListeners.pop().teardown();if(this.proxyFrags)for(;this.proxyFrags.length;)this.proxyFrags.pop().teardown();this.descriptor.t2&&z(this.descriptor.t2,this.root,this,this.parentFragment.contextStack,!1),a&&this.root._transitionManager.detachWhenReady(this.node)},firstNode:function(){return this.node},findNextNode:function(){return null},bubble:function(){},toString:function(){var a,b,c;for(a="<"+this.descriptor.e,c=this.attributes.length,b=0;c>b;b+=1)a+=" "+this.attributes[b].toString();return a+=">",this.html?a+=this.html:this.fragment&&(a+=this.fragment.toString()),a+="</"+this.descriptor.e+">"}},H=function(a){return a.parentNode&&(this.docFrag=jb.createDocumentFragment()),"string"==typeof a.descriptor?(this.html=a.descriptor,this.docFrag&&(this.nodes=x(a.descriptor,this.docFrag)),void 0):($(this,a),void 0)},H.prototype={createItem:function(a){if("string"==typeof a.descriptor)return new O(a,this.docFrag);switch(a.descriptor.t){case vb:return new L(a,this.docFrag);case xb:return new N(a,this.docFrag);case wb:return new M(a,this.docFrag);case Ab:return new I(a,this.docFrag);case Bb:return new K(a,this.docFrag);default:throw new Error("WTF? not sure what happened here...")}},teardown:function(a){var b;if(a&&this.nodes)for(;this.nodes.length;)b=this.nodes.pop(),b.parentNode.removeChild(b);else if(this.items)for(;this.items.length;)this.items.pop().teardown(a)},firstNode:function(){return this.items&&this.items[0]?this.items[0].firstNode():this.nodes?this.nodes[0]||null:null},findNextNode:function(a){var b=a.index;return this.items[b+1]?this.items[b+1].firstNode():this.owner===this.root?null:this.owner.findNextNode(this)},toString:function(){var a,b,c,d;if(this.html)return this.html;if(a="",!this.items)return a;for(c=this.items.length,b=0;c>b;b+=1)d=this.items[b],a+=d.toString();return a}},L=function(a,b){this.type=vb,b&&(this.node=jb.createTextNode(""),b.appendChild(this.node)),X(this,a)},L.prototype={update:Y,resolve:Z,teardown:function(a){h(this),a&&this.parentNode.removeChild(this.node)},render:function(a){this.node&&(this.node.data=void 0===a?"":a)},firstNode:function(){return this.node},toString:function(){var a=void 0!==this.value?""+this.value:"";return a.replace("<","<").replace(">",">")}},K=function(a,b){var c,d=this.parentFragment=a.parentFragment;this.type=Bb,this.name=a.descriptor.r,c=A(d.root,a.descriptor.r),this.fragment=new H({descriptor:c,root:d.root,parentNode:d.parentNode,contextStack:d.contextStack,owner:this}),b&&b.appendChild(this.fragment.docFrag)},K.prototype={findNextNode:function(){return this.parentFragment.findNextNode(this)},teardown:function(a){this.fragment.teardown(a)},toString:function(){return this.fragment.toString()}},N=function(a,b){this.type=xb,this.fragments=[],this.length=0,b&&(this.docFrag=jb.createDocumentFragment()),this.initialising=!0,X(this,a),b&&b.appendChild(this.docFrag),this.initialising=!1},N.prototype={update:Y,resolve:Z,smartUpdate:function(a,b){var c;("push"===a||"unshift"===a||"splice"===a)&&(c={descriptor:this.descriptor.f,root:this.root,parentNode:this.parentNode,owner:this},this.descriptor.i&&(c.indexRef=this.descriptor.i)),this[a]&&this[a](c,b)},pop:function(){this.length&&(this.fragments.pop().teardown(!0),this.length-=1)},push:function(a,b){var c,d,e;for(c=this.length,d=c+b.length,e=c;d>e;e+=1)a.contextStack=this.contextStack.concat(this.keypath+"."+e),a.index=e,this.fragments[e]=this.createFragment(a);this.length+=b.length,this.parentNode.insertBefore(this.docFrag,this.parentFragment.findNextNode(this))},shift:function(){this.splice(null,[0,1])},unshift:function(a,b){this.splice(a,[0,0].concat(new Array(b.length)))},splice:function(a,b){var c,d,e,f,g,h,i,j,k;if(b.length&&(h=+(b[0]<0?this.length+b[0]:b[0]),d=Math.max(0,b.length-2),e=void 0!==b[1]?b[1]:this.length-h,f=d-e)){if(0>f){for(i=h-f,g=h;i>g;g+=1)this.fragments[g].teardown(!0);this.fragments.splice(h,-f)}else{for(i=h+f,c=this.fragments[h]?this.fragments[h].firstNode():this.parentFragment.findNextNode(this),j=[h,0].concat(new Array(f)),this.fragments.splice.apply(this.fragments,j),g=h;i>g;g+=1)a.contextStack=this.contextStack.concat(this.keypath+"."+g),a.index=g,this.fragments[g]=this.createFragment(a);this.parentNode.insertBefore(this.docFrag,c)}this.length+=f,k=h+d,y(this.root,this,k,this.length,f)}},teardown:function(a){this.teardownFragments(a),h(this)},firstNode:function(){return this.fragments[0]?this.fragments[0].firstNode():this.parentFragment.findNextNode(this)},findNextNode:function(a){return this.fragments[a.index+1]?this.fragments[a.index+1].firstNode():this.parentFragment.findNextNode(this)},teardownFragments:function(a){for(;this.fragments.length;)this.fragments.shift().teardown(a)},render:function(a){_(this,a),this.initialising||this.parentNode.insertBefore(this.docFrag,this.parentFragment.findNextNode(this))},createFragment:function(a){var b=new H(a);return this.docFrag&&this.docFrag.appendChild(b.docFrag),b},toString:function(){var a,b,c;for(a="",b=0,c=this.length,b=0;c>b;b+=1)a+=this.fragments[b].toString();return a}},O=function(a,b){this.type=ub,this.descriptor=a.descriptor,b&&(this.node=jb.createTextNode(a.descriptor),this.parentNode=a.parentFragment.parentNode,b.appendChild(this.node))},O.prototype={teardown:function(a){a&&this.parentNode.removeChild(this.node)},firstNode:function(){return this.node},toString:function(){return(""+this.descriptor).replace("<","<").replace(">",">")}},M=function(a,b){this.type=wb,b&&(this.nodes=[],this.docFrag=jb.createDocumentFragment()),this.initialising=!0,X(this,a),b&&b.appendChild(this.docFrag),this.initialising=!1},M.prototype={update:Y,resolve:Z,teardown:function(a){if(a)for(;this.nodes.length;)this.parentNode.removeChild(this.nodes.pop());h(this)},firstNode:function(){return this.nodes[0]?this.nodes[0]:this.parentFragment.findNextNode(this)},render:function(a){for(;this.nodes.length;)this.parentNode.removeChild(this.nodes.pop());return void 0===a?(this.nodes=[],void 0):(this.nodes=x(a,this.docFrag),this.initialising||this.parentNode.insertBefore(this.docFrag,this.parentFragment.findNextNode(this)),void 0)},toString:function(){return void 0!==this.value?this.value:""}},P=function(a){$(this,a)},P.prototype={createItem:function(a){if("string"==typeof a.descriptor)return new S(a.descriptor);switch(a.descriptor.t){case vb:return new Q(a);case wb:return new Q(a);case xb:return new R(a);default:throw"Something went wrong in a rather interesting way"}},bubble:function(){this.owner.bubble()},teardown:function(){var a,b;for(a=this.items.length,b=0;a>b;b+=1)this.items[b].teardown()},getValue:function(){var a;return 1===this.items.length&&this.items[0].type===vb&&(a=this.items[0].value,void 0!==a)?a:this.toString()},toString:function(){return this.items.join("")},toJson:function(){var a,b;a=this.toString();try{b=JSON.parse(a)}catch(c){b=a}return b}},Q=function(a){this.type=vb,X(this,a)},Q.prototype={update:Y,resolve:Z,render:function(a){this.value=a,this.parentFragment.bubble()},teardown:function(){h(this)},toString:function(){return void 0===this.value?"":this.value}},R=function(a){this.type=xb,this.fragments=[],this.length=0,X(this,a)},R.prototype={update:Y,resolve:Z,teardown:function(){this.teardownFragments(),h(this)},teardownFragments:function(){for(;this.fragments.length;)this.fragments.shift().teardown();this.length=0},bubble:function(){this.value=this.fragments.join(""),this.parentFragment.bubble()},render:function(a){_(this,a),this.parentFragment.bubble()},createFragment:function(a){return new P(a)},toString:function(){return this.fragments.join("")}},S=function(a){this.type=ub,this.text=a},S.prototype={toString:function(){return this.text},teardown:function(){}},w=function(a){var b;return"undefined"!=typeof window&&jb&&a?a.nodeType?a:"string"==typeof a&&(b=jb.getElementById(a),!b&&jb.querySelector&&(b=jb.querySelector(a)),b.nodeType)?b:a[0]&&a[0].nodeType?a[0]:null:null},r=Object.prototype.toString,s=function(a){return"[object Array]"===r.call(a)},v=function(a,b){return null===a&&null===b?!0:"object"==typeof a||"object"==typeof b?!1:a===b},u=function(a){return!isNaN(parseFloat(a))&&isFinite(a)},t=function(a){return"object"==typeof a&&"[object Object]"===r.call(a)},B=function(a,b){var c,d,e,f;return d=[],e=function(){var a,b;for(a=d.length;a--;)b=d[a],f(b)&&(b.parentNode.removeChild(b),d.splice(a,1))},f=function(a){var b,d;for(b=c.active.length;b--;)if(d=c.active[b],a.contains(d))return!1;return!0},c={active:[],info:{i:0},push:function(a){c.active[c.active.length]=a,c.info.i+=1},pop:function(a){c.active.splice(c.active.indexOf(a),1),e(),!c.active.length&&c._ready&&c.complete()},complete:function(){b&&b.call(a)},ready:function(){e(),c._ready=!0,c.active.length||c.complete()},detachWhenReady:function(a){d[d.length]=a}}},q=function(a){var b,c,d,e,f;if(qb[a])return qb[a].concat();for(d=[],e=a,c=0;e.length;){if(b=e.indexOf(".",c),-1===b)f=e,e="";else{if("\\"===e.charAt(b-1)&&"\\"!==e.charAt(b-2)){c=b+1;continue}f=e.substr(0,b),c=0}/\[/.test(f)?d=d.concat(f.replace(/\[\s*([0-9]+)\s*\]/g,".$1").split(".")):d[d.length]=f,e=e.substring(b+1)}return qb[a]=d,d.concat()},function(){var a,b