ember-source 0.0.5 → 0.0.6

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


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

@@ -8,10 +8,10 @@
8
8
  // ==========================================================================
9
9
 
10
10
 
11
- // Version: v1.0.0-rc.1-354-g4e75d2b
12
- // Last commit: 4e75d2b (2013-04-09 16:28:08 -0700)
11
+ // Version: v1.0.0-rc.1-536-gd47406c
12
+ // Last commit: d47406c (2013-04-25 17:21:02 -0700)
13
13
 
14
14
 
15
- (function(){var e,t;(function(){var n={},r={};e=function(e,t,r){n[e]={deps:t,callback:r}},t=function(e){if(r[e])return r[e];r[e]={};var i=n[e],s=i.deps,o=i.callback,u=[],a;for(var f=0,l=s.length;f<l;f++)s[f]==="exports"?u.push(a={}):u.push(t(s[f]));var c=o.apply(this,u);return r[e]=a||c}})(),function(){function r(t){if(e.console&&e.console[t])return e.console[t].apply?function(){e.console[t].apply(e.console,arguments)}:function(){var n=Array.prototype.join.call(arguments,", ");e.console[t](n)}}"undefined"==typeof Ember&&(Ember={});var e=Ember.imports=Ember.imports||this,t=Ember.exports=Ember.exports||this,n=Ember.lookup=Ember.lookup||this;t.Em=t.Ember=Em=Ember,Ember.isNamespace=!0,Ember.toString=function(){return"Ember"},Ember.VERSION="1.0.0-rc.2",Ember.ENV=Ember.ENV||("undefined"==typeof ENV?{}:ENV),Ember.config=Ember.config||{},Ember.EXTEND_PROTOTYPES=Ember.ENV.EXTEND_PROTOTYPES,typeof Ember.EXTEND_PROTOTYPES=="undefined"&&(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:r("log")||Ember.K,warn:r("warn")||Ember.K,error:r("error")||Ember.K,info:r("info")||Ember.K,debug:r("debug")||r("info")||Ember.K},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(n){Ember.onerror(n)}},Ember.merge=function(e,t){for(var n in t){if(!t.hasOwnProperty(n))continue;e[n]=t[n]}return e},Ember.isNone=function(e){return e===null||e===undefined},Ember.none=Ember.deprecateFunc("Ember.none is deprecated. Please use Ember.isNone instead.",Ember.isNone),Ember.isEmpty=function(e){return e===null||e===undefined||e.length===0&&typeof e!="function"||typeof e=="object"&&Ember.get(e,"length")===0},Ember.empty=Ember.deprecateFunc("Ember.empty is deprecated. Please use Ember.isEmpty instead.",Ember.isEmpty)}(),function(){var e=Ember.platform={};Ember.create=Object.create;if(!Ember.create||Ember.ENV.STUB_OBJECT_CREATE){var t=function(){};Ember.create=function(e,n){t.prototype=e,e=new t;if(n){t.prototype=e;for(var r in n)t.prototype[r]=n[r].value;e=new t}return t.prototype=null,e},Ember.create.isSimulated=!0}var n=Object.defineProperty,r,i;if(n)try{n({},"a",{get:function(){}})}catch(s){n=null}n&&(r=function(){var e={};return n(e,"a",{configurable:!0,enumerable:!0,get:function(){},set:function(){}}),n(e,"a",{configurable:!0,enumerable:!0,writable:!0,value:!0}),e.a===!0}(),i=function(){try{return n(document.createElement("div"),"definePropertyOnDOM",{}),!0}catch(e){}return!1}(),r?i||(n=function(e,t,n){var r;return typeof Node=="object"?r=e instanceof Node:r=typeof e=="object"&&typeof e.nodeType=="number"&&typeof e.nodeName=="string",r?e[t]=n.value:Object.defineProperty(e,t,n)}):n=null),e.defineProperty=n,e.hasPropertyAccessors=!0,e.defineProperty||(e.hasPropertyAccessors=!1,e.defineProperty=function(e,t,n){n.get||(e[t]=n.value)},e.defineProperty.isSimulated=!0),Ember.ENV.MANDATORY_SETTER&&!e.hasPropertyAccessors&&(Ember.ENV.MANDATORY_SETTER=!1)}(),function(){var e=Ember.EnumerableUtils={map:function(e,t,n){return e.map?e.map.call(e,t,n):Array.prototype.map.call(e,t,n)},forEach:function(e,t,n){return e.forEach?e.forEach.call(e,t,n):Array.prototype.forEach.call(e,t,n)},indexOf:function(e,t,n){return e.indexOf?e.indexOf.call(e,t,n):Array.prototype.indexOf.call(e,t,n)},indexesOf:function(t,n){return n===undefined?[]:e.map(n,function(n){return e.indexOf(t,n)})},addObject:function(t,n){var r=e.indexOf(t,n);r===-1&&t.push(n)},removeObject:function(t,n){var r=e.indexOf(t,n);r!==-1&&t.splice(r,1)},replace:function(e,t,n,r){if(e.replace)return e.replace(t,n,r);var i=Array.prototype.concat.apply([t,n],r);return e.splice.apply(e,i)},intersection:function(e,t){var n=[];return e.forEach(function(e){t.indexOf(e)>=0&&n.push(e)}),n}}}(),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(this===void 0||this===null)throw new TypeError;var t=Object(this),n=t.length>>>0;if(typeof e!="function")throw new TypeError;var r=new Array(n),i=arguments[1];for(var s=0;s<n;s++)s in t&&(r[s]=e.call(i,t[s],s,t));return r},n=e(Array.prototype.forEach)?Array.prototype.forEach:function(e){if(this===void 0||this===null)throw new TypeError;var t=Object(this),n=t.length>>>0;if(typeof e!="function")throw new TypeError;var r=arguments[1];for(var i=0;i<n;i++)i in t&&e.call(r,t[i],i,t)},r=e(Array.prototype.indexOf)?Array.prototype.indexOf:function(e,t){t===null||t===undefined?t=0:t<0&&(t=Math.max(0,this.length+t));for(var n=t,r=this.length;n<r;n++)if(this[n]===e)return n;return-1};Ember.ArrayPolyfills={map:t,forEach:n,indexOf:r},Ember.SHIM_ES5&&(Array.prototype.map||(Array.prototype.map=t),Array.prototype.forEach||(Array.prototype.forEach=n),Array.prototype.indexOf||(Array.prototype.indexOf=r))}(),function(){function h(e){this.descs={},this.watching={},this.cache={},this.source=e}function p(e,t){return!!e&&typeof e[t]=="function"}var e=Ember.platform.defineProperty,t=Ember.create,n="__ember"+ +(new Date),r=0,i=[],s={},o=Ember.ENV.MANDATORY_SETTER;Ember.GUID_KEY=n;var u={writable:!1,configurable:!1,enumerable:!1,value:null};Ember.generateGuid=function(i,s){s||(s="ember");var o=s+r++;return i&&(u.value=o,e(i,n,u)),o},Ember.guidFor=function(o){if(o===undefined)return"(undefined)";if(o===null)return"(null)";var a,f,l=typeof o;switch(l){case"number":return f=i[o],f||(f=i[o]="nu"+o),f;case"string":return f=s[o],f||(f=s[o]="st"+r++),f;case"boolean":return o?"(true)":"(false)";default:if(o[n])return o[n];if(o===Object)return"(Object)";if(o===Array)return"(Array)";return f="ember"+r++,u.value=f,e(o,n,u),f}};var a={writable:!0,configurable:!1,enumerable:!1,value:null},f=Ember.GUID_KEY+"_meta";Ember.META_KEY=f;var l={descs:{},watching:{}};o&&(l.values={}),Ember.EMPTY_META=l,Object.freeze&&Object.freeze(l);var c=Ember.platform.defineProperty.isSimulated;c&&(h.prototype.__preventPlainObject__=!0,h.prototype.toJSON=function(){}),Ember.meta=function(r,i){var s=r[f];return i===!1?s||l:(s?s.source!==r&&(c||e(r,f,a),s=t(s),s.descs=t(s.descs),s.watching=t(s.watching),s.cache={},s.source=r,o&&(s.values=t(s.values)),r[f]=s):(c||e(r,f,a),s=new h(r),o&&(s.values={}),r[f]=s,s.descs.constructor=null),s)},Ember.getMeta=function(t,n){var r=Ember.meta(t,!1);return r[n]},Ember.setMeta=function(t,n,r){var i=Ember.meta(t,!0);return i[n]=r,r},Ember.metaPath=function(n,r,i){var s=Ember.meta(n,i),o,u;for(var a=0,f=r.length;a<f;a++){o=r[a],u=s[o];if(!u){if(!i)return undefined;u=s[o]={__ember_source__:n}}else if(u.__ember_source__!==n){if(!i)return undefined;u=s[o]=t(u),u.__ember_source__=n}s=u}return u},Ember.wrap=function(e,t){function n(){}function r(){var r,i=this._super;return this._super=t||n,r=e.apply(this,arguments),this._super=i,r}return r.wrappedFunction=e,r.__ember_observes__=e.__ember_observes__,r.__ember_observesBefore__=e.__ember_observesBefore__,r},Ember.isArray=function(e){return!e||e.setInterval?!1:Array.isArray&&Array.isArray(e)?!0:Ember.Array&&Ember.Array.detect(e)?!0:e.length!==undefined&&"object"==typeof e?!0:!1},Ember.makeArray=function(e){return e===null||e===undefined?[]:Ember.isArray(e)?e:[e]},Ember.canInvoke=p,Ember.tryInvoke=function(e,t,n){if(p(e,t))return e[t].apply(e,n||[])};var d=function(){var e=0;try{try{}finally{throw e++,new Error("needsFinallyFixTest")}}catch(t){}return e!==1}();d?Ember.tryFinally=function(e,t,n){var r,i,s;n=n||this;try{r=e.call(n)}finally{try{i=t.call(n)}catch(o){s=o}}if(s)throw s;return i===undefined?r:i}:Ember.tryFinally=function(e,t,n){var r,i;n=n||this;try{r=e.call(n)}finally{i=t.call(n)}return i===undefined?r:i},d?Ember.tryCatchFinally=function(e,t,n,r){var i,s,o,u;r=r||this;try{i=e.call(r)}catch(a){i=t.call(r,a)}finally{try{s=n.call(r)}catch(f){o=f}}if(o)throw o;return s===undefined?i:s}:Ember.tryCatchFinally=function(e,t,n,r){var i,s;r=r||this;try{i=e.call(r)}catch(o){i=t.call(r,o)}finally{s=n.call(r)}return s===undefined?i:s};var v={},m="Boolean Number String Function Array Date RegExp Object".split(" ");Ember.ArrayPolyfills.forEach.call(m,function(e){v["[object "+e+"]"]=e.toLowerCase()});var g=Object.prototype.toString;Ember.typeOf=function(e){var t;return t=e===null||e===undefined?String(e):v[g.call(e)]||"object",t==="function"?Ember.Object&&Ember.Object.detect(e)&&(t="class"):t==="object"&&(e instanceof Error?t="error":Ember.Object&&e instanceof Ember.Object?t="instance":t="object"),t}}(),function(){Ember.Instrumentation={};var e=[],t={},n=function(n){var r=[],i;for(var s=0,o=e.length;s<o;s++)i=e[s],i.regex.test(n)&&r.push(i.object);return t[n]=r,r},r=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 d(){for(h=0,p=u.length;h<p;h++)c=u[h],l[h]=c.before(e,r(),i);return s.call(o)}function v(e){i=i||{},i.exception=e}function m(){for(h=0,p=u.length;h<p;h++)c=u[h],c.after(e,r(),i,l[h]);Ember.STRUCTURED_PROFILE&&console.timeEnd(a)}var u=t[e],a,f;Ember.STRUCTURED_PROFILE&&(a=e+": "+i.object,console.time(a)),u||(u=n(e));if(u.length===0)return f=s.call(o),Ember.STRUCTURED_PROFILE&&console.timeEnd(a),f;var l=[],c,h,p;return Ember.tryCatchFinally(d,v,m)},Ember.Instrumentation.subscribe=function(n,r){var i=n.split("."),s,o=[];for(var u=0,a=i.length;u<a;u++)s=i[u],s==="*"?o.push("[^\\.]*"):o.push(s);o=o.join("\\."),o+="(\\..*)?";var f={pattern:n,regex:new RegExp("^"+o+"$"),object:r};return e.push(f),t={},f},Ember.Instrumentation.unsubscribe=function(n){var r;for(var i=0,s=e.length;i<s;i++)e[i]===n&&(r=i);e.splice(r,1),t={}},Ember.Instrumentation.reset=function(){e=[],t={}},Ember.instrument=Ember.Instrumentation.instrument,Ember.subscribe=Ember.Instrumentation.subscribe}(),function(){var e=Ember.guidFor,t=Ember.ArrayPolyfills.indexOf,n=function(e){var t={};for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);return t},r=function(e,t){var r=e.keys.copy(),i=n(e.values);return t.keys=r,t.values=i,t},i=Ember.OrderedSet=function(){this.clear()};i.create=function(){return new i},i.prototype={clear:function(){this.presenceSet={},this.list=[]},add:function(t){var n=e(t),r=this.presenceSet,i=this.list;if(n in r)return;r[n]=!0,i.push(t)},remove:function(n){var r=e(n),i=this.presenceSet,s=this.list;delete i[r];var o=t.call(s,n);o>-1&&s.splice(o,1)},isEmpty:function(){return this.list.length===0},has:function(t){var n=e(t),r=this.presenceSet;return n in r},forEach:function(e,t){var n=this.list.slice();for(var r=0,i=n.length;r<i;r++)e.call(t,n[r])},toArray:function(){return this.list.slice()},copy:function(){var e=new i;return e.presenceSet=n(this.presenceSet),e.list=this.list.slice(),e}};var s=Ember.Map=function(){this.keys=Ember.OrderedSet.create(),this.values={}};s.create=function(){return new s},s.prototype={get:function(t){var n=this.values,r=e(t);return n[r]},set:function(t,n){var r=this.keys,i=this.values,s=e(t);r.add(t),i[s]=n},remove:function(t){var n=this.keys,r=this.values,i=e(t),s;return r.hasOwnProperty(i)?(n.remove(t),s=r[i],delete r[i],!0):!1},has:function(t){var n=this.values,r=e(t);return n.hasOwnProperty(r)},forEach:function(t,n){var r=this.keys,i=this.values;r.forEach(function(r){var s=e(r);t.call(n,r,i[s])})},copy:function(){return r(this,new s)}};var o=Ember.MapWithDefault=function(e){s.call(this),this.defaultValue=e.defaultValue};o.create=function(e){return e?new o(e):new s},o.prototype=Ember.create(s.prototype),o.prototype.get=function(e){var t=this.has(e);if(t)return s.prototype.get.call(this,e);var n=this.defaultValue(e);return this.set(e,n),n},o.prototype.copy=function(){return r(this,new o({defaultValue:this.defaultValue}))}}(),function(){function o(e){return e.match(s)[0]}function u(e,n){var s=i.test(n),u=!s&&r.test(n),a;if(!e||u)e=Ember.lookup;s&&(n=n.slice(5)),e===Ember.lookup&&(a=o(n),e=t(e,a),n=n.slice(a.length+1));if(!n||n.length===0)throw new Error("Invalid Path");return[e,n]}var e=Ember.META_KEY,t,n=Ember.ENV.MANDATORY_SETTER,r=/^([A-Z$]|([0-9][A-Z$])).*[\.\*]/,i=/^this[\.\*]/,s=/^([^\.\*]+)/;t=function(r,i){if(i==="")return r;!i&&"string"==typeof r&&(i=r,r=null);if(!r||i.indexOf(".")!==-1)return a(r,i);var s=r[e],o=s&&s.descs[i],u;return o?o.get(r,i):(n&&s&&s.watching[i]>0?u=s.values[i]:u=r[i],u!==undefined||"object"!=typeof r||i in r||"function"!=typeof r.unknownProperty?u:r.unknownProperty(i))},Ember.config.overrideAccessors&&(Ember.get=t,Ember.config.overrideAccessors(),t=Ember.get);var a=Ember._getPath=function(e,n){var r,s,o,a,f;if(e===null&&n.indexOf(".")===-1)return t(Ember.lookup,n);r=i.test(n);if(!e||r)o=u(e,n),e=o[0],n=o[1],o.length=0;s=n.split("."),f=s.length;for(a=0;e&&a<f;a++){e=t(e,s[a],!0);if(e&&e.isDestroyed)return undefined}return e};Ember.normalizeTuple=function(e,t){return u(e,t)},Ember.getWithDefault=function(e,n,r){var i=t(e,n);return i===undefined?r:i},Ember.get=t,Ember.getPath=Ember.deprecateFunc("getPath is deprecated since get now supports paths",Ember.get)}(),function(){function r(e,t,n){var r=-1;for(var i=0,s=e.length;i<s;i++)if(t===e[i][0]&&n===e[i][1]){r=i;break}return r}function i(n,r){var i=t(n,!0),s;return i.listeners||(i.listeners={}),i.hasOwnProperty("listeners")||(i.listeners=e(i.listeners)),s=i.listeners[r],s&&!i.listeners.hasOwnProperty(r)?s=i.listeners[r]=i.listeners[r].slice():s||(s=i.listeners[r]=[]),s}function s(e,t,i){var s=e[n],o=s&&s.listeners&&s.listeners[t];if(!o)return;for(var u=o.length-1;u>=0;u--){var a=o[u][0],f=o[u][1],l=o[u][2],c=o[u][3],h=r(i,a,f);h===-1&&i.push([a,f,l,c])}}function o(e,t,i){var s=e[n],o=s&&s.listeners&&s.listeners[t],u=[];if(!o)return;for(var a=o.length-1;a>=0;a--){var f=o[a][0],l=o[a][1],c=o[a][2],h=o[a][3],p=r(i,f,l);if(p!==-1)continue;i.push([f,l,c,h]),u.push([f,l,c,h])}return u}function u(e,t,n,s,o){!s&&"function"==typeof n&&(s=n,n=null);var u=i(e,t),a=r(u,n,s);if(a!==-1)return;u.push([n,s,o,undefined]),"function"==typeof e.didAddListener&&e.didAddListener(t,n,s)}function a(e,t,s,o){function u(n,s,o){var u=i(e,t),a=r(u,n,s);if(a===-1)return;u.splice(a,1),"function"==typeof e.didRemoveListener&&e.didRemoveListener(t,n,s)}!o&&"function"==typeof s&&(o=s,s=null);if(o)u(s,o);else{var a=e[n],f=a&&a.listeners&&a.listeners[t];if(!f)return;for(var l=f.length-1;l>=0;l--)u(f[l][0],f[l][1])}}function f(e,t,n,s,o){function l(){return o.call(n)}function c(){f&&(f[3]=undefined)}!s&&"function"==typeof n&&(s=n,n=null);var u=i(e,t),a=r(u,n,s),f;return a!==-1&&(f=u[a].slice(),f[3]=!0,u[a]=f),Ember.tryFinally(l,c)}function l(e,t,n,s,o){function d(){return o.call(n)}function v(){for(c=0,h=u.length;c<h;c++)u[c][3]=undefined}!s&&"function"==typeof n&&(s=n,n=null);var u=[],a,f,l,c,h;for(c=0,h=t.length;c<h;c++){a=t[c],f=i(e,a);var p=r(f,n,s);p!==-1&&(l=f[p].slice(),l[3]=!0,f[p]=l,u.push(l))}return Ember.tryFinally(d,v)}function c(e){var t=e[n].listeners,r=[];if(t)for(var i in t)t[i]&&r.push(i);return r}function h(e,t,r,i){e!==Ember&&"function"==typeof e.sendEvent&&e.sendEvent(t,r);if(!i){var s=e[n];i=s&&s.listeners&&s.listeners[t]}if(!i)return;for(var o=i.length-1;o>=0;o--){if(!i[o]||i[o][3]===!0)continue;var u=i[o][0],f=i[o][1],l=i[o][2];l&&a(e,t,u,f),u||(u=e),"string"==typeof f&&(f=u[f]),r?f.apply(u,r):f.call(u)}return!0}function p(e,t){var r=e[n],i=r&&r.listeners&&r.listeners[t];return!!i&&!!i.length}function d(e,t){var r=[],i=e[n],s=i&&i.listeners&&i.listeners[t];if(!s)return r;for(var o=0,u=s.length;o<u;o++){var a=s[o][0],f=s[o][1];r.push([a,f])}return r}var e=Ember.create,t=Ember.meta,n=Ember.META_KEY;Ember.addListener=u,Ember.removeListener=a,Ember._suspendListener=f,Ember._suspendListeners=l,Ember.sendEvent=h,Ember.hasListeners=p,Ember.watchedEvents=c,Ember.listenersFor=d,Ember.listenersDiff=o,Ember.listenersUnion=s}(),function(){var e=Ember.guidFor,t=Ember.sendEvent,n=Ember._ObserverSet=function(){this.clear()};n.prototype.add=function(t,n,r){var i=this.observerSet,s=this.observers,o=e(t),u=i[o],a;return u||(i[o]=u={}),a=u[n],a===undefined&&(a=s.push({sender:t,keyName:n,eventName:r,listeners:[]})-1,u[n]=a),s[a].listeners},n.prototype.flush=function(){var e=this.observers,n,r,i,s;this.clear();for(n=0,r=e.length;n<r;++n){i=e[n],s=i.sender;if(s.isDestroying||s.isDestroyed)continue;t(s,i.eventName,[s,i.keyName],i.listeners)}},n.prototype.clear=function(){this.observerSet={},this.observers=[]}}(),function(){function d(e,t,n){if(e.isDestroying)return;var r=h,i=!r;i&&(r=h={}),m(l,e,t,r,n),i&&(h=null)}function v(e,t,n){if(e.isDestroying)return;var r=p,i=!r;i&&(r=p={}),m(c,e,t,r,n),i&&(p=null)}function m(e,n,r,i,s){var o=t(n);i[o]||(i[o]={});if(i[o][r])return;i[o][r]=!0;var u=s.deps;u=u&&u[r];if(u)for(var a in u){var f=s.descs[a];if(f&&f._suspended===n)continue;e(n,a)}}var e=Ember.meta,t=Ember.guidFor,n=Ember.tryFinally,r=Ember.sendEvent,i=Ember.listenersUnion,s=Ember.listenersDiff,o=Ember._ObserverSet,u=new o,a=new o,f=0,l=Ember.propertyWillChange=function(t,n){var r=e(t,!1),i=r.watching[n]>0||n==="length",s=r.proto,o=r.descs[n];if(!i)return;if(s===t)return;o&&o.willChange&&o.willChange(t,n),d(t,n,r),g(t,n,r),S(t,n)},c=Ember.propertyDidChange=function(t,n){var r=e(t,!1),i=r.watching[n]>0||n==="length",s=r.proto,o=r.descs[n];if(s===t)return;o&&o.didChange&&o.didChange(t,n);if(!i&&n!=="length")return;v(t,n,r),y(t,n,r),x(t,n)},h,p,g=function(e,t,n,r){if(!n.hasOwnProperty("chainWatchers"))return;var i=n.chainWatchers;i=i[t];if(!i)return;for(var s=0,o=i.length;s<o;s++)i[s].willChange(r)},y=function(e,t,n,r){if(!n.hasOwnProperty("chainWatchers"))return;var i=n.chainWatchers;i=i[t];if(!i)return;for(var s=i.length-1;s>=0;s--)i[s].didChange(r)};Ember.overrideChains=function(e,t,n){y(e,t,n,!0)};var b=Ember.beginPropertyChanges=function(){f++},w=Ember.endPropertyChanges=function(){f--,f<=0&&(u.clear(),a.flush())},E=Ember.changeProperties=function(e,t){b(),n(e,w,t)},S=function(e,t){if(e.isDestroying)return;var n=t+":before",i,o;f?(i=u.add(e,t,n),o=s(e,n,i),r(e,n,[e,t],o)):r(e,n,[e,t])},x=function(e,t){if(e.isDestroying)return;var n=t+":change",s;f?(s=a.add(e,t,n),i(e,n,s)):r(e,n,[e,t])}}(),function(){function u(e,t,n,r){var i;i=t.slice(t.lastIndexOf(".")+1),t=t.slice(0,t.length-(i.length+1)),t!=="this"&&(e=s(e,t));if(!i||i.length===0)throw new Error("You passed an empty path");if(!e){if(r)return;throw new Error("Object in path "+t+" could not be found or was destroyed.")}return o(e,i,n)}var e=Ember.META_KEY,t=Ember.ENV.MANDATORY_SETTER,n=/^([A-Z$]|([0-9][A-Z$]))/,r=Ember.propertyWillChange,i=Ember.propertyDidChange,s=Ember._getPath,o=function(r,i,s,o){typeof r=="string"&&(s=i,i=r,r=null);if(!r||i.indexOf(".")!==-1)return u(r,i,s,o);var a=r[e],f=a&&a.descs[i],l,c;return f?f.set(r,i,s):(l="object"==typeof r&&!(i in r),l&&"function"==typeof r.setUnknownProperty?r.setUnknownProperty(i,s):a&&a.watching[i]>0?(t?c=a.values[i]:c=r[i],s!==c&&(Ember.propertyWillChange(r,i),t?c!==undefined||i in r?a.values[i]=s:Ember.defineProperty(r,i,null,s):r[i]=s,Ember.propertyDidChange(r,i))):r[i]=s),s};Ember.config.overrideAccessors&&(Ember.set=o,Ember.config.overrideAccessors(),o=Ember.set),Ember.set=o,Ember.setPath=Ember.deprecateFunc("setPath is deprecated since set now supports paths",Ember.set),Ember.trySet=function(e,t,n){return o(e,t,n,!0)},Ember.trySetPath=Ember.deprecateFunc("trySetPath has been renamed to trySet",Ember.trySet)}(),function(){var e=Ember.META_KEY,t=Ember.meta,n=Ember.platform.defineProperty,r=Ember.ENV.MANDATORY_SETTER,i=Ember.Descriptor=function(){},s=Ember.MANDATORY_SETTER_FUNCTION=function(e){},o=Ember.DEFAULT_GETTER_FUNCTION=function(t){return function(){var n=this[e];return n&&n.values[t]}};Ember.defineProperty=function(e,i,u,a,f){var l,c,h,p;return f||(f=t(e)),l=f.descs,c=f.descs[i],h=f.watching[i]>0,c instanceof Ember.Descriptor&&c.teardown(e,i),u instanceof Ember.Descriptor?(p=u,l[i]=u,r&&h?n(e,i,{configurable:!0,enumerable:!0,writable:!0,value:undefined}):e[i]=undefined,u.setup(e,i)):(l[i]=undefined,u==null?(p=a,r&&h?(f.values[i]=a,n(e,i,{configurable:!0,enumerable:!0,set:s,get:o(i)})):e[i]=a):(p=u,n(e,i,u))),h&&Ember.overrideChains(e,i,f),e.didDefineProperty&&e.didDefineProperty(e,i,p),this}}(),function(){var e=Ember.changeProperties,t=Ember.set;Ember.setProperties=function(n,r){return e(function(){for(var e in r)r.hasOwnProperty(e)&&t(n,e,r[e])}),n}}(),function(){var e=Ember.meta,t=Ember.typeOf,n=Ember.ENV.MANDATORY_SETTER,r=Ember.platform.defineProperty;Ember.watchKey=function(i,s){if(s==="length"&&t(i)==="array")return;var o=e(i),u=o.watching,a;u[s]?u[s]=(u[s]||0)+1:(u[s]=1,a=o.descs[s],a&&a.willWatch&&a.willWatch(i,s),"function"==typeof i.willWatchProperty&&i.willWatchProperty(s),n&&s in i&&(o.values[s]=i[s],r(i,s,{configurable:!0,enumerable:!0,set:Ember.MANDATORY_SETTER_FUNCTION,get:Ember.DEFAULT_GETTER_FUNCTION(s)})))},Ember.unwatchKey=function(t,i){var s=e(t),o=s.watching,u;o[i]===1?(o[i]=0,u=s.descs[i],u&&u.didUnwatch&&u.didUnwatch(t,i),"function"==typeof t.didUnwatchProperty&&t.didUnwatchProperty(i),n&&i in t&&(r(t,i,{configurable:!0,enumerable:!0,writable:!0,value:s.values[i]}),delete s.values[i])):o[i]>1&&o[i]--}}(),function(){function l(e){return e.match(f)[0]}function h(t,n,r){if(!t||"object"!=typeof t)return;var i=e(t),o=i.chainWatchers;i.hasOwnProperty("chainWatchers")||(o=i.chainWatchers={}),o[n]||(o[n]=[]),o[n].push(r),s(t,n)}function d(t){return e(t,!1).proto===t}var e=Ember.meta,t=Ember.get,n=Ember.normalizeTuple,r=Ember.ArrayPolyfills.forEach,i=Ember.warn,s=Ember.watchKey,o=Ember.unwatchKey,u=Ember.propertyWillChange,a=Ember.propertyDidChange,f=/^([^\.\*]+)/,c=[];Ember.flushPendingChains=function(){if(c.length===0)return;var e=c;c=[],r.call(e,function(e){e[0].add(e[1])}),i("Watching an undefined global, Ember expects watched globals to be setup by the time the run loop is flushed, check for typos",c.length===0)};var p=Ember.removeChainWatcher=function(t,n,r){if(!t||"object"!=typeof t)return;var i=e(t,!1);if(!i.hasOwnProperty("chainWatchers"))return;var s=i.chainWatchers;if(s[n]){s=s[n];for(var u=0,a=s.length;u<a;u++)s[u]===r&&s.splice(u,1)}o(t,n)},v=Ember._ChainNode=function(e,t,n){var r;this._parent=e,this._key=t,this._watching=n===undefined,this._value=n,this._paths={},this._watching&&(this._object=e.value(),this._object&&h(this._object,this._key,this)),this._parent&&this._parent._key==="@each"&&this.value()},m=v.prototype;m.value=function(){if(this._value===undefined&&this._watching){var e=this._parent.value();this._value=e&&!d(e)?t(e,this._key):undefined}return this._value},m.destroy=function(){if(this._watching){var e=this._object;e&&p(e,this._key,this),this._watching=!1}},m.copy=function(e){var t=new v(null,null,e),n=this._paths,r;for(r in n){if(n[r]<=0)continue;t.add(r)}return t},m.add=function(e){var t,r,i,s,o;o=this._paths,o[e]=(o[e]||0)+1,t=this.value(),r=n(t,e);if(r[0]&&r[0]===t)e=r[1],i=l(e),e=e.slice(i.length+1);else{if(!r[0]){c.push([this,e]),r.length=0;return}s=r[0],i=e.slice(0,0-(r[1].length+1)),e=r[1]}r.length=0,this.chain(i,e,s)},m.remove=function(e){var t,r,i,s,o;o=this._paths,o[e]>0&&o[e]--,t=this.value(),r=n(t,e),r[0]===t?(e=r[1],i=l(e),e=e.slice(i.length+1)):(s=r[0],i=e.slice(0,0-(r[1].length+1)),e=r[1]),r.length=0,this.unchain(i,e)},m.count=0,m.chain=function(e,t,n){var r=this._chains,i;r||(r=this._chains={}),i=r[e],i||(i=r[e]=new v(this,e,n)),i.count++,t&&t.length>0&&(e=l(t),t=t.slice(e.length+1),i.chain(e,t))},m.unchain=function(e,t){var n=this._chains,r=n[e];t&&t.length>1&&(e=l(t),t=t.slice(e.length+1),r.unchain(e,t)),r.count--,r.count<=0&&(delete n[r._key],r.destroy())},m.willChange=function(){var e=this._chains;if(e)for(var t in e){if(!e.hasOwnProperty(t))continue;e[t].willChange()}this._parent&&this._parent.chainWillChange(this,this._key,1)},m.chainWillChange=function(e,t,n){this._key&&(t=this._key+"."+t),this._parent?this._parent.chainWillChange(this,t,n+1):(n>1&&u(this.value(),t),t="this."+t,this._paths[t]>0&&u(this.value(),t))},m.chainDidChange=function(e,t,n){this._key&&(t=this._key+"."+t),this._parent?this._parent.chainDidChange(this,t,n+1):(n>1&&a(this.value(),t),t="this."+t,this._paths[t]>0&&a(this.value(),t))},m.didChange=function(e){if(this._watching){var t=this._parent.value();t!==this._object&&(p(this._object,this._key,this),this._object=t,h(t,this._key,this)),this._value=undefined,this._parent&&this._parent._key==="@each"&&this.value()}var n=this._chains;if(n)for(var r in n){if(!n.hasOwnProperty(r))continue;n[r].didChange(e)}if(e)return;this._parent&&this._parent.chainDidChange(this,this._key,1)},Ember.finishChains=function(t){var n=e(t,!1),r=n.chains;r&&(r.value()!==t&&(n.chains=r=r.copy(t)),r.didChange(!0))}}(),function(){function r(t){var r=e(t),i=r.chains;return i?i.value()!==t&&(i=r.chains=i.copy(t)):i=r.chains=new n(null,null,t),i}var e=Ember.meta,t=Ember.typeOf,n=Ember._ChainNode;Ember.watchPath=function(n,i){if(i==="length"&&t(n)==="array")return;var s=e(n),o=s.watching;o[i]?o[i]=(o[i]||0)+1:(o[i]=1,r(n).add(i))},Ember.unwatchPath=function(t,n){var i=e(t),s=i.watching,o;s[n]===1?(s[n]=0,r(t).remove(n)):s[n]>1&&s[n]--}}(),function(){function c(e){return e==="*"||!l.test(e)}var e=Ember.meta,t=Ember.GUID_KEY,n=Ember.META_KEY,r=Ember.removeChainWatcher,i=Ember.watchKey,s=Ember.unwatchKey,o=Ember.watchPath,u=Ember.unwatchPath,a=Ember.typeOf,f=Ember.generateGuid,l=/[\.\*]/;Ember.watch=function(e,t){if(t==="length"&&a(e)==="array")return;c(t)?i(e,t):o(e,t)},Ember.isWatching=function(t,r){var i=t[n];return(i&&i.watching[r])>0},Ember.watch.flushPending=Ember.flushPendingChains,Ember.unwatch=function(e,t){if(t==="length"&&a(e)==="array")return;c(t)?s(e,t):u(e,t)},Ember.rewatch=function(n){var r=e(n,!1),i=r.chains;t in n&&!n.hasOwnProperty(t)&&f(n,"ember"),i&&i.value()!==n&&(r.chains=i.copy(n))};var h=[];Ember.destroy=function(e){var t=e[n],i,s,o,u;if(t){e[n]=null,i=t.chains;if(i){h.push(i);while(h.length>0){i=h.pop(),s=i._chains;if(s)for(o in s)s.hasOwnProperty(o)&&h.push(s[o]);i._watching&&(u=i._object,u&&r(u,i._key,i))}}}}}(),function(){function a(e,t,n){var r=t[n];return r?t.hasOwnProperty(n)||(r=t[n]=i(r)):r=t[n]={},r}function f(e,t){return a(e,t,"deps")}function l(e,t,n,r){var i=e._dependentKeys,s,u,l,c,h;if(!i)return;s=f(t,r);for(u=0,l=i.length;u<l;u++)c=i[u],h=a(t,s,c),h[n]=(h[n]||0)+1,o(t,c)}function c(e,t,n,r){var i=e._dependentKeys,s,o,l,c,h;if(!i)return;s=f(t,r);for(o=0,l=i.length;o<l;o++)c=i[o],h=a(t,s,c),h[n]=(h[n]||0)-1,u(t,c)}function h(e,t){this.func=e,this._cacheable=t&&t.cacheable!==undefined?t.cacheable:!0,this._dependentKeys=t&&t.dependentKeys,this._readOnly=t&&(t.readOnly!==undefined||!!t.readOnly)}function d(t,n){var r={};for(var i=0;i<n.length;i++)r[n[i]]=e(t,n[i]);return r}function v(e,t){Ember.computed[e]=function(e){var n=r.call(arguments);return Ember.computed(e,function(){return t.apply(this,n)})}}function m(e,t){Ember.computed[e]=function(){var e=r.call(arguments),n=Ember.computed(function(){return t.apply(this,[d(this,e)])});return n.property.apply(n,e)}}var e=Ember.get,t=Ember.set,n=Ember.meta,r=[].slice,i=Ember.create,s=Ember.META_KEY,o=Ember.watch,u=Ember.unwatch;Ember.ComputedProperty=h,h.prototype=new Ember.Descriptor;var p=h.prototype;p.cacheable=function(e){return this._cacheable=e!==!1,this},p.volatile=function(){return this.cacheable(!1)},p.readOnly=function(e){return this._readOnly=e===undefined||!!e,this},p.property=function(){var e=[];for(var t=0,n=arguments.length;t<n;t++)e.push(arguments[t]);return this._dependentKeys=e,this},p.meta=function(e){return arguments.length===0?this._meta||{}:(this._meta=e,this)},p.willWatch=function(e,t){var n=e[s];t in n.cache||l(this,e,t,n)},p.didUnwatch=function(e,t){var n=e[s];t in n.cache||c(this,e,t,n)},p.didChange=function(e,t){if(this._cacheable&&this._suspended!==e){var r=n(e);t in r.cache&&(delete r.cache[t],r.watching[t]||c(this,e,t,r))}},p.get=function(e,t){var r,i,s;if(this._cacheable){s=n(e),i=s.cache;if(t in i)return i[t];r=i[t]=this.func.call(e,t),s.watching[t]||l(this,e,t,s)}else r=this.func.call(e,t);return r},p.set=function(e,t,r){var i=this._cacheable,s=this.func,o=n(e,i),u=o.watching[t],a=this._suspended,f=!1,c=o.cache,h,p;if(this._readOnly)throw new Error("Cannot Set: "+t+" on: "+e.toString());this._suspended=e;try{i&&c.hasOwnProperty(t)&&(h=c[t],f=!0),s.wrappedFunction&&(s=s.wrappedFunction);if(s.length===3)p=s.call(e,t,r,h);else{if(s.length!==2){Ember.defineProperty(e,t,null,h),Ember.set(e,t,r);return}p=s.call(e,t,r)}if(f&&h===p)return;u&&Ember.propertyWillChange(e,t),f&&delete c[t],i&&(!u&&!f&&l(this,e,t,o),c[t]=p),u&&Ember.propertyDidChange(e,t)}finally{this._suspended=a}return p},p.setup=function(e,t){var r=e[s];r&&r.watching[t]&&l(this,e,t,n(e))},p.teardown=function(e,t){var r=n(e);return(r.watching[t]||t in r.cache)&&c(this,e,t,r),this._cacheable&&delete r.cache[t],null},Ember.computed=function(e){var t;arguments.length>1&&(t=r.call(arguments,0,-1),e=r.call(arguments,-1)[0]);if(typeof e!="function")throw new Error("Computed Property declared without a property function");var n=new h(e);return t&&n.property.apply(n,t),n},Ember.cacheFor=function(t,r){var i=n(t,!1).cache;if(i&&r in i)return i[r]},v("empty",function(t){return Ember.isEmpty(e(this,t))}),v("notEmpty",function(t){return!Ember.isEmpty(e(this,t))}),v("none",function(t){return Ember.isNone(e(this,t))}),v("not",function(t){return!e(this,t)}),v("bool",function(t){return!!e(this,t)}),v("match",function(t,n){var r=e(this,t);return typeof r=="string"?!!r.match(n):!1}),v("equal",function(t,n){return e(this,t)===n}),v("gt",function(t,n){return e(this,t)>n}),v("gte",function(t,n){return e(this,t)>=n}),v("lt",function(t,n){return e(this,t)<n}),v("lte",function(t,n){return e(this,t)<=n}),m("and",function(e){for(var t in e)if(e.hasOwnProperty(t)&&!e[t])return!1;return!0}),m("or",function(e){for(var t in e)if(e.hasOwnProperty(t)&&e[t])return!0;return!1}),m("any",function(e){for(var t in e)if(e.hasOwnProperty(t)&&e[t])return e[t];return null}),m("map",function(e){var t=[];for(var n in e)e.hasOwnProperty(n)&&(Ember.isNone(e[n])?t.push(null):t.push(e[n]));return t}),Ember.computed.alias=function(n){return Ember.computed(n,function(r,i){return arguments.length>1?(t(this,n,i),i):e(this,n)})},Ember.computed.defaultTo=function(t){return Ember.computed(function(n,r,i){var s;return arguments.length===1?i!=null?i:e(this,t):r!=null?r:e(this,t)})}}(),function(){function r(t){return t+e}function i(e){return e+t}var e=":change",t=":before",n=Ember.guidFor;Ember.addObserver=function(e,t,n,i){return Ember.addListener(e,r(t),n,i),Ember.watch(e,t),this},Ember.observersFor=function(e,t){return Ember.listenersFor(e,r(t))},Ember.removeObserver=function(e,t,n,i){return Ember.unwatch(e,t),Ember.removeListener(e,r(t),n,i),this},Ember.addBeforeObserver=function(e,t,n,r){return Ember.addListener(e,i(t),n,r),Ember.watch(e,t),this},Ember._suspendBeforeObserver=function(e,t,n,r,s){return Ember._suspendListener(e,i(t),n,r,s)},Ember._suspendObserver=function(e,t,n,i,s){return Ember._suspendListener(e,r(t),n,i,s)};var s=Ember.ArrayPolyfills.map;Ember._suspendBeforeObservers=function(e,t,n,r,o){var u=s.call(t,i);return Ember._suspendListeners(e,u,n,r,o)},Ember._suspendObservers=function(e,t,n,i,o){var u=s.call(t,r);return Ember._suspendListeners(e,u,n,i,o)},Ember.beforeObserversFor=function(e,t){return Ember.listenersFor(e,i(t))},Ember.removeBeforeObserver=function(e,t,n,r){return Ember.unwatch(e,t),Ember.removeListener(e,i(t),n,r),this}}(),function(){function n(t,n,r,i){return n===undefined&&(n=t,t=undefined),"string"==typeof n&&(n=t[n]),r&&i>0&&(r=r.length>i?e.call(r,i):null),Ember.handleErrors(function(){return n.apply(t||this,r||[])},this)}function u(){o=null,s.currentRunLoop&&s.end()}function c(){f=null,s(function(){var e=+(new Date),t=-1;for(var r in a){if(!a.hasOwnProperty(r))continue;var i=a[r];if(i&&i.expires)if(e>=i.expires)delete a[r],n(i.target,i.method,i.args,2);else if(t<0||i.expires<t)t=i.expires}t>0&&(f=setTimeout(c,t-e),l=t)})}function h(e,t){t[this.tguid]&&delete t[this.tguid][this.mguid],a[e]&&n(this.target,this.method,this.args),delete a[e]}function p(e,t,n,r){var i=Ember.guidFor(t),o=Ember.guidFor(n),u=s.autorun().onceTimers,f=u[i]&&u[i][o],l;return f&&a[f]?a[f].args=r:(l={target:t,method:n,args:r,tguid:i,mguid:o},f=Ember.guidFor(l),a[f]=l,u[i]||(u[i]={}),u[i][o]=f,s.schedule(e,l,h,f,u)),f}var e=[].slice,t=Ember.ArrayPolyfills
16
- .forEach,r,i=function(e){this._prev=e||null,this.onceTimers={}};i.prototype={end:function(){this.flush()},prev:function(){return this._prev},schedule:function(t,n,r){var i=this._queues,s;i||(i=this._queues={}),s=i[t],s||(s=i[t]=[]);var o=arguments.length>3?e.call(arguments,3):null;return s.push({target:n,method:r,args:o}),this},flush:function(e){function f(e){n(e.target,e.method,e.args)}function l(){t.call(u,f)}var i,s,o,u,a;if(!this._queues)return this;Ember.watch.flushPending();if(e)while(this._queues&&(u=this._queues[e]))this._queues[e]=null,e==="sync"?(a=Ember.LOG_BINDINGS,a&&Ember.Logger.log("Begin: Flush Sync Queue"),Ember.beginPropertyChanges(),Ember.tryFinally(l,Ember.endPropertyChanges),a&&Ember.Logger.log("End: Flush Sync Queue")):t.call(u,f);else{i=Ember.run.queues,o=i.length,s=0;e:while(s<o){e=i[s],u=this._queues&&this._queues[e],delete this._queues[e],u&&(e==="sync"?(a=Ember.LOG_BINDINGS,a&&Ember.Logger.log("Begin: Flush Sync Queue"),Ember.beginPropertyChanges(),Ember.tryFinally(l,Ember.endPropertyChanges),a&&Ember.Logger.log("End: Flush Sync Queue")):t.call(u,f));for(var c=0;c<=s;c++)if(this._queues&&this._queues[i[c]]){s=c;continue e}s++}}return r=null,this}},Ember.RunLoop=i,Ember.run=function(e,t){function i(){if(e||t)return n(e,t,r,2)}var r=arguments;return s.begin(),Ember.tryFinally(i,s.end)};var s=Ember.run;Ember.run.begin=function(){s.currentRunLoop=new i(s.currentRunLoop)},Ember.run.end=function(){function e(){s.currentRunLoop.end()}function t(){s.currentRunLoop=s.currentRunLoop.prev()}Ember.tryFinally(e,t)},Ember.run.queues=["sync","actions","destroy"],Ember.run.schedule=function(e,t,n){var r=s.autorun();r.schedule.apply(r,arguments)};var o;Ember.run.hasScheduledTimers=function(){return!!o||!!f},Ember.run.cancelTimers=function(){o&&(clearTimeout(o),o=null),f&&(clearTimeout(f),f=null),a={}},Ember.run.autorun=function(){return s.currentRunLoop||(s.begin(),o||(o=setTimeout(u,1))),s.currentRunLoop},Ember.run.sync=function(){s.autorun(),s.currentRunLoop.flush("sync")};var a={},f,l;Ember.run.later=function(t,n){var r,i,s,o,u;return arguments.length===2&&"function"==typeof t?(u=n,n=t,t=undefined,r=[t,n]):(r=e.call(arguments),u=r.pop()),i=+(new Date)+u,s={target:t,method:n,expires:i,args:r},o=Ember.guidFor(s),a[o]=s,f&&i<l&&(clearTimeout(f),f=null),f||(f=setTimeout(c,u),l=i),o},Ember.run.once=function(t,n){return p("actions",t,n,e.call(arguments,2))},Ember.run.scheduleOnce=function(t,n,r,i){return p(t,n,r,e.call(arguments,3))},Ember.run.next=function(){var t=e.call(arguments);return t.push(1),s.later.apply(this,t)},Ember.run.cancel=function(e){delete a[e]}}(),function(){function s(t,n){return e(i(n)?Ember.lookup:t,n)}function u(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])}Ember.LOG_BINDINGS=!!Ember.ENV.LOG_BINDINGS;var e=Ember.get,t=Ember.set,n=Ember.guidFor,r=/^([A-Z$]|([0-9][A-Z$]))/,i=Ember.isGlobalPath=function(e){return r.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(e){var t=this._from,n=this._to;return Ember.trySet(e,n,s(e,t)),Ember.addObserver(e,t,this,this.fromDidChange),this._oneWay||Ember.addObserver(e,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 n=this._directionMap,r=n.get(e);r||(Ember.run.schedule("sync",this,this._sync,e),n.set(e,t)),r==="back"&&t==="fwd"&&n.set(e,"fwd")},_sync:function(t){var n=Ember.LOG_BINDINGS;if(t.isDestroyed||!this._readyToSync)return;var r=this._directionMap,i=r.get(t),o=this._from,u=this._to;r.remove(t);if(i==="fwd"){var a=s(t,this._from);n&&Ember.Logger.log(" ",this.toString(),"->",a,t),this._oneWay?Ember.trySet(t,u,a):Ember._suspendObserver(t,u,this,this.toDidChange,function(){Ember.trySet(t,u,a)})}else if(i==="back"){var f=e(t,this._to);n&&Ember.Logger.log(" ",this.toString(),"<-",f,t),Ember._suspendObserver(t,o,this,this.fromDidChange,function(){Ember.trySet(Ember.isGlobalPath(o)?Ember.lookup:t,o,f)})}}},u(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 n=this,r=new n(null,e);return r.oneWay(t)}}),Ember.Binding=o,Ember.bind=function(e,t,n){return(new Ember.Binding(t,n)).connect(e)},Ember.oneWay=function(e,t,n){return(new Ember.Binding(t,n)).oneWay().connect(e)}}(),function(){function l(e){var t=Ember.meta(e,!0),n=t.mixins;return n?t.hasOwnProperty("mixins")||(n=t.mixins=u(n)):n=t.mixins={},n}function c(t,n){return n&&n.length>0&&(t.mixins=r.call(n,function(t){if(t instanceof e)return t;var n=new e;return n.properties=t,n})),t}function h(e){return"function"==typeof e&&e.isMethod!==!1&&e!==Boolean&&e!==Object&&e!==Number&&e!==Array&&e!==Date&&e!==String}function d(t,n){var r;return n instanceof e?(r=f(n),t[r]?p:(t[r]=n,n.properties)):n}function v(e,t,n){var r;return r=t.concatenatedProperties||n.concatenatedProperties,e.concatenatedProperties&&(r=r?r.concat(e.concatenatedProperties):e.concatenatedProperties),r}function m(e,t,n,r,i){var s;return r[t]===undefined&&(s=i[t]),s=s||e.descs[t],!!s&&s instanceof Ember.ComputedProperty?(n=u(n),n.func=Ember.wrap(n.func,s.func),n):n}function g(e,t,n,r,i){var s;return i[t]===undefined&&(s=r[t]),s=s||e[t],"function"!=typeof s?n:Ember.wrap(n,s)}function y(e,t,n,r){var i=r[t]||e[t];return i?"function"==typeof i.concat?i.concat(n):Ember.makeArray(i).concat(n):Ember.makeArray(n)}function b(e,n,r,s,o,u,a){if(r instanceof Ember.Descriptor){if(r===t&&o[n])return p;r.func&&(r=m(s,n,r,u,o)),o[n]=r,u[n]=undefined}else{if(h(r))r=g(e,n,r,u,o);else if(a&&i.call(a,n)>=0||n==="concatenatedProperties")r=y(e,n,r,u);o[n]=undefined,u[n]=r}}function w(e,t,n,r,i,o){function h(e){delete n[e],delete r[e]}var u,a,f,l,c;for(var m=0,g=e.length;m<g;m++){u=e[m],a=d(t,u);if(a===p)continue;if(a){c=Ember.meta(i),l=v(a,r,i);for(f in a){if(!a.hasOwnProperty(f))continue;o.push(f),b(i,f,a[f],c,n,r,l)}a.hasOwnProperty("toString")&&(i.toString=a.toString)}else u.mixins&&(w(u.mixins,t,n,r,i,o),u._without&&s.call(u._without,h))}}function E(e){var t=Ember.meta(e),n=t.required;if(!n||!t.hasOwnProperty("required"))n=t.required=n?u(n):{};return n}function x(e,t,n,r){if(S.test(t)){var i=r.bindings;i?r.hasOwnProperty("bindings")||(i=r.bindings=u(r.bindings)):i=r.bindings={},i[t]=n}}function T(e,t){var n=t.bindings,r,i,s;if(n){for(r in n)i=n[r],i&&(s=r.slice(0,-7),i instanceof Ember.Binding?(i=i.copy(),i.to(s)):i=new Ember.Binding(s,i),i.connect(e),e[r]=i);t.bindings={}}}function N(e,t){return T(e,t||Ember.meta(e)),e}function C(e,t,n,r,i){var s=t.methodName,o;return r[s]||i[s]?(o=i[s],t=r[s]):n.descs[s]?(t=n.descs[s],o=undefined):(t=undefined,o=e[s]),{desc:t,value:o}}function k(e,t,n,r,i){if("function"!=typeof n)return;var s=n[r];if(s)for(var o=0,u=s.length;o<u;o++)Ember[i](e,s[o],null,t)}function L(e,t,n){var r=e[t];k(e,t,r,"__ember_observesBefore__","removeBeforeObserver"),k(e,t,r,"__ember_observes__","removeObserver"),k(e,t,n,"__ember_observesBefore__","addBeforeObserver"),k(e,t,n,"__ember_observes__","addObserver")}function A(e,r,i){var s={},o={},u=Ember.meta(e),f,c,h,p=[];w(r,l(e),s,o,e,p);for(var d=0,v=p.length;d<v;d++){f=p[d];if(f==="constructor"||!o.hasOwnProperty(f))continue;h=s[f],c=o[f];if(h===t)continue;while(h&&h instanceof n){var m=C(e,h,u,s,o);h=m.desc,c=m.value}if(h===undefined&&c===undefined)continue;L(e,f,c),x(e,f,c,u),a(e,f,h,c,u)}return i||N(e,u),e}function M(e,t,n){var r=f(e);if(n[r])return!1;n[r]=!0;if(e===t)return!0;var i=e.mixins,s=i?i.length:0;while(--s>=0)if(M(i[s],t,n))return!0;return!1}function _(e,t,n){if(n[f(t)])return;n[f(t)]=!0;if(t.properties){var r=t.properties;for(var i in r)r.hasOwnProperty(i)&&(e[i]=!0)}else t.mixins&&s.call(t.mixins,function(t){_(e,t,n)})}var e,t,n,r=Ember.ArrayPolyfills.map,i=Ember.ArrayPolyfills.indexOf,s=Ember.ArrayPolyfills.forEach,o=[].slice,u=Ember.create,a=Ember.defineProperty,f=Ember.guidFor,p={},S=Ember.IS_BINDING=/^.+Binding$/;Ember.mixin=function(e){var t=o.call(arguments,1);return A(e,t,!1),e},Ember.Mixin=function(){return c(this,arguments)},e=Ember.Mixin,e.prototype={properties:null,mixins:null,ownerConstructor:null},e._apply=A,e.applyPartial=function(e){var t=o.call(arguments,1);return A(e,t,!0)},e.finishPartial=N,Ember.anyUnprocessedMixins=!1,e.create=function(){Ember.anyUnprocessedMixins=!0;var e=this;return c(new e,arguments)};var O=e.prototype;O.reopen=function(){var t,n;this.properties?(t=e.create(),t.properties=this.properties,delete this.properties,this.mixins=[t]):this.mixins||(this.mixins=[]);var r=arguments.length,i=this.mixins,s;for(s=0;s<r;s++)t=arguments[s],t instanceof e?i.push(t):(n=e.create(),n.properties=t,i.push(n));return this},O.apply=function(e){return A(e,[this],!1)},O.applyPartial=function(e){return A(e,[this],!0)},O.detect=function(t){if(!t)return!1;if(t instanceof e)return M(t,this,{});var n=Ember.meta(t,!1).mixins;return n?!!n[f(this)]:!1},O.without=function(){var t=new e(this);return t._without=o.call(arguments),t},O.keys=function(){var e={},t={},n=[];_(e,this,t);for(var r in e)e.hasOwnProperty(r)&&n.push(r);return n},e.mixins=function(e){var t=Ember.meta(e,!1).mixins,n=[];if(!t)return n;for(var r in t){var i=t[r];i.properties||n.push(i)}return n},t=new Ember.Descriptor,t.toString=function(){return"(Required Property)"},Ember.required=function(){return t},n=function(e){this.methodName=e},n.prototype=new Ember.Descriptor,Ember.alias=function(e){return new n(e)},Ember.deprecateFunc("Ember.alias is deprecated. Please use Ember.aliasMethod or Ember.computed.alias instead.",Ember.alias),Ember.aliasMethod=function(e){return new n(e)},Ember.observer=function(e){var t=o.call(arguments,1);return e.__ember_observes__=t,e},Ember.immediateObserver=function(){for(var e=0,t=arguments.length;e<t;e++)var n=arguments[e];return Ember.observer.apply(this,arguments)},Ember.beforeObserver=function(e){var t=o.call(arguments,1);return e.__ember_observesBefore__=t,e}}(),function(){}(),function(){e("rsvp",[],function(){"use strict";function d(e,t){n.async(function(){e.trigger("promise:resolved",{detail:t}),e.isResolved=!0,e.resolvedValue=t})}function v(e,t){n.async(function(){e.trigger("promise:failed",{detail:t}),e.isRejected=!0,e.rejectedValue=t})}function m(e){var t,n=[],r=new c,i=e.length;i===0&&r.resolve([]);var s=function(e){return function(t){o(e,t)}},o=function(e,t){n[e]=t,--i===0&&r.resolve(n)},u=function(e){r.reject(e)};for(t=0;t<i;t++)e[t].then(s(t),u);return r}var e=typeof window!="undefined"?window:{},t=e.MutationObserver||e.WebKitMutationObserver,n,r;if(typeof process!="undefined"&&{}.toString.call(process)==="[object process]")r=function(e,t){process.nextTick(function(){e.call(t)})};else if(t){var i=[],s=new t(function(){var e=i.slice();i=[],e.forEach(function(e){var t=e[0],n=e[1];t.call(n)})}),o=document.createElement("div");s.observe(o,{attributes:!0}),window.addEventListener("unload",function(){s.disconnect(),s=null}),r=function(e,t){i.push([e,t]),o.setAttribute("drainQueue","drainQueue")}}else r=function(e,t){setTimeout(function(){e.call(t)},1)};var u=function(e,t){this.type=e;for(var n in t){if(!t.hasOwnProperty(n))continue;this[n]=t[n]}},a=function(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n][0]===t)return n;return-1},f=function(e){var t=e._promiseCallbacks;return t||(t=e._promiseCallbacks={}),t},l={mixin:function(e){return e.on=this.on,e.off=this.off,e.trigger=this.trigger,e},on:function(e,t,n){var r=f(this),i,s;e=e.split(/\s+/),n=n||this;while(s=e.shift())i=r[s],i||(i=r[s]=[]),a(i,t)===-1&&i.push([t,n])},off:function(e,t){var n=f(this),r,i,s;e=e.split(/\s+/);while(i=e.shift()){if(!t){n[i]=[];continue}r=n[i],s=a(r,t),s!==-1&&r.splice(s,1)}},trigger:function(e,t){var n=f(this),r,i,s,o,a;if(r=n[e])for(var l=0;l<r.length;l++)i=r[l],s=i[0],o=i[1],typeof t!="object"&&(t={detail:t}),a=new u(e,t),s.call(o,a)}},c=function(){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)},h=function(){},p=function(e,t,n,r){var i=typeof n=="function",s,o,u,a;if(i)try{s=n(r.detail),u=!0}catch(f){a=!0,o=f}else s=r.detail,u=!0;s&&typeof s.then=="function"?s.then(function(e){t.resolve(e)},function(e){t.reject(e)}):i&&u?t.resolve(s):a?t.reject(o):t[e](s)};return c.prototype={then:function(e,t){var r=new c;return this.isResolved&&n.async(function(){p("resolve",r,e,{detail:this.resolvedValue})},this),this.isRejected&&n.async(function(){p("reject",r,t,{detail:this.rejectedValue})},this),this.on("promise:resolved",function(t){p("resolve",r,e,t)}),this.on("promise:failed",function(e){p("reject",r,t,e)}),r},resolve:function(e){d(this,e),this.resolve=h,this.reject=h},reject:function(e){v(this,e),this.resolve=h,this.reject=h}},l.mixin(c.prototype),n={async:r,Promise:c,Event:u,EventTarget:l,all:m,raiseOnUncaughtExceptions:!0},n})}(),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 n(e){throw new Error(e+" is not currently supported on child containers")}function r(e,t){var n=s(e,t,"singleton");return n!==!1}function i(e,t){var n={};if(!t)return n;var r,i;for(var s=0,o=t.length;s<o;s++)r=t[s],i=e.lookup(r.fullName),n[r.property]=i;return n}function s(e,t,n){var r=e._options.get(t);if(r&&r[n]!==undefined)return r[n];var i=t.split(":")[0];r=e._typeOptions.get(i);if(r)return r[n]}function o(e,t){var n=e.normalize(t);return e.resolve(n)}function u(e,t){var n=o(e,t),r=t.split(":"),u=r[0],a=r[1],f;if(s(e,t,"instantiate")===!1)return n;if(n){var l=[];l=l.concat(e.typeInjections.get(u)||[]),l=l.concat(e.injections[t]||[]);var c=i(e,l);return c.container=e,c._debugContainerKey=t,f=n.create(c),f}}function a(e,t){e.cache.eachLocal(function(n,r){if(s(e,n,"instantiate")===!1)return;t(r)})}function f(e){e.cache.eachLocal(function(t,n){if(s(e,t,"instantiate")===!1)return;n.destroy()}),e.cache.dict={}}return e.prototype={get:function(e){var t=this.dict;if(t.hasOwnProperty(e))return t[e];if(this.parent)return this.parent.get(e)},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 n=this.dict;for(var r in n)n.hasOwnProperty(r)&&e.call(t,r,n[r])}},t.prototype={child:function(){var e=new t(this);return this.children.push(e),e},set:function(e,t,n){e[t]=n},register:function(e,t,n,r){var i;e.indexOf(":")!==-1?(r=n,n=t,i=e):i=e+":"+t;var s=this.normalize(i);this.registry.set(s,n),this._options.set(s,r||{})},resolve:function(e){return this.resolver(e)||this.registry.get(e)},normalize:function(e){return e},lookup:function(e,t){e=this.normalize(e),t=t||{};if(this.cache.has(e)&&t.singleton!==!1)return this.cache.get(e);var n=u(this,e);if(!n)return;return r(this,e)&&t.singleton!==!1&&this.cache.set(e,n),n},has:function(e){return this.cache.has(e)?!0:!!o(this,e)},optionsForType:function(e,t){this.parent&&n("optionsForType"),this._typeOptions.set(e,t)},options:function(e,t){this.optionsForType(e,t)},typeInjection:function(e,t,r){this.parent&&n("typeInjection");var i=this.typeInjections.get(e);i||(i=[],this.typeInjections.set(e,i)),i.push({property:t,fullName:r})},injection:function(e,t,r){this.parent&&n("injection");if(e.indexOf(":")===-1)return this.typeInjection(e,t,r);var i=this.injections[e]=this.injections[e]||[];i.push({property:t,fullName:r})},destroy:function(){this.isDestroyed=!0;for(var e=0,t=this.children.length;e<t;e++)this.children[e].destroy();this.children=[],a(this,function(e){e.isDestroying=!0}),a(this,function(e){e.destroy()}),delete this.parent,this.isDestroyed=!0},reset:function(){for(var e=0,t=this.children.length;e<t;e++)f(this.children[e]);f(this)}},t})}(),function(){function t(n,r,i,s){var o,u,a;if("object"!=typeof n||n===null)return n;if(r&&(u=e(i,n))>=0)return s[u];if(Ember.typeOf(n)==="array"){o=n.slice();if(r){u=o.length;while(--u>=0)o[u]=t(o[u],r,i,s)}}else if(Ember.Copyable&&Ember.Copyable.detect(n))o=n.copy(r,i,s);else{o={};for(a in n){if(!n.hasOwnProperty(a))continue;if(a.substring(0,2)==="__")continue;o[a]=r?t(n[a],r,i,s):n[a]}}return r&&(i.push(n),s.push(o)),o}var e=Ember.EnumerableUtils.indexOf;Ember.compare=function r(e,t){if(e===t)return 0;var n=Ember.typeOf(e),i=Ember.typeOf(t),s=Ember.Comparable;if(s){if(n==="instance"&&s.detect(e.constructor))return e.constructor.compare(e,t);if(i==="instance"&&s.detect(t.constructor))return 1-t.constructor.compare(t,e)}var o=Ember.ORDER_DEFINITION_MAPPING;if(!o){var u=Ember.ORDER_DEFINITION;o=Ember.ORDER_DEFINITION_MAPPING={};var a,f;for(a=0,f=u.length;a<f;++a)o[u[a]]=a;delete Ember.ORDER_DEFINITION}var l=o[n],c=o[i];if(l<c)return-1;if(l>c)return 1;switch(n){case"boolean":case"number":if(e<t)return-1;if(e>t)return 1;return 0;case"string":var h=e.localeCompare(t);if(h<0)return-1;if(h>0)return 1;return 0;case"array":var p=e.length,d=t.length,v=Math.min(p,d),m=0,g=0;while(m===0&&g<v)m=r(e[g],t[g]),g++;if(m!==0)return m;if(p<d)return-1;if(p>d)return 1;return 0;case"instance":if(Ember.Comparable&&Ember.Comparable.detect(e))return e.compare(e,t);return 0;case"date":var y=e.getTime(),b=t.getTime();if(y<b)return-1;if(y>b)return 1;return 0;default:return 0}},Ember.copy=function(e,n){return"object"!=typeof e||e===null?e:Ember.Copyable&&Ember.Copyable.detect(e)?e.copy(n):t(e,n,n?[]:null,n?[]:null)},Ember.inspect=function(e){if(typeof e!="object"||e===null)return e+"";var t,n=[];for(var r in e)if(e.hasOwnProperty(r)){t=e[r];if(t==="toString")continue;Ember.typeOf(t)==="function"&&(t="function() { ... }"),n.push(r+": "+t)}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.keys=function(e){var t=[];for(var n in e)e.hasOwnProperty(n)&&t.push(n);return t});var n=["description","fileName","lineNumber","message","name","number","stack"];Ember.Error=function(){var e=Error.prototype.constructor.apply(this,arguments);for(var t=0;t<n.length;t++)this[n[t]]=e[n[t]]},Ember.Error.prototype=Ember.create(Error.prototype)}(),function(){Ember.RSVP=t("rsvp")}(),function(){var e=/[ _]/g,t={},n=/([a-z])([A-Z])/g,r=/(\-|_|\.|\s)+(.)?/g,i=/([a-z\d])([A-Z]+)/g,s=/\-|\s+/g;Ember.STRINGS={},Ember.String={fmt:function(e,t){var n=0;return e.replace(/%@([0-9]+)?/g,function(e,r){return r=r?parseInt(r,0)-1:n++,e=t[r],(e===null?"(null)":e===undefined?"":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(n,"$1_$2").toLowerCase()},dasherize:function(n){var r=t,i=r.hasOwnProperty(n),s;return i?r[n]:(s=Ember.String.decamelize(n).replace(e,"-"),r[n]=s,s)},camelize:function(e){return e.replace(r,function(e,t,n){return n?n.toUpperCase():""}).replace(/^([A-Z])/,function(e,t,n){return e.toLowerCase()})},classify:function(e){var t=e.split("."),n=[];for(var r=0,i=t.length;r<i;r++){var s=Ember.String.camelize(t[r]);n.push(s.charAt(0).toUpperCase()+s.substr(1))}return n.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,n=Ember.String.loc,r=Ember.String.camelize,i=Ember.String.decamelize,s=Ember.String.dasherize,o=Ember.String.underscore,u=Ember.String.capitalize,a=Ember.String.classify;if(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 n(this,arguments)},String.prototype.camelize=function(){return r(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 a(this)},String.prototype.capitalize=function(){return u(this)}}(),function(){var e=Array.prototype.slice;if(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(){function s(){return i.length===0?{}:i.pop()}function o(e){return i.push(e),null}function u(t,n){function i(i){var s=e(i,t);return r?n===s:!!s}var r=arguments.length===2;return i}var e=Ember.get,t=Ember.set,n=Array.prototype.slice,r=Ember.EnumerableUtils.indexOf,i=[];Ember.Enumerable=Ember.Mixin.create({isEnumerable:!0,nextObject:Ember.required(Function),firstObject:Ember.computed(function(){if(e(this,"length")===0)return undefined;var t=s(),n;return n=this.nextObject(0,null,t),o(t),n}).property("[]"),lastObject:Ember.computed(function(){var t=e(this,"length");if(t===0)return undefined;var n=s(),r=0,i,u=null;do u=i,i=this.nextObject(r++,u,n);while(i!==undefined);return o(n),u}).property("[]"),contains:function(e){return this.find(function(t){return t===e})!==undefined},forEach:function(t,n){if(typeof t!="function")throw new TypeError;var r=e(this,"length"),i=null,u=s();n===undefined&&(n=null);for(var a=0;a<r;a++){var f=this.nextObject(a,i,u);t.call(n,f,a,this),i=f}return i=null,u=o(u),this},getEach:function(e){return this.mapProperty(e)},setEach:function(e,n){return this.forEach(function(r){t(r,e,n)})},map:function(e,t){var n=Ember.A([]);return this.forEach(function(r,i,s){n[i]=e.call(t,r,i,s)}),n},mapProperty:function(t){return this.map(function(n){return e(n,t)})},filter:function(e,t){var n=Ember.A([]);return this.forEach(function(r,i,s){e.call(t,r,i,s)&&n.push(r)}),n},reject:function(e,t){return this.filter(function(){return!e.apply(t,arguments)})},filterProperty:function(e,t){return this.filter(u.apply(this,arguments))},rejectProperty:function(t,n){var r=function(r){return e(r,t)===n},i=function(n){return!!e(n,t)},s=arguments.length===2?r:i;return this.reject(s)},find:function(t,n){var r=e(this,"length");n===undefined&&(n=null);var i=null,u,a=!1,f,l=s();for(var c=0;c<r&&!a;c++){u=this.nextObject(c,i,l);if(a=t.call(n,u,c,this))f=u;i=u}return u=i=null,l=o(l),f},findProperty:function(e,t){return this.find(u.apply(this,arguments))},every:function(e,t){return!this.find(function(n,r,i){return!e.call(t,n,r,i)})},everyProperty:function(e,t){return this.every(u.apply(this,arguments))},some:function(e,t){return!!this.find(function(n,r,i){return!!e.call(t,n,r,i)})},someProperty:function(e,t){return this.some(u.apply(this,arguments))},reduce:function(e,t,n){if(typeof e!="function")throw new TypeError;var r=t;return this.forEach(function(t,i){r=e.call(null,r,t,i,this,n)},this),r},invoke:function(e){var t,r=Ember.A([]);return arguments.length>1&&(t=n.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,n){e[n]=t}),e},compact:function(){return this.filter(function(e){return e!=null})},without:function(e){if(!this.contains(e))return this;var t=Ember.A([]);return this.forEach(function(n){n!==e&&(t[t.length]=n)}),t},uniq:function(){var e=Ember.A([]);return this.forEach(function(t){r(e,t)<0&&e.push(t)}),e},"[]":Ember.computed(function(e,t){return this}),addEnumerableObserver:function(t,n){var r=n&&n.willChange||"enumerableWillChange",i=n&&n.didChange||"enumerableDidChange",s=e(this,"hasEnumerableObservers");return s||Ember.propertyWillChange(this,"hasEnumerableObservers"),Ember.addListener(this,"@enumerable:before",t,r),Ember.addListener(this,"@enumerable:change",t,i),s||Ember.propertyDidChange(this,"hasEnumerableObservers"),this},removeEnumerableObserver:function(t,n){var r=n&&n.willChange||"enumerableWillChange",i=n&&n.didChange||"enumerableDidChange",s=e(this,"hasEnumerableObservers");return s&&Ember.propertyWillChange(this,"hasEnumerableObservers"),Ember.removeListener(this,"@enumerable:before",t,r),Ember.removeListener(this,"@enumerable:change",t,i),s&&Ember.propertyDidChange(this,"hasEnumerableObservers"),this},hasEnumerableObservers:Ember.computed(function(){return Ember.hasListeners(this,"@enumerable:change")||Ember.hasListeners(this,"@enumerable:before")}),enumerableContentWillChange:function(t,n){var r,i,s;return"number"==typeof t?r=t:t?r=e(t,"length"):r=t=-1,"number"==typeof n?i=n:n?i=e(n,"length"):i=n=-1,s=i<0||r<0||i-r!==0,t===-1&&(t=null),n===-1&&(n=null),Ember.propertyWillChange(this,"[]"),s&&Ember.propertyWillChange(this,"length"),Ember.sendEvent(this,"@enumerable:before",[this,t,n]),this},enumerableContentDidChange:function(t,n){var r,i,s;return"number"==typeof t?r=t:t?r=e(t,"length"):r=t=-1,"number"==typeof n?i=n:n?i=e(n,"length"):i=n=-1,s=i<0||r<0||i-r!==0,t===-1&&(t=null),n===-1&&(n=null),Ember.sendEvent(this,"@enumerable:change",[this,t,n]),s&&Ember.propertyDidChange(this,"length"),Ember.propertyDidChange(this,"[]"),this}})}(),function(){function i(e){return e===null||e===undefined}var e=Ember.get,t=Ember.set,n=Ember.EnumerableUtils.map,r=Ember.cacheFor;Ember.Array=Ember.Mixin.create(Ember.Enumerable,{isSCArray:!0,length:Ember.required(),objectAt:function(t){return t<0||t>=e(this,"length")?undefined:e(this,t)},objectsAt:function(e){var t=this;return n(e,function(e){return t.objectAt(e)})},nextObject:function(e){return this.objectAt(e)},"[]":Ember.computed(function(t,n){return n!==undefined&&this.replace(0,e(this,"length"),n),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(t,n){var r=Ember.A([]),s=e(this,"length");i(t)&&(t=0);if(i(n)||n>s)n=s;t<0&&(t=s+t),n<0&&(n=s+n);while(t<n)r[r.length]=this.objectAt(t++);return r},indexOf:function(t,n){var r,i=e(this,"length");n===undefined&&(n=0),n<0&&(n+=i);for(r=n;r<i;r++)if(this.objectAt(r,!0)===t)return r;return-1},lastIndexOf:function(t,n){var r,i=e(this,"length");if(n===undefined||n>=i)n=i-1;n<0&&(n+=i);for(r=n;r>=0;r--)if(this.objectAt(r)===t)return r;return-1},addArrayObserver:function(t,n){var r=n&&n.willChange||"arrayWillChange",i=n&&n.didChange||"arrayDidChange",s=e(this,"hasArrayObservers");return s||Ember.propertyWillChange(this,"hasArrayObservers"),Ember.addListener(this,"@array:before",t,r),Ember.addListener(this,"@array:change",t,i),s||Ember.propertyDidChange(this,"hasArrayObservers"),this},removeArrayObserver:function(t,n){var r=n&&n.willChange||"arrayWillChange",i=n&&n.didChange||"arrayDidChange",s=e(this,"hasArrayObservers");return s&&Ember.propertyWillChange(this,"hasArrayObservers"),Ember.removeListener(this,"@array:before",t,r),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,n,r){t===undefined?(t=0,n=r=-1):(n===undefined&&(n=-1),r===undefined&&(r=-1)),Ember.isWatching(this,"@each")&&e(this,"@each"),Ember.sendEvent(this,"@array:before",[this,t,n,r]);var i,s;if(t>=0&&n>=0&&e(this,"hasEnumerableObservers")){i=[],s=t+n;for(var o=t;o<s;o++)i.push(this.objectAt(o))}else i=n;return this.enumerableContentWillChange(i,r),this},arrayContentDidChange:function(t,n,i){t===undefined?(t=0,n=i=-1):(n===undefined&&(n=-1),i===undefined&&(i=-1));var s,o;if(t>=0&&i>=0&&e(this,"hasEnumerableObservers")){s=[],o=t+i;for(var u=t;u<o;u++)s.push(this.objectAt(u))}else s=i;this.enumerableContentDidChange(n,s),Ember.sendEvent(this,"@array:change",[this,t,n,i]);var a=e(this,"length"),f=r(this,"firstObject"),l=r(this,"lastObject");return this.objectAt(0)!==f&&(Ember.propertyWillChange(this,"firstObject"),Ember.propertyDidChange(this,"firstObject")),this.objectAt(a-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,t=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=[],n=Ember.get,r=Ember.set;Ember.MutableArray=Ember.Mixin.create(Ember.Array,Ember.MutableEnumerable,{replace:Ember.required(),clear:function(){var e=n(this,"length");return e===0?this:(this.replace(0,e,t),this)},insertAt:function(t,r){if(t>n(this,"length"))throw new Error(e);return this.replace(t,0,[r]),this},removeAt:function(r,i){if("number"==typeof r){if(r<0||r>=n(this,"length"))throw new Error(e);i===undefined&&(i=1),this.replace(r,i,t)}return this},pushObject:function(e){return this.insertAt(n(this,"length"),e),e},pushObjects:function(e){return this.replace(n(this,"length"),0,e),this},popObject:function(){var e=n(this,"length");if(e===0)return null;var t=this.objectAt(e-1);return this.removeAt(e-1,1),t},shiftObject:function(){if(n(this,"length")===0)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=n(this,"length");if(e===0)return this;var t=this.toArray().reverse();return this.replace(0,e,t),this},setObjects:function(e){if(e.length===0)return this.clear();var t=n(this,"length");return this.replace(0,t,e),this},removeObject:function(e){var t=n(this,"length")||0;while(--t>=0){var r=this.objectAt(t);r===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={},n=arguments;arguments.length===1&&Ember.typeOf(arguments[0])==="array"&&(n=arguments[0]);for(var r=0;r<n.length;r++)t[n[r]]=e(this,n[r]);return t},set:function(e,n){return t(this,e,n),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,n){Ember.addBeforeObserver(this,e,t,n)},addObserver:function(e,t,n){Ember.addObserver(this,e,t,n)},removeObserver:function(e,t,n){Ember.removeObserver(this,e,t,n)},hasObserverFor:function(e){return Ember
17
- .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(n,r){return r||(r=1),t(this,n,(e(this,n)||0)+r),e(this,n)},decrementProperty:function(n,r){return r||(r=1),t(this,n,(e(this,n)||0)-r),e(this,n)},toggleProperty:function(n){return t(this,n,!e(this,n)),e(this,n)},cacheFor:function(e){return Ember.cacheFor(this,e)},observersForKey:function(e){return Ember.observersFor(this,e)}})}(),function(){var e=Ember.get,t=Ember.set;Ember.TargetActionSupport=Ember.Mixin.create({target:null,action:null,targetObject:Ember.computed(function(){var t=e(this,"target");if(Ember.typeOf(t)==="string"){var n=e(this,t);return n===undefined&&(n=e(Ember.lookup,t)),n}return t}).property("target"),triggerAction:function(){var t=e(this,"action"),n=e(this,"targetObject");if(n&&t){var r;return typeof n.send=="function"?r=n.send(t,this):(typeof t=="string"&&(t=n[t]),r=t.call(n,this)),r!==!1&&(r=!0),r}return!1}})}(),function(){Ember.Evented=Ember.Mixin.create({on:function(e,t,n){return Ember.addListener(this,e,t,n),this},one:function(e,t,n){return n||(n=t,t=null),Ember.addListener(this,e,t,n,!0),this},trigger:function(e){var t=[],n,r;for(n=1,r=arguments.length;n<r;n++)t.push(arguments[n]);Ember.sendEvent(this,e,t)},fire:function(e){this.trigger.apply(this,arguments)},off:function(e,t,n){return Ember.removeListener(this,e,t,n),this},has:function(e){return Ember.hasListeners(this,e)}})}(),function(){var e=t("rsvp");e.async=function(e,t){Ember.run.schedule("actions",t,e)};var n=Ember.get;Ember.DeferredMixin=Ember.Mixin.create({then:function(e,t){var r=n(this,"promise");return r.then.apply(r,arguments)},resolve:function(e){n(this,"promise").resolve(e)},reject:function(e){n(this,"promise").reject(e)},promise:Ember.computed(function(){return new e.Promise})})}(),function(){}(),function(){Ember.Container=t("container"),Ember.Container.set=Ember.set}(),function(){function b(){var e=!1,t,s,o=function(){e||o.proto(),r(this,i,y),r(this,"_super",y);var a=u(this);a.proto=this;if(t){var l=t;t=null,this.reopen.apply(this,l)}if(s){var c=s;s=null;var h=this.concatenatedProperties;for(var p=0,v=c.length;p<v;p++){var b=c[p];for(var w in b){if(!b.hasOwnProperty(w))continue;var E=b[w],S=Ember.IS_BINDING;if(S.test(w)){var x=a.bindings;x?a.hasOwnProperty("bindings")||(x=a.bindings=n(a.bindings)):x=a.bindings={},x[w]=E}var T=a.descs[w];if(h&&g(h,w)>=0){var N=this[w];N?"function"==typeof N.concat?E=N.concat(E):E=Ember.makeArray(N).concat(E):E=Ember.makeArray(E)}T?T.set(this,w,E):typeof this.setUnknownProperty!="function"||w in this?m?Ember.defineProperty(this,w,null,E):this[w]=E:this.setUnknownProperty(w,E)}}}d(this,a),delete a.proto,f(this),this.init.apply(this,arguments)};return o.toString=h.prototype.toString,o.willReopen=function(){e&&(o.PrototypeMixin=h.create(o.PrototypeMixin)),e=!1},o._initMixins=function(e){t=e},o._initProperties=function(e){s=e},o.proto=function(){var t=o.superclass;return t&&t.proto(),e||(e=!0,o.PrototypeMixin.applyPartial(o.prototype),a(o.prototype)),this.prototype},o}function E(e){return function(){return e}}var e=Ember.set,t=Ember.get,n=Ember.create,r=Ember.platform.defineProperty,i=Ember.GUID_KEY,s=Ember.guidFor,o=Ember.generateGuid,u=Ember.meta,a=Ember.rewatch,f=Ember.finishChains,l=Ember.destroy,c=Ember.run.schedule,h=Ember.Mixin,p=h._apply,d=h.finishPartial,v=h.prototype.reopen,m=Ember.ENV.MANDATORY_SETTER,g=Ember.EnumerableUtils.indexOf,y={configurable:!0,writable:!0,enumerable:!1,value:undefined},w=b();w.toString=function(){return"Ember.CoreObject"},w.PrototypeMixin=h.create({reopen:function(){return p(this,arguments,!0),this},isInstance:!0,init:function(){},concatenatedProperties:null,isDestroyed:!1,isDestroying:!1,destroy:function(){if(this._didCallDestroy)return;return this.isDestroying=!0,this._didCallDestroy=!0,c("destroy",this,this._scheduledDestroy),this},willDestroy:Ember.K,_scheduledDestroy:function(){this.willDestroy&&this.willDestroy(),l(this),this.isDestroyed=!0,this.didDestroy&&this.didDestroy()},bind:function(e,t){return t instanceof Ember.Binding||(t=Ember.Binding.from(t)),t.to(e).connect(this),t},toString:function x(){var e=typeof this.toStringExtension=="function",t=e?":"+this.toStringExtension():"",n="<"+this.constructor.toString()+":"+s(this)+t+">";return this.toString=E(n),n}}),w.PrototypeMixin.ownerConstructor=w,Ember.config.overridePrototypeMixin&&Ember.config.overridePrototypeMixin(w.PrototypeMixin),w.__super__=null;var S=h.create({ClassMixin:Ember.required(),PrototypeMixin:Ember.required(),isClass:!0,isMethod:!1,extend:function(){var e=b(),t;return e.ClassMixin=h.create(this.ClassMixin),e.PrototypeMixin=h.create(this.PrototypeMixin),e.ClassMixin.ownerConstructor=e,e.PrototypeMixin.ownerConstructor=e,v.apply(e.PrototypeMixin,arguments),e.superclass=this,e.__super__=this.prototype,t=e.prototype=n(this.prototype),t.constructor=e,o(t,"ember"),u(t).proto=t,e.ClassMixin.apply(e),e},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(),v.apply(this.PrototypeMixin,arguments),this},reopenClass:function(){return v.apply(this.ClassMixin,arguments),p(this,arguments,!1),this},detect:function(e){if("function"!=typeof e)return!1;while(e){if(e===this)return!0;e=e.superclass}return!1},detectInstance:function(e){return e instanceof this},metaForProperty:function(e){var t=u(this.proto(),!1).descs[e];return t._meta||{}},eachComputedProperty:function(e,t){var n=this.proto(),r=u(n).descs,i={},s;for(var o in r)s=r[o],s instanceof Ember.ComputedProperty&&e.call(t||this,o,s._meta||i)}});S.ownerConstructor=w,Ember.config.overrideClassMixin&&Ember.config.overrideClassMixin(S),w.ClassMixin=S,S.apply(w),Ember.CoreObject=w}(),function(){Ember.Object=Ember.CoreObject.extend(Ember.Observable),Ember.Object.toString=function(){return"Ember.Object"}}(),function(){function o(e,t,n){var u=e.length;r[e.join(".")]=t;for(var f in t){if(!i.call(t,f))continue;var c=t[f];e[u]=f;if(c&&c.toString===l)c.toString=h(e.join(".")),c[a]=e.join(".");else if(c&&c.isNamespace){if(n[s(c)])continue;n[s(c)]=!0,o(e,c,n)}}e.length=u}function u(){var e=Ember.Namespace,t=Ember.lookup,n,r;if(e.PROCESSED)return;for(var i in t){if(i==="parent"||i==="top"||i==="frameElement")continue;if(i==="globalStorage"&&t.StorageList&&t.globalStorage instanceof t.StorageList)continue;if(t.hasOwnProperty&&!t.hasOwnProperty(i))continue;try{n=Ember.lookup[i],r=n&&n.isNamespace}catch(s){continue}r&&(n[a]=i)}}function f(e){var t=e.superclass;if(t)return t[a]?t[a]:f(t);return}function l(){!Ember.BOOTED&&!this[a]&&c();var e;if(this[a])e=this[a];else{var t=f(this);t?e="(subclass of "+t+")":e="(unknown mixin)",this.toString=h(e)}return e}function c(){var e=!n.PROCESSED,t=Ember.anyUnprocessedMixins;e&&(u(),n.PROCESSED=!0);if(e||t){var r=n.NAMESPACES,i;for(var s=0,a=r.length;s<a;s++)i=r[s],o([i.toString()],i,{});Ember.anyUnprocessedMixins=!1}}function h(e){return function(){return e}}var e=Ember.get,t=Ember.ArrayPolyfills.indexOf,n=Ember.Namespace=Ember.Object.extend({isNamespace:!0,init:function(){Ember.Namespace.NAMESPACES.push(this),Ember.Namespace.PROCESSED=!1},toString:function(){var t=e(this,"name");return t?t:(u(),this[Ember.GUID_KEY+"_name"])},nameClasses:function(){o([this.toString()],this,{})},destroy:function(){var e=Ember.Namespace.NAMESPACES;Ember.lookup[this.toString()]=undefined,e.splice(t.call(e,this),1),this._super()}});n.reopenClass({NAMESPACES:[Ember],NAMESPACES_BY_ID:{},PROCESSED:!1,processAll:c,byName:function(e){return Ember.BOOTED||c(),r[e]}});var r=n.NAMESPACES_BY_ID,i={}.hasOwnProperty,s=Ember.guidFor,a=Ember.NAME_KEY=Ember.GUID_KEY+"_name";Ember.Mixin.prototype.toString=l}(),function(){Ember.Application=Ember.Namespace.extend()}(),function(){var e="Index out of range",t=[],n=Ember.get,r=Ember.set;Ember.ArrayProxy=Ember.Object.extend(Ember.MutableArray,{content:null,arrangedContent:Ember.computed.alias("content"),objectAtContent:function(e){return n(this,"arrangedContent").objectAt(e)},replaceContent:function(e,t,r){n(this,"content").replace(e,t,r)},_contentWillChange:Ember.beforeObserver(function(){this._teardownContent()},"content"),_teardownContent:function(){var e=n(this,"content");e&&e.removeArrayObserver(this,{willChange:"contentArrayWillChange",didChange:"contentArrayDidChange"})},contentArrayWillChange:Ember.K,contentArrayDidChange:Ember.K,_contentDidChange:Ember.observer(function(){var e=n(this,"content");this._setupContent()},"content"),_setupContent:function(){var e=n(this,"content");e&&e.addArrayObserver(this,{willChange:"contentArrayWillChange",didChange:"contentArrayDidChange"})},_arrangedContentWillChange:Ember.beforeObserver(function(){var e=n(this,"arrangedContent"),t=e?n(e,"length"):0;this.arrangedContentArrayWillChange(this,0,t,undefined),this.arrangedContentWillChange(this),this._teardownArrangedContent(e)},"arrangedContent"),_arrangedContentDidChange:Ember.observer(function(){var e=n(this,"arrangedContent"),t=e?n(e,"length"):0;this._setupArrangedContent(),this.arrangedContentDidChange(this),this.arrangedContentArrayDidChange(this,0,undefined,t)},"arrangedContent"),_setupArrangedContent:function(){var e=n(this,"arrangedContent");e&&e.addArrayObserver(this,{willChange:"arrangedContentArrayWillChange",didChange:"arrangedContentArrayDidChange"})},_teardownArrangedContent:function(){var e=n(this,"arrangedContent");e&&e.removeArrayObserver(this,{willChange:"arrangedContentArrayWillChange",didChange:"arrangedContentArrayDidChange"})},arrangedContentWillChange:Ember.K,arrangedContentDidChange:Ember.K,objectAt:function(e){return n(this,"content")&&this.objectAtContent(e)},length:Ember.computed(function(){var e=n(this,"arrangedContent");return e?n(e,"length"):0}),_replace:function(e,t,r){var i=n(this,"content");return i&&this.replaceContent(e,t,r),this},replace:function(){if(n(this,"arrangedContent")!==n(this,"content"))throw new Ember.Error("Using replace on an arranged ArrayProxy is not allowed.");this._replace.apply(this,arguments)},_insertAt:function(t,r){if(t>n(this,"content.length"))throw new Error(e);return this._replace(t,0,[r]),this},insertAt:function(e,t){if(n(this,"arrangedContent")===n(this,"content"))return this._insertAt(e,t);throw new Ember.Error("Using insertAt on an arranged ArrayProxy is not allowed.")},removeAt:function(r,i){if("number"==typeof r){var s=n(this,"content"),o=n(this,"arrangedContent"),u=[],a;if(r<0||r>=n(this,"length"))throw new Error(e);i===undefined&&(i=1);for(a=r;a<r+i;a++)u.push(s.indexOf(o.objectAt(a)));u.sort(function(e,t){return t-e}),Ember.beginPropertyChanges();for(a=0;a<u.length;a++)this._replace(u[a],1,t);Ember.endPropertyChanges()}return this},pushObject:function(e){return this._insertAt(n(this,"content.length"),e),e},pushObjects:function(e){return this._replace(n(this,"length"),0,e),this},setObjects:function(e){if(e.length===0)return this.clear();var t=n(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,n,r){this.arrayContentWillChange(t,n,r)},arrangedContentArrayDidChange:function(e,t,n,r){this.arrayContentDidChange(t,n,r)},init:function(){this._super(),this._setupContent(),this._setupArrangedContent()},willDestroy:function(){this._teardownArrangedContent(),this._teardownContent()}})}(),function(){function f(e,t){var n=t.slice(8);if(n in this)return;u(this,n)}function l(e,t){var n=t.slice(8);if(n in this)return;a(this,n)}var e=Ember.get,t=Ember.set,n=Ember.String.fmt,r=Ember.addBeforeObserver,i=Ember.addObserver,s=Ember.removeBeforeObserver,o=Ember.removeObserver,u=Ember.propertyWillChange,a=Ember.propertyDidChange;Ember.ObjectProxy=Ember.Object.extend({content:null,_contentDidChange:Ember.observer(function(){},"content"),isTruthy:Ember.computed.bool("content"),_debugContainerKey:null,willWatchProperty:function(e){var t="content."+e;r(this,t,null,f),i(this,t,null,l)},didUnwatchProperty:function(e){var t="content."+e;s(this,t,null,f),o(this,t,null,l)},unknownProperty:function(t){var n=e(this,"content");if(n)return e(n,t)},setUnknownProperty:function(n,r){var i=e(this,"content");return t(i,n,r)}}),Ember.ObjectProxy.reopenClass({create:function(){var e,t,n,r,i,s;if(arguments.length){t=this.proto();for(n=0,r=arguments.length;n<r;n++){i=arguments[n];for(s in i){if(!i.hasOwnProperty(s)||s in t)continue;e||(e={}),e[s]=null}}e&&this._initMixins([e])}return this._super.apply(this,arguments)}})}(),function(){function o(e,t,r,i,s){var o=r._objects,u;o||(o=r._objects={});while(--s>=i){var a=e.objectAt(s);a&&(Ember.addBeforeObserver(a,t,r,"contentKeyWillChange"),Ember.addObserver(a,t,r,"contentKeyDidChange"),u=n(a),o[u]||(o[u]=[]),o[u].push(s))}}function u(e,t,r,i,s){var o=r._objects;o||(o=r._objects={});var u,a;while(--s>=i){var f=e.objectAt(s);f&&(Ember.removeBeforeObserver(f,t,r,"contentKeyWillChange"),Ember.removeObserver(f,t,r,"contentKeyDidChange"),a=n(f),u=o[a],u[u.indexOf(s)]=null)}}var e=Ember.set,t=Ember.get,n=Ember.guidFor,r=Ember.EnumerableUtils.forEach,i=Ember.Object.extend(Ember.Array,{init:function(e,t,n){this._super(),this._keyName=t,this._owner=n,this._content=e},objectAt:function(e){var n=this._content.objectAt(e);return n&&t(n,this._keyName)},length:Ember.computed(function(){var e=this._content;return e?t(e,"length"):0})}),s=/^.+:(before|change)$/;Ember.EachProxy=Ember.Object.extend({init:function(e){this._super(),this._content=e,e.addArrayObserver(this),r(Ember.watchedEvents(this),function(e){this.didAddListener(e)},this)},unknownProperty:function(e,t){var n;return n=new i(this._content,e,this),Ember.defineProperty(this,e,null,n),this.beginObservingContentKey(e),n},arrayWillChange:function(e,t,n,r){var i=this._keys,s,o;o=n>0?t+n:-1,Ember.beginPropertyChanges(this);for(s in i){if(!i.hasOwnProperty(s))continue;o>0&&u(e,s,this,t,o),Ember.propertyWillChange(this,s)}Ember.propertyWillChange(this._content,"@each"),Ember.endPropertyChanges(this)},arrayDidChange:function(e,t,n,r){var i=this._keys,s,u;u=r>0?t+r:-1,Ember.beginPropertyChanges(this);for(s in i){if(!i.hasOwnProperty(s))continue;u>0&&o(e,s,this,t,u),Ember.propertyDidChange(this,s)}Ember.propertyDidChange(this._content,"@each"),Ember.endPropertyChanges(this)},didAddListener:function(e){s.test(e)&&this.beginObservingContentKey(e.slice(0,-7))},didRemoveListener:function(e){s.test(e)&&this.stopObservingContentKey(e.slice(0,-7))},beginObservingContentKey:function(e){var n=this._keys;n||(n=this._keys={});if(!n[e]){n[e]=1;var r=this._content,i=t(r,"length");o(r,e,this,0,i)}else n[e]++},stopObservingContentKey:function(e){var n=this._keys;if(n&&n[e]>0&&--n[e]<=0){var r=this._content,i=t(r,"length");u(r,e,this,0,i)}},contentKeyWillChange:function(e,t){Ember.propertyWillChange(this,t)},contentKeyDidChange:function(e,t){Ember.propertyDidChange(this,t)}})}(),function(){var e=Ember.get,t=Ember.set,n=Ember.Mixin.create(Ember.MutableArray,Ember.Observable,Ember.Copyable,{get:function(e){return e==="length"?this.length:"number"==typeof e?this[e]:this._super(e)},objectAt:function(e){return this[e]},replace:function(t,n,r){if(this.isFrozen)throw Ember.FROZEN_ERROR;var i=r?e(r,"length"):0;this.arrayContentWillChange(t,n,i);if(!r||r.length===0)this.splice(t,n);else{var s=[t,n].concat(r);this.splice.apply(this,s)}return this.arrayContentDidChange(t,n,i),this},unknownProperty:function(e,t){var n;return t!==undefined&&n===undefined&&(n=this[e]=t),n},indexOf:function(e,t){var n,r=this.length;t===undefined?t=0:t=t<0?Math.ceil(t):Math.floor(t),t<0&&(t+=r);for(n=t;n<r;n++)if(this[n]===e)return n;return-1},lastIndexOf:function(e,t){var n,r=this.length;t===undefined?t=r-1:t=t<0?Math.ceil(t):Math.floor(t),t<0&&(t+=r);for(n=t;n>=0;n--)if(this[n]===e)return n;return-1},copy:function(e){return e?this.map(function(e){return Ember.copy(e,!0)}):this.slice()}}),r=["length"];Ember.EnumerableUtils.forEach(n.keys(),function(e){Array.prototype[e]&&r.push(e)}),r.length>0&&(n=n.without.apply(n,r)),Ember.NativeArray=n,Ember.A=function(e){return e===undefined&&(e=[]),Ember.Array.detect(e)?e:Ember.NativeArray.apply(e)},Ember.NativeArray.activate=function(){n.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,n=Ember.guidFor,r=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 r=e(this,"length");if(r===0)return this;var i;this.enumerableContentWillChange(r,0),Ember.propertyWillChange(this,"firstObject"),Ember.propertyWillChange(this,"lastObject");for(var s=0;s<r;s++)i=n(this[s]),delete this[i],delete this[s];return t(this,"length",0),Ember.propertyDidChange(this,"firstObject"),Ember.propertyDidChange(this,"lastObject"),this.enumerableContentDidChange(r,0),this},isEqual:function(t){if(!Ember.Enumerable.detect(t))return!1;var n=e(this,"length");if(e(t,"length")!==n)return!1;while(--n>=0)if(!t.contains(this[n]))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]:undefined}),lastObject:Ember.computed(function(){return this.length>0?this[this.length-1]:undefined}),addObject:function(i){if(e(this,"isFrozen"))throw new Error(Ember.FROZEN_ERROR);if(r(i))return this;var s=n(i),o=this[s],u=e(this,"length"),a;return o>=0&&o<u&&this[o]===i?this:(a=[i],this.enumerableContentWillChange(null,a),Ember.propertyWillChange(this,"lastObject"),u=e(this,"length"),this[s]=u,this[u]=i,t(this,"length",u+1),Ember.propertyDidChange(this,"lastObject"),this.enumerableContentDidChange(null,a),this)},removeObject:function(i){if(e(this,"isFrozen"))throw new Error(Ember.FROZEN_ERROR);if(r(i))return this;var s=n(i),o=this[s],u=e(this,"length"),a=o===0,f=o===u-1,l,c;return o>=0&&o<u&&this[o]===i&&(c=[i],this.enumerableContentWillChange(c,null),a&&Ember.propertyWillChange(this,"firstObject"),f&&Ember.propertyWillChange(this,"lastObject"),o<u-1&&(l=this[u-1],this[o]=l,this[n(l)]=o),delete this[s],delete this[u-1],t(this,"length",u-1),a&&Ember.propertyDidChange(this,"firstObject"),f&&Ember.propertyDidChange(this,"lastObject"),this.enumerableContentDidChange(c,null)),this},contains:function(e){return this[n(e)]>=0},copy:function(){var r=this.constructor,i=new r,s=e(this,"length");t(i,"length",s);while(--s>=0)i[s]=this[s],i[n(this[s])]=s;return i},toString:function(){var e=this.length,t,n=[];for(t=0;t<e;t++)n[t]=this[t];return i("Ember.Set<%@>",[n.join(",")])}})}(),function(){var e=Ember.DeferredMixin,t=Ember.get,n=Ember.Object.extend(e);n.reopenClass({promise:function(e,r){var i=n.create();return e.call(r,i),t(i,"promise")}}),Ember.Deferred=n}(),function(){var e=Ember.ENV.EMBER_LOAD_HOOKS||{},t={};Ember.onLoad=function(n,r){var i;e[n]=e[n]||Ember.A(),e[n].pushObject(r),(i=t[n])&&r(i)},Ember.runLoadHooks=function(n,r){var i;t[n]=r,(i=e[n])&&e[n].forEach(function(e){e(r)})}}(),function(){}(),function(){var e=Ember.get;Ember.ControllerMixin=Ember.Mixin.create({isController:!0,target:null,container:null,store:null,model:Ember.computed.alias("content"),send:function(t){var n=[].slice.call(arguments,1),r;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,n=Ember.EnumerableUtils.forEach;Ember.SortableMixin=Ember.Mixin.create(Ember.MutableEnumerable,{sortProperties:null,sortAscending:!0,orderBy:function(t,r){var i=0,s=e(this,"sortProperties"),o=e(this,"sortAscending");return n(s,function(n){i===0&&(i=Ember.compare(e(t,n),e(r,n)),i!==0&&!o&&(i=-1*i))}),i},destroy:function(){var t=e(this,"content"),r=e(this,"sortProperties");return t&&r&&n(t,function(e){n(r,function(t){Ember.removeObserver(e,t,this,"contentItemSortPropertyDidChange")},this)},this),this._super()},isSorted:Ember.computed.bool("sortProperties"),arrangedContent:Ember.computed("content","sortProperties.@each",function(t,r){var i=e(this,"content"),s=e(this,"isSorted"),o=e(this,"sortProperties"),u=this;return i&&s?(i=i.slice(),i.sort(function(e,t){return u.orderBy(e,t)}),n(i,function(e){n(o,function(t){Ember.addObserver(e,t,this,"contentItemSortPropertyDidChange")},this)},this),Ember.A(i)):i}),_contentWillChange:Ember.beforeObserver(function(){var t=e(this,"content"),r=e(this,"sortProperties");t&&r&&n(t,function(e){n(r,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(t,r,i,s){var o=e(this,"isSorted");if(o){var u=e(this,"arrangedContent"),a=t.slice(r,r+i),f=e(this,"sortProperties");n(a,function(e){u.removeObject(e),n(f,function(t){Ember.removeObserver(e,t,this,"contentItemSortPropertyDidChange")},this)},this)}return this._super(t,r,i,s)},contentArrayDidChange:function(t,r,i,s){var o=e(this,"isSorted"),u=e(this,"sortProperties");if(o){var a=t.slice(r,r+s);n(a,function(e){this.insertItemSorted(e),n(u,function(t){Ember.addObserver(e,t,this,"contentItemSortPropertyDidChange")},this)},this)}return this._super(t,r,i,s)},insertItemSorted:function(t){var n=e(this,"arrangedContent"),r=e(n,"length"),i=this._binarySearch(t,0,r);n.insertAt(i,t)},contentItemSortPropertyDidChange:function(t){var n=e(this,"arrangedContent"),r=n.indexOf(t),i=n.objectAt(r-1),s=n.objectAt(r+1),o=i&&this.orderBy(t,i),u=s&&this.orderBy(t,s);if(o<0||u>0)n.removeObject(t),this.insertItemSorted(t)},_binarySearch:function(t,n,r){var i,s,o,u;return n===r?n:(u=e(this,"arrangedContent"),i=n+Math.floor((r-n)/2),s=u.objectAt(i),o=this.orderBy(s,t),o<0?this._binarySearch(t,i+1,r):o>0?this._binarySearch(t,n,i):i)}})}(),function(){var e=Ember.get,t=Ember.set,n=Ember.EnumerableUtils.forEach,r=Ember.EnumerableUtils.replace;Ember.ArrayController=Ember.ArrayProxy.extend(Ember.ControllerMixin,Ember.SortableMixin,{itemController:null,lookupItemController:function(t){return e(this,"itemController")},objectAtContent:function(t){var n=e(this,"length"),r=e(this,"arrangedContent"),i=r&&r.objectAt(t);if(t>=0&&t<n){var s=this.lookupItemController(i);if(s)return this.controllerAt(t,i,s)}return i},arrangedContentDidChange:function(){this._super(),this._resetSubControllers()},arrayContentDidChange:function(t,i,s){var o=e(this,"_subControllers"),u=o.slice(t,t+i);n(u,function(e){e&&e.destroy()}),r(o,t,i,new Array(s)),this._super(t,i,s)},init:function(){this.get("content")||Ember.defineProperty(this,"content",undefined,Ember.A()),this._super(),this.set("_subControllers",Ember.A())},controllerAt:function(t,n,r){var i=e(this,"container"),s=e(this,"_subControllers"),o=s[t];o||(o=i.lookup("controller:"+r,{singleton:!1}),s[t]=o);if(!o)throw new Error('Could not resolve itemController: "'+r+'"');return o.set("target",this),o.set("content",n),o},_subControllers:null,_resetSubControllers:function(){var t=e(this,"_subControllers");n(t,function(e){e&&e.destroy()}),this.set("_subControllers",Ember.A())}})}(),function(){Ember.ObjectController=Ember.ObjectProxy.extend(Ember.ControllerMixin)}(),function(){}(),function(){}()})(),typeof location!="undefined"&&(location.hostname==="localhost"||location.hostname==="127.0.0.1")&&console.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,r;(function(){var t={},n={};e=function(e,r,n){t[e]={deps:r,callback:n}},r=function(e){if(n[e])return n[e];n[e]={};for(var i,o=t[e],s=o.deps,a=o.callback,u=[],c=0,h=s.length;h>c;c++)"exports"===s[c]?u.push(i={}):u.push(r(s[c]));var l=a.apply(this,u);return n[e]=i||l}})(),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}"undefined"==typeof Ember&&(Ember={});var r=Ember.imports=Ember.imports||this,t=Ember.exports=Ember.exports||this;Ember.lookup=Ember.lookup||this,t.Em=t.Ember=Em=Ember,Ember.isNamespace=!0,Ember.toString=function(){return"Ember"},Ember.VERSION="1.0.0-rc.3",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,r){return r}),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},Ember.onerror=null,Ember.handleErrors=function(e,r){if("function"!=typeof Ember.onerror)return e.call(r||this);try{return e.call(r||this)}catch(t){Ember.onerror(t)}},Ember.merge=function(e,r){for(var t in r)r.hasOwnProperty(t)&&(e[t]=r[t]);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 r=function(){};Ember.create=function(e,t){if(r.prototype=e,e=new r,t){r.prototype=e;for(var n in t)r.prototype[n]=t[n].value;e=new r}return r.prototype=null,e},Ember.create.isSimulated=!0}var t,n,i=Object.defineProperty;if(i)try{i({},"a",{get:function(){}})}catch(o){i=null}i&&(t=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}(),t?n||(i=function(e,r,t){var n;return n="object"==typeof Node?e instanceof Node:"object"==typeof e&&"number"==typeof e.nodeType&&"string"==typeof e.nodeName,n?e[r]=t.value:Object.defineProperty(e,r,t)}):i=null),e.defineProperty=i,e.hasPropertyAccessors=!0,e.defineProperty||(e.hasPropertyAccessors=!1,e.defineProperty=function(e,r,t){t.get||(e[r]=t.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},r=e(Array.prototype.map)?Array.prototype.map:function(e){if(void 0===this||null===this)throw new TypeError;var r=Object(this),t=r.length>>>0;if("function"!=typeof e)throw new TypeError;for(var n=new Array(t),i=arguments[1],o=0;t>o;o++)o in r&&(n[o]=e.call(i,r[o],o,r));return n},t=e(Array.prototype.forEach)?Array.prototype.forEach:function(e){if(void 0===this||null===this)throw new TypeError;var r=Object(this),t=r.length>>>0;if("function"!=typeof e)throw new TypeError;for(var n=arguments[1],i=0;t>i;i++)i in r&&e.call(n,r[i],i,r)},n=e(Array.prototype.indexOf)?Array.prototype.indexOf:function(e,r){null===r||void 0===r?r=0:0>r&&(r=Math.max(0,this.length+r));for(var t=r,n=this.length;n>t;t++)if(this[t]===e)return t;return-1};Ember.ArrayPolyfills={map:r,forEach:t,indexOf:n},Ember.SHIM_ES5&&(Array.prototype.map||(Array.prototype.map=r),Array.prototype.forEach||(Array.prototype.forEach=t),Array.prototype.indexOf||(Array.prototype.indexOf=n))}(),function(){function e(e){this.descs={},this.watching={},this.cache={},this.source=e}function r(e,r){return!(!e||"function"!=typeof e[r])}var t=Ember.platform.defineProperty,n=Ember.create,i="__ember"+ +new Date,o=0,s=[],a={},u=Ember.ENV.MANDATORY_SETTER;Ember.GUID_KEY=i;var c={writable:!1,configurable:!1,enumerable:!1,value:null};Ember.generateGuid=function(e,r){r||(r="ember");var n=r+o++;return e&&(c.value=n,t(e,i,c)),n},Ember.guidFor=function(e){if(void 0===e)return"(undefined)";if(null===e)return"(null)";var r,n=typeof e;switch(n){case"number":return r=s[e],r||(r=s[e]="nu"+e),r;case"string":return r=a[e],r||(r=a[e]="st"+o++),r;case"boolean":return e?"(true)":"(false)";default:return e[i]?e[i]:e===Object?"(Object)":e===Array?"(Array)":(r="ember"+o++,c.value=r,t(e,i,c),r)}};var h={writable:!0,configurable:!1,enumerable:!1,value:null},l=Ember.GUID_KEY+"_meta";Ember.META_KEY=l;var f={descs:{},watching:{}};u&&(f.values={}),Ember.EMPTY_META=f,Object.freeze&&Object.freeze(f);var m=Ember.platform.defineProperty.isSimulated;m&&(e.prototype.__preventPlainObject__=!0,e.prototype.toJSON=function(){}),Ember.meta=function(r,i){var o=r[l];return i===!1?o||f:(o?o.source!==r&&(m||t(r,l,h),o=n(o),o.descs=n(o.descs),o.watching=n(o.watching),o.cache={},o.source=r,u&&(o.values=n(o.values)),r[l]=o):(m||t(r,l,h),o=new e(r),u&&(o.values={}),r[l]=o,o.descs.constructor=null),o)},Ember.getMeta=function(e,r){var t=Ember.meta(e,!1);return t[r]},Ember.setMeta=function(e,r,t){var n=Ember.meta(e,!0);return n[r]=t,t},Ember.metaPath=function(e,r,t){for(var i,o,s=Ember.meta(e,t),a=0,u=r.length;u>a;a++){if(i=r[a],o=s[i]){if(o.__ember_source__!==e){if(!t)return void 0;o=s[i]=n(o),o.__ember_source__=e}}else{if(!t)return void 0;o=s[i]={__ember_source__:e}}s=o}return o},Ember.wrap=function(e,r){function t(){}function n(){var n,i=this._super;return this._super=r||t,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=r,Ember.tryInvoke=function(e,t,n){return r(e,t)?e[t].apply(e,n||[]):void 0};var b=function(){var e=0;try{try{}finally{throw e++,new Error("needsFinallyFixTest")}}catch(r){}return 1!==e}();Ember.tryFinally=b?function(e,r,t){var n,i,o;t=t||this;try{n=e.call(t)}finally{try{i=r.call(t)}catch(s){o=s}}if(o)throw o;return void 0===i?n:i}:function(e,r,t){var n,i;t=t||this;try{n=e.call(t)}finally{i=r.call(t)}return void 0===i?n:i},Ember.tryCatchFinally=b?function(e,r,t,n){var i,o,s;n=n||this;try{i=e.call(n)}catch(a){i=r.call(n,a)}finally{try{o=t.call(n)}catch(u){s=u}}if(s)throw s;return void 0===o?i:o}:function(e,r,t,n){var i,o;n=n||this;try{i=e.call(n)}catch(s){i=r.call(n,s)}finally{o=t.call(n)}return void 0===o?i:o};var p={},E="Boolean Number String Function Array Date RegExp Object".split(" ");Ember.ArrayPolyfills.forEach.call(E,function(e){p["[object "+e+"]"]=e.toLowerCase()});var d=Object.prototype.toString;Ember.typeOf=function(e){var r;return r=null===e||void 0===e?String(e):p[d.call(e)]||"object","function"===r?Ember.Object&&Ember.Object.detect(e)&&(r="class"):"object"===r&&(r=e instanceof Error?"error":Ember.Object&&e instanceof Ember.Object?"instance":"object"),r}}(),function(){Ember.Instrumentation={};var e=[],r={},t=function(t){for(var n,i=[],o=0,s=e.length;s>o;o++)n=e[o],n.regex.test(t)&&i.push(n.object);return r[t]=i,i},n=function(){var e="undefined"!=typeof window?window.performance||{}:{},r=e.now||e.mozNow||e.webkitNow||e.msNow||e.oNow;return r?r.bind(e):function(){return+new Date}}();Ember.Instrumentation.instrument=function(e,i,o,s){function a(){for(b=0,p=f.length;p>b;b++)m=f[b],E[b]=m.before(e,n(),i);return o.call(s)}function u(e){i=i||{},i.exception=e}function c(){for(b=0,p=f.length;p>b;b++)m=f[b],m.after(e,n(),i,E[b]);Ember.STRUCTURED_PROFILE&&console.timeEnd(h)}var h,l,f=r[e];if(Ember.STRUCTURED_PROFILE&&(h=e+": "+i.object,console.time(h)),f||(f=t(e)),0===f.length)return l=o.call(s),Ember.STRUCTURED_PROFILE&&console.timeEnd(h),l;var m,b,p,E=[];return Ember.tryCatchFinally(a,u,c)},Ember.Instrumentation.subscribe=function(t,n){for(var i,o=t.split("."),s=[],a=0,u=o.length;u>a;a++)i=o[a],"*"===i?s.push("[^\\.]*"):s.push(i);s=s.join("\\."),s+="(\\..*)?";var c={pattern:t,regex:new RegExp("^"+s+"$"),object:n};return e.push(c),r={},c},Ember.Instrumentation.unsubscribe=function(t){for(var n,i=0,o=e.length;o>i;i++)e[i]===t&&(n=i);e.splice(n,1),r={}},Ember.Instrumentation.reset=function(){e=[],r={}},Ember.instrument=Ember.Instrumentation.instrument,Ember.subscribe=Ember.Instrumentation.subscribe}(),function(){var e,r,t,n;n=Array.prototype.concat,e=Array.prototype.map||Ember.ArrayPolyfills.map,r=Array.prototype.forEach||Ember.ArrayPolyfills.forEach,t=Array.prototype.indexOf||Ember.ArrayPolyfills.indexOf;var i=Ember.EnumerableUtils={map:function(r,t,n){return r.map?r.map.call(r,t,n):e.call(r,t,n)},forEach:function(e,t,n){return e.forEach?e.forEach.call(e,t,n):r.call(e,t,n)},indexOf:function(e,r,n){return e.indexOf?e.indexOf.call(e,r,n):t.call(e,r,n)},indexesOf:function(e,r){return void 0===r?[]:i.map(r,function(r){return i.indexOf(e,r)})},addObject:function(e,r){var t=i.indexOf(e,r);-1===t&&e.push(r)},removeObject:function(e,r){var t=i.indexOf(e,r);-1!==t&&e.splice(t,1)},replace:function(e,r,t,i){if(e.replace)return e.replace(r,t,i);var o=n.apply([r,t],i);return e.splice.apply(e,o)},intersection:function(e,r){var t=[];return i.forEach(e,function(e){i.indexOf(r,e)>=0&&t.push(e)}),t}}}(),function(){var e=Ember.guidFor,r=Ember.ArrayPolyfills.indexOf,t=function(e){var r={};for(var t in e)e.hasOwnProperty(t)&&(r[t]=e[t]);return r},n=function(e,r){var n=e.keys.copy(),i=t(e.values);return r.keys=n,r.values=i,r},i=Ember.OrderedSet=function(){this.clear()};i.create=function(){return new i},i.prototype={clear:function(){this.presenceSet={},this.list=[]},add:function(r){var t=e(r),n=this.presenceSet,i=this.list;t in n||(n[t]=!0,i.push(r))},remove:function(t){var n=e(t),i=this.presenceSet,o=this.list;delete i[n];var s=r.call(o,t);s>-1&&o.splice(s,1)},isEmpty:function(){return 0===this.list.length},has:function(r){var t=e(r),n=this.presenceSet;return t in n},forEach:function(e,r){for(var t=this.toArray(),n=0,i=t.length;i>n;n++)e.call(r,t[n])},toArray:function(){return this.list.slice()},copy:function(){var e=new i;return e.presenceSet=t(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={get:function(r){var t=this.values,n=e(r);return t[n]},set:function(r,t){var n=this.keys,i=this.values,o=e(r);n.add(r),i[o]=t},remove:function(r){var t=this.keys,n=this.values,i=e(r);return n.hasOwnProperty(i)?(t.remove(r),delete n[i],!0):!1},has:function(r){var t=this.values,n=e(r);return t.hasOwnProperty(n)},forEach:function(r,t){var n=this.keys,i=this.values;n.forEach(function(n){var o=e(n);r.call(t,n,i[o])})},copy:function(){return n(this,new o)}};var s=Ember.MapWithDefault=function(e){o.call(this),this.defaultValue=e.defaultValue};s.create=function(e){return e?new s(e):new o},s.prototype=Ember.create(o.prototype),s.prototype.get=function(e){var r=this.has(e);if(r)return o.prototype.get.call(this,e);var t=this.defaultValue(e);return this.set(e,t),t},s.prototype.copy=function(){return n(this,new s({defaultValue:this.defaultValue}))}}(),function(){function e(e){return e.match(a)[0]}function r(r,n){var i,a=s.test(n),u=!a&&o.test(n);if((!r||u)&&(r=Ember.lookup),a&&(n=n.slice(5)),r===Ember.lookup&&(i=e(n),r=t(r,i),n=n.slice(i.length+1)),!n||0===n.length)throw new Error("Invalid Path");return[r,n]}var t,n=Ember.META_KEY,i=Ember.ENV.MANDATORY_SETTER,o=/^([A-Z$]|([0-9][A-Z$])).*[\.\*]/,s=/^this[\.\*]/,a=/^([^\.\*]+)/;t=function t(e,r){if(""===r)return e;if(r||"string"!=typeof e||(r=e,e=null),null===e||-1!==r.indexOf("."))return u(e,r);var t,o=e[n],s=o&&o.descs[r];return s?s.get(e,r):(t=i&&o&&o.watching[r]>0?o.values[r]:e[r],void 0!==t||"object"!=typeof e||r in e||"function"!=typeof e.unknownProperty?t:e.unknownProperty(r))},Ember.config.overrideAccessors&&(Ember.get=t,Ember.config.overrideAccessors(),t=Ember.get);var u=Ember._getPath=function(e,n){var i,o,a,u,c;if(null===e&&-1===n.indexOf("."))return t(Ember.lookup,n);for(i=s.test(n),(!e||i)&&(a=r(e,n),e=a[0],n=a[1],a.length=0),o=n.split("."),c=o.length,u=0;void 0!==e&&null!==e&&c>u;u++)if(e=t(e,o[u],!0),e&&e.isDestroyed)return void 0;return e};Ember.normalizeTuple=function(e,t){return r(e,t)},Ember.getWithDefault=function(e,r,n){var i=t(e,r);return void 0===i?n:i},Ember.get=t,Ember.getPath=Ember.deprecateFunc("getPath is deprecated since get now supports paths",Ember.get)}(),function(){function e(e,r,t){for(var n=-1,i=0,o=e.length;o>i;i++)if(r===e[i][0]&&t===e[i][1]){n=i;break}return n}function r(e,r){var t,n=m(e,!0);return n.listeners||(n.listeners={}),n.hasOwnProperty("listeners")||(n.listeners=f(n.listeners)),t=n.listeners[r],t&&!n.listeners.hasOwnProperty(r)?t=n.listeners[r]=n.listeners[r].slice():t||(t=n.listeners[r]=[]),t}function t(r,t,n){var i=r[b],o=i&&i.listeners&&i.listeners[t];if(o)for(var s=o.length-1;s>=0;s--){var a=o[s][0],u=o[s][1],c=o[s][2],h=e(n,a,u);-1===h&&n.push([a,u,c])}}function n(r,t,n){var i=r[b],o=i&&i.listeners&&i.listeners[t],s=[];if(o){for(var a=o.length-1;a>=0;a--){var u=o[a][0],c=o[a][1],h=o[a][2],l=e(n,u,c);-1===l&&(n.push([u,c,h]),s.push([u,c,h]))}return s}}function i(t,n,i,o,s){o||"function"!=typeof i||(o=i,i=null);var a=r(t,n),u=e(a,i,o),c=0;s&&(c|=p),-1===u&&(a.push([i,o,c]),"function"==typeof t.didAddListener&&t.didAddListener(n,i,o))}function o(t,n,i,o){function s(i,o){var s=r(t,n),a=e(s,i,o);-1!==a&&(s.splice(a,1),"function"==typeof t.didRemoveListener&&t.didRemoveListener(n,i,o))}if(o||"function"!=typeof i||(o=i,i=null),o)s(i,o);else{var a=t[b],u=a&&a.listeners&&a.listeners[n];if(!u)return;for(var c=u.length-1;c>=0;c--)s(u[c][0],u[c][1])}}function s(t,n,i,o,s){function a(){return s.call(i)}function u(){c&&(c[2]&=~E)}o||"function"!=typeof i||(o=i,i=null);var c,h=r(t,n),l=e(h,i,o);return-1!==l&&(c=h[l].slice(),c[2]|=E,h[l]=c),Ember.tryFinally(a,u)}function a(t,n,i,o,s){function a(){return s.call(i)}function u(){for(f=0,m=b.length;m>f;f++)b[f][2]&=~E}o||"function"!=typeof i||(o=i,i=null);var c,h,l,f,m,b=[];for(f=0,m=n.length;m>f;f++){c=n[f],h=r(t,c);var p=e(h,i,o);-1!==p&&(l=h[p].slice(),l[2]|=E,h[p]=l,b.push(l))}return Ember.tryFinally(a,u)}function u(e){var r=e[b].listeners,t=[];if(r)for(var n in r)r[n]&&t.push(n);return t}function c(e,r,t,n){if(e!==Ember&&"function"==typeof e.sendEvent&&e.sendEvent(r,t),!n){var i=e[b];n=i&&i.listeners&&i.listeners[r]}if(n){for(var s=n.length-1;s>=0;s--){var a=n[s];if(a){var u=a[0],c=a[1],h=a[2];h&E||(h&p&&o(e,r,u,c),u||(u=e),"string"==typeof c&&(c=u[c]),t?c.apply(u,t):c.call(u))}}return!0}}function h(e,r){var t=e[b],n=t&&t.listeners&&t.listeners[r];return!(!n||!n.length)}function l(e,r){var t=[],n=e[b],i=n&&n.listeners&&n.listeners[r];if(!i)return t;for(var o=0,s=i.length;s>o;o++){var a=i[o][0],u=i[o][1];t.push([a,u])}return t}var f=Ember.create,m=Ember.meta,b=Ember.META_KEY,p=1,E=2;Ember.addListener=i,Ember.removeListener=o,Ember._suspendListener=s,Ember._suspendListeners=a,Ember.sendEvent=c,Ember.hasListeners=h,Ember.watchedEvents=u,Ember.listenersFor=l,Ember.listenersDiff=n,Ember.listenersUnion=t}(),function(){var e=Ember.guidFor,r=Ember.sendEvent,t=Ember._ObserverSet=function(){this.clear()};t.prototype.add=function(r,t,n){var i,o=this.observerSet,s=this.observers,a=e(r),u=o[a];return u||(o[a]=u={}),i=u[t],void 0===i&&(i=s.push({sender:r,keyName:t,eventName:n,listeners:[]})-1,u[t]=i),s[i].listeners},t.prototype.flush=function(){var e,t,n,i,o=this.observers;for(this.clear(),e=0,t=o.length;t>e;++e)n=o[e],i=n.sender,i.isDestroying||i.isDestroyed||r(i,n.eventName,[i,n.keyName],n.listeners)},t.prototype.clear=function(){this.observerSet={},this.observers=[]}}(),function(){function e(e,r,i){if(!e.isDestroying){var o=n,s=!o;s&&(o=n={}),t(p,e,r,o,i),s&&(n=null)}}function r(e,r,n){if(!e.isDestroying){var o=i,s=!o;s&&(o=i={}),t(E,e,r,o,n),s&&(i=null)}}function t(e,r,t,n,i){var o=s(r);if(n[o]||(n[o]={}),!n[o][t]){n[o][t]=!0;var a=i.deps;if(a=a&&a[t])for(var u in a){var c=i.descs[u];c&&c._suspended===r||e(r,u)}}}var n,i,o=Ember.meta,s=Ember.guidFor,a=Ember.tryFinally,u=Ember.sendEvent,c=Ember.listenersUnion,h=Ember.listenersDiff,l=Ember._ObserverSet,f=new l,m=new l,b=0,p=Ember.propertyWillChange=function(r,t){var n=o(r,!1),i=n.watching[t]>0||"length"===t,s=n.proto,a=n.descs[t];i&&s!==r&&(a&&a.willChange&&a.willChange(r,t),e(r,t,n),d(r,t,n),_(r,t))},E=Ember.propertyDidChange=function(e,t){var n=o(e,!1),i=n.watching[t]>0||"length"===t,s=n.proto,a=n.descs[t];s!==e&&(a&&a.didChange&&a.didChange(e,t),(i||"length"===t)&&(r(e,t,n),v(e,t,n),O(e,t)))},d=function(e,r,t,n){if(t.hasOwnProperty("chainWatchers")){var i=t.chainWatchers;if(i=i[r])for(var o=0,s=i.length;s>o;o++)i[o].willChange(n)}},v=function(e,r,t,n){if(t.hasOwnProperty("chainWatchers")){var i=t.chainWatchers;if(i=i[r])for(var o=i.length-1;o>=0;o--)i[o].didChange(n)}};Ember.overrideChains=function(e,r,t){v(e,r,t,!0)};var g=Ember.beginPropertyChanges=function(){b++},y=Ember.endPropertyChanges=function(){b--,0>=b&&(f.clear(),m.flush())};Ember.changeProperties=function(e,r){g(),a(e,y,r)};var _=function(e,r){if(!e.isDestroying){var t,n,i=r+":before";b?(t=f.add(e,r,i),n=h(e,i,t),u(e,i,[e,r],n)):u(e,i,[e,r])}},O=function(e,r){if(!e.isDestroying){var t,n=r+":change";b?(t=m.add(e,r,n),c(e,n,t)):u(e,n,[e,r])}}}(),function(){function e(e,r,t,o){var s;if(s=r.slice(r.lastIndexOf(".")+1),r=r.slice(0,r.length-(s.length+1)),"this"!==r&&(e=n(e,r)),!s||0===s.length)throw new Error("You passed an empty path");if(!e){if(o)return;throw new Error("Object in path "+r+" could not be found or was destroyed.")}return i(e,s,t)}var r=Ember.META_KEY,t=Ember.ENV.MANDATORY_SETTER,n=Ember._getPath,i=function i(n,i,o,s){if("string"==typeof n&&(o=i,i=n,n=null),!n||-1!==i.indexOf("."))return e(n,i,o,s);var a,u,c=n[r],h=c&&c.descs[i];return h?h.set(n,i,o):(a="object"==typeof n&&!(i in n),a&&"function"==typeof n.setUnknownProperty?n.setUnknownProperty(i,o):c&&c.watching[i]>0?(u=t?c.values[i]:n[i],o!==u&&(Ember.propertyWillChange(n,i),t?void 0!==u||i in n?c.values[i]=o:Ember.defineProperty(n,i,null,o):n[i]=o,Ember.propertyDidChange(n,i))):n[i]=o),o};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,r,t){return i(e,r,t,!0)},Ember.trySetPath=Ember.deprecateFunc("trySetPath has been renamed to trySet",Ember.trySet)}(),function(){var e=Ember.META_KEY,r=Ember.meta,t=Ember.platform.defineProperty,n=Ember.ENV.MANDATORY_SETTER;Ember.Descriptor=function(){};var i=Ember.MANDATORY_SETTER_FUNCTION=function(){},o=Ember.DEFAULT_GETTER_FUNCTION=function(r){return function(){var t=this[e];return t&&t.values[r]}};Ember.defineProperty=function(e,s,a,u,c){var h,l,f,m;return c||(c=r(e)),h=c.descs,l=c.descs[s],f=c.watching[s]>0,l instanceof Ember.Descriptor&&l.teardown(e,s),a instanceof Ember.Descriptor?(m=a,h[s]=a,n&&f?t(e,s,{configurable:!0,enumerable:!0,writable:!0,value:void 0}):e[s]=void 0,a.setup(e,s)):(h[s]=void 0,null==a?(m=u,n&&f?(c.values[s]=u,t(e,s,{configurable:!0,enumerable:!0,set:i,get:o(s)})):e[s]=u):(m=a,t(e,s,a))),f&&Ember.overrideChains(e,s,c),e.didDefineProperty&&e.didDefineProperty(e,s,m),this}}(),function(){var e=Ember.changeProperties,r=Ember.set;Ember.setProperties=function(t,n){return e(function(){for(var e in n)n.hasOwnProperty(e)&&r(t,e,n[e])}),t}}(),function(){var e=Ember.meta,r=Ember.typeOf,t=Ember.ENV.MANDATORY_SETTER,n=Ember.platform.defineProperty;Ember.watchKey=function(i,o){if("length"!==o||"array"!==r(i)){var s,a=e(i),u=a.watching;u[o]?u[o]=(u[o]||0)+1:(u[o]=1,s=a.descs[o],s&&s.willWatch&&s.willWatch(i,o),"function"==typeof i.willWatchProperty&&i.willWatchProperty(o),t&&o in i&&(a.values[o]=i[o],n(i,o,{configurable:!0,enumerable:!0,set:Ember.MANDATORY_SETTER_FUNCTION,get:Ember.DEFAULT_GETTER_FUNCTION(o)})))}},Ember.unwatchKey=function(r,i){var o,s=e(r),a=s.watching;1===a[i]?(a[i]=0,o=s.descs[i],o&&o.didUnwatch&&o.didUnwatch(r,i),"function"==typeof r.didUnwatchProperty&&r.didUnwatchProperty(i),t&&i in r&&(n(r,i,{configurable:!0,enumerable:!0,writable:!0,value:s.values[i]}),delete s.values[i])):a[i]>1&&a[i]--}}(),function(){function e(e){return e.match(f)[0]}function r(e,r,t){if(e&&"object"==typeof e){var i=n(e),o=i.chainWatchers;i.hasOwnProperty("chainWatchers")||(o=i.chainWatchers={}),o[r]||(o[r]=[]),o[r].push(t),u(e,r)}}function t(e){return n(e,!1).proto===e}var n=Ember.meta,i=Ember.get,o=Ember.normalizeTuple,s=Ember.ArrayPolyfills.forEach,a=Ember.warn,u=Ember.watchKey,c=Ember.unwatchKey,h=Ember.propertyWillChange,l=Ember.propertyDidChange,f=/^([^\.\*]+)/,m=[];Ember.flushPendingChains=function(){if(0!==m.length){var e=m;m=[],s.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===m.length)}};var b=Ember.removeChainWatcher=function(e,r,t){if(e&&"object"==typeof e){var i=n(e,!1);if(i.hasOwnProperty("chainWatchers")){var o=i.chainWatchers;if(o[r]){o=o[r];for(var s=0,a=o.length;a>s;s++)o[s]===t&&o.splice(s,1)}c(e,r)}}},p=Ember._ChainNode=function(e,t,n){this._parent=e,this._key=t,this._watching=void 0===n,this._value=n,this._paths={},this._watching&&(this._object=e.value(),this._object&&r(this._object,this._key,this)),this._parent&&"@each"===this._parent._key&&this.value()},E=p.prototype;E.value=function(){if(void 0===this._value&&this._watching){var e=this._parent.value();this._value=e&&!t(e)?i(e,this._key):void 0}return this._value},E.destroy=function(){if(this._watching){var e=this._object;e&&b(e,this._key,this),this._watching=!1}},E.copy=function(e){var r,t=new p(null,null,e),n=this._paths;for(r in n)0>=n[r]||t.add(r);return t},E.add=function(r){var t,n,i,s,a;if(a=this._paths,a[r]=(a[r]||0)+1,t=this.value(),n=o(t,r),n[0]&&n[0]===t)r=n[1],i=e(r),r=r.slice(i.length+1);else{if(!n[0])return m.push([this,r]),n.length=0,void 0;s=n[0],i=r.slice(0,0-(n[1].length+1)),r=n[1]}n.length=0,this.chain(i,r,s)},E.remove=function(r){var t,n,i,s,a;a=this._paths,a[r]>0&&a[r]--,t=this.value(),n=o(t,r),n[0]===t?(r=n[1],i=e(r),r=r.slice(i.length+1)):(s=n[0],i=r.slice(0,0-(n[1].length+1)),r=n[1]),n.length=0,this.unchain(i,r)},E.count=0,E.chain=function(r,t,n){var i,o=this._chains;o||(o=this._chains={}),i=o[r],i||(i=o[r]=new p(this,r,n)),i.count++,t&&t.length>0&&(r=e(t),t=t.slice(r.length+1),i.chain(r,t))},E.unchain=function(r,t){var n=this._chains,i=n[r];t&&t.length>1&&(r=e(t),t=t.slice(r.length+1),i.unchain(r,t)),i.count--,0>=i.count&&(delete n[i._key],i.destroy())},E.willChange=function(){var e=this._chains;if(e)for(var r in e)e.hasOwnProperty(r)&&e[r].willChange();this._parent&&this._parent.chainWillChange(this,this._key,1)},E.chainWillChange=function(e,r,t){this._key&&(r=this._key+"."+r),this._parent?this._parent.chainWillChange(this,r,t+1):(t>1&&h(this.value(),r),r="this."+r,this._paths[r]>0&&h(this.value(),r))},E.chainDidChange=function(e,r,t){this._key&&(r=this._key+"."+r),this._parent?this._parent.chainDidChange(this,r,t+1):(t>1&&l(this.value(),r),r="this."+r,this._paths[r]>0&&l(this.value(),r))},E.didChange=function(e){if(this._watching){var t=this._parent.value();t!==this._object&&(b(this._object,this._key,this),this._object=t,r(t,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 r=n(e,!1),t=r.chains;t&&(t.value()!==e&&(r.chains=t=t.copy(e)),t.didChange(!0))}}(),function(){function e(e){var t=r(e),i=t.chains;return i?i.value()!==e&&(i=t.chains=i.copy(e)):i=t.chains=new n(null,null,e),i}var r=Ember.meta,t=Ember.typeOf,n=Ember._ChainNode;Ember.watchPath=function(n,i){if("length"!==i||"array"!==t(n)){var o=r(n),s=o.watching;s[i]?s[i]=(s[i]||0)+1:(s[i]=1,e(n).add(i))}},Ember.unwatchPath=function(t,n){var i=r(t),o=i.watching;1===o[n]?(o[n]=0,e(t).remove(n)):o[n]>1&&o[n]--}}(),function(){function e(e){return"*"===e||!l.test(e)}var r=Ember.meta,t=Ember.GUID_KEY,n=Ember.META_KEY,i=Ember.removeChainWatcher,o=Ember.watchKey,s=Ember.unwatchKey,a=Ember.watchPath,u=Ember.unwatchPath,c=Ember.typeOf,h=Ember.generateGuid,l=/[\.\*]/;Ember.watch=function(r,t){("length"!==t||"array"!==c(r))&&(e(t)?o(r,t):a(r,t))},Ember.isWatching=function(e,r){var t=e[n];return(t&&t.watching[r])>0},Ember.watch.flushPending=Ember.flushPendingChains,Ember.unwatch=function(r,t){("length"!==t||"array"!==c(r))&&(e(t)?s(r,t):u(r,t))},Ember.rewatch=function(e){var n=r(e,!1),i=n.chains;t in e&&!e.hasOwnProperty(t)&&h(e,"ember"),i&&i.value()!==e&&(n.chains=i.copy(e))};var f=[];Ember.destroy=function(e){var r,t,o,s,a=e[n];if(a&&(e[n]=null,r=a.chains))for(f.push(r);f.length>0;){if(r=f.pop(),t=r._chains)for(o in t)t.hasOwnProperty(o)&&f.push(t[o]);r._watching&&(s=r._object,s&&i(s,r._key,r))}}}(),function(){function e(e,r){var t=e[r];return t?e.hasOwnProperty(r)||(t=e[r]=f(t)):t=e[r]={},t}function r(r){return e(r,"deps")}function t(t,n,i,o){var s,a,u,c,h,l=t._dependentKeys;if(l)for(s=r(o),a=0,u=l.length;u>a;a++)c=l[a],h=e(s,c),h[i]=(h[i]||0)+1,b(n,c)}function n(t,n,i,o){var s,a,u,c,h,l=t._dependentKeys;if(l)for(s=r(o),a=0,u=l.length;u>a;a++)c=l[a],h=e(s,c),h[i]=(h[i]||0)-1,p(n,c)}function i(e,r){this.func=e,this._cacheable=r&&void 0!==r.cacheable?r.cacheable:!0,this._dependentKeys=r&&r.dependentKeys,this._readOnly=r&&(void 0!==r.readOnly||!!r.readOnly)}function o(e,r){for(var t={},n=0;r.length>n;n++)t[r[n]]=u(e,r[n]);return t}function s(e,r){Ember.computed[e]=function(e){var t=l.call(arguments);return Ember.computed(e,function(){return r.apply(this,t)})}}function a(e,r){Ember.computed[e]=function(){var e=l.call(arguments),t=Ember.computed(function(){return r.apply(this,[o(this,e)])});return t.property.apply(t,e)}}var u=Ember.get,c=Ember.set,h=Ember.meta,l=[].slice,f=Ember.create,m=Ember.META_KEY,b=Ember.watch,p=Ember.unwatch;Ember.ComputedProperty=i,i.prototype=new Ember.Descriptor;var E=i.prototype;E.cacheable=function(e){return this._cacheable=e!==!1,this},E.volatile=function(){return this.cacheable(!1)},E.readOnly=function(e){return this._readOnly=void 0===e||!!e,this},E.property=function(){for(var e=[],r=0,t=arguments.length;t>r;r++)e.push(arguments[r]);return this._dependentKeys=e,this},E.meta=function(e){return 0===arguments.length?this._meta||{}:(this._meta=e,this)},E.willWatch=function(e,r){var n=e[m];r in n.cache||t(this,e,r,n)},E.didUnwatch=function(e,r){var t=e[m];r in t.cache||n(this,e,r,t)},E.didChange=function(e,r){if(this._cacheable&&this._suspended!==e){var t=h(e);r in t.cache&&(delete t.cache[r],t.watching[r]||n(this,e,r,t))}},E.get=function(e,r){var n,i,o;if(this._cacheable){if(o=h(e),i=o.cache,r in i)return i[r];n=i[r]=this.func.call(e,r),o.watching[r]||t(this,e,r,o)}else n=this.func.call(e,r);return n},E.set=function(e,r,n){var i,o,s=this._cacheable,a=this.func,u=h(e,s),c=u.watching[r],l=this._suspended,f=!1,m=u.cache;if(this._readOnly)throw new Error("Cannot Set: "+r+" on: "+e.toString());this._suspended=e;try{if(s&&m.hasOwnProperty(r)&&(i=m[r],f=!0),a.wrappedFunction&&(a=a.wrappedFunction),3===a.length)o=a.call(e,r,n,i);else{if(2!==a.length)return Ember.defineProperty(e,r,null,i),Ember.set(e,r,n),void 0;o=a.call(e,r,n)}if(f&&i===o)return;c&&Ember.propertyWillChange(e,r),f&&delete m[r],s&&(c||f||t(this,e,r,u),m[r]=o),c&&Ember.propertyDidChange(e,r)}finally{this._suspended=l}return o},E.setup=function(e,r){var n=e[m];n&&n.watching[r]&&t(this,e,r,h(e))},E.teardown=function(e,r){var t=h(e);return(t.watching[r]||r in t.cache)&&n(this,e,r,t),this._cacheable&&delete t.cache[r],null},Ember.computed=function(e){var r;if(arguments.length>1&&(r=l.call(arguments,0,-1),e=l.call(arguments,-1)[0]),"function"!=typeof e)throw new Error("Computed Property declared without a property function");var t=new i(e);return r&&t.property.apply(t,r),t},Ember.cacheFor=function(e,r){var t=h(e,!1).cache;return t&&r in t?t[r]:void 0},s("empty",function(e){return Ember.isEmpty(u(this,e))}),s("notEmpty",function(e){return!Ember.isEmpty(u(this,e))}),s("none",function(e){return Ember.isNone(u(this,e))}),s("not",function(e){return!u(this,e)}),s("bool",function(e){return!!u(this,e)}),s("match",function(e,r){var t=u(this,e);return"string"==typeof t?!!t.match(r):!1}),s("equal",function(e,r){return u(this,e)===r}),s("gt",function(e,r){return u(this,e)>r}),s("gte",function(e,r){return u(this,e)>=r}),s("lt",function(e,r){return r>u(this,e)}),s("lte",function(e,r){return r>=u(this,e)}),a("and",function(e){for(var r in e)if(e.hasOwnProperty(r)&&!e[r])return!1;return!0}),a("or",function(e){for(var r in e)if(e.hasOwnProperty(r)&&e[r])return!0;return!1}),a("any",function(e){for(var r in e)if(e.hasOwnProperty(r)&&e[r])return e[r];return null}),a("map",function(e){var r=[];for(var t in e)e.hasOwnProperty(t)&&(Ember.isNone(e[t])?r.push(null):r.push(e[t]));return r}),Ember.computed.alias=function(e){return Ember.computed(e,function(r,t){return arguments.length>1?(c(this,e,t),t):u(this,e)})},Ember.computed.defaultTo=function(e){return Ember.computed(function(r,t,n){return 1===arguments.length?null!=n?n:u(this,e):null!=t?t:u(this,e)})}}(),function(){function e(e){return e+t}function r(e){return e+n}var t=":change",n=":before";Ember.guidFor,Ember.addObserver=function(r,t,n,i){return Ember.addListener(r,e(t),n,i),Ember.watch(r,t),this},Ember.observersFor=function(r,t){return Ember.listenersFor(r,e(t))},Ember.removeObserver=function(r,t,n,i){return Ember.unwatch(r,t),Ember.removeListener(r,e(t),n,i),this},Ember.addBeforeObserver=function(e,t,n,i){return Ember.addListener(e,r(t),n,i),Ember.watch(e,t),this},Ember._suspendBeforeObserver=function(e,t,n,i,o){return Ember._suspendListener(e,r(t),n,i,o)},Ember._suspendObserver=function(r,t,n,i,o){return Ember._suspendListener(r,e(t),n,i,o)};var i=Ember.ArrayPolyfills.map;Ember._suspendBeforeObservers=function(e,t,n,o,s){var a=i.call(t,r);return Ember._suspendListeners(e,a,n,o,s)},Ember._suspendObservers=function(r,t,n,o,s){var a=i.call(t,e);return Ember._suspendListeners(r,a,n,o,s)},Ember.beforeObserversFor=function(e,t){return Ember.listenersFor(e,r(t))},Ember.removeBeforeObserver=function(e,t,n,i){return Ember.unwatch(e,t),Ember.removeListener(e,r(t),n,i),this}}(),function(){function e(e,r,t,n){return void 0===r&&(r=e,e=void 0),"string"==typeof r&&(r=e[r]),t&&n>0&&(t=t.length>n?s.call(t,n):null),Ember.handleErrors(function(){return r.apply(e||this,t||[])},this)}function r(){h=null,c.currentRunLoop&&c.end()}function t(e,r){var t=e.expires,n=r.expires;return t>n?1:n>t?-1:0}function n(){l=null,c(function(){var r=+new Date,i=-1,o=[];for(var s in m)if(m.hasOwnProperty(s)){var u=m[s];u&&u.expires&&(r>=u.expires?(delete m[s],o.push(u)):(0>i||i>u.expires)&&(i=u.expires))}a.call(o.sort(t),function(r){e(r.target,r.method,r.args,2)}),i>0&&(l=window.setTimeout(n,i-r),f=i)})}function i(r,t){t[this.tguid]&&delete t[this.tguid][this.mguid],m[r]&&e(this.target,this.method,this.args),delete m[r]}function o(e,r,t,n){var o,s=Ember.guidFor(r),a=Ember.guidFor(t),u=c.autorun().onceTimers,h=u[s]&&u[s][a];return h&&m[h]?m[h].args=n:(o={target:r,method:t,args:n,tguid:s,mguid:a},h=Ember.guidFor(o),m[h]=o,u[s]||(u[s]={}),u[s][a]=h,c.schedule(e,o,i,h,u)),h}var s=[].slice,a=Ember.ArrayPolyfills.forEach,u=function(e){this._prev=e||null,this.onceTimers={}};u.prototype={end:function(){this.flush()},prev:function(){return this._prev},schedule:function(e,r,t){var n,i=this._queues;i||(i=this._queues={}),n=i[e],n||(n=i[e]=[]);var o=arguments.length>3?s.call(arguments,3):null;return n.push({target:r,method:t,args:o}),this
16
+ },flush:function(r){function t(r){e(r.target,r.method,r.args)}function n(){a.call(u,t)}var i,o,s,u,c;if(!this._queues)return this;if(Ember.watch.flushPending(),r)for(;this._queues&&(u=this._queues[r]);)this._queues[r]=null,"sync"===r?(c=Ember.LOG_BINDINGS,c&&Ember.Logger.log("Begin: Flush Sync Queue"),Ember.beginPropertyChanges(),Ember.tryFinally(n,Ember.endPropertyChanges),c&&Ember.Logger.log("End: Flush Sync Queue")):a.call(u,t);else{i=Ember.run.queues,s=i.length,o=0;e:for(;s>o;){r=i[o],u=this._queues&&this._queues[r],delete this._queues[r],u&&("sync"===r?(c=Ember.LOG_BINDINGS,c&&Ember.Logger.log("Begin: Flush Sync Queue"),Ember.beginPropertyChanges(),Ember.tryFinally(n,Ember.endPropertyChanges),c&&Ember.Logger.log("End: Flush Sync Queue")):a.call(u,t));for(var h=0;o>=h;h++)if(this._queues&&this._queues[i[h]]){o=h;continue e}o++}}return this}},Ember.RunLoop=u,Ember.run=function(r,t){function n(){return r||t?e(r,t,i,2):void 0}var i=arguments;return c.begin(),Ember.tryFinally(n,c.end)};var c=Ember.run;Ember.run.begin=function(){c.currentRunLoop=new u(c.currentRunLoop)},Ember.run.end=function(){function e(){c.currentRunLoop.end()}function r(){c.currentRunLoop=c.currentRunLoop.prev()}Ember.tryFinally(e,r)},Ember.run.queues=["sync","actions","destroy"],Ember.run.schedule=function(){var e=c.autorun();e.schedule.apply(e,arguments)};var h;Ember.run.hasScheduledTimers=function(){return!(!h&&!l)},Ember.run.cancelTimers=function(){h&&(clearTimeout(h),h=null),l&&(clearTimeout(l),l=null),m={}},Ember.run.autorun=function(){return c.currentRunLoop||(c.begin(),h||(h=setTimeout(r,1))),c.currentRunLoop},Ember.run.sync=function(){c.autorun(),c.currentRunLoop.flush("sync")};var l,f,m={};Ember.run.later=function(e,r){var t,i,o,a,u;return 2===arguments.length&&"function"==typeof e?(u=r,r=e,e=void 0,t=[e,r]):(t=s.call(arguments),u=t.pop()),i=+new Date+u,o={target:e,method:r,expires:i,args:t},a=Ember.guidFor(o),m[a]=o,l&&f>i&&(clearTimeout(l),l=null),l||(l=setTimeout(n,u),f=i),a},Ember.run.once=function(e,r){return o("actions",e,r,s.call(arguments,2))},Ember.run.scheduleOnce=function(e,r,t){return o(e,r,t,s.call(arguments,3))},Ember.run.next=function(){var e=s.call(arguments);return e.push(1),c.later.apply(this,e)},Ember.run.cancel=function(e){delete m[e]}}(),function(){function e(e,r){return t(o(r)?Ember.lookup:e,r)}function r(e,r){for(var t in r)r.hasOwnProperty(t)&&(e[t]=r[t])}Ember.LOG_BINDINGS=!1||!!Ember.ENV.LOG_BINDINGS;var t=Ember.get,n=(Ember.set,Ember.guidFor),i=/^([A-Z$]|([0-9][A-Z$]))/,o=Ember.isGlobalPath=function(e){return i.test(e)},s=function(e,r){this._direction="fwd",this._from=r,this._to=e,this._directionMap=Ember.Map.create()};s.prototype={copy:function(){var e=new s(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(r){var t=this._from,n=this._to;return Ember.trySet(r,n,e(r,t)),Ember.addObserver(r,t,this,this.fromDidChange),this._oneWay||Ember.addObserver(r,n,this,this.toDidChange),this._readyToSync=!0,this},disconnect:function(e){var r=!this._oneWay;return Ember.removeObserver(e,this._from,this,this.fromDidChange),r&&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,r){var t=this._directionMap,n=t.get(e);n||(Ember.run.schedule("sync",this,this._sync,e),t.set(e,r)),"back"===n&&"fwd"===r&&t.set(e,"fwd")},_sync:function(r){var n=Ember.LOG_BINDINGS;if(!r.isDestroyed&&this._readyToSync){var i=this._directionMap,o=i.get(r),s=this._from,a=this._to;if(i.remove(r),"fwd"===o){var u=e(r,this._from);n&&Ember.Logger.log(" ",this.toString(),"->",u,r),this._oneWay?Ember.trySet(r,a,u):Ember._suspendObserver(r,a,this,this.toDidChange,function(){Ember.trySet(r,a,u)})}else if("back"===o){var c=t(r,this._to);n&&Ember.Logger.log(" ",this.toString(),"<-",c,r),Ember._suspendObserver(r,s,this,this.fromDidChange,function(){Ember.trySet(Ember.isGlobalPath(s)?Ember.lookup:r,s,c)})}}}},r(s,{from:function(){var e=this,r=new e;return r.from.apply(r,arguments)},to:function(){var e=this,r=new e;return r.to.apply(r,arguments)},oneWay:function(e,r){var t=this,n=new t(null,e);return n.oneWay(r)}}),Ember.Binding=s,Ember.bind=function(e,r,t){return new Ember.Binding(r,t).connect(e)},Ember.oneWay=function(e,r,t){return new Ember.Binding(r,t).oneWay().connect(e)}}(),function(){function e(e){var r=Ember.meta(e,!0),t=r.mixins;return t?r.hasOwnProperty("mixins")||(t=r.mixins=A(t)):t=r.mixins={},t}function r(e,r){return r&&r.length>0&&(e.mixins=O.call(r,function(e){if(e instanceof g)return e;var r=new g;return r.properties=e,r})),e}function t(e){return"function"==typeof e&&e.isMethod!==!1&&e!==Boolean&&e!==Object&&e!==Number&&e!==Array&&e!==Date&&e!==String}function n(e,r){var t;return r instanceof g?(t=S(r),e[t]?D:(e[t]=r,r.properties)):r}function i(e,r,t){var n;return n=r.concatenatedProperties||t.concatenatedProperties,e.concatenatedProperties&&(n=n?n.concat(e.concatenatedProperties):e.concatenatedProperties),n}function o(e,r,t,n,i){var o;return void 0===n[r]&&(o=i[r]),o=o||e.descs[r],o&&o instanceof Ember.ComputedProperty?(t=A(t),t.func=Ember.wrap(t.func,o.func),t):t}function s(e,r,t,n,i){var o;return void 0===i[r]&&(o=n[r]),o=o||e[r],"function"!=typeof o?t:Ember.wrap(t,o)}function a(e,r,t,n){var i=n[r]||e[r];return i?"function"==typeof i.concat?i.concat(t):Ember.makeArray(i).concat(t):Ember.makeArray(t)}function u(e,r,n,i,u,c,h){if(n instanceof Ember.Descriptor){if(n===y&&u[r])return D;n.func&&(n=o(i,r,n,c,u)),u[r]=n,c[r]=void 0}else t(n)?n=s(e,r,n,c,u):(h&&C.call(h,r)>=0||"concatenatedProperties"===r)&&(n=a(e,r,n,c)),u[r]=void 0,c[r]=n}function c(e,r,t,o,s,a){function h(e){delete t[e],delete o[e]}for(var l,f,m,b,p,E=0,d=e.length;d>E;E++)if(l=e[E],f=n(r,l),f!==D)if(f){p=Ember.meta(s),b=i(f,o,s);for(m in f)f.hasOwnProperty(m)&&(a.push(m),u(s,m,f[m],p,t,o,b));f.hasOwnProperty("toString")&&(s.toString=f.toString)}else l.mixins&&(c(l.mixins,r,t,o,s,a),l._without&&w.call(l._without,h))}function h(e,r,t,n){if(x.test(r)){var i=n.bindings;i?n.hasOwnProperty("bindings")||(i=n.bindings=A(n.bindings)):i=n.bindings={},i[r]=t}}function l(e,r){var t,n,i,o=r.bindings;if(o){for(t in o)n=o[t],n&&(i=t.slice(0,-7),n instanceof Ember.Binding?(n=n.copy(),n.to(i)):n=new Ember.Binding(i,n),n.connect(e),e[t]=n);r.bindings={}}}function f(e,r){return l(e,r||Ember.meta(e)),e}function m(e,r,t,n,i){var o,s=r.methodName;return n[s]||i[s]?(o=i[s],r=n[s]):t.descs[s]?(r=t.descs[s],o=void 0):(r=void 0,o=e[s]),{desc:r,value:o}}function b(e,r,t,n,i){if("function"==typeof t){var o=t[n];if(o)for(var s=0,a=o.length;a>s;s++)Ember[i](e,o[s],null,r)}}function p(e,r,t){var n=e[r];b(e,r,n,"__ember_observesBefore__","removeBeforeObserver"),b(e,r,n,"__ember_observes__","removeObserver"),b(e,r,t,"__ember_observesBefore__","addBeforeObserver"),b(e,r,t,"__ember_observes__","addObserver")}function E(r,t,n){var i,o,s,a={},u={},l=Ember.meta(r),b=[];c(t,e(r),a,u,r,b);for(var E=0,d=b.length;d>E;E++)if(i=b[E],"constructor"!==i&&u.hasOwnProperty(i)&&(s=a[i],o=u[i],s!==y)){for(;s&&s instanceof _;){var v=m(r,s,l,a,u);s=v.desc,o=v.value}(void 0!==s||void 0!==o)&&(p(r,i,o),h(r,i,o,l),j(r,i,s,o,l))}return n||f(r,l),r}function d(e,r,t){var n=S(e);if(t[n])return!1;if(t[n]=!0,e===r)return!0;for(var i=e.mixins,o=i?i.length:0;--o>=0;)if(d(i[o],r,t))return!0;return!1}function v(e,r,t){if(!t[S(r)])if(t[S(r)]=!0,r.properties){var n=r.properties;for(var i in n)n.hasOwnProperty(i)&&(e[i]=!0)}else r.mixins&&w.call(r.mixins,function(r){v(e,r,t)})}var g,y,_,O=Ember.ArrayPolyfills.map,C=Ember.ArrayPolyfills.indexOf,w=Ember.ArrayPolyfills.forEach,P=[].slice,A=Ember.create,j=Ember.defineProperty,S=Ember.guidFor,D={},x=Ember.IS_BINDING=/^.+Binding$/;Ember.mixin=function(e){var r=P.call(arguments,1);return E(e,r,!1),e},Ember.Mixin=function(){return r(this,arguments)},g=Ember.Mixin,g.prototype={properties:null,mixins:null,ownerConstructor:null},g._apply=E,g.applyPartial=function(e){var r=P.call(arguments,1);return E(e,r,!0)},g.finishPartial=f,Ember.anyUnprocessedMixins=!1,g.create=function(){Ember.anyUnprocessedMixins=!0;var e=this;return r(new e,arguments)};var N=g.prototype;N.reopen=function(){var e,r;this.properties?(e=g.create(),e.properties=this.properties,delete this.properties,this.mixins=[e]):this.mixins||(this.mixins=[]);var t,n=arguments.length,i=this.mixins;for(t=0;n>t;t++)e=arguments[t],e instanceof g?i.push(e):(r=g.create(),r.properties=e,i.push(r));return this},N.apply=function(e){return E(e,[this],!1)},N.applyPartial=function(e){return E(e,[this],!0)},N.detect=function(e){if(!e)return!1;if(e instanceof g)return d(e,this,{});var r=Ember.meta(e,!1).mixins;return r?!!r[S(this)]:!1},N.without=function(){var e=new g(this);return e._without=P.call(arguments),e},N.keys=function(){var e={},r={},t=[];v(e,this,r);for(var n in e)e.hasOwnProperty(n)&&t.push(n);return t},g.mixins=function(e){var r=Ember.meta(e,!1).mixins,t=[];if(!r)return t;for(var n in r){var i=r[n];i.properties||t.push(i)}return t},y=new Ember.Descriptor,y.toString=function(){return"(Required Property)"},Ember.required=function(){return y},_=function(e){this.methodName=e},_.prototype=new Ember.Descriptor,Ember.alias=function(e){return new _(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 _(e)},Ember.observer=function(e){var r=P.call(arguments,1);return e.__ember_observes__=r,e},Ember.immediateObserver=function(){for(var e=0,r=arguments.length;r>e;e++)arguments[e];return Ember.observer.apply(this,arguments)},Ember.beforeObserver=function(e){var r=P.call(arguments,1);return e.__ember_observesBefore__=r,e}}(),function(){e("rsvp/all",["rsvp/defer","exports"],function(e,r){"use strict";function t(e){var r=[],t=n(),i=e.length;0===i&&t.resolve([]);for(var o=function(e){return function(r){s(e,r)}},s=function(e,n){r[e]=n,0===--i&&t.resolve(r)},a=function(e){t.reject(e)},u=0;e.length>u;u++)e[u]&&"function"==typeof e[u].then?e[u].then(o(u),a):s(u,e[u]);return t.promise}var n=e.defer;r.all=t}),e("rsvp/async",["exports"],function(e){"use strict";var r,t="undefined"!=typeof window?window:{},n=t.MutationObserver||t.WebKitMutationObserver;if("undefined"!=typeof process&&"[object process]"==={}.toString.call(process))r=function(e,r){process.nextTick(function(){e.call(r)})};else if(n){var i=[],o=new n(function(){var e=i.slice();i=[],e.forEach(function(e){var r=e[0],t=e[1];r.call(t)})}),s=document.createElement("div");o.observe(s,{attributes:!0}),window.addEventListener("unload",function(){o.disconnect(),o=null}),r=function(e,r){i.push([e,r]),s.setAttribute("drainQueue","drainQueue")}}else r=function(e,r){setTimeout(function(){e.call(r)},1)};e.async=r}),e("rsvp/config",["rsvp/async","exports"],function(e,r){"use strict";var t=e.async,n={};n.async=t,r.config=n}),e("rsvp/defer",["rsvp/promise","exports"],function(e,r){"use strict";function t(){var e={},r=new n(function(r,t){e.resolve=r,e.reject=t});return e.promise=r,e}var n=e.Promise;r.defer=t}),e("rsvp/events",["exports"],function(e){"use strict";var r=function(e,r){this.type=e;for(var t in r)r.hasOwnProperty(t)&&(this[t]=r[t])},t=function(e,r){for(var t=0,n=e.length;n>t;t++)if(e[t][0]===r)return t;return-1},n=function(e){var r=e._promiseCallbacks;return r||(r=e._promiseCallbacks={}),r},i={mixin:function(e){return e.on=this.on,e.off=this.off,e.trigger=this.trigger,e},on:function(e,r,i){var o,s,a=n(this);for(e=e.split(/\s+/),i=i||this;s=e.shift();)o=a[s],o||(o=a[s]=[]),-1===t(o,r)&&o.push([r,i])},off:function(e,r){var i,o,s,a=n(this);for(e=e.split(/\s+/);o=e.shift();)r?(i=a[o],s=t(i,r),-1!==s&&i.splice(s,1)):a[o]=[]},trigger:function(e,t){var i,o,s,a,u,c=n(this);if(i=c[e])for(var h=0;i.length>h;h++)o=i[h],s=o[0],a=o[1],"object"!=typeof t&&(t={detail:t}),u=new r(e,t),s.call(a,u)}};e.EventTarget=i}),e("rsvp/hash",["rsvp/defer","exports"],function(e,r){"use strict";function t(e){var r=0;for(var t in e)r++;return r}function n(e){var r={},n=i(),o=t(e);0===o&&n.resolve({});var s=function(e){return function(r){a(e,r)}},a=function(e,t){r[e]=t,0===--o&&n.resolve(r)},u=function(e){n.reject(e)};for(var c in e)e[c]&&"function"==typeof e[c].then?e[c].then(s(c),u):a(c,e[c]);return n.promise}var i=e.defer;r.hash=n}),e("rsvp/node",["rsvp/promise","rsvp/all","exports"],function(e,r,t){"use strict";function n(e,r){return function(t,n){t?r(t):arguments.length>2?e(Array.prototype.slice.call(arguments,1)):e(n)}}function i(e){return function(){var r,t,i=Array.prototype.slice.call(arguments),a=new o(function(e,n){r=e,t=n});return s(i).then(function(i){i.push(n(r,t));try{e.apply(this,i)}catch(o){t(o)}}),a}}var o=e.Promise,s=r.all;t.denodeify=i}),e("rsvp/promise",["rsvp/config","rsvp/events","exports"],function(e,r,t){"use strict";function n(e){return i(e)||"object"==typeof e&&null!==e}function i(e){return"function"==typeof e}function o(e,r){e===r?a(e,r):s(e,r)||a(e,r)}function s(e,r){var t=null;if(n(r)){try{t=r.then}catch(s){return u(e,s),!0}if(i(t)){try{t.call(r,function(t){r!==t?o(e,t):a(e,t)},function(r){u(e,r)})}catch(s){u(e,s)}return!0}}return!1}function a(e,r){c.async(function(){e.trigger("promise:resolved",{detail:r}),e.isFulfilled=!0,e.fulfillmentValue=r})}function u(e,r){c.async(function(){e.trigger("promise:failed",{detail:r}),e.isRejected=!0,e.rejectedReason=r})}var c=e.config,h=r.EventTarget,l=function(e){var r=this,t=!1;if("function"!=typeof e)throw new TypeError("You must pass a resolver function as the sole argument to the promise constructor");if(!(r instanceof l))return new l(e);var n=function(e){t||(t=!0,o(r,e))},i=function(e){t||(t=!0,u(r,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),e(n,i)},f=function(e,r,t,n){var a,c,h,l,f=i(t);if(f)try{a=t(n.detail),h=!0}catch(m){l=!0,c=m}else a=n.detail,h=!0;s(r,a)||(f&&h?o(r,a):l?u(r,c):"resolve"===e?o(r,a):"reject"===e&&u(r,a))};l.prototype={constructor:l,then:function(e,r){var t=new l(function(){});return this.isFulfilled&&c.async(function(){f("resolve",t,e,{detail:this.fulfillmentValue})},this),this.isRejected&&c.async(function(){f("reject",t,r,{detail:this.rejectedReason})},this),this.on("promise:resolved",function(r){f("resolve",t,e,r)}),this.on("promise:failed",function(e){f("reject",t,r,e)}),t}},h.mixin(l.prototype),t.Promise=l}),e("rsvp/resolve",["rsvp/promise","exports"],function(e,r){"use strict";function t(e){return"function"==typeof e||"object"==typeof e&&null!==e}function n(e){var r=new i(function(r,n){var i;try{t(e)?(i=e.then,"function"==typeof i?i.call(e,r,n):r(e)):r(e)}catch(o){n(o)}});return r}var i=e.Promise;r.resolve=n}),e("rsvp",["rsvp/events","rsvp/promise","rsvp/node","rsvp/all","rsvp/hash","rsvp/defer","rsvp/config","rsvp/resolve","exports"],function(e,r,t,n,i,o,s,a,u){"use strict";function c(e,r){E[e]=r}var h=e.EventTarget,l=r.Promise,f=t.denodeify,m=n.all,b=i.hash,p=o.defer,E=s.config,d=a.resolve;u.Promise=l,u.EventTarget=h,u.all=m,u.hash=b,u.defer=p,u.denodeify=f,u.configure=c,u.resolve=d})}(),function(){e("container",[],function(){function e(e){this.parent=e,this.dict={}}function r(r){this.parent=r,this.children=[],this.resolver=r&&r.resolver||function(){},this.registry=new e(r&&r.registry),this.cache=new e(r&&r.cache),this.typeInjections=new e(r&&r.typeInjections),this.injections={},this._options=new e(r&&r._options),this._typeOptions=new e(r&&r._typeOptions)}function t(e){throw new Error(e+" is not currently supported on child containers")}function n(e,r){var t=o(e,r,"singleton");return t!==!1}function i(e,r){var t={};if(!r)return t;for(var n,i,o=0,s=r.length;s>o;o++)n=r[o],i=e.lookup(n.fullName),t[n.property]=i;return t}function o(e,r,t){var n=e._options.get(r);if(n&&void 0!==n[t])return n[t];var i=r.split(":")[0];return n=e._typeOptions.get(i),n?n[t]:void 0}function s(e,r){var t=e.normalize(r);return e.resolve(t)}function a(e,r){var t,n=s(e,r),a=r.split(":"),u=a[0];if(o(e,r,"instantiate")===!1)return n;if(n){var c=[];c=c.concat(e.typeInjections.get(u)||[]),c=c.concat(e.injections[r]||[]);var h=i(e,c);return h.container=e,h._debugContainerKey=r,t=n.create(h)}}function u(e,r){e.cache.eachLocal(function(t,n){o(e,t,"instantiate")!==!1&&r(n)})}function c(e){e.cache.eachLocal(function(r,t){o(e,r,"instantiate")!==!1&&t.destroy()}),e.cache.dict={}}return e.prototype={get:function(e){var r=this.dict;return r.hasOwnProperty(e)?r[e]:this.parent?this.parent.get(e):void 0},set:function(e,r){this.dict[e]=r},has:function(e){var r=this.dict;return r.hasOwnProperty(e)?!0:this.parent?this.parent.has(e):!1},eachLocal:function(e,r){var t=this.dict;for(var n in t)t.hasOwnProperty(n)&&e.call(r,n,t[n])}},r.prototype={child:function(){var e=new r(this);return this.children.push(e),e},set:function(e,r,t){e[r]=t},register:function(e,r,t,n){var i;-1!==e.indexOf(":")?(n=t,t=r,i=e):i=e+":"+r;var o=this.normalize(i);this.registry.set(o,t),this._options.set(o,n||{})},resolve:function(e){return this.resolver(e)||this.registry.get(e)},normalize:function(e){return e},lookup:function(e,r){if(e=this.normalize(e),r=r||{},this.cache.has(e)&&r.singleton!==!1)return this.cache.get(e);var t=a(this,e);return t?(n(this,e)&&r.singleton!==!1&&this.cache.set(e,t),t):void 0},has:function(e){return this.cache.has(e)?!0:!!s(this,e)},optionsForType:function(e,r){this.parent&&t("optionsForType"),this._typeOptions.set(e,r)},options:function(e,r){this.optionsForType(e,r)},typeInjection:function(e,r,n){this.parent&&t("typeInjection");var i=this.typeInjections.get(e);i||(i=[],this.typeInjections.set(e,i)),i.push({property:r,fullName:n})},injection:function(e,r,n){if(this.parent&&t("injection"),-1===e.indexOf(":"))return this.typeInjection(e,r,n);var i=this.injections[e]=this.injections[e]||[];i.push({property:r,fullName:n})},destroy:function(){this.isDestroyed=!0;for(var e=0,r=this.children.length;r>e;e++)this.children[e].destroy();this.children=[],u(this,function(e){e.isDestroying=!0}),u(this,function(e){e.destroy()}),delete this.parent,this.isDestroyed=!0},reset:function(){for(var e=0,r=this.children.length;r>e;e++)c(this.children[e]);c(this)}},r})}(),function(){function e(t,n,i,o){var s,a,u;if("object"!=typeof t||null===t)return t;if(n&&(a=r(i,t))>=0)return o[a];if("array"===Ember.typeOf(t)){if(s=t.slice(),n)for(a=s.length;--a>=0;)s[a]=e(s[a],n,i,o)}else if(Ember.Copyable&&Ember.Copyable.detect(t))s=t.copy(n,i,o);else{s={};for(u in t)t.hasOwnProperty(u)&&"__"!==u.substring(0,2)&&(s[u]=n?e(t[u],n,i,o):t[u])}return n&&(i.push(t),o.push(s)),s}var r=Ember.EnumerableUtils.indexOf;Ember.compare=function t(e,r){if(e===r)return 0;var n=Ember.typeOf(e),i=Ember.typeOf(r),o=Ember.Comparable;if(o){if("instance"===n&&o.detect(e.constructor))return e.constructor.compare(e,r);if("instance"===i&&o.detect(r.constructor))return 1-r.constructor.compare(r,e)}var s=Ember.ORDER_DEFINITION_MAPPING;if(!s){var a=Ember.ORDER_DEFINITION;s=Ember.ORDER_DEFINITION_MAPPING={};var u,c;for(u=0,c=a.length;c>u;++u)s[a[u]]=u;delete Ember.ORDER_DEFINITION}var h=s[n],l=s[i];if(l>h)return-1;if(h>l)return 1;switch(n){case"boolean":case"number":return r>e?-1:e>r?1:0;case"string":var f=e.localeCompare(r);return 0>f?-1:f>0?1:0;case"array":for(var m=e.length,b=r.length,p=Math.min(m,b),E=0,d=0;0===E&&p>d;)E=t(e[d],r[d]),d++;return 0!==E?E:b>m?-1:m>b?1:0;case"instance":return Ember.Comparable&&Ember.Comparable.detect(e)?e.compare(e,r):0;case"date":var v=e.getTime(),g=r.getTime();return g>v?-1:v>g?1:0;default:return 0}},Ember.copy=function(r,t){return"object"!=typeof r||null===r?r:Ember.Copyable&&Ember.Copyable.detect(r)?r.copy(t):e(r,t,t?[]:null,t?[]:null)},Ember.inspect=function(e){if("object"!=typeof e||null===e)return e+"";var r,t=[];for(var n in e)if(e.hasOwnProperty(n)){if(r=e[n],"toString"===r)continue;"function"===Ember.typeOf(r)&&(r="function() { ... }"),t.push(n+": "+r)}return"{"+t.join(", ")+"}"},Ember.isEqual=function(e,r){return e&&"function"==typeof e.isEqual?e.isEqual(r):e===r},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.keys=function(e){var r=[];for(var t in e)e.hasOwnProperty(t)&&r.push(t);return r});var n=["description","fileName","lineNumber","message","name","number","stack"];Ember.Error=function(){for(var e=Error.prototype.constructor.apply(this,arguments),r=0;n.length>r;r++)this[n[r]]=e[n[r]]},Ember.Error.prototype=Ember.create(Error.prototype)}(),function(){Ember.RSVP=r("rsvp")}(),function(){var e=/[ _]/g,r={},t=/([a-z])([A-Z])/g,n=/(\-|_|\.|\s)+(.)?/g,i=/([a-z\d])([A-Z]+)/g,o=/\-|\s+/g;Ember.STRINGS={},Ember.String={fmt:function(e,r){var t=0;return e.replace(/%@([0-9]+)?/g,function(e,n){return n=n?parseInt(n,0)-1:t++,e=r[n],(null===e?"(null)":void 0===e?"":e).toString()})},loc:function(e,r){return e=Ember.STRINGS[e]||e,Ember.String.fmt(e,r)},w:function(e){return e.split(/\s+/)},decamelize:function(e){return e.replace(t,"$1_$2").toLowerCase()},dasherize:function(t){var n,i=r,o=i.hasOwnProperty(t);return o?i[t]:(n=Ember.String.decamelize(t).replace(e,"-"),i[t]=n,n)},camelize:function(e){return e.replace(n,function(e,r,t){return t?t.toUpperCase():""}).replace(/^([A-Z])/,function(e){return e.toLowerCase()})},classify:function(e){for(var r=e.split("."),t=[],n=0,i=r.length;i>n;n++){var o=Ember.String.camelize(r[n]);t.push(o.charAt(0).toUpperCase()+o.substr(1))}return t.join(".")},underscore:function(e){return e.replace(i,"$1_$2").replace(o,"_").toLowerCase()},capitalize:function(e){return e.charAt(0).toUpperCase()+e.substr(1)}}}(),function(){var e=Ember.String.fmt,r=Ember.String.w,t=Ember.String.loc,n=Ember.String.camelize,i=Ember.String.decamelize,o=Ember.String.dasherize,s=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 r(this)},String.prototype.loc=function(){return t(this,arguments)},String.prototype.camelize=function(){return n(this)},String.prototype.decamelize=function(){return i(this)},String.prototype.dasherize=function(){return o(this)},String.prototype.underscore=function(){return s(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 r(e){return a.push(e),null}function t(e,r){function t(t){var o=n(t,e);return i?r===o:!!o}var i=2===arguments.length;return t}var n=Ember.get,i=Ember.set,o=Array.prototype.slice,s=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 t,i=e();return t=this.nextObject(0,null,i),r(i),t}).property("[]"),lastObject:Ember.computed(function(){var t=n(this,"length");if(0===t)return void 0;var i,o=e(),s=0,a=null;do a=i,i=this.nextObject(s++,a,o);while(void 0!==i);return r(o),a}).property("[]"),contains:function(e){return void 0!==this.find(function(r){return r===e})},forEach:function(t,i){if("function"!=typeof t)throw new TypeError;var o=n(this,"length"),s=null,a=e();void 0===i&&(i=null);for(var u=0;o>u;u++){var c=this.nextObject(u,s,a);t.call(i,c,u,this),s=c}return s=null,a=r(a),this},getEach:function(e){return this.mapProperty(e)},setEach:function(e,r){return this.forEach(function(t){i(t,e,r)})},map:function(e,r){var t=Ember.A([]);return this.forEach(function(n,i,o){t[i]=e.call(r,n,i,o)}),t},mapProperty:function(e){return this.map(function(r){return n(r,e)})},filter:function(e,r){var t=Ember.A([]);return this.forEach(function(n,i,o){e.call(r,n,i,o)&&t.push(n)}),t},reject:function(e,r){return this.filter(function(){return!e.apply(r,arguments)})},filterProperty:function(){return this.filter(t.apply(this,arguments))},rejectProperty:function(e,r){var t=function(t){return n(t,e)===r},i=function(r){return!!n(r,e)},o=2===arguments.length?t:i;return this.reject(o)},find:function(t,i){var o=n(this,"length");void 0===i&&(i=null);for(var s,a,u=null,c=!1,h=e(),l=0;o>l&&!c;l++)s=this.nextObject(l,u,h),(c=t.call(i,s,l,this))&&(a=s),u=s;return s=u=null,h=r(h),a},findProperty:function(){return this.find(t.apply(this,arguments))},every:function(e,r){return!this.find(function(t,n,i){return!e.call(r,t,n,i)})},everyProperty:function(){return this.every(t.apply(this,arguments))},some:function(e,r){return!!this.find(function(t,n,i){return!!e.call(r,t,n,i)})},someProperty:function(){return this.some(t.apply(this,arguments))},reduce:function(e,r,t){if("function"!=typeof e)throw new TypeError;var n=r;return this.forEach(function(r,i){n=e.call(null,n,r,i,this,t)},this),n},invoke:function(e){var r,t=Ember.A([]);return arguments.length>1&&(r=o.call(arguments,1)),this.forEach(function(n,i){var o=n&&n[e];"function"==typeof o&&(t[i]=r?o.apply(n,r):o.call(n))},this),t},toArray:function(){var e=Ember.A([]);return this.forEach(function(r,t){e[t]=r}),e},compact:function(){return this.filter(function(e){return null!=e})},without:function(e){if(!this.contains(e))return this;var r=Ember.A([]);return this.forEach(function(t){t!==e&&(r[r.length]=t)}),r},uniq:function(){var e=Ember.A([]);return this.forEach(function(r){0>s(e,r)&&e.push(r)}),e},"[]":Ember.computed(function(){return this}),addEnumerableObserver:function(e,r){var t=r&&r.willChange||"enumerableWillChange",i=r&&r.didChange||"enumerableDidChange",o=n(this,"hasEnumerableObservers");return o||Ember.propertyWillChange(this,"hasEnumerableObservers"),Ember.addListener(this,"@enumerable:before",e,t),Ember.addListener(this,"@enumerable:change",e,i),o||Ember.propertyDidChange(this,"hasEnumerableObservers"),this},removeEnumerableObserver:function(e,r){var t=r&&r.willChange||"enumerableWillChange",i=r&&r.didChange||"enumerableDidChange",o=n(this,"hasEnumerableObservers");return o&&Ember.propertyWillChange(this,"hasEnumerableObservers"),Ember.removeListener(this,"@enumerable:before",e,t),Ember.removeListener(this,"@enumerable:change",e,i),o&&Ember.propertyDidChange(this,"hasEnumerableObservers"),this},hasEnumerableObservers:Ember.computed(function(){return Ember.hasListeners(this,"@enumerable:change")||Ember.hasListeners(this,"@enumerable:before")}),enumerableContentWillChange:function(e,r){var t,i,o;return t="number"==typeof e?e:e?n(e,"length"):e=-1,i="number"==typeof r?r:r?n(r,"length"):r=-1,o=0>i||0>t||0!==i-t,-1===e&&(e=null),-1===r&&(r=null),Ember.propertyWillChange(this,"[]"),o&&Ember.propertyWillChange(this,"length"),Ember.sendEvent(this,"@enumerable:before",[this,e,r]),this},enumerableContentDidChange:function(e,r){var t,i,o;return t="number"==typeof e?e:e?n(e,"length"):e=-1,i="number"==typeof r?r:r?n(r,"length"):r=-1,o=0>i||0>t||0!==i-t,-1===e&&(e=null),-1===r&&(r=null),Ember.sendEvent(this,"@enumerable:change",[this,e,r]),o&&Ember.propertyDidChange(this,"length"),Ember.propertyDidChange(this,"[]"),this}})}(),function(){var e=Ember.get,r=(Ember.set,Ember.isNone),t=Ember.EnumerableUtils.map,n=Ember.cacheFor;Ember.Array=Ember.Mixin.create(Ember.Enumerable,{isSCArray:!0,length:Ember.required(),objectAt:function(r){return 0>r||r>=e(this,"length")?void 0:e(this,r)},objectsAt:function(e){var r=this;return t(e,function(e){return r.objectAt(e)})},nextObject:function(e){return this.objectAt(e)},"[]":Ember.computed(function(r,t){return void 0!==t&&this.replace(0,e(this,"length"),t),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(t,n){var i=Ember.A([]),o=e(this,"length");for(r(t)&&(t=0),(r(n)||n>o)&&(n=o),0>t&&(t=o+t),0>n&&(n=o+n);n>t;)i[i.length]=this.objectAt(t++);return i},indexOf:function(r,t){var n,i=e(this,"length");for(void 0===t&&(t=0),0>t&&(t+=i),n=t;i>n;n++)if(this.objectAt(n,!0)===r)return n;return-1},lastIndexOf:function(r,t){var n,i=e(this,"length");for((void 0===t||t>=i)&&(t=i-1),0>t&&(t+=i),n=t;n>=0;n--)if(this.objectAt(n)===r)return n;return-1},addArrayObserver:function(r,t){var n=t&&t.willChange||"arrayWillChange",i=t&&t.didChange||"arrayDidChange",o=e(this,"hasArrayObservers");return o||Ember.propertyWillChange(this,"hasArrayObservers"),Ember.addListener(this,"@array:before",r,n),Ember.addListener(this,"@array:change",r,i),o||Ember.propertyDidChange(this,"hasArrayObservers"),this},removeArrayObserver:function(r,t){var n=t&&t.willChange||"arrayWillChange",i=t&&t.didChange||"arrayDidChange",o=e(this,"hasArrayObservers");return o&&Ember.propertyWillChange(this,"hasArrayObservers"),Ember.removeListener(this,"@array:before",r,n),Ember.removeListener(this,"@array:change",r,i),o&&Ember.propertyDidChange(this,"hasArrayObservers"),this},hasArrayObservers:Ember.computed(function(){return Ember.hasListeners(this,"@array:change")||Ember.hasListeners(this,"@array:before")}),arrayContentWillChange:function(r,t,n){void 0===r?(r=0,t=n=-1):(void 0===t&&(t=-1),void 0===n&&(n=-1)),Ember.isWatching(this,"@each")&&e(this,"@each"),Ember.sendEvent(this,"@array:before",[this,r,t,n]);var i,o;if(r>=0&&t>=0&&e(this,"hasEnumerableObservers")){i=[],o=r+t;for(var s=r;o>s;s++)i.push(this.objectAt(s))}else i=t;return this.enumerableContentWillChange(i,n),this},arrayContentDidChange:function(r,t,i){void 0===r?(r=0,t=i=-1):(void 0===t&&(t=-1),void 0===i&&(i=-1));var o,s;if(r>=0&&i>=0&&e(this,"hasEnumerableObservers")){o=[],s=r+i;for(var a=r;s>a;a++)o.push(this.objectAt(a))}else o=i;this.enumerableContentDidChange(t,o),Ember.sendEvent(this,"@array:change",[this,r,t,i]);var u=e(this,"length"),c=n(this,"firstObject"),h=n(this,"lastObject");return this.objectAt(0)!==c&&(Ember.propertyWillChange(this,"firstObject"),Ember.propertyDidChange(this,"firstObject")),this.objectAt(u-1)!==h&&(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,r=Ember.set;Ember.Freezable=Ember.Mixin.create({isFrozen:!1,freeze:function(){return e(this,"isFrozen")?this:(r(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(r){return Ember.beginPropertyChanges(this),e(r,function(e){this.addObject(e)},this),Ember.endPropertyChanges(this),this},removeObject:Ember.required(Function),removeObjects:function(r){return Ember.beginPropertyChanges(this),e(r,function(e){this.removeObject(e)},this),Ember.endPropertyChanges(this),this}})}(),function(){var e="Index out of range",r=[],t=Ember.get;Ember.set,Ember.MutableArray=Ember.Mixin.create(Ember.Array,Ember.MutableEnumerable,{replace:Ember.required(),clear:function(){var e=t(this,"length");return 0===e?this:(this.replace(0,e,r),this)},insertAt:function(r,n){if(r>t(this,"length"))throw new Error(e);return this.replace(r,0,[n]),this},removeAt:function(n,i){if("number"==typeof n){if(0>n||n>=t(this,"length"))throw new Error(e);void 0===i&&(i=1),this.replace(n,i,r)}return this},pushObject:function(e){return this.insertAt(t(this,"length"),e),e},pushObjects:function(e){return this.replace(t(this,"length"),0,e),this},popObject:function(){var e=t(this,"length");if(0===e)return null;var r=this.objectAt(e-1);return this.removeAt(e-1,1),r},shiftObject:function(){if(0===t(this,"length"))return null;var e=this.objectAt(0);
17
+ 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=t(this,"length");if(0===e)return this;var r=this.toArray().reverse();return this.replace(0,e,r),this},setObjects:function(e){if(0===e.length)return this.clear();var r=t(this,"length");return this.replace(0,r,e),this},removeObject:function(e){for(var r=t(this,"length")||0;--r>=0;){var n=this.objectAt(r);n===e&&this.removeAt(r)}return this},addObject:function(e){return this.contains(e)||this.pushObject(e),this}})}(),function(){var e=Ember.get,r=Ember.set;Ember.Observable=Ember.Mixin.create({get:function(r){return e(this,r)},getProperties:function(){var r={},t=arguments;1===arguments.length&&"array"===Ember.typeOf(arguments[0])&&(t=arguments[0]);for(var n=0;t.length>n;n++)r[t[n]]=e(this,t[n]);return r},set:function(e,t){return r(this,e,t),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,r,t){Ember.addBeforeObserver(this,e,r,t)},addObserver:function(e,r,t){Ember.addObserver(this,e,r,t)},removeObserver:function(e,r,t){Ember.removeObserver(this,e,r,t)},hasObserverFor:function(e){return Ember.hasListeners(this,e+":change")},getPath:function(e){return this.get(e)},setPath:function(e,r){return this.set(e,r)},getWithDefault:function(e,r){return Ember.getWithDefault(this,e,r)},incrementProperty:function(t,n){return Ember.isNone(n)&&(n=1),r(this,t,(e(this,t)||0)+n),e(this,t)},decrementProperty:function(t,n){return Ember.isNone(n)&&(n=1),r(this,t,(e(this,t)||0)-n),e(this,t)},toggleProperty:function(t){return r(this,t,!e(this,t)),e(this,t)},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 r=e(this,"target");if("string"===Ember.typeOf(r)){var t=e(this,r);return void 0===t&&(t=e(Ember.lookup,r)),t}return r}).property("target"),actionContextObject:Ember.computed(function(){var r=e(this,"actionContext");if("string"===Ember.typeOf(r)){var t=e(this,r);return void 0===t&&(t=e(Ember.lookup,r)),t}return r}).property("actionContext"),triggerAction:function(r){r=r||{};var t=r.action||e(this,"action"),n=r.target||e(this,"targetObject"),i=r.actionContext||e(this,"actionContextObject")||this;if(n&&t){var o;return o=n.send?n.send.apply(n,[t,i]):n[t].apply(n,[i]),o!==!1&&(o=!0),o}return!1}})}(),function(){Ember.Evented=Ember.Mixin.create({on:function(e,r,t){return Ember.addListener(this,e,r,t),this},one:function(e,r,t){return t||(t=r,r=null),Ember.addListener(this,e,r,t,!0),this},trigger:function(e){var r,t,n=[];for(r=1,t=arguments.length;t>r;r++)n.push(arguments[r]);Ember.sendEvent(this,e,n)},fire:function(){this.trigger.apply(this,arguments)},off:function(e,r,t){return Ember.removeListener(this,e,r,t),this},has:function(e){return Ember.hasListeners(this,e)}})}(),function(){var e=r("rsvp");e.configure("async",function(e,r){Ember.run.schedule("actions",r,e)});var t=Ember.get;Ember.DeferredMixin=Ember.Mixin.create({then:function(e,r){var n,i,o;return o=this,n=t(this,"_deferred"),i=n.promise,i.then(function(r){return r===i?e(o):e(r)},function(e){return r(e)})},resolve:function(e){var r,n;r=t(this,"_deferred"),n=r.promise,e===this?r.resolve(n):r.resolve(e)},reject:function(e){t(this,"_deferred").reject(e)},_deferred:Ember.computed(function(){return new e.defer})})}(),function(){Ember.Container=r("container"),Ember.Container.set=Ember.set}(),function(){function e(){var e,r,o=!1,s=function(){o||s.proto(),n(this,i,v),n(this,"_super",v);var u=a(this);if(u.proto=this,e){var h=e;e=null,this.reopen.apply(this,h)}if(r){var l=r;r=null;for(var f=this.concatenatedProperties,m=0,p=l.length;p>m;m++){var g=l[m];for(var y in g)if(g.hasOwnProperty(y)){var _=g[y],O=Ember.IS_BINDING;if(O.test(y)){var C=u.bindings;C?u.hasOwnProperty("bindings")||(C=u.bindings=t(u.bindings)):C=u.bindings={},C[y]=_}var w=u.descs[y];if(f&&d(f,y)>=0){var P=this[y];_=P?"function"==typeof P.concat?P.concat(_):Ember.makeArray(P).concat(_):Ember.makeArray(_)}w?w.set(this,y,_):"function"!=typeof this.setUnknownProperty||y in this?E?Ember.defineProperty(this,y,null,_):this[y]=_:this.setUnknownProperty(y,_)}}}b(this,u),delete u.proto,c(this),this.init.apply(this,arguments)};return s.toString=f.prototype.toString,s.willReopen=function(){o&&(s.PrototypeMixin=f.create(s.PrototypeMixin)),o=!1},s._initMixins=function(r){e=r},s._initProperties=function(e){r=e},s.proto=function(){var e=s.superclass;return e&&e.proto(),o||(o=!0,s.PrototypeMixin.applyPartial(s.prototype),u(s.prototype)),this.prototype},s}function r(e){return function(){return e}}var t=(Ember.set,Ember.get,Ember.create),n=Ember.platform.defineProperty,i=Ember.GUID_KEY,o=Ember.guidFor,s=Ember.generateGuid,a=Ember.meta,u=Ember.rewatch,c=Ember.finishChains,h=Ember.destroy,l=Ember.run.schedule,f=Ember.Mixin,m=f._apply,b=f.finishPartial,p=f.prototype.reopen,E=Ember.ENV.MANDATORY_SETTER,d=Ember.EnumerableUtils.indexOf,v={configurable:!0,writable:!0,enumerable:!1,value:void 0},g=e();g.toString=function(){return"Ember.CoreObject"},g.PrototypeMixin=f.create({reopen:function(){return m(this,arguments,!0),this},isInstance:!0,init:function(){},concatenatedProperties:null,isDestroyed:!1,isDestroying:!1,destroy:function(){return this._didCallDestroy?void 0:(this.isDestroying=!0,this._didCallDestroy=!0,l("destroy",this,this._scheduledDestroy),this)},willDestroy:Ember.K,_scheduledDestroy:function(){this.willDestroy&&this.willDestroy(),h(this),this.isDestroyed=!0,this.didDestroy&&this.didDestroy()},bind:function(e,r){return r instanceof Ember.Binding||(r=Ember.Binding.from(r)),r.to(e).connect(this),r},toString:function(){var e="function"==typeof this.toStringExtension,t=e?":"+this.toStringExtension():"",n="<"+this.constructor.toString()+":"+o(this)+t+">";return this.toString=r(n),n}}),g.PrototypeMixin.ownerConstructor=g,Ember.config.overridePrototypeMixin&&Ember.config.overridePrototypeMixin(g.PrototypeMixin),g.__super__=null;var y=f.create({ClassMixin:Ember.required(),PrototypeMixin:Ember.required(),isClass:!0,isMethod:!1,extend:function(){var r,n=e();return n.ClassMixin=f.create(this.ClassMixin),n.PrototypeMixin=f.create(this.PrototypeMixin),n.ClassMixin.ownerConstructor=n,n.PrototypeMixin.ownerConstructor=n,p.apply(n.PrototypeMixin,arguments),n.superclass=this,n.__super__=this.prototype,r=n.prototype=t(this.prototype),r.constructor=n,s(r,"ember"),a(r).proto=r,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(),p.apply(this.PrototypeMixin,arguments),this},reopenClass:function(){return p.apply(this.ClassMixin,arguments),m(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 r=a(this.proto(),!1).descs[e];return r._meta||{}},eachComputedProperty:function(e,r){var t,n=this.proto(),i=a(n).descs,o={};for(var s in i)t=i[s],t instanceof Ember.ComputedProperty&&e.call(r||this,s,t._meta||o)}});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(r,t,i){var s=r.length;c[r.join(".")]=t;for(var a in t)if(h.call(t,a)){var u=t[a];if(r[s]=a,u&&u.toString===n)u.toString=o(r.join(".")),u[f]=r.join(".");else if(u&&u.isNamespace){if(i[l(u)])continue;i[l(u)]=!0,e(r,u,i)}}r.length=s}function r(){var e,r,t=Ember.Namespace,n=Ember.lookup;if(!t.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],r=e&&e.isNamespace}catch(o){continue}r&&(e[f]=i)}}function t(e){var r=e.superclass;return r?r[f]?r[f]:t(r):void 0}function n(){Ember.BOOTED||this[f]||i();var e;if(this[f])e=this[f];else{var r=t(this);e=r?"(subclass of "+r+")":"(unknown mixin)",this.toString=o(e)}return e}function i(){var t=!u.PROCESSED,n=Ember.anyUnprocessedMixins;if(t&&(r(),u.PROCESSED=!0),t||n){for(var i,o=u.NAMESPACES,s=0,a=o.length;a>s;s++)i=o[s],e([i.toString()],i,{});Ember.anyUnprocessedMixins=!1}}function o(e){return function(){return e}}var s=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=s(this,"name");return e?e:(r(),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,h={}.hasOwnProperty,l=Ember.guidFor,f=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",r=[],t=Ember.get;Ember.set,Ember.ArrayProxy=Ember.Object.extend(Ember.MutableArray,{content:null,arrangedContent:Ember.computed.alias("content"),objectAtContent:function(e){return t(this,"arrangedContent").objectAt(e)},replaceContent:function(e,r,n){t(this,"content").replace(e,r,n)},_contentWillChange:Ember.beforeObserver(function(){this._teardownContent()},"content"),_teardownContent:function(){var e=t(this,"content");e&&e.removeArrayObserver(this,{willChange:"contentArrayWillChange",didChange:"contentArrayDidChange"})},contentArrayWillChange:Ember.K,contentArrayDidChange:Ember.K,_contentDidChange:Ember.observer(function(){t(this,"content"),this._setupContent()},"content"),_setupContent:function(){var e=t(this,"content");e&&e.addArrayObserver(this,{willChange:"contentArrayWillChange",didChange:"contentArrayDidChange"})},_arrangedContentWillChange:Ember.beforeObserver(function(){var e=t(this,"arrangedContent"),r=e?t(e,"length"):0;this.arrangedContentArrayWillChange(this,0,r,void 0),this.arrangedContentWillChange(this),this._teardownArrangedContent(e)},"arrangedContent"),_arrangedContentDidChange:Ember.observer(function(){var e=t(this,"arrangedContent"),r=e?t(e,"length"):0;this._setupArrangedContent(),this.arrangedContentDidChange(this),this.arrangedContentArrayDidChange(this,0,void 0,r)},"arrangedContent"),_setupArrangedContent:function(){var e=t(this,"arrangedContent");e&&e.addArrayObserver(this,{willChange:"arrangedContentArrayWillChange",didChange:"arrangedContentArrayDidChange"})},_teardownArrangedContent:function(){var e=t(this,"arrangedContent");e&&e.removeArrayObserver(this,{willChange:"arrangedContentArrayWillChange",didChange:"arrangedContentArrayDidChange"})},arrangedContentWillChange:Ember.K,arrangedContentDidChange:Ember.K,objectAt:function(e){return t(this,"content")&&this.objectAtContent(e)},length:Ember.computed(function(){var e=t(this,"arrangedContent");return e?t(e,"length"):0}),_replace:function(e,r,n){var i=t(this,"content");return i&&this.replaceContent(e,r,n),this},replace:function(){if(t(this,"arrangedContent")!==t(this,"content"))throw new Ember.Error("Using replace on an arranged ArrayProxy is not allowed.");this._replace.apply(this,arguments)},_insertAt:function(r,n){if(r>t(this,"content.length"))throw new Error(e);return this._replace(r,0,[n]),this},insertAt:function(e,r){if(t(this,"arrangedContent")===t(this,"content"))return this._insertAt(e,r);throw new Ember.Error("Using insertAt on an arranged ArrayProxy is not allowed.")},removeAt:function(n,i){if("number"==typeof n){var o,s=t(this,"content"),a=t(this,"arrangedContent"),u=[];if(0>n||n>=t(this,"length"))throw new Error(e);for(void 0===i&&(i=1),o=n;n+i>o;o++)u.push(s.indexOf(a.objectAt(o)));for(u.sort(function(e,r){return r-e}),Ember.beginPropertyChanges(),o=0;u.length>o;o++)this._replace(u[o],1,r);Ember.endPropertyChanges()}return this},pushObject:function(e){return this._insertAt(t(this,"content.length"),e),e},pushObjects:function(e){return this._replace(t(this,"length"),0,e),this},setObjects:function(e){if(0===e.length)return this.clear();var r=t(this,"length");return this._replace(0,r,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,r,t,n){this.arrayContentWillChange(r,t,n)},arrangedContentArrayDidChange:function(e,r,t,n){this.arrayContentDidChange(r,t,n)},init:function(){this._super(),this._setupContent(),this._setupArrangedContent()},willDestroy:function(){this._teardownArrangedContent(),this._teardownContent()}})}(),function(){function e(e,r){var t=r.slice(8);t in this||u(this,t)}function r(e,r){var t=r.slice(8);t in this||c(this,t)}var t=Ember.get,n=Ember.set,i=(Ember.String.fmt,Ember.addBeforeObserver),o=Ember.addObserver,s=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(t){var n="content."+t;i(this,n,null,e),o(this,n,null,r)},didUnwatchProperty:function(t){var n="content."+t;s(this,n,null,e),a(this,n,null,r)},unknownProperty:function(e){var r=t(this,"content");return r?t(r,e):void 0},setUnknownProperty:function(e,r){var i=t(this,"content");return n(i,e,r)}}),Ember.ObjectProxy.reopenClass({create:function(){var e,r,t,n,i,o;if(arguments.length){for(r=this.proto(),t=0,n=arguments.length;n>t;t++){i=arguments[t];for(o in i)!i.hasOwnProperty(o)||o in r||(e||(e={}),e[o]=null)}e&&this._initMixins([e])}return this._super.apply(this,arguments)}})}(),function(){function e(e,r,t,i,o){var s,a=t._objects;for(a||(a=t._objects={});--o>=i;){var u=e.objectAt(o);u&&(Ember.addBeforeObserver(u,r,t,"contentKeyWillChange"),Ember.addObserver(u,r,t,"contentKeyDidChange"),s=n(u),a[s]||(a[s]=[]),a[s].push(o))}}function r(e,r,t,i,o){var s=t._objects;s||(s=t._objects={});for(var a,u;--o>=i;){var c=e.objectAt(o);c&&(Ember.removeBeforeObserver(c,r,t,"contentKeyWillChange"),Ember.removeObserver(c,r,t,"contentKeyDidChange"),u=n(c),a=s[u],a[a.indexOf(o)]=null)}}var t=(Ember.set,Ember.get),n=Ember.guidFor,i=Ember.EnumerableUtils.forEach,o=Ember.Object.extend(Ember.Array,{init:function(e,r,t){this._super(),this._keyName=r,this._owner=t,this._content=e},objectAt:function(e){var r=this._content.objectAt(e);return r&&t(r,this._keyName)},length:Ember.computed(function(){var e=this._content;return e?t(e,"length"):0})}),s=/^.+:(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 r;return r=new o(this._content,e,this),Ember.defineProperty(this,e,null,r),this.beginObservingContentKey(e),r},arrayWillChange:function(e,t,n){var i,o,s=this._keys;o=n>0?t+n:-1,Ember.beginPropertyChanges(this);for(i in s)s.hasOwnProperty(i)&&(o>0&&r(e,i,this,t,o),Ember.propertyWillChange(this,i));Ember.propertyWillChange(this._content,"@each"),Ember.endPropertyChanges(this)},arrayDidChange:function(r,t,n,i){var o,s,a=this._keys;s=i>0?t+i:-1,Ember.beginPropertyChanges(this);for(o in a)a.hasOwnProperty(o)&&(s>0&&e(r,o,this,t,s),Ember.propertyDidChange(this,o));Ember.propertyDidChange(this._content,"@each"),Ember.endPropertyChanges(this)},didAddListener:function(e){s.test(e)&&this.beginObservingContentKey(e.slice(0,-7))},didRemoveListener:function(e){s.test(e)&&this.stopObservingContentKey(e.slice(0,-7))},beginObservingContentKey:function(r){var n=this._keys;if(n||(n=this._keys={}),n[r])n[r]++;else{n[r]=1;var i=this._content,o=t(i,"length");e(i,r,this,0,o)}},stopObservingContentKey:function(e){var n=this._keys;if(n&&n[e]>0&&0>=--n[e]){var i=this._content,o=t(i,"length");r(i,e,this,0,o)}},contentKeyWillChange:function(e,r){Ember.propertyWillChange(this,r)},contentKeyDidChange:function(e,r){Ember.propertyDidChange(this,r)}})}(),function(){var e=Ember.get;Ember.set;var r=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(r,t,n){if(this.isFrozen)throw Ember.FROZEN_ERROR;var i=n?e(n,"length"):0;if(this.arrayContentWillChange(r,t,i),n&&0!==n.length){var o=[r,t].concat(n);this.splice.apply(this,o)}else this.splice(r,t);return this.arrayContentDidChange(r,t,i),this},unknownProperty:function(e,r){var t;return void 0!==r&&void 0===t&&(t=this[e]=r),t},indexOf:function(e,r){var t,n=this.length;for(r=void 0===r?0:0>r?Math.ceil(r):Math.floor(r),0>r&&(r+=n),t=r;n>t;t++)if(this[t]===e)return t;return-1},lastIndexOf:function(e,r){var t,n=this.length;for(r=void 0===r?n-1:0>r?Math.ceil(r):Math.floor(r),0>r&&(r+=n),t=r;t>=0;t--)if(this[t]===e)return t;return-1},copy:function(e){return e?this.map(function(e){return Ember.copy(e,!0)}):this.slice()}}),t=["length"];Ember.EnumerableUtils.forEach(r.keys(),function(e){Array.prototype[e]&&t.push(e)}),t.length>0&&(r=r.without.apply(r,t)),Ember.NativeArray=r,Ember.A=function(e){return void 0===e&&(e=[]),Ember.Array.detect(e)?e:Ember.NativeArray.apply(e)},Ember.NativeArray.activate=function(){r.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,r=Ember.set,t=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 o=0;n>o;o++)i=t(this[o]),delete this[i],delete this[o];return r(this,"length",0),Ember.propertyDidChange(this,"firstObject"),Ember.propertyDidChange(this,"lastObject"),this.enumerableContentDidChange(n,0),this},isEqual:function(r){if(!Ember.Enumerable.detect(r))return!1;var t=e(this,"length");if(e(r,"length")!==t)return!1;for(;--t>=0;)if(!r.contains(this[t]))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 r=this.length>0?this[this.length-1]:null;return this.remove(r),r},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 o,s=t(i),a=this[s],u=e(this,"length");return a>=0&&u>a&&this[a]===i?this:(o=[i],this.enumerableContentWillChange(null,o),Ember.propertyWillChange(this,"lastObject"),u=e(this,"length"),this[s]=u,this[u]=i,r(this,"length",u+1),Ember.propertyDidChange(this,"lastObject"),this.enumerableContentDidChange(null,o),this)},removeObject:function(i){if(e(this,"isFrozen"))throw new Error(Ember.FROZEN_ERROR);if(n(i))return this;var o,s,a=t(i),u=this[a],c=e(this,"length"),h=0===u,l=u===c-1;return u>=0&&c>u&&this[u]===i&&(s=[i],this.enumerableContentWillChange(s,null),h&&Ember.propertyWillChange(this,"firstObject"),l&&Ember.propertyWillChange(this,"lastObject"),c-1>u&&(o=this[c-1],this[u]=o,this[t(o)]=u),delete this[a],delete this[c-1],r(this,"length",c-1),h&&Ember.propertyDidChange(this,"firstObject"),l&&Ember.propertyDidChange(this,"lastObject"),this.enumerableContentDidChange(s,null)),this},contains:function(e){return this[t(e)]>=0},copy:function(){var n=this.constructor,i=new n,o=e(this,"length");for(r(i,"length",o);--o>=0;)i[o]=this[o],i[t(this[o])]=o;return i},toString:function(){var e,r=this.length,t=[];for(e=0;r>e;e++)t[e]=this[e];return i("Ember.Set<%@>",[t.join(",")])}})}(),function(){var e=Ember.DeferredMixin;Ember.get;var r=Ember.Object.extend(e);r.reopenClass({promise:function(e,t){var n=r.create();return e.call(t,n),n}}),Ember.Deferred=r}(),function(){var e=Ember.ArrayPolyfills.forEach,r=Ember.ENV.EMBER_LOAD_HOOKS||{},t={};Ember.onLoad=function(e,n){var i;r[e]=r[e]||Ember.A(),r[e].pushObject(n),(i=t[e])&&n(i)},Ember.runLoadHooks=function(n,i){t[n]=i,r[n]&&e.call(r[n],function(e){e(i)})}}(),function(){var e=Ember.get;Ember.ControllerMixin=Ember.Mixin.create({isController:!0,target:null,container:null,store:null,model:Ember.computed.alias("content"),send:function(r){var t,n=[].slice.call(arguments,1);this[r]?this[r].apply(this,n):(t=e(this,"target"))&&t.send.apply(t,arguments)}}),Ember.Controller=Ember.Object.extend(Ember.ControllerMixin)}(),function(){var e=Ember.get,r=(Ember.set,Ember.EnumerableUtils.forEach);Ember.SortableMixin=Ember.Mixin.create(Ember.MutableEnumerable,{sortProperties:null,sortAscending:!0,orderBy:function(t,n){var i=0,o=e(this,"sortProperties"),s=e(this,"sortAscending");return r(o,function(r){0===i&&(i=Ember.compare(e(t,r),e(n,r)),0===i||s||(i=-1*i))}),i},destroy:function(){var t=e(this,"content"),n=e(this,"sortProperties");return t&&n&&r(t,function(e){r(n,function(r){Ember.removeObserver(e,r,this,"contentItemSortPropertyDidChange")},this)},this),this._super()},isSorted:Ember.computed.bool("sortProperties"),arrangedContent:Ember.computed("content","sortProperties.@each",function(){var t=e(this,"content"),n=e(this,"isSorted"),i=e(this,"sortProperties"),o=this;return t&&n?(t=t.slice(),t.sort(function(e,r){return o.orderBy(e,r)}),r(t,function(e){r(i,function(r){Ember.addObserver(e,r,this,"contentItemSortPropertyDidChange")},this)},this),Ember.A(t)):t}),_contentWillChange:Ember.beforeObserver(function(){var t=e(this,"content"),n=e(this,"sortProperties");t&&n&&r(t,function(e){r(n,function(r){Ember.removeObserver(e,r,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 r=e(this,"arrangedContent");r.reverseObjects()}},"sortAscending"),contentArrayWillChange:function(t,n,i,o){var s=e(this,"isSorted");if(s){var a=e(this,"arrangedContent"),u=t.slice(n,n+i),c=e(this,"sortProperties");r(u,function(e){a.removeObject(e),r(c,function(r){Ember.removeObserver(e,r,this,"contentItemSortPropertyDidChange")},this)},this)}return this._super(t,n,i,o)},contentArrayDidChange:function(t,n,i,o){var s=e(this,"isSorted"),a=e(this,"sortProperties");if(s){var u=t.slice(n,n+o);r(u,function(e){this.insertItemSorted(e),r(a,function(r){Ember.addObserver(e,r,this,"contentItemSortPropertyDidChange")},this)},this)}return this._super(t,n,i,o)},insertItemSorted:function(r){var t=e(this,"arrangedContent"),n=e(t,"length"),i=this._binarySearch(r,0,n);t.insertAt(i,r)},contentItemSortPropertyDidChange:function(r){var t=e(this,"arrangedContent"),n=t.indexOf(r),i=t.objectAt(n-1),o=t.objectAt(n+1),s=i&&this.orderBy(r,i),a=o&&this.orderBy(r,o);(0>s||a>0)&&(t.removeObject(r),this.insertItemSorted(r))},_binarySearch:function(r,t,n){var i,o,s,a;return t===n?t:(a=e(this,"arrangedContent"),i=t+Math.floor((n-t)/2),o=a.objectAt(i),s=this.orderBy(o,r),0>s?this._binarySearch(r,i+1,n):s>0?this._binarySearch(r,t,i):i)}})}(),function(){var e=Ember.get,r=(Ember.set,Ember.EnumerableUtils.forEach),t=Ember.EnumerableUtils.replace;Ember.ArrayController=Ember.ArrayProxy.extend(Ember.ControllerMixin,Ember.SortableMixin,{itemController:null,lookupItemController:function(){return e(this,"itemController")},objectAtContent:function(r){var t=e(this,"length"),n=e(this,"arrangedContent"),i=n&&n.objectAt(r);if(r>=0&&t>r){var o=this.lookupItemController(i);if(o)return this.controllerAt(r,i,o)}return i},arrangedContentDidChange:function(){this._super(),this._resetSubControllers()},arrayContentDidChange:function(n,i,o){var s=e(this,"_subControllers"),a=s.slice(n,n+i);r(a,function(e){e&&e.destroy()}),t(s,n,i,new Array(o)),this._super(n,i,o)},init:function(){this.get("content")||Ember.defineProperty(this,"content",void 0,Ember.A()),this._super(),this.set("_subControllers",Ember.A())},controllerAt:function(r,t,n){var i=e(this,"container"),o=e(this,"_subControllers"),s=o[r];if(s||(s=i.lookup("controller:"+n,{singleton:!1}),o[r]=s),!s)throw new Error('Could not resolve itemController: "'+n+'"');return s.set("target",this),s.set("content",t),s},_subControllers:null,_resetSubControllers:function(){var t=e(this,"_subControllers");t&&r(t,function(e){e&&e.destroy()}),this.set("_subControllers",Ember.A())}})}(),function(){Ember.ObjectController=Ember.ObjectProxy.extend(Ember.ControllerMixin)}()})(),"undefined"==typeof location||"localhost"!==location.hostname&&"127.0.0.1"!==location.hostname||console.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.");
@@ -55,7 +55,7 @@ var define, requireModule;
55
55
 
56
56
  @class Ember
57
57
  @static
58
- @version 1.0.0-rc.2
58
+ @version 1.0.0-rc.3
59
59
  */
60
60
 
61
61
  if ('undefined' === typeof Ember) {
@@ -82,10 +82,10 @@ Ember.toString = function() { return "Ember"; };
82
82
  /**
83
83
  @property VERSION
84
84
  @type String
85
- @default '1.0.0-rc.2'
85
+ @default '1.0.0-rc.3'
86
86
  @final
87
87
  */
88
- Ember.VERSION = '1.0.0-rc.2';
88
+ Ember.VERSION = '1.0.0-rc.3';
89
89
 
90
90
  /**
91
91
  Standard environmental variables. You can define these in a global `ENV`
@@ -310,7 +310,7 @@ Ember.none = Ember.deprecateFunc("Ember.none is deprecated. Please use Ember.isN
310
310
  @return {Boolean}
311
311
  */
312
312
  Ember.isEmpty = function(obj) {
313
- return obj === null || obj === undefined || (obj.length === 0 && typeof obj !== 'function') || (typeof obj === 'object' && Ember.get(obj, 'length') === 0);
313
+ return Ember.isNone(obj) || (obj.length === 0 && typeof obj !== 'function') || (typeof obj === 'object' && Ember.get(obj, 'length') === 0);
314
314
  };
315
315
  Ember.empty = Ember.deprecateFunc("Ember.empty is deprecated. Please use Ember.isEmpty instead.", Ember.isEmpty) ;
316
316
 
@@ -343,6 +343,13 @@ var platform = Ember.platform = {};
343
343
  */
344
344
  Ember.create = Object.create;
345
345
 
346
+ // IE8 has Object.create but it couldn't treat property descripters.
347
+ if (Ember.create) {
348
+ if (Ember.create({a: 1}, {a: {value: 2}}).a !== 2) {
349
+ Ember.create = null;
350
+ }
351
+ }
352
+
346
353
  // STUB_OBJECT_CREATE allows us to override other libraries that stub
347
354
  // Object.create different than we would prefer
348
355
  if (!Ember.create || Ember.ENV.STUB_OBJECT_CREATE) {
@@ -477,62 +484,6 @@ if (Ember.ENV.MANDATORY_SETTER && !platform.hasPropertyAccessors) {
477
484
 
478
485
 
479
486
 
480
- (function() {
481
- var utils = Ember.EnumerableUtils = {
482
- map: function(obj, callback, thisArg) {
483
- return obj.map ? obj.map.call(obj, callback, thisArg) : Array.prototype.map.call(obj, callback, thisArg);
484
- },
485
-
486
- forEach: function(obj, callback, thisArg) {
487
- return obj.forEach ? obj.forEach.call(obj, callback, thisArg) : Array.prototype.forEach.call(obj, callback, thisArg);
488
- },
489
-
490
- indexOf: function(obj, element, index) {
491
- return obj.indexOf ? obj.indexOf.call(obj, element, index) : Array.prototype.indexOf.call(obj, element, index);
492
- },
493
-
494
- indexesOf: function(obj, elements) {
495
- return elements === undefined ? [] : utils.map(elements, function(item) {
496
- return utils.indexOf(obj, item);
497
- });
498
- },
499
-
500
- addObject: function(array, item) {
501
- var index = utils.indexOf(array, item);
502
- if (index === -1) { array.push(item); }
503
- },
504
-
505
- removeObject: function(array, item) {
506
- var index = utils.indexOf(array, item);
507
- if (index !== -1) { array.splice(index, 1); }
508
- },
509
-
510
- replace: function(array, idx, amt, objects) {
511
- if (array.replace) {
512
- return array.replace(idx, amt, objects);
513
- } else {
514
- var args = Array.prototype.concat.apply([idx, amt], objects);
515
- return array.splice.apply(array, args);
516
- }
517
- },
518
-
519
- intersection: function(array1, array2) {
520
- var intersection = [];
521
-
522
- array1.forEach(function(element) {
523
- if (array2.indexOf(element) >= 0) {
524
- intersection.push(element);
525
- }
526
- });
527
-
528
- return intersection;
529
- }
530
- };
531
-
532
- })();
533
-
534
-
535
-
536
487
  (function() {
537
488
  /*jshint newcap:false*/
538
489
  /**
@@ -1409,6 +1360,68 @@ Ember.subscribe = Ember.Instrumentation.subscribe;
1409
1360
 
1410
1361
 
1411
1362
 
1363
+ (function() {
1364
+ var map, forEach, indexOf, concat;
1365
+ concat = Array.prototype.concat;
1366
+ map = Array.prototype.map || Ember.ArrayPolyfills.map;
1367
+ forEach = Array.prototype.forEach || Ember.ArrayPolyfills.forEach;
1368
+ indexOf = Array.prototype.indexOf || Ember.ArrayPolyfills.indexOf;
1369
+
1370
+ var utils = Ember.EnumerableUtils = {
1371
+ map: function(obj, callback, thisArg) {
1372
+ return obj.map ? obj.map.call(obj, callback, thisArg) : map.call(obj, callback, thisArg);
1373
+ },
1374
+
1375
+ forEach: function(obj, callback, thisArg) {
1376
+ return obj.forEach ? obj.forEach.call(obj, callback, thisArg) : forEach.call(obj, callback, thisArg);
1377
+ },
1378
+
1379
+ indexOf: function(obj, element, index) {
1380
+ return obj.indexOf ? obj.indexOf.call(obj, element, index) : indexOf.call(obj, element, index);
1381
+ },
1382
+
1383
+ indexesOf: function(obj, elements) {
1384
+ return elements === undefined ? [] : utils.map(elements, function(item) {
1385
+ return utils.indexOf(obj, item);
1386
+ });
1387
+ },
1388
+
1389
+ addObject: function(array, item) {
1390
+ var index = utils.indexOf(array, item);
1391
+ if (index === -1) { array.push(item); }
1392
+ },
1393
+
1394
+ removeObject: function(array, item) {
1395
+ var index = utils.indexOf(array, item);
1396
+ if (index !== -1) { array.splice(index, 1); }
1397
+ },
1398
+
1399
+ replace: function(array, idx, amt, objects) {
1400
+ if (array.replace) {
1401
+ return array.replace(idx, amt, objects);
1402
+ } else {
1403
+ var args = concat.apply([idx, amt], objects);
1404
+ return array.splice.apply(array, args);
1405
+ }
1406
+ },
1407
+
1408
+ intersection: function(array1, array2) {
1409
+ var intersection = [];
1410
+
1411
+ utils.forEach(array1, function(element) {
1412
+ if (utils.indexOf(array2, element) >= 0) {
1413
+ intersection.push(element);
1414
+ }
1415
+ });
1416
+
1417
+ return intersection;
1418
+ }
1419
+ };
1420
+
1421
+ })();
1422
+
1423
+
1424
+
1412
1425
  (function() {
1413
1426
  /**
1414
1427
  @module ember-metal
@@ -1548,7 +1561,7 @@ OrderedSet.prototype = {
1548
1561
  */
1549
1562
  forEach: function(fn, self) {
1550
1563
  // allow mutation during iteration
1551
- var list = this.list.slice();
1564
+ var list = this.toArray();
1552
1565
 
1553
1566
  for (var i = 0, j = list.length; i < j; i++) {
1554
1567
  fn.call(self, list[i]);
@@ -1571,7 +1584,7 @@ OrderedSet.prototype = {
1571
1584
  var set = new OrderedSet();
1572
1585
 
1573
1586
  set.presenceSet = copy(this.presenceSet);
1574
- set.list = this.list.slice();
1587
+ set.list = this.toArray();
1575
1588
 
1576
1589
  return set;
1577
1590
  }
@@ -1654,12 +1667,10 @@ Map.prototype = {
1654
1667
  // to use in browsers that are not ES6 friendly;
1655
1668
  var keys = this.keys,
1656
1669
  values = this.values,
1657
- guid = guidFor(key),
1658
- value;
1670
+ guid = guidFor(key);
1659
1671
 
1660
1672
  if (values.hasOwnProperty(guid)) {
1661
1673
  keys.remove(key);
1662
- value = values[guid];
1663
1674
  delete values[guid];
1664
1675
  return true;
1665
1676
  } else {
@@ -1831,12 +1842,11 @@ get = function get(obj, keyName) {
1831
1842
  obj = null;
1832
1843
  }
1833
1844
 
1834
- if (!obj || keyName.indexOf('.') !== -1) {
1835
1845
 
1846
+ if (obj === null || keyName.indexOf('.') !== -1) {
1836
1847
  return getPath(obj, keyName);
1837
1848
  }
1838
1849
 
1839
-
1840
1850
  var meta = obj[META_KEY], desc = meta && meta.descs[keyName], ret;
1841
1851
  if (desc) {
1842
1852
  return desc.get(obj, keyName);
@@ -1908,7 +1918,7 @@ var getPath = Ember._getPath = function(root, path) {
1908
1918
 
1909
1919
  parts = path.split(".");
1910
1920
  len = parts.length;
1911
- for (idx=0; root && idx<len; idx++) {
1921
+ for (idx=0; root !== undefined && root !== null && idx<len; idx++) {
1912
1922
  root = get(root, parts[idx], true);
1913
1923
  if (root && root.isDestroyed) { return undefined; }
1914
1924
  }
@@ -1954,7 +1964,9 @@ Ember.getPath = Ember.deprecateFunc('getPath is deprecated since get now support
1954
1964
 
1955
1965
  var o_create = Ember.create,
1956
1966
  metaFor = Ember.meta,
1957
- META_KEY = Ember.META_KEY;
1967
+ META_KEY = Ember.META_KEY,
1968
+ /* listener flags */
1969
+ ONCE = 1, SUSPENDED = 2, IMMEDIATE = 4;
1958
1970
 
1959
1971
  /*
1960
1972
  The event system uses a series of nested hashes to store listeners on an
@@ -1967,7 +1979,7 @@ var o_create = Ember.create,
1967
1979
  {
1968
1980
  listeners: { // variable name: `listenerSet`
1969
1981
  "foo:changed": [ // variable name: `actions`
1970
- [target, method, onceFlag, suspendedFlag]
1982
+ [target, method, flags]
1971
1983
  ]
1972
1984
  }
1973
1985
  }
@@ -2013,12 +2025,11 @@ function actionsUnion(obj, eventName, otherActions) {
2013
2025
  for (var i = actions.length - 1; i >= 0; i--) {
2014
2026
  var target = actions[i][0],
2015
2027
  method = actions[i][1],
2016
- once = actions[i][2],
2017
- suspended = actions[i][3],
2028
+ flags = actions[i][2],
2018
2029
  actionIndex = indexOf(otherActions, target, method);
2019
2030
 
2020
2031
  if (actionIndex === -1) {
2021
- otherActions.push([target, method, once, suspended]);
2032
+ otherActions.push([target, method, flags]);
2022
2033
  }
2023
2034
  }
2024
2035
  }
@@ -2032,14 +2043,13 @@ function actionsDiff(obj, eventName, otherActions) {
2032
2043
  for (var i = actions.length - 1; i >= 0; i--) {
2033
2044
  var target = actions[i][0],
2034
2045
  method = actions[i][1],
2035
- once = actions[i][2],
2036
- suspended = actions[i][3],
2046
+ flags = actions[i][2],
2037
2047
  actionIndex = indexOf(otherActions, target, method);
2038
2048
 
2039
2049
  if (actionIndex !== -1) { continue; }
2040
2050
 
2041
- otherActions.push([target, method, once, suspended]);
2042
- diffActions.push([target, method, once, suspended]);
2051
+ otherActions.push([target, method, flags]);
2052
+ diffActions.push([target, method, flags]);
2043
2053
  }
2044
2054
 
2045
2055
  return diffActions;
@@ -2065,11 +2075,14 @@ function addListener(obj, eventName, target, method, once) {
2065
2075
  }
2066
2076
 
2067
2077
  var actions = actionsFor(obj, eventName),
2068
- actionIndex = indexOf(actions, target, method);
2078
+ actionIndex = indexOf(actions, target, method),
2079
+ flags = 0;
2080
+
2081
+ if (once) flags |= ONCE;
2069
2082
 
2070
2083
  if (actionIndex !== -1) { return; }
2071
2084
 
2072
- actions.push([target, method, once, undefined]);
2085
+ actions.push([target, method, flags]);
2073
2086
 
2074
2087
  if ('function' === typeof obj.didAddListener) {
2075
2088
  obj.didAddListener(eventName, target, method);
@@ -2096,7 +2109,7 @@ function removeListener(obj, eventName, target, method) {
2096
2109
  target = null;
2097
2110
  }
2098
2111
 
2099
- function _removeListener(target, method, once) {
2112
+ function _removeListener(target, method) {
2100
2113
  var actions = actionsFor(obj, eventName),
2101
2114
  actionIndex = indexOf(actions, target, method);
2102
2115
 
@@ -2153,12 +2166,12 @@ function suspendListener(obj, eventName, target, method, callback) {
2153
2166
 
2154
2167
  if (actionIndex !== -1) {
2155
2168
  action = actions[actionIndex].slice(); // copy it, otherwise we're modifying a shared object
2156
- action[3] = true; // mark the action as suspended
2169
+ action[2] |= SUSPENDED; // mark the action as suspended
2157
2170
  actions[actionIndex] = action; // replace the shared object with our copy
2158
2171
  }
2159
2172
 
2160
2173
  function tryable() { return callback.call(target); }
2161
- function finalizer() { if (action) { action[3] = undefined; } }
2174
+ function finalizer() { if (action) { action[2] &= ~SUSPENDED; } }
2162
2175
 
2163
2176
  return Ember.tryFinally(tryable, finalizer);
2164
2177
  }
@@ -2197,7 +2210,7 @@ function suspendListeners(obj, eventNames, target, method, callback) {
2197
2210
 
2198
2211
  if (actionIndex !== -1) {
2199
2212
  action = actions[actionIndex].slice();
2200
- action[3] = true;
2213
+ action[2] |= SUSPENDED;
2201
2214
  actions[actionIndex] = action;
2202
2215
  suspendedActions.push(action);
2203
2216
  }
@@ -2207,7 +2220,7 @@ function suspendListeners(obj, eventNames, target, method, callback) {
2207
2220
 
2208
2221
  function finalizer() {
2209
2222
  for (i = 0, l = suspendedActions.length; i < l; i++) {
2210
- suspendedActions[i][3] = undefined;
2223
+ suspendedActions[i][2] &= ~SUSPENDED;
2211
2224
  }
2212
2225
  }
2213
2226
 
@@ -2257,13 +2270,11 @@ function sendEvent(obj, eventName, params, actions) {
2257
2270
  if (!actions) { return; }
2258
2271
 
2259
2272
  for (var i = actions.length - 1; i >= 0; i--) { // looping in reverse for once listeners
2260
- if (!actions[i] || actions[i][3] === true) { continue; }
2261
-
2262
- var target = actions[i][0],
2263
- method = actions[i][1],
2264
- once = actions[i][2];
2265
-
2266
- if (once) { removeListener(obj, eventName, target, method); }
2273
+ var action = actions[i];
2274
+ if (!action) { continue; }
2275
+ var target = action[0], method = action[1], flags = action[2];
2276
+ if (flags & SUSPENDED) { continue; }
2277
+ if (flags & ONCE) { removeListener(obj, eventName, target, method); }
2267
2278
  if (!target) { target = obj; }
2268
2279
  if ('string' === typeof method) { method = target[method]; }
2269
2280
  if (params) {
@@ -2343,7 +2354,7 @@ var guidFor = Ember.guidFor,
2343
2354
  keyName: keyName,
2344
2355
  eventName: eventName,
2345
2356
  listeners: [
2346
- [target, method, onceFlag, suspendedFlag]
2357
+ [target, method, flags]
2347
2358
  ]
2348
2359
  },
2349
2360
  ...
@@ -2617,8 +2628,6 @@ var notifyObservers = function(obj, keyName) {
2617
2628
  var META_KEY = Ember.META_KEY,
2618
2629
  MANDATORY_SETTER = Ember.ENV.MANDATORY_SETTER,
2619
2630
  IS_GLOBAL = /^([A-Z$]|([0-9][A-Z$]))/,
2620
- propertyWillChange = Ember.propertyWillChange,
2621
- propertyDidChange = Ember.propertyDidChange,
2622
2631
  getPath = Ember._getPath;
2623
2632
 
2624
2633
  /**
@@ -2772,7 +2781,7 @@ var MANDATORY_SETTER = Ember.ENV.MANDATORY_SETTER;
2772
2781
  //
2773
2782
 
2774
2783
  /**
2775
- Objects of this type can implement an interface to responds requests to
2784
+ Objects of this type can implement an interface to respond to requests to
2776
2785
  get and set. The default implementation handles simple properties.
2777
2786
 
2778
2787
  You generally won't need to create or subclass this directly.
@@ -3077,7 +3086,6 @@ function isProto(pvalue) {
3077
3086
  // value for the key then the node won't actually watch it. For a root node
3078
3087
  // pass null for parent and key and object for value.
3079
3088
  var ChainNode = Ember._ChainNode = function(parent, key, value) {
3080
- var obj;
3081
3089
  this._parent = parent;
3082
3090
  this._key = key;
3083
3091
 
@@ -3525,7 +3533,7 @@ var get = Ember.get,
3525
3533
  This function returns a map of unique dependencies for a
3526
3534
  given object and key.
3527
3535
  */
3528
- function keysForDep(obj, depsMeta, depKey) {
3536
+ function keysForDep(depsMeta, depKey) {
3529
3537
  var keys = depsMeta[depKey];
3530
3538
  if (!keys) {
3531
3539
  // if there are no dependencies yet for a the given key
@@ -3539,8 +3547,8 @@ function keysForDep(obj, depsMeta, depKey) {
3539
3547
  return keys;
3540
3548
  }
3541
3549
 
3542
- function metaForDeps(obj, meta) {
3543
- return keysForDep(obj, meta, 'deps');
3550
+ function metaForDeps(meta) {
3551
+ return keysForDep(meta, 'deps');
3544
3552
  }
3545
3553
 
3546
3554
  function addDependentKeys(desc, obj, keyName, meta) {
@@ -3549,12 +3557,12 @@ function addDependentKeys(desc, obj, keyName, meta) {
3549
3557
  var depKeys = desc._dependentKeys, depsMeta, idx, len, depKey, keys;
3550
3558
  if (!depKeys) return;
3551
3559
 
3552
- depsMeta = metaForDeps(obj, meta);
3560
+ depsMeta = metaForDeps(meta);
3553
3561
 
3554
3562
  for(idx = 0, len = depKeys.length; idx < len; idx++) {
3555
3563
  depKey = depKeys[idx];
3556
3564
  // Lookup keys meta for depKey
3557
- keys = keysForDep(obj, depsMeta, depKey);
3565
+ keys = keysForDep(depsMeta, depKey);
3558
3566
  // Increment the number of times depKey depends on keyName.
3559
3567
  keys[keyName] = (keys[keyName] || 0) + 1;
3560
3568
  // Watch the depKey
@@ -3568,12 +3576,12 @@ function removeDependentKeys(desc, obj, keyName, meta) {
3568
3576
  var depKeys = desc._dependentKeys, depsMeta, idx, len, depKey, keys;
3569
3577
  if (!depKeys) return;
3570
3578
 
3571
- depsMeta = metaForDeps(obj, meta);
3579
+ depsMeta = metaForDeps(meta);
3572
3580
 
3573
3581
  for(idx = 0, len = depKeys.length; idx < len; idx++) {
3574
3582
  depKey = depKeys[idx];
3575
3583
  // Lookup keys meta for depKey
3576
- keys = keysForDep(obj, depsMeta, depKey);
3584
+ keys = keysForDep(depsMeta, depKey);
3577
3585
  // Increment the number of times depKey depends on keyName.
3578
3586
  keys[keyName] = (keys[keyName] || 0) - 1;
3579
3587
  // Watch the depKey
@@ -3604,25 +3612,29 @@ ComputedProperty.prototype = new Ember.Descriptor();
3604
3612
 
3605
3613
  var ComputedPropertyPrototype = ComputedProperty.prototype;
3606
3614
 
3607
- /**
3608
- Call on a computed property to set it into cacheable mode. When in this
3609
- mode the computed property will automatically cache the return value of
3610
- your function until one of the dependent keys changes.
3615
+ /*
3616
+ Call on a computed property to explicitly change it's cacheable mode.
3617
+
3618
+ Please use `.volatile` over this method.
3611
3619
 
3612
3620
  ```javascript
3613
3621
  MyApp.president = Ember.Object.create({
3614
3622
  fullName: function() {
3615
3623
  return this.get('firstName') + ' ' + this.get('lastName');
3616
3624
 
3617
- // After calculating the value of this function, Ember will
3618
- // return that value without re-executing this function until
3619
- // one of the dependent properties change.
3625
+ // By default, Ember will return the value of this property
3626
+ // without re-executing this function.
3620
3627
  }.property('firstName', 'lastName')
3628
+
3629
+ initials: function() {
3630
+ return this.get('firstName')[0] + this.get('lastName')[0];
3631
+
3632
+ // This function will be executed every time this property
3633
+ // is requested.
3634
+ }.property('firstName', 'lastName').cacheable(false)
3621
3635
  });
3622
3636
  ```
3623
3637
 
3624
- Properties are cacheable by default.
3625
-
3626
3638
  @method cacheable
3627
3639
  @param {Boolean} aFlag optional set to `false` to disable caching
3628
3640
  @return {Ember.ComputedProperty} this
@@ -4186,7 +4198,6 @@ Ember.computed.alias = function(dependentKey) {
4186
4198
  */
4187
4199
  Ember.computed.defaultTo = function(defaultPath) {
4188
4200
  return Ember.computed(function(key, newValue, cachedValue) {
4189
- var result;
4190
4201
  if (arguments.length === 1) {
4191
4202
  return cachedValue != null ? cachedValue : get(this, defaultPath);
4192
4203
  }
@@ -4346,8 +4357,6 @@ function invoke(target, method, args, ignore) {
4346
4357
  // RUNLOOP
4347
4358
  //
4348
4359
 
4349
- var timerMark; // used by timers...
4350
-
4351
4360
  /**
4352
4361
  Ember RunLoop (Private)
4353
4362
 
@@ -4478,8 +4487,6 @@ RunLoop.prototype = {
4478
4487
  }
4479
4488
  }
4480
4489
 
4481
- timerMark = null;
4482
-
4483
4490
  return this;
4484
4491
  }
4485
4492
 
@@ -4595,7 +4602,7 @@ Ember.run.queues = ['sync', 'actions', 'destroy'];
4595
4602
 
4596
4603
  At the end of a RunLoop, any methods scheduled in this way will be invoked.
4597
4604
  Methods will be invoked in an order matching the named queues defined in
4598
- the `run.queues` property.
4605
+ the `Ember.run.queues` property.
4599
4606
 
4600
4607
  ```javascript
4601
4608
  Ember.run.schedule('sync', this, function(){
@@ -4704,27 +4711,44 @@ Ember.run.sync = function() {
4704
4711
 
4705
4712
  var timers = {}; // active timers...
4706
4713
 
4714
+ function sortByExpires(timerA, timerB) {
4715
+ var a = timerA.expires,
4716
+ b = timerB.expires;
4717
+
4718
+ if (a > b) { return 1; }
4719
+ if (a < b) { return -1; }
4720
+ return 0;
4721
+ }
4722
+
4707
4723
  var scheduledLater, scheduledLaterExpires;
4708
4724
  function invokeLaterTimers() {
4709
4725
  scheduledLater = null;
4710
4726
  run(function() {
4711
4727
  var now = (+ new Date()), earliest = -1;
4728
+ var timersToBeInvoked = [];
4712
4729
  for (var key in timers) {
4713
4730
  if (!timers.hasOwnProperty(key)) { continue; }
4714
4731
  var timer = timers[key];
4715
4732
  if (timer && timer.expires) {
4716
4733
  if (now >= timer.expires) {
4717
4734
  delete timers[key];
4718
- invoke(timer.target, timer.method, timer.args, 2);
4735
+ timersToBeInvoked.push(timer);
4719
4736
  } else {
4720
4737
  if (earliest < 0 || (timer.expires < earliest)) { earliest = timer.expires; }
4721
4738
  }
4722
4739
  }
4723
4740
  }
4724
4741
 
4742
+ forEach.call(timersToBeInvoked.sort(sortByExpires), function(timer) {
4743
+ invoke(timer.target, timer.method, timer.args, 2);
4744
+ });
4745
+
4725
4746
  // schedule next timeout to fire when the earliest timer expires
4726
4747
  if (earliest > 0) {
4727
- scheduledLater = setTimeout(invokeLaterTimers, earliest - now);
4748
+ // To allow overwrite `setTimeout` as stub from test code.
4749
+ // The assignment to `window.setTimeout` doesn't equal to `setTimeout` in older IE.
4750
+ // So `window` is required.
4751
+ scheduledLater = window.setTimeout(invokeLaterTimers, earliest - now);
4728
4752
  scheduledLaterExpires = earliest;
4729
4753
  }
4730
4754
  });
@@ -4826,8 +4850,25 @@ function scheduleOnce(queue, target, method, args) {
4826
4850
  }
4827
4851
 
4828
4852
  /**
4829
- Schedules an item to run one time during the current RunLoop. Calling
4830
- this method with the same target/method combination will have no effect.
4853
+ Schedule a function to run one time during the current RunLoop. This is equivalent
4854
+ to calling `scheduleOnce` with the "actions" queue.
4855
+
4856
+ @method once
4857
+ @param {Object} [target] The target of the method to invoke.
4858
+ @param {Function|String} method The method to invoke.
4859
+ If you pass a string it will be resolved on the
4860
+ target at the time the method is invoked.
4861
+ @param {Object} [args*] Optional arguments to pass to the timeout.
4862
+ @return {Object} timer
4863
+ */
4864
+ Ember.run.once = function(target, method) {
4865
+ return scheduleOnce('actions', target, method, slice.call(arguments, 2));
4866
+ };
4867
+
4868
+ /**
4869
+ Schedules a function to run one time in a given queue of the current RunLoop.
4870
+ Calling this method with the same queue/target/method combination will have
4871
+ no effect (past the initial call).
4831
4872
 
4832
4873
  Note that although you can pass optional arguments these will not be
4833
4874
  considered when looking for duplicates. New arguments will replace previous
@@ -4835,41 +4876,40 @@ function scheduleOnce(queue, target, method, args) {
4835
4876
 
4836
4877
  ```javascript
4837
4878
  Ember.run(function(){
4838
- var doFoo = function() { foo(); }
4839
- Ember.run.once(myContext, doFoo);
4840
- Ember.run.once(myContext, doFoo);
4841
- // doFoo will only be executed once at the end of the RunLoop
4879
+ var sayHi = function() { console.log('hi'); }
4880
+ Ember.run.scheduleOnce('afterRender', myContext, sayHi);
4881
+ Ember.run.scheduleOnce('afterRender', myContext, sayHi);
4882
+ // doFoo will only be executed once, in the afterRender queue of the RunLoop
4842
4883
  });
4843
4884
  ```
4844
4885
 
4845
- Also note that passing an anonymous function to `Ember.run.once` will
4886
+ Also note that passing an anonymous function to `Ember.run.scheduleOnce` will
4846
4887
  not prevent additional calls with an identical anonymous function from
4847
4888
  scheduling the items multiple times, e.g.:
4848
4889
 
4849
4890
  ```javascript
4850
4891
  function scheduleIt() {
4851
- Ember.run.once(myContext, function() { console.log("Closure"); });
4892
+ Ember.run.scheduleOnce('actions', myContext, function() { console.log("Closure"); });
4852
4893
  }
4853
4894
  scheduleIt();
4854
4895
  scheduleIt();
4855
- // "Closure" will print twice, even though we're using `Ember.run.once`,
4896
+ // "Closure" will print twice, even though we're using `Ember.run.scheduleOnce`,
4856
4897
  // because the function we pass to it is anonymous and won't match the
4857
4898
  // previously scheduled operation.
4858
4899
  ```
4859
4900
 
4860
- @method once
4861
- @param {Object} [target] target of method to invoke
4901
+ Available queues, and their order, can be found at `Ember.run.queues`
4902
+
4903
+ @method scheduleOnce
4904
+ @param {String} [queue] The name of the queue to schedule against. Default queues are 'sync' and 'actions'.
4905
+ @param {Object} [target] The target of the method to invoke.
4862
4906
  @param {Function|String} method The method to invoke.
4863
4907
  If you pass a string it will be resolved on the
4864
4908
  target at the time the method is invoked.
4865
4909
  @param {Object} [args*] Optional arguments to pass to the timeout.
4866
4910
  @return {Object} timer
4867
4911
  */
4868
- Ember.run.once = function(target, method) {
4869
- return scheduleOnce('actions', target, method, slice.call(arguments, 2));
4870
- };
4871
-
4872
- Ember.run.scheduleOnce = function(queue, target, method, args) {
4912
+ Ember.run.scheduleOnce = function(queue, target, method) {
4873
4913
  return scheduleOnce(queue, target, method, slice.call(arguments, 3));
4874
4914
  };
4875
4915
 
@@ -5305,7 +5345,7 @@ mixinProperties(Binding, {
5305
5345
  Properties ending in a `Binding` suffix will be converted to `Ember.Binding`
5306
5346
  instances. The value of this property should be a string representing a path
5307
5347
  to another object or a custom binding instanced created using Binding helpers
5308
- (see "Customizing Your Bindings"):
5348
+ (see "One Way Bindings"):
5309
5349
 
5310
5350
  ```
5311
5351
  valueBinding: "MyApp.someController.title"
@@ -6044,7 +6084,7 @@ Ember.alias = function(methodName) {
6044
6084
  return new Alias(methodName);
6045
6085
  };
6046
6086
 
6047
- Ember.deprecateFunc("Ember.alias is deprecated. Please use Ember.aliasMethod or Ember.computed.alias instead.", Ember.alias);
6087
+ Ember.alias = Ember.deprecateFunc("Ember.alias is deprecated. Please use Ember.aliasMethod or Ember.computed.alias instead.", Ember.alias);
6048
6088
 
6049
6089
  /**
6050
6090
  Makes a method available via an additional name.
@@ -6132,14 +6172,57 @@ Ember Metal
6132
6172
  })();
6133
6173
 
6134
6174
  (function() {
6135
- define("rsvp",
6136
- [],
6137
- function() {
6175
+ define("rsvp/all",
6176
+ ["rsvp/defer","exports"],
6177
+ function(__dependency1__, __exports__) {
6178
+ "use strict";
6179
+ var defer = __dependency1__.defer;
6180
+
6181
+ function all(promises) {
6182
+ var results = [], deferred = defer(), remaining = promises.length;
6183
+
6184
+ if (remaining === 0) {
6185
+ deferred.resolve([]);
6186
+ }
6187
+
6188
+ var resolver = function(index) {
6189
+ return function(value) {
6190
+ resolveAll(index, value);
6191
+ };
6192
+ };
6193
+
6194
+ var resolveAll = function(index, value) {
6195
+ results[index] = value;
6196
+ if (--remaining === 0) {
6197
+ deferred.resolve(results);
6198
+ }
6199
+ };
6200
+
6201
+ var rejectAll = function(error) {
6202
+ deferred.reject(error);
6203
+ };
6204
+
6205
+ for (var i = 0; i < promises.length; i++) {
6206
+ if (promises[i] && typeof promises[i].then === 'function') {
6207
+ promises[i].then(resolver(i), rejectAll);
6208
+ } else {
6209
+ resolveAll(i, promises[i]);
6210
+ }
6211
+ }
6212
+ return deferred.promise;
6213
+ }
6214
+
6215
+ __exports__.all = all;
6216
+ });
6217
+
6218
+ define("rsvp/async",
6219
+ ["exports"],
6220
+ function(__exports__) {
6138
6221
  "use strict";
6139
6222
  var browserGlobal = (typeof window !== 'undefined') ? window : {};
6140
6223
 
6141
- var MutationObserver = browserGlobal.MutationObserver || browserGlobal.WebKitMutationObserver;
6142
- var RSVP, async;
6224
+ var BrowserMutationObserver = browserGlobal.MutationObserver || browserGlobal.WebKitMutationObserver;
6225
+ var async;
6143
6226
 
6144
6227
  if (typeof process !== 'undefined' &&
6145
6228
  {}.toString.call(process) === '[object process]') {
@@ -6148,10 +6231,10 @@ define("rsvp",
6148
6231
  callback.call(binding);
6149
6232
  });
6150
6233
  };
6151
- } else if (MutationObserver) {
6234
+ } else if (BrowserMutationObserver) {
6152
6235
  var queue = [];
6153
6236
 
6154
- var observer = new MutationObserver(function() {
6237
+ var observer = new BrowserMutationObserver(function() {
6155
6238
  var toProcess = queue.slice();
6156
6239
  queue = [];
6157
6240
 
@@ -6182,6 +6265,47 @@ define("rsvp",
6182
6265
  };
6183
6266
  }
6184
6267
 
6268
+
6269
+ __exports__.async = async;
6270
+ });
6271
+
6272
+ define("rsvp/config",
6273
+ ["rsvp/async","exports"],
6274
+ function(__dependency1__, __exports__) {
6275
+ "use strict";
6276
+ var async = __dependency1__.async;
6277
+
6278
+ var config = {};
6279
+ config.async = async;
6280
+
6281
+ __exports__.config = config;
6282
+ });
6283
+
6284
+ define("rsvp/defer",
6285
+ ["rsvp/promise","exports"],
6286
+ function(__dependency1__, __exports__) {
6287
+ "use strict";
6288
+ var Promise = __dependency1__.Promise;
6289
+
6290
+ function defer() {
6291
+ var deferred = {};
6292
+
6293
+ var promise = new Promise(function(resolve, reject) {
6294
+ deferred.resolve = resolve;
6295
+ deferred.reject = reject;
6296
+ });
6297
+
6298
+ deferred.promise = promise;
6299
+ return deferred;
6300
+ }
6301
+
6302
+ __exports__.defer = defer;
6303
+ });
6304
+
6305
+ define("rsvp/events",
6306
+ ["exports"],
6307
+ function(__exports__) {
6308
+ "use strict";
6185
6309
  var Event = function(type, options) {
6186
6310
  this.type = type;
6187
6311
 
@@ -6276,7 +6400,148 @@ define("rsvp",
6276
6400
  }
6277
6401
  };
6278
6402
 
6279
- var Promise = function() {
6403
+
6404
+ __exports__.EventTarget = EventTarget;
6405
+ });
6406
+
6407
+ define("rsvp/hash",
6408
+ ["rsvp/defer","exports"],
6409
+ function(__dependency1__, __exports__) {
6410
+ "use strict";
6411
+ var defer = __dependency1__.defer;
6412
+
6413
+ function size(object) {
6414
+ var size = 0;
6415
+
6416
+ for (var prop in object) {
6417
+ size++;
6418
+ }
6419
+
6420
+ return size;
6421
+ }
6422
+
6423
+ function hash(promises) {
6424
+ var results = {}, deferred = defer(), remaining = size(promises);
6425
+
6426
+ if (remaining === 0) {
6427
+ deferred.resolve({});
6428
+ }
6429
+
6430
+ var resolver = function(prop) {
6431
+ return function(value) {
6432
+ resolveAll(prop, value);
6433
+ };
6434
+ };
6435
+
6436
+ var resolveAll = function(prop, value) {
6437
+ results[prop] = value;
6438
+ if (--remaining === 0) {
6439
+ deferred.resolve(results);
6440
+ }
6441
+ };
6442
+
6443
+ var rejectAll = function(error) {
6444
+ deferred.reject(error);
6445
+ };
6446
+
6447
+ for (var prop in promises) {
6448
+ if (promises[prop] && typeof promises[prop].then === 'function') {
6449
+ promises[prop].then(resolver(prop), rejectAll);
6450
+ } else {
6451
+ resolveAll(prop, promises[prop]);
6452
+ }
6453
+ }
6454
+
6455
+ return deferred.promise;
6456
+ }
6457
+
6458
+ __exports__.hash = hash;
6459
+ });
6460
+
6461
+ define("rsvp/node",
6462
+ ["rsvp/promise","rsvp/all","exports"],
6463
+ function(__dependency1__, __dependency2__, __exports__) {
6464
+ "use strict";
6465
+ var Promise = __dependency1__.Promise;
6466
+ var all = __dependency2__.all;
6467
+
6468
+ function makeNodeCallbackFor(resolve, reject) {
6469
+ return function (error, value) {
6470
+ if (error) {
6471
+ reject(error);
6472
+ } else if (arguments.length > 2) {
6473
+ resolve(Array.prototype.slice.call(arguments, 1));
6474
+ } else {
6475
+ resolve(value);
6476
+ }
6477
+ };
6478
+ }
6479
+
6480
+ function denodeify(nodeFunc) {
6481
+ return function() {
6482
+ var nodeArgs = Array.prototype.slice.call(arguments), resolve, reject;
6483
+
6484
+ var promise = new Promise(function(nodeResolve, nodeReject) {
6485
+ resolve = nodeResolve;
6486
+ reject = nodeReject;
6487
+ });
6488
+
6489
+ all(nodeArgs).then(function(nodeArgs) {
6490
+ nodeArgs.push(makeNodeCallbackFor(resolve, reject));
6491
+
6492
+ try {
6493
+ nodeFunc.apply(this, nodeArgs);
6494
+ } catch(e) {
6495
+ reject(e);
6496
+ }
6497
+ });
6498
+
6499
+ return promise;
6500
+ };
6501
+ }
6502
+
6503
+ __exports__.denodeify = denodeify;
6504
+ });
6505
+
6506
+ define("rsvp/promise",
6507
+ ["rsvp/config","rsvp/events","exports"],
6508
+ function(__dependency1__, __dependency2__, __exports__) {
6509
+ "use strict";
6510
+ var config = __dependency1__.config;
6511
+ var EventTarget = __dependency2__.EventTarget;
6512
+
6513
+ function objectOrFunction(x) {
6514
+ return isFunction(x) || (typeof x === "object" && x !== null);
6515
+ }
6516
+
6517
+ function isFunction(x){
6518
+ return typeof x === "function";
6519
+ }
6520
+
6521
+ var Promise = function(resolver) {
6522
+ var promise = this,
6523
+ resolved = false;
6524
+
6525
+ if (typeof resolver !== 'function') {
6526
+ throw new TypeError('You must pass a resolver function as the sole argument to the promise constructor');
6527
+ }
6528
+
6529
+ if (!(promise instanceof Promise)) {
6530
+ return new Promise(resolver);
6531
+ }
6532
+
6533
+ var resolvePromise = function(value) {
6534
+ if (resolved) { return; }
6535
+ resolved = true;
6536
+ resolve(promise, value);
6537
+ };
6538
+
6539
+ var rejectPromise = function(value) {
6540
+ if (resolved) { return; }
6541
+ resolved = true;
6542
+ reject(promise, value);
6543
+ };
6544
+
6280
6545
  this.on('promise:resolved', function(event) {
6281
6546
  this.trigger('success', { detail: event.detail });
6282
6547
  }, this);
@@ -6284,12 +6549,12 @@ define("rsvp",
6284
6549
  this.on('promise:failed', function(event) {
6285
6550
  this.trigger('error', { detail: event.detail });
6286
6551
  }, this);
6287
- };
6288
6552
 
6289
- var noop = function() {};
6553
+ resolver(resolvePromise, rejectPromise);
6554
+ };
6290
6555
 
6291
6556
  var invokeCallback = function(type, promise, callback, event) {
6292
- var hasCallback = typeof callback === 'function',
6557
+ var hasCallback = isFunction(callback),
6293
6558
  value, error, succeeded, failed;
6294
6559
 
6295
6560
  if (hasCallback) {
@@ -6305,34 +6570,34 @@ define("rsvp",
6305
6570
  succeeded = true;
6306
6571
  }
6307
6572
 
6308
- if (value && typeof value.then === 'function') {
6309
- value.then(function(value) {
6310
- promise.resolve(value);
6311
- }, function(error) {
6312
- promise.reject(error);
6313
- });
6573
+ if (handleThenable(promise, value)) {
6574
+ return;
6314
6575
  } else if (hasCallback && succeeded) {
6315
- promise.resolve(value);
6576
+ resolve(promise, value);
6316
6577
  } else if (failed) {
6317
- promise.reject(error);
6318
- } else {
6319
- promise[type](value);
6578
+ reject(promise, error);
6579
+ } else if (type === 'resolve') {
6580
+ resolve(promise, value);
6581
+ } else if (type === 'reject') {
6582
+ reject(promise, value);
6320
6583
  }
6321
6584
  };
6322
6585
 
6323
6586
  Promise.prototype = {
6587
+ constructor: Promise,
6588
+
6324
6589
  then: function(done, fail) {
6325
- var thenPromise = new Promise();
6590
+ var thenPromise = new Promise(function() {});
6326
6591
 
6327
- if (this.isResolved) {
6328
- RSVP.async(function() {
6329
- invokeCallback('resolve', thenPromise, done, { detail: this.resolvedValue });
6592
+ if (this.isFulfilled) {
6593
+ config.async(function() {
6594
+ invokeCallback('resolve', thenPromise, done, { detail: this.fulfillmentValue });
6330
6595
  }, this);
6331
6596
  }
6332
6597
 
6333
6598
  if (this.isRejected) {
6334
- RSVP.async(function() {
6335
- invokeCallback('reject', thenPromise, fail, { detail: this.rejectedValue });
6599
+ config.async(function() {
6600
+ invokeCallback('reject', thenPromise, fail, { detail: this.rejectedReason });
6336
6601
  }, this);
6337
6602
  }
6338
6603
 
@@ -6345,75 +6610,138 @@ define("rsvp",
6345
6610
  });
6346
6611
 
6347
6612
  return thenPromise;
6348
- },
6613
+ }
6614
+ };
6349
6615
 
6350
- resolve: function(value) {
6351
- resolve(this, value);
6616
+ EventTarget.mixin(Promise.prototype);
6352
6617
 
6353
- this.resolve = noop;
6354
- this.reject = noop;
6355
- },
6618
+ function resolve(promise, value) {
6619
+ if (promise === value) {
6620
+ fulfill(promise, value);
6621
+ } else if (!handleThenable(promise, value)) {
6622
+ fulfill(promise, value);
6623
+ }
6624
+ }
6625
+
6626
+ function handleThenable(promise, value) {
6627
+ var then = null;
6356
6628
 
6357
- reject: function(value) {
6358
- reject(this, value);
6629
+ if (objectOrFunction(value)) {
6630
+ try {
6631
+ then = value.then;
6632
+ } catch(e) {
6633
+ reject(promise, e);
6634
+ return true;
6635
+ }
6359
6636
 
6360
- this.resolve = noop;
6361
- this.reject = noop;
6637
+ if (isFunction(then)) {
6638
+ try {
6639
+ then.call(value, function(val) {
6640
+ if (value !== val) {
6641
+ resolve(promise, val);
6642
+ } else {
6643
+ fulfill(promise, val);
6644
+ }
6645
+ }, function(val) {
6646
+ reject(promise, val);
6647
+ });
6648
+ } catch (e) {
6649
+ reject(promise, e);
6650
+ }
6651
+ return true;
6652
+ }
6362
6653
  }
6363
- };
6364
6654
 
6365
- function resolve(promise, value) {
6366
- RSVP.async(function() {
6655
+ return false;
6656
+ }
6657
+
6658
+ function fulfill(promise, value) {
6659
+ config.async(function() {
6367
6660
  promise.trigger('promise:resolved', { detail: value });
6368
- promise.isResolved = true;
6369
- promise.resolvedValue = value;
6661
+ promise.isFulfilled = true;
6662
+ promise.fulfillmentValue = value;
6370
6663
  });
6371
6664
  }
6372
6665
 
6373
6666
  function reject(promise, value) {
6374
- RSVP.async(function() {
6667
+ config.async(function() {
6375
6668
  promise.trigger('promise:failed', { detail: value });
6376
6669
  promise.isRejected = true;
6377
- promise.rejectedValue = value;
6670
+ promise.rejectedReason = value;
6378
6671
  });
6379
6672
  }
6380
6673
 
6381
- function all(promises) {
6382
- var i, results = [];
6383
- var allPromise = new Promise();
6384
- var remaining = promises.length;
6385
6674
 
6386
- if (remaining === 0) {
6387
- allPromise.resolve([]);
6388
- }
6675
+ __exports__.Promise = Promise;
6676
+ });
6389
6677
 
6390
- var resolver = function(index) {
6391
- return function(value) {
6392
- resolve(index, value);
6393
- };
6394
- };
6678
+ define("rsvp/resolve",
6679
+ ["rsvp/promise","exports"],
6680
+ function(__dependency1__, __exports__) {
6681
+ "use strict";
6682
+ var Promise = __dependency1__.Promise;
6395
6683
 
6396
- var resolve = function(index, value) {
6397
- results[index] = value;
6398
- if (--remaining === 0) {
6399
- allPromise.resolve(results);
6400
- }
6401
- };
6402
6684
 
6403
- var reject = function(error) {
6404
- allPromise.reject(error);
6405
- };
6685
+ function objectOrFunction(x) {
6686
+ return typeof x === "function" || (typeof x === "object" && x !== null);
6687
+ }
6406
6688
 
6407
- for (i = 0; i < remaining; i++) {
6408
- promises[i].then(resolver(i), reject);
6409
- }
6410
- return allPromise;
6689
+ function resolve(thenable){
6690
+ var promise = new Promise(function(resolve, reject){
6691
+ var then;
6692
+
6693
+ try {
6694
+ if ( objectOrFunction(thenable) ) {
6695
+ then = thenable.then;
6696
+
6697
+ if (typeof then === "function") {
6698
+ then.call(thenable, resolve, reject);
6699
+ } else {
6700
+ resolve(thenable);
6701
+ }
6702
+
6703
+ } else {
6704
+ resolve(thenable);
6705
+ }
6706
+
6707
+ } catch(error) {
6708
+ reject(error);
6709
+ }
6710
+ });
6711
+
6712
+ return promise;
6411
6713
  }
6412
6714
 
6413
- EventTarget.mixin(Promise.prototype);
6414
6715
 
6415
- RSVP = { async: async, Promise: Promise, Event: Event, EventTarget: EventTarget, all: all, raiseOnUncaughtExceptions: true };
6416
- return RSVP;
6716
+ __exports__.resolve = resolve;
6717
+ });
6718
+
6719
+ define("rsvp",
6720
+ ["rsvp/events","rsvp/promise","rsvp/node","rsvp/all","rsvp/hash","rsvp/defer","rsvp/config","rsvp/resolve","exports"],
6721
+ function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __dependency5__, __dependency6__, __dependency7__, __dependency8__, __exports__) {
6722
+ "use strict";
6723
+ var EventTarget = __dependency1__.EventTarget;
6724
+ var Promise = __dependency2__.Promise;
6725
+ var denodeify = __dependency3__.denodeify;
6726
+ var all = __dependency4__.all;
6727
+ var hash = __dependency5__.hash;
6728
+ var defer = __dependency6__.defer;
6729
+ var config = __dependency7__.config;
6730
+ var resolve = __dependency8__.resolve;
6731
+
6732
+ function configure(name, value) {
6733
+ config[name] = value;
6734
+ }
6735
+
6736
+
6737
+ __exports__.Promise = Promise;
6738
+ __exports__.EventTarget = EventTarget;
6739
+ __exports__.all = all;
6740
+ __exports__.hash = hash;
6741
+ __exports__.defer = defer;
6742
+ __exports__.denodeify = denodeify;
6743
+ __exports__.configure = configure;
6744
+ __exports__.resolve = resolve;
6417
6745
  });
6418
6746
 
6419
6747
  })();
@@ -6659,7 +6987,7 @@ define("container",
6659
6987
  var factory = factoryFor(container, fullName);
6660
6988
 
6661
6989
  var splitName = fullName.split(":"),
6662
- type = splitName[0], name = splitName[1],
6990
+ type = splitName[0],
6663
6991
  value;
6664
6992
 
6665
6993
  if (option(container, fullName, 'instantiate') === false) {
@@ -7067,7 +7395,8 @@ Ember.String = {
7067
7395
  ```
7068
7396
 
7069
7397
  @method fmt
7070
- @param {Object...} [args]
7398
+ @param {String} str The string to format
7399
+ @param {Array} formats An array of parameters to interpolate into string.
7071
7400
  @return {String} formatted string
7072
7401
  */
7073
7402
  fmt: function(str, formats) {
@@ -8397,9 +8726,7 @@ Ember.Enumerable = Ember.Mixin.create({
8397
8726
  // HELPERS
8398
8727
  //
8399
8728
 
8400
- var get = Ember.get, set = Ember.set, map = Ember.EnumerableUtils.map, cacheFor = Ember.cacheFor;
8401
-
8402
- function none(obj) { return obj===null || obj===undefined; }
8729
+ var get = Ember.get, set = Ember.set, isNone = Ember.isNone, map = Ember.EnumerableUtils.map, cacheFor = Ember.cacheFor;
8403
8730
 
8404
8731
  // ..........................................................
8405
8732
  // ARRAY
@@ -8549,8 +8876,8 @@ Ember.Array = Ember.Mixin.create(Ember.Enumerable, /** @scope Ember.Array.protot
8549
8876
  slice: function(beginIndex, endIndex) {
8550
8877
  var ret = Ember.A([]);
8551
8878
  var length = get(this, 'length') ;
8552
- if (none(beginIndex)) beginIndex = 0 ;
8553
- if (none(endIndex) || (endIndex > length)) endIndex = length ;
8879
+ if (isNone(beginIndex)) beginIndex = 0 ;
8880
+ if (isNone(endIndex) || (endIndex > length)) endIndex = length ;
8554
8881
 
8555
8882
  if (beginIndex < 0) beginIndex = length + beginIndex;
8556
8883
  if (endIndex < 0) endIndex = length + endIndex;
@@ -8710,7 +9037,7 @@ Ember.Array = Ember.Mixin.create(Ember.Enumerable, /** @scope Ember.Array.protot
8710
9037
  @param {Number} startIdx The starting index in the array that will change.
8711
9038
  @param {Number} removeAmt The number of items that will be removed. If you
8712
9039
  pass `null` assumes 0
8713
- @param {Number} addAmt The number of items that will be added If you
9040
+ @param {Number} addAmt The number of items that will be added. If you
8714
9041
  pass `null` assumes 0.
8715
9042
  @return {Ember.Array} receiver
8716
9043
  */
@@ -8744,6 +9071,20 @@ Ember.Array = Ember.Mixin.create(Ember.Enumerable, /** @scope Ember.Array.protot
8744
9071
  return this;
8745
9072
  },
8746
9073
 
9074
+ /**
9075
+ If you are implementing an object that supports `Ember.Array`, call this
9076
+ method just after the array content changes to notify any observers and
9077
+ invalidate any related properties. Pass the starting index of the change
9078
+ as well as a delta of the amounts to change.
9079
+
9080
+ @method arrayContentDidChange
9081
+ @param {Number} startIdx The starting index in the array that did change.
9082
+ @param {Number} removeAmt The number of items that were removed. If you
9083
+ pass `null` assumes 0
9084
+ @param {Number} addAmt The number of items that were added. If you
9085
+ pass `null` assumes 0.
9086
+ @return {Ember.Array} receiver
9087
+ */
8747
9088
  arrayContentDidChange: function(startIdx, removeAmt, addAmt) {
8748
9089
 
8749
9090
  // if no args are passed assume everything changes
@@ -9044,7 +9385,7 @@ var forEach = Ember.EnumerableUtils.forEach;
9044
9385
 
9045
9386
  To add an object to an enumerable, use the `addObject()` method. This
9046
9387
  method will only add the object to the enumerable if the object is not
9047
- already present and the object if of a type supported by the enumerable.
9388
+ already present and is of a type supported by the enumerable.
9048
9389
 
9049
9390
  ```javascript
9050
9391
  set.addObject(contact);
@@ -9052,8 +9393,8 @@ var forEach = Ember.EnumerableUtils.forEach;
9052
9393
 
9053
9394
  ## Removing Objects
9054
9395
 
9055
- To remove an object form an enumerable, use the `removeObject()` method. This
9056
- will only remove the object if it is already in the enumerable, otherwise
9396
+ To remove an object from an enumerable, use the `removeObject()` method. This
9397
+ will only remove the object if it is present in the enumerable, otherwise
9057
9398
  this method has no effect.
9058
9399
 
9059
9400
  ```javascript
@@ -9080,7 +9421,7 @@ Ember.MutableEnumerable = Ember.Mixin.create(Ember.Enumerable, {
9080
9421
  already present in the collection. If the object is present, this method
9081
9422
  has no effect.
9082
9423
 
9083
- If the passed object is of a type not supported by the receiver
9424
+ If the passed object is of a type not supported by the receiver,
9084
9425
  then this method should raise an exception.
9085
9426
 
9086
9427
  @method addObject
@@ -9107,10 +9448,10 @@ Ember.MutableEnumerable = Ember.Mixin.create(Ember.Enumerable, {
9107
9448
  __Required.__ You must implement this method to apply this mixin.
9108
9449
 
9109
9450
  Attempts to remove the passed object from the receiver collection if the
9110
- object is in present in the collection. If the object is not present,
9451
+ object is present in the collection. If the object is not present,
9111
9452
  this method has no effect.
9112
9453
 
9113
- If the passed object is of a type not supported by the receiver
9454
+ If the passed object is of a type not supported by the receiver,
9114
9455
  then this method should raise an exception.
9115
9456
 
9116
9457
  @method removeObject
@@ -9121,7 +9462,7 @@ Ember.MutableEnumerable = Ember.Mixin.create(Ember.Enumerable, {
9121
9462
 
9122
9463
 
9123
9464
  /**
9124
- Removes each objects in the passed enumerable from the receiver.
9465
+ Removes each object in the passed enumerable from the receiver.
9125
9466
 
9126
9467
  @method removeObjects
9127
9468
  @param {Ember.Enumerable} objects the objects to remove
@@ -9902,7 +10243,7 @@ Ember.Observable = Ember.Mixin.create(/** @scope Ember.Observable.prototype */ {
9902
10243
  @return {Object} The new property value
9903
10244
  */
9904
10245
  incrementProperty: function(keyName, increment) {
9905
- if (!increment) { increment = 1; }
10246
+ if (Ember.isNone(increment)) { increment = 1; }
9906
10247
  set(this, keyName, (get(this, keyName) || 0)+increment);
9907
10248
  return get(this, keyName);
9908
10249
  },
@@ -9921,7 +10262,7 @@ Ember.Observable = Ember.Mixin.create(/** @scope Ember.Observable.prototype */ {
9921
10262
  @return {Object} The new property value
9922
10263
  */
9923
10264
  decrementProperty: function(keyName, increment) {
9924
- if (!increment) { increment = 1; }
10265
+ if (Ember.isNone(increment)) { increment = 1; }
9925
10266
  set(this, keyName, (get(this, keyName) || 0)-increment);
9926
10267
  return get(this, keyName);
9927
10268
  },
@@ -9977,6 +10318,15 @@ Ember.Observable = Ember.Mixin.create(/** @scope Ember.Observable.prototype */ {
9977
10318
  var get = Ember.get, set = Ember.set;
9978
10319
 
9979
10320
  /**
10321
+ `Ember.TargetActionSupport` is a mixin that can be included in a class
10322
+ to add a `triggerAction` method with semantics similar to the Handlebars
10323
+ `{{action}}` helper. In normal Ember usage, the `{{action}}` helper is
10324
+ usually the best choice. This mixin is most often useful when you are
10325
+ doing more complex event handling in View objects.
10326
+
10327
+ See also `Ember.ViewTargetActionSupport`, which has
10328
+ view-aware defaults for target and actionContext.
10329
+
9980
10330
  @class TargetActionSupport
9981
10331
  @namespace Ember
9982
10332
  @extends Ember.Mixin
@@ -9984,6 +10334,7 @@ var get = Ember.get, set = Ember.set;
9984
10334
  Ember.TargetActionSupport = Ember.Mixin.create({
9985
10335
  target: null,
9986
10336
  action: null,
10337
+ actionContext: null,
9987
10338
 
9988
10339
  targetObject: Ember.computed(function() {
9989
10340
  var target = get(this, 'target');
@@ -9997,21 +10348,86 @@ Ember.TargetActionSupport = Ember.Mixin.create({
9997
10348
  }
9998
10349
  }).property('target'),
9999
10350
 
10000
- triggerAction: function() {
10001
- var action = get(this, 'action'),
10002
- target = get(this, 'targetObject');
10351
+ actionContextObject: Ember.computed(function() {
10352
+ var actionContext = get(this, 'actionContext');
10353
+
10354
+ if (Ember.typeOf(actionContext) === "string") {
10355
+ var value = get(this, actionContext);
10356
+ if (value === undefined) { value = get(Ember.lookup, actionContext); }
10357
+ return value;
10358
+ } else {
10359
+ return actionContext;
10360
+ }
10361
+ }).property('actionContext'),
10362
+
10363
+ /**
10364
+ Send an "action" with an "actionContext" to a "target". The action, actionContext
10365
+ and target will be retrieved from properties of the object. For example:
10366
+
10367
+ ```javascript
10368
+ App.SaveButtonView = Ember.View.extend(Ember.TargetActionSupport, {
10369
+ target: Ember.computed.alias('controller'),
10370
+ action: 'save',
10371
+ actionContext: Ember.computed.alias('context'),
10372
+ click: function(){
10373
+ this.triggerAction(); // Sends the `save` action, along with the current context
10374
+ // to the current controller
10375
+ }
10376
+ });
10377
+ ```
10378
+
10379
+ The `target`, `action`, and `actionContext` can be provided as properties of
10380
+ an optional object argument to `triggerAction` as well.
10381
+
10382
+ ```javascript
10383
+ App.SaveButtonView = Ember.View.extend(Ember.TargetActionSupport, {
10384
+ click: function(){
10385
+ this.triggerAction({
10386
+ action: 'save',
10387
+ target: this.get('controller'),
10388
+ actionContext: this.get('context'),
10389
+ }); // Sends the `save` action, along with the current context
10390
+ // to the current controller
10391
+ }
10392
+ });
10393
+ ```
10394
+
10395
+ The `actionContext` defaults to the object you mixing `TargetActionSupport` into.
10396
+ But `target` and `action` must be specified either as properties or with the argument
10397
+ to `triggerAction`, or a combination:
10398
+
10399
+ ```javascript
10400
+ App.SaveButtonView = Ember.View.extend(Ember.TargetActionSupport, {
10401
+ target: Ember.computed.alias('controller'),
10402
+ click: function(){
10403
+ this.triggerAction({
10404
+ action: 'save'
10405
+ }); // Sends the `save` action, along with a reference to `this`,
10406
+ // to the current controller
10407
+ }
10408
+ });
10409
+ ```
10410
+
10411
+ @method triggerAction
10412
+ @param opts {Hash} (optional, with the optional keys action, target and/or actionContext)
10413
+ @return {Boolean} true if the action was sent successfully and did not return false
10414
+ */
10415
+ triggerAction: function(opts) {
10416
+ opts = opts || {};
10417
+ var action = opts['action'] || get(this, 'action'),
10418
+ target = opts['target'] || get(this, 'targetObject'),
10419
+ actionContext = opts['actionContext'] || get(this, 'actionContextObject') || this;
10003
10420
 
10004
10421
  if (target && action) {
10005
10422
  var ret;
10006
10423
 
10007
- if (typeof target.send === 'function') {
10008
- ret = target.send(action, this);
10424
+ if (target.send) {
10425
+ ret = target.send.apply(target, [action, actionContext]);
10009
10426
  } else {
10010
- if (typeof action === 'string') {
10011
- action = target[action];
10012
- }
10013
- ret = action.call(target, this);
10427
+
10428
+ ret = target[action].apply(target, [actionContext]);
10014
10429
  }
10430
+
10015
10431
  if (ret !== false) ret = true;
10016
10432
 
10017
10433
  return ret;
@@ -10183,9 +10599,9 @@ Ember.Evented = Ember.Mixin.create({
10183
10599
  (function() {
10184
10600
  var RSVP = requireModule("rsvp");
10185
10601
 
10186
- RSVP.async = function(callback, binding) {
10602
+ RSVP.configure('async', function(callback, binding) {
10187
10603
  Ember.run.schedule('actions', binding, callback);
10188
- };
10604
+ });
10189
10605
 
10190
10606
  /**
10191
10607
  @module ember
@@ -10207,9 +10623,22 @@ Ember.DeferredMixin = Ember.Mixin.create({
10207
10623
  @param {Function} doneCallback a callback function to be called when done
10208
10624
  @param {Function} failCallback a callback function to be called when failed
10209
10625
  */
10210
- then: function(doneCallback, failCallback) {
10211
- var promise = get(this, 'promise');
10212
- return promise.then.apply(promise, arguments);
10626
+ then: function(resolve, reject) {
10627
+ var deferred, promise, entity;
10628
+
10629
+ entity = this;
10630
+ deferred = get(this, '_deferred');
10631
+ promise = deferred.promise;
10632
+
10633
+ return promise.then(function(fulfillment) {
10634
+ if (fulfillment === promise) {
10635
+ return resolve(entity);
10636
+ } else {
10637
+ return resolve(fulfillment);
10638
+ }
10639
+ }, function(reason) {
10640
+ return reject(reason);
10641
+ });
10213
10642
  },
10214
10643
 
10215
10644
  /**
@@ -10218,7 +10647,16 @@ Ember.DeferredMixin = Ember.Mixin.create({
10218
10647
  @method resolve
10219
10648
  */
10220
10649
  resolve: function(value) {
10221
- get(this, 'promise').resolve(value);
10650
+ var deferred, promise;
10651
+
10652
+ deferred = get(this, '_deferred');
10653
+ promise = deferred.promise;
10654
+
10655
+ if (value === this){
10656
+ deferred.resolve(promise);
10657
+ } else {
10658
+ deferred.resolve(value);
10659
+ }
10222
10660
  },
10223
10661
 
10224
10662
  /**
@@ -10227,11 +10665,11 @@ Ember.DeferredMixin = Ember.Mixin.create({
10227
10665
  @method reject
10228
10666
  */
10229
10667
  reject: function(value) {
10230
- get(this, 'promise').reject(value);
10668
+ get(this, '_deferred').reject(value);
10231
10669
  },
10232
10670
 
10233
- promise: Ember.computed(function() {
10234
- return new RSVP.Promise();
10671
+ _deferred: Ember.computed(function() {
10672
+ return new RSVP.defer();
10235
10673
  })
10236
10674
  });
10237
10675
 
@@ -10917,7 +11355,7 @@ function findNamespaces() {
10917
11355
 
10918
11356
  for (var prop in lookup) {
10919
11357
  // These don't raise exceptions but can cause warnings
10920
- if (prop === "parent" || prop === "top" || prop === "frameElement") { continue; }
11358
+ if (prop === "parent" || prop === "top" || prop === "frameElement" || prop === "webkitStorageInfo") { continue; }
10921
11359
 
10922
11360
  // get(window.globalStorage, 'isNamespace') would try to read the storage for domain isNamespace and cause exception in Firefox.
10923
11361
  // globalStorage is a storage obsoleted by the WhatWG storage specification. See https://developer.mozilla.org/en/DOM/Storage#globalStorage
@@ -11827,9 +12265,8 @@ if (ignore.length>0) {
11827
12265
  @namespace Ember
11828
12266
  @extends Ember.Mixin
11829
12267
  @uses Ember.MutableArray
11830
- @uses Ember.MutableEnumerable
12268
+ @uses Ember.Observable
11831
12269
  @uses Ember.Copyable
11832
- @uses Ember.Freezable
11833
12270
  */
11834
12271
  Ember.NativeArray = NativeArray;
11835
12272
 
@@ -11876,7 +12313,7 @@ if (Ember.EXTEND_PROTOTYPES === true || Ember.EXTEND_PROTOTYPES.Array) {
11876
12313
  @submodule ember-runtime
11877
12314
  */
11878
12315
 
11879
- var get = Ember.get, set = Ember.set, guidFor = Ember.guidFor, none = Ember.isNone, fmt = Ember.String.fmt;
12316
+ var get = Ember.get, set = Ember.set, guidFor = Ember.guidFor, isNone = Ember.isNone, fmt = Ember.String.fmt;
11880
12317
 
11881
12318
  /**
11882
12319
  An unordered collection of objects.
@@ -12234,7 +12671,7 @@ Ember.Set = Ember.CoreObject.extend(Ember.MutableEnumerable, Ember.Copyable, Emb
12234
12671
  // implements Ember.MutableEnumerable
12235
12672
  addObject: function(obj) {
12236
12673
  if (get(this, 'isFrozen')) throw new Error(Ember.FROZEN_ERROR);
12237
- if (none(obj)) return this; // nothing to do
12674
+ if (isNone(obj)) return this; // nothing to do
12238
12675
 
12239
12676
  var guid = guidFor(obj),
12240
12677
  idx = this[guid],
@@ -12262,7 +12699,7 @@ Ember.Set = Ember.CoreObject.extend(Ember.MutableEnumerable, Ember.Copyable, Emb
12262
12699
  // implements Ember.MutableEnumerable
12263
12700
  removeObject: function(obj) {
12264
12701
  if (get(this, 'isFrozen')) throw new Error(Ember.FROZEN_ERROR);
12265
- if (none(obj)) return this; // nothing to do
12702
+ if (isNone(obj)) return this; // nothing to do
12266
12703
 
12267
12704
  var guid = guidFor(obj),
12268
12705
  idx = this[guid],
@@ -12337,7 +12774,7 @@ Deferred.reopenClass({
12337
12774
  promise: function(callback, binding) {
12338
12775
  var deferred = Deferred.create();
12339
12776
  callback.call(binding, deferred);
12340
- return get(deferred, 'promise');
12777
+ return deferred;
12341
12778
  }
12342
12779
  });
12343
12780
 
@@ -12348,6 +12785,8 @@ Ember.Deferred = Deferred;
12348
12785
 
12349
12786
 
12350
12787
  (function() {
12788
+ var forEach = Ember.ArrayPolyfills.forEach;
12789
+
12351
12790
  /**
12352
12791
  @module ember
12353
12792
  @submodule ember-runtime
@@ -12380,12 +12819,10 @@ Ember.onLoad = function(name, callback) {
12380
12819
  @param object {Object} object to pass to callbacks
12381
12820
  */
12382
12821
  Ember.runLoadHooks = function(name, object) {
12383
- var hooks;
12384
-
12385
12822
  loaded[name] = object;
12386
12823
 
12387
- if (hooks = loadHooks[name]) {
12388
- loadHooks[name].forEach(function(callback) {
12824
+ if (loadHooks[name]) {
12825
+ forEach.call(loadHooks[name], function(callback) {
12389
12826
  callback(object);
12390
12827
  });
12391
12828
  }
@@ -12839,9 +13276,9 @@ Ember.ArrayController = Ember.ArrayProxy.extend(Ember.ControllerMixin,
12839
13276
  });
12840
13277
  ```
12841
13278
 
12842
- @method
12843
- @type String
12844
- @default null
13279
+ @method lookupItemController
13280
+ @param {Object} object
13281
+ @return {String}
12845
13282
  */
12846
13283
  lookupItemController: function(object) {
12847
13284
  return get(this, 'itemController');
@@ -12919,10 +13356,11 @@ Ember.ArrayController = Ember.ArrayProxy.extend(Ember.ControllerMixin,
12919
13356
 
12920
13357
  _resetSubControllers: function() {
12921
13358
  var subControllers = get(this, '_subControllers');
12922
-
12923
- forEach(subControllers, function(subController) {
12924
- if (subController) { subController.destroy(); }
12925
- });
13359
+ if (subControllers) {
13360
+ forEach(subControllers, function(subController) {
13361
+ if (subController) { subController.destroy(); }
13362
+ });
13363
+ }
12926
13364
 
12927
13365
  this.set('_subControllers', Ember.A());
12928
13366
  }