ember-source 1.0.0.rc6.2 → 1.0.0.rc6.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of ember-source might be problematic. Click here for more details.

@@ -8,14 +8,14 @@
8
8
  // ==========================================================================
9
9
 
10
10
 
11
- // Version: v1.0.0-rc.6-56-g19271bc
12
- // Last commit: 19271bc (2013-06-30 23:18:40 -0700)
11
+ // Version: v1.0.0-rc.6-221-g9d051c2
12
+ // Last commit: 9d051c2 (2013-07-28 23:13:59 -0700)
13
13
 
14
14
 
15
- !function(){var e,t;!function(){var r={},n={};e=function(e,t,n){r[e]={deps:t,callback:n}},t=function(e){if(n[e])return n[e];n[e]={};var i,s,o,a,u;if(i=r[e],!i)throw new Error("Module '"+e+"' not found.");s=i.deps,o=i.callback,a=[];for(var c=0,l=s.length;l>c;c++)"exports"===s[c]?a.push(u={}):a.push(t(s[c]));var h=o.apply(this,a);return n[e]=u||h}}(),function(){function e(e){return r.console&&r.console[e]?r.console[e].apply?function(){r.console[e].apply(r.console,arguments)}:function(){var t=Array.prototype.join.call(arguments,", ");r.console[e](t)}:void 0}function t(e,t){if(!e)try{throw new Error("assertion failed: "+t)}catch(r){setTimeout(function(){throw r},0)}}"undefined"==typeof Ember&&(Ember={});var r=Ember.imports=Ember.imports||this,n=Ember.exports=Ember.exports||this;Ember.lookup=Ember.lookup||this,n.Em=n.Ember=Em=Ember,Ember.isNamespace=!0,Ember.toString=function(){return"Ember"},Ember.VERSION="1.0.0-rc.6",Ember.ENV=Ember.ENV||("undefined"==typeof ENV?{}:ENV),Ember.config=Ember.config||{},Ember.EXTEND_PROTOTYPES=Ember.ENV.EXTEND_PROTOTYPES,"undefined"==typeof Ember.EXTEND_PROTOTYPES&&(Ember.EXTEND_PROTOTYPES=!0),Ember.LOG_STACKTRACE_ON_DEPRECATION=Ember.ENV.LOG_STACKTRACE_ON_DEPRECATION!==!1,Ember.SHIM_ES5=Ember.ENV.SHIM_ES5===!1?!1:Ember.EXTEND_PROTOTYPES,Ember.LOG_VERSION=Ember.ENV.LOG_VERSION===!1?!1:!0,Ember.K=function(){return this},"undefined"==typeof Ember.assert&&(Ember.assert=Ember.K),"undefined"==typeof Ember.warn&&(Ember.warn=Ember.K),"undefined"==typeof Ember.debug&&(Ember.debug=Ember.K),"undefined"==typeof Ember.deprecate&&(Ember.deprecate=Ember.K),"undefined"==typeof Ember.deprecateFunc&&(Ember.deprecateFunc=function(e,t){return t}),Ember.uuid=0,Ember.Logger={log:e("log")||Ember.K,warn:e("warn")||Ember.K,error:e("error")||Ember.K,info:e("info")||Ember.K,debug:e("debug")||e("info")||Ember.K,assert:e("assert")||t},Ember.onerror=null,Ember.handleErrors=function(e,t){if("function"!=typeof Ember.onerror)return e.call(t||this);try{return e.call(t||this)}catch(r){Ember.onerror(r)}},Ember.merge=function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r]);return e},Ember.isNone=function(e){return null===e||void 0===e},Ember.none=Ember.deprecateFunc("Ember.none is deprecated. Please use Ember.isNone instead.",Ember.isNone),Ember.isEmpty=function(e){return Ember.isNone(e)||0===e.length&&"function"!=typeof e||"object"==typeof e&&0===Ember.get(e,"length")},Ember.empty=Ember.deprecateFunc("Ember.empty is deprecated. Please use Ember.isEmpty instead.",Ember.isEmpty)}(),function(){var e=Ember.platform={};if(Ember.create=Object.create,Ember.create&&2!==Ember.create({a:1},{a:{value:2}}).a&&(Ember.create=null),!Ember.create||Ember.ENV.STUB_OBJECT_CREATE){var t=function(){};Ember.create=function(e,r){if(t.prototype=e,e=new t,r){t.prototype=e;for(var n in r)t.prototype[n]=r[n].value;e=new t}return t.prototype=null,e},Ember.create.isSimulated=!0}var r,n,i=Object.defineProperty;if(i)try{i({},"a",{get:function(){}})}catch(s){i=null}i&&(r=function(){var e={};return i(e,"a",{configurable:!0,enumerable:!0,get:function(){},set:function(){}}),i(e,"a",{configurable:!0,enumerable:!0,writable:!0,value:!0}),e.a===!0}(),n=function(){try{return i(document.createElement("div"),"definePropertyOnDOM",{}),!0}catch(e){}return!1}(),r?n||(i=function(e,t,r){var n;return n="object"==typeof Node?e instanceof Node:"object"==typeof e&&"number"==typeof e.nodeType&&"string"==typeof e.nodeName,n?e[t]=r.value:Object.defineProperty(e,t,r)}):i=null),e.defineProperty=i,e.hasPropertyAccessors=!0,e.defineProperty||(e.hasPropertyAccessors=!1,e.defineProperty=function(e,t,r){r.get||(e[t]=r.value)},e.defineProperty.isSimulated=!0),Ember.ENV.MANDATORY_SETTER&&!e.hasPropertyAccessors&&(Ember.ENV.MANDATORY_SETTER=!1)}(),function(){var e=function(e){return e&&Function.prototype.toString.call(e).indexOf("[native code]")>-1},t=e(Array.prototype.map)?Array.prototype.map:function(e){if(void 0===this||null===this)throw new TypeError;var t=Object(this),r=t.length>>>0;if("function"!=typeof e)throw new TypeError;for(var n=new Array(r),i=arguments[1],s=0;r>s;s++)s in t&&(n[s]=e.call(i,t[s],s,t));return n},r=e(Array.prototype.forEach)?Array.prototype.forEach:function(e){if(void 0===this||null===this)throw new TypeError;var t=Object(this),r=t.length>>>0;if("function"!=typeof e)throw new TypeError;for(var n=arguments[1],i=0;r>i;i++)i in t&&e.call(n,t[i],i,t)},n=e(Array.prototype.indexOf)?Array.prototype.indexOf:function(e,t){null===t||void 0===t?t=0:0>t&&(t=Math.max(0,this.length+t));for(var r=t,n=this.length;n>r;r++)if(this[r]===e)return r;return-1};Ember.ArrayPolyfills={map:t,forEach:r,indexOf:n},Ember.SHIM_ES5&&(Array.prototype.map||(Array.prototype.map=t),Array.prototype.forEach||(Array.prototype.forEach=r),Array.prototype.indexOf||(Array.prototype.indexOf=n))}(),function(){function e(e){this.descs={},this.watching={},this.cache={},this.source=e}function t(e,t){return!(!e||"function"!=typeof e[t])}var r=Ember.platform.defineProperty,n=Ember.create,i="__ember"+ +new Date,s=0,o=[],a={},u=Ember.ENV.MANDATORY_SETTER;Ember.GUID_KEY=i;var c={writable:!1,configurable:!1,enumerable:!1,value:null};Ember.generateGuid=function(e,t){t||(t="ember");var n=t+s++;return e&&(c.value=n,r(e,i,c)),n},Ember.guidFor=function(e){if(void 0===e)return"(undefined)";if(null===e)return"(null)";var t,n=typeof e;switch(n){case"number":return t=o[e],t||(t=o[e]="nu"+e),t;case"string":return t=a[e],t||(t=a[e]="st"+s++),t;case"boolean":return e?"(true)":"(false)";default:return e[i]?e[i]:e===Object?"(Object)":e===Array?"(Array)":(t="ember"+s++,c.value=t,r(e,i,c),t)}};var l={writable:!0,configurable:!1,enumerable:!1,value:null},h=Ember.GUID_KEY+"_meta";Ember.META_KEY=h;var m={descs:{},watching:{}};u&&(m.values={}),Ember.EMPTY_META=m,Object.freeze&&Object.freeze(m);var f=Ember.platform.defineProperty.isSimulated;f&&(e.prototype.__preventPlainObject__=!0,e.prototype.toJSON=function(){}),Ember.meta=function(t,i){var s=t[h];return i===!1?s||m:(s?s.source!==t&&(f||r(t,h,l),s=n(s),s.descs=n(s.descs),s.watching=n(s.watching),s.cache={},s.source=t,u&&(s.values=n(s.values)),t[h]=s):(f||r(t,h,l),s=new e(t),u&&(s.values={}),t[h]=s,s.descs.constructor=null),s)},Ember.getMeta=function(e,t){var r=Ember.meta(e,!1);return r[t]},Ember.setMeta=function(e,t,r){var n=Ember.meta(e,!0);return n[t]=r,r},Ember.metaPath=function(e,t,r){for(var i,s,o=Ember.meta(e,r),a=0,u=t.length;u>a;a++){if(i=t[a],s=o[i]){if(s.__ember_source__!==e){if(!r)return void 0;s=o[i]=n(s),s.__ember_source__=e}}else{if(!r)return void 0;s=o[i]={__ember_source__:e}}o=s}return s},Ember.wrap=function(e,t){function r(){}function n(){var n,i=this._super;return this._super=t||r,n=e.apply(this,arguments),this._super=i,n}return n.wrappedFunction=e,n.__ember_observes__=e.__ember_observes__,n.__ember_observesBefore__=e.__ember_observesBefore__,n},Ember.isArray=function(e){return!e||e.setInterval?!1:Array.isArray&&Array.isArray(e)?!0:Ember.Array&&Ember.Array.detect(e)?!0:void 0!==e.length&&"object"==typeof e?!0:!1},Ember.makeArray=function(e){return null===e||void 0===e?[]:Ember.isArray(e)?e:[e]},Ember.canInvoke=t,Ember.tryInvoke=function(e,r,n){return t(e,r)?e[r].apply(e,n||[]):void 0};var p=function(){var e=0;try{try{}finally{throw e++,new Error("needsFinallyFixTest")}}catch(t){}return 1!==e}();Ember.tryFinally=p?function(e,t,r){var n,i,s;r=r||this;try{n=e.call(r)}finally{try{i=t.call(r)}catch(o){s=o}}if(s)throw s;return void 0===i?n:i}:function(e,t,r){var n,i;r=r||this;try{n=e.call(r)}finally{i=t.call(r)}return void 0===i?n:i},Ember.tryCatchFinally=p?function(e,t,r,n){var i,s,o;n=n||this;try{i=e.call(n)}catch(a){i=t.call(n,a)}finally{try{s=r.call(n)}catch(u){o=u}}if(o)throw o;return void 0===s?i:s}:function(e,t,r,n){var i,s;n=n||this;try{i=e.call(n)}catch(o){i=t.call(n,o)}finally{s=r.call(n)}return void 0===s?i:s};var d={},b="Boolean Number String Function Array Date RegExp Object".split(" ");Ember.ArrayPolyfills.forEach.call(b,function(e){d["[object "+e+"]"]=e.toLowerCase()});var E=Object.prototype.toString;Ember.typeOf=function(e){var t;return t=null===e||void 0===e?String(e):d[E.call(e)]||"object","function"===t?Ember.Object&&Ember.Object.detect(e)&&(t="class"):"object"===t&&(t=e instanceof Error?"error":Ember.Object&&e instanceof Ember.Object?"instance":"object"),t}}(),function(){Ember.Instrumentation={};var e=[],t={},r=function(r){for(var n,i=[],s=0,o=e.length;o>s;s++)n=e[s],n.regex.test(r)&&i.push(n.object);return t[r]=i,i},n=function(){var e="undefined"!=typeof window?window.performance||{}:{},t=e.now||e.mozNow||e.webkitNow||e.msNow||e.oNow;return t?t.bind(e):function(){return+new Date}}();Ember.Instrumentation.instrument=function(e,i,s,o){function a(){for(p=0,d=m.length;d>p;p++)f=m[p],b[p]=f.before(e,n(),i);return s.call(o)}function u(e){i=i||{},i.exception=e}function c(){for(p=0,d=m.length;d>p;p++)f=m[p],f.after(e,n(),i,b[p]);Ember.STRUCTURED_PROFILE&&console.timeEnd(l)}var l,h,m=t[e];if(Ember.STRUCTURED_PROFILE&&(l=e+": "+i.object,console.time(l)),m||(m=r(e)),0===m.length)return h=s.call(o),Ember.STRUCTURED_PROFILE&&console.timeEnd(l),h;var f,p,d,b=[];return Ember.tryCatchFinally(a,u,c)},Ember.Instrumentation.subscribe=function(r,n){for(var i,s=r.split("."),o=[],a=0,u=s.length;u>a;a++)i=s[a],"*"===i?o.push("[^\\.]*"):o.push(i);o=o.join("\\."),o+="(\\..*)?";var c={pattern:r,regex:new RegExp("^"+o+"$"),object:n};return e.push(c),t={},c},Ember.Instrumentation.unsubscribe=function(r){for(var n,i=0,s=e.length;s>i;i++)e[i]===r&&(n=i);e.splice(n,1),t={}},Ember.Instrumentation.reset=function(){e=[],t={}},Ember.instrument=Ember.Instrumentation.instrument,Ember.subscribe=Ember.Instrumentation.subscribe}(),function(){var e,t,r,n;n=Array.prototype.concat,e=Array.prototype.map||Ember.ArrayPolyfills.map,t=Array.prototype.forEach||Ember.ArrayPolyfills.forEach,r=Array.prototype.indexOf||Ember.ArrayPolyfills.indexOf;var i=Ember.EnumerableUtils={map:function(t,r,n){return t.map?t.map.call(t,r,n):e.call(t,r,n)},forEach:function(e,r,n){return e.forEach?e.forEach.call(e,r,n):t.call(e,r,n)},indexOf:function(e,t,n){return e.indexOf?e.indexOf.call(e,t,n):r.call(e,t,n)},indexesOf:function(e,t){return void 0===t?[]:i.map(t,function(t){return i.indexOf(e,t)})},addObject:function(e,t){var r=i.indexOf(e,t);-1===r&&e.push(t)},removeObject:function(e,t){var r=i.indexOf(e,t);-1!==r&&e.splice(r,1)},replace:function(e,t,r,i){if(e.replace)return e.replace(t,r,i);var s=n.apply([t,r],i);return e.splice.apply(e,s)},intersection:function(e,t){var r=[];return i.forEach(e,function(e){i.indexOf(t,e)>=0&&r.push(e)}),r}}}(),function(){var e,t=Ember.META_KEY,r=Ember.ENV.MANDATORY_SETTER,n=/^([A-Z$]|([0-9][A-Z$])).*[\.\*]/,i=/^this[\.\*]/,s=/^([^\.\*]+)/;e=function(e,n){if(""===n)return e;if(n||"string"!=typeof e||(n=e,e=null),null===e||-1!==n.indexOf("."))return a(e,n);var i,s=e[t],o=s&&s.descs[n];return o?o.get(e,n):(i=r&&s&&s.watching[n]>0?s.values[n]:e[n],void 0!==i||"object"!=typeof e||n in e||"function"!=typeof e.unknownProperty?i:e.unknownProperty(n))},Ember.config.overrideAccessors&&(Ember.get=e,Ember.config.overrideAccessors(),e=Ember.get);var o=Ember.normalizeTuple=function(t,r){var o,a=i.test(r),u=!a&&n.test(r);if((!t||u)&&(t=Ember.lookup),a&&(r=r.slice(5)),t===Ember.lookup&&(o=r.match(s)[0],t=e(t,o),r=r.slice(o.length+1)),!r||0===r.length)throw new Error("Invalid Path");return[t,r]},a=Ember._getPath=function(t,r){var n,s,a,u,c;if(null===t&&-1===r.indexOf("."))return e(Ember.lookup,r);for(n=i.test(r),(!t||n)&&(a=o(t,r),t=a[0],r=a[1],a.length=0),s=r.split("."),c=s.length,u=0;null!=t&&c>u;u++)if(t=e(t,s[u],!0),t&&t.isDestroyed)return void 0;return t};Ember.getWithDefault=function(t,r,n){var i=e(t,r);return void 0===i?n:i},Ember.get=e,Ember.getPath=Ember.deprecateFunc("getPath is deprecated since get now supports paths",Ember.get)}(),function(){function e(e,t,r){for(var n=-1,i=0,s=e.length;s>i;i++)if(t===e[i][0]&&r===e[i][1]){n=i;break}return n}function t(e,t){var r,n=f(e,!0);return n.listeners||(n.listeners={}),n.hasOwnProperty("listeners")||(n.listeners=m(n.listeners)),r=n.listeners[t],r&&!n.listeners.hasOwnProperty(t)?r=n.listeners[t]=n.listeners[t].slice():r||(r=n.listeners[t]=[]),r}function r(t,r,n){var i=t[p],s=i&&i.listeners&&i.listeners[r];if(s)for(var o=s.length-1;o>=0;o--){var a=s[o][0],u=s[o][1],c=s[o][2],l=e(n,a,u);-1===l&&n.push([a,u,c])}}function n(t,r,n){var i=t[p],s=i&&i.listeners&&i.listeners[r],o=[];if(s){for(var a=s.length-1;a>=0;a--){var u=s[a][0],c=s[a][1],l=s[a][2],h=e(n,u,c);-1===h&&(n.push([u,c,l]),o.push([u,c,l]))}return o}}function i(r,n,i,s,o){s||"function"!=typeof i||(s=i,i=null);var a=t(r,n),u=e(a,i,s),c=0;o&&(c|=d),-1===u&&(a.push([i,s,c]),"function"==typeof r.didAddListener&&r.didAddListener(n,i,s))}function s(r,n,i,s){function o(i,s){var o=t(r,n),a=e(o,i,s);-1!==a&&(o.splice(a,1),"function"==typeof r.didRemoveListener&&r.didRemoveListener(n,i,s))}if(s||"function"!=typeof i||(s=i,i=null),s)o(i,s);else{var a=r[p],u=a&&a.listeners&&a.listeners[n];if(!u)return;for(var c=u.length-1;c>=0;c--)o(u[c][0],u[c][1])}}function o(r,n,i,s,o){function a(){return o.call(i)}function u(){c&&(c[2]&=~b)}s||"function"!=typeof i||(s=i,i=null);var c,l=t(r,n),h=e(l,i,s);return-1!==h&&(c=l[h].slice(),c[2]|=b,l[h]=c),Ember.tryFinally(a,u)}function a(r,n,i,s,o){function a(){return o.call(i)}function u(){for(m=0,f=p.length;f>m;m++)p[m][2]&=~b}s||"function"!=typeof i||(s=i,i=null);var c,l,h,m,f,p=[];for(m=0,f=n.length;f>m;m++){c=n[m],l=t(r,c);var d=e(l,i,s);-1!==d&&(h=l[d].slice(),h[2]|=b,l[d]=h,p.push(h))}return Ember.tryFinally(a,u)}function u(e){var t=e[p].listeners,r=[];if(t)for(var n in t)t[n]&&r.push(n);return r}function c(e,t,r,n){if(e!==Ember&&"function"==typeof e.sendEvent&&e.sendEvent(t,r),!n){var i=e[p];n=i&&i.listeners&&i.listeners[t]}if(n){for(var o=n.length-1;o>=0;o--){var a=n[o];if(a){var u=a[0],c=a[1],l=a[2];l&b||(l&d&&s(e,t,u,c),u||(u=e),"string"==typeof c&&(c=u[c]),r?c.apply(u,r):c.call(u))}}return!0}}function l(e,t){var r=e[p],n=r&&r.listeners&&r.listeners[t];return!(!n||!n.length)}function h(e,t){var r=[],n=e[p],i=n&&n.listeners&&n.listeners[t];if(!i)return r;for(var s=0,o=i.length;o>s;s++){var a=i[s][0],u=i[s][1];r.push([a,u])}return r}var m=Ember.create,f=Ember.meta,p=Ember.META_KEY,d=1,b=2;Ember.addListener=i,Ember.removeListener=s,Ember._suspendListener=o,Ember._suspendListeners=a,Ember.sendEvent=c,Ember.hasListeners=l,Ember.watchedEvents=u,Ember.listenersFor=h,Ember.listenersDiff=n,Ember.listenersUnion=r}(),function(){var e=Ember.guidFor,t=Ember.sendEvent,r=Ember._ObserverSet=function(){this.clear()};r.prototype.add=function(t,r,n){var i,s=this.observerSet,o=this.observers,a=e(t),u=s[a];return u||(s[a]=u={}),i=u[r],void 0===i&&(i=o.push({sender:t,keyName:r,eventName:n,listeners:[]})-1,u[r]=i),o[i].listeners},r.prototype.flush=function(){var e,r,n,i,s=this.observers;for(this.clear(),e=0,r=s.length;r>e;++e)n=s[e],i=n.sender,i.isDestroying||i.isDestroyed||t(i,n.eventName,[i,n.keyName],n.listeners)},r.prototype.clear=function(){this.observerSet={},this.observers=[]}}(),function(){function e(e,t,i){if(!e.isDestroying){var s=n,o=!s;o&&(s=n={}),r(d,e,t,s,i),o&&(n=null)}}function t(e,t,n){if(!e.isDestroying){var s=i,o=!s;o&&(s=i={}),r(b,e,t,s,n),o&&(i=null)}}function r(e,t,r,n,i){var s=o(t);if(n[s]||(n[s]={}),!n[s][r]){n[s][r]=!0;var a=i.deps;if(a=a&&a[r])for(var u in a){var c=i.descs[u];c&&c._suspended===t||e(t,u)}}}var n,i,s=Ember.meta,o=Ember.guidFor,a=Ember.tryFinally,u=Ember.sendEvent,c=Ember.listenersUnion,l=Ember.listenersDiff,h=Ember._ObserverSet,m=new h,f=new h,p=0,d=Ember.propertyWillChange=function(t,r){var n=s(t,!1),i=n.watching[r]>0||"length"===r,o=n.proto,a=n.descs[r];i&&o!==t&&(a&&a.willChange&&a.willChange(t,r),e(t,r,n),E(t,r,n),w(t,r))},b=Ember.propertyDidChange=function(e,r){var n=s(e,!1),i=n.watching[r]>0||"length"===r,o=n.proto,a=n.descs[r];o!==e&&(a&&a.didChange&&a.didChange(e,r),(i||"length"===r)&&(t(e,r,n),v(e,r,n),_(e,r)))},E=function(e,t,r,n){if(r.hasOwnProperty("chainWatchers")){var i=r.chainWatchers;if(i=i[t])for(var s=0,o=i.length;o>s;s++)i[s].willChange(n)}},v=function(e,t,r,n){if(r.hasOwnProperty("chainWatchers")){var i=r.chainWatchers;if(i=i[t])for(var s=i.length-1;s>=0;s--)i[s].didChange(n)}};Ember.overrideChains=function(e,t,r){v(e,t,r,!0)};var g=Ember.beginPropertyChanges=function(){p++},y=Ember.endPropertyChanges=function(){p--,0>=p&&(m.clear(),f.flush())};Ember.changeProperties=function(e,t){g(),a(e,y,t)};var w=function(e,t){if(!e.isDestroying){var r,n,i=t+":before";p?(r=m.add(e,t,i),n=l(e,i,r),u(e,i,[e,t],n)):u(e,i,[e,t])}},_=function(e,t){if(!e.isDestroying){var r,n=t+":change";p?(r=f.add(e,t,n),c(e,n,r)):u(e,n,[e,t])}}}(),function(){function e(e,t,r,s){var o;if(o=t.slice(t.lastIndexOf(".")+1),t=t.slice(0,t.length-(o.length+1)),"this"!==t&&(e=n(e,t)),!o||0===o.length)throw new Error("You passed an empty path");if(!e){if(s)return;throw new Error("Object in path "+t+" could not be found or was destroyed.")}return i(e,o,r)}var t=Ember.META_KEY,r=Ember.ENV.MANDATORY_SETTER,n=Ember._getPath,i=function(n,i,s,o){if("string"==typeof n&&(s=i,i=n,n=null),!n||-1!==i.indexOf("."))return e(n,i,s,o);var a,u,c=n[t],l=c&&c.descs[i];return l?l.set(n,i,s):(a="object"==typeof n&&!(i in n),a&&"function"==typeof n.setUnknownProperty?n.setUnknownProperty(i,s):c&&c.watching[i]>0?(u=r?c.values[i]:n[i],s!==u&&(Ember.propertyWillChange(n,i),r?void 0!==u||i in n?c.values[i]=s:Ember.defineProperty(n,i,null,s):n[i]=s,Ember.propertyDidChange(n,i))):n[i]=s),s};Ember.config.overrideAccessors&&(Ember.set=i,Ember.config.overrideAccessors(),i=Ember.set),Ember.set=i,Ember.setPath=Ember.deprecateFunc("setPath is deprecated since set now supports paths",Ember.set),Ember.trySet=function(e,t,r){return i(e,t,r,!0)},Ember.trySetPath=Ember.deprecateFunc("trySetPath has been renamed to trySet",Ember.trySet)}(),function(){var e=(Ember.get,Ember.set),t=Ember.guidFor,r=Ember.ArrayPolyfills.indexOf,n=function(e){var t={};for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r]);return t},i=function(e,t){var r=e.keys.copy(),i=n(e.values);return t.keys=r,t.values=i,t.length=e.length,t},s=Ember.OrderedSet=function(){this.clear()};s.create=function(){return new s},s.prototype={clear:function(){this.presenceSet={},this.list=[]},add:function(e){var r=t(e),n=this.presenceSet,i=this.list;r in n||(n[r]=!0,i.push(e))},remove:function(e){var n=t(e),i=this.presenceSet,s=this.list;delete i[n];var o=r.call(s,e);o>-1&&s.splice(o,1)},isEmpty:function(){return 0===this.list.length},has:function(e){var r=t(e),n=this.presenceSet;return r in n},forEach:function(e,t){for(var r=this.toArray(),n=0,i=r.length;i>n;n++)e.call(t,r[n])},toArray:function(){return this.list.slice()},copy:function(){var e=new s;return e.presenceSet=n(this.presenceSet),e.list=this.toArray(),e}};var o=Ember.Map=function(){this.keys=Ember.OrderedSet.create(),this.values={}};o.create=function(){return new o},o.prototype={length:0,get:function(e){var r=this.values,n=t(e);return r[n]},set:function(r,n){var i=this.keys,s=this.values,o=t(r);i.add(r),s[o]=n,e(this,"length",i.list.length)},remove:function(r){var n=this.keys,i=this.values,s=t(r);return i.hasOwnProperty(s)?(n.remove(r),delete i[s],e(this,"length",n.list.length),!0):!1},has:function(e){var r=this.values,n=t(e);return r.hasOwnProperty(n)},forEach:function(e,r){var n=this.keys,i=this.values;n.forEach(function(n){var s=t(n);e.call(r,n,i[s])})},copy:function(){return i(this,new o)}};var a=Ember.MapWithDefault=function(e){o.call(this),this.defaultValue=e.defaultValue};a.create=function(e){return e?new a(e):new o},a.prototype=Ember.create(o.prototype),a.prototype.get=function(e){var t=this.has(e);if(t)return o.prototype.get.call(this,e);var r=this.defaultValue(e);return this.set(e,r),r},a.prototype.copy=function(){return i(this,new a({defaultValue:this.defaultValue}))}}(),function(){var e=Ember.META_KEY,t=Ember.meta,r=Ember.platform.defineProperty,n=Ember.ENV.MANDATORY_SETTER;Ember.Descriptor=function(){};var i=Ember.MANDATORY_SETTER_FUNCTION=function(){},s=Ember.DEFAULT_GETTER_FUNCTION=function(t){return function(){var r=this[e];return r&&r.values[t]}};Ember.defineProperty=function(e,o,a,u,c){var l,h,m,f;return c||(c=t(e)),l=c.descs,h=c.descs[o],m=c.watching[o]>0,h instanceof Ember.Descriptor&&h.teardown(e,o),a instanceof Ember.Descriptor?(f=a,l[o]=a,n&&m?r(e,o,{configurable:!0,enumerable:!0,writable:!0,value:void 0}):e[o]=void 0,a.setup(e,o)):(l[o]=void 0,null==a?(f=u,n&&m?(c.values[o]=u,r(e,o,{configurable:!0,enumerable:!0,set:i,get:s(o)})):e[o]=u):(f=a,r(e,o,a))),m&&Ember.overrideChains(e,o,c),e.didDefineProperty&&e.didDefineProperty(e,o,f),this}}(),function(){var e=Ember.changeProperties,t=Ember.set;Ember.setProperties=function(r,n){return e(function(){for(var e in n)n.hasOwnProperty(e)&&t(r,e,n[e])}),r}}(),function(){var e=Ember.meta,t=Ember.typeOf,r=Ember.ENV.MANDATORY_SETTER,n=Ember.platform.defineProperty;Ember.watchKey=function(i,s){if("length"!==s||"array"!==t(i)){var o,a=e(i),u=a.watching;u[s]?u[s]=(u[s]||0)+1:(u[s]=1,o=a.descs[s],o&&o.willWatch&&o.willWatch(i,s),"function"==typeof i.willWatchProperty&&i.willWatchProperty(s),r&&s in i&&(a.values[s]=i[s],n(i,s,{configurable:!0,enumerable:!0,set:Ember.MANDATORY_SETTER_FUNCTION,get:Ember.DEFAULT_GETTER_FUNCTION(s)})))}},Ember.unwatchKey=function(t,i){var s,o=e(t),a=o.watching;1===a[i]?(a[i]=0,s=o.descs[i],s&&s.didUnwatch&&s.didUnwatch(t,i),"function"==typeof t.didUnwatchProperty&&t.didUnwatchProperty(i),r&&i in t&&(n(t,i,{configurable:!0,enumerable:!0,writable:!0,value:o.values[i]}),delete o.values[i])):a[i]>1&&a[i]--}}(),function(){function e(e){return e.match(m)[0]}function t(e,t,r){if(e&&"object"==typeof e){var i=n(e),s=i.chainWatchers;i.hasOwnProperty("chainWatchers")||(s=i.chainWatchers={}),s[t]||(s[t]=[]),s[t].push(r),u(e,t)}}function r(e){return n(e,!1).proto===e}var n=Ember.meta,i=Ember.get,s=Ember.normalizeTuple,o=Ember.ArrayPolyfills.forEach,a=Ember.warn,u=Ember.watchKey,c=Ember.unwatchKey,l=Ember.propertyWillChange,h=Ember.propertyDidChange,m=/^([^\.\*]+)/,f=[];Ember.flushPendingChains=function(){if(0!==f.length){var e=f;f=[],o.call(e,function(e){e[0].add(e[1])}),a("Watching an undefined global, Ember expects watched globals to be setup by the time the run loop is flushed, check for typos",0===f.length)}};var p=Ember.removeChainWatcher=function(e,t,r){if(e&&"object"==typeof e){var i=n(e,!1);if(i.hasOwnProperty("chainWatchers")){var s=i.chainWatchers;if(s[t]){s=s[t];for(var o=0,a=s.length;a>o;o++)s[o]===r&&s.splice(o,1)}c(e,t)}}},d=Ember._ChainNode=function(e,r,n){this._parent=e,this._key=r,this._watching=void 0===n,this._value=n,this._paths={},this._watching&&(this._object=e.value(),this._object&&t(this._object,this._key,this)),this._parent&&"@each"===this._parent._key&&this.value()},b=d.prototype;b.value=function(){if(void 0===this._value&&this._watching){var e=this._parent.value();this._value=e&&!r(e)?i(e,this._key):void 0}return this._value},b.destroy=function(){if(this._watching){var e=this._object;e&&p(e,this._key,this),this._watching=!1}},b.copy=function(e){var t,r=new d(null,null,e),n=this._paths;for(t in n)n[t]<=0||r.add(t);return r},b.add=function(t){var r,n,i,o,a;if(a=this._paths,a[t]=(a[t]||0)+1,r=this.value(),n=s(r,t),n[0]&&n[0]===r)t=n[1],i=e(t),t=t.slice(i.length+1);else{if(!n[0])return f.push([this,t]),n.length=0,void 0;o=n[0],i=t.slice(0,0-(n[1].length+1)),t=n[1]}n.length=0,this.chain(i,t,o)},b.remove=function(t){var r,n,i,o,a;a=this._paths,a[t]>0&&a[t]--,r=this.value(),n=s(r,t),n[0]===r?(t=n[1],i=e(t),t=t.slice(i.length+1)):(o=n[0],i=t.slice(0,0-(n[1].length+1)),t=n[1]),n.length=0,this.unchain(i,t)},b.count=0,b.chain=function(t,r,n){var i,s=this._chains;s||(s=this._chains={}),i=s[t],i||(i=s[t]=new d(this,t,n)),i.count++,r&&r.length>0&&(t=e(r),r=r.slice(t.length+1),i.chain(t,r))},b.unchain=function(t,r){var n=this._chains,i=n[t];r&&r.length>1&&(t=e(r),r=r.slice(t.length+1),i.unchain(t,r)),i.count--,i.count<=0&&(delete n[i._key],i.destroy())},b.willChange=function(){var e=this._chains;if(e)for(var t in e)e.hasOwnProperty(t)&&e[t].willChange();this._parent&&this._parent.chainWillChange(this,this._key,1)},b.chainWillChange=function(e,t,r){this._key&&(t=this._key+"."+t),this._parent?this._parent.chainWillChange(this,t,r+1):(r>1&&l(this.value(),t),t="this."+t,this._paths[t]>0&&l(this.value(),t))},b.chainDidChange=function(e,t,r){this._key&&(t=this._key+"."+t),this._parent?this._parent.chainDidChange(this,t,r+1):(r>1&&h(this.value(),t),t="this."+t,this._paths[t]>0&&h(this.value(),t))},b.didChange=function(e){if(this._watching){var r=this._parent.value();r!==this._object&&(p(this._object,this._key,this),this._object=r,t(r,this._key,this)),this._value=void 0,this._parent&&"@each"===this._parent._key&&this.value()}var n=this._chains;if(n)for(var i in n)n.hasOwnProperty(i)&&n[i].didChange(e);e||this._parent&&this._parent.chainDidChange(this,this._key,1)},Ember.finishChains=function(e){var t=n(e,!1),r=t.chains;r&&(r.value()!==e&&(t.chains=r=r.copy(e)),r.didChange(!0))}}(),function(){function e(e){var r=t(e),i=r.chains;return i?i.value()!==e&&(i=r.chains=i.copy(e)):i=r.chains=new n(null,null,e),i}var t=Ember.meta,r=Ember.typeOf,n=Ember._ChainNode;Ember.watchPath=function(n,i){if("length"!==i||"array"!==r(n)){var s=t(n),o=s.watching;o[i]?o[i]=(o[i]||0)+1:(o[i]=1,e(n).add(i))}},Ember.unwatchPath=function(r,n){var i=t(r),s=i.watching;1===s[n]?(s[n]=0,e(r).remove(n)):s[n]>1&&s[n]--}}(),function(){function e(e){return"*"===e||!h.test(e)}var t=Ember.meta,r=Ember.GUID_KEY,n=Ember.META_KEY,i=Ember.removeChainWatcher,s=Ember.watchKey,o=Ember.unwatchKey,a=Ember.watchPath,u=Ember.unwatchPath,c=Ember.typeOf,l=Ember.generateGuid,h=/[\.\*]/;Ember.watch=function(t,r){("length"!==r||"array"!==c(t))&&(e(r)?s(t,r):a(t,r))},Ember.isWatching=function(e,t){var r=e[n];return(r&&r.watching[t])>0},Ember.watch.flushPending=Ember.flushPendingChains,Ember.unwatch=function(t,r){("length"!==r||"array"!==c(t))&&(e(r)?o(t,r):u(t,r))},Ember.rewatch=function(e){var n=t(e,!1),i=n.chains;r in e&&!e.hasOwnProperty(r)&&l(e,"ember"),i&&i.value()!==e&&(n.chains=i.copy(e))};var m=[];Ember.destroy=function(e){var t,r,s,o,a=e[n];if(a&&(e[n]=null,t=a.chains))for(m.push(t);m.length>0;){if(t=m.pop(),r=t._chains)for(s in r)r.hasOwnProperty(s)&&m.push(r[s]);t._watching&&(o=t._object,o&&i(o,t._key,t))}}}(),function(){function e(e,t){var r=e[t];return r?e.hasOwnProperty(t)||(r=e[t]=m(r)):r=e[t]={},r}function t(t){return e(t,"deps")}function r(r,n,i,s){var o,a,u,c,l,h=r._dependentKeys;if(h)for(o=t(s),a=0,u=h.length;u>a;a++)c=h[a],l=e(o,c),l[i]=(l[i]||0)+1,p(n,c)}function n(r,n,i,s){var o,a,u,c,l,h=r._dependentKeys;if(h)for(o=t(s),a=0,u=h.length;u>a;a++)c=h[a],l=e(o,c),l[i]=(l[i]||0)-1,d(n,c)}function i(e,t){this.func=e,this._cacheable=t&&void 0!==t.cacheable?t.cacheable:!0,this._dependentKeys=t&&t.dependentKeys,this._readOnly=t&&(void 0!==t.readOnly||!!t.readOnly)}function s(e,t){for(var r={},n=0;n<t.length;n++)r[t[n]]=u(e,t[n]);return r}function o(e,t){Ember.computed[e]=function(e){var r=h.call(arguments);return Ember.computed(e,function(){return t.apply(this,r)})}}function a(e,t){Ember.computed[e]=function(){var e=h.call(arguments),r=Ember.computed(function(){return t.apply(this,[s(this,e)])});return r.property.apply(r,e)}}var u=Ember.get,c=Ember.set,l=Ember.meta,h=[].slice,m=Ember.create,f=Ember.META_KEY,p=Ember.watch,d=Ember.unwatch;Ember.ComputedProperty=i,i.prototype=new Ember.Descriptor;var b=i.prototype;b.cacheable=function(e){return this._cacheable=e!==!1,this},b.volatile=function(){return this.cacheable(!1)},b.readOnly=function(e){return this._readOnly=void 0===e||!!e,this},b.property=function(){for(var e=[],t=0,r=arguments.length;r>t;t++)e.push(arguments[t]);return this._dependentKeys=e,this},b.meta=function(e){return 0===arguments.length?this._meta||{}:(this._meta=e,this)},b.willWatch=function(e,t){var n=e[f];t in n.cache||r(this,e,t,n)},b.didUnwatch=function(e,t){var r=e[f];t in r.cache||n(this,e,t,r)},b.didChange=function(e,t){if(this._cacheable&&this._suspended!==e){var r=l(e);t in r.cache&&(delete r.cache[t],r.watching[t]||n(this,e,t,r))}},b.get=function(e,t){var n,i,s;if(this._cacheable){if(s=l(e),i=s.cache,t in i)return i[t];n=i[t]=this.func.call(e,t),s.watching[t]||r(this,e,t,s)}else n=this.func.call(e,t);return n},b.set=function(e,t,n){var i,s,o=this._cacheable,a=this.func,u=l(e,o),c=u.watching[t],h=this._suspended,m=!1,f=u.cache;if(this._readOnly)throw new Error("Cannot Set: "+t+" on: "+e.toString());this._suspended=e;try{if(o&&f.hasOwnProperty(t)&&(i=f[t],m=!0),a.wrappedFunction&&(a=a.wrappedFunction),3===a.length)s=a.call(e,t,n,i);else{if(2!==a.length)return Ember.defineProperty(e,t,null,i),Ember.set(e,t,n),void 0;s=a.call(e,t,n)}if(m&&i===s)return;c&&Ember.propertyWillChange(e,t),m&&delete f[t],o&&(c||m||r(this,e,t,u),f[t]=s),c&&Ember.propertyDidChange(e,t)}finally{this._suspended=h}return s},b.setup=function(e,t){var n=e[f];n&&n.watching[t]&&r(this,e,t,l(e))},b.teardown=function(e,t){var r=l(e);return(r.watching[t]||t in r.cache)&&n(this,e,t,r),this._cacheable&&delete r.cache[t],null},Ember.computed=function(e){var t;if(arguments.length>1&&(t=h.call(arguments,0,-1),e=h.call(arguments,-1)[0]),"function"!=typeof e)throw new Error("Computed Property declared without a property function");var r=new i(e);return t&&r.property.apply(r,t),r},Ember.cacheFor=function(e,t){var r=l(e,!1).cache;return r&&t in r?r[t]:void 0},o("empty",function(e){return Ember.isEmpty(u(this,e))}),o("notEmpty",function(e){return!Ember.isEmpty(u(this,e))}),o("none",function(e){return Ember.isNone(u(this,e))}),o("not",function(e){return!u(this,e)}),o("bool",function(e){return!!u(this,e)}),o("match",function(e,t){var r=u(this,e);return"string"==typeof r?!!r.match(t):!1}),o("equal",function(e,t){return u(this,e)===t}),o("gt",function(e,t){return u(this,e)>t}),o("gte",function(e,t){return u(this,e)>=t}),o("lt",function(e,t){return u(this,e)<t}),o("lte",function(e,t){return u(this,e)<=t}),a("and",function(e){for(var t in e)if(e.hasOwnProperty(t)&&!e[t])return!1;return!0}),a("or",function(e){for(var t in e)if(e.hasOwnProperty(t)&&e[t])return!0;return!1}),a("any",function(e){for(var t in e)if(e.hasOwnProperty(t)&&e[t])return e[t];return null}),a("map",function(e){var t=[];for(var r in e)e.hasOwnProperty(r)&&(Ember.isNone(e[r])?t.push(null):t.push(e[r]));return t}),Ember.computed.alias=function(e){return Ember.computed(e,function(t,r){return arguments.length>1?(c(this,e,r),r):u(this,e)})},Ember.computed.oneWay=function(e){return Ember.computed(e,function(){return u(this,e)})},Ember.computed.defaultTo=function(e){return Ember.computed(function(t,r,n){return 1===arguments.length?null!=n?n:u(this,e):null!=r?r:u(this,e)})}}(),function(){function e(e){return e+r}function t(e){return e+n}var r=":change",n=":before";Ember.addObserver=function(t,r,n,i){return Ember.addListener(t,e(r),n,i),Ember.watch(t,r),this},Ember.observersFor=function(t,r){return Ember.listenersFor(t,e(r))},Ember.removeObserver=function(t,r,n,i){return Ember.unwatch(t,r),Ember.removeListener(t,e(r),n,i),this},Ember.addBeforeObserver=function(e,r,n,i){return Ember.addListener(e,t(r),n,i),Ember.watch(e,r),this},Ember._suspendBeforeObserver=function(e,r,n,i,s){return Ember._suspendListener(e,t(r),n,i,s)},Ember._suspendObserver=function(t,r,n,i,s){return Ember._suspendListener(t,e(r),n,i,s)};var i=Ember.ArrayPolyfills.map;Ember._suspendBeforeObservers=function(e,r,n,s,o){var a=i.call(r,t);return Ember._suspendListeners(e,a,n,s,o)},Ember._suspendObservers=function(t,r,n,s,o){var a=i.call(r,e);return Ember._suspendListeners(t,a,n,s,o)},Ember.beforeObserversFor=function(e,r){return Ember.listenersFor(e,t(r))},Ember.removeBeforeObserver=function(e,r,n,i){return Ember.unwatch(e,r),Ember.removeListener(e,t(r),n,i),this}}(),function(){e("backburner",["backburner/deferred_action_queues","exports"],function(e,t){"use strict";function r(e,t){this.queueNames=e,this.options=t||{},this.options.defaultQueue||(this.options.defaultQueue=e[0]),this.instanceStack=[]}function n(e){e.begin(),s=window.setTimeout(function(){e.end(),s=null})}function i(e){var t,r,n,s,u=+new Date;e.run(function(){for(n=0,s=m.length;s>n&&(t=m[n],!(t>u));n+=2);for(r=m.splice(0,n),n=1,s=r.length;s>n;n+=2)e.schedule(e.options.defaultQueue,null,r[n])}),m.length&&(o=window.setTimeout(function(){i(e),o=null,a=null},m[0]-u),a=m[0])}var s,o,a,u=e.DeferredActionQueues,c=[].slice,l=[].pop,h=[],m=[];r.prototype={queueNames:null,options:null,currentInstance:null,instanceStack:null,begin:function(){var e=this.options&&this.options.onBegin,t=this.currentInstance;t&&this.instanceStack.push(t),this.currentInstance=new u(this.queueNames,this.options),e&&e(this.currentInstance,t)},end:function(){var e=this.options&&this.options.onEnd,t=this.currentInstance,r=null;try{t.flush()}finally{this.currentInstance=null,this.instanceStack.length&&(r=this.instanceStack.pop(),this.currentInstance=r),e&&e(t,r)
16
- }},run:function(e,t){var r;this.begin(),t||(t=e,e=null),"string"==typeof t&&(t=e[t]);var n=!1;try{r=arguments.length>2?t.apply(e,c.call(arguments,2)):t.call(e)}finally{n||(n=!0,this.end())}return r},defer:function(e,t,r){r||(r=t,t=null),"string"==typeof r&&(r=t[r]);var i=this.DEBUG?(new Error).stack:void 0,s=arguments.length>3?c.call(arguments,3):void 0;return this.currentInstance||n(this),this.currentInstance.schedule(e,t,r,s,!1,i)},deferOnce:function(e,t,r){r||(r=t,t=null),"string"==typeof r&&(r=t[r]);var i=this.DEBUG?(new Error).stack:void 0,s=arguments.length>3?c.call(arguments,3):void 0;return this.currentInstance||n(this),this.currentInstance.schedule(e,t,r,s,!0,i)},setTimeout:function(){var e=this,t=l.call(arguments),r=arguments[0],n=arguments[1],s=+new Date+t;n||(n=r,r=null),"string"==typeof n&&(n=r[n]);var u,h;arguments.length>2?(h=c.call(arguments,2),u=function(){n.apply(r,h)}):u=function(){n.call(r)};var f,p;for(f=0,p=m.length;p>f&&!(s<m[f]);f+=2);return m.splice(f,0,s,u),o&&s>a?u:(o&&(clearTimeout(o),o=null),o=window.setTimeout(function(){i(e),o=null,a=null},t),a=s,u)},debounce:function(e,t){for(var r,n=this,i=arguments,s=l.call(i),o=0,a=h.length;a>o;o++)if(r=h[o],r[0]===e&&r[1]===t)return;var u=window.setTimeout(function(){n.run.apply(n,i);for(var s=-1,o=0,a=h.length;a>o;o++)if(r=h[o],r[0]===e&&r[1]===t){s=o;break}s>-1&&h.splice(s,1)},s);h.push([e,t,u])},cancelTimers:function(){for(var e=0,t=h.length;t>e;e++)clearTimeout(h[e][2]);h=[],o&&(clearTimeout(o),o=null),m=[],s&&(clearTimeout(s),s=null)},hasTimers:function(){return!!m.length||s},cancel:function(e){if(e&&"object"==typeof e&&e.queue&&e.method)return e.queue.cancel(e);if("function"==typeof e)for(var t=0,r=m.length;r>t;t+=2)if(m[t+1]===e)return m.splice(t,2),!0}},r.prototype.schedule=r.prototype.defer,r.prototype.scheduleOnce=r.prototype.deferOnce,r.prototype.later=r.prototype.setTimeout,t.Backburner=r}),e("backburner/deferred_action_queues",["backburner/queue","exports"],function(e,t){"use strict";function r(e,t){var r=this.queues={};this.queueNames=e=e||[];for(var n,s=0,o=e.length;o>s;s++)n=e[s],r[n]=new i(this,n,t[n])}function n(e,t){for(var r,n,i=0,s=t;s>=i;i++)if(r=e.queueNames[i],n=e.queues[r],n._queue.length)return i;return-1}var i=e.Queue;r.prototype={queueNames:null,queues:null,schedule:function(e,t,r,n,i,s){var o=this.queues,a=o[e];if(!a)throw new Error("You attempted to schedule an action in a queue ("+e+") that doesn't exist");return i?a.pushUnique(t,r,n,s):a.push(t,r,n,s)},flush:function(){for(var e,t,r,i,s=this.queues,o=this.queueNames,a=0,u=o.length;u>a;){e=o[a],t=s[e],r=t._queueBeingFlushed=t._queue.slice(),t._queue=[];var c,l,h,m,f=t.options,p=f&&f.before,d=f&&f.after,b=0,E=r.length;for(E&&p&&p();E>b;)c=r[b],l=r[b+1],h=r[b+2],m=r[b+3],"string"==typeof l&&(l=c[l]),l&&(h&&h.length>0?l.apply(c,h):l.call(c)),b+=4;t._queueBeingFlushed=null,E&&d&&d(),-1===(i=n(this,a))?a++:a=i}}},t.DeferredActionQueues=r}),e("backburner/queue",["exports"],function(e){"use strict";function t(e,t,r){this.daq=e,this.name=t,this.options=r,this._queue=[]}t.prototype={daq:null,name:null,options:null,_queue:null,push:function(e,t,r,n){var i=this._queue;return i.push(e,t,r,n),{queue:this,target:e,method:t}},pushUnique:function(e,t,r,n){var i,s,o,a,u=this._queue;for(o=0,a=u.length;a>o;o+=4)if(i=u[o],s=u[o+1],i===e&&s===t)return u[o+2]=r,u[o+3]=n,{queue:this,target:e,method:t};return this._queue.push(e,t,r,n),{queue:this,target:e,method:t}},flush:function(){var e,t,r,n,i,s=this._queue,o=this.options,a=o&&o.before,u=o&&o.after,c=s.length;for(c&&a&&a(),i=0;c>i;i+=4)e=s[i],t=s[i+1],r=s[i+2],n=s[i+3],r&&r.length>0?t.apply(e,r):t.call(e);c&&u&&u(),s.length>c?(this._queue=s.slice(c),this.flush()):this._queue.length=0},cancel:function(e){var t,r,n,i,s=this._queue;for(n=0,i=s.length;i>n;n+=4)if(t=s[n],r=s[n+1],t===e.target&&r===e.method)return s.splice(n,4),!0;if(s=this._queueBeingFlushed)for(n=0,i=s.length;i>n;n+=4)if(t=s[n],r=s[n+1],t===e.target&&r===e.method)return s[n+1]=null,!0}},e.Queue=t})}(),function(){function e(){!Ember.run.currentRunLoop}var r=function(e){Ember.run.currentRunLoop=e},n=function(e,t){Ember.run.currentRunLoop=t},i=t("backburner").Backburner,s=new i(["sync","actions","destroy"],{sync:{before:Ember.beginPropertyChanges,after:Ember.endPropertyChanges},defaultQueue:"actions",onBegin:r,onEnd:n}),o=[].slice;Ember.run=function(){var e;if(Ember.onerror)try{e=s.run.apply(s,arguments)}catch(t){Ember.onerror(t)}else e=s.run.apply(s,arguments);return e},Ember.run.join=function(){if(!Ember.run.currentRunLoop)return Ember.run.apply(Ember.run,arguments);var e=o.call(arguments);e.unshift("actions"),Ember.run.schedule.apply(Ember.run,e)},Ember.run.backburner=s,Ember.run,Ember.run.currentRunLoop=null,Ember.run.queues=s.queueNames,Ember.run.begin=function(){s.begin()},Ember.run.end=function(){s.end()},Ember.run.schedule=function(){e(),s.schedule.apply(s,arguments)},Ember.run.hasScheduledTimers=function(){return s.hasTimers()},Ember.run.cancelTimers=function(){s.cancelTimers()},Ember.run.sync=function(){s.currentInstance&&s.currentInstance.queues.sync.flush()},Ember.run.later=function(){return s.later.apply(s,arguments)},Ember.run.once=function(){e();var t=o.call(arguments);return t.unshift("actions"),s.scheduleOnce.apply(s,t)},Ember.run.scheduleOnce=function(){return e(),s.scheduleOnce.apply(s,arguments)},Ember.run.next=function(){var e=o.call(arguments);return e.push(1),s.later.apply(s,e)},Ember.run.cancel=function(e){return s.cancel(e)},Ember.run.debounce=function(){return s.debounce.apply(s,arguments)}}(),function(){function e(e,t){return r(s(t)?Ember.lookup:e,t)}function t(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])}Ember.LOG_BINDINGS=!1||!!Ember.ENV.LOG_BINDINGS;var r=Ember.get,n=(Ember.set,Ember.guidFor),i=/^([A-Z$]|([0-9][A-Z$]))/,s=Ember.isGlobalPath=function(e){return i.test(e)},o=function(e,t){this._direction="fwd",this._from=t,this._to=e,this._directionMap=Ember.Map.create()};o.prototype={copy:function(){var e=new o(this._to,this._from);return this._oneWay&&(e._oneWay=!0),e},from:function(e){return this._from=e,this},to:function(e){return this._to=e,this},oneWay:function(){return this._oneWay=!0,this},toString:function(){var e=this._oneWay?"[oneWay]":"";return"Ember.Binding<"+n(this)+">("+this._from+" -> "+this._to+")"+e},connect:function(t){var r=this._from,n=this._to;return Ember.trySet(t,n,e(t,r)),Ember.addObserver(t,r,this,this.fromDidChange),this._oneWay||Ember.addObserver(t,n,this,this.toDidChange),this._readyToSync=!0,this},disconnect:function(e){var t=!this._oneWay;return Ember.removeObserver(e,this._from,this,this.fromDidChange),t&&Ember.removeObserver(e,this._to,this,this.toDidChange),this._readyToSync=!1,this},fromDidChange:function(e){this._scheduleSync(e,"fwd")},toDidChange:function(e){this._scheduleSync(e,"back")},_scheduleSync:function(e,t){var r=this._directionMap,n=r.get(e);n||(Ember.run.schedule("sync",this,this._sync,e),r.set(e,t)),"back"===n&&"fwd"===t&&r.set(e,"fwd")},_sync:function(t){var n=Ember.LOG_BINDINGS;if(!t.isDestroyed&&this._readyToSync){var i=this._directionMap,s=i.get(t),o=this._from,a=this._to;if(i.remove(t),"fwd"===s){var u=e(t,this._from);n&&Ember.Logger.log(" ",this.toString(),"->",u,t),this._oneWay?Ember.trySet(t,a,u):Ember._suspendObserver(t,a,this,this.toDidChange,function(){Ember.trySet(t,a,u)})}else if("back"===s){var c=r(t,this._to);n&&Ember.Logger.log(" ",this.toString(),"<-",c,t),Ember._suspendObserver(t,o,this,this.fromDidChange,function(){Ember.trySet(Ember.isGlobalPath(o)?Ember.lookup:t,o,c)})}}}},t(o,{from:function(){var e=this,t=new e;return t.from.apply(t,arguments)},to:function(){var e=this,t=new e;return t.to.apply(t,arguments)},oneWay:function(e,t){var r=this,n=new r(null,e);return n.oneWay(t)}}),Ember.Binding=o,Ember.bind=function(e,t,r){return new Ember.Binding(t,r).connect(e)},Ember.oneWay=function(e,t,r){return new Ember.Binding(t,r).oneWay().connect(e)}}(),function(){function e(e){var t=Ember.meta(e,!0),r=t.mixins;return r?t.hasOwnProperty("mixins")||(r=t.mixins=P(r)):r=t.mixins={},r}function t(e,t){return t&&t.length>0&&(e.mixins=_.call(t,function(e){if(e instanceof g)return e;var t=new g;return t.properties=e,t})),e}function r(e){return"function"==typeof e&&e.isMethod!==!1&&e!==Boolean&&e!==Object&&e!==Number&&e!==Array&&e!==Date&&e!==String}function n(e,t){var r;return t instanceof g?(r=x(t),e[r]?V:(e[r]=t,t.properties)):t}function i(e,t,r){var n;return n=t.concatenatedProperties||r.concatenatedProperties,e.concatenatedProperties&&(n=n?n.concat(e.concatenatedProperties):e.concatenatedProperties),n}function s(e,t,r,n,i){var s;return void 0===n[t]&&(s=i[t]),s=s||e.descs[t],s&&s instanceof Ember.ComputedProperty?(r=P(r),r.func=Ember.wrap(r.func,s.func),r):r}function o(e,t,r,n,i){var s;return void 0===i[t]&&(s=n[t]),s=s||e[t],"function"!=typeof s?r:Ember.wrap(r,s)}function a(e,t,r,n){var i=n[t]||e[t];return i?"function"==typeof i.concat?i.concat(r):Ember.makeArray(i).concat(r):Ember.makeArray(r)}function u(e,t,n,i,u,c,l){if(n instanceof Ember.Descriptor){if(n===y&&u[t])return V;n.func&&(n=s(i,t,n,c,u)),u[t]=n,c[t]=void 0}else r(n)?n=o(e,t,n,c,u):(l&&C.call(l,t)>=0||"concatenatedProperties"===t)&&(n=a(e,t,n,c)),u[t]=void 0,c[t]=n}function c(e,t,r,s,o,a){function l(e){delete r[e],delete s[e]}for(var h,m,f,p,d,b=0,E=e.length;E>b;b++)if(h=e[b],m=n(t,h),m!==V)if(m){d=Ember.meta(o),p=i(m,s,o);for(f in m)m.hasOwnProperty(f)&&(a.push(f),u(o,f,m[f],d,r,s,p));m.hasOwnProperty("toString")&&(o.toString=m.toString)}else h.mixins&&(c(h.mixins,t,r,s,o,a),h._without&&O.call(h._without,l))}function l(e,t,r,n){if(D.test(t)){var i=n.bindings;i?n.hasOwnProperty("bindings")||(i=n.bindings=P(n.bindings)):i=n.bindings={},i[t]=r}}function h(e,t){var r,n,i,s=t.bindings;if(s){for(r in s)n=s[r],n&&(i=r.slice(0,-7),n instanceof Ember.Binding?(n=n.copy(),n.to(i)):n=new Ember.Binding(i,n),n.connect(e),e[r]=n);t.bindings={}}}function m(e,t){return h(e,t||Ember.meta(e)),e}function f(e,t,r,n,i){var s,o=t.methodName;return n[o]||i[o]?(s=i[o],t=n[o]):r.descs[o]?(t=r.descs[o],s=void 0):(t=void 0,s=e[o]),{desc:t,value:s}}function p(e,t,r,n,i){if("function"==typeof r){var s=r[n];if(s)for(var o=0,a=s.length;a>o;o++)Ember[i](e,s[o],null,t)}}function d(e,t,r){var n=e[t];p(e,t,n,"__ember_observesBefore__","removeBeforeObserver"),p(e,t,n,"__ember_observes__","removeObserver"),p(e,t,r,"__ember_observesBefore__","addBeforeObserver"),p(e,t,r,"__ember_observes__","addObserver")}function b(t,r,n){var i,s,o,a={},u={},h=Ember.meta(t),p=[];c(r,e(t),a,u,t,p);for(var b=0,E=p.length;E>b;b++)if(i=p[b],"constructor"!==i&&u.hasOwnProperty(i)&&(o=a[i],s=u[i],o!==y)){for(;o&&o instanceof w;){var v=f(t,o,h,a,u);o=v.desc,s=v.value}(void 0!==o||void 0!==s)&&(d(t,i,s),l(t,i,s,h),A(t,i,o,s,h))}return n||m(t,h),t}function E(e,t,r){var n=x(e);if(r[n])return!1;if(r[n]=!0,e===t)return!0;for(var i=e.mixins,s=i?i.length:0;--s>=0;)if(E(i[s],t,r))return!0;return!1}function v(e,t,r){if(!r[x(t)])if(r[x(t)]=!0,t.properties){var n=t.properties;for(var i in n)n.hasOwnProperty(i)&&(e[i]=!0)}else t.mixins&&O.call(t.mixins,function(t){v(e,t,r)})}var g,y,w,_=Ember.ArrayPolyfills.map,C=Ember.ArrayPolyfills.indexOf,O=Ember.ArrayPolyfills.forEach,S=[].slice,P=Ember.create,A=Ember.defineProperty,x=Ember.guidFor,V={},D=Ember.IS_BINDING=/^.+Binding$/;Ember.mixin=function(e){var t=S.call(arguments,1);return b(e,t,!1),e},Ember.Mixin=function(){return t(this,arguments)},g=Ember.Mixin,g.prototype={properties:null,mixins:null,ownerConstructor:null},g._apply=b,g.applyPartial=function(e){var t=S.call(arguments,1);return b(e,t,!0)},g.finishPartial=m,Ember.anyUnprocessedMixins=!1,g.create=function(){Ember.anyUnprocessedMixins=!0;var e=this;return t(new e,arguments)};var T=g.prototype;T.reopen=function(){var e,t;this.properties?(e=g.create(),e.properties=this.properties,delete this.properties,this.mixins=[e]):this.mixins||(this.mixins=[]);var r,n=arguments.length,i=this.mixins;for(r=0;n>r;r++)e=arguments[r],e instanceof g?i.push(e):(t=g.create(),t.properties=e,i.push(t));return this},T.apply=function(e){return b(e,[this],!1)},T.applyPartial=function(e){return b(e,[this],!0)},T.detect=function(e){if(!e)return!1;if(e instanceof g)return E(e,this,{});var t=Ember.meta(e,!1).mixins;return t?!!t[x(this)]:!1},T.without=function(){var e=new g(this);return e._without=S.call(arguments),e},T.keys=function(){var e={},t={},r=[];v(e,this,t);for(var n in e)e.hasOwnProperty(n)&&r.push(n);return r},g.mixins=function(e){var t=Ember.meta(e,!1).mixins,r=[];if(!t)return r;for(var n in t){var i=t[n];i.properties||r.push(i)}return r},y=new Ember.Descriptor,y.toString=function(){return"(Required Property)"},Ember.required=function(){return y},w=function(e){this.methodName=e},w.prototype=new Ember.Descriptor,Ember.alias=function(e){return new w(e)},Ember.alias=Ember.deprecateFunc("Ember.alias is deprecated. Please use Ember.aliasMethod or Ember.computed.alias instead.",Ember.alias),Ember.aliasMethod=function(e){return new w(e)},Ember.observer=function(e){var t=S.call(arguments,1);return e.__ember_observes__=t,e},Ember.immediateObserver=function(){for(var e=0,t=arguments.length;t>e;e++)arguments[e];return Ember.observer.apply(this,arguments)},Ember.beforeObserver=function(e){var t=S.call(arguments,1);return e.__ember_observesBefore__=t,e}}(),function(){e("rsvp/all",["rsvp/defer","exports"],function(e,t){"use strict";function r(e){var t=[],r=n(),i=e.length;0===i&&r.resolve([]);for(var s=function(e){return function(t){o(e,t)}},o=function(e,n){t[e]=n,0===--i&&r.resolve(t)},a=function(e){r.reject(e)},u=0;u<e.length;u++)e[u]&&"function"==typeof e[u].then?e[u].then(s(u),a):o(u,e[u]);return r.promise}var n=e.defer;t.all=r}),e("rsvp/async",["exports"],function(e){"use strict";var t,r="undefined"!=typeof window?window:{},n=r.MutationObserver||r.WebKitMutationObserver;if("undefined"!=typeof process&&"[object process]"==={}.toString.call(process))t=function(e,t){process.nextTick(function(){e.call(t)})};else if(n){var i=[],s=new n(function(){var e=i.slice();i=[],e.forEach(function(e){var t=e[0],r=e[1];t.call(r)})}),o=document.createElement("div");s.observe(o,{attributes:!0}),window.addEventListener("unload",function(){s.disconnect(),s=null}),t=function(e,t){i.push([e,t]),o.setAttribute("drainQueue","drainQueue")}}else t=function(e,t){setTimeout(function(){e.call(t)},1)};e.async=t}),e("rsvp/config",["rsvp/async","exports"],function(e,t){"use strict";var r=e.async,n={};n.async=r,t.config=n}),e("rsvp/defer",["rsvp/promise","exports"],function(e,t){"use strict";function r(){var e={},t=new n(function(t,r){e.resolve=t,e.reject=r});return e.promise=t,e}var n=e.Promise;t.defer=r}),e("rsvp/events",["exports"],function(e){"use strict";var t=function(e,t){this.type=e;for(var r in t)t.hasOwnProperty(r)&&(this[r]=t[r])},r=function(e,t){for(var r=0,n=e.length;n>r;r++)if(e[r][0]===t)return r;return-1},n=function(e){var t=e._promiseCallbacks;return t||(t=e._promiseCallbacks={}),t},i={mixin:function(e){return e.on=this.on,e.off=this.off,e.trigger=this.trigger,e},on:function(e,t,i){var s,o,a=n(this);for(e=e.split(/\s+/),i=i||this;o=e.shift();)s=a[o],s||(s=a[o]=[]),-1===r(s,t)&&s.push([t,i])},off:function(e,t){var i,s,o,a=n(this);for(e=e.split(/\s+/);s=e.shift();)t?(i=a[s],o=r(i,t),-1!==o&&i.splice(o,1)):a[s]=[]},trigger:function(e,r){var i,s,o,a,u,c=n(this);if(i=c[e])for(var l=0;l<i.length;l++)s=i[l],o=s[0],a=s[1],"object"!=typeof r&&(r={detail:r}),u=new t(e,r),o.call(a,u)}};e.EventTarget=i}),e("rsvp/hash",["rsvp/defer","exports"],function(e,t){"use strict";function r(e){var t=0;for(var r in e)t++;return t}function n(e){var t={},n=i(),s=r(e);0===s&&n.resolve({});var o=function(e){return function(t){a(e,t)}},a=function(e,r){t[e]=r,0===--s&&n.resolve(t)},u=function(e){n.reject(e)};for(var c in e)e[c]&&"function"==typeof e[c].then?e[c].then(o(c),u):a(c,e[c]);return n.promise}var i=e.defer;t.hash=n}),e("rsvp/node",["rsvp/promise","rsvp/all","exports"],function(e,t,r){"use strict";function n(e,t){return function(r,n){r?t(r):arguments.length>2?e(Array.prototype.slice.call(arguments,1)):e(n)}}function i(e){return function(){var t,r,i=Array.prototype.slice.call(arguments),a=new s(function(e,n){t=e,r=n});return o(i).then(function(i){i.push(n(t,r));try{e.apply(this,i)}catch(s){r(s)}}),a}}var s=e.Promise,o=t.all;r.denodeify=i}),e("rsvp/promise",["rsvp/config","rsvp/events","exports"],function(e,t,r){"use strict";function n(e){return i(e)||"object"==typeof e&&null!==e}function i(e){return"function"==typeof e}function s(e,t){e===t?a(e,t):o(e,t)||a(e,t)}function o(e,t){var r=null;if(n(t)){try{r=t.then}catch(o){return u(e,o),!0}if(i(r)){try{r.call(t,function(r){t!==r?s(e,r):a(e,r)},function(t){u(e,t)})}catch(o){u(e,o)}return!0}}return!1}function a(e,t){c.async(function(){e.trigger("promise:resolved",{detail:t}),e.isFulfilled=!0,e.fulfillmentValue=t})}function u(e,t){c.async(function(){e.trigger("promise:failed",{detail:t}),e.isRejected=!0,e.rejectedReason=t})}var c=e.config,l=t.EventTarget,h=function(e){var t=this,r=!1;if("function"!=typeof e)throw new TypeError("You must pass a resolver function as the sole argument to the promise constructor");if(!(t instanceof h))return new h(e);var n=function(e){r||(r=!0,s(t,e))},i=function(e){r||(r=!0,u(t,e))};this.on("promise:resolved",function(e){this.trigger("success",{detail:e.detail})},this),this.on("promise:failed",function(e){this.trigger("error",{detail:e.detail})},this);try{e(n,i)}catch(o){i(o)}},m=function(e,t,r,n){var a,c,l,h,m=i(r);if(m)try{a=r(n.detail),l=!0}catch(f){h=!0,c=f}else a=n.detail,l=!0;o(t,a)||(m&&l?s(t,a):h?u(t,c):"resolve"===e?s(t,a):"reject"===e&&u(t,a))};h.prototype={constructor:h,then:function(e,t){var r=new h(function(){});return this.isFulfilled&&c.async(function(){m("resolve",r,e,{detail:this.fulfillmentValue})},this),this.isRejected&&c.async(function(){m("reject",r,t,{detail:this.rejectedReason})},this),this.on("promise:resolved",function(t){m("resolve",r,e,t)}),this.on("promise:failed",function(e){m("reject",r,t,e)}),r}},l.mixin(h.prototype),r.Promise=h}),e("rsvp/reject",["rsvp/promise","exports"],function(e,t){"use strict";function r(e){return new n(function(t,r){r(e)})}var n=e.Promise;t.reject=r}),e("rsvp/resolve",["rsvp/promise","exports"],function(e,t){"use strict";function r(e){return"function"==typeof e||"object"==typeof e&&null!==e}function n(e){var t=new i(function(t,n){var i;try{r(e)?(i=e.then,"function"==typeof i?i.call(e,t,n):t(e)):t(e)}catch(s){n(s)}});return t}var i=e.Promise;t.resolve=n}),e("rsvp",["rsvp/events","rsvp/promise","rsvp/node","rsvp/all","rsvp/hash","rsvp/defer","rsvp/config","rsvp/resolve","rsvp/reject","exports"],function(e,t,r,n,i,s,o,a,u,c){"use strict";function l(e,t){E[e]=t}var h=e.EventTarget,m=t.Promise,f=r.denodeify,p=n.all,d=i.hash,b=s.defer,E=o.config,v=a.resolve,g=u.reject;c.Promise=m,c.EventTarget=h,c.all=p,c.hash=d,c.defer=b,c.denodeify=f,c.configure=l,c.resolve=v,c.reject=g})}(),function(){e("container",[],function(){function e(e){this.parent=e,this.dict={}}function t(t){this.parent=t,this.children=[],this.resolver=t&&t.resolver||function(){},this.registry=new e(t&&t.registry),this.cache=new e(t&&t.cache),this.typeInjections=new e(t&&t.typeInjections),this.injections={},this._options=new e(t&&t._options),this._typeOptions=new e(t&&t._typeOptions)}function r(e){throw new Error(e+" is not currently supported on child containers")}function n(e,t){var r=s(e,t,"singleton");return r!==!1}function i(e,t){var r={};if(!t)return r;for(var n,i,s=0,o=t.length;o>s;s++){if(n=t[s],i=e.lookup(n.fullName),!i)throw new Error("Attempting to inject an unknown injection: `"+n.fullName+"`");r[n.property]=i}return r}function s(e,t,r){var n=e._options.get(t);if(n&&void 0!==n[r])return n[r];var i=t.split(":")[0];return n=e._typeOptions.get(i),n?n[r]:void 0}function o(e,t){var r=e.normalize(t);return e.resolve(r)}function a(e,t){var r,n=o(e,t),a=t.split(":"),u=a[0];if(s(e,t,"instantiate")===!1)return n;if(n){var c=[];c=c.concat(e.typeInjections.get(u)||[]),c=c.concat(e.injections[t]||[]);var l=i(e,c);return l.container=e,l._debugContainerKey=t,r=n.create(l)}}function u(e,t){e.cache.eachLocal(function(r,n){s(e,r,"instantiate")!==!1&&t(n)})}function c(e){e.cache.eachLocal(function(t,r){s(e,t,"instantiate")!==!1&&r.destroy()}),e.cache.dict={}}return e.prototype={parent:null,dict:null,get:function(e){var t=this.dict;return t.hasOwnProperty(e)?t[e]:this.parent?this.parent.get(e):void 0},set:function(e,t){this.dict[e]=t},has:function(e){var t=this.dict;return t.hasOwnProperty(e)?!0:this.parent?this.parent.has(e):!1},eachLocal:function(e,t){var r=this.dict;for(var n in r)r.hasOwnProperty(n)&&e.call(t,n,r[n])}},t.prototype={parent:null,children:null,resolver:null,registry:null,cache:null,typeInjections:null,injections:null,_options:null,_typeOptions:null,child:function(){var e=new t(this);return this.children.push(e),e},set:function(e,t,r){e[t]=r},register:function(e,t,r,n){var i;-1!==e.indexOf(":")?(n=r,r=t,i=e):i=e+":"+t;var s=this.normalize(i);this.registry.set(s,r),this._options.set(s,n||{})},resolve:function(e){return this.resolver(e)||this.registry.get(e)},normalize:function(e){return e},lookup:function(e,t){if(e=this.normalize(e),t=t||{},this.cache.has(e)&&t.singleton!==!1)return this.cache.get(e);var r=a(this,e);return r?(n(this,e)&&t.singleton!==!1&&this.cache.set(e,r),r):void 0},lookupFactory:function(e){return o(this,e)},has:function(e){return this.cache.has(e)?!0:!!o(this,e)},optionsForType:function(e,t){this.parent&&r("optionsForType"),this._typeOptions.set(e,t)},options:function(e,t){this.optionsForType(e,t)},typeInjection:function(e,t,n){this.parent&&r("typeInjection");var i=this.typeInjections.get(e);i||(i=[],this.typeInjections.set(e,i)),i.push({property:t,fullName:n})},injection:function(e,t,n){if(this.parent&&r("injection"),-1===e.indexOf(":"))return this.typeInjection(e,t,n);var i=this.injections[e]=this.injections[e]||[];i.push({property:t,fullName:n})},destroy:function(){this.isDestroyed=!0;for(var e=0,t=this.children.length;t>e;e++)this.children[e].destroy();this.children=[],u(this,function(e){e.destroy()}),delete this.parent,this.isDestroyed=!0},reset:function(){for(var e=0,t=this.children.length;t>e;e++)c(this.children[e]);c(this)}},t})}(),function(){function e(r,n,i,s){var o,a,u;if("object"!=typeof r||null===r)return r;if(n&&(a=t(i,r))>=0)return s[a];if("array"===Ember.typeOf(r)){if(o=r.slice(),n)for(a=o.length;--a>=0;)o[a]=e(o[a],n,i,s)}else if(Ember.Copyable&&Ember.Copyable.detect(r))o=r.copy(n,i,s);else{o={};for(u in r)r.hasOwnProperty(u)&&"__"!==u.substring(0,2)&&(o[u]=n?e(r[u],n,i,s):r[u])}return n&&(i.push(r),s.push(o)),o}var t=Ember.EnumerableUtils.indexOf;Ember.compare=function n(e,t){if(e===t)return 0;var r=Ember.typeOf(e),i=Ember.typeOf(t),s=Ember.Comparable;if(s){if("instance"===r&&s.detect(e.constructor))return e.constructor.compare(e,t);if("instance"===i&&s.detect(t.constructor))return 1-t.constructor.compare(t,e)}var o=Ember.ORDER_DEFINITION_MAPPING;if(!o){var a=Ember.ORDER_DEFINITION;o=Ember.ORDER_DEFINITION_MAPPING={};var u,c;for(u=0,c=a.length;c>u;++u)o[a[u]]=u;delete Ember.ORDER_DEFINITION}var l=o[r],h=o[i];if(h>l)return-1;if(l>h)return 1;switch(r){case"boolean":case"number":return t>e?-1:e>t?1:0;case"string":var m=e.localeCompare(t);return 0>m?-1:m>0?1:0;case"array":for(var f=e.length,p=t.length,d=Math.min(f,p),b=0,E=0;0===b&&d>E;)b=n(e[E],t[E]),E++;return 0!==b?b:p>f?-1:f>p?1:0;case"instance":return Ember.Comparable&&Ember.Comparable.detect(e)?e.compare(e,t):0;case"date":var v=e.getTime(),g=t.getTime();return g>v?-1:v>g?1:0;default:return 0}},Ember.copy=function(t,r){return"object"!=typeof t||null===t?t:Ember.Copyable&&Ember.Copyable.detect(t)?t.copy(r):e(t,r,r?[]:null,r?[]:null)},Ember.inspect=function(e){if("object"!=typeof e||null===e)return e+"";var t,r=[];for(var n in e)if(e.hasOwnProperty(n)){if(t=e[n],"toString"===t)continue;"function"===Ember.typeOf(t)&&(t="function() { ... }"),r.push(n+": "+t)}return"{"+r.join(", ")+"}"},Ember.isEqual=function(e,t){return e&&"function"==typeof e.isEqual?e.isEqual(t):e===t},Ember.ORDER_DEFINITION=Ember.ENV.ORDER_DEFINITION||["undefined","null","boolean","number","string","array","object","instance","function","class","date"],Ember.keys=Object.keys,(!Ember.keys||Ember.create.isSimulated)&&(Ember.keys=function(e){var t=[];for(var r in e)"__"!==r.substring(0,2)&&"_super"!==r&&e.hasOwnProperty(r)&&t.push(r);return t});var r=["description","fileName","lineNumber","message","name","number","stack"];Ember.Error=function(){for(var e=Error.apply(this,arguments),t=0;t<r.length;t++)this[r[t]]=e[r[t]]},Ember.Error.prototype=Ember.create(Error.prototype)}(),function(){Ember.RSVP=t("rsvp")}(),function(){var e=/[ _]/g,t={},r=/([a-z])([A-Z])/g,n=/(\-|_|\.|\s)+(.)?/g,i=/([a-z\d])([A-Z]+)/g,s=/\-|\s+/g;Ember.STRINGS={},Ember.String={fmt:function(e,t){var r=0;return e.replace(/%@([0-9]+)?/g,function(e,n){return n=n?parseInt(n,0)-1:r++,e=t[n],(null===e?"(null)":void 0===e?"":e).toString()})},loc:function(e,t){return e=Ember.STRINGS[e]||e,Ember.String.fmt(e,t)},w:function(e){return e.split(/\s+/)},decamelize:function(e){return e.replace(r,"$1_$2").toLowerCase()},dasherize:function(r){var n,i=t,s=i.hasOwnProperty(r);return s?i[r]:(n=Ember.String.decamelize(r).replace(e,"-"),i[r]=n,n)},camelize:function(e){return e.replace(n,function(e,t,r){return r?r.toUpperCase():""}).replace(/^([A-Z])/,function(e){return e.toLowerCase()})},classify:function(e){for(var t=e.split("."),r=[],n=0,i=t.length;i>n;n++){var s=Ember.String.camelize(t[n]);r.push(s.charAt(0).toUpperCase()+s.substr(1))}return r.join(".")},underscore:function(e){return e.replace(i,"$1_$2").replace(s,"_").toLowerCase()},capitalize:function(e){return e.charAt(0).toUpperCase()+e.substr(1)}}}(),function(){var e=Ember.String.fmt,t=Ember.String.w,r=Ember.String.loc,n=Ember.String.camelize,i=Ember.String.decamelize,s=Ember.String.dasherize,o=Ember.String.underscore,a=Ember.String.capitalize,u=Ember.String.classify;(Ember.EXTEND_PROTOTYPES===!0||Ember.EXTEND_PROTOTYPES.String)&&(String.prototype.fmt=function(){return e(this,arguments)},String.prototype.w=function(){return t(this)},String.prototype.loc=function(){return r(this,arguments)},String.prototype.camelize=function(){return n(this)},String.prototype.decamelize=function(){return i(this)},String.prototype.dasherize=function(){return s(this)},String.prototype.underscore=function(){return o(this)},String.prototype.classify=function(){return u(this)},String.prototype.capitalize=function(){return a(this)})}(),function(){var e=Array.prototype.slice;(Ember.EXTEND_PROTOTYPES===!0||Ember.EXTEND_PROTOTYPES.Function)&&(Function.prototype.property=function(){var e=Ember.computed(this);return e.property.apply(e,arguments)},Function.prototype.observes=function(){return this.__ember_observes__=e.call(arguments),this},Function.prototype.observesBefore=function(){return this.__ember_observesBefore__=e.call(arguments),this})}(),function(){function e(){return 0===a.length?{}:a.pop()}function t(e){return a.push(e),null}function r(e,t){function r(r){var s=n(r,e);return i?t===s:!!s}var i=2===arguments.length;return r}var n=Ember.get,i=Ember.set,s=Array.prototype.slice,o=Ember.EnumerableUtils.indexOf,a=[];Ember.Enumerable=Ember.Mixin.create({isEnumerable:!0,nextObject:Ember.required(Function),firstObject:Ember.computed(function(){if(0===n(this,"length"))return void 0;var r,i=e();return r=this.nextObject(0,null,i),t(i),r}).property("[]"),lastObject:Ember.computed(function(){var r=n(this,"length");if(0===r)return void 0;var i,s=e(),o=0,a=null;do a=i,i=this.nextObject(o++,a,s);while(void 0!==i);return t(s),a}).property("[]"),contains:function(e){return void 0!==this.find(function(t){return t===e})},forEach:function(r,i){if("function"!=typeof r)throw new TypeError;var s=n(this,"length"),o=null,a=e();void 0===i&&(i=null);for(var u=0;s>u;u++){var c=this.nextObject(u,o,a);r.call(i,c,u,this),o=c}return o=null,a=t(a),this},getEach:function(e){return this.mapProperty(e)},setEach:function(e,t){return this.forEach(function(r){i(r,e,t)})},map:function(e,t){var r=Ember.A();return this.forEach(function(n,i,s){r[i]=e.call(t,n,i,s)}),r},mapProperty:function(e){return this.map(function(t){return n(t,e)})},filter:function(e,t){var r=Ember.A();return this.forEach(function(n,i,s){e.call(t,n,i,s)&&r.push(n)}),r},reject:function(e,t){return this.filter(function(){return!e.apply(t,arguments)})},filterProperty:function(){return this.filter(r.apply(this,arguments))},rejectProperty:function(e,t){var r=function(r){return n(r,e)===t},i=function(t){return!!n(t,e)},s=2===arguments.length?r:i;return this.reject(s)},find:function(r,i){var s=n(this,"length");void 0===i&&(i=null);for(var o,a,u=null,c=!1,l=e(),h=0;s>h&&!c;h++)o=this.nextObject(h,u,l),(c=r.call(i,o,h,this))&&(a=o),u=o;return o=u=null,l=t(l),a},findProperty:function(){return this.find(r.apply(this,arguments))},every:function(e,t){return!this.find(function(r,n,i){return!e.call(t,r,n,i)})},everyProperty:function(){return this.every(r.apply(this,arguments))},some:function(e,t){return!!this.find(function(r,n,i){return!!e.call(t,r,n,i)})},someProperty:function(){return this.some(r.apply(this,arguments))},reduce:function(e,t,r){if("function"!=typeof e)throw new TypeError;var n=t;return this.forEach(function(t,i){n=e.call(null,n,t,i,this,r)},this),n},invoke:function(e){var t,r=Ember.A();return arguments.length>1&&(t=s.call(arguments,1)),this.forEach(function(n,i){var s=n&&n[e];"function"==typeof s&&(r[i]=t?s.apply(n,t):s.call(n))},this),r},toArray:function(){var e=Ember.A();return this.forEach(function(t,r){e[r]=t}),e},compact:function(){return this.filter(function(e){return null!=e})},without:function(e){if(!this.contains(e))return this;var t=Ember.A();return this.forEach(function(r){r!==e&&(t[t.length]=r)}),t},uniq:function(){var e=Ember.A();return this.forEach(function(t){o(e,t)<0&&e.push(t)}),e},"[]":Ember.computed(function(){return this}),addEnumerableObserver:function(e,t){var r=t&&t.willChange||"enumerableWillChange",i=t&&t.didChange||"enumerableDidChange",s=n(this,"hasEnumerableObservers");return s||Ember.propertyWillChange(this,"hasEnumerableObservers"),Ember.addListener(this,"@enumerable:before",e,r),Ember.addListener(this,"@enumerable:change",e,i),s||Ember.propertyDidChange(this,"hasEnumerableObservers"),this},removeEnumerableObserver:function(e,t){var r=t&&t.willChange||"enumerableWillChange",i=t&&t.didChange||"enumerableDidChange",s=n(this,"hasEnumerableObservers");return s&&Ember.propertyWillChange(this,"hasEnumerableObservers"),Ember.removeListener(this,"@enumerable:before",e,r),Ember.removeListener(this,"@enumerable:change",e,i),s&&Ember.propertyDidChange(this,"hasEnumerableObservers"),this},hasEnumerableObservers:Ember.computed(function(){return Ember.hasListeners(this,"@enumerable:change")||Ember.hasListeners(this,"@enumerable:before")}),enumerableContentWillChange:function(e,t){var r,i,s;return r="number"==typeof e?e:e?n(e,"length"):e=-1,i="number"==typeof t?t:t?n(t,"length"):t=-1,s=0>i||0>r||0!==i-r,-1===e&&(e=null),-1===t&&(t=null),Ember.propertyWillChange(this,"[]"),s&&Ember.propertyWillChange(this,"length"),Ember.sendEvent(this,"@enumerable:before",[this,e,t]),this},enumerableContentDidChange:function(e,t){var r,i,s;return r="number"==typeof e?e:e?n(e,"length"):e=-1,i="number"==typeof t?t:t?n(t,"length"):t=-1,s=0>i||0>r||0!==i-r,-1===e&&(e=null),-1===t&&(t=null),Ember.sendEvent(this,"@enumerable:change",[this,e,t]),s&&Ember.propertyDidChange(this,"length"),Ember.propertyDidChange(this,"[]"),this}})}(),function(){var e=Ember.get,t=(Ember.set,Ember.isNone),r=Ember.EnumerableUtils.map,n=Ember.cacheFor;Ember.Array=Ember.Mixin.create(Ember.Enumerable,{length:Ember.required(),objectAt:function(t){return 0>t||t>=e(this,"length")?void 0:e(this,t)},objectsAt:function(e){var t=this;return r(e,function(e){return t.objectAt(e)})},nextObject:function(e){return this.objectAt(e)},"[]":Ember.computed(function(t,r){return void 0!==r&&this.replace(0,e(this,"length"),r),this}),firstObject:Ember.computed(function(){return this.objectAt(0)}),lastObject:Ember.computed(function(){return this.objectAt(e(this,"length")-1)}),contains:function(e){return this.indexOf(e)>=0},slice:function(r,n){var i=Ember.A(),s=e(this,"length");for(t(r)&&(r=0),(t(n)||n>s)&&(n=s),0>r&&(r=s+r),0>n&&(n=s+n);n>r;)i[i.length]=this.objectAt(r++);return i},indexOf:function(t,r){var n,i=e(this,"length");for(void 0===r&&(r=0),0>r&&(r+=i),n=r;i>n;n++)if(this.objectAt(n,!0)===t)return n;return-1},lastIndexOf:function(t,r){var n,i=e(this,"length");for((void 0===r||r>=i)&&(r=i-1),0>r&&(r+=i),n=r;n>=0;n--)if(this.objectAt(n)===t)return n;return-1},addArrayObserver:function(t,r){var n=r&&r.willChange||"arrayWillChange",i=r&&r.didChange||"arrayDidChange",s=e(this,"hasArrayObservers");
17
- return s||Ember.propertyWillChange(this,"hasArrayObservers"),Ember.addListener(this,"@array:before",t,n),Ember.addListener(this,"@array:change",t,i),s||Ember.propertyDidChange(this,"hasArrayObservers"),this},removeArrayObserver:function(t,r){var n=r&&r.willChange||"arrayWillChange",i=r&&r.didChange||"arrayDidChange",s=e(this,"hasArrayObservers");return s&&Ember.propertyWillChange(this,"hasArrayObservers"),Ember.removeListener(this,"@array:before",t,n),Ember.removeListener(this,"@array:change",t,i),s&&Ember.propertyDidChange(this,"hasArrayObservers"),this},hasArrayObservers:Ember.computed(function(){return Ember.hasListeners(this,"@array:change")||Ember.hasListeners(this,"@array:before")}),arrayContentWillChange:function(t,r,n){void 0===t?(t=0,r=n=-1):(void 0===r&&(r=-1),void 0===n&&(n=-1)),Ember.isWatching(this,"@each")&&e(this,"@each"),Ember.sendEvent(this,"@array:before",[this,t,r,n]);var i,s;if(t>=0&&r>=0&&e(this,"hasEnumerableObservers")){i=[],s=t+r;for(var o=t;s>o;o++)i.push(this.objectAt(o))}else i=r;return this.enumerableContentWillChange(i,n),this},arrayContentDidChange:function(t,r,i){void 0===t?(t=0,r=i=-1):(void 0===r&&(r=-1),void 0===i&&(i=-1));var s,o;if(t>=0&&i>=0&&e(this,"hasEnumerableObservers")){s=[],o=t+i;for(var a=t;o>a;a++)s.push(this.objectAt(a))}else s=i;this.enumerableContentDidChange(r,s),Ember.sendEvent(this,"@array:change",[this,t,r,i]);var u=e(this,"length"),c=n(this,"firstObject"),l=n(this,"lastObject");return this.objectAt(0)!==c&&(Ember.propertyWillChange(this,"firstObject"),Ember.propertyDidChange(this,"firstObject")),this.objectAt(u-1)!==l&&(Ember.propertyWillChange(this,"lastObject"),Ember.propertyDidChange(this,"lastObject")),this},"@each":Ember.computed(function(){return this.__each||(this.__each=new Ember.EachProxy(this)),this.__each})})}(),function(){Ember.Comparable=Ember.Mixin.create({isComparable:!0,compare:Ember.required(Function)})}(),function(){var e=Ember.get;Ember.set,Ember.Copyable=Ember.Mixin.create({copy:Ember.required(Function),frozenCopy:function(){if(Ember.Freezable&&Ember.Freezable.detect(this))return e(this,"isFrozen")?this:this.copy().freeze();throw new Error(Ember.String.fmt("%@ does not support freezing",[this]))}})}(),function(){var e=Ember.get,t=Ember.set;Ember.Freezable=Ember.Mixin.create({isFrozen:!1,freeze:function(){return e(this,"isFrozen")?this:(t(this,"isFrozen",!0),this)}}),Ember.FROZEN_ERROR="Frozen object cannot be modified."}(),function(){var e=Ember.EnumerableUtils.forEach;Ember.MutableEnumerable=Ember.Mixin.create(Ember.Enumerable,{addObject:Ember.required(Function),addObjects:function(t){return Ember.beginPropertyChanges(this),e(t,function(e){this.addObject(e)},this),Ember.endPropertyChanges(this),this},removeObject:Ember.required(Function),removeObjects:function(t){return Ember.beginPropertyChanges(this),e(t,function(e){this.removeObject(e)},this),Ember.endPropertyChanges(this),this}})}(),function(){var e="Index out of range",t=[],r=Ember.get;Ember.set,Ember.MutableArray=Ember.Mixin.create(Ember.Array,Ember.MutableEnumerable,{replace:Ember.required(),clear:function(){var e=r(this,"length");return 0===e?this:(this.replace(0,e,t),this)},insertAt:function(t,n){if(t>r(this,"length"))throw new Error(e);return this.replace(t,0,[n]),this},removeAt:function(n,i){if("number"==typeof n){if(0>n||n>=r(this,"length"))throw new Error(e);void 0===i&&(i=1),this.replace(n,i,t)}return this},pushObject:function(e){return this.insertAt(r(this,"length"),e),e},pushObjects:function(e){return this.replace(r(this,"length"),0,e),this},popObject:function(){var e=r(this,"length");if(0===e)return null;var t=this.objectAt(e-1);return this.removeAt(e-1,1),t},shiftObject:function(){if(0===r(this,"length"))return null;var e=this.objectAt(0);return this.removeAt(0),e},unshiftObject:function(e){return this.insertAt(0,e),e},unshiftObjects:function(e){return this.replace(0,0,e),this},reverseObjects:function(){var e=r(this,"length");if(0===e)return this;var t=this.toArray().reverse();return this.replace(0,e,t),this},setObjects:function(e){if(0===e.length)return this.clear();var t=r(this,"length");return this.replace(0,t,e),this},removeObject:function(e){for(var t=r(this,"length")||0;--t>=0;){var n=this.objectAt(t);n===e&&this.removeAt(t)}return this},addObject:function(e){return this.contains(e)||this.pushObject(e),this}})}(),function(){var e=Ember.get,t=Ember.set;Ember.Observable=Ember.Mixin.create({get:function(t){return e(this,t)},getProperties:function(){var t={},r=arguments;1===arguments.length&&"array"===Ember.typeOf(arguments[0])&&(r=arguments[0]);for(var n=0;n<r.length;n++)t[r[n]]=e(this,r[n]);return t},set:function(e,r){return t(this,e,r),this},setProperties:function(e){return Ember.setProperties(this,e)},beginPropertyChanges:function(){return Ember.beginPropertyChanges(),this},endPropertyChanges:function(){return Ember.endPropertyChanges(),this},propertyWillChange:function(e){return Ember.propertyWillChange(this,e),this},propertyDidChange:function(e){return Ember.propertyDidChange(this,e),this},notifyPropertyChange:function(e){return this.propertyWillChange(e),this.propertyDidChange(e),this},addBeforeObserver:function(e,t,r){Ember.addBeforeObserver(this,e,t,r)},addObserver:function(e,t,r){Ember.addObserver(this,e,t,r)},removeObserver:function(e,t,r){Ember.removeObserver(this,e,t,r)},hasObserverFor:function(e){return Ember.hasListeners(this,e+":change")},getPath:function(e){return this.get(e)},setPath:function(e,t){return this.set(e,t)},getWithDefault:function(e,t){return Ember.getWithDefault(this,e,t)},incrementProperty:function(r,n){return Ember.isNone(n)&&(n=1),t(this,r,(e(this,r)||0)+n),e(this,r)},decrementProperty:function(r,n){return Ember.isNone(n)&&(n=1),t(this,r,(e(this,r)||0)-n),e(this,r)},toggleProperty:function(r){return t(this,r,!e(this,r)),e(this,r)},cacheFor:function(e){return Ember.cacheFor(this,e)},observersForKey:function(e){return Ember.observersFor(this,e)}})}(),function(){var e=Ember.get;Ember.set,Ember.TargetActionSupport=Ember.Mixin.create({target:null,action:null,actionContext:null,targetObject:Ember.computed(function(){var t=e(this,"target");if("string"===Ember.typeOf(t)){var r=e(this,t);return void 0===r&&(r=e(Ember.lookup,t)),r}return t}).property("target"),actionContextObject:Ember.computed(function(){var t=e(this,"actionContext");if("string"===Ember.typeOf(t)){var r=e(this,t);return void 0===r&&(r=e(Ember.lookup,t)),r}return t}).property("actionContext"),triggerAction:function(t){t=t||{};var r=t.action||e(this,"action"),n=t.target||e(this,"targetObject"),i=t.actionContext||e(this,"actionContextObject")||this;if(n&&r){var s;return s=n.send?n.send.apply(n,[r,i]):n[r].apply(n,[i]),s!==!1&&(s=!0),s}return!1}})}(),function(){Ember.Evented=Ember.Mixin.create({on:function(e,t,r){return Ember.addListener(this,e,t,r),this},one:function(e,t,r){return r||(r=t,t=null),Ember.addListener(this,e,t,r,!0),this},trigger:function(e){var t,r,n=[];for(t=1,r=arguments.length;r>t;t++)n.push(arguments[t]);Ember.sendEvent(this,e,n)},fire:function(){this.trigger.apply(this,arguments)},off:function(e,t,r){return Ember.removeListener(this,e,t,r),this},has:function(e){return Ember.hasListeners(this,e)}})}(),function(){var e=t("rsvp");e.configure("async",function(e,t){Ember.run.schedule("actions",t,e)});var r=Ember.get;Ember.DeferredMixin=Ember.Mixin.create({then:function(e,t){function n(t){return t===s?e(o):e(t)}var i,s,o;return o=this,i=r(this,"_deferred"),s=i.promise,s.then(e&&n,t)},resolve:function(e){var t,n;t=r(this,"_deferred"),n=t.promise,e===this?t.resolve(n):t.resolve(e)},reject:function(e){r(this,"_deferred").reject(e)},_deferred:Ember.computed(function(){return e.defer()})})}(),function(){Ember.Container=t("container"),Ember.Container.set=Ember.set}(),function(){function e(){var e,t,s=!1,o=function(){s||o.proto(),n(this,i,v),n(this,"_super",v);var u=a(this);if(u.proto=this,e){var l=e;e=null,this.reopen.apply(this,l)}if(t){var h=t;t=null;for(var m=this.concatenatedProperties,f=0,d=h.length;d>f;f++){var g=h[f];for(var y in g)if(g.hasOwnProperty(y)){var w=g[y],_=Ember.IS_BINDING;if(_.test(y)){var C=u.bindings;C?u.hasOwnProperty("bindings")||(C=u.bindings=r(u.bindings)):C=u.bindings={},C[y]=w}var O=u.descs[y];if(m&&E(m,y)>=0){var S=this[y];w=S?"function"==typeof S.concat?S.concat(w):Ember.makeArray(S).concat(w):Ember.makeArray(w)}O?O.set(this,y,w):"function"!=typeof this.setUnknownProperty||y in this?b?Ember.defineProperty(this,y,null,w):this[y]=w:this.setUnknownProperty(y,w)}}}p(this,u),delete u.proto,c(this),this.init.apply(this,arguments)};return o.toString=m.prototype.toString,o.willReopen=function(){s&&(o.PrototypeMixin=m.create(o.PrototypeMixin)),s=!1},o._initMixins=function(t){e=t},o._initProperties=function(e){t=e},o.proto=function(){var e=o.superclass;return e&&e.proto(),s||(s=!0,o.PrototypeMixin.applyPartial(o.prototype),u(o.prototype)),this.prototype},o}function t(e){return function(){return e}}var r=(Ember.set,Ember.get,Ember.create),n=Ember.platform.defineProperty,i=Ember.GUID_KEY,s=Ember.guidFor,o=Ember.generateGuid,a=Ember.meta,u=Ember.rewatch,c=Ember.finishChains,l=Ember.destroy,h=Ember.run.schedule,m=Ember.Mixin,f=m._apply,p=m.finishPartial,d=m.prototype.reopen,b=Ember.ENV.MANDATORY_SETTER,E=Ember.EnumerableUtils.indexOf,v={configurable:!0,writable:!0,enumerable:!1,value:void 0},g=e();g.toString=function(){return"Ember.CoreObject"},g.PrototypeMixin=m.create({reopen:function(){return f(this,arguments,!0),this},isInstance:!0,init:function(){},concatenatedProperties:null,isDestroyed:!1,isDestroying:!1,destroy:function(){return this.isDestroying?void 0:(this.isDestroying=!0,h("actions",this,this.willDestroy),h("destroy",this,this._scheduledDestroy),this)},willDestroy:Ember.K,_scheduledDestroy:function(){this.isDestroyed||(l(this),this.isDestroyed=!0)},bind:function(e,t){return t instanceof Ember.Binding||(t=Ember.Binding.from(t)),t.to(e).connect(this),t},toString:function(){var e="function"==typeof this.toStringExtension,r=e?":"+this.toStringExtension():"",n="<"+this.constructor.toString()+":"+s(this)+r+">";return this.toString=t(n),n}}),g.PrototypeMixin.ownerConstructor=g,Ember.config.overridePrototypeMixin&&Ember.config.overridePrototypeMixin(g.PrototypeMixin),g.__super__=null;var y=m.create({ClassMixin:Ember.required(),PrototypeMixin:Ember.required(),isClass:!0,isMethod:!1,extend:function(){var t,n=e();return n.ClassMixin=m.create(this.ClassMixin),n.PrototypeMixin=m.create(this.PrototypeMixin),n.ClassMixin.ownerConstructor=n,n.PrototypeMixin.ownerConstructor=n,d.apply(n.PrototypeMixin,arguments),n.superclass=this,n.__super__=this.prototype,t=n.prototype=r(this.prototype),t.constructor=n,o(t,"ember"),a(t).proto=t,n.ClassMixin.apply(n),n},createWithMixins:function(){var e=this;return arguments.length>0&&this._initMixins(arguments),new e},create:function(){var e=this;return arguments.length>0&&this._initProperties(arguments),new e},reopen:function(){return this.willReopen(),d.apply(this.PrototypeMixin,arguments),this},reopenClass:function(){return d.apply(this.ClassMixin,arguments),f(this,arguments,!1),this},detect:function(e){if("function"!=typeof e)return!1;for(;e;){if(e===this)return!0;e=e.superclass}return!1},detectInstance:function(e){return e instanceof this},metaForProperty:function(e){var t=a(this.proto(),!1).descs[e];return t._meta||{}},eachComputedProperty:function(e,t){var r,n=this.proto(),i=a(n).descs,s={};for(var o in i)r=i[o],r instanceof Ember.ComputedProperty&&e.call(t||this,o,r._meta||s)}});y.ownerConstructor=g,Ember.config.overrideClassMixin&&Ember.config.overrideClassMixin(y),g.ClassMixin=y,y.apply(g),Ember.CoreObject=g}(),function(){Ember.Object=Ember.CoreObject.extend(Ember.Observable),Ember.Object.toString=function(){return"Ember.Object"}}(),function(){function e(t,r,i){var o=t.length;c[t.join(".")]=r;for(var a in r)if(l.call(r,a)){var u=r[a];if(t[o]=a,u&&u.toString===n)u.toString=s(t.join(".")),u[m]=t.join(".");else if(u&&u.isNamespace){if(i[h(u)])continue;i[h(u)]=!0,e(t,u,i)}}t.length=o}function t(){var e,t,r=Ember.Namespace,n=Ember.lookup;if(!r.PROCESSED)for(var i in n)if("parent"!==i&&"top"!==i&&"frameElement"!==i&&"webkitStorageInfo"!==i&&!("globalStorage"===i&&n.StorageList&&n.globalStorage instanceof n.StorageList||n.hasOwnProperty&&!n.hasOwnProperty(i))){try{e=Ember.lookup[i],t=e&&e.isNamespace}catch(s){continue}t&&(e[m]=i)}}function r(e){var t=e.superclass;return t?t[m]?t[m]:r(t):void 0}function n(){Ember.BOOTED||this[m]||i();var e;if(this[m])e=this[m];else{var t=r(this);e=t?"(subclass of "+t+")":"(unknown mixin)",this.toString=s(e)}return e}function i(){var r=!u.PROCESSED,n=Ember.anyUnprocessedMixins;if(r&&(t(),u.PROCESSED=!0),r||n){for(var i,s=u.NAMESPACES,o=0,a=s.length;a>o;o++)i=s[o],e([i.toString()],i,{});Ember.anyUnprocessedMixins=!1}}function s(e){return function(){return e}}var o=Ember.get,a=Ember.ArrayPolyfills.indexOf,u=Ember.Namespace=Ember.Object.extend({isNamespace:!0,init:function(){Ember.Namespace.NAMESPACES.push(this),Ember.Namespace.PROCESSED=!1},toString:function(){var e=o(this,"name");return e?e:(t(),this[Ember.GUID_KEY+"_name"])},nameClasses:function(){e([this.toString()],this,{})},destroy:function(){var e=Ember.Namespace.NAMESPACES;Ember.lookup[this.toString()]=void 0,e.splice(a.call(e,this),1),this._super()}});u.reopenClass({NAMESPACES:[Ember],NAMESPACES_BY_ID:{},PROCESSED:!1,processAll:i,byName:function(e){return Ember.BOOTED||i(),c[e]}});var c=u.NAMESPACES_BY_ID,l={}.hasOwnProperty,h=Ember.guidFor,m=Ember.NAME_KEY=Ember.GUID_KEY+"_name";Ember.Mixin.prototype.toString=n}(),function(){Ember.Application=Ember.Namespace.extend()}(),function(){var e="Index out of range",t=[],r=Ember.get;Ember.set,Ember.ArrayProxy=Ember.Object.extend(Ember.MutableArray,{content:null,arrangedContent:Ember.computed.alias("content"),objectAtContent:function(e){return r(this,"arrangedContent").objectAt(e)},replaceContent:function(e,t,n){r(this,"content").replace(e,t,n)},_contentWillChange:Ember.beforeObserver(function(){this._teardownContent()},"content"),_teardownContent:function(){var e=r(this,"content");e&&e.removeArrayObserver(this,{willChange:"contentArrayWillChange",didChange:"contentArrayDidChange"})},contentArrayWillChange:Ember.K,contentArrayDidChange:Ember.K,_contentDidChange:Ember.observer(function(){r(this,"content"),this._setupContent()},"content"),_setupContent:function(){var e=r(this,"content");e&&e.addArrayObserver(this,{willChange:"contentArrayWillChange",didChange:"contentArrayDidChange"})},_arrangedContentWillChange:Ember.beforeObserver(function(){var e=r(this,"arrangedContent"),t=e?r(e,"length"):0;this.arrangedContentArrayWillChange(this,0,t,void 0),this.arrangedContentWillChange(this),this._teardownArrangedContent(e)},"arrangedContent"),_arrangedContentDidChange:Ember.observer(function(){var e=r(this,"arrangedContent"),t=e?r(e,"length"):0;this._setupArrangedContent(),this.arrangedContentDidChange(this),this.arrangedContentArrayDidChange(this,0,void 0,t)},"arrangedContent"),_setupArrangedContent:function(){var e=r(this,"arrangedContent");e&&e.addArrayObserver(this,{willChange:"arrangedContentArrayWillChange",didChange:"arrangedContentArrayDidChange"})},_teardownArrangedContent:function(){var e=r(this,"arrangedContent");e&&e.removeArrayObserver(this,{willChange:"arrangedContentArrayWillChange",didChange:"arrangedContentArrayDidChange"})},arrangedContentWillChange:Ember.K,arrangedContentDidChange:Ember.K,objectAt:function(e){return r(this,"content")&&this.objectAtContent(e)},length:Ember.computed(function(){var e=r(this,"arrangedContent");return e?r(e,"length"):0}),_replace:function(e,t,n){var i=r(this,"content");return i&&this.replaceContent(e,t,n),this},replace:function(){if(r(this,"arrangedContent")!==r(this,"content"))throw new Ember.Error("Using replace on an arranged ArrayProxy is not allowed.");this._replace.apply(this,arguments)},_insertAt:function(t,n){if(t>r(this,"content.length"))throw new Error(e);return this._replace(t,0,[n]),this},insertAt:function(e,t){if(r(this,"arrangedContent")===r(this,"content"))return this._insertAt(e,t);throw new Ember.Error("Using insertAt on an arranged ArrayProxy is not allowed.")},removeAt:function(n,i){if("number"==typeof n){var s,o=r(this,"content"),a=r(this,"arrangedContent"),u=[];if(0>n||n>=r(this,"length"))throw new Error(e);for(void 0===i&&(i=1),s=n;n+i>s;s++)u.push(o.indexOf(a.objectAt(s)));for(u.sort(function(e,t){return t-e}),Ember.beginPropertyChanges(),s=0;s<u.length;s++)this._replace(u[s],1,t);Ember.endPropertyChanges()}return this},pushObject:function(e){return this._insertAt(r(this,"content.length"),e),e},pushObjects:function(e){return this._replace(r(this,"length"),0,e),this},setObjects:function(e){if(0===e.length)return this.clear();var t=r(this,"length");return this._replace(0,t,e),this},unshiftObject:function(e){return this._insertAt(0,e),e},unshiftObjects:function(e){return this._replace(0,0,e),this},slice:function(){var e=this.toArray();return e.slice.apply(e,arguments)},arrangedContentArrayWillChange:function(e,t,r,n){this.arrayContentWillChange(t,r,n)},arrangedContentArrayDidChange:function(e,t,r,n){this.arrayContentDidChange(t,r,n)},init:function(){this._super(),this._setupContent(),this._setupArrangedContent()},willDestroy:function(){this._teardownArrangedContent(),this._teardownContent()}})}(),function(){function e(e,t){var r=t.slice(8);r in this||u(this,r)}function t(e,t){var r=t.slice(8);r in this||c(this,r)}var r=Ember.get,n=Ember.set,i=(Ember.String.fmt,Ember.addBeforeObserver),s=Ember.addObserver,o=Ember.removeBeforeObserver,a=Ember.removeObserver,u=Ember.propertyWillChange,c=Ember.propertyDidChange;Ember.ObjectProxy=Ember.Object.extend({content:null,_contentDidChange:Ember.observer(function(){},"content"),isTruthy:Ember.computed.bool("content"),_debugContainerKey:null,willWatchProperty:function(r){var n="content."+r;i(this,n,null,e),s(this,n,null,t)},didUnwatchProperty:function(r){var n="content."+r;o(this,n,null,e),a(this,n,null,t)},unknownProperty:function(e){var t=r(this,"content");return t?r(t,e):void 0},setUnknownProperty:function(e,t){var i=r(this,"content");return n(i,e,t)}}),Ember.ObjectProxy.reopenClass({create:function(){var e,t,r,n,i,s;if(arguments.length){for(t=this.proto(),r=0,n=arguments.length;n>r;r++){i=arguments[r];for(s in i)!i.hasOwnProperty(s)||s in t||(e||(e={}),e[s]=null)}e&&this._initMixins([e])}return this._super.apply(this,arguments)}})}(),function(){function e(e,t,r,i,s){var o,a=r._objects;for(a||(a=r._objects={});--s>=i;){var u=e.objectAt(s);u&&(Ember.addBeforeObserver(u,t,r,"contentKeyWillChange"),Ember.addObserver(u,t,r,"contentKeyDidChange"),o=n(u),a[o]||(a[o]=[]),a[o].push(s))}}function t(e,t,r,i,s){var o=r._objects;o||(o=r._objects={});for(var a,u;--s>=i;){var c=e.objectAt(s);c&&(Ember.removeBeforeObserver(c,t,r,"contentKeyWillChange"),Ember.removeObserver(c,t,r,"contentKeyDidChange"),u=n(c),a=o[u],a[a.indexOf(s)]=null)}}var r=(Ember.set,Ember.get),n=Ember.guidFor,i=Ember.EnumerableUtils.forEach,s=Ember.Object.extend(Ember.Array,{init:function(e,t,r){this._super(),this._keyName=t,this._owner=r,this._content=e},objectAt:function(e){var t=this._content.objectAt(e);return t&&r(t,this._keyName)},length:Ember.computed(function(){var e=this._content;return e?r(e,"length"):0})}),o=/^.+:(before|change)$/;Ember.EachProxy=Ember.Object.extend({init:function(e){this._super(),this._content=e,e.addArrayObserver(this),i(Ember.watchedEvents(this),function(e){this.didAddListener(e)},this)},unknownProperty:function(e){var t;return t=new s(this._content,e,this),Ember.defineProperty(this,e,null,t),this.beginObservingContentKey(e),t},arrayWillChange:function(e,r,n){var i,s,o=this._keys;s=n>0?r+n:-1,Ember.beginPropertyChanges(this);for(i in o)o.hasOwnProperty(i)&&(s>0&&t(e,i,this,r,s),Ember.propertyWillChange(this,i));Ember.propertyWillChange(this._content,"@each"),Ember.endPropertyChanges(this)},arrayDidChange:function(t,r,n,i){var s,o,a=this._keys;o=i>0?r+i:-1,Ember.beginPropertyChanges(this);for(s in a)a.hasOwnProperty(s)&&(o>0&&e(t,s,this,r,o),Ember.propertyDidChange(this,s));Ember.propertyDidChange(this._content,"@each"),Ember.endPropertyChanges(this)},didAddListener:function(e){o.test(e)&&this.beginObservingContentKey(e.slice(0,-7))},didRemoveListener:function(e){o.test(e)&&this.stopObservingContentKey(e.slice(0,-7))},beginObservingContentKey:function(t){var n=this._keys;if(n||(n=this._keys={}),n[t])n[t]++;else{n[t]=1;var i=this._content,s=r(i,"length");e(i,t,this,0,s)}},stopObservingContentKey:function(e){var n=this._keys;if(n&&n[e]>0&&--n[e]<=0){var i=this._content,s=r(i,"length");t(i,e,this,0,s)}},contentKeyWillChange:function(e,t){Ember.propertyWillChange(this,t)},contentKeyDidChange:function(e,t){Ember.propertyDidChange(this,t)}})}(),function(){var e=Ember.get;Ember.set;var t=Ember.Mixin.create(Ember.MutableArray,Ember.Observable,Ember.Copyable,{get:function(e){return"length"===e?this.length:"number"==typeof e?this[e]:this._super(e)},objectAt:function(e){return this[e]},replace:function(t,r,n){if(this.isFrozen)throw Ember.FROZEN_ERROR;var i=n?e(n,"length"):0;if(this.arrayContentWillChange(t,r,i),n&&0!==n.length){var s=[t,r].concat(n);this.splice.apply(this,s)}else this.splice(t,r);return this.arrayContentDidChange(t,r,i),this},unknownProperty:function(e,t){var r;return void 0!==t&&void 0===r&&(r=this[e]=t),r},indexOf:function(e,t){var r,n=this.length;for(t=void 0===t?0:0>t?Math.ceil(t):Math.floor(t),0>t&&(t+=n),r=t;n>r;r++)if(this[r]===e)return r;return-1},lastIndexOf:function(e,t){var r,n=this.length;for(t=void 0===t?n-1:0>t?Math.ceil(t):Math.floor(t),0>t&&(t+=n),r=t;r>=0;r--)if(this[r]===e)return r;return-1},copy:function(e){return e?this.map(function(e){return Ember.copy(e,!0)}):this.slice()}}),r=["length"];Ember.EnumerableUtils.forEach(t.keys(),function(e){Array.prototype[e]&&r.push(e)}),r.length>0&&(t=t.without.apply(t,r)),Ember.NativeArray=t,Ember.A=function(e){return void 0===e&&(e=[]),Ember.Array.detect(e)?e:Ember.NativeArray.apply(e)},Ember.NativeArray.activate=function(){t.apply(Array.prototype),Ember.A=function(e){return e||[]}},(Ember.EXTEND_PROTOTYPES===!0||Ember.EXTEND_PROTOTYPES.Array)&&Ember.NativeArray.activate()}(),function(){var e=Ember.get,t=Ember.set,r=Ember.guidFor,n=Ember.isNone,i=Ember.String.fmt;Ember.Set=Ember.CoreObject.extend(Ember.MutableEnumerable,Ember.Copyable,Ember.Freezable,{length:0,clear:function(){if(this.isFrozen)throw new Error(Ember.FROZEN_ERROR);var n=e(this,"length");if(0===n)return this;var i;this.enumerableContentWillChange(n,0),Ember.propertyWillChange(this,"firstObject"),Ember.propertyWillChange(this,"lastObject");for(var s=0;n>s;s++)i=r(this[s]),delete this[i],delete this[s];return t(this,"length",0),Ember.propertyDidChange(this,"firstObject"),Ember.propertyDidChange(this,"lastObject"),this.enumerableContentDidChange(n,0),this},isEqual:function(t){if(!Ember.Enumerable.detect(t))return!1;var r=e(this,"length");if(e(t,"length")!==r)return!1;for(;--r>=0;)if(!t.contains(this[r]))return!1;return!0},add:Ember.aliasMethod("addObject"),remove:Ember.aliasMethod("removeObject"),pop:function(){if(e(this,"isFrozen"))throw new Error(Ember.FROZEN_ERROR);var t=this.length>0?this[this.length-1]:null;return this.remove(t),t},push:Ember.aliasMethod("addObject"),shift:Ember.aliasMethod("pop"),unshift:Ember.aliasMethod("push"),addEach:Ember.aliasMethod("addObjects"),removeEach:Ember.aliasMethod("removeObjects"),init:function(e){this._super(),e&&this.addObjects(e)},nextObject:function(e){return this[e]},firstObject:Ember.computed(function(){return this.length>0?this[0]:void 0}),lastObject:Ember.computed(function(){return this.length>0?this[this.length-1]:void 0}),addObject:function(i){if(e(this,"isFrozen"))throw new Error(Ember.FROZEN_ERROR);if(n(i))return this;var s,o=r(i),a=this[o],u=e(this,"length");return a>=0&&u>a&&this[a]===i?this:(s=[i],this.enumerableContentWillChange(null,s),Ember.propertyWillChange(this,"lastObject"),u=e(this,"length"),this[o]=u,this[u]=i,t(this,"length",u+1),Ember.propertyDidChange(this,"lastObject"),this.enumerableContentDidChange(null,s),this)},removeObject:function(i){if(e(this,"isFrozen"))throw new Error(Ember.FROZEN_ERROR);if(n(i))return this;var s,o,a=r(i),u=this[a],c=e(this,"length"),l=0===u,h=u===c-1;return u>=0&&c>u&&this[u]===i&&(o=[i],this.enumerableContentWillChange(o,null),l&&Ember.propertyWillChange(this,"firstObject"),h&&Ember.propertyWillChange(this,"lastObject"),c-1>u&&(s=this[c-1],this[u]=s,this[r(s)]=u),delete this[a],delete this[c-1],t(this,"length",c-1),l&&Ember.propertyDidChange(this,"firstObject"),h&&Ember.propertyDidChange(this,"lastObject"),this.enumerableContentDidChange(o,null)),this},contains:function(e){return this[r(e)]>=0},copy:function(){var n=this.constructor,i=new n,s=e(this,"length");for(t(i,"length",s);--s>=0;)i[s]=this[s],i[r(this[s])]=s;return i},toString:function(){var e,t=this.length,r=[];for(e=0;t>e;e++)r[e]=this[e];return i("Ember.Set<%@>",[r.join(",")])}})}(),function(){var e=Ember.DeferredMixin;Ember.get;var t=Ember.Object.extend(e);t.reopenClass({promise:function(e,r){var n=t.create();return e.call(r,n),n}}),Ember.Deferred=t}(),function(){var e=Ember.ArrayPolyfills.forEach,t=Ember.ENV.EMBER_LOAD_HOOKS||{},r={};Ember.onLoad=function(e,n){var i;t[e]=t[e]||Ember.A(),t[e].pushObject(n),(i=r[e])&&n(i)},Ember.runLoadHooks=function(n,i){r[n]=i,t[n]&&e.call(t[n],function(e){e(i)})}}(),function(){var e=Ember.get;Ember.ControllerMixin=Ember.Mixin.create({isController:!0,target:null,container:null,parentController:null,store:null,model:Ember.computed.alias("content"),send:function(t){var r,n=[].slice.call(arguments,1);this[t]?this[t].apply(this,n):(r=e(this,"target"))&&r.send.apply(r,arguments)}}),Ember.Controller=Ember.Object.extend(Ember.ControllerMixin)}(),function(){var e=Ember.get,t=(Ember.set,Ember.EnumerableUtils.forEach);Ember.SortableMixin=Ember.Mixin.create(Ember.MutableEnumerable,{sortProperties:null,sortAscending:!0,sortFunction:Ember.compare,orderBy:function(r,n){var i=0,s=e(this,"sortProperties"),o=e(this,"sortAscending"),a=e(this,"sortFunction");return t(s,function(t){0===i&&(i=a(e(r,t),e(n,t)),0===i||o||(i=-1*i))}),i},destroy:function(){var r=e(this,"content"),n=e(this,"sortProperties");return r&&n&&t(r,function(e){t(n,function(t){Ember.removeObserver(e,t,this,"contentItemSortPropertyDidChange")},this)},this),this._super()},isSorted:Ember.computed.bool("sortProperties"),arrangedContent:Ember.computed("content","sortProperties.@each",function(){var r=e(this,"content"),n=e(this,"isSorted"),i=e(this,"sortProperties"),s=this;return r&&n?(r=r.slice(),r.sort(function(e,t){return s.orderBy(e,t)}),t(r,function(e){t(i,function(t){Ember.addObserver(e,t,this,"contentItemSortPropertyDidChange")},this)},this),Ember.A(r)):r}),_contentWillChange:Ember.beforeObserver(function(){var r=e(this,"content"),n=e(this,"sortProperties");r&&n&&t(r,function(e){t(n,function(t){Ember.removeObserver(e,t,this,"contentItemSortPropertyDidChange")},this)},this),this._super()},"content"),sortAscendingWillChange:Ember.beforeObserver(function(){this._lastSortAscending=e(this,"sortAscending")},"sortAscending"),sortAscendingDidChange:Ember.observer(function(){if(e(this,"sortAscending")!==this._lastSortAscending){var t=e(this,"arrangedContent");t.reverseObjects()}},"sortAscending"),contentArrayWillChange:function(r,n,i,s){var o=e(this,"isSorted");if(o){var a=e(this,"arrangedContent"),u=r.slice(n,n+i),c=e(this,"sortProperties");t(u,function(e){a.removeObject(e),t(c,function(t){Ember.removeObserver(e,t,this,"contentItemSortPropertyDidChange")},this)},this)}return this._super(r,n,i,s)},contentArrayDidChange:function(r,n,i,s){var o=e(this,"isSorted"),a=e(this,"sortProperties");if(o){var u=r.slice(n,n+s);t(u,function(e){this.insertItemSorted(e),t(a,function(t){Ember.addObserver(e,t,this,"contentItemSortPropertyDidChange")},this)},this)}return this._super(r,n,i,s)},insertItemSorted:function(t){var r=e(this,"arrangedContent"),n=e(r,"length"),i=this._binarySearch(t,0,n);r.insertAt(i,t)},contentItemSortPropertyDidChange:function(t){var r=e(this,"arrangedContent"),n=r.indexOf(t),i=r.objectAt(n-1),s=r.objectAt(n+1),o=i&&this.orderBy(t,i),a=s&&this.orderBy(t,s);(0>o||a>0)&&(r.removeObject(t),this.insertItemSorted(t))},_binarySearch:function(t,r,n){var i,s,o,a;return r===n?r:(a=e(this,"arrangedContent"),i=r+Math.floor((n-r)/2),s=a.objectAt(i),o=this.orderBy(s,t),0>o?this._binarySearch(t,i+1,n):o>0?this._binarySearch(t,r,i):i)}})}(),function(){var e=Ember.get,t=(Ember.set,Ember.EnumerableUtils.forEach),r=Ember.EnumerableUtils.replace;Ember.ArrayController=Ember.ArrayProxy.extend(Ember.ControllerMixin,Ember.SortableMixin,{itemController:null,lookupItemController:function(){return e(this,"itemController")},objectAtContent:function(t){var r=e(this,"length"),n=e(this,"arrangedContent"),i=n&&n.objectAt(t);if(t>=0&&r>t){var s=this.lookupItemController(i);if(s)return this.controllerAt(t,i,s)}return i},arrangedContentDidChange:function(){this._super(),this._resetSubControllers()},arrayContentDidChange:function(n,i,s){var o=e(this,"_subControllers"),a=o.slice(n,n+i);t(a,function(e){e&&e.destroy()}),r(o,n,i,new Array(s)),this._super(n,i,s)},init:function(){this.get("content")||Ember.defineProperty(this,"content",void 0,Ember.A()),this._super(),this.set("_subControllers",Ember.A())},controllerAt:function(t,r,n){var i=e(this,"container"),s=e(this,"_subControllers"),o=s[t];if(o||(o=i.lookup("controller:"+n,{singleton:!1}),s[t]=o),!o)throw new Error('Could not resolve itemController: "'+n+'"');return o.set("target",this),o.set("parentController",e(this,"parentController")||this),o.set("content",r),o},_subControllers:null,_resetSubControllers:function(){var r=e(this,"_subControllers");r&&t(r,function(e){e&&e.destroy()}),this.set("_subControllers",Ember.A())}})}(),function(){Ember.ObjectController=Ember.ObjectProxy.extend(Ember.ControllerMixin)}(),function(){var e=Ember.imports.jQuery;Ember.$=e}(),function(){if(Ember.$){var e=Ember.String.w("dragstart drag dragenter dragleave dragover drop dragend");Ember.EnumerableUtils.forEach(e,function(e){Ember.$.event.fixHooks[e]={props:["dataTransfer"]}})}}(),function(){function e(e){var t=e.shiftKey||e.metaKey||e.altKey||e.ctrlKey,r=e.which>1;return!t&&!r}var t=this.document&&function(){var e=document.createElement("div");return e.innerHTML="<div></div>",e.firstChild.innerHTML="<script></script>",""===e.firstChild.innerHTML}(),r=this.document&&function(){var e=document.createElement("div");return e.innerHTML="Test: <script type='text/x-placeholder'></script>Value","Test:"===e.childNodes[0].nodeValue&&" Value"===e.childNodes[2].nodeValue}(),n=function(e,t){if(e.getAttribute("id")===t)return e;var r,i,s,o=e.childNodes.length;for(r=0;o>r;r++)if(i=e.childNodes[r],s=1===i.nodeType&&n(i,t))return s},i=function(e,i){t&&(i="&shy;"+i);var s=[];if(r&&(i=i.replace(/(\s+)(<script id='([^']+)')/g,function(e,t,r,n){return s.push([n,t]),r})),e.innerHTML=i,s.length>0){var o,a=s.length;for(o=0;a>o;o++){var u=n(e,s[o][0]),c=document.createTextNode(s[o][1]);u.parentNode.insertBefore(c,u)}}if(t){for(var l=e.firstChild;1===l.nodeType&&!l.nodeName;)l=l.firstChild;3===l.nodeType&&"­"===l.nodeValue.charAt(0)&&(l.nodeValue=l.nodeValue.slice(1))}},s={},o=function(e){if(void 0!==s[e])return s[e];var t=!0;if("select"===e.toLowerCase()){var r=document.createElement("select");i(r,'<option value="test">Test</option>'),t=1===r.options.length}return s[e]=t,t},a=function(e,t){var r=e.tagName;if(o(r))i(e,t);else{var n=e.outerHTML||(new XMLSerializer).serializeToString(e),s=n.match(new RegExp("<"+r+"([^>]*)>","i"))[0],a="</"+r+">",u=document.createElement("div");for(i(u,s+t+a),e=u.firstChild;e.tagName!==r;)e=e.nextSibling}return e};Ember.ViewUtils={setInnerHTML:a,isSimpleClick:e}}(),function(){Ember.get,Ember.set;var e=function(){this.seen={},this.list=[]};e.prototype={add:function(e){e in this.seen||(this.seen[e]=!0,this.list.push(e))},toDOM:function(){return this.list.join(" ")}},Ember.RenderBuffer=function(e){return new Ember._RenderBuffer(e)},Ember._RenderBuffer=function(e){this.tagNames=[e||null],this.buffer=""},Ember._RenderBuffer.prototype={_element:null,_hasElement:!0,elementClasses:null,classes:null,elementId:null,elementAttributes:null,elementProperties:null,elementTag:null,elementStyle:null,parentBuffer:null,push:function(e){return this.buffer+=e,this},addClass:function(t){return this.elementClasses=this.elementClasses||new e,this.elementClasses.add(t),this.classes=this.elementClasses.list,this},setClasses:function(e){this.classes=e},id:function(e){return this.elementId=e,this},attr:function(e,t){var r=this.elementAttributes=this.elementAttributes||{};return 1===arguments.length?r[e]:(r[e]=t,this)},removeAttr:function(e){var t=this.elementAttributes;return t&&delete t[e],this},prop:function(e,t){var r=this.elementProperties=this.elementProperties||{};
18
- return 1===arguments.length?r[e]:(r[e]=t,this)},removeProp:function(e){var t=this.elementProperties;return t&&delete t[e],this},style:function(e,t){return this.elementStyle=this.elementStyle||{},this.elementStyle[e]=t,this},begin:function(e){return this.tagNames.push(e||null),this},pushOpeningTag:function(){var e=this.currentTagName();if(e){if(this._hasElement&&!this._element&&0===this.buffer.length)return this._element=this.generateElement(),void 0;var t,r,n=this.buffer,i=this.elementId,s=this.classes,o=this.elementAttributes,a=this.elementProperties,u=this.elementStyle;if(n+="<"+e,i&&(n+=' id="'+this._escapeAttribute(i)+'"',this.elementId=null),s&&(n+=' class="'+this._escapeAttribute(s.join(" "))+'"',this.classes=null),u){n+=' style="';for(r in u)u.hasOwnProperty(r)&&(n+=r+":"+this._escapeAttribute(u[r])+";");n+='"',this.elementStyle=null}if(o){for(t in o)o.hasOwnProperty(t)&&(n+=" "+t+'="'+this._escapeAttribute(o[t])+'"');this.elementAttributes=null}if(a){for(r in a)if(a.hasOwnProperty(r)){var c=a[r];(c||"number"==typeof c)&&(n+=c===!0?" "+r+'="'+r+'"':" "+r+'="'+this._escapeAttribute(a[r])+'"')}this.elementProperties=null}n+=">",this.buffer=n}},pushClosingTag:function(){var e=this.tagNames.pop();e&&(this.buffer+="</"+e+">")},currentTagName:function(){return this.tagNames[this.tagNames.length-1]},generateElement:function(){var e,t,r=this.tagNames.pop(),n=document.createElement(r),i=Ember.$(n),s=this.elementId,o=this.classes,a=this.elementAttributes,u=this.elementProperties,c=this.elementStyle,l="";if(s&&(i.attr("id",s),this.elementId=null),o&&(i.attr("class",o.join(" ")),this.classes=null),c){for(t in c)c.hasOwnProperty(t)&&(l+=t+":"+c[t]+";");i.attr("style",l),this.elementStyle=null}if(a){for(e in a)a.hasOwnProperty(e)&&i.attr(e,a[e]);this.elementAttributes=null}if(u){for(t in u)u.hasOwnProperty(t)&&i.prop(t,u[t]);this.elementProperties=null}return n},element:function(){var e=this.innerString();return e&&(this._element=Ember.ViewUtils.setInnerHTML(this._element,e)),this._element},string:function(){if(this._hasElement&&this._element){var e=this.element(),t=e.outerHTML;return"undefined"==typeof t?Ember.$("<div/>").append(e).html():t}return this.innerString()},innerString:function(){return this.buffer},_escapeAttribute:function(e){var t={"<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#x27;","`":"&#x60;"},r=/&(?!\w+;)|[<>"'`]/g,n=/[&<>"'`]/,i=function(e){return t[e]||"&amp;"},s=e.toString();return n.test(s)?s.replace(r,i):s}}}(),function(){var e=Ember.get,t=Ember.set;Ember.String.fmt,Ember.EventDispatcher=Ember.Object.extend({events:{touchstart:"touchStart",touchmove:"touchMove",touchend:"touchEnd",touchcancel:"touchCancel",keydown:"keyDown",keyup:"keyUp",keypress:"keyPress",mousedown:"mouseDown",mouseup:"mouseUp",contextmenu:"contextMenu",click:"click",dblclick:"doubleClick",mousemove:"mouseMove",focusin:"focusIn",focusout:"focusOut",mouseenter:"mouseEnter",mouseleave:"mouseLeave",submit:"submit",input:"input",change:"change",dragstart:"dragStart",drag:"drag",dragenter:"dragEnter",dragleave:"dragLeave",dragover:"dragOver",drop:"drop",dragend:"dragEnd"},rootElement:"body",setup:function(r,n){var i,s=e(this,"events");Ember.$.extend(s,r||{}),Ember.isNone(n)||t(this,"rootElement",n),n=Ember.$(e(this,"rootElement")),n.addClass("ember-application");for(i in s)s.hasOwnProperty(i)&&this.setupHandler(n,i,s[i])},setupHandler:function(e,t,r){var n=this;e.on(t+".ember",".ember-view",function(e,t){return Ember.handleErrors(function(){var i=Ember.View.views[this.id],s=!0,o=null;return o=n._findNearestEventManager(i,r),o&&o!==t?s=n._dispatchEvent(o,e,r,i):i?s=n._bubbleEvent(i,e,r):e.stopPropagation(),s},this)}),e.on(t+".ember","[data-ember-action]",function(e){return Ember.handleErrors(function(){var t=Ember.$(e.currentTarget).attr("data-ember-action"),n=Ember.Handlebars.ActionHelper.registeredActions[t];return n&&n.eventName===r?n.handler(e):void 0},this)})},_findNearestEventManager:function(t,r){for(var n=null;t&&(n=e(t,"eventManager"),!n||!n[r]);)t=e(t,"parentView");return n},_dispatchEvent:function(e,t,r,n){var i=!0,s=e[r];return"function"===Ember.typeOf(s)?(i=s.call(e,t,n),t.stopPropagation()):i=this._bubbleEvent(n,t,r),i},_bubbleEvent:function(e,t,r){return Ember.run(function(){return e.handleEvent(r,t)})},destroy:function(){var t=e(this,"rootElement");return Ember.$(t).off(".ember","**").removeClass("ember-application"),this._super()}})}(),function(){var e=Ember.run.queues,t=Ember.ArrayPolyfills.indexOf;e.splice(t.call(e,"actions")+1,0,"render","afterRender")}(),function(){var e=Ember.get,t=Ember.set;Ember.ControllerMixin.reopen({target:null,namespace:null,view:null,container:null,_childContainers:null,init:function(){this._super(),t(this,"_childContainers",{})},_modelDidChange:Ember.observer(function(){var r=e(this,"_childContainers");for(var n in r)r.hasOwnProperty(n)&&r[n].destroy();t(this,"_childContainers",{})},"model")})}(),function(){function e(){Ember.run.once(Ember.View,"notifyMutationListeners")}var t={},r=Ember.get,n=Ember.set,i=Ember.guidFor,s=Ember.EnumerableUtils.forEach,o=Ember.EnumerableUtils.addObject,a=Ember.computed(function(){var e=this._childViews,t=Ember.A(),n=this;return s(e,function(e){e.isVirtual?t.pushObjects(r(e,"childViews")):t.push(e)}),t.replace=function(e,t,r){if(n instanceof Ember.ContainerView)return n.replace(e,t,r);throw new Error("childViews is immutable")},t});Ember.TEMPLATES={},Ember.CoreView=Ember.Object.extend(Ember.Evented,{isView:!0,states:t,init:function(){this._super(),this.transitionTo("preRender")},parentView:Ember.computed(function(){var e=this._parentView;return e&&e.isVirtual?r(e,"parentView"):e}).property("_parentView"),state:null,_parentView:null,concreteView:Ember.computed(function(){return this.isVirtual?r(this,"parentView"):this}).property("parentView"),instrumentName:"core_view",instrumentDetails:function(e){e.object=this.toString()},renderToBuffer:function(e,t){var r="render."+this.instrumentName,n={};return this.instrumentDetails(n),Ember.instrument(r,n,function(){return this._renderToBuffer(e,t)},this)},_renderToBuffer:function(e){var t=this.tagName;(null===t||void 0===t)&&(t="div");var r=this.buffer=e&&e.begin(t)||Ember.RenderBuffer(t);return this.transitionTo("inBuffer",!1),this.beforeRender(r),this.render(r),this.afterRender(r),r},trigger:function(e){this._super.apply(this,arguments);var t=this[e];if(t){var r,n,i=[];for(r=1,n=arguments.length;n>r;r++)i.push(arguments[r]);return t.apply(this,i)}},has:function(e){return"function"===Ember.typeOf(this[e])||this._super(e)},destroy:function(){var e=this._parentView;if(this._super())return this.removedFromDOM||this.destroyElement(),e&&e.removeChild(this),this.transitionTo("destroying",!1),this},clearRenderedChildren:Ember.K,triggerRecursively:Ember.K,invokeRecursively:Ember.K,transitionTo:Ember.K,destroyElement:Ember.K});var u=Ember._ViewCollection=function(e){var t=this.views=e||[];this.length=t.length};u.prototype={length:0,trigger:function(e){for(var t,r=this.views,n=0,i=r.length;i>n;n++)t=r[n],t.trigger&&t.trigger(e)},triggerRecursively:function(e){for(var t=this.views,r=0,n=t.length;n>r;r++)t[r].triggerRecursively(e)},invokeRecursively:function(e){for(var t,r=this.views,n=0,i=r.length;i>n;n++)t=r[n],e(t)},transitionTo:function(e,t){for(var r=this.views,n=0,i=r.length;i>n;n++)r[n].transitionTo(e,t)},push:function(){this.length+=arguments.length;var e=this.views;return e.push.apply(e,arguments)},objectAt:function(e){return this.views[e]},forEach:function(e){var t=this.views;return s(t,e)},clear:function(){this.length=0,this.views.length=0}};var c=[];Ember.View=Ember.CoreView.extend({concatenatedProperties:["classNames","classNameBindings","attributeBindings"],isView:!0,templateName:null,layoutName:null,templates:Ember.TEMPLATES,template:Ember.computed(function(e,t){if(void 0!==t)return t;var n=r(this,"templateName"),i=this.templateForName(n,"template");return i||r(this,"defaultTemplate")}).property("templateName"),controller:Ember.computed(function(){var e=r(this,"_parentView");return e?r(e,"controller"):null}).property("_parentView"),layout:Ember.computed(function(){var e=r(this,"layoutName"),t=this.templateForName(e,"layout");return t||r(this,"defaultLayout")}).property("layoutName"),templateForName:function(e){if(e){var t=this.container||Ember.Container&&Ember.Container.defaultContainer;return t&&t.lookup("template:"+e)}},context:Ember.computed(function(e,t){return 2===arguments.length?(n(this,"_context",t),t):r(this,"_context")}).volatile(),_context:Ember.computed(function(){var e,t;return(t=r(this,"controller"))?t:(e=this._parentView,e?r(e,"_context"):null)}),_contextDidChange:Ember.observer(function(){this.rerender()},"context"),isVisible:!0,childViews:a,_childViews:c,_childViewsWillChange:Ember.beforeObserver(function(){if(this.isVirtual){var e=r(this,"parentView");e&&Ember.propertyWillChange(e,"childViews")}},"childViews"),_childViewsDidChange:Ember.observer(function(){if(this.isVirtual){var e=r(this,"parentView");e&&Ember.propertyDidChange(e,"childViews")}},"childViews"),nearestInstanceOf:function(e){for(var t=r(this,"parentView");t;){if(t instanceof e)return t;t=r(t,"parentView")}},nearestOfType:function(e){for(var t=r(this,"parentView"),n=e instanceof Ember.Mixin?function(t){return e.detect(t)}:function(t){return e.detect(t.constructor)};t;){if(n(t))return t;t=r(t,"parentView")}},nearestWithProperty:function(e){for(var t=r(this,"parentView");t;){if(e in t)return t;t=r(t,"parentView")}},nearestChildOf:function(e){for(var t=r(this,"parentView");t;){if(r(t,"parentView")instanceof e)return t;t=r(t,"parentView")}},_parentViewDidChange:Ember.observer(function(){this.isDestroying||(this.trigger("parentViewDidChange"),r(this,"parentView.controller")&&!r(this,"controller")&&this.notifyPropertyChange("controller"))},"_parentView"),_controllerDidChange:Ember.observer(function(){this.isDestroying||(this.rerender(),this.forEachChildView(function(e){e.propertyDidChange("controller")}))},"controller"),cloneKeywords:function(){var e=r(this,"templateData"),t=e?Ember.copy(e.keywords):{};return n(t,"view",r(this,"concreteView")),n(t,"_view",this),n(t,"controller",r(this,"controller")),t},render:function(e){var t=r(this,"layout")||r(this,"template");if(t){var n,i=r(this,"context"),s=this.cloneKeywords(),o={view:this,buffer:e,isRenderData:!0,keywords:s,insideGroup:r(this,"templateData.insideGroup")};n=t(i,{data:o}),void 0!==n&&e.push(n)}},rerender:function(){return this.currentState.rerender(this)},clearRenderedChildren:function(){for(var e=this.lengthBeforeRender,t=this.lengthAfterRender,r=this._childViews,n=t-1;n>=e;n--)r[n]&&r[n].destroy()},_applyClassNameBindings:function(e){var t,r,n,i=this.classNames;s(e,function(e){var s,a=Ember.View._parsePropertyPath(e),u=function(){r=this._classStringForProperty(e),t=this.$(),s&&(t.removeClass(s),i.removeObject(s)),r?(t.addClass(r),s=r):s=null};n=this._classStringForProperty(e),n&&(o(i,n),s=n),this.registerObserver(this,a.path,u),this.one("willClearRender",function(){s&&(i.removeObject(s),s=null)})},this)},_applyAttributeBindings:function(e,t){var n,i;s(t,function(t){var s=t.split(":"),o=s[0],a=s[1]||o,u=function(){i=this.$(),n=r(this,o),Ember.View.applyAttributeBindings(i,a,n)};this.registerObserver(this,o,u),n=r(this,o),Ember.View.applyAttributeBindings(e,a,n)},this)},_classStringForProperty:function(e){var t=Ember.View._parsePropertyPath(e),n=t.path,i=r(this,n);return void 0===i&&Ember.isGlobalPath(n)&&(i=r(Ember.lookup,n)),Ember.View._classStringForValue(n,i,t.className,t.falsyClassName)},element:Ember.computed(function(e,t){return void 0!==t?this.currentState.setElement(this,t):this.currentState.getElement(this)}).property("_parentView"),$:function(e){return this.currentState.$(this,e)},mutateChildViews:function(e){for(var t,r=this._childViews,n=r.length;--n>=0;)t=r[n],e(this,t,n);return this},forEachChildView:function(e){var t=this._childViews;if(!t)return this;var r,n,i=t.length;for(n=0;i>n;n++)r=t[n],e(r);return this},appendTo:function(e){return this._insertElementLater(function(){this.$().appendTo(e)}),this},replaceIn:function(e){return this._insertElementLater(function(){Ember.$(e).empty(),this.$().appendTo(e)}),this},_insertElementLater:function(e){this._scheduledInsert=Ember.run.scheduleOnce("render",this,"_insertElement",e)},_insertElement:function(e){this._scheduledInsert=null,this.currentState.insertElement(this,e)},append:function(){return this.appendTo(document.body)},remove:function(){this.removedFromDOM||this.destroyElement(),this.invokeRecursively(function(e){e.clearRenderedChildren&&e.clearRenderedChildren()})},elementId:null,findElementInParentElement:function(e){var t="#"+this.elementId;return Ember.$(t)[0]||Ember.$(t,e)[0]},createElement:function(){if(r(this,"element"))return this;var e=this.renderToBuffer();return n(this,"element",e.element()),this},willInsertElement:Ember.K,didInsertElement:Ember.K,willClearRender:Ember.K,invokeRecursively:function(e,t){for(var r,n,i=t===!1?this._childViews:[this];i.length;){r=i.slice(),i=[];for(var s=0,o=r.length;o>s;s++)n=r[s],e(n),n._childViews&&i.push.apply(i,n._childViews)}},triggerRecursively:function(e){for(var t,r,n=[this];n.length;){t=n.slice(),n=[];for(var i=0,s=t.length;s>i;i++)r=t[i],r.trigger&&r.trigger(e),r._childViews&&n.push.apply(n,r._childViews)}},viewHierarchyCollection:function(){for(var e,t=new u([this]),r=0;r<t.length;r++)e=t.objectAt(r),e._childViews&&t.push.apply(t,e._childViews);return t},destroyElement:function(){return this.currentState.destroyElement(this)},willDestroyElement:function(){},_notifyWillDestroyElement:function(){var e=this.viewHierarchyCollection();return e.trigger("willClearRender"),e.trigger("willDestroyElement"),e},_elementWillChange:Ember.beforeObserver(function(){this.forEachChildView(function(e){Ember.propertyWillChange(e,"element")})},"element"),_elementDidChange:Ember.observer(function(){this.forEachChildView(function(e){Ember.propertyDidChange(e,"element")})},"element"),parentViewDidChange:Ember.K,instrumentName:"view",instrumentDetails:function(e){e.template=r(this,"templateName"),this._super(e)},_renderToBuffer:function(e,t){this.lengthBeforeRender=this._childViews.length;var r=this._super(e,t);return this.lengthAfterRender=this._childViews.length,r},renderToBufferIfNeeded:function(e){return this.currentState.renderToBufferIfNeeded(this,e)},beforeRender:function(e){this.applyAttributesToBuffer(e),e.pushOpeningTag()},afterRender:function(e){e.pushClosingTag()},applyAttributesToBuffer:function(e){var t=r(this,"classNameBindings");t.length&&this._applyClassNameBindings(t);var n=r(this,"attributeBindings");n.length&&this._applyAttributeBindings(e,n),e.setClasses(this.classNames),e.id(this.elementId);var i=r(this,"ariaRole");i&&e.attr("role",i),r(this,"isVisible")===!1&&e.style("display","none")},tagName:null,ariaRole:null,classNames:["ember-view"],classNameBindings:c,attributeBindings:c,init:function(){this.elementId=this.elementId||i(this),this._super(),this._childViews=this._childViews.slice(),this.classNameBindings=Ember.A(this.classNameBindings.slice()),this.classNames=Ember.A(this.classNames.slice());var e=r(this,"viewController");e&&(e=r(e),e&&n(e,"view",this))},appendChild:function(e,t){return this.currentState.appendChild(this,e,t)},removeChild:function(e){if(!this.isDestroying){n(e,"_parentView",null);var t=this._childViews;return Ember.EnumerableUtils.removeObject(t,e),this.propertyDidChange("childViews"),this}},removeAllChildren:function(){return this.mutateChildViews(function(e,t){e.removeChild(t)})},destroyAllChildren:function(){return this.mutateChildViews(function(e,t){t.destroy()})},removeFromParent:function(){var e=this._parentView;return this.remove(),e&&e.removeChild(this),this},destroy:function(){var e,t,n=this._childViews,i=r(this,"parentView"),s=this.viewName;if(this._super()){for(e=n.length,t=e-1;t>=0;t--)n[t].removedFromDOM=!0;for(s&&i&&i.set(s,null),e=n.length,t=e-1;t>=0;t--)n[t].destroy();return this}},createChildView:function(e,t){return e.isView&&e._parentView===this&&e.container===this.container?e:(t=t||{},t._parentView=this,t.container=this.container,Ember.CoreView.detect(e)?(t.templateData=t.templateData||r(this,"templateData"),e=e.create(t),e.viewName&&n(r(this,"concreteView"),e.viewName,e)):(Ember.setProperties(e,t),r(e,"templateData")||n(e,"templateData",r(this,"templateData"))),e)},becameVisible:Ember.K,becameHidden:Ember.K,_isVisibleDidChange:Ember.observer(function(){var e=this.$();if(e){var t=r(this,"isVisible");e.toggle(t),this._isAncestorHidden()||(t?this._notifyBecameVisible():this._notifyBecameHidden())}},"isVisible"),_notifyBecameVisible:function(){this.trigger("becameVisible"),this.forEachChildView(function(e){var t=r(e,"isVisible");(t||null===t)&&e._notifyBecameVisible()})},_notifyBecameHidden:function(){this.trigger("becameHidden"),this.forEachChildView(function(e){var t=r(e,"isVisible");(t||null===t)&&e._notifyBecameHidden()})},_isAncestorHidden:function(){for(var e=r(this,"parentView");e;){if(r(e,"isVisible")===!1)return!0;e=r(e,"parentView")}return!1},clearBuffer:function(){this.invokeRecursively(function(e){e.buffer=null})},transitionTo:function(e,t){var r=this.currentState,n=this.currentState=this.states[e];this.state=e,r&&r.exit&&r.exit(this),n.enter&&n.enter(this),t!==!1&&this.forEachChildView(function(t){t.transitionTo(e)})},handleEvent:function(e,t){return this.currentState.handleEvent(this,e,t)},registerObserver:function(e,t,r,n){n||"function"!=typeof r||(n=r,r=null);var i=this,s=function(){i.currentState.invokeObserver(this,n)},o=function(){Ember.run.scheduleOnce("render",this,s)};Ember.addObserver(e,t,r,o),this.one("willClearRender",function(){Ember.removeObserver(e,t,r,o)})}});var l={prepend:function(t,r){t.$().prepend(r),e()},after:function(t,r){t.$().after(r),e()},html:function(t,r){t.$().html(r),e()},replace:function(t){var i=r(t,"element");n(t,"element",null),t._insertElementLater(function(){Ember.$(i).replaceWith(r(t,"element")),e()})},remove:function(t){t.$().remove(),e()},empty:function(t){t.$().empty(),e()}};Ember.View.reopen({domManager:l}),Ember.View.reopenClass({_parsePropertyPath:function(e){var t,r,n=e.split(":"),i=n[0],s="";return n.length>1&&(t=n[1],3===n.length&&(r=n[2]),s=":"+t,r&&(s+=":"+r)),{path:i,classNames:s,className:""===t?void 0:t,falsyClassName:r}},_classStringForValue:function(e,t,r,n){if(r||n)return r&&t?r:n&&!t?n:null;if(t===!0){var i=e.split(".");return Ember.String.dasherize(i[i.length-1])}return t!==!1&&null!=t?t:null}});var h=Ember.Object.extend(Ember.Evented).create();Ember.View.addMutationListener=function(e){h.on("change",e)},Ember.View.removeMutationListener=function(e){h.off("change",e)},Ember.View.notifyMutationListeners=function(){h.trigger("change")},Ember.View.views={},Ember.View.childViewsProperty=a,Ember.View.applyAttributeBindings=function(e,t,r){var n=Ember.typeOf(r);"value"===t||"string"!==n&&("number"!==n||isNaN(r))?"value"===t||"boolean"===n?(Ember.isNone(r)&&(r=""),r!==e.prop(t)&&e.prop(t,r)):r||e.removeAttr(t):r!==e.attr(t)&&e.attr(t,r)},Ember.View.states=t}(),function(){var e=(Ember.get,Ember.set);Ember.View.states._default={appendChild:function(){throw"You can't use appendChild outside of the rendering process"},$:function(){return void 0},getElement:function(){return null},handleEvent:function(){return!0},destroyElement:function(t){return e(t,"element",null),t._scheduledInsert&&(Ember.run.cancel(t._scheduledInsert),t._scheduledInsert=null),t},renderToBufferIfNeeded:function(){return!1},rerender:Ember.K,invokeObserver:Ember.K}}(),function(){var e=Ember.View.states.preRender=Ember.create(Ember.View.states._default);Ember.merge(e,{insertElement:function(e,t){e.createElement();var r=e.viewHierarchyCollection();r.trigger("willInsertElement"),t.call(e),r.transitionTo("inDOM",!1),r.trigger("didInsertElement")},renderToBufferIfNeeded:function(e,t){return e.renderToBuffer(t),!0},empty:Ember.K,setElement:function(e,t){return null!==t&&e.transitionTo("hasElement"),t}})}(),function(){Ember.get,Ember.set;var e=Ember.View.states.inBuffer=Ember.create(Ember.View.states._default);Ember.merge(e,{$:function(e){return e.rerender(),Ember.$()},rerender:function(){throw new Ember.Error("Something you did caused a view to re-render after it rendered but before it was inserted into the DOM.")},appendChild:function(e,t,r){var n=e.buffer,i=e._childViews;return t=e.createChildView(t,r),i.length||(i=e._childViews=i.slice()),i.push(t),t.renderToBuffer(n),e.propertyDidChange("childViews"),t},destroyElement:function(e){e.clearBuffer();var t=e._notifyWillDestroyElement();return t.transitionTo("preRender",!1),e},empty:function(){},renderToBufferIfNeeded:function(){return!1},insertElement:function(){throw"You can't insert an element that has already been rendered"},setElement:function(e,t){return null===t?e.transitionTo("preRender"):(e.clearBuffer(),e.transitionTo("hasElement")),t},invokeObserver:function(e,t){t.call(e)}})}(),function(){var e=Ember.get,t=Ember.set,r=Ember.View.states.hasElement=Ember.create(Ember.View.states._default);Ember.merge(r,{$:function(t,r){var n=e(t,"element");return r?Ember.$(r,n):Ember.$(n)},getElement:function(t){var r=e(t,"parentView");return r&&(r=e(r,"element")),r?t.findElementInParentElement(r):Ember.$("#"+e(t,"elementId"))[0]},setElement:function(e,t){if(null!==t)throw"You cannot set an element to a non-null value when the element is already in the DOM.";return e.transitionTo("preRender"),t},rerender:function(e){return e.triggerRecursively("willClearRender"),e.clearRenderedChildren(),e.domManager.replace(e),e},destroyElement:function(e){return e._notifyWillDestroyElement(),e.domManager.remove(e),t(e,"element",null),e._scheduledInsert&&(Ember.run.cancel(e._scheduledInsert),e._scheduledInsert=null),e},empty:function(e){var t,r,n=e._childViews;if(n)for(t=n.length,r=0;t>r;r++)n[r]._notifyWillDestroyElement();e.domManager.empty(e)},handleEvent:function(e,t,r){return e.has(t)?e.trigger(t,r):!0},invokeObserver:function(e,t){t.call(e)}});var n=Ember.View.states.inDOM=Ember.create(r);Ember.merge(n,{enter:function(e){e.isVirtual||(Ember.View.views[e.elementId]=e),e.addBeforeObserver("elementId",function(){throw new Error("Changing a view's elementId after creation is not allowed")})},exit:function(e){this.isVirtual||delete Ember.View.views[e.elementId]},insertElement:function(){throw"You can't insert an element into the DOM that has already been inserted"}})}(),function(){var e="You can't call %@ on a view being destroyed",t=Ember.String.fmt,r=Ember.View.states.destroying=Ember.create(Ember.View.states._default);Ember.merge(r,{appendChild:function(){throw t(e,["appendChild"])},rerender:function(){throw t(e,["rerender"])},destroyElement:function(){throw t(e,["destroyElement"])},empty:function(){throw t(e,["empty"])},setElement:function(){throw t(e,["set('element', ...)"])},renderToBufferIfNeeded:function(){return!1},insertElement:Ember.K})}(),function(){Ember.View.cloneStates=function(e){var t={};t._default={},t.preRender=Ember.create(t._default),t.destroying=Ember.create(t._default),t.inBuffer=Ember.create(t._default),t.hasElement=Ember.create(t._default),t.inDOM=Ember.create(t.hasElement);for(var r in e)e.hasOwnProperty(r)&&Ember.merge(t[r],e[r]);return t}}(),function(){function e(e,t,r,n){t.triggerRecursively("willInsertElement"),r?r.domManager.after(r,n.string()):e.domManager.prepend(e,n.string()),t.forEach(function(e){e.transitionTo("inDOM"),e.propertyDidChange("element"),e.triggerRecursively("didInsertElement")})}var t=Ember.View.cloneStates(Ember.View.states),r=Ember.get,n=Ember.set,i=Ember.EnumerableUtils.forEach,s=Ember._ViewCollection;Ember.ContainerView=Ember.View.extend(Ember.MutableArray,{states:t,init:function(){this._super();var e=r(this,"childViews");Ember.defineProperty(this,"childViews",Ember.View.childViewsProperty);var t=this._childViews;i(e,function(e,i){var s;"string"==typeof e?(s=r(this,e),s=this.createChildView(s),n(this,e,s)):s=this.createChildView(e),t[i]=s},this);var s=r(this,"currentView");s&&(t.length||(t=this._childViews=this._childViews.slice()),t.push(this.createChildView(s)))},replace:function(e,t,n){var i=n?r(n,"length"):0;if(this.arrayContentWillChange(e,t,i),this.childViewsWillChange(this._childViews,e,t),0===i)this._childViews.splice(e,t);else{var s=[e,t].concat(n);n.length&&!this._childViews.length&&(this._childViews=this._childViews.slice()),this._childViews.splice.apply(this._childViews,s)}return this.arrayContentDidChange(e,t,i),this.childViewsDidChange(this._childViews,e,t,i),this},objectAt:function(e){return this._childViews[e]},length:Ember.computed(function(){return this._childViews.length}),render:function(e){this.forEachChildView(function(t){t.renderToBuffer(e)})},instrumentName:"container",childViewsWillChange:function(e,t,r){if(this.propertyWillChange("childViews"),r>0){var n=e.slice(t,t+r);this.currentState.childViewsWillChange(this,e,t,r),this.initializeViews(n,null,null)}},removeChild:function(e){return this.removeObject(e),this},childViewsDidChange:function(e,t,n,i){if(i>0){var s=e.slice(t,t+i);this.initializeViews(s,this,r(this,"templateData")),this.currentState.childViewsDidChange(this,e,t,i)}this.propertyDidChange("childViews")},initializeViews:function(e,t,s){i(e,function(e){n(e,"_parentView",t),n(e,"container",t&&t.container),r(e,"templateData")||n(e,"templateData",s)})},currentView:null,_currentViewWillChange:Ember.beforeObserver(function(){var e=r(this,"currentView");e&&e.destroy()},"currentView"),_currentViewDidChange:Ember.observer(function(){var e=r(this,"currentView");e&&this.pushObject(e)},"currentView"),_ensureChildrenAreInDOM:function(){this.currentState.ensureChildrenAreInDOM(this)}}),Ember.merge(t._default,{childViewsWillChange:Ember.K,childViewsDidChange:Ember.K,ensureChildrenAreInDOM:Ember.K}),Ember.merge(t.inBuffer,{childViewsDidChange:function(){throw new Error("You cannot modify child views while in the inBuffer state")}}),Ember.merge(t.hasElement,{childViewsWillChange:function(e,t,r,n){for(var i=r;r+n>i;i++)t[i].remove()},childViewsDidChange:function(e){Ember.run.scheduleOnce("render",e,"_ensureChildrenAreInDOM")},ensureChildrenAreInDOM:function(t){var r,n,i,o,a,u=t._childViews,c=new s;for(r=0,n=u.length;n>r;r++)i=u[r],a||(a=Ember.RenderBuffer(),a._hasElement=!1),i.renderToBufferIfNeeded(a)?c.push(i):c.length?(e(t,c,o,a),a=null,o=i,c.clear()):o=i;c.length&&e(t,c,o,a)}})}(),function(){var e=Ember.get,t=Ember.set;Ember.String.fmt,Ember.CollectionView=Ember.ContainerView.extend({content:null,emptyViewClass:Ember.View,emptyView:null,itemViewClass:Ember.View,init:function(){var e=this._super();return this._contentDidChange(),e},_contentWillChange:Ember.beforeObserver(function(){var t=this.get("content");t&&t.removeArrayObserver(this);var r=t?e(t,"length"):0;this.arrayWillChange(t,0,r)},"content"),_contentDidChange:Ember.observer(function(){var t=e(this,"content");t&&t.addArrayObserver(this);var r=t?e(t,"length"):0;this.arrayDidChange(t,0,null,r)},"content"),destroy:function(){if(this._super()){var t=e(this,"content");return t&&t.removeArrayObserver(this),this._createdEmptyView&&this._createdEmptyView.destroy(),this}},arrayWillChange:function(t,r,n){var i=e(this,"emptyView");i&&i instanceof Ember.View&&i.removeFromParent();var s,o,a,u=this._childViews;a=this._childViews.length;var c=n===a;for(c&&(this.currentState.empty(this),this.invokeRecursively(function(e){e.removedFromDOM=!0},!1)),o=r+n-1;o>=r;o--)s=u[o],s.destroy()},arrayDidChange:function(r,n,i,s){var o,a,u,c,l=e(this,"itemViewClass"),h=[];if("string"==typeof l&&(l=e(l)),c=r?e(r,"length"):0)for(u=n;n+s>u;u++)a=r.objectAt(u),o=this.createChildView(l,{content:a,contentIndex:u}),h.push(o);else{var m=e(this,"emptyView");if(!m)return;var f=Ember.CoreView.detect(m);m=this.createChildView(m),h.push(m),t(this,"emptyView",m),f&&(this._createdEmptyView=m)}this.replace(n,0,h)},createChildView:function(r,n){r=this._super(r,n);var i=e(r,"tagName"),s=null===i||void 0===i?Ember.CollectionView.CONTAINER_MAP[e(this,"tagName")]:i;return t(r,"tagName",s),r}}),Ember.CollectionView.CONTAINER_MAP={ul:"li",ol:"li",table:"tr",thead:"tr",tbody:"tr",tfoot:"tr",tr:"td",select:"option"}}(),function(){Ember.Component=Ember.View.extend({init:function(){this._super(),this.set("context",this),this.set("controller",this)}})}(),function(){Ember.ViewTargetActionSupport=Ember.Mixin.create(Ember.TargetActionSupport,{target:Ember.computed.alias("controller"),actionContext:Ember.computed.alias("context")})}(),function(){var e=Ember.get,t=Ember.set;Ember.State=Ember.Object.extend(Ember.Evented,{parentState:null,start:null,name:null,path:Ember.computed(function(){var t=e(this,"parentState.path"),r=e(this,"name");return t&&(r=t+"."+r),r}),trigger:function(e){this[e]&&this[e].apply(this,[].slice.call(arguments,1)),this._super.apply(this,arguments)},init:function(){var r=e(this,"states");t(this,"childStates",Ember.A()),t(this,"eventTransitions",e(this,"eventTransitions")||{});var n,i,s;if(r)for(n in r)this.setupChild(r,n,r[n]);else{r={};for(n in this)"constructor"!==n&&(i=this[n])&&((s=i.transitionTarget)&&(this.eventTransitions[n]=s),this.setupChild(r,n,i));t(this,"states",r)}t(this,"pathsCaches",{})},setPathsCache:function(t,r,n){var i=Ember.guidFor(t.constructor),s=e(this,"pathsCaches"),o=s[i]||{};o[r]=n,s[i]=o},getPathsCache:function(t,r){var n=Ember.guidFor(t.constructor),i=e(this,"pathsCaches"),s=i[n]||{};return s[r]},setupChild:function(r,n,i){if(!i)return!1;var s;return i instanceof Ember.State?(t(i,"name",n),s=i,s.container=this.container):Ember.State.detect(i)&&(s=i.create({name:n,container:this.container})),s instanceof Ember.State?(t(s,"parentState",this),e(this,"childStates").pushObject(s),r[n]=s,s):void 0},lookupEventTransition:function(e){for(var t,r=this;r&&!t;)t=r.eventTransitions[e],r=r.get("parentState");return t},isLeaf:Ember.computed(function(){return!e(this,"childStates").length}),hasContext:!0,setup:Ember.K,enter:Ember.K,exit:Ember.K}),Ember.State.reopenClass({transitionTo:function(e){var t=function(t,r){var n=[],i=Ember.$&&Ember.$.Event;r&&i&&r instanceof i?r.hasOwnProperty("contexts")&&(n=r.contexts.slice()):n=[].slice.call(arguments,1),n.unshift(e),t.transitionTo.apply(t,n)};return t.transitionTarget=e,t}})}(),function(){var e=Ember.get,t=Ember.set,r=Ember.String.fmt,n=Ember.ArrayPolyfills.forEach,i=function(e){this.enterStates=e.enterStates.slice(),this.exitStates=e.exitStates.slice(),this.resolveState=e.resolveState,this.finalState=e.enterStates[e.enterStates.length-1]||e.resolveState};i.prototype={normalize:function(e,t){return this.matchContextsToStates(t),this.addInitialStates(),this.removeUnchangedContexts(e),this},matchContextsToStates:function(t){for(var r,n,i=this.enterStates.length-1,s=[];t.length>0;){if(i>=0)r=this.enterStates[i--];else{if(this.enterStates.length){if(r=e(this.enterStates[0],"parentState"),!r)throw"Cannot match all contexts to states"}else r=this.resolveState;this.enterStates.unshift(r),this.exitStates.unshift(r)}n=e(r,"hasContext")?t.pop():null,s.unshift(n)}this.contexts=s},addInitialStates:function(){for(var t,r=this.finalState;;){if(t=e(r,"initialState")||"start",r=e(r,"states."+t),!r)break;this.finalState=r,this.enterStates.push(r),this.contexts.push(void 0)}},removeUnchangedContexts:function(e){for(;this.enterStates.length>0&&this.enterStates[0]===this.exitStates[0];){if(this.enterStates.length===this.contexts.length){if(e.getStateMeta(this.enterStates[0],"context")!==this.contexts[0])break;this.contexts.shift()}this.resolveState=this.enterStates.shift(),this.exitStates.shift()}}};var s=function(t,n,i){var a,u,c,l=this.enableLogging,h=i?"unhandledEvent":t,m=n[h];if(a=[].slice.call(arguments,3),"function"==typeof m)return l&&(i?Ember.Logger.log(r("STATEMANAGER: Unhandled event '%@' being sent to state %@.",[t,e(n,"path")])):Ember.Logger.log(r("STATEMANAGER: Sending event '%@' to state %@.",[t,e(n,"path")]))),c=a,i&&c.unshift(t),c.unshift(this),m.apply(n,c);var f=e(n,"parentState");return f?(u=a,u.unshift(t,f,i),s.apply(this,u)):i?void 0:o.call(this,t,a,!0)},o=function(t,r,n){return r.unshift(t,e(this,"currentState"),n),s.apply(this,r)};Ember.StateManager=Ember.State.extend({init:function(){this._super(),t(this,"stateMeta",Ember.Map.create());var r=e(this,"initialState");!r&&e(this,"states.start")&&(r="start"),r&&this.transitionTo(r)},stateMetaFor:function(t){var r=e(this,"stateMeta"),n=r.get(t);return n||(n={},r.set(t,n)),n},setStateMeta:function(e,r,n){return t(this.stateMetaFor(e),r,n)},getStateMeta:function(t,r){return e(this.stateMetaFor(t),r)},currentState:null,currentPath:Ember.computed.alias("currentState.path"),transitionEvent:"setup",errorOnUnhandledEvent:!0,send:function(e){var t=[].slice.call(arguments,1);return o.call(this,e,t,!1)},unhandledEvent:function(t,r){if(e(this,"errorOnUnhandledEvent"))throw new Ember.Error(this.toString()+" could not respond to event "+r+" in state "+e(this,"currentState.path")+".")
19
- },getStateByPath:function(t,r){for(var n=r.split("."),i=t,s=0,o=n.length;o>s&&(i=e(e(i,"states"),n[s]),i);s++);return i},findStateByPath:function(t,r){for(var n;!n&&t;)n=this.getStateByPath(t,r),t=e(t,"parentState");return n},getStatesInPath:function(t,r){if(!r||""===r)return void 0;for(var n,i,s=r.split("."),o=[],a=0,u=s.length;u>a;a++){if(n=e(t,"states"),!n)return void 0;if(i=e(n,s[a]),!i)return void 0;t=i,o.push(i)}return o},goToState:function(){return this.transitionTo.apply(this,arguments)},transitionTo:function(t,r){if(!Ember.isEmpty(t)){var n=r?Array.prototype.slice.call(arguments,1):[],s=e(this,"currentState")||this,o=this.contextFreeTransition(s,t),a=new i(o).normalize(this,n);this.enterState(a),this.triggerSetupContext(a)}},contextFreeTransition:function(t,r){var n=t.getPathsCache(this,r);if(n)return n;for(var i=this.getStatesInPath(t,r),s=[],o=t;o&&!i;){if(s.unshift(o),o=e(o,"parentState"),!o&&(i=this.getStatesInPath(this,r),!i))return;i=this.getStatesInPath(o,r)}for(;i.length>0&&i[0]===s[0];)o=i.shift(),s.shift();var a={exitStates:s,enterStates:i,resolveState:o};return t.setPathsCache(this,r,a),a},triggerSetupContext:function(t){var r=t.contexts,i=t.enterStates.length-r.length,s=t.enterStates,o=e(this,"transitionEvent");n.call(s,function(e,t){e.trigger(o,this,r[t-i])},this)},getState:function(t){var r=e(this,t),n=e(this,"parentState");return r?r:n?n.getState(t):void 0},enterState:function(r){var i=this.enableLogging,s=r.exitStates.slice(0).reverse();n.call(s,function(e){e.trigger("exit",this)},this),n.call(r.enterStates,function(t){i&&Ember.Logger.log("STATEMANAGER: Entering "+e(t,"path")),t.trigger("enter",this)},this),t(this,"currentState",r.finalState)}})}(),function(){e("metamorph",[],function(){"use strict";// Copyright: ©2011 My Company Inc. All rights reserved.
20
- var e=function(){},t=0,r=this.document,n=r&&"createRange"in r&&"undefined"!=typeof Range&&Range.prototype.createContextualFragment,i=r&&function(){var e=r.createElement("div");return e.innerHTML="<div></div>",e.firstChild.innerHTML="<script></script>",""===e.firstChild.innerHTML}(),s=r&&function(){var e=r.createElement("div");return e.innerHTML="Test: <script type='text/x-placeholder'></script>Value","Test:"===e.childNodes[0].nodeValue&&" Value"===e.childNodes[2].nodeValue}(),o=function(r){var n;n=this instanceof o?this:new e,n.innerHTML=r;var i="metamorph-"+t++;return n.start=i+"-start",n.end=i+"-end",n};e.prototype=o.prototype;var a,u,c,l,h,m,f,p,d;if(l=function(){return this.startTag()+this.innerHTML+this.endTag()},p=function(){return"<script id='"+this.start+"' type='text/x-placeholder'></script>"},d=function(){return"<script id='"+this.end+"' type='text/x-placeholder'></script>"},n)a=function(e,t){var n=r.createRange(),i=r.getElementById(e.start),s=r.getElementById(e.end);return t?(n.setStartBefore(i),n.setEndAfter(s)):(n.setStartAfter(i),n.setEndBefore(s)),n},u=function(e,t){var r=a(this,t);r.deleteContents();var n=r.createContextualFragment(e);r.insertNode(n)},c=function(){var e=a(this,!0);e.deleteContents()},h=function(e){var t=r.createRange();t.setStart(e),t.collapse(!1);var n=t.createContextualFragment(this.outerHTML());e.appendChild(n)},m=function(e){var t=r.createRange(),n=r.getElementById(this.end);t.setStartAfter(n),t.setEndAfter(n);var i=t.createContextualFragment(e);t.insertNode(i)},f=function(e){var t=r.createRange(),n=r.getElementById(this.start);t.setStartAfter(n),t.setEndAfter(n);var i=t.createContextualFragment(e);t.insertNode(i)};else{var b={select:[1,"<select multiple='multiple'>","</select>"],fieldset:[1,"<fieldset>","</fieldset>"],table:[1,"<table>","</table>"],tbody:[2,"<table><tbody>","</tbody></table>"],tr:[3,"<table><tbody><tr>","</tr></tbody></table>"],colgroup:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],map:[1,"<map>","</map>"],_default:[0,"",""]},E=function(e,t){if(e.getAttribute("id")===t)return e;var r,n,i,s=e.childNodes.length;for(r=0;s>r;r++)if(n=e.childNodes[r],i=1===n.nodeType&&E(n,t))return i},v=function(e,t){var n=[];if(s&&(t=t.replace(/(\s+)(<script id='([^']+)')/g,function(e,t,r,i){return n.push([i,t]),r})),e.innerHTML=t,n.length>0){var i,o=n.length;for(i=0;o>i;i++){var a=E(e,n[i][0]),u=r.createTextNode(n[i][1]);a.parentNode.insertBefore(u,a)}}},g=function(e,t){var n=b[e.tagName.toLowerCase()]||b._default,s=n[0],o=n[1],a=n[2];i&&(t="&shy;"+t);var u=r.createElement("div");v(u,o+t+a);for(var c=0;s>=c;c++)u=u.firstChild;if(i){for(var l=u;1===l.nodeType&&!l.nodeName;)l=l.firstChild;3===l.nodeType&&"­"===l.nodeValue.charAt(0)&&(l.nodeValue=l.nodeValue.slice(1))}return u},y=function(e){for(;""===e.parentNode.tagName;)e=e.parentNode;return e},w=function(e,t){e.parentNode!==t.parentNode&&t.parentNode.insertBefore(e,t.parentNode.firstChild)};u=function(e,t){var n,i,s,o=y(r.getElementById(this.start)),a=r.getElementById(this.end),u=a.parentNode;for(w(o,a),n=o.nextSibling;n;){if(i=n.nextSibling,s=n===a){if(!t)break;a=n.nextSibling}if(n.parentNode.removeChild(n),s)break;n=i}for(n=g(o.parentNode,e);n;)i=n.nextSibling,u.insertBefore(n,a),n=i},c=function(){var e=y(r.getElementById(this.start)),t=r.getElementById(this.end);this.html(""),e.parentNode.removeChild(e),t.parentNode.removeChild(t)},h=function(e){for(var t,r=g(e,this.outerHTML());r;)t=r.nextSibling,e.appendChild(r),r=t},m=function(e){var t,n,i=r.getElementById(this.end),s=i.nextSibling,o=i.parentNode;for(n=g(o,e);n;)t=n.nextSibling,o.insertBefore(n,s),n=t},f=function(e){var t,n,i=r.getElementById(this.start),s=i.parentNode;n=g(s,e);for(var o=i.nextSibling;n;)t=n.nextSibling,s.insertBefore(n,o),n=t}}return o.prototype.html=function(e){return this.checkRemoved(),void 0===e?this.innerHTML:(u.call(this,e),this.innerHTML=e,void 0)},o.prototype.replaceWith=function(e){this.checkRemoved(),u.call(this,e,!0)},o.prototype.remove=c,o.prototype.outerHTML=l,o.prototype.appendTo=h,o.prototype.after=m,o.prototype.prepend=f,o.prototype.startTag=p,o.prototype.endTag=d,o.prototype.isRemoved=function(){var e=r.getElementById(this.start),t=r.getElementById(this.end);return!e||!t},o.prototype.checkRemoved=function(){if(this.isRemoved())throw new Error("Cannot perform operations on a Metamorph that is not in the DOM.")},o})}(),function(){function e(e){var t=e.hash,r=e.hashTypes;for(var n in t)"ID"===r[n]&&(t[n+"Binding"]=t[n],r[n+"Binding"]="STRING",delete t[n],delete r[n])}var t=Object.create||function(e){function t(){}return t.prototype=e,new t},r=this.Handlebars||Ember.imports&&Ember.imports.Handlebars;r||"function"!=typeof require||(r=require("handlebars")),Ember.Handlebars=t(r),Ember.Handlebars.helper=function(t,r){if(Ember.Component.detect(r)){var n=r.proto();n.layoutName||n.templateName||r.reopen({layoutName:"components/"+t})}Ember.View.detect(r)?Ember.Handlebars.registerHelper(t,function(t){return e(t),Ember.Handlebars.helpers.view.call(this,r,t)}):Ember.Handlebars.registerBoundHelper.apply(null,arguments)},Ember.Handlebars.helpers=t(r.helpers),Ember.Handlebars.Compiler=function(){},r.Compiler&&(Ember.Handlebars.Compiler.prototype=t(r.Compiler.prototype)),Ember.Handlebars.Compiler.prototype.compiler=Ember.Handlebars.Compiler,Ember.Handlebars.JavaScriptCompiler=function(){},r.JavaScriptCompiler&&(Ember.Handlebars.JavaScriptCompiler.prototype=t(r.JavaScriptCompiler.prototype),Ember.Handlebars.JavaScriptCompiler.prototype.compiler=Ember.Handlebars.JavaScriptCompiler),Ember.Handlebars.JavaScriptCompiler.prototype.namespace="Ember.Handlebars",Ember.Handlebars.JavaScriptCompiler.prototype.initializeBuffer=function(){return"''"},Ember.Handlebars.JavaScriptCompiler.prototype.appendToBuffer=function(e){return"data.buffer.push("+e+");"};var n="ember"+ +new Date,i=1;Ember.Handlebars.Compiler.prototype.mustache=function(e){if(e.isHelper&&"control"===e.id.string)e.hash=e.hash||new r.AST.HashNode([]),e.hash.pairs.push(["controlID",new r.AST.StringNode(n+i++)]);else if(e.params.length||e.hash);else{var t=new r.AST.IdNode([{part:"_triageMustache"}]);e.escaped||(e.hash=e.hash||new r.AST.HashNode([]),e.hash.pairs.push(["unescaped",new r.AST.StringNode("true")])),e=new r.AST.MustacheNode([t].concat([e.id]),e.hash,!e.escaped)}return r.Compiler.prototype.mustache.call(this,e)},Ember.Handlebars.precompile=function(e){var t=r.parse(e),n={knownHelpers:{action:!0,unbound:!0,bindAttr:!0,template:!0,view:!0,_triageMustache:!0},data:!0,stringParams:!0},i=(new Ember.Handlebars.Compiler).compile(t,n);return(new Ember.Handlebars.JavaScriptCompiler).compile(i,n,void 0,!0)},r.compile&&(Ember.Handlebars.compile=function(e){var t=r.parse(e),n={data:!0,stringParams:!0},i=(new Ember.Handlebars.Compiler).compile(t,n),s=(new Ember.Handlebars.JavaScriptCompiler).compile(i,n,void 0,!0);return Ember.Handlebars.template(s)})}(),function(){function e(e,t,r,i){var s,o,a,u,c,l,h=r.length,m=i.data,f=m.view,p=i.hash,d=p.boundOptions;a=new Ember._SimpleHandlebarsView(null,null,!p.unescaped,m),a.normalizedValue=function(){var s,o=[];for(s in d)d.hasOwnProperty(s)&&(c=n(e,d[s],m),a.path=c.path,a.pathRoot=c.root,p[s]=Ember._SimpleHandlebarsView.prototype.normalizedValue.call(a));for(u=0;h>u;++u)c=r[u],a.path=c.path,a.pathRoot=c.root,o.push(Ember._SimpleHandlebarsView.prototype.normalizedValue.call(a));return o.push(i),t.apply(e,o)},f.appendChild(a),s=[];for(o in d)d.hasOwnProperty(o)&&s.push(n(e,d[o],m));for(s=s.concat(r),u=0,l=s.length;l>u;++u)c=s[u],f.registerObserver(c.root,c.path,a,a.rerender)}function t(e,t,r,n){var i,s,o,a,u=[],c=n.hash,l=c.boundOptions;for(a in l)l.hasOwnProperty(a)&&(c[a]=Ember.Handlebars.get(e,l[a],n));for(i=0,s=r.length;s>i;++i)o=r[i],u.push(Ember.Handlebars.get(e,o.path,n));return u.push(n),t.apply(e,u)}var r=Array.prototype.slice,n=Ember.Handlebars.normalizePath=function(e,t,r){var n,i,s=r&&r.keywords||{};return n=t.split(".",1)[0],s.hasOwnProperty(n)&&(e=s[n],i=!0,t=t===n?"":t.substr(n.length+1)),{root:e,path:t,isKeyword:i}},i=Ember.Handlebars.get=function(e,t,r){var i,s=r&&r.data,o=n(e,t,s);return e=o.root,t=o.path,i=Ember.get(e,t),void 0===i&&e!==Ember.lookup&&Ember.isGlobalPath(t)&&(i=Ember.get(Ember.lookup,t)),i};Ember.Handlebars.getPath=Ember.deprecateFunc("`Ember.Handlebars.getPath` has been changed to `Ember.Handlebars.get` for consistency.",Ember.Handlebars.get),Ember.Handlebars.resolveParams=function(e,t,r){for(var n,s,o=[],a=r.types,u=0,c=t.length;c>u;u++)n=t[u],s=a[u],"ID"===s?o.push(i(e,n,r)):o.push(n);return o},Ember.Handlebars.resolveHash=function(e,t,r){var n,s={},o=r.hashTypes;for(var a in t)t.hasOwnProperty(a)&&(n=o[a],s[a]="ID"===n?i(e,t[a],r):t[a]);return s},Ember.Handlebars.registerHelper("helperMissing",function(e,t){var r,n="";throw r="%@ Handlebars error: Could not find property '%@' on object %@.",t.data&&(n=t.data.view),new Ember.Error(Ember.String.fmt(r,[n,e,this]))}),Ember.Handlebars.registerBoundHelper=function(i,s){function o(){var i,o,u,c,l,h=r.call(arguments,0,-1),m=h.length,f=arguments[arguments.length-1],p=[],d=f.data,b=f.hash,E=d.view,v=f.contexts&&f.contexts[0]||this;b.boundOptions={};for(l in b)b.hasOwnProperty(l)&&Ember.IS_BINDING.test(l)&&"string"==typeof b[l]&&(b.boundOptions[l.slice(0,-7)]=b[l]);for(d.properties=[],c=0;m>c;++c)d.properties.push(h[c]),p.push(n(v,h[c],d));if(d.isUnbound)return t(this,s,p,f);if(0===a.length)return e(v,s,p,f);i=p[0],o=i.root,u=i.path;var g=new Ember._SimpleHandlebarsView(u,o,!f.hash.unescaped,f.data);g.normalizedValue=function(){var e=Ember._SimpleHandlebarsView.prototype.normalizedValue.call(g);return s.call(E,e,f)},E.appendChild(g),E.registerObserver(o,u,g,g.rerender);for(var y=0,w=a.length;w>y;y++)E.registerObserver(o,u+"."+a[y],g,g.rerender)}var a=r.call(arguments,2);o._rawFunction=s,Ember.Handlebars.registerHelper(i,o)},Ember.Handlebars.template=function(e){var t=Handlebars.template(e);return t.isTop=!0,t}}(),function(){Ember.String.htmlSafe=function(e){return new Handlebars.SafeString(e)};var e=Ember.String.htmlSafe;(Ember.EXTEND_PROTOTYPES===!0||Ember.EXTEND_PROTOTYPES.String)&&(String.prototype.htmlSafe=function(){return e(this)})}(),function(){Ember.Handlebars.resolvePaths=function(e){for(var t=[],r=e.contexts,n=e.roots,i=e.data,s=0,o=r.length;o>s;s++)t.push(Ember.Handlebars.get(n[s],r[s],{data:i}));return t}}(),function(){function e(){Ember.run.once(Ember.View,"notifyMutationListeners")}Ember.set,Ember.get;var r=t("metamorph"),n={remove:function(t){t.morph.remove(),e()},prepend:function(t,r){t.morph.prepend(r),e()},after:function(t,r){t.morph.after(r),e()},html:function(t,r){t.morph.html(r),e()},replace:function(t){var r=t.morph;t.transitionTo("preRender"),Ember.run.schedule("render",this,function(){if(!t.isDestroying){t.clearRenderedChildren();var n=t.renderToBuffer();t.invokeRecursively(function(e){e.propertyWillChange("element")}),t.triggerRecursively("willInsertElement"),r.replaceWith(n.string()),t.transitionTo("inDOM"),t.invokeRecursively(function(e){e.propertyDidChange("element")}),t.triggerRecursively("didInsertElement"),e()}})},empty:function(t){t.morph.html(""),e()}};Ember._Metamorph=Ember.Mixin.create({isVirtual:!0,tagName:"",instrumentName:"metamorph",init:function(){this._super(),this.morph=r()},beforeRender:function(e){e.push(this.morph.startTag()),e.pushOpeningTag()},afterRender:function(e){e.pushClosingTag(),e.push(this.morph.endTag())},createElement:function(){var e=this.renderToBuffer();this.outerHTML=e.string(),this.clearBuffer()},domManager:n}),Ember._MetamorphView=Ember.View.extend(Ember._Metamorph),Ember._SimpleMetamorphView=Ember.CoreView.extend(Ember._Metamorph)}(),function(){function e(e,t,r,n){this.path=e,this.pathRoot=t,this.isEscaped=r,this.templateData=n,this.morph=s(),this.state="preRender",this.updateId=null}var r=Ember.get,n=Ember.set,i=Ember.Handlebars.get,s=t("metamorph");Ember._SimpleHandlebarsView=e,e.prototype={isVirtual:!0,isView:!0,destroy:function(){this.updateId&&(Ember.run.cancel(this.updateId),this.updateId=null),this.morph=null},propertyWillChange:Ember.K,propertyDidChange:Ember.K,normalizedValue:function(){var e,t,r=this.path,n=this.pathRoot;return""===r?e=n:(t=this.templateData,e=i(n,r,{data:t})),e},renderToBuffer:function(e){var t="";t+=this.morph.startTag(),t+=this.render(),t+=this.morph.endTag(),e.push(t)},render:function(){var e=this.isEscaped,t=this.normalizedValue();return null===t||void 0===t?t="":t instanceof Handlebars.SafeString||(t=String(t)),e&&(t=Handlebars.Utils.escapeExpression(t)),t},rerender:function(){switch(this.state){case"preRender":case"destroying":break;case"inBuffer":throw new Ember.Error("Something you did tried to replace an {{expression}} before it was inserted into the DOM.");case"hasElement":case"inDOM":this.updateId=Ember.run.scheduleOnce("render",this,"update")}return this},update:function(){this.updateId=null,this.morph.html(this.render())},transitionTo:function(e){this.state=e}};var o=Ember.View.cloneStates(Ember.View.states),a=Ember.merge;a(o._default,{rerenderIfNeeded:Ember.K}),a(o.inDOM,{rerenderIfNeeded:function(e){e.normalizedValue()!==e._lastNormalizedValue&&e.rerender()}}),Ember._HandlebarsBoundView=Ember._MetamorphView.extend({instrumentName:"boundHandlebars",states:o,shouldDisplayFunc:null,preserveContext:!1,previousContext:null,displayTemplate:null,inverseTemplate:null,path:null,pathRoot:null,normalizedValue:function(){var e,t,n=r(this,"path"),s=r(this,"pathRoot"),o=r(this,"valueNormalizerFunc");return""===n?e=s:(t=r(this,"templateData"),e=i(s,n,{data:t})),o?o(e):e},rerenderIfNeeded:function(){this.currentState.rerenderIfNeeded(this)},render:function(e){var t=r(this,"isEscaped"),i=r(this,"shouldDisplayFunc"),s=r(this,"preserveContext"),o=r(this,"previousContext"),a=r(this,"inverseTemplate"),u=r(this,"displayTemplate"),c=this.normalizedValue();if(this._lastNormalizedValue=c,i(c))if(n(this,"template",u),s)n(this,"_context",o);else{if(!u)return null===c||void 0===c?c="":c instanceof Handlebars.SafeString||(c=String(c)),t&&(c=Handlebars.Utils.escapeExpression(c)),e.push(c),void 0;n(this,"_context",c)}else a?(n(this,"template",a),s?n(this,"_context",o):n(this,"_context",c)):n(this,"template",function(){return""});return this._super(e)}})}(),function(){function e(e){return!Ember.isNone(e)}function t(e,t,r,n,o,a){var u,c,l,h=t.data,m=t.fn,f=t.inverse,p=h.view,d=this;if(u=s(d,e,h),"object"==typeof this){if(h.insideGroup){c=function(){Ember.run.once(p,"rerender")};var b,E,v=i(d,e,t);v=o(v),E=r?d:v,n(v)?b=m:f&&(b=f),b(E,{data:t.data})}else{var g=p.createChildView(Ember._HandlebarsBoundView,{preserveContext:r,shouldDisplayFunc:n,valueNormalizerFunc:o,displayTemplate:m,inverseTemplate:f,path:e,pathRoot:d,previousContext:d,isEscaped:!t.hash.unescaped,templateData:t.data});p.appendChild(g),c=function(){Ember.run.scheduleOnce("render",g,"rerenderIfNeeded")}}if(""!==u.path&&(p.registerObserver(u.root,u.path,c),a))for(l=0;l<a.length;l++)p.registerObserver(u.root,u.path+"."+a[l],c)}else h.buffer.push(i(d,e,t))}function r(e,t){var r,n,o=t.data,a=o.view,u=this;if(r=s(u,e,o),"object"==typeof this){if(o.insideGroup){n=function(){Ember.run.once(a,"rerender")};var c=i(u,e,t);(null===c||void 0===c)&&(c=""),o.buffer.push(c)}else{var l=new Ember._SimpleHandlebarsView(e,u,!t.hash.unescaped,t.data);l._parentView=a,a.appendChild(l),n=function(){Ember.run.scheduleOnce("render",l,"rerender")}}""!==r.path&&a.registerObserver(r.root,r.path,n)}else o.buffer.push(i(u,e,t))}var n=Ember.get;Ember.set,Ember.String.fmt;var i=Ember.Handlebars.get,s=Ember.Handlebars.normalizePath,o=Ember.ArrayPolyfills.forEach,a=Ember.Handlebars,u=a.helpers;a.registerHelper("_triageMustache",function(e,t){return u[e]?u[e].call(this,t):u.bind.apply(this,arguments)}),a.registerHelper("bind",function(n,i){var s=i.contexts&&i.contexts[0]||this;return i.fn?t.call(s,n,i,!1,e):r.call(s,n,i)}),a.registerHelper("boundIf",function(e,r){var i=r.contexts&&r.contexts[0]||this,s=function(e){var t=e&&n(e,"isTruthy");return"boolean"==typeof t?t:Ember.isArray(e)?0!==n(e,"length"):!!e};return t.call(i,e,r,!0,s,s,["isTruthy","length"])}),a.registerHelper("with",function(r,n){if(4===arguments.length){var i,o,a,c;if(n=arguments[3],i=arguments[2],o=arguments[0],Ember.isGlobalPath(o))Ember.bind(n.data.keywords,i,o);else{c=s(this,o,n.data),o=c.path,a=c.root;var l=Ember.$.expando+Ember.guidFor(a);n.data.keywords[l]=a;var h=o?l+"."+o:l;Ember.bind(n.data.keywords,i,h)}return t.call(this,o,n,!0,e)}return u.bind.call(n.contexts[0],r,n)}),a.registerHelper("if",function(e,t){return u.boundIf.call(t.contexts[0],e,t)}),a.registerHelper("unless",function(e,t){var r=t.fn,n=t.inverse;return t.fn=n,t.inverse=r,u.boundIf.call(t.contexts[0],e,t)}),a.registerHelper("bindAttr",function(e){var t=e.hash,r=e.data.view,n=[],u=this,c=++Ember.uuid,l=t["class"];if(null!=l){var h=a.bindClasses(this,l,r,c,e);n.push('class="'+Handlebars.Utils.escapeExpression(h.join(" "))+'"'),delete t["class"]}var m=Ember.keys(t);return o.call(m,function(o){var a,l=t[o];a=s(u,l,e.data);var h,m,f="this"===l?a.root:i(u,l,e),p=Ember.typeOf(f);h=function(){var t=i(u,l,e),n=r.$("[data-bindattr-"+c+"='"+c+"']");return n&&0!==n.length?(Ember.View.applyAttributeBindings(n,o,t),void 0):(Ember.removeObserver(a.root,a.path,m),void 0)},"this"===l||a.isKeyword&&""===a.path||r.registerObserver(a.root,a.path,h),"string"===p||"number"===p&&!isNaN(f)?n.push(o+'="'+Handlebars.Utils.escapeExpression(f)+'"'):f&&"boolean"===p&&n.push(o+'="'+o+'"')},this),n.push("data-bindattr-"+c+'="'+c+'"'),new a.SafeString(n.join(" "))}),a.bindClasses=function(e,t,r,n,a){var u,c,l,h=[],m=function(e,t,r){var n,s=t.path;return n="this"===s?e:""===s?!0:i(e,s,r),Ember.View._classStringForValue(s,n,t.className,t.falsyClassName)};return o.call(t.split(" "),function(t){var i,o,f,p,d=Ember.View._parsePropertyPath(t),b=d.path,E=e;""!==b&&"this"!==b&&(p=s(e,b,a.data),E=p.root,b=p.path),o=function(){u=m(e,d,a),l=n?r.$("[data-bindattr-"+n+"='"+n+"']"):r.$(),l&&0!==l.length?(i&&l.removeClass(i),u?(l.addClass(u),i=u):i=null):Ember.removeObserver(E,b,f)},""!==b&&"this"!==b&&r.registerObserver(E,b,o),c=m(e,d,a),c&&(h.push(c),i=c)}),h}}(),function(){Ember.get,Ember.set;var e=Ember.Handlebars;e.ViewHelper=Ember.Object.create({propertiesFromHTMLOptions:function(e){var t=e.hash,r=e.data,n={},i=t["class"],s=!1;t.id&&(n.elementId=t.id,s=!0),t.tag&&(n.tagName=t.tag,s=!0),i&&(i=i.split(" "),n.classNames=i,s=!0),t.classBinding&&(n.classNameBindings=t.classBinding.split(" "),s=!0),t.classNameBindings&&(void 0===n.classNameBindings&&(n.classNameBindings=[]),n.classNameBindings=n.classNameBindings.concat(t.classNameBindings.split(" ")),s=!0),t.attributeBindings&&(n.attributeBindings=null,s=!0),s&&(t=Ember.$.extend({},t),delete t.id,delete t.tag,delete t["class"],delete t.classBinding);var o;for(var a in t)t.hasOwnProperty(a)&&Ember.IS_BINDING.test(a)&&"string"==typeof t[a]&&(o=this.contextualizeBindingPath(t[a],r),o&&(t[a]=o));if(n.classNameBindings)for(var u in n.classNameBindings){var c=n.classNameBindings[u];if("string"==typeof c){var l=Ember.View._parsePropertyPath(c);o=this.contextualizeBindingPath(l.path,r),o&&(n.classNameBindings[u]=o+l.classNames)}}return Ember.$.extend(t,n)},contextualizeBindingPath:function(e,t){var r=Ember.Handlebars.normalizePath(null,e,t);return r.isKeyword?"templateData.keywords."+e:Ember.isGlobalPath(e)?null:"this"===e?"_parentView.context":"_parentView.context."+e},helper:function(t,r,n){var i,s=n.data,o=n.fn;i="string"==typeof r?e.get(t,r,n):r;var a=this.propertiesFromHTMLOptions(n,t),u=s.view;a.templateData=s;var c=i.proto?i.proto():i;o&&(a.template=o),c.controller||c.controllerBinding||a.controller||a.controllerBinding||(a._context=t),u.appendChild(i,a)}}),e.registerHelper("view",function(t,r){return t&&t.data&&t.data.isRenderData&&(r=t,t="Ember.View"),e.ViewHelper.helper(this,t,r)})}(),function(){var e=Ember.get,t=Ember.Handlebars.get;Ember.String.fmt,Ember.Handlebars.registerHelper("collection",function(r,n){r&&r.data&&r.data.isRenderData&&(n=r,r=void 0);var i=n.fn,s=n.data,o=n.inverse;n.data.view;var a;a=r?t(this,r,n):Ember.CollectionView;var u,c,l=n.hash,h={},m=l.itemViewClass,f=a.proto();delete l.itemViewClass,c=m?t(f,m,n):f.itemViewClass;for(var p in l)l.hasOwnProperty(p)&&(u=p.match(/^item(.)(.*)$/),u&&"itemController"!==p&&(h[u[1].toLowerCase()+u[2]]=l[p],delete l[p]));i&&(h.template=i,delete n.fn);var d;o&&o!==Handlebars.VM.noop?(d=e(f,"emptyViewClass"),d=d.extend({template:o,tagName:h.tagName})):l.emptyViewClass&&(d=t(this,l.emptyViewClass,n)),d&&(l.emptyView=d),l.keyword||(h._context=Ember.computed.alias("content"));var b=Ember.Handlebars.ViewHelper.propertiesFromHTMLOptions({data:s,hash:h},this);return l.itemViewClass=c.extend(b),Ember.Handlebars.helpers.view.call(this,a,n)})}(),function(){var e=Ember.Handlebars.get;Ember.Handlebars.registerHelper("unbound",function(t,r){var n,i,s,o=arguments[arguments.length-1];return arguments.length>2?(o.data.isUnbound=!0,n=Ember.Handlebars.helpers[arguments[0]]||Ember.Handlebars.helperMissing,s=n.apply(this,Array.prototype.slice.call(arguments,1)),delete o.data.isUnbound,s):(i=r.contexts&&r.contexts[0]||this,e(i,t,r))})}(),function(){var e=Ember.Handlebars.get,t=Ember.Handlebars.normalizePath;Ember.Handlebars.registerHelper("log",function(r,n){var i=n.contexts&&n.contexts[0]||this,s=t(i,r,n.data),o=s.root,a=s.path,u="this"===a?o:e(o,a,n);Ember.Logger.log(u)}),Ember.Handlebars.registerHelper("debugger",function(){})}(),function(){var e=Ember.get,t=Ember.set;Ember.Handlebars.EachView=Ember.CollectionView.extend(Ember._Metamorph,{init:function(){var r,n=e(this,"itemController");if(n){var i=Ember.ArrayController.create();t(i,"itemController",n),t(i,"container",e(this,"controller.container")),t(i,"_eachView",this),t(i,"target",e(this,"controller")),t(i,"parentController",e(this,"controller")),this.disableContentObservers(function(){t(this,"content",i),r=new Ember.Binding("content","_eachView.dataSource").oneWay(),r.connect(i)}),t(this,"_arrayController",i)}else this.disableContentObservers(function(){r=new Ember.Binding("content","dataSource").oneWay(),r.connect(this)});return this._super()},disableContentObservers:function(e){Ember.removeBeforeObserver(this,"content",null,"_contentWillChange"),Ember.removeObserver(this,"content",null,"_contentDidChange"),e.call(this),Ember.addBeforeObserver(this,"content",null,"_contentWillChange"),Ember.addObserver(this,"content",null,"_contentDidChange")},itemViewClass:Ember._MetamorphView,emptyViewClass:Ember._MetamorphView,createChildView:function(r,n){r=this._super(r,n);var i=e(this,"keyword"),s=e(r,"content");if(i){var o=e(r,"templateData");o=Ember.copy(o),o.keywords=r.cloneKeywords(),t(r,"templateData",o),o.keywords[i]=s}return s&&e(s,"isController")&&t(r,"controller",s),r},destroy:function(){if(this._super()){var t=e(this,"_arrayController");return t&&t.destroy(),this}}});var r=Ember.Handlebars.GroupedEach=function(e,t,r){var n=this,i=Ember.Handlebars.normalizePath(e,t,r.data);this.context=e,this.path=t,this.options=r,this.template=r.fn,this.containingView=r.data.view,this.normalizedRoot=i.root,this.normalizedPath=i.path,this.content=this.lookupContent(),this.addContentObservers(),this.addArrayObservers(),this.containingView.on("willClearRender",function(){n.destroy()})};r.prototype={contentWillChange:function(){this.removeArrayObservers()},contentDidChange:function(){this.content=this.lookupContent(),this.addArrayObservers(),this.rerenderContainingView()},contentArrayWillChange:Ember.K,contentArrayDidChange:function(){this.rerenderContainingView()},lookupContent:function(){return Ember.Handlebars.get(this.normalizedRoot,this.normalizedPath,this.options)},addArrayObservers:function(){this.content.addArrayObserver(this,{willChange:"contentArrayWillChange",didChange:"contentArrayDidChange"})},removeArrayObservers:function(){this.content.removeArrayObserver(this,{willChange:"contentArrayWillChange",didChange:"contentArrayDidChange"})},addContentObservers:function(){Ember.addBeforeObserver(this.normalizedRoot,this.normalizedPath,this,this.contentWillChange),Ember.addObserver(this.normalizedRoot,this.normalizedPath,this,this.contentDidChange)},removeContentObservers:function(){Ember.removeBeforeObserver(this.normalizedRoot,this.normalizedPath,this.contentWillChange),Ember.removeObserver(this.normalizedRoot,this.normalizedPath,this.contentDidChange)},render:function(){var t=this.content,r=e(t,"length"),n=this.options.data,i=this.template;n.insideEach=!0;for(var s=0;r>s;s++)i(t.objectAt(s),{data:n})},rerenderContainingView:function(){Ember.run.scheduleOnce("render",this.containingView,"rerender")},destroy:function(){this.removeContentObservers(),this.removeArrayObservers()}},Ember.Handlebars.registerHelper("each",function(e,t){if(4===arguments.length){var r=arguments[0];t=arguments[3],e=arguments[2],""===e&&(e="this"),t.hash.keyword=r}return 1===arguments.length&&(t=e,e="this"),t.hash.dataSourceBinding=e,!t.data.insideGroup||t.hash.groupedRows||t.hash.itemViewClass?Ember.Handlebars.helpers.collection.call(this,"Ember.Handlebars.EachView",t):(new Ember.Handlebars.GroupedEach(this,e,t).render(),void 0)})}(),function(){Ember.Handlebars.registerHelper("template",function(e,t){var r=t.data.view,n=r.templateForName(e);n(this,{data:t.data})})}(),function(){Ember.Handlebars.registerHelper("partial",function(e,t){var r=e.split("/"),n=r[r.length-1];r[r.length-1]="_"+n;var i=t.data.view,s=r.join("/"),o=i.templateForName(s),a=!o&&i.templateForName(e);o=o||a,o(this,{data:t.data})})}(),function(){var e=Ember.get;Ember.set,Ember.Handlebars.registerHelper("yield",function(t){for(var r,n=t.data.view;n&&!e(n,"layout");)n=e(n,"parentView");r=e(n,"template"),r&&r(this,t)})}(),function(){var e=Ember.set;Ember.get,Ember.Checkbox=Ember.View.extend({classNames:["ember-checkbox"],tagName:"input",attributeBindings:["type","checked","disabled","tabindex","name"],type:"checkbox",checked:!1,disabled:!1,init:function(){this._super(),this.on("change",this,this._updateElementValue)},_updateElementValue:function(){e(this,"checked",this.$().prop("checked"))}})}(),function(){var e=(Ember.get,Ember.set);Ember.TextSupport=Ember.Mixin.create({value:"",attributeBindings:["placeholder","disabled","maxlength","tabindex"],placeholder:null,disabled:!1,maxlength:null,insertNewline:Ember.K,cancel:Ember.K,init:function(){this._super(),this.on("focusOut",this,this._elementValueDidChange),this.on("change",this,this._elementValueDidChange),this.on("paste",this,this._elementValueDidChange),this.on("cut",this,this._elementValueDidChange),this.on("input",this,this._elementValueDidChange),this.on("keyUp",this,this.interpretKeyEvents)},interpretKeyEvents:function(e){var t=Ember.TextSupport.KEY_EVENTS,r=t[e.keyCode];return this._elementValueDidChange(),r?this[r](e):void 0},_elementValueDidChange:function(){e(this,"value",this.$().val())}}),Ember.TextSupport.KEY_EVENTS={13:"insertNewline",27:"cancel"}}(),function(){function e(e,r,n){var i=t(r,"action"),s=t(r,"onEvent");if(i&&s===e){var o=t(r,"controller"),a=t(r,"value"),u=t(r,"bubbles");o.send(i,a,r),u||n.stopPropagation()}}var t=Ember.get;Ember.set,Ember.TextField=Ember.View.extend(Ember.TextSupport,{classNames:["ember-text-field"],tagName:"input",attributeBindings:["type","value","size","pattern","name"],value:"",type:"text",size:null,pattern:null,action:null,onEvent:"enter",bubbles:!1,insertNewline:function(t){e("enter",this,t)},keyPress:function(t){e("keyPress",this,t)}})}(),function(){var e=Ember.get,t=Ember.set;Ember.Button=Ember.View.extend(Ember.TargetActionSupport,{classNames:["ember-button"],classNameBindings:["isActive"],tagName:"button",propagateEvents:!1,attributeBindings:["type","disabled","href","tabindex"],targetObject:Ember.computed(function(){var t=e(this,"target"),r=e(this,"context"),n=e(this,"templateData");return"string"!=typeof t?t:Ember.Handlebars.get(r,t,{data:n})}).property("target"),type:Ember.computed(function(){var e=this.tagName;return"input"===e||"button"===e?"button":void 0}),disabled:!1,href:Ember.computed(function(){return"a"===this.tagName?"#":null}),mouseDown:function(){return e(this,"disabled")||(t(this,"isActive",!0),this._mouseDown=!0,this._mouseEntered=!0),e(this,"propagateEvents")},mouseLeave:function(){this._mouseDown&&(t(this,"isActive",!1),this._mouseEntered=!1)},mouseEnter:function(){this._mouseDown&&(t(this,"isActive",!0),this._mouseEntered=!0)},mouseUp:function(){return e(this,"isActive")&&(this.triggerAction(),t(this,"isActive",!1)),this._mouseDown=!1,this._mouseEntered=!1,e(this,"propagateEvents")},keyDown:function(e){(13===e.keyCode||32===e.keyCode)&&this.mouseDown()},keyUp:function(e){(13===e.keyCode||32===e.keyCode)&&this.mouseUp()},touchStart:function(e){return this.mouseDown(e)},touchEnd:function(e){return this.mouseUp(e)},init:function(){this._super()}})}(),function(){var e=Ember.get;Ember.set,Ember.TextArea=Ember.View.extend(Ember.TextSupport,{classNames:["ember-text-area"],tagName:"textarea",attributeBindings:["rows","cols","name"],rows:null,cols:null,_updateElementValue:Ember.observer(function(){var t=e(this,"value"),r=this.$();r&&t!==r.val()&&r.val(t)},"value"),init:function(){this._super(),this.on("didInsertElement",this,this._updateElementValue)}})}(),function(){var e=Ember.set,t=Ember.get,r=Ember.EnumerableUtils.indexOf,n=Ember.EnumerableUtils.indexesOf,i=Ember.EnumerableUtils.forEach,s=Ember.EnumerableUtils.replace,o=Ember.isArray;Ember.Handlebars.compile,Ember.SelectOption=Ember.View.extend({tagName:"option",attributeBindings:["value","selected"],defaultTemplate:function(e,t){t={data:t.data,hash:{}},Ember.Handlebars.helpers.bind.call(e,"view.label",t)},init:function(){this.labelPathDidChange(),this.valuePathDidChange(),this._super()},selected:Ember.computed(function(){var e=t(this,"content"),n=t(this,"parentView.selection");return t(this,"parentView.multiple")?n&&r(n,e.valueOf())>-1:e==n}).property("content","parentView.selection"),labelPathDidChange:Ember.observer(function(){var e=t(this,"parentView.optionLabelPath");e&&Ember.defineProperty(this,"label",Ember.computed(function(){return t(this,e)}).property(e))},"parentView.optionLabelPath"),valuePathDidChange:Ember.observer(function(){var e=t(this,"parentView.optionValuePath");e&&Ember.defineProperty(this,"value",Ember.computed(function(){return t(this,e)}).property(e))},"parentView.optionValuePath")}),Ember.SelectOptgroup=Ember.CollectionView.extend({tagName:"optgroup",attributeBindings:["label"],selectionBinding:"parentView.selection",multipleBinding:"parentView.multiple",optionLabelPathBinding:"parentView.optionLabelPath",optionValuePathBinding:"parentView.optionValuePath",itemViewClassBinding:"parentView.optionView"}),Ember.Select=Ember.View.extend({tagName:"select",classNames:["ember-select"],defaultTemplate:Ember.Handlebars.template(function(e,t,r,n,i){function s(e,t){var n,i,s="";return t.buffer.push('<option value="">'),n={},i={},t.buffer.push(p(r._triageMustache.call(e,"view.prompt",{hash:{},contexts:[e],types:["ID"],hashContexts:i,hashTypes:n,data:t}))),t.buffer.push("</option>"),s}function o(e,t){var n,i,s;i={},s={},n=r.each.call(e,"view.groupedContent",{hash:{},inverse:d.noop,fn:d.program(4,a,t),contexts:[e],types:["ID"],hashContexts:s,hashTypes:i,data:t}),n||0===n?t.buffer.push(n):t.buffer.push("")}function a(e,t){var n,i;n={contentBinding:e,labelBinding:e},i={contentBinding:"ID",labelBinding:"ID"},t.buffer.push(p(r.view.call(e,"view.groupView",{hash:{contentBinding:"content",labelBinding:"label"},contexts:[e],types:["ID"],hashContexts:n,hashTypes:i,data:t})))}function u(e,t){var n,i,s;i={},s={},n=r.each.call(e,"view.content",{hash:{},inverse:d.noop,fn:d.program(7,c,t),contexts:[e],types:["ID"],hashContexts:s,hashTypes:i,data:t}),n||0===n?t.buffer.push(n):t.buffer.push("")}function c(e,t){var n,i;n={contentBinding:e},i={contentBinding:"STRING"},t.buffer.push(p(r.view.call(e,"view.optionView",{hash:{contentBinding:"this"},contexts:[e],types:["ID"],hashContexts:n,hashTypes:i,data:t})))}this.compilerInfo=[4,">= 1.0.0"],r=this.merge(r,Ember.Handlebars.helpers),i=i||{};var l,h,m,f="",p=this.escapeExpression,d=this;return h={},m={},l=r["if"].call(t,"view.prompt",{hash:{},inverse:d.noop,fn:d.program(1,s,i),contexts:[t],types:["ID"],hashContexts:m,hashTypes:h,data:i}),(l||0===l)&&i.buffer.push(l),h={},m={},l=r["if"].call(t,"view.optionGroupPath",{hash:{},inverse:d.program(6,u,i),fn:d.program(3,o,i),contexts:[t],types:["ID"],hashContexts:m,hashTypes:h,data:i}),(l||0===l)&&i.buffer.push(l),f}),attributeBindings:["multiple","disabled","tabindex","name"],multiple:!1,disabled:!1,content:null,selection:null,value:Ember.computed(function(e,r){if(2===arguments.length)return r;var n=t(this,"optionValuePath").replace(/^content\.?/,"");return n?t(this,"selection."+n):t(this,"selection")
21
- }).property("selection"),prompt:null,optionLabelPath:"content",optionValuePath:"content",optionGroupPath:null,groupView:Ember.SelectOptgroup,groupedContent:Ember.computed(function(){var e=t(this,"optionGroupPath"),r=Ember.A();return i(t(this,"content"),function(n){var i=t(n,e);t(r,"lastObject.label")!==i&&r.pushObject({label:i,content:Ember.A()}),t(r,"lastObject.content").push(n)}),r}).property("optionGroupPath","content.@each"),optionView:Ember.SelectOption,_change:function(){t(this,"multiple")?this._changeMultiple():this._changeSingle()},selectionDidChange:Ember.observer(function(){var r=t(this,"selection");if(t(this,"multiple")){if(!o(r))return e(this,"selection",Ember.A([r])),void 0;this._selectionDidChangeMultiple()}else this._selectionDidChangeSingle()},"selection.@each"),valueDidChange:Ember.observer(function(){var e,r=t(this,"content"),n=t(this,"value"),i=t(this,"optionValuePath").replace(/^content\.?/,""),s=i?t(this,"selection."+i):t(this,"selection");n!==s&&(e=r?r.find(function(e){return n===(i?t(e,i):e)}):null,this.set("selection",e))},"value"),_triggerChange:function(){var e=t(this,"selection"),r=t(this,"value");Ember.isNone(e)||this.selectionDidChange(),Ember.isNone(r)||this.valueDidChange(),this._change()},_changeSingle:function(){var r=this.$()[0].selectedIndex,n=t(this,"content"),i=t(this,"prompt");if(n&&t(n,"length")){if(i&&0===r)return e(this,"selection",null),void 0;i&&(r-=1),e(this,"selection",n.objectAt(r))}},_changeMultiple:function(){var r=this.$("option:selected"),n=t(this,"prompt"),i=n?1:0,a=t(this,"content"),u=t(this,"selection");if(a&&r){var c=r.map(function(){return this.index-i}).toArray(),l=a.objectsAt(c);o(u)?s(u,0,t(u,"length"),l):e(this,"selection",l)}},_selectionDidChangeSingle:function(){var e=this.get("element");if(e){var n=t(this,"content"),i=t(this,"selection"),s=n?r(n,i):-1,o=t(this,"prompt");o&&(s+=1),e&&(e.selectedIndex=s)}},_selectionDidChangeMultiple:function(){var e,i=t(this,"content"),s=t(this,"selection"),o=i?n(i,s):[-1],a=t(this,"prompt"),u=a?1:0,c=this.$("option");c&&c.each(function(){e=this.index>-1?this.index-u:-1,this.selected=r(o,e)>-1})},init:function(){this._super(),this.on("didInsertElement",this,this._triggerChange),this.on("change",this,this._change)}})}(),function(){function e(e,t){for(var r in e)"ID"===t[r]&&(e[r+"Binding"]=e[r],delete e[r])}Ember.Handlebars.registerHelper("input",function(t){var r=t.hash,n=t.hashTypes,i=r.type,s=r.on;return delete r.type,delete r.on,e(r,n),"checkbox"===i?Ember.Handlebars.helpers.view.call(this,Ember.Checkbox,t):(r.type=i,r.onEvent=s||"enter",Ember.Handlebars.helpers.view.call(this,Ember.TextField,t))}),Ember.Handlebars.registerHelper("textarea",function(t){var r=t.hash,n=t.hashTypes;return e(r,n),Ember.Handlebars.helpers.view.call(this,Ember.TextArea,t)})}(),function(){function e(){Ember.Handlebars.bootstrap(Ember.$(document))}function t(e){var t,n=Ember.TEMPLATES;if(n)for(var i in n)(t=i.match(/^components\/(.*)$/))&&r(e,t[1])}function r(e,t){var r=t.replace(/-/g,"_"),n=e.lookupFactory("component:"+r)||e.lookupFactory("component:"+t),i=n||Ember.Component.extend();i.reopen({layoutName:"components/"+t}),Ember.Handlebars.helper(t,i)}Ember.Handlebars.bootstrap=function(e){var t='script[type="text/x-handlebars"], script[type="text/x-raw-handlebars"]';Ember.$(t,e).each(function(){var e=Ember.$(this),t="text/x-raw-handlebars"===e.attr("type")?Ember.$.proxy(Handlebars.compile,Handlebars):Ember.$.proxy(Ember.Handlebars.compile,Ember.Handlebars),r=e.attr("data-template-name")||e.attr("id")||"application",n=t(e.html());Ember.TEMPLATES[r]=n,e.remove()})},Ember.onLoad("Ember.Application",function(r){r.initializer?(r.initializer({name:"domTemplates",initialize:e}),r.initializer({name:"registerComponents",after:"domTemplates",initialize:t})):Ember.onLoad("application",e)})}(),function(){Ember.runLoadHooks("Ember.Handlebars",Ember.Handlebars)}(),function(){var e=Ember.get,t=Ember.set;Ember._PromiseChain=Ember.Object.extend({promises:null,failureCallback:Ember.K,successCallback:Ember.K,abortCallback:Ember.K,promiseSuccessCallback:Ember.K,runNextPromise:function(){if(!e(this,"isDestroyed")){var t=e(this,"promises").shiftObject();if(t){var r=e(t,"promise")||t,n=this,i=function(){n.promiseSuccessCallback.call(this,t,arguments),n.runNextPromise()},s=e(n,"failureCallback");r.then(i,s)}else this.successCallback()}},start:function(){return this.runNextPromise(),this},abort:function(){this.abortCallback(),this.destroy()},init:function(){t(this,"promises",Ember.A(e(this,"promises"))),this._super()}})}(),function(){function e(t,r,n,i){var s,o=t.name,a=t.incoming,u=t.incomingNames,c=u.length;if(n||(n={}),i||(i=[]),!n.hasOwnProperty(o)){for(i.push(o),n[o]=!0,s=0;c>s;s++)e(a[u[s]],r,n,i);r(t,i),i.pop()}}function t(){this.names=[],this.vertices={}}t.prototype.add=function(e){if(e){if(this.vertices.hasOwnProperty(e))return this.vertices[e];var t={name:e,incoming:{},incomingNames:[],hasOutgoing:!1,value:null};return this.vertices[e]=t,this.names.push(e),t}},t.prototype.map=function(e,t){this.add(e).value=t},t.prototype.addEdge=function(t,r){function n(e,t){if(e.name===r)throw new Error("cycle detected: "+r+" <- "+t.join(" <- "))}if(t&&r&&t!==r){var i=this.add(t),s=this.add(r);s.incoming.hasOwnProperty(t)||(e(i,n),i.hasOutgoing=!0,s.incoming[t]=i,s.incomingNames.push(t))}},t.prototype.topsort=function(t){var r,n,i={},s=this.vertices,o=this.names,a=o.length;for(r=0;a>r;r++)n=s[o[r]],n.hasOutgoing||e(n,t,i)},t.prototype.addEdges=function(e,t,r,n){var i;if(this.map(e,t),r)if("string"==typeof r)this.addEdge(e,r);else for(i=0;i<r.length;i++)this.addEdge(e,r[i]);if(n)if("string"==typeof n)this.addEdge(n,e);else for(i=0;i<n.length;i++)this.addEdge(n[i],e)},Ember.DAG=t}(),function(){var e=Ember.get,t=Ember.set;Ember.Application=Ember.Namespace.extend({rootElement:"body",eventDispatcher:null,customEvents:null,autoinit:!Ember.testing,isInitialized:!1,init:function(){if(this.$||(this.$=Ember.$),this._super(),this.createEventDispatcher(),this._readinessDeferrals=1,this.waitForDOMContentLoaded(),this.autoinit){var e=this;this.$().ready(function(){e.isDestroyed||e.isInitialized||e.initialize()})}},createEventDispatcher:function(){var r=e(this,"rootElement"),n=Ember.EventDispatcher.create({rootElement:r});t(this,"eventDispatcher",n)},waitForDOMContentLoaded:function(){this.deferReadiness();var e=this;this.$().ready(function(){e.advanceReadiness()})},deferReadiness:function(){this._readinessDeferrals++},advanceReadiness:function(){this._readinessDeferrals--,0===this._readinessDeferrals&&Ember.run.once(this,this.didBecomeReady)},initialize:function(e){return e=this.setupRouter(e),this.runInjections(e),Ember.runLoadHooks("application",this),this.isInitialized=!0,this.advanceReadiness(),this},runInjections:function(t){var r,n,i=e(this.constructor,"injections"),s=new Ember.DAG,o=this;for(r=0;r<i.length;r++)n=i[r],s.addEdges(n.name,n.injection,n.before,n.after);s.topsort(function(e){var r=e.value,n=Ember.A(Ember.keys(o));n.forEach(function(e){r(o,t,e)})})},setupRouter:function(e){return!e&&Ember.Router.detect(this.Router)&&(e=this.Router.create(),this._createdRouter=e),e&&(t(this,"router",e),t(e,"namespace",this)),e},didBecomeReady:function(){var t,r=e(this,"eventDispatcher"),n=e(this,"customEvents");r.setup(n),this.ready(),t=e(this,"router"),this.createApplicationView(t),t&&t instanceof Ember.Router&&this.startRouting(t),Ember.BOOTED=!0},createApplicationView:function(r){var n,i,s=e(this,"rootElement"),o={},a=this.ApplicationView,u=Ember.TEMPLATES.application;(a||u)&&(r&&(n=e(r,"applicationController"),n&&(o.controller=n)),u&&(o.template=u),a||(a=Ember.View),i=a.create(o),this._createdApplicationView=i,r&&t(r,"applicationView",i),i.appendTo(s))},startRouting:function(t){var r=e(t,"location");t.route(r.getURL()),r.onUpdateURL(function(e){t.route(e)})},ready:Ember.K,willDestroy:function(){e(this,"eventDispatcher").destroy(),this._createdRouter&&this._createdRouter.destroy(),this._createdApplicationView&&this._createdApplicationView.destroy()},registerInjection:function(e){this.constructor.registerInjection(e)}}),Ember.Application.reopenClass({concatenatedProperties:["injections"],injections:Ember.A(),registerInjection:function(t){var r=e(this,"injections");r.push(t)}}),Ember.Application.registerInjection({name:"controllers",injection:function(e,t,r){if(t&&/^[A-Z].*Controller$/.test(r)){var n,i=r.charAt(0).toLowerCase()+r.substr(1),s=e[r];Ember.Object.detect(s)&&(n=e[r].create(),t.set(i,n),n.setProperties({target:t,controllers:t,namespace:e}))}}}),Ember.runLoadHooks("Ember.Application",Ember.Application)}(),function(){var e=Ember.get;Ember._ResolvedState=Ember.Object.extend({manager:null,state:null,match:null,object:Ember.computed(function(){if(this._object)return this._object;var t=e(this,"state"),r=e(this,"match"),n=e(this,"manager");return t.deserialize(n,r.hash)}),hasPromise:Ember.computed(function(){return Ember.canInvoke(e(this,"object"),"then")}).property("object"),promise:Ember.computed(function(){var t=e(this,"object");return Ember.canInvoke(t,"then")?t:{then:function(e){e(t)}}}).property("object"),transition:function(){var t=e(this,"manager"),r=e(this,"state.path"),n=e(this,"object");t.transitionTo(r,n)}})}(),function(){var e=Ember.get,t=function(e){var t=e.toString(),r=t.split("."),n=r[r.length-1];return Ember.String.underscore(n)+"_id"},r=function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e.hasOwnProperty(r)||(e[r]=t[r]))};Ember.Routable=Ember.Mixin.create({init:function(){var t;this.on("setup",this,this.stashContext),(t=e(this,"redirectsTo"))&&(this.connectOutlets=function(e){e.transitionTo(t)});var r=e(this,"route");""===r&&(r="/"),this._super()},setup:function(){return this.connectOutlets.apply(this,arguments)},stashContext:function(t,r){this.router=t;var n=this.serialize(t,r);t.setStateMeta(this,"context",r),t.setStateMeta(this,"serialized",n),e(this,"isRoutable")&&!e(t,"isRouting")&&this.updateRoute(t,e(t,"location"))},updateRoute:function(t,r){if(e(this,"isLeafRoute")){var n=this.absoluteRoute(t);r.setURL(n)}},absoluteRoute:function(t,n){var i,s,o=e(this,"parentState"),a="";s=null,n&&(n instanceof Array?n.length>0&&(s=n.shift()):s=n),e(o,"isRoutable")&&(a=o.absoluteRoute(t,n));var u=e(this,"routeMatcher"),c=t.getStateMeta(this,"serialized");return s=s||{},r(s,c),i=u&&u.generate(s),i&&(a=a+"/"+i),a},isRoutable:Ember.computed(function(){return"string"==typeof e(this,"route")}),isLeafRoute:Ember.computed(function(){return e(this,"isLeaf")?!0:!e(this,"childStates").findProperty("isRoutable")}),routeMatcher:Ember.computed(function(){var t=e(this,"route");return t?Ember._RouteMatcher.create({route:t}):void 0}),hasContext:Ember.computed(function(){var t=e(this,"routeMatcher");return t?t.identifiers.length>0:void 0}),modelClass:Ember.computed(function(){var t=e(this,"modelType");return"string"==typeof t?Ember.get(Ember.lookup,t):t}),modelClassFor:function(t){var r,n,i,s,o;if(r=e(this,"modelClass"))return r;if(t&&(n=e(this,"routeMatcher"),n&&(i=n.identifiers,2===i.length&&(s=i[1].match(/^(.*)_id$/)))))return o=Ember.String.classify(s[1]),e(t,o)},deserialize:function(r,n){var i;return(i=this.modelClassFor(e(r,"namespace")))?i.find(n[t(i)]):n},serialize:function(r,n){var i,s,o;return Ember.isEmpty(n)?"":((i=this.modelClassFor(e(r,"namespace")))&&(s=t(i),o=e(n,"id"),n={},n[s]=o),n)},resolvePath:function(t,r){if(e(this,"isLeafRoute"))return Ember.A();var n,i=e(this,"childStates");i=Ember.A(i.filterProperty("isRoutable")),i=i.sort(function(t,r){var n=e(t,"routeMatcher.identifiers.length"),i=e(r,"routeMatcher.identifiers.length"),s=e(t,"route"),o=e(r,"route");return 0===s.indexOf(o)?-1:0===o.indexOf(s)?1:n!==i?n-i:e(r,"route.length")-e(t,"route.length")});var s=i.find(function(t){var i=e(t,"routeMatcher");return(n=i.match(r))?!0:void 0}),o=Ember._ResolvedState.create({manager:t,state:s,match:n}),a=s.resolvePath(t,n.remaining);return Ember.A([o]).pushObjects(a)},routePath:function(t,r){function n(){i.forEach(function(e){e.transition()})}if(!e(this,"isLeafRoute")){var i=this.resolvePath(t,r),s=i.some(function(t){return e(t,"hasPromise")});s?(t.transitionTo("loading"),t.handleStatePromises(i,n)):n()}},unroutePath:function(t,r){var n=e(this,"parentState");if(n!==t){r=r.replace(/^(?=[^\/])/,"/");var i=this.absoluteRoute(t),s=e(this,"route");if("/"!==s){var o=r.indexOf(i),a=r.charAt(i.length);if(0===o&&("/"===a||""===a))return}t.enterState({exitStates:[this],enterStates:[],finalState:n}),t.send("unroutePath",r)}},parentTemplate:Ember.computed(function(){for(var t,r=this;r=e(r,"parentState");)if(t=e(r,"template"))return t;return"application"}),_template:Ember.computed(function(){var t=e(this,"template");if(t)return t;var r,n=this.constructor.toString();return/^[^\[].*Route$/.test(n)?(r=n.match(/([^\.]+\.)*([^\.]+)/)[2],r=r.replace(/Route$/,""),r.charAt(0).toLowerCase()+r.substr(1)):void 0}),render:function(t){t=t||{};var r=t.template||e(this,"_template"),n=t.into||e(this,"parentTemplate"),i=e(this.router,n+"Controller"),s=Ember.String.classify(r)+"View",o=e(e(this.router,"namespace"),s);o=(o||Ember.View).extend({templateName:r}),i.set("view",o.create())},connectOutlets:Ember.K,navigateAway:Ember.K})}(),function(){Ember.Route=Ember.State.extend(Ember.Routable)}(),function(){var e=function(e){return e.replace(/[\-\[\]{}()*+?.,\\\^\$|#\s]/g,"\\$&")};Ember._RouteMatcher=Ember.Object.extend({state:null,init:function(){var t,r=this.route,n=[],i=1;"/"===r.charAt(0)&&(r=this.route=r.substr(1)),t=e(r);var s=t.replace(/(:|(?:\\\*))([a-z_]+)(?=$|\/)/gi,function(e,t,r){switch(n[i++]=r,t){case":":return"([^/]+)";case"\\*":return"(.+)"}});this.identifiers=n,this.regex=new RegExp("^/?"+s)},match:function(e){var t=e.match(this.regex);if(t){for(var r=this.identifiers,n={},i=1,s=r.length;s>i;i++)n[r[i]]=t[i];return{remaining:e.substr(t[0].length),hash:r.length>0?n:null}}},generate:function(e){for(var t,r=this.identifiers,n=this.route,i=1,s=r.length;s>i;i++)t=r[i],n=n.replace(new RegExp("(:|(\\*))"+t),e[t]);return n}})}(),function(){Ember.get,Ember.set,Ember.Location={create:function(e){var t=e&&e.implementation,r=this.implementations[t];return r.create.apply(r,arguments)},registerImplementation:function(e,t){this.implementations[e]=t},implementations:{}}}(),function(){var e=Ember.get,t=Ember.set;Ember.NoneLocation=Ember.Object.extend({path:"",getURL:function(){return e(this,"path")},setURL:function(e){t(this,"path",e)},onUpdateURL:function(){},formatURL:function(e){return e}}),Ember.Location.registerImplementation("none",Ember.NoneLocation)}(),function(){var e=Ember.get,t=Ember.set;Ember.HashLocation=Ember.Object.extend({init:function(){t(this,"location",e(this,"location")||window.location)},getURL:function(){return e(this,"location").hash.substr(1)},setURL:function(r){e(this,"location").hash=r,t(this,"lastSetURL",r)},onUpdateURL:function(r){var n=this,i=Ember.guidFor(this);Ember.$(window).on("hashchange.ember-location-"+i,function(){var i=location.hash.substr(1);e(n,"lastSetURL")!==i&&(t(n,"lastSetURL",null),r(location.hash.substr(1)))})},formatURL:function(e){return"#"+e},willDestroy:function(){var e=Ember.guidFor(this);Ember.$(window).off("hashchange.ember-location-"+e)}}),Ember.Location.registerImplementation("hash",Ember.HashLocation)}(),function(){var e=Ember.get,t=Ember.set,r=!1;Ember.HistoryLocation=Ember.Object.extend({init:function(){t(this,"location",e(this,"location")||window.location),this.initState()},initState:function(){this.replaceState(e(this,"location").pathname),t(this,"history",window.history)},rootURL:"/",getURL:function(){return e(this,"location").pathname},setURL:function(e){e=this.formatURL(e),this.getState()&&this.getState().path!==e&&(r=!0,this.pushState(e))},getState:function(){return e(this,"history").state},pushState:function(e){window.history.pushState({path:e},null,e)},replaceState:function(e){window.history.replaceState({path:e},null,e)},onUpdateURL:function(e){var t=Ember.guidFor(this);Ember.$(window).on("popstate.ember-location-"+t,function(){r&&e(location.pathname)})},formatURL:function(t){var r=e(this,"rootURL");return""!==t&&(r=r.replace(/\/$/,"")),r+t},willDestroy:function(){var e=Ember.guidFor(this);Ember.$(window).off("popstate.ember-location-"+e)}}),Ember.Location.registerImplementation("history",Ember.HistoryLocation)}(),function(){var e=Ember.get,t=Ember.set;Ember.Router=Ember.StateManager.extend({initialState:"root",location:"hash",rootURL:"/",transitionTo:function(){this.abortRoutingPromises(),this._super.apply(this,arguments)},route:function(r){function n(){for(r=r.replace(e(this,"rootURL"),""),r=r.replace(/^(?=[^\/])/,"/"),this.send("navigateAway"),this.send("unroutePath",r),s=e(this,"currentState");s&&!s.get("isRoutable");)s=e(s,"parentState");var t=s?s.absoluteRoute(this):"",n=r.substr(t.length);this.send("routePath",n)}function i(){t(this,"isRouting",!1)}this.abortRoutingPromises(),t(this,"isRouting",!0);var s;for(Ember.tryFinally(n,i,this),s=e(this,"currentState");s&&!s.get("isRoutable");)s=e(s,"parentState");s&&s.updateRoute(this,e(this,"location"))},urlFor:function(t,r){var n=e(this,"currentState")||this,i=this.findStateByPath(n,t),s=e(this,"location"),o=i.absoluteRoute(this,r);return s.formatURL(o)},urlForEvent:function(t){var r,n,i=Array.prototype.slice.call(arguments,1),s=e(this,"currentState"),o=s.lookupEventTransition(t);return r=this.findStateByPath(s,o),n=this.serializeRecursively(r,i,[]),this.urlFor(o,n)},serializeRecursively:function(t,r,n){var i,s=e(t,"hasContext")?r.pop():null,o=s?t.serialize(this,s):null;return n.push(o),i=t.get("parentState"),i&&i instanceof Ember.Route?this.serializeRecursively(i,r,n):n},abortRoutingPromises:function(){this._routingPromises&&(this._routingPromises.abort(),this._routingPromises=null)},handleStatePromises:function(e,r){this.abortRoutingPromises(),this.set("isLocked",!0);var n=this;this._routingPromises=Ember._PromiseChain.create({promises:e.slice(),successCallback:function(){n.set("isLocked",!1),r()},failureCallback:function(){throw"Unable to load object"},promiseSuccessCallback:function(e,r){t(e,"object",r[0])},abortCallback:function(){n.set("isLocked",!1)}}).start()},moveStatesIntoRoot:function(){this.root=Ember.Route.extend();for(var e in this)if("constructor"!==e){var t=this[e];(t instanceof Ember.Route||Ember.Route.detect(t))&&(this.root[e]=t,delete this[e])}},init:function(){this.root||this.moveStatesIntoRoot(),this._super();var r=e(this,"location"),n=e(this,"rootURL");"string"==typeof r&&t(this,"location",Ember.Location.create({implementation:r,rootURL:n})),this.assignRouter(this,this)},assignRouter:function(e,t){e.router=t;var r=e.states;if(r)for(var n in r)r.hasOwnProperty(n)&&this.assignRouter(r[n],t)},willDestroy:function(){e(this,"location").destroy()}})}(),function(){var e=Ember.Handlebars,t=e.get,r=Ember.get,n=Array.prototype.slice,i=e.ActionHelper={registeredActions:{}};i.registerAction=function(e,t){var r=(++Ember.uuid).toString();return i.registeredActions[r]={eventName:t.eventName,handler:function(r){var n=r.shiftKey||r.metaKey||r.altKey||r.ctrlKey,i=r.which>1,s=n||i;if(!t.link||!s){r.preventDefault(),r.view=t.view,t.hasOwnProperty("context")&&(r.context=t.context),t.hasOwnProperty("contexts")&&(r.contexts=t.contexts);var o=t.target;return"function"==typeof o.send?o.send(e,r):o[e].call(o,r)}}},t.view.on("willClearRender",function(){delete i.registeredActions[r]}),r},e.registerHelper("action",function(s){var o,a,u=arguments[arguments.length-1],c=n.call(arguments,1,-1),l=u.hash,h=u.data.view,m={eventName:l.on||"click"};m.view=h=r(h,"concreteView"),l.target?o=t(this,l.target,u):(a=u.data.keywords.controller)&&(o=a),m.target=o=o||h,c.length&&(m.contexts=c=Ember.EnumerableUtils.map(c,function(e){return t(this,e,u)},this),m.context=c[0]);var f,p=[];l.href&&o.urlForEvent&&(f=o.urlForEvent.apply(o,[s].concat(c)),p.push('href="'+f+'"'),m.link=!0);var d=i.registerAction(s,m);return p.push('data-ember-action="'+d+'"'),new e.SafeString(p.join(" "))})}(),function(){Ember.onLoad("Ember.Handlebars",function(e){e.OutletView=Ember.ContainerView.extend(Ember._Metamorph),e.registerHelper("outlet",function(t,r){return t&&t.data&&t.data.isRenderData&&(r=t,t="view"),r.hash.currentViewBinding="view.context."+t,e.helpers.view.call(this,e.OutletView,r)})})}(),function(){var e=Ember.get,t=Ember.set;Ember.ControllerMixin.reopen({controllers:null,connectOutlet:function(r,n){var i,s,o,a,u;if("string"===Ember.typeOf(n)&&(i=r,r=n,n=arguments[2]),1===arguments.length?"object"===Ember.typeOf(r)&&(u=r,i=u.outletName,r=u.name,s=u.viewClass,a=u.controller,n=u.context):u={},i=i||"view",r){var c=e(this,"namespace"),l=e(this,"controllers"),h=r.charAt(0).toUpperCase()+r.substr(1)+"View";s=e(c,h),a=e(l,r+"Controller")}return a&&n&&t(a,"content",n),o=this.createOutletView(i,s),a&&t(o,"controller",a),t(this,i,o),o},connectControllers:function(){for(var r,n=e(this,"controllers"),i=Array.prototype.slice.apply(arguments),s=0,o=i.length;o>s;s++)r=i[s]+"Controller",t(this,r,e(n,r))},disconnectOutlet:function(e){e=e||"view",t(this,e,null)},createOutletView:function(e,t){return t.create()},urlForEvent:function(t,r){var n=e(this,"target");return n?n.urlForEvent(t,r):void 0}})}(),function(){var e=Ember.get,t=(Ember.set,Ember.String.fmt);Ember.View.reopen({templateForName:function(r,n){if(r){var i=e(this,"templates"),s=e(i,r);if(!s)throw new Ember.Error(t('%@ - Unable to find %@ "%@".',[this,n,r]));return s}}})}()}(),"undefined"==typeof location||"localhost"!==location.hostname&&"127.0.0.1"!==location.hostname||Ember.Logger.warn("You are running a production build of Ember on localhost and won't receive detailed error messages. If you want full error messages please use the non-minified build provided on the Ember website.");
15
+ !function(){var e,t;!function(){var r={},n={};e=function(e,t,n){r[e]={deps:t,callback:n}},t=function(e){if(n[e])return n[e];n[e]={};var i,s,o,a,u;if(i=r[e],!i)throw new Error("Module '"+e+"' not found.");s=i.deps,o=i.callback,a=[];for(var c=0,l=s.length;l>c;c++)"exports"===s[c]?a.push(u={}):a.push(t(s[c]));var h=o.apply(this,a);return n[e]=u||h}}(),function(){function e(e){var t=r.console,n="object"==typeof t?t[e]:null;return n?n.apply?function(){n.apply(t,arguments)}:function(){var e=Array.prototype.join.call(arguments,", ");n(e)}:void 0}function t(e,t){if(!e)try{throw new Error("assertion failed: "+t)}catch(r){setTimeout(function(){throw r},0)}}"undefined"==typeof Ember&&(Ember={});var r=Ember.imports=Ember.imports||this,n=Ember.exports=Ember.exports||this;Ember.lookup=Ember.lookup||this,n.Em=n.Ember=Em=Ember,Ember.isNamespace=!0,Ember.toString=function(){return"Ember"},Ember.VERSION="1.0.0-rc.6.1",Ember.ENV=Ember.ENV||("undefined"==typeof ENV?{}:ENV),Ember.config=Ember.config||{},Ember.EXTEND_PROTOTYPES=Ember.ENV.EXTEND_PROTOTYPES,"undefined"==typeof Ember.EXTEND_PROTOTYPES&&(Ember.EXTEND_PROTOTYPES=!0),Ember.LOG_STACKTRACE_ON_DEPRECATION=Ember.ENV.LOG_STACKTRACE_ON_DEPRECATION!==!1,Ember.SHIM_ES5=Ember.ENV.SHIM_ES5===!1?!1:Ember.EXTEND_PROTOTYPES,Ember.LOG_VERSION=Ember.ENV.LOG_VERSION===!1?!1:!0,Ember.K=function(){return this},"undefined"==typeof Ember.assert&&(Ember.assert=Ember.K),"undefined"==typeof Ember.warn&&(Ember.warn=Ember.K),"undefined"==typeof Ember.debug&&(Ember.debug=Ember.K),"undefined"==typeof Ember.deprecate&&(Ember.deprecate=Ember.K),"undefined"==typeof Ember.deprecateFunc&&(Ember.deprecateFunc=function(e,t){return t}),Ember.uuid=0,Ember.Logger={log:e("log")||Ember.K,warn:e("warn")||Ember.K,error:e("error")||Ember.K,info:e("info")||Ember.K,debug:e("debug")||e("info")||Ember.K,assert:e("assert")||t},Ember.onerror=null,Ember.handleErrors=function(e,t){if("function"!=typeof Ember.onerror)return e.call(t||this);try{return e.call(t||this)}catch(r){Ember.onerror(r)}},Ember.merge=function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r]);return e},Ember.isNone=function(e){return null===e||void 0===e},Ember.none=Ember.deprecateFunc("Ember.none is deprecated. Please use Ember.isNone instead.",Ember.isNone),Ember.isEmpty=function(e){return Ember.isNone(e)||0===e.length&&"function"!=typeof e||"object"==typeof e&&0===Ember.get(e,"length")},Ember.empty=Ember.deprecateFunc("Ember.empty is deprecated. Please use Ember.isEmpty instead.",Ember.isEmpty)}(),function(){var e=Ember.platform={};if(Ember.create=Object.create,Ember.create&&2!==Ember.create({a:1},{a:{value:2}}).a&&(Ember.create=null),!Ember.create||Ember.ENV.STUB_OBJECT_CREATE){var t=function(){};Ember.create=function(e,r){if(t.prototype=e,e=new t,r){t.prototype=e;for(var n in r)t.prototype[n]=r[n].value;e=new t}return t.prototype=null,e},Ember.create.isSimulated=!0}var r,n,i=Object.defineProperty;if(i)try{i({},"a",{get:function(){}})}catch(s){i=null}i&&(r=function(){var e={};return i(e,"a",{configurable:!0,enumerable:!0,get:function(){},set:function(){}}),i(e,"a",{configurable:!0,enumerable:!0,writable:!0,value:!0}),e.a===!0}(),n=function(){try{return i(document.createElement("div"),"definePropertyOnDOM",{}),!0}catch(e){}return!1}(),r?n||(i=function(e,t,r){var n;return n="object"==typeof Node?e instanceof Node:"object"==typeof e&&"number"==typeof e.nodeType&&"string"==typeof e.nodeName,n?e[t]=r.value:Object.defineProperty(e,t,r)}):i=null),e.defineProperty=i,e.hasPropertyAccessors=!0,e.defineProperty||(e.hasPropertyAccessors=!1,e.defineProperty=function(e,t,r){r.get||(e[t]=r.value)},e.defineProperty.isSimulated=!0),Ember.ENV.MANDATORY_SETTER&&!e.hasPropertyAccessors&&(Ember.ENV.MANDATORY_SETTER=!1)}(),function(){var e=function(e){return e&&Function.prototype.toString.call(e).indexOf("[native code]")>-1},t=e(Array.prototype.map)?Array.prototype.map:function(e){if(void 0===this||null===this)throw new TypeError;var t=Object(this),r=t.length>>>0;if("function"!=typeof e)throw new TypeError;for(var n=new Array(r),i=arguments[1],s=0;r>s;s++)s in t&&(n[s]=e.call(i,t[s],s,t));return n},r=e(Array.prototype.forEach)?Array.prototype.forEach:function(e){if(void 0===this||null===this)throw new TypeError;var t=Object(this),r=t.length>>>0;if("function"!=typeof e)throw new TypeError;for(var n=arguments[1],i=0;r>i;i++)i in t&&e.call(n,t[i],i,t)},n=e(Array.prototype.indexOf)?Array.prototype.indexOf:function(e,t){null===t||void 0===t?t=0:0>t&&(t=Math.max(0,this.length+t));for(var r=t,n=this.length;n>r;r++)if(this[r]===e)return r;return-1};Ember.ArrayPolyfills={map:t,forEach:r,indexOf:n},Ember.SHIM_ES5&&(Array.prototype.map||(Array.prototype.map=t),Array.prototype.forEach||(Array.prototype.forEach=r),Array.prototype.indexOf||(Array.prototype.indexOf=n))}(),function(){function e(e){this.descs={},this.watching={},this.cache={},this.source=e}function t(e,t){return!(!e||"function"!=typeof e[t])}var r=Ember.platform.defineProperty,n=Ember.create,i="__ember"+ +new Date,s=0,o=[],a={},u=Ember.ENV.MANDATORY_SETTER;Ember.GUID_KEY=i;var c={writable:!1,configurable:!1,enumerable:!1,value:null};Ember.generateGuid=function(e,t){t||(t="ember");var n=t+s++;return e&&(c.value=n,r(e,i,c)),n},Ember.guidFor=function(e){if(void 0===e)return"(undefined)";if(null===e)return"(null)";var t,n=typeof e;switch(n){case"number":return t=o[e],t||(t=o[e]="nu"+e),t;case"string":return t=a[e],t||(t=a[e]="st"+s++),t;case"boolean":return e?"(true)":"(false)";default:return e[i]?e[i]:e===Object?"(Object)":e===Array?"(Array)":(t="ember"+s++,c.value=t,r(e,i,c),t)}};var l={writable:!0,configurable:!1,enumerable:!1,value:null},h=Ember.GUID_KEY+"_meta";Ember.META_KEY=h;var m={descs:{},watching:{}};u&&(m.values={}),Ember.EMPTY_META=m,Object.freeze&&Object.freeze(m);var f=Ember.platform.defineProperty.isSimulated;f&&(e.prototype.__preventPlainObject__=!0,e.prototype.toJSON=function(){}),Ember.meta=function(t,i){var s=t[h];return i===!1?s||m:(s?s.source!==t&&(f||r(t,h,l),s=n(s),s.descs=n(s.descs),s.watching=n(s.watching),s.cache={},s.source=t,u&&(s.values=n(s.values)),t[h]=s):(f||r(t,h,l),s=new e(t),u&&(s.values={}),t[h]=s,s.descs.constructor=null),s)},Ember.getMeta=function(e,t){var r=Ember.meta(e,!1);return r[t]},Ember.setMeta=function(e,t,r){var n=Ember.meta(e,!0);return n[t]=r,r},Ember.metaPath=function(e,t,r){for(var i,s,o=Ember.meta(e,r),a=0,u=t.length;u>a;a++){if(i=t[a],s=o[i]){if(s.__ember_source__!==e){if(!r)return void 0;s=o[i]=n(s),s.__ember_source__=e}}else{if(!r)return void 0;s=o[i]={__ember_source__:e}}o=s}return s},Ember.wrap=function(e,t){function r(){}function n(){var n,i=this._super;return this._super=t||r,n=e.apply(this,arguments),this._super=i,n}return n.wrappedFunction=e,n.__ember_observes__=e.__ember_observes__,n.__ember_observesBefore__=e.__ember_observesBefore__,n},Ember.isArray=function(e){return!e||e.setInterval?!1:Array.isArray&&Array.isArray(e)?!0:Ember.Array&&Ember.Array.detect(e)?!0:void 0!==e.length&&"object"==typeof e?!0:!1},Ember.makeArray=function(e){return null===e||void 0===e?[]:Ember.isArray(e)?e:[e]},Ember.canInvoke=t,Ember.tryInvoke=function(e,r,n){return t(e,r)?e[r].apply(e,n||[]):void 0};var p=function(){var e=0;try{try{}finally{throw e++,new Error("needsFinallyFixTest")}}catch(t){}return 1!==e}();Ember.tryFinally=p?function(e,t,r){var n,i,s;r=r||this;try{n=e.call(r)}finally{try{i=t.call(r)}catch(o){s=o}}if(s)throw s;return void 0===i?n:i}:function(e,t,r){var n,i;r=r||this;try{n=e.call(r)}finally{i=t.call(r)}return void 0===i?n:i},Ember.tryCatchFinally=p?function(e,t,r,n){var i,s,o;n=n||this;try{i=e.call(n)}catch(a){i=t.call(n,a)}finally{try{s=r.call(n)}catch(u){o=u}}if(o)throw o;return void 0===s?i:s}:function(e,t,r,n){var i,s;n=n||this;try{i=e.call(n)}catch(o){i=t.call(n,o)}finally{s=r.call(n)}return void 0===s?i:s};var d={},b="Boolean Number String Function Array Date RegExp Object".split(" ");Ember.ArrayPolyfills.forEach.call(b,function(e){d["[object "+e+"]"]=e.toLowerCase()});var E=Object.prototype.toString;Ember.typeOf=function(e){var t;return t=null===e||void 0===e?String(e):d[E.call(e)]||"object","function"===t?Ember.Object&&Ember.Object.detect(e)&&(t="class"):"object"===t&&(t=e instanceof Error?"error":Ember.Object&&e instanceof Ember.Object?"instance":"object"),t}}(),function(){Ember.Instrumentation={};var e=[],t={},r=function(r){for(var n,i=[],s=0,o=e.length;o>s;s++)n=e[s],n.regex.test(r)&&i.push(n.object);return t[r]=i,i},n=function(){var e="undefined"!=typeof window?window.performance||{}:{},t=e.now||e.mozNow||e.webkitNow||e.msNow||e.oNow;return t?t.bind(e):function(){return+new Date}}();Ember.Instrumentation.instrument=function(e,i,s,o){function a(){for(p=0,d=m.length;d>p;p++)f=m[p],b[p]=f.before(e,n(),i);return s.call(o)}function u(e){i=i||{},i.exception=e}function c(){for(p=0,d=m.length;d>p;p++)f=m[p],f.after(e,n(),i,b[p]);Ember.STRUCTURED_PROFILE&&console.timeEnd(l)}var l,h,m=t[e];if(Ember.STRUCTURED_PROFILE&&(l=e+": "+i.object,console.time(l)),m||(m=r(e)),0===m.length)return h=s.call(o),Ember.STRUCTURED_PROFILE&&console.timeEnd(l),h;var f,p,d,b=[];return Ember.tryCatchFinally(a,u,c)},Ember.Instrumentation.subscribe=function(r,n){for(var i,s=r.split("."),o=[],a=0,u=s.length;u>a;a++)i=s[a],"*"===i?o.push("[^\\.]*"):o.push(i);o=o.join("\\."),o+="(\\..*)?";var c={pattern:r,regex:new RegExp("^"+o+"$"),object:n};return e.push(c),t={},c},Ember.Instrumentation.unsubscribe=function(r){for(var n,i=0,s=e.length;s>i;i++)e[i]===r&&(n=i);e.splice(n,1),t={}},Ember.Instrumentation.reset=function(){e=[],t={}},Ember.instrument=Ember.Instrumentation.instrument,Ember.subscribe=Ember.Instrumentation.subscribe}(),function(){var e,t,r,n;n=Array.prototype.concat,e=Array.prototype.map||Ember.ArrayPolyfills.map,t=Array.prototype.forEach||Ember.ArrayPolyfills.forEach,r=Array.prototype.indexOf||Ember.ArrayPolyfills.indexOf;var i=Ember.EnumerableUtils={map:function(t,r,n){return t.map?t.map.call(t,r,n):e.call(t,r,n)},forEach:function(e,r,n){return e.forEach?e.forEach.call(e,r,n):t.call(e,r,n)},indexOf:function(e,t,n){return e.indexOf?e.indexOf.call(e,t,n):r.call(e,t,n)},indexesOf:function(e,t){return void 0===t?[]:i.map(t,function(t){return i.indexOf(e,t)})},addObject:function(e,t){var r=i.indexOf(e,t);-1===r&&e.push(t)},removeObject:function(e,t){var r=i.indexOf(e,t);-1!==r&&e.splice(r,1)},replace:function(e,t,r,i){if(e.replace)return e.replace(t,r,i);var s=n.apply([t,r],i);return e.splice.apply(e,s)},intersection:function(e,t){var r=[];return i.forEach(e,function(e){i.indexOf(t,e)>=0&&r.push(e)}),r}}}(),function(){var e,t=Ember.META_KEY,r=Ember.ENV.MANDATORY_SETTER,n=/^([A-Z$]|([0-9][A-Z$])).*[\.\*]/,i=/^this[\.\*]/,s=/^([^\.\*]+)/;e=function(e,n){if(""===n)return e;if(n||"string"!=typeof e||(n=e,e=null),null===e||-1!==n.indexOf("."))return a(e,n);var i,s=e[t],o=s&&s.descs[n];return o?o.get(e,n):(i=r&&s&&s.watching[n]>0?s.values[n]:e[n],void 0!==i||"object"!=typeof e||n in e||"function"!=typeof e.unknownProperty?i:e.unknownProperty(n))},Ember.config.overrideAccessors&&(Ember.get=e,Ember.config.overrideAccessors(),e=Ember.get);var o=Ember.normalizeTuple=function(t,r){var o,a=i.test(r),u=!a&&n.test(r);if((!t||u)&&(t=Ember.lookup),a&&(r=r.slice(5)),t===Ember.lookup&&(o=r.match(s)[0],t=e(t,o),r=r.slice(o.length+1)),!r||0===r.length)throw new Error("Invalid Path");return[t,r]},a=Ember._getPath=function(t,r){var n,s,a,u,c;if(null===t&&-1===r.indexOf("."))return e(Ember.lookup,r);for(n=i.test(r),(!t||n)&&(a=o(t,r),t=a[0],r=a[1],a.length=0),s=r.split("."),c=s.length,u=0;null!=t&&c>u;u++)if(t=e(t,s[u],!0),t&&t.isDestroyed)return void 0;return t};Ember.getWithDefault=function(t,r,n){var i=e(t,r);return void 0===i?n:i},Ember.get=e,Ember.getPath=Ember.deprecateFunc("getPath is deprecated since get now supports paths",Ember.get)}(),function(){function e(e,t,r){for(var n=-1,i=0,s=e.length;s>i;i++)if(t===e[i][0]&&r===e[i][1]){n=i;break}return n}function t(e,t){var r,n=f(e,!0);return n.listeners||(n.listeners={}),n.hasOwnProperty("listeners")||(n.listeners=m(n.listeners)),r=n.listeners[t],r&&!n.listeners.hasOwnProperty(t)?r=n.listeners[t]=n.listeners[t].slice():r||(r=n.listeners[t]=[]),r}function r(t,r,n){var i=t[p],s=i&&i.listeners&&i.listeners[r];if(s)for(var o=s.length-1;o>=0;o--){var a=s[o][0],u=s[o][1],c=s[o][2],l=e(n,a,u);-1===l&&n.push([a,u,c])}}function n(t,r,n){var i=t[p],s=i&&i.listeners&&i.listeners[r],o=[];if(s){for(var a=s.length-1;a>=0;a--){var u=s[a][0],c=s[a][1],l=s[a][2],h=e(n,u,c);-1===h&&(n.push([u,c,l]),o.push([u,c,l]))}return o}}function i(r,n,i,s,o){s||"function"!=typeof i||(s=i,i=null);var a=t(r,n),u=e(a,i,s),c=0;o&&(c|=d),-1===u&&(a.push([i,s,c]),"function"==typeof r.didAddListener&&r.didAddListener(n,i,s))}function s(r,n,i,s){function o(i,s){var o=t(r,n),a=e(o,i,s);-1!==a&&(o.splice(a,1),"function"==typeof r.didRemoveListener&&r.didRemoveListener(n,i,s))}if(s||"function"!=typeof i||(s=i,i=null),s)o(i,s);else{var a=r[p],u=a&&a.listeners&&a.listeners[n];if(!u)return;for(var c=u.length-1;c>=0;c--)o(u[c][0],u[c][1])}}function o(r,n,i,s,o){function a(){return o.call(i)}function u(){c&&(c[2]&=~b)}s||"function"!=typeof i||(s=i,i=null);var c,l=t(r,n),h=e(l,i,s);return-1!==h&&(c=l[h].slice(),c[2]|=b,l[h]=c),Ember.tryFinally(a,u)}function a(r,n,i,s,o){function a(){return o.call(i)}function u(){for(m=0,f=p.length;f>m;m++)p[m][2]&=~b}s||"function"!=typeof i||(s=i,i=null);var c,l,h,m,f,p=[];for(m=0,f=n.length;f>m;m++){c=n[m],l=t(r,c);var d=e(l,i,s);-1!==d&&(h=l[d].slice(),h[2]|=b,l[d]=h,p.push(h))}return Ember.tryFinally(a,u)}function u(e){var t=e[p].listeners,r=[];if(t)for(var n in t)t[n]&&r.push(n);return r}function c(e,t,r,n){if(e!==Ember&&"function"==typeof e.sendEvent&&e.sendEvent(t,r),!n){var i=e[p];n=i&&i.listeners&&i.listeners[t]}if(n){for(var o=n.length-1;o>=0;o--){var a=n[o];if(a){var u=a[0],c=a[1],l=a[2];l&b||(l&d&&s(e,t,u,c),u||(u=e),"string"==typeof c&&(c=u[c]),r?c.apply(u,r):c.call(u))}}return!0}}function l(e,t){var r=e[p],n=r&&r.listeners&&r.listeners[t];return!(!n||!n.length)}function h(e,t){var r=[],n=e[p],i=n&&n.listeners&&n.listeners[t];if(!i)return r;for(var s=0,o=i.length;o>s;s++){var a=i[s][0],u=i[s][1];r.push([a,u])}return r}var m=Ember.create,f=Ember.meta,p=Ember.META_KEY,d=1,b=2;Ember.addListener=i,Ember.removeListener=s,Ember._suspendListener=o,Ember._suspendListeners=a,Ember.sendEvent=c,Ember.hasListeners=l,Ember.watchedEvents=u,Ember.listenersFor=h,Ember.listenersDiff=n,Ember.listenersUnion=r}(),function(){var e=Ember.guidFor,t=Ember.sendEvent,r=Ember._ObserverSet=function(){this.clear()};r.prototype.add=function(t,r,n){var i,s=this.observerSet,o=this.observers,a=e(t),u=s[a];return u||(s[a]=u={}),i=u[r],void 0===i&&(i=o.push({sender:t,keyName:r,eventName:n,listeners:[]})-1,u[r]=i),o[i].listeners},r.prototype.flush=function(){var e,r,n,i,s=this.observers;for(this.clear(),e=0,r=s.length;r>e;++e)n=s[e],i=n.sender,i.isDestroying||i.isDestroyed||t(i,n.eventName,[i,n.keyName],n.listeners)},r.prototype.clear=function(){this.observerSet={},this.observers=[]}}(),function(){function e(e,t,i){if(!e.isDestroying){var s=n,o=!s;o&&(s=n={}),r(d,e,t,s,i),o&&(n=null)}}function t(e,t,n){if(!e.isDestroying){var s=i,o=!s;o&&(s=i={}),r(b,e,t,s,n),o&&(i=null)}}function r(e,t,r,n,i){var s=o(t);if(n[s]||(n[s]={}),!n[s][r]){n[s][r]=!0;var a=i.deps;if(a=a&&a[r])for(var u in a){var c=i.descs[u];c&&c._suspended===t||e(t,u)}}}var n,i,s=Ember.meta,o=Ember.guidFor,a=Ember.tryFinally,u=Ember.sendEvent,c=Ember.listenersUnion,l=Ember.listenersDiff,h=Ember._ObserverSet,m=new h,f=new h,p=0,d=Ember.propertyWillChange=function(t,r){var n=s(t,!1),i=n.watching[r]>0||"length"===r,o=n.proto,a=n.descs[r];i&&o!==t&&(a&&a.willChange&&a.willChange(t,r),e(t,r,n),E(t,r,n),w(t,r))},b=Ember.propertyDidChange=function(e,r){var n=s(e,!1),i=n.watching[r]>0||"length"===r,o=n.proto,a=n.descs[r];o!==e&&(a&&a.didChange&&a.didChange(e,r),(i||"length"===r)&&(t(e,r,n),v(e,r,n),_(e,r)))},E=function(e,t,r,n){if(r.hasOwnProperty("chainWatchers")){var i=r.chainWatchers;if(i=i[t])for(var s=0,o=i.length;o>s;s++)i[s].willChange(n)}},v=function(e,t,r,n){if(r.hasOwnProperty("chainWatchers")){var i=r.chainWatchers;if(i=i[t])for(var s=i.length-1;s>=0;s--)i[s].didChange(n)}};Ember.overrideChains=function(e,t,r){v(e,t,r,!0)};var g=Ember.beginPropertyChanges=function(){p++},y=Ember.endPropertyChanges=function(){p--,0>=p&&(m.clear(),f.flush())};Ember.changeProperties=function(e,t){g(),a(e,y,t)};var w=function(e,t){if(!e.isDestroying){var r,n,i=t+":before";p?(r=m.add(e,t,i),n=l(e,i,r),u(e,i,[e,t],n)):u(e,i,[e,t])}},_=function(e,t){if(!e.isDestroying){var r,n=t+":change";p?(r=f.add(e,t,n),c(e,n,r)):u(e,n,[e,t])}}}(),function(){function e(e,t,r,s){var o;if(o=t.slice(t.lastIndexOf(".")+1),t=t.slice(0,t.length-(o.length+1)),"this"!==t&&(e=n(e,t)),!o||0===o.length)throw new Error("You passed an empty path");if(!e){if(s)return;throw new Error("Object in path "+t+" could not be found or was destroyed.")}return i(e,o,r)}var t=Ember.META_KEY,r=Ember.ENV.MANDATORY_SETTER,n=Ember._getPath,i=function(n,i,s,o){if("string"==typeof n&&(s=i,i=n,n=null),!n||-1!==i.indexOf("."))return e(n,i,s,o);var a,u,c=n[t],l=c&&c.descs[i];return l?l.set(n,i,s):(a="object"==typeof n&&!(i in n),a&&"function"==typeof n.setUnknownProperty?n.setUnknownProperty(i,s):c&&c.watching[i]>0?(u=r?c.values[i]:n[i],s!==u&&(Ember.propertyWillChange(n,i),r?void 0!==u||i in n?c.values[i]=s:Ember.defineProperty(n,i,null,s):n[i]=s,Ember.propertyDidChange(n,i))):n[i]=s),s};Ember.config.overrideAccessors&&(Ember.set=i,Ember.config.overrideAccessors(),i=Ember.set),Ember.set=i,Ember.setPath=Ember.deprecateFunc("setPath is deprecated since set now supports paths",Ember.set),Ember.trySet=function(e,t,r){return i(e,t,r,!0)},Ember.trySetPath=Ember.deprecateFunc("trySetPath has been renamed to trySet",Ember.trySet)}(),function(){var e=Ember.set,t=Ember.guidFor,r=Ember.ArrayPolyfills.indexOf,n=function(e){var t={};for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r]);return t},i=function(e,t){var r=e.keys.copy(),i=n(e.values);return t.keys=r,t.values=i,t.length=e.length,t},s=Ember.OrderedSet=function(){this.clear()};s.create=function(){return new s},s.prototype={clear:function(){this.presenceSet={},this.list=[]},add:function(e){var r=t(e),n=this.presenceSet,i=this.list;r in n||(n[r]=!0,i.push(e))},remove:function(e){var n=t(e),i=this.presenceSet,s=this.list;delete i[n];var o=r.call(s,e);o>-1&&s.splice(o,1)},isEmpty:function(){return 0===this.list.length},has:function(e){var r=t(e),n=this.presenceSet;return r in n},forEach:function(e,t){for(var r=this.toArray(),n=0,i=r.length;i>n;n++)e.call(t,r[n])},toArray:function(){return this.list.slice()},copy:function(){var e=new s;return e.presenceSet=n(this.presenceSet),e.list=this.toArray(),e}};var o=Ember.Map=function(){this.keys=Ember.OrderedSet.create(),this.values={}};o.create=function(){return new o},o.prototype={length:0,get:function(e){var r=this.values,n=t(e);return r[n]},set:function(r,n){var i=this.keys,s=this.values,o=t(r);i.add(r),s[o]=n,e(this,"length",i.list.length)},remove:function(r){var n=this.keys,i=this.values,s=t(r);return i.hasOwnProperty(s)?(n.remove(r),delete i[s],e(this,"length",n.list.length),!0):!1},has:function(e){var r=this.values,n=t(e);return r.hasOwnProperty(n)},forEach:function(e,r){var n=this.keys,i=this.values;n.forEach(function(n){var s=t(n);e.call(r,n,i[s])})},copy:function(){return i(this,new o)}};var a=Ember.MapWithDefault=function(e){o.call(this),this.defaultValue=e.defaultValue};a.create=function(e){return e?new a(e):new o},a.prototype=Ember.create(o.prototype),a.prototype.get=function(e){var t=this.has(e);if(t)return o.prototype.get.call(this,e);var r=this.defaultValue(e);return this.set(e,r),r},a.prototype.copy=function(){return i(this,new a({defaultValue:this.defaultValue}))}}(),function(){var e=Ember.META_KEY,t=Ember.meta,r=Ember.platform.defineProperty,n=Ember.ENV.MANDATORY_SETTER;Ember.Descriptor=function(){};var i=Ember.MANDATORY_SETTER_FUNCTION=function(){},s=Ember.DEFAULT_GETTER_FUNCTION=function(t){return function(){var r=this[e];return r&&r.values[t]}};Ember.defineProperty=function(e,o,a,u,c){var l,h,m,f;return c||(c=t(e)),l=c.descs,h=c.descs[o],m=c.watching[o]>0,h instanceof Ember.Descriptor&&h.teardown(e,o),a instanceof Ember.Descriptor?(f=a,l[o]=a,n&&m?r(e,o,{configurable:!0,enumerable:!0,writable:!0,value:void 0}):e[o]=void 0,a.setup(e,o)):(l[o]=void 0,null==a?(f=u,n&&m?(c.values[o]=u,r(e,o,{configurable:!0,enumerable:!0,set:i,get:s(o)})):e[o]=u):(f=a,r(e,o,a))),m&&Ember.overrideChains(e,o,c),e.didDefineProperty&&e.didDefineProperty(e,o,f),this}}(),function(){var e=Ember.changeProperties,t=Ember.set;Ember.setProperties=function(r,n){return e(function(){for(var e in n)n.hasOwnProperty(e)&&t(r,e,n[e])}),r}}(),function(){var e=Ember.meta,t=Ember.typeOf,r=Ember.ENV.MANDATORY_SETTER,n=Ember.platform.defineProperty;Ember.watchKey=function(i,s){if("length"!==s||"array"!==t(i)){var o,a=e(i),u=a.watching;u[s]?u[s]=(u[s]||0)+1:(u[s]=1,o=a.descs[s],o&&o.willWatch&&o.willWatch(i,s),"function"==typeof i.willWatchProperty&&i.willWatchProperty(s),r&&s in i&&(a.values[s]=i[s],n(i,s,{configurable:!0,enumerable:!0,set:Ember.MANDATORY_SETTER_FUNCTION,get:Ember.DEFAULT_GETTER_FUNCTION(s)})))}},Ember.unwatchKey=function(t,i){var s,o=e(t),a=o.watching;1===a[i]?(a[i]=0,s=o.descs[i],s&&s.didUnwatch&&s.didUnwatch(t,i),"function"==typeof t.didUnwatchProperty&&t.didUnwatchProperty(i),r&&i in t&&(n(t,i,{configurable:!0,enumerable:!0,writable:!0,value:o.values[i]}),delete o.values[i])):a[i]>1&&a[i]--}}(),function(){function e(e){return e.match(m)[0]}function t(e,t,r){if(e&&"object"==typeof e){var i=n(e),s=i.chainWatchers;i.hasOwnProperty("chainWatchers")||(s=i.chainWatchers={}),s[t]||(s[t]=[]),s[t].push(r),u(e,t)}}function r(e){return n(e,!1).proto===e}var n=Ember.meta,i=Ember.get,s=Ember.normalizeTuple,o=Ember.ArrayPolyfills.forEach,a=Ember.warn,u=Ember.watchKey,c=Ember.unwatchKey,l=Ember.propertyWillChange,h=Ember.propertyDidChange,m=/^([^\.\*]+)/,f=[];Ember.flushPendingChains=function(){if(0!==f.length){var e=f;f=[],o.call(e,function(e){e[0].add(e[1])}),a("Watching an undefined global, Ember expects watched globals to be setup by the time the run loop is flushed, check for typos",0===f.length)}};var p=Ember.removeChainWatcher=function(e,t,r){if(e&&"object"==typeof e){var i=n(e,!1);if(i.hasOwnProperty("chainWatchers")){var s=i.chainWatchers;if(s[t]){s=s[t];for(var o=0,a=s.length;a>o;o++)s[o]===r&&s.splice(o,1)}c(e,t)}}},d=Ember._ChainNode=function(e,r,n){this._parent=e,this._key=r,this._watching=void 0===n,this._value=n,this._paths={},this._watching&&(this._object=e.value(),this._object&&t(this._object,this._key,this)),this._parent&&"@each"===this._parent._key&&this.value()},b=d.prototype;b.value=function(){if(void 0===this._value&&this._watching){var e=this._parent.value();this._value=e&&!r(e)?i(e,this._key):void 0}return this._value},b.destroy=function(){if(this._watching){var e=this._object;e&&p(e,this._key,this),this._watching=!1}},b.copy=function(e){var t,r=new d(null,null,e),n=this._paths;for(t in n)n[t]<=0||r.add(t);return r},b.add=function(t){var r,n,i,o,a;if(a=this._paths,a[t]=(a[t]||0)+1,r=this.value(),n=s(r,t),n[0]&&n[0]===r)t=n[1],i=e(t),t=t.slice(i.length+1);else{if(!n[0])return f.push([this,t]),n.length=0,void 0;o=n[0],i=t.slice(0,0-(n[1].length+1)),t=n[1]}n.length=0,this.chain(i,t,o)},b.remove=function(t){var r,n,i,o,a;a=this._paths,a[t]>0&&a[t]--,r=this.value(),n=s(r,t),n[0]===r?(t=n[1],i=e(t),t=t.slice(i.length+1)):(o=n[0],i=t.slice(0,0-(n[1].length+1)),t=n[1]),n.length=0,this.unchain(i,t)},b.count=0,b.chain=function(t,r,n){var i,s=this._chains;s||(s=this._chains={}),i=s[t],i||(i=s[t]=new d(this,t,n)),i.count++,r&&r.length>0&&(t=e(r),r=r.slice(t.length+1),i.chain(t,r))},b.unchain=function(t,r){var n=this._chains,i=n[t];r&&r.length>1&&(t=e(r),r=r.slice(t.length+1),i.unchain(t,r)),i.count--,i.count<=0&&(delete n[i._key],i.destroy())},b.willChange=function(){var e=this._chains;if(e)for(var t in e)e.hasOwnProperty(t)&&e[t].willChange();this._parent&&this._parent.chainWillChange(this,this._key,1)},b.chainWillChange=function(e,t,r){this._key&&(t=this._key+"."+t),this._parent?this._parent.chainWillChange(this,t,r+1):(r>1&&l(this.value(),t),t="this."+t,this._paths[t]>0&&l(this.value(),t))},b.chainDidChange=function(e,t,r){this._key&&(t=this._key+"."+t),this._parent?this._parent.chainDidChange(this,t,r+1):(r>1&&h(this.value(),t),t="this."+t,this._paths[t]>0&&h(this.value(),t))},b.didChange=function(e){if(this._watching){var r=this._parent.value();r!==this._object&&(p(this._object,this._key,this),this._object=r,t(r,this._key,this)),this._value=void 0,this._parent&&"@each"===this._parent._key&&this.value()}var n=this._chains;if(n)for(var i in n)n.hasOwnProperty(i)&&n[i].didChange(e);e||this._parent&&this._parent.chainDidChange(this,this._key,1)},Ember.finishChains=function(e){var t=n(e,!1),r=t.chains;r&&(r.value()!==e&&(t.chains=r=r.copy(e)),r.didChange(!0))}}(),function(){function e(e){var r=t(e),i=r.chains;return i?i.value()!==e&&(i=r.chains=i.copy(e)):i=r.chains=new n(null,null,e),i}var t=Ember.meta,r=Ember.typeOf,n=Ember._ChainNode;Ember.watchPath=function(n,i){if("length"!==i||"array"!==r(n)){var s=t(n),o=s.watching;o[i]?o[i]=(o[i]||0)+1:(o[i]=1,e(n).add(i))}},Ember.unwatchPath=function(r,n){var i=t(r),s=i.watching;1===s[n]?(s[n]=0,e(r).remove(n)):s[n]>1&&s[n]--}}(),function(){function e(e){return"*"===e||!h.test(e)}var t=Ember.meta,r=Ember.GUID_KEY,n=Ember.META_KEY,i=Ember.removeChainWatcher,s=Ember.watchKey,o=Ember.unwatchKey,a=Ember.watchPath,u=Ember.unwatchPath,c=Ember.typeOf,l=Ember.generateGuid,h=/[\.\*]/;Ember.watch=function(t,r){("length"!==r||"array"!==c(t))&&(e(r)?s(t,r):a(t,r))},Ember.isWatching=function(e,t){var r=e[n];return(r&&r.watching[t])>0},Ember.watch.flushPending=Ember.flushPendingChains,Ember.unwatch=function(t,r){("length"!==r||"array"!==c(t))&&(e(r)?o(t,r):u(t,r))},Ember.rewatch=function(e){var n=t(e,!1),i=n.chains;r in e&&!e.hasOwnProperty(r)&&l(e,"ember"),i&&i.value()!==e&&(n.chains=i.copy(e))};var m=[];Ember.destroy=function(e){var t,r,s,o,a=e[n];if(a&&(e[n]=null,t=a.chains))for(m.push(t);m.length>0;){if(t=m.pop(),r=t._chains)for(s in r)r.hasOwnProperty(s)&&m.push(r[s]);t._watching&&(o=t._object,o&&i(o,t._key,t))}}}(),function(){function e(e,t){var r=e[t];return r?e.hasOwnProperty(t)||(r=e[t]=m(r)):r=e[t]={},r}function t(t){return e(t,"deps")}function r(r,n,i,s){var o,a,u,c,l,h=r._dependentKeys;if(h)for(o=t(s),a=0,u=h.length;u>a;a++)c=h[a],l=e(o,c),l[i]=(l[i]||0)+1,p(n,c)}function n(r,n,i,s){var o,a,u,c,l,h=r._dependentKeys;if(h)for(o=t(s),a=0,u=h.length;u>a;a++)c=h[a],l=e(o,c),l[i]=(l[i]||0)-1,d(n,c)}function i(e,t){this.func=e,this._cacheable=t&&void 0!==t.cacheable?t.cacheable:!0,this._dependentKeys=t&&t.dependentKeys,this._readOnly=t&&(void 0!==t.readOnly||!!t.readOnly)}function s(e,t){for(var r={},n=0;n<t.length;n++)r[t[n]]=u(e,t[n]);return r}function o(e,t){Ember.computed[e]=function(e){var r=h.call(arguments);return Ember.computed(e,function(){return t.apply(this,r)})}}function a(e,t){Ember.computed[e]=function(){var e=h.call(arguments),r=Ember.computed(function(){return t.apply(this,[s(this,e)])});return r.property.apply(r,e)}}var u=Ember.get,c=Ember.set,l=Ember.meta,h=[].slice,m=Ember.create,f=Ember.META_KEY,p=Ember.watch,d=Ember.unwatch;Ember.ComputedProperty=i,i.prototype=new Ember.Descriptor;var b=i.prototype;b.cacheable=function(e){return this._cacheable=e!==!1,this},b.volatile=function(){return this.cacheable(!1)},b.readOnly=function(e){return this._readOnly=void 0===e||!!e,this},b.property=function(){for(var e=[],t=0,r=arguments.length;r>t;t++)e.push(arguments[t]);return this._dependentKeys=e,this},b.meta=function(e){return 0===arguments.length?this._meta||{}:(this._meta=e,this)},b.willWatch=function(e,t){var n=e[f];t in n.cache||r(this,e,t,n)},b.didUnwatch=function(e,t){var r=e[f];t in r.cache||n(this,e,t,r)},b.didChange=function(e,t){if(this._cacheable&&this._suspended!==e){var r=l(e);t in r.cache&&(delete r.cache[t],r.watching[t]||n(this,e,t,r))}},b.get=function(e,t){var n,i,s;if(this._cacheable){if(s=l(e),i=s.cache,t in i)return i[t];n=i[t]=this.func.call(e,t),s.watching[t]||r(this,e,t,s)}else n=this.func.call(e,t);return n},b.set=function(e,t,n){var i,s,o,a=this._cacheable,u=this.func,c=l(e,a),h=c.watching[t],m=this._suspended,f=!1,p=c.cache;if(this._readOnly)throw new Error("Cannot Set: "+t+" on: "+e.toString());this._suspended=e;try{if(a&&p.hasOwnProperty(t)&&(s=p[t],f=!0),i=u.wrappedFunction?u.wrappedFunction.length:u.length,3===i)o=u.call(e,t,n,s);else{if(2!==i)return Ember.defineProperty(e,t,null,s),Ember.set(e,t,n),void 0;o=u.call(e,t,n)}if(f&&s===o)return;h&&Ember.propertyWillChange(e,t),f&&delete p[t],a&&(h||f||r(this,e,t,c),p[t]=o),h&&Ember.propertyDidChange(e,t)}finally{this._suspended=m}return o},b.setup=function(e,t){var n=e[f];n&&n.watching[t]&&r(this,e,t,l(e))},b.teardown=function(e,t){var r=l(e);return(r.watching[t]||t in r.cache)&&n(this,e,t,r),this._cacheable&&delete r.cache[t],null},Ember.computed=function(e){var t;if(arguments.length>1&&(t=h.call(arguments,0,-1),e=h.call(arguments,-1)[0]),"function"!=typeof e)throw new Error("Computed Property declared without a property function");var r=new i(e);return t&&r.property.apply(r,t),r},Ember.cacheFor=function(e,t){var r=l(e,!1).cache;return r&&t in r?r[t]:void 0},o("empty",function(e){return Ember.isEmpty(u(this,e))}),o("notEmpty",function(e){return!Ember.isEmpty(u(this,e))}),o("none",function(e){return Ember.isNone(u(this,e))}),o("not",function(e){return!u(this,e)}),o("bool",function(e){return!!u(this,e)}),o("match",function(e,t){var r=u(this,e);return"string"==typeof r?!!r.match(t):!1}),o("equal",function(e,t){return u(this,e)===t}),o("gt",function(e,t){return u(this,e)>t}),o("gte",function(e,t){return u(this,e)>=t}),o("lt",function(e,t){return u(this,e)<t}),o("lte",function(e,t){return u(this,e)<=t}),a("and",function(e){for(var t in e)if(e.hasOwnProperty(t)&&!e[t])return!1;return!0}),a("or",function(e){for(var t in e)if(e.hasOwnProperty(t)&&e[t])return!0;return!1}),a("any",function(e){for(var t in e)if(e.hasOwnProperty(t)&&e[t])return e[t];return null}),a("map",function(e){var t=[];for(var r in e)e.hasOwnProperty(r)&&(Ember.isNone(e[r])?t.push(null):t.push(e[r]));return t}),Ember.computed.alias=function(e){return Ember.computed(e,function(t,r){return arguments.length>1?(c(this,e,r),r):u(this,e)})},Ember.computed.oneWay=function(e){return Ember.computed(e,function(){return u(this,e)})},Ember.computed.defaultTo=function(e){return Ember.computed(function(t,r,n){return 1===arguments.length?null!=n?n:u(this,e):null!=r?r:u(this,e)})}}(),function(){function e(e){return e+r}function t(e){return e+n}var r=":change",n=":before";Ember.addObserver=function(t,r,n,i){return Ember.addListener(t,e(r),n,i),Ember.watch(t,r),this},Ember.observersFor=function(t,r){return Ember.listenersFor(t,e(r))},Ember.removeObserver=function(t,r,n,i){return Ember.unwatch(t,r),Ember.removeListener(t,e(r),n,i),this},Ember.addBeforeObserver=function(e,r,n,i){return Ember.addListener(e,t(r),n,i),Ember.watch(e,r),this},Ember._suspendBeforeObserver=function(e,r,n,i,s){return Ember._suspendListener(e,t(r),n,i,s)},Ember._suspendObserver=function(t,r,n,i,s){return Ember._suspendListener(t,e(r),n,i,s)};var i=Ember.ArrayPolyfills.map;Ember._suspendBeforeObservers=function(e,r,n,s,o){var a=i.call(r,t);return Ember._suspendListeners(e,a,n,s,o)},Ember._suspendObservers=function(t,r,n,s,o){var a=i.call(r,e);return Ember._suspendListeners(t,a,n,s,o)},Ember.beforeObserversFor=function(e,r){return Ember.listenersFor(e,t(r))},Ember.removeBeforeObserver=function(e,r,n,i){return Ember.unwatch(e,r),Ember.removeListener(e,t(r),n,i),this}}(),function(){e("backburner/queue",["exports"],function(e){"use strict";function t(e,t,r){this.daq=e,this.name=t,this.options=r,this._queue=[]}t.prototype={daq:null,name:null,options:null,_queue:null,push:function(e,t,r,n){var i=this._queue;return i.push(e,t,r,n),{queue:this,target:e,method:t}},pushUnique:function(e,t,r,n){var i,s,o,a,u=this._queue;for(o=0,a=u.length;a>o;o+=4)if(i=u[o],s=u[o+1],i===e&&s===t)return u[o+2]=r,u[o+3]=n,{queue:this,target:e,method:t};return this._queue.push(e,t,r,n),{queue:this,target:e,method:t}},flush:function(){var e,t,r,n,i,s=this._queue,o=this.options,a=o&&o.before,u=o&&o.after,c=s.length;for(c&&a&&a(),i=0;c>i;i+=4)e=s[i],t=s[i+1],r=s[i+2],n=s[i+3],r&&r.length>0?t.apply(e,r):t.call(e);c&&u&&u(),s.length>c?(this._queue=s.slice(c),this.flush()):this._queue.length=0},cancel:function(e){var t,r,n,i,s=this._queue;for(n=0,i=s.length;i>n;n+=4)if(t=s[n],r=s[n+1],t===e.target&&r===e.method)return s.splice(n,4),!0;if(s=this._queueBeingFlushed)for(n=0,i=s.length;i>n;n+=4)if(t=s[n],r=s[n+1],t===e.target&&r===e.method)return s[n+1]=null,!0
16
+ }},e.Queue=t}),e("backburner/deferred_action_queues",["backburner/queue","exports"],function(e,t){"use strict";function r(e,t){var r=this.queues={};this.queueNames=e=e||[];for(var n,s=0,o=e.length;o>s;s++)n=e[s],r[n]=new i(this,n,t[n])}function n(e,t){for(var r,n,i=0,s=t;s>=i;i++)if(r=e.queueNames[i],n=e.queues[r],n._queue.length)return i;return-1}var i=e.Queue;r.prototype={queueNames:null,queues:null,schedule:function(e,t,r,n,i,s){var o=this.queues,a=o[e];if(!a)throw new Error("You attempted to schedule an action in a queue ("+e+") that doesn't exist");return i?a.pushUnique(t,r,n,s):a.push(t,r,n,s)},flush:function(){for(var e,t,r,i,s=this.queues,o=this.queueNames,a=0,u=o.length;u>a;){e=o[a],t=s[e],r=t._queueBeingFlushed=t._queue.slice(),t._queue=[];var c,l,h,m,f=t.options,p=f&&f.before,d=f&&f.after,b=0,E=r.length;for(E&&p&&p();E>b;)c=r[b],l=r[b+1],h=r[b+2],m=r[b+3],"string"==typeof l&&(l=c[l]),l&&(h&&h.length>0?l.apply(c,h):l.call(c)),b+=4;t._queueBeingFlushed=null,E&&d&&d(),-1===(i=n(this,a))?a++:a=i}}},t.DeferredActionQueues=r}),e("backburner",["backburner/deferred_action_queues","exports"],function(e,t){"use strict";function r(e,t){this.queueNames=e,this.options=t||{},this.options.defaultQueue||(this.options.defaultQueue=e[0]),this.instanceStack=[]}function n(e){e.begin(),o=d.setTimeout(function(){e.end(),o=null})}function i(e){var t,r,n,s,o=+new Date;e.run(function(){for(n=0,s=p.length;s>n&&(t=p[n],!(t>o));n+=2);for(r=p.splice(0,n),n=1,s=r.length;s>n;n+=2)e.schedule(e.options.defaultQueue,null,r[n])}),p.length&&(a=d.setTimeout(function(){i(e),a=null,u=null},p[0]-o),u=p[0])}function s(e,t){for(var r,n=-1,i=0,s=f.length;s>i;i++)if(r=f[i],r[0]===e&&r[1]===t){n=i;break}return n}var o,a,u,c=e.DeferredActionQueues,l=[].slice,h=[].pop,m=[],f=[],p=[],d=this;r.prototype={queueNames:null,options:null,currentInstance:null,instanceStack:null,begin:function(){var e=this.options&&this.options.onBegin,t=this.currentInstance;t&&this.instanceStack.push(t),this.currentInstance=new c(this.queueNames,this.options),e&&e(this.currentInstance,t)},end:function(){var e=this.options&&this.options.onEnd,t=this.currentInstance,r=null;try{t.flush()}finally{this.currentInstance=null,this.instanceStack.length&&(r=this.instanceStack.pop(),this.currentInstance=r),e&&e(t,r)}},run:function(e,t){var r;this.begin(),t||(t=e,e=null),"string"==typeof t&&(t=e[t]);var n=!1;try{r=arguments.length>2?t.apply(e,l.call(arguments,2)):t.call(e)}finally{n||(n=!0,this.end())}return r},defer:function(e,t,r){r||(r=t,t=null),"string"==typeof r&&(r=t[r]);var i=this.DEBUG?(new Error).stack:void 0,s=arguments.length>3?l.call(arguments,3):void 0;return this.currentInstance||n(this),this.currentInstance.schedule(e,t,r,s,!1,i)},deferOnce:function(e,t,r){r||(r=t,t=null),"string"==typeof r&&(r=t[r]);var i=this.DEBUG?(new Error).stack:void 0,s=arguments.length>3?l.call(arguments,3):void 0;return this.currentInstance||n(this),this.currentInstance.schedule(e,t,r,s,!0,i)},setTimeout:function(){var e=this,t=h.call(arguments),r=arguments[0],n=arguments[1],s=+new Date+t;n||(n=r,r=null),"string"==typeof n&&(n=r[n]);var o,c;arguments.length>2?(c=l.call(arguments,2),o=function(){n.apply(r,c)}):o=function(){n.call(r)};var m,f;for(m=0,f=p.length;f>m&&!(s<p[m]);m+=2);return p.splice(m,0,s,o),a&&s>u?o:(a&&(clearTimeout(a),a=null),a=d.setTimeout(function(){i(e),a=null,u=null},t),u=s,o)},throttle:function(e,t){for(var r,n=this,i=arguments,s=h.call(i),o=0,a=m.length;a>o;o++)if(r=m[o],r[0]===e&&r[1]===t)return;var u=d.setTimeout(function(){n.run.apply(n,i);for(var s=-1,o=0,a=m.length;a>o;o++)if(r=m[o],r[0]===e&&r[1]===t){s=o;break}s>-1&&m.splice(s,1)},s);m.push([e,t,u])},debounce:function(e,t){var r,n,i,o=this,a=arguments,u=h.call(a);"number"==typeof u?(r=u,u=!1):r=h.call(a),n=s(e,t),-1!==n&&(i=f[n],f.splice(n,1),clearTimeout(i[2]));var c=window.setTimeout(function(){u||o.run.apply(o,a),n=s(e,t),n&&f.splice(n,1)},r);u&&-1===n&&o.run.apply(o,a),f.push([e,t,c])},cancelTimers:function(){var e,t;for(e=0,t=m.length;t>e;e++)clearTimeout(m[e][2]);for(m=[],e=0,t=f.length;t>e;e++)clearTimeout(f[e][2]);f=[],a&&(clearTimeout(a),a=null),p=[],o&&(clearTimeout(o),o=null)},hasTimers:function(){return!!p.length||o},cancel:function(e){if(e&&"object"==typeof e&&e.queue&&e.method)return e.queue.cancel(e);if("function"==typeof e)for(var t=0,r=p.length;r>t;t+=2)if(p[t+1]===e)return p.splice(t,2),!0}},r.prototype.schedule=r.prototype.defer,r.prototype.scheduleOnce=r.prototype.deferOnce,r.prototype.later=r.prototype.setTimeout,t.Backburner=r})}(),function(){function e(){!Ember.run.currentRunLoop}var r=function(e){Ember.run.currentRunLoop=e},n=function(e,t){Ember.run.currentRunLoop=t},i=t("backburner").Backburner,s=new i(["sync","actions","destroy"],{sync:{before:Ember.beginPropertyChanges,after:Ember.endPropertyChanges},defaultQueue:"actions",onBegin:r,onEnd:n}),o=[].slice;Ember.run=function(){var e;if(Ember.onerror)try{e=s.run.apply(s,arguments)}catch(t){Ember.onerror(t)}else e=s.run.apply(s,arguments);return e},Ember.run.join=function(){if(!Ember.run.currentRunLoop)return Ember.run.apply(Ember.run,arguments);var e=o.call(arguments);e.unshift("actions"),Ember.run.schedule.apply(Ember.run,e)},Ember.run.backburner=s,Ember.run,Ember.run.currentRunLoop=null,Ember.run.queues=s.queueNames,Ember.run.begin=function(){s.begin()},Ember.run.end=function(){s.end()},Ember.run.schedule=function(){e(),s.schedule.apply(s,arguments)},Ember.run.hasScheduledTimers=function(){return s.hasTimers()},Ember.run.cancelTimers=function(){s.cancelTimers()},Ember.run.sync=function(){s.currentInstance&&s.currentInstance.queues.sync.flush()},Ember.run.later=function(){return s.later.apply(s,arguments)},Ember.run.once=function(){e();var t=o.call(arguments);return t.unshift("actions"),s.scheduleOnce.apply(s,t)},Ember.run.scheduleOnce=function(){return e(),s.scheduleOnce.apply(s,arguments)},Ember.run.next=function(){var e=o.call(arguments);return e.push(1),s.later.apply(s,e)},Ember.run.cancel=function(e){return s.cancel(e)},Ember.run.debounce=function(){return s.debounce.apply(s,arguments)},Ember.run.throttle=function(){return s.throttle.apply(s,arguments)}}(),function(){function e(e,t){return r(s(t)?Ember.lookup:e,t)}function t(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])}Ember.LOG_BINDINGS=!1||!!Ember.ENV.LOG_BINDINGS;var r=Ember.get,n=(Ember.set,Ember.guidFor),i=/^([A-Z$]|([0-9][A-Z$]))/,s=Ember.isGlobalPath=function(e){return i.test(e)},o=function(e,t){this._direction="fwd",this._from=t,this._to=e,this._directionMap=Ember.Map.create()};o.prototype={copy:function(){var e=new o(this._to,this._from);return this._oneWay&&(e._oneWay=!0),e},from:function(e){return this._from=e,this},to:function(e){return this._to=e,this},oneWay:function(){return this._oneWay=!0,this},toString:function(){var e=this._oneWay?"[oneWay]":"";return"Ember.Binding<"+n(this)+">("+this._from+" -> "+this._to+")"+e},connect:function(t){var r=this._from,n=this._to;return Ember.trySet(t,n,e(t,r)),Ember.addObserver(t,r,this,this.fromDidChange),this._oneWay||Ember.addObserver(t,n,this,this.toDidChange),this._readyToSync=!0,this},disconnect:function(e){var t=!this._oneWay;return Ember.removeObserver(e,this._from,this,this.fromDidChange),t&&Ember.removeObserver(e,this._to,this,this.toDidChange),this._readyToSync=!1,this},fromDidChange:function(e){this._scheduleSync(e,"fwd")},toDidChange:function(e){this._scheduleSync(e,"back")},_scheduleSync:function(e,t){var r=this._directionMap,n=r.get(e);n||(Ember.run.schedule("sync",this,this._sync,e),r.set(e,t)),"back"===n&&"fwd"===t&&r.set(e,"fwd")},_sync:function(t){var n=Ember.LOG_BINDINGS;if(!t.isDestroyed&&this._readyToSync){var i=this._directionMap,s=i.get(t),o=this._from,a=this._to;if(i.remove(t),"fwd"===s){var u=e(t,this._from);n&&Ember.Logger.log(" ",this.toString(),"->",u,t),this._oneWay?Ember.trySet(t,a,u):Ember._suspendObserver(t,a,this,this.toDidChange,function(){Ember.trySet(t,a,u)})}else if("back"===s){var c=r(t,this._to);n&&Ember.Logger.log(" ",this.toString(),"<-",c,t),Ember._suspendObserver(t,o,this,this.fromDidChange,function(){Ember.trySet(Ember.isGlobalPath(o)?Ember.lookup:t,o,c)})}}}},t(o,{from:function(){var e=this,t=new e;return t.from.apply(t,arguments)},to:function(){var e=this,t=new e;return t.to.apply(t,arguments)},oneWay:function(e,t){var r=this,n=new r(null,e);return n.oneWay(t)}}),Ember.Binding=o,Ember.bind=function(e,t,r){return new Ember.Binding(t,r).connect(e)},Ember.oneWay=function(e,t,r){return new Ember.Binding(t,r).oneWay().connect(e)}}(),function(){function e(e){var t=Ember.meta(e,!0),r=t.mixins;return r?t.hasOwnProperty("mixins")||(r=t.mixins=A(r)):r=t.mixins={},r}function t(e,t){return t&&t.length>0&&(e.mixins=_.call(t,function(e){if(e instanceof g)return e;var t=new g;return t.properties=e,t})),e}function r(e){return"function"==typeof e&&e.isMethod!==!1&&e!==Boolean&&e!==Object&&e!==Number&&e!==Array&&e!==Date&&e!==String}function n(e,t){var r;return t instanceof g?(r=x(t),e[r]?V:(e[r]=t,t.properties)):t}function i(e,t,r){var n;return n=t.concatenatedProperties||r.concatenatedProperties,e.concatenatedProperties&&(n=n?n.concat(e.concatenatedProperties):e.concatenatedProperties),n}function s(e,t,r,n,i){var s;return void 0===n[t]&&(s=i[t]),s=s||e.descs[t],s&&s instanceof Ember.ComputedProperty?(r=A(r),r.func=Ember.wrap(r.func,s.func),r):r}function o(e,t,r,n,i){var s;return void 0===i[t]&&(s=n[t]),s=s||e[t],"function"!=typeof s?r:Ember.wrap(r,s)}function a(e,t,r,n){var i=n[t]||e[t];return i?"function"==typeof i.concat?i.concat(r):Ember.makeArray(i).concat(r):Ember.makeArray(r)}function u(e,t,n,i,u,c,l){if(n instanceof Ember.Descriptor){if(n===y&&u[t])return V;n.func&&(n=s(i,t,n,c,u)),u[t]=n,c[t]=void 0}else r(n)?n=o(e,t,n,c,u):(l&&C.call(l,t)>=0||"concatenatedProperties"===t)&&(n=a(e,t,n,c)),u[t]=void 0,c[t]=n}function c(e,t,r,s,o,a){function l(e){delete r[e],delete s[e]}for(var h,m,f,p,d,b=0,E=e.length;E>b;b++)if(h=e[b],m=n(t,h),m!==V)if(m){d=Ember.meta(o),p=i(m,s,o);for(f in m)m.hasOwnProperty(f)&&(a.push(f),u(o,f,m[f],d,r,s,p));m.hasOwnProperty("toString")&&(o.toString=m.toString)}else h.mixins&&(c(h.mixins,t,r,s,o,a),h._without&&O.call(h._without,l))}function l(e,t,r,n){if(T.test(t)){var i=n.bindings;i?n.hasOwnProperty("bindings")||(i=n.bindings=A(n.bindings)):i=n.bindings={},i[t]=r}}function h(e,t){var r,n,i,s=t.bindings;if(s){for(r in s)n=s[r],n&&(i=r.slice(0,-7),n instanceof Ember.Binding?(n=n.copy(),n.to(i)):n=new Ember.Binding(i,n),n.connect(e),e[r]=n);t.bindings={}}}function m(e,t){return h(e,t||Ember.meta(e)),e}function f(e,t,r,n,i){var s,o=t.methodName;return n[o]||i[o]?(s=i[o],t=n[o]):r.descs[o]?(t=r.descs[o],s=void 0):(t=void 0,s=e[o]),{desc:t,value:s}}function p(e,t,r,n,i){if("function"==typeof r){var s=r[n];if(s)for(var o=0,a=s.length;a>o;o++)Ember[i](e,s[o],null,t)}}function d(e,t,r){var n=e[t];p(e,t,n,"__ember_observesBefore__","removeBeforeObserver"),p(e,t,n,"__ember_observes__","removeObserver"),p(e,t,r,"__ember_observesBefore__","addBeforeObserver"),p(e,t,r,"__ember_observes__","addObserver")}function b(t,r,n){var i,s,o,a={},u={},h=Ember.meta(t),p=[];c(r,e(t),a,u,t,p);for(var b=0,E=p.length;E>b;b++)if(i=p[b],"constructor"!==i&&u.hasOwnProperty(i)&&(o=a[i],s=u[i],o!==y)){for(;o&&o instanceof w;){var v=f(t,o,h,a,u);o=v.desc,s=v.value}(void 0!==o||void 0!==s)&&(d(t,i,s),l(t,i,s,h),P(t,i,o,s,h))}return n||m(t,h),t}function E(e,t,r){var n=x(e);if(r[n])return!1;if(r[n]=!0,e===t)return!0;for(var i=e.mixins,s=i?i.length:0;--s>=0;)if(E(i[s],t,r))return!0;return!1}function v(e,t,r){if(!r[x(t)])if(r[x(t)]=!0,t.properties){var n=t.properties;for(var i in n)n.hasOwnProperty(i)&&(e[i]=!0)}else t.mixins&&O.call(t.mixins,function(t){v(e,t,r)})}var g,y,w,_=Ember.ArrayPolyfills.map,C=Ember.ArrayPolyfills.indexOf,O=Ember.ArrayPolyfills.forEach,S=[].slice,A=Ember.create,P=Ember.defineProperty,x=Ember.guidFor,V={},T=Ember.IS_BINDING=/^.+Binding$/;Ember.mixin=function(e){var t=S.call(arguments,1);return b(e,t,!1),e},Ember.Mixin=function(){return t(this,arguments)},g=Ember.Mixin,g.prototype={properties:null,mixins:null,ownerConstructor:null},g._apply=b,g.applyPartial=function(e){var t=S.call(arguments,1);return b(e,t,!0)},g.finishPartial=m,Ember.anyUnprocessedMixins=!1,g.create=function(){Ember.anyUnprocessedMixins=!0;var e=this;return t(new e,arguments)};var D=g.prototype;D.reopen=function(){var e,t;this.properties?(e=g.create(),e.properties=this.properties,delete this.properties,this.mixins=[e]):this.mixins||(this.mixins=[]);var r,n=arguments.length,i=this.mixins;for(r=0;n>r;r++)e=arguments[r],e instanceof g?i.push(e):(t=g.create(),t.properties=e,i.push(t));return this},D.apply=function(e){return b(e,[this],!1)},D.applyPartial=function(e){return b(e,[this],!0)},D.detect=function(e){if(!e)return!1;if(e instanceof g)return E(e,this,{});var t=Ember.meta(e,!1).mixins;return t?!!t[x(this)]:!1},D.without=function(){var e=new g(this);return e._without=S.call(arguments),e},D.keys=function(){var e={},t={},r=[];v(e,this,t);for(var n in e)e.hasOwnProperty(n)&&r.push(n);return r},g.mixins=function(e){var t=Ember.meta(e,!1).mixins,r=[];if(!t)return r;for(var n in t){var i=t[n];i.properties||r.push(i)}return r},y=new Ember.Descriptor,y.toString=function(){return"(Required Property)"},Ember.required=function(){return y},w=function(e){this.methodName=e},w.prototype=new Ember.Descriptor,Ember.alias=function(e){return new w(e)},Ember.alias=Ember.deprecateFunc("Ember.alias is deprecated. Please use Ember.aliasMethod or Ember.computed.alias instead.",Ember.alias),Ember.aliasMethod=function(e){return new w(e)},Ember.observer=function(e){var t=S.call(arguments,1);return e.__ember_observes__=t,e},Ember.immediateObserver=function(){for(var e=0,t=arguments.length;t>e;e++)arguments[e];return Ember.observer.apply(this,arguments)},Ember.beforeObserver=function(e){var t=S.call(arguments,1);return e.__ember_observesBefore__=t,e}}(),function(){e("rsvp/all",["rsvp/promise","exports"],function(e,t){"use strict";function r(e){if("[object Array]"!==Object.prototype.toString.call(e))throw new TypeError("You must pass an array to all.");return new n(function(t,r){function n(e){return function(t){i(e,t)}}function i(e,r){o[e]=r,0===--a&&t(o)}var s,o=[],a=e.length;0===a&&t([]);for(var u=0;u<e.length;u++)s=e[u],s&&"function"==typeof s.then?s.then(n(u),r):i(u,s)})}var n=e.Promise;t.all=r}),e("rsvp/async",["exports"],function(e){"use strict";function t(){return function(e,t){process.nextTick(function(){e(t)})}}function r(){return function(e,t){setImmediate(function(){e(t)})}}function n(){var e=[],t=new a(function(){var t=e.slice();e=[],t.forEach(function(e){var t=e[0],r=e[1];t(r)})}),r=document.createElement("div");return t.observe(r,{attributes:!0}),window.addEventListener("unload",function(){t.disconnect(),t=null},!1),function(t,n){e.push([t,n]),r.setAttribute("drainQueue","drainQueue")}}function i(){return function(e,t){setTimeout(function(){e(t)},1)}}var s,o="undefined"!=typeof window?window:{},a=o.MutationObserver||o.WebKitMutationObserver;s="function"==typeof setImmediate?r():"undefined"!=typeof process&&"[object process]"==={}.toString.call(process)?t():a?n():i(),e.async=s}),e("rsvp/config",["rsvp/async","exports"],function(e,t){"use strict";var r=e.async,n={};n.async=r,t.config=n}),e("rsvp/defer",["rsvp/promise","exports"],function(e,t){"use strict";function r(){var e={resolve:void 0,reject:void 0,promise:void 0};return e.promise=new n(function(t,r){e.resolve=t,e.reject=r}),e}var n=e.Promise;t.defer=r}),e("rsvp/events",["exports"],function(e){"use strict";var t=function(e,t){this.type=e;for(var r in t)t.hasOwnProperty(r)&&(this[r]=t[r])},r=function(e,t){for(var r=0,n=e.length;n>r;r++)if(e[r][0]===t)return r;return-1},n=function(e){var t=e._promiseCallbacks;return t||(t=e._promiseCallbacks={}),t},i={mixin:function(e){return e.on=this.on,e.off=this.off,e.trigger=this.trigger,e},on:function(e,t,i){var s,o,a=n(this);for(e=e.split(/\s+/),i=i||this;o=e.shift();)s=a[o],s||(s=a[o]=[]),-1===r(s,t)&&s.push([t,i])},off:function(e,t){var i,s,o,a=n(this);for(e=e.split(/\s+/);s=e.shift();)t?(i=a[s],o=r(i,t),-1!==o&&i.splice(o,1)):a[s]=[]},trigger:function(e,r){var i,s,o,a,u,c=n(this);if(i=c[e])for(var l=0;l<i.length;l++)s=i[l],o=s[0],a=s[1],"object"!=typeof r&&(r={detail:r}),u=new t(e,r),o.call(a,u)}};e.EventTarget=i}),e("rsvp/hash",["rsvp/defer","exports"],function(e,t){"use strict";function r(e){var t=0;for(var r in e)t++;return t}function n(e){var t={},n=i(),s=r(e);0===s&&n.resolve({});var o=function(e){return function(t){a(e,t)}},a=function(e,r){t[e]=r,0===--s&&n.resolve(t)},u=function(e){n.reject(e)};for(var c in e)e[c]&&"function"==typeof e[c].then?e[c].then(o(c),u):a(c,e[c]);return n.promise}var i=e.defer;t.hash=n}),e("rsvp/node",["rsvp/promise","rsvp/all","exports"],function(e,t,r){"use strict";function n(e,t){return function(r,n){r?t(r):arguments.length>2?e(Array.prototype.slice.call(arguments,1)):e(n)}}function i(e){return function(){var t,r,i=Array.prototype.slice.call(arguments),a=this,u=new s(function(e,n){t=e,r=n});return o(i).then(function(i){i.push(n(t,r));try{e.apply(a,i)}catch(s){r(s)}}),u}}var s=e.Promise,o=t.all;r.denodeify=i}),e("rsvp/promise",["rsvp/config","rsvp/events","exports"],function(e,t,r){"use strict";function n(e){return i(e)||"object"==typeof e&&null!==e}function i(e){return"function"==typeof e}function s(e){l.onerror&&l.onerror(e.detail)}function o(e,t){e===t?u(e,t):a(e,t)||u(e,t)}function a(e,t){var r,s=null;try{if(e===t)throw new TypeError("A promises callback cannot return that same promise.");if(n(t)&&(s=t.then,i(s)))return s.call(t,function(n){return r?!0:(r=!0,t!==n?o(e,n):u(e,n),void 0)},function(t){return r?!0:(r=!0,c(e,t),void 0)}),!0}catch(a){return c(e,a),!0}return!1}function u(e,t){l.async(function(){e.trigger("promise:resolved",{detail:t}),e.isFulfilled=!0,e.fulfillmentValue=t})}function c(e,t){l.async(function(){e.trigger("promise:failed",{detail:t}),e.isRejected=!0,e.rejectedReason=t})}var l=e.config,h=t.EventTarget,m=function(e){var t=this,r=!1;if("function"!=typeof e)throw new TypeError("You must pass a resolver function as the sole argument to the promise constructor");if(!(t instanceof m))return new m(e);var n=function(e){r||(r=!0,o(t,e))},i=function(e){r||(r=!0,c(t,e))};this.on("promise:resolved",function(e){this.trigger("success",{detail:e.detail})},this),this.on("promise:failed",function(e){this.trigger("error",{detail:e.detail})},this),this.on("error",s);try{e(n,i)}catch(a){i(a)}},f=function(e,t,r,n){var s,u,l,h,m=i(r);if(m)try{s=r(n.detail),l=!0}catch(f){h=!0,u=f}else s=n.detail,l=!0;a(t,s)||(m&&l?o(t,s):h?c(t,u):"resolve"===e?o(t,s):"reject"===e&&c(t,s))};m.prototype={constructor:m,isRejected:void 0,isFulfilled:void 0,rejectedReason:void 0,fulfillmentValue:void 0,then:function(e,t){this.off("error",s);var r=new this.constructor(function(){});return this.isFulfilled&&l.async(function(t){f("resolve",r,e,{detail:t.fulfillmentValue})},this),this.isRejected&&l.async(function(e){f("reject",r,t,{detail:e.rejectedReason})},this),this.on("promise:resolved",function(t){f("resolve",r,e,t)}),this.on("promise:failed",function(e){f("reject",r,t,e)}),r}},h.mixin(m.prototype),r.Promise=m}),e("rsvp/reject",["rsvp/promise","exports"],function(e,t){"use strict";function r(e){return new n(function(t,r){r(e)})}var n=e.Promise;t.reject=r}),e("rsvp/resolve",["rsvp/promise","exports"],function(e,t){"use strict";function r(e){return new n(function(t){t(e)})}var n=e.Promise;t.resolve=r}),e("rsvp",["rsvp/events","rsvp/promise","rsvp/node","rsvp/all","rsvp/hash","rsvp/defer","rsvp/config","rsvp/resolve","rsvp/reject","exports"],function(e,t,r,n,i,s,o,a,u,c){"use strict";function l(e,t){E[e]=t}var h=e.EventTarget,m=t.Promise,f=r.denodeify,p=n.all,d=i.hash,b=s.defer,E=o.config,v=a.resolve,g=u.reject;c.Promise=m,c.EventTarget=h,c.all=p,c.hash=d,c.defer=b,c.denodeify=f,c.configure=l,c.resolve=v,c.reject=g})}(),function(){e("container",[],function(){function e(e){this.parent=e,this.dict={}}function t(t){this.parent=t,this.children=[],this.resolver=t&&t.resolver||function(){},this.registry=new e(t&&t.registry),this.cache=new e(t&&t.cache),this.typeInjections=new e(t&&t.typeInjections),this.injections={},this._options=new e(t&&t._options),this._typeOptions=new e(t&&t._typeOptions)}function r(e){throw new Error(e+" is not currently supported on child containers")}function n(e,t){var r=s(e,t,"singleton");return r!==!1}function i(e,t){var r={};if(!t)return r;for(var n,i,s=0,o=t.length;o>s;s++){if(n=t[s],i=e.lookup(n.fullName),!i)throw new Error("Attempting to inject an unknown injection: `"+n.fullName+"`");r[n.property]=i}return r}function s(e,t,r){var n=e._options.get(t);if(n&&void 0!==n[r])return n[r];var i=t.split(":")[0];return n=e._typeOptions.get(i),n?n[r]:void 0}function o(e,t){var r=e.normalize(t);return e.resolve(r)}function a(e,t){var r,n=o(e,t),a=t.split(":"),u=a[0];if(s(e,t,"instantiate")===!1)return n;if(n){var c=[];c=c.concat(e.typeInjections.get(u)||[]),c=c.concat(e.injections[t]||[]);var l=i(e,c);return l.container=e,l._debugContainerKey=t,r=n.create(l)}}function u(e,t){e.cache.eachLocal(function(r,n){s(e,r,"instantiate")!==!1&&t(n)})}function c(e){e.cache.eachLocal(function(t,r){s(e,t,"instantiate")!==!1&&r.destroy()}),e.cache.dict={}}return e.prototype={parent:null,dict:null,get:function(e){var t=this.dict;return t.hasOwnProperty(e)?t[e]:this.parent?this.parent.get(e):void 0},set:function(e,t){this.dict[e]=t},remove:function(e){delete this.dict[e]},has:function(e){var t=this.dict;return t.hasOwnProperty(e)?!0:this.parent?this.parent.has(e):!1},eachLocal:function(e,t){var r=this.dict;for(var n in r)r.hasOwnProperty(n)&&e.call(t,n,r[n])}},t.prototype={parent:null,children:null,resolver:null,registry:null,cache:null,typeInjections:null,injections:null,_options:null,_typeOptions:null,child:function(){var e=new t(this);return this.children.push(e),e},set:function(e,t,r){e[t]=r},register:function(e,t,r,n){var i;-1!==e.indexOf(":")?(n=r,r=t,i=e):i=e+":"+t;var s=this.normalize(i);this.registry.set(s,r),this._options.set(s,n||{})},unregister:function(e){var t=this.normalize(e);this.registry.remove(t),this.cache.remove(t),this._options.remove(t)},resolve:function(e){return this.resolver(e)||this.registry.get(e)},describe:function(e){return e},normalize:function(e){return e},lookup:function(e,t){if(e=this.normalize(e),t=t||{},this.cache.has(e)&&t.singleton!==!1)return this.cache.get(e);var r=a(this,e);return r?(n(this,e)&&t.singleton!==!1&&this.cache.set(e,r),r):void 0},lookupFactory:function(e){return o(this,e)},has:function(e){return this.cache.has(e)?!0:!!o(this,e)},optionsForType:function(e,t){this.parent&&r("optionsForType"),this._typeOptions.set(e,t)},options:function(e,t){this.optionsForType(e,t)},typeInjection:function(e,t,n){this.parent&&r("typeInjection");var i=this.typeInjections.get(e);i||(i=[],this.typeInjections.set(e,i)),i.push({property:t,fullName:n})},injection:function(e,t,n){if(this.parent&&r("injection"),-1===e.indexOf(":"))return this.typeInjection(e,t,n);var i=this.injections[e]=this.injections[e]||[];i.push({property:t,fullName:n})},destroy:function(){this.isDestroyed=!0;for(var e=0,t=this.children.length;t>e;e++)this.children[e].destroy();this.children=[],u(this,function(e){e.destroy()}),delete this.parent,this.isDestroyed=!0},reset:function(){for(var e=0,t=this.children.length;t>e;e++)c(this.children[e]);c(this)}},t})}(),function(){function e(r,n,i,s){var o,a,u;if("object"!=typeof r||null===r)return r;if(n&&(a=t(i,r))>=0)return s[a];if("array"===Ember.typeOf(r)){if(o=r.slice(),n)for(a=o.length;--a>=0;)o[a]=e(o[a],n,i,s)}else if(Ember.Copyable&&Ember.Copyable.detect(r))o=r.copy(n,i,s);else{o={};for(u in r)r.hasOwnProperty(u)&&"__"!==u.substring(0,2)&&(o[u]=n?e(r[u],n,i,s):r[u])}return n&&(i.push(r),s.push(o)),o}var t=Ember.EnumerableUtils.indexOf;Ember.compare=function n(e,t){if(e===t)return 0;var r=Ember.typeOf(e),i=Ember.typeOf(t),s=Ember.Comparable;if(s){if("instance"===r&&s.detect(e.constructor))return e.constructor.compare(e,t);if("instance"===i&&s.detect(t.constructor))return 1-t.constructor.compare(t,e)}var o=Ember.ORDER_DEFINITION_MAPPING;if(!o){var a=Ember.ORDER_DEFINITION;o=Ember.ORDER_DEFINITION_MAPPING={};var u,c;for(u=0,c=a.length;c>u;++u)o[a[u]]=u;delete Ember.ORDER_DEFINITION}var l=o[r],h=o[i];if(h>l)return-1;if(l>h)return 1;switch(r){case"boolean":case"number":return t>e?-1:e>t?1:0;case"string":var m=e.localeCompare(t);return 0>m?-1:m>0?1:0;case"array":for(var f=e.length,p=t.length,d=Math.min(f,p),b=0,E=0;0===b&&d>E;)b=n(e[E],t[E]),E++;return 0!==b?b:p>f?-1:f>p?1:0;case"instance":return Ember.Comparable&&Ember.Comparable.detect(e)?e.compare(e,t):0;case"date":var v=e.getTime(),g=t.getTime();return g>v?-1:v>g?1:0;default:return 0}},Ember.copy=function(t,r){return"object"!=typeof t||null===t?t:Ember.Copyable&&Ember.Copyable.detect(t)?t.copy(r):e(t,r,r?[]:null,r?[]:null)},Ember.inspect=function(e){var t=Ember.typeOf(e);if("array"===t)return"["+e+"]";if("object"!==t)return e+"";var r,n=[];for(var i in e)if(e.hasOwnProperty(i)){if(r=e[i],"toString"===r)continue;"function"===Ember.typeOf(r)&&(r="function() { ... }"),n.push(i+": "+r)}return"{"+n.join(", ")+"}"},Ember.isEqual=function(e,t){return e&&"function"==typeof e.isEqual?e.isEqual(t):e===t},Ember.ORDER_DEFINITION=Ember.ENV.ORDER_DEFINITION||["undefined","null","boolean","number","string","array","object","instance","function","class","date"],Ember.keys=Object.keys,(!Ember.keys||Ember.create.isSimulated)&&(Ember.keys=function(e){var t=[];for(var r in e)"__"!==r.substring(0,2)&&"_super"!==r&&e.hasOwnProperty(r)&&t.push(r);return t});var r=["description","fileName","lineNumber","message","name","number","stack"];Ember.Error=function(){for(var e=Error.apply(this,arguments),t=0;t<r.length;t++)this[r[t]]=e[r[t]]},Ember.Error.prototype=Ember.create(Error.prototype)}(),function(){Ember.RSVP=t("rsvp")}(),function(){var e=/[ _]/g,t={},r=/([a-z])([A-Z])/g,n=/(\-|_|\.|\s)+(.)?/g,i=/([a-z\d])([A-Z]+)/g,s=/\-|\s+/g;Ember.STRINGS={},Ember.String={fmt:function(e,t){var r=0;return e.replace(/%@([0-9]+)?/g,function(e,n){return n=n?parseInt(n,10)-1:r++,e=t[n],null===e?"(null)":void 0===e?"":Ember.inspect(e)})},loc:function(e,t){return e=Ember.STRINGS[e]||e,Ember.String.fmt(e,t)},w:function(e){return e.split(/\s+/)},decamelize:function(e){return e.replace(r,"$1_$2").toLowerCase()},dasherize:function(r){var n,i=t,s=i.hasOwnProperty(r);return s?i[r]:(n=Ember.String.decamelize(r).replace(e,"-"),i[r]=n,n)},camelize:function(e){return e.replace(n,function(e,t,r){return r?r.toUpperCase():""}).replace(/^([A-Z])/,function(e){return e.toLowerCase()})},classify:function(e){for(var t=e.split("."),r=[],n=0,i=t.length;i>n;n++){var s=Ember.String.camelize(t[n]);r.push(s.charAt(0).toUpperCase()+s.substr(1))}return r.join(".")},underscore:function(e){return e.replace(i,"$1_$2").replace(s,"_").toLowerCase()},capitalize:function(e){return e.charAt(0).toUpperCase()+e.substr(1)}}}(),function(){var e=Ember.String.fmt,t=Ember.String.w,r=Ember.String.loc,n=Ember.String.camelize,i=Ember.String.decamelize,s=Ember.String.dasherize,o=Ember.String.underscore,a=Ember.String.capitalize,u=Ember.String.classify;(Ember.EXTEND_PROTOTYPES===!0||Ember.EXTEND_PROTOTYPES.String)&&(String.prototype.fmt=function(){return e(this,arguments)},String.prototype.w=function(){return t(this)},String.prototype.loc=function(){return r(this,arguments)},String.prototype.camelize=function(){return n(this)},String.prototype.decamelize=function(){return i(this)},String.prototype.dasherize=function(){return s(this)},String.prototype.underscore=function(){return o(this)},String.prototype.classify=function(){return u(this)},String.prototype.capitalize=function(){return a(this)})}(),function(){var e=Array.prototype.slice;(Ember.EXTEND_PROTOTYPES===!0||Ember.EXTEND_PROTOTYPES.Function)&&(Function.prototype.property=function(){var e=Ember.computed(this);return e.property.apply(e,arguments)},Function.prototype.observes=function(){return this.__ember_observes__=e.call(arguments),this},Function.prototype.observesBefore=function(){return this.__ember_observesBefore__=e.call(arguments),this})}(),function(){function e(){return 0===a.length?{}:a.pop()}function t(e){return a.push(e),null}function r(e,t){function r(r){var s=n(r,e);return i?t===s:!!s}var i=2===arguments.length;return r}var n=Ember.get,i=Ember.set,s=Array.prototype.slice,o=Ember.EnumerableUtils.indexOf,a=[];Ember.Enumerable=Ember.Mixin.create({nextObject:Ember.required(Function),firstObject:Ember.computed(function(){if(0===n(this,"length"))return void 0;var r,i=e();return r=this.nextObject(0,null,i),t(i),r}).property("[]"),lastObject:Ember.computed(function(){var r=n(this,"length");if(0===r)return void 0;var i,s=e(),o=0,a=null;do a=i,i=this.nextObject(o++,a,s);while(void 0!==i);return t(s),a}).property("[]"),contains:function(e){return void 0!==this.find(function(t){return t===e})},forEach:function(r,i){if("function"!=typeof r)throw new TypeError;var s=n(this,"length"),o=null,a=e();void 0===i&&(i=null);for(var u=0;s>u;u++){var c=this.nextObject(u,o,a);r.call(i,c,u,this),o=c}return o=null,a=t(a),this},getEach:function(e){return this.mapProperty(e)},setEach:function(e,t){return this.forEach(function(r){i(r,e,t)})},map:function(e,t){var r=Ember.A();return this.forEach(function(n,i,s){r[i]=e.call(t,n,i,s)}),r},mapProperty:function(e){return this.map(function(t){return n(t,e)})},filter:function(e,t){var r=Ember.A();return this.forEach(function(n,i,s){e.call(t,n,i,s)&&r.push(n)}),r},reject:function(e,t){return this.filter(function(){return!e.apply(t,arguments)})},filterProperty:function(){return this.filter(r.apply(this,arguments))},rejectProperty:function(e,t){var r=function(r){return n(r,e)===t},i=function(t){return!!n(t,e)},s=2===arguments.length?r:i;return this.reject(s)},find:function(r,i){var s=n(this,"length");void 0===i&&(i=null);for(var o,a,u=null,c=!1,l=e(),h=0;s>h&&!c;h++)o=this.nextObject(h,u,l),(c=r.call(i,o,h,this))&&(a=o),u=o;return o=u=null,l=t(l),a},findProperty:function(){return this.find(r.apply(this,arguments))},every:function(e,t){return!this.find(function(r,n,i){return!e.call(t,r,n,i)})},everyProperty:function(){return this.every(r.apply(this,arguments))},some:function(e,t){return!!this.find(function(r,n,i){return!!e.call(t,r,n,i)})},someProperty:function(){return this.some(r.apply(this,arguments))},reduce:function(e,t,r){if("function"!=typeof e)throw new TypeError;var n=t;return this.forEach(function(t,i){n=e.call(null,n,t,i,this,r)},this),n},invoke:function(e){var t,r=Ember.A();return arguments.length>1&&(t=s.call(arguments,1)),this.forEach(function(n,i){var s=n&&n[e];"function"==typeof s&&(r[i]=t?s.apply(n,t):s.call(n))},this),r},toArray:function(){var e=Ember.A();return this.forEach(function(t,r){e[r]=t}),e},compact:function(){return this.filter(function(e){return null!=e})},without:function(e){if(!this.contains(e))return this;var t=Ember.A();return this.forEach(function(r){r!==e&&(t[t.length]=r)}),t},uniq:function(){var e=Ember.A();return this.forEach(function(t){o(e,t)<0&&e.push(t)}),e},"[]":Ember.computed(function(){return this}),addEnumerableObserver:function(e,t){var r=t&&t.willChange||"enumerableWillChange",i=t&&t.didChange||"enumerableDidChange",s=n(this,"hasEnumerableObservers");return s||Ember.propertyWillChange(this,"hasEnumerableObservers"),Ember.addListener(this,"@enumerable:before",e,r),Ember.addListener(this,"@enumerable:change",e,i),s||Ember.propertyDidChange(this,"hasEnumerableObservers"),this},removeEnumerableObserver:function(e,t){var r=t&&t.willChange||"enumerableWillChange",i=t&&t.didChange||"enumerableDidChange",s=n(this,"hasEnumerableObservers");return s&&Ember.propertyWillChange(this,"hasEnumerableObservers"),Ember.removeListener(this,"@enumerable:before",e,r),Ember.removeListener(this,"@enumerable:change",e,i),s&&Ember.propertyDidChange(this,"hasEnumerableObservers"),this},hasEnumerableObservers:Ember.computed(function(){return Ember.hasListeners(this,"@enumerable:change")||Ember.hasListeners(this,"@enumerable:before")}),enumerableContentWillChange:function(e,t){var r,i,s;return r="number"==typeof e?e:e?n(e,"length"):e=-1,i="number"==typeof t?t:t?n(t,"length"):t=-1,s=0>i||0>r||0!==i-r,-1===e&&(e=null),-1===t&&(t=null),Ember.propertyWillChange(this,"[]"),s&&Ember.propertyWillChange(this,"length"),Ember.sendEvent(this,"@enumerable:before",[this,e,t]),this},enumerableContentDidChange:function(e,t){var r,i,s;return r="number"==typeof e?e:e?n(e,"length"):e=-1,i="number"==typeof t?t:t?n(t,"length"):t=-1,s=0>i||0>r||0!==i-r,-1===e&&(e=null),-1===t&&(t=null),Ember.sendEvent(this,"@enumerable:change",[this,e,t]),s&&Ember.propertyDidChange(this,"length"),Ember.propertyDidChange(this,"[]"),this}})}(),function(){var e=Ember.get,t=(Ember.set,Ember.isNone),r=Ember.EnumerableUtils.map,n=Ember.cacheFor;
17
+ Ember.Array=Ember.Mixin.create(Ember.Enumerable,{length:Ember.required(),objectAt:function(t){return 0>t||t>=e(this,"length")?void 0:e(this,t)},objectsAt:function(e){var t=this;return r(e,function(e){return t.objectAt(e)})},nextObject:function(e){return this.objectAt(e)},"[]":Ember.computed(function(t,r){return void 0!==r&&this.replace(0,e(this,"length"),r),this}),firstObject:Ember.computed(function(){return this.objectAt(0)}),lastObject:Ember.computed(function(){return this.objectAt(e(this,"length")-1)}),contains:function(e){return this.indexOf(e)>=0},slice:function(r,n){var i=Ember.A(),s=e(this,"length");for(t(r)&&(r=0),(t(n)||n>s)&&(n=s),0>r&&(r=s+r),0>n&&(n=s+n);n>r;)i[i.length]=this.objectAt(r++);return i},indexOf:function(t,r){var n,i=e(this,"length");for(void 0===r&&(r=0),0>r&&(r+=i),n=r;i>n;n++)if(this.objectAt(n)===t)return n;return-1},lastIndexOf:function(t,r){var n,i=e(this,"length");for((void 0===r||r>=i)&&(r=i-1),0>r&&(r+=i),n=r;n>=0;n--)if(this.objectAt(n)===t)return n;return-1},addArrayObserver:function(t,r){var n=r&&r.willChange||"arrayWillChange",i=r&&r.didChange||"arrayDidChange",s=e(this,"hasArrayObservers");return s||Ember.propertyWillChange(this,"hasArrayObservers"),Ember.addListener(this,"@array:before",t,n),Ember.addListener(this,"@array:change",t,i),s||Ember.propertyDidChange(this,"hasArrayObservers"),this},removeArrayObserver:function(t,r){var n=r&&r.willChange||"arrayWillChange",i=r&&r.didChange||"arrayDidChange",s=e(this,"hasArrayObservers");return s&&Ember.propertyWillChange(this,"hasArrayObservers"),Ember.removeListener(this,"@array:before",t,n),Ember.removeListener(this,"@array:change",t,i),s&&Ember.propertyDidChange(this,"hasArrayObservers"),this},hasArrayObservers:Ember.computed(function(){return Ember.hasListeners(this,"@array:change")||Ember.hasListeners(this,"@array:before")}),arrayContentWillChange:function(t,r,n){void 0===t?(t=0,r=n=-1):(void 0===r&&(r=-1),void 0===n&&(n=-1)),Ember.isWatching(this,"@each")&&e(this,"@each"),Ember.sendEvent(this,"@array:before",[this,t,r,n]);var i,s;if(t>=0&&r>=0&&e(this,"hasEnumerableObservers")){i=[],s=t+r;for(var o=t;s>o;o++)i.push(this.objectAt(o))}else i=r;return this.enumerableContentWillChange(i,n),this},arrayContentDidChange:function(t,r,i){void 0===t?(t=0,r=i=-1):(void 0===r&&(r=-1),void 0===i&&(i=-1));var s,o;if(t>=0&&i>=0&&e(this,"hasEnumerableObservers")){s=[],o=t+i;for(var a=t;o>a;a++)s.push(this.objectAt(a))}else s=i;this.enumerableContentDidChange(r,s),Ember.sendEvent(this,"@array:change",[this,t,r,i]);var u=e(this,"length"),c=n(this,"firstObject"),l=n(this,"lastObject");return this.objectAt(0)!==c&&(Ember.propertyWillChange(this,"firstObject"),Ember.propertyDidChange(this,"firstObject")),this.objectAt(u-1)!==l&&(Ember.propertyWillChange(this,"lastObject"),Ember.propertyDidChange(this,"lastObject")),this},"@each":Ember.computed(function(){return this.__each||(this.__each=new Ember.EachProxy(this)),this.__each})})}(),function(){Ember.Comparable=Ember.Mixin.create({compare:Ember.required(Function)})}(),function(){var e=Ember.get;Ember.set,Ember.Copyable=Ember.Mixin.create({copy:Ember.required(Function),frozenCopy:function(){if(Ember.Freezable&&Ember.Freezable.detect(this))return e(this,"isFrozen")?this:this.copy().freeze();throw new Error(Ember.String.fmt("%@ does not support freezing",[this]))}})}(),function(){var e=Ember.get,t=Ember.set;Ember.Freezable=Ember.Mixin.create({isFrozen:!1,freeze:function(){return e(this,"isFrozen")?this:(t(this,"isFrozen",!0),this)}}),Ember.FROZEN_ERROR="Frozen object cannot be modified."}(),function(){var e=Ember.EnumerableUtils.forEach;Ember.MutableEnumerable=Ember.Mixin.create(Ember.Enumerable,{addObject:Ember.required(Function),addObjects:function(t){return Ember.beginPropertyChanges(this),e(t,function(e){this.addObject(e)},this),Ember.endPropertyChanges(this),this},removeObject:Ember.required(Function),removeObjects:function(t){return Ember.beginPropertyChanges(this),e(t,function(e){this.removeObject(e)},this),Ember.endPropertyChanges(this),this}})}(),function(){var e="Index out of range",t=[],r=Ember.get;Ember.set,Ember.MutableArray=Ember.Mixin.create(Ember.Array,Ember.MutableEnumerable,{replace:Ember.required(),clear:function(){var e=r(this,"length");return 0===e?this:(this.replace(0,e,t),this)},insertAt:function(t,n){if(t>r(this,"length"))throw new Error(e);return this.replace(t,0,[n]),this},removeAt:function(n,i){if("number"==typeof n){if(0>n||n>=r(this,"length"))throw new Error(e);void 0===i&&(i=1),this.replace(n,i,t)}return this},pushObject:function(e){return this.insertAt(r(this,"length"),e),e},pushObjects:function(e){if(!Ember.Enumerable.detect(e)&&!Ember.isArray(e))throw new TypeError("Must pass Ember.Enumerable to Ember.MutableArray#pushObjects");return this.replace(r(this,"length"),0,e),this},popObject:function(){var e=r(this,"length");if(0===e)return null;var t=this.objectAt(e-1);return this.removeAt(e-1,1),t},shiftObject:function(){if(0===r(this,"length"))return null;var e=this.objectAt(0);return this.removeAt(0),e},unshiftObject:function(e){return this.insertAt(0,e),e},unshiftObjects:function(e){return this.replace(0,0,e),this},reverseObjects:function(){var e=r(this,"length");if(0===e)return this;var t=this.toArray().reverse();return this.replace(0,e,t),this},setObjects:function(e){if(0===e.length)return this.clear();var t=r(this,"length");return this.replace(0,t,e),this},removeObject:function(e){for(var t=r(this,"length")||0;--t>=0;){var n=this.objectAt(t);n===e&&this.removeAt(t)}return this},addObject:function(e){return this.contains(e)||this.pushObject(e),this}})}(),function(){var e=Ember.get,t=Ember.set;Ember.Observable=Ember.Mixin.create({get:function(t){return e(this,t)},getProperties:function(){var t={},r=arguments;1===arguments.length&&"array"===Ember.typeOf(arguments[0])&&(r=arguments[0]);for(var n=0;n<r.length;n++)t[r[n]]=e(this,r[n]);return t},set:function(e,r){return t(this,e,r),this},setProperties:function(e){return Ember.setProperties(this,e)},beginPropertyChanges:function(){return Ember.beginPropertyChanges(),this},endPropertyChanges:function(){return Ember.endPropertyChanges(),this},propertyWillChange:function(e){return Ember.propertyWillChange(this,e),this},propertyDidChange:function(e){return Ember.propertyDidChange(this,e),this},notifyPropertyChange:function(e){return this.propertyWillChange(e),this.propertyDidChange(e),this},addBeforeObserver:function(e,t,r){Ember.addBeforeObserver(this,e,t,r)},addObserver:function(e,t,r){Ember.addObserver(this,e,t,r)},removeObserver:function(e,t,r){Ember.removeObserver(this,e,t,r)},hasObserverFor:function(e){return Ember.hasListeners(this,e+":change")},getPath:function(e){return this.get(e)},setPath:function(e,t){return this.set(e,t)},getWithDefault:function(e,t){return Ember.getWithDefault(this,e,t)},incrementProperty:function(r,n){return Ember.isNone(n)&&(n=1),t(this,r,(e(this,r)||0)+n),e(this,r)},decrementProperty:function(r,n){return Ember.isNone(n)&&(n=1),t(this,r,(e(this,r)||0)-n),e(this,r)},toggleProperty:function(r){return t(this,r,!e(this,r)),e(this,r)},cacheFor:function(e){return Ember.cacheFor(this,e)},observersForKey:function(e){return Ember.observersFor(this,e)}})}(),function(){var e=Ember.get;Ember.set,Ember.TargetActionSupport=Ember.Mixin.create({target:null,action:null,actionContext:null,targetObject:Ember.computed(function(){var t=e(this,"target");if("string"===Ember.typeOf(t)){var r=e(this,t);return void 0===r&&(r=e(Ember.lookup,t)),r}return t}).property("target"),actionContextObject:Ember.computed(function(){var t=e(this,"actionContext");if("string"===Ember.typeOf(t)){var r=e(this,t);return void 0===r&&(r=e(Ember.lookup,t)),r}return t}).property("actionContext"),triggerAction:function(t){t=t||{};var r=t.action||e(this,"action"),n=t.target||e(this,"targetObject"),i=t.actionContext||e(this,"actionContextObject")||this;if(n&&r){var s;return s=n.send?n.send.apply(n,[r,i]):n[r].apply(n,[i]),s!==!1&&(s=!0),s}return!1}})}(),function(){Ember.Evented=Ember.Mixin.create({on:function(e,t,r){return Ember.addListener(this,e,t,r),this},one:function(e,t,r){return r||(r=t,t=null),Ember.addListener(this,e,t,r,!0),this},trigger:function(e){var t,r,n=[];for(t=1,r=arguments.length;r>t;t++)n.push(arguments[t]);Ember.sendEvent(this,e,n)},fire:function(){this.trigger.apply(this,arguments)},off:function(e,t,r){return Ember.removeListener(this,e,t,r),this},has:function(e){return Ember.hasListeners(this,e)}})}(),function(){var e=t("rsvp");e.configure("async",function(e,t){Ember.run.schedule("actions",t,e,t)});var r=Ember.get;Ember.DeferredMixin=Ember.Mixin.create({then:function(e,t){function n(t){return t===s?e(o):e(t)}var i,s,o;return o=this,i=r(this,"_deferred"),s=i.promise,s.then(e&&n,t)},resolve:function(e){var t,n;t=r(this,"_deferred"),n=t.promise,e===this?t.resolve(n):t.resolve(e)},reject:function(e){r(this,"_deferred").reject(e)},_deferred:Ember.computed(function(){return e.defer()})})}(),function(){Ember.Container=t("container"),Ember.Container.set=Ember.set}(),function(){function e(){var e,t,s=!1,o=function(){s||o.proto(),n(this,i,v),n(this,"_super",v);var u=a(this);if(u.proto=this,e){var l=e;e=null,this.reopen.apply(this,l)}if(t){var h=t;t=null;for(var m=this.concatenatedProperties,f=0,d=h.length;d>f;f++){var g=h[f];for(var y in g)if(g.hasOwnProperty(y)){var w=g[y],_=Ember.IS_BINDING;if(_.test(y)){var C=u.bindings;C?u.hasOwnProperty("bindings")||(C=u.bindings=r(u.bindings)):C=u.bindings={},C[y]=w}var O=u.descs[y];if(m&&E(m,y)>=0){var S=this[y];w=S?"function"==typeof S.concat?S.concat(w):Ember.makeArray(S).concat(w):Ember.makeArray(w)}O?O.set(this,y,w):"function"!=typeof this.setUnknownProperty||y in this?b?Ember.defineProperty(this,y,null,w):this[y]=w:this.setUnknownProperty(y,w)}}}p(this,u),delete u.proto,c(this),this.init.apply(this,arguments)};return o.toString=m.prototype.toString,o.willReopen=function(){s&&(o.PrototypeMixin=m.create(o.PrototypeMixin)),s=!1},o._initMixins=function(t){e=t},o._initProperties=function(e){t=e},o.proto=function(){var e=o.superclass;return e&&e.proto(),s||(s=!0,o.PrototypeMixin.applyPartial(o.prototype),u(o.prototype)),this.prototype},o}function t(e){return function(){return e}}var r=(Ember.set,Ember.get,Ember.create),n=Ember.platform.defineProperty,i=Ember.GUID_KEY,s=Ember.guidFor,o=Ember.generateGuid,a=Ember.meta,u=Ember.rewatch,c=Ember.finishChains,l=Ember.destroy,h=Ember.run.schedule,m=Ember.Mixin,f=m._apply,p=m.finishPartial,d=m.prototype.reopen,b=Ember.ENV.MANDATORY_SETTER,E=Ember.EnumerableUtils.indexOf,v={configurable:!0,writable:!0,enumerable:!1,value:void 0},g=e();g.toString=function(){return"Ember.CoreObject"},g.PrototypeMixin=m.create({reopen:function(){return f(this,arguments,!0),this},isInstance:!0,init:function(){},concatenatedProperties:null,isDestroyed:!1,isDestroying:!1,destroy:function(){return this.isDestroying?void 0:(this.isDestroying=!0,h("actions",this,this.willDestroy),h("destroy",this,this._scheduledDestroy),this)},willDestroy:Ember.K,_scheduledDestroy:function(){this.isDestroyed||(l(this),this.isDestroyed=!0)},bind:function(e,t){return t instanceof Ember.Binding||(t=Ember.Binding.from(t)),t.to(e).connect(this),t},toString:function(){var e="function"==typeof this.toStringExtension,r=e?":"+this.toStringExtension():"",n="<"+this.constructor.toString()+":"+s(this)+r+">";return this.toString=t(n),n}}),g.PrototypeMixin.ownerConstructor=g,Ember.config.overridePrototypeMixin&&Ember.config.overridePrototypeMixin(g.PrototypeMixin),g.__super__=null;var y=m.create({ClassMixin:Ember.required(),PrototypeMixin:Ember.required(),isClass:!0,isMethod:!1,extend:function(){var t,n=e();return n.ClassMixin=m.create(this.ClassMixin),n.PrototypeMixin=m.create(this.PrototypeMixin),n.ClassMixin.ownerConstructor=n,n.PrototypeMixin.ownerConstructor=n,d.apply(n.PrototypeMixin,arguments),n.superclass=this,n.__super__=this.prototype,t=n.prototype=r(this.prototype),t.constructor=n,o(t,"ember"),a(t).proto=t,n.ClassMixin.apply(n),n},createWithMixins:function(){var e=this;return arguments.length>0&&this._initMixins(arguments),new e},create:function(){var e=this;return arguments.length>0&&this._initProperties(arguments),new e},reopen:function(){return this.willReopen(),d.apply(this.PrototypeMixin,arguments),this},reopenClass:function(){return d.apply(this.ClassMixin,arguments),f(this,arguments,!1),this},detect:function(e){if("function"!=typeof e)return!1;for(;e;){if(e===this)return!0;e=e.superclass}return!1},detectInstance:function(e){return e instanceof this},metaForProperty:function(e){var t=a(this.proto(),!1).descs[e];return t._meta||{}},eachComputedProperty:function(e,t){var r,n=this.proto(),i=a(n).descs,s={};for(var o in i)r=i[o],r instanceof Ember.ComputedProperty&&e.call(t||this,o,r._meta||s)}});y.ownerConstructor=g,Ember.config.overrideClassMixin&&Ember.config.overrideClassMixin(y),g.ClassMixin=y,y.apply(g),Ember.CoreObject=g}(),function(){Ember.Object=Ember.CoreObject.extend(Ember.Observable),Ember.Object.toString=function(){return"Ember.Object"}}(),function(){function e(t,r,i){var o=t.length;c[t.join(".")]=r;for(var a in r)if(l.call(r,a)){var u=r[a];if(t[o]=a,u&&u.toString===n)u.toString=s(t.join(".")),u[m]=t.join(".");else if(u&&u.isNamespace){if(i[h(u)])continue;i[h(u)]=!0,e(t,u,i)}}t.length=o}function t(){var e,t,r=Ember.Namespace,n=Ember.lookup;if(!r.PROCESSED)for(var i in n)if("parent"!==i&&"top"!==i&&"frameElement"!==i&&"webkitStorageInfo"!==i&&!("globalStorage"===i&&n.StorageList&&n.globalStorage instanceof n.StorageList||n.hasOwnProperty&&!n.hasOwnProperty(i))){try{e=Ember.lookup[i],t=e&&e.isNamespace}catch(s){continue}t&&(e[m]=i)}}function r(e){var t=e.superclass;return t?t[m]?t[m]:r(t):void 0}function n(){Ember.BOOTED||this[m]||i();var e;if(this[m])e=this[m];else{var t=r(this);e=t?"(subclass of "+t+")":"(unknown mixin)",this.toString=s(e)}return e}function i(){var r=!u.PROCESSED,n=Ember.anyUnprocessedMixins;if(r&&(t(),u.PROCESSED=!0),r||n){for(var i,s=u.NAMESPACES,o=0,a=s.length;a>o;o++)i=s[o],e([i.toString()],i,{});Ember.anyUnprocessedMixins=!1}}function s(e){return function(){return e}}var o=Ember.get,a=Ember.ArrayPolyfills.indexOf,u=Ember.Namespace=Ember.Object.extend({isNamespace:!0,init:function(){Ember.Namespace.NAMESPACES.push(this),Ember.Namespace.PROCESSED=!1},toString:function(){var e=o(this,"name");return e?e:(t(),this[Ember.GUID_KEY+"_name"])},nameClasses:function(){e([this.toString()],this,{})},destroy:function(){var e=Ember.Namespace.NAMESPACES;Ember.lookup[this.toString()]=void 0,e.splice(a.call(e,this),1),this._super()}});u.reopenClass({NAMESPACES:[Ember],NAMESPACES_BY_ID:{},PROCESSED:!1,processAll:i,byName:function(e){return Ember.BOOTED||i(),c[e]}});var c=u.NAMESPACES_BY_ID,l={}.hasOwnProperty,h=Ember.guidFor,m=Ember.NAME_KEY=Ember.GUID_KEY+"_name";Ember.Mixin.prototype.toString=n}(),function(){Ember.Application=Ember.Namespace.extend()}(),function(){var e="Index out of range",t=[],r=Ember.get;Ember.set,Ember.ArrayProxy=Ember.Object.extend(Ember.MutableArray,{content:null,arrangedContent:Ember.computed.alias("content"),objectAtContent:function(e){return r(this,"arrangedContent").objectAt(e)},replaceContent:function(e,t,n){r(this,"content").replace(e,t,n)},_contentWillChange:Ember.beforeObserver(function(){this._teardownContent()},"content"),_teardownContent:function(){var e=r(this,"content");e&&e.removeArrayObserver(this,{willChange:"contentArrayWillChange",didChange:"contentArrayDidChange"})},contentArrayWillChange:Ember.K,contentArrayDidChange:Ember.K,_contentDidChange:Ember.observer(function(){r(this,"content"),this._setupContent()},"content"),_setupContent:function(){var e=r(this,"content");e&&e.addArrayObserver(this,{willChange:"contentArrayWillChange",didChange:"contentArrayDidChange"})},_arrangedContentWillChange:Ember.beforeObserver(function(){var e=r(this,"arrangedContent"),t=e?r(e,"length"):0;this.arrangedContentArrayWillChange(this,0,t,void 0),this.arrangedContentWillChange(this),this._teardownArrangedContent(e)},"arrangedContent"),_arrangedContentDidChange:Ember.observer(function(){var e=r(this,"arrangedContent"),t=e?r(e,"length"):0;this._setupArrangedContent(),this.arrangedContentDidChange(this),this.arrangedContentArrayDidChange(this,0,void 0,t)},"arrangedContent"),_setupArrangedContent:function(){var e=r(this,"arrangedContent");e&&e.addArrayObserver(this,{willChange:"arrangedContentArrayWillChange",didChange:"arrangedContentArrayDidChange"})},_teardownArrangedContent:function(){var e=r(this,"arrangedContent");e&&e.removeArrayObserver(this,{willChange:"arrangedContentArrayWillChange",didChange:"arrangedContentArrayDidChange"})},arrangedContentWillChange:Ember.K,arrangedContentDidChange:Ember.K,objectAt:function(e){return r(this,"content")&&this.objectAtContent(e)},length:Ember.computed(function(){var e=r(this,"arrangedContent");return e?r(e,"length"):0}),_replace:function(e,t,n){var i=r(this,"content");return i&&this.replaceContent(e,t,n),this},replace:function(){if(r(this,"arrangedContent")!==r(this,"content"))throw new Ember.Error("Using replace on an arranged ArrayProxy is not allowed.");this._replace.apply(this,arguments)},_insertAt:function(t,n){if(t>r(this,"content.length"))throw new Error(e);return this._replace(t,0,[n]),this},insertAt:function(e,t){if(r(this,"arrangedContent")===r(this,"content"))return this._insertAt(e,t);throw new Ember.Error("Using insertAt on an arranged ArrayProxy is not allowed.")},removeAt:function(n,i){if("number"==typeof n){var s,o=r(this,"content"),a=r(this,"arrangedContent"),u=[];if(0>n||n>=r(this,"length"))throw new Error(e);for(void 0===i&&(i=1),s=n;n+i>s;s++)u.push(o.indexOf(a.objectAt(s)));for(u.sort(function(e,t){return t-e}),Ember.beginPropertyChanges(),s=0;s<u.length;s++)this._replace(u[s],1,t);Ember.endPropertyChanges()}return this},pushObject:function(e){return this._insertAt(r(this,"content.length"),e),e},pushObjects:function(e){if(!Ember.Enumerable.detect(e)&&!Ember.isArray(e))throw new TypeError("Must pass Ember.Enumerable to Ember.MutableArray#pushObjects");return this._replace(r(this,"length"),0,e),this},setObjects:function(e){if(0===e.length)return this.clear();var t=r(this,"length");return this._replace(0,t,e),this},unshiftObject:function(e){return this._insertAt(0,e),e},unshiftObjects:function(e){return this._replace(0,0,e),this},slice:function(){var e=this.toArray();return e.slice.apply(e,arguments)},arrangedContentArrayWillChange:function(e,t,r,n){this.arrayContentWillChange(t,r,n)},arrangedContentArrayDidChange:function(e,t,r,n){this.arrayContentDidChange(t,r,n)},init:function(){this._super(),this._setupContent(),this._setupArrangedContent()},willDestroy:function(){this._teardownArrangedContent(),this._teardownContent()}})}(),function(){function e(e,t){var r=t.slice(8);r in this||u(this,r)}function t(e,t){var r=t.slice(8);r in this||c(this,r)}var r=Ember.get,n=Ember.set,i=(Ember.String.fmt,Ember.addBeforeObserver),s=Ember.addObserver,o=Ember.removeBeforeObserver,a=Ember.removeObserver,u=Ember.propertyWillChange,c=Ember.propertyDidChange;Ember.ObjectProxy=Ember.Object.extend({content:null,_contentDidChange:Ember.observer(function(){},"content"),isTruthy:Ember.computed.bool("content"),_debugContainerKey:null,willWatchProperty:function(r){var n="content."+r;i(this,n,null,e),s(this,n,null,t)},didUnwatchProperty:function(r){var n="content."+r;o(this,n,null,e),a(this,n,null,t)},unknownProperty:function(e){var t=r(this,"content");return t?r(t,e):void 0},setUnknownProperty:function(e,t){var i=r(this,"content");return n(i,e,t)}}),Ember.ObjectProxy.reopenClass({create:function(){var e,t,r,n,i,s;if(arguments.length){for(t=this.proto(),r=0,n=arguments.length;n>r;r++){i=arguments[r];for(s in i)!i.hasOwnProperty(s)||s in t||(e||(e={}),e[s]=null)}e&&this._initMixins([e])}return this._super.apply(this,arguments)}})}(),function(){function e(e,t,r,i,s){var o,a=r._objects;for(a||(a=r._objects={});--s>=i;){var u=e.objectAt(s);u&&(Ember.addBeforeObserver(u,t,r,"contentKeyWillChange"),Ember.addObserver(u,t,r,"contentKeyDidChange"),o=n(u),a[o]||(a[o]=[]),a[o].push(s))}}function t(e,t,r,i,s){var o=r._objects;o||(o=r._objects={});for(var a,u;--s>=i;){var c=e.objectAt(s);c&&(Ember.removeBeforeObserver(c,t,r,"contentKeyWillChange"),Ember.removeObserver(c,t,r,"contentKeyDidChange"),u=n(c),a=o[u],a[a.indexOf(s)]=null)}}var r=(Ember.set,Ember.get),n=Ember.guidFor,i=Ember.EnumerableUtils.forEach,s=Ember.Object.extend(Ember.Array,{init:function(e,t,r){this._super(),this._keyName=t,this._owner=r,this._content=e},objectAt:function(e){var t=this._content.objectAt(e);return t&&r(t,this._keyName)},length:Ember.computed(function(){var e=this._content;return e?r(e,"length"):0})}),o=/^.+:(before|change)$/;Ember.EachProxy=Ember.Object.extend({init:function(e){this._super(),this._content=e,e.addArrayObserver(this),i(Ember.watchedEvents(this),function(e){this.didAddListener(e)},this)},unknownProperty:function(e){var t;return t=new s(this._content,e,this),Ember.defineProperty(this,e,null,t),this.beginObservingContentKey(e),t},arrayWillChange:function(e,r,n){var i,s,o=this._keys;s=n>0?r+n:-1,Ember.beginPropertyChanges(this);for(i in o)o.hasOwnProperty(i)&&(s>0&&t(e,i,this,r,s),Ember.propertyWillChange(this,i));Ember.propertyWillChange(this._content,"@each"),Ember.endPropertyChanges(this)},arrayDidChange:function(t,r,n,i){var s,o=this._keys;s=i>0?r+i:-1,Ember.changeProperties(function(){for(var n in o)o.hasOwnProperty(n)&&(s>0&&e(t,n,this,r,s),Ember.propertyDidChange(this,n));Ember.propertyDidChange(this._content,"@each")},this)},didAddListener:function(e){o.test(e)&&this.beginObservingContentKey(e.slice(0,-7))},didRemoveListener:function(e){o.test(e)&&this.stopObservingContentKey(e.slice(0,-7))},beginObservingContentKey:function(t){var n=this._keys;if(n||(n=this._keys={}),n[t])n[t]++;else{n[t]=1;var i=this._content,s=r(i,"length");e(i,t,this,0,s)}},stopObservingContentKey:function(e){var n=this._keys;if(n&&n[e]>0&&--n[e]<=0){var i=this._content,s=r(i,"length");t(i,e,this,0,s)}},contentKeyWillChange:function(e,t){Ember.propertyWillChange(this,t)},contentKeyDidChange:function(e,t){Ember.propertyDidChange(this,t)}})}(),function(){var e=Ember.get;Ember.set;var t=Ember.Mixin.create(Ember.MutableArray,Ember.Observable,Ember.Copyable,{get:function(e){return"length"===e?this.length:"number"==typeof e?this[e]:this._super(e)},objectAt:function(e){return this[e]},replace:function(t,r,n){if(this.isFrozen)throw Ember.FROZEN_ERROR;var i=n?e(n,"length"):0;if(this.arrayContentWillChange(t,r,i),n&&0!==n.length){var s=[t,r].concat(n);this.splice.apply(this,s)}else this.splice(t,r);return this.arrayContentDidChange(t,r,i),this},unknownProperty:function(e,t){var r;return void 0!==t&&void 0===r&&(r=this[e]=t),r},indexOf:function(e,t){var r,n=this.length;for(t=void 0===t?0:0>t?Math.ceil(t):Math.floor(t),0>t&&(t+=n),r=t;n>r;r++)if(this[r]===e)return r;return-1},lastIndexOf:function(e,t){var r,n=this.length;for(t=void 0===t?n-1:0>t?Math.ceil(t):Math.floor(t),0>t&&(t+=n),r=t;r>=0;r--)if(this[r]===e)return r;return-1},copy:function(e){return e?this.map(function(e){return Ember.copy(e,!0)}):this.slice()}}),r=["length"];Ember.EnumerableUtils.forEach(t.keys(),function(e){Array.prototype[e]&&r.push(e)}),r.length>0&&(t=t.without.apply(t,r)),Ember.NativeArray=t,Ember.A=function(e){return void 0===e&&(e=[]),Ember.Array.detect(e)?e:Ember.NativeArray.apply(e)},Ember.NativeArray.activate=function(){t.apply(Array.prototype),Ember.A=function(e){return e||[]}},(Ember.EXTEND_PROTOTYPES===!0||Ember.EXTEND_PROTOTYPES.Array)&&Ember.NativeArray.activate()}(),function(){var e=Ember.get,t=Ember.set,r=Ember.guidFor,n=Ember.isNone,i=Ember.String.fmt;Ember.Set=Ember.CoreObject.extend(Ember.MutableEnumerable,Ember.Copyable,Ember.Freezable,{length:0,clear:function(){if(this.isFrozen)throw new Error(Ember.FROZEN_ERROR);var n=e(this,"length");if(0===n)return this;var i;this.enumerableContentWillChange(n,0),Ember.propertyWillChange(this,"firstObject"),Ember.propertyWillChange(this,"lastObject");for(var s=0;n>s;s++)i=r(this[s]),delete this[i],delete this[s];return t(this,"length",0),Ember.propertyDidChange(this,"firstObject"),Ember.propertyDidChange(this,"lastObject"),this.enumerableContentDidChange(n,0),this},isEqual:function(t){if(!Ember.Enumerable.detect(t))return!1;var r=e(this,"length");if(e(t,"length")!==r)return!1;for(;--r>=0;)if(!t.contains(this[r]))return!1;return!0},add:Ember.aliasMethod("addObject"),remove:Ember.aliasMethod("removeObject"),pop:function(){if(e(this,"isFrozen"))throw new Error(Ember.FROZEN_ERROR);var t=this.length>0?this[this.length-1]:null;return this.remove(t),t},push:Ember.aliasMethod("addObject"),shift:Ember.aliasMethod("pop"),unshift:Ember.aliasMethod("push"),addEach:Ember.aliasMethod("addObjects"),removeEach:Ember.aliasMethod("removeObjects"),init:function(e){this._super(),e&&this.addObjects(e)},nextObject:function(e){return this[e]},firstObject:Ember.computed(function(){return this.length>0?this[0]:void 0}),lastObject:Ember.computed(function(){return this.length>0?this[this.length-1]:void 0}),addObject:function(i){if(e(this,"isFrozen"))throw new Error(Ember.FROZEN_ERROR);if(n(i))return this;var s,o=r(i),a=this[o],u=e(this,"length");return a>=0&&u>a&&this[a]===i?this:(s=[i],this.enumerableContentWillChange(null,s),Ember.propertyWillChange(this,"lastObject"),u=e(this,"length"),this[o]=u,this[u]=i,t(this,"length",u+1),Ember.propertyDidChange(this,"lastObject"),this.enumerableContentDidChange(null,s),this)},removeObject:function(i){if(e(this,"isFrozen"))throw new Error(Ember.FROZEN_ERROR);if(n(i))return this;var s,o,a=r(i),u=this[a],c=e(this,"length"),l=0===u,h=u===c-1;return u>=0&&c>u&&this[u]===i&&(o=[i],this.enumerableContentWillChange(o,null),l&&Ember.propertyWillChange(this,"firstObject"),h&&Ember.propertyWillChange(this,"lastObject"),c-1>u&&(s=this[c-1],this[u]=s,this[r(s)]=u),delete this[a],delete this[c-1],t(this,"length",c-1),l&&Ember.propertyDidChange(this,"firstObject"),h&&Ember.propertyDidChange(this,"lastObject"),this.enumerableContentDidChange(o,null)),this},contains:function(e){return this[r(e)]>=0},copy:function(){var n=this.constructor,i=new n,s=e(this,"length");for(t(i,"length",s);--s>=0;)i[s]=this[s],i[r(this[s])]=s;return i},toString:function(){var e,t=this.length,r=[];for(e=0;t>e;e++)r[e]=this[e];return i("Ember.Set<%@>",[r.join(",")])}})}(),function(){var e=Ember.DeferredMixin;Ember.get;var t=Ember.Object.extend(e);t.reopenClass({promise:function(e,r){var n=t.create();return e.call(r,n),n}}),Ember.Deferred=t}(),function(){var e=Ember.ArrayPolyfills.forEach,t=Ember.ENV.EMBER_LOAD_HOOKS||{},r={};Ember.onLoad=function(e,n){var i;t[e]=t[e]||Ember.A(),t[e].pushObject(n),(i=r[e])&&n(i)},Ember.runLoadHooks=function(n,i){r[n]=i,t[n]&&e.call(t[n],function(e){e(i)})}}(),function(){var e=Ember.get;Ember.ControllerMixin=Ember.Mixin.create({isController:!0,target:null,container:null,parentController:null,store:null,model:Ember.computed.alias("content"),send:function(t){var r,n=[].slice.call(arguments,1);this[t]?this[t].apply(this,n):(r=e(this,"target"))&&r.send.apply(r,arguments)}}),Ember.Controller=Ember.Object.extend(Ember.ControllerMixin)}(),function(){var e=Ember.get,t=(Ember.set,Ember.EnumerableUtils.forEach);Ember.SortableMixin=Ember.Mixin.create(Ember.MutableEnumerable,{sortProperties:null,sortAscending:!0,sortFunction:Ember.compare,orderBy:function(r,n){var i=0,s=e(this,"sortProperties"),o=e(this,"sortAscending"),a=e(this,"sortFunction");return t(s,function(t){0===i&&(i=a(e(r,t),e(n,t)),0===i||o||(i=-1*i))}),i},destroy:function(){var r=e(this,"content"),n=e(this,"sortProperties");return r&&n&&t(r,function(e){t(n,function(t){Ember.removeObserver(e,t,this,"contentItemSortPropertyDidChange")},this)},this),this._super()},isSorted:Ember.computed.bool("sortProperties"),arrangedContent:Ember.computed("content","sortProperties.@each",function(){var r=e(this,"content"),n=e(this,"isSorted"),i=e(this,"sortProperties"),s=this;return r&&n?(r=r.slice(),r.sort(function(e,t){return s.orderBy(e,t)}),t(r,function(e){t(i,function(t){Ember.addObserver(e,t,this,"contentItemSortPropertyDidChange")},this)},this),Ember.A(r)):r}),_contentWillChange:Ember.beforeObserver(function(){var r=e(this,"content"),n=e(this,"sortProperties");r&&n&&t(r,function(e){t(n,function(t){Ember.removeObserver(e,t,this,"contentItemSortPropertyDidChange")},this)},this),this._super()},"content"),sortAscendingWillChange:Ember.beforeObserver(function(){this._lastSortAscending=e(this,"sortAscending")},"sortAscending"),sortAscendingDidChange:Ember.observer(function(){if(e(this,"sortAscending")!==this._lastSortAscending){var t=e(this,"arrangedContent");t.reverseObjects()}},"sortAscending"),contentArrayWillChange:function(r,n,i,s){var o=e(this,"isSorted");if(o){var a=e(this,"arrangedContent"),u=r.slice(n,n+i),c=e(this,"sortProperties");t(u,function(e){a.removeObject(e),t(c,function(t){Ember.removeObserver(e,t,this,"contentItemSortPropertyDidChange")},this)},this)}return this._super(r,n,i,s)},contentArrayDidChange:function(r,n,i,s){var o=e(this,"isSorted"),a=e(this,"sortProperties");if(o){var u=r.slice(n,n+s);t(u,function(e){this.insertItemSorted(e),t(a,function(t){Ember.addObserver(e,t,this,"contentItemSortPropertyDidChange")},this)},this)}return this._super(r,n,i,s)},insertItemSorted:function(t){var r=e(this,"arrangedContent"),n=e(r,"length"),i=this._binarySearch(t,0,n);r.insertAt(i,t)},contentItemSortPropertyDidChange:function(t){var r=e(this,"arrangedContent"),n=r.indexOf(t),i=r.objectAt(n-1),s=r.objectAt(n+1),o=i&&this.orderBy(t,i),a=s&&this.orderBy(t,s);(0>o||a>0)&&(r.removeObject(t),this.insertItemSorted(t))},_binarySearch:function(t,r,n){var i,s,o,a;return r===n?r:(a=e(this,"arrangedContent"),i=r+Math.floor((n-r)/2),s=a.objectAt(i),o=this.orderBy(s,t),0>o?this._binarySearch(t,i+1,n):o>0?this._binarySearch(t,r,i):i)}})}(),function(){var e=Ember.get,t=(Ember.set,Ember.EnumerableUtils.forEach),r=Ember.EnumerableUtils.replace;Ember.ArrayController=Ember.ArrayProxy.extend(Ember.ControllerMixin,Ember.SortableMixin,{itemController:null,lookupItemController:function(){return e(this,"itemController")},objectAtContent:function(t){var r=e(this,"length"),n=e(this,"arrangedContent"),i=n&&n.objectAt(t);if(t>=0&&r>t){var s=this.lookupItemController(i);if(s)return this.controllerAt(t,i,s)}return i},arrangedContentDidChange:function(){this._super(),this._resetSubControllers()},arrayContentDidChange:function(n,i,s){var o=e(this,"_subControllers"),a=o.slice(n,n+i);t(a,function(e){e&&e.destroy()}),r(o,n,i,new Array(s)),this._super(n,i,s)},init:function(){this.get("content")||Ember.defineProperty(this,"content",void 0,Ember.A()),this._super(),this.set("_subControllers",Ember.A())},controllerAt:function(t,r,n){var i=e(this,"container"),s=e(this,"_subControllers"),o=s[t];if(o||(o=i.lookup("controller:"+n,{singleton:!1}),s[t]=o),!o)throw new Error('Could not resolve itemController: "'+n+'"');return o.set("target",this),o.set("parentController",e(this,"parentController")||this),o.set("content",r),o},_subControllers:null,_resetSubControllers:function(){var r=e(this,"_subControllers");r&&t(r,function(e){e&&e.destroy()}),this.set("_subControllers",Ember.A())}})}(),function(){Ember.ObjectController=Ember.ObjectProxy.extend(Ember.ControllerMixin)}(),function(){var e=Ember.imports.jQuery;Ember.$=e}(),function(){if(Ember.$){var e=Ember.String.w("dragstart drag dragenter dragleave dragover drop dragend");Ember.EnumerableUtils.forEach(e,function(e){Ember.$.event.fixHooks[e]={props:["dataTransfer"]}})}}(),function(){function e(e){var t=e.shiftKey||e.metaKey||e.altKey||e.ctrlKey,r=e.which>1;return!t&&!r}var t=this.document&&function(){var e=document.createElement("div");return e.innerHTML="<div></div>",e.firstChild.innerHTML="<script></script>",""===e.firstChild.innerHTML}(),r=this.document&&function(){var e=document.createElement("div");return e.innerHTML="Test: <script type='text/x-placeholder'></script>Value","Test:"===e.childNodes[0].nodeValue&&" Value"===e.childNodes[2].nodeValue}(),n=function(e,t){if(e.getAttribute("id")===t)return e;var r,i,s,o=e.childNodes.length;for(r=0;o>r;r++)if(i=e.childNodes[r],s=1===i.nodeType&&n(i,t))return s},i=function(e,i){t&&(i="&shy;"+i);var s=[];if(r&&(i=i.replace(/(\s+)(<script id='([^']+)')/g,function(e,t,r,n){return s.push([n,t]),r})),e.innerHTML=i,s.length>0){var o,a=s.length;for(o=0;a>o;o++){var u=n(e,s[o][0]),c=document.createTextNode(s[o][1]);u.parentNode.insertBefore(c,u)}}if(t){for(var l=e.firstChild;1===l.nodeType&&!l.nodeName;)l=l.firstChild;3===l.nodeType&&"­"===l.nodeValue.charAt(0)&&(l.nodeValue=l.nodeValue.slice(1))}},s={},o=function(e){if(void 0!==s[e])return s[e];var t=!0;if("select"===e.toLowerCase()){var r=document.createElement("select");i(r,'<option value="test">Test</option>'),t=1===r.options.length
18
+ }return s[e]=t,t},a=function(e,t){var r=e.tagName;if(o(r))i(e,t);else{var n=e.outerHTML||(new XMLSerializer).serializeToString(e),s=n.match(new RegExp("<"+r+"([^>]*)>","i"))[0],a="</"+r+">",u=document.createElement("div");for(i(u,s+t+a),e=u.firstChild;e.tagName!==r;)e=e.nextSibling}return e};Ember.ViewUtils={setInnerHTML:a,isSimpleClick:e}}(),function(){function e(e){return e?n.test(e)?e.replace(i,""):e:e}function t(e){var t={"<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#x27;","`":"&#x60;"},r=function(e){return t[e]||"&amp;"},n=e.toString();return o.test(n)?n.replace(s,r):n}Ember.get,Ember.set;var r=function(){this.seen={},this.list=[]};r.prototype={add:function(e){e in this.seen||(this.seen[e]=!0,this.list.push(e))},toDOM:function(){return this.list.join(" ")}};var n=/[^a-zA-Z0-9\-]/,i=/[^a-zA-Z0-9\-]/g,s=/&(?!\w+;)|[<>"'`]/g,o=/[&<>"'`]/;Ember.RenderBuffer=function(e){return new Ember._RenderBuffer(e)},Ember._RenderBuffer=function(e){this.tagNames=[e||null],this.buffer=""},Ember._RenderBuffer.prototype={_element:null,_hasElement:!0,elementClasses:null,classes:null,elementId:null,elementAttributes:null,elementProperties:null,elementTag:null,elementStyle:null,parentBuffer:null,push:function(e){return this.buffer+=e,this},addClass:function(e){return this.elementClasses=this.elementClasses||new r,this.elementClasses.add(e),this.classes=this.elementClasses.list,this},setClasses:function(e){this.classes=e},id:function(e){return this.elementId=e,this},attr:function(e,t){var r=this.elementAttributes=this.elementAttributes||{};return 1===arguments.length?r[e]:(r[e]=t,this)},removeAttr:function(e){var t=this.elementAttributes;return t&&delete t[e],this},prop:function(e,t){var r=this.elementProperties=this.elementProperties||{};return 1===arguments.length?r[e]:(r[e]=t,this)},removeProp:function(e){var t=this.elementProperties;return t&&delete t[e],this},style:function(e,t){return this.elementStyle=this.elementStyle||{},this.elementStyle[e]=t,this},begin:function(e){return this.tagNames.push(e||null),this},pushOpeningTag:function(){var r=this.currentTagName();if(r){if(this._hasElement&&!this._element&&0===this.buffer.length)return this._element=this.generateElement(),void 0;var n,i,s=this.buffer,o=this.elementId,a=this.classes,u=this.elementAttributes,c=this.elementProperties,l=this.elementStyle;if(s+="<"+e(r),o&&(s+=' id="'+t(o)+'"',this.elementId=null),a&&(s+=' class="'+t(a.join(" "))+'"',this.classes=null),l){s+=' style="';for(i in l)l.hasOwnProperty(i)&&(s+=i+":"+t(l[i])+";");s+='"',this.elementStyle=null}if(u){for(n in u)u.hasOwnProperty(n)&&(s+=" "+n+'="'+t(u[n])+'"');this.elementAttributes=null}if(c){for(i in c)if(c.hasOwnProperty(i)){var h=c[i];(h||"number"==typeof h)&&(s+=h===!0?" "+i+'="'+i+'"':" "+i+'="'+t(c[i])+'"')}this.elementProperties=null}s+=">",this.buffer=s}},pushClosingTag:function(){var t=this.tagNames.pop();t&&(this.buffer+="</"+e(t)+">")},currentTagName:function(){return this.tagNames[this.tagNames.length-1]},generateElement:function(){var e,t,r=this.tagNames.pop(),n=document.createElement(r),i=Ember.$(n),s=this.elementId,o=this.classes,a=this.elementAttributes,u=this.elementProperties,c=this.elementStyle,l="";if(s&&(i.attr("id",s),this.elementId=null),o&&(i.attr("class",o.join(" ")),this.classes=null),c){for(t in c)c.hasOwnProperty(t)&&(l+=t+":"+c[t]+";");i.attr("style",l),this.elementStyle=null}if(a){for(e in a)a.hasOwnProperty(e)&&i.attr(e,a[e]);this.elementAttributes=null}if(u){for(t in u)u.hasOwnProperty(t)&&i.prop(t,u[t]);this.elementProperties=null}return n},element:function(){var e=this.innerString();return e&&(this._element=Ember.ViewUtils.setInnerHTML(this._element,e)),this._element},string:function(){if(this._hasElement&&this._element){var e=this.element(),t=e.outerHTML;return"undefined"==typeof t?Ember.$("<div/>").append(e).html():t}return this.innerString()},innerString:function(){return this.buffer}}}(),function(){var e=Ember.get,t=Ember.set;Ember.String.fmt,Ember.EventDispatcher=Ember.Object.extend({events:{touchstart:"touchStart",touchmove:"touchMove",touchend:"touchEnd",touchcancel:"touchCancel",keydown:"keyDown",keyup:"keyUp",keypress:"keyPress",mousedown:"mouseDown",mouseup:"mouseUp",contextmenu:"contextMenu",click:"click",dblclick:"doubleClick",mousemove:"mouseMove",focusin:"focusIn",focusout:"focusOut",mouseenter:"mouseEnter",mouseleave:"mouseLeave",submit:"submit",input:"input",change:"change",dragstart:"dragStart",drag:"drag",dragenter:"dragEnter",dragleave:"dragLeave",dragover:"dragOver",drop:"drop",dragend:"dragEnd"},rootElement:"body",setup:function(r,n){var i,s=e(this,"events");Ember.$.extend(s,r||{}),Ember.isNone(n)||t(this,"rootElement",n),n=Ember.$(e(this,"rootElement")),n.addClass("ember-application");for(i in s)s.hasOwnProperty(i)&&this.setupHandler(n,i,s[i])},setupHandler:function(e,t,r){var n=this;e.on(t+".ember",".ember-view",function(e,t){return Ember.handleErrors(function(){var i=Ember.View.views[this.id],s=!0,o=null;return o=n._findNearestEventManager(i,r),o&&o!==t?s=n._dispatchEvent(o,e,r,i):i?s=n._bubbleEvent(i,e,r):e.stopPropagation(),s},this)}),e.on(t+".ember","[data-ember-action]",function(e){return Ember.handleErrors(function(){var t=Ember.$(e.currentTarget).attr("data-ember-action"),n=Ember.Handlebars.ActionHelper.registeredActions[t];return n&&n.eventName===r?n.handler(e):void 0},this)})},_findNearestEventManager:function(t,r){for(var n=null;t&&(n=e(t,"eventManager"),!n||!n[r]);)t=e(t,"parentView");return n},_dispatchEvent:function(e,t,r,n){var i=!0,s=e[r];return"function"===Ember.typeOf(s)?(i=s.call(e,t,n),t.stopPropagation()):i=this._bubbleEvent(n,t,r),i},_bubbleEvent:function(e,t,r){return Ember.run(function(){return e.handleEvent(r,t)})},destroy:function(){var t=e(this,"rootElement");return Ember.$(t).off(".ember","**").removeClass("ember-application"),this._super()}})}(),function(){var e=Ember.run.queues,t=Ember.ArrayPolyfills.indexOf;e.splice(t.call(e,"actions")+1,0,"render","afterRender")}(),function(){var e=Ember.get,t=Ember.set;Ember.ControllerMixin.reopen({target:null,namespace:null,view:null,container:null,_childContainers:null,init:function(){this._super(),t(this,"_childContainers",{})},_modelDidChange:Ember.observer(function(){var r=e(this,"_childContainers");for(var n in r)r.hasOwnProperty(n)&&r[n].destroy();t(this,"_childContainers",{})},"model")})}(),function(){function e(){Ember.run.once(Ember.View,"notifyMutationListeners")}var t={},r=Ember.get,n=Ember.set,i=Ember.guidFor,s=Ember.EnumerableUtils.forEach,o=Ember.EnumerableUtils.addObject,a=Ember.computed(function(){var e=this._childViews,t=Ember.A(),n=this;return s(e,function(e){var n;e.isVirtual?(n=r(e,"childViews"))&&t.pushObjects(n):t.push(e)}),t.replace=function(e,t,r){if(n instanceof Ember.ContainerView)return n.replace(e,t,r);throw new Error("childViews is immutable")},t});Ember.TEMPLATES={},Ember.CoreView=Ember.Object.extend(Ember.Evented,{isView:!0,states:t,init:function(){this._super(),this.transitionTo("preRender")},parentView:Ember.computed(function(){var e=this._parentView;return e&&e.isVirtual?r(e,"parentView"):e}).property("_parentView"),state:null,_parentView:null,concreteView:Ember.computed(function(){return this.isVirtual?r(this,"parentView"):this}).property("parentView"),instrumentName:"core_view",instrumentDetails:function(e){e.object=this.toString()},renderToBuffer:function(e,t){var r="render."+this.instrumentName,n={};return this.instrumentDetails(n),Ember.instrument(r,n,function(){return this._renderToBuffer(e,t)},this)},_renderToBuffer:function(e){var t=this.tagName;(null===t||void 0===t)&&(t="div");var r=this.buffer=e&&e.begin(t)||Ember.RenderBuffer(t);return this.transitionTo("inBuffer",!1),this.beforeRender(r),this.render(r),this.afterRender(r),r},trigger:function(e){this._super.apply(this,arguments);var t=this[e];if(t){var r,n,i=[];for(r=1,n=arguments.length;n>r;r++)i.push(arguments[r]);return t.apply(this,i)}},has:function(e){return"function"===Ember.typeOf(this[e])||this._super(e)},destroy:function(){var e=this._parentView;if(this._super())return this.removedFromDOM||this.destroyElement(),e&&e.removeChild(this),this.transitionTo("destroying",!1),this},clearRenderedChildren:Ember.K,triggerRecursively:Ember.K,invokeRecursively:Ember.K,transitionTo:Ember.K,destroyElement:Ember.K});var u=Ember._ViewCollection=function(e){var t=this.views=e||[];this.length=t.length};u.prototype={length:0,trigger:function(e){for(var t,r=this.views,n=0,i=r.length;i>n;n++)t=r[n],t.trigger&&t.trigger(e)},triggerRecursively:function(e){for(var t=this.views,r=0,n=t.length;n>r;r++)t[r].triggerRecursively(e)},invokeRecursively:function(e){for(var t,r=this.views,n=0,i=r.length;i>n;n++)t=r[n],e(t)},transitionTo:function(e,t){for(var r=this.views,n=0,i=r.length;i>n;n++)r[n].transitionTo(e,t)},push:function(){this.length+=arguments.length;var e=this.views;return e.push.apply(e,arguments)},objectAt:function(e){return this.views[e]},forEach:function(e){var t=this.views;return s(t,e)},clear:function(){this.length=0,this.views.length=0}};var c=[];Ember.View=Ember.CoreView.extend({concatenatedProperties:["classNames","classNameBindings","attributeBindings"],isView:!0,templateName:null,layoutName:null,templates:Ember.TEMPLATES,template:Ember.computed(function(e,t){if(void 0!==t)return t;var n=r(this,"templateName"),i=this.templateForName(n,"template");return i||r(this,"defaultTemplate")}).property("templateName"),controller:Ember.computed(function(){var e=r(this,"_parentView");return e?r(e,"controller"):null}).property("_parentView"),layout:Ember.computed(function(){var e=r(this,"layoutName"),t=this.templateForName(e,"layout");return t||r(this,"defaultLayout")}).property("layoutName"),templateForName:function(e){if(e){var t=this.container||Ember.Container&&Ember.Container.defaultContainer;return t&&t.lookup("template:"+e)}},context:Ember.computed(function(e,t){return 2===arguments.length?(n(this,"_context",t),t):r(this,"_context")}).volatile(),parentContext:function(){var e=r(this,"_parentView");return e&&r(e,"_context")},_context:Ember.computed(function(){var e,t;return(t=r(this,"controller"))?t:(e=this._parentView,e?r(e,"_context"):null)}),_contextDidChange:Ember.observer(function(){this.rerender()},"context"),isVisible:!0,childViews:a,_childViews:c,_childViewsWillChange:Ember.beforeObserver(function(){if(this.isVirtual){var e=r(this,"parentView");e&&Ember.propertyWillChange(e,"childViews")}},"childViews"),_childViewsDidChange:Ember.observer(function(){if(this.isVirtual){var e=r(this,"parentView");e&&Ember.propertyDidChange(e,"childViews")}},"childViews"),nearestInstanceOf:function(e){for(var t=r(this,"parentView");t;){if(t instanceof e)return t;t=r(t,"parentView")}},nearestOfType:function(e){for(var t=r(this,"parentView"),n=e instanceof Ember.Mixin?function(t){return e.detect(t)}:function(t){return e.detect(t.constructor)};t;){if(n(t))return t;t=r(t,"parentView")}},nearestWithProperty:function(e){for(var t=r(this,"parentView");t;){if(e in t)return t;t=r(t,"parentView")}},nearestChildOf:function(e){for(var t=r(this,"parentView");t;){if(r(t,"parentView")instanceof e)return t;t=r(t,"parentView")}},_parentViewDidChange:Ember.observer(function(){this.isDestroying||(this.trigger("parentViewDidChange"),r(this,"parentView.controller")&&!r(this,"controller")&&this.notifyPropertyChange("controller"))},"_parentView"),_controllerDidChange:Ember.observer(function(){this.isDestroying||(this.rerender(),this.forEachChildView(function(e){e.propertyDidChange("controller")}))},"controller"),cloneKeywords:function(){var e=r(this,"templateData"),t=e?Ember.copy(e.keywords):{};return n(t,"view",r(this,"concreteView")),n(t,"_view",this),n(t,"controller",r(this,"controller")),t},render:function(e){var t=r(this,"layout")||r(this,"template");if(t){var n,i=r(this,"context"),s=this.cloneKeywords(),o={view:this,buffer:e,isRenderData:!0,keywords:s,insideGroup:r(this,"templateData.insideGroup")};n=t(i,{data:o}),void 0!==n&&e.push(n)}},rerender:function(){return this.currentState.rerender(this)},clearRenderedChildren:function(){for(var e=this.lengthBeforeRender,t=this.lengthAfterRender,r=this._childViews,n=t-1;n>=e;n--)r[n]&&r[n].destroy()},_applyClassNameBindings:function(e){var t,r,n,i=this.classNames;s(e,function(e){var s,a=Ember.View._parsePropertyPath(e),u=function(){r=this._classStringForProperty(e),t=this.$(),s&&(t.removeClass(s),i.removeObject(s)),r?(t.addClass(r),s=r):s=null};n=this._classStringForProperty(e),n&&(o(i,n),s=n),this.registerObserver(this,a.path,u),this.one("willClearRender",function(){s&&(i.removeObject(s),s=null)})},this)},_applyAttributeBindings:function(e,t){var n,i;s(t,function(t){var s=t.split(":"),o=s[0],a=s[1]||o,u=function(){i=this.$(),n=r(this,o),Ember.View.applyAttributeBindings(i,a,n)};this.registerObserver(this,o,u),n=r(this,o),Ember.View.applyAttributeBindings(e,a,n)},this)},_classStringForProperty:function(e){var t=Ember.View._parsePropertyPath(e),n=t.path,i=r(this,n);return void 0===i&&Ember.isGlobalPath(n)&&(i=r(Ember.lookup,n)),Ember.View._classStringForValue(n,i,t.className,t.falsyClassName)},element:Ember.computed(function(e,t){return void 0!==t?this.currentState.setElement(this,t):this.currentState.getElement(this)}).property("_parentView"),$:function(e){return this.currentState.$(this,e)},mutateChildViews:function(e){for(var t,r=this._childViews,n=r.length;--n>=0;)t=r[n],e(this,t,n);return this},forEachChildView:function(e){var t=this._childViews;if(!t)return this;var r,n,i=t.length;for(n=0;i>n;n++)r=t[n],e(r);return this},appendTo:function(e){return this._insertElementLater(function(){this.$().appendTo(e)}),this},replaceIn:function(e){return this._insertElementLater(function(){Ember.$(e).empty(),this.$().appendTo(e)}),this},_insertElementLater:function(e){this._scheduledInsert=Ember.run.scheduleOnce("render",this,"_insertElement",e)},_insertElement:function(e){this._scheduledInsert=null,this.currentState.insertElement(this,e)},append:function(){return this.appendTo(document.body)},remove:function(){this.removedFromDOM||this.destroyElement(),this.invokeRecursively(function(e){e.clearRenderedChildren&&e.clearRenderedChildren()})},elementId:null,findElementInParentElement:function(e){var t="#"+this.elementId;return Ember.$(t)[0]||Ember.$(t,e)[0]},createElement:function(){if(r(this,"element"))return this;var e=this.renderToBuffer();return n(this,"element",e.element()),this},willInsertElement:Ember.K,didInsertElement:Ember.K,willClearRender:Ember.K,invokeRecursively:function(e,t){for(var r,n,i,s=t===!1?this._childViews:[this];s.length;){r=s.slice(),s=[];for(var o=0,a=r.length;a>o;o++)n=r[o],i=n._childViews?n._childViews.slice(0):null,e(n),i&&s.push.apply(s,i)}},triggerRecursively:function(e){for(var t,r,n,i=[this];i.length;){t=i.slice(),i=[];for(var s=0,o=t.length;o>s;s++)r=t[s],n=r._childViews?r._childViews.slice(0):null,r.trigger&&r.trigger(e),n&&i.push.apply(i,n)}},viewHierarchyCollection:function(){for(var e,t=new u([this]),r=0;r<t.length;r++)e=t.objectAt(r),e._childViews&&t.push.apply(t,e._childViews);return t},destroyElement:function(){return this.currentState.destroyElement(this)},willDestroyElement:Ember.K,_notifyWillDestroyElement:function(){var e=this.viewHierarchyCollection();return e.trigger("willClearRender"),e.trigger("willDestroyElement"),e},_elementWillChange:Ember.beforeObserver(function(){this.forEachChildView(function(e){Ember.propertyWillChange(e,"element")})},"element"),_elementDidChange:Ember.observer(function(){this.forEachChildView(function(e){Ember.propertyDidChange(e,"element")})},"element"),parentViewDidChange:Ember.K,instrumentName:"view",instrumentDetails:function(e){e.template=r(this,"templateName"),this._super(e)},_renderToBuffer:function(e,t){this.lengthBeforeRender=this._childViews.length;var r=this._super(e,t);return this.lengthAfterRender=this._childViews.length,r},renderToBufferIfNeeded:function(e){return this.currentState.renderToBufferIfNeeded(this,e)},beforeRender:function(e){this.applyAttributesToBuffer(e),e.pushOpeningTag()},afterRender:function(e){e.pushClosingTag()},applyAttributesToBuffer:function(e){var t=r(this,"classNameBindings");t.length&&this._applyClassNameBindings(t);var n=r(this,"attributeBindings");n.length&&this._applyAttributeBindings(e,n),e.setClasses(this.classNames),e.id(this.elementId);var i=r(this,"ariaRole");i&&e.attr("role",i),r(this,"isVisible")===!1&&e.style("display","none")},tagName:null,ariaRole:null,classNames:["ember-view"],classNameBindings:c,attributeBindings:c,init:function(){this.elementId=this.elementId||i(this),this._super(),this._childViews=this._childViews.slice(),this.classNameBindings=Ember.A(this.classNameBindings.slice()),this.classNames=Ember.A(this.classNames.slice());var e=r(this,"viewController");e&&(e=r(e),e&&n(e,"view",this))},appendChild:function(e,t){return this.currentState.appendChild(this,e,t)},removeChild:function(e){if(!this.isDestroying){n(e,"_parentView",null);var t=this._childViews;return Ember.EnumerableUtils.removeObject(t,e),this.propertyDidChange("childViews"),this}},removeAllChildren:function(){return this.mutateChildViews(function(e,t){e.removeChild(t)})},destroyAllChildren:function(){return this.mutateChildViews(function(e,t){t.destroy()})},removeFromParent:function(){var e=this._parentView;return this.remove(),e&&e.removeChild(this),this},destroy:function(){var e,t,n=this._childViews,i=r(this,"parentView"),s=this.viewName;if(this._super()){for(e=n.length,t=e-1;t>=0;t--)n[t].removedFromDOM=!0;for(s&&i&&i.set(s,null),e=n.length,t=e-1;t>=0;t--)n[t].destroy();return this}},createChildView:function(e,t){return e.isView&&e._parentView===this&&e.container===this.container?e:(t=t||{},t._parentView=this,t.container=this.container,Ember.CoreView.detect(e)?(t.templateData=t.templateData||r(this,"templateData"),e=e.create(t),e.viewName&&n(r(this,"concreteView"),e.viewName,e)):(Ember.setProperties(e,t),r(e,"templateData")||n(e,"templateData",r(this,"templateData"))),e)},becameVisible:Ember.K,becameHidden:Ember.K,_isVisibleDidChange:Ember.observer(function(){var e=this.$();if(e){var t=r(this,"isVisible");e.toggle(t),this._isAncestorHidden()||(t?this._notifyBecameVisible():this._notifyBecameHidden())}},"isVisible"),_notifyBecameVisible:function(){this.trigger("becameVisible"),this.forEachChildView(function(e){var t=r(e,"isVisible");(t||null===t)&&e._notifyBecameVisible()})},_notifyBecameHidden:function(){this.trigger("becameHidden"),this.forEachChildView(function(e){var t=r(e,"isVisible");(t||null===t)&&e._notifyBecameHidden()})},_isAncestorHidden:function(){for(var e=r(this,"parentView");e;){if(r(e,"isVisible")===!1)return!0;e=r(e,"parentView")}return!1},clearBuffer:function(){this.invokeRecursively(function(e){e.buffer=null})},transitionTo:function(e,t){var r=this.currentState,n=this.currentState=this.states[e];this.state=e,r&&r.exit&&r.exit(this),n.enter&&n.enter(this),t!==!1&&this.forEachChildView(function(t){t.transitionTo(e)})},handleEvent:function(e,t){return this.currentState.handleEvent(this,e,t)},registerObserver:function(e,t,r,n){n||"function"!=typeof r||(n=r,r=null);var i=this,s=function(){i.currentState.invokeObserver(this,n)},o=function(){Ember.run.scheduleOnce("render",this,s)};Ember.addObserver(e,t,r,o),this.one("willClearRender",function(){Ember.removeObserver(e,t,r,o)})}});var l={prepend:function(t,r){t.$().prepend(r),e()},after:function(t,r){t.$().after(r),e()},html:function(t,r){t.$().html(r),e()},replace:function(t){var i=r(t,"element");n(t,"element",null),t._insertElementLater(function(){Ember.$(i).replaceWith(r(t,"element")),e()})},remove:function(t){t.$().remove(),e()},empty:function(t){t.$().empty(),e()}};Ember.View.reopen({domManager:l}),Ember.View.reopenClass({_parsePropertyPath:function(e){var t,r,n=e.split(":"),i=n[0],s="";return n.length>1&&(t=n[1],3===n.length&&(r=n[2]),s=":"+t,r&&(s+=":"+r)),{path:i,classNames:s,className:""===t?void 0:t,falsyClassName:r}},_classStringForValue:function(e,t,r,n){if(r||n)return r&&t?r:n&&!t?n:null;if(t===!0){var i=e.split(".");return Ember.String.dasherize(i[i.length-1])}return t!==!1&&null!=t?t:null}});var h=Ember.Object.extend(Ember.Evented).create();Ember.View.addMutationListener=function(e){h.on("change",e)},Ember.View.removeMutationListener=function(e){h.off("change",e)},Ember.View.notifyMutationListeners=function(){h.trigger("change")},Ember.View.views={},Ember.View.childViewsProperty=a,Ember.View.applyAttributeBindings=function(e,t,r){var n=Ember.typeOf(r);"value"===t||"string"!==n&&("number"!==n||isNaN(r))?"value"===t||"boolean"===n?(Ember.isNone(r)&&(r=""),r!==e.prop(t)&&e.prop(t,r)):r||e.removeAttr(t):r!==e.attr(t)&&e.attr(t,r)},Ember.View.states=t}(),function(){var e=(Ember.get,Ember.set);Ember.View.states._default={appendChild:function(){throw"You can't use appendChild outside of the rendering process"},$:function(){return void 0},getElement:function(){return null},handleEvent:function(){return!0},destroyElement:function(t){return e(t,"element",null),t._scheduledInsert&&(Ember.run.cancel(t._scheduledInsert),t._scheduledInsert=null),t},renderToBufferIfNeeded:function(){return!1},rerender:Ember.K,invokeObserver:Ember.K}}(),function(){var e=Ember.View.states.preRender=Ember.create(Ember.View.states._default);Ember.merge(e,{insertElement:function(e,t){e.createElement();var r=e.viewHierarchyCollection();r.trigger("willInsertElement"),t.call(e),r.transitionTo("inDOM",!1),r.trigger("didInsertElement")},renderToBufferIfNeeded:function(e,t){return e.renderToBuffer(t),!0},empty:Ember.K,setElement:function(e,t){return null!==t&&e.transitionTo("hasElement"),t}})}(),function(){Ember.get,Ember.set;var e=Ember.View.states.inBuffer=Ember.create(Ember.View.states._default);Ember.merge(e,{$:function(e){return e.rerender(),Ember.$()},rerender:function(){throw new Ember.Error("Something you did caused a view to re-render after it rendered but before it was inserted into the DOM.")},appendChild:function(e,t,r){var n=e.buffer,i=e._childViews;return t=e.createChildView(t,r),i.length||(i=e._childViews=i.slice()),i.push(t),t.renderToBuffer(n),e.propertyDidChange("childViews"),t},destroyElement:function(e){e.clearBuffer();var t=e._notifyWillDestroyElement();return t.transitionTo("preRender",!1),e},empty:function(){},renderToBufferIfNeeded:function(){return!1},insertElement:function(){throw"You can't insert an element that has already been rendered"},setElement:function(e,t){return null===t?e.transitionTo("preRender"):(e.clearBuffer(),e.transitionTo("hasElement")),t},invokeObserver:function(e,t){t.call(e)}})}(),function(){var e=Ember.get,t=Ember.set,r=Ember.View.states.hasElement=Ember.create(Ember.View.states._default);Ember.merge(r,{$:function(t,r){var n=e(t,"element");return r?Ember.$(r,n):Ember.$(n)},getElement:function(t){var r=e(t,"parentView");return r&&(r=e(r,"element")),r?t.findElementInParentElement(r):Ember.$("#"+e(t,"elementId"))[0]},setElement:function(e,t){if(null!==t)throw"You cannot set an element to a non-null value when the element is already in the DOM.";return e.transitionTo("preRender"),t},rerender:function(e){return e.triggerRecursively("willClearRender"),e.clearRenderedChildren(),e.domManager.replace(e),e},destroyElement:function(e){return e._notifyWillDestroyElement(),e.domManager.remove(e),t(e,"element",null),e._scheduledInsert&&(Ember.run.cancel(e._scheduledInsert),e._scheduledInsert=null),e},empty:function(e){var t,r,n=e._childViews;if(n)for(t=n.length,r=0;t>r;r++)n[r]._notifyWillDestroyElement();e.domManager.empty(e)},handleEvent:function(e,t,r){return e.has(t)?e.trigger(t,r):!0},invokeObserver:function(e,t){t.call(e)}});var n=Ember.View.states.inDOM=Ember.create(r);Ember.merge(n,{enter:function(e){e.isVirtual||(Ember.View.views[e.elementId]=e),e.addBeforeObserver("elementId",function(){throw new Error("Changing a view's elementId after creation is not allowed")})},exit:function(e){this.isVirtual||delete Ember.View.views[e.elementId]},insertElement:function(){throw"You can't insert an element into the DOM that has already been inserted"}})}(),function(){var e="You can't call %@ on a view being destroyed",t=Ember.String.fmt,r=Ember.View.states.destroying=Ember.create(Ember.View.states._default);Ember.merge(r,{appendChild:function(){throw t(e,["appendChild"])},rerender:function(){throw t(e,["rerender"])},destroyElement:function(){throw t(e,["destroyElement"])},empty:function(){throw t(e,["empty"])},setElement:function(){throw t(e,["set('element', ...)"])},renderToBufferIfNeeded:function(){return!1},insertElement:Ember.K})}(),function(){Ember.View.cloneStates=function(e){var t={};t._default={},t.preRender=Ember.create(t._default),t.destroying=Ember.create(t._default),t.inBuffer=Ember.create(t._default),t.hasElement=Ember.create(t._default),t.inDOM=Ember.create(t.hasElement);for(var r in e)e.hasOwnProperty(r)&&Ember.merge(t[r],e[r]);return t}}(),function(){function e(e,t,r,n){t.triggerRecursively("willInsertElement"),r?r.domManager.after(r,n.string()):e.domManager.prepend(e,n.string()),t.forEach(function(e){e.transitionTo("inDOM"),e.propertyDidChange("element"),e.triggerRecursively("didInsertElement")})}var t=Ember.View.cloneStates(Ember.View.states),r=Ember.get,n=Ember.set,i=Ember.EnumerableUtils.forEach,s=Ember._ViewCollection;Ember.ContainerView=Ember.View.extend(Ember.MutableArray,{states:t,init:function(){this._super();var e=r(this,"childViews");Ember.defineProperty(this,"childViews",Ember.View.childViewsProperty);var t=this._childViews;i(e,function(e,i){var s;"string"==typeof e?(s=r(this,e),s=this.createChildView(s),n(this,e,s)):s=this.createChildView(e),t[i]=s},this);var s=r(this,"currentView");s&&(t.length||(t=this._childViews=this._childViews.slice()),t.push(this.createChildView(s)))},replace:function(e,t,n){var i=n?r(n,"length"):0;if(this.arrayContentWillChange(e,t,i),this.childViewsWillChange(this._childViews,e,t),0===i)this._childViews.splice(e,t);else{var s=[e,t].concat(n);n.length&&!this._childViews.length&&(this._childViews=this._childViews.slice()),this._childViews.splice.apply(this._childViews,s)}return this.arrayContentDidChange(e,t,i),this.childViewsDidChange(this._childViews,e,t,i),this},objectAt:function(e){return this._childViews[e]},length:Ember.computed(function(){return this._childViews.length}),render:function(e){this.forEachChildView(function(t){t.renderToBuffer(e)})},instrumentName:"container",childViewsWillChange:function(e,t,r){if(this.propertyWillChange("childViews"),r>0){var n=e.slice(t,t+r);this.currentState.childViewsWillChange(this,e,t,r),this.initializeViews(n,null,null)}},removeChild:function(e){return this.removeObject(e),this},childViewsDidChange:function(e,t,n,i){if(i>0){var s=e.slice(t,t+i);this.initializeViews(s,this,r(this,"templateData")),this.currentState.childViewsDidChange(this,e,t,i)}this.propertyDidChange("childViews")},initializeViews:function(e,t,s){i(e,function(e){n(e,"_parentView",t),n(e,"container",t&&t.container),r(e,"templateData")||n(e,"templateData",s)})},currentView:null,_currentViewWillChange:Ember.beforeObserver(function(){var e=r(this,"currentView");e&&e.destroy()},"currentView"),_currentViewDidChange:Ember.observer(function(){var e=r(this,"currentView");e&&this.pushObject(e)},"currentView"),_ensureChildrenAreInDOM:function(){this.currentState.ensureChildrenAreInDOM(this)}}),Ember.merge(t._default,{childViewsWillChange:Ember.K,childViewsDidChange:Ember.K,ensureChildrenAreInDOM:Ember.K}),Ember.merge(t.inBuffer,{childViewsDidChange:function(){throw new Error("You cannot modify child views while in the inBuffer state")}}),Ember.merge(t.hasElement,{childViewsWillChange:function(e,t,r,n){for(var i=r;r+n>i;i++)t[i].remove()},childViewsDidChange:function(e){Ember.run.scheduleOnce("render",e,"_ensureChildrenAreInDOM")},ensureChildrenAreInDOM:function(t){var r,n,i,o,a,u=t._childViews,c=new s;for(r=0,n=u.length;n>r;r++)i=u[r],a||(a=Ember.RenderBuffer(),a._hasElement=!1),i.renderToBufferIfNeeded(a)?c.push(i):c.length?(e(t,c,o,a),a=null,o=i,c.clear()):o=i;c.length&&e(t,c,o,a)}})}(),function(){var e=Ember.get,t=Ember.set;Ember.String.fmt,Ember.CollectionView=Ember.ContainerView.extend({content:null,emptyViewClass:Ember.View,emptyView:null,itemViewClass:Ember.View,init:function(){var e=this._super();return this._contentDidChange(),e},_contentWillChange:Ember.beforeObserver(function(){var t=this.get("content");t&&t.removeArrayObserver(this);var r=t?e(t,"length"):0;this.arrayWillChange(t,0,r)},"content"),_contentDidChange:Ember.observer(function(){var t=e(this,"content");t&&(this._assertArrayLike(t),t.addArrayObserver(this));var r=t?e(t,"length"):0;this.arrayDidChange(t,0,null,r)},"content"),_assertArrayLike:function(){},destroy:function(){if(this._super()){var t=e(this,"content");return t&&t.removeArrayObserver(this),this._createdEmptyView&&this._createdEmptyView.destroy(),this}},arrayWillChange:function(t,r,n){var i=e(this,"emptyView");i&&i instanceof Ember.View&&i.removeFromParent();var s,o,a,u=this._childViews;a=this._childViews.length;var c=n===a;for(c&&(this.currentState.empty(this),this.invokeRecursively(function(e){e.removedFromDOM=!0},!1)),o=r+n-1;o>=r;o--)s=u[o],s.destroy()},arrayDidChange:function(r,n,i,s){var o,a,u,c,l=e(this,"itemViewClass"),h=[];if("string"==typeof l&&(l=e(l)),c=r?e(r,"length"):0)for(u=n;n+s>u;u++)a=r.objectAt(u),o=this.createChildView(l,{content:a,contentIndex:u}),h.push(o);else{var m=e(this,"emptyView");if(!m)return;var f=Ember.CoreView.detect(m);m=this.createChildView(m),h.push(m),t(this,"emptyView",m),f&&(this._createdEmptyView=m)}this.replace(n,0,h)},createChildView:function(r,n){r=this._super(r,n);var i=e(r,"tagName"),s=null===i||void 0===i?Ember.CollectionView.CONTAINER_MAP[e(this,"tagName")]:i;return t(r,"tagName",s),r}}),Ember.CollectionView.CONTAINER_MAP={ul:"li",ol:"li",table:"tr",thead:"tr",tbody:"tr",tfoot:"tr",tr:"td",select:"option"}}(),function(){var e=Ember.get,t=Ember.set;Ember.isNone,Ember.Component=Ember.View.extend(Ember.TargetActionSupport,{init:function(){this._super(),t(this,"context",this),t(this,"controller",this),t(this,"templateData",{keywords:{}})},targetObject:Ember.computed(function(){var t=e(this,"_parentView");return t?e(t,"controller"):null}).property("_parentView"),sendAction:function(t){var r;r=void 0===t?e(this,"action"):e(this,t),void 0!==r&&this.triggerAction({action:r})}})}(),function(){Ember.ViewTargetActionSupport=Ember.Mixin.create(Ember.TargetActionSupport,{target:Ember.computed.alias("controller"),actionContext:Ember.computed.alias("context")})}(),function(){var e=Ember.get,t=Ember.set;Ember.State=Ember.Object.extend(Ember.Evented,{parentState:null,start:null,name:null,path:Ember.computed(function(){var t=e(this,"parentState.path"),r=e(this,"name");return t&&(r=t+"."+r),r}),trigger:function(e){this[e]&&this[e].apply(this,[].slice.call(arguments,1)),this._super.apply(this,arguments)},init:function(){var r=e(this,"states");t(this,"childStates",Ember.A()),t(this,"eventTransitions",e(this,"eventTransitions")||{});var n,i,s;if(r)for(n in r)this.setupChild(r,n,r[n]);else{r={};for(n in this)"constructor"!==n&&(i=this[n])&&((s=i.transitionTarget)&&(this.eventTransitions[n]=s),this.setupChild(r,n,i));t(this,"states",r)}t(this,"pathsCaches",{})},setPathsCache:function(t,r,n){var i=Ember.guidFor(t.constructor),s=e(this,"pathsCaches"),o=s[i]||{};o[r]=n,s[i]=o},getPathsCache:function(t,r){var n=Ember.guidFor(t.constructor),i=e(this,"pathsCaches"),s=i[n]||{};return s[r]},setupChild:function(r,n,i){if(!i)return!1;var s;return i instanceof Ember.State?(t(i,"name",n),s=i,s.container=this.container):Ember.State.detect(i)&&(s=i.create({name:n,container:this.container})),s instanceof Ember.State?(t(s,"parentState",this),e(this,"childStates").pushObject(s),r[n]=s,s):void 0},lookupEventTransition:function(e){for(var t,r=this;r&&!t;)t=r.eventTransitions[e],r=r.get("parentState");return t},isLeaf:Ember.computed(function(){return!e(this,"childStates").length}),hasContext:!0,setup:Ember.K,enter:Ember.K,exit:Ember.K}),Ember.State.reopenClass({transitionTo:function(e){var t=function(t,r){var n=[],i=Ember.$&&Ember.$.Event;r&&i&&r instanceof i?r.hasOwnProperty("contexts")&&(n=r.contexts.slice()):n=[].slice.call(arguments,1),n.unshift(e),t.transitionTo.apply(t,n)};return t.transitionTarget=e,t}})}(),function(){var e=Ember.get,t=Ember.set,r=Ember.String.fmt,n=Ember.ArrayPolyfills.forEach,i=function(e){this.enterStates=e.enterStates.slice(),this.exitStates=e.exitStates.slice(),this.resolveState=e.resolveState,this.finalState=e.enterStates[e.enterStates.length-1]||e.resolveState};i.prototype={normalize:function(e,t){return this.matchContextsToStates(t),this.addInitialStates(),this.removeUnchangedContexts(e),this},matchContextsToStates:function(t){for(var r,n,i=this.enterStates.length-1,s=[];t.length>0;){if(i>=0)r=this.enterStates[i--];else{if(this.enterStates.length){if(r=e(this.enterStates[0],"parentState"),!r)throw"Cannot match all contexts to states"
19
+ }else r=this.resolveState;this.enterStates.unshift(r),this.exitStates.unshift(r)}n=e(r,"hasContext")?t.pop():null,s.unshift(n)}this.contexts=s},addInitialStates:function(){for(var t,r=this.finalState;;){if(t=e(r,"initialState")||"start",r=e(r,"states."+t),!r)break;this.finalState=r,this.enterStates.push(r),this.contexts.push(void 0)}},removeUnchangedContexts:function(e){for(;this.enterStates.length>0&&this.enterStates[0]===this.exitStates[0];){if(this.enterStates.length===this.contexts.length){if(e.getStateMeta(this.enterStates[0],"context")!==this.contexts[0])break;this.contexts.shift()}this.resolveState=this.enterStates.shift(),this.exitStates.shift()}}};var s=function(t,n,i){var a,u,c,l=this.enableLogging,h=i?"unhandledEvent":t,m=n[h];if(a=[].slice.call(arguments,3),"function"==typeof m)return l&&(i?Ember.Logger.log(r("STATEMANAGER: Unhandled event '%@' being sent to state %@.",[t,e(n,"path")])):Ember.Logger.log(r("STATEMANAGER: Sending event '%@' to state %@.",[t,e(n,"path")]))),c=a,i&&c.unshift(t),c.unshift(this),m.apply(n,c);var f=e(n,"parentState");return f?(u=a,u.unshift(t,f,i),s.apply(this,u)):i?void 0:o.call(this,t,a,!0)},o=function(t,r,n){return r.unshift(t,e(this,"currentState"),n),s.apply(this,r)};Ember.StateManager=Ember.State.extend({init:function(){this._super(),t(this,"stateMeta",Ember.Map.create());var r=e(this,"initialState");!r&&e(this,"states.start")&&(r="start"),r&&this.transitionTo(r)},stateMetaFor:function(t){var r=e(this,"stateMeta"),n=r.get(t);return n||(n={},r.set(t,n)),n},setStateMeta:function(e,r,n){return t(this.stateMetaFor(e),r,n)},getStateMeta:function(t,r){return e(this.stateMetaFor(t),r)},currentState:null,currentPath:Ember.computed.alias("currentState.path"),transitionEvent:"setup",errorOnUnhandledEvent:!0,send:function(e){var t=[].slice.call(arguments,1);return o.call(this,e,t,!1)},unhandledEvent:function(t,r){if(e(this,"errorOnUnhandledEvent"))throw new Ember.Error(this.toString()+" could not respond to event "+r+" in state "+e(this,"currentState.path")+".")},getStateByPath:function(t,r){for(var n=r.split("."),i=t,s=0,o=n.length;o>s&&(i=e(e(i,"states"),n[s]),i);s++);return i},findStateByPath:function(t,r){for(var n;!n&&t;)n=this.getStateByPath(t,r),t=e(t,"parentState");return n},getStatesInPath:function(t,r){if(!r||""===r)return void 0;for(var n,i,s=r.split("."),o=[],a=0,u=s.length;u>a;a++){if(n=e(t,"states"),!n)return void 0;if(i=e(n,s[a]),!i)return void 0;t=i,o.push(i)}return o},goToState:function(){return this.transitionTo.apply(this,arguments)},transitionTo:function(t,r){if(!Ember.isEmpty(t)){var n=r?Array.prototype.slice.call(arguments,1):[],s=e(this,"currentState")||this,o=this.contextFreeTransition(s,t),a=new i(o).normalize(this,n);this.enterState(a),this.triggerSetupContext(a)}},contextFreeTransition:function(t,r){var n=t.getPathsCache(this,r);if(n)return n;for(var i=this.getStatesInPath(t,r),s=[],o=t;o&&!i;){if(s.unshift(o),o=e(o,"parentState"),!o&&(i=this.getStatesInPath(this,r),!i))return;i=this.getStatesInPath(o,r)}for(;i.length>0&&i[0]===s[0];)o=i.shift(),s.shift();var a={exitStates:s,enterStates:i,resolveState:o};return t.setPathsCache(this,r,a),a},triggerSetupContext:function(t){var r=t.contexts,i=t.enterStates.length-r.length,s=t.enterStates,o=e(this,"transitionEvent");n.call(s,function(e,t){e.trigger(o,this,r[t-i])},this)},getState:function(t){var r=e(this,t),n=e(this,"parentState");return r?r:n?n.getState(t):void 0},enterState:function(r){var i=this.enableLogging,s=r.exitStates.slice(0).reverse();n.call(s,function(e){e.trigger("exit",this)},this),n.call(r.enterStates,function(t){i&&Ember.Logger.log("STATEMANAGER: Entering "+e(t,"path")),t.trigger("enter",this)},this),t(this,"currentState",r.finalState)}})}(),function(){e("metamorph",[],function(){"use strict";// Copyright: ©2011 My Company Inc. All rights reserved.
20
+ var e=function(){},t=0,r=this.document,n=r&&"createRange"in r&&"undefined"!=typeof Range&&Range.prototype.createContextualFragment,i=r&&function(){var e=r.createElement("div");return e.innerHTML="<div></div>",e.firstChild.innerHTML="<script></script>",""===e.firstChild.innerHTML}(),s=r&&function(){var e=r.createElement("div");return e.innerHTML="Test: <script type='text/x-placeholder'></script>Value","Test:"===e.childNodes[0].nodeValue&&" Value"===e.childNodes[2].nodeValue}(),o=function(r){var n;n=this instanceof o?this:new e,n.innerHTML=r;var i="metamorph-"+t++;return n.start=i+"-start",n.end=i+"-end",n};e.prototype=o.prototype;var a,u,c,l,h,m,f,p,d;if(l=function(){return this.startTag()+this.innerHTML+this.endTag()},p=function(){return"<script id='"+this.start+"' type='text/x-placeholder'></script>"},d=function(){return"<script id='"+this.end+"' type='text/x-placeholder'></script>"},n)a=function(e,t){var n=r.createRange(),i=r.getElementById(e.start),s=r.getElementById(e.end);return t?(n.setStartBefore(i),n.setEndAfter(s)):(n.setStartAfter(i),n.setEndBefore(s)),n},u=function(e,t){var r=a(this,t);r.deleteContents();var n=r.createContextualFragment(e);r.insertNode(n)},c=function(){var e=a(this,!0);e.deleteContents()},h=function(e){var t=r.createRange();t.setStart(e),t.collapse(!1);var n=t.createContextualFragment(this.outerHTML());e.appendChild(n)},m=function(e){var t=r.createRange(),n=r.getElementById(this.end);t.setStartAfter(n),t.setEndAfter(n);var i=t.createContextualFragment(e);t.insertNode(i)},f=function(e){var t=r.createRange(),n=r.getElementById(this.start);t.setStartAfter(n),t.setEndAfter(n);var i=t.createContextualFragment(e);t.insertNode(i)};else{var b={select:[1,"<select multiple='multiple'>","</select>"],fieldset:[1,"<fieldset>","</fieldset>"],table:[1,"<table>","</table>"],tbody:[2,"<table><tbody>","</tbody></table>"],tr:[3,"<table><tbody><tr>","</tr></tbody></table>"],colgroup:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],map:[1,"<map>","</map>"],_default:[0,"",""]},E=function(e,t){if(e.getAttribute("id")===t)return e;var r,n,i,s=e.childNodes.length;for(r=0;s>r;r++)if(n=e.childNodes[r],i=1===n.nodeType&&E(n,t))return i},v=function(e,t){var n=[];if(s&&(t=t.replace(/(\s+)(<script id='([^']+)')/g,function(e,t,r,i){return n.push([i,t]),r})),e.innerHTML=t,n.length>0){var i,o=n.length;for(i=0;o>i;i++){var a=E(e,n[i][0]),u=r.createTextNode(n[i][1]);a.parentNode.insertBefore(u,a)}}},g=function(e,t){var n=b[e.tagName.toLowerCase()]||b._default,s=n[0],o=n[1],a=n[2];i&&(t="&shy;"+t);var u=r.createElement("div");v(u,o+t+a);for(var c=0;s>=c;c++)u=u.firstChild;if(i){for(var l=u;1===l.nodeType&&!l.nodeName;)l=l.firstChild;3===l.nodeType&&"­"===l.nodeValue.charAt(0)&&(l.nodeValue=l.nodeValue.slice(1))}return u},y=function(e){for(;""===e.parentNode.tagName;)e=e.parentNode;return e},w=function(e,t){e.parentNode!==t.parentNode&&t.parentNode.insertBefore(e,t.parentNode.firstChild)};u=function(e,t){var n,i,s,o=y(r.getElementById(this.start)),a=r.getElementById(this.end),u=a.parentNode;for(w(o,a),n=o.nextSibling;n;){if(i=n.nextSibling,s=n===a){if(!t)break;a=n.nextSibling}if(n.parentNode.removeChild(n),s)break;n=i}for(n=g(o.parentNode,e);n;)i=n.nextSibling,u.insertBefore(n,a),n=i},c=function(){var e=y(r.getElementById(this.start)),t=r.getElementById(this.end);this.html(""),e.parentNode.removeChild(e),t.parentNode.removeChild(t)},h=function(e){for(var t,r=g(e,this.outerHTML());r;)t=r.nextSibling,e.appendChild(r),r=t},m=function(e){var t,n,i=r.getElementById(this.end),s=i.nextSibling,o=i.parentNode;for(n=g(o,e);n;)t=n.nextSibling,o.insertBefore(n,s),n=t},f=function(e){var t,n,i=r.getElementById(this.start),s=i.parentNode;n=g(s,e);for(var o=i.nextSibling;n;)t=n.nextSibling,s.insertBefore(n,o),n=t}}return o.prototype.html=function(e){return this.checkRemoved(),void 0===e?this.innerHTML:(u.call(this,e),this.innerHTML=e,void 0)},o.prototype.replaceWith=function(e){this.checkRemoved(),u.call(this,e,!0)},o.prototype.remove=c,o.prototype.outerHTML=l,o.prototype.appendTo=h,o.prototype.after=m,o.prototype.prepend=f,o.prototype.startTag=p,o.prototype.endTag=d,o.prototype.isRemoved=function(){var e=r.getElementById(this.start),t=r.getElementById(this.end);return!e||!t},o.prototype.checkRemoved=function(){if(this.isRemoved())throw new Error("Cannot perform operations on a Metamorph that is not in the DOM.")},o})}(),function(){function e(e){var t=e.hash,r=e.hashTypes;for(var n in t)"ID"===r[n]&&(t[n+"Binding"]=t[n],r[n+"Binding"]="STRING",delete t[n],delete r[n])}var t=Object.create||function(e){function t(){}return t.prototype=e,new t},r=this.Handlebars||Ember.imports&&Ember.imports.Handlebars;r||"function"!=typeof require||(r=require("handlebars")),Ember.Handlebars=t(r),Ember.Handlebars.helper=function(t,r){if(Ember.Component.detect(r)){var n=r.proto();n.layoutName||n.templateName||r.reopen({layoutName:"components/"+t})}Ember.View.detect(r)?Ember.Handlebars.registerHelper(t,function(t){return e(t),Ember.Handlebars.helpers.view.call(this,r,t)}):Ember.Handlebars.registerBoundHelper.apply(null,arguments)},Ember.Handlebars.helpers=t(r.helpers),Ember.Handlebars.Compiler=function(){},r.Compiler&&(Ember.Handlebars.Compiler.prototype=t(r.Compiler.prototype)),Ember.Handlebars.Compiler.prototype.compiler=Ember.Handlebars.Compiler,Ember.Handlebars.JavaScriptCompiler=function(){},r.JavaScriptCompiler&&(Ember.Handlebars.JavaScriptCompiler.prototype=t(r.JavaScriptCompiler.prototype),Ember.Handlebars.JavaScriptCompiler.prototype.compiler=Ember.Handlebars.JavaScriptCompiler),Ember.Handlebars.JavaScriptCompiler.prototype.namespace="Ember.Handlebars",Ember.Handlebars.JavaScriptCompiler.prototype.initializeBuffer=function(){return"''"},Ember.Handlebars.JavaScriptCompiler.prototype.appendToBuffer=function(e){return"data.buffer.push("+e+");"};var n="ember"+ +new Date,i=1;Ember.Handlebars.Compiler.prototype.mustache=function(e){if(e.isHelper&&"control"===e.id.string)e.hash=e.hash||new r.AST.HashNode([]),e.hash.pairs.push(["controlID",new r.AST.StringNode(n+i++)]);else if(e.params.length||e.hash);else{var t=new r.AST.IdNode([{part:"_triageMustache"}]);e.escaped||(e.hash=e.hash||new r.AST.HashNode([]),e.hash.pairs.push(["unescaped",new r.AST.StringNode("true")])),e=new r.AST.MustacheNode([t].concat([e.id]),e.hash,!e.escaped)}return r.Compiler.prototype.mustache.call(this,e)},Ember.Handlebars.precompile=function(e){var t=r.parse(e),n={knownHelpers:{action:!0,unbound:!0,bindAttr:!0,template:!0,view:!0,_triageMustache:!0},data:!0,stringParams:!0},i=(new Ember.Handlebars.Compiler).compile(t,n);return(new Ember.Handlebars.JavaScriptCompiler).compile(i,n,void 0,!0)},r.compile&&(Ember.Handlebars.compile=function(e){var t=r.parse(e),n={data:!0,stringParams:!0},i=(new Ember.Handlebars.Compiler).compile(t,n),s=(new Ember.Handlebars.JavaScriptCompiler).compile(i,n,void 0,!0);return Ember.Handlebars.template(s)})}(),function(){function e(e,t,r,i){var s,o,a,u,c,l,h=r.length,m=i.data,f=m.view,p=i.hash,d=p.boundOptions;a=new Ember._SimpleHandlebarsView(null,null,!p.unescaped,m),a.normalizedValue=function(){var s,o=[];for(s in d)d.hasOwnProperty(s)&&(c=n(e,d[s],m),a.path=c.path,a.pathRoot=c.root,p[s]=Ember._SimpleHandlebarsView.prototype.normalizedValue.call(a));for(u=0;h>u;++u)c=r[u],a.path=c.path,a.pathRoot=c.root,o.push(Ember._SimpleHandlebarsView.prototype.normalizedValue.call(a));return o.push(i),t.apply(e,o)},f.appendChild(a),s=[];for(o in d)d.hasOwnProperty(o)&&s.push(n(e,d[o],m));for(s=s.concat(r),u=0,l=s.length;l>u;++u)c=s[u],f.registerObserver(c.root,c.path,a,a.rerender)}function t(e,t,r,n){var i,s,o,a,u=[],c=n.hash,l=c.boundOptions;for(a in l)l.hasOwnProperty(a)&&(c[a]=Ember.Handlebars.get(e,l[a],n));for(i=0,s=r.length;s>i;++i)o=r[i],u.push(Ember.Handlebars.get(e,o.path,n));return u.push(n),t.apply(e,u)}var r=Array.prototype.slice,n=Ember.Handlebars.normalizePath=function(e,t,r){var n,i,s=r&&r.keywords||{};return n=t.split(".",1)[0],s.hasOwnProperty(n)&&(e=s[n],i=!0,t=t===n?"":t.substr(n.length+1)),{root:e,path:t,isKeyword:i}},i=Ember.Handlebars.get=function(e,t,r){var i,s=r&&r.data,o=n(e,t,s);return e=o.root,t=o.path,i=Ember.get(e,t),void 0===i&&e!==Ember.lookup&&Ember.isGlobalPath(t)&&(i=Ember.get(Ember.lookup,t)),i};Ember.Handlebars.getPath=Ember.deprecateFunc("`Ember.Handlebars.getPath` has been changed to `Ember.Handlebars.get` for consistency.",Ember.Handlebars.get),Ember.Handlebars.resolveParams=function(e,t,r){for(var n,s,o=[],a=r.types,u=0,c=t.length;c>u;u++)n=t[u],s=a[u],"ID"===s?o.push(i(e,n,r)):o.push(n);return o},Ember.Handlebars.resolveHash=function(e,t,r){var n,s={},o=r.hashTypes;for(var a in t)t.hasOwnProperty(a)&&(n=o[a],s[a]="ID"===n?i(e,t[a],r):t[a]);return s},Ember.Handlebars.registerHelper("helperMissing",function(e,t){var r,n="";throw r="%@ Handlebars error: Could not find property '%@' on object %@.",t.data&&(n=t.data.view),new Ember.Error(Ember.String.fmt(r,[n,e,this]))}),Ember.Handlebars.registerBoundHelper=function(i,s){function o(){var i,o,u,c,l,h=r.call(arguments,0,-1),m=h.length,f=arguments[arguments.length-1],p=[],d=f.data,b=f.hash,E=d.view,v=f.contexts&&f.contexts[0]||this,g="";b.boundOptions={};for(l in b)b.hasOwnProperty(l)&&Ember.IS_BINDING.test(l)&&"string"==typeof b[l]&&(b.boundOptions[l.slice(0,-7)]=b[l]);for(d.properties=[],c=0;m>c;++c)d.properties.push(h[c]),p.push(n(v,h[c],d));if(d.isUnbound)return t(this,s,p,f);if(0===a.length)return e(v,s,p,f);i=p[0],o=i.root,u=i.path;var y=new Ember._SimpleHandlebarsView(u,o,!f.hash.unescaped,f.data);y.normalizedValue=function(){var e=Ember._SimpleHandlebarsView.prototype.normalizedValue.call(y);return s.call(E,e,f)},E.appendChild(y),E.registerObserver(o,u,y,y.rerender),Ember.isEmpty(u)||(g=u+".");for(var w=0,_=a.length;_>w;w++)E.registerObserver(o,g+a[w],y,y.rerender)}var a=r.call(arguments,2);o._rawFunction=s,Ember.Handlebars.registerHelper(i,o)},Ember.Handlebars.template=function(e){var t=Handlebars.template(e);return t.isTop=!0,t}}(),function(){Ember.String.htmlSafe=function(e){return new Handlebars.SafeString(e)};var e=Ember.String.htmlSafe;(Ember.EXTEND_PROTOTYPES===!0||Ember.EXTEND_PROTOTYPES.String)&&(String.prototype.htmlSafe=function(){return e(this)})}(),function(){Ember.Handlebars.resolvePaths=function(e){for(var t=[],r=e.contexts,n=e.roots,i=e.data,s=0,o=r.length;o>s;s++)t.push(Ember.Handlebars.get(n[s],r[s],{data:i}));return t}}(),function(){function e(){Ember.run.once(Ember.View,"notifyMutationListeners")}Ember.set,Ember.get;var r=t("metamorph"),n={remove:function(t){t.morph.remove(),e()},prepend:function(t,r){t.morph.prepend(r),e()},after:function(t,r){t.morph.after(r),e()},html:function(t,r){t.morph.html(r),e()},replace:function(t){var r=t.morph;t.transitionTo("preRender"),Ember.run.schedule("render",this,function(){if(!t.isDestroying){t.clearRenderedChildren();var n=t.renderToBuffer();t.invokeRecursively(function(e){e.propertyWillChange("element")}),t.triggerRecursively("willInsertElement"),r.replaceWith(n.string()),t.transitionTo("inDOM"),t.invokeRecursively(function(e){e.propertyDidChange("element")}),t.triggerRecursively("didInsertElement"),e()}})},empty:function(t){t.morph.html(""),e()}};Ember._Metamorph=Ember.Mixin.create({isVirtual:!0,tagName:"",instrumentName:"metamorph",init:function(){this._super(),this.morph=r()},beforeRender:function(e){e.push(this.morph.startTag()),e.pushOpeningTag()},afterRender:function(e){e.pushClosingTag(),e.push(this.morph.endTag())},createElement:function(){var e=this.renderToBuffer();this.outerHTML=e.string(),this.clearBuffer()},domManager:n}),Ember._MetamorphView=Ember.View.extend(Ember._Metamorph),Ember._SimpleMetamorphView=Ember.CoreView.extend(Ember._Metamorph)}(),function(){function e(e,t,r,n){this.path=e,this.pathRoot=t,this.isEscaped=r,this.templateData=n,this.morph=s(),this.state="preRender",this.updateId=null}var r=Ember.get,n=Ember.set,i=Ember.Handlebars.get,s=t("metamorph");Ember._SimpleHandlebarsView=e,e.prototype={isVirtual:!0,isView:!0,destroy:function(){this.updateId&&(Ember.run.cancel(this.updateId),this.updateId=null),this.morph=null},propertyWillChange:Ember.K,propertyDidChange:Ember.K,normalizedValue:function(){var e,t,r=this.path,n=this.pathRoot;return""===r?e=n:(t=this.templateData,e=i(n,r,{data:t})),e},renderToBuffer:function(e){var t="";t+=this.morph.startTag(),t+=this.render(),t+=this.morph.endTag(),e.push(t)},render:function(){var e=this.isEscaped,t=this.normalizedValue();return null===t||void 0===t?t="":t instanceof Handlebars.SafeString||(t=String(t)),e&&(t=Handlebars.Utils.escapeExpression(t)),t},rerender:function(){switch(this.state){case"preRender":case"destroying":break;case"inBuffer":throw new Ember.Error("Something you did tried to replace an {{expression}} before it was inserted into the DOM.");case"hasElement":case"inDOM":this.updateId=Ember.run.scheduleOnce("render",this,"update")}return this},update:function(){this.updateId=null,this.morph.html(this.render())},transitionTo:function(e){this.state=e}};var o=Ember.View.cloneStates(Ember.View.states),a=Ember.merge;a(o._default,{rerenderIfNeeded:Ember.K}),a(o.inDOM,{rerenderIfNeeded:function(e){e.normalizedValue()!==e._lastNormalizedValue&&e.rerender()}}),Ember._HandlebarsBoundView=Ember._MetamorphView.extend({instrumentName:"boundHandlebars",states:o,shouldDisplayFunc:null,preserveContext:!1,previousContext:null,displayTemplate:null,inverseTemplate:null,path:null,pathRoot:null,normalizedValue:function(){var e,t,n=r(this,"path"),s=r(this,"pathRoot"),o=r(this,"valueNormalizerFunc");return""===n?e=s:(t=r(this,"templateData"),e=i(s,n,{data:t})),o?o(e):e},rerenderIfNeeded:function(){this.currentState.rerenderIfNeeded(this)},render:function(e){var t=r(this,"isEscaped"),i=r(this,"shouldDisplayFunc"),s=r(this,"preserveContext"),o=r(this,"previousContext"),a=r(this,"inverseTemplate"),u=r(this,"displayTemplate"),c=this.normalizedValue();if(this._lastNormalizedValue=c,i(c))if(n(this,"template",u),s)n(this,"_context",o);else{if(!u)return null===c||void 0===c?c="":c instanceof Handlebars.SafeString||(c=String(c)),t&&(c=Handlebars.Utils.escapeExpression(c)),e.push(c),void 0;n(this,"_context",c)}else a?(n(this,"template",a),s?n(this,"_context",o):n(this,"_context",c)):n(this,"template",function(){return""});return this._super(e)}})}(),function(){function e(e){return!Ember.isNone(e)}function t(e,t,r,n,o,a){var u,c,l,h=t.data,m=t.fn,f=t.inverse,p=h.view,d=this;if(u=s(d,e,h),"object"==typeof this){if(h.insideGroup){c=function(){Ember.run.once(p,"rerender")};var b,E,v=i(d,e,t);v=o?o(v):v,E=r?d:v,n(v)?b=m:f&&(b=f),b(E,{data:t.data})}else{var g=p.createChildView(Ember._HandlebarsBoundView,{preserveContext:r,shouldDisplayFunc:n,valueNormalizerFunc:o,displayTemplate:m,inverseTemplate:f,path:e,pathRoot:d,previousContext:d,isEscaped:!t.hash.unescaped,templateData:t.data});p.appendChild(g),c=function(){Ember.run.scheduleOnce("render",g,"rerenderIfNeeded")}}if(""!==u.path&&(p.registerObserver(u.root,u.path,c),a))for(l=0;l<a.length;l++)p.registerObserver(u.root,u.path+"."+a[l],c)}else h.buffer.push(i(d,e,t))}function r(e,t){var r,n,o=t.data,a=o.view,u=this;if(r=s(u,e,o),"object"==typeof this){if(o.insideGroup){n=function(){Ember.run.once(a,"rerender")};var c=i(u,e,t);(null===c||void 0===c)&&(c=""),o.buffer.push(c)}else{var l=new Ember._SimpleHandlebarsView(e,u,!t.hash.unescaped,t.data);l._parentView=a,a.appendChild(l),n=function(){Ember.run.scheduleOnce("render",l,"rerender")}}""!==r.path&&a.registerObserver(r.root,r.path,n)}else o.buffer.push(i(u,e,t))}var n=Ember.get;Ember.set,Ember.String.fmt;var i=Ember.Handlebars.get,s=Ember.Handlebars.normalizePath,o=Ember.ArrayPolyfills.forEach,a=Ember.Handlebars,u=a.helpers;a.registerHelper("_triageMustache",function(e,t){return u[e]?u[e].call(this,t):u.bind.apply(this,arguments)}),a.registerHelper("bind",function(n,i){var s=i.contexts&&i.contexts[0]||this;return i.fn?t.call(s,n,i,!1,e):r.call(s,n,i)}),a.registerHelper("boundIf",function(e,r){var i=r.contexts&&r.contexts[0]||this,s=function(e){var t=e&&n(e,"isTruthy");return"boolean"==typeof t?t:Ember.isArray(e)?0!==n(e,"length"):!!e};return t.call(i,e,r,!0,s,s,["isTruthy","length"])}),a.registerHelper("with",function(r,n){if(4===arguments.length){var i,o,a,c;if(n=arguments[3],i=arguments[2],o=arguments[0],Ember.isGlobalPath(o))Ember.bind(n.data.keywords,i,o);else{c=s(this,o,n.data),o=c.path,a=c.root;var l=Ember.$.expando+Ember.guidFor(a);n.data.keywords[l]=a;var h=o?l+"."+o:l;Ember.bind(n.data.keywords,i,h)}return t.call(this,o,n,!0,e)}return u.bind.call(n.contexts[0],r,n)}),a.registerHelper("if",function(e,t){return u.boundIf.call(t.contexts[0],e,t)}),a.registerHelper("unless",function(e,t){var r=t.fn,n=t.inverse;return t.fn=n,t.inverse=r,u.boundIf.call(t.contexts[0],e,t)}),a.registerHelper("bindAttr",function(e){var t=e.hash,r=e.data.view,n=[],u=this,c=++Ember.uuid,l=t["class"];if(null!=l){var h=a.bindClasses(this,l,r,c,e);n.push('class="'+Handlebars.Utils.escapeExpression(h.join(" "))+'"'),delete t["class"]}var m=Ember.keys(t);return o.call(m,function(o){var a,l=t[o];a=s(u,l,e.data);var h,m,f="this"===l?a.root:i(u,l,e),p=Ember.typeOf(f);h=function(){var t=i(u,l,e),n=r.$("[data-bindattr-"+c+"='"+c+"']");return n&&0!==n.length?(Ember.View.applyAttributeBindings(n,o,t),void 0):(Ember.removeObserver(a.root,a.path,m),void 0)},"this"===l||a.isKeyword&&""===a.path||r.registerObserver(a.root,a.path,h),"string"===p||"number"===p&&!isNaN(f)?n.push(o+'="'+Handlebars.Utils.escapeExpression(f)+'"'):f&&"boolean"===p&&n.push(o+'="'+o+'"')},this),n.push("data-bindattr-"+c+'="'+c+'"'),new a.SafeString(n.join(" "))}),a.bindClasses=function(e,t,r,n,a){var u,c,l,h=[],m=function(e,t,r){var n,s=t.path;return n="this"===s?e:""===s?!0:i(e,s,r),Ember.View._classStringForValue(s,n,t.className,t.falsyClassName)};return o.call(t.split(" "),function(t){var i,o,f,p,d=Ember.View._parsePropertyPath(t),b=d.path,E=e;""!==b&&"this"!==b&&(p=s(e,b,a.data),E=p.root,b=p.path),o=function(){u=m(e,d,a),l=n?r.$("[data-bindattr-"+n+"='"+n+"']"):r.$(),l&&0!==l.length?(i&&l.removeClass(i),u?(l.addClass(u),i=u):i=null):Ember.removeObserver(E,b,f)},""!==b&&"this"!==b&&r.registerObserver(E,b,o),c=m(e,d,a),c&&(h.push(c),i=c)}),h}}(),function(){Ember.get,Ember.set;var e=Ember.Handlebars,t=/^[a-z]/,r=/^view\./;e.ViewHelper=Ember.Object.create({propertiesFromHTMLOptions:function(e){var t=e.hash,r=e.data,n={},i=t["class"],s=!1;t.id&&(n.elementId=t.id,s=!0),t.tag&&(n.tagName=t.tag,s=!0),i&&(i=i.split(" "),n.classNames=i,s=!0),t.classBinding&&(n.classNameBindings=t.classBinding.split(" "),s=!0),t.classNameBindings&&(void 0===n.classNameBindings&&(n.classNameBindings=[]),n.classNameBindings=n.classNameBindings.concat(t.classNameBindings.split(" ")),s=!0),t.attributeBindings&&(n.attributeBindings=null,s=!0),s&&(t=Ember.$.extend({},t),delete t.id,delete t.tag,delete t["class"],delete t.classBinding);var o;for(var a in t)t.hasOwnProperty(a)&&Ember.IS_BINDING.test(a)&&"string"==typeof t[a]&&(o=this.contextualizeBindingPath(t[a],r),o&&(t[a]=o));if(n.classNameBindings)for(var u in n.classNameBindings){var c=n.classNameBindings[u];if("string"==typeof c){var l=Ember.View._parsePropertyPath(c);o=this.contextualizeBindingPath(l.path,r),o&&(n.classNameBindings[u]=o+l.classNames)}}return Ember.$.extend(t,n)},contextualizeBindingPath:function(e,t){var r=Ember.Handlebars.normalizePath(null,e,t);return r.isKeyword?"templateData.keywords."+e:Ember.isGlobalPath(e)?null:"this"===e?"_parentView.context":"_parentView.context."+e},helper:function(n,i,s){var o,a=s.data,u=s.fn;o="string"==typeof i?"STRING"===s.types[0]&&t.test(i)&&!r.test(i)?a.view.container.lookupFactory("view:"+i):e.get(n,i,s):i;var c=this.propertiesFromHTMLOptions(s,n),l=a.view;c.templateData=a;var h=o.proto?o.proto():o;u&&(c.template=u),h.controller||h.controllerBinding||c.controller||c.controllerBinding||(c._context=n),l.appendChild(o,c)}}),e.registerHelper("view",function(t,r){return t&&t.data&&t.data.isRenderData&&(r=t,t="Ember.View"),e.ViewHelper.helper(this,t,r)})}(),function(){var e=Ember.get,t=Ember.Handlebars.get;Ember.String.fmt,Ember.Handlebars.registerHelper("collection",function(r,n){r&&r.data&&r.data.isRenderData&&(n=r,r=void 0);var i=n.fn,s=n.data,o=n.inverse;n.data.view;var a;a=r?t(this,r,n):Ember.CollectionView;var u,c,l=n.hash,h={},m=a.proto();if(l.itemView){var f=s.keywords.controller,p=f.container;c=p.resolve("view:"+Ember.String.camelize(l.itemView))}else c=l.itemViewClass?t(m,l.itemViewClass,n):m.itemViewClass;delete l.itemViewClass,delete l.itemView;for(var d in l)l.hasOwnProperty(d)&&(u=d.match(/^item(.)(.*)$/),u&&"itemController"!==d&&(h[u[1].toLowerCase()+u[2]]=l[d],delete l[d]));i&&(h.template=i,delete n.fn);var b;o&&o!==Handlebars.VM.noop?(b=e(m,"emptyViewClass"),b=b.extend({template:o,tagName:h.tagName})):l.emptyViewClass&&(b=t(this,l.emptyViewClass,n)),b&&(l.emptyView=b),l.keyword||(h._context=Ember.computed.alias("content"));var E=Ember.Handlebars.ViewHelper.propertiesFromHTMLOptions({data:s,hash:h},this);return l.itemViewClass=c.extend(E),Ember.Handlebars.helpers.view.call(this,a,n)})}(),function(){var e=Ember.Handlebars.get;Ember.Handlebars.registerHelper("unbound",function(t,r){var n,i,s,o=arguments[arguments.length-1];return arguments.length>2?(o.data.isUnbound=!0,n=Ember.Handlebars.helpers[arguments[0]]||Ember.Handlebars.helperMissing,s=n.apply(this,Array.prototype.slice.call(arguments,1)),delete o.data.isUnbound,s):(i=r.contexts&&r.contexts[0]||this,e(i,t,r))})}(),function(){var e=Ember.Handlebars.get,t=Ember.Handlebars.normalizePath;Ember.Handlebars.registerHelper("log",function(r,n){var i=n.contexts&&n.contexts[0]||this,s=t(i,r,n.data),o=s.root,a=s.path,u="this"===a?o:e(o,a,n);Ember.Logger.log(u)}),Ember.Handlebars.registerHelper("debugger",function(){})}(),function(){var e=Ember.get,t=Ember.set;Ember.Handlebars.EachView=Ember.CollectionView.extend(Ember._Metamorph,{init:function(){var r,n=e(this,"itemController");if(n){var i=Ember.ArrayController.create();t(i,"itemController",n),t(i,"container",e(this,"controller.container")),t(i,"_eachView",this),t(i,"target",e(this,"controller")),t(i,"parentController",e(this,"controller")),this.disableContentObservers(function(){t(this,"content",i),r=new Ember.Binding("content","_eachView.dataSource").oneWay(),r.connect(i)}),t(this,"_arrayController",i)}else this.disableContentObservers(function(){r=new Ember.Binding("content","dataSource").oneWay(),r.connect(this)});return this._super()},_assertArrayLike:function(){},disableContentObservers:function(e){Ember.removeBeforeObserver(this,"content",null,"_contentWillChange"),Ember.removeObserver(this,"content",null,"_contentDidChange"),e.call(this),Ember.addBeforeObserver(this,"content",null,"_contentWillChange"),Ember.addObserver(this,"content",null,"_contentDidChange")},itemViewClass:Ember._MetamorphView,emptyViewClass:Ember._MetamorphView,createChildView:function(r,n){r=this._super(r,n);var i=e(this,"keyword"),s=e(r,"content");if(i){var o=e(r,"templateData");o=Ember.copy(o),o.keywords=r.cloneKeywords(),t(r,"templateData",o),o.keywords[i]=s}return s&&e(s,"isController")&&t(r,"controller",s),r},destroy:function(){if(this._super()){var t=e(this,"_arrayController");return t&&t.destroy(),this}}});var r=Ember.Handlebars.GroupedEach=function(e,t,r){var n=this,i=Ember.Handlebars.normalizePath(e,t,r.data);this.context=e,this.path=t,this.options=r,this.template=r.fn,this.containingView=r.data.view,this.normalizedRoot=i.root,this.normalizedPath=i.path,this.content=this.lookupContent(),this.addContentObservers(),this.addArrayObservers(),this.containingView.on("willClearRender",function(){n.destroy()})};r.prototype={contentWillChange:function(){this.removeArrayObservers()},contentDidChange:function(){this.content=this.lookupContent(),this.addArrayObservers(),this.rerenderContainingView()},contentArrayWillChange:Ember.K,contentArrayDidChange:function(){this.rerenderContainingView()},lookupContent:function(){return Ember.Handlebars.get(this.normalizedRoot,this.normalizedPath,this.options)},addArrayObservers:function(){this.content.addArrayObserver(this,{willChange:"contentArrayWillChange",didChange:"contentArrayDidChange"})},removeArrayObservers:function(){this.content.removeArrayObserver(this,{willChange:"contentArrayWillChange",didChange:"contentArrayDidChange"})},addContentObservers:function(){Ember.addBeforeObserver(this.normalizedRoot,this.normalizedPath,this,this.contentWillChange),Ember.addObserver(this.normalizedRoot,this.normalizedPath,this,this.contentDidChange)},removeContentObservers:function(){Ember.removeBeforeObserver(this.normalizedRoot,this.normalizedPath,this.contentWillChange),Ember.removeObserver(this.normalizedRoot,this.normalizedPath,this.contentDidChange)},render:function(){var t=this.content,r=e(t,"length"),n=this.options.data,i=this.template;n.insideEach=!0;for(var s=0;r>s;s++)i(t.objectAt(s),{data:n})},rerenderContainingView:function(){Ember.run.scheduleOnce("render",this.containingView,"rerender")},destroy:function(){this.removeContentObservers(),this.removeArrayObservers()}},Ember.Handlebars.registerHelper("each",function(e,t){if(4===arguments.length){var r=arguments[0];t=arguments[3],e=arguments[2],""===e&&(e="this"),t.hash.keyword=r}return 1===arguments.length&&(t=e,e="this"),t.hash.dataSourceBinding=e,!t.data.insideGroup||t.hash.groupedRows||t.hash.itemViewClass?Ember.Handlebars.helpers.collection.call(this,"Ember.Handlebars.EachView",t):(new Ember.Handlebars.GroupedEach(this,e,t).render(),void 0)})}(),function(){Ember.Handlebars.registerHelper("template",function(){return Ember.Handlebars.helpers.partial.apply(this,arguments)})}(),function(){Ember.Handlebars.registerHelper("partial",function(e,t){var r=e.split("/"),n=r[r.length-1];r[r.length-1]="_"+n;var i=t.data.view,s=r.join("/"),o=i.templateForName(s),a=!o&&i.templateForName(e);o=o||a,o(this,{data:t.data})})}(),function(){var e=Ember.get;Ember.set,Ember.Handlebars.registerHelper("yield",function(t){for(var r,n=t.data.view,i=n;i&&!e(i,"layout");)i=e(i,"parentView");r=e(i,"template");var s=i._parentView.cloneKeywords();n.appendChild(Ember.View,{isVirtual:!0,tagName:"",template:r,context:e(i._parentView,"context"),controller:e(i._parentView,"controller"),templateData:{keywords:s}})})}(),function(){Ember.Handlebars.registerHelper("loc",function(e){return Ember.String.loc(e)})}(),function(){var e=Ember.set;Ember.get,Ember.Checkbox=Ember.View.extend({classNames:["ember-checkbox"],tagName:"input",attributeBindings:["type","checked","indeterminate","disabled","tabindex","name"],type:"checkbox",checked:!1,disabled:!1,indeterminate:!1,init:function(){this._super(),this.on("change",this,this._updateElementValue)},didInsertElement:function(){this._super(),this.get("element").indeterminate=!!this.get("indeterminate")},_updateElementValue:function(){e(this,"checked",this.$().prop("checked"))}})}(),function(){var e=(Ember.get,Ember.set);Ember.TextSupport=Ember.Mixin.create({value:"",attributeBindings:["placeholder","disabled","maxlength","tabindex"],placeholder:null,disabled:!1,maxlength:null,insertNewline:Ember.K,cancel:Ember.K,init:function(){this._super(),this.on("focusOut",this,this._elementValueDidChange),this.on("change",this,this._elementValueDidChange),this.on("paste",this,this._elementValueDidChange),this.on("cut",this,this._elementValueDidChange),this.on("input",this,this._elementValueDidChange),this.on("keyUp",this,this.interpretKeyEvents)},interpretKeyEvents:function(e){var t=Ember.TextSupport.KEY_EVENTS,r=t[e.keyCode];return this._elementValueDidChange(),r?this[r](e):void 0},_elementValueDidChange:function(){e(this,"value",this.$().val())}}),Ember.TextSupport.KEY_EVENTS={13:"insertNewline",27:"cancel"}}(),function(){function e(e,r,n){var i=t(r,"action"),s=t(r,"onEvent");if(i&&s===e){var o=t(r,"controller"),a=t(r,"value"),u=t(r,"bubbles");o.send(i,a,r),u||n.stopPropagation()}}var t=Ember.get;Ember.set,Ember.TextField=Ember.View.extend(Ember.TextSupport,{classNames:["ember-text-field"],tagName:"input",attributeBindings:["type","value","size","pattern","name"],value:"",type:"text",size:null,pattern:null,action:null,onEvent:"enter",bubbles:!1,insertNewline:function(t){e("enter",this,t)},keyPress:function(t){e("keyPress",this,t)}})}(),function(){var e=Ember.get,t=Ember.set;Ember.Button=Ember.View.extend(Ember.TargetActionSupport,{classNames:["ember-button"],classNameBindings:["isActive"],tagName:"button",propagateEvents:!1,attributeBindings:["type","disabled","href","tabindex"],targetObject:Ember.computed(function(){var t=e(this,"target"),r=e(this,"context"),n=e(this,"templateData");return"string"!=typeof t?t:Ember.Handlebars.get(r,t,{data:n})}).property("target"),type:Ember.computed(function(){var e=this.tagName;return"input"===e||"button"===e?"button":void 0}),disabled:!1,href:Ember.computed(function(){return"a"===this.tagName?"#":null}),mouseDown:function(){return e(this,"disabled")||(t(this,"isActive",!0),this._mouseDown=!0,this._mouseEntered=!0),e(this,"propagateEvents")},mouseLeave:function(){this._mouseDown&&(t(this,"isActive",!1),this._mouseEntered=!1)},mouseEnter:function(){this._mouseDown&&(t(this,"isActive",!0),this._mouseEntered=!0)},mouseUp:function(){return e(this,"isActive")&&(this.triggerAction(),t(this,"isActive",!1)),this._mouseDown=!1,this._mouseEntered=!1,e(this,"propagateEvents")},keyDown:function(e){(13===e.keyCode||32===e.keyCode)&&this.mouseDown()},keyUp:function(e){(13===e.keyCode||32===e.keyCode)&&this.mouseUp()},touchStart:function(e){return this.mouseDown(e)},touchEnd:function(e){return this.mouseUp(e)},init:function(){this._super()}})}(),function(){var e=Ember.get;Ember.set,Ember.TextArea=Ember.View.extend(Ember.TextSupport,{classNames:["ember-text-area"],tagName:"textarea",attributeBindings:["rows","cols","name"],rows:null,cols:null,_updateElementValue:Ember.observer(function(){var t=e(this,"value"),r=this.$();r&&t!==r.val()&&r.val(t)},"value"),init:function(){this._super(),this.on("didInsertElement",this,this._updateElementValue)}})}(),function(){var e=Ember.set,t=Ember.get,r=Ember.EnumerableUtils.indexOf,n=Ember.EnumerableUtils.indexesOf,i=Ember.EnumerableUtils.forEach,s=Ember.EnumerableUtils.replace,o=Ember.isArray;Ember.Handlebars.compile,Ember.SelectOption=Ember.View.extend({tagName:"option",attributeBindings:["value","selected"],defaultTemplate:function(e,t){t={data:t.data,hash:{}},Ember.Handlebars.helpers.bind.call(e,"view.label",t)},init:function(){this.labelPathDidChange(),this.valuePathDidChange(),this._super()},selected:Ember.computed(function(){var e=t(this,"content"),n=t(this,"parentView.selection");return t(this,"parentView.multiple")?n&&r(n,e.valueOf())>-1:e==n}).property("content","parentView.selection"),labelPathDidChange:Ember.observer(function(){var e=t(this,"parentView.optionLabelPath");e&&Ember.defineProperty(this,"label",Ember.computed(function(){return t(this,e)}).property(e))},"parentView.optionLabelPath"),valuePathDidChange:Ember.observer(function(){var e=t(this,"parentView.optionValuePath");e&&Ember.defineProperty(this,"value",Ember.computed(function(){return t(this,e)}).property(e))},"parentView.optionValuePath")}),Ember.SelectOptgroup=Ember.CollectionView.extend({tagName:"optgroup",attributeBindings:["label"],selectionBinding:"parentView.selection",multipleBinding:"parentView.multiple",optionLabelPathBinding:"parentView.optionLabelPath",optionValuePathBinding:"parentView.optionValuePath",itemViewClassBinding:"parentView.optionView"}),Ember.Select=Ember.View.extend({tagName:"select",classNames:["ember-select"],defaultTemplate:Ember.Handlebars.template(function(e,t,r,n,i){function s(e,t){var n,i,s="";return t.buffer.push('<option value="">'),n={},i={},t.buffer.push(p(r._triageMustache.call(e,"view.prompt",{hash:{},contexts:[e],types:["ID"],hashContexts:i,hashTypes:n,data:t}))),t.buffer.push("</option>"),s}function o(e,t){var n,i,s;i={},s={},n=r.each.call(e,"view.groupedContent",{hash:{},inverse:d.noop,fn:d.program(4,a,t),contexts:[e],types:["ID"],hashContexts:s,hashTypes:i,data:t}),n||0===n?t.buffer.push(n):t.buffer.push("")}function a(e,t){var n,i;n={contentBinding:e,labelBinding:e},i={contentBinding:"ID",labelBinding:"ID"},t.buffer.push(p(r.view.call(e,"view.groupView",{hash:{contentBinding:"content",labelBinding:"label"},contexts:[e],types:["ID"],hashContexts:n,hashTypes:i,data:t})))}function u(e,t){var n,i,s;i={},s={},n=r.each.call(e,"view.content",{hash:{},inverse:d.noop,fn:d.program(7,c,t),contexts:[e],types:["ID"],hashContexts:s,hashTypes:i,data:t}),n||0===n?t.buffer.push(n):t.buffer.push("")}function c(e,t){var n,i;n={contentBinding:e},i={contentBinding:"STRING"},t.buffer.push(p(r.view.call(e,"view.optionView",{hash:{contentBinding:"this"},contexts:[e],types:["ID"],hashContexts:n,hashTypes:i,data:t})))}this.compilerInfo=[4,">= 1.0.0"],r=this.merge(r,Ember.Handlebars.helpers),i=i||{};
21
+ var l,h,m,f="",p=this.escapeExpression,d=this;return h={},m={},l=r["if"].call(t,"view.prompt",{hash:{},inverse:d.noop,fn:d.program(1,s,i),contexts:[t],types:["ID"],hashContexts:m,hashTypes:h,data:i}),(l||0===l)&&i.buffer.push(l),h={},m={},l=r["if"].call(t,"view.optionGroupPath",{hash:{},inverse:d.program(6,u,i),fn:d.program(3,o,i),contexts:[t],types:["ID"],hashContexts:m,hashTypes:h,data:i}),(l||0===l)&&i.buffer.push(l),f}),attributeBindings:["multiple","disabled","tabindex","name"],multiple:!1,disabled:!1,content:null,selection:null,value:Ember.computed(function(e,r){if(2===arguments.length)return r;var n=t(this,"optionValuePath").replace(/^content\.?/,"");return n?t(this,"selection."+n):t(this,"selection")}).property("selection"),prompt:null,optionLabelPath:"content",optionValuePath:"content",optionGroupPath:null,groupView:Ember.SelectOptgroup,groupedContent:Ember.computed(function(){var e=t(this,"optionGroupPath"),r=Ember.A();return i(t(this,"content"),function(n){var i=t(n,e);t(r,"lastObject.label")!==i&&r.pushObject({label:i,content:Ember.A()}),t(r,"lastObject.content").push(n)}),r}).property("optionGroupPath","content.@each"),optionView:Ember.SelectOption,_change:function(){t(this,"multiple")?this._changeMultiple():this._changeSingle()},selectionDidChange:Ember.observer(function(){var r=t(this,"selection");if(t(this,"multiple")){if(!o(r))return e(this,"selection",Ember.A([r])),void 0;this._selectionDidChangeMultiple()}else this._selectionDidChangeSingle()},"selection.@each"),valueDidChange:Ember.observer(function(){var e,r=t(this,"content"),n=t(this,"value"),i=t(this,"optionValuePath").replace(/^content\.?/,""),s=i?t(this,"selection."+i):t(this,"selection");n!==s&&(e=r?r.find(function(e){return n===(i?t(e,i):e)}):null,this.set("selection",e))},"value"),_triggerChange:function(){var e=t(this,"selection"),r=t(this,"value");Ember.isNone(e)||this.selectionDidChange(),Ember.isNone(r)||this.valueDidChange(),this._change()},_changeSingle:function(){var r=this.$()[0].selectedIndex,n=t(this,"content"),i=t(this,"prompt");if(n&&t(n,"length")){if(i&&0===r)return e(this,"selection",null),void 0;i&&(r-=1),e(this,"selection",n.objectAt(r))}},_changeMultiple:function(){var r=this.$("option:selected"),n=t(this,"prompt"),i=n?1:0,a=t(this,"content"),u=t(this,"selection");if(a&&r){var c=r.map(function(){return this.index-i}).toArray(),l=a.objectsAt(c);o(u)?s(u,0,t(u,"length"),l):e(this,"selection",l)}},_selectionDidChangeSingle:function(){var e=this.get("element");if(e){var n=t(this,"content"),i=t(this,"selection"),s=n?r(n,i):-1,o=t(this,"prompt");o&&(s+=1),e&&(e.selectedIndex=s)}},_selectionDidChangeMultiple:function(){var e,i=t(this,"content"),s=t(this,"selection"),o=i?n(i,s):[-1],a=t(this,"prompt"),u=a?1:0,c=this.$("option");c&&c.each(function(){e=this.index>-1?this.index-u:-1,this.selected=r(o,e)>-1})},init:function(){this._super(),this.on("didInsertElement",this,this._triggerChange),this.on("change",this,this._change)}})}(),function(){function e(e,t){for(var r in e)"ID"===t[r]&&(e[r+"Binding"]=e[r],delete e[r])}Ember.Handlebars.registerHelper("input",function(t){var r=t.hash,n=t.hashTypes,i=r.type,s=r.on;return delete r.type,delete r.on,e(r,n),"checkbox"===i?Ember.Handlebars.helpers.view.call(this,Ember.Checkbox,t):(i&&(r.type=i),r.onEvent=s||"enter",Ember.Handlebars.helpers.view.call(this,Ember.TextField,t))}),Ember.Handlebars.registerHelper("textarea",function(t){var r=t.hash,n=t.hashTypes;return e(r,n),Ember.Handlebars.helpers.view.call(this,Ember.TextArea,t)})}(),function(){function e(){Ember.Handlebars.bootstrap(Ember.$(document))}function t(e){var t,n=Ember.TEMPLATES;if(n)for(var i in n)(t=i.match(/^components\/(.*)$/))&&r(e,t[1])}function r(e,t){var r=t.replace(/-/g,"_"),n=e.lookupFactory("component:"+r)||e.lookupFactory("component:"+t),i=n||Ember.Component.extend();i.reopen({layoutName:"components/"+t}),Ember.Handlebars.helper(t,i)}Ember.Handlebars.bootstrap=function(e){var t='script[type="text/x-handlebars"], script[type="text/x-raw-handlebars"]';Ember.$(t,e).each(function(){var e=Ember.$(this),t="text/x-raw-handlebars"===e.attr("type")?Ember.$.proxy(Handlebars.compile,Handlebars):Ember.$.proxy(Ember.Handlebars.compile,Ember.Handlebars),r=e.attr("data-template-name")||e.attr("id")||"application",n=t(e.html());Ember.TEMPLATES[r]=n,e.remove()})},Ember.onLoad("Ember.Application",function(r){r.initializer?(r.initializer({name:"domTemplates",initialize:e}),r.initializer({name:"registerComponents",after:"domTemplates",initialize:t})):Ember.onLoad("application",e)})}(),function(){Ember.runLoadHooks("Ember.Handlebars",Ember.Handlebars)}(),function(){var e=Ember.get,t=Ember.set;Ember._PromiseChain=Ember.Object.extend({promises:null,failureCallback:Ember.K,successCallback:Ember.K,abortCallback:Ember.K,promiseSuccessCallback:Ember.K,runNextPromise:function(){if(!e(this,"isDestroyed")){var t=e(this,"promises").shiftObject();if(t){var r=e(t,"promise")||t,n=this,i=function(){n.promiseSuccessCallback.call(this,t,arguments),n.runNextPromise()},s=e(n,"failureCallback");r.then(i,s)}else this.successCallback()}},start:function(){return this.runNextPromise(),this},abort:function(){this.abortCallback(),this.destroy()},init:function(){t(this,"promises",Ember.A(e(this,"promises"))),this._super()}})}(),function(){function e(t,r,n,i){var s,o=t.name,a=t.incoming,u=t.incomingNames,c=u.length;if(n||(n={}),i||(i=[]),!n.hasOwnProperty(o)){for(i.push(o),n[o]=!0,s=0;c>s;s++)e(a[u[s]],r,n,i);r(t,i),i.pop()}}function t(){this.names=[],this.vertices={}}t.prototype.add=function(e){if(e){if(this.vertices.hasOwnProperty(e))return this.vertices[e];var t={name:e,incoming:{},incomingNames:[],hasOutgoing:!1,value:null};return this.vertices[e]=t,this.names.push(e),t}},t.prototype.map=function(e,t){this.add(e).value=t},t.prototype.addEdge=function(t,r){function n(e,t){if(e.name===r)throw new Error("cycle detected: "+r+" <- "+t.join(" <- "))}if(t&&r&&t!==r){var i=this.add(t),s=this.add(r);s.incoming.hasOwnProperty(t)||(e(i,n),i.hasOutgoing=!0,s.incoming[t]=i,s.incomingNames.push(t))}},t.prototype.topsort=function(t){var r,n,i={},s=this.vertices,o=this.names,a=o.length;for(r=0;a>r;r++)n=s[o[r]],n.hasOutgoing||e(n,t,i)},t.prototype.addEdges=function(e,t,r,n){var i;if(this.map(e,t),r)if("string"==typeof r)this.addEdge(e,r);else for(i=0;i<r.length;i++)this.addEdge(e,r[i]);if(n)if("string"==typeof n)this.addEdge(n,e);else for(i=0;i<n.length;i++)this.addEdge(n[i],e)},Ember.DAG=t}(),function(){var e=Ember.get,t=Ember.set;Ember.Application=Ember.Namespace.extend({rootElement:"body",eventDispatcher:null,customEvents:null,autoinit:!Ember.testing,isInitialized:!1,init:function(){if(this.$||(this.$=Ember.$),this._super(),this.createEventDispatcher(),this._readinessDeferrals=1,this.waitForDOMContentLoaded(),this.autoinit){var e=this;this.$().ready(function(){e.isDestroyed||e.isInitialized||e.initialize()})}},createEventDispatcher:function(){var r=e(this,"rootElement"),n=Ember.EventDispatcher.create({rootElement:r});t(this,"eventDispatcher",n)},waitForDOMContentLoaded:function(){this.deferReadiness();var e=this;this.$().ready(function(){e.advanceReadiness()})},deferReadiness:function(){this._readinessDeferrals++},advanceReadiness:function(){this._readinessDeferrals--,0===this._readinessDeferrals&&Ember.run.once(this,this.didBecomeReady)},initialize:function(e){return e=this.setupRouter(e),this.runInjections(e),Ember.runLoadHooks("application",this),this.isInitialized=!0,this.advanceReadiness(),this},runInjections:function(t){var r,n,i=e(this.constructor,"injections"),s=new Ember.DAG,o=this;for(r=0;r<i.length;r++)n=i[r],s.addEdges(n.name,n.injection,n.before,n.after);s.topsort(function(e){var r=e.value,n=Ember.A(Ember.keys(o));n.forEach(function(e){r(o,t,e)})})},setupRouter:function(e){return!e&&Ember.Router.detect(this.Router)&&(e=this.Router.create(),this._createdRouter=e),e&&(t(this,"router",e),t(e,"namespace",this)),e},didBecomeReady:function(){var t,r=e(this,"eventDispatcher"),n=e(this,"customEvents");r.setup(n),this.ready(),t=e(this,"router"),this.createApplicationView(t),t&&t instanceof Ember.Router&&this.startRouting(t),Ember.BOOTED=!0},createApplicationView:function(r){var n,i,s=e(this,"rootElement"),o={},a=this.ApplicationView,u=Ember.TEMPLATES.application;(a||u)&&(r&&(n=e(r,"applicationController"),n&&(o.controller=n)),u&&(o.template=u),a||(a=Ember.View),i=a.create(o),this._createdApplicationView=i,r&&t(r,"applicationView",i),i.appendTo(s))},startRouting:function(t){var r=e(t,"location");t.route(r.getURL()),r.onUpdateURL(function(e){t.route(e)})},ready:Ember.K,willDestroy:function(){e(this,"eventDispatcher").destroy(),this._createdRouter&&this._createdRouter.destroy(),this._createdApplicationView&&this._createdApplicationView.destroy()},registerInjection:function(e){this.constructor.registerInjection(e)}}),Ember.Application.reopenClass({concatenatedProperties:["injections"],injections:Ember.A(),registerInjection:function(t){var r=e(this,"injections");r.push(t)}}),Ember.Application.registerInjection({name:"controllers",injection:function(e,t,r){if(t&&/^[A-Z].*Controller$/.test(r)){var n,i=r.charAt(0).toLowerCase()+r.substr(1),s=e[r];Ember.Object.detect(s)&&(n=e[r].create(),t.set(i,n),n.setProperties({target:t,controllers:t,namespace:e}))}}}),Ember.runLoadHooks("Ember.Application",Ember.Application)}(),function(){var e=Ember.get;Ember._ResolvedState=Ember.Object.extend({manager:null,state:null,match:null,object:Ember.computed(function(){if(this._object)return this._object;var t=e(this,"state"),r=e(this,"match"),n=e(this,"manager");return t.deserialize(n,r.hash)}),hasPromise:Ember.computed(function(){return Ember.canInvoke(e(this,"object"),"then")}).property("object"),promise:Ember.computed(function(){var t=e(this,"object");return Ember.canInvoke(t,"then")?t:{then:function(e){e(t)}}}).property("object"),transition:function(){var t=e(this,"manager"),r=e(this,"state.path"),n=e(this,"object");t.transitionTo(r,n)}})}(),function(){var e=Ember.get,t=function(e){var t=e.toString(),r=t.split("."),n=r[r.length-1];return Ember.String.underscore(n)+"_id"},r=function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e.hasOwnProperty(r)||(e[r]=t[r]))};Ember.Routable=Ember.Mixin.create({init:function(){var t;this.on("setup",this,this.stashContext),(t=e(this,"redirectsTo"))&&(this.connectOutlets=function(e){e.transitionTo(t)});var r=e(this,"route");""===r&&(r="/"),this._super()},setup:function(){return this.connectOutlets.apply(this,arguments)},stashContext:function(t,r){this.router=t;var n=this.serialize(t,r);t.setStateMeta(this,"context",r),t.setStateMeta(this,"serialized",n),e(this,"isRoutable")&&!e(t,"isRouting")&&this.updateRoute(t,e(t,"location"))},updateRoute:function(t,r){if(e(this,"isLeafRoute")){var n=this.absoluteRoute(t);r.setURL(n)}},absoluteRoute:function(t,n){var i,s,o=e(this,"parentState"),a="";s=null,n&&(n instanceof Array?n.length>0&&(s=n.shift()):s=n),e(o,"isRoutable")&&(a=o.absoluteRoute(t,n));var u=e(this,"routeMatcher"),c=t.getStateMeta(this,"serialized");return s=s||{},r(s,c),i=u&&u.generate(s),i&&(a=a+"/"+i),a},isRoutable:Ember.computed(function(){return"string"==typeof e(this,"route")}),isLeafRoute:Ember.computed(function(){return e(this,"isLeaf")?!0:!e(this,"childStates").findProperty("isRoutable")}),routeMatcher:Ember.computed(function(){var t=e(this,"route");return t?Ember._RouteMatcher.create({route:t}):void 0}),hasContext:Ember.computed(function(){var t=e(this,"routeMatcher");return t?t.identifiers.length>0:void 0}),modelClass:Ember.computed(function(){var t=e(this,"modelType");return"string"==typeof t?Ember.get(Ember.lookup,t):t}),modelClassFor:function(t){var r,n,i,s,o;if(r=e(this,"modelClass"))return r;if(t&&(n=e(this,"routeMatcher"),n&&(i=n.identifiers,2===i.length&&(s=i[1].match(/^(.*)_id$/)))))return o=Ember.String.classify(s[1]),e(t,o)},deserialize:function(r,n){var i;return(i=this.modelClassFor(e(r,"namespace")))?i.find(n[t(i)]):n},serialize:function(r,n){var i,s,o;return Ember.isEmpty(n)?"":((i=this.modelClassFor(e(r,"namespace")))&&(s=t(i),o=e(n,"id"),n={},n[s]=o),n)},resolvePath:function(t,r){if(e(this,"isLeafRoute"))return Ember.A();var n,i=e(this,"childStates");i=Ember.A(i.filterProperty("isRoutable")),i=i.sort(function(t,r){var n=e(t,"routeMatcher.identifiers.length"),i=e(r,"routeMatcher.identifiers.length"),s=e(t,"route"),o=e(r,"route");return 0===s.indexOf(o)?-1:0===o.indexOf(s)?1:n!==i?n-i:e(r,"route.length")-e(t,"route.length")});var s=i.find(function(t){var i=e(t,"routeMatcher");return(n=i.match(r))?!0:void 0}),o=Ember._ResolvedState.create({manager:t,state:s,match:n}),a=s.resolvePath(t,n.remaining);return Ember.A([o]).pushObjects(a)},routePath:function(t,r){function n(){i.forEach(function(e){e.transition()})}if(!e(this,"isLeafRoute")){var i=this.resolvePath(t,r),s=i.some(function(t){return e(t,"hasPromise")});s?(t.transitionTo("loading"),t.handleStatePromises(i,n)):n()}},unroutePath:function(t,r){var n=e(this,"parentState");if(n!==t){r=r.replace(/^(?=[^\/])/,"/");var i=this.absoluteRoute(t),s=e(this,"route");if("/"!==s){var o=r.indexOf(i),a=r.charAt(i.length);if(0===o&&("/"===a||""===a))return}t.enterState({exitStates:[this],enterStates:[],finalState:n}),t.send("unroutePath",r)}},parentTemplate:Ember.computed(function(){for(var t,r=this;r=e(r,"parentState");)if(t=e(r,"template"))return t;return"application"}),_template:Ember.computed(function(){var t=e(this,"template");if(t)return t;var r,n=this.constructor.toString();return/^[^\[].*Route$/.test(n)?(r=n.match(/([^\.]+\.)*([^\.]+)/)[2],r=r.replace(/Route$/,""),r.charAt(0).toLowerCase()+r.substr(1)):void 0}),render:function(t){t=t||{};var r=t.template||e(this,"_template"),n=t.into||e(this,"parentTemplate"),i=e(this.router,n+"Controller"),s=Ember.String.classify(r)+"View",o=e(e(this.router,"namespace"),s);o=(o||Ember.View).extend({templateName:r}),i.set("view",o.create())},connectOutlets:Ember.K,navigateAway:Ember.K})}(),function(){Ember.Route=Ember.State.extend(Ember.Routable)}(),function(){var e=function(e){return e.replace(/[\-\[\]{}()*+?.,\\\^\$|#\s]/g,"\\$&")};Ember._RouteMatcher=Ember.Object.extend({state:null,init:function(){var t,r=this.route,n=[],i=1;"/"===r.charAt(0)&&(r=this.route=r.substr(1)),t=e(r);var s=t.replace(/(:|(?:\\\*))([a-z_]+)(?=$|\/)/gi,function(e,t,r){switch(n[i++]=r,t){case":":return"([^/]+)";case"\\*":return"(.+)"}});this.identifiers=n,this.regex=new RegExp("^/?"+s)},match:function(e){var t=e.match(this.regex);if(t){for(var r=this.identifiers,n={},i=1,s=r.length;s>i;i++)n[r[i]]=t[i];return{remaining:e.substr(t[0].length),hash:r.length>0?n:null}}},generate:function(e){for(var t,r=this.identifiers,n=this.route,i=1,s=r.length;s>i;i++)t=r[i],n=n.replace(new RegExp("(:|(\\*))"+t),e[t]);return n}})}(),function(){Ember.get,Ember.set,Ember.Location={create:function(e){var t=e&&e.implementation,r=this.implementations[t];return r.create.apply(r,arguments)},registerImplementation:function(e,t){this.implementations[e]=t},implementations:{}}}(),function(){var e=Ember.get,t=Ember.set;Ember.NoneLocation=Ember.Object.extend({path:"",getURL:function(){return e(this,"path")},setURL:function(e){t(this,"path",e)},onUpdateURL:function(){},formatURL:function(e){return e}}),Ember.Location.registerImplementation("none",Ember.NoneLocation)}(),function(){var e=Ember.get,t=Ember.set;Ember.HashLocation=Ember.Object.extend({init:function(){t(this,"location",e(this,"location")||window.location)},getURL:function(){return e(this,"location").hash.substr(1)},setURL:function(r){e(this,"location").hash=r,t(this,"lastSetURL",r)},onUpdateURL:function(r){var n=this,i=Ember.guidFor(this);Ember.$(window).on("hashchange.ember-location-"+i,function(){var i=location.hash.substr(1);e(n,"lastSetURL")!==i&&(t(n,"lastSetURL",null),r(location.hash.substr(1)))})},formatURL:function(e){return"#"+e},willDestroy:function(){var e=Ember.guidFor(this);Ember.$(window).off("hashchange.ember-location-"+e)}}),Ember.Location.registerImplementation("hash",Ember.HashLocation)}(),function(){var e=Ember.get,t=Ember.set,r=!1;Ember.HistoryLocation=Ember.Object.extend({init:function(){t(this,"location",e(this,"location")||window.location),this.initState()},initState:function(){this.replaceState(e(this,"location").pathname),t(this,"history",window.history)},rootURL:"/",getURL:function(){return e(this,"location").pathname},setURL:function(e){e=this.formatURL(e),this.getState()&&this.getState().path!==e&&(r=!0,this.pushState(e))},getState:function(){return e(this,"history").state},pushState:function(e){window.history.pushState({path:e},null,e)},replaceState:function(e){window.history.replaceState({path:e},null,e)},onUpdateURL:function(e){var t=Ember.guidFor(this);Ember.$(window).on("popstate.ember-location-"+t,function(){r&&e(location.pathname)})},formatURL:function(t){var r=e(this,"rootURL");return""!==t&&(r=r.replace(/\/$/,"")),r+t},willDestroy:function(){var e=Ember.guidFor(this);Ember.$(window).off("popstate.ember-location-"+e)}}),Ember.Location.registerImplementation("history",Ember.HistoryLocation)}(),function(){var e=Ember.get,t=Ember.set;Ember.Router=Ember.StateManager.extend({initialState:"root",location:"hash",rootURL:"/",transitionTo:function(){this.abortRoutingPromises(),this._super.apply(this,arguments)},route:function(r){function n(){for(r=r.replace(e(this,"rootURL"),""),r=r.replace(/^(?=[^\/])/,"/"),this.send("navigateAway"),this.send("unroutePath",r),s=e(this,"currentState");s&&!s.get("isRoutable");)s=e(s,"parentState");var t=s?s.absoluteRoute(this):"",n=r.substr(t.length);this.send("routePath",n)}function i(){t(this,"isRouting",!1)}this.abortRoutingPromises(),t(this,"isRouting",!0);var s;for(Ember.tryFinally(n,i,this),s=e(this,"currentState");s&&!s.get("isRoutable");)s=e(s,"parentState");s&&s.updateRoute(this,e(this,"location"))},urlFor:function(t,r){var n=e(this,"currentState")||this,i=this.findStateByPath(n,t),s=e(this,"location"),o=i.absoluteRoute(this,r);return s.formatURL(o)},urlForEvent:function(t){var r,n,i=Array.prototype.slice.call(arguments,1),s=e(this,"currentState"),o=s.lookupEventTransition(t);return r=this.findStateByPath(s,o),n=this.serializeRecursively(r,i,[]),this.urlFor(o,n)},serializeRecursively:function(t,r,n){var i,s=e(t,"hasContext")?r.pop():null,o=s?t.serialize(this,s):null;return n.push(o),i=t.get("parentState"),i&&i instanceof Ember.Route?this.serializeRecursively(i,r,n):n},abortRoutingPromises:function(){this._routingPromises&&(this._routingPromises.abort(),this._routingPromises=null)},handleStatePromises:function(e,r){this.abortRoutingPromises(),this.set("isLocked",!0);var n=this;this._routingPromises=Ember._PromiseChain.create({promises:e.slice(),successCallback:function(){n.set("isLocked",!1),r()},failureCallback:function(){throw"Unable to load object"},promiseSuccessCallback:function(e,r){t(e,"object",r[0])},abortCallback:function(){n.set("isLocked",!1)}}).start()},moveStatesIntoRoot:function(){this.root=Ember.Route.extend();for(var e in this)if("constructor"!==e){var t=this[e];(t instanceof Ember.Route||Ember.Route.detect(t))&&(this.root[e]=t,delete this[e])}},init:function(){this.root||this.moveStatesIntoRoot(),this._super();var r=e(this,"location"),n=e(this,"rootURL");"string"==typeof r&&t(this,"location",Ember.Location.create({implementation:r,rootURL:n})),this.assignRouter(this,this)},assignRouter:function(e,t){e.router=t;var r=e.states;if(r)for(var n in r)r.hasOwnProperty(n)&&this.assignRouter(r[n],t)},willDestroy:function(){e(this,"location").destroy()}})}(),function(){var e=Ember.Handlebars,t=e.get,r=Ember.get,n=Array.prototype.slice,i=e.ActionHelper={registeredActions:{}};i.registerAction=function(e,t){var r=(++Ember.uuid).toString();return i.registeredActions[r]={eventName:t.eventName,handler:function(r){var n=r.shiftKey||r.metaKey||r.altKey||r.ctrlKey,i=r.which>1,s=n||i;if(!t.link||!s){r.preventDefault(),r.view=t.view,t.hasOwnProperty("context")&&(r.context=t.context),t.hasOwnProperty("contexts")&&(r.contexts=t.contexts);var o=t.target;return"function"==typeof o.send?o.send(e,r):o[e].call(o,r)}}},t.view.on("willClearRender",function(){delete i.registeredActions[r]}),r},e.registerHelper("action",function(s){var o,a,u=arguments[arguments.length-1],c=n.call(arguments,1,-1),l=u.hash,h=u.data.view,m={eventName:l.on||"click"};m.view=h=r(h,"concreteView"),l.target?o=t(this,l.target,u):(a=u.data.keywords.controller)&&(o=a),m.target=o=o||h,c.length&&(m.contexts=c=Ember.EnumerableUtils.map(c,function(e){return t(this,e,u)},this),m.context=c[0]);var f,p=[];l.href&&o.urlForEvent&&(f=o.urlForEvent.apply(o,[s].concat(c)),p.push('href="'+f+'"'),m.link=!0);var d=i.registerAction(s,m);return p.push('data-ember-action="'+d+'"'),new e.SafeString(p.join(" "))})}(),function(){Ember.onLoad("Ember.Handlebars",function(e){e.OutletView=Ember.ContainerView.extend(Ember._Metamorph),e.registerHelper("outlet",function(t,r){return t&&t.data&&t.data.isRenderData&&(r=t,t="view"),r.hash.currentViewBinding="view.context."+t,e.helpers.view.call(this,e.OutletView,r)})})}(),function(){var e=Ember.get,t=Ember.set;Ember.ControllerMixin.reopen({controllers:null,connectOutlet:function(r,n){var i,s,o,a,u;if("string"===Ember.typeOf(n)&&(i=r,r=n,n=arguments[2]),1===arguments.length?"object"===Ember.typeOf(r)&&(u=r,i=u.outletName,r=u.name,s=u.viewClass,a=u.controller,n=u.context):u={},i=i||"view",r){var c=e(this,"namespace"),l=e(this,"controllers"),h=r.charAt(0).toUpperCase()+r.substr(1)+"View";s=e(c,h),a=e(l,r+"Controller")}return a&&n&&t(a,"content",n),o=this.createOutletView(i,s),a&&t(o,"controller",a),t(this,i,o),o},connectControllers:function(){for(var r,n=e(this,"controllers"),i=Array.prototype.slice.apply(arguments),s=0,o=i.length;o>s;s++)r=i[s]+"Controller",t(this,r,e(n,r))},disconnectOutlet:function(e){e=e||"view",t(this,e,null)},createOutletView:function(e,t){return t.create()},urlForEvent:function(t,r){var n=e(this,"target");return n?n.urlForEvent(t,r):void 0}})}(),function(){var e=Ember.get,t=(Ember.set,Ember.String.fmt);Ember.View.reopen({templateForName:function(r,n){if(r){var i=e(this,"templates"),s=e(i,r);if(!s)throw new Ember.Error(t('%@ - Unable to find %@ "%@".',[this,n,r]));return s}}})}()}(),"undefined"==typeof location||"localhost"!==location.hostname&&"127.0.0.1"!==location.hostname||Ember.Logger.warn("You are running a production build of Ember on localhost and won't receive detailed error messages. If you want full error messages please use the non-minified build provided on the Ember website.");
@@ -89,10 +89,10 @@ Ember.toString = function() { return "Ember"; };
89
89
  /**
90
90
  @property VERSION
91
91
  @type String
92
- @default '1.0.0-rc.6'
92
+ @default '1.0.0-rc.6.1'
93
93
  @final
94
94
  */
95
- Ember.VERSION = '1.0.0-rc.6';
95
+ Ember.VERSION = '1.0.0-rc.6.1';
96
96
 
97
97
  /**
98
98
  Standard environmental variables. You can define these in a global `ENV`
@@ -192,16 +192,19 @@ Ember.uuid = 0;
192
192
  //
193
193
 
194
194
  function consoleMethod(name) {
195
- if (imports.console && imports.console[name]) {
195
+ var console = imports.console,
196
+ method = typeof console === 'object' ? console[name] : null;
197
+
198
+ if (method) {
196
199
  // Older IE doesn't support apply, but Chrome needs it
197
- if (imports.console[name].apply) {
200
+ if (method.apply) {
198
201
  return function() {
199
- imports.console[name].apply(imports.console, arguments);
202
+ method.apply(console, arguments);
200
203
  };
201
204
  } else {
202
205
  return function() {
203
206
  var message = Array.prototype.join.call(arguments, ', ');
204
- imports.console[name](message);
207
+ method(message);
205
208
  };
206
209
  }
207
210
  }
@@ -213,7 +216,7 @@ function assertPolyfill(test, message) {
213
216
  // attempt to preserve the stack
214
217
  throw new Error("assertion failed: " + message);
215
218
  } catch(error) {
216
- setTimeout(function(){
219
+ setTimeout(function() {
217
220
  throw error;
218
221
  }, 0);
219
222
  }
@@ -295,7 +298,7 @@ Ember.merge = function(original, updates) {
295
298
  Ember.isNone(undefined); // true
296
299
  Ember.isNone(''); // false
297
300
  Ember.isNone([]); // false
298
- Ember.isNone(function(){}); // false
301
+ Ember.isNone(function() {}); // false
299
302
  ```
300
303
 
301
304
  @method isNone
@@ -400,7 +403,7 @@ var canRedefineProperties, canDefinePropertyOnDOM;
400
403
  // Catch IE8 where Object.defineProperty exists but only works on DOM elements
401
404
  if (defineProperty) {
402
405
  try {
403
- defineProperty({}, 'a',{get:function(){}});
406
+ defineProperty({}, 'a',{get:function() {}});
404
407
  } catch (e) {
405
408
  defineProperty = null;
406
409
  }
@@ -431,7 +434,7 @@ if (defineProperty) {
431
434
 
432
435
  // This is for Safari 5.0, which supports Object.defineProperty, but not
433
436
  // on DOM nodes.
434
- canDefinePropertyOnDOM = (function(){
437
+ canDefinePropertyOnDOM = (function() {
435
438
  try {
436
439
  defineProperty(document.createElement('div'), 'definePropertyOnDOM', {});
437
440
  return true;
@@ -443,7 +446,7 @@ if (defineProperty) {
443
446
  if (!canRedefineProperties) {
444
447
  defineProperty = null;
445
448
  } else if (!canDefinePropertyOnDOM) {
446
- defineProperty = function(obj, keyName, desc){
449
+ defineProperty = function(obj, keyName, desc) {
447
450
  var isNode;
448
451
 
449
452
  if (typeof Node === "object") {
@@ -1053,7 +1056,7 @@ if (needsFinallyFix) {
1053
1056
  } finally {
1054
1057
  try {
1055
1058
  finalResult = finalizer.call(binding);
1056
- } catch (e){
1059
+ } catch (e) {
1057
1060
  finalError = e;
1058
1061
  }
1059
1062
  }
@@ -1105,7 +1108,7 @@ if (needsFinallyFix) {
1105
1108
  } finally {
1106
1109
  try {
1107
1110
  finalResult = finalizer.call(binding);
1108
- } catch (e){
1111
+ } catch (e) {
1109
1112
  finalError = e;
1110
1113
  }
1111
1114
  }
@@ -1304,7 +1307,7 @@ Ember.Instrumentation.instrument = function(name, payload, callback, binding) {
1304
1307
 
1305
1308
  var beforeValues = [], listener, i, l;
1306
1309
 
1307
- function tryable(){
1310
+ function tryable() {
1308
1311
  for (i=0, l=listeners.length; i<l; i++) {
1309
1312
  listener = listeners[i];
1310
1313
  beforeValues[i] = listener.before(name, time(), payload);
@@ -1313,7 +1316,7 @@ Ember.Instrumentation.instrument = function(name, payload, callback, binding) {
1313
1316
  return callback.call(binding);
1314
1317
  }
1315
1318
 
1316
- function catchable(e){
1319
+ function catchable(e) {
1317
1320
  payload = payload || {};
1318
1321
  payload.exception = e;
1319
1322
  }
@@ -1831,14 +1834,10 @@ function suspendListener(obj, eventName, target, method, callback) {
1831
1834
  /**
1832
1835
  @private
1833
1836
 
1834
- Suspend listener during callback.
1835
-
1836
- This should only be used by the target of the event listener
1837
- when it is taking an action that would cause the event, e.g.
1838
- an object might suspend its property change listener while it is
1839
- setting that property.
1837
+ Suspends multiple listeners during a callback.
1840
1838
 
1841
- @method suspendListener
1839
+
1840
+ @method suspendListeners
1842
1841
  @for Ember
1843
1842
  @param obj
1844
1843
  @param {Array} eventName Array of event names
@@ -1900,12 +1899,17 @@ function watchedEvents(obj) {
1900
1899
  }
1901
1900
 
1902
1901
  /**
1902
+ Send an event. The execution of suspended listeners
1903
+ is skipped, and once listeners are removed. A listener without
1904
+ a target is executed on the passed object. If an array of actions
1905
+ is not passed, the actions stored on the passed object are invoked.
1906
+
1903
1907
  @method sendEvent
1904
1908
  @for Ember
1905
1909
  @param obj
1906
1910
  @param {String} eventName
1907
- @param {Array} params
1908
- @param {Array} actions
1911
+ @param {Array} params Optional parameters for each listener.
1912
+ @param {Array} actions Optional array of actions (listeners).
1909
1913
  @return true
1910
1914
  */
1911
1915
  function sendEvent(obj, eventName, params, actions) {
@@ -2239,7 +2243,7 @@ var endPropertyChanges = Ember.endPropertyChanges = function() {
2239
2243
  @param {Function} callback
2240
2244
  @param [binding]
2241
2245
  */
2242
- Ember.changeProperties = function(cb, binding){
2246
+ Ember.changeProperties = function(cb, binding) {
2243
2247
  beginPropertyChanges();
2244
2248
  tryFinally(cb, endPropertyChanges, binding);
2245
2249
  };
@@ -2268,6 +2272,7 @@ var notifyObservers = function(obj, keyName) {
2268
2272
  sendEvent(obj, eventName, [obj, keyName]);
2269
2273
  }
2270
2274
  };
2275
+
2271
2276
  })();
2272
2277
 
2273
2278
 
@@ -2442,8 +2447,7 @@ Ember.trySetPath = Ember.deprecateFunc('trySetPath has been renamed to trySet',
2442
2447
  Map is mocked out to look like an Ember object, so you can do
2443
2448
  `Ember.Map.create()` for symmetry with other Ember classes.
2444
2449
  */
2445
- var get = Ember.get,
2446
- set = Ember.set,
2450
+ var set = Ember.set,
2447
2451
  guidFor = Ember.guidFor,
2448
2452
  indexOf = Ember.ArrayPolyfills.indexOf;
2449
2453
 
@@ -2969,13 +2973,14 @@ var changeProperties = Ember.changeProperties,
2969
2973
  @return self
2970
2974
  */
2971
2975
  Ember.setProperties = function(self, hash) {
2972
- changeProperties(function(){
2976
+ changeProperties(function() {
2973
2977
  for(var prop in hash) {
2974
2978
  if (hash.hasOwnProperty(prop)) { set(self, prop, hash[prop]); }
2975
2979
  }
2976
2980
  });
2977
2981
  return self;
2978
2982
  };
2983
+
2979
2984
  })();
2980
2985
 
2981
2986
 
@@ -3831,7 +3836,7 @@ ComputedPropertyPrototype.set = function(obj, keyName, value) {
3831
3836
  oldSuspended = this._suspended,
3832
3837
  hadCachedValue = false,
3833
3838
  cache = meta.cache,
3834
- cachedValue, ret;
3839
+ funcArgLength, cachedValue, ret;
3835
3840
 
3836
3841
  if (this._readOnly) {
3837
3842
  throw new Error('Cannot Set: ' + keyName + ' on: ' + obj.toString() );
@@ -3846,17 +3851,18 @@ ComputedPropertyPrototype.set = function(obj, keyName, value) {
3846
3851
  hadCachedValue = true;
3847
3852
  }
3848
3853
 
3849
- // Check if the CP has been wrapped
3850
- if (func.wrappedFunction) { func = func.wrappedFunction; }
3854
+ // Check if the CP has been wrapped. If if has, use the
3855
+ // length from the wrapped function.
3856
+ funcArgLength = (func.wrappedFunction ? func.wrappedFunction.length : func.length);
3851
3857
 
3852
3858
  // For backwards-compatibility with computed properties
3853
3859
  // that check for arguments.length === 2 to determine if
3854
3860
  // they are being get or set, only pass the old cached
3855
3861
  // value if the computed property opts into a third
3856
3862
  // argument.
3857
- if (func.length === 3) {
3863
+ if (funcArgLength === 3) {
3858
3864
  ret = func.call(obj, keyName, value, cachedValue);
3859
- } else if (func.length === 2) {
3865
+ } else if (funcArgLength === 2) {
3860
3866
  ret = func.call(obj, keyName, value);
3861
3867
  } else {
3862
3868
  Ember.defineProperty(obj, keyName, null, cachedValue);
@@ -3930,7 +3936,7 @@ Ember.computed = function(func) {
3930
3936
  func = a_slice.call(arguments, -1)[0];
3931
3937
  }
3932
3938
 
3933
- if ( typeof func !== "function" ) {
3939
+ if (typeof func !== "function") {
3934
3940
  throw new Error("Computed Property declared without a property function");
3935
3941
  }
3936
3942
 
@@ -4020,7 +4026,7 @@ registerComputed('notEmpty', function(dependentKey) {
4020
4026
  @for Ember
4021
4027
  @param {String} dependentKey
4022
4028
  @return {Ember.ComputedProperty} computed property which
4023
- rturns true if original value for property is null or undefined.
4029
+ returns true if original value for property is null or undefined.
4024
4030
  */
4025
4031
  registerComputed('none', function(dependentKey) {
4026
4032
  return Ember.isNone(get(this, dependentKey));
@@ -4191,6 +4197,23 @@ registerComputedWithProperties('map', function(properties) {
4191
4197
  });
4192
4198
 
4193
4199
  /**
4200
+ Creates a new property that is an alias for another property
4201
+ on an object. Calls to `get` or `set` this property behave as
4202
+ though they were called on the original property.
4203
+
4204
+ ```javascript
4205
+ Person = Ember.Object.extend({
4206
+ name: 'Alex Matchneer',
4207
+ nomen: Ember.computed.alias('name')
4208
+ });
4209
+
4210
+ alex = Person.create();
4211
+ alex.get('nomen'); // 'Alex Matchneer'
4212
+ alex.get('name'); // 'Alex Matchneer'
4213
+
4214
+ alex.set('nomen', '@machty');
4215
+ alex.get('name'); // '@machty'
4216
+ ```
4194
4217
  @method computed.alias
4195
4218
  @for Ember
4196
4219
  @param {String} dependentKey
@@ -4198,7 +4221,7 @@ registerComputedWithProperties('map', function(properties) {
4198
4221
  alias to the original value for property.
4199
4222
  */
4200
4223
  Ember.computed.alias = function(dependentKey) {
4201
- return Ember.computed(dependentKey, function(key, value){
4224
+ return Ember.computed(dependentKey, function(key, value) {
4202
4225
  if (arguments.length > 1) {
4203
4226
  set(this, dependentKey, value);
4204
4227
  return value;
@@ -4375,6 +4398,220 @@ Ember.removeBeforeObserver = function(obj, path, target, method) {
4375
4398
 
4376
4399
 
4377
4400
  (function() {
4401
+ define("backburner/queue",
4402
+ ["exports"],
4403
+ function(__exports__) {
4404
+ "use strict";
4405
+ function Queue(daq, name, options) {
4406
+ this.daq = daq;
4407
+ this.name = name;
4408
+ this.options = options;
4409
+ this._queue = [];
4410
+ }
4411
+
4412
+ Queue.prototype = {
4413
+ daq: null,
4414
+ name: null,
4415
+ options: null,
4416
+ _queue: null,
4417
+
4418
+ push: function(target, method, args, stack) {
4419
+ var queue = this._queue;
4420
+ queue.push(target, method, args, stack);
4421
+ return {queue: this, target: target, method: method};
4422
+ },
4423
+
4424
+ pushUnique: function(target, method, args, stack) {
4425
+ var queue = this._queue, currentTarget, currentMethod, i, l;
4426
+
4427
+ for (i = 0, l = queue.length; i < l; i += 4) {
4428
+ currentTarget = queue[i];
4429
+ currentMethod = queue[i+1];
4430
+
4431
+ if (currentTarget === target && currentMethod === method) {
4432
+ queue[i+2] = args; // replace args
4433
+ queue[i+3] = stack; // replace stack
4434
+ return {queue: this, target: target, method: method}; // TODO: test this code path
4435
+ }
4436
+ }
4437
+
4438
+ this._queue.push(target, method, args, stack);
4439
+ return {queue: this, target: target, method: method};
4440
+ },
4441
+
4442
+ // TODO: remove me, only being used for Ember.run.sync
4443
+ flush: function() {
4444
+ var queue = this._queue,
4445
+ options = this.options,
4446
+ before = options && options.before,
4447
+ after = options && options.after,
4448
+ target, method, args, stack, i, l = queue.length;
4449
+
4450
+ if (l && before) { before(); }
4451
+ for (i = 0; i < l; i += 4) {
4452
+ target = queue[i];
4453
+ method = queue[i+1];
4454
+ args = queue[i+2];
4455
+ stack = queue[i+3]; // Debugging assistance
4456
+
4457
+ // TODO: error handling
4458
+ if (args && args.length > 0) {
4459
+ method.apply(target, args);
4460
+ } else {
4461
+ method.call(target);
4462
+ }
4463
+ }
4464
+ if (l && after) { after(); }
4465
+
4466
+ // check if new items have been added
4467
+ if (queue.length > l) {
4468
+ this._queue = queue.slice(l);
4469
+ this.flush();
4470
+ } else {
4471
+ this._queue.length = 0;
4472
+ }
4473
+ },
4474
+
4475
+ cancel: function(actionToCancel) {
4476
+ var queue = this._queue, currentTarget, currentMethod, i, l;
4477
+
4478
+ for (i = 0, l = queue.length; i < l; i += 4) {
4479
+ currentTarget = queue[i];
4480
+ currentMethod = queue[i+1];
4481
+
4482
+ if (currentTarget === actionToCancel.target && currentMethod === actionToCancel.method) {
4483
+ queue.splice(i, 4);
4484
+ return true;
4485
+ }
4486
+ }
4487
+
4488
+ // if not found in current queue
4489
+ // could be in the queue that is being flushed
4490
+ queue = this._queueBeingFlushed;
4491
+ if (!queue) {
4492
+ return;
4493
+ }
4494
+ for (i = 0, l = queue.length; i < l; i += 4) {
4495
+ currentTarget = queue[i];
4496
+ currentMethod = queue[i+1];
4497
+
4498
+ if (currentTarget === actionToCancel.target && currentMethod === actionToCancel.method) {
4499
+ // don't mess with array during flush
4500
+ // just nullify the method
4501
+ queue[i+1] = null;
4502
+ return true;
4503
+ }
4504
+ }
4505
+ }
4506
+ };
4507
+
4508
+
4509
+ __exports__.Queue = Queue;
4510
+ });
4511
+
4512
+ define("backburner/deferred_action_queues",
4513
+ ["backburner/queue","exports"],
4514
+ function(__dependency1__, __exports__) {
4515
+ "use strict";
4516
+ var Queue = __dependency1__.Queue;
4517
+
4518
+ function DeferredActionQueues(queueNames, options) {
4519
+ var queues = this.queues = {};
4520
+ this.queueNames = queueNames = queueNames || [];
4521
+
4522
+ var queueName;
4523
+ for (var i = 0, l = queueNames.length; i < l; i++) {
4524
+ queueName = queueNames[i];
4525
+ queues[queueName] = new Queue(this, queueName, options[queueName]);
4526
+ }
4527
+ }
4528
+
4529
+ DeferredActionQueues.prototype = {
4530
+ queueNames: null,
4531
+ queues: null,
4532
+
4533
+ schedule: function(queueName, target, method, args, onceFlag, stack) {
4534
+ var queues = this.queues,
4535
+ queue = queues[queueName];
4536
+
4537
+ if (!queue) { throw new Error("You attempted to schedule an action in a queue (" + queueName + ") that doesn't exist"); }
4538
+
4539
+ if (onceFlag) {
4540
+ return queue.pushUnique(target, method, args, stack);
4541
+ } else {
4542
+ return queue.push(target, method, args, stack);
4543
+ }
4544
+ },
4545
+
4546
+ flush: function() {
4547
+ var queues = this.queues,
4548
+ queueNames = this.queueNames,
4549
+ queueName, queue, queueItems, priorQueueNameIndex,
4550
+ queueNameIndex = 0, numberOfQueues = queueNames.length;
4551
+
4552
+ outerloop:
4553
+ while (queueNameIndex < numberOfQueues) {
4554
+ queueName = queueNames[queueNameIndex];
4555
+ queue = queues[queueName];
4556
+ queueItems = queue._queueBeingFlushed = queue._queue.slice();
4557
+ queue._queue = [];
4558
+
4559
+ var options = queue.options,
4560
+ before = options && options.before,
4561
+ after = options && options.after,
4562
+ target, method, args, stack,
4563
+ queueIndex = 0, numberOfQueueItems = queueItems.length;
4564
+
4565
+ if (numberOfQueueItems && before) { before(); }
4566
+ while (queueIndex < numberOfQueueItems) {
4567
+ target = queueItems[queueIndex];
4568
+ method = queueItems[queueIndex+1];
4569
+ args = queueItems[queueIndex+2];
4570
+ stack = queueItems[queueIndex+3]; // Debugging assistance
4571
+
4572
+ if (typeof method === 'string') { method = target[method]; }
4573
+
4574
+ // method could have been nullified / canceled during flush
4575
+ if (method) {
4576
+ // TODO: error handling
4577
+ if (args && args.length > 0) {
4578
+ method.apply(target, args);
4579
+ } else {
4580
+ method.call(target);
4581
+ }
4582
+ }
4583
+
4584
+ queueIndex += 4;
4585
+ }
4586
+ queue._queueBeingFlushed = null;
4587
+ if (numberOfQueueItems && after) { after(); }
4588
+
4589
+ if ((priorQueueNameIndex = indexOfPriorQueueWithActions(this, queueNameIndex)) !== -1) {
4590
+ queueNameIndex = priorQueueNameIndex;
4591
+ continue outerloop;
4592
+ }
4593
+
4594
+ queueNameIndex++;
4595
+ }
4596
+ }
4597
+ };
4598
+
4599
+ function indexOfPriorQueueWithActions(daq, currentQueueIndex) {
4600
+ var queueName, queue;
4601
+
4602
+ for (var i = 0, l = currentQueueIndex; i <= l; i++) {
4603
+ queueName = daq.queueNames[i];
4604
+ queue = daq.queues[queueName];
4605
+ if (queue._queue.length) { return i; }
4606
+ }
4607
+
4608
+ return -1;
4609
+ }
4610
+
4611
+
4612
+ __exports__.DeferredActionQueues = DeferredActionQueues;
4613
+ });
4614
+
4378
4615
  define("backburner",
4379
4616
  ["backburner/deferred_action_queues","exports"],
4380
4617
  function(__dependency1__, __exports__) {
@@ -4383,9 +4620,11 @@ define("backburner",
4383
4620
 
4384
4621
  var slice = [].slice,
4385
4622
  pop = [].pop,
4623
+ throttlers = [],
4386
4624
  debouncees = [],
4387
4625
  timers = [],
4388
- autorun, laterTimer, laterTimerExpiresAt;
4626
+ autorun, laterTimer, laterTimerExpiresAt,
4627
+ global = this;
4389
4628
 
4390
4629
  function Backburner(queueNames, options) {
4391
4630
  this.queueNames = queueNames;
@@ -4542,7 +4781,7 @@ define("backburner",
4542
4781
  clearTimeout(laterTimer);
4543
4782
  laterTimer = null;
4544
4783
  }
4545
- laterTimer = window.setTimeout(function() {
4784
+ laterTimer = global.setTimeout(function() {
4546
4785
  executeTimers(self);
4547
4786
  laterTimer = null;
4548
4787
  laterTimerExpiresAt = null;
@@ -4552,53 +4791,101 @@ define("backburner",
4552
4791
  return fn;
4553
4792
  },
4554
4793
 
4555
- debounce: function(target, method /* , args, wait */) {
4794
+ throttle: function(target, method /* , args, wait */) {
4556
4795
  var self = this,
4557
4796
  args = arguments,
4558
4797
  wait = pop.call(args),
4559
- debouncee;
4798
+ throttler;
4560
4799
 
4561
- for (var i = 0, l = debouncees.length; i < l; i++) {
4562
- debouncee = debouncees[i];
4563
- if (debouncee[0] === target && debouncee[1] === method) { return; } // do nothing
4800
+ for (var i = 0, l = throttlers.length; i < l; i++) {
4801
+ throttler = throttlers[i];
4802
+ if (throttler[0] === target && throttler[1] === method) { return; } // do nothing
4564
4803
  }
4565
4804
 
4566
- var timer = window.setTimeout(function() {
4805
+ var timer = global.setTimeout(function() {
4567
4806
  self.run.apply(self, args);
4568
4807
 
4569
- // remove debouncee
4808
+ // remove throttler
4570
4809
  var index = -1;
4571
- for (var i = 0, l = debouncees.length; i < l; i++) {
4572
- debouncee = debouncees[i];
4573
- if (debouncee[0] === target && debouncee[1] === method) {
4810
+ for (var i = 0, l = throttlers.length; i < l; i++) {
4811
+ throttler = throttlers[i];
4812
+ if (throttler[0] === target && throttler[1] === method) {
4574
4813
  index = i;
4575
4814
  break;
4576
4815
  }
4577
4816
  }
4578
4817
 
4579
- if (index > -1) { debouncees.splice(index, 1); }
4818
+ if (index > -1) { throttlers.splice(index, 1); }
4580
4819
  }, wait);
4581
4820
 
4582
- debouncees.push([target, method, timer]);
4821
+ throttlers.push([target, method, timer]);
4583
4822
  },
4584
4823
 
4585
- cancelTimers: function() {
4586
- for (var i = 0, l = debouncees.length; i < l; i++) {
4587
- clearTimeout(debouncees[i][2]);
4588
- }
4589
- debouncees = [];
4824
+ debounce: function(target, method /* , args, wait, [immediate] */) {
4825
+ var self = this,
4826
+ args = arguments,
4827
+ immediate = pop.call(args),
4828
+ wait,
4829
+ index,
4830
+ debouncee;
4590
4831
 
4591
- if (laterTimer) {
4592
- clearTimeout(laterTimer);
4593
- laterTimer = null;
4832
+ if (typeof immediate === "number") {
4833
+ wait = immediate;
4834
+ immediate = false;
4835
+ } else {
4836
+ wait = pop.call(args);
4594
4837
  }
4595
- timers = [];
4596
4838
 
4597
- if (autorun) {
4598
- clearTimeout(autorun);
4599
- autorun = null;
4839
+ // Remove debouncee
4840
+ index = findDebouncee(target, method);
4841
+
4842
+ if (index !== -1) {
4843
+ debouncee = debouncees[index];
4844
+ debouncees.splice(index, 1);
4845
+ clearTimeout(debouncee[2]);
4600
4846
  }
4601
- },
4847
+
4848
+ var timer = window.setTimeout(function() {
4849
+ if (!immediate) {
4850
+ self.run.apply(self, args);
4851
+ }
4852
+ index = findDebouncee(target, method);
4853
+ if (index) {
4854
+ debouncees.splice(index, 1);
4855
+ }
4856
+ }, wait);
4857
+
4858
+ if (immediate && index === -1) {
4859
+ self.run.apply(self, args);
4860
+ }
4861
+
4862
+ debouncees.push([target, method, timer]);
4863
+ },
4864
+
4865
+ cancelTimers: function() {
4866
+ var i, len;
4867
+
4868
+ for (i = 0, len = throttlers.length; i < len; i++) {
4869
+ clearTimeout(throttlers[i][2]);
4870
+ }
4871
+ throttlers = [];
4872
+
4873
+ for (i = 0, len = debouncees.length; i < len; i++) {
4874
+ clearTimeout(debouncees[i][2]);
4875
+ }
4876
+ debouncees = [];
4877
+
4878
+ if (laterTimer) {
4879
+ clearTimeout(laterTimer);
4880
+ laterTimer = null;
4881
+ }
4882
+ timers = [];
4883
+
4884
+ if (autorun) {
4885
+ clearTimeout(autorun);
4886
+ autorun = null;
4887
+ }
4888
+ },
4602
4889
 
4603
4890
  hasTimers: function() {
4604
4891
  return !!timers.length || autorun;
@@ -4626,7 +4913,7 @@ define("backburner",
4626
4913
 
4627
4914
  function createAutorun(backburner) {
4628
4915
  backburner.begin();
4629
- autorun = window.setTimeout(function() {
4916
+ autorun = global.setTimeout(function() {
4630
4917
  backburner.end();
4631
4918
  autorun = null;
4632
4919
  });
@@ -4651,7 +4938,7 @@ define("backburner",
4651
4938
  });
4652
4939
 
4653
4940
  if (timers.length) {
4654
- laterTimer = window.setTimeout(function() {
4941
+ laterTimer = global.setTimeout(function() {
4655
4942
  executeTimers(self);
4656
4943
  laterTimer = null;
4657
4944
  laterTimerExpiresAt = null;
@@ -4660,222 +4947,23 @@ define("backburner",
4660
4947
  }
4661
4948
  }
4662
4949
 
4950
+ function findDebouncee(target, method) {
4951
+ var debouncee,
4952
+ index = -1;
4663
4953
 
4664
- __exports__.Backburner = Backburner;
4665
- });
4666
-
4667
- define("backburner/deferred_action_queues",
4668
- ["backburner/queue","exports"],
4669
- function(__dependency1__, __exports__) {
4670
- "use strict";
4671
- var Queue = __dependency1__.Queue;
4672
-
4673
- function DeferredActionQueues(queueNames, options) {
4674
- var queues = this.queues = {};
4675
- this.queueNames = queueNames = queueNames || [];
4676
-
4677
- var queueName;
4678
- for (var i = 0, l = queueNames.length; i < l; i++) {
4679
- queueName = queueNames[i];
4680
- queues[queueName] = new Queue(this, queueName, options[queueName]);
4681
- }
4682
- }
4683
-
4684
- DeferredActionQueues.prototype = {
4685
- queueNames: null,
4686
- queues: null,
4687
-
4688
- schedule: function(queueName, target, method, args, onceFlag, stack) {
4689
- var queues = this.queues,
4690
- queue = queues[queueName];
4691
-
4692
- if (!queue) { throw new Error("You attempted to schedule an action in a queue (" + queueName + ") that doesn't exist"); }
4693
-
4694
- if (onceFlag) {
4695
- return queue.pushUnique(target, method, args, stack);
4696
- } else {
4697
- return queue.push(target, method, args, stack);
4698
- }
4699
- },
4700
-
4701
- flush: function() {
4702
- var queues = this.queues,
4703
- queueNames = this.queueNames,
4704
- queueName, queue, queueItems, priorQueueNameIndex,
4705
- queueNameIndex = 0, numberOfQueues = queueNames.length;
4706
-
4707
- outerloop:
4708
- while (queueNameIndex < numberOfQueues) {
4709
- queueName = queueNames[queueNameIndex];
4710
- queue = queues[queueName];
4711
- queueItems = queue._queueBeingFlushed = queue._queue.slice();
4712
- queue._queue = [];
4713
-
4714
- var options = queue.options,
4715
- before = options && options.before,
4716
- after = options && options.after,
4717
- target, method, args, stack,
4718
- queueIndex = 0, numberOfQueueItems = queueItems.length;
4719
-
4720
- if (numberOfQueueItems && before) { before(); }
4721
- while (queueIndex < numberOfQueueItems) {
4722
- target = queueItems[queueIndex];
4723
- method = queueItems[queueIndex+1];
4724
- args = queueItems[queueIndex+2];
4725
- stack = queueItems[queueIndex+3]; // Debugging assistance
4726
-
4727
- if (typeof method === 'string') { method = target[method]; }
4728
-
4729
- // method could have been nullified / canceled during flush
4730
- if (method) {
4731
- // TODO: error handling
4732
- if (args && args.length > 0) {
4733
- method.apply(target, args);
4734
- } else {
4735
- method.call(target);
4736
- }
4737
- }
4738
-
4739
- queueIndex += 4;
4740
- }
4741
- queue._queueBeingFlushed = null;
4742
- if (numberOfQueueItems && after) { after(); }
4743
-
4744
- if ((priorQueueNameIndex = indexOfPriorQueueWithActions(this, queueNameIndex)) !== -1) {
4745
- queueNameIndex = priorQueueNameIndex;
4746
- continue outerloop;
4747
- }
4748
-
4749
- queueNameIndex++;
4954
+ for (var i = 0, l = debouncees.length; i < l; i++) {
4955
+ debouncee = debouncees[i];
4956
+ if (debouncee[0] === target && debouncee[1] === method) {
4957
+ index = i;
4958
+ break;
4750
4959
  }
4751
4960
  }
4752
- };
4753
-
4754
- function indexOfPriorQueueWithActions(daq, currentQueueIndex) {
4755
- var queueName, queue;
4756
-
4757
- for (var i = 0, l = currentQueueIndex; i <= l; i++) {
4758
- queueName = daq.queueNames[i];
4759
- queue = daq.queues[queueName];
4760
- if (queue._queue.length) { return i; }
4761
- }
4762
-
4763
- return -1;
4764
- }
4765
4961
 
4766
-
4767
- __exports__.DeferredActionQueues = DeferredActionQueues;
4768
- });
4769
-
4770
- define("backburner/queue",
4771
- ["exports"],
4772
- function(__exports__) {
4773
- "use strict";
4774
- function Queue(daq, name, options) {
4775
- this.daq = daq;
4776
- this.name = name;
4777
- this.options = options;
4778
- this._queue = [];
4962
+ return index;
4779
4963
  }
4780
4964
 
4781
- Queue.prototype = {
4782
- daq: null,
4783
- name: null,
4784
- options: null,
4785
- _queue: null,
4786
4965
 
4787
- push: function(target, method, args, stack) {
4788
- var queue = this._queue;
4789
- queue.push(target, method, args, stack);
4790
- return {queue: this, target: target, method: method};
4791
- },
4792
-
4793
- pushUnique: function(target, method, args, stack) {
4794
- var queue = this._queue, currentTarget, currentMethod, i, l;
4795
-
4796
- for (i = 0, l = queue.length; i < l; i += 4) {
4797
- currentTarget = queue[i];
4798
- currentMethod = queue[i+1];
4799
-
4800
- if (currentTarget === target && currentMethod === method) {
4801
- queue[i+2] = args; // replace args
4802
- queue[i+3] = stack; // replace stack
4803
- return {queue: this, target: target, method: method}; // TODO: test this code path
4804
- }
4805
- }
4806
-
4807
- this._queue.push(target, method, args, stack);
4808
- return {queue: this, target: target, method: method};
4809
- },
4810
-
4811
- // TODO: remove me, only being used for Ember.run.sync
4812
- flush: function() {
4813
- var queue = this._queue,
4814
- options = this.options,
4815
- before = options && options.before,
4816
- after = options && options.after,
4817
- target, method, args, stack, i, l = queue.length;
4818
-
4819
- if (l && before) { before(); }
4820
- for (i = 0; i < l; i += 4) {
4821
- target = queue[i];
4822
- method = queue[i+1];
4823
- args = queue[i+2];
4824
- stack = queue[i+3]; // Debugging assistance
4825
-
4826
- // TODO: error handling
4827
- if (args && args.length > 0) {
4828
- method.apply(target, args);
4829
- } else {
4830
- method.call(target);
4831
- }
4832
- }
4833
- if (l && after) { after(); }
4834
-
4835
- // check if new items have been added
4836
- if (queue.length > l) {
4837
- this._queue = queue.slice(l);
4838
- this.flush();
4839
- } else {
4840
- this._queue.length = 0;
4841
- }
4842
- },
4843
-
4844
- cancel: function(actionToCancel) {
4845
- var queue = this._queue, currentTarget, currentMethod, i, l;
4846
-
4847
- for (i = 0, l = queue.length; i < l; i += 4) {
4848
- currentTarget = queue[i];
4849
- currentMethod = queue[i+1];
4850
-
4851
- if (currentTarget === actionToCancel.target && currentMethod === actionToCancel.method) {
4852
- queue.splice(i, 4);
4853
- return true;
4854
- }
4855
- }
4856
-
4857
- // if not found in current queue
4858
- // could be in the queue that is being flushed
4859
- queue = this._queueBeingFlushed;
4860
- if (!queue) {
4861
- return;
4862
- }
4863
- for (i = 0, l = queue.length; i < l; i += 4) {
4864
- currentTarget = queue[i];
4865
- currentMethod = queue[i+1];
4866
-
4867
- if (currentTarget === actionToCancel.target && currentMethod === actionToCancel.method) {
4868
- // don't mess with array during flush
4869
- // just nullify the method
4870
- queue[i+1] = null;
4871
- return true;
4872
- }
4873
- }
4874
- }
4875
- };
4876
-
4877
-
4878
- __exports__.Queue = Queue;
4966
+ __exports__.Backburner = Backburner;
4879
4967
  });
4880
4968
  })();
4881
4969
 
@@ -4917,7 +5005,7 @@ var Backburner = requireModule('backburner').Backburner,
4917
5005
  call.
4918
5006
 
4919
5007
  ```javascript
4920
- Ember.run(function(){
5008
+ Ember.run(function() {
4921
5009
  // code to be execute within a RunLoop
4922
5010
  });
4923
5011
  ```
@@ -4960,7 +5048,7 @@ Ember.run = function(target, method) {
4960
5048
  If invoked when not within a run loop:
4961
5049
 
4962
5050
  ```javascript
4963
- Ember.run.join(function(){
5051
+ Ember.run.join(function() {
4964
5052
  // creates a new run-loop
4965
5053
  });
4966
5054
  ```
@@ -4968,9 +5056,9 @@ Ember.run = function(target, method) {
4968
5056
  Alternatively, if called within an existing run loop:
4969
5057
 
4970
5058
  ```javascript
4971
- Ember.run(function(){
5059
+ Ember.run(function() {
4972
5060
  // creates a new run-loop
4973
- Ember.run.join(function(){
5061
+ Ember.run.join(function() {
4974
5062
  // joins with the existing run-loop, and queues for invocation on
4975
5063
  // the existing run-loops action queue.
4976
5064
  });
@@ -5063,12 +5151,12 @@ Ember.run.end = function() {
5063
5151
  the `Ember.run.queues` property.
5064
5152
 
5065
5153
  ```javascript
5066
- Ember.run.schedule('sync', this, function(){
5154
+ Ember.run.schedule('sync', this, function() {
5067
5155
  // this will be executed in the first RunLoop queue, when bindings are synced
5068
5156
  console.log("scheduled on sync queue");
5069
5157
  });
5070
5158
 
5071
- Ember.run.schedule('actions', this, function(){
5159
+ Ember.run.schedule('actions', this, function() {
5072
5160
  // this will be executed in the 'actions' queue, after bindings have synced.
5073
5161
  console.log("scheduled on actions queue");
5074
5162
  });
@@ -5136,7 +5224,7 @@ Ember.run.sync = function() {
5136
5224
  together, which is often more efficient than using a real setTimeout.
5137
5225
 
5138
5226
  ```javascript
5139
- Ember.run.later(myContext, function(){
5227
+ Ember.run.later(myContext, function() {
5140
5228
  // code here will execute within a RunLoop in about 500ms with this == myContext
5141
5229
  }, 500);
5142
5230
  ```
@@ -5184,11 +5272,11 @@ Ember.run.once = function(target, method) {
5184
5272
  calls.
5185
5273
 
5186
5274
  ```javascript
5187
- Ember.run(function(){
5275
+ Ember.run(function() {
5188
5276
  var sayHi = function() { console.log('hi'); }
5189
5277
  Ember.run.scheduleOnce('afterRender', myContext, sayHi);
5190
5278
  Ember.run.scheduleOnce('afterRender', myContext, sayHi);
5191
- // doFoo will only be executed once, in the afterRender queue of the RunLoop
5279
+ // sayHi will only be executed once, in the afterRender queue of the RunLoop
5192
5280
  });
5193
5281
  ```
5194
5282
 
@@ -5229,7 +5317,7 @@ Ember.run.scheduleOnce = function(queue, target, method) {
5229
5317
  `Ember.run.later` with a wait time of 1ms.
5230
5318
 
5231
5319
  ```javascript
5232
- Ember.run.next(myContext, function(){
5320
+ Ember.run.next(myContext, function() {
5233
5321
  // code to be executed in the next run loop, which will be scheduled after the current one
5234
5322
  });
5235
5323
  ```
@@ -5291,17 +5379,17 @@ Ember.run.next = function() {
5291
5379
  `Ember.run.once()`, or `Ember.run.next()`.
5292
5380
 
5293
5381
  ```javascript
5294
- var runNext = Ember.run.next(myContext, function(){
5382
+ var runNext = Ember.run.next(myContext, function() {
5295
5383
  // will not be executed
5296
5384
  });
5297
5385
  Ember.run.cancel(runNext);
5298
5386
 
5299
- var runLater = Ember.run.later(myContext, function(){
5387
+ var runLater = Ember.run.later(myContext, function() {
5300
5388
  // will not be executed
5301
5389
  }, 500);
5302
5390
  Ember.run.cancel(runLater);
5303
5391
 
5304
- var runOnce = Ember.run.once(myContext, function(){
5392
+ var runOnce = Ember.run.once(myContext, function() {
5305
5393
  // will not be executed
5306
5394
  });
5307
5395
  Ember.run.cancel(runOnce);
@@ -5316,8 +5404,15 @@ Ember.run.cancel = function(timer) {
5316
5404
  };
5317
5405
 
5318
5406
  /**
5319
- Execute the passed method in a specified amount of time, reset timer
5320
- upon additional calls.
5407
+ Delay calling the target method until the debounce period has elapsed
5408
+ with no additional debounce calls. If `debounce` is called again before
5409
+ the specified time has elapsed, the timer is reset and the entire period
5410
+ must pass again before the target method is called.
5411
+
5412
+ This method should be used when an event may be called multiple times
5413
+ but the action should only be called once when the event is done firing.
5414
+ A common example is for scroll events where you only want updates to
5415
+ happen once scrolling has ceased.
5321
5416
 
5322
5417
  ```javascript
5323
5418
  var myFunc = function() { console.log(this.name + ' ran.'); };
@@ -5341,12 +5436,50 @@ Ember.run.cancel = function(timer) {
5341
5436
  then it will be looked up on the passed target.
5342
5437
  @param {Object} [args*] Optional arguments to pass to the timeout.
5343
5438
  @param {Number} wait Number of milliseconds to wait.
5439
+ @param {Boolean} immediate Trigger the function on the leading instead of the trailing edge of the wait interval.
5344
5440
  @return {void}
5345
5441
  */
5346
5442
  Ember.run.debounce = function() {
5347
5443
  return backburner.debounce.apply(backburner, arguments);
5348
5444
  };
5349
5445
 
5446
+ /**
5447
+ Ensure that the target method is never called more frequently than
5448
+ the specified spacing period.
5449
+
5450
+ ```javascript
5451
+ var myFunc = function() { console.log(this.name + ' ran.'); };
5452
+ var myContext = {name: 'throttle'};
5453
+
5454
+ Ember.run.throttle(myContext, myFunc, 150);
5455
+
5456
+ // 50ms passes
5457
+ Ember.run.throttle(myContext, myFunc, 150);
5458
+
5459
+ // 50ms passes
5460
+ Ember.run.throttle(myContext, myFunc, 150);
5461
+
5462
+ // 50ms passes
5463
+ Ember.run.throttle(myContext, myFunc, 150);
5464
+
5465
+ // 150ms passes
5466
+ // myFunc is invoked with context myContext
5467
+ // console logs 'throttle ran.' twice, 150ms apart.
5468
+ ```
5469
+
5470
+ @method throttle
5471
+ @param {Object} [target] target of method to invoke
5472
+ @param {Function|String} method The method to invoke.
5473
+ May be a function or a string. If you pass a string
5474
+ then it will be looked up on the passed target.
5475
+ @param {Object} [args*] Optional arguments to pass to the timeout.
5476
+ @param {Number} spacing Number of milliseconds to space out requests.
5477
+ @return {void}
5478
+ */
5479
+ Ember.run.throttle = function() {
5480
+ return backburner.throttle.apply(backburner, arguments);
5481
+ };
5482
+
5350
5483
  // Make sure it's not an autorun during testing
5351
5484
  function checkAutoRun() {
5352
5485
  if (!Ember.run.currentRunLoop) {
@@ -5837,7 +5970,8 @@ Ember.oneWay = function(obj, to, from) {
5837
5970
 
5838
5971
  (function() {
5839
5972
  /**
5840
- @module ember-metal
5973
+ @module ember
5974
+ @submodule ember-metal
5841
5975
  */
5842
5976
 
5843
5977
  var Mixin, REQUIRED, Alias,
@@ -6213,38 +6347,6 @@ Mixin.finishPartial = finishPartial;
6213
6347
  Ember.anyUnprocessedMixins = false;
6214
6348
 
6215
6349
  /**
6216
- Creates an instance of a class. Accepts either no arguments, or an object
6217
- containing values to initialize the newly instantiated object with.
6218
-
6219
- ```javascript
6220
- App.Person = Ember.Object.extend({
6221
- helloWorld: function() {
6222
- alert("Hi, my name is " + this.get('name'));
6223
- }
6224
- });
6225
-
6226
- var tom = App.Person.create({
6227
- name: 'Tom Dale'
6228
- });
6229
-
6230
- tom.helloWorld(); // alerts "Hi, my name is Tom Dale".
6231
- ```
6232
-
6233
- `create` will call the `init` function if defined during
6234
- `Ember.AnyObject.extend`
6235
-
6236
- If no arguments are passed to `create`, it will not set values to the new
6237
- instance during initialization:
6238
-
6239
- ```javascript
6240
- var noName = App.Person.create();
6241
- noName.helloWorld(); // alerts undefined
6242
- ```
6243
-
6244
- NOTE: For performance reasons, you cannot declare methods or computed
6245
- properties during `create`. You should instead declare methods and computed
6246
- properties when using `extend`.
6247
-
6248
6350
  @method create
6249
6351
  @static
6250
6352
  @param arguments*
@@ -6404,7 +6506,7 @@ Alias.prototype = new Ember.Descriptor();
6404
6506
  App.PaintSample = Ember.Object.extend({
6405
6507
  color: 'red',
6406
6508
  colour: Ember.alias('color'),
6407
- name: function(){
6509
+ name: function() {
6408
6510
  return "Zed";
6409
6511
  },
6410
6512
  moniker: Ember.alias("name")
@@ -6432,7 +6534,7 @@ Ember.alias = Ember.deprecateFunc("Ember.alias is deprecated. Please use Ember.a
6432
6534
 
6433
6535
  ```javascript
6434
6536
  App.Person = Ember.Object.extend({
6435
- name: function(){
6537
+ name: function() {
6436
6538
  return 'Tomhuda Katzdale';
6437
6539
  },
6438
6540
  moniker: Ember.aliasMethod('name')
@@ -6501,7 +6603,7 @@ Ember.immediateObserver = function() {
6501
6603
  }.observesBefore('content.value'),
6502
6604
  valueDidChange: function(obj, keyName, value) {
6503
6605
  // only run if updating a value already in the DOM
6504
- if(this.get('state') === 'inDOM') {
6606
+ if (this.get('state') === 'inDOM') {
6505
6607
  var color = value > this.changingFrom ? 'green' : 'red';
6506
6608
  // logic
6507
6609
  }
@@ -6537,65 +6639,82 @@ Ember Metal
6537
6639
 
6538
6640
  (function() {
6539
6641
  define("rsvp/all",
6540
- ["rsvp/defer","exports"],
6642
+ ["rsvp/promise","exports"],
6541
6643
  function(__dependency1__, __exports__) {
6542
6644
  "use strict";
6543
- var defer = __dependency1__.defer;
6645
+ var Promise = __dependency1__.Promise;
6646
+ /* global toString */
6544
6647
 
6545
- function all(promises) {
6546
- var results = [], deferred = defer(), remaining = promises.length;
6547
6648
 
6548
- if (remaining === 0) {
6549
- deferred.resolve([]);
6649
+ function all(promises) {
6650
+ if (Object.prototype.toString.call(promises) !== "[object Array]") {
6651
+ throw new TypeError('You must pass an array to all.');
6550
6652
  }
6551
6653
 
6552
- var resolver = function(index) {
6553
- return function(value) {
6554
- resolveAll(index, value);
6555
- };
6556
- };
6654
+ return new Promise(function(resolve, reject) {
6655
+ var results = [], remaining = promises.length,
6656
+ promise;
6557
6657
 
6558
- var resolveAll = function(index, value) {
6559
- results[index] = value;
6560
- if (--remaining === 0) {
6561
- deferred.resolve(results);
6658
+ if (remaining === 0) {
6659
+ resolve([]);
6562
6660
  }
6563
- };
6564
6661
 
6565
- var rejectAll = function(error) {
6566
- deferred.reject(error);
6567
- };
6662
+ function resolver(index) {
6663
+ return function(value) {
6664
+ resolveAll(index, value);
6665
+ };
6666
+ }
6568
6667
 
6569
- for (var i = 0; i < promises.length; i++) {
6570
- if (promises[i] && typeof promises[i].then === 'function') {
6571
- promises[i].then(resolver(i), rejectAll);
6572
- } else {
6573
- resolveAll(i, promises[i]);
6668
+ function resolveAll(index, value) {
6669
+ results[index] = value;
6670
+ if (--remaining === 0) {
6671
+ resolve(results);
6672
+ }
6574
6673
  }
6575
- }
6576
- return deferred.promise;
6674
+
6675
+ for (var i = 0; i < promises.length; i++) {
6676
+ promise = promises[i];
6677
+
6678
+ if (promise && typeof promise.then === 'function') {
6679
+ promise.then(resolver(i), reject);
6680
+ } else {
6681
+ resolveAll(i, promise);
6682
+ }
6683
+ }
6684
+ });
6577
6685
  }
6578
6686
 
6687
+
6579
6688
  __exports__.all = all;
6580
6689
  });
6581
-
6582
6690
  define("rsvp/async",
6583
6691
  ["exports"],
6584
6692
  function(__exports__) {
6585
6693
  "use strict";
6586
6694
  var browserGlobal = (typeof window !== 'undefined') ? window : {};
6587
-
6588
6695
  var BrowserMutationObserver = browserGlobal.MutationObserver || browserGlobal.WebKitMutationObserver;
6589
6696
  var async;
6590
6697
 
6591
- if (typeof process !== 'undefined' &&
6592
- {}.toString.call(process) === '[object process]') {
6593
- async = function(callback, binding) {
6698
+ // old node
6699
+ function useNextTick() {
6700
+ return function(callback, arg) {
6594
6701
  process.nextTick(function() {
6595
- callback.call(binding);
6702
+ callback(arg);
6596
6703
  });
6597
6704
  };
6598
- } else if (BrowserMutationObserver) {
6705
+ }
6706
+
6707
+ // node >= 0.10.x
6708
+ function useSetImmediate() {
6709
+ return function(callback, arg) {
6710
+ /* global setImmediate */
6711
+ setImmediate(function(){
6712
+ callback(arg);
6713
+ });
6714
+ };
6715
+ }
6716
+
6717
+ function useMutationObserver() {
6599
6718
  var queue = [];
6600
6719
 
6601
6720
  var observer = new BrowserMutationObserver(function() {
@@ -6603,8 +6722,8 @@ define("rsvp/async",
6603
6722
  queue = [];
6604
6723
 
6605
6724
  toProcess.forEach(function(tuple) {
6606
- var callback = tuple[0], binding = tuple[1];
6607
- callback.call(binding);
6725
+ var callback = tuple[0], arg= tuple[1];
6726
+ callback(arg);
6608
6727
  });
6609
6728
  });
6610
6729
 
@@ -6615,24 +6734,35 @@ define("rsvp/async",
6615
6734
  window.addEventListener('unload', function(){
6616
6735
  observer.disconnect();
6617
6736
  observer = null;
6618
- });
6737
+ }, false);
6619
6738
 
6620
- async = function(callback, binding) {
6621
- queue.push([callback, binding]);
6739
+ return function(callback, arg) {
6740
+ queue.push([callback, arg]);
6622
6741
  element.setAttribute('drainQueue', 'drainQueue');
6623
6742
  };
6624
- } else {
6625
- async = function(callback, binding) {
6743
+ }
6744
+
6745
+ function useSetTimeout() {
6746
+ return function(callback, arg) {
6626
6747
  setTimeout(function() {
6627
- callback.call(binding);
6748
+ callback(arg);
6628
6749
  }, 1);
6629
6750
  };
6630
6751
  }
6631
6752
 
6753
+ if (typeof setImmediate === 'function') {
6754
+ async = useSetImmediate();
6755
+ } else if (typeof process !== 'undefined' && {}.toString.call(process) === '[object process]') {
6756
+ async = useNextTick();
6757
+ } else if (BrowserMutationObserver) {
6758
+ async = useMutationObserver();
6759
+ } else {
6760
+ async = useSetTimeout();
6761
+ }
6762
+
6632
6763
 
6633
6764
  __exports__.async = async;
6634
6765
  });
6635
-
6636
6766
  define("rsvp/config",
6637
6767
  ["rsvp/async","exports"],
6638
6768
  function(__dependency1__, __exports__) {
@@ -6642,9 +6772,9 @@ define("rsvp/config",
6642
6772
  var config = {};
6643
6773
  config.async = async;
6644
6774
 
6775
+
6645
6776
  __exports__.config = config;
6646
6777
  });
6647
-
6648
6778
  define("rsvp/defer",
6649
6779
  ["rsvp/promise","exports"],
6650
6780
  function(__dependency1__, __exports__) {
@@ -6652,20 +6782,24 @@ define("rsvp/defer",
6652
6782
  var Promise = __dependency1__.Promise;
6653
6783
 
6654
6784
  function defer() {
6655
- var deferred = {};
6785
+ var deferred = {
6786
+ // pre-allocate shape
6787
+ resolve: undefined,
6788
+ reject: undefined,
6789
+ promise: undefined
6790
+ };
6656
6791
 
6657
- var promise = new Promise(function(resolve, reject) {
6792
+ deferred.promise = new Promise(function(resolve, reject) {
6658
6793
  deferred.resolve = resolve;
6659
6794
  deferred.reject = reject;
6660
6795
  });
6661
6796
 
6662
- deferred.promise = promise;
6663
6797
  return deferred;
6664
6798
  }
6665
6799
 
6800
+
6666
6801
  __exports__.defer = defer;
6667
6802
  });
6668
-
6669
6803
  define("rsvp/events",
6670
6804
  ["exports"],
6671
6805
  function(__exports__) {
@@ -6767,7 +6901,6 @@ define("rsvp/events",
6767
6901
 
6768
6902
  __exports__.EventTarget = EventTarget;
6769
6903
  });
6770
-
6771
6904
  define("rsvp/hash",
6772
6905
  ["rsvp/defer","exports"],
6773
6906
  function(__dependency1__, __exports__) {
@@ -6775,13 +6908,13 @@ define("rsvp/hash",
6775
6908
  var defer = __dependency1__.defer;
6776
6909
 
6777
6910
  function size(object) {
6778
- var size = 0;
6911
+ var s = 0;
6779
6912
 
6780
6913
  for (var prop in object) {
6781
- size++;
6914
+ s++;
6782
6915
  }
6783
6916
 
6784
- return size;
6917
+ return s;
6785
6918
  }
6786
6919
 
6787
6920
  function hash(promises) {
@@ -6819,9 +6952,9 @@ define("rsvp/hash",
6819
6952
  return deferred.promise;
6820
6953
  }
6821
6954
 
6955
+
6822
6956
  __exports__.hash = hash;
6823
6957
  });
6824
-
6825
6958
  define("rsvp/node",
6826
6959
  ["rsvp/promise","rsvp/all","exports"],
6827
6960
  function(__dependency1__, __dependency2__, __exports__) {
@@ -6844,6 +6977,7 @@ define("rsvp/node",
6844
6977
  function denodeify(nodeFunc) {
6845
6978
  return function() {
6846
6979
  var nodeArgs = Array.prototype.slice.call(arguments), resolve, reject;
6980
+ var thisArg = this;
6847
6981
 
6848
6982
  var promise = new Promise(function(nodeResolve, nodeReject) {
6849
6983
  resolve = nodeResolve;
@@ -6854,7 +6988,7 @@ define("rsvp/node",
6854
6988
  nodeArgs.push(makeNodeCallbackFor(resolve, reject));
6855
6989
 
6856
6990
  try {
6857
- nodeFunc.apply(this, nodeArgs);
6991
+ nodeFunc.apply(thisArg, nodeArgs);
6858
6992
  } catch(e) {
6859
6993
  reject(e);
6860
6994
  }
@@ -6864,9 +6998,9 @@ define("rsvp/node",
6864
6998
  };
6865
6999
  }
6866
7000
 
7001
+
6867
7002
  __exports__.denodeify = denodeify;
6868
7003
  });
6869
-
6870
7004
  define("rsvp/promise",
6871
7005
  ["rsvp/config","rsvp/events","exports"],
6872
7006
  function(__dependency1__, __dependency2__, __exports__) {
@@ -6914,12 +7048,20 @@ define("rsvp/promise",
6914
7048
  this.trigger('error', { detail: event.detail });
6915
7049
  }, this);
6916
7050
 
7051
+ this.on('error', onerror);
7052
+
6917
7053
  try {
6918
7054
  resolver(resolvePromise, rejectPromise);
6919
7055
  } catch(e) {
6920
7056
  rejectPromise(e);
6921
7057
  }
6922
- };
7058
+ };
7059
+
7060
+ function onerror(event) {
7061
+ if (config.onerror) {
7062
+ config.onerror(event.detail);
7063
+ }
7064
+ }
6923
7065
 
6924
7066
  var invokeCallback = function(type, promise, callback, event) {
6925
7067
  var hasCallback = isFunction(callback),
@@ -6954,18 +7096,25 @@ define("rsvp/promise",
6954
7096
  Promise.prototype = {
6955
7097
  constructor: Promise,
6956
7098
 
7099
+ isRejected: undefined,
7100
+ isFulfilled: undefined,
7101
+ rejectedReason: undefined,
7102
+ fulfillmentValue: undefined,
7103
+
6957
7104
  then: function(done, fail) {
6958
- var thenPromise = new Promise(function() {});
7105
+ this.off('error', onerror);
7106
+
7107
+ var thenPromise = new this.constructor(function() {});
6959
7108
 
6960
7109
  if (this.isFulfilled) {
6961
- config.async(function() {
6962
- invokeCallback('resolve', thenPromise, done, { detail: this.fulfillmentValue });
7110
+ config.async(function(promise) {
7111
+ invokeCallback('resolve', thenPromise, done, { detail: promise.fulfillmentValue });
6963
7112
  }, this);
6964
7113
  }
6965
7114
 
6966
7115
  if (this.isRejected) {
6967
- config.async(function() {
6968
- invokeCallback('reject', thenPromise, fail, { detail: this.rejectedReason });
7116
+ config.async(function(promise) {
7117
+ invokeCallback('reject', thenPromise, fail, { detail: promise.rejectedReason });
6969
7118
  }, this);
6970
7119
  }
6971
7120
 
@@ -6992,32 +7141,40 @@ define("rsvp/promise",
6992
7141
  }
6993
7142
 
6994
7143
  function handleThenable(promise, value) {
6995
- var then = null;
7144
+ var then = null,
7145
+ resolved;
6996
7146
 
6997
- if (objectOrFunction(value)) {
6998
- try {
6999
- then = value.then;
7000
- } catch(e) {
7001
- reject(promise, e);
7002
- return true;
7147
+ try {
7148
+ if (promise === value) {
7149
+ throw new TypeError("A promises callback cannot return that same promise.");
7003
7150
  }
7004
7151
 
7005
- if (isFunction(then)) {
7006
- try {
7152
+ if (objectOrFunction(value)) {
7153
+ then = value.then;
7154
+
7155
+ if (isFunction(then)) {
7007
7156
  then.call(value, function(val) {
7157
+ if (resolved) { return true; }
7158
+ resolved = true;
7159
+
7008
7160
  if (value !== val) {
7009
7161
  resolve(promise, val);
7010
7162
  } else {
7011
7163
  fulfill(promise, val);
7012
7164
  }
7013
7165
  }, function(val) {
7166
+ if (resolved) { return true; }
7167
+ resolved = true;
7168
+
7014
7169
  reject(promise, val);
7015
7170
  });
7016
- } catch (e) {
7017
- reject(promise, e);
7171
+
7172
+ return true;
7018
7173
  }
7019
- return true;
7020
7174
  }
7175
+ } catch (error) {
7176
+ reject(promise, error);
7177
+ return true;
7021
7178
  }
7022
7179
 
7023
7180
  return false;
@@ -7042,19 +7199,12 @@ define("rsvp/promise",
7042
7199
 
7043
7200
  __exports__.Promise = Promise;
7044
7201
  });
7045
-
7046
7202
  define("rsvp/reject",
7047
7203
  ["rsvp/promise","exports"],
7048
7204
  function(__dependency1__, __exports__) {
7049
7205
  "use strict";
7050
7206
  var Promise = __dependency1__.Promise;
7051
7207
 
7052
-
7053
- function objectOrFunction(x) {
7054
- return typeof x === "function" || (typeof x === "object" && x !== null);
7055
- }
7056
-
7057
-
7058
7208
  function reject(reason) {
7059
7209
  return new Promise(function (resolve, reject) {
7060
7210
  reject(reason);
@@ -7064,48 +7214,21 @@ define("rsvp/reject",
7064
7214
 
7065
7215
  __exports__.reject = reject;
7066
7216
  });
7067
-
7068
7217
  define("rsvp/resolve",
7069
7218
  ["rsvp/promise","exports"],
7070
7219
  function(__dependency1__, __exports__) {
7071
7220
  "use strict";
7072
7221
  var Promise = __dependency1__.Promise;
7073
7222
 
7074
-
7075
- function objectOrFunction(x) {
7076
- return typeof x === "function" || (typeof x === "object" && x !== null);
7077
- }
7078
-
7079
- function resolve(thenable){
7080
- var promise = new Promise(function(resolve, reject){
7081
- var then;
7082
-
7083
- try {
7084
- if ( objectOrFunction(thenable) ) {
7085
- then = thenable.then;
7086
-
7087
- if (typeof then === "function") {
7088
- then.call(thenable, resolve, reject);
7089
- } else {
7090
- resolve(thenable);
7091
- }
7092
-
7093
- } else {
7094
- resolve(thenable);
7095
- }
7096
-
7097
- } catch(error) {
7098
- reject(error);
7099
- }
7223
+ function resolve(thenable) {
7224
+ return new Promise(function(resolve, reject) {
7225
+ resolve(thenable);
7100
7226
  });
7101
-
7102
- return promise;
7103
7227
  }
7104
7228
 
7105
7229
 
7106
7230
  __exports__.resolve = resolve;
7107
7231
  });
7108
-
7109
7232
  define("rsvp",
7110
7233
  ["rsvp/events","rsvp/promise","rsvp/node","rsvp/all","rsvp/hash","rsvp/defer","rsvp/config","rsvp/resolve","rsvp/reject","exports"],
7111
7234
  function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __dependency5__, __dependency6__, __dependency7__, __dependency8__, __dependency9__, __exports__) {
@@ -7136,8 +7259,6 @@ define("rsvp",
7136
7259
  __exports__.reject = reject;
7137
7260
  });
7138
7261
 
7139
-
7140
-
7141
7262
  })();
7142
7263
 
7143
7264
  (function() {
@@ -7205,6 +7326,16 @@ define("container",
7205
7326
  this.dict[key] = value;
7206
7327
  },
7207
7328
 
7329
+ /**
7330
+ Delete the given key
7331
+
7332
+ @method remove
7333
+ @param {String} key
7334
+ */
7335
+ remove: function(key) {
7336
+ delete this.dict[key];
7337
+ },
7338
+
7208
7339
  /**
7209
7340
  Check for the existence of given a key, if the key is present at the current
7210
7341
  level return true, otherwise walk up the parent hierarchy and try again. If
@@ -7377,7 +7508,7 @@ define("container",
7377
7508
  register: function(type, name, factory, options) {
7378
7509
  var fullName;
7379
7510
 
7380
- if (type.indexOf(':') !== -1){
7511
+ if (type.indexOf(':') !== -1) {
7381
7512
  options = factory;
7382
7513
  factory = name;
7383
7514
  fullName = type;
@@ -7392,11 +7523,34 @@ define("container",
7392
7523
  this._options.set(normalizedName, options || {});
7393
7524
  },
7394
7525
 
7526
+ /**
7527
+ Unregister a fullName
7528
+
7529
+ ```javascript
7530
+ var container = new Container();
7531
+ container.register('model:user', User);
7532
+
7533
+ container.lookup('model:user') instanceof User //=> true
7534
+
7535
+ container.unregister('model:user')
7536
+ container.lookup('model:user') === undefined //=> true
7537
+
7538
+ @method unregister
7539
+ @param {String} fullName
7540
+ */
7541
+ unregister: function(fullName) {
7542
+ var normalizedName = this.normalize(fullName);
7543
+
7544
+ this.registry.remove(normalizedName);
7545
+ this.cache.remove(normalizedName);
7546
+ this._options.remove(normalizedName);
7547
+ },
7548
+
7395
7549
  /**
7396
7550
  Given a fullName return the corresponding factory.
7397
7551
 
7398
- By default `resolve` will retreive the factory from
7399
- it's containers registry.
7552
+ By default `resolve` will retrieve the factory from
7553
+ its container's registry.
7400
7554
 
7401
7555
  ```javascript
7402
7556
  var container = new Container();
@@ -7428,6 +7582,20 @@ define("container",
7428
7582
  return this.resolver(fullName) || this.registry.get(fullName);
7429
7583
  },
7430
7584
 
7585
+ /**
7586
+ A hook that can be used to describe how the resolver will
7587
+ attempt to find the factory.
7588
+
7589
+ For example, the default Ember `.describe` returns the full
7590
+ class name (including namespace) where Ember's resolver expects
7591
+ to find the `fullName`.
7592
+
7593
+ @method describe
7594
+ */
7595
+ describe: function(fullName) {
7596
+ return fullName;
7597
+ },
7598
+
7431
7599
  /**
7432
7600
  A hook to enable custom fullName normalization behaviour
7433
7601
 
@@ -8001,7 +8169,11 @@ Ember.copy = function(obj, deep) {
8001
8169
  @return {String} A description of the object
8002
8170
  */
8003
8171
  Ember.inspect = function(obj) {
8004
- if (typeof obj !== 'object' || obj === null) {
8172
+ var type = Ember.typeOf(obj);
8173
+ if (type === 'array') {
8174
+ return '[' + obj + ']';
8175
+ }
8176
+ if (type !== 'object') {
8005
8177
  return obj + '';
8006
8178
  }
8007
8179
 
@@ -8184,9 +8356,9 @@ Ember.String = {
8184
8356
  // first, replace any ORDERED replacements.
8185
8357
  var idx = 0; // the current index for non-numerical replacements
8186
8358
  return str.replace(/%@([0-9]+)?/g, function(s, argIndex) {
8187
- argIndex = (argIndex) ? parseInt(argIndex,0) - 1 : idx++ ;
8359
+ argIndex = (argIndex) ? parseInt(argIndex, 10) - 1 : idx++;
8188
8360
  s = formats[argIndex];
8189
- return ((s === null) ? '(null)' : (s === undefined) ? '' : s).toString();
8361
+ return (s === null) ? '(null)' : (s === undefined) ? '' : Ember.inspect(s);
8190
8362
  }) ;
8191
8363
  },
8192
8364
 
@@ -8704,14 +8876,10 @@ function iter(key, value) {
8704
8876
 
8705
8877
  @class Enumerable
8706
8878
  @namespace Ember
8707
- @extends Ember.Mixin
8708
8879
  @since Ember 0.9
8709
8880
  */
8710
8881
  Ember.Enumerable = Ember.Mixin.create({
8711
8882
 
8712
- // compatibility
8713
- isEnumerable: true,
8714
-
8715
8883
  /**
8716
8884
  Implement this method to make your class enumerable.
8717
8885
 
@@ -9183,7 +9351,7 @@ Ember.Enumerable = Ember.Mixin.create({
9183
9351
  @method some
9184
9352
  @param {Function} callback The callback to execute
9185
9353
  @param {Object} [target] The target object to use
9186
- @return {Array} A filtered array.
9354
+ @return {Boolean} `true` if the passed function returns `true` for any item
9187
9355
  */
9188
9356
  some: function(callback, target) {
9189
9357
  return !!this.find(function(x, idx, i) {
@@ -9198,7 +9366,7 @@ Ember.Enumerable = Ember.Mixin.create({
9198
9366
  @method someProperty
9199
9367
  @param {String} key the property to test
9200
9368
  @param {String} [value] optional value to test against.
9201
- @return {Boolean} `true`
9369
+ @return {Boolean} `true` if the passed function returns `true` for any item
9202
9370
  */
9203
9371
  someProperty: function(key, value) {
9204
9372
  return this.some(iter.apply(this, arguments));
@@ -9338,7 +9506,7 @@ Ember.Enumerable = Ember.Mixin.create({
9338
9506
  */
9339
9507
  uniq: function() {
9340
9508
  var ret = Ember.A();
9341
- this.forEach(function(k){
9509
+ this.forEach(function(k) {
9342
9510
  if (a_indexOf(ret, k)<0) ret.push(k);
9343
9511
  });
9344
9512
  return ret;
@@ -9542,7 +9710,6 @@ var get = Ember.get, set = Ember.set, isNone = Ember.isNone, map = Ember.Enumera
9542
9710
 
9543
9711
  @class Array
9544
9712
  @namespace Ember
9545
- @extends Ember.Mixin
9546
9713
  @uses Ember.Enumerable
9547
9714
  @since Ember 0.9.0
9548
9715
  */
@@ -9598,7 +9765,7 @@ Ember.Array = Ember.Mixin.create(Ember.Enumerable, /** @scope Ember.Array.protot
9598
9765
  */
9599
9766
  objectsAt: function(indexes) {
9600
9767
  var self = this;
9601
- return map(indexes, function(idx){ return self.objectAt(idx); });
9768
+ return map(indexes, function(idx) { return self.objectAt(idx); });
9602
9769
  },
9603
9770
 
9604
9771
  // overrides Ember.Enumerable version
@@ -9630,7 +9797,7 @@ Ember.Array = Ember.Mixin.create(Ember.Enumerable, /** @scope Ember.Array.protot
9630
9797
  }),
9631
9798
 
9632
9799
  // optimized version from Enumerable
9633
- contains: function(obj){
9800
+ contains: function(obj) {
9634
9801
  return this.indexOf(obj) >= 0;
9635
9802
  },
9636
9803
 
@@ -9695,7 +9862,7 @@ Ember.Array = Ember.Mixin.create(Ember.Enumerable, /** @scope Ember.Array.protot
9695
9862
  if (startAt < 0) startAt += len;
9696
9863
 
9697
9864
  for(idx=startAt;idx<len;idx++) {
9698
- if (this.objectAt(idx, true) === object) return idx ;
9865
+ if (this.objectAt(idx) === object) return idx ;
9699
9866
  }
9700
9867
  return -1;
9701
9868
  },
@@ -9940,20 +10107,10 @@ Ember.Array = Ember.Mixin.create(Ember.Enumerable, /** @scope Ember.Array.protot
9940
10107
 
9941
10108
  @class Comparable
9942
10109
  @namespace Ember
9943
- @extends Ember.Mixin
9944
10110
  @since Ember 0.9
9945
10111
  */
9946
10112
  Ember.Comparable = Ember.Mixin.create( /** @scope Ember.Comparable.prototype */{
9947
10113
 
9948
- /**
9949
- walk like a duck. Indicates that the object can be compared.
9950
-
9951
- @property isComparable
9952
- @type Boolean
9953
- @default true
9954
- */
9955
- isComparable: true,
9956
-
9957
10114
  /**
9958
10115
  Override to return the result of the comparison of the two parameters. The
9959
10116
  compare method should return:
@@ -10001,7 +10158,6 @@ var get = Ember.get, set = Ember.set;
10001
10158
 
10002
10159
  @class Copyable
10003
10160
  @namespace Ember
10004
- @extends Ember.Mixin
10005
10161
  @since Ember 0.9
10006
10162
  */
10007
10163
  Ember.Copyable = Ember.Mixin.create(/** @scope Ember.Copyable.prototype */ {
@@ -10106,7 +10262,6 @@ var get = Ember.get, set = Ember.set;
10106
10262
 
10107
10263
  @class Freezable
10108
10264
  @namespace Ember
10109
- @extends Ember.Mixin
10110
10265
  @since Ember 0.9
10111
10266
  */
10112
10267
  Ember.Freezable = Ember.Mixin.create(/** @scope Ember.Freezable.prototype */ {
@@ -10186,7 +10341,6 @@ var forEach = Ember.EnumerableUtils.forEach;
10186
10341
 
10187
10342
  @class MutableEnumerable
10188
10343
  @namespace Ember
10189
- @extends Ember.Mixin
10190
10344
  @uses Ember.Enumerable
10191
10345
  */
10192
10346
  Ember.MutableEnumerable = Ember.Mixin.create(Ember.Enumerable, {
@@ -10286,7 +10440,6 @@ var get = Ember.get, set = Ember.set;
10286
10440
 
10287
10441
  @class MutableArray
10288
10442
  @namespace Ember
10289
- @extends Ember.Mixin
10290
10443
  @uses Ember.Array
10291
10444
  @uses Ember.MutableEnumerable
10292
10445
  */
@@ -10356,7 +10509,7 @@ Ember.MutableArray = Ember.Mixin.create(Ember.Array, Ember.MutableEnumerable,/**
10356
10509
  method. You can pass either a single index, or a start and a length.
10357
10510
 
10358
10511
  If you pass a start and length that is beyond the
10359
- length this method will throw an `Ember.OUT_OF_RANGE_EXCEPTION`
10512
+ length this method will throw an `OUT_OF_RANGE_EXCEPTION`
10360
10513
 
10361
10514
  ```javascript
10362
10515
  var colors = ["red", "green", "blue", "yellow", "orange"];
@@ -10410,7 +10563,7 @@ Ember.MutableArray = Ember.Mixin.create(Ember.Array, Ember.MutableEnumerable,/**
10410
10563
 
10411
10564
  ```javascript
10412
10565
  var colors = ["red", "green", "blue"];
10413
- colors.pushObjects("black"); // ["red", "green", "blue", "black"]
10566
+ colors.pushObjects(["black"]); // ["red", "green", "blue", "black"]
10414
10567
  colors.pushObjects(["yellow", "orange"]); // ["red", "green", "blue", "black", "yellow", "orange"]
10415
10568
  ```
10416
10569
 
@@ -10419,6 +10572,9 @@ Ember.MutableArray = Ember.Mixin.create(Ember.Array, Ember.MutableEnumerable,/**
10419
10572
  @return {Ember.Array} receiver
10420
10573
  */
10421
10574
  pushObjects: function(objects) {
10575
+ if (!(Ember.Enumerable.detect(objects) || Ember.isArray(objects))) {
10576
+ throw new TypeError("Must pass Ember.Enumerable to Ember.MutableArray#pushObjects");
10577
+ }
10422
10578
  this.replace(get(this, 'length'), 0, objects);
10423
10579
  return this;
10424
10580
  },
@@ -10637,9 +10793,8 @@ var get = Ember.get, set = Ember.set;
10637
10793
 
10638
10794
  @class Observable
10639
10795
  @namespace Ember
10640
- @extends Ember.Mixin
10641
10796
  */
10642
- Ember.Observable = Ember.Mixin.create(/** @scope Ember.Observable.prototype */ {
10797
+ Ember.Observable = Ember.Mixin.create({
10643
10798
 
10644
10799
  /**
10645
10800
  Retrieves the value of a property from the object.
@@ -10837,7 +10992,7 @@ Ember.Observable = Ember.Mixin.create(/** @scope Ember.Observable.prototype */ {
10837
10992
  @param {String} keyName The property key that is about to change.
10838
10993
  @return {Ember.Observable}
10839
10994
  */
10840
- propertyWillChange: function(keyName){
10995
+ propertyWillChange: function(keyName) {
10841
10996
  Ember.propertyWillChange(this, keyName);
10842
10997
  return this;
10843
10998
  },
@@ -11143,7 +11298,7 @@ Ember.TargetActionSupport = Ember.Mixin.create({
11143
11298
  target: Ember.computed.alias('controller'),
11144
11299
  action: 'save',
11145
11300
  actionContext: Ember.computed.alias('context'),
11146
- click: function(){
11301
+ click: function() {
11147
11302
  this.triggerAction(); // Sends the `save` action, along with the current context
11148
11303
  // to the current controller
11149
11304
  }
@@ -11155,7 +11310,7 @@ Ember.TargetActionSupport = Ember.Mixin.create({
11155
11310
 
11156
11311
  ```javascript
11157
11312
  App.SaveButtonView = Ember.View.extend(Ember.TargetActionSupport, {
11158
- click: function(){
11313
+ click: function() {
11159
11314
  this.triggerAction({
11160
11315
  action: 'save',
11161
11316
  target: this.get('controller'),
@@ -11173,7 +11328,7 @@ Ember.TargetActionSupport = Ember.Mixin.create({
11173
11328
  ```javascript
11174
11329
  App.SaveButtonView = Ember.View.extend(Ember.TargetActionSupport, {
11175
11330
  target: Ember.computed.alias('controller'),
11176
- click: function(){
11331
+ click: function() {
11177
11332
  this.triggerAction({
11178
11333
  action: 'save'
11179
11334
  }); // Sends the `save` action, along with a reference to `this`,
@@ -11255,7 +11410,6 @@ Ember.TargetActionSupport = Ember.Mixin.create({
11255
11410
 
11256
11411
  @class Evented
11257
11412
  @namespace Ember
11258
- @extends Ember.Mixin
11259
11413
  */
11260
11414
  Ember.Evented = Ember.Mixin.create({
11261
11415
 
@@ -11373,8 +11527,8 @@ Ember.Evented = Ember.Mixin.create({
11373
11527
  (function() {
11374
11528
  var RSVP = requireModule("rsvp");
11375
11529
 
11376
- RSVP.configure('async', function(callback, binding) {
11377
- Ember.run.schedule('actions', binding, callback);
11530
+ RSVP.configure('async', function(callback, promise) {
11531
+ Ember.run.schedule('actions', promise, callback, promise);
11378
11532
  });
11379
11533
 
11380
11534
  /**
@@ -11387,7 +11541,6 @@ var get = Ember.get;
11387
11541
  /**
11388
11542
  @class Deferred
11389
11543
  @namespace Ember
11390
- @extends Ember.Mixin
11391
11544
  */
11392
11545
  Ember.DeferredMixin = Ember.Mixin.create({
11393
11546
  /**
@@ -11426,7 +11579,7 @@ Ember.DeferredMixin = Ember.Mixin.create({
11426
11579
  deferred = get(this, '_deferred');
11427
11580
  promise = deferred.promise;
11428
11581
 
11429
- if (value === this){
11582
+ if (value === this) {
11430
11583
  deferred.resolve(promise);
11431
11584
  } else {
11432
11585
  deferred.resolve(value);
@@ -11473,8 +11626,8 @@ Ember.Container.set = Ember.set;
11473
11626
  */
11474
11627
 
11475
11628
 
11476
- // NOTE: this object should never be included directly. Instead use Ember.
11477
- // Ember.Object. We only define this separately so that Ember.Set can depend on it
11629
+ // NOTE: this object should never be included directly. Instead use `Ember.Object`.
11630
+ // We only define this separately so that `Ember.Set` can depend on it.
11478
11631
 
11479
11632
 
11480
11633
  var set = Ember.set, get = Ember.get,
@@ -11617,6 +11770,10 @@ function makeCtor() {
11617
11770
 
11618
11771
  }
11619
11772
 
11773
+ /**
11774
+ @class CoreObject
11775
+ @namespace Ember
11776
+ */
11620
11777
  var CoreObject = makeCtor();
11621
11778
  CoreObject.toString = function() { return "Ember.CoreObject"; };
11622
11779
 
@@ -11813,7 +11970,7 @@ CoreObject.PrototypeMixin = Mixin.create({
11813
11970
  included in the output.
11814
11971
 
11815
11972
  App.Teacher = App.Person.extend({
11816
- toStringExtension: function(){
11973
+ toStringExtension: function() {
11817
11974
  return this.get('fullName');
11818
11975
  }
11819
11976
  });
@@ -11876,12 +12033,57 @@ var ClassMixin = Mixin.create({
11876
12033
  return Class;
11877
12034
  },
11878
12035
 
12036
+ /**
12037
+ Equivalent to doing `extend(arguments).create()`.
12038
+ If possible use the normal `create` method instead.
12039
+
12040
+ @method createWithMixins
12041
+ @static
12042
+ @param [arguments]*
12043
+ */
11879
12044
  createWithMixins: function() {
11880
12045
  var C = this;
11881
12046
  if (arguments.length>0) { this._initMixins(arguments); }
11882
12047
  return new C();
11883
12048
  },
11884
12049
 
12050
+ /**
12051
+ Creates an instance of a class. Accepts either no arguments, or an object
12052
+ containing values to initialize the newly instantiated object with.
12053
+
12054
+ ```javascript
12055
+ App.Person = Ember.Object.extend({
12056
+ helloWorld: function() {
12057
+ alert("Hi, my name is " + this.get('name'));
12058
+ }
12059
+ });
12060
+
12061
+ var tom = App.Person.create({
12062
+ name: 'Tom Dale'
12063
+ });
12064
+
12065
+ tom.helloWorld(); // alerts "Hi, my name is Tom Dale".
12066
+ ```
12067
+
12068
+ `create` will call the `init` function if defined during
12069
+ `Ember.AnyObject.extend`
12070
+
12071
+ If no arguments are passed to `create`, it will not set values to the new
12072
+ instance during initialization:
12073
+
12074
+ ```javascript
12075
+ var noName = App.Person.create();
12076
+ noName.helloWorld(); // alerts undefined
12077
+ ```
12078
+
12079
+ NOTE: For performance reasons, you cannot declare methods or computed
12080
+ properties during `create`. You should instead declare methods and computed
12081
+ properties when using `extend` or use the `createWithMixins` shorthand.
12082
+
12083
+ @method create
12084
+ @static
12085
+ @param [arguments]*
12086
+ */
11885
12087
  create: function() {
11886
12088
  var C = this;
11887
12089
  if (arguments.length>0) { this._initProperties(arguments); }
@@ -11980,10 +12182,6 @@ if (Ember.config.overrideClassMixin) {
11980
12182
  CoreObject.ClassMixin = ClassMixin;
11981
12183
  ClassMixin.apply(CoreObject);
11982
12184
 
11983
- /**
11984
- @class CoreObject
11985
- @namespace Ember
11986
- */
11987
12185
  Ember.CoreObject = CoreObject;
11988
12186
 
11989
12187
  })();
@@ -12501,6 +12699,9 @@ Ember.ArrayProxy = Ember.Object.extend(Ember.MutableArray,/** @scope Ember.Array
12501
12699
  },
12502
12700
 
12503
12701
  pushObjects: function(objects) {
12702
+ if (!(Ember.Enumerable.detect(objects) || Ember.isArray(objects))) {
12703
+ throw new TypeError("Must pass Ember.Enumerable to Ember.MutableArray#pushObjects");
12704
+ }
12504
12705
  this._replace(get(this, 'length'), 0, objects);
12505
12706
  return this;
12506
12707
  },
@@ -12753,6 +12954,7 @@ function addObserverForContentKey(content, keyName, proxy, idx, loc) {
12753
12954
  while(--loc>=idx) {
12754
12955
  var item = content.objectAt(loc);
12755
12956
  if (item) {
12957
+
12756
12958
  Ember.addBeforeObserver(item, keyName, proxy, 'contentKeyWillChange');
12757
12959
  Ember.addObserver(item, keyName, proxy, 'contentKeyDidChange');
12758
12960
 
@@ -12836,7 +13038,7 @@ Ember.EachProxy = Ember.Object.extend({
12836
13038
  for(key in keys) {
12837
13039
  if (!keys.hasOwnProperty(key)) { continue; }
12838
13040
 
12839
- if (lim>0) removeObserverForContentKey(content, key, this, idx, lim);
13041
+ if (lim>0) { removeObserverForContentKey(content, key, this, idx, lim); }
12840
13042
 
12841
13043
  Ember.propertyWillChange(this, key);
12842
13044
  }
@@ -12846,21 +13048,20 @@ Ember.EachProxy = Ember.Object.extend({
12846
13048
  },
12847
13049
 
12848
13050
  arrayDidChange: function(content, idx, removedCnt, addedCnt) {
12849
- var keys = this._keys, key, lim;
13051
+ var keys = this._keys, lim;
12850
13052
 
12851
13053
  lim = addedCnt>0 ? idx+addedCnt : -1;
12852
- Ember.beginPropertyChanges(this);
13054
+ Ember.changeProperties(function() {
13055
+ for(var key in keys) {
13056
+ if (!keys.hasOwnProperty(key)) { continue; }
12853
13057
 
12854
- for(key in keys) {
12855
- if (!keys.hasOwnProperty(key)) { continue; }
13058
+ if (lim>0) { addObserverForContentKey(content, key, this, idx, lim); }
12856
13059
 
12857
- if (lim>0) addObserverForContentKey(content, key, this, idx, lim);
12858
-
12859
- Ember.propertyDidChange(this, key);
12860
- }
13060
+ Ember.propertyDidChange(this, key);
13061
+ }
12861
13062
 
12862
- Ember.propertyDidChange(this._content, '@each');
12863
- Ember.endPropertyChanges(this);
13063
+ Ember.propertyDidChange(this._content, '@each');
13064
+ }, this);
12864
13065
  },
12865
13066
 
12866
13067
  // ..........................................................
@@ -13009,7 +13210,7 @@ var NativeArray = Ember.Mixin.create(Ember.MutableArray, Ember.Observable, Ember
13009
13210
 
13010
13211
  copy: function(deep) {
13011
13212
  if (deep) {
13012
- return this.map(function(item){ return Ember.copy(item, true); });
13213
+ return this.map(function(item) { return Ember.copy(item, true); });
13013
13214
  }
13014
13215
 
13015
13216
  return this.slice();
@@ -13035,7 +13236,6 @@ if (ignore.length>0) {
13035
13236
 
13036
13237
  @class NativeArray
13037
13238
  @namespace Ember
13038
- @extends Ember.Mixin
13039
13239
  @uses Ember.MutableArray
13040
13240
  @uses Ember.Observable
13041
13241
  @uses Ember.Copyable
@@ -13050,7 +13250,7 @@ Ember.NativeArray = NativeArray;
13050
13250
  @for Ember
13051
13251
  @return {Ember.NativeArray}
13052
13252
  */
13053
- Ember.A = function(arr){
13253
+ Ember.A = function(arr) {
13054
13254
  if (arr === undefined) { arr = []; }
13055
13255
  return Ember.Array.detect(arr) ? arr : Ember.NativeArray.apply(arr);
13056
13256
  };
@@ -13226,7 +13426,7 @@ Ember.Set = Ember.CoreObject.extend(Ember.MutableEnumerable, Ember.Copyable, Emb
13226
13426
  Ember.propertyWillChange(this, 'firstObject');
13227
13427
  Ember.propertyWillChange(this, 'lastObject');
13228
13428
 
13229
- for (var i=0; i < len; i++){
13429
+ for (var i=0; i < len; i++) {
13230
13430
  guid = guidFor(this[i]);
13231
13431
  delete this[guid];
13232
13432
  delete this[i];
@@ -13646,7 +13846,6 @@ var get = Ember.get;
13646
13846
 
13647
13847
  @class ControllerMixin
13648
13848
  @namespace Ember
13649
- @extends Ember.Mixin
13650
13849
  */
13651
13850
  Ember.ControllerMixin = Ember.Mixin.create({
13652
13851
  /* ducktype as a controller */
@@ -13680,7 +13879,7 @@ Ember.ControllerMixin = Ember.Mixin.create({
13680
13879
  if (this[actionName]) {
13681
13880
 
13682
13881
  this[actionName].apply(this, args);
13683
- } else if(target = get(this, 'target')) {
13882
+ } else if (target = get(this, 'target')) {
13684
13883
 
13685
13884
  target.send.apply(target, arguments);
13686
13885
  }
@@ -13734,7 +13933,6 @@ var get = Ember.get, set = Ember.set, forEach = Ember.EnumerableUtils.forEach;
13734
13933
 
13735
13934
  @class SortableMixin
13736
13935
  @namespace Ember
13737
- @extends Ember.Mixin
13738
13936
  @uses Ember.MutableEnumerable
13739
13937
  */
13740
13938
  Ember.SortableMixin = Ember.Mixin.create(Ember.MutableEnumerable, {
@@ -13752,7 +13950,7 @@ Ember.SortableMixin = Ember.Mixin.create(Ember.MutableEnumerable, {
13752
13950
  @property {Boolean} sortAscending
13753
13951
  */
13754
13952
  sortAscending: true,
13755
-
13953
+
13756
13954
  /**
13757
13955
  The function used to compare two values. You can override this if you
13758
13956
  want to do custom comparisons.Functions must be of the type expected by
@@ -13762,8 +13960,8 @@ Ember.SortableMixin = Ember.Mixin.create(Ember.MutableEnumerable, {
13762
13960
  return a positive value otherwise:
13763
13961
 
13764
13962
  ```javascript
13765
- function(x,y){ // These are assumed to be integers
13766
- if(x === y)
13963
+ function(x,y) { // These are assumed to be integers
13964
+ if (x === y)
13767
13965
  return 0;
13768
13966
  return x < y ? -1 : 1;
13769
13967
  }
@@ -13774,7 +13972,7 @@ Ember.SortableMixin = Ember.Mixin.create(Ember.MutableEnumerable, {
13774
13972
  @default Ember.compare
13775
13973
  */
13776
13974
  sortFunction: Ember.compare,
13777
-
13975
+
13778
13976
  orderBy: function(item1, item2) {
13779
13977
  var result = 0,
13780
13978
  sortProperties = get(this, 'sortProperties'),
@@ -14268,7 +14466,7 @@ if (Ember.$) {
14268
14466
  // is a "zero-scope" element. This problem can be worked around by making
14269
14467
  // the first node an invisible text node. We, like Modernizr, use &shy;
14270
14468
 
14271
- var needsShy = this.document && (function(){
14469
+ var needsShy = this.document && (function() {
14272
14470
  var testEl = document.createElement('div');
14273
14471
  testEl.innerHTML = "<div></div>";
14274
14472
  testEl.firstChild.innerHTML = "<script></script>";
@@ -14424,6 +14622,45 @@ ClassSet.prototype = {
14424
14622
  }
14425
14623
  };
14426
14624
 
14625
+ var BAD_TAG_NAME_TEST_REGEXP = /[^a-zA-Z0-9\-]/;
14626
+ var BAD_TAG_NAME_REPLACE_REGEXP = /[^a-zA-Z0-9\-]/g;
14627
+
14628
+ function stripTagName(tagName) {
14629
+ if (!tagName) {
14630
+ return tagName;
14631
+ }
14632
+
14633
+ if (!BAD_TAG_NAME_TEST_REGEXP.test(tagName)) {
14634
+ return tagName;
14635
+ }
14636
+
14637
+ return tagName.replace(BAD_TAG_NAME_REPLACE_REGEXP, '');
14638
+ }
14639
+
14640
+ var BAD_CHARS_REGEXP = /&(?!\w+;)|[<>"'`]/g;
14641
+ var POSSIBLE_CHARS_REGEXP = /[&<>"'`]/;
14642
+
14643
+ function escapeAttribute(value) {
14644
+ // Stolen shamelessly from Handlebars
14645
+
14646
+ var escape = {
14647
+ "<": "&lt;",
14648
+ ">": "&gt;",
14649
+ '"': "&quot;",
14650
+ "'": "&#x27;",
14651
+ "`": "&#x60;"
14652
+ };
14653
+
14654
+ var escapeChar = function(chr) {
14655
+ return escape[chr] || "&amp;";
14656
+ };
14657
+
14658
+ var string = value.toString();
14659
+
14660
+ if(!POSSIBLE_CHARS_REGEXP.test(string)) { return string; }
14661
+ return string.replace(BAD_CHARS_REGEXP, escapeChar);
14662
+ }
14663
+
14427
14664
  /**
14428
14665
  `Ember.RenderBuffer` gathers information regarding the a view and generates the
14429
14666
  final representation. `Ember.RenderBuffer` will generate HTML which can be pushed
@@ -14711,14 +14948,14 @@ Ember._RenderBuffer.prototype =
14711
14948
  style = this.elementStyle,
14712
14949
  attr, prop;
14713
14950
 
14714
- buffer += '<' + tagName;
14951
+ buffer += '<' + stripTagName(tagName);
14715
14952
 
14716
14953
  if (id) {
14717
- buffer += ' id="' + this._escapeAttribute(id) + '"';
14954
+ buffer += ' id="' + escapeAttribute(id) + '"';
14718
14955
  this.elementId = null;
14719
14956
  }
14720
14957
  if (classes) {
14721
- buffer += ' class="' + this._escapeAttribute(classes.join(' ')) + '"';
14958
+ buffer += ' class="' + escapeAttribute(classes.join(' ')) + '"';
14722
14959
  this.classes = null;
14723
14960
  }
14724
14961
 
@@ -14727,7 +14964,7 @@ Ember._RenderBuffer.prototype =
14727
14964
 
14728
14965
  for (prop in style) {
14729
14966
  if (style.hasOwnProperty(prop)) {
14730
- buffer += prop + ':' + this._escapeAttribute(style[prop]) + ';';
14967
+ buffer += prop + ':' + escapeAttribute(style[prop]) + ';';
14731
14968
  }
14732
14969
  }
14733
14970
 
@@ -14739,7 +14976,7 @@ Ember._RenderBuffer.prototype =
14739
14976
  if (attrs) {
14740
14977
  for (attr in attrs) {
14741
14978
  if (attrs.hasOwnProperty(attr)) {
14742
- buffer += ' ' + attr + '="' + this._escapeAttribute(attrs[attr]) + '"';
14979
+ buffer += ' ' + attr + '="' + escapeAttribute(attrs[attr]) + '"';
14743
14980
  }
14744
14981
  }
14745
14982
 
@@ -14754,7 +14991,7 @@ Ember._RenderBuffer.prototype =
14754
14991
  if (value === true) {
14755
14992
  buffer += ' ' + prop + '="' + prop + '"';
14756
14993
  } else {
14757
- buffer += ' ' + prop + '="' + this._escapeAttribute(props[prop]) + '"';
14994
+ buffer += ' ' + prop + '="' + escapeAttribute(props[prop]) + '"';
14758
14995
  }
14759
14996
  }
14760
14997
  }
@@ -14769,7 +15006,7 @@ Ember._RenderBuffer.prototype =
14769
15006
 
14770
15007
  pushClosingTag: function() {
14771
15008
  var tagName = this.tagNames.pop();
14772
- if (tagName) { this.buffer += '</' + tagName + '>'; }
15009
+ if (tagName) { this.buffer += '</' + stripTagName(tagName) + '>'; }
14773
15010
  },
14774
15011
 
14775
15012
  currentTagName: function() {
@@ -14856,7 +15093,7 @@ Ember._RenderBuffer.prototype =
14856
15093
  if (this._hasElement && this._element) {
14857
15094
  // Firefox versions < 11 do not have support for element.outerHTML.
14858
15095
  var thisElement = this.element(), outerHTML = thisElement.outerHTML;
14859
- if (typeof outerHTML === 'undefined'){
15096
+ if (typeof outerHTML === 'undefined') {
14860
15097
  return Ember.$('<div/>').append(thisElement).html();
14861
15098
  }
14862
15099
  return outerHTML;
@@ -14867,32 +15104,7 @@ Ember._RenderBuffer.prototype =
14867
15104
 
14868
15105
  innerString: function() {
14869
15106
  return this.buffer;
14870
- },
14871
-
14872
- _escapeAttribute: function(value) {
14873
- // Stolen shamelessly from Handlebars
14874
-
14875
- var escape = {
14876
- "<": "&lt;",
14877
- ">": "&gt;",
14878
- '"': "&quot;",
14879
- "'": "&#x27;",
14880
- "`": "&#x60;"
14881
- };
14882
-
14883
- var badChars = /&(?!\w+;)|[<>"'`]/g;
14884
- var possible = /[&<>"'`]/;
14885
-
14886
- var escapeChar = function(chr) {
14887
- return escape[chr] || "&amp;";
14888
- };
14889
-
14890
- var string = value.toString();
14891
-
14892
- if(!possible.test(string)) { return string; }
14893
- return string.replace(badChars, escapeChar);
14894
15107
  }
14895
-
14896
15108
  };
14897
15109
 
14898
15110
  })();
@@ -15206,8 +15418,11 @@ var childViewsProperty = Ember.computed(function() {
15206
15418
  var childViews = this._childViews, ret = Ember.A(), view = this;
15207
15419
 
15208
15420
  a_forEach(childViews, function(view) {
15421
+ var currentChildViews;
15209
15422
  if (view.isVirtual) {
15210
- ret.pushObjects(get(view, 'childViews'));
15423
+ if (currentChildViews = get(view, 'childViews')) {
15424
+ ret.pushObjects(currentChildViews);
15425
+ }
15211
15426
  } else {
15212
15427
  ret.push(view);
15213
15428
  }
@@ -15501,8 +15716,8 @@ class:
15501
15716
  MyView = Ember.View.extend({
15502
15717
  classNameBindings: ['propertyA', 'propertyB'],
15503
15718
  propertyA: 'from-a',
15504
- propertyB: function(){
15505
- if(someLogic){ return 'from-b'; }
15719
+ propertyB: function() {
15720
+ if (someLogic) { return 'from-b'; }
15506
15721
  }.property()
15507
15722
  });
15508
15723
  ```
@@ -15683,7 +15898,7 @@ class:
15683
15898
  MyTextInput = Ember.View.extend({
15684
15899
  tagName: 'input',
15685
15900
  attributeBindings: ['disabled'],
15686
- disabled: function(){
15901
+ disabled: function() {
15687
15902
  if (someLogic) {
15688
15903
  return true;
15689
15904
  } else {
@@ -15792,7 +16007,7 @@ class:
15792
16007
 
15793
16008
  aController = Ember.Object.create({
15794
16009
  firstName: 'Barry',
15795
- excitedGreeting: function(){
16010
+ excitedGreeting: function() {
15796
16011
  return this.get("content.firstName") + "!!!"
15797
16012
  }.property()
15798
16013
  });
@@ -15863,7 +16078,7 @@ class:
15863
16078
 
15864
16079
  ```javascript
15865
16080
  AView = Ember.View.extend({
15866
- click: function(event){
16081
+ click: function(event) {
15867
16082
  // will be called when when an instance's
15868
16083
  // rendered element is clicked
15869
16084
  }
@@ -15884,7 +16099,7 @@ class:
15884
16099
  ```javascript
15885
16100
  AView = Ember.View.extend({
15886
16101
  eventManager: Ember.Object.create({
15887
- doubleClick: function(event, view){
16102
+ doubleClick: function(event, view) {
15888
16103
  // will be called when when an instance's
15889
16104
  // rendered element or any rendering
15890
16105
  // of this views's descendent
@@ -15899,11 +16114,11 @@ class:
15899
16114
 
15900
16115
  ```javascript
15901
16116
  AView = Ember.View.extend({
15902
- mouseEnter: function(event){
16117
+ mouseEnter: function(event) {
15903
16118
  // will never trigger.
15904
16119
  },
15905
16120
  eventManager: Ember.Object.create({
15906
- mouseEnter: function(event, view){
16121
+ mouseEnter: function(event, view) {
15907
16122
  // takes presedence over AView#mouseEnter
15908
16123
  }
15909
16124
  })
@@ -15921,7 +16136,7 @@ class:
15921
16136
  OuterView = Ember.View.extend({
15922
16137
  template: Ember.Handlebars.compile("outer {{#view InnerView}}inner{{/view}} outer"),
15923
16138
  eventManager: Ember.Object.create({
15924
- mouseEnter: function(event, view){
16139
+ mouseEnter: function(event, view) {
15925
16140
  // view might be instance of either
15926
16141
  // OuterView or InnerView depending on
15927
16142
  // where on the page the user interaction occured
@@ -15930,12 +16145,12 @@ class:
15930
16145
  });
15931
16146
 
15932
16147
  InnerView = Ember.View.extend({
15933
- click: function(event){
16148
+ click: function(event) {
15934
16149
  // will be called if rendered inside
15935
16150
  // an OuterView because OuterView's
15936
16151
  // eventManager doesn't handle click events
15937
16152
  },
15938
- mouseEnter: function(event){
16153
+ mouseEnter: function(event) {
15939
16154
  // will never be called if rendered inside
15940
16155
  // an OuterView.
15941
16156
  }
@@ -16143,6 +16358,14 @@ Ember.View = Ember.CoreView.extend(
16143
16358
  }
16144
16359
  }).volatile(),
16145
16360
 
16361
+ /**
16362
+ The parent context for this template.
16363
+ */
16364
+ parentContext: function() {
16365
+ var parentView = get(this, '_parentView');
16366
+ return parentView && get(parentView, '_context');
16367
+ },
16368
+
16146
16369
  /**
16147
16370
  @private
16148
16371
 
@@ -16244,7 +16467,7 @@ Ember.View = Ember.CoreView.extend(
16244
16467
  var view = get(this, 'parentView');
16245
16468
 
16246
16469
  while (view) {
16247
- if(view instanceof klass) { return view; }
16470
+ if (view instanceof klass) { return view; }
16248
16471
  view = get(view, 'parentView');
16249
16472
  }
16250
16473
  },
@@ -16265,7 +16488,7 @@ Ember.View = Ember.CoreView.extend(
16265
16488
  function(view) { return klass.detect(view.constructor); };
16266
16489
 
16267
16490
  while (view) {
16268
- if( isOfType(view) ) { return view; }
16491
+ if (isOfType(view)) { return view; }
16269
16492
  view = get(view, 'parentView');
16270
16493
  }
16271
16494
  },
@@ -16298,7 +16521,7 @@ Ember.View = Ember.CoreView.extend(
16298
16521
  var view = get(this, 'parentView');
16299
16522
 
16300
16523
  while (view) {
16301
- if(get(view, 'parentView') instanceof klass) { return view; }
16524
+ if (get(view, 'parentView') instanceof klass) { return view; }
16302
16525
  view = get(view, 'parentView');
16303
16526
  }
16304
16527
  },
@@ -16820,7 +17043,7 @@ Ember.View = Ember.CoreView.extend(
16820
17043
  */
16821
17044
  invokeRecursively: function(fn, includeSelf) {
16822
17045
  var childViews = (includeSelf === false) ? this._childViews : [this];
16823
- var currentViews, view;
17046
+ var currentViews, view, currentChildViews;
16824
17047
 
16825
17048
  while (childViews.length) {
16826
17049
  currentViews = childViews.slice();
@@ -16828,16 +17051,17 @@ Ember.View = Ember.CoreView.extend(
16828
17051
 
16829
17052
  for (var i=0, l=currentViews.length; i<l; i++) {
16830
17053
  view = currentViews[i];
17054
+ currentChildViews = view._childViews ? view._childViews.slice(0) : null;
16831
17055
  fn(view);
16832
- if (view._childViews) {
16833
- childViews.push.apply(childViews, view._childViews);
17056
+ if (currentChildViews) {
17057
+ childViews.push.apply(childViews, currentChildViews);
16834
17058
  }
16835
17059
  }
16836
17060
  }
16837
17061
  },
16838
17062
 
16839
17063
  triggerRecursively: function(eventName) {
16840
- var childViews = [this], currentViews, view;
17064
+ var childViews = [this], currentViews, view, currentChildViews;
16841
17065
 
16842
17066
  while (childViews.length) {
16843
17067
  currentViews = childViews.slice();
@@ -16845,10 +17069,12 @@ Ember.View = Ember.CoreView.extend(
16845
17069
 
16846
17070
  for (var i=0, l=currentViews.length; i<l; i++) {
16847
17071
  view = currentViews[i];
17072
+ currentChildViews = view._childViews ? view._childViews.slice(0) : null;
16848
17073
  if (view.trigger) { view.trigger(eventName); }
16849
- if (view._childViews) {
16850
- childViews.push.apply(childViews, view._childViews);
17074
+ if (currentChildViews) {
17075
+ childViews.push.apply(childViews, currentChildViews);
16851
17076
  }
17077
+
16852
17078
  }
16853
17079
  }
16854
17080
  },
@@ -16895,7 +17121,7 @@ Ember.View = Ember.CoreView.extend(
16895
17121
 
16896
17122
  @event willDestroyElement
16897
17123
  */
16898
- willDestroyElement: function() {},
17124
+ willDestroyElement: Ember.K,
16899
17125
 
16900
17126
  /**
16901
17127
  @private
@@ -17405,7 +17631,7 @@ Ember.View = Ember.CoreView.extend(
17405
17631
  }
17406
17632
 
17407
17633
  var view = this,
17408
- stateCheckedObserver = function(){
17634
+ stateCheckedObserver = function() {
17409
17635
  view.currentState.invokeObserver(this, observer);
17410
17636
  },
17411
17637
  scheduledObserver = function() {
@@ -18666,7 +18892,7 @@ Ember.CollectionView = Ember.ContainerView.extend(/** @scope Ember.CollectionVie
18666
18892
  var content = get(this, 'content');
18667
18893
 
18668
18894
  if (content) {
18669
-
18895
+ this._assertArrayLike(content);
18670
18896
  content.addArrayObserver(this);
18671
18897
  }
18672
18898
 
@@ -18674,6 +18900,10 @@ Ember.CollectionView = Ember.ContainerView.extend(/** @scope Ember.CollectionVie
18674
18900
  this.arrayDidChange(content, 0, null, len);
18675
18901
  }, 'content'),
18676
18902
 
18903
+ _assertArrayLike: function(content) {
18904
+
18905
+ },
18906
+
18677
18907
  destroy: function() {
18678
18908
  if (!this._super()) { return; }
18679
18909
 
@@ -18805,6 +19035,8 @@ Ember.CollectionView.CONTAINER_MAP = {
18805
19035
 
18806
19036
 
18807
19037
  (function() {
19038
+ var get = Ember.get, set = Ember.set, isNone = Ember.isNone;
19039
+
18808
19040
  /**
18809
19041
  @module ember
18810
19042
  @submodule ember-views
@@ -18888,11 +19120,66 @@ Ember.CollectionView.CONTAINER_MAP = {
18888
19120
  @namespace Ember
18889
19121
  @extends Ember.View
18890
19122
  */
18891
- Ember.Component = Ember.View.extend({
19123
+ Ember.Component = Ember.View.extend(Ember.TargetActionSupport, {
18892
19124
  init: function() {
18893
19125
  this._super();
18894
- this.set('context', this);
18895
- this.set('controller', this);
19126
+ set(this, 'context', this);
19127
+ set(this, 'controller', this);
19128
+ set(this, 'templateData', {keywords: {}});
19129
+ },
19130
+
19131
+ targetObject: Ember.computed(function(key) {
19132
+ var parentView = get(this, '_parentView');
19133
+ return parentView ? get(parentView, 'controller') : null;
19134
+ }).property('_parentView'),
19135
+
19136
+ /**
19137
+ Sends an action to component's controller. A component inherits its
19138
+ controller from the context in which it is used.
19139
+
19140
+ By default, calling `sendAction()` will send an action with the name
19141
+ of the component's `action` property.
19142
+
19143
+ For example, if the component had a property `action` with the value
19144
+ `"addItem"`, calling `sendAction()` would send the `addItem` action
19145
+ to the component's controller.
19146
+
19147
+ If you provide an argument to `sendAction()`, that key will be used to look
19148
+ up the action name.
19149
+
19150
+ For example, if the component had a property `playing` with the value
19151
+ `didStartPlaying`, calling `sendAction('playing')` would send the
19152
+ `didStartPlaying` action to the component's controller.
19153
+
19154
+ Whether or not you are using the default action or a named action, if
19155
+ the action name is not defined on the component, calling `sendAction()`
19156
+ does not have any effect.
19157
+
19158
+ For example, if you call `sendAction()` on a component that does not have
19159
+ an `action` property defined, no action will be sent to the controller,
19160
+ nor will an exception be raised.
19161
+
19162
+ @param [action] {String} the action to trigger
19163
+ */
19164
+ sendAction: function(action) {
19165
+ var actionName;
19166
+
19167
+ // Send the default action
19168
+ if (action === undefined) {
19169
+ actionName = get(this, 'action');
19170
+
19171
+ } else {
19172
+ actionName = get(this, action);
19173
+
19174
+ }
19175
+
19176
+
19177
+ // If no action name for that action could be found, just abort.
19178
+ if (actionName === undefined) { return; }
19179
+
19180
+ this.triggerAction({
19181
+ action: actionName
19182
+ });
18896
19183
  }
18897
19184
  });
18898
19185
 
@@ -18923,7 +19210,7 @@ For example:
18923
19210
  ```javascript
18924
19211
  App.SaveButtonView = Ember.View.extend(Ember.ViewTargetActionSupport, {
18925
19212
  action: 'save',
18926
- click: function(){
19213
+ click: function() {
18927
19214
  this.triggerAction(); // Sends the `save` action, along with the current context
18928
19215
  // to the current controller
18929
19216
  }
@@ -18935,7 +19222,7 @@ to `triggerAction` as well.
18935
19222
 
18936
19223
  ```javascript
18937
19224
  App.SaveButtonView = Ember.View.extend(Ember.ViewTargetActionSupport, {
18938
- click: function(){
19225
+ click: function() {
18939
19226
  this.triggerAction({
18940
19227
  action: 'save'
18941
19228
  }); // Sends the `save` action, along with the current context
@@ -19204,7 +19491,7 @@ Ember.State.reopenClass({
19204
19491
 
19205
19492
  bManager = Ember.StateManager.create({
19206
19493
  stateOne: Ember.State.create({
19207
- changeToStateTwo: function(manager, context){
19494
+ changeToStateTwo: function(manager, context) {
19208
19495
  manager.transitionTo('stateTwo', context)
19209
19496
  }
19210
19497
  }),
@@ -19532,7 +19819,7 @@ var sendEvent = function(eventName, sendRecursiveArguments, isUnhandledPass) {
19532
19819
 
19533
19820
  ```javascript
19534
19821
  managerC = Ember.StateManager.create({
19535
- initialState: function(){
19822
+ initialState: function() {
19536
19823
  if (someLogic) {
19537
19824
  return 'active';
19538
19825
  } else {
@@ -19575,12 +19862,12 @@ var sendEvent = function(eventName, sendRecursiveArguments, isUnhandledPass) {
19575
19862
  robotManager = Ember.StateManager.create({
19576
19863
  initialState: 'poweredDown',
19577
19864
  poweredDown: Ember.State.create({
19578
- exit: function(stateManager){
19865
+ exit: function(stateManager) {
19579
19866
  console.log("exiting the poweredDown state")
19580
19867
  }
19581
19868
  }),
19582
19869
  poweredUp: Ember.State.create({
19583
- enter: function(stateManager){
19870
+ enter: function(stateManager) {
19584
19871
  console.log("entering the poweredUp state. Destroy all humans.")
19585
19872
  }
19586
19873
  })
@@ -19603,12 +19890,12 @@ var sendEvent = function(eventName, sendRecursiveArguments, isUnhandledPass) {
19603
19890
  robotManager = Ember.StateManager.create({
19604
19891
  initialState: 'poweredDown',
19605
19892
  poweredDown: Ember.State.create({
19606
- exit: function(stateManager){
19893
+ exit: function(stateManager) {
19607
19894
  console.log("exiting the poweredDown state")
19608
19895
  }
19609
19896
  }),
19610
19897
  poweredUp: Ember.State.create({
19611
- enter: function(stateManager){
19898
+ enter: function(stateManager) {
19612
19899
  console.log("entering the poweredUp state. Destroy all humans.")
19613
19900
  }
19614
19901
  })
@@ -19671,37 +19958,37 @@ var sendEvent = function(eventName, sendRecursiveArguments, isUnhandledPass) {
19671
19958
  robotManager = Ember.StateManager.create({
19672
19959
  initialState: 'poweredDown',
19673
19960
  poweredDown: Ember.State.create({
19674
- enter: function(){},
19675
- exit: function(){
19961
+ enter: function() {},
19962
+ exit: function() {
19676
19963
  console.log("exited poweredDown state")
19677
19964
  },
19678
19965
  charging: Ember.State.create({
19679
- enter: function(){},
19680
- exit: function(){}
19966
+ enter: function() {},
19967
+ exit: function() {}
19681
19968
  }),
19682
19969
  charged: Ember.State.create({
19683
- enter: function(){
19970
+ enter: function() {
19684
19971
  console.log("entered charged state")
19685
19972
  },
19686
- exit: function(){
19973
+ exit: function() {
19687
19974
  console.log("exited charged state")
19688
19975
  }
19689
19976
  })
19690
19977
  }),
19691
19978
  poweredUp: Ember.State.create({
19692
- enter: function(){
19979
+ enter: function() {
19693
19980
  console.log("entered poweredUp state")
19694
19981
  },
19695
- exit: function(){},
19982
+ exit: function() {},
19696
19983
  mobile: Ember.State.create({
19697
- enter: function(){
19984
+ enter: function() {
19698
19985
  console.log("entered mobile state")
19699
19986
  },
19700
- exit: function(){}
19987
+ exit: function() {}
19701
19988
  }),
19702
19989
  stationary: Ember.State.create({
19703
- enter: function(){},
19704
- exit: function(){}
19990
+ enter: function() {},
19991
+ exit: function() {}
19705
19992
  })
19706
19993
  })
19707
19994
  })
@@ -19749,7 +20036,7 @@ var sendEvent = function(eventName, sendRecursiveArguments, isUnhandledPass) {
19749
20036
  initialState: 'stateOne.substateOne.subsubstateOne',
19750
20037
  stateOne: Ember.State.create({
19751
20038
  substateOne: Ember.State.create({
19752
- anAction: function(manager, context){
20039
+ anAction: function(manager, context) {
19753
20040
  console.log("an action was called")
19754
20041
  },
19755
20042
  subsubstateOne: Ember.State.create({})
@@ -19812,7 +20099,7 @@ var sendEvent = function(eventName, sendRecursiveArguments, isUnhandledPass) {
19812
20099
  })
19813
20100
  }),
19814
20101
  stateTwo: Ember.State.create({
19815
- anAction: function(manager, context){
20102
+ anAction: function(manager, context) {
19816
20103
  // will not be called below because it is
19817
20104
  // not a parent of the current state
19818
20105
  }
@@ -19833,18 +20120,18 @@ var sendEvent = function(eventName, sendRecursiveArguments, isUnhandledPass) {
19833
20120
  initialState: 'poweredDown.charging',
19834
20121
  poweredDown: Ember.State.create({
19835
20122
  charging: Ember.State.create({
19836
- chargeComplete: function(manager, context){
20123
+ chargeComplete: function(manager, context) {
19837
20124
  manager.transitionTo('charged')
19838
20125
  }
19839
20126
  }),
19840
20127
  charged: Ember.State.create({
19841
- boot: function(manager, context){
20128
+ boot: function(manager, context) {
19842
20129
  manager.transitionTo('poweredUp')
19843
20130
  }
19844
20131
  })
19845
20132
  }),
19846
20133
  poweredUp: Ember.State.create({
19847
- beginExtermination: function(manager, context){
20134
+ beginExtermination: function(manager, context) {
19848
20135
  manager.transitionTo('rampaging')
19849
20136
  },
19850
20137
  rampaging: Ember.State.create()
@@ -19883,7 +20170,7 @@ var sendEvent = function(eventName, sendRecursiveArguments, isUnhandledPass) {
19883
20170
 
19884
20171
  bManager = Ember.StateManager.create({
19885
20172
  stateOne: Ember.State.create({
19886
- changeToStateTwo: function(manager, context){
20173
+ changeToStateTwo: function(manager, context) {
19887
20174
  manager.transitionTo('stateTwo', context)
19888
20175
  }
19889
20176
  }),
@@ -20255,7 +20542,7 @@ define("metamorph",
20255
20542
  // Copyright: ©2011 My Company Inc. All rights reserved.
20256
20543
  // ==========================================================================
20257
20544
 
20258
- var K = function(){},
20545
+ var K = function() {},
20259
20546
  guid = 0,
20260
20547
  document = this.document,
20261
20548
 
@@ -20265,7 +20552,7 @@ define("metamorph",
20265
20552
  // Internet Explorer prior to 9 does not allow setting innerHTML if the first element
20266
20553
  // is a "zero-scope" element. This problem can be worked around by making
20267
20554
  // the first node an invisible text node. We, like Modernizr, use &shy;
20268
- needsShy = document && (function(){
20555
+ needsShy = document && (function() {
20269
20556
  var testEl = document.createElement('div');
20270
20557
  testEl.innerHTML = "<div></div>";
20271
20558
  testEl.firstChild.innerHTML = "<script></script>";
@@ -20721,7 +21008,7 @@ var objectCreate = Object.create || function(parent) {
20721
21008
  };
20722
21009
 
20723
21010
  var Handlebars = this.Handlebars || (Ember.imports && Ember.imports.Handlebars);
20724
- if(!Handlebars && typeof require === 'function') {
21011
+ if (!Handlebars && typeof require === 'function') {
20725
21012
  Handlebars = require('handlebars');
20726
21013
  }
20727
21014
 
@@ -20831,7 +21118,7 @@ Ember.Handlebars.helper = function(name, value) {
20831
21118
  } else {
20832
21119
  Ember.Handlebars.registerBoundHelper.apply(null, arguments);
20833
21120
  }
20834
- }
21121
+ };
20835
21122
 
20836
21123
  /**
20837
21124
  @class helpers
@@ -20917,7 +21204,7 @@ Ember.Handlebars.Compiler.prototype.mustache = function(mustache) {
20917
21204
  // Update the mustache node to include a hash value indicating whether the original node
20918
21205
  // was escaped. This will allow us to properly escape values when the underlying value
20919
21206
  // changes and we need to re-render the value.
20920
- if(!mustache.escaped) {
21207
+ if (!mustache.escaped) {
20921
21208
  mustache.hash = mustache.hash || new Handlebars.AST.HashNode([]);
20922
21209
  mustache.hash.pairs.push(["unescaped", new Handlebars.AST.StringNode("true")]);
20923
21210
  }
@@ -21115,7 +21402,7 @@ Ember.Handlebars.registerHelper('helperMissing', function(path, options) {
21115
21402
  var error, view = "";
21116
21403
 
21117
21404
  error = "%@ Handlebars error: Could not find property '%@' on object %@.";
21118
- if (options.data){
21405
+ if (options.data) {
21119
21406
  view = options.data.view;
21120
21407
  }
21121
21408
  throw new Ember.Error(Ember.String.fmt(error, [view, path, this]));
@@ -21152,7 +21439,7 @@ Ember.Handlebars.registerHelper('helperMissing', function(path, options) {
21152
21439
  Ember.Handlebars.registerBoundHelper('repeat', function(value, options) {
21153
21440
  var count = options.hash.count;
21154
21441
  var a = [];
21155
- while(a.length < count){
21442
+ while(a.length < count) {
21156
21443
  a.push(value);
21157
21444
  }
21158
21445
  return a.join('');
@@ -21196,7 +21483,7 @@ Ember.Handlebars.registerHelper('helperMissing', function(path, options) {
21196
21483
 
21197
21484
  ```javascript
21198
21485
  Ember.Handlebars.registerBoundHelper('concatenate', function() {
21199
- var values = arguments[arguments.length - 1];
21486
+ var values = Array.prototype.slice.call(arguments, 0, -1);
21200
21487
  return values.join('||');
21201
21488
  });
21202
21489
  ```
@@ -21243,7 +21530,7 @@ Ember.Handlebars.registerBoundHelper = function(name, fn) {
21243
21530
  view = data.view,
21244
21531
  currentContext = (options.contexts && options.contexts[0]) || this,
21245
21532
  normalized,
21246
- pathRoot, path,
21533
+ pathRoot, path, prefixPathForDependentKeys = '',
21247
21534
  loc, hashOption;
21248
21535
 
21249
21536
 
@@ -21292,8 +21579,11 @@ Ember.Handlebars.registerBoundHelper = function(name, fn) {
21292
21579
 
21293
21580
  view.registerObserver(pathRoot, path, bindView, bindView.rerender);
21294
21581
 
21582
+ if(!Ember.isEmpty(path)) {
21583
+ prefixPathForDependentKeys = path + '.';
21584
+ }
21295
21585
  for (var i=0, l=dependentKeys.length; i<l; i++) {
21296
- view.registerObserver(pathRoot, path + '.' + dependentKeys[i], bindView, bindView.rerender);
21586
+ view.registerObserver(pathRoot, prefixPathForDependentKeys + dependentKeys[i], bindView, bindView.rerender);
21297
21587
  }
21298
21588
  }
21299
21589
 
@@ -21400,7 +21690,7 @@ function evaluateUnboundHelper(context, fn, normalizedProperties, options) {
21400
21690
  @for Ember.Handlebars
21401
21691
  @param {String} template spec
21402
21692
  */
21403
- Ember.Handlebars.template = function(spec){
21693
+ Ember.Handlebars.template = function(spec) {
21404
21694
  var t = Handlebars.template(spec);
21405
21695
  t.isTop = true;
21406
21696
  return t;
@@ -21412,10 +21702,19 @@ Ember.Handlebars.template = function(spec){
21412
21702
 
21413
21703
  (function() {
21414
21704
  /**
21415
- @method htmlSafe
21416
- @for Ember.String
21417
- @static
21418
- */
21705
+ * Mark a string as safe for unescaped output with Handlebars. If you
21706
+ * return HTML from a Handlebars helper, use this function to
21707
+ * ensure Handlebars does not escape the HTML.
21708
+ *
21709
+ * ```javascript
21710
+ * Ember.String.htmlSafe('<div>someString</div>')
21711
+ * ```
21712
+ *
21713
+ * @method htmlSafe
21714
+ * @for Ember.String
21715
+ * @static
21716
+ * @return {Handlebars.SafeString} a string that will not be html escaped by Handlebars
21717
+ */
21419
21718
  Ember.String.htmlSafe = function(str) {
21420
21719
  return new Handlebars.SafeString(str);
21421
21720
  };
@@ -21425,11 +21724,18 @@ var htmlSafe = Ember.String.htmlSafe;
21425
21724
  if (Ember.EXTEND_PROTOTYPES === true || Ember.EXTEND_PROTOTYPES.String) {
21426
21725
 
21427
21726
  /**
21428
- See `Ember.String.htmlSafe`.
21429
-
21430
- @method htmlSafe
21431
- @for String
21432
- */
21727
+ * Mark a string as being safe for unescaped output with Handlebars.
21728
+ *
21729
+ * ```javascript
21730
+ * '<div>someString</div>'.htmlSafe()
21731
+ * ```
21732
+ *
21733
+ * See `Ember.String.htmlSafe`.
21734
+ *
21735
+ * @method htmlSafe
21736
+ * @for String
21737
+ * @return {Handlebars.SafeString} a string that will not be html escaped by Handlebars
21738
+ */
21433
21739
  String.prototype.htmlSafe = function() {
21434
21740
  return htmlSafe(this);
21435
21741
  };
@@ -21534,7 +21840,6 @@ var DOMManager = {
21534
21840
  /**
21535
21841
  @class _Metamorph
21536
21842
  @namespace Ember
21537
- @extends Ember.Mixin
21538
21843
  @private
21539
21844
  */
21540
21845
  Ember._Metamorph = Ember.Mixin.create({
@@ -21929,7 +22234,7 @@ var forEach = Ember.ArrayPolyfills.forEach;
21929
22234
 
21930
22235
  var EmberHandlebars = Ember.Handlebars, helpers = EmberHandlebars.helpers;
21931
22236
 
21932
- function exists(value){
22237
+ function exists(value) {
21933
22238
  return !Ember.isNone(value);
21934
22239
  }
21935
22240
 
@@ -21954,7 +22259,7 @@ function bind(property, options, preserveContext, shouldDisplay, valueNormalizer
21954
22259
 
21955
22260
  var template, context, result = handlebarsGet(currentContext, property, options);
21956
22261
 
21957
- result = valueNormalizer(result);
22262
+ result = valueNormalizer ? valueNormalizer(result) : result;
21958
22263
 
21959
22264
  context = preserveContext ? currentContext : result;
21960
22265
  if (shouldDisplay(result)) {
@@ -22277,7 +22582,7 @@ EmberHandlebars.registerHelper('unless', function(context, options) {
22277
22582
 
22278
22583
  ```javascript
22279
22584
  AView = Ember.View.extend({
22280
- someProperty: function(){
22585
+ someProperty: function() {
22281
22586
  return "aValue";
22282
22587
  }.property()
22283
22588
  })
@@ -22562,6 +22867,8 @@ EmberHandlebars.bindClasses = function(context, classBindings, view, bindAttrId,
22562
22867
 
22563
22868
  var get = Ember.get, set = Ember.set;
22564
22869
  var EmberHandlebars = Ember.Handlebars;
22870
+ var LOWERCASE_A_Z = /^[a-z]/;
22871
+ var VIEW_PREFIX = /^view\./;
22565
22872
 
22566
22873
  EmberHandlebars.ViewHelper = Ember.Object.create({
22567
22874
 
@@ -22673,7 +22980,17 @@ EmberHandlebars.ViewHelper = Ember.Object.create({
22673
22980
  newView;
22674
22981
 
22675
22982
  if ('string' === typeof path) {
22676
- newView = EmberHandlebars.get(thisContext, path, options);
22983
+
22984
+ // TODO: this is a lame conditional, this should likely change
22985
+ // but something along these lines will likely need to be added
22986
+ // as deprecation warnings
22987
+ //
22988
+ if (options.types[0] === 'STRING' && LOWERCASE_A_Z.test(path) && !VIEW_PREFIX.test(path)) {
22989
+
22990
+ newView = data.view.container.lookupFactory('view:' + path);
22991
+ } else {
22992
+ newView = EmberHandlebars.get(thisContext, path, options);
22993
+ }
22677
22994
 
22678
22995
  } else {
22679
22996
  newView = path;
@@ -23041,11 +23358,24 @@ Ember.Handlebars.registerHelper('collection', function(path, options) {
23041
23358
  var hash = options.hash, itemHash = {}, match;
23042
23359
 
23043
23360
  // Extract item view class if provided else default to the standard class
23044
- var itemViewClass, itemViewPath = hash.itemViewClass;
23045
- var collectionPrototype = collectionClass.proto();
23046
- delete hash.itemViewClass;
23047
- itemViewClass = itemViewPath ? handlebarsGet(collectionPrototype, itemViewPath, options) : collectionPrototype.itemViewClass;
23361
+ var collectionPrototype = collectionClass.proto(),
23362
+ itemViewClass;
23363
+
23364
+ if (hash.itemView) {
23365
+ var controller = data.keywords.controller;
23366
+
23367
+ var container = controller.container;
23368
+ itemViewClass = container.resolve('view:' + Ember.String.camelize(hash.itemView));
23369
+
23370
+ } else if (hash.itemViewClass) {
23371
+ itemViewClass = handlebarsGet(collectionPrototype, hash.itemViewClass, options);
23372
+ } else {
23373
+ itemViewClass = collectionPrototype.itemViewClass;
23374
+ }
23375
+
23048
23376
 
23377
+ delete hash.itemViewClass;
23378
+ delete hash.itemView;
23049
23379
 
23050
23380
  // Go through options passed to the {{collection}} helper and extract options
23051
23381
  // that configure item views instead of the collection itself.
@@ -23053,7 +23383,7 @@ Ember.Handlebars.registerHelper('collection', function(path, options) {
23053
23383
  if (hash.hasOwnProperty(prop)) {
23054
23384
  match = prop.match(/^item(.)(.*)$/);
23055
23385
 
23056
- if(match && prop !== 'itemController') {
23386
+ if (match && prop !== 'itemController') {
23057
23387
  // Convert itemShouldFoo -> shouldFoo
23058
23388
  itemHash[match[1].toLowerCase() + match[2]] = hash[prop];
23059
23389
  // Delete from hash as this will end up getting passed to the
@@ -23080,7 +23410,7 @@ Ember.Handlebars.registerHelper('collection', function(path, options) {
23080
23410
  }
23081
23411
  if (emptyViewClass) { hash.emptyView = emptyViewClass; }
23082
23412
 
23083
- if(!hash.keyword){
23413
+ if (!hash.keyword) {
23084
23414
  itemHash._context = Ember.computed.alias('content');
23085
23415
  }
23086
23416
 
@@ -23127,7 +23457,7 @@ var handlebarsGet = Ember.Handlebars.get;
23127
23457
  Ember.Handlebars.registerHelper('unbound', function(property, fn) {
23128
23458
  var options = arguments[arguments.length - 1], helper, context, out;
23129
23459
 
23130
- if(arguments.length > 2) {
23460
+ if (arguments.length > 2) {
23131
23461
  // Unbound helper call.
23132
23462
  options.data.isUnbound = true;
23133
23463
  helper = Ember.Handlebars.helpers[arguments[0]] || Ember.Handlebars.helperMissing;
@@ -23185,7 +23515,7 @@ Ember.Handlebars.registerHelper('log', function(property, options) {
23185
23515
  @for Ember.Handlebars.helpers
23186
23516
  @param {String} property
23187
23517
  */
23188
- Ember.Handlebars.registerHelper('debugger', function() {
23518
+ Ember.Handlebars.registerHelper('debugger', function(options) {
23189
23519
  debugger;
23190
23520
  });
23191
23521
 
@@ -23231,6 +23561,11 @@ Ember.Handlebars.EachView = Ember.CollectionView.extend(Ember._Metamorph, {
23231
23561
  return this._super();
23232
23562
  },
23233
23563
 
23564
+ _assertArrayLike: function(content) {
23565
+
23566
+
23567
+ },
23568
+
23234
23569
  disableContentObservers: function(callback) {
23235
23570
  Ember.removeBeforeObserver(this, 'content', null, '_contentWillChange');
23236
23571
  Ember.removeObserver(this, 'content', null, '_contentDidChange');
@@ -23461,6 +23796,12 @@ GroupedEach.prototype = {
23461
23796
  </div>
23462
23797
  ```
23463
23798
 
23799
+ If an `itemViewClass` is defined on the helper, and therefore the helper is not
23800
+ being used as a block, an `emptyViewClass` can also be provided optionally.
23801
+ The `emptyViewClass` will match the behavior of the `{{else}}` condition
23802
+ described above. That is, the `emptyViewClass` will render if the collection
23803
+ is empty.
23804
+
23464
23805
  ### Representing each item with a Controller.
23465
23806
  By default the controller lookup within an `{{#each}}` block will be
23466
23807
  the controller of the template where the `{{#each}}` was used. If each
@@ -23474,7 +23815,7 @@ GroupedEach.prototype = {
23474
23815
 
23475
23816
  ```javascript
23476
23817
  App.DeveloperController = Ember.ObjectController.extend({
23477
- isAvailableForHire: function(){
23818
+ isAvailableForHire: function() {
23478
23819
  return !this.get('content.isEmployed') && this.get('content.isSeekingWork');
23479
23820
  }.property('isEmployed', 'isSeekingWork')
23480
23821
  })
@@ -23574,17 +23915,15 @@ Ember.Handlebars.registerHelper('each', function(path, options) {
23574
23915
  Ember.TEMPLATES["my_cool_template"] = Ember.Handlebars.compile('<b>{{user}}</b>');
23575
23916
  ```
23576
23917
 
23918
+ @deprecated
23577
23919
  @method template
23578
23920
  @for Ember.Handlebars.helpers
23579
23921
  @param {String} templateName the template to render
23580
23922
  */
23581
23923
 
23582
23924
  Ember.Handlebars.registerHelper('template', function(name, options) {
23583
- var view = options.data.view,
23584
- template = view.templateForName(name);
23585
23925
 
23586
-
23587
- template(this, { data: options.data });
23926
+ return Ember.Handlebars.helpers.partial.apply(this, arguments);
23588
23927
  });
23589
23928
 
23590
23929
  })();
@@ -23635,7 +23974,6 @@ Ember.Handlebars.registerHelper('partial', function(name, options) {
23635
23974
  deprecatedTemplate = !template && view.templateForName(name);
23636
23975
 
23637
23976
 
23638
-
23639
23977
  template = template || deprecatedTemplate;
23640
23978
 
23641
23979
  template(this, { data: options.data });
@@ -23705,7 +24043,7 @@ var get = Ember.get, set = Ember.set;
23705
24043
  @return {String} HTML string
23706
24044
  */
23707
24045
  Ember.Handlebars.registerHelper('yield', function(options) {
23708
- var view = options.data.view, template;
24046
+ var currentView = options.data.view, view = currentView, template;
23709
24047
 
23710
24048
  while (view && !get(view, 'layout')) {
23711
24049
  view = get(view, 'parentView');
@@ -23714,7 +24052,48 @@ Ember.Handlebars.registerHelper('yield', function(options) {
23714
24052
 
23715
24053
  template = get(view, 'template');
23716
24054
 
23717
- if (template) { template(this, options); }
24055
+ var keywords = view._parentView.cloneKeywords();
24056
+
24057
+ currentView.appendChild(Ember.View, {
24058
+ isVirtual: true,
24059
+ tagName: '',
24060
+ template: template,
24061
+ context: get(view._parentView, 'context'),
24062
+ controller: get(view._parentView, 'controller'),
24063
+ templateData: {keywords: keywords}
24064
+ });
24065
+ });
24066
+
24067
+ })();
24068
+
24069
+
24070
+
24071
+ (function() {
24072
+ /**
24073
+ @module ember
24074
+ @submodule ember-handlebars
24075
+ */
24076
+
24077
+ /**
24078
+ `loc` looks up the string in the localized strings hash.
24079
+ This is a convenient way to localize text. For example:
24080
+
24081
+ ```html
24082
+ <script type="text/x-handlebars" data-template-name="home">
24083
+ {{loc welcome}}
24084
+ </script>
24085
+ ```
24086
+
24087
+ Take note that `welcome` is a string and not an object
24088
+ reference.
24089
+
24090
+ @method loc
24091
+ @for Ember.Handlebars.helpers
24092
+ @param {String} str The string to format
24093
+ */
24094
+
24095
+ Ember.Handlebars.registerHelper('loc', function(str) {
24096
+ return Ember.String.loc(str);
23718
24097
  });
23719
24098
 
23720
24099
  })();
@@ -23784,17 +24163,23 @@ Ember.Checkbox = Ember.View.extend({
23784
24163
 
23785
24164
  tagName: 'input',
23786
24165
 
23787
- attributeBindings: ['type', 'checked', 'disabled', 'tabindex', 'name'],
24166
+ attributeBindings: ['type', 'checked', 'indeterminate', 'disabled', 'tabindex', 'name'],
23788
24167
 
23789
24168
  type: "checkbox",
23790
24169
  checked: false,
23791
24170
  disabled: false,
24171
+ indeterminate: false,
23792
24172
 
23793
24173
  init: function() {
23794
24174
  this._super();
23795
24175
  this.on("change", this, this._updateElementValue);
23796
24176
  },
23797
24177
 
24178
+ didInsertElement: function() {
24179
+ this._super();
24180
+ this.get('element').indeterminate = !!this.get('indeterminate');
24181
+ },
24182
+
23798
24183
  _updateElementValue: function() {
23799
24184
  set(this, 'checked', this.$().prop('checked'));
23800
24185
  }
@@ -23817,7 +24202,6 @@ var get = Ember.get, set = Ember.set;
23817
24202
 
23818
24203
  @class TextSupport
23819
24204
  @namespace Ember
23820
- @extends Ember.Mixin
23821
24205
  @private
23822
24206
  */
23823
24207
  Ember.TextSupport = Ember.Mixin.create({
@@ -24829,9 +25213,9 @@ function program7(depth0,data) {
24829
25213
  content = get(this, 'content'),
24830
25214
  selection = get(this, 'selection');
24831
25215
 
24832
- if (!content){ return; }
25216
+ if (!content) { return; }
24833
25217
  if (options) {
24834
- var selectedIndexes = options.map(function(){
25218
+ var selectedIndexes = options.map(function() {
24835
25219
  return this.index - offset;
24836
25220
  }).toArray();
24837
25221
  var newSelection = content.objectsAt(selectedIndexes);
@@ -24920,7 +25304,7 @@ Ember.Handlebars.registerHelper('input', function(options) {
24920
25304
  if (inputType === 'checkbox') {
24921
25305
  return Ember.Handlebars.helpers.view.call(this, Ember.Checkbox, options);
24922
25306
  } else {
24923
- hash.type = inputType;
25307
+ if (inputType) { hash.type = inputType; }
24924
25308
  hash.onEvent = onEvent || 'enter';
24925
25309
  return Ember.Handlebars.helpers.view.call(this, Ember.TextField, options);
24926
25310
  }
@@ -25764,7 +26148,7 @@ Ember.Application.registerInjection({
25764
26148
  var name = property.charAt(0).toLowerCase() + property.substr(1),
25765
26149
  controllerClass = app[property], controller;
25766
26150
 
25767
- if(!Ember.Object.detect(controllerClass)){ return; }
26151
+ if (!Ember.Object.detect(controllerClass)) { return; }
25768
26152
  controller = app[property].create();
25769
26153
 
25770
26154
  router.set(name, controller);
@@ -25885,7 +26269,6 @@ var merge = function(original, hash) {
25885
26269
  /**
25886
26270
  @class Routable
25887
26271
  @namespace Ember
25888
- @extends Ember.Mixin
25889
26272
  */
25890
26273
  Ember.Routable = Ember.Mixin.create({
25891
26274
  init: function() {
@@ -26814,7 +27197,7 @@ Ember.HistoryLocation = Ember.Object.extend({
26814
27197
  var guid = Ember.guidFor(this);
26815
27198
 
26816
27199
  Ember.$(window).on('popstate.ember-location-'+guid, function(e) {
26817
- if(!popstateReady) {
27200
+ if (!popstateReady) {
26818
27201
  return;
26819
27202
  }
26820
27203
  callback(location.pathname);
@@ -27643,7 +28026,7 @@ ActionHelper.registerAction = function(actionName, options) {
27643
28026
  ```javascript
27644
28027
  AView = Ember.View.extend({
27645
28028
  templateName: 'a-template',
27646
- anActionName: function(event){}
28029
+ anActionName: function(event) {}
27647
28030
  });
27648
28031
 
27649
28032
  aView = AView.create();
@@ -27769,7 +28152,7 @@ ActionHelper.registerAction = function(actionName, options) {
27769
28152
  AView = Ember.View.extend({
27770
28153
  templateName; 'a-template',
27771
28154
  // note: no method 'aMethodNameThatIsMissing'
27772
- anActionName: function(event){}
28155
+ anActionName: function(event) {}
27773
28156
  });
27774
28157
 
27775
28158
  aView = AView.create();