todomvc
Version:
> Helping you select an MV\* framework
16 lines • 120 kB
JavaScript
/** vim: et:ts=4:sw=4:sts=4
* @license RequireJS 2.0.0 Copyright (c) 2010-2012, The Dojo Foundation All Rights Reserved.
* Available via the MIT or new BSD license.
* see: http://github.com/jrburke/requirejs for details
*/
/*!
* flow.js JavaScript Library v0.2.2
* https://github.com/it-ony/flow.js
*
* Copyright 2012, Tony Findeisen
* Licensed under the MIT license.
* https://raw.github.com/it-ony/flow.js/master/LICENSE
*
* Date: Mon Mar 12 2012 12:36:34 GMT+0100 (CET)
*/
var requirejs,require,define;(function(global){function isFunction(a){return ostring.call(a)==="[object Function]"}function isArray(a){return ostring.call(a)==="[object Array]"}function each(a,b){if(a){var c;for(c=0;c<a.length;c+=1)if(b(a[c],c,a))break}}function eachReverse(a,b){if(a){var c;for(c=a.length-1;c>-1;c-=1)if(b(a[c],c,a))break}}function hasProp(a,b){return a.hasOwnProperty(b)}function eachProp(a,b){var c;for(c in a)if(a.hasOwnProperty(c)&&b(a[c],c))break}function mixin(a,b,c){b&&eachProp(b,function(b,d){if(c||!hasProp(a,d))a[d]=b})}function bind(a,b){return function(){return b.apply(a,arguments)}}function scripts(){return document.getElementsByTagName("script")}function getGlobal(a){if(!a)return a;var b=global;return each(a.split("."),function(a){b=b[a]}),b}function makeContextModuleFunc(a,b,c){return function(){var d=aps.call(arguments,0),e;return c&&isFunction(e=d[d.length-1])&&(e.__requireJsBuild=!0),d.push(b),a.apply(null,d)}}function addRequireMethods(a,b,c){each([["toUrl"],["undef"],["defined","requireDefined"],["specified","requireSpecified"]],function(d){a[d[0]]=makeContextModuleFunc(b[d[1]||d[0]],c)})}function makeError(a,b,c,d){var e=new Error(b+"\nhttp://requirejs.org/docs/errors.html#"+a);return e.requireType=a,e.requireModules=d,c&&(e.originalError=c),e}function newContext(a){function q(a){var b,c;for(b=0;a[b];b+=1){c=a[b];if(c===".")a.splice(b,1),b-=1;else if(c===".."){if(b===1&&(a[2]===".."||a[0]===".."))break;b>0&&(a.splice(b-1,2),b-=2)}}}function r(a,c,d){var e=c&&c.split("/"),f=b.map,g=f&&f["*"],h,i,j,k,l,m,n,o;a&&a.charAt(0)==="."&&(c?(b.pkgs[c]?e=[c]:e=e.slice(0,e.length-1),a=e.concat(a.split("/")),q(a),i=b.pkgs[h=a[0]],a=a.join("/"),i&&a===h+"/"+i.main&&(a=h)):a.indexOf("./")===0&&(a=a.substring(2)));if(d&&(e||g)&&f){k=a.split("/");for(l=k.length;l>0;l-=1){n=k.slice(0,l).join("/");if(e)for(m=e.length;m>0;m-=1){j=f[e.slice(0,m).join("/")];if(j){j=j[n];if(j){o=j;break}}}!o&&g&&g[n]&&(o=g[n]);if(o){k.splice(0,l,o),a=k.join("/");break}}}return a}function s(a){isBrowser&&each(scripts(),function(b){if(b.getAttribute("data-requiremodule")===a&&b.getAttribute("data-requirecontext")===n.contextName)return b.parentNode.removeChild(b),!0})}function t(a){var c=b.paths[a];if(c&&isArray(c)&&c.length>1)return s(a),c.shift(),n.undef(a),n.require([a]),!0}function u(a,b,c,d){var e=a?a.indexOf("!"):-1,h=null,k=b?b.name:null,l=a,m=!0,o,p,q,s;return a||(m=!1,a="_@r"+(i+=1)),e!==-1&&(h=a.substring(0,e),a=a.substring(e+1,a.length)),h&&(h=r(h,k,d)),a&&(h?(q=f[h],q&&q.normalize?o=q.normalize(a,function(a){return r(a,k,d)}):o=r(a,k,d)):(o=r(a,k,d),p=g[o],p||(p=n.nameToUrl(a,null,b),g[o]=p))),s=h&&!q&&!c?"_unnormalized"+(j+=1):"",{prefix:h,name:o,parentMap:b,unnormalized:!!s,url:p,originalName:l,isDefine:m,id:(h?h+"!"+(o||""):o)+s}}function v(a){var b=a.id,d=c[b];return d||(d=c[b]=new n.Module(a)),d}function w(a,b,d){var e=a.id,g=c[e];hasProp(f,e)&&(!g||g.defineEmitComplete)?b==="defined"&&d(f[e]):v(a).on(b,d)}function x(a,b){var d=a.requireModules,e=!1;b?b(a):(each(d,function(b){var d=c[b];d&&(d.error=a,d.events.error&&(e=!0,d.emit("error",a)))}),e||req.onError(a))}function y(){globalDefQueue.length&&(apsp.apply(e,[e.length-1,0].concat(globalDefQueue)),globalDefQueue=[])}function z(a,b,c){var d=a&&a.map,e=makeContextModuleFunc(c||n.require,d,b);return addRequireMethods(e,n,d),e}function A(a){delete c[a],each(k,function(b,c){if(b.map.id===a)return k.splice(c,1),b.defined||(n.waitCount-=1),!0})}function B(a,b){var d=a.map.id,e=a.depMaps,f;if(!a.inited)return;return b[d]?a:(b[d]=!0,each(e,function(a){var e=a.id,g=c[e];if(!g)return;return!g.inited||!g.enabled?(f=null,delete b[d],!0):f=B(g,b)}),f)}function C(a,b,d){var e=a.map.id,g=a.depMaps;if(!a.inited||!a.map.isDefine)return;return b[e]?f[e]:(b[e]=a,each(g,function(f){var g=f.id,h=c[g],i;if(o[g])return;if(h){if(!h.inited||!h.enabled){d[e]=!0;return}i=C(h,b,d),d[g]||a.defineDepById(g,i)}}),a.check(!0),f[e])}function D(a){a.check()}function E(){var a=b.waitSeconds*1e3,d=a&&n.startTime+a<(new Date).getTime(),e=[],f=!1,g=!0,h,i,j,m;if(l)return;l=!0,eachProp(c,function(a){h=a.map,i=h.id;if(!a.enabled)return;if(!a.error)if(!a.inited&&d)t(i)?(m=!0,f=!0):(e.push(i),s(i));else if(!a.inited&&a.fetched&&h.isDefine){f=!0;if(!h.prefix)return g=!1}});if(d&&e.length)return j=makeError("timeout","Load timeout for modules: "+e,null,e),j.contextName=n.contextName,x(j);g&&(each(k,function(a){if(a.defined)return;var b=B(a,{}),c={};b&&(C(b,c,{}),eachProp(c,D))}),eachProp(c,D)),(!d||m)&&f&&(isBrowser||isWebWorker)&&!p&&(p=setTimeout(function(){p=0,E()},50)),l=!1}function F(a){v(u(a[0],null,!0)).init(a[1],a[2])}function G(a,b,c,d){a.detachEvent&&!isOpera?d&&a.detachEvent(d,b):a.removeEventListener(c,b,!1)}function H(a){var b=a.currentTarget||a.srcElement;return G(b,n.onScriptLoad,"load","onreadystatechange"),G(b,n.onScriptError,"error"),{node:b,id:b&&b.getAttribute("data-requiremodule")}}var b={waitSeconds:7,baseUrl:"./",paths:{},pkgs:{},shim:{}},c={},d={},e=[],f={},g={},h={},i=1,j=1,k=[],l,m,n,o,p;return o={require:function(a){return z(a)},exports:function(a){a.usingExports=!0;if(a.map.isDefine)return a.exports=f[a.map.id]={}},module:function(a){return a.module={id:a.map.id,uri:a.map.url,config:function(){return b.config&&b.config[a.map.id]||{}},exports:f[a.map.id]}}},m=function(a){this.events=d[a.id]||{},this.map=a,this.shim=b.shim[a.id],this.depExports=[],this.depMaps=[],this.depMatched=[],this.pluginMaps={},this.depCount=0},m.prototype={init:function(a,b,c,d){d=d||{};if(this.inited)return;this.factory=b,c?this.on("error",c):this.events.error&&(c=bind(this,function(a){this.emit("error",a)})),each(a,bind(this,function(a,b){typeof a=="string"&&(a=u(a,this.map.isDefine?this.map:this.map.parentMap,!1,!0),this.depMaps.push(a));var d=o[a.id];if(d){this.depExports[b]=d(this);return}this.depCount+=1,w(a,"defined",bind(this,function(a){this.defineDep(b,a),this.check()})),c&&w(a,"error",c)})),this.inited=!0,this.ignore=d.ignore,d.enabled||this.enabled?this.enable():this.check()},defineDepById:function(a,b){var c;return each(this.depMaps,function(b,d){if(b.id===a)return c=d,!0}),this.defineDep(c,b)},defineDep:function(a,b){this.depMatched[a]||(this.depMatched[a]=!0,this.depCount-=1,this.depExports[a]=b)},fetch:function(){if(this.fetched)return;this.fetched=!0,n.startTime=(new Date).getTime();var a=this.map;a.prefix?this.callPlugin():this.shim?z(this,!0)(this.shim.deps||[],bind(this,function(){this.load()})):this.load()},load:function(){var a=this.map.url;h[a]||(h[a]=!0,n.load(this.map.id,a))},check:function(a){if(!this.enabled)return;var b=this.map.id,d=this.depExports,e=this.exports,g=this.factory,h,i;if(!this.inited)this.fetch();else if(this.error)this.emit("error",this.error);else if(!this.defining){this.defining=!0;if(this.depCount<1&&!this.defined){if(isFunction(g)){if(this.events.error)try{e=n.execCb(b,g,d,e)}catch(j){h=j}else e=n.execCb(b,g,d,e);this.map.isDefine&&(i=this.module,i&&i.exports!==undefined&&i.exports!==this.exports?e=i.exports:e===undefined&&this.usingExports&&(e=this.exports));if(h)return h.requireMap=this.map,h.requireModules=[this.map.id],h.requireType="define",x(this.error=h)}else e=g;this.exports=e,this.map.isDefine&&!this.ignore&&(f[b]=e,req.onResourceLoad&&req.onResourceLoad(n,this.map,this.depMaps)),delete c[b],this.defined=!0,n.waitCount-=1,n.waitCount===0&&(k=[])}this.defining=!1,a||this.defined&&!this.defineEmitted&&(this.defineEmitted=!0,this.emit("defined",this.exports),this.defineEmitComplete=!0)}},callPlugin:function(){var a=this.map,d=a.id,e=u(a.prefix,null,!1,!0);w(e,"defined",bind(this,function(e){var f=this.map.name,g=this.map.parentMap?this.map.parentMap.name:null,h,i,j;if(this.map.unnormalized){e.normalize&&(f=e.normalize(f,function(a){return r(a,g,!0)})),i=u(a.prefix+"!"+f),w(i,"defined",bind(this,function(a){this.init([],function(){return a},null,{enabled:!0,ignore:!0})})),j=c[i.id],j&&(this.events.error&&j.on("error",bind(this,function(a){this.emit("error",a)})),j.enable());return}h=bind(this,function(a){this.init([],function(){return a},null,{enabled:!0})}),h.error=bind(this,function(a){this.inited=!0,this.error=a,a.requireModules=[d],eachProp(c,function(a){a.map.id.indexOf(d+"_unnormalized")===0&&A(a.map.id)}),x(a)}),h.fromText=function(a,b){var c=useInteractive;c&&(useInteractive=!1),req.exec(b),c&&(useInteractive=!0),n.completeLoad(a)},e.load(a.name,z(a.parentMap,!0,function(a,b){return n.require(a,b)}),h,b)})),n.enable(e,this),this.pluginMaps[e.id]=e},enable:function(){this.enabled=!0,this.waitPushed||(k.push(this),n.waitCount+=1,this.waitPushed=!0),each(this.depMaps,bind(this,function(a){var b=a.id,d=c[b];!o[b]&&d&&!d.enabled&&n.enable(a,this)})),eachProp(this.pluginMaps,bind(this,function(a){var b=c[a.id];b&&!b.enabled&&n.enable(a,this)})),this.check()},on:function(a,b){var c=this.events[a];c||(c=this.events[a]=[]),c.push(b)},emit:function(a,b){each(this.events[a],function(a){a(b)}),a==="error"&&delete this.events[a]}},n={config:b,contextName:a,registry:c,defined:f,urlMap:g,urlFetched:h,waitCount:0,defQueue:e,Module:m,makeModuleMap:u,configure:function(a){a.baseUrl&&a.baseUrl.charAt(a.baseUrl.length-1)!=="/"&&(a.baseUrl+="/");var c=b.paths,d=b.pkgs,e=b.shim,f=b.map||{};mixin(b,a,!0),mixin(c,a.paths,!0),b.paths=c,a.map&&(mixin(f,a.map,!0),b.map=f),a.shim&&(eachProp(a.shim,function(a,b){isArray(a)&&(a={deps:a}),a.exports&&!a.exports.__buildReady&&(a.exports=n.makeShimExports(a.exports)),e[b]=a}),b.shim=e),a.packages&&(each(a.packages,function(a){var b;a=typeof a=="string"?{name:a}:a,b=a.location,d[a.name]={name:a.name,location:b||a.name,main:(a.main||"main").replace(currDirRegExp,"").replace(jsSuffixRegExp,"")}}),b.pkgs=d),(a.deps||a.callback)&&n.require(a.deps||[],a.callback)},makeShimExports:function(a){var b;return typeof a=="string"?(b=function(){return getGlobal(a)},b.exports=a,b):function(){return a.apply(global,arguments)}},requireDefined:function(a,b){return hasProp(f,u(a,b,!1,!0).id)},requireSpecified:function(a,b){return a=u(a,b,!1,!0).id,hasProp(f,a)||hasProp(c,a)},require:function(b,c,d,g){var h,i,j,k,l;if(typeof b=="string")return isFunction(c)?x(makeError("requireargs","Invalid require call"),d):req.get?req.get(n,b,c):(h=b,g=c,j=u(h,g,!1,!0),i=j.id,hasProp(f,i)?f[i]:x(makeError("notloaded",'Module name "'+i+'" has not been loaded yet for context: '+a)));d&&!isFunction(d)&&(g=d,d=undefined),c&&!isFunction(c)&&(g=c,c=undefined),y();while(e.length){l=e.shift();if(l[0]===null)return x(makeError("mismatch","Mismatched anonymous define() module: "+l[l.length-1]));F(l)}return k=v(u(null,g)),k.init(b,c,d,{enabled:!0}),E(),n.require},undef:function(a){var b=u(a,null,!0),e=c[a];delete f[a],delete g[a],delete h[b.url],delete d[a],e&&(e.events.defined&&(d[a]=e.events),A(a))},enable:function(a,b){var d=c[a.id];d&&v(a).enable()},completeLoad:function(a){var d=b.shim[a]||{},g=d.exports&&d.exports.exports,h,i,j;y();while(e.length){i=e.shift();if(i[0]===null){i[0]=a;if(h)break;h=!0}else i[0]===a&&(h=!0);F(i)}j=c[a];if(!h&&!f[a]&&j&&!j.inited){if(b.enforceDefine&&(!g||!getGlobal(g))){if(t(a))return;return x(makeError("nodefine","No define call for "+a,null,[a]))}F([a,d.deps||[],d.exports])}E()},toUrl:function(a,b){var c=a.lastIndexOf("."),d=null;return c!==-1&&(d=a.substring(c,a.length),a=a.substring(0,c)),n.nameToUrl(a,d,b)},nameToUrl:function(a,c,d){var e,f,g,h,i,j,k,l,m;a=r(a,d&&d.id,!0);if(req.jsExtRegExp.test(a))l=a+(c||"");else{e=b.paths,f=b.pkgs,i=a.split("/");for(j=i.length;j>0;j-=1){k=i.slice(0,j).join("/"),g=f[k],m=e[k];if(m){isArray(m)&&(m=m[0]),i.splice(0,j,m);break}if(g){a===g.name?h=g.location+"/"+g.main:h=g.location,i.splice(0,j,h);break}}l=i.join("/")+(c||".js"),l=(l.charAt(0)==="/"||l.match(/^[\w\+\.\-]+:/)?"":b.baseUrl)+l}return b.urlArgs?l+((l.indexOf("?")===-1?"?":"&")+b.urlArgs):l},load:function(a,b){req.load(n,a,b)},execCb:function(a,b,c,d){return b.apply(d,c)},onScriptLoad:function(a){if(a.type==="load"||readyRegExp.test((a.currentTarget||a.srcElement).readyState)){interactiveScript=null;var b=H(a);n.completeLoad(b.id)}},onScriptError:function(a){var b=H(a);if(!t(b.id))return x(makeError("scripterror","Script error",a,[b.id]))}}}function getInteractiveScript(){return interactiveScript&&interactiveScript.readyState==="interactive"?interactiveScript:(eachReverse(scripts(),function(a){if(a.readyState==="interactive")return interactiveScript=a}),interactiveScript)}var version="2.0.0",commentRegExp=/(\/\*([\s\S]*?)\*\/|([^:]|^)\/\/(.*)$)/mg,cjsRequireRegExp=/require\s*\(\s*["']([^'"\s]+)["']\s*\)/g,jsSuffixRegExp=/\.js$/,currDirRegExp=/^\.\//,ostring=Object.prototype.toString,ap=Array.prototype,aps=ap.slice,apsp=ap.splice,isBrowser=typeof window!="undefined"&&!!navigator&&!!document,isWebWorker=!isBrowser&&typeof importScripts!="undefined",readyRegExp=isBrowser&&navigator.platform==="PLAYSTATION 3"?/^complete$/:/^(complete|loaded)$/,defContextName="_",isOpera=typeof opera!="undefined"&&opera.toString()==="[object Opera]",contexts={},cfg={},globalDefQueue=[],useInteractive=!1,req,s,head,baseElement,dataMain,src,interactiveScript,currentlyAddingScript,mainScript,subPath;if(typeof define!="undefined")return;if(typeof requirejs!="undefined"){if(isFunction(requirejs))return;cfg=requirejs,requirejs=undefined}typeof require!="undefined"&&!isFunction(require)&&(cfg=require,require=undefined),req=requirejs=function(a,b,c,d){var e=defContextName,f,g;return!isArray(a)&&typeof a!="string"&&(g=a,isArray(b)?(a=b,b=c,c=d):a=[]),g&&g.context&&(e=g.context),f=contexts[e],f||(f=contexts[e]=req.s.newContext(e)),g&&f.configure(g),f.require(a,b,c)},req.config=function(a){return req(a)},require||(require=req),req.version=version,req.jsExtRegExp=/^\/|:|\?|\.js$/,req.isBrowser=isBrowser,s=req.s={contexts:contexts,newContext:newContext},req({}),addRequireMethods(req,contexts[defContextName]),isBrowser&&(head=s.head=document.getElementsByTagName("head")[0],baseElement=document.getElementsByTagName("base")[0],baseElement&&(head=s.head=baseElement.parentNode)),req.onError=function(a){throw a},req.load=function(a,b,c){var d=a&&a.config||{},e;if(isBrowser)return e=d.xhtml?document.createElementNS("http://www.w3.org/1999/xhtml","html:script"):document.createElement("script"),e.type=d.scriptType||"text/javascript",e.charset="utf-8",e.setAttribute("data-requirecontext",a.contextName),e.setAttribute("data-requiremodule",b),e.attachEvent&&!(e.attachEvent.toString&&e.attachEvent.toString().indexOf("[native code")<0)&&!isOpera?(useInteractive=!0,e.attachEvent("onreadystatechange",a.onScriptLoad)):(e.addEventListener("load",a.onScriptLoad,!1),e.addEventListener("error",a.onScriptError,!1)),e.src=c,currentlyAddingScript=e,baseElement?head.insertBefore(e,baseElement):head.appendChild(e),currentlyAddingScript=null,e;isWebWorker&&(importScripts(c),a.completeLoad(b))},isBrowser&&eachReverse(scripts(),function(a){head||(head=a.parentNode),dataMain=a.getAttribute("data-main");if(dataMain)return cfg.baseUrl||(src=dataMain.split("/"),mainScript=src.pop(),subPath=src.length?src.join("/")+"/":"./",cfg.baseUrl=subPath,dataMain=mainScript.replace(jsSuffixRegExp,"")),cfg.deps=cfg.deps?cfg.deps.concat(dataMain):[dataMain],!0}),define=function(a,b,c){var d,e;typeof a!="string"&&(c=b,b=a,a=null),isArray(b)||(c=b,b=[]),!b.length&&isFunction(c)&&c.length&&(c.toString().replace(commentRegExp,"").replace(cjsRequireRegExp,function(a,c){b.push(c)}),b=(c.length===1?["require"]:["require","exports","module"]).concat(b)),useInteractive&&(d=currentlyAddingScript||getInteractiveScript(),d&&(a||(a=d.getAttribute("data-requiremodule")),e=contexts[d.getAttribute("data-requirecontext")])),(e?e.defQueue:globalDefQueue).push([a,b,c])},define.amd={jQuery:!0},req.exec=function(text){return eval(text)},req(cfg)})(this),define("js/lib/require.js",function(){});var exports=typeof exports=="undefined"?this:exports;exports.parser=function(){var a={parse:function(a,b){function i(a,b,c){var d=a,e=c-a.length;for(var f=0;f<e;f++)d=b+d;return d}function j(a){var b=a.charCodeAt(0);if(b<=255)var c="x",d=2;else var c="u",d=4;return"\\"+c+i(b.toString(16).toUpperCase(),"0",d)}function k(a){return'"'+a.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\r/g,"\\r").replace(/\n/g,"\\n").replace(/[\x80-\uFFFF]/g,j)+'"'}function l(a){if(d<f)return;d>f&&(f=d,g=[]),g.push(a)}function m(){var b="varName@"+d,c=h[b];if(c)return d=c.nextPos,c.result;var f=d,g=d;if(a.substr(d).match(/^[a-zA-Z$_]/)!==null){var i=a.charAt(d);d++}else{var i=null;e&&l("[a-zA-Z$_]")}if(i!==null){var j=[];if(a.substr(d).match(/^[a-zA-Z0-9$_\- ]/)!==null){var k=a.charAt(d);d++}else{var k=null;e&&l("[a-zA-Z0-9$_\\- ]")}while(k!==null){j.push(k);if(a.substr(d).match(/^[a-zA-Z0-9$_\- ]/)!==null){var k=a.charAt(d);d++}else{var k=null;e&&l("[a-zA-Z0-9$_\\- ]")}}if(j!==null)var m=[i,j];else{var m=null;d=g}}else{var m=null;d=g}var n=m!==null?function(a,b){return a?a+b.join(""):!1}(m[0],m[1]):null;if(n!==null)var o=n;else{var o=null;d=f}if(o!==null)var p=o;else{var q=d,r=[];if(r!==null)var p=r;else var p=null}return h[b]={nextPos:d,result:p},p}function n(){var b="string@"+d,c=h[b];if(c)return d=c.nextPos,c.result;var f=d,g=d;if(a.substr(d,1)==="'"){var i="'";d+=1}else{var i=null;e&&l('"\'"')}if(i!==null){var j=[],k=d;if(a.length>d){var m=a.charAt(d);d++}else{var m=null;e&&l("any character")}var n=m!==null?function(a){return a==="'"?null:a}(m):null;if(n!==null)var o=n;else{var o=null;d=k}while(o!==null){j.push(o);var k=d;if(a.length>d){var m=a.charAt(d);d++}else{var m=null;e&&l("any character")}var n=m!==null?function(a){return a==="'"?null:a}(m):null;if(n!==null)var o=n;else{var o=null;d=k}}if(j!==null){if(a.substr(d,1)==="'"){var p="'";d+=1}else{var p=null;e&&l('"\'"')}if(p!==null)var q=[i,j,p];else{var q=null;d=g}}else{var q=null;d=g}}else{var q=null;d=g}var r=q!==null?function(a){return a.join("")}(q[1]):null;if(r!==null)var s=r;else{var s=null;d=f}return h[b]={nextPos:d,result:s},s}function o(){var b="number@"+d,c=h[b];if(c)return d=c.nextPos,c.result;var f=d,g=d;if(a.substr(d,1)==="-"){var i="-";d+=1}else{var i=null;e&&l('"-"')}var j=i!==null?i:"";if(j!==null){if(a.substr(d).match(/^[0-9]/)!==null){var k=a.charAt(d);d++}else{var k=null;e&&l("[0-9]")}if(k!==null){var m=[];while(k!==null){m.push(k);if(a.substr(d).match(/^[0-9]/)!==null){var k=a.charAt(d);d++}else{var k=null;e&&l("[0-9]")}}}else var m=null;if(m!==null)var n=[j,m];else{var n=null;d=g}}else{var n=null;d=g}var o=n!==null?function(a,b){return parseInt(b.join(""),10)*(a?-1:1)}(n[0],n[1]):null;if(o!==null)var p=o;else{var p=null;d=f}return h[b]={nextPos:d,result:p},p}function p(){var b="float@"+d,c=h[b];if(c)return d=c.nextPos,c.result;var f=d,g=d,i=o();if(i!==null){if(a.substr(d,1)==="."){var j=".";d+=1}else{var j=null;e&&l('"."')}if(j!==null){if(a.substr(d).match(/^[0-9]/)!==null){var k=a.charAt(d);d++}else{var k=null;e&&l("[0-9]")}if(k!==null){var m=[];while(k!==null){m.push(k);if(a.substr(d).match(/^[0-9]/)!==null){var k=a.charAt(d);d++}else{var k=null;e&&l("[0-9]")}}}else var m=null;if(m!==null)var n=[i,j,m];else{var n=null;d=g}}else{var n=null;d=g}}else{var n=null;d=g}var p=n!==null?function(a,b){return parseFloat(a+"."+b.join(""),10)}(n[0],n[2]):null;if(p!==null)var q=p;else{var q=null;d=f}return h[b]={nextPos:d,result:q},q}function q(){var b="boolean@"+d,c=h[b];if(c)return d=c.nextPos,c.result;var f=d;if(a.substr(d,4)==="true"){var g="true";d+=4}else{var g=null;e&&l('"true"')}var i=g!==null?function(){return!0}():null;if(i!==null)var j=i;else{var j=null;d=f}if(j!==null)var k=j;else{var m=d;if(a.substr(d,5)==="false"){var n="false";d+=5}else{var n=null;e&&l('"false"')}var o=n!==null?function(){return!1}():null;if(o!==null)var p=o;else{var p=null;d=m}if(p!==null)var k=p;else var k=null}return h[b]={nextPos:d,result:k},k}function r(){var b="index@"+d,c=h[b];if(c)return d=c.nextPos,c.result;var f=d,g=d;if(a.substr(d,1)==="["){var i="[";d+=1}else{var i=null;e&&l('"["')}if(i!==null){var j=o();if(j!==null){if(a.substr(d,1)==="]"){var k="]";d+=1}else{var k=null;e&&l('"]"')}if(k!==null)var m=[i,j,k];else{var m=null;d=g}}else{var m=null;d=g}}else{var m=null;d=g}var n=m!==null?function(a){return a}(m[1]):null;if(n!==null)var p=n;else{var p=null;d=f}return h[b]={nextPos:d,result:p},p}function s(){var a="parameter@"+d,b=h[a];if(b)return d=b.nextPos,b.result;var c=n();if(c!==null)var e=c;else{var f=q();if(f!==null)var e=f;else{var g=p();if(g!==null)var e=g;else{var i=o();if(i!==null)var e=i;else{var j=A();if(j!==null)var e=j;else{var k=y();if(k!==null)var e=k;else var e=null}}}}}return h[a]={nextPos:d,result:e},e}function t(){var b="parameterArray@"+d,c=h[b];if(c)return d=c.nextPos,c.result;var f=d,g=d,i=s(),j=i!==null?i:"";if(j!==null){var k=[],m=d,n=d;if(a.substr(d,1)===","){var o=",";d+=1}else{var o=null;e&&l('","')}if(o!==null){var p=s();if(p!==null)var q=[o,p];else{var q=null;d=n}}else{var q=null;d=n}var r=q!==null?function(a){return a}(q[1]):null;if(r!==null)var t=r;else{var t=null;d=m}while(t!==null){k.push(t);var m=d,n=d;if(a.substr(d,1)===","){var o=",";d+=1}else{var o=null;e&&l('","')}if(o!==null){var p=s();if(p!==null)var q=[o,p];else{var q=null;d=n}}else{var q=null;d=n}var r=q!==null?function(a){return a}(q[1]):null;if(r!==null)var t=r;else{var t=null;d=m}}if(k!==null)var u=[j,k];else{var u=null;d=g}}else{var u=null;d=g}var v=u!==null?function(a,b){return a?[a].concat(b):[]}(u[0],u[1]):null;if(v!==null)var w=v;else{var w=null;d=f}return h[b]={nextPos:d,result:w},w}function u(){var a="var@"+d,b=h[a];if(b)return d=b.nextPos,b.result;var c=d,e=d,f=m();if(f!==null){var g=r(),i=g!==null?g:"";if(i!==null)var j=[f,i];else{var j=null;d=e}}else{var j=null;d=e}var k=j!==null?function(a,b){return{name:a,type:"var",index:b}}(j[0],j[1]):null;if(k!==null)var l=k;else{var l=null;d=c}return h[a]={nextPos:d,result:l},l}function v(){var b="fnc@"+d,c=h[b];if(c)return d=c.nextPos,c.result;var f=d,g=d,i=m();if(i!==null){if(a.substr(d,1)==="("){var j="(";d+=1}else{var j=null;e&&l('"("')}if(j!==null){var k=t(),n=k!==null?k:"";if(n!==null){if(a.substr(d,1)===")"){var o=")";d+=1}else{var o=null;e&&l('")"')}if(o!==null){var p=r(),q=p!==null?p:"";if(q!==null)var s=[i,j,n,o,q];else{var s=null;d=g}}else{var s=null;d=g}}else{var s=null;d=g}}else{var s=null;d=g}}else{var s=null;d=g}var u=s!==null?function(a,b,c){return{name:a,type:"fnc",parameter:b,index:c}}(s[0],s[2],s[4]):null;if(u!==null)var v=u;else{var v=null;d=f}return h[b]={nextPos:d,result:v},v}function w(){var a="pathElement@"+d,b=h[a];if(b)return d=b.nextPos,b.result;var c=d,e=r(),f=e!==null?function(a){return{type:"index",index:a}}(e):null;if(f!==null)var g=f;else{var g=null;d=c}if(g!==null)var i=g;else{var j=v();if(j!==null)var i=j;else{var k=u();if(k!==null)var i=k;else var i=null}}return h[a]={nextPos:d,result:i},i}function x(){var b="path@"+d,c=h[b];if(c)return d=c.nextPos,c.result;var f=d,g=d,i=w();if(i!==null){var j=[],k=d,m=d;if(a.substr(d,1)==="."){var n=".";d+=1}else{var n=null;e&&l('"."')}if(n!==null){var o=w();if(o!==null)var p=[n,o];else{var p=null;d=m}}else{var p=null;d=m}var q=p!==null?function(a){return a}(p[1]):null;if(q!==null)var r=q;else{var r=null;d=k}while(r!==null){j.push(r);var k=d,m=d;if(a.substr(d,1)==="."){var n=".";d+=1}else{var n=null;e&&l('"."')}if(n!==null){var o=w();if(o!==null)var p=[n,o];else{var p=null;d=m}}else{var p=null;d=m}var q=p!==null?function(a){return a}(p[1]):null;if(q!==null)var r=q;else{var r=null;d=k}}if(j!==null)var s=[i,j];else{var s=null;d=g}}else{var s=null;d=g}var t=s!==null?function(a,b){return[a].concat(b)}(s[0],s[1]):null;if(t!==null)var u=t;else{var u=null;d=f}return h[b]={nextPos:d,result:u},u}function y(){var b="binding@"+d,c=h[b];if(c)return d=c.nextPos,c.result;var f=d,g=d;if(a.substr(d,1)==="{"){var i="{";d+=1}else{var i=null;e&&l('"{"')}if(i!==null){var j=x();if(j!==null){if(a.substr(d,1)==="}"){var k="}";d+=1}else{var k=null;e&&l('"}"')}if(k!==null)var m=[i,j,k];else{var m=null;d=g}}else{var m=null;d=g}}else{var m=null;d=g}var n=m!==null?function(a){return a?{path:a,type:"normal"}:!1}(m[1]):null;if(n!==null)var o=n;else{var o=null;d=f}return h[b]={nextPos:d,result:o},o}function z(){var b="twoWayBinding@"+d,c=h[b];if(c)return d=c.nextPos,c.result;var f=d,g=d;if(a.substr(d,2)==="{{"){var i="{{";d+=2}else{var i=null;e&&l('"{{"')}if(i!==null){var j=x();if(j!==null){var k=d,m=d;if(a.substr(d,1)==="|"){var n="|";d+=1}else{var n=null;e&&l('"|"')}if(n!==null){var o=x();if(o!==null)var p=[n,o];else{var p=null;d=m}}else{var p=null;d=m}var q=p!==null?function(a){return a}(p[1]):null;if(q!==null)var r=q;else{var r=null;d=k}var s=r!==null?r:"";if(s!==null){var t=d,u=d;if(a.substr(d,1)==="|"){var v="|";d+=1}else{var v=null;e&&l('"|"')}if(v!==null){var w=x();if(w!==null)var y=[v,w];else{var y=null;d=u}}else{var y=null;d=u}var z=y!==null?function(a){return a}(y[1]):null;if(z!==null)var A=z;else{var A=null;d=t}var B=A!==null?A:"";if(B!==null){if(a.substr(d,2)==="}}"){var C="}}";d+=2}else{var C=null;e&&l('"}}"')}if(C!==null)var D=[i,j,s,B,C];else{var D=null;d=g}}else{var D=null;d=g}}else{var D=null;d=g}}else{var D=null;d=g}}else{var D=null;d=g}var E=D!==null?function(a,b,c){return a?{path:a,type:"twoWay",transformBack:b||!1,transform:c||!1}:!1}(D[1],D[2],D[3]):null;if(E!==null)var F=E;else{var F=null;d=f}return h[b]={nextPos:d,result:F},F}function A(){var b="staticBinding@"+d,c=h[b];if(c)return d=c.nextPos,c.result;var f=d,g=d;if(a.substr(d,1)==="$"){var i="$";d+=1}else{var i=null;e&&l('"$"')}if(i!==null){var j=y();if(j!==null)var k=[i,j];else{var k=null;d=g}}else{var k=null;d=g}var m=k!==null?function(a){return a.type="static",a}(k[1]):null;if(m!==null)var n=m;else{var n=null;d=f}return h[b]={nextPos:d,result:n},n}function B(){var b="text@"+d,c=h[b];if(c)return d=c.nextPos,c.result;var f=d,g=z(),i=g!==null?function(a){return[a]}(g):null;if(i!==null)var j=i;else{var j=null;d=f}if(j!==null)var k=j;else{var m=[],n=A();if(n!==null)var o=n;else{var p=y();if(p!==null)var o=p;else{if(a.length>d){var q=a.charAt(d);d++}else{var q=null;e&&l("any character")}if(q!==null)var o=q;else var o=null}}while(o!==null){m.push(o);var n=A();if(n!==null)var o=n;else{var p=y();if(p!==null)var o=p;else{if(a.length>d){var q=a.charAt(d);d++}else{var q=null;e&&l("any character")}if(q!==null)var o=q;else var o=null}}}if(m!==null)var k=m;else var k=null}return h[b]={nextPos:d,result:k},k}function C(){function b(a){a.sort();var b=null,c=[];for(var d=0;d<a.length;d++)a[d]!==b&&(c.push(a[d]),b=a[d]);switch(c.length){case 0:return"end of input";case 1:return c[0];default:return c.slice(0,c.length-1).join(", ")+" or "+c[c.length-1]}}var c=b(g),e=Math.max(d,f),h=e<a.length?k(a.charAt(e)):"end of input";return"Expected "+c+" but "+h+" found."}function D(){var b=1,c=1,d=!1;for(var e=0;e<f;e++){var g=a.charAt(e);g==="\n"?(d||b++,c=1,d=!1):g==="\r"|g==="\u2028"||g==="\u2029"?(b++,c=1,d=!0):(c++,d=!1)}return{line:b,column:c}}var c={binding:y,"boolean":q,"float":p,fnc:v,index:r,number:o,parameter:s,parameterArray:t,path:x,pathElement:w,staticBinding:A,string:n,text:B,twoWayBinding:z,"var":u,varName:m};if(b!==undefined){if(c[b]===undefined)throw new Error("Invalid rule name: "+k(b)+".")}else b="text";var d=0,e=!0,f=0,g=[],h={},E=c[b]();if(E===null||d!==a.length){var F=D();throw new this.SyntaxError(C(),F.line,F.column)}return E},toSource:function(){return this._source}};return a.SyntaxError=function(a,b,c){this.name="SyntaxError",this.message=a,this.line=b,this.column=c},a.SyntaxError.prototype=Error.prototype,a}(),define("js/lib/parser",function(){return exports.parser}),define("js/lib/parser",function(){});var inherit;(function(a,b){inherit=function(a,b,c,d){var e=Array.prototype.slice.call(arguments);e[0]instanceof Object&&e.unshift(null),e[2]instanceof Function&&e.splice(2,0,null),a=e[0],b=e[1]||{},c=e[2]||{},d=e[3]||Object;var f=function(){if(this.ctor)return this.ctor.apply(this,arguments)};if(d.constructor instanceof Function){function g(){}g.prototype=d.prototype,f.prototype=new g,f.prototype.constructor=b,b&&a&&(f.prototype.constructor.name=a),f.prototype.base=d.prototype}else f.prototype=d,f.prototype.constructor=b,f.prototype.base=d;for(var h in b)if(b.hasOwnProperty(h)){var i=f.prototype[h];f.prototype[h]=b[h],i instanceof Function&&(f.prototype[h].baseImplementation=i)}for(var j in c)c.hasOwnProperty(j)&&(f[j]=c[j]);return f.prototype.callBase=inherit.callBase,f},inherit.callBase=function(){var a=Array.prototype.slice.call(arguments);return a.length==0&&(a=Array.prototype.slice.call(arguments.callee.caller.arguments)),arguments.callee.caller.baseImplementation.apply(this,a)},Function.prototype.inherit=function(a,b,c){var d=Array.prototype.slice.call(arguments);return d[0]instanceof Object&&d.unshift(null),inherit(d[0],d[1],d[2],this)},Function.prototype.callBase=function(){var a=Array.prototype.slice.call(arguments),b=a.shift();if(b&&b.base){var c=arguments.callee.caller;return this==c?this.baseImplementation.apply(b,a):this.apply(b,a)}throw"base not definied"},Function.prototype.classof=function(a){if(!a)return!1;if(a instanceof Function)return a===this||this.prototype instanceof a;throw new Error("factory must be a function")},inherit.Base=inherit({ctor:function(){}}),b.inherit=inherit})(this,typeof exports=="undefined"?this:exports),define("inherit",function(){return inherit}),define("inherit",function(){}),define("js/core/Base",["inherit"],function(a){var b=a.Base.inherit("js.core.Base",{ctor:function(){},runsInBrowser:function(){return typeof window!="undefined"},log:function(a,c){c=c||b.LOGLEVEL.INFO,a instanceof Error&&(a=a.toString());if(b.logger.length)for(var d=0;d<b.logger.length;d++)b.logger[d].log(a,c);else typeof console!="undefined"&&(console[c]||console.log).call(console,a)}});return b.logger=[],b.LOGLEVEL={DEBUG:"debug",INFO:"info",WARN:"warn",ERROR:"error"},b}),define("js/core/EventDispatcher",["js/core/Base"],function(a){Function.prototype.on=function(){var a=Array.prototype.slice.call(arguments,0);this._events=this._events||[];for(var b=0;b<a.length;b++){var c=a[b];this._events.push(c)}return this},Function.prototype.onChange=function(){var a=Array.prototype.slice.call(arguments,0);this._events=this._events||[],this._attributes=this._attributes||[];for(var b=0;b<a.length;b++){var c=a[b];this._attributes.push(c),c="change:"+c,this._events.push(c)}return this};var b,c=a.inherit("js.core.EventDispatcher",{ctor:function(){this.callBase(),this._eventHandlers={}},bind:function(a,b,d){if(b){d=d||this;var e=this._eventHandlers[a]||(this._eventHandlers[a]=[]),f=new c.EventHandler(b,d);return e.push(f),f}return console.warn('no eventHandler for "'+a+'"'),null},trigger:function(a,d,e){if(this._eventHandlers[a]){d instanceof c.Event||(d=new c.Event(d)),e||(e=arguments.callee.caller),d.target=e,d.type=a;var f=this._eventHandlers[a];for(var g=0;g<f.length;g++)if(f[g]){var h=f[g].trigger(d,e);h!==b&&(ret=h,h===!1&&(d.preventDefault(),d.stopPropagation()));if(d.isImmediatePropagationStopped)break}}return d},unbind:function(a,b,c){if(!a)this._eventHandlers={};else if(!b)this._eventHandlers[a]=[];else if(this._eventHandlers[a]){var d=this._eventHandlers[a];for(var e=d.length-1;e>=0;e--)d[e].$callback==b&&(!c||c===d[e].scope)&&d.splice(e,1)}},destroy:function(){this._eventHandlers={}}});return c.Event=a.inherit({ctor:function(a,b){this.$=a,this.target=b,this.isDefaultPrevented=!1,this.isPropagationStopped=!1,this.isImmediatePropagationStopped=!1},preventDefault:function(){this.isDefaultPrevented=!0;var a=this.$.orginalEvent;a&&(a.preventDefault?a.preventDefault():a.returnValue=!1)},stopPropagation:function(){this.isPropagationStopped=!0},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=!0,this.stopPropagation()}}),c.EventHandler=a.inherit({ctor:function(a,b){this.scope=b,this.$callback=a},trigger:function(a,b){return this.$callback.call(this.scope,a,b),!a.isPropagationStopped}}),c}),function(){function A(a,b,c){if(a===b)return a!==0||1/a==1/b;if(a==null||b==null)return a===b;a._chain&&(a=a._wrapped),b._chain&&(b=b._wrapped);if(a.isEqual&&w.isFunction(a.isEqual))return a.isEqual(b);if(b.isEqual&&w.isFunction(b.isEqual))return b.isEqual(a);var d=i.call(a);if(d!=i.call(b))return!1;switch(d){case"[object String]":return a==String(b);case"[object Number]":return a!=+a?b!=+b:a==0?1/a==1/b:a==+b;case"[object Date]":case"[object Boolean]":return+a==+b;case"[object RegExp]":return a.source==b.source&&a.global==b.global&&a.multiline==b.multiline&&a.ignoreCase==b.ignoreCase}if(typeof a!="object"||typeof b!="object")return!1;var e=c.length;while(e--)if(c[e]==a)return!0;c.push(a);var f=0,g=!0;if(d=="[object Array]"){f=a.length,g=f==b.length;if(g)while(f--)if(!(g=f in a==f in b&&A(a[f],b[f],c)))break}else{if("constructor"in a!="constructor"in b||a.constructor!=b.constructor)return!1;for(var h in a)if(w.has(a,h)){f++;if(!(g=w.has(b,h)&&A(a[h],b[h],c)))break}if(g){for(h in b)if(w.has(b,h)&&!(f--))break;g=!f}}return c.pop(),g}var a=this,b=a._,c={},d=Array.prototype,e=Object.prototype,f=Function.prototype,g=d.slice,h=d.unshift,i=e.toString,j=e.hasOwnProperty,k=d.forEach,l=d.map,m=d.reduce,n=d.reduceRight,o=d.filter,p=d.every,q=d.some,r=d.indexOf,s=d.lastIndexOf,t=Array.isArray,u=Object.keys,v=f.bind,w=function(a){return new I(a)};typeof exports!="undefined"?(typeof module!="undefined"&&module.exports&&(exports=module.exports=w),exports._=w):a._=w,w.VERSION="1.3.3";var x=w.each=w.forEach=function(a,b,d){if(a==null)return;if(k&&a.forEach===k)a.forEach(b,d);else if(a.length===+a.length){for(var e=0,f=a.length;e<f;e++)if(e in a&&b.call(d,a[e],e,a)===c)return}else for(var g in a)if(w.has(a,g)&&b.call(d,a[g],g,a)===c)return};w.map=w.collect=function(a,b,c){var d=[];return a==null?d:l&&a.map===l?a.map(b,c):(x(a,function(a,e,f){d[d.length]=b.call(c,a,e,f)}),a.length===+a.length&&(d.length=a.length),d)},w.reduce=w.foldl=w.inject=function(a,b,c,d){var e=arguments.length>2;a==null&&(a=[]);if(m&&a.reduce===m)return d&&(b=w.bind(b,d)),e?a.reduce(b,c):a.reduce(b);x(a,function(a,f,g){e?c=b.call(d,c,a,f,g):(c=a,e=!0)});if(!e)throw new TypeError("Reduce of empty array with no initial value");return c},w.reduceRight=w.foldr=function(a,b,c,d){var e=arguments.length>2;a==null&&(a=[]);if(n&&a.reduceRight===n)return d&&(b=w.bind(b,d)),e?a.reduceRight(b,c):a.reduceRight(b);var f=w.toArray(a).reverse();return d&&!e&&(b=w.bind(b,d)),e?w.reduce(f,b,c,d):w.reduce(f,b)},w.find=w.detect=function(a,b,c){var d;return y(a,function(a,e,f){if(b.call(c,a,e,f))return d=a,!0}),d},w.filter=w.select=function(a,b,c){var d=[];return a==null?d:o&&a.filter===o?a.filter(b,c):(x(a,function(a,e,f){b.call(c,a,e,f)&&(d[d.length]=a)}),d)},w.reject=function(a,b,c){var d=[];return a==null?d:(x(a,function(a,e,f){b.call(c,a,e,f)||(d[d.length]=a)}),d)},w.every=w.all=function(a,b,d){var e=!0;return a==null?e:p&&a.every===p?a.every(b,d):(x(a,function(a,f,g){if(!(e=e&&b.call(d,a,f,g)))return c}),!!e)};var y=w.some=w.any=function(a,b,d){b||(b=w.identity);var e=!1;return a==null?e:q&&a.some===q?a.some(b,d):(x(a,function(a,f,g){if(e||(e=b.call(d,a,f,g)))return c}),!!e)};w.include=w.contains=function(a,b){var c=!1;return a==null?c:r&&a.indexOf===r?a.indexOf(b)!=-1:(c=y(a,function(a){return a===b}),c)},w.invoke=function(a,b){var c=g.call(arguments,2);return w.map(a,function(a){return(w.isFunction(b)?b||a:a[b]).apply(a,c)})},w.pluck=function(a,b){return w.map(a,function(a){return a[b]})},w.max=function(a,b,c){if(!b&&w.isArray(a)&&a[0]===+a[0])return Math.max.apply(Math,a);if(!b&&w.isEmpty(a))return-Infinity;var d={computed:-Infinity};return x(a,function(a,e,f){var g=b?b.call(c,a,e,f):a;g>=d.computed&&(d={value:a,computed:g})}),d.value},w.min=function(a,b,c){if(!b&&w.isArray(a)&&a[0]===+a[0])return Math.min.apply(Math,a);if(!b&&w.isEmpty(a))return Infinity;var d={computed:Infinity};return x(a,function(a,e,f){var g=b?b.call(c,a,e,f):a;g<d.computed&&(d={value:a,computed:g})}),d.value},w.shuffle=function(a){var b=[],c;return x(a,function(a,d,e){c=Math.floor(Math.random()*(d+1)),b[d]=b[c],b[c]=a}),b},w.sortBy=function(a,b,c){var d=w.isFunction(b)?b:function(a){return a[b]};return w.pluck(w.map(a,function(a,b,e){return{value:a,criteria:d.call(c,a,b,e)}}).sort(function(a,b){var c=a.criteria,d=b.criteria;return c===void 0?1:d===void 0?-1:c<d?-1:c>d?1:0}),"value")},w.groupBy=function(a,b){var c={},d=w.isFunction(b)?b:function(a){return a[b]};return x(a,function(a,b){var e=d(a,b);(c[e]||(c[e]=[])).push(a)}),c},w.sortedIndex=function(a,b,c){c||(c=w.identity);var d=0,e=a.length;while(d<e){var f=d+e>>1;c(a[f])<c(b)?d=f+1:e=f}return d},w.toArray=function(a){return a?w.isArray(a)?g.call(a):w.isArguments(a)?g.call(a):a.toArray&&w.isFunction(a.toArray)?a.toArray():w.values(a):[]},w.size=function(a){return w.isArray(a)?a.length:w.keys(a).length},w.first=w.head=w.take=function(a,b,c){return b!=null&&!c?g.call(a,0,b):a[0]},w.initial=function(a,b,c){return g.call(a,0,a.length-(b==null||c?1:b))},w.last=function(a,b,c){return b!=null&&!c?g.call(a,Math.max(a.length-b,0)):a[a.length-1]},w.rest=w.tail=function(a,b,c){return g.call(a,b==null||c?1:b)},w.compact=function(a){return w.filter(a,function(a){return!!a})},w.flatten=function(a,b){return w.reduce(a,function(a,c){return w.isArray(c)?a.concat(b?c:w.flatten(c)):(a[a.length]=c,a)},[])},w.without=function(a){return w.difference(a,g.call(arguments,1))},w.uniq=w.unique=function(a,b,c){var d=c?w.map(a,c):a,e=[];return a.length<3&&(b=!0),w.reduce(d,function(c,d,f){if(b?w.last(c)!==d||!c.length:!w.include(c,d))c.push(d),e.push(a[f]);return c},[]),e},w.union=function(){return w.uniq(w.flatten(arguments,!0))},w.intersection=w.intersect=function(a){var b=g.call(arguments,1);return w.filter(w.uniq(a),function(a){return w.every(b,function(b){return w.indexOf(b,a)>=0})})},w.difference=function(a){var b=w.flatten(g.call(arguments,1),!0);return w.filter(a,function(a){return!w.include(b,a)})},w.zip=function(){var a=g.call(arguments),b=w.max(w.pluck(a,"length")),c=new Array(b);for(var d=0;d<b;d++)c[d]=w.pluck(a,""+d);return c},w.indexOf=function(a,b,c){if(a==null)return-1;var d,e;if(c)return d=w.sortedIndex(a,b),a[d]===b?d:-1;if(r&&a.indexOf===r)return a.indexOf(b);for(d=0,e=a.length;d<e;d++)if(d in a&&a[d]===b)return d;return-1},w.lastIndexOf=function(a,b){if(a==null)return-1;if(s&&a.lastIndexOf===s)return a.lastIndexOf(b);var c=a.length;while(c--)if(c in a&&a[c]===b)return c;return-1},w.range=function(a,b,c){arguments.length<=1&&(b=a||0,a=0),c=arguments[2]||1;var d=Math.max(Math.ceil((b-a)/c),0),e=0,f=new Array(d);while(e<d)f[e++]=a,a+=c;return f};var z=function(){};w.bind=function(b,c){var d,e;if(b.bind===v&&v)return v.apply(b,g.call(arguments,1));if(!w.isFunction(b))throw new TypeError;return e=g.call(arguments,2),d=function(){if(this instanceof d){z.prototype=b.prototype;var a=new z,f=b.apply(a,e.concat(g.call(arguments)));return Object(f)===f?f:a}return b.apply(c,e.concat(g.call(arguments)))}},w.bindAll=function(a){var b=g.call(arguments,1);return b.length==0&&(b=w.functions(a)),x(b,function(b){a[b]=w.bind(a[b],a)}),a},w.memoize=function(a,b){var c={};return b||(b=w.identity),function(){var d=b.apply(this,arguments);return w.has(c,d)?c[d]:c[d]=a.apply(this,arguments)}},w.delay=function(a,b){var c=g.call(arguments,2);return setTimeout(function(){return a.apply(null,c)},b)},w.defer=function(a){return w.delay.apply(w,[a,1].concat(g.call(arguments,1)))},w.throttle=function(a,b){var c,d,e,f,g,h,i=w.debounce(function(){g=f=!1},b);return function(){c=this,d=arguments;var j=function(){e=null,g&&a.apply(c,d),i()};return e||(e=setTimeout(j,b)),f?g=!0:h=a.apply(c,d),i(),f=!0,h}},w.debounce=function(a,b,c){var d;return function(){var e=this,f=arguments,g=function(){d=null,c||a.apply(e,f)};c&&!d&&a.apply(e,f),clearTimeout(d),d=setTimeout(g,b)}},w.once=function(a){var b=!1,c;return function(){return b?c:(b=!0,c=a.apply(this,arguments))}},w.wrap=function(a,b){return function(){var c=[a].concat(g.call(arguments,0));return b.apply(this,c)}},w.compose=function(){var a=arguments;return function(){var b=arguments;for(var c=a.length-1;c>=0;c--)b=[a[c].apply(this,b)];return b[0]}},w.after=function(a,b){return a<=0?b():function(){if(--a<1)return b.apply(this,arguments)}},w.keys=u||function(a){if(a!==Object(a))throw new TypeError("Invalid object");var b=[];for(var c in a)w.has(a,c)&&(b[b.length]=c);return b},w.values=function(a){return w.map(a,w.identity)},w.functions=w.methods=function(a){var b=[];for(var c in a)w.isFunction(a[c])&&b.push(c);return b.sort()},w.extend=function(a){return x(g.call(arguments,1),function(b){for(var c in b)a[c]=b[c]}),a},w.pick=function(a){var b={};return x(w.flatten(g.call(arguments,1)),function(c){c in a&&(b[c]=a[c])}),b},w.defaults=function(a){return x(g.call(arguments,1),function(b){for(var c in b)a[c]==null&&(a[c]=b[c])}),a},w.clone=function(a){return w.isObject(a)?w.isArray(a)?a.slice():w.extend({},a):a},w.tap=function(a,b){return b(a),a},w.isEqual=function(a,b){return A(a,b,[])},w.isEmpty=function(a){if(a==null)return!0;if(w.isArray(a)||w.isString(a))return a.length===0;for(var b in a)if(w.has(a,b))return!1;return!0},w.isElement=function(a){return!!a&&a.nodeType==1},w.isArray=t||function(a){return i.call(a)=="[object Array]"},w.isObject=function(a){return a===Object(a)},w.isArguments=function(a){return i.call(a)=="[object Arguments]"},w.isArguments(arguments)||(w.isArguments=function(a){return!!a&&!!w.has(a,"callee")}),w.isFunction=function(a){return i.call(a)=="[object Function]"},w.isString=function(a){return i.call(a)=="[object String]"},w.isNumber=function(a){return i.call(a)=="[object Number]"},w.isFinite=function(a){return w.isNumber(a)&&isFinite(a)},w.isNaN=function(a){return a!==a},w.isBoolean=function(a){return a===!0||a===!1||i.call(a)=="[object Boolean]"},w.isDate=function(a){return i.call(a)=="[object Date]"},w.isRegExp=function(a){return i.call(a)=="[object RegExp]"},w.isNull=function(a){return a===null},w.isUndefined=function(a){return a===void 0},w.has=function(a,b){return j.call(a,b)},w.noConflict=function(){return a._=b,this},w.identity=function(a){return a},w.times=function(a,b,c){for(var d=0;d<a;d++)b.call(c,d)},w.escape=function(a){return(""+a).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'").replace(/\//g,"/")},w.result=function(a,b){if(a==null)return null;var c=a[b];return w.isFunction(c)?c.call(a):c},w.mixin=function(a){x(w.functions(a),function(b){K(b,w[b]=a[b])})};var B=0;w.uniqueId=function(a){var b=B++;return a?a+b:b},w.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g};var C=/.^/,D={"\\":"\\","'":"'",r:"\r",n:"\n",t:" ",u2028:"\u2028",u2029:"\u2029"};for(var E in D)D[D[E]]=E;var F=/\\|'|\r|\n|\t|\u2028|\u2029/g,G=/\\(\\|'|r|n|t|u2028|u2029)/g,H=function(a){return a.replace(G,function(a,b){return D[b]})};w.template=function(a,b,c){c=w.defaults(c||{},w.templateSettings);var d="__p+='"+a.replace(F,function(a){return"\\"+D[a]}).replace(c.escape||C,function(a,b){return"'+\n_.escape("+H(b)+")+\n'"}).replace(c.interpolate||C,function(a,b){return"'+\n("+H(b)+")+\n'"}).replace(c.evaluate||C,function(a,b){return"';\n"+H(b)+"\n;__p+='"})+"';\n";c.variable||(d="with(obj||{}){\n"+d+"}\n"),d="var __p='';var print=function(){__p+=Array.prototype.join.call(arguments, '')};\n"+d+"return __p;\n";var e=new Function(c.variable||"obj","_",d);if(b)return e(b,w);var f=function(a){return e.call(this,a,w)};return f.source="function("+(c.variable||"obj")+"){\n"+d+"}",f},w.chain=function(a){return w(a).chain()};var I=function(a){this._wrapped=a};w.prototype=I.prototype;var J=function(a,b){return b?w(a).chain():a},K=function(a,b){I.prototype[a]=function(){var a=g.call(arguments);return h.call(a,this._wrapped),J(b.apply(w,a),this._chain)}};w.mixin(w),x(["pop","push","reverse","shift","sort","splice","unshift"],function(a){var b=d[a];I.prototype[a]=function(){var c=this._wrapped;b.apply(c,arguments);var d=c.length;return(a=="shift"||a=="splice")&&d===0&&delete c[0],J(c,this._chain)}}),x(["concat","join","slice"],function(a){var b=d[a];I.prototype[a]=function(){return J(b.apply(this._wrapped,arguments),this._chain)}}),I.prototype.chain=function(){return this._chain=!0,this},I.prototype.value=function(){return this._wrapped}}.call(this),define("underscore",function(){return _}),define("underscore",function(){}),define("js/core/Binding",["js/core/EventDispatcher","js/lib/parser","underscore"],function(a,b,c){var d=function(a){var b=[];for(var c=0;c<a.length;c++){var d=a[c];if(d.type!=h)return!1;b.push(d.name)}return b.join(".")},e,f=a.inherit("js.core.Binding",{defaults:{event:"change",path:null,twoWay:!1},ctor:function(a){if(!e)try{e=requirejs("js/core/Bindable")}catch(b){e=null}this.callBase(),this.$=a,c.defaults(this.$,this.defaults),this.initialize()},transform:function(a){return a},transformBack:function(a){return a},initialize:function(){this._checkAttributes(),this.$parameters=[],this.$events=[],this.$subBinding=null,this.$.rootScope||(this.$.rootScope=this);var a=this.$.scope;c.isString(this.$.path)&&(this.$.path=b.parse(this.$.path,"path")),this.$.key=this.$.path[0];var d=this;if(this.$.key.type==g){var e=this.$.key.name;this.$parameters=this.$.key.parameter;if(c.isFunction(a[e])){var f=a[e],h=[];if(f._attributes&&f._attributes.length>0)this.$.scope.bind("change",this._changeCallback,this),this.$events.push({eventType:"change",callback:this._changeCallback});else{f._events?h=f._events:h=[];var i,j;for(var k=0;k<h.length;k++)i=h[k],a.bind(i,this._callback,this),this.$events.push({eventType:i,callback:this._callback})}var l=function(){d.trigger()},m;for(var n=0;n<this.$parameters.length;n++)m=this.$parameters[n],c.isObject(m)&&(this.$parameters[n]=this.$.bindingCreator.create(m,this.$.target,l));this.$.fnc=f,this.$.fnc.trigger=function(){d.trigger()}}}else this.$.event="change:"+this.$.key.name,this.$events.push({eventType:this.$.event,callback:this._callback}),a.bind(this.$.event,this._callback,this);this.$.twoWay===!0&&this.$.path.length===1&&(this.$.targetEvent="change:"+this.$.targetKey,this.$.target.bind(this.$.targetEvent,this._revCallback,this)),this._createSubBinding(),a.bind("destroy",function(){d.destroy()}),this.$.path.length===1&&this.trigger()},_checkAttributes:function(){if(!this.$.path)throw"No path defined!";if(!this.$.scope)throw"No scope defined!";if(this.$.twoWay){if(!this.$.target)throw"TwoWay binding, but no target defined!";if(!this.$.target instanceof e)throw"Target is not a Bindable!";if(!this.$.targetKey)throw"TwoWay binding, but no target key defined!"}this.$.bindingCreator||(this.$.bindingCreator=this),this.$.transform&&(this.transform=this.$.transform),this.$.transformBack&&(this.transformBack=this.$.transformBack)},_createSubBinding:function(){if(this.$.path.length>1){var a;this.$.fnc?a=this.getValue():a=this.$.scope.$[this.$.key.name],a&&a instanceof e&&(this.$subBinding=new f({scope:a,path:this.$.path.slice(1),target:this.$.target,targetKey:this.$.targetKey,rootScope:this.$.rootScope,callback:this.$.callback,context:this.$.context,twoWay:this.$.twoWay,transform:this.$.transform,transformBack:this.$.transformBack,bindingCreator:this.$.bindingCreator}))}},_revCallback:function(a){if(this.$.fnc){var b=this._getFncParameters();b.unshift(a.$),this.$.fnc.apply(this.$.scope,b)}else this.$.scope.set(d(this.$.path),this.transformBack(a.$))},_changeCallback:function(a){for(var b=0;b<this.$.fnc._attributes.length;b++)if(!c.isUndefined(a.$[this.$.fnc._attributes[b]])){this.trigger();return}},_callback:function(){this.$subBinding&&(this.$subBinding.destroy(),this.$subBinding=null),this._createSubBinding(),this.trigger()},destroy:function(){var a;for(var b=0;b<this.$events.length;b++)a=this.$events[b],this.$.scope.unbind(a.eventType,a.callback);this.$.twoWay===!0&&this.$.target.unbind(this.$.targetEvent,this._revCallback),this.$subBinding&&(this.$subBinding.destroy(),delete this.$subBinding);for(var c=0;c<this.$parameters.length;c++){var d=this.$parameters[c];d instanceof f&&d.destroy()}},_getFncParameters:function(){var a=[];for(var b=0;b<this.$parameters.length;b++){var c=this.$parameters[b];c instanceof f&&(c=c.getValue()),a.push(c)}return a},getValue:function(){return this.$subBinding?this.$subBinding.getValue():this.$.fnc?this.$.fnc.apply(this.$.scope,this._getFncParameters()):this.$.path.length==1?this.$.scope.get(this.$.key.name):null},getContextValue:function(){return this.$.context&&this.$.context.length>1?f.contextToString(this.$.context):this.getValue()},trigger:function(){var a=this.getContextValue();this.$.targetKey?this.$.target.set(this.$.targetKey,this.transform(a)):this.$.callback&&this.$.callback.call(this.$.target,this.transform(a))},toString:function(){return this.getValue()},create:function(a,b,c){var d={scope:this.$.scope,target:b,callback:c,path:a.path,twoWay:a.type===j,bindingCreator:this.$.bindingCreator},e,g;return a.transform&&(e=a.transform.pop(),g=this.get(a.transform),g&&(d.transform=g[e.name])),a.transformBack&&(e=a.transformBack.pop(),g=this.get(a.transform),g&&(d.transformBack=g[e.name])),new f(d)}}),g=f.TYPE_FNC="fnc",h=f.TYPE_VAR="var",i=f.TYPE_STATIC="static",j=f.TYPE_TWOWAY="twoWay";return f.contextToString=function(a){var b="",c;for(var d=0;d<a.length;d++)c=a[d],c instanceof f&&(c=c.getValue()),c!==null&&typeof c!="undefined"&&(b+=c);return b},f}),define("js/core/BindingCreator",["js/core/EventDispatcher","js/lib/parser","js/core/Binding","underscore"],function(a,b,c,d){function e(a,b){var d=a[0];d.type==c.TYPE_FNC?b=b.getScopeForFncName(d.name):b=b.getScopeForKey(d.name);var e=b;while(e&&a.length>0){d=a.shift();if(d.type==c.TYPE_