Ember
- if (root === null && path.indexOf('.') === -1) { return get(Ember.lookup, path); }
+ if (root === null && !isPath(path)) {
+ return get(Ember.lookup, path);
+ }
// detect complicated paths and normalize them
- hasThis = path.indexOf(HAS_THIS) === 0;
+ hasThis = pathHasThis(path);
if (!root || hasThis) {
tuple = normalizeTuple(root, path);
@@ -16536,16 +17051,17 @@ define("ember-metal/property_get",
__exports__._getPath = _getPath;
});
define("ember-metal/property_set",
- ["ember-metal/core","ember-metal/property_get","ember-metal/utils","ember-metal/property_events","ember-metal/properties","ember-metal/error","exports"],
+ ["ember-metal/core","ember-metal/property_get","ember-metal/property_events","ember-metal/properties","ember-metal/error","ember-metal/path_cache","exports"],
function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __dependency5__, __dependency6__, __exports__) {
"use strict";
var Ember = __dependency1__["default"];
var getPath = __dependency2__._getPath;
- var META_KEY = __dependency3__.META_KEY;
- var propertyWillChange = __dependency4__.propertyWillChange;
- var propertyDidChange = __dependency4__.propertyDidChange;
- var defineProperty = __dependency5__.defineProperty;
- var EmberError = __dependency6__["default"];
+ var propertyWillChange = __dependency3__.propertyWillChange;
+ var propertyDidChange = __dependency3__.propertyDidChange;
+ var defineProperty = __dependency4__.defineProperty;
+ var EmberError = __dependency5__["default"];
+ var isPath = __dependency6__.isPath;
+
var MANDATORY_SETTER = Ember.ENV.MANDATORY_SETTER;
var IS_GLOBAL = /^([A-Z$]|([0-9][A-Z$]))/;
@@ -16577,10 +17093,10 @@ define("ember-metal/property_set",
return setPath(obj, keyName, value, tolerant);
}
- var meta = obj[META_KEY], desc = meta && meta.descs[keyName],
+ var meta = obj['__ember_meta__'], desc = meta && meta.descs[keyName],
isUnknown, currentValue;
- if (desc === undefined && keyName.indexOf('.') !== -1) {
+ if (desc === undefined && isPath(keyName)) {
return setPath(obj, keyName, value, tolerant);
}
@@ -16831,7 +17347,7 @@ define("ember-metal/run_loop",
```
@method bind
- @namespace run
+ @namespace Ember
@param {Object} [target] target of method to call
@param {Function|String} method Method to invoke.
May be a function or a string. If you pass a string
@@ -17349,8 +17865,8 @@ define("ember-metal/set_properties",
}
});
define("ember-metal/utils",
- ["ember-metal/core","ember-metal/platform","ember-metal/array","exports"],
- function(__dependency1__, __dependency2__, __dependency3__, __exports__) {
+ ["ember-metal/core","ember-metal/platform","ember-metal/array","ember-metal/keys","exports"],
+ function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __exports__) {
"use strict";
var Ember = __dependency1__["default"];
var platform = __dependency2__.platform;
@@ -17358,6 +17874,7 @@ define("ember-metal/utils",
var forEach = __dependency3__.forEach;
+ var keys = __dependency4__["default"];
/**
@module ember-metal
*/
@@ -17392,6 +17909,51 @@ define("ember-metal/utils",
var stringCache = {};
var MANDATORY_SETTER = Ember.ENV.MANDATORY_SETTER;
+ /**
+ Strongly hint runtimes to intern the provided string.
+
+ When do I need to use this function?
+
+ For the most part, never. Pre-mature optimization is bad, and often the
+ runtime does exactly what you need it to, and more often the trade-off isn't
+ worth it.
+
+ Why?
+
+ Runtimes store strings in at least 2 different representations:
+ Ropes and Symbols (interned strings). The Rope provides a memory efficient
+ data-structure for strings created from concatenation or some other string
+ manipulation like splitting.
+
+ Unfortunately checking equality of different ropes can be quite costly as
+ runtimes must resort to clever string comparison algorithims. These
+ algorithims typically cost in proportion to the length of the string.
+ Luckily, this is where the Symbols (interned strings) shine. As Symbols are
+ unique by their string content, equality checks can be done by pointer
+ comparision.
+
+ How do I know if my string is a rope or symbol?
+
+ Typically (warning general sweeping statement, but truthy in runtimes at
+ present) static strings created as part of the JS source are interned.
+ Strings often used for comparisions can be interned at runtime if some
+ criteria are met. One of these criteria can be the size of the entire rope.
+ For example, in chrome 38 a rope longer then 12 characters will not
+ intern, nor will segments of that rope.
+
+ Some numbers: http://jsperf.com/eval-vs-keys/8
+
+ Known Trickâ„¢
+
+ @private
+ @return {String} interned version of the provided string
+ */
+ function intern(string) {
+ var obj = Object.create(null);
+ obj[string] = true;
+ return keys(obj)[0];
+ }
+
/**
A unique key used to assign guids and other private metadata to objects.
If you inspect an object in your browser debugger you will often see these.
@@ -17406,7 +17968,7 @@ define("ember-metal/utils",
@type String
@final
*/
- var GUID_KEY = '__ember' + (+ new Date());
+ var GUID_KEY = intern('__ember' + (+ new Date()));
var GUID_DESC = {
writable: false,
@@ -17488,7 +18050,7 @@ define("ember-metal/utils",
if (obj[GUID_KEY]) return obj[GUID_KEY];
if (obj === Object) return '(Object)';
if (obj === Array) return '(Array)';
- ret = 'ember' + uuid();
+ ret = GUID_PREFIX + uuid();
if (obj[GUID_KEY] === null) {
obj[GUID_KEY] = ret;
@@ -17511,17 +18073,6 @@ define("ember-metal/utils",
value: null
};
- /**
- The key used to store meta information on object for property observing.
-
- @property META_KEY
- @for Ember
- @private
- @final
- @type String
- */
- var META_KEY = '__ember_meta__';
-
var isDefinePropertySimulated = platform.defineProperty.isSimulated;
function Meta(obj) {
@@ -17585,23 +18136,23 @@ define("ember-metal/utils",
*/
function meta(obj, writable) {
- var ret = obj[META_KEY];
+ var ret = obj['__ember_meta__'];
if (writable===false) return ret || EMPTY_META;
if (!ret) {
- if (!isDefinePropertySimulated) o_defineProperty(obj, META_KEY, META_DESC);
+ if (!isDefinePropertySimulated) o_defineProperty(obj, '__ember_meta__', META_DESC);
ret = new Meta(obj);
if (MANDATORY_SETTER) { ret.values = {}; }
- obj[META_KEY] = ret;
+ obj['__ember_meta__'] = ret;
// make sure we don't accidentally try to create constructor like desc
ret.descs.constructor = null;
} else if (ret.source !== obj) {
- if (!isDefinePropertySimulated) o_defineProperty(obj, META_KEY, META_DESC);
+ if (!isDefinePropertySimulated) o_defineProperty(obj, '__ember_meta__', META_DESC);
ret = o_create(ret);
ret.descs = o_create(ret.descs);
@@ -17612,7 +18163,7 @@ define("ember-metal/utils",
if (MANDATORY_SETTER) { ret.values = o_create(ret.values); }
- obj[META_KEY] = ret;
+ obj['__ember_meta__'] = ret;
}
return ret;
}
@@ -17698,10 +18249,10 @@ define("ember-metal/utils",
*/
function wrap(func, superFunc) {
function superWrapper() {
- var ret, sup = this.__nextSuper;
- this.__nextSuper = superFunc;
+ var ret, sup = this && this.__nextSuper;
+ if(this) { this.__nextSuper = superFunc; }
ret = apply(this, func, arguments);
- this.__nextSuper = sup;
+ if(this) { this.__nextSuper = sup; }
return ret;
}
@@ -18145,10 +18696,8 @@ define("ember-metal/utils",
}
__exports__.applyStr = applyStr;__exports__.GUID_KEY = GUID_KEY;
- __exports__.GUID_PREFIX = GUID_PREFIX;
__exports__.META_DESC = META_DESC;
__exports__.EMPTY_META = EMPTY_META;
- __exports__.META_KEY = META_KEY;
__exports__.meta = meta;
__exports__.typeOf = typeOf;
__exports__.tryCatchFinally = tryCatchFinally;
@@ -18179,6 +18728,9 @@ define("ember-metal/watch_key",
if (!watching[keyName]) {
watching[keyName] = 1;
+ var desc = m.descs[keyName];
+ if (desc && desc.willWatch) { desc.willWatch(obj, keyName); }
+
if ('function' === typeof obj.willWatchProperty) {
obj.willWatchProperty(keyName);
}
@@ -18203,6 +18755,9 @@ define("ember-metal/watch_key",
if (watching[keyName] === 1) {
watching[keyName] = 0;
+ var desc = m.descs[keyName];
+ if (desc && desc.didUnwatch) { desc.didUnwatch(obj, keyName); }
+
if ('function' === typeof obj.didUnwatchProperty) {
obj.didUnwatchProperty(keyName);
}
@@ -18282,15 +18837,14 @@ define("ember-metal/watch_path",
__exports__.unwatchPath = unwatchPath;
});
define("ember-metal/watching",
- ["ember-metal/utils","ember-metal/chains","ember-metal/watch_key","ember-metal/watch_path","exports"],
- function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __exports__) {
+ ["ember-metal/utils","ember-metal/chains","ember-metal/watch_key","ember-metal/watch_path","ember-metal/path_cache","exports"],
+ function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __dependency5__, __exports__) {
"use strict";
/**
@module ember-metal
*/
var meta = __dependency1__.meta;
- var META_KEY = __dependency1__.META_KEY;
var GUID_KEY = __dependency1__.GUID_KEY;
var typeOf = __dependency1__.typeOf;
var generateGuid = __dependency1__.generateGuid;
@@ -18302,11 +18856,7 @@ define("ember-metal/watching",
var unwatchPath = __dependency4__.unwatchPath;
var metaFor = meta; // utils.js
-
- // returns true if the passed path is just a keyName
- function isKeyName(path) {
- return path.indexOf('.') === -1;
- }
+ var isPath = __dependency5__.isPath;
/**
Starts watching a property on an object. Whenever the property changes,
@@ -18325,7 +18875,7 @@ define("ember-metal/watching",
// can't watch length on Array - it is special...
if (_keyPath === 'length' && typeOf(obj) === 'array') { return; }
- if (isKeyName(_keyPath)) {
+ if (!isPath(_keyPath)) {
watchKey(obj, _keyPath, m);
} else {
watchPath(obj, _keyPath, m);
@@ -18335,7 +18885,7 @@ define("ember-metal/watching",
__exports__.watch = watch;
function isWatching(obj, key) {
- var meta = obj[META_KEY];
+ var meta = obj['__ember_meta__'];
return (meta && meta.watching[key]) > 0;
}
@@ -18345,7 +18895,7 @@ define("ember-metal/watching",
// can't watch length on Array - it is special...
if (_keyPath === 'length' && typeOf(obj) === 'array') { return; }
- if (isKeyName(_keyPath)) {
+ if (!isPath(_keyPath)) {
unwatchKey(obj, _keyPath, m);
} else {
unwatchPath(obj, _keyPath, m);
@@ -18363,7 +18913,7 @@ define("ember-metal/watching",
@param obj
*/
function rewatch(obj) {
- var m = obj[META_KEY], chains = m && m.chains;
+ var m = obj['__ember_meta__'], chains = m && m.chains;
// make sure the object has its own guid.
if (GUID_KEY in obj && !obj.hasOwnProperty(GUID_KEY)) {
@@ -18388,9 +18938,9 @@ define("ember-metal/watching",
@return {void}
*/
function destroy(obj) {
- var meta = obj[META_KEY], node, nodes, key, nodeObject;
+ var meta = obj['__ember_meta__'], node, nodes, key, nodeObject;
if (meta) {
- obj[META_KEY] = null;
+ obj['__ember_meta__'] = null;
// remove chainWatchers to remove circular references that would prevent GC
node = meta.chains;
if (node) {
@@ -18539,6 +19089,16 @@ define("ember-routing-handlebars/helpers/action",
return allowed;
};
+ function isKeyEvent(eventName) {
+ return ['keyUp', 'keyPress', 'keyDown'].indexOf(eventName) !== -1;
+ }
+
+ function ignoreKeyEvent(eventName, event, keyCode) {
+ var any = 'any';
+ keyCode = keyCode || any;
+ return isKeyEvent(eventName) && keyCode !== any && keyCode !== event.which.toString();
+ }
+
ActionHelper.registerAction = function(actionNameOrPath, options, allowedKeys) {
var actionId = uuid();
@@ -18557,8 +19117,15 @@ define("ember-routing-handlebars/helpers/action",
var target = options.target,
parameters = options.parameters,
+ eventName = options.eventName,
actionName;
+ if (Ember.FEATURES.isEnabled("ember-routing-handlebars-action-with-key-code")) {
+ if (ignoreKeyEvent(eventName, event, options.withKeyCode)) {
+ return;
+ }
+ }
+
if (target.target) {
target = handlebarsGet(target.root, target.target, target.options);
} else {
@@ -18568,7 +19135,7 @@ define("ember-routing-handlebars/helpers/action",
if (options.boundProperty) {
actionName = resolveParams(parameters.context, [actionNameOrPath], { types: ['ID'], data: parameters.options.data })[0];
- if(typeof actionName === 'undefined' || typeof actionName === 'function') {
+ if (typeof actionName === 'undefined' || typeof actionName === 'function') {
Ember.assert("You specified a quoteless path to the {{action}} helper '" + actionNameOrPath + "' which did not resolve to an actionName. Perhaps you meant to use a quoted actionName? (e.g. {{action '" + actionNameOrPath + "'}}).", true);
actionName = actionNameOrPath;
}
@@ -18784,6 +19351,7 @@ define("ember-routing-handlebars/helpers/action",
bubbles: hash.bubbles,
preventDefault: hash.preventDefault,
target: { options: options },
+ withKeyCode: hash.withKeyCode,
boundProperty: options.types[0] === "ID"
};
@@ -18801,7 +19369,7 @@ define("ember-routing-handlebars/helpers/action",
__exports__.actionHelper = actionHelper;
});
define("ember-routing-handlebars/helpers/link_to",
- ["ember-metal/core","ember-metal/property_get","ember-metal/property_set","ember-metal/merge","ember-metal/run_loop","ember-metal/computed","ember-runtime/system/lazy_load","ember-runtime/system/string","ember-runtime/system/object","ember-runtime/keys","ember-views/system/utils","ember-views/views/component","ember-handlebars","ember-handlebars/helpers/view","ember-routing/system/router","ember-routing-handlebars/helpers/shared","exports"],
+ ["ember-metal/core","ember-metal/property_get","ember-metal/property_set","ember-metal/merge","ember-metal/run_loop","ember-metal/computed","ember-runtime/system/lazy_load","ember-runtime/system/string","ember-runtime/system/object","ember-metal/keys","ember-views/system/utils","ember-views/views/component","ember-handlebars","ember-handlebars/helpers/view","ember-routing/system/router","ember-routing-handlebars/helpers/shared","exports"],
function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __dependency5__, __dependency6__, __dependency7__, __dependency8__, __dependency9__, __dependency10__, __dependency11__, __dependency12__, __dependency13__, __dependency14__, __dependency15__, __dependency16__, __exports__) {
"use strict";
var Ember = __dependency1__["default"];
@@ -19095,47 +19663,67 @@ define("ember-routing-handlebars/helpers/link_to",
or the application's current route is the route the `LinkView` would trigger
transitions into.
+ The `currentWhen` property can match against multiple routes by separating
+ route names using the `|` character.
+
@property active
**/
active: computed('loadedParams', function computeLinkViewActive() {
if (get(this, 'loading')) { return false; }
- var router = get(this, 'router'),
- loadedParams = get(this, 'loadedParams'),
- contexts = loadedParams.models,
- currentWhen = this.currentWhen || loadedParams.targetRouteName,
- handlers = router.router.recognizer.handlersFor(currentWhen),
- leafName = handlers[handlers.length-1].handler,
- maximumContexts = numberOfContextsAcceptedByHandler(currentWhen, handlers);
+ var router = get(this, 'router');
+ var loadedParams = get(this, 'loadedParams');
+ var contexts = loadedParams.models;
+ var currentWhen = this.currentWhen;
+ var isCurrentWhenSpecified = Boolean(currentWhen);
+ currentWhen = currentWhen || loadedParams.targetRouteName;
- // NOTE: any ugliness in the calculation of activeness is largely
- // due to the fact that we support automatic normalizing of
- // `resource` -> `resource.index`, even though there might be
- // dynamic segments / query params defined on `resource.index`
- // which complicates (and makes somewhat ambiguous) the calculation
- // of activeness for links that link to `resource` instead of
- // directly to `resource.index`.
+ function isActiveForRoute(routeName) {
+ var handlers = router.router.recognizer.handlersFor(routeName);
+ var leafName = handlers[handlers.length-1].handler;
+ var maximumContexts = numberOfContextsAcceptedByHandler(routeName, handlers);
- // if we don't have enough contexts revert back to full route name
- // this is because the leaf route will use one of the contexts
- if (contexts.length > maximumContexts) {
- currentWhen = leafName;
+ // NOTE: any ugliness in the calculation of activeness is largely
+ // due to the fact that we support automatic normalizing of
+ // `resource` -> `resource.index`, even though there might be
+ // dynamic segments / query params defined on `resource.index`
+ // which complicates (and makes somewhat ambiguous) the calculation
+ // of activeness for links that link to `resource` instead of
+ // directly to `resource.index`.
+
+ // if we don't have enough contexts revert back to full route name
+ // this is because the leaf route will use one of the contexts
+ if (contexts.length > maximumContexts) {
+ routeName = leafName;
+ }
+
+ var args = routeArgs(routeName, contexts, null);
+ var isActive = router.isActive.apply(router, args);
+ if (!isActive) { return false; }
+
+
+ if (!isCurrentWhenSpecified && leafName === loadedParams.targetRouteName) {
+ var visibleQueryParams = {};
+ merge(visibleQueryParams, loadedParams.queryParams);
+ router._prepareQueryParams(loadedParams.targetRouteName, loadedParams.models, visibleQueryParams);
+ isActive = shallowEqual(visibleQueryParams, router.router.state.queryParams);
+ }
+
+ return isActive;
}
- var args = routeArgs(currentWhen, contexts, null);
- var isActive = router.isActive.apply(router, args);
- if (!isActive) { return false; }
-
-
- if (!this.currentWhen && leafName === loadedParams.targetRouteName) {
- var visibleQueryParams = {};
- merge(visibleQueryParams, loadedParams.queryParams);
- router._prepareQueryParams(loadedParams.targetRouteName, loadedParams.models, visibleQueryParams);
- isActive = shallowEqual(visibleQueryParams, router.router.state.queryParams);
+ if (Ember.FEATURES.isEnabled("ember-routing-multi-current-when")) {
+ currentWhen = currentWhen.split('|');
+ for (var i = 0, len = currentWhen.length; i < len; i++) {
+ if (isActiveForRoute(currentWhen[i])) {
+ return get(this, 'activeClass');
+ }
}
-
-
- if (isActive) { return get(this, 'activeClass'); }
+ } else {
+ if (isActiveForRoute(currentWhen)) {
+ return get(this, 'activeClass');
+ }
+ }
}),
/**
@@ -19160,7 +19748,10 @@ define("ember-routing-handlebars/helpers/link_to",
@property router
**/
router: computed(function() {
- return get(this, 'controller').container.lookup('router:main');
+ var controller = get(this, 'controller');
+ if (controller && controller.container) {
+ return controller.container.lookup('router:main');
+ }
}),
/**
@@ -19298,8 +19889,10 @@ define("ember-routing-handlebars/helpers/link_to",
@return {Array} An array with the route name and any dynamic segments
**/
loadedParams: computed('resolvedParams', function computeLinkViewRouteArgs() {
+ var router = get(this, 'router');
+ if (!router) { return; }
+
var resolvedParams = get(this, 'resolvedParams'),
- router = get(this, 'router'),
namedRoute = resolvedParams.targetRouteName;
if (!namedRoute) { return; }
@@ -19893,7 +20486,7 @@ define("ember-routing-handlebars/helpers/render",
var set = __dependency4__.set;
var camelize = __dependency5__.camelize;
var generateControllerFactory = __dependency6__.generateControllerFactory;
- var generateController = __dependency6__.default;
+ var generateController = __dependency6__["default"];
var handlebarsGet = __dependency7__.handlebarsGet;
var viewHelper = __dependency8__.viewHelper;
@@ -20156,8 +20749,8 @@ define("ember-routing-handlebars/helpers/shared",
__exports__.resolvePaths = resolvePaths;
});
define("ember-routing",
- ["ember-handlebars","ember-metal/core","ember-routing/ext/run_loop","ember-routing/ext/controller","ember-routing/ext/view","ember-routing/location/api","ember-routing/location/none_location","ember-routing/location/hash_location","ember-routing/location/history_location","ember-routing/location/auto_location","ember-routing/system/controller_for","ember-routing/system/dsl","ember-routing/system/router","ember-routing/system/route","exports"],
- function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __dependency5__, __dependency6__, __dependency7__, __dependency8__, __dependency9__, __dependency10__, __dependency11__, __dependency12__, __dependency13__, __dependency14__, __exports__) {
+ ["ember-handlebars","ember-metal/core","ember-routing/ext/run_loop","ember-routing/ext/controller","ember-routing/ext/view","ember-routing/location/api","ember-routing/location/none_location","ember-routing/location/hash_location","ember-routing/location/history_location","ember-routing/location/auto_location","ember-routing/system/generate_controller","ember-routing/system/controller_for","ember-routing/system/dsl","ember-routing/system/router","ember-routing/system/route","exports"],
+ function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __dependency5__, __dependency6__, __dependency7__, __dependency8__, __dependency9__, __dependency10__, __dependency11__, __dependency12__, __dependency13__, __dependency14__, __dependency15__, __exports__) {
"use strict";
/**
Ember Routing
@@ -20178,12 +20771,12 @@ define("ember-routing",
var HistoryLocation = __dependency9__["default"];
var AutoLocation = __dependency10__["default"];
- var controllerFor = __dependency11__.controllerFor;
var generateControllerFactory = __dependency11__.generateControllerFactory;
- var generateController = __dependency11__.generateController;
- var RouterDSL = __dependency12__["default"];
- var Router = __dependency13__["default"];
- var Route = __dependency14__["default"];
+ var generateController = __dependency11__["default"];
+ var controllerFor = __dependency12__["default"];
+ var RouterDSL = __dependency13__["default"];
+ var Router = __dependency14__["default"];
+ var Route = __dependency15__["default"];
Ember.Location = EmberLocation;
Ember.AutoLocation = AutoLocation;
@@ -20280,8 +20873,8 @@ define("ember-routing/ext/controller",
*/
transitionToRoute: function() {
// target may be either another controller or a router
- var target = get(this, 'target'),
- method = target.transitionToRoute || target.transitionTo;
+ var target = get(this, 'target');
+ var method = target.transitionToRoute || target.transitionTo;
return method.apply(target, arguments);
},
@@ -20352,8 +20945,8 @@ define("ember-routing/ext/controller",
*/
replaceRoute: function() {
// target may be either another controller or a router
- var target = get(this, 'target'),
- method = target.replaceRoute || target.replaceWith;
+ var target = get(this, 'target');
+ var method = target.replaceRoute || target.replaceWith;
return method.apply(target, arguments);
},
@@ -20387,7 +20980,7 @@ define("ember-routing/ext/controller",
return get(m.proto, '_normalizedQueryParams');
}
- var queryParams = this.queryParams;
+ var queryParams = get(this, 'queryParams');
if (queryParams._qpMap) {
return queryParams._qpMap;
}
@@ -20407,14 +21000,14 @@ define("ember-routing/ext/controller",
return get(m.proto, '_cacheMeta');
}
- var cacheMeta = {},
- qpMap = get(this, '_normalizedQueryParams');
+ var cacheMeta = {};
+ var qpMap = get(this, '_normalizedQueryParams');
for (var prop in qpMap) {
if (!qpMap.hasOwnProperty(prop)) { continue; }
- var qp = qpMap[prop],
- scope = qp.scope,
- parts;
+ var qp = qpMap[prop];
+ var scope = qp.scope;
+ var parts;
if (scope === 'controller') {
parts = [];
@@ -20441,9 +21034,11 @@ define("ember-routing/ext/controller",
var cacheKey = this._calculateCacheKey(propMeta.prefix, propMeta.parts, propMeta.values);
var cache = this._bucketCache;
- var value = cache.lookup(cacheKey, prop, propMeta.def);
- set(this, prop, value);
+ if (cache) {
+ var value = cache.lookup(cacheKey, prop, propMeta.def);
+ set(this, prop, value);
+ }
}
},
@@ -20455,7 +21050,10 @@ define("ember-routing/ext/controller",
var value = get(controller, prop);
// 1. Update model-dep cache
- controller._bucketCache.stash(cacheKey, prop, value);
+ var cache = this._bucketCache;
+ if (cache) {
+ controller._bucketCache.stash(cacheKey, prop, value);
+ }
// 2. Notify a delegate (e.g. to fire a qp transition)
var delegate = controller._qpDelegate;
@@ -20594,10 +21192,10 @@ define("ember-routing/ext/view",
return;
}
- var outlets = get(this, '_outlets'),
- container = get(this, 'container'),
- router = container && container.lookup('router:main'),
- renderedName = get(view, 'renderedName');
+ var outlets = get(this, '_outlets');
+ var container = get(this, 'container');
+ var router = container && container.lookup('router:main');
+ var renderedName = get(view, 'renderedName');
set(outlets, outletName, view);
@@ -20887,8 +21485,8 @@ define("ember-routing/location/api",
_getHash: function () {
// AutoLocation has it at _location, HashLocation at .location.
// Being nice and not changing
- var href = (this._location || this.location).href,
- hashIndex = href.indexOf('#');
+ var href = (this._location || this.location).href;
+ var hashIndex = href.indexOf('#');
if (hashIndex === -1) {
return '';
@@ -21029,8 +21627,8 @@ define("ember-routing/location/auto_location",
@method _getOrigin
*/
_getOrigin: function () {
- var location = this._location,
- origin = location.origin;
+ var location = this._location;
+ var origin = location.origin;
// Older browsers, especially IE, don't have origin
if (!origin) {
@@ -21079,8 +21677,8 @@ define("ember-routing/location/auto_location",
@method _getSupportsHashChange
*/
_getSupportsHashChange: function () {
- var _window = this._window,
- documentMode = _window.document.documentMode;
+ var _window = this._window;
+ var documentMode = _window.document.documentMode;
return ('onhashchange' in _window && (documentMode === undefined || documentMode > 7 ));
},
@@ -21166,12 +21764,12 @@ define("ember-routing/location/auto_location",
@method _getHistoryPath
*/
_getHistoryPath: function () {
- var rootURL = this._getRootURL(),
- path = this._getPath(),
- hash = this._getHash(),
- query = this._getQuery(),
- rootURLIndex = path.indexOf(rootURL),
- routeHash, hashParts;
+ var rootURL = this._getRootURL();
+ var path = this._getPath();
+ var hash = this._getHash();
+ var query = this._getQuery();
+ var rootURLIndex = path.indexOf(rootURL);
+ var routeHash, hashParts;
Ember.assert('Path ' + path + ' does not start with the provided rootURL ' + rootURL, rootURLIndex === 0);
@@ -21214,10 +21812,10 @@ define("ember-routing/location/auto_location",
@method _getHashPath
*/
_getHashPath: function () {
- var rootURL = this._getRootURL(),
- path = rootURL,
- historyPath = this._getHistoryPath(),
- routePath = historyPath.substr(rootURL.length);
+ var rootURL = this._getRootURL();
+ var path = rootURL;
+ var historyPath = this._getHistoryPath();
+ var routePath = historyPath.substr(rootURL.length);
if (routePath !== '') {
if (routePath.charAt(0) !== '/') {
@@ -21243,10 +21841,10 @@ define("ember-routing/location/auto_location",
this.rootURL = options.rootURL;
}
- var historyPath, hashPath,
- cancelRouterSetup = false,
- implementationClass = this._NoneLocation,
- currentPath = this._getFullPath();
+ var historyPath, hashPath;
+ var cancelRouterSetup = false;
+ var implementationClass = this._NoneLocation;
+ var currentPath = this._getFullPath();
if (this._getSupportsHistory()) {
historyPath = this._getHistoryPath();
@@ -21256,8 +21854,18 @@ define("ember-routing/location/auto_location",
if (currentPath === historyPath) {
implementationClass = this._HistoryLocation;
} else {
- cancelRouterSetup = true;
- this._replacePath(historyPath);
+ if (Ember.FEATURES.isEnabled("ember-routing-auto-location-uses-replace-state-for-history")) {
+ if (currentPath.substr(0, 2) === '/#') {
+ this._history.replaceState({ path: historyPath }, null, historyPath);
+ implementationClass = this._HistoryLocation;
+ } else {
+ cancelRouterSetup = true;
+ this._replacePath(historyPath);
+ }
+ } else {
+ cancelRouterSetup = true;
+ this._replacePath(historyPath);
+ }
}
} else if (this._getSupportsHashChange()) {
@@ -21404,7 +22012,7 @@ define("ember-routing/location/hash_location",
@param url {String}
*/
formatURL: function(url) {
- return '#'+url;
+ return '#' + url;
},
/**
@@ -21484,13 +22092,14 @@ define("ember-routing/location/history_location",
@return url {String}
*/
getURL: function() {
- var rootURL = get(this, 'rootURL'),
- location = get(this, 'location'),
- path = location.pathname,
- baseURL = get(this, 'baseURL');
+ var rootURL = get(this, 'rootURL');
+ var location = get(this, 'location');
+ var path = location.pathname;
+ var baseURL = get(this, 'baseURL');
rootURL = rootURL.replace(/\/$/, '');
baseURL = baseURL.replace(/\/$/, '');
+
var url = path.replace(baseURL, '').replace(rootURL, '');
@@ -21599,8 +22208,8 @@ define("ember-routing/location/history_location",
@param callback {Function}
*/
onUpdateURL: function(callback) {
- var guid = guidFor(this),
- self = this;
+ var guid = guidFor(this);
+ var self = this;
jQuery(window).on('popstate.ember-location-'+guid, function(e) {
// Ignore initial page load popstate event in Chrome
@@ -21621,8 +22230,8 @@ define("ember-routing/location/history_location",
@return formatted url {String}
*/
formatURL: function(url) {
- var rootURL = get(this, 'rootURL'),
- baseURL = get(this, 'baseURL');
+ var rootURL = get(this, 'rootURL');
+ var baseURL = get(this, 'baseURL');
if (url !== '') {
rootURL = rootURL.replace(/\/$/, '');
@@ -21817,9 +22426,7 @@ define("ember-routing/system/dsl",
__exports__["default"] = DSL;
DSL.prototype = {
- resource: function(name, options, callback) {
- Ember.assert("'basic' cannot be used as a resource name.", name !== 'basic');
-
+ route: function(name, options, callback) {
if (arguments.length === 2 && typeof options === 'function') {
callback = options;
options = {};
@@ -21829,18 +22436,19 @@ define("ember-routing/system/dsl",
options = {};
}
+ var type = options.resetNamespace === true ? 'resource' : 'route';
+ Ember.assert("'basic' cannot be used as a " + type + " name.", name !== 'basic');
+
+
if (typeof options.path !== 'string') {
options.path = "/" + name;
}
- var createSubRoutes = false;
- if (Ember.FEATURES.isEnabled('ember-routing-consistent-resources')) {
- createSubRoutes = true;
- } else {
- if (callback) { createSubRoutes = true; }
+ if (canNest(this) && options.resetNamespace !== true) {
+ name = this.parent + "." + name;
}
- if (createSubRoutes) {
+ if (callback) {
var dsl = new DSL(name);
route(dsl, 'loading');
route(dsl, 'error', { path: "/_unused_dummy_error_path_route_" + name + "/:error" });
@@ -21852,14 +22460,9 @@ define("ember-routing/system/dsl",
this.push(options.path, name, null);
}
-
if (Ember.FEATURES.isEnabled("ember-routing-named-substates")) {
- // For namespace-preserving nested resource (e.g. resource('foo.bar') within
- // resource('foo')) we only want to use the last route name segment to determine
- // the names of the error/loading substates (e.g. 'bar_loading')
- name = name.split('.').pop();
- route(this, name + '_loading');
- route(this, name + '_error', { path: "/_unused_dummy_error_path_route_" + name + "/:error" });
+ route(this, name + '_loading', {resetNamespace: options.resetNamespace});
+ route(this, name + '_error', { path: "/_unused_dummy_error_path_route_" + name + "/:error"});
}
},
@@ -21870,21 +22473,25 @@ define("ember-routing/system/dsl",
this.matches.push([url, name, callback]);
},
- route: function(name, options) {
- Ember.assert("'basic' cannot be used as a route name.", name !== 'basic');
-
- route(this, name, options);
- if (Ember.FEATURES.isEnabled("ember-routing-named-substates")) {
- route(this, name + '_loading');
- route(this, name + '_error', { path: "/_unused_dummy_error_path_route_" + name + "/:error" });
+ resource: function(name, options, callback) {
+ if (arguments.length === 2 && typeof options === 'function') {
+ callback = options;
+ options = {};
}
+
+ if (arguments.length === 1) {
+ options = {};
+ }
+
+ options.resetNamespace = true;
+ this.route(name, options, callback);
},
generate: function() {
var dslMatches = this.matches;
if (!this.explicitIndex) {
- this.route("index", { path: "/" });
+ route(this, "index", { path: "/" });
}
return function(match) {
@@ -21896,6 +22503,10 @@ define("ember-routing/system/dsl",
}
};
+ function canNest(dsl) {
+ return dsl.parent && dsl.parent !== 'application';
+ }
+
function route(dsl, name, options) {
Ember.assert("You must use `this.resource` to nest", typeof options !== 'function');
@@ -21905,7 +22516,7 @@ define("ember-routing/system/dsl",
options.path = "/" + name;
}
- if (dsl.parent && dsl.parent !== 'application') {
+ if (canNest(dsl) && options.resetNamespace !== true) {
name = dsl.parent + "." + name;
}
@@ -22001,7 +22612,7 @@ define("ember-routing/system/generate_controller",
}
});
define("ember-routing/system/route",
- ["ember-metal/core","ember-metal/error","ember-metal/property_get","ember-metal/property_set","ember-metal/get_properties","ember-metal/enumerable_utils","ember-metal/is_none","ember-metal/computed","ember-metal/merge","ember-metal/utils","ember-metal/run_loop","ember-runtime/keys","ember-runtime/copy","ember-runtime/system/string","ember-runtime/system/object","ember-runtime/mixins/action_handler","ember-routing/system/generate_controller","ember-routing-handlebars/helpers/shared","exports"],
+ ["ember-metal/core","ember-metal/error","ember-metal/property_get","ember-metal/property_set","ember-metal/get_properties","ember-metal/enumerable_utils","ember-metal/is_none","ember-metal/computed","ember-metal/merge","ember-metal/utils","ember-metal/run_loop","ember-metal/keys","ember-runtime/copy","ember-runtime/system/string","ember-runtime/system/object","ember-runtime/mixins/action_handler","ember-routing/system/generate_controller","ember-routing-handlebars/helpers/shared","exports"],
function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __dependency5__, __dependency6__, __dependency7__, __dependency8__, __dependency9__, __dependency10__, __dependency11__, __dependency12__, __dependency13__, __dependency14__, __dependency15__, __dependency16__, __dependency17__, __dependency18__, __exports__) {
"use strict";
var Ember = __dependency1__["default"];
@@ -22058,7 +22669,7 @@ define("ember-routing/system/route",
@method reset
*/
- reset: function(isExiting, transition) {
+ _reset: function(isExiting, transition) {
var controller = this.controller;
controller._qpDelegate = get(this, '_qp.states.inactive');
@@ -22357,7 +22968,7 @@ define("ember-routing/system/route",
// this controller.
var value, svalue;
if (changes && qp.urlKey in changes) {
- // Controller overrode this value in setupController
+ // Value updated in/before setupController
value = get(controller, qp.prop);
svalue = route.serializeQueryParam(value, qp.urlKey, qp.type);
} else {
@@ -22367,10 +22978,7 @@ define("ember-routing/system/route",
} else {
// No QP provided; use default value.
svalue = qp.sdef;
- value = qp.def;
- if (isArray(value)) {
- value = Ember.A(value.slice());
- }
+ value = copyDefaultValue(qp.def);
}
}
@@ -22695,8 +23303,9 @@ define("ember-routing/system/route",
@method setup
*/
setup: function(context, transition) {
- var controllerName = this.controllerName || this.routeName,
- controller = this.controllerFor(controllerName, true);
+ var controllerName = this.controllerName || this.routeName;
+ var controller = this.controllerFor(controllerName, true);
+
if (!controller) {
controller = this.generateController(controllerName, context);
}
@@ -22718,6 +23327,10 @@ define("ember-routing/system/route",
}
controller._qpDelegate = states.allowOverrides;
+ if (transition) {
+ controller.setProperties(getQueryParamsFor(this, transition.state));
+ }
+
this.setupController(controller, context, transition);
}
@@ -22862,6 +23475,7 @@ define("ember-routing/system/route",
@method redirect
@param {Object} model the model for this route
+ @param {Transition} transition the transition object associated with the current transition
*/
redirect: Ember.K,
@@ -23163,9 +23777,9 @@ define("ember-routing/system/route",
@return {Ember.Controller}
*/
controllerFor: function(name, _skipAssert) {
- var container = this.container,
- route = container.lookup('route:'+name),
- controller;
+ var container = this.container;
+ var route = container.lookup('route:'+name);
+ var controller;
if (route && route.controllerName) {
name = route.controllerName;
@@ -23244,8 +23858,8 @@ define("ember-routing/system/route",
@return {Object} the model object
*/
modelFor: function(name) {
- var route = this.container.lookup('route:' + name),
- transition = this.router ? this.router.router.activeTransition : null;
+ var route = this.container.lookup('route:' + name);
+ var transition = this.router ? this.router.router.activeTransition : null;
// If we are mid-transition, we want to try and look up
// resolved parent contexts on the current transitionEvent.
@@ -23294,55 +23908,122 @@ define("ember-routing/system/route",
},
/**
- Renders a template into an outlet.
+ `render` is used to render a template into a region of another template
+ (indicated by an `{{outlet}}`). `render` is used both during the entry
+ phase of routing (via the `renderTemplate` hook) and later in response to
+ user interaction.
- This method has a number of defaults, based on the name of the
- route specified in the router.
+ For example, given the following minimal router and templates:
+
+ ```js
+ Router.map(function() {
+ this.resource('photos');
+ });
+ ```
+
+ ```handlebars
+
+
+ {{outlet "anOutletName"}}
+
+ ```
+
+ ```handlebars
+
+ Photos
+ ```
+
+ You can render `photos.hbs` into the `"anOutletName"` outlet of
+ `application.hbs` by calling `render`:
+
+ ```js
+ // posts route
+ Ember.Route.extend({
+ renderTemplate: function(){
+ this.render('posts', {
+ into: 'application',
+ outlet: 'anOutletName'
+ })
+ }
+ });
+ ```
+
+ `render` additionally allows you to supply which `view`, `controller`, and
+ `model` objects should be loaded and associated with the rendered template.
+
+
+ ```js
+ // posts route
+ Ember.Route.extend({
+ renderTemplate: function(controller, model){
+ this.render('posts', { // the template to render, referenced by name
+ into: 'application', // the template to render into, referenced by name
+ outlet: 'anOutletName', // the outlet inside `options.template` to render into.
+ view: 'aViewName', // the view to use for this template, referenced by name
+ controller: 'someControllerName', // the controller to use for this template, referenced by name
+ model: model // the model to set on `options.controller`.
+ })
+ }
+ });
+ ```
+
+ The string values provided for the template name, view, and controller
+ will eventually pass through to the resolver for lookup. See
+ Ember.Resolver for how these are mapped to JavaScript objects in your
+ application.
+
+ Not all options need to be passed to `render`. Default values will be used
+ based on the name of the route specified in the router or the Route's
+ `controllerName`, `viewName` and and `templateName` properties.
For example:
```js
- App.Router.map(function() {
+ // router
+ Router.map(function() {
this.route('index');
this.resource('post', {path: '/posts/:post_id'});
});
-
- App.PostRoute = App.Route.extend({
- renderTemplate: function() {
- this.render();
- }
- });
```
- The name of the `PostRoute`, as defined by the router, is `post`.
-
- By default, render will:
-
- * render the `post` template
- * with the `post` view (`PostView`) for event handling, if one exists
- * and the `post` controller (`PostController`), if one exists
- * into the `main` outlet of the `application` template
-
- You can override this behavior:
-
```js
- App.PostRoute = App.Route.extend({
+ // post route
+ PostRoute = App.Route.extend({
renderTemplate: function() {
- this.render('myPost', { // the template to render
- into: 'index', // the template to render into
- outlet: 'detail', // the name of the outlet in that template
- controller: 'blogPost' // the controller to use for the template
- });
+ this.render(); // all defaults apply
}
});
```
- Remember that the controller's `model` will be the route's model. In
- this case, the default model will be `App.Post.find(params.post_id)`.
+ The name of the `PostRoute`, defined by the router, is `post`.
+
+ The following equivalent default options will be applied when
+ the Route calls `render`:
+
+ ```js
+ //
+ this.render('post', { // the template name associated with 'post' Route
+ into: 'application', // the parent route to 'post' Route
+ outlet: 'main', // {{outlet}} and {{outlet 'main' are synonymous}},
+ view: 'post', // the view associated with the 'post' Route
+ controller: 'post', // the controller associated with the 'post' Route
+ })
+ ```
+
+ By default the controller's `model` will be the route's model, so it does not
+ need to be passed unless you wish to change which model is being used.
@method render
@param {String} name the name of the template to render
- @param {Object} options the options
+ @param {Object} [options] the options
+ @param {String} [options.into] the template to render into,
+ referenced by name. Defaults to the parent template
+ @param {String} [options.outlet] the outlet inside `options.template` to render into.
+ Defaults to 'main'
+ @param {String} [options.controller] the controller to use for this template,
+ referenced by name. Defaults to the Route's paired controller
+ @param {String} [options.model] the model object to set on `options.controller`
+ Defaults to the return value of the Route's model hook
*/
render: function(name, options) {
Ember.assert("The name in the given arguments is undefined", arguments.length > 0 ? !isNone(arguments[0]) : true);
@@ -23355,6 +24036,7 @@ define("ember-routing/system/route",
}
options = options || {};
+ options.namePassed = namePassed;
var templateName;
@@ -23368,9 +24050,9 @@ define("ember-routing/system/route",
var viewName = options.view || namePassed && name || this.viewName || name;
- var container = this.container,
- view = container.lookup('view:' + viewName),
- template = view ? view.get('template') : null;
+ var container = this.container;
+ var view = container.lookup('view:' + viewName);
+ var template = view ? view.get('template') : null;
if (!template) {
template = container.lookup('template:' + templateName);
@@ -23623,9 +24305,6 @@ define("ember-routing/system/route",
run.once(this, this._fireQueryParamTransition);
},
- //_inactiveQPChanged: function(controller, qp) {
- //},
-
_updatingQPChanged: function(controller, qp) {
var router = this.router;
if (!router._qpUpdates) {
@@ -23643,37 +24322,12 @@ define("ember-routing/system/route",
return {};
}
- var transition = this.router.router.activeTransition,
- state = transition ? transition.state : this.router.router.state,
- params = {};
+ var transition = this.router.router.activeTransition;
+ var state = transition ? transition.state : this.router.router.state;
+ var params = {};
merge(params, state.params[name]);
-
- if (!state.fullQueryParams) {
- state.fullQueryParams = {};
- merge(state.fullQueryParams, state.queryParams);
-
- var targetRouteName = state.handlerInfos[state.handlerInfos.length-1].name;
- this.router._deserializeQueryParams(targetRouteName, state.fullQueryParams);
- }
-
- var qpMeta = get(route, '_qp');
-
- if (!qpMeta) {
- // No query params specified on the controller.
- return params;
- }
-
- // Copy over all the query params for this route/controller into params hash.
- // TODO: is this correct? I think this won't do model dep state.
- var qps = qpMeta.qps;
- for (var i = 0, len = qps.length; i < len; ++i) {
- // Put deserialized qp on params hash.
- var qp = qps[i];
- if (!(qp.prop in params)) {
- params[qp.prop] = state.fullQueryParams[qp.prop] || qp.def;
- }
- }
+ merge(params, getQueryParamsFor(route, state));
return params;
},
@@ -23733,7 +24387,6 @@ define("ember-routing/system/route",
@method resetController
@param {Controller} controller instance
- @param {Object} model
@param {Boolean} isExiting
@param {Object} transition
*/
@@ -23784,10 +24437,10 @@ define("ember-routing/system/route",
if (options.controller) {
controller = options.controller;
- } else if (namedController = route.container.lookup('controller:' + name)) {
- controller = namedController;
+ } else if (options.namePassed) {
+ controller = route.container.lookup('controller:' + name) || route.controllerName || route.routeName;
} else {
- controller = route.controllerName || route.routeName;
+ controller = route.controllerName || route.container.lookup('controller:' + name);
}
if (typeof controller === 'string') {
@@ -23859,6 +24512,50 @@ define("ember-routing/system/route",
return function() { parentView.disconnectOutlet(outlet); };
}
+ function getFullQueryParams(router, state) {
+ if (state.fullQueryParams) { return state.fullQueryParams; }
+
+ state.fullQueryParams = {};
+ merge(state.fullQueryParams, state.queryParams);
+
+ var targetRouteName = state.handlerInfos[state.handlerInfos.length-1].name;
+ router._deserializeQueryParams(targetRouteName, state.fullQueryParams);
+ return state.fullQueryParams;
+ }
+
+ function getQueryParamsFor(route, state) {
+ state.queryParamsFor = state.queryParamsFor || {};
+ var name = route.routeName;
+
+ if (state.queryParamsFor[name]) { return state.queryParamsFor[name]; }
+
+ var fullQueryParams = getFullQueryParams(route.router, state);
+
+ var params = state.queryParamsFor[name] = {};
+
+ // Copy over all the query params for this route/controller into params hash.
+ var qpMeta = get(route, '_qp');
+ var qps = qpMeta.qps;
+ for (var i = 0, len = qps.length; i < len; ++i) {
+ // Put deserialized qp on params hash.
+ var qp = qps[i];
+
+ var qpValueWasPassedIn = (qp.prop in fullQueryParams);
+ params[qp.prop] = qpValueWasPassedIn ?
+ fullQueryParams[qp.prop] :
+ copyDefaultValue(qp.def);
+ }
+
+ return params;
+ }
+
+ function copyDefaultValue(value) {
+ if (isArray(value)) {
+ return Ember.A(value.slice());
+ }
+ return value;
+ }
+
__exports__["default"] = Route;
});
define("ember-routing/system/router",
@@ -23975,11 +24672,11 @@ define("ember-routing/system/router",
startRouting: function() {
this.router = this.router || this.constructor.map(Ember.K);
- var router = this.router,
- location = get(this, 'location'),
- container = this.container,
- self = this,
- initialURL = get(this, 'initialURL');
+ var router = this.router;
+ var location = get(this, 'location');
+ var container = this.container;
+ var self = this;
+ var initialURL = get(this, 'initialURL');
// Allow the Location class to cancel the router setup while it refreshes
// the page
@@ -24153,10 +24850,10 @@ define("ember-routing/system/router",
},
_setupLocation: function() {
- var location = get(this, 'location'),
- rootURL = get(this, 'rootURL');
+ var location = get(this, 'location');
+ var rootURL = get(this, 'rootURL');
- if (rootURL && !this.container.has('-location-setting:root-url')) {
+ if (rootURL && this.container && !this.container.has('-location-setting:root-url')) {
this.container.register('-location-setting:root-url', rootURL, { instantiate: false });
}
@@ -24183,13 +24880,13 @@ define("ember-routing/system/router",
},
_getHandlerFunction: function() {
- var seen = {}, container = this.container,
- DefaultRoute = container.lookupFactory('route:basic'),
- self = this;
+ var seen = {}, container = this.container;
+ var DefaultRoute = container.lookupFactory('route:basic');
+ var self = this;
return function(name) {
- var routeName = 'route:' + name,
- handler = container.lookup(routeName);
+ var routeName = 'route:' + name;
+ var handler = container.lookup(routeName);
if (seen[name]) { return handler; }
@@ -24324,9 +25021,9 @@ define("ember-routing/system/router",
recogHandlerInfos = routerjs.recognizer.handlersFor(leafRouteName);
for (var i = 0, len = recogHandlerInfos.length; i < len; ++i) {
- var recogHandler = recogHandlerInfos[i],
- route = routerjs.getHandler(recogHandler.handler),
- qpMeta = get(route, '_qp');
+ var recogHandler = recogHandlerInfos[i];
+ var route = routerjs.getHandler(recogHandler.handler);
+ var qpMeta = get(route, '_qp');
if (!qpMeta) { continue; }
@@ -24424,12 +25121,13 @@ define("ember-routing/system/router",
@private
*/
function forEachRouteAbove(originRoute, transition, callback) {
- var handlerInfos = transition.state.handlerInfos,
- originRouteFound = false;
+ var handlerInfos = transition.state.handlerInfos;
+ var originRouteFound = false;
+ var handlerInfo, route;
for (var i = handlerInfos.length - 1; i >= 0; --i) {
- var handlerInfo = handlerInfos[i],
- route = handlerInfo.handler;
+ handlerInfo = handlerInfos[i];
+ route = handlerInfo.handler;
if (!originRouteFound) {
if (originRoute === route) {
@@ -24472,21 +25170,9 @@ define("ember-routing/system/router",
router.intermediateTransitionTo('application_error', error);
return;
}
- } else {
- // Don't fire an assertion if we found an error substate.
- return;
}
- var errorArgs = ['Error while processing route: ' + transition.targetName];
-
- if (error) {
- if (error.message) { errorArgs.push(error.message); }
- if (error.stack) { errorArgs.push(error.stack); }
-
- if (typeof error === "string") { errorArgs.push(error); }
- }
-
- Ember.Logger.error.apply(this, errorArgs);
+ logError(error, 'Error while processing route: ' + transition.targetName);
},
loading: function(transition, originRoute) {
@@ -24517,11 +25203,26 @@ define("ember-routing/system/router",
}
};
+ function logError(error, initialMessage) {
+ var errorArgs = [];
+
+ if (initialMessage) { errorArgs.push(initialMessage); }
+
+ if (error) {
+ if (error.message) { errorArgs.push(error.message); }
+ if (error.stack) { errorArgs.push(error.stack); }
+
+ if (typeof error === "string") { errorArgs.push(error); }
+ }
+
+ Ember.Logger.error.apply(this, errorArgs);
+ }
+
function findChildRouteName(parentRoute, originatingChildRoute, name) {
- var router = parentRoute.router,
- childName,
- targetChildRouteName = originatingChildRoute.routeName.split('.').pop(),
- namespace = parentRoute.routeName === 'application' ? '' : parentRoute.routeName + '.';
+ var router = parentRoute.router;
+ var childName;
+ var targetChildRouteName = originatingChildRoute.routeName.split('.').pop();
+ var namespace = parentRoute.routeName === 'application' ? '' : parentRoute.routeName + '.';
if (Ember.FEATURES.isEnabled("ember-routing-named-substates")) {
// First, try a named loading state, e.g. 'foo_loading'
@@ -24553,10 +25254,11 @@ define("ember-routing/system/router",
}
var eventWasHandled = false;
+ var handlerInfo, handler;
for (var i = handlerInfos.length - 1; i >= 0; i--) {
- var handlerInfo = handlerInfos[i],
- handler = handlerInfo.handler;
+ handlerInfo = handlerInfos[i];
+ handler = handlerInfo.handler;
if (handler._actions && handler._actions[name]) {
if (handler._actions[name].apply(handler, args) === true) {
@@ -24668,10 +25370,11 @@ define("ember-routing/system/router",
return true;
}
+ var name, nameParts, oldNameParts;
for (var i=1, l=handlerInfos.length; i 0) - (diff < 0);
+ }
/**
This will compare two javascript values of possibly different types.
@@ -24941,74 +25647,52 @@ define("ember-runtime/compare",
@return {Number} -1 if v < w, 0 if v = w and 1 if v > w.
*/
__exports__["default"] = function compare(v, w) {
- if (v === w) { return 0; }
+ if (v === w) {
+ return 0;
+ }
var type1 = typeOf(v);
var type2 = typeOf(w);
if (Comparable) {
- if (type1==='instance' && Comparable.detect(v.constructor)) {
+ if (type1 ==='instance' && Comparable.detect(v.constructor)) {
return v.constructor.compare(v, w);
}
if (type2 === 'instance' && Comparable.detect(w.constructor)) {
- return 1-w.constructor.compare(w, v);
+ return 1 - w.constructor.compare(w, v);
}
}
- // If we haven't yet generated a reverse-mapping of Ember.ORDER_DEFINITION,
- // do so now.
- var mapping = Ember.ORDER_DEFINITION_MAPPING;
- if (!mapping) {
- var order = Ember.ORDER_DEFINITION;
- mapping = Ember.ORDER_DEFINITION_MAPPING = {};
- var idx, len;
- for (idx = 0, len = order.length; idx < len; ++idx) {
- mapping[order[idx]] = idx;
- }
-
- // We no longer need Ember.ORDER_DEFINITION.
- delete Ember.ORDER_DEFINITION;
+ var res = spaceship(TYPE_ORDER[type1], TYPE_ORDER[type2]);
+ if (res !== 0) {
+ return res;
}
- var type1Index = mapping[type1];
- var type2Index = mapping[type2];
-
- if (type1Index < type2Index) { return -1; }
- if (type1Index > type2Index) { return 1; }
-
// types are equal - so we have to check values now
switch (type1) {
case 'boolean':
case 'number':
- if (v < w) { return -1; }
- if (v > w) { return 1; }
- return 0;
+ return spaceship(v,w);
case 'string':
- var comp = v.localeCompare(w);
- if (comp < 0) { return -1; }
- if (comp > 0) { return 1; }
- return 0;
+ return spaceship(v.localeCompare(w), 0);
case 'array':
var vLen = v.length;
var wLen = w.length;
- var l = Math.min(vLen, wLen);
- var r = 0;
- var i = 0;
- while (r === 0 && i < l) {
- r = compare(v[i],w[i]);
- i++;
+ var len = Math.min(vLen, wLen);
+
+ for (var i = 0; i < len; i++) {
+ var r = compare(v[i], w[i]);
+ if (r !== 0) {
+ return r;
+ }
}
- if (r !== 0) { return r; }
// all elements are equal now
// shorter array should be ordered first
- if (vLen < wLen) { return -1; }
- if (vLen > wLen) { return 1; }
- // arrays are equal now
- return 0;
+ return spaceship(vLen, wLen);
case 'instance':
if (Comparable && Comparable.detect(v)) {
@@ -25017,11 +25701,7 @@ define("ember-runtime/compare",
return 0;
case 'date':
- var vNum = v.getTime();
- var wNum = w.getTime();
- if (vNum < wNum) { return -1; }
- if (vNum > wNum) { return 1; }
- return 0;
+ return spaceship(v.getTime(), w.getTime());
default:
return 0;
@@ -25068,9 +25748,11 @@ define("ember-runtime/computed/array_computed",
}
ArrayComputedProperty.prototype = o_create(ReduceComputedProperty.prototype);
+
ArrayComputedProperty.prototype.initialValue = function () {
return Ember.A();
};
+
ArrayComputedProperty.prototype.resetValue = function (array) {
array.clear();
return array;
@@ -25203,8 +25885,8 @@ define("ember-runtime/computed/array_computed",
options = a_slice.call(arguments, -1)[0];
}
- if (typeof options !== "object") {
- throw new EmberError("Array Computed Property declared without an options hash");
+ if (typeof options !== 'object') {
+ throw new EmberError('Array Computed Property declared without an options hash');
}
var cp = new ArrayComputedProperty(options);
@@ -25220,8 +25902,8 @@ define("ember-runtime/computed/array_computed",
__exports__.ArrayComputedProperty = ArrayComputedProperty;
});
define("ember-runtime/computed/reduce_computed",
- ["ember-metal/core","ember-metal/property_get","ember-metal/property_set","ember-metal/utils","ember-metal/error","ember-metal/property_events","ember-metal/expand_properties","ember-metal/observer","ember-metal/computed","ember-metal/platform","ember-metal/enumerable_utils","ember-runtime/system/tracked_array","ember-runtime/mixins/array","ember-metal/run_loop","ember-runtime/system/set","exports"],
- function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __dependency5__, __dependency6__, __dependency7__, __dependency8__, __dependency9__, __dependency10__, __dependency11__, __dependency12__, __dependency13__, __dependency14__, __dependency15__, __exports__) {
+ ["ember-metal/core","ember-metal/property_get","ember-metal/property_set","ember-metal/utils","ember-metal/error","ember-metal/property_events","ember-metal/expand_properties","ember-metal/observer","ember-metal/computed","ember-metal/platform","ember-metal/enumerable_utils","ember-runtime/system/tracked_array","ember-runtime/mixins/array","ember-metal/run_loop","exports"],
+ function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __dependency5__, __dependency6__, __dependency7__, __dependency8__, __dependency9__, __dependency10__, __dependency11__, __dependency12__, __dependency13__, __dependency14__, __exports__) {
"use strict";
var Ember = __dependency1__["default"];
// Ember.assert
@@ -25245,7 +25927,6 @@ define("ember-runtime/computed/reduce_computed",
var TrackedArray = __dependency12__["default"];
var EmberArray = __dependency13__["default"];
var run = __dependency14__["default"];
- var Set = __dependency15__["default"];
var isArray = __dependency4__.isArray;
var cacheSet = cacheFor.set;
@@ -25308,7 +25989,7 @@ define("ember-runtime/computed/reduce_computed",
}
function ItemPropertyObserverContext (dependentArray, index, trackedArray) {
- Ember.assert("Internal error: trackedArray is null or undefined", trackedArray);
+ Ember.assert('Internal error: trackedArray is null or undefined', trackedArray);
this.dependentArray = dependentArray;
this.index = index;
@@ -25316,7 +25997,6 @@ define("ember-runtime/computed/reduce_computed",
this.trackedArray = trackedArray;
this.beforeObserver = null;
this.observer = null;
-
this.destroyed = false;
}
@@ -25324,6 +26004,7 @@ define("ember-runtime/computed/reduce_computed",
setValue: function (newValue) {
this.instanceMeta.setValue(newValue, true);
},
+
getValue: function () {
return this.instanceMeta.getValue();
},
@@ -25380,11 +26061,9 @@ define("ember-runtime/computed/reduce_computed",
},
teardownPropertyObservers: function (dependentKey, itemPropertyKeys) {
- var dependentArrayObserver = this,
- trackedArray = this.trackedArraysByGuid[dependentKey],
- beforeObserver,
- observer,
- item;
+ var dependentArrayObserver = this;
+ var trackedArray = this.trackedArraysByGuid[dependentKey];
+ var beforeObserver, observer, item;
if (!trackedArray) { return; }
@@ -25419,6 +26098,7 @@ define("ember-runtime/computed/reduce_computed",
observerContext.beforeObserver = function (obj, keyName) {
return dependentArrayObserver.itemPropertyWillChange(obj, keyName, observerContext.dependentArray, observerContext);
};
+
observerContext.observer = function (obj, keyName) {
return dependentArrayObserver.itemPropertyDidChange(obj, keyName, observerContext.dependentArray, observerContext);
};
@@ -25430,6 +26110,7 @@ define("ember-runtime/computed/reduce_computed",
trackAdd: function (dependentKey, index, newItems) {
var trackedArray = this.trackedArraysByGuid[dependentKey];
+
if (trackedArray) {
trackedArray.addItems(index, newItems);
}
@@ -25495,7 +26176,7 @@ define("ember-runtime/computed/reduce_computed",
forEach(itemPropertyKeys, removeObservers, this);
changeMeta = new ChangeMeta(dependentArray, item, itemIndex, this.instanceMeta.propertyName, this.cp, normalizedRemoveCount);
- this.setValue( removedItem.call(
+ this.setValue(removedItem.call(
this.instanceMeta.context, this.getValue(), item, changeMeta, this.instanceMeta.sugarMeta));
}
},
@@ -25510,13 +26191,15 @@ define("ember-runtime/computed/reduce_computed",
var itemPropertyKeys = this.cp._itemPropertyKeys[dependentKey];
var length = get(dependentArray, 'length');
var normalizedIndex = normalizeIndex(index, length, addedCount);
+ var endIndex = normalizedIndex + addedCount;
var changeMeta, observerContext;
- forEach(dependentArray.slice(normalizedIndex, normalizedIndex + addedCount), function (item, sliceIndex) {
+ forEach(dependentArray.slice(normalizedIndex, endIndex), function (item, sliceIndex) {
if (itemPropertyKeys) {
- observerContext =
- observerContexts[sliceIndex] =
- this.createPropertyObserverContext(dependentArray, normalizedIndex + sliceIndex, this.trackedArraysByGuid[dependentKey]);
+ observerContext = this.createPropertyObserverContext(dependentArray, normalizedIndex + sliceIndex,
+ this.trackedArraysByGuid[dependentKey]);
+ observerContexts[sliceIndex] = observerContext;
+
forEach(itemPropertyKeys, function (propertyKey) {
addBeforeObserver(item, propertyKey, this, observerContext.beforeObserver);
addObserver(item, propertyKey, this, observerContext.observer);
@@ -25524,7 +26207,7 @@ define("ember-runtime/computed/reduce_computed",
}
changeMeta = new ChangeMeta(dependentArray, item, normalizedIndex + sliceIndex, this.instanceMeta.propertyName, this.cp, addedCount);
- this.setValue( addedItem.call(
+ this.setValue(addedItem.call(
this.instanceMeta.context, this.getValue(), item, changeMeta, this.instanceMeta.sugarMeta));
}, this);
@@ -25536,24 +26219,24 @@ define("ember-runtime/computed/reduce_computed",
if (!this.changedItems[guid]) {
this.changedItems[guid] = {
- array: array,
- observerContext: observerContext,
- obj: obj,
- previousValues: {}
+ array: array,
+ observerContext: observerContext,
+ obj: obj,
+ previousValues: {}
};
}
- ++this.changedItemCount;
+ ++this.changedItemCount;
this.changedItems[guid].previousValues[keyName] = get(obj, keyName);
},
- itemPropertyDidChange: function(obj, keyName, array, observerContext) {
+ itemPropertyDidChange: function (obj, keyName, array, observerContext) {
if (--this.changedItemCount === 0) {
this.flushChanges();
}
},
- flushChanges: function() {
+ flushChanges: function () {
var changedItems = this.changedItems, key, c, changeMeta;
for (key in changedItems) {
@@ -25568,6 +26251,7 @@ define("ember-runtime/computed/reduce_computed",
this.setValue(
this.callbacks.addedItem.call(this.instanceMeta.context, this.getValue(), c.obj, changeMeta, this.instanceMeta.sugarMeta));
}
+
this.changedItems = {};
}
};
@@ -25600,7 +26284,7 @@ define("ember-runtime/computed/reduce_computed",
}
}
- function addItems (dependentArray, callbacks, cp, propertyName, meta) {
+ function addItems(dependentArray, callbacks, cp, propertyName, meta) {
forEach(dependentArray, function (item, index) {
meta.setValue( callbacks.addedItem.call(
this, meta.getValue(), item, new ChangeMeta(dependentArray, item, index, propertyName, cp, dependentArray.length), meta.sugarMeta));
@@ -25619,7 +26303,10 @@ define("ember-runtime/computed/reduce_computed",
}
if (cp.options.initialize) {
- cp.options.initialize.call(this, meta.getValue(), { property: cp, propertyName: propertyName }, meta.sugarMeta);
+ cp.options.initialize.call(this, meta.getValue(), {
+ property: cp,
+ propertyName: propertyName
+ }, meta.sugarMeta);
}
}
@@ -25636,16 +26323,15 @@ define("ember-runtime/computed/reduce_computed",
this.context = context;
this.propertyName = propertyName;
this.cache = metaFor(context).cache;
-
this.dependentArrays = {};
this.sugarMeta = {};
-
this.initialValue = initialValue;
}
ReduceComputedPropertyInstanceMeta.prototype = {
getValue: function () {
var value = cacheGet(this.cache, this.propertyName);
+
if (value !== undefined) {
return value;
} else {
@@ -25688,11 +26374,11 @@ define("ember-runtime/computed/reduce_computed",
__exports__.ReduceComputedProperty = ReduceComputedProperty;
// TODO: default export
+
function ReduceComputedProperty(options) {
var cp = this;
this.options = options;
-
this._dependentKeys = null;
// A map of dependentKey -> [itemProperty, ...] that tracks what properties of
// items in the array we must track to update this property.
@@ -25708,24 +26394,25 @@ define("ember-runtime/computed/reduce_computed",
// coalesce by, in addition to the target and method.
run.once(this, recompute, propertyName);
};
+
var recompute = function(propertyName) {
- var dependentKeys = cp._dependentKeys,
- meta = cp._instanceMeta(this, propertyName),
- callbacks = cp._callbacks();
+ var dependentKeys = cp._dependentKeys;
+ var meta = cp._instanceMeta(this, propertyName);
+ var callbacks = cp._callbacks();
reset.call(this, cp, propertyName);
meta.dependentArraysObserver.suspendArrayObservers(function () {
forEach(cp._dependentKeys, function (dependentKey) {
Ember.assert(
- "dependent array " + dependentKey + " must be an `Ember.Array`. " +
- "If you are not extending arrays, you will need to wrap native arrays with `Ember.A`",
+ 'dependent array ' + dependentKey + ' must be an `Ember.Array`. ' +
+ 'If you are not extending arrays, you will need to wrap native arrays with `Ember.A`',
!(isArray(get(this, dependentKey)) && !EmberArray.detect(get(this, dependentKey))));
if (!partiallyRecomputeFor(this, dependentKey)) { return; }
- var dependentArray = get(this, dependentKey),
- previousDependentArray = meta.dependentArrays[dependentKey];
+ var dependentArray = get(this, dependentKey);
+ var previousDependentArray = meta.dependentArrays[dependentKey];
if (dependentArray === previousDependentArray) {
// The array may be the same, but our item property keys may have
@@ -25754,6 +26441,7 @@ define("ember-runtime/computed/reduce_computed",
if (!partiallyRecomputeFor(this, dependentKey)) { return; }
var dependentArray = get(this, dependentKey);
+
if (dependentArray) {
addItems.call(this, dependentArray, callbacks, cp, propertyName, meta);
}
@@ -25762,7 +26450,7 @@ define("ember-runtime/computed/reduce_computed",
this.func = function (propertyName) {
- Ember.assert("Computed reduce values require at least one dependent key", cp._dependentKeys);
+ Ember.assert('Computed reduce values require at least one dependent key', cp._dependentKeys);
recompute.call(this, propertyName);
@@ -25779,11 +26467,13 @@ define("ember-runtime/computed/reduce_computed",
ReduceComputedProperty.prototype._callbacks = function () {
if (!this.callbacks) {
var options = this.options;
+
this.callbacks = {
removedItem: options.removedItem || defaultCallback,
addedItem: options.addedItem || defaultCallback
};
}
+
return this.callbacks;
};
@@ -25792,8 +26482,8 @@ define("ember-runtime/computed/reduce_computed",
};
ReduceComputedProperty.prototype._instanceMeta = function (context, propertyName) {
- var cacheMeta = metaFor(context).cacheMeta,
- meta = cacheMeta[propertyName];
+ var cacheMeta = metaFor(context).cacheMeta;
+ var meta = cacheMeta[propertyName];
if (!meta) {
meta = cacheMeta[propertyName] = new ReduceComputedPropertyInstanceMeta(context, propertyName, this.initialValue());
@@ -25829,33 +26519,35 @@ define("ember-runtime/computed/reduce_computed",
};
ReduceComputedProperty.prototype.property = function () {
- var cp = this,
- args = a_slice.call(arguments),
- propertyArgs = new Set(),
- match,
- dependentArrayKey,
- itemPropertyKey;
+ var cp = this;
+ var args = a_slice.call(arguments);
+ var propertyArgs = {};
+ var match, dependentArrayKey, itemPropertyKey;
forEach(args, function (dependentKey) {
if (doubleEachPropertyPattern.test(dependentKey)) {
- throw new EmberError("Nested @each properties not supported: " + dependentKey);
+ throw new EmberError('Nested @each properties not supported: ' + dependentKey);
} else if (match = eachPropertyPattern.exec(dependentKey)) {
dependentArrayKey = match[1];
- var itemPropertyKeyPattern = match[2],
- addItemPropertyKey = function (itemPropertyKey) {
- cp.itemPropertyKey(dependentArrayKey, itemPropertyKey);
- };
+ var itemPropertyKeyPattern = match[2];
+ var addItemPropertyKey = function (itemPropertyKey) {
+ cp.itemPropertyKey(dependentArrayKey, itemPropertyKey);
+ };
expandProperties(itemPropertyKeyPattern, addItemPropertyKey);
- propertyArgs.add(dependentArrayKey);
+ propertyArgs[guidFor(dependentArrayKey)] = dependentArrayKey;
} else {
- propertyArgs.add(dependentKey);
+ propertyArgs[guidFor(dependentKey)] = dependentKey;
}
});
- return ComputedProperty.prototype.property.apply(this, propertyArgs.toArray());
+ var propertyArgsToArray = [];
+ for (var guid in propertyArgs) {
+ propertyArgsToArray.push(propertyArgs[guid]);
+ }
+ return ComputedProperty.prototype.property.apply(this, propertyArgsToArray);
};
/**
@@ -25991,8 +26683,8 @@ define("ember-runtime/computed/reduce_computed",
// `content.@each.reversedName` above, we would be getting the objects
// directly and not have access to `reversedName`.
//
- var reversedNameA = get(personA, 'reversedName'),
- reversedNameB = get(personB, 'reversedName');
+ var reversedNameA = get(personA, 'reversedName');
+ var reversedNameB = get(personB, 'reversedName');
return Ember.compare(reversedNameA, reversedNameB);
})
@@ -26051,12 +26743,12 @@ define("ember-runtime/computed/reduce_computed",
options = a_slice.call(arguments, -1)[0];
}
- if (typeof options !== "object") {
- throw new EmberError("Reduce Computed Property declared without an options hash");
+ if (typeof options !== 'object') {
+ throw new EmberError('Reduce Computed Property declared without an options hash');
}
if (!('initialValue' in options)) {
- throw new EmberError("Reduce Computed Property declared without an initial value");
+ throw new EmberError('Reduce Computed Property declared without an initial value');
}
var cp = new ReduceComputedProperty(options);
@@ -26071,7 +26763,7 @@ define("ember-runtime/computed/reduce_computed",
__exports__.reduceComputed = reduceComputed;
});
define("ember-runtime/computed/reduce_computed_macros",
- ["ember-metal/core","ember-metal/merge","ember-metal/property_get","ember-metal/property_set","ember-metal/utils","ember-metal/error","ember-metal/enumerable_utils","ember-metal/run_loop","ember-metal/observer","ember-runtime/computed/array_computed","ember-runtime/computed/reduce_computed","ember-runtime/system/object_proxy","ember-runtime/system/subarray","ember-runtime/keys","ember-runtime/compare","exports"],
+ ["ember-metal/core","ember-metal/merge","ember-metal/property_get","ember-metal/property_set","ember-metal/utils","ember-metal/error","ember-metal/enumerable_utils","ember-metal/run_loop","ember-metal/observer","ember-runtime/computed/array_computed","ember-runtime/computed/reduce_computed","ember-runtime/system/object_proxy","ember-runtime/system/subarray","ember-metal/keys","ember-runtime/compare","exports"],
function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __dependency5__, __dependency6__, __dependency7__, __dependency8__, __dependency9__, __dependency10__, __dependency11__, __dependency12__, __dependency13__, __dependency14__, __dependency15__, __exports__) {
"use strict";
/**
@@ -26157,7 +26849,7 @@ define("ember-runtime/computed/reduce_computed_macros",
@param {String} dependentKey
@return {Ember.ComputedProperty} computes the largest value in the dependentKey's array
*/
- function max (dependentKey) {
+ function max(dependentKey) {
return reduceComputed(dependentKey, {
initialValue: -Infinity,
@@ -26330,12 +27022,12 @@ define("ember-runtime/computed/reduce_computed_macros",
})
});
- var hamster = Hamster.create({
+ var hamster = Hamster.create({
chores: [
{ name: 'cook', done: true },
{ name: 'clean', done: true },
{ name: 'write more unit tests', done: false }
- ]
+ ]
});
hamster.get('remainingChores'); // [{name: 'write more unit tests', done: false}]
@@ -26353,9 +27045,9 @@ define("ember-runtime/computed/reduce_computed_macros",
instanceMeta.filteredArrayIndexes = new SubArray();
},
- addedItem: function(array, item, changeMeta, instanceMeta) {
- var match = !!callback.call(this, item),
- filterIndex = instanceMeta.filteredArrayIndexes.addItem(changeMeta.index, match);
+ addedItem: function (array, item, changeMeta, instanceMeta) {
+ var match = !!callback.call(this, item);
+ var filterIndex = instanceMeta.filteredArrayIndexes.addItem(changeMeta.index, match);
if (match) {
array.insertAt(filterIndex, item);
@@ -26461,6 +27153,7 @@ define("ember-runtime/computed/reduce_computed_macros",
*/
function uniq() {
var args = a_slice.call(arguments);
+
args.push({
initialize: function(array, changeMeta, instanceMeta) {
instanceMeta.itemCounts = {};
@@ -26471,22 +27164,25 @@ define("ember-runtime/computed/reduce_computed_macros",
if (!instanceMeta.itemCounts[guid]) {
instanceMeta.itemCounts[guid] = 1;
+ array.pushObject(item);
} else {
++instanceMeta.itemCounts[guid];
}
- array.addObject(item);
return array;
},
+
removedItem: function(array, item, _, instanceMeta) {
- var guid = guidFor(item),
- itemCounts = instanceMeta.itemCounts;
+ var guid = guidFor(item);
+ var itemCounts = instanceMeta.itemCounts;
if (--itemCounts[guid] === 0) {
array.removeObject(item);
}
+
return array;
}
});
+
return arrayComputed.apply(null, args);
}
@@ -26531,37 +27227,47 @@ define("ember-runtime/computed/reduce_computed_macros",
};
var args = a_slice.call(arguments);
+
args.push({
initialize: function (array, changeMeta, instanceMeta) {
instanceMeta.itemCounts = {};
},
addedItem: function(array, item, changeMeta, instanceMeta) {
- var itemGuid = guidFor(item),
- dependentGuids = getDependentKeyGuids(changeMeta),
- dependentGuid = guidFor(changeMeta.arrayChanged),
- numberOfDependentArrays = changeMeta.property._dependentKeys.length,
- itemCounts = instanceMeta.itemCounts;
+ var itemGuid = guidFor(item);
+ var dependentGuids = getDependentKeyGuids(changeMeta);
+ var dependentGuid = guidFor(changeMeta.arrayChanged);
+ var numberOfDependentArrays = changeMeta.property._dependentKeys.length;
+ var itemCounts = instanceMeta.itemCounts;
- if (!itemCounts[itemGuid]) { itemCounts[itemGuid] = {}; }
- if (itemCounts[itemGuid][dependentGuid] === undefined) { itemCounts[itemGuid][dependentGuid] = 0; }
+ if (!itemCounts[itemGuid]) {
+ itemCounts[itemGuid] = {};
+ }
+
+ if (itemCounts[itemGuid][dependentGuid] === undefined) {
+ itemCounts[itemGuid][dependentGuid] = 0;
+ }
if (++itemCounts[itemGuid][dependentGuid] === 1 &&
numberOfDependentArrays === keys(itemCounts[itemGuid]).length) {
-
array.addObject(item);
}
+
return array;
},
- removedItem: function(array, item, changeMeta, instanceMeta) {
- var itemGuid = guidFor(item),
- dependentGuids = getDependentKeyGuids(changeMeta),
- dependentGuid = guidFor(changeMeta.arrayChanged),
- numberOfDependentArrays = changeMeta.property._dependentKeys.length,
- numberOfArraysItemAppearsIn,
- itemCounts = instanceMeta.itemCounts;
- if (itemCounts[itemGuid][dependentGuid] === undefined) { itemCounts[itemGuid][dependentGuid] = 0; }
+ removedItem: function(array, item, changeMeta, instanceMeta) {
+ var itemGuid = guidFor(item);
+ var dependentGuids = getDependentKeyGuids(changeMeta);
+ var dependentGuid = guidFor(changeMeta.arrayChanged);
+ var numberOfDependentArrays = changeMeta.property._dependentKeys.length;
+ var numberOfArraysItemAppearsIn;
+ var itemCounts = instanceMeta.itemCounts;
+
+ if (itemCounts[itemGuid][dependentGuid] === undefined) {
+ itemCounts[itemGuid][dependentGuid] = 0;
+ }
+
if (--itemCounts[itemGuid][dependentGuid] === 0) {
delete itemCounts[itemGuid][dependentGuid];
numberOfArraysItemAppearsIn = keys(itemCounts[itemGuid]).length;
@@ -26569,11 +27275,14 @@ define("ember-runtime/computed/reduce_computed_macros",
if (numberOfArraysItemAppearsIn === 0) {
delete itemCounts[itemGuid];
}
+
array.removeObject(item);
}
+
return array;
}
});
+
return arrayComputed.apply(null, args);
}
@@ -26610,12 +27319,13 @@ define("ember-runtime/computed/reduce_computed_macros",
*/
function setDiff(setAProperty, setBProperty) {
if (arguments.length !== 2) {
- throw new EmberError("setDiff requires exactly two dependent arrays.");
+ throw new EmberError('setDiff requires exactly two dependent arrays.');
}
+
return arrayComputed(setAProperty, setBProperty, {
addedItem: function (array, item, changeMeta, instanceMeta) {
- var setA = get(this, setAProperty),
- setB = get(this, setBProperty);
+ var setA = get(this, setAProperty);
+ var setB = get(this, setBProperty);
if (changeMeta.arrayChanged === setA) {
if (!setB.contains(item)) {
@@ -26624,12 +27334,13 @@ define("ember-runtime/computed/reduce_computed_macros",
} else {
array.removeObject(item);
}
+
return array;
},
removedItem: function (array, item, changeMeta, instanceMeta) {
- var setA = get(this, setAProperty),
- setB = get(this, setBProperty);
+ var setA = get(this, setAProperty);
+ var setB = get(this, setBProperty);
if (changeMeta.arrayChanged === setB) {
if (setA.contains(item)) {
@@ -26638,6 +27349,7 @@ define("ember-runtime/computed/reduce_computed_macros",
} else {
array.removeObject(item);
}
+
return array;
}
});
@@ -26646,8 +27358,13 @@ define("ember-runtime/computed/reduce_computed_macros",
__exports__.setDiff = setDiff;function binarySearch(array, item, low, high) {
var mid, midItem, res, guidMid, guidItem;
- if (arguments.length < 4) { high = get(array, 'length'); }
- if (arguments.length < 3) { low = 0; }
+ if (arguments.length < 4) {
+ high = get(array, 'length');
+ }
+
+ if (arguments.length < 3) {
+ low = 0;
+ }
if (low === high) {
return low;
@@ -26664,6 +27381,7 @@ define("ember-runtime/computed/reduce_computed_macros",
}
res = this.order(midItem, item);
+
if (res === 0) {
res = guidMid < guidItem ? -1 : 1;
}
@@ -26681,6 +27399,7 @@ define("ember-runtime/computed/reduce_computed_macros",
if (SearchProxy.detectInstance(item)) {
return guidFor(get(item, 'content'));
}
+
return guidFor(item);
}
}
@@ -26753,7 +27472,8 @@ define("ember-runtime/computed/reduce_computed_macros",
on the sort property array or callback function
*/
function sort(itemsKey, sortDefinition) {
- Ember.assert("Ember.computed.sort requires two arguments: an array key to sort and either a sort properties key or sort function", arguments.length === 2);
+ Ember.assert('Ember.computed.sort requires two arguments: an array key to sort and ' +
+ 'either a sort properties key or sort function', arguments.length === 2);
var initFn, sortPropertiesKey;
@@ -26764,16 +27484,16 @@ define("ember-runtime/computed/reduce_computed_macros",
};
} else {
sortPropertiesKey = sortDefinition;
+
initFn = function (array, changeMeta, instanceMeta) {
function setupSortProperties() {
- var sortPropertyDefinitions = get(this, sortPropertiesKey),
- sortProperty,
- sortProperties = instanceMeta.sortProperties = [],
- sortPropertyAscending = instanceMeta.sortPropertyAscending = {},
- idx,
- asc;
+ var sortPropertyDefinitions = get(this, sortPropertiesKey);
+ var sortProperties = instanceMeta.sortProperties = [];
+ var sortPropertyAscending = instanceMeta.sortPropertyAscending = {};
+ var sortProperty, idx, asc;
- Ember.assert("Cannot sort: '" + sortPropertiesKey + "' is not an array.", isArray(sortPropertyDefinitions));
+ Ember.assert('Cannot sort: \'' + sortPropertiesKey + '\' is not an array.',
+ isArray(sortPropertyDefinitions));
changeMeta.property.clearItemPropertyKeys(itemsKey);
@@ -26804,13 +27524,11 @@ define("ember-runtime/computed/reduce_computed_macros",
}
addObserver(this, sortPropertiesKey, updateSortPropertiesOnce);
-
setupSortProperties.call(this);
-
instanceMeta.order = function (itemA, itemB) {
- var isProxy = itemB instanceof SearchProxy,
- sortProperty, result, asc;
+ var isProxy = itemB instanceof SearchProxy;
+ var sortProperty, result, asc;
for (var i = 0; i < this.sortProperties.length; ++i) {
sortProperty = this.sortProperties[i];
@@ -26835,6 +27553,7 @@ define("ember-runtime/computed/reduce_computed_macros",
addedItem: function (array, item, changeMeta, instanceMeta) {
var index = instanceMeta.binarySearch(array, item);
array.insertAt(index, item);
+
return array;
},
@@ -26851,6 +27570,7 @@ define("ember-runtime/computed/reduce_computed_macros",
index = instanceMeta.binarySearch(array, searchItem);
array.removeAt(index);
+
return array;
}
});
@@ -26919,9 +27639,9 @@ define("ember-runtime/controllers/array_controller",
For example:
```handlebars
- {{#each post in controller}}
- {{post.title}} ({{post.titleLength}} characters)
- {{/each}}
+ {{#each post in controller}}
+ {{post.title}} ({{post.titleLength}} characters)
+ {{/each}}
```
```javascript
@@ -26931,7 +27651,6 @@ define("ember-runtime/controllers/array_controller",
App.PostController = Ember.ObjectController.extend({
// the `title` property will be proxied to the underlying post.
-
titleLength: function() {
return this.get('title').length;
}.property('title')
@@ -26969,10 +27688,22 @@ define("ember-runtime/controllers/array_controller",
__exports__["default"] = ArrayProxy.extend(ControllerMixin, SortableMixin, {
/**
- The controller used to wrap items, if any.
+ The controller used to wrap items, if any. If the value is a string, it will
+ be used to lookup the container for the controller. As an alternative, you
+ can also provide a controller class as the value.
+
+ For example:
+
+ ```javascript
+ App.MyArrayController = Ember.ArrayController.extend({
+ itemController: Ember.ObjectController.extend({
+ //Item Controller Implementation
+ })
+ });
+ ```
@property itemController
- @type String
+ @type String | Ember.Controller
@default null
*/
itemController: null,
@@ -27013,6 +27744,7 @@ define("ember-runtime/controllers/array_controller",
if (idx >= 0 && idx < length) {
controllerClass = this.lookupItemController(object);
+
if (controllerClass) {
return this.controllerAt(idx, object, controllerClass);
}
@@ -27073,10 +27805,9 @@ define("ember-runtime/controllers/array_controller",
_isVirtual: false,
controllerAt: function(idx, object, controllerClass) {
- var fullName, subController, parentController;
-
var container = get(this, 'container');
var subControllers = this._subControllers;
+ var fullName, subController, subControllerFactory, parentController, options;
if (subControllers.length > idx) {
subController = subControllers[idx];
@@ -27086,23 +27817,46 @@ define("ember-runtime/controllers/array_controller",
}
}
- fullName = 'controller:' + controllerClass;
-
- if (!container.has(fullName)) {
- throw new EmberError('Could not resolve itemController: "' + controllerClass + '"');
- }
-
if (this._isVirtual) {
parentController = get(this, 'parentController');
} else {
parentController = this;
}
- subController = container.lookupFactory(fullName).create({
- target: parentController,
- parentController: parentController,
- model: object
- });
+ if (Ember.FEATURES.isEnabled("ember-runtime-item-controller-inline-class")) {
+ options = {
+ target: parentController,
+ parentController: parentController,
+ model: object
+ };
+
+ if (typeof controllerClass === 'string') {
+ fullName = 'controller:' + controllerClass;
+
+ if (!container.has(fullName)) {
+ throw new EmberError('Could not resolve itemController: "' + controllerClass + '"');
+ }
+
+ subControllerFactory = container.lookupFactory(fullName);
+ } else {
+ subControllerFactory = controllerClass;
+ options.container = container;
+ }
+
+ subController = subControllerFactory.create(options);
+ } else {
+ fullName = 'controller:' + controllerClass;
+
+ if (!container.has(fullName)) {
+ throw new EmberError('Could not resolve itemController: "' + controllerClass + '"');
+ }
+
+ subController = container.lookupFactory(fullName).create({
+ target: parentController,
+ parentController: parentController,
+ model: object
+ });
+ }
subControllers[idx] = subController;
@@ -27118,6 +27872,7 @@ define("ember-runtime/controllers/array_controller",
if (subControllers.length) {
for (var i = 0, length = subControllers.length; length > i; i++) {
controller = subControllers[i];
+
if (controller) {
controller.destroy();
}
@@ -27181,33 +27936,41 @@ define("ember-runtime/controllers/object_controller",
__exports__["default"] = ObjectProxy.extend(ControllerMixin);
});
define("ember-runtime/copy",
- ["ember-metal/enumerable_utils","ember-metal/utils","ember-runtime/system/object","ember-runtime/mixins/copyable","ember-metal/platform","exports"],
- function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __dependency5__, __exports__) {
+ ["ember-metal/enumerable_utils","ember-metal/utils","ember-runtime/system/object","ember-runtime/mixins/copyable","exports"],
+ function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __exports__) {
"use strict";
var indexOf = __dependency1__.indexOf;
var typeOf = __dependency2__.typeOf;
var EmberObject = __dependency3__["default"];
var Copyable = __dependency4__["default"];
- var create = __dependency5__.create;
function _copy(obj, deep, seen, copies) {
var ret, loc, key;
// primitive data types are immutable, just return them.
- if ('object' !== typeof obj || obj===null) return obj;
+ if (typeof obj !== 'object' || obj === null) {
+ return obj;
+ }
// avoid cyclical loops
- if (deep && (loc=indexOf(seen, obj))>=0) return copies[loc];
+ if (deep && (loc = indexOf(seen, obj)) >= 0) {
+ return copies[loc];
+ }
- Ember.assert('Cannot clone an Ember.Object that does not implement Ember.Copyable', !(obj instanceof EmberObject) || (Copyable && Copyable.detect(obj)));
+ Ember.assert('Cannot clone an Ember.Object that does not implement Ember.Copyable',
+ !(obj instanceof EmberObject) || (Copyable && Copyable.detect(obj)));
// IMPORTANT: this specific test will detect a native array only. Any other
// object will need to implement Copyable.
if (typeOf(obj) === 'array') {
ret = obj.slice();
+
if (deep) {
loc = ret.length;
- while(--loc>=0) ret[loc] = _copy(ret[loc], deep, seen, copies);
+
+ while (--loc >= 0) {
+ ret[loc] = _copy(ret[loc], deep, seen, copies);
+ }
}
} else if (Copyable && Copyable.detect(obj)) {
ret = obj.copy(deep, seen, copies);
@@ -27215,12 +27978,17 @@ define("ember-runtime/copy",
ret = new Date(obj.getTime());
} else {
ret = {};
- for(key in obj) {
- if (!obj.hasOwnProperty(key)) continue;
+
+ for (key in obj) {
+ if (obj.hasOwnProperty && !obj.hasOwnProperty(key)) {
+ continue;
+ }
// Prevents browsers that don't respect non-enumerability from
// copying internal Ember properties
- if (key.substring(0,2) === '__') continue;
+ if (key.substring(0, 2) === '__') {
+ continue;
+ }
ret[key] = deep ? _copy(obj[key], deep, seen, copies) : obj[key];
}
@@ -27250,8 +28018,14 @@ define("ember-runtime/copy",
*/
__exports__["default"] = function copy(obj, deep) {
// fast paths
- if ('object' !== typeof obj || obj === null) return obj; // can't copy primitives
- if (Copyable && Copyable.detect(obj)) return obj.copy(deep);
+ if ('object' !== typeof obj || obj === null) {
+ return obj; // can't copy primitives
+ }
+
+ if (Copyable && Copyable.detect(obj)) {
+ return obj.copy(deep);
+ }
+
return _copy(obj, deep, deep ? [] : null, deep ? [] : null);
}
});
@@ -27283,10 +28057,14 @@ define("ember-runtime/core",
@return {Boolean}
*/
var isEqual = function isEqual(a, b) {
- if (a && 'function'===typeof a.isEqual) return a.isEqual(b);
+ if (a && typeof a.isEqual === 'function') {
+ return a.isEqual(b);
+ }
+
if (a instanceof Date && b instanceof Date) {
return a.getTime() === b.getTime();
}
+
return a === b;
};
__exports__.isEqual = isEqual;
@@ -27324,17 +28102,15 @@ define("ember-runtime/ext/function",
fullName: function() {
return this.get('firstName') + ' ' + this.get('lastName');
-
- // Call this flag to mark the function as a property
- }.property()
+ }.property() // Call this flag to mark the function as a property
});
var president = MyApp.President.create({
- firstName: "Barack",
- lastName: "Obama"
+ firstName: 'Barack',
+ lastName: 'Obama'
});
- president.get('fullName'); // "Barack Obama"
+ president.get('fullName'); // 'Barack Obama'
```
Treating a function like a property is useful because they can work with
@@ -27370,7 +28146,7 @@ define("ember-runtime/ext/function",
@method property
@for Function
*/
- FunctionPrototype.property = function() {
+ FunctionPrototype.property = function () {
var ret = computed(this);
// ComputedProperty.prototype.property expands properties; no need for us to
// do so here.
@@ -27402,11 +28178,13 @@ define("ember-runtime/ext/function",
@method observes
@for Function
*/
- FunctionPrototype.observes = function() {
- var addWatchedProperty = function (obs) { watched.push(obs); };
+ FunctionPrototype.observes = function () {
var watched = [];
+ var addWatchedProperty = function (obs) {
+ watched.push(obs);
+ };
- for (var i=0; i= 0) return;
- if (typeof obj.hasOwnProperty === 'function' && !obj.hasOwnProperty(key)) return;
+ if (key.substring(0, 2) === '__') {
+ return;
+ }
+
+ if (key === '_super') {
+ return;
+ }
+
+ if (EnumerableUtils.indexOf(array, key) >= 0) {
+ return;
+ }
+
+ if (typeof obj.hasOwnProperty === 'function' && !obj.hasOwnProperty(key)) {
+ return;
+ }
array.push(key);
};
keys = function keys(obj) {
- var ret = [], key;
+ var ret = [];
+ var key;
+
for (key in obj) {
pushPropertyName(obj, ret, key);
}
@@ -27994,6 +28819,24 @@ define("ember-runtime/mixins/array",
var hasListeners = __dependency10__.hasListeners;
var isWatching = __dependency11__.isWatching;
+ function arrayObserversHelper(obj, target, opts, operation, notify) {
+ var willChange = (opts && opts.willChange) || 'arrayWillChange';
+ var didChange = (opts && opts.didChange) || 'arrayDidChange';
+ var hasObservers = get(obj, 'hasArrayObservers');
+
+ if (hasObservers === notify) {
+ propertyWillChange(obj, 'hasArrayObservers');
+ }
+
+ operation(obj, '@array:before', target, willChange);
+ operation(obj, '@array:change', target, didChange);
+
+ if (hasObservers === notify) {
+ propertyDidChange(obj, 'hasArrayObservers');
+ }
+ return obj;
+ }
+
// ..........................................................
// ARRAY
//
@@ -28066,7 +28909,7 @@ define("ember-runtime/mixins/array",
@return {*} item at index or undefined
*/
objectAt: function(idx) {
- if ((idx < 0) || (idx >= get(this, 'length'))) return undefined;
+ if (idx < 0 || idx >= get(this, 'length')) return undefined;
return get(this, idx);
},
@@ -28095,7 +28938,7 @@ define("ember-runtime/mixins/array",
/**
This is the handler for the special array content property. If you get
- this property, it will return this. If you set this property it a new
+ this property, it will return this. If you set this property to a new
array, it will replace the current content.
This property overrides the default property defined in `Ember.Enumerable`.
@@ -28105,7 +28948,7 @@ define("ember-runtime/mixins/array",
*/
'[]': computed(function(key, value) {
if (value !== undefined) this.replace(0, get(this, 'length'), value) ;
- return this ;
+ return this;
}),
firstObject: computed(function() {
@@ -28248,16 +29091,9 @@ define("ember-runtime/mixins/array",
`willChange` and `didChange` option.
@return {Ember.Array} receiver
*/
- addArrayObserver: function(target, opts) {
- var willChange = (opts && opts.willChange) || 'arrayWillChange',
- didChange = (opts && opts.didChange) || 'arrayDidChange';
- var hasObservers = get(this, 'hasArrayObservers');
- if (!hasObservers) propertyWillChange(this, 'hasArrayObservers');
- addListener(this, '@array:before', target, willChange);
- addListener(this, '@array:change', target, didChange);
- if (!hasObservers) propertyDidChange(this, 'hasArrayObservers');
- return this;
+ addArrayObserver: function(target, opts) {
+ return arrayObserversHelper(this, target, opts, addListener, false);
},
/**
@@ -28272,15 +29108,7 @@ define("ember-runtime/mixins/array",
@return {Ember.Array} receiver
*/
removeArrayObserver: function(target, opts) {
- var willChange = (opts && opts.willChange) || 'arrayWillChange',
- didChange = (opts && opts.didChange) || 'arrayDidChange';
-
- var hasObservers = get(this, 'hasArrayObservers');
- if (hasObservers) propertyWillChange(this, 'hasArrayObservers');
- removeListener(this, '@array:before', target, willChange);
- removeListener(this, '@array:change', target, didChange);
- if (hasObservers) propertyDidChange(this, 'hasArrayObservers');
- return this;
+ return arrayObserversHelper(this, target, opts, removeListener, true);
},
/**
@@ -28652,44 +29480,15 @@ define("ember-runtime/mixins/copyable",
});
});
define("ember-runtime/mixins/deferred",
- ["ember-metal/core","ember-metal/property_get","ember-metal/mixin","ember-metal/computed","ember-metal/run_loop","ember-runtime/ext/rsvp","exports"],
- function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __dependency5__, __dependency6__, __exports__) {
+ ["ember-metal/core","ember-metal/property_get","ember-metal/mixin","ember-metal/computed","ember-runtime/ext/rsvp","exports"],
+ function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __dependency5__, __exports__) {
"use strict";
var Ember = __dependency1__["default"];
// Ember.FEATURES, Ember.Test
var get = __dependency2__.get;
var Mixin = __dependency3__.Mixin;
var computed = __dependency4__.computed;
- var run = __dependency5__["default"];
- var RSVP = __dependency6__["default"];
-
- var asyncStart = function() {
- if (Ember.Test && Ember.Test.adapter) {
- Ember.Test.adapter.asyncStart();
- }
- };
-
- var asyncEnd = function() {
- if (Ember.Test && Ember.Test.adapter) {
- Ember.Test.adapter.asyncEnd();
- }
- };
-
- RSVP.configure('async', function(callback, promise) {
- var async = !run.currentRunLoop;
-
- if (Ember.testing && async) { asyncStart(); }
-
- run.backburner.schedule('actions', function(){
- if (Ember.testing && async) { asyncEnd(); }
- callback(promise);
- });
- });
-
- RSVP.Promise.prototype.fail = function(callback, label){
- Ember.deprecate('RSVP.Promise.fail has been renamed as RSVP.Promise.catch');
- return this['catch'](callback, label);
- };
+ var RSVP = __dependency5__["default"];
/**
@module ember
@@ -28755,6 +29554,8 @@ define("ember-runtime/mixins/deferred",
},
_deferred: computed(function() {
+ Ember.deprecate('Usage of Ember.DeferredMixin or Ember.Deferred is deprecated.', this._suppressDeferredDeprecation);
+
return RSVP.defer('Ember: DeferredMixin - ' + this);
})
});
@@ -29737,7 +30538,7 @@ define("ember-runtime/mixins/enumerable",
/**
Invoke this method when the contents of your enumerable has changed.
- This will notify any observers watching for content changes. If your are
+ This will notify any observers watching for content changes. If you are
implementing an ordered enumerable (such as an array), also pass the
start and end values where the content changed so that it can be used to
notify range observers.
@@ -30675,13 +31476,15 @@ define("ember-runtime/mixins/observable",
with a list of strings or an array:
```javascript
- record.getProperties('firstName', 'lastName', 'zipCode'); // { firstName: 'John', lastName: 'Doe', zipCode: '10011' }
+ record.getProperties('firstName', 'lastName', 'zipCode');
+ // { firstName: 'John', lastName: 'Doe', zipCode: '10011' }
```
is equivalent to:
```javascript
- record.getProperties(['firstName', 'lastName', 'zipCode']); // { firstName: 'John', lastName: 'Doe', zipCode: '10011' }
+ record.getProperties(['firstName', 'lastName', 'zipCode']);
+ // { firstName: 'John', lastName: 'Doe', zipCode: '10011' }
```
@method getProperties
@@ -31038,11 +31841,11 @@ define("ember-runtime/mixins/observable",
});
});
define("ember-runtime/mixins/promise_proxy",
- ["ember-metal/property_get","ember-metal/property_set","ember-metal/computed","ember-metal/mixin","ember-metal/error","exports"],
+ ["ember-metal/property_get","ember-metal/set_properties","ember-metal/computed","ember-metal/mixin","ember-metal/error","exports"],
function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __dependency5__, __exports__) {
"use strict";
var get = __dependency1__.get;
- var set = __dependency2__.set;
+ var setProperties = __dependency2__["default"];
var computed = __dependency3__.computed;
var Mixin = __dependency4__.Mixin;
var EmberError = __dependency5__["default"];
@@ -31056,16 +31859,22 @@ define("ember-runtime/mixins/promise_proxy",
*/
function tap(proxy, promise) {
- set(proxy, 'isFulfilled', false);
- set(proxy, 'isRejected', false);
+ setProperties(proxy, {
+ isFulfilled: false,
+ isRejected: false
+ });
return promise.then(function(value) {
- set(proxy, 'isFulfilled', true);
- set(proxy, 'content', value);
+ setProperties(proxy, {
+ content: value,
+ isFulfilled: true
+ });
return value;
}, function(reason) {
- set(proxy, 'isRejected', true);
- set(proxy, 'reason', reason);
+ setProperties(proxy, {
+ reason: reason,
+ isRejected: true
+ });
throw reason;
}, "Ember: PromiseProxy");
}
@@ -31245,6 +32054,104 @@ define("ember-runtime/mixins/promise_proxy",
};
}
});
+define("ember-runtime/mixins/proxy",
+ ["ember-metal/core","ember-metal/property_get","ember-metal/property_set","ember-metal/utils","ember-metal/observer","ember-metal/property_events","ember-metal/computed","ember-metal/properties","ember-metal/mixin","ember-runtime/system/string","ember-runtime/system/object","exports"],
+ function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __dependency5__, __dependency6__, __dependency7__, __dependency8__, __dependency9__, __dependency10__, __dependency11__, __exports__) {
+ "use strict";
+ /**
+ @module ember
+ @submodule ember-runtime
+ */
+
+ var Ember = __dependency1__["default"];
+ // Ember.assert
+ var get = __dependency2__.get;
+ var set = __dependency3__.set;
+ var meta = __dependency4__.meta;
+ var addObserver = __dependency5__.addObserver;
+ var removeObserver = __dependency5__.removeObserver;
+ var addBeforeObserver = __dependency5__.addBeforeObserver;
+ var removeBeforeObserver = __dependency5__.removeBeforeObserver;
+ var propertyWillChange = __dependency6__.propertyWillChange;
+ var propertyDidChange = __dependency6__.propertyDidChange;
+ var computed = __dependency7__.computed;
+ var defineProperty = __dependency8__.defineProperty;
+ var Mixin = __dependency9__.Mixin;
+ var observer = __dependency9__.observer;
+ var fmt = __dependency10__.fmt;
+ var EmberObject = __dependency11__["default"];
+
+ function contentPropertyWillChange(content, contentKey) {
+ var key = contentKey.slice(8); // remove "content."
+ if (key in this) { return; } // if shadowed in proxy
+ propertyWillChange(this, key);
+ }
+
+ function contentPropertyDidChange(content, contentKey) {
+ var key = contentKey.slice(8); // remove "content."
+ if (key in this) { return; } // if shadowed in proxy
+ propertyDidChange(this, key);
+ }
+
+ /**
+ `Ember.ProxyMixin` forwards all properties not defined by the proxy itself
+ to a proxied `content` object. See Ember.ObjectProxy for more details.
+
+ @class ProxyMixin
+ @namespace Ember
+ */
+ __exports__["default"] = Mixin.create({
+ /**
+ The object whose properties will be forwarded.
+
+ @property content
+ @type Ember.Object
+ @default null
+ */
+ content: null,
+ _contentDidChange: observer('content', function() {
+ Ember.assert("Can't set Proxy's content to itself", get(this, 'content') !== this);
+ }),
+
+ isTruthy: computed.bool('content'),
+
+ _debugContainerKey: null,
+
+ willWatchProperty: function (key) {
+ var contentKey = 'content.' + key;
+ addBeforeObserver(this, contentKey, null, contentPropertyWillChange);
+ addObserver(this, contentKey, null, contentPropertyDidChange);
+ },
+
+ didUnwatchProperty: function (key) {
+ var contentKey = 'content.' + key;
+ removeBeforeObserver(this, contentKey, null, contentPropertyWillChange);
+ removeObserver(this, contentKey, null, contentPropertyDidChange);
+ },
+
+ unknownProperty: function (key) {
+ var content = get(this, 'content');
+ if (content) {
+ return get(content, key);
+ }
+ },
+
+ setUnknownProperty: function (key, value) {
+ var m = meta(this);
+ if (m.proto === this) {
+ // if marked as prototype then just defineProperty
+ // rather than delegate
+ defineProperty(this, key, null, value);
+ return value;
+ }
+
+ var content = get(this, 'content');
+ Ember.assert(fmt("Cannot delegate set('%@', %@) to the 'content' property of object proxy %@: its 'content' is undefined.", [key, value, this]), content);
+ return set(content, key, value);
+ }
+
+ });
+ });
define("ember-runtime/mixins/sortable",
["ember-metal/core","ember-metal/property_get","ember-metal/property_set","ember-metal/enumerable_utils","ember-metal/mixin","ember-runtime/mixins/mutable_enumerable","ember-runtime/compare","ember-metal/observer","ember-metal/computed","exports"],
function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __dependency5__, __dependency6__, __dependency7__, __dependency8__, __dependency9__, __exports__) {
@@ -31853,7 +32760,28 @@ define("ember-runtime/system/array_proxy",
}
},
+ /**
+ Override to implement content array `willChange` observer.
+
+ @method contentArrayWillChange
+
+ @param {Ember.Array} contentArray the content array
+ @param {Number} start starting index of the change
+ @param {Number} removeCount count of items removed
+ @param {Number} addCount count of items added
+
+ */
contentArrayWillChange: K,
+ /**
+ Override to implement content array `didChange` observer.
+
+ @method contentArrayDidChange
+
+ @param {Ember.Array} contentArray the content array
+ @param {Number} start starting index of the change
+ @param {Number} removeCount count of items removed
+ @param {Number} addCount count of items added
+ */
contentArrayDidChange: K,
/**
@@ -32098,7 +33026,6 @@ define("ember-runtime/system/core_object",
var generateGuid = __dependency4__.generateGuid;
var GUID_KEY = __dependency4__.GUID_KEY;
var meta = __dependency4__.meta;
- var META_KEY = __dependency4__.META_KEY;
var makeArray = __dependency4__.makeArray;
var rewatch = __dependency6__.rewatch;
var finishChains = __dependency7__.finishChains;
@@ -32124,6 +33051,7 @@ define("ember-runtime/system/core_object",
var finishPartial = Mixin.finishPartial;
var reopen = Mixin.prototype.reopen;
var MANDATORY_SETTER = Ember.ENV.MANDATORY_SETTER;
+ var hasCachedComputedProperties = false;
var undefinedDescriptor = {
configurable: true,
@@ -32234,7 +33162,12 @@ define("ember-runtime/system/core_object",
}
}
finishPartial(this, m);
- apply(this, this.init, arguments);
+ var length = arguments.length;
+ var args = new Array(length);
+ for (var x = 0; x < length; x++) {
+ args[x] = arguments[x];
+ }
+ apply(this, this.init, args);
m.proto = proto;
finishChains(this);
sendEvent(this, "init");
@@ -32277,7 +33210,12 @@ define("ember-runtime/system/core_object",
CoreObject.PrototypeMixin = Mixin.create({
reopen: function() {
- applyMixin(this, arguments, true);
+ var length = arguments.length;
+ var args = new Array(length);
+ for (var i = 0; i < length; i++) {
+ args[i] = arguments[i];
+ }
+ applyMixin(this, args, true);
return this;
},
@@ -32486,9 +33424,10 @@ define("ember-runtime/system/core_object",
@return {String} string representation
*/
toString: function toString() {
- var hasToStringExtension = typeof this.toStringExtension === 'function',
- extension = hasToStringExtension ? ":" + this.toStringExtension() : '';
+ var hasToStringExtension = typeof this.toStringExtension === 'function';
+ var extension = hasToStringExtension ? ":" + this.toStringExtension() : '';
var ret = '<'+this.constructor.toString()+':'+guidFor(this)+extension+'>';
+
this.toString = makeToString(ret);
return ret;
}
@@ -32628,7 +33567,14 @@ define("ember-runtime/system/core_object",
*/
createWithMixins: function() {
var C = this;
- if (arguments.length>0) { this._initMixins(arguments); }
+ var l= arguments.length;
+ if (l > 0) {
+ var args = new Array(l);
+ for (var i = 0; i < l; i++) {
+ args[i] = arguments[i];
+ }
+ this._initMixins(args);
+ }
return new C();
},
@@ -32671,7 +33617,14 @@ define("ember-runtime/system/core_object",
*/
create: function() {
var C = this;
- if (arguments.length>0) { this._initProperties(arguments); }
+ var l = arguments.length;
+ if (l > 0) {
+ var args = new Array(l);
+ for (var i = 0; i < l; i++) {
+ args[i] = arguments[i];
+ }
+ this._initProperties(args);
+ }
return new C();
},
@@ -32706,7 +33659,16 @@ define("ember-runtime/system/core_object",
*/
reopen: function() {
this.willReopen();
- apply(this.PrototypeMixin, reopen, arguments);
+
+ var l = arguments.length;
+ var args = new Array(l);
+ if (l > 0) {
+ for (var i = 0; i < l; i++) {
+ args[i] = arguments[i];
+ }
+ }
+
+ apply(this.PrototypeMixin, reopen, args);
return this;
},
@@ -32766,7 +33728,15 @@ define("ember-runtime/system/core_object",
@method reopenClass
*/
reopenClass: function() {
- apply(this.ClassMixin, reopen, arguments);
+ var l = arguments.length;
+ var args = new Array(l);
+ if (l > 0) {
+ for (var i = 0; i < l; i++) {
+ args[i] = arguments[i];
+ }
+ }
+
+ apply(this.ClassMixin, reopen, args);
applyMixin(this, arguments, false);
return this;
},
@@ -32812,13 +33782,33 @@ define("ember-runtime/system/core_object",
@param key {String} property name
*/
metaForProperty: function(key) {
- var meta = this.proto()[META_KEY],
- desc = meta && meta.descs[key];
+ var meta = this.proto()['__ember_meta__'];
+ var desc = meta && meta.descs[key];
Ember.assert("metaForProperty() could not find a computed property with key '"+key+"'.", !!desc && desc instanceof ComputedProperty);
return desc._meta || {};
},
+ _computedProperties: Ember.computed(function() {
+ hasCachedComputedProperties = true;
+ var proto = this.proto();
+ var descs = meta(proto).descs;
+ var property;
+ var properties = [];
+
+ for (var name in descs) {
+ property = descs[name];
+
+ if (property instanceof ComputedProperty) {
+ properties.push({
+ name: name,
+ meta: property._meta
+ });
+ }
+ }
+ return properties;
+ }).readOnly(),
+
/**
Iterate over each computed property for the class, passing its name
and any associated metadata (see `metaForProperty`) to the callback.
@@ -32828,17 +33818,15 @@ define("ember-runtime/system/core_object",
@param {Object} binding
*/
eachComputedProperty: function(callback, binding) {
- var proto = this.proto(),
- descs = meta(proto).descs,
- empty = {},
- property;
+ var property, name;
+ var empty = {};
- for (var name in descs) {
- property = descs[name];
+ var properties = get(this, '_computedProperties');
- if (property instanceof ComputedProperty) {
- callback.call(binding || this, name, property._meta || empty);
- }
+ for (var i = 0, length = properties.length; i < length; i++) {
+ property = properties[i];
+ name = property.name;
+ callback.call(binding || this, property.name, property.meta || empty);
}
}
});
@@ -32850,19 +33838,42 @@ define("ember-runtime/system/core_object",
}
CoreObject.ClassMixin = ClassMixin;
+
ClassMixin.apply(CoreObject);
+ CoreObject.reopen({
+ didDefineProperty: function(proto, key, value) {
+ if (hasCachedComputedProperties === false) { return; }
+ if (value instanceof Ember.ComputedProperty) {
+ var cache = Ember.meta(this.constructor).cache;
+
+ if (cache._computedProperties !== undefined) {
+ cache._computedProperties = undefined;
+ }
+ }
+
+ this._super();
+ }
+ });
+
+
__exports__["default"] = CoreObject;
});
define("ember-runtime/system/deferred",
- ["ember-runtime/mixins/deferred","ember-metal/property_get","ember-runtime/system/object","exports"],
- function(__dependency1__, __dependency2__, __dependency3__, __exports__) {
+ ["ember-metal/core","ember-runtime/mixins/deferred","ember-metal/property_get","ember-runtime/system/object","exports"],
+ function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __exports__) {
"use strict";
- var DeferredMixin = __dependency1__["default"];
- var get = __dependency2__.get;
- var EmberObject = __dependency3__["default"];
+ var Ember = __dependency1__["default"];
+ var DeferredMixin = __dependency2__["default"];
+ var get = __dependency3__.get;
+ var EmberObject = __dependency4__["default"];
- var Deferred = EmberObject.extend(DeferredMixin);
+ var Deferred = EmberObject.extend(DeferredMixin, {
+ init: function() {
+ Ember.deprecate('Usage of Ember.Deferred is deprecated.');
+ this._super();
+ }
+ });
Deferred.reopenClass({
promise: function(callback, binding) {
@@ -33303,6 +34314,15 @@ define("ember-runtime/system/namespace",
var STARTS_WITH_UPPERCASE = /^[A-Z]/;
+ function tryIsNamespace(lookup, prop) {
+ try {
+ var obj = lookup[prop];
+ return obj && obj.isNamespace && obj;
+ } catch (e) {
+ // continue
+ }
+ }
+
function findNamespaces() {
var lookup = Ember.lookup, obj, isNamespace;
@@ -33317,14 +34337,8 @@ define("ember-runtime/system/namespace",
// At times we are not allowed to access certain properties for security reasons.
// There are also times where even if we can access them, we are not allowed to access their properties.
- try {
- obj = lookup[prop];
- isNamespace = obj && obj.isNamespace;
- } catch (e) {
- continue;
- }
-
- if (isNamespace) {
+ obj = tryIsNamespace(lookup, prop);
+ if (obj) {
obj[NAME_KEY] = prop;
}
}
@@ -33395,8 +34409,8 @@ define("ember-runtime/system/namespace",
__exports__["default"] = Namespace;
});
define("ember-runtime/system/native_array",
- ["ember-metal/core","ember-metal/property_get","ember-metal/property_set","ember-metal/enumerable_utils","ember-metal/mixin","ember-runtime/mixins/array","ember-runtime/mixins/mutable_array","ember-runtime/mixins/observable","ember-runtime/mixins/copyable","ember-runtime/mixins/freezable","ember-runtime/copy","exports"],
- function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __dependency5__, __dependency6__, __dependency7__, __dependency8__, __dependency9__, __dependency10__, __dependency11__, __exports__) {
+ ["ember-metal/core","ember-metal/property_get","ember-metal/property_set","ember-metal/enumerable_utils","ember-metal/mixin","ember-metal/array","ember-runtime/mixins/array","ember-runtime/mixins/mutable_array","ember-runtime/mixins/observable","ember-runtime/mixins/copyable","ember-runtime/mixins/freezable","ember-runtime/copy","exports"],
+ function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __dependency5__, __dependency6__, __dependency7__, __dependency8__, __dependency9__, __dependency10__, __dependency11__, __dependency12__, __exports__) {
"use strict";
/**
@module ember
@@ -33411,12 +34425,14 @@ define("ember-runtime/system/native_array",
var replace = __dependency4__._replace;
var forEach = __dependency4__.forEach;
var Mixin = __dependency5__.Mixin;
- var EmberArray = __dependency6__["default"];
- var MutableArray = __dependency7__["default"];
- var Observable = __dependency8__["default"];
- var Copyable = __dependency9__["default"];
- var FROZEN_ERROR = __dependency10__.FROZEN_ERROR;
- var copy = __dependency11__["default"];
+ var indexOf = __dependency6__.indexOf;
+ var lastIndexOf = __dependency6__.lastIndexOf;
+ var EmberArray = __dependency7__["default"];
+ var MutableArray = __dependency8__["default"];
+ var Observable = __dependency9__["default"];
+ var Copyable = __dependency10__["default"];
+ var FROZEN_ERROR = __dependency11__.FROZEN_ERROR;
+ var copy = __dependency12__["default"];
// Add Ember.Array to Array.prototype. Remove methods with native
// implementations and supply some more optimized versions of generic methods
@@ -33474,39 +34490,15 @@ define("ember-runtime/system/native_array",
// from member items.
unknownProperty: function(key, value) {
var ret;// = this.reducedProperty(key, value) ;
- if ((value !== undefined) && ret === undefined) {
+ if (value !== undefined && ret === undefined) {
ret = this[key] = value;
}
- return ret ;
+ return ret;
},
- // If browser did not implement indexOf natively, then override with
- // specialized version
- indexOf: function(object, startAt) {
- var idx, len = this.length;
+ indexOf: indexOf,
- if (startAt === undefined) startAt = 0;
- else startAt = (startAt < 0) ? Math.ceil(startAt) : Math.floor(startAt);
- if (startAt < 0) startAt += len;
-
- for(idx=startAt;idx=0;idx--) {
- if (this[idx] === object) return idx ;
- }
- return -1;
- },
+ lastIndexOf: lastIndexOf,
copy: function(deep) {
if (deep) {
@@ -33523,7 +34515,7 @@ define("ember-runtime/system/native_array",
if (Array.prototype[methodName]) ignore.push(methodName);
});
- if (ignore.length>0) {
+ if (ignore.length > 0) {
NativeArray = NativeArray.without.apply(NativeArray, ignore);
}
@@ -33624,41 +34616,11 @@ define("ember-runtime/system/object",
__exports__["default"] = EmberObject;
});
define("ember-runtime/system/object_proxy",
- ["ember-metal/core","ember-metal/property_get","ember-metal/property_set","ember-metal/utils","ember-metal/observer","ember-metal/property_events","ember-metal/computed","ember-metal/properties","ember-metal/mixin","ember-runtime/system/string","ember-runtime/system/object","exports"],
- function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __dependency5__, __dependency6__, __dependency7__, __dependency8__, __dependency9__, __dependency10__, __dependency11__, __exports__) {
+ ["ember-runtime/system/object","ember-runtime/mixins/proxy","exports"],
+ function(__dependency1__, __dependency2__, __exports__) {
"use strict";
- /**
- @module ember
- @submodule ember-runtime
- */
- var Ember = __dependency1__["default"];
- // Ember.assert
- var get = __dependency2__.get;
- var set = __dependency3__.set;
- var meta = __dependency4__.meta;
- var addObserver = __dependency5__.addObserver;
- var removeObserver = __dependency5__.removeObserver;
- var addBeforeObserver = __dependency5__.addBeforeObserver;
- var removeBeforeObserver = __dependency5__.removeBeforeObserver;
- var propertyWillChange = __dependency6__.propertyWillChange;
- var propertyDidChange = __dependency6__.propertyDidChange;
- var computed = __dependency7__.computed;
- var defineProperty = __dependency8__.defineProperty;
- var observer = __dependency9__.observer;
- var fmt = __dependency10__.fmt;
- var EmberObject = __dependency11__["default"];
-
- function contentPropertyWillChange(content, contentKey) {
- var key = contentKey.slice(8); // remove "content."
- if (key in this) { return; } // if shadowed in proxy
- propertyWillChange(this, key);
- }
-
- function contentPropertyDidChange(content, contentKey) {
- var key = contentKey.slice(8); // remove "content."
- if (key in this) { return; } // if shadowed in proxy
- propertyDidChange(this, key);
- }
+ var EmberObject = __dependency1__["default"];
+ var ProxyMixin = __dependency2__["default"];
/**
`Ember.ObjectProxy` forwards all properties not defined by the proxy itself
@@ -33726,60 +34688,10 @@ define("ember-runtime/system/object_proxy",
@class ObjectProxy
@namespace Ember
@extends Ember.Object
+ @extends Ember.ProxyMixin
*/
- var ObjectProxy = EmberObject.extend({
- /**
- The object whose properties will be forwarded.
- @property content
- @type Ember.Object
- @default null
- */
- content: null,
- _contentDidChange: observer('content', function() {
- Ember.assert("Can't set ObjectProxy's content to itself", get(this, 'content') !== this);
- }),
-
- isTruthy: computed.bool('content'),
-
- _debugContainerKey: null,
-
- willWatchProperty: function (key) {
- var contentKey = 'content.' + key;
- addBeforeObserver(this, contentKey, null, contentPropertyWillChange);
- addObserver(this, contentKey, null, contentPropertyDidChange);
- },
-
- didUnwatchProperty: function (key) {
- var contentKey = 'content.' + key;
- removeBeforeObserver(this, contentKey, null, contentPropertyWillChange);
- removeObserver(this, contentKey, null, contentPropertyDidChange);
- },
-
- unknownProperty: function (key) {
- var content = get(this, 'content');
- if (content) {
- return get(content, key);
- }
- },
-
- setUnknownProperty: function (key, value) {
- var m = meta(this);
- if (m.proto === this) {
- // if marked as prototype then just defineProperty
- // rather than delegate
- defineProperty(this, key, null, value);
- return value;
- }
-
- var content = get(this, 'content');
- Ember.assert(fmt("Cannot delegate set('%@', %@) to the 'content' property of object proxy %@: its 'content' is undefined.", [key, value, this]), content);
- return set(content, key, value);
- }
-
- });
-
- __exports__["default"] = ObjectProxy;
+ __exports__["default"] = EmberObject.extend(ProxyMixin);
});
define("ember-runtime/system/set",
["ember-metal/core","ember-metal/property_get","ember-metal/property_set","ember-metal/utils","ember-metal/is_none","ember-runtime/system/string","ember-runtime/system/core_object","ember-runtime/mixins/mutable_enumerable","ember-runtime/mixins/enumerable","ember-runtime/mixins/copyable","ember-runtime/mixins/freezable","ember-metal/error","ember-metal/property_events","ember-metal/mixin","ember-metal/computed","exports"],
@@ -33790,7 +34702,7 @@ define("ember-runtime/system/set",
@submodule ember-runtime
*/
var Ember = __dependency1__["default"];
- // Ember.isNone
+ // Ember.isNone, Ember.A
var get = __dependency2__.get;
var set = __dependency3__.set;
@@ -34142,6 +35054,7 @@ define("ember-runtime/system/set",
//
init: function(items) {
+ Ember.deprecate('Ember.Set is deprecated and will be removed in a future release.');
this._super();
if (items) this.addObjects(items);
},
@@ -34253,8 +35166,8 @@ define("ember-runtime/system/set",
});
});
define("ember-runtime/system/string",
- ["ember-metal/core","ember-metal/utils","exports"],
- function(__dependency1__, __dependency2__, __exports__) {
+ ["ember-metal/core","ember-metal/utils","ember-metal/cache","exports"],
+ function(__dependency1__, __dependency2__, __dependency3__, __exports__) {
"use strict";
/**
@module ember
@@ -34265,8 +35178,47 @@ define("ember-runtime/system/string",
var isArray = __dependency2__.isArray;
var emberInspect = __dependency2__.inspect;
+ var Cache = __dependency3__["default"];
+
var STRING_DASHERIZE_REGEXP = (/[ _]/g);
- var STRING_DASHERIZE_CACHE = {};
+
+ var STRING_DASHERIZE_CACHE = new Cache(1000, function(key) {
+ return decamelize(key).replace(STRING_DASHERIZE_REGEXP, '-');
+ });
+
+ var CAMELIZE_CACHE = new Cache(1000, function(key) {
+ return key.replace(STRING_CAMELIZE_REGEXP, function(match, separator, chr) {
+ return chr ? chr.toUpperCase() : '';
+ }).replace(/^([A-Z])/, function(match, separator, chr) {
+ return match.toLowerCase();
+ });
+ });
+
+ var CLASSIFY_CACHE = new Cache(1000, function(str) {
+ var parts = str.split("."),
+ out = [];
+
+ for (var i=0, l=parts.length; iContent' + childTagName + '>');
+ return el.firstChild instanceof ChildConstructor;
+ };
+ }
- var innerHTMLTags = {};
- var canSetInnerHTML = function(tagName) {
- if (innerHTMLTags[tagName] !== undefined) {
- return innerHTMLTags[tagName];
- }
-
- var canSet = true;
+ var innerHTMLTags = {
// IE 8 and earlier don't allow us to do innerHTML on select
- if (tagName.toLowerCase() === 'select') {
+ select: function() {
var el = document.createElement('select');
setInnerHTMLWithoutFix(el, '');
- canSet = el.options.length === 1;
+ return el.options.length === 1;
+ },
+
+ // IE 9 and earlier don't allow us to set innerHTML on col, colgroup, frameset,
+ // html, style, table, tbody, tfoot, thead, title, tr.
+ col: setInnerHTMLTestFactory('col', 'span', window.HTMLSpanElement),
+ colgroup: setInnerHTMLTestFactory('colgroup', 'col', window.HTMLTableColElement),
+ frameset: setInnerHTMLTestFactory('frameset', 'frame', window.HTMLFrameElement),
+ table: setInnerHTMLTestFactory('table', 'tbody', window.HTMLTableSectionElement),
+ tbody: setInnerHTMLTestFactory('tbody', 'tr', window.HTMLTableRowElement),
+ tfoot: setInnerHTMLTestFactory('tfoot', 'tr', window.HTMLTableRowElement),
+ thead: setInnerHTMLTestFactory('thead', 'tr', window.HTMLTableRowElement),
+ tr: setInnerHTMLTestFactory('tr', 'td', window.HTMLTableCellElement)
+ };
+
+ var canSetInnerHTML = function(tagName) {
+ tagName = tagName.toLowerCase();
+ var canSet = innerHTMLTags[tagName];
+
+ if (typeof canSet === 'function') {
+ canSet = innerHTMLTags[tagName] = canSet();
}
- innerHTMLTags[tagName] = canSet;
-
- return canSet;
+ return canSet === undefined ? true : canSet;
};
function setInnerHTML(element, html) {
@@ -37398,7 +38398,7 @@ define("ember-views/system/utils",
endTag = ''+tagName+'>';
var wrapper = document.createElement('div');
- setInnerHTMLWithoutFix(wrapper, startTag + html + endTag);
+ jQuery(startTag + html + endTag).appendTo(wrapper);
element = wrapper.firstChild;
while (element.tagName !== tagName) {
element = element.nextSibling;
@@ -38367,6 +39367,13 @@ define("ember-views/views/container_view",
var ContainerView = View.extend(MutableArray, {
_states: states,
+ willWatchProperty: function(prop){
+ Ember.deprecate(
+ "ContainerViews should not be observed as arrays. This behavior will change in future implementations of ContainerView.",
+ !prop.match(/\[]/) && prop.indexOf('@') !== 0
+ );
+ },
+
init: function() {
this._super();
@@ -38426,7 +39433,7 @@ define("ember-views/views/container_view",
length: computed(function () {
return this._childViews.length;
- }).volatile(),
+ })["volatile"](),
/**
Instructs each child view to render to the passed render buffer.
@@ -39193,6 +40200,8 @@ define("ember-views/views/states/pre_render",
["ember-views/views/states/default","ember-metal/platform","ember-metal/merge","exports"],
function(__dependency1__, __dependency2__, __dependency3__, __exports__) {
"use strict";
+ /* global Node */
+
var _default = __dependency1__["default"];
var create = __dependency2__.create;
var merge = __dependency3__["default"];
@@ -39203,6 +40212,23 @@ define("ember-views/views/states/pre_render",
*/
var preRender = create(_default);
+ var containsElement;
+ if (typeof Node === 'object') {
+ containsElement = Node.prototype.contains;
+
+ if (!containsElement && Node.prototype.compareDocumentPosition) {
+ // polyfill for older Firefox.
+ // http://compatibility.shwups-cms.ch/en/polyfills/?&id=52
+ containsElement = function(node){
+ return !!(this.compareDocumentPosition(node) & 16);
+ };
+ }
+ } else {
+ containsElement = function(element) {
+ return this.contains(element);
+ };
+ }
+
merge(preRender, {
// a view leaves the preRender state once its element has been
// created (createElement).
@@ -39216,7 +40242,7 @@ define("ember-views/views/states/pre_render",
// We transition to `inDOM` if the element exists in the DOM
var element = view.get('element');
- if (document.body.contains(element)) {
+ if (containsElement.call(document.body, element)) {
viewCollection.transitionTo('inDOM', false);
viewCollection.trigger('didInsertElement');
}
@@ -39240,8 +40266,8 @@ define("ember-views/views/states/pre_render",
__exports__["default"] = preRender;
});
define("ember-views/views/view",
- ["ember-metal/core","ember-runtime/mixins/evented","ember-runtime/system/object","ember-metal/error","ember-metal/property_get","ember-metal/property_set","ember-metal/set_properties","ember-metal/run_loop","ember-metal/observer","ember-metal/properties","ember-metal/utils","ember-metal/computed","ember-metal/mixin","ember-metal/is_none","container/container","ember-runtime/system/native_array","ember-runtime/system/string","ember-metal/enumerable_utils","ember-runtime/copy","ember-metal/binding","ember-metal/property_events","ember-views/system/jquery","ember-views/system/ext","ember-views/views/core_view","ember-views/views/view_collection","exports"],
- function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __dependency5__, __dependency6__, __dependency7__, __dependency8__, __dependency9__, __dependency10__, __dependency11__, __dependency12__, __dependency13__, __dependency14__, __dependency15__, __dependency16__, __dependency17__, __dependency18__, __dependency19__, __dependency20__, __dependency21__, __dependency22__, __dependency23__, __dependency24__, __dependency25__, __exports__) {
+ ["ember-metal/core","ember-runtime/mixins/evented","ember-runtime/system/object","ember-metal/error","ember-metal/property_get","ember-metal/property_set","ember-metal/set_properties","ember-metal/run_loop","ember-metal/observer","ember-metal/properties","ember-metal/utils","ember-metal/computed","ember-metal/mixin","ember-metal/is_none","ember-runtime/system/native_array","ember-runtime/system/string","ember-metal/enumerable_utils","ember-runtime/copy","ember-metal/binding","ember-metal/property_events","ember-views/system/jquery","ember-views/system/ext","ember-views/views/core_view","ember-views/views/view_collection","exports"],
+ function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __dependency5__, __dependency6__, __dependency7__, __dependency8__, __dependency9__, __dependency10__, __dependency11__, __dependency12__, __dependency13__, __dependency14__, __dependency15__, __dependency16__, __dependency17__, __dependency18__, __dependency19__, __dependency20__, __dependency21__, __dependency22__, __dependency23__, __dependency24__, __exports__) {
"use strict";
// Ember.assert, Ember.deprecate, Ember.warn, Ember.TEMPLATES,
// Ember.K, jQuery, Ember.lookup,
@@ -39270,28 +40296,27 @@ define("ember-views/views/view",
var isArray = __dependency11__.isArray;
var isNone = __dependency14__.isNone;
var Mixin = __dependency13__.Mixin;
- var Container = __dependency15__["default"];
- var emberA = __dependency16__.A;
+ var emberA = __dependency15__.A;
- var dasherize = __dependency17__.dasherize;
+ var dasherize = __dependency16__.dasherize;
// ES6TODO: functions on EnumerableUtils should get their own export
- var forEach = __dependency18__.forEach;
- var addObject = __dependency18__.addObject;
- var removeObject = __dependency18__.removeObject;
+ var forEach = __dependency17__.forEach;
+ var addObject = __dependency17__.addObject;
+ var removeObject = __dependency17__.removeObject;
var beforeObserver = __dependency13__.beforeObserver;
- var copy = __dependency19__["default"];
- var isGlobalPath = __dependency20__.isGlobalPath;
+ var copy = __dependency18__["default"];
+ var isGlobalPath = __dependency19__.isGlobalPath;
- var propertyWillChange = __dependency21__.propertyWillChange;
- var propertyDidChange = __dependency21__.propertyDidChange;
+ var propertyWillChange = __dependency20__.propertyWillChange;
+ var propertyDidChange = __dependency20__.propertyDidChange;
- var jQuery = __dependency22__["default"];
+ var jQuery = __dependency21__["default"];
// for the side effect of extending Ember.run.queues
- var CoreView = __dependency24__["default"];
- var ViewCollection = __dependency25__["default"];
+ var CoreView = __dependency23__["default"];
+ var ViewCollection = __dependency24__["default"];
/**
@module ember
@@ -39324,12 +40349,6 @@ define("ember-views/views/view",
});
ret.replace = function (idx, removedCount, addedViews) {
- if (!ContainerView) { ContainerView = requireModule('ember-views/views/container_view')['default']; } // ES6TODO: stupid circular dep
-
- if (view instanceof ContainerView) {
- Ember.deprecate("Manipulating an Ember.ContainerView through its childViews property is deprecated. Please use the ContainerView instance itself as an Ember.MutableArray.");
- return view.replace(idx, removedCount, addedViews);
- }
throw new EmberError("childViews is immutable");
};
@@ -40055,9 +41074,13 @@ define("ember-views/views/view",
if (!name) { return; }
Ember.assert("templateNames are not allowed to contain periods: "+name, name.indexOf('.') === -1);
- // the defaultContainer is deprecated
- var container = this.container || (Container && Container.defaultContainer);
- return container && container.lookup('template:' + name);
+ if (!this.container) {
+ throw new EmberError('Container was not found when looking up a views template. ' +
+ 'This is most likely due to manually instantiating an Ember.View. ' +
+ 'See: http://git.io/EKPpnA');
+ }
+
+ return this.container.lookup('template:' + name);
},
/**
@@ -40079,7 +41102,7 @@ define("ember-views/views/view",
} else {
return get(this, '_context');
}
- }).volatile(),
+ })["volatile"](),
/**
Private copy of the view's template context. This can be set directly
@@ -40740,10 +41763,10 @@ define("ember-views/views/view",
},
/**
- Creates a DOM representation of the view and all of its
- child views by recursively calling the `render()` method.
+ Creates a DOM representation of the view and all of its child views by
+ recursively calling the `render()` method.
- After the element has been created, `didInsertElement` will
+ After the element has been inserted into the DOM, `didInsertElement` will
be called on this view and all of its child views.
@method createElement
@@ -40869,6 +41892,9 @@ define("ember-views/views/view",
this function to do any teardown that requires an element, like removing
event listeners.
+ Please note: any property changes made during this event will have no
+ effect on object observers.
+
@event willDestroyElement
*/
willDestroyElement: Ember.K,
@@ -41633,7 +42659,12 @@ define("ember-views/views/view",
if (isNone(value) || value === false) {
// `null`, `undefined` or `false` should remove attribute
elem.removeAttr(name);
- elem.prop(name, '');
+ // In IE8 `prop` couldn't remove attribute when name is `required`.
+ if (name === 'required') {
+ elem.removeProp(name);
+ } else {
+ elem.prop(name, '');
+ }
} else if (value !== elem.prop(name)) {
// value should always be properties
elem.prop(name, value);
@@ -41717,6 +42748,7 @@ define("ember",
["ember-metal","ember-runtime","ember-handlebars","ember-views","ember-routing","ember-routing-handlebars","ember-application","ember-extension-support"],
function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __dependency5__, __dependency6__, __dependency7__, __dependency8__) {
"use strict";
+ /* global navigator */
// require the main entry points for each of these packages
// this is so that the global exports occur properly
@@ -41732,38 +42764,7 @@ define("ember",
@module ember
*/
- function throwWithMessage(msg) {
- return function() {
- throw new Ember.Error(msg);
- };
- }
-
- function generateRemovedClass(className) {
- var msg = " has been moved into a plugin: https://github.com/emberjs/ember-states";
-
- return {
- extend: throwWithMessage(className + msg),
- create: throwWithMessage(className + msg)
- };
- }
-
- Ember.StateManager = generateRemovedClass("Ember.StateManager");
-
- /**
- This was exported to ember-states plugin for v 1.0.0 release. See: https://github.com/emberjs/ember-states
-
- @class StateManager
- @namespace Ember
- */
-
- Ember.State = generateRemovedClass("Ember.State");
-
- /**
- This was exported to ember-states plugin for v 1.0.0 release. See: https://github.com/emberjs/ember-states
-
- @class State
- @namespace Ember
- */
+ Ember.deprecate('Usage of Ember is deprecated for Internet Explorer 6 and 7, support will be removed in the next major version.', !navigator.userAgent.match(/MSIE [67]/));
});
define("metamorph",
[],
@@ -42247,9 +43248,11 @@ define("metamorph",
});
define("route-recognizer",
- ["exports"],
- function(__exports__) {
+ ["route-recognizer/dsl","exports"],
+ function(__dependency1__, __exports__) {
"use strict";
+ var map = __dependency1__["default"];
+
var specials = [
'/', '.', '*', '+', '?', '|',
'(', ')', '[', ']', '{', '}', '\\'
@@ -42675,7 +43678,7 @@ define("route-recognizer",
if (value == null) {
continue;
}
- var pair = key;
+ var pair = encodeURIComponent(key);
if (isArray(value)) {
for (var j = 0, l = value.length; j < l; j++) {
var arrayPair = key + '[]' + '=' + encodeURIComponent(value[j]);
@@ -42716,7 +43719,7 @@ define("route-recognizer",
if (isArray) {
queryParams[key].push(value);
} else {
- queryParams[key] = decodeURIComponent(value);
+ queryParams[key] = value;
}
}
return queryParams;
@@ -42773,8 +43776,14 @@ define("route-recognizer",
}
};
- __exports__["default"] = RouteRecognizer;
+ RouteRecognizer.prototype.map = map;
+ __exports__["default"] = RouteRecognizer;
+ });
+define("route-recognizer/dsl",
+ ["exports"],
+ function(__exports__) {
+ "use strict";
function Target(path, matcher, delegate) {
this.path = path;
this.matcher = matcher;
@@ -42864,7 +43873,7 @@ define("route-recognizer",
}
}
- RouteRecognizer.prototype.map = function(callback, addRouteCallback) {
+ __exports__["default"] = function(callback, addRouteCallback) {
var matcher = new Matcher();
callback(generateMatch("", matcher, this.delegate));
@@ -42873,9 +43882,16 @@ define("route-recognizer",
if (addRouteCallback) { addRouteCallback(this, route); }
else { this.add(route); }
}, this);
- };
+ }
});
+define("router",
+ ["./router/router","exports"],
+ function(__dependency1__, __exports__) {
+ "use strict";
+ var Router = __dependency1__["default"];
+ __exports__["default"] = Router;
+ });
define("router/handler-info",
["./utils","rsvp/promise","exports"],
function(__dependency1__, __dependency2__, __exports__) {
@@ -42884,6 +43900,7 @@ define("router/handler-info",
var merge = __dependency1__.merge;
var serialize = __dependency1__.serialize;
var promiseLabel = __dependency1__.promiseLabel;
+ var applyHook = __dependency1__.applyHook;
var Promise = __dependency2__["default"];
function HandlerInfo(_props) {
@@ -42970,14 +43987,13 @@ define("router/handler-info",
}
args.push(payload);
- var handler = this.handler;
- var result = handler[hookName] && handler[hookName].apply(handler, args);
+ var result = applyHook(this.handler, hookName, args);
if (result && result.isTransition) {
result = null;
}
- return Promise.resolve(result, null, this.promiseLabel("Resolve value returned from one of the model hooks"));
+ return Promise.resolve(result, this.promiseLabel("Resolve value returned from one of the model hooks"));
},
// overridden by subclasses
@@ -43174,6 +44190,7 @@ define("router/handler-info/unresolved-handler-info-by-param",
function(__dependency1__, __dependency2__, __exports__) {
"use strict";
var HandlerInfo = __dependency1__["default"];
+ var resolveHook = __dependency2__.resolveHook;
var merge = __dependency2__.merge;
var subclass = __dependency2__.subclass;
var promiseLabel = __dependency2__.promiseLabel;
@@ -43192,8 +44209,9 @@ define("router/handler-info/unresolved-handler-info-by-param",
fullParams.queryParams = payload.queryParams;
}
- var hookName = typeof this.handler.deserialize === 'function' ?
- 'deserialize' : 'model';
+ var handler = this.handler;
+ var hookName = resolveHook(handler, 'deserialize') ||
+ resolveHook(handler, 'model');
return this.runSharedModelHook(payload, hookName, [fullParams]);
}
@@ -43216,6 +44234,7 @@ define("router/router",
var extractQueryParams = __dependency3__.extractQueryParams;
var getChangelist = __dependency3__.getChangelist;
var promiseLabel = __dependency3__.promiseLabel;
+ var callHook = __dependency3__.callHook;
var TransitionState = __dependency4__["default"];
var logAbort = __dependency5__.logAbort;
var Transition = __dependency5__.Transition;
@@ -43359,11 +44378,9 @@ define("router/router",
*/
reset: function() {
if (this.state) {
- forEach(this.state.handlerInfos, function(handlerInfo) {
+ forEach(this.state.handlerInfos.slice().reverse(), function(handlerInfo) {
var handler = handlerInfo.handler;
- if (handler.exit) {
- handler.exit();
- }
+ callHook(handler, 'exit');
});
}
@@ -43427,7 +44444,7 @@ define("router/router",
},
intermediateTransitionTo: function(name) {
- doTransition(this, arguments, true);
+ return doTransition(this, arguments, true);
},
refresh: function(pivotHandler) {
@@ -43647,8 +44664,9 @@ define("router/router",
forEach(partition.exited, function(handlerInfo) {
var handler = handlerInfo.handler;
delete handler.context;
- if (handler.reset) { handler.reset(true, transition); }
- if (handler.exit) { handler.exit(transition); }
+
+ callHook(handler, 'reset', true, transition);
+ callHook(handler, 'exit', transition);
});
var oldState = router.oldState = router.state;
@@ -43658,7 +44676,7 @@ define("router/router",
try {
forEach(partition.reset, function(handlerInfo) {
var handler = handlerInfo.handler;
- if (handler.reset) { handler.reset(false, transition); }
+ callHook(handler, 'reset', false, transition);
});
forEach(partition.updatedContext, function(handlerInfo) {
@@ -43689,15 +44707,15 @@ define("router/router",
var handler = handlerInfo.handler,
context = handlerInfo.context;
- if (enter && handler.enter) { handler.enter(transition); }
+ callHook(handler, 'enter', transition);
if (transition && transition.isAborted) {
throw new TransitionAborted();
}
handler.context = context;
- if (handler.contextDidChange) { handler.contextDidChange(); }
+ callHook(handler, 'contextDidChange');
- if (handler.setup) { handler.setup(context, transition); }
+ callHook(handler, 'setup', context, transition);
if (transition && transition.isAborted) {
throw new TransitionAborted();
}
@@ -43760,7 +44778,7 @@ define("router/router",
unchanged: []
};
- var handlerChanged, contextChanged, i, l;
+ var handlerChanged, contextChanged = false, i, l;
for (i=0, l=newHandlers.length; i 0.5) {
+ throw new Error();
+ }
+ return new Author();
+ }
+
+ try {
+ return findAuthor(); // succeed or fail
+ } catch(error) {
+ return findOtherAuther();
+ } finally {
+ // always runs
+ // doesn't affect the return value
+ }
+ ```
+
+ Asynchronous example:
+
+ ```js
+ findAuthor().catch(function(reason){
+ return findOtherAuther();
+ }).finally(function(){
+ // author was either found, or not
+ });
+ ```
+
+ @method finally
+ @param {Function} callback
+ @param {String} label optional string for labeling the promise.
+ Useful for tooling.
+ @return {Promise}
+ */
+ 'finally': function(callback, label) {
+ var constructor = this.constructor;
+
+ return this.then(function(value) {
+ return constructor.resolve(callback()).then(function(){
+ return value;
+ });
+ }, function(reason) {
+ return constructor.resolve(callback()).then(function(){
+ throw reason;
+ });
+ }, label);
+ }
};
-});
-define('rsvp/promise/all', [
- '../enumerator',
- 'exports'
-], function (__dependency1__, __exports__) {
- 'use strict';
- var Enumerator = __dependency1__['default'];
+ });
+define("rsvp/promise/all",
+ ["../enumerator","exports"],
+ function(__dependency1__, __exports__) {
+ "use strict";
+ var Enumerator = __dependency1__["default"];
+
/**
`RSVP.Promise.all` accepts an array of promises, and returns a new promise which
is fulfilled with an array of fulfillment values for the passed promises, or
@@ -46536,100 +48276,22 @@ define('rsvp/promise/all', [
fulfilled, or rejected if any of them become rejected.
@static
*/
- __exports__['default'] = function all(entries, label) {
- return new Enumerator(this, entries, true, label).promise;
- };
-});
-define('rsvp/promise/cast', [
- './resolve',
- 'exports'
-], function (__dependency1__, __exports__) {
- 'use strict';
- var resolve = __dependency1__['default'];
- /**
- @deprecated
-
- `RSVP.Promise.cast` coerces its argument to a promise, or returns the
- argument if it is already a promise which shares a constructor with the caster.
-
- Example:
-
- ```javascript
- var promise = RSVP.Promise.resolve(1);
- var casted = RSVP.Promise.cast(promise);
-
- console.log(promise === casted); // true
- ```
-
- In the case of a promise whose constructor does not match, it is assimilated.
- The resulting promise will fulfill or reject based on the outcome of the
- promise being casted.
-
- Example:
-
- ```javascript
- var thennable = $.getJSON('/api/foo');
- var casted = RSVP.Promise.cast(thennable);
-
- console.log(thennable === casted); // false
- console.log(casted instanceof RSVP.Promise) // true
-
- casted.then(function(data) {
- // data is the value getJSON fulfills with
- });
- ```
-
- In the case of a non-promise, a promise which will fulfill with that value is
- returned.
-
- Example:
-
- ```javascript
- var value = 1; // could be a number, boolean, string, undefined...
- var casted = RSVP.Promise.cast(value);
-
- console.log(value === casted); // false
- console.log(casted instanceof RSVP.Promise) // true
-
- casted.then(function(val) {
- val === value // => true
- });
- ```
-
- `RSVP.Promise.cast` is similar to `RSVP.Promise.resolve`, but `RSVP.Promise.cast` differs in the
- following ways:
-
- * `RSVP.Promise.cast` serves as a memory-efficient way of getting a promise, when you
- have something that could either be a promise or a value. RSVP.resolve
- will have the same effect but will create a new promise wrapper if the
- argument is a promise.
- * `RSVP.Promise.cast` is a way of casting incoming thenables or promise subclasses to
- promises of the exact class specified, so that the resulting object's `then` is
- ensured to have the behavior of the constructor you are calling cast on (i.e., RSVP.Promise).
-
- @method cast
- @static
- @param {Object} object to be casted
- @param {String} label optional string for labeling the promise.
- Useful for tooling.
- @return {Promise} promise
- */
- __exports__['default'] = resolve;
-});
-define('rsvp/promise/race', [
- '../utils',
- '../-internal',
- 'exports'
-], function (__dependency1__, __dependency2__, __exports__) {
- 'use strict';
+ __exports__["default"] = function all(entries, label) {
+ return new Enumerator(this, entries, true /* abort on reject */, label).promise;
+ }
+ });
+define("rsvp/promise/race",
+ ["../utils","../-internal","exports"],
+ function(__dependency1__, __dependency2__, __exports__) {
+ "use strict";
var isArray = __dependency1__.isArray;
- var isFunction = __dependency1__.isFunction;
- var isMaybeThenable = __dependency1__.isMaybeThenable;
+
var noop = __dependency2__.noop;
var resolve = __dependency2__.resolve;
var reject = __dependency2__.reject;
var subscribe = __dependency2__.subscribe;
var PENDING = __dependency2__.PENDING;
+
/**
`RSVP.Promise.race` returns a new promise which is settled in the same way as the
first passed promise to settle.
@@ -46639,18 +48301,18 @@ define('rsvp/promise/race', [
```javascript
var promise1 = new RSVP.Promise(function(resolve, reject){
setTimeout(function(){
- resolve("promise 1");
+ resolve('promise 1');
}, 200);
});
var promise2 = new RSVP.Promise(function(resolve, reject){
setTimeout(function(){
- resolve("promise 2");
+ resolve('promise 2');
}, 100);
});
RSVP.Promise.race([promise1, promise2]).then(function(result){
- // result === "promise 2" because it was resolved before promise1
+ // result === 'promise 2' because it was resolved before promise1
// was resolved.
});
```
@@ -46664,20 +48326,20 @@ define('rsvp/promise/race', [
```javascript
var promise1 = new RSVP.Promise(function(resolve, reject){
setTimeout(function(){
- resolve("promise 1");
+ resolve('promise 1');
}, 200);
});
var promise2 = new RSVP.Promise(function(resolve, reject){
setTimeout(function(){
- reject(new Error("promise 2"));
+ reject(new Error('promise 2'));
}, 100);
});
RSVP.Promise.race([promise1, promise2]).then(function(result){
// Code here never runs
}, function(reason){
- // reason.message === "promise 2" because promise 2 became rejected before
+ // reason.message === 'promise 2' because promise 2 became rejected before
// promise 1 became fulfilled
});
```
@@ -46696,34 +48358,41 @@ define('rsvp/promise/race', [
@return {Promise} a promise which settles in the same way as the first passed
promise to settle.
*/
- __exports__['default'] = function race(entries, label) {
- /*jshint validthis:true */
- var Constructor = this, entry;
- var promise = new Constructor(noop, label);
- if (!isArray(entries)) {
- reject(promise, new TypeError('You must pass an array to race.'));
- return promise;
- }
- var length = entries.length;
- function onFulfillment(value) {
- resolve(promise, value);
- }
- function onRejection(reason) {
- reject(promise, reason);
- }
- for (var i = 0; promise._state === PENDING && i < length; i++) {
- subscribe(Constructor.resolve(entries[i]), undefined, onFulfillment, onRejection);
- }
+ __exports__["default"] = function race(entries, label) {
+ /*jshint validthis:true */
+ var Constructor = this;
+
+ var promise = new Constructor(noop, label);
+
+ if (!isArray(entries)) {
+ reject(promise, new TypeError('You must pass an array to race.'));
return promise;
- };
-});
-define('rsvp/promise/reject', [
- '../-internal',
- 'exports'
-], function (__dependency1__, __exports__) {
- 'use strict';
+ }
+
+ var length = entries.length;
+
+ function onFulfillment(value) {
+ resolve(promise, value);
+ }
+
+ function onRejection(reason) {
+ reject(promise, reason);
+ }
+
+ for (var i = 0; promise._state === PENDING && i < length; i++) {
+ subscribe(Constructor.resolve(entries[i]), undefined, onFulfillment, onRejection);
+ }
+
+ return promise;
+ }
+ });
+define("rsvp/promise/reject",
+ ["../-internal","exports"],
+ function(__dependency1__, __exports__) {
+ "use strict";
var noop = __dependency1__.noop;
var _reject = __dependency1__.reject;
+
/**
`RSVP.Promise.reject` returns a promise rejected with the passed `reason`.
It is shorthand for the following:
@@ -46759,21 +48428,21 @@ define('rsvp/promise/reject', [
Useful for tooling.
@return {Promise} a promise rejected with the given `reason`.
*/
- __exports__['default'] = function reject(reason, label) {
- /*jshint validthis:true */
- var Constructor = this;
- var promise = new Constructor(noop, label);
- _reject(promise, reason);
- return promise;
- };
-});
-define('rsvp/promise/resolve', [
- '../-internal',
- 'exports'
-], function (__dependency1__, __exports__) {
- 'use strict';
+ __exports__["default"] = function reject(reason, label) {
+ /*jshint validthis:true */
+ var Constructor = this;
+ var promise = new Constructor(noop, label);
+ _reject(promise, reason);
+ return promise;
+ }
+ });
+define("rsvp/promise/resolve",
+ ["../-internal","exports"],
+ function(__dependency1__, __exports__) {
+ "use strict";
var noop = __dependency1__.noop;
var _resolve = __dependency1__.resolve;
+
/**
`RSVP.Promise.resolve` returns a promise that will become resolved with the
passed `value`. It is shorthand for the following:
@@ -46806,23 +48475,25 @@ define('rsvp/promise/resolve', [
@return {Promise} a promise that will become fulfilled with the given
`value`
*/
- __exports__['default'] = function resolve(object, label) {
- /*jshint validthis:true */
- var Constructor = this;
- if (object && typeof object === 'object' && object.constructor === Constructor) {
- return object;
- }
- var promise = new Constructor(noop, label);
- _resolve(promise, object);
- return promise;
- };
-});
-define('rsvp/race', [
- './promise',
- 'exports'
-], function (__dependency1__, __exports__) {
- 'use strict';
- var Promise = __dependency1__['default'];
+ __exports__["default"] = function resolve(object, label) {
+ /*jshint validthis:true */
+ var Constructor = this;
+
+ if (object && typeof object === 'object' && object.constructor === Constructor) {
+ return object;
+ }
+
+ var promise = new Constructor(noop, label);
+ _resolve(promise, object);
+ return promise;
+ }
+ });
+define("rsvp/race",
+ ["./promise","exports"],
+ function(__dependency1__, __exports__) {
+ "use strict";
+ var Promise = __dependency1__["default"];
+
/**
This is a convenient alias for `RSVP.Promise.race`.
@@ -46833,16 +48504,16 @@ define('rsvp/race', [
@param {String} label An optional label. This is useful
for tooling.
*/
- __exports__['default'] = function race(array, label) {
- return Promise.race(array, label);
- };
-});
-define('rsvp/reject', [
- './promise',
- 'exports'
-], function (__dependency1__, __exports__) {
- 'use strict';
- var Promise = __dependency1__['default'];
+ __exports__["default"] = function race(array, label) {
+ return Promise.race(array, label);
+ }
+ });
+define("rsvp/reject",
+ ["./promise","exports"],
+ function(__dependency1__, __exports__) {
+ "use strict";
+ var Promise = __dependency1__["default"];
+
/**
This is a convenient alias for `RSVP.Promise.reject`.
@@ -46854,16 +48525,16 @@ define('rsvp/reject', [
Useful for tooling.
@return {Promise} a promise rejected with the given `reason`.
*/
- __exports__['default'] = function reject(reason, label) {
- return Promise.reject(reason, label);
- };
-});
-define('rsvp/resolve', [
- './promise',
- 'exports'
-], function (__dependency1__, __exports__) {
- 'use strict';
- var Promise = __dependency1__['default'];
+ __exports__["default"] = function reject(reason, label) {
+ return Promise.reject(reason, label);
+ }
+ });
+define("rsvp/resolve",
+ ["./promise","exports"],
+ function(__dependency1__, __exports__) {
+ "use strict";
+ var Promise = __dependency1__["default"];
+
/**
This is a convenient alias for `RSVP.Promise.resolve`.
@@ -46876,12 +48547,14 @@ define('rsvp/resolve', [
@return {Promise} a promise that will become fulfilled with the given
`value`
*/
- __exports__['default'] = function resolve(value, label) {
- return Promise.resolve(value, label);
- };
-});
-define('rsvp/rethrow', ['exports'], function (__exports__) {
- 'use strict';
+ __exports__["default"] = function resolve(value, label) {
+ return Promise.resolve(value, label);
+ }
+ });
+define("rsvp/rethrow",
+ ["exports"],
+ function(__exports__) {
+ "use strict";
/**
`RSVP.rethrow` will rethrow an error on the next turn of the JavaScript event
loop in order to aid debugging.
@@ -46922,129 +48595,51 @@ define('rsvp/rethrow', ['exports'], function (__exports__) {
@throws Error
@static
*/
- __exports__['default'] = function rethrow(reason) {
- setTimeout(function () {
- throw reason;
- });
+ __exports__["default"] = function rethrow(reason) {
+ setTimeout(function() {
throw reason;
- };
-});
-define('rsvp/utils', ['exports'], function (__exports__) {
- 'use strict';
+ });
+ throw reason;
+ }
+ });
+define("rsvp/utils",
+ ["exports"],
+ function(__exports__) {
+ "use strict";
function objectOrFunction(x) {
- return typeof x === 'function' || typeof x === 'object' && x !== null;
+ return typeof x === 'function' || (typeof x === 'object' && x !== null);
}
- __exports__.objectOrFunction = objectOrFunction;
- function isFunction(x) {
- return typeof x === 'function';
+
+ __exports__.objectOrFunction = objectOrFunction;function isFunction(x) {
+ return typeof x === 'function';
}
- __exports__.isFunction = isFunction;
- function isMaybeThenable(x) {
- return typeof x === 'object' && x !== null;
+
+ __exports__.isFunction = isFunction;function isMaybeThenable(x) {
+ return typeof x === 'object' && x !== null;
}
- __exports__.isMaybeThenable = isMaybeThenable;
- var _isArray;
+
+ __exports__.isMaybeThenable = isMaybeThenable;var _isArray;
if (!Array.isArray) {
- _isArray = function (x) {
- return Object.prototype.toString.call(x) === '[object Array]';
- };
+ _isArray = function (x) {
+ return Object.prototype.toString.call(x) === '[object Array]';
+ };
} else {
- _isArray = Array.isArray;
+ _isArray = Array.isArray;
}
+
var isArray = _isArray;
__exports__.isArray = isArray;
// Date.now is not available in browsers < IE9
// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/now#Compatibility
- var now = Date.now || function () {
- return new Date().getTime();
- };
+ var now = Date.now || function() { return new Date().getTime(); };
__exports__.now = now;
- var o_create = Object.create || function (object) {
- var o = function () {
- };
- o.prototype = object;
- return o;
- };
+ var o_create = (Object.create || function(object) {
+ var o = function() { };
+ o.prototype = object;
+ return o;
+ });
__exports__.o_create = o_create;
-});
-define('rsvp', [
- './rsvp/promise',
- './rsvp/events',
- './rsvp/node',
- './rsvp/all',
- './rsvp/all-settled',
- './rsvp/race',
- './rsvp/hash',
- './rsvp/hash-settled',
- './rsvp/rethrow',
- './rsvp/defer',
- './rsvp/config',
- './rsvp/map',
- './rsvp/resolve',
- './rsvp/reject',
- './rsvp/filter',
- './rsvp/asap',
- 'exports'
-], function (__dependency1__, __dependency2__, __dependency3__, __dependency4__, __dependency5__, __dependency6__, __dependency7__, __dependency8__, __dependency9__, __dependency10__, __dependency11__, __dependency12__, __dependency13__, __dependency14__, __dependency15__, __dependency16__, __exports__) {
- 'use strict';
- var Promise = __dependency1__['default'];
- var EventTarget = __dependency2__['default'];
- var denodeify = __dependency3__['default'];
- var all = __dependency4__['default'];
- var allSettled = __dependency5__['default'];
- var race = __dependency6__['default'];
- var hash = __dependency7__['default'];
- var hashSettled = __dependency8__['default'];
- var rethrow = __dependency9__['default'];
- var defer = __dependency10__['default'];
- var config = __dependency11__.config;
- var configure = __dependency11__.configure;
- var map = __dependency12__['default'];
- var resolve = __dependency13__['default'];
- var reject = __dependency14__['default'];
- var filter = __dependency15__['default'];
- var asap = __dependency16__['default'];
- config.async = asap;
- // default async is asap;
- function async(callback, arg) {
- config.async(callback, arg);
- }
- function on() {
- config.on.apply(config, arguments);
- }
- function off() {
- config.off.apply(config, arguments);
- }
- // Set up instrumentation through `window.__PROMISE_INTRUMENTATION__`
- if (typeof window !== 'undefined' && typeof window.__PROMISE_INSTRUMENTATION__ === 'object') {
- var callbacks = window.__PROMISE_INSTRUMENTATION__;
- configure('instrument', true);
- for (var eventName in callbacks) {
- if (callbacks.hasOwnProperty(eventName)) {
- on(eventName, callbacks[eventName]);
- }
- }
- }
- __exports__.Promise = Promise;
- __exports__.EventTarget = EventTarget;
- __exports__.all = all;
- __exports__.allSettled = allSettled;
- __exports__.race = race;
- __exports__.hash = hash;
- __exports__.hashSettled = hashSettled;
- __exports__.rethrow = rethrow;
- __exports__.defer = defer;
- __exports__.denodeify = denodeify;
- __exports__.configure = configure;
- __exports__.on = on;
- __exports__.off = off;
- __exports__.resolve = resolve;
- __exports__.reject = reject;
- __exports__.async = async;
- __exports__.map = map;
- __exports__.filter = filter;
-});
-
+ });
requireModule("ember");
})();
diff --git a/vendor/assets/ember/production/ember-data.js b/vendor/assets/ember/production/ember-data.js
index d3a53927..7aff86bd 100644
--- a/vendor/assets/ember/production/ember-data.js
+++ b/vendor/assets/ember/production/ember-data.js
@@ -1,12 +1,5 @@
// Fetched from channel: canary, with url http://builds.emberjs.com/canary/ember-data.min.js
-// Fetched on: 2014-07-01T13:19:32Z
-/*!
- * @overview Ember Data
- * @copyright Copyright 2011-2014 Tilde Inc. and contributors.
- * Portions Copyright 2011 LivingSocial Inc.
- * @license Licensed under MIT license (see license.js)
- * @version 1.0.0-beta.9+canary.9a5cc255
- */
-!function(a){var b,c,d,e;!function(){var a={},f={};b=function(b,c,d){a[b]={deps:c,callback:d}},e=d=c=function(b){function d(a){if("."!==a.charAt(0))return a;for(var c=a.split("/"),d=b.split("/").slice(0,-1),e=0,f=c.length;f>e;e++){var g=c[e];if(".."===g)d.pop();else{if("."===g)continue;d.push(g)}}return d.join("/")}if(e._eak_seen=a,f[b])return f[b];if(f[b]={},!a[b])throw new Error("Could not find module "+b);for(var g,h=a[b],i=h.deps,j=h.callback,k=[],l=0,m=i.length;m>l;l++)k.push("exports"===i[l]?g={}:c(d(i[l])));var n=j.apply(this,k);return f[b]=g||n}}(),b("activemodel-adapter/lib/main",["./system","exports"],function(a,b){"use strict";var c=a.ActiveModelAdapter,d=a.ActiveModelSerializer,e=a.EmbeddedRecordsMixin;b.ActiveModelAdapter=c,b.ActiveModelSerializer=d,b.EmbeddedRecordsMixin=e}),b("activemodel-adapter/lib/setup-container",["../../ember-data/lib/system/container_proxy","./system/active_model_serializer","./system/active_model_adapter","exports"],function(a,b,c,d){"use strict";var e=a["default"],f=b["default"],g=c["default"];d["default"]=function(a){var b=new e(a);b.registerDeprecations([{deprecated:"serializer:_ams",valid:"serializer:-active-model"},{deprecated:"adapter:_ams",valid:"adapter:-active-model"}]),a.register("serializer:-active-model",f),a.register("adapter:-active-model",g)}}),b("activemodel-adapter/lib/system",["./system/embedded_records_mixin","./system/active_model_adapter","./system/active_model_serializer","exports"],function(a,b,c,d){"use strict";var e=a["default"],f=b["default"],g=c["default"];d.EmbeddedRecordsMixin=e,d.ActiveModelAdapter=f,d.ActiveModelSerializer=g}),b("activemodel-adapter/lib/system/active_model_adapter",["../../../ember-data/lib/adapters","../../../ember-data/lib/system/adapter","../../../ember-inflector/lib/main","./active_model_serializer","./embedded_records_mixin","exports"],function(a,b,c,d,e,f){"use strict";var g=a.RESTAdapter,h=b.InvalidError,i=c.pluralize,j=(d["default"],e["default"],Ember.EnumerableUtils.forEach),k=Ember.String.decamelize,l=Ember.String.underscore,m=g.extend({defaultSerializer:"-active-model",pathForType:function(a){var b=k(a),c=l(b);return i(c)},ajaxError:function(a){var b=this._super(a);if(a&&422===a.status){var c=Ember.$.parseJSON(a.responseText),d={};if(void 0!==c.errors){var e=c.errors;j(Ember.keys(e),function(a){d[Ember.String.camelize(a)]=e[a]})}return new h(d)}return b}});f["default"]=m}),b("activemodel-adapter/lib/system/active_model_serializer",["../../../ember-inflector/lib/main","../../../ember-data/lib/serializers/rest_serializer","exports"],function(a,b,c){"use strict";var d=a.singularize,e=b["default"],f=Ember.get,g=Ember.EnumerableUtils.forEach,h=Ember.String.camelize,i=Ember.String.capitalize,j=Ember.String.decamelize,k=Ember.String.underscore,l=e.extend({keyForAttribute:function(a){return j(a)},keyForRelationship:function(a,b){return a=j(a),"belongsTo"===b?a+"_id":"hasMany"===b?d(a)+"_ids":a},serializeHasMany:Ember.K,serializeIntoHash:function(a,b,c,d){var e=k(j(b.typeKey));a[e]=this.serialize(c,d)},serializePolymorphicType:function(a,b,c){var d=c.key,e=f(a,d);e&&(d=this.keyForAttribute(d),b[d+"_type"]=i(e.constructor.typeKey))},normalize:function(a,b,c){return this.normalizeLinks(b),this._super(a,b,c)},normalizeLinks:function(a){if(a.links){var b=a.links;for(var c in b){var d=h(c);d!==c&&(b[d]=b[c],delete b[c])}}},normalizeRelationships:function(a,b){this.keyForRelationship&&a.eachRelationship(function(a,c){var d,e;if(c.options.polymorphic){if(d=this.keyForAttribute(a),e=b[d],e&&e.type)e.type=this.typeForRoot(e.type);else if(e&&"hasMany"===c.kind){var f=this;g(e,function(a){a.type=f.typeForRoot(a.type)})}}else d=this.keyForRelationship(a,c.kind),e=b[d];b[a]=e,a!==d&&delete b[d]},this)}});c["default"]=l}),b("activemodel-adapter/lib/system/embedded_records_mixin",["../../../ember-inflector/lib/main","exports"],function(a,b){"use strict";function c(a,b){var c=h(a,b);return c&&"always"===c.embedded}function d(a,b){var d=c(a,b),e=h(a,b);return d||e&&"records"===e.serialize}function e(a,b){var c=h(a,b);return c&&("ids"===c.serialize||"id"===c.serialize)}function f(a,b){{var c=h(a,b);d(a,b),e(a,b)}return!(c&&(c.serialize||c.embedded))}function g(a,b){var d=c(a,b),e=h(a,b),f=e&&(e.deserialize||e.serialize);return d||f}function h(a,b){return a&&(a[Ember.String.camelize(b)]||a[b])}function i(a,b,c,d,e){var f=l(a,"attrs");f&&c.eachRelationship(function(c,h){g(f,c)&&("hasMany"===h.kind&&j(a,b,c,h,d,e),"belongsTo"===h.kind&&k(a,b,c,h,d,e))})}function j(a,b,c,d,e,f){var g=b.serializerFor(d.type.typeKey),h=l(a,"primaryKey"),j=d.type.typeKey,k="_"+a.typeForRoot(d.type.typeKey),n=a.keyForRelationship(c,d.kind),o=p.call(a,c),q=[];f[o]&&(e[k]=e[k]||[],m(f[o],function(a){var c=b.modelFor(j);i(g,b,c,e,a),q.push(a[h]),e[k].push(a)}),f[n]=q,delete f[o])}function k(a,b,c,d,e,f){var h=a.get("attrs");if(h&&(g(h,Ember.String.camelize(c))||g(h,c))){var j=d.type.typeKey,k=b.serializerFor(d.type.typeKey),m=(l(k,"primaryKey"),Ember.String.pluralize(j)),n=k.keyForRelationship(c,d.kind),o=p.call(k,c);if(f[o]){e[m]=e[m]||[];var q=b.modelFor(d.type.typeKey);i(k,b,q,e,f[o]),f[n]=f[o].id,e[m].push(f[o]),f[o][d.parentType.typeKey+"_id"]=f.id,delete f[o]}}}var l=Ember.get,m=Ember.EnumerableUtils.forEach,n=(Ember.String.camelize,a.pluralize),o=Ember.Mixin.create({serializeBelongsTo:function(a,b,c){var g=c.key,h=this.get("attrs");if(f(h,g))return void this._super(a,b,c);var i=e(h,g),j=d(h,g),k=a.get(g);if(i)m=this.keyForRelationship(g,c.kind),b[m]=k?l(k,"id"):null;else if(j){var m=this.keyForRelationship(g);k?(b[m]=k.serialize({includeId:!0}),this.removeEmbeddedForeignKey(a,k,c,b[m])):b[m]=null}},serializeHasMany:function(a,b,c){var g=c.key,h=this.get("attrs");if(f(h,g))return void this._super(a,b,c);var i,j=e(h,g),k=d(h,g);j?(i=this.keyForRelationship(g,c.kind),b[i]=l(a,g).mapBy("id")):k&&(i=p.call(this,g),b[i]=l(a,g).map(function(b){var d=b.serialize({includeId:!0});return this.removeEmbeddedForeignKey(a,b,c,d),d},this))},removeEmbeddedForeignKey:function(a,b,c,d){if("hasMany"!==c.kind&&"belongsTo"===c.kind){var e=a.constructor.inverseFor(c.key);if(e){var f=e.name,g=this.store.serializerFor(b.constructor),h=g.keyForRelationship(f,e.kind);h&&delete d[h]}}},extractSingle:function(a,b,c,d){var e=b.typeKey,f=p.call(this,e),g=c[f];return i(this,a,b,c,g),this._super(a,b,c,d)},extractArray:function(a,b,c){var d=b.typeKey,e=p.call(this,d),f=c[n(e)];return m(f,function(d){i(this,a,b,c,d)},this),this._super(a,b,c)}}),p=function(a){return this.keyForAttribute?this.keyForAttribute(a):a};b["default"]=o}),b("ember-data/lib/adapters",["./adapters/fixture_adapter","./adapters/rest_adapter","exports"],function(a,b,c){"use strict";var d=a["default"],e=b["default"];c.RESTAdapter=e,c.FixtureAdapter=d}),b("ember-data/lib/adapters/fixture_adapter",["../system/adapter","exports"],function(a,b){"use strict";var c=Ember.get,d=Ember.String.fmt,e=Ember.EnumerableUtils.indexOf,f=0,g=a["default"];b["default"]=g.extend({serializer:null,simulateRemoteResponse:!0,latency:50,fixturesForType:function(a){if(a.FIXTURES){var b=Ember.A(a.FIXTURES);return b.map(function(a){var b=typeof a.id;if("number"!==b&&"string"!==b)throw new Error(d("the id property must be defined as a number or string for fixture %@",[a]));return a.id=a.id+"",a})}return null},queryFixtures:function(){},updateFixtures:function(a,b){a.FIXTURES||(a.FIXTURES=[]);var c=a.FIXTURES;this.deleteLoadedFixture(a,b),c.push(b)},mockJSON:function(a,b,c){return a.serializerFor(b).serialize(c,{includeId:!0})},generateIdForRecord:function(){return"fixture-"+f++},find:function(a,b,c){var d,e=this.fixturesForType(b);return e&&(d=Ember.A(e).findBy("id",c)),d?this.simulateRemoteCall(function(){return d},this):void 0},findMany:function(a,b,c){var d=this.fixturesForType(b);return d&&(d=d.filter(function(a){return-1!==e(c,a.id)})),d?this.simulateRemoteCall(function(){return d},this):void 0},findAll:function(a,b){var c=this.fixturesForType(b);return this.simulateRemoteCall(function(){return c},this)},findQuery:function(a,b,c){var d=this.fixturesForType(b);return d=this.queryFixtures(d,c,b),d?this.simulateRemoteCall(function(){return d},this):void 0},createRecord:function(a,b,c){var d=this.mockJSON(a,b,c);return this.updateFixtures(b,d),this.simulateRemoteCall(function(){return d},this)},updateRecord:function(a,b,c){var d=this.mockJSON(a,b,c);return this.updateFixtures(b,d),this.simulateRemoteCall(function(){return d},this)},deleteRecord:function(a,b,c){var d=this.mockJSON(a,b,c);return this.deleteLoadedFixture(b,d),this.simulateRemoteCall(function(){return null})},deleteLoadedFixture:function(a,b){var c=this.findExistingFixture(a,b);if(c){var d=e(a.FIXTURES,c);return a.FIXTURES.splice(d,1),!0}},findExistingFixture:function(a,b){var d=this.fixturesForType(a),e=c(b,"id");return this.findFixtureById(d,e)},findFixtureById:function(a,b){return Ember.A(a).find(function(a){return""+c(a,"id")==""+b?!0:!1})},simulateRemoteCall:function(a,b){var d=this;return new Ember.RSVP.Promise(function(e){c(d,"simulateRemoteResponse")?Ember.run.later(function(){e(a.call(b))},c(d,"latency")):Ember.run.schedule("actions",null,function(){e(a.call(b))})},"DS: FixtureAdapter#simulateRemoteCall")}})}),b("ember-data/lib/adapters/rest_adapter",["../system/adapter","exports"],function(a,b){"use strict";var c=a["default"],d=Ember.get,e=Ember.ArrayPolyfills.forEach;b["default"]=c.extend({defaultSerializer:"-rest",find:function(a,b,c){return this.ajax(this.buildURL(b.typeKey,c),"GET")},findAll:function(a,b,c){var d;return c&&(d={since:c}),this.ajax(this.buildURL(b.typeKey),"GET",{data:d})},findQuery:function(a,b,c){return this.ajax(this.buildURL(b.typeKey),"GET",{data:c})},findMany:function(a,b,c){return this.ajax(this.buildURL(b.typeKey),"GET",{data:{ids:c}})},findHasMany:function(a,b,c){var e=d(this,"host"),f=d(b,"id"),g=b.constructor.typeKey;return e&&"/"===c.charAt(0)&&"/"!==c.charAt(1)&&(c=e+c),this.ajax(this.urlPrefix(c,this.buildURL(g,f)),"GET")},findBelongsTo:function(a,b,c){var e=d(b,"id"),f=b.constructor.typeKey;return this.ajax(this.urlPrefix(c,this.buildURL(f,e)),"GET")},createRecord:function(a,b,c){var d={},e=a.serializerFor(b.typeKey);return e.serializeIntoHash(d,b,c,{includeId:!0}),this.ajax(this.buildURL(b.typeKey),"POST",{data:d})},updateRecord:function(a,b,c){var e={},f=a.serializerFor(b.typeKey);f.serializeIntoHash(e,b,c);var g=d(c,"id");return this.ajax(this.buildURL(b.typeKey,g),"PUT",{data:e})},deleteRecord:function(a,b,c){var e=d(c,"id");return this.ajax(this.buildURL(b.typeKey,e),"DELETE")},buildURL:function(a,b){var c=[],e=d(this,"host"),f=this.urlPrefix();return a&&c.push(this.pathForType(a)),b&&c.push(b),f&&c.unshift(f),c=c.join("/"),!e&&c&&(c="/"+c),c},urlPrefix:function(a,b){var c=d(this,"host"),e=d(this,"namespace"),f=[];return a?"/"===a.charAt(0)?c&&(a=a.slice(1),f.push(c)):/^http(s)?:\/\//.test(a)||f.push(b):(c&&f.push(c),e&&f.push(e)),a&&f.push(a),f.join("/")},pathForType:function(a){var b=Ember.String.camelize(a);return Ember.String.pluralize(b)},ajaxError:function(a){return a&&"object"==typeof a&&(a.then=null),a},ajax:function(a,b,c){var d=this;return new Ember.RSVP.Promise(function(e,f){c=d.ajaxOptions(a,b,c),c.success=function(a){Ember.run(null,e,a)},c.error=function(a){Ember.run(null,f,d.ajaxError(a))},Ember.$.ajax(c)},"DS: RESTAdapter#ajax "+b+" to "+a)},ajaxOptions:function(a,b,c){c=c||{},c.url=a,c.type=b,c.dataType="json",c.context=this,c.data&&"GET"!==b&&(c.contentType="application/json; charset=utf-8",c.data=JSON.stringify(c.data));var f=d(this,"headers");return void 0!==f&&(c.beforeSend=function(a){e.call(Ember.keys(f),function(b){a.setRequestHeader(b,f[b])})}),c}})}),b("ember-data/lib/core",["exports"],function(a){"use strict";var b;"undefined"==typeof b&&(b=Ember.Namespace.create({VERSION:"1.0.0-beta.9+canary.9a5cc255"}),Ember.libraries&&Ember.libraries.registerCoreLibrary("Ember Data",b.VERSION)),a["default"]=b}),b("ember-data/lib/ember-initializer",["./setup-container"],function(a){"use strict";var b=a["default"],c=Ember.K;Ember.onLoad("Ember.Application",function(a){a.initializer({name:"ember-data",initialize:b}),a.initializer({name:"store",after:"ember-data",initialize:c}),a.initializer({name:"activeModelAdapter",before:"store",initialize:c}),a.initializer({name:"transforms",before:"store",initialize:c}),a.initializer({name:"data-adapter",before:"store",initialize:c}),a.initializer({name:"injectStore",before:"store",initialize:c})})}),b("ember-data/lib/ext/date",[],function(){"use strict";Ember.Date=Ember.Date||{};var a=Date.parse,b=[1,4,5,6,7,10,11];Ember.Date.parse=function(c){var d,e,f=0;if(e=/^(\d{4}|[+\-]\d{6})(?:-(\d{2})(?:-(\d{2}))?)?(?:T(\d{2}):(\d{2})(?::(\d{2})(?:\.(\d{3}))?)?(?:(Z)|([+\-])(\d{2})(?::(\d{2}))?)?)?$/.exec(c)){for(var g,h=0;g=b[h];++h)e[g]=+e[g]||0;e[2]=(+e[2]||1)-1,e[3]=+e[3]||1,"Z"!==e[8]&&void 0!==e[9]&&(f=60*e[10]+e[11],"+"===e[9]&&(f=0-f)),d=Date.UTC(e[1],e[2],e[3],e[4],e[5]+f,e[6],e[7])}else d=a?a(c):0/0;return d},(Ember.EXTEND_PROTOTYPES===!0||Ember.EXTEND_PROTOTYPES.Date)&&(Date.parse=Ember.Date.parse)}),b("ember-data/lib/initializers/data_adapter",["../system/debug/debug_adapter","exports"],function(a,b){"use strict";var c=a["default"];b["default"]=function(a){a.register("data-adapter:main",c)}}),b("ember-data/lib/initializers/store",["../serializers","../adapters","../system/container_proxy","../system/store","exports"],function(a,b,c,d,e){"use strict";var f=a.JSONSerializer,g=a.RESTSerializer,h=b.RESTAdapter,i=c["default"],j=d["default"];e["default"]=function(a,b){a.register("store:main",a.lookupFactory("store:application")||b&&b.Store||j);var c=new i(a);c.registerDeprecations([{deprecated:"serializer:_default",valid:"serializer:-default"},{deprecated:"serializer:_rest",valid:"serializer:-rest"},{deprecated:"adapter:_rest",valid:"adapter:-rest"}]),a.register("serializer:-default",f),a.register("serializer:-rest",g),a.register("adapter:-rest",h),a.lookup("store:main")}}),b("ember-data/lib/initializers/store_injections",["exports"],function(a){"use strict";a["default"]=function(a){a.injection("controller","store","store:main"),a.injection("route","store","store:main"),a.injection("serializer","store","store:main"),a.injection("data-adapter","store","store:main")}}),b("ember-data/lib/initializers/transforms",["../transforms","exports"],function(a,b){"use strict";var c=a.BooleanTransform,d=a.DateTransform,e=a.StringTransform,f=a.NumberTransform;b["default"]=function(a){a.register("transform:boolean",c),a.register("transform:date",d),a.register("transform:number",f),a.register("transform:string",e)}}),b("ember-data/lib/main",["./core","./ext/date","./system/store","./system/model","./system/changes","./system/adapter","./system/debug","./system/record_arrays","./system/record_array_manager","./adapters","./serializers/json_serializer","./serializers/rest_serializer","../../ember-inflector/lib/main","../../activemodel-adapter/lib/main","./transforms","./system/relationships","./ember-initializer","./setup-container","./system/container_proxy","exports"],function(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t){"use strict";Ember.RSVP.Promise.cast=Ember.RSVP.Promise.cast||Ember.RSVP.resolve;var u=a["default"],v=c.Store,w=c.PromiseArray,x=c.PromiseObject,y=d.Model,z=d.Errors,A=d.RootState,B=d.attr,C=e.AttributeChange,D=e.RelationshipChange,E=e.RelationshipChangeAdd,F=(e.RelationshipChangeRemove,e.OneToManyChange),G=(e.ManyToNoneChange,e.OneToOneChange),H=e.ManyToManyChange,I=f.InvalidError,J=f.Adapter,K=g["default"],L=h.RecordArray,M=h.FilteredRecordArray,N=h.AdapterPopulatedRecordArray,O=h.ManyArray,P=i["default"],Q=j.RESTAdapter,R=j.FixtureAdapter,S=k["default"],T=l["default"],U=n.ActiveModelAdapter,V=n.ActiveModelSerializer,W=n.EmbeddedRecordsMixin,X=o.Transform,Y=o.DateTransform,Z=o.NumberTransform,$=o.StringTransform,_=o.BooleanTransform,ab=p.hasMany,bb=p.belongsTo,cb=r["default"],db=s["default"];u.Store=v,u.PromiseArray=w,u.PromiseObject=x,u.Model=y,u.RootState=A,u.attr=B,u.Errors=z,u.AttributeChange=C,u.RelationshipChange=D,u.RelationshipChangeAdd=E,u.OneToManyChange=F,u.ManyToNoneChange=F,u.OneToOneChange=G,u.ManyToManyChange=H,u.Adapter=J,u.InvalidError=I,u.DebugAdapter=K,u.RecordArray=L,u.FilteredRecordArray=M,u.AdapterPopulatedRecordArray=N,u.ManyArray=O,u.RecordArrayManager=P,u.RESTAdapter=Q,u.FixtureAdapter=R,u.RESTSerializer=T,u.JSONSerializer=S,u.Transform=X,u.DateTransform=Y,u.StringTransform=$,u.NumberTransform=Z,u.BooleanTransform=_,u.ActiveModelAdapter=U,u.ActiveModelSerializer=V,u.EmbeddedRecordsMixin=W,u.belongsTo=bb,u.hasMany=ab,u.ContainerProxy=db,u._setupContainer=cb,Ember.lookup.DS=u,t["default"]=u}),b("ember-data/lib/serializers",["./serializers/json_serializer","./serializers/rest_serializer","exports"],function(a,b,c){"use strict";var d=a["default"],e=b["default"];c.JSONSerializer=d,c.RESTSerializer=e}),b("ember-data/lib/serializers/json_serializer",["../system/changes","exports"],function(a,b){"use strict";var c=a.RelationshipChange,d=Ember.get,e=(Ember.set,Ember.isNone),f=Ember.ArrayPolyfills.map;b["default"]=Ember.Object.extend({primaryKey:"id",applyTransforms:function(a,b){return a.eachTransformedAttribute(function(a,c){var d=this.transformFor(c);b[a]=d.deserialize(b[a])},this),b},normalize:function(a,b){return b?(this.normalizeId(b),this.normalizeUsingDeclaredMapping(a,b),this.applyTransforms(a,b),b):b},normalizeUsingDeclaredMapping:function(a,b){var c,e,f=d(this,"attrs");if(f)for(e in f)c=f[e],c&&c.key&&(c=c.key),"string"==typeof c&&(b[e]=b[c],delete b[c])},normalizeId:function(a){var b=d(this,"primaryKey");"id"!==b&&(a.id=a[b],delete a[b])},serialize:function(a,b){var c={};if(b&&b.includeId){var e=d(a,"id");e&&(c[d(this,"primaryKey")]=e)}return a.eachAttribute(function(b,d){this.serializeAttribute(a,c,b,d)},this),a.eachRelationship(function(b,d){"belongsTo"===d.kind?this.serializeBelongsTo(a,c,d):"hasMany"===d.kind&&this.serializeHasMany(a,c,d)},this),c},serializeAttribute:function(a,b,c,e){var f=d(this,"attrs"),g=d(a,c),h=e.type;if(h){var i=this.transformFor(h);g=i.serialize(g)}c=f&&f[c]||(this.keyForAttribute?this.keyForAttribute(c):c),b[c]=g},serializeBelongsTo:function(a,b,c){var f=c.key,g=d(a,f);f=this.keyForRelationship?this.keyForRelationship(f,"belongsTo"):f,b[f]=e(g)?g:d(g,"id"),c.options.polymorphic&&this.serializePolymorphicType(a,b,c)},serializeHasMany:function(a,b,e){var f=e.key,g=this.keyForRelationship?this.keyForRelationship(f,"hasMany"):f,h=c.determineRelationshipType(a.constructor,e);("manyToNone"===h||"manyToMany"===h)&&(b[g]=d(a,f).mapBy("id"))},serializePolymorphicType:Ember.K,extract:function(a,b,c,d,e){this.extractMeta(a,b,c);var f="extract"+e.charAt(0).toUpperCase()+e.substr(1);return this[f](a,b,c,d,e)},extractFindAll:function(a,b,c){return this.extractArray(a,b,c)},extractFindQuery:function(a,b,c){return this.extractArray(a,b,c)},extractFindMany:function(a,b,c){return this.extractArray(a,b,c)},extractFindHasMany:function(a,b,c){return this.extractArray(a,b,c)},extractCreateRecord:function(a,b,c){return this.extractSave(a,b,c)},extractUpdateRecord:function(a,b,c){return this.extractSave(a,b,c)},extractDeleteRecord:function(a,b,c){return this.extractSave(a,b,c)},extractFind:function(a,b,c){return this.extractSingle(a,b,c)},extractFindBelongsTo:function(a,b,c){return this.extractSingle(a,b,c)},extractSave:function(a,b,c){return this.extractSingle(a,b,c)},extractSingle:function(a,b,c){return this.normalize(b,c)},extractArray:function(a,b,c){var d=this;return f.call(c,function(a){return d.normalize(b,a)})},extractMeta:function(a,b,c){c&&c.meta&&(a.metaForType(b,c.meta),delete c.meta)},transformFor:function(a){var b=this.container.lookup("transform:"+a);return b}})}),b("ember-data/lib/serializers/rest_serializer",["./json_serializer","ember-inflector/lib/system/string","exports"],function(a,b,c){"use strict";function d(a){return null==a?null:a+""}var e=a["default"],f=Ember.get,g=(Ember.set,Ember.ArrayPolyfills.forEach),h=Ember.ArrayPolyfills.map,i=Ember.String.camelize,j=b.singularize;c["default"]=e.extend({normalize:function(a,b,c){return this.normalizeId(b),this.normalizeAttributes(a,b),this.normalizeRelationships(a,b),this.normalizeUsingDeclaredMapping(a,b),this.normalizeHash&&this.normalizeHash[c]&&this.normalizeHash[c](b),this.applyTransforms(a,b),b},normalizePayload:function(a){return a},normalizeAttributes:function(a,b){var c;this.keyForAttribute&&a.eachAttribute(function(a){c=this.keyForAttribute(a),a!==c&&(b[a]=b[c],delete b[c])},this)},normalizeRelationships:function(a,b){var c;this.keyForRelationship&&a.eachRelationship(function(a,d){c=this.keyForRelationship(a,d.kind),a!==c&&(b[a]=b[c],delete b[c])},this)},extractSingle:function(a,b,c,e){var f,h=this.normalizePayload(c),i=b.typeKey;for(var j in h){var k=this.typeForRoot(j),l=a.modelFor(k),m=l.typeKey===i,n=h[j];m&&"array"!==Ember.typeOf(n)?f=this.normalize(b,n,j):g.call(n,function(b){var c=this.typeForRoot(j),g=a.modelFor(c),h=a.serializerFor(g);b=h.normalize(g,b,j);var i=m&&!e&&!f,k=m&&d(b.id)===e;i||k?f=b:a.push(c,b)},this)}return f},extractArray:function(a,b,c){var d,e=this.normalizePayload(c),f=b.typeKey;for(var g in e){var i=g,j=!1;"_"===g.charAt(0)&&(j=!0,i=g.substr(1));var k=this.typeForRoot(i),l=a.modelFor(k),m=a.serializerFor(l),n=!j&&l.typeKey===f,o=h.call(e[g],function(a){return m.normalize(l,a,g)},this);n?d=o:a.pushMany(k,o)}return d},pushPayload:function(a,b){var c=this.normalizePayload(b);for(var d in c){var e=this.typeForRoot(d),f=a.modelFor(e),g=a.serializerFor(f),i=h.call(Ember.makeArray(c[d]),function(a){return g.normalize(f,a,d)},this);a.pushMany(e,i)}},typeForRoot:function(a){return i(j(a))},serialize:function(){return this._super.apply(this,arguments)},serializeIntoHash:function(a,b,c,d){a[b.typeKey]=this.serialize(c,d)},serializePolymorphicType:function(a,b,c){var d=c.key,e=f(a,d);d=this.keyForAttribute?this.keyForAttribute(d):d,b[d+"Type"]=e.constructor.typeKey}})}),b("ember-data/lib/setup-container",["./initializers/store","./initializers/transforms","./initializers/store_injections","./initializers/data_adapter","../../../activemodel-adapter/lib/setup-container","exports"],function(a,b,c,d,e,f){"use strict";var g=a["default"],h=b["default"],i=c["default"],j=d["default"],k=e["default"];f["default"]=function(a,b){j(a,b),h(a,b),i(a,b),g(a,b),k(a,b)}}),b("ember-data/lib/system/adapter",["exports"],function(a){"use strict";function b(a){var b=Error.prototype.constructor.call(this,"The backend rejected the commit because it was invalid: "+Ember.inspect(a));this.errors=a;for(var c=0,d=e.length;d>c;c++)this[e[c]]=b[e[c]]}var c=Ember.get,d=(Ember.set,Ember.ArrayPolyfills.map),e=["description","fileName","lineNumber","message","name","number","stack"];b.prototype=Ember.create(Error.prototype);var f=Ember.Object.extend({find:Ember.required(Function),findAll:null,findQuery:null,generateIdForRecord:null,serialize:function(a,b){return c(a,"store").serializerFor(a.constructor.typeKey).serialize(a,b)},createRecord:Ember.required(Function),updateRecord:Ember.required(Function),deleteRecord:Ember.required(Function),findMany:function(a,b,c){var e=d.call(c,function(c){return this.find(a,b,c)},this);return Ember.RSVP.all(e)}});a.InvalidError=b,a.Adapter=f,a["default"]=f}),b("ember-data/lib/system/changes",["./changes/relationship_change","exports"],function(a,b){"use strict";var c=a.RelationshipChange,d=a.RelationshipChangeAdd,e=a.RelationshipChangeRemove,f=a.OneToManyChange,g=a.ManyToNoneChange,h=a.OneToOneChange,i=a.ManyToManyChange;b.RelationshipChange=c,b.RelationshipChangeAdd=d,b.RelationshipChangeRemove=e,b.OneToManyChange=f,b.ManyToNoneChange=g,b.OneToOneChange=h,b.ManyToManyChange=i}),b("ember-data/lib/system/changes/relationship_change",["../model","exports"],function(a,b){"use strict";function c(a){j.call(this,a)}function d(a){j.call(this,a)}function e(a){return"object"==typeof a&&(!a.then||"function"!=typeof a.then)}var f=a.Model,g=Ember.get,h=Ember.set,i=Ember.EnumerableUtils.forEach,j=function(a){this.parentRecord=a.parentRecord,this.childRecord=a.childRecord,this.firstRecord=a.firstRecord,this.firstRecordKind=a.firstRecordKind,this.firstRecordName=a.firstRecordName,this.secondRecord=a.secondRecord,this.secondRecordKind=a.secondRecordKind,this.secondRecordName=a.secondRecordName,this.changeType=a.changeType,this.store=a.store,this.committed={}};j.create=function(a){return new j(a)},c.create=function(a){return new c(a)},d.create=function(a){return new d(a)};var k={},l={},m={},n={},o={};j._createChange=function(a){return"add"===a.changeType?c.create(a):"remove"===a.changeType?d.create(a):void 0},j.determineRelationshipType=function(a,b){var c,d,e=b.key,f=b.kind,g=a.inverseFor(e);return g&&(c=g.name,d=g.kind),g?"belongsTo"===d?"belongsTo"===f?"oneToOne":"manyToOne":"belongsTo"===f?"oneToMany":"manyToMany":"belongsTo"===f?"oneToNone":"manyToNone"},j.createChange=function(a,b,c,d){var e,f=a.constructor;return e=j.determineRelationshipType(f,d),"oneToMany"===e?k.createChange(a,b,c,d):"manyToOne"===e?k.createChange(b,a,c,d):"oneToNone"===e?l.createChange(a,b,c,d):"manyToNone"===e?m.createChange(a,b,c,d):"oneToOne"===e?n.createChange(a,b,c,d):"manyToMany"===e?o.createChange(a,b,c,d):void 0},l.createChange=function(a,b,c,d){var e=d.key,f=j._createChange({parentRecord:b,childRecord:a,firstRecord:a,store:c,changeType:d.changeType,firstRecordName:e,firstRecordKind:"belongsTo"});return c.addRelationshipChangeFor(a,e,b,null,f),f},m.createChange=function(a,b,c,d){var e=d.key,f=j._createChange({parentRecord:a,childRecord:b,secondRecord:a,store:c,changeType:d.changeType,secondRecordName:d.key,secondRecordKind:"hasMany"});return c.addRelationshipChangeFor(a,e,b,null,f),f},o.createChange=function(a,b,c,d){var e=d.key,f=j._createChange({parentRecord:b,childRecord:a,firstRecord:a,secondRecord:b,firstRecordKind:"hasMany",secondRecordKind:"hasMany",store:c,changeType:d.changeType,firstRecordName:e});return c.addRelationshipChangeFor(a,e,b,null,f),f},n.createChange=function(a,b,c,d){var e;d.parentType?e=d.parentType.inverseFor(d.key).name:d.key&&(e=d.key);var f=j._createChange({parentRecord:b,childRecord:a,firstRecord:a,secondRecord:b,firstRecordKind:"belongsTo",secondRecordKind:"belongsTo",store:c,changeType:d.changeType,firstRecordName:e});return c.addRelationshipChangeFor(a,e,b,null,f),f},n.maintainInvariant=function(a,b,c,d){if("add"===a.changeType&&b.recordIsMaterialized(c)){var e=g(c,d);if(e){var f=n.createChange(c,e,b,{parentType:a.parentType,hasManyName:a.hasManyName,changeType:"remove",key:a.key});b.addRelationshipChangeFor(c,d,a.parentRecord,null,f),f.sync()}}},k.createChange=function(a,b,c,d){var e;d.parentType?(e=d.parentType.inverseFor(d.key).name,k.maintainInvariant(d,c,a,e)):d.key&&(e=d.key);var f=j._createChange({parentRecord:b,childRecord:a,firstRecord:a,secondRecord:b,firstRecordKind:"belongsTo",secondRecordKind:"hasMany",store:c,changeType:d.changeType,firstRecordName:e});return c.addRelationshipChangeFor(a,e,b,f.getSecondRecordName(),f),f},k.maintainInvariant=function(a,b,c,d){if("add"===a.changeType&&c){var e=g(c,d);if(e){var f=k.createChange(c,e,b,{parentType:a.parentType,hasManyName:a.hasManyName,changeType:"remove",key:a.key});b.addRelationshipChangeFor(c,d,a.parentRecord,f.getSecondRecordName(),f),f.sync()}}},j.prototype={getSecondRecordName:function(){var a,b=this.secondRecordName;if(!b){if(a=this.secondRecord,!a)return;var c=this.firstRecord.constructor,d=c.inverseFor(this.firstRecordName);this.secondRecordName=d.name}return this.secondRecordName},getFirstRecordName:function(){var a=this.firstRecordName;return a},destroy:function(){var a=this.childRecord,b=this.getFirstRecordName(),c=this.getSecondRecordName(),d=this.store;d.removeRelationshipChangeFor(a,b,this.parentRecord,c,this.changeType)},getSecondRecord:function(){return this.secondRecord},getFirstRecord:function(){return this.firstRecord},coalesce:function(){var a=this.store.relationshipChangePairsFor(this.firstRecord);i(a,function(a){var b=a.add,c=a.remove;b&&c&&(b.destroy(),c.destroy())})}},c.prototype=Ember.create(j.create({})),d.prototype=Ember.create(j.create({})),c.prototype.changeType="add",c.prototype.sync=function(){var a=this.getSecondRecordName(),b=this.getFirstRecordName(),c=this.getFirstRecord(),d=this.getSecondRecord();d instanceof f&&c instanceof f&&("belongsTo"===this.secondRecordKind?d.suspendRelationshipObservers(function(){h(d,a,c)}):"hasMany"===this.secondRecordKind&&d.suspendRelationshipObservers(function(){var b=g(d,a);e(b)&&b.addObject(c)})),c instanceof f&&d instanceof f&&g(c,b)!==d&&("belongsTo"===this.firstRecordKind?c.suspendRelationshipObservers(function(){h(c,b,d)}):"hasMany"===this.firstRecordKind&&c.suspendRelationshipObservers(function(){var a=g(c,b);e(a)&&a.addObject(d)})),this.coalesce()},d.prototype.changeType="remove",d.prototype.sync=function(){var a=this.getSecondRecordName(),b=this.getFirstRecordName(),c=this.getFirstRecord(),d=this.getSecondRecord();d instanceof f&&c instanceof f&&("belongsTo"===this.secondRecordKind?d.suspendRelationshipObservers(function(){h(d,a,null)}):"hasMany"===this.secondRecordKind&&d.suspendRelationshipObservers(function(){var b=g(d,a);e(b)&&b.removeObject(c)})),c instanceof f&&g(c,b)&&("belongsTo"===this.firstRecordKind?c.suspendRelationshipObservers(function(){h(c,b,null)}):"hasMany"===this.firstRecordKind&&c.suspendRelationshipObservers(function(){var a=g(c,b);e(a)&&a.removeObject(d)})),this.coalesce()},b.RelationshipChange=j,b.RelationshipChangeAdd=c,b.RelationshipChangeRemove=d,b.OneToManyChange=k,b.ManyToNoneChange=m,b.OneToOneChange=n,b.ManyToManyChange=o}),b("ember-data/lib/system/container_proxy",["exports"],function(a){"use strict";function b(a){this.container=a}b.prototype.aliasedFactory=function(a,b){var c=this;return{create:function(){return b&&b(),c.container.lookup(a)}}},b.prototype.registerAlias=function(a,b,c){var d=this.aliasedFactory(b,c);return this.container.register(a,d)},b.prototype.registerDeprecation=function(a,b){var c=function(){};return this.registerAlias(a,b,c)},b.prototype.registerDeprecations=function(a){for(var b=a.length;b>0;b--){var c=a[b-1],d=c.deprecated,e=c.valid;this.registerDeprecation(d,e)}},a["default"]=b}),b("ember-data/lib/system/debug",["./debug/debug_info","./debug/debug_adapter","exports"],function(a,b,c){"use strict";var d=b["default"];c["default"]=d}),b("ember-data/lib/system/debug/debug_adapter",["../model","exports"],function(a,b){"use strict";var c=a.Model,d=Ember.get,e=Ember.String.capitalize,f=Ember.String.underscore;b["default"]=Ember.DataAdapter.extend({getFilters:function(){return[{name:"isNew",desc:"New"},{name:"isModified",desc:"Modified"},{name:"isClean",desc:"Clean"}]},detect:function(a){return a!==c&&c.detect(a)},columnsForType:function(a){var b=[{name:"id",desc:"Id"}],c=0,g=this;return d(a,"attributes").forEach(function(a){if(c++>g.attributeLimit)return!1;var d=e(f(a).replace("_"," "));b.push({name:a,desc:d})}),b},getRecords:function(a){return this.get("store").all(a)},getRecordColumnValues:function(a){var b=this,c=0,e={id:d(a,"id")};return a.eachAttribute(function(f){if(c++>b.attributeLimit)return!1;var g=d(a,f);e[f]=g}),e},getRecordKeywords:function(a){var b=[],c=Ember.A(["id"]);return a.eachAttribute(function(a){c.push(a)}),c.forEach(function(c){b.push(d(a,c))}),b},getRecordFilterValues:function(a){return{isNew:a.get("isNew"),isModified:a.get("isDirty")&&!a.get("isNew"),isClean:!a.get("isDirty")}},getRecordColor:function(a){var b="black";return a.get("isNew")?b="green":a.get("isDirty")&&(b="blue"),b},observeRecord:function(a,b){var c=Ember.A(),d=this,e=Ember.A(["id","isNew","isDirty"]);a.eachAttribute(function(a){e.push(a)}),e.forEach(function(e){var f=function(){b(d.wrapRecord(a))};Ember.addObserver(a,e,f),c.push(function(){Ember.removeObserver(a,e,f)})});var f=function(){c.forEach(function(a){a()})};return f}})}),b("ember-data/lib/system/debug/debug_info",["../model","exports"],function(a,b){"use strict";var c=a.Model;c.reopen({_debugInfo:function(){var a=["id"],b={belongsTo:[],hasMany:[]},c=[];
-this.eachAttribute(function(b){a.push(b)},this),this.eachRelationship(function(a,d){b[d.kind].push(a),c.push(a)});var d=[{name:"Attributes",properties:a,expand:!0},{name:"Belongs To",properties:b.belongsTo,expand:!0},{name:"Has Many",properties:b.hasMany,expand:!0},{name:"Flags",properties:["isLoaded","isDirty","isSaving","isDeleted","isError","isNew","isValid"]}];return{propertyInfo:{includeOtherProperties:!0,groups:d,expensiveProperties:c}}}}),b["default"]=c}),b("ember-data/lib/system/model",["./model/model","./model/attributes","./model/states","./model/errors","exports"],function(a,b,c,d,e){"use strict";var f=a["default"],g=b["default"],h=c["default"],i=d["default"];e.Model=f,e.RootState=h,e.attr=g,e.Errors=i}),b("ember-data/lib/system/model/attributes",["./model","exports"],function(a,b){"use strict";function c(a,b){return"function"==typeof b.defaultValue?b.defaultValue.apply(null,arguments):b.defaultValue}function d(a,b){return a._attributes.hasOwnProperty(b)||a._inFlightAttributes.hasOwnProperty(b)||a._data.hasOwnProperty(b)}function e(a,b){return a._attributes.hasOwnProperty(b)?a._attributes[b]:a._inFlightAttributes.hasOwnProperty(b)?a._inFlightAttributes[b]:a._data[b]}var f=a["default"],g=Ember.get;f.reopenClass({attributes:Ember.computed(function(){var a=Ember.Map.create();return this.eachComputedProperty(function(b,c){c.isAttribute&&(c.name=b,a.set(b,c))}),a}),transformedAttributes:Ember.computed(function(){var a=Ember.Map.create();return this.eachAttribute(function(b,c){c.type&&a.set(b,c.type)}),a}),eachAttribute:function(a,b){g(this,"attributes").forEach(function(c,d){a.call(b,c,d)},b)},eachTransformedAttribute:function(a,b){g(this,"transformedAttributes").forEach(function(c,d){a.call(b,c,d)})}}),f.reopen({eachAttribute:function(a,b){this.constructor.eachAttribute(a,b)}}),b["default"]=function(a,b){b=b||{};var f={type:a,isAttribute:!0,options:b};return Ember.computed("data",function(a,f){if(arguments.length>1){var g=e(this,a);return f!==g&&(this._attributes[a]=f,this.send("didSetProperty",{name:a,oldValue:g,originalValue:this._data[a],value:f})),f}return d(this,a)?e(this,a):c(this,b,a)}).meta(f)}}),b("ember-data/lib/system/model/errors",["exports"],function(a){"use strict";var b=Ember.get,c=Ember.isEmpty,d=Ember.EnumerableUtils.map;a["default"]=Ember.Object.extend(Ember.Enumerable,Ember.Evented,{registerHandlers:function(a,b,c){this.on("becameInvalid",a,b),this.on("becameValid",a,c)},errorsByAttributeName:Ember.reduceComputed("content",{initialValue:function(){return Ember.MapWithDefault.create({defaultValue:function(){return Ember.A()}})},addedItem:function(a,b){return a.get(b.attribute).pushObject(b),a},removedItem:function(a,b){return a.get(b.attribute).removeObject(b),a}}),errorsFor:function(a){return b(this,"errorsByAttributeName").get(a)},messages:Ember.computed.mapBy("content","message"),content:Ember.computed(function(){return Ember.A()}),unknownProperty:function(a){var b=this.errorsFor(a);return c(b)?null:b},nextObject:function(a){return b(this,"content").objectAt(a)},length:Ember.computed.oneWay("content.length").readOnly(),isEmpty:Ember.computed.not("length").readOnly(),add:function(a,c){var d=b(this,"isEmpty");c=this._findOrCreateMessages(a,c),b(this,"content").addObjects(c),this.notifyPropertyChange(a),this.enumerableContentDidChange(),d&&!b(this,"isEmpty")&&this.trigger("becameInvalid")},_findOrCreateMessages:function(a,b){var c=this.errorsFor(a);return d(Ember.makeArray(b),function(b){return c.findBy("message",b)||{attribute:a,message:b}})},remove:function(a){if(!b(this,"isEmpty")){var c=b(this,"content").rejectBy("attribute",a);b(this,"content").setObjects(c),this.notifyPropertyChange(a),this.enumerableContentDidChange(),b(this,"isEmpty")&&this.trigger("becameValid")}},clear:function(){b(this,"isEmpty")||(b(this,"content").clear(),this.enumerableContentDidChange(),this.trigger("becameValid"))},has:function(a){return!c(this.errorsFor(a))}})}),b("ember-data/lib/system/model/model",["./states","./errors","../store","exports"],function(a,b,d,e){"use strict";var f,g=a["default"],h=b["default"],i=d.PromiseObject,j=Ember.get,k=Ember.set,l=Ember.merge,m=Ember.RSVP.Promise,n=Ember.computed("currentState",function(a){return j(j(this,"currentState"),a)}).readOnly(),o=Ember.Object.extend(Ember.Evented,{_recordArrays:void 0,_relationships:void 0,_loadingRecordArrays:void 0,isEmpty:n,isLoading:n,isLoaded:n,isDirty:n,isSaving:n,isDeleted:n,isNew:n,isValid:n,dirtyType:n,isError:!1,isReloading:!1,clientId:null,id:null,currentState:g.empty,errors:Ember.computed(function(){var a=h.create();return a.registerHandlers(this,function(){this.send("becameInvalid")},function(){this.send("becameValid")}),a}).readOnly(),serialize:function(a){var b=j(this,"store");return b.serialize(this,a)},toJSON:function(a){f||(f=c("ember-data/lib/serializers/json_serializer")["default"]);var b=f.create({container:this.container});return b.serialize(this,a)},didLoad:Ember.K,didUpdate:Ember.K,didCreate:Ember.K,didDelete:Ember.K,becameInvalid:Ember.K,becameError:Ember.K,data:Ember.computed(function(){return this._data=this._data||{},this._data}).readOnly(),_data:null,init:function(){this._super(),this._setup()},_setup:function(){this._changesToSync={},this._deferredTriggers=[],this._data={},this._attributes={},this._inFlightAttributes={},this._relationships={}},send:function(a,b){var c=j(this,"currentState");return c[a]||this._unhandledEvent(c,a,b),c[a](this,b)},transitionTo:function(a){var b=a.split(".",1),c=j(this,"currentState"),d=c;do d.exit&&d.exit(this),d=d.parentState;while(!d.hasOwnProperty(b));var e,f,g=a.split("."),h=[],i=[];for(e=0,f=g.length;f>e;e++)d=d[g[e]],d.enter&&i.push(d),d.setup&&h.push(d);for(e=0,f=i.length;f>e;e++)i[e].enter(this);for(k(this,"currentState",d),e=0,f=h.length;f>e;e++)h[e].setup(this);this.updateRecordArraysLater()},_unhandledEvent:function(a,b,c){var d="Attempted to handle event `"+b+"` ";throw d+="on "+String(this)+" while in state ",d+=a.stateName+". ",void 0!==c&&(d+="Called with "+Ember.inspect(c)+"."),new Ember.Error(d)},withTransaction:function(a){var b=j(this,"transaction");b&&a(b)},loadingData:function(a){this.send("loadingData",a)},loadedData:function(){this.send("loadedData")},notFound:function(){this.send("notFound")},pushedData:function(){this.send("pushedData")},deleteRecord:function(){this.send("deleteRecord")},destroyRecord:function(){return this.deleteRecord(),this.save()},unloadRecord:function(){this.isDestroyed||this.send("unloadRecord")},clearRelationships:function(){this.eachRelationship(function(a,b){if("belongsTo"===b.kind)k(this,a,null);else if("hasMany"===b.kind){var c=this._relationships[a];c&&c.destroy()}},this)},updateRecordArrays:function(){this._updatingRecordArraysLater=!1,j(this,"store").dataWasUpdated(this.constructor,this)},changedAttributes:function(){var a,b=j(this,"_data"),c=j(this,"_attributes"),d={};for(a in c)d[a]=[b[a],c[a]];return d},adapterWillCommit:function(){this.send("willCommit")},adapterDidCommit:function(a){k(this,"isError",!1),a?this._data=a:Ember.mixin(this._data,this._inFlightAttributes),this._inFlightAttributes={},this.send("didCommit"),this.updateRecordArraysLater(),a&&this.suspendRelationshipObservers(function(){this.notifyPropertyChange("data")})},adapterDidDirty:function(){this.send("becomeDirty"),this.updateRecordArraysLater()},dataDidChange:Ember.observer(function(){this.reloadHasManys()},"data"),reloadHasManys:function(){var a=j(this.constructor,"relationshipsByName");this.updateRecordArraysLater(),a.forEach(function(a,b){this._data.links&&this._data.links[a]||"hasMany"===b.kind&&this.hasManyDidChange(b.key)},this)},hasManyDidChange:function(a){var b=this._relationships[a];if(b){var c=this._data[a]||[];k(b,"content",Ember.A(c)),k(b,"isLoaded",!0),b.trigger("didLoad")}},updateRecordArraysLater:function(){this._updatingRecordArraysLater||(this._updatingRecordArraysLater=!0,Ember.run.schedule("actions",this,this.updateRecordArrays))},setupData:function(a,b){b?Ember.merge(this._data,a):this._data=a;var c=this._relationships;this.eachRelationship(function(b,d){a.links&&a.links[b]||d.options.async&&(c[b]=null)}),a&&this.pushedData(),this.suspendRelationshipObservers(function(){this.notifyPropertyChange("data")})},materializeId:function(a){k(this,"id",a)},materializeAttributes:function(a){l(this._data,a)},materializeAttribute:function(a,b){this._data[a]=b},updateHasMany:function(a,b){this._data[a]=b,this.hasManyDidChange(a)},updateBelongsTo:function(a,b){this._data[a]=b},rollback:function(){this._attributes={},j(this,"isError")&&(this._inFlightAttributes={},k(this,"isError",!1)),j(this,"isValid")||(this._inFlightAttributes={}),this.send("rolledBack"),this.suspendRelationshipObservers(function(){this.notifyPropertyChange("data")})},toStringExtension:function(){return j(this,"id")},suspendRelationshipObservers:function(a,b){var c=j(this.constructor,"relationshipNames").belongsTo,d=this;try{this._suspendedRelationships=!0,Ember._suspendObservers(d,c,null,"belongsToDidChange",function(){Ember._suspendBeforeObservers(d,c,null,"belongsToWillChange",function(){a.call(b||d)})})}finally{this._suspendedRelationships=!1}},save:function(){var a="DS: Model#save "+this,b=Ember.RSVP.defer(a);return this.get("store").scheduleSave(this,b),this._inFlightAttributes=this._attributes,this._attributes={},i.create({promise:b.promise})},reload:function(){k(this,"isReloading",!0);var a=this,b="DS: Model#reload of "+this,c=new m(function(b){a.send("reloadRecord",b)},b).then(function(){return a.set("isReloading",!1),a.set("isError",!1),a},function(b){throw a.set("isError",!0),b},"DS: Model#reload complete, update flags");return i.create({promise:c})},adapterDidUpdateAttribute:function(a,b){void 0!==b?(this._data[a]=b,this.notifyPropertyChange(a)):this._data[a]=this._inFlightAttributes[a],this.updateRecordArraysLater()},adapterDidInvalidate:function(a){function b(b){a[b]&&c.add(b,a[b])}var c=j(this,"errors");this.eachAttribute(b),this.eachRelationship(b)},adapterDidError:function(){this.send("becameError"),k(this,"isError",!0)},trigger:function(a){Ember.tryInvoke(this,a,[].slice.call(arguments,1)),this._super.apply(this,arguments)},triggerLater:function(){1===this._deferredTriggers.push(arguments)&&Ember.run.schedule("actions",this,"_triggerDeferredTriggers")},_triggerDeferredTriggers:function(){for(var a=0,b=this._deferredTriggers.length;b>a;a++)this.trigger.apply(this,this._deferredTriggers[a]);this._deferredTriggers.length=0},willDestroy:function(){this._super(),this.clearRelationships()}});o.reopenClass({_create:o.create,create:function(){throw new Ember.Error("You should not call `create` on a model. Instead, call `store.createRecord` with the attributes you would like to set.")}}),e["default"]=o}),b("ember-data/lib/system/model/states",["exports"],function(a){"use strict";function b(a,b){b.value===b.originalValue?(delete a._attributes[b.name],a.send("propertyWasReset",b.name)):b.value!==b.oldValue&&a.send("becomeDirty"),a.updateRecordArraysLater()}function c(a){var b,d={};for(var e in a)b=a[e],d[e]=b&&"object"==typeof b?c(b):b;return d}function d(a,b){for(var c in b)a[c]=b[c];return a}function e(a){var b=c(j);return d(b,a)}function f(){}function g(a,b,c){a=d(b?Ember.create(b):{},a),a.parentState=b,a.stateName=c;for(var e in a)a.hasOwnProperty(e)&&"parentState"!==e&&"stateName"!==e&&"object"==typeof a[e]&&(a[e]=g(a[e],a,c+"."+e));return a}var h=Ember.get,i=Ember.set,j={initialState:"uncommitted",isDirty:!0,uncommitted:{didSetProperty:b,propertyWasReset:function(a){var b=!1;for(var c in a._attributes){b=!0;break}b||a.send("rolledBack")},pushedData:Ember.K,becomeDirty:Ember.K,willCommit:function(a){a.transitionTo("inFlight")},reloadRecord:function(a,b){b(h(a,"store").reloadRecord(a))},rolledBack:function(a){a.transitionTo("loaded.saved")},becameInvalid:function(a){a.transitionTo("invalid")},rollback:function(a){a.rollback()}},inFlight:{isSaving:!0,didSetProperty:b,becomeDirty:Ember.K,pushedData:Ember.K,unloadRecord:function(){},willCommit:Ember.K,didCommit:function(a){var b=h(this,"dirtyType");a.transitionTo("saved"),a.send("invokeLifecycleCallbacks",b)},becameInvalid:function(a){a.transitionTo("invalid"),a.send("invokeLifecycleCallbacks")},becameError:function(a){a.transitionTo("uncommitted"),a.triggerLater("becameError",a)}},invalid:{isValid:!1,deleteRecord:function(a){a.transitionTo("deleted.uncommitted"),a.clearRelationships()},didSetProperty:function(a,c){h(a,"errors").remove(c.name),b(a,c)},becomeDirty:Ember.K,willCommit:function(a){h(a,"errors").clear(),a.transitionTo("inFlight")},rolledBack:function(a){h(a,"errors").clear()},becameValid:function(a){a.transitionTo("uncommitted")},invokeLifecycleCallbacks:function(a){a.triggerLater("becameInvalid",a)},exit:function(a){a._inFlightAttributes={}}}},k=e({dirtyType:"created",isNew:!0});k.uncommitted.rolledBack=function(a){a.transitionTo("deleted.saved")};var l=e({dirtyType:"updated"});k.uncommitted.deleteRecord=function(a){a.clearRelationships(),a.transitionTo("deleted.saved")},k.uncommitted.rollback=function(a){j.uncommitted.rollback.apply(this,arguments),a.transitionTo("deleted.saved")},k.uncommitted.propertyWasReset=Ember.K,l.inFlight.unloadRecord=f,l.uncommitted.deleteRecord=function(a){a.transitionTo("deleted.uncommitted"),a.clearRelationships()};var m={isEmpty:!1,isLoading:!1,isLoaded:!1,isDirty:!1,isSaving:!1,isDeleted:!1,isNew:!1,isValid:!0,rolledBack:Ember.K,unloadRecord:function(a){a.clearRelationships(),a.transitionTo("deleted.saved")},propertyWasReset:Ember.K,empty:{isEmpty:!0,loadingData:function(a,b){a._loadingPromise=b,a.transitionTo("loading")},loadedData:function(a){a.transitionTo("loaded.created.uncommitted"),a.suspendRelationshipObservers(function(){a.notifyPropertyChange("data")})},pushedData:function(a){a.transitionTo("loaded.saved"),a.triggerLater("didLoad")}},loading:{isLoading:!0,exit:function(a){a._loadingPromise=null},pushedData:function(a){a.transitionTo("loaded.saved"),a.triggerLater("didLoad"),i(a,"isError",!1)},becameError:function(a){a.triggerLater("becameError",a)},notFound:function(a){a.transitionTo("empty")}},loaded:{initialState:"saved",isLoaded:!0,saved:{setup:function(a){var b=a._attributes,c=!1;for(var d in b)if(b.hasOwnProperty(d)){c=!0;break}c&&a.adapterDidDirty()},didSetProperty:b,pushedData:Ember.K,becomeDirty:function(a){a.transitionTo("updated.uncommitted")},willCommit:function(a){a.transitionTo("updated.inFlight")},reloadRecord:function(a,b){b(h(a,"store").reloadRecord(a))},deleteRecord:function(a){a.transitionTo("deleted.uncommitted"),a.clearRelationships()},unloadRecord:function(a){a.clearRelationships(),a.transitionTo("deleted.saved")},didCommit:function(a){a.send("invokeLifecycleCallbacks",h(a,"lastDirtyType"))},notFound:Ember.K},created:k,updated:l},deleted:{initialState:"uncommitted",dirtyType:"deleted",isDeleted:!0,isLoaded:!0,isDirty:!0,setup:function(a){a.updateRecordArrays()},uncommitted:{willCommit:function(a){a.transitionTo("inFlight")},rollback:function(a){a.rollback()},becomeDirty:Ember.K,deleteRecord:Ember.K,rolledBack:function(a){a.transitionTo("loaded.saved")}},inFlight:{isSaving:!0,unloadRecord:f,willCommit:Ember.K,didCommit:function(a){a.transitionTo("saved"),a.send("invokeLifecycleCallbacks")},becameError:function(a){a.transitionTo("uncommitted"),a.triggerLater("becameError",a)}},saved:{isDirty:!1,setup:function(a){var b=h(a,"store");b.dematerializeRecord(a)},invokeLifecycleCallbacks:function(a){a.triggerLater("didDelete",a),a.triggerLater("didCommit",a)},willCommit:Ember.K,didCommit:Ember.K}},invokeLifecycleCallbacks:function(a,b){"created"===b?a.triggerLater("didCreate",a):a.triggerLater("didUpdate",a),a.triggerLater("didCommit",a)}};m=g(m,null,"root"),a["default"]=m}),b("ember-data/lib/system/record_array_manager",["./record_arrays","exports"],function(a,b){"use strict";function c(a){for(var b=[],c=Ember.keys(a),d=0;dd;d++)c=c.concat(a[d]);return c}var f=a.RecordArray,g=a.FilteredRecordArray,h=a.AdapterPopulatedRecordArray,i=a.ManyArray,j=Ember.get,k=(Ember.set,Ember.EnumerableUtils.forEach);b["default"]=Ember.Object.extend({init:function(){this.filteredRecordArrays=Ember.MapWithDefault.create({defaultValue:function(){return[]}}),this.changedRecords=[],this._adapterPopulatedRecordArrays=[]},recordDidChange:function(a){1===this.changedRecords.push(a)&&Ember.run.schedule("actions",this,this.updateRecordArrays)},recordArraysForRecord:function(a){return a._recordArrays=a._recordArrays||Ember.OrderedSet.create(),a._recordArrays},updateRecordArrays:function(){k(this.changedRecords,function(a){j(a,"isDeleted")?this._recordWasDeleted(a):this._recordWasChanged(a)},this),this.changedRecords.length=0},_recordWasDeleted:function(a){var b=a._recordArrays;b&&k(b,function(b){b.removeRecord(a)})},_recordWasChanged:function(a){var b,c=a.constructor,d=this.filteredRecordArrays.get(c);k(d,function(d){b=j(d,"filterFunction"),this.updateRecordArray(d,b,c,a)},this);var e=a._loadingRecordArrays;if(e){for(var f=0,g=e.length;g>f;f++)e[f].loadedRecord();a._loadingRecordArrays=[]}},updateRecordArray:function(a,b,c,d){var e;e=b?b(d):!0;var f=this.recordArraysForRecord(d);e?(f.add(a),a.addRecord(d)):e||(f.remove(a),a.removeRecord(d))},updateFilter:function(a,b,c){for(var d,e=this.store.typeMapFor(b),f=e.records,g=0,h=f.length;h>g;g++)d=f[g],j(d,"isDeleted")||j(d,"isEmpty")||this.updateRecordArray(a,c,b,d)},createManyArray:function(a,b){var c=i.create({type:a,content:b,store:this.store});return k(b,function(a){var b=this.recordArraysForRecord(a);b.add(c)},this),c},createRecordArray:function(a){var b=f.create({type:a,content:Ember.A(),store:this.store,isLoaded:!0});return this.registerFilteredRecordArray(b,a),b},createFilteredRecordArray:function(a,b,c){var d=g.create({query:c,type:a,content:Ember.A(),store:this.store,manager:this,filterFunction:b});return this.registerFilteredRecordArray(d,a,b),d},createAdapterPopulatedRecordArray:function(a,b){var c=h.create({type:a,query:b,content:Ember.A(),store:this.store,manager:this});return this._adapterPopulatedRecordArrays.push(c),c},registerFilteredRecordArray:function(a,b,c){var d=this.filteredRecordArrays.get(b);d.push(a),this.updateFilter(a,b,c)},registerWaitingRecordArray:function(a,b){var c=a._loadingRecordArrays||[];c.push(b),a._loadingRecordArrays=c},willDestroy:function(){this._super(),k(e(c(this.filteredRecordArrays.values)),d),k(this._adapterPopulatedRecordArrays,d)}})}),b("ember-data/lib/system/record_arrays",["./record_arrays/record_array","./record_arrays/filtered_record_array","./record_arrays/adapter_populated_record_array","./record_arrays/many_array","exports"],function(a,b,c,d,e){"use strict";var f=a["default"],g=b["default"],h=c["default"],i=d["default"];e.RecordArray=f,e.FilteredRecordArray=g,e.AdapterPopulatedRecordArray=h,e.ManyArray=i}),b("ember-data/lib/system/record_arrays/adapter_populated_record_array",["./record_array","exports"],function(a,b){"use strict";{var c=a["default"],d=Ember.get;Ember.set}b["default"]=c.extend({query:null,replace:function(){var a=d(this,"type").toString();throw new Error("The result of a server query (on "+a+") is immutable.")},load:function(a){var b=d(this,"store"),c=d(this,"type"),e=b.pushMany(c,a),f=b.metadataFor(c);this.setProperties({content:Ember.A(e),isLoaded:!0,meta:Ember.copy(f)}),e.forEach(function(a){this.manager.recordArraysForRecord(a).add(this)},this),Ember.run.once(this,"trigger","didLoad")}})}),b("ember-data/lib/system/record_arrays/filtered_record_array",["./record_array","exports"],function(a,b){"use strict";var c=a["default"],d=Ember.get;b["default"]=c.extend({filterFunction:null,isLoaded:!0,replace:function(){var a=d(this,"type").toString();throw new Error("The result of a client-side filter (on "+a+") is immutable.")},_updateFilter:function(){var a=d(this,"manager");a.updateFilter(this,d(this,"type"),d(this,"filterFunction"))},updateFilter:Ember.observer(function(){Ember.run.once(this,this._updateFilter)},"filterFunction")})}),b("ember-data/lib/system/record_arrays/many_array",["./record_array","../changes","exports"],function(a,b,c){"use strict";function d(a){a.sync()}var e=a["default"],f=b.RelationshipChange,g=Ember.get,h=Ember.set,i=Ember.EnumerableUtils.map;c["default"]=e.extend({init:function(){this._super.apply(this,arguments),this._changesToSync=Ember.OrderedSet.create()},name:null,owner:null,isPolymorphic:!1,isLoaded:!1,promise:null,loadingRecordsCount:function(a){this.loadingRecordsCount=a},loadedRecord:function(){this.loadingRecordsCount--,0===this.loadingRecordsCount&&(h(this,"isLoaded",!0),this.trigger("didLoad"))},fetch:function(){var a=g(this,"content"),b=g(this,"store"),c=g(this,"owner"),d=a.filterBy("isEmpty",!0);b.fetchMany(d,c)},replaceContent:function(a,b,c){c=i(c,function(a){return a},this),this._super(a,b,c)},arrangedContentDidChange:function(){Ember.run.once(this,"fetch")},arrayContentWillChange:function(a,b){var c=g(this,"owner"),d=g(this,"name");if(!c._suspendedRelationships)for(var e=a;a+b>e;e++){var h=g(this,"content").objectAt(e),i=f.createChange(c,h,g(this,"store"),{parentType:c.constructor,changeType:"remove",kind:"hasMany",key:d});this._changesToSync.add(i)}return this._super.apply(this,arguments)},arrayContentDidChange:function(a,b,c){this._super.apply(this,arguments);var e=g(this,"owner"),h=g(this,"name"),i=g(this,"store");if(!e._suspendedRelationships){for(var j=a;a+c>j;j++){var k=g(this,"content").objectAt(j),l=f.createChange(e,k,i,{parentType:e.constructor,changeType:"add",kind:"hasMany",key:h});l.hasManyName=h,this._changesToSync.add(l)}this._changesToSync.forEach(d),this._changesToSync.clear()}},createRecord:function(a){var b,c=g(this,"owner"),d=g(c,"store"),e=g(this,"type");return b=d.createRecord.call(d,e,a),this.pushObject(b),b}})}),b("ember-data/lib/system/record_arrays/record_array",["../store","exports"],function(a,b){"use strict";{var c=a.PromiseArray,d=Ember.get;Ember.set}b["default"]=Ember.ArrayProxy.extend(Ember.Evented,{type:null,content:null,isLoaded:!1,isUpdating:!1,store:null,objectAtContent:function(a){var b=d(this,"content");return b.objectAt(a)},update:function(){if(!d(this,"isUpdating")){var a=d(this,"store"),b=d(this,"type");return a.fetchAll(b,this)}},addRecord:function(a){d(this,"content").addObject(a)},removeRecord:function(a){d(this,"content").removeObject(a)},save:function(){var a="DS: RecordArray#save "+d(this,"type"),b=Ember.RSVP.all(this.invoke("save"),a).then(function(a){return Ember.A(a)},null,"DS: RecordArray#save apply Ember.NativeArray");return c.create({promise:b})},_dissociateFromOwnRecords:function(){var a=this;this.forEach(function(b){var c=b._recordArrays;c&&c.remove(a)})},willDestroy:function(){this._dissociateFromOwnRecords(),this._super()}})}),b("ember-data/lib/system/relationship-meta",["../../../ember-inflector/lib/system","exports"],function(a,b){"use strict";function c(a,b){var c,d;return c=b.type||b.key,"string"==typeof c?("hasMany"===b.kind&&(c=e(c)),d=a.modelFor(c)):d=b.type,d}function d(a,b){return{key:b.key,kind:b.kind,type:c(a,b),options:b.options,parentType:b.parentType,isRelationship:!0}}var e=a.singularize;b.typeForRelationshipMeta=c,b.relationshipFromMeta=d}),b("ember-data/lib/system/relationships",["./relationships/belongs_to","./relationships/has_many","../system/relationships/ext","exports"],function(a,b,c,d){"use strict";var e=a["default"],f=b["default"];d.belongsTo=e,d.hasMany=f}),b("ember-data/lib/system/relationships/belongs_to",["../model","../store","../changes","../relationship-meta","exports"],function(a,b,c,d,e){"use strict";function f(a,b,c){return Ember.computed("data",function(a,b){var d,e=h(this,"data"),f=h(this,"store"),g="DS: Async belongsTo "+this+" : "+a;if(c.key=a,2===arguments.length)return void 0===b?null:l.create({promise:j.cast(b,g)});var k=e.links&&e.links[a],m=e[a];return i(m)?k?(d=f.findBelongsTo(this,k,n(f,c)),l.create({promise:d})):null:(d=f.fetchRecord(m)||j.cast(m,g),l.create({promise:d}))}).meta(c)}function g(a,b){"object"==typeof a&&(b=a,a=void 0),b=b||{};var c={type:a,isRelationship:!0,options:b,kind:"belongsTo",key:null};return b.async?f(a,b,c):Ember.computed("data",function(b,c){var d,e,f=h(this,"data"),g=h(this,"store");return e="string"==typeof a?g.modelFor(a):a,2===arguments.length?void 0===c?null:c:(d=f[b],i(d)?null:(g.fetchRecord(d),d))}).meta(c)}{var h=Ember.get,i=(Ember.set,Ember.isNone),j=Ember.RSVP.Promise,k=a.Model,l=b.PromiseObject,m=c.RelationshipChange,n=d.relationshipFromMeta;d.typeForRelationshipMeta}k.reopen({belongsToWillChange:Ember.beforeObserver(function(a,b){if(h(a,"isLoaded")){var c=h(a,b);if(c){var d=h(a,"store"),e=m.createChange(a,c,d,{key:b,kind:"belongsTo",changeType:"remove"});e.sync(),this._changesToSync[b]=e}}}),belongsToDidChange:Ember.immediateObserver(function(a,b){if(h(a,"isLoaded")){var c=h(a,b);if(c){var d=h(a,"store"),e=m.createChange(a,c,d,{key:b,kind:"belongsTo",changeType:"add"});e.sync()}}delete this._changesToSync[b]})}),e["default"]=g}),b("ember-data/lib/system/relationships/ext",["../../../../ember-inflector/lib/system","../relationship-meta","../model"],function(a,b,c){"use strict";{var d=(a.singularize,b.typeForRelationshipMeta),e=b.relationshipFromMeta,f=c.Model,g=Ember.get;Ember.set}f.reopen({didDefineProperty:function(a,b,c){if(c instanceof Ember.Descriptor){var d=c.meta();d.isRelationship&&"belongsTo"===d.kind&&(Ember.addObserver(a,b,null,"belongsToDidChange"),Ember.addBeforeObserver(a,b,null,"belongsToWillChange")),d.parentType=a.constructor}}}),f.reopenClass({typeForRelationship:function(a){var b=g(this,"relationshipsByName").get(a);return b&&b.type},inverseFor:function(a){function b(a,c,d){d=d||[];var e=g(c,"relationships");if(e){var f=e.get(a);return f&&d.push.apply(d,e.get(a)),a.superclass&&b(a.superclass,c,d),d}}var c=this.typeForRelationship(a);if(!c)return null;var d=this.metaForProperty(a).options;if(null===d.inverse)return null;var e,f,h;if(d.inverse)e=d.inverse,h=Ember.get(c,"relationshipsByName").get(e),f=h.kind;else{var i=b(this,c);if(0===i.length)return null;e=i[0].name,f=i[0].kind}return{type:c,name:e,kind:f}},relationships:Ember.computed(function(){var a=new Ember.MapWithDefault({defaultValue:function(){return[]}});return this.eachComputedProperty(function(b,c){if(c.isRelationship){c.key=b;var e=a.get(d(this.store,c));e.push({name:b,kind:c.kind})}}),a}).cacheable(!1),relationshipNames:Ember.computed(function(){var a={hasMany:[],belongsTo:[]};return this.eachComputedProperty(function(b,c){c.isRelationship&&a[c.kind].push(b)}),a}),relatedTypes:Ember.computed(function(){var a,b=Ember.A();return this.eachComputedProperty(function(c,e){e.isRelationship&&(e.key=c,a=d(this.store,e),b.contains(a)||b.push(a))}),b}).cacheable(!1),relationshipsByName:Ember.computed(function(){var a=Ember.Map.create();return this.eachComputedProperty(function(b,c){if(c.isRelationship){c.key=b;var f=e(this.store,c);f.type=d(this.store,c),a.set(b,f)}}),a}).cacheable(!1),fields:Ember.computed(function(){var a=Ember.Map.create();return this.eachComputedProperty(function(b,c){c.isRelationship?a.set(b,c.kind):c.isAttribute&&a.set(b,"attribute")}),a}),eachRelationship:function(a,b){g(this,"relationshipsByName").forEach(function(c,d){a.call(b,c,d)})},eachRelatedType:function(a,b){g(this,"relatedTypes").forEach(function(c){a.call(b,c)})}}),f.reopen({eachRelationship:function(a,b){this.constructor.eachRelationship(a,b)}})}),b("ember-data/lib/system/relationships/has_many",["../store","../relationship-meta","exports"],function(a,b,c){"use strict";function d(a,b,c){return Ember.computed("data",function(a){var d=this._relationships[a],f="DS: Async hasMany "+this+" : "+a;if(c.key=a,!d){var g=Ember.RSVP.defer(f);d=e(this,a,b,function(b,d){var e,f=d.links&&d.links[a];return e=f?b.findHasMany(this,f,i(b,c),g):b.findMany(this,d[a],j(b,c),g),l(e,"promise",g.promise),e})}var k=d.get("promise").then(function(){return d},null,"DS: Async hasMany records received");return h.create({promise:k})}).meta(c).readOnly()}function e(a,b,c,d){var e=a._relationships;if(e[b])return e[b];var f=k(a,"data"),g=k(a,"store"),h=e[b]=d.call(a,g,f);return m(h,{owner:a,name:b,isPolymorphic:c.polymorphic})}function f(a,b){b=b||{};var c={type:a,isRelationship:!0,options:b,kind:"hasMany",key:null};return b.async?d(a,b,c):Ember.computed("data",function(a){return e(this,a,b,function(b,d){d[a];return b.findMany(this,d[a],j(b,c))})}).meta(c).readOnly()}function g(a,b){return"object"==typeof a&&(b=a,a=void 0),f(a,b)}var h=a.PromiseArray,i=b.relationshipFromMeta,j=b.typeForRelationshipMeta,k=Ember.get,l=Ember.set,m=Ember.setProperties;c["default"]=g}),b("ember-data/lib/system/store",["./adapter","ember-inflector/lib/system/string","exports"],function(a,b,d){"use strict";function e(a){return null==a?null:a+""}function f(a,b,c,d){return b.eachRelationship(function(b,e){if(c.links&&c.links[b])return void(d&&e.options.async&&(d._relationships[b]=null));var f=e.kind,h=c[b];null!=h&&("belongsTo"===f?g(a,c,b,e,h):"hasMany"===f&&(i(a,c,b,e,h),j(d,b,h)))}),c}function g(a,b,d,e,f){if(B||(B=c("ember-data/lib/system/model").Model),!(H(f)||f instanceof B)){var g;"number"==typeof f||"string"==typeof f?(g=h(e,d,b),b[d]=a.recordForId(g,f)):"object"==typeof f&&(b[d]=a.recordForId(f.type,f.id))}}function h(a,b,c){return a.options.polymorphic?c[b+"Type"]:a.type}function i(a,b,c,d,e){for(var f=0,h=e.length;h>f;f++)g(a,e,f,d,e[f])}function j(a,b,c){if(a){var d=k(Ember.A(c),a.get(b).filterBy("isNew"));Ember.A(c).pushObjects(d)}}function k(a,b){var c=a.mapBy("id");return b.reject(function(a){return Ember.A(c).contains(a.id)})}function l(a,b){return y.create({promise:L.cast(a,b)})}function m(a,b){return z.create({promise:L.cast(a,b)})}function n(a,b,c){return a.lookup("serializer:"+b)||a.lookup("serializer:application")||a.lookup("serializer:"+c)||a.lookup("serializer:-default")}function o(a){return a.lookup("serializer:application")||a.lookup("serializer:-default")}function p(a,b){var c=a.serializer,d=a.defaultSerializer,e=a.container;return e&&void 0===c&&(c=n(e,b.typeKey,d)),(null===c||void 0===c)&&(c={extract:function(a,b,c){return c}}),c}function q(a,b,c,d){var e=a.find(b,c,d),f=p(a,c),g="DS: Handle Adapter#find of "+c+" with id: "+d;return L.cast(e,g).then(function(a){var e=f.extract(b,c,a,d,"find");return b.push(c,e)},function(a){var e=b.getById(c,d);throw e.notFound(),a},"DS: Extract payload of '"+c+"'")}function r(a,b,c,d,e){var f=a.findMany(b,c,d,e),g=p(a,c),h="DS: Handle Adapter#findMany of "+c;return L.cast(f,h).then(function(a){var d=g.extract(b,c,a,null,"findMany");b.pushMany(c,d)},null,"DS: Extract payload of "+c)}function s(a,b,c,d,e){var f=a.findHasMany(b,c,d,e),g=p(a,e.type),h="DS: Handle Adapter#findHasMany of "+c+" : "+e.type;return L.cast(f,h).then(function(a){var d=g.extract(b,e.type,a,null,"findHasMany"),f=b.pushMany(e.type,d);c.updateHasMany(e.key,f)},null,"DS: Extract payload of "+c+" : hasMany "+e.type)}function t(a,b,c,d,e){var f=a.findBelongsTo(b,c,d,e),g=p(a,e.type),h="DS: Handle Adapter#findBelongsTo of "+c+" : "+e.type;return L.cast(f,h).then(function(a){var c=g.extract(b,e.type,a,null,"findBelongsTo"),d=b.push(e.type,c);return d.updateBelongsTo(e.key,d),d},null,"DS: Extract payload of "+c+" : "+e.type)}function u(a,b,c,d){var e=a.findAll(b,c,d),f=p(a,c),g="DS: Handle Adapter#findAll of "+c;return L.cast(e,g).then(function(a){var d=f.extract(b,c,a,null,"findAll");return b.pushMany(c,d),b.didUpdateAll(c),b.all(c)},null,"DS: Extract payload of findAll "+c)}function v(a,b,c,d,e){var f=a.findQuery(b,c,d,e),g=p(a,c),h="DS: Handle Adapter#findQuery of "+c;return L.cast(f,h).then(function(a){var d=g.extract(b,c,a,null,"findQuery");return e.load(d),e},null,"DS: Extract payload of findQuery "+c)}function w(a,b,c,d){var e=d.constructor,f=a[c](b,e,d),g=p(a,e),h="DS: Extract and notify about "+c+" completion of "+d;return f.then(function(a){var f;return f=a?g.extract(b,e,a,E(d,"id"),c):a,b.didSaveRecord(d,f),d},function(a){throw a instanceof C?b.recordWasInvalid(d,a.errors):b.recordWasError(d,a),a
-},h)}var x,y,z,A,B,C=a.InvalidError,D=(a.Adapter,b.singularize),E=Ember.get,F=Ember.set,G=Ember.run.once,H=Ember.isNone,I=Ember.EnumerableUtils.forEach,J=Ember.EnumerableUtils.indexOf,K=Ember.EnumerableUtils.map,L=Ember.RSVP.Promise,M=Ember.copy,N=Ember.String.camelize;x=Ember.Object.extend({init:function(){A||(A=c("ember-data/lib/system/record_array_manager")["default"]),this.typeMaps={},this.recordArrayManager=A.create({store:this}),this._relationshipChanges={},this._pendingSave=[]},adapter:"-rest",serialize:function(a,b){return this.serializerFor(a.constructor.typeKey).serialize(a,b)},defaultAdapter:Ember.computed("adapter",function(){var a=E(this,"adapter");return"string"==typeof a&&(a=this.container.lookup("adapter:"+a)||this.container.lookup("adapter:application")||this.container.lookup("adapter:-rest")),DS.Adapter.detect(a)&&(a=a.create({container:this.container})),a}),createRecord:function(a,b){var c=this.modelFor(a),d=M(b)||{};H(d.id)&&(d.id=this._generateId(c)),d.id=e(d.id);var f=this.buildRecord(c,d.id);return f.loadedData(),f.setProperties(d),f},_generateId:function(a){var b=this.adapterFor(a);return b&&b.generateIdForRecord?b.generateIdForRecord(this):null},deleteRecord:function(a){a.deleteRecord()},unloadRecord:function(a){a.unloadRecord()},find:function(a,b){return 1===arguments.length?this.findAll(a):"object"===Ember.typeOf(b)?this.findQuery(a,b):this.findById(a,e(b))},findById:function(a,b){var c=this.modelFor(a),d=this.recordForId(c,b),e=this.fetchRecord(d);return l(e||d,"DS: Store#findById "+c+" with id: "+b)},findByIds:function(a,b){var c=this;return m(Ember.RSVP.all(K(b,function(b){return c.findById(a,b)})).then(Ember.A,null,"DS: Store#findByIds of "+a+" complete"))},fetchRecord:function(a){if(H(a))return null;if(a._loadingPromise)return a._loadingPromise;if(!E(a,"isEmpty"))return null;var b=a.constructor,c=E(a,"id"),d=this.adapterFor(b),e=q(d,this,b,c);return a.loadingData(e),e},getById:function(a,b){return this.hasRecordForId(a,b)?this.recordForId(a,b):null},reloadRecord:function(a){var b=a.constructor,c=this.adapterFor(b),d=E(a,"id");return q(c,this,b,d)},fetchMany:function(a,b){if(!a.length)return Ember.RSVP.resolve(a);var c=Ember.MapWithDefault.create({defaultValue:function(){return Ember.A()}});I(a,function(a){c.get(a.constructor).push(a)});var d=[];return I(c,function(a,c){var e=c.mapBy("id"),f=this.adapterFor(a);d.push(r(f,this,a,e,b))},this),Ember.RSVP.all(d)},hasRecordForId:function(a,b){var c=this.modelFor(a),d=e(b);return!!this.typeMapFor(c).idToRecord[d]},recordForId:function(a,b){var c=this.modelFor(a),d=e(b),f=this.typeMapFor(c).idToRecord,g=f[d];return g&&f.hasOwnProperty(d)||(g=this.buildRecord(c,d)),g},findMany:function(a,b,c,d){var e=this.modelFor(c),f=Ember.A(b),g=f.filterBy("isEmpty",!0),h=this.recordArrayManager.createManyArray(e,f);return I(g,function(a){a.loadingData()}),h.loadingRecordsCount=g.length,g.length?(I(g,function(a){this.recordArrayManager.registerWaitingRecordArray(a,h)},this),d.resolve(this.fetchMany(g,a))):(d&&d.resolve(),h.set("isLoaded",!0),G(h,"trigger","didLoad")),h},findHasMany:function(a,b,c,d){var e=this.adapterFor(a.constructor),f=this.recordArrayManager.createManyArray(c.type,Ember.A([]));return d.resolve(s(e,this,a,b,c)),f},findBelongsTo:function(a,b,c){var d=this.adapterFor(a.constructor);return t(d,this,a,b,c)},findQuery:function(a,b){var c=this.modelFor(a),d=this.recordArrayManager.createAdapterPopulatedRecordArray(c,b),e=this.adapterFor(c);return m(v(e,this,c,b,d))},findAll:function(a){var b=this.modelFor(a);return this.fetchAll(b,this.all(b))},fetchAll:function(a,b){var c=this.adapterFor(a),d=this.typeMapFor(a).metadata.since;return F(b,"isUpdating",!0),m(u(c,this,a,d))},didUpdateAll:function(a){var b=this.typeMapFor(a).findAllCache;F(b,"isUpdating",!1)},all:function(a){var b=this.modelFor(a),c=this.typeMapFor(b),d=c.findAllCache;if(d)return d;var e=this.recordArrayManager.createRecordArray(b);return c.findAllCache=e,e},unloadAll:function(a){for(var b,c=this.modelFor(a),d=this.typeMapFor(c),e=d.records.slice(),f=0;fa?"0"+a:""+a}var d=a["default"];b["default"]=d.extend({deserialize:function(a){var b=typeof a;return"string"===b?new Date(Ember.Date.parse(a)):"number"===b?new Date(a):null===a||void 0===a?a:null},serialize:function(a){if(a instanceof Date){var b=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],d=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],e=a.getUTCFullYear(),f=a.getUTCMonth(),g=a.getUTCDate(),h=a.getUTCDay(),i=a.getUTCHours(),j=a.getUTCMinutes(),k=a.getUTCSeconds(),l=b[h],m=c(g),n=d[f];return l+", "+m+" "+n+" "+e+" "+c(i)+":"+c(j)+":"+c(k)+" GMT"}return null}})}),b("ember-data/lib/transforms/number",["./base","exports"],function(a,b){"use strict";var c=a["default"],d=Ember.isEmpty;b["default"]=c.extend({deserialize:function(a){return d(a)?null:Number(a)},serialize:function(a){return d(a)?null:Number(a)}})}),b("ember-data/lib/transforms/string",["./base","exports"],function(a,b){"use strict";var c=a["default"],d=Ember.isNone;b["default"]=c.extend({deserialize:function(a){return d(a)?null:String(a)},serialize:function(a){return d(a)?null:String(a)}})}),b("ember-inflector/lib/ext/string",["../system/string"],function(a){"use strict";var b=a.pluralize,c=a.singularize;(Ember.EXTEND_PROTOTYPES===!0||Ember.EXTEND_PROTOTYPES.String)&&(String.prototype.pluralize=function(){return b(this)},String.prototype.singularize=function(){return c(this)})}),b("ember-inflector/lib/main",["./system","./ext/string","exports"],function(a,b,c){"use strict";var d=a.Inflector,e=a.defaultRules,f=a.pluralize,g=a.singularize;d.defaultRules=e,Ember.Inflector=d,Ember.String.pluralize=f,Ember.String.singularize=g,c["default"]=d,c.pluralize=f,c.singularize=g}),b("ember-inflector/lib/system",["./system/inflector","./system/string","./system/inflections","exports"],function(a,b,c,d){"use strict";var e=a["default"],f=b.pluralize,g=b.singularize,h=c["default"];e.inflector=new e(h),d.Inflector=e,d.singularize=g,d.pluralize=f,d.defaultRules=h}),b("ember-inflector/lib/system/inflections",["exports"],function(a){"use strict";var b={plurals:[[/$/,"s"],[/s$/i,"s"],[/^(ax|test)is$/i,"$1es"],[/(octop|vir)us$/i,"$1i"],[/(octop|vir)i$/i,"$1i"],[/(alias|status)$/i,"$1es"],[/(bu)s$/i,"$1ses"],[/(buffal|tomat)o$/i,"$1oes"],[/([ti])um$/i,"$1a"],[/([ti])a$/i,"$1a"],[/sis$/i,"ses"],[/(?:([^f])fe|([lr])f)$/i,"$1$2ves"],[/(hive)$/i,"$1s"],[/([^aeiouy]|qu)y$/i,"$1ies"],[/(x|ch|ss|sh)$/i,"$1es"],[/(matr|vert|ind)(?:ix|ex)$/i,"$1ices"],[/^(m|l)ouse$/i,"$1ice"],[/^(m|l)ice$/i,"$1ice"],[/^(ox)$/i,"$1en"],[/^(oxen)$/i,"$1"],[/(quiz)$/i,"$1zes"]],singular:[[/s$/i,""],[/(ss)$/i,"$1"],[/(n)ews$/i,"$1ews"],[/([ti])a$/i,"$1um"],[/((a)naly|(b)a|(d)iagno|(p)arenthe|(p)rogno|(s)ynop|(t)he)(sis|ses)$/i,"$1sis"],[/(^analy)(sis|ses)$/i,"$1sis"],[/([^f])ves$/i,"$1fe"],[/(hive)s$/i,"$1"],[/(tive)s$/i,"$1"],[/([lr])ves$/i,"$1f"],[/([^aeiouy]|qu)ies$/i,"$1y"],[/(s)eries$/i,"$1eries"],[/(m)ovies$/i,"$1ovie"],[/(x|ch|ss|sh)es$/i,"$1"],[/^(m|l)ice$/i,"$1ouse"],[/(bus)(es)?$/i,"$1"],[/(o)es$/i,"$1"],[/(shoe)s$/i,"$1"],[/(cris|test)(is|es)$/i,"$1is"],[/^(a)x[ie]s$/i,"$1xis"],[/(octop|vir)(us|i)$/i,"$1us"],[/(alias|status)(es)?$/i,"$1"],[/^(ox)en/i,"$1"],[/(vert|ind)ices$/i,"$1ex"],[/(matr)ices$/i,"$1ix"],[/(quiz)zes$/i,"$1"],[/(database)s$/i,"$1"]],irregularPairs:[["person","people"],["man","men"],["child","children"],["sex","sexes"],["move","moves"],["cow","kine"],["zombie","zombies"]],uncountable:["equipment","information","rice","money","species","series","fish","sheep","jeans","police"]};a["default"]=b}),b("ember-inflector/lib/system/inflector",["exports"],function(a){"use strict";function b(a,b){for(var c=0,d=b.length;d>c;c++)a.uncountable[b[c].toLowerCase()]=!0}function c(a,b){for(var c,d=0,e=b.length;e>d;d++)c=b[d],a.irregular[c[0].toLowerCase()]=c[1],a.irregularInverse[c[1].toLowerCase()]=c[0]}function d(a){a=a||{},a.uncountable=a.uncountable||{},a.irregularPairs=a.irregularPairs||{};var d=this.rules={plurals:a.plurals||[],singular:a.singular||[],irregular:{},irregularInverse:{},uncountable:{}};b(d,a.uncountable),c(d,a.irregularPairs)}var e=/^\s*$/;d.prototype={plural:function(a,b){this.rules.plurals.push([a,b.toLowerCase()])},singular:function(a,b){this.rules.singular.push([a,b.toLowerCase()])},uncountable:function(a){b(this.rules,[a.toLowerCase()])},irregular:function(a,b){c(this.rules,[[a,b]])},pluralize:function(a){return this.inflect(a,this.rules.plurals,this.rules.irregular)},singularize:function(a){return this.inflect(a,this.rules.singular,this.rules.irregularInverse)},inflect:function(a,b,c){var d,f,g,h,i,j,k,l;if(i=e.test(a))return a;if(h=a.toLowerCase(),j=this.rules.uncountable[h])return a;if(k=c&&c[h])return k;for(var m=b.length,n=0;m>n&&(d=b[m-1],l=d[0],!l.test(a));m--);return d=d||[],l=d[0],f=d[1],g=a.replace(l,f)}},a["default"]=d}),b("ember-inflector/lib/system/string",["./inflector","exports"],function(a,b){"use strict";var c=a["default"],d=function(a){return c.inflector.pluralize(a)},e=function(a){return c.inflector.singularize(a)};b.pluralize=d,b.singularize=e}),a.DS=c("ember-data/lib/main")["default"]}(Ember.lookup);
+// Fetched on: 2014-08-07T09:19:41Z
+(function(e){var r,t,i,a;(function(){var e;if(!Array.isArray){e=function(e){return Object.prototype.toString.call(e)==="[object Array]"}}else{e=Array.isArray}var n={},s={},o={};var d=false;r=function(r,t,i){if(!e(t)){i=t;t=[]}n[r]={deps:t,callback:i}};function u(e,r,t){var a=e.length;var n=new Array(a);var s;var o;for(var d=0,u=a;d0;r--){t=e[r-1];i=t["deprecated"];a=t["valid"];this.registerDeprecation(i,a)}};e["default"]=r});r("ember-data/system/debug",["ember-data/system/debug/debug_info","ember-data/system/debug/debug_adapter","exports"],function(e,r,t){"use strict";var i=r["default"];t["default"]=i});r("ember-data/system/debug/debug_adapter",["ember-data/system/model","exports"],function(e,r){"use strict";var t=e.Model;var i=Ember.get;var a=Ember.String.capitalize;var n=Ember.String.underscore;r["default"]=Ember.DataAdapter.extend({getFilters:function(){return[{name:"isNew",desc:"New"},{name:"isModified",desc:"Modified"},{name:"isClean",desc:"Clean"}]},detect:function(e){return e!==t&&t.detect(e)},columnsForType:function(e){var r=[{name:"id",desc:"Id"}];var t=0;var s=this;i(e,"attributes").forEach(function(e,i){if(t++>s.attributeLimit){return false}var o=a(n(e).replace("_"," "));r.push({name:e,desc:o})});return r},getRecords:function(e){return this.get("store").all(e)},getRecordColumnValues:function(e){var r=this,t=0;var a={id:i(e,"id")};e.eachAttribute(function(n){if(t++>r.attributeLimit){return false}var s=i(e,n);a[n]=s});return a},getRecordKeywords:function(e){var r=[];var t=Ember.A(["id"]);e.eachAttribute(function(e){t.push(e)});t.forEach(function(t){r.push(i(e,t))});return r},getRecordFilterValues:function(e){return{isNew:e.get("isNew"),isModified:e.get("isDirty")&&!e.get("isNew"),isClean:!e.get("isDirty")}},getRecordColor:function(e){var r="black";if(e.get("isNew")){r="green"}else if(e.get("isDirty")){r="blue"}return r},observeRecord:function(e,r){var t=Ember.A(),i=this;var a=Ember.A(["id","isNew","isDirty"]);e.eachAttribute(function(e){a.push(e)});a.forEach(function(a){var n=function(){r(i.wrapRecord(e))};Ember.addObserver(e,a,n);t.push(function(){Ember.removeObserver(e,a,n)})});var n=function(){t.forEach(function(e){e()})};return n}})});r("ember-data/system/debug/debug_info",["ember-data/system/model","exports"],function(e,r){"use strict";var t=e.Model;t.reopen({_debugInfo:function(){var e=["id"],r={belongsTo:[],hasMany:[]},t=[];this.eachAttribute(function(r,t){e.push(r)},this);this.eachRelationship(function(e,i){r[i.kind].push(e);t.push(e)});var i=[{name:"Attributes",properties:e,expand:true},{name:"Belongs To",properties:r.belongsTo,expand:true},{name:"Has Many",properties:r.hasMany,expand:true},{name:"Flags",properties:["isLoaded","isDirty","isSaving","isDeleted","isError","isNew","isValid"]}];return{propertyInfo:{includeOtherProperties:true,groups:i,expensiveProperties:t}}}});r["default"]=t});r("ember-data/system/model",["ember-data/system/model/model","ember-data/system/model/attributes","ember-data/system/model/states","ember-data/system/model/errors","exports"],function(e,r,t,i,a){"use strict";var n=e["default"];var s=r["default"];var o=t["default"];var d=i["default"];a.Model=n;a.RootState=o;a.attr=s;a.Errors=d});r("ember-data/system/model/attributes",["ember-data/system/model/model","exports"],function(e,r){"use strict";var t=e["default"];var i=Ember.get;t.reopenClass({attributes:Ember.computed(function(){var e=Ember.Map.create();this.eachComputedProperty(function(r,t){if(t.isAttribute){t.name=r;e.set(r,t)}});return e}).readOnly(),transformedAttributes:Ember.computed(function(){var e=Ember.Map.create();this.eachAttribute(function(r,t){if(t.type){e.set(r,t.type)}});return e}).readOnly(),eachAttribute:function(e,r){i(this,"attributes").forEach(function(t,i){e.call(r,t,i)},r)},eachTransformedAttribute:function(e,r){i(this,"transformedAttributes").forEach(function(t,i){e.call(r,t,i)})}});t.reopen({eachAttribute:function(e,r){this.constructor.eachAttribute(e,r)}});function a(e,r,t){if(typeof r.defaultValue==="function"){return r.defaultValue.apply(null,arguments)}else{return r.defaultValue}}function n(e,r){return e._attributes.hasOwnProperty(r)||e._inFlightAttributes.hasOwnProperty(r)||e._data.hasOwnProperty(r)}function s(e,r){if(e._attributes.hasOwnProperty(r)){return e._attributes[r]}else if(e._inFlightAttributes.hasOwnProperty(r)){return e._inFlightAttributes[r]}else{return e._data[r]}}r["default"]=function o(e,r){r=r||{};var t={type:e,isAttribute:true,options:r};return Ember.computed("data",function(e,t){if(arguments.length>1){var i=s(this,e);if(t!==i){this._attributes[e]=t;this.send("didSetProperty",{name:e,oldValue:i,originalValue:this._data[e],value:t})}return t}else if(n(this,e)){return s(this,e)}else{return a(this,r,e)}}).meta(t)}});r("ember-data/system/model/errors",["exports"],function(e){"use strict";var r=Ember.get;var t=Ember.isEmpty;var i=Ember.EnumerableUtils.map;e["default"]=Ember.Object.extend(Ember.Enumerable,Ember.Evented,{registerHandlers:function(e,r,t){this.on("becameInvalid",e,r);this.on("becameValid",e,t)},errorsByAttributeName:Ember.reduceComputed("content",{initialValue:function(){return Ember.MapWithDefault.create({defaultValue:function(){return Ember.A()}})},addedItem:function(e,r){e.get(r.attribute).pushObject(r);return e},removedItem:function(e,r){e.get(r.attribute).removeObject(r);return e}}),errorsFor:function(e){return r(this,"errorsByAttributeName").get(e)},messages:Ember.computed.mapBy("content","message"),content:Ember.computed(function(){return Ember.A()}),unknownProperty:function(e){var r=this.errorsFor(e);if(t(r)){return null}return r},nextObject:function(e,t,i){return r(this,"content").objectAt(e)},length:Ember.computed.oneWay("content.length").readOnly(),isEmpty:Ember.computed.not("length").readOnly(),add:function(e,t){var i=r(this,"isEmpty");t=this._findOrCreateMessages(e,t);r(this,"content").addObjects(t);this.notifyPropertyChange(e);this.enumerableContentDidChange();if(i&&!r(this,"isEmpty")){this.trigger("becameInvalid")}},_findOrCreateMessages:function(e,r){var t=this.errorsFor(e);return i(Ember.makeArray(r),function(r){return t.findBy("message",r)||{attribute:e,message:r}})},remove:function(e){if(r(this,"isEmpty")){return}var t=r(this,"content").rejectBy("attribute",e);r(this,"content").setObjects(t);this.notifyPropertyChange(e);this.enumerableContentDidChange();if(r(this,"isEmpty")){this.trigger("becameValid")}},clear:function(){if(r(this,"isEmpty")){return}r(this,"content").clear();this.enumerableContentDidChange();this.trigger("becameValid")},has:function(e){return!t(this.errorsFor(e))}})});r("ember-data/system/model/model",["ember-data/system/model/states","ember-data/system/model/errors","ember-data/system/store","exports"],function(e,r,i,a){"use strict";var n=e["default"];var s=r["default"];var o=i.PromiseObject;var d=Ember.get;var u=Ember.set;var c=Ember.merge;var l=Ember.RSVP.Promise;var f=Ember.ArrayPolyfills.forEach;var h;var p=Ember.computed("currentState",function(e,r){return d(d(this,"currentState"),e)}).readOnly();var m=Object.create(null);var v=Object.create(null);function y(e){return v[e]||(v[e]=e.split("."))}function b(e){return m[e]||(m[e]=y(e)[0])}var g=Ember.Object.extend(Ember.Evented,{_recordArrays:undefined,_relationships:undefined,_loadingRecordArrays:undefined,isEmpty:p,isLoading:p,isLoaded:p,isDirty:p,isSaving:p,isDeleted:p,isNew:p,isValid:p,dirtyType:p,isError:false,isReloading:false,clientId:null,id:null,currentState:n.empty,errors:Ember.computed(function(){var e=s.create();e.registerHandlers(this,function(){this.send("becameInvalid")},function(){this.send("becameValid")});return e}).readOnly(),serialize:function(e){var r=d(this,"store");return r.serialize(this,e)},toJSON:function(e){if(!h){h=t("ember-data/serializers/json_serializer")["default"]}var r=h.create({container:this.container});return r.serialize(this,e)},didLoad:Ember.K,didUpdate:Ember.K,didCreate:Ember.K,didDelete:Ember.K,becameInvalid:Ember.K,becameError:Ember.K,data:Ember.computed(function(){this._data=this._data||{};return this._data}).readOnly(),_data:null,init:function(){this._super();this._setup()},_setup:function(){this._changesToSync={};this._deferredTriggers=[];this._data={};this._attributes={};this._inFlightAttributes={};this._relationships={}},send:function(e,r){var t=d(this,"currentState");if(!t[e]){this._unhandledEvent(t,e,r)}return t[e](this,r)},transitionTo:function(e){var r=b(e);var t=d(this,"currentState");var i=t;do{if(i.exit){i.exit(this)}i=i.parentState}while(!i.hasOwnProperty(r));var a=y(e);var n=[],s=[],o,c;for(o=0,c=a.length;o1){K(i,t,e,s,n).then(d).then(u(n)).then(null,c(n))}else if(s.length===1){var l=Ember.A(r).findBy("record",a[0]);o(l)}else{}})}else{l(r,o)}},getById:function(e,r){if(this.hasRecordForId(e,r)){return this.recordForId(e,r)}else{return null}},reloadRecord:function(e){var r=e.constructor;var t=this.adapterFor(r);var i=o(e,"id");return this.scheduleFetch(e)},hasRecordForId:function(e,r){var t=this.modelFor(e);var i=_(r);return!!this.typeMapFor(t).idToRecord[i]},recordForId:function(e,r){var t=this.modelFor(e);var i=_(r);var a=this.typeMapFor(t).idToRecord;var n=a[i];if(!n||!a[i]){n=this.buildRecord(t,i)}return n},findMany:function(e,r,t,i){var a=this.modelFor(t);var n=Ember.A(r);var s=n.filterProperty("isEmpty",true);var o=this.recordArrayManager.createManyArray(a,n);o.loadingRecordsCount=s.length;if(s.length){l(s,function(e){this.recordArrayManager.registerWaitingRecordArray(e,o)},this);i.resolve(this.scheduleFetchMany(s,e))}else{if(i){i.resolve()}o.set("isLoaded",true);u(o,"trigger","didLoad")}return o},findHasMany:function(e,r,t,i){var a=this.adapterFor(e.constructor);var n=this.recordArrayManager.createManyArray(t.type,Ember.A([]));i.resolve(j(a,this,e,r,t));return n},findBelongsTo:function(e,r,t){var i=this.adapterFor(e.constructor);return L(i,this,e,r,t)},findQuery:function(e,r){var t=this.modelFor(e);var i=this.recordArrayManager.createAdapterPopulatedRecordArray(t,r);var a=this.adapterFor(t);return M(U(a,this,t,r,i))},findAll:function(e){var r=this.modelFor(e);return this.fetchAll(r,this.all(r))},fetchAll:function(e,r){var t=this.adapterFor(e);var i=this.typeMapFor(e).metadata.since;d(r,"isUpdating",true);return M(B(t,this,e,i))},didUpdateAll:function(e){var r=this.typeMapFor(e).findAllCache;d(r,"isUpdating",false)},all:function(e){var r=this.modelFor(e);var t=this.typeMapFor(r);var i=t.findAllCache;if(i){return i}var a=this.recordArrayManager.createRecordArray(r);t.findAllCache=a;return a},unloadAll:function(e){var r=this.modelFor(e);var t=this.typeMapFor(r);var i=t.records.slice();var a;for(var n=0;nE;R--){o=n[R-1];g=o[0];if(g.test(e)){break}}o=o||[];g=o[0];d=o[1];u=e.replace(g,d);return u}};e["default"]=o});r("ember-inflector/system/string",["./inflector","exports"],function(e,r){"use strict";var t=e["default"];function i(e){return t.inflector.pluralize(e)}function a(e){return t.inflector.singularize(e)}r.pluralize=i;r.singularize=a});e.DS=t("ember-data")["default"]})(this);
diff --git a/vendor/assets/ember/production/ember.js b/vendor/assets/ember/production/ember.js
index e1618ead..d13e032a 100644
--- a/vendor/assets/ember/production/ember.js
+++ b/vendor/assets/ember/production/ember.js
@@ -1,21 +1,21 @@
// Fetched from channel: canary, with url http://builds.emberjs.com/canary/ember.min.js
-// Fetched on: 2014-07-01T13:19:24Z
-(function(){var define,requireModule,require,requirejs,Ember;(function(){Ember=this.Ember=this.Ember||{};if(typeof Ember==="undefined"){Ember={}}if(typeof Ember.__loader==="undefined"){var registry={},seen={};define=function(name,deps,callback){registry[name]={deps:deps,callback:callback}};requirejs=require=requireModule=function(name){if(seen.hasOwnProperty(name)){return seen[name]}seen[name]={};if(!registry[name]){throw new Error("Could not find module "+name)}var mod=registry[name],deps=mod.deps,callback=mod.callback,reified=[],exports;for(var i=0,l=deps.length;i3?slice.call(arguments,3):undefined;if(!this.currentInstance){createAutorun(this)}return this.currentInstance.schedule(queueName,target,method,args,false,stack)},deferOnce:function(queueName,target,method){if(!method){method=target;target=null}if(isString(method)){method=target[method]}var stack=this.DEBUG?new Error:undefined,args=arguments.length>3?slice.call(arguments,3):undefined;if(!this.currentInstance){createAutorun(this)}return this.currentInstance.schedule(queueName,target,method,args,true,stack)},setTimeout:function(){var args=slice.call(arguments),length=args.length,method,wait,target,methodOrTarget,methodOrWait,methodOrArgs;if(length===0){return}else if(length===1){method=args.shift();wait=0}else if(length===2){methodOrTarget=args[0];methodOrWait=args[1];if(isFunction(methodOrWait)||isFunction(methodOrTarget[methodOrWait])){target=args.shift();method=args.shift();wait=0}else if(isCoercableNumber(methodOrWait)){method=args.shift();wait=args.shift()}else{method=args.shift();wait=0}}else{var last=args[args.length-1];if(isCoercableNumber(last)){wait=args.pop()}else{wait=0}methodOrTarget=args[0];methodOrArgs=args[1];if(isFunction(methodOrArgs)||isString(methodOrArgs)&&methodOrTarget!==null&&methodOrArgs in methodOrTarget){target=args.shift();method=args.shift()}else{method=args.shift()}}var executeAt=+new Date+parseInt(wait,10);if(isString(method)){method=target[method]}var onError=getOnError(this.options);function fn(){if(onError){try{method.apply(target,args)}catch(e){onError(e)}}else{method.apply(target,args)}}var i=searchTimer(executeAt,timers);timers.splice(i,0,executeAt,fn);updateLaterTimer(this,executeAt,wait);return fn},throttle:function(target,method){var self=this,args=arguments,immediate=pop.call(args),wait,throttler,index,timer;if(isNumber(immediate)||isString(immediate)){wait=immediate;immediate=true}else{wait=pop.call(args)}wait=parseInt(wait,10);index=findThrottler(target,method,this._throttlers);if(index>-1){return this._throttlers[index]}timer=global.setTimeout(function(){if(!immediate){self.run.apply(self,args)}var index=findThrottler(target,method,self._throttlers);if(index>-1){self._throttlers.splice(index,1)}},wait);if(immediate){self.run.apply(self,args)}throttler=[target,method,timer];this._throttlers.push(throttler);return throttler},debounce:function(target,method){var self=this,args=arguments,immediate=pop.call(args),wait,index,debouncee,timer;if(isNumber(immediate)||isString(immediate)){wait=immediate;immediate=false}else{wait=pop.call(args)}wait=parseInt(wait,10);index=findDebouncee(target,method,this._debouncees);if(index>-1){debouncee=this._debouncees[index];this._debouncees.splice(index,1);clearTimeout(debouncee[2])}timer=global.setTimeout(function(){if(!immediate){self.run.apply(self,args)}var index=findDebouncee(target,method,self._debouncees);if(index>-1){self._debouncees.splice(index,1)}},wait);if(immediate&&index===-1){self.run.apply(self,args)}debouncee=[target,method,timer];self._debouncees.push(debouncee);return debouncee},cancelTimers:function(){var clearItems=function(item){clearTimeout(item[2])};each(this._throttlers,clearItems);this._throttlers=[];each(this._debouncees,clearItems);this._debouncees=[];if(this._laterTimer){clearTimeout(this._laterTimer);this._laterTimer=null}timers=[];if(this._autorun){clearTimeout(this._autorun);this._autorun=null}},hasTimers:function(){return!!timers.length||!!this._debouncees.length||!!this._throttlers.length||this._autorun},cancel:function(timer){var timerType=typeof timer;if(timer&&timerType==="object"&&timer.queue&&timer.method){return timer.queue.cancel(timer)}else if(timerType==="function"){for(var i=0,l=timers.length;i-1){item=array[index];if(item[2]===timer[2]){array.splice(index,1);clearTimeout(timer[2]);return true}}return false}};Backburner.prototype.schedule=Backburner.prototype.defer;Backburner.prototype.scheduleOnce=Backburner.prototype.deferOnce;Backburner.prototype.later=Backburner.prototype.setTimeout;if(needsIETryCatchFix){var originalRun=Backburner.prototype.run;Backburner.prototype.run=wrapInTryCatch(originalRun);var originalEnd=Backburner.prototype.end;Backburner.prototype.end=wrapInTryCatch(originalEnd)}function wrapInTryCatch(func){return function(){try{return func.apply(this,arguments)}catch(e){throw e}}}function getOnError(options){return options.onError||options.onErrorTarget&&options.onErrorTarget[options.onErrorMethod]}function createAutorun(backburner){backburner.begin();backburner._autorun=global.setTimeout(function(){backburner._autorun=null;backburner.end()})}function updateLaterTimer(self,executeAt,wait){if(!self._laterTimer||executeAt=timers[middle]){start=middle+2}else{end=middle}}return time>=timers[start]?start+2:start}__exports__.Backburner=Backburner});define("backburner/deferred_action_queues",["backburner/utils","backburner/queue","exports"],function(__dependency1__,__dependency2__,__exports__){"use strict";var Utils=__dependency1__["default"];var Queue=__dependency2__.Queue;var each=Utils.each,isString=Utils.isString;function DeferredActionQueues(queueNames,options){var queues=this.queues={};this.queueNames=queueNames=queueNames||[];this.options=options;each(queueNames,function(queueName){queues[queueName]=new Queue(this,queueName,options)})}DeferredActionQueues.prototype={queueNames:null,queues:null,options:null,schedule:function(queueName,target,method,args,onceFlag,stack){var queues=this.queues,queue=queues[queueName];if(!queue){throw new Error("You attempted to schedule an action in a queue ("+queueName+") that doesn't exist")}if(onceFlag){return queue.pushUnique(target,method,args,stack)}else{return queue.push(target,method,args,stack)}},invoke:function(target,method,args,_){if(args&&args.length>0){method.apply(target,args)}else{method.call(target)}},invokeWithOnError:function(target,method,args,onError){try{if(args&&args.length>0){method.apply(target,args)}else{method.call(target)}}catch(error){onError(error)}},flush:function(){var queues=this.queues,queueNames=this.queueNames,queueName,queue,queueItems,priorQueueNameIndex,queueNameIndex=0,numberOfQueues=queueNames.length,options=this.options,onError=options.onError||options.onErrorTarget&&options.onErrorTarget[options.onErrorMethod],invoke=onError?this.invokeWithOnError:this.invoke;outerloop:while(queueNameIndex0){if(onError){try{method.apply(target,args)}catch(e){onError(e)}}else{method.apply(target,args)}}else{if(onError){try{method.call(target)}catch(e){onError(e)}}else{method.call(target)}}}if(l&&after){after()}if(queue.length>l){this._queue=queue.slice(l);this.flush()}else{this._queue.length=0}},cancel:function(actionToCancel){var queue=this._queue,currentTarget,currentMethod,i,l;for(i=0,l=queue.length;i1?"they":"it")+" could not be found")}}var defaultControllersComputedProperty=computed(function(){var controller=this;return{needs:get(controller,"needs"),container:get(controller,"container"),unknownProperty:function(controllerName){var needs=this.needs,dependency,i,l;for(i=0,l=needs.length;i0){if(this.container){verifyNeedsDependencies(this,this.container,needs)}get(this,"controllers")}this._super.apply(this,arguments)},controllerFor:function(controllerName){return controllerFor(get(this,"container"),controllerName)},controllers:defaultControllersComputedProperty});__exports__["default"]=ControllerMixin});define("ember-application/system/application",["ember-metal","ember-metal/property_get","ember-metal/property_set","ember-runtime/system/lazy_load","ember-application/system/dag","ember-runtime/system/namespace","ember-runtime/mixins/deferred","ember-application/system/resolver","ember-metal/platform","ember-metal/run_loop","ember-metal/utils","container/container","ember-runtime/controllers/controller","ember-metal/enumerable_utils","ember-runtime/controllers/object_controller","ember-runtime/controllers/array_controller","ember-views/system/event_dispatcher","ember-views/system/jquery","ember-routing/system/route","ember-routing/system/router","ember-routing/location/hash_location","ember-routing/location/history_location","ember-routing/location/auto_location","ember-routing/location/none_location","ember-routing/system/cache","ember-metal/core","ember-handlebars-compiler","ember-application/system/deprecated-container","exports"],function(__dependency1__,__dependency2__,__dependency3__,__dependency4__,__dependency5__,__dependency6__,__dependency7__,__dependency8__,__dependency9__,__dependency10__,__dependency11__,__dependency12__,__dependency13__,__dependency14__,__dependency15__,__dependency16__,__dependency17__,__dependency18__,__dependency19__,__dependency20__,__dependency21__,__dependency22__,__dependency23__,__dependency24__,__dependency25__,__dependency26__,__dependency27__,__dependency28__,__exports__){"use strict";var Ember=__dependency1__["default"];var get=__dependency2__.get;var set=__dependency3__.set;var runLoadHooks=__dependency4__.runLoadHooks;var DAG=__dependency5__["default"];var Namespace=__dependency6__["default"];var DeferredMixin=__dependency7__["default"];var DefaultResolver=__dependency8__["default"];var create=__dependency9__.create;var run=__dependency10__["default"];var canInvoke=__dependency11__.canInvoke;var Container=__dependency12__["default"];var Controller=__dependency13__["default"];var EnumerableUtils=__dependency14__["default"];var ObjectController=__dependency15__["default"];var ArrayController=__dependency16__["default"];var EventDispatcher=__dependency17__["default"];var jQuery=__dependency18__["default"];var Route=__dependency19__["default"];var Router=__dependency20__["default"];var HashLocation=__dependency21__["default"];var HistoryLocation=__dependency22__["default"];var AutoLocation=__dependency23__["default"];var NoneLocation=__dependency24__["default"];var BucketCache=__dependency25__["default"];var K=__dependency26__.K;var EmberHandlebars=__dependency27__["default"];var DeprecatedContainer=__dependency28__["default"];var ContainerDebugAdapter;var Application=Namespace.extend(DeferredMixin,{rootElement:"body",eventDispatcher:null,customEvents:null,_readinessDeferrals:1,init:function(){if(!this.$){this.$=jQuery}this.__container__=this.buildContainer();this.Router=this.defaultRouter();this._super();this.scheduleInitialize();Ember.libraries.registerCoreLibrary("Handlebars",EmberHandlebars.VERSION);Ember.libraries.registerCoreLibrary("jQuery",jQuery().jquery);if(Ember.LOG_VERSION){Ember.LOG_VERSION=false;var nameLengths=EnumerableUtils.map(Ember.libraries,function(item){return get(item,"name.length")});var maxNameLength=Math.max.apply(this,nameLengths);Ember.libraries.each(function(name,version){var spaces=new Array(maxNameLength-name.length+1).join(" ")})}},buildContainer:function(){var container=this.__container__=Application.buildContainer(this);return container},defaultRouter:function(){if(this.Router===false){return}var container=this.__container__;if(this.Router){container.unregister("router:main");
-container.register("router:main",this.Router)}return container.lookupFactory("router:main")},scheduleInitialize:function(){var self=this;if(!this.$||this.$.isReady){run.schedule("actions",self,"_initialize")}else{this.$().ready(function runInitialize(){run(self,"_initialize")})}},deferReadiness:function(){this._readinessDeferrals++},advanceReadiness:function(){this._readinessDeferrals--;if(this._readinessDeferrals===0){run.once(this,this.didBecomeReady)}},register:function(){var container=this.__container__;container.register.apply(container,arguments)},inject:function(){var container=this.__container__;container.injection.apply(container,arguments)},initialize:function(){},_initialize:function(){if(this.isDestroyed){return}if(this.Router){var container=this.__container__;container.unregister("router:main");container.register("router:main",this.Router)}this.runInitializers();runLoadHooks("application",this);this.advanceReadiness();return this},reset:function(){this._readinessDeferrals=1;function handleReset(){var router=this.__container__.lookup("router:main");router.reset();run(this.__container__,"destroy");this.buildContainer();run.schedule("actions",this,function(){this._initialize()})}run.join(this,handleReset)},runInitializers:function(){var initializers=get(this.constructor,"initializers"),container=this.__container__,graph=new DAG,namespace=this,name,initializer;for(name in initializers){initializer=initializers[name];graph.addEdges(initializer.name,initializer.initialize,initializer.before,initializer.after)}graph.topsort(function(vertex){var initializer=vertex.value;initializer(container,namespace)})},didBecomeReady:function(){this.setupEventDispatcher();this.ready();this.startRouting();if(!Ember.testing){Ember.Namespace.processAll();Ember.BOOTED=true}this.resolve(this)},setupEventDispatcher:function(){var customEvents=get(this,"customEvents"),rootElement=get(this,"rootElement"),dispatcher=this.__container__.lookup("event_dispatcher:main");set(this,"eventDispatcher",dispatcher);dispatcher.setup(customEvents,rootElement)},startRouting:function(){var router=this.__container__.lookup("router:main");if(!router){return}router.startRouting()},handleURL:function(url){var router=this.__container__.lookup("router:main");router.handleURL(url)},ready:K,resolver:null,Resolver:null,willDestroy:function(){Ember.BOOTED=false;this.__container__.lookup("router:main").reset();this.__container__.destroy()},initializer:function(options){this.constructor.initializer(options)}});Application.reopenClass({initializers:{},initializer:function(initializer){if(this.superclass.initializers!==undefined&&this.superclass.initializers===this.initializers){this.reopenClass({initializers:create(this.initializers)})}this.initializers[initializer.name]=initializer},buildContainer:function(namespace){var container=new Container;Container.defaultContainer=new DeprecatedContainer(container);container.set=set;container.resolver=resolverFor(namespace);container.normalize=container.resolver.normalize;container.describe=container.resolver.describe;container.makeToString=container.resolver.makeToString;container.optionsForType("component",{singleton:false});container.optionsForType("view",{singleton:false});container.optionsForType("template",{instantiate:false});container.optionsForType("helper",{instantiate:false});container.register("application:main",namespace,{instantiate:false});container.register("controller:basic",Controller,{instantiate:false});container.register("controller:object",ObjectController,{instantiate:false});container.register("controller:array",ArrayController,{instantiate:false});container.register("route:basic",Route,{instantiate:false});container.register("event_dispatcher:main",EventDispatcher);container.register("router:main",Router);container.injection("router:main","namespace","application:main");container.register("location:auto",AutoLocation);container.register("location:hash",HashLocation);container.register("location:history",HistoryLocation);container.register("location:none",NoneLocation);container.injection("controller","target","router:main");container.injection("controller","namespace","application:main");container.register("-bucket-cache:main",BucketCache);container.injection("router","_bucketCache","-bucket-cache:main");container.injection("route","_bucketCache","-bucket-cache:main");container.injection("controller","_bucketCache","-bucket-cache:main");container.injection("route","router","router:main");container.injection("location","rootURL","-location-setting:root-url");container.register("resolver-for-debugging:main",container.resolver.__resolver__,{instantiate:false});container.injection("container-debug-adapter:main","resolver","resolver-for-debugging:main");container.injection("data-adapter:main","containerDebugAdapter","container-debug-adapter:main");if(!ContainerDebugAdapter){ContainerDebugAdapter=requireModule("ember-extension-support/container_debug_adapter")["default"]}container.register("container-debug-adapter:main",ContainerDebugAdapter);return container}});function resolverFor(namespace){if(namespace.get("resolver")){}var ResolverClass=namespace.get("resolver")||namespace.get("Resolver")||DefaultResolver;var resolver=ResolverClass.create({namespace:namespace});function resolve(fullName){return resolver.resolve(fullName)}resolve.describe=function(fullName){return resolver.lookupDescription(fullName)};resolve.makeToString=function(factory,fullName){return resolver.makeToString(factory,fullName)};resolve.normalize=function(fullName){if(resolver.normalize){return resolver.normalize(fullName)}else{return fullName}};resolve.__resolver__=resolver;return resolve}__exports__["default"]=Application});define("ember-application/system/dag",["ember-metal/error","exports"],function(__dependency1__,__exports__){"use strict";var EmberError=__dependency1__["default"];function visit(vertex,fn,visited,path){var name=vertex.name,vertices=vertex.incoming,names=vertex.incomingNames,len=names.length,i;if(!visited){visited={}}if(!path){path=[]}if(visited.hasOwnProperty(name)){return}path.push(name);visited[name]=true;for(i=0;i-1){result=result.replace(/\.(.)/g,function(m){return m.charAt(1).toUpperCase()})}if(name.indexOf("_")>-1){result=result.replace(/_(.)/g,function(m){return m.charAt(1).toUpperCase()})}return type+":"+result}else{return fullName}},resolve:function(fullName){var parsedName=this.parseName(fullName),resolveMethodName=parsedName.resolveMethodName,resolved;if(!(parsedName.name&&parsedName.type)){throw new TypeError("Invalid fullName: `"+fullName+"`, must be of the form `type:name` ")}if(this[resolveMethodName]){resolved=this[resolveMethodName](parsedName)}if(!resolved){resolved=this.resolveOther(parsedName)}if(parsedName.root&&parsedName.root.LOG_RESOLVER){this._logLookup(resolved,parsedName)}return resolved},parseName:function(fullName){var nameParts=fullName.split(":"),type=nameParts[0],fullNameWithoutType=nameParts[1],name=fullNameWithoutType,namespace=get(this,"namespace"),root=namespace;if(type!=="template"&&name.indexOf("/")!==-1){var parts=name.split("/");name=parts[parts.length-1];var namespaceName=capitalize(parts.slice(0,-1).join("."));root=Namespace.byName(namespaceName)}return{fullName:fullName,type:type,fullNameWithoutType:fullNameWithoutType,name:name,root:root,resolveMethodName:"resolve"+classify(type)}},lookupDescription:function(fullName){var parsedName=this.parseName(fullName);if(parsedName.type==="template"){return"template at "+parsedName.fullNameWithoutType.replace(/\./g,"/")}var description=parsedName.root+"."+classify(parsedName.name);if(parsedName.type!=="model"){description+=classify(parsedName.type)}return description},makeToString:function(factory,fullName){return factory.toString()},useRouterNaming:function(parsedName){parsedName.name=parsedName.name.replace(/\./g,"_");if(parsedName.name==="basic"){parsedName.name=""}},resolveTemplate:function(parsedName){var templateName=parsedName.fullNameWithoutType.replace(/\./g,"/");if(Ember.TEMPLATES[templateName]){return Ember.TEMPLATES[templateName]}templateName=decamelize(templateName);if(Ember.TEMPLATES[templateName]){return Ember.TEMPLATES[templateName]}},resolveView:function(parsedName){this.useRouterNaming(parsedName);return this.resolveOther(parsedName)},resolveController:function(parsedName){this.useRouterNaming(parsedName);return this.resolveOther(parsedName)},resolveRoute:function(parsedName){this.useRouterNaming(parsedName);return this.resolveOther(parsedName)},resolveModel:function(parsedName){var className=classify(parsedName.name),factory=get(parsedName.root,className);if(factory){return factory}},resolveHelper:function(parsedName){return this.resolveOther(parsedName)||EmberHandlebars.helpers[parsedName.fullNameWithoutType]},resolveOther:function(parsedName){var className=classify(parsedName.name)+classify(parsedName.type),factory=get(parsedName.root,className);if(factory){return factory}},_logLookup:function(found,parsedName){var symbol,padding;if(found){symbol="[✓]"}else{symbol="[ ]"}if(parsedName.fullName.length>60){padding="."}else{padding=new Array(60-parsedName.fullName.length).join(".")}Logger.info(symbol,parsedName.fullName,padding,this.lookupDescription(parsedName.fullName))}})});define("ember-extension-support",["ember-metal/core","ember-extension-support/data_adapter","ember-extension-support/container_debug_adapter"],function(__dependency1__,__dependency2__,__dependency3__){"use strict";var Ember=__dependency1__["default"];var DataAdapter=__dependency2__["default"];var ContainerDebugAdapter=__dependency3__["default"];Ember.DataAdapter=DataAdapter;Ember.ContainerDebugAdapter=ContainerDebugAdapter});define("ember-extension-support/container_debug_adapter",["ember-metal/core","ember-runtime/system/native_array","ember-metal/utils","ember-runtime/system/string","ember-runtime/system/namespace","ember-runtime/system/object","exports"],function(__dependency1__,__dependency2__,__dependency3__,__dependency4__,__dependency5__,__dependency6__,__exports__){"use strict";var Ember=__dependency1__["default"];var emberA=__dependency2__.A;var typeOf=__dependency3__.typeOf;var dasherize=__dependency4__.dasherize;var classify=__dependency4__.classify;var Namespace=__dependency5__["default"];var EmberObject=__dependency6__["default"];__exports__["default"]=EmberObject.extend({container:null,resolver:null,canCatalogEntriesByType:function(type){if(type==="model"||type==="template")return false;return true},catalogEntriesByType:function(type){var namespaces=emberA(Namespace.NAMESPACES),types=emberA(),self=this;var typeSuffixRegex=new RegExp(classify(type)+"$");namespaces.forEach(function(namespace){if(namespace!==Ember){for(var key in namespace){if(!namespace.hasOwnProperty(key)){continue}if(typeSuffixRegex.test(key)){var klass=namespace[key];if(typeOf(klass)==="class"){types.push(dasherize(key.replace(typeSuffixRegex,"")))}}}}});return types}})});define("ember-extension-support/data_adapter",["ember-metal/core","ember-metal/property_get","ember-metal/run_loop","ember-runtime/system/string","ember-runtime/system/namespace","ember-runtime/system/object","ember-runtime/system/native_array","ember-application/system/application","exports"],function(__dependency1__,__dependency2__,__dependency3__,__dependency4__,__dependency5__,__dependency6__,__dependency7__,__dependency8__,__exports__){"use strict";var Ember=__dependency1__["default"];var get=__dependency2__.get;var run=__dependency3__["default"];var dasherize=__dependency4__.dasherize;var Namespace=__dependency5__["default"];var EmberObject=__dependency6__["default"];var emberA=__dependency7__.A;var Application=__dependency8__["default"];__exports__["default"]=EmberObject.extend({init:function(){this._super();this.releaseMethods=emberA()},container:null,containerDebugAdapter:undefined,attributeLimit:3,releaseMethods:emberA(),getFilters:function(){return emberA()},watchModelTypes:function(typesAdded,typesUpdated){var modelTypes=this.getModelTypes(),self=this,typesToSend,releaseMethods=emberA();typesToSend=modelTypes.map(function(type){var klass=type.klass;var wrapped=self.wrapModelType(klass,type.name);releaseMethods.push(self.observeModelType(klass,typesUpdated));return wrapped});typesAdded(typesToSend);var release=function(){releaseMethods.forEach(function(fn){fn()});self.releaseMethods.removeObject(release)};this.releaseMethods.pushObject(release);return release},_nameToClass:function(type){if(typeof type==="string"){type=this.container.lookupFactory("model:"+type)}return type},watchRecords:function(type,recordsAdded,recordsUpdated,recordsRemoved){var self=this,releaseMethods=emberA(),records=this.getRecords(type),release;var recordUpdated=function(updatedRecord){recordsUpdated([updatedRecord])};var recordsToSend=records.map(function(record){releaseMethods.push(self.observeRecord(record,recordUpdated));return self.wrapRecord(record)});var contentDidChange=function(array,idx,removedCount,addedCount){for(var i=idx;i-1}else{return content==selection}}).property("content","parentView.selection"),labelPathDidChange:observer("parentView.optionLabelPath",function(){var labelPath=get(this,"parentView.optionLabelPath");if(!labelPath){return}defineProperty(this,"label",computed(function(){return get(this,labelPath)}).property(labelPath))}),valuePathDidChange:observer("parentView.optionValuePath",function(){var valuePath=get(this,"parentView.optionValuePath");if(!valuePath){return}defineProperty(this,"value",computed(function(){return get(this,valuePath)}).property(valuePath))})});var SelectOptgroup=CollectionView.extend({instrumentDisplay:"Ember.SelectOptgroup",tagName:"optgroup",attributeBindings:["label"],selectionBinding:"parentView.selection",multipleBinding:"parentView.multiple",optionLabelPathBinding:"parentView.optionLabelPath",optionValuePathBinding:"parentView.optionValuePath",itemViewClassBinding:"parentView.optionView"});var Select=View.extend({instrumentDisplay:"Ember.Select",tagName:"select",classNames:["ember-select"],defaultTemplate:Ember.Handlebars.template(function anonymous(Handlebars,depth0,helpers,partials,data){this.compilerInfo=[4,">= 1.0.0"];helpers=this.merge(helpers,Ember.Handlebars.helpers);data=data||{};var buffer="",stack1,escapeExpression=this.escapeExpression,self=this;function program1(depth0,data){var buffer="",stack1;data.buffer.push('");return buffer}function program3(depth0,data){var stack1;stack1=helpers.each.call(depth0,"view.groupedContent",{hash:{},hashTypes:{},hashContexts:{},inverse:self.noop,fn:self.program(4,program4,data),contexts:[depth0],types:["ID"],data:data});if(stack1||stack1===0){data.buffer.push(stack1)}else{data.buffer.push("")}}function program4(depth0,data){data.buffer.push(escapeExpression(helpers.view.call(depth0,"view.groupView",{hash:{content:"content",label:"label"},hashTypes:{content:"ID",label:"ID"},hashContexts:{content:depth0,label:depth0},contexts:[depth0],types:["ID"],data:data})))}function program6(depth0,data){var stack1;stack1=helpers.each.call(depth0,"view.content",{hash:{},hashTypes:{},hashContexts:{},inverse:self.noop,fn:self.program(7,program7,data),contexts:[depth0],types:["ID"],data:data});if(stack1||stack1===0){data.buffer.push(stack1)}else{data.buffer.push("")}}function program7(depth0,data){data.buffer.push(escapeExpression(helpers.view.call(depth0,"view.optionView",{hash:{content:""},hashTypes:{content:"ID"},hashContexts:{content:depth0},contexts:[depth0],types:["ID"],data:data})))}stack1=helpers["if"].call(depth0,"view.prompt",{hash:{},hashTypes:{},hashContexts:{},inverse:self.noop,fn:self.program(1,program1,data),contexts:[depth0],types:["ID"],data:data});if(stack1||stack1===0){data.buffer.push(stack1)}stack1=helpers["if"].call(depth0,"view.optionGroupPath",{hash:{},hashTypes:{},hashContexts:{},inverse:self.program(6,program6,data),fn:self.program(3,program3,data),contexts:[depth0],types:["ID"],data:data});if(stack1||stack1===0){data.buffer.push(stack1)}return buffer}),attributeBindings:["multiple","disabled","tabindex","name","required","autofocus","form","size"],multiple:false,disabled:false,required:false,content:null,selection:null,value:computed(function(key,value){if(arguments.length===2){return value}var valuePath=get(this,"optionValuePath").replace(/^content\.?/,"");return valuePath?get(this,"selection."+valuePath):get(this,"selection")}).property("selection"),prompt:null,optionLabelPath:"content",optionValuePath:"content",optionGroupPath:null,groupView:SelectOptgroup,groupedContent:computed(function(){var groupPath=get(this,"optionGroupPath");var groupedContent=emberA();var content=get(this,"content")||[];forEach(content,function(item){var label=get(item,groupPath);if(get(groupedContent,"lastObject.label")!==label){groupedContent.pushObject({label:label,content:emberA()})}get(groupedContent,"lastObject.content").push(item)});return groupedContent}).property("optionGroupPath","content.@each"),optionView:SelectOption,_change:function(){if(get(this,"multiple")){this._changeMultiple()}else{this._changeSingle()}},selectionDidChange:observer("selection.@each",function(){var selection=get(this,"selection");if(get(this,"multiple")){if(!isArray(selection)){set(this,"selection",emberA([selection]));return}this._selectionDidChangeMultiple()}else{this._selectionDidChangeSingle()}}),valueDidChange:observer("value",function(){var content=get(this,"content"),value=get(this,"value"),valuePath=get(this,"optionValuePath").replace(/^content\.?/,""),selectedValue=valuePath?get(this,"selection."+valuePath):get(this,"selection"),selection;if(value!==selectedValue){selection=content?content.find(function(obj){return value===(valuePath?get(obj,valuePath):obj)}):null;this.set("selection",selection)}}),_triggerChange:function(){var selection=get(this,"selection");var value=get(this,"value");if(!isNone(selection)){this.selectionDidChange()}if(!isNone(value)){this.valueDidChange()}this._change()},_changeSingle:function(){var selectedIndex=this.$()[0].selectedIndex,content=get(this,"content"),prompt=get(this,"prompt");if(!content||!get(content,"length")){return}if(prompt&&selectedIndex===0){set(this,"selection",null);return}if(prompt){selectedIndex-=1}set(this,"selection",content.objectAt(selectedIndex))},_changeMultiple:function(){var options=this.$("option:selected"),prompt=get(this,"prompt"),offset=prompt?1:0,content=get(this,"content"),selection=get(this,"selection");if(!content){return}if(options){var selectedIndexes=options.map(function(){return this.index-offset}).toArray();var newSelection=content.objectsAt(selectedIndexes);if(isArray(selection)){replace(selection,0,get(selection,"length"),newSelection)}else{set(this,"selection",newSelection)}}},_selectionDidChangeSingle:function(){var el=this.get("element");if(!el){return}var content=get(this,"content"),selection=get(this,"selection"),selectionIndex=content?indexOf(content,selection):-1,prompt=get(this,"prompt");if(prompt){selectionIndex+=1}if(el){el.selectedIndex=selectionIndex}},_selectionDidChangeMultiple:function(){var content=get(this,"content"),selection=get(this,"selection"),selectedIndexes=content?indexesOf(content,selection):[-1],prompt=get(this,"prompt"),offset=prompt?1:0,options=this.$("option"),adjusted;if(options){options.each(function(){adjusted=this.index>-1?this.index-offset:-1;this.selected=indexOf(selectedIndexes,adjusted)>-1})}},init:function(){this._super();this.on("didInsertElement",this,this._triggerChange);this.on("change",this,this._change)}});__exports__["default"]=Select;__exports__.Select=Select;__exports__.SelectOption=SelectOption;__exports__.SelectOptgroup=SelectOptgroup});define("ember-handlebars/controls/text_area",["ember-metal/property_get","ember-views/views/component","ember-handlebars/controls/text_support","ember-metal/mixin","exports"],function(__dependency1__,__dependency2__,__dependency3__,__dependency4__,__exports__){"use strict";var get=__dependency1__.get;var Component=__dependency2__["default"];var TextSupport=__dependency3__["default"];var observer=__dependency4__.observer;__exports__["default"]=Component.extend(TextSupport,{instrumentDisplay:"{{textarea}}",classNames:["ember-text-area"],tagName:"textarea",attributeBindings:["rows","cols","name","selectionEnd","selectionStart","wrap"],rows:null,cols:null,_updateElementValue:observer("value",function(){var value=get(this,"value"),$el=this.$();if($el&&value!==$el.val()){$el.val(value)}}),init:function(){this._super();this.on("didInsertElement",this,this._updateElementValue)}})});define("ember-handlebars/controls/text_field",["ember-metal/property_get","ember-metal/property_set","ember-views/views/component","ember-handlebars/controls/text_support","exports"],function(__dependency1__,__dependency2__,__dependency3__,__dependency4__,__exports__){"use strict";var get=__dependency1__.get;var set=__dependency2__.set;var Component=__dependency3__["default"];var TextSupport=__dependency4__["default"];__exports__["default"]=Component.extend(TextSupport,{instrumentDisplay:'{{input type="text"}}',classNames:["ember-text-field"],tagName:"input",attributeBindings:["type","value","size","pattern","name","min","max","accept","autocomplete","autosave","formaction","formenctype","formmethod","formnovalidate","formtarget","height","inputmode","list","multiple","step","width"],value:"",type:"text",size:null,pattern:null,min:null,max:null})});define("ember-handlebars/controls/text_support",["ember-metal/property_get","ember-metal/property_set","ember-metal/mixin","ember-runtime/mixins/target_action_support","exports"],function(__dependency1__,__dependency2__,__dependency3__,__dependency4__,__exports__){"use strict";var get=__dependency1__.get;var set=__dependency2__.set;var Mixin=__dependency3__.Mixin;var TargetActionSupport=__dependency4__["default"];var TextSupport=Mixin.create(TargetActionSupport,{value:"",attributeBindings:["placeholder","disabled","maxlength","tabindex","readonly","autofocus","form","selectionDirection","spellcheck","required","title","autocapitalize","autocorrect"],placeholder:null,disabled:false,maxlength:null,init:function(){this._super();this.on("focusOut",this,this._elementValueDidChange);this.on("change",this,this._elementValueDidChange);this.on("paste",this,this._elementValueDidChange);this.on("cut",this,this._elementValueDidChange);this.on("input",this,this._elementValueDidChange);this.on("keyUp",this,this.interpretKeyEvents)},action:null,onEvent:"enter",bubbles:false,interpretKeyEvents:function(event){var map=TextSupport.KEY_EVENTS;var method=map[event.keyCode];this._elementValueDidChange();if(method){return this[method](event)}},_elementValueDidChange:function(){set(this,"value",this.$().val())},insertNewline:function(event){sendAction("enter",this,event);sendAction("insert-newline",this,event)},cancel:function(event){sendAction("escape-press",this,event)},focusIn:function(event){sendAction("focus-in",this,event)},focusOut:function(event){sendAction("focus-out",this,event)},keyPress:function(event){sendAction("key-press",this,event)}});TextSupport.KEY_EVENTS={13:"insertNewline",27:"cancel"};function sendAction(eventName,view,event){var action=get(view,eventName),on=get(view,"onEvent"),value=get(view,"value");if(on===eventName||on==="keyPress"&&eventName==="key-press"){view.sendAction("action",value)}view.sendAction(eventName,value);if(action||on===eventName){if(!get(view,"bubbles")){event.stopPropagation()}}}__exports__["default"]=TextSupport});define("ember-handlebars/ext",["ember-metal/core","ember-runtime/system/string","ember-handlebars-compiler","ember-metal/property_get","ember-metal/binding","ember-metal/error","ember-metal/mixin","ember-metal/is_empty","exports"],function(__dependency1__,__dependency2__,__dependency3__,__dependency4__,__dependency5__,__dependency6__,__dependency7__,__dependency8__,__exports__){"use strict";var Ember=__dependency1__["default"];var fmt=__dependency2__.fmt;var EmberHandlebars=__dependency3__["default"];var helpers=EmberHandlebars.helpers;var get=__dependency4__.get;var isGlobalPath=__dependency5__.isGlobalPath;var EmberError=__dependency6__["default"];var IS_BINDING=__dependency7__.IS_BINDING;var resolveHelper,SimpleHandlebarsView;var isEmpty=__dependency8__["default"];var slice=[].slice,originalTemplate=EmberHandlebars.template;function normalizePath(root,path,data){var keywords=data&&data.keywords||{},keyword,isKeyword;keyword=path.split(".",1)[0];if(keywords.hasOwnProperty(keyword)){root=keywords[keyword];isKeyword=true;if(path===keyword){path=""}else{path=path.substr(keyword.length+1)}}return{root:root,path:path,isKeyword:isKeyword}}function handlebarsGet(root,path,options){var data=options&&options.data,normalizedPath=normalizePath(root,path,data),value;if(Ember.FEATURES.isEnabled("ember-handlebars-caps-lookup")){if(isGlobalPath(path)){value=get(Ember.lookup,path)}else{value=get(normalizedPath.root,normalizedPath.path)}}else{root=normalizedPath.root;path=normalizedPath.path;value=get(root,path);if(value===undefined&&root!==Ember.lookup&&isGlobalPath(path)){value=get(Ember.lookup,path)}}return value}function getEscaped(root,path,options){var result=handlebarsGet(root,path,options);if(result===null||result===undefined){result=""}else if(!(result instanceof Handlebars.SafeString)){result=String(result)}if(!options.hash.unescaped){result=Handlebars.Utils.escapeExpression(result)}return result}__exports__.getEscaped=getEscaped;function resolveParams(context,params,options){var resolvedParams=[],types=options.types,param,type;for(var i=0,l=params.length;i2){options.data.isUnbound=true;helper=resolveHelper(container,property)||helpers.helperMissing;out=helper.apply(ctx,slice.call(arguments,1));delete options.data.isUnbound;return out}context=fn.contexts&&fn.contexts.length?fn.contexts[0]:ctx;return handlebarsGet(context,property,fn)}});define("ember-handlebars/helpers/view",["ember-metal/core","ember-runtime/system/object","ember-metal/property_get","ember-metal/property_set","ember-metal/mixin","ember-views/system/jquery","ember-views/views/view","ember-metal/binding","ember-handlebars/ext","ember-runtime/system/string","exports"],function(__dependency1__,__dependency2__,__dependency3__,__dependency4__,__dependency5__,__dependency6__,__dependency7__,__dependency8__,__dependency9__,__dependency10__,__exports__){"use strict";var Ember=__dependency1__["default"];var EmberObject=__dependency2__["default"];var get=__dependency3__.get;var set=__dependency4__.set;var IS_BINDING=__dependency5__.IS_BINDING;var jQuery=__dependency6__["default"];var View=__dependency7__["default"];var isGlobalPath=__dependency8__.isGlobalPath;var normalizePath=__dependency9__.normalizePath;var handlebarsGet=__dependency9__.handlebarsGet;var EmberString=__dependency10__["default"];var LOWERCASE_A_Z=/^[a-z]/,VIEW_PREFIX=/^view\./;function makeBindings(thisContext,options){var hash=options.hash,hashType=options.hashTypes;for(var prop in hash){if(hashType[prop]==="ID"){var value=hash[prop];if(IS_BINDING.test(prop)){}else{hash[prop+"Binding"]=value;hashType[prop+"Binding"]="STRING";delete hash[prop];delete hashType[prop]}}}if(hash.hasOwnProperty("idBinding")){hash.id=handlebarsGet(thisContext,hash.idBinding,options);hashType.id="STRING";delete hash.idBinding;delete hashType.idBinding}}var ViewHelper=EmberObject.create({propertiesFromHTMLOptions:function(options){var hash=options.hash,data=options.data;var extensions={},classes=hash["class"],dup=false;if(hash.id){extensions.elementId=hash.id;dup=true}if(hash.tag){extensions.tagName=hash.tag;dup=true}if(classes){classes=classes.split(" ");extensions.classNames=classes;dup=true}if(hash.classBinding){extensions.classNameBindings=hash.classBinding.split(" ");dup=true}if(hash.classNameBindings){if(extensions.classNameBindings===undefined)extensions.classNameBindings=[];extensions.classNameBindings=extensions.classNameBindings.concat(hash.classNameBindings.split(" "));dup=true}if(hash.attributeBindings){extensions.attributeBindings=null;dup=true}if(dup){hash=jQuery.extend({},hash);delete hash.id;delete hash.tag;delete hash["class"];delete hash.classBinding}var path;for(var prop in hash){if(!hash.hasOwnProperty(prop)){continue}if(IS_BINDING.test(prop)&&typeof hash[prop]==="string"){path=this.contextualizeBindingPath(hash[prop],data);if(path){hash[prop]=path}}}if(extensions.classNameBindings){for(var b in extensions.classNameBindings){var full=extensions.classNameBindings[b];if(typeof full==="string"){var parsedPath=View._parsePropertyPath(full);path=this.contextualizeBindingPath(parsedPath.path,data);if(path){extensions.classNameBindings[b]=path+parsedPath.classNames}}}}return jQuery.extend(hash,extensions)},contextualizeBindingPath:function(path,data){var normalized=normalizePath(null,path,data);if(normalized.isKeyword){return"templateData.keywords."+path}else if(isGlobalPath(path)){return null}else if(path==="this"||path===""){return"_parentView.context"}else{return"_parentView.context."+path}},helper:function(thisContext,path,options){var data=options.data,fn=options.fn,newView;makeBindings(thisContext,options);if("string"===typeof path){var lookup;if(options.types[0]==="STRING"&&LOWERCASE_A_Z.test(path)&&!VIEW_PREFIX.test(path)){lookup=path}else{newView=handlebarsGet(thisContext,path,options);if(typeof newView==="string"){lookup=newView}}if(lookup){newView=data.view.container.lookupFactory("view:"+lookup)}}else{newView=path}var viewOptions=this.propertiesFromHTMLOptions(options,thisContext);var currentView=data.view;viewOptions.templateData=data;var newViewProto=newView.proto?newView.proto():newView;if(fn){viewOptions.template=fn}if(!newViewProto.controller&&!newViewProto.controllerBinding&&!viewOptions.controller&&!viewOptions.controllerBinding){viewOptions._context=thisContext}if(options.helperName){viewOptions.helperName=options.helperName}currentView.appendChild(newView,viewOptions)}});__exports__.ViewHelper=ViewHelper;function viewHelper(path,options){if(path&&path.data&&path.data.isRenderData){options=path;path=options.data.view.container.lookupFactory("view:default")}options.helperName=options.helperName||"view";return ViewHelper.helper(this,path,options)}__exports__.viewHelper=viewHelper});define("ember-handlebars/helpers/yield",["ember-metal/core","ember-metal/property_get","exports"],function(__dependency1__,__dependency2__,__exports__){"use strict";var Ember=__dependency1__["default"];var get=__dependency2__.get;__exports__["default"]=function yieldHelper(options){var view=options.data.view;while(view&&!get(view,"layout")){if(view._contextView){view=view._contextView}else{view=get(view,"_parentView")}}view._yield(this,options)}});define("ember-handlebars/loader",["ember-handlebars/component_lookup","ember-views/system/jquery","ember-metal/error","ember-runtime/system/lazy_load","ember-handlebars-compiler","exports"],function(__dependency1__,__dependency2__,__dependency3__,__dependency4__,__dependency5__,__exports__){"use strict";var ComponentLookup=__dependency1__["default"];var jQuery=__dependency2__["default"];var EmberError=__dependency3__["default"];var onLoad=__dependency4__.onLoad;var EmberHandlebars=__dependency5__["default"];function bootstrap(ctx){var selectors='script[type="text/x-handlebars"], script[type="text/x-raw-handlebars"]';jQuery(selectors,ctx).each(function(){var script=jQuery(this);var compile=script.attr("type")==="text/x-raw-handlebars"?jQuery.proxy(Handlebars.compile,Handlebars):jQuery.proxy(EmberHandlebars.compile,EmberHandlebars),templateName=script.attr("data-template-name")||script.attr("id")||"application",template=compile(script.html());if(Ember.TEMPLATES[templateName]!==undefined){throw new EmberError('Template named "'+templateName+'" already exists.')}Ember.TEMPLATES[templateName]=template;script.remove()})}function _bootstrap(){bootstrap(jQuery(document))}function registerComponentLookup(container){container.register("component-lookup:main",ComponentLookup)}onLoad("Ember.Application",function(Application){Application.initializer({name:"domTemplates",initialize:_bootstrap});Application.initializer({name:"registerComponentLookup",after:"domTemplates",initialize:registerComponentLookup})});__exports__["default"]=bootstrap});define("ember-handlebars/string",["ember-runtime/system/string","exports"],function(__dependency1__,__exports__){"use strict";var EmberStringUtils=__dependency1__["default"];function htmlSafe(str){return new Handlebars.SafeString(str)}EmberStringUtils.htmlSafe=htmlSafe;if(Ember.EXTEND_PROTOTYPES===true||Ember.EXTEND_PROTOTYPES.String){String.prototype.htmlSafe=function(){return htmlSafe(this)}}__exports__["default"]=htmlSafe});define("ember-handlebars/views/handlebars_bound_view",["ember-handlebars-compiler","ember-metal/core","ember-metal/error","ember-metal/property_get","ember-metal/property_set","ember-metal/merge","ember-metal/run_loop","ember-metal/computed","ember-views/views/view","ember-views/views/states","ember-handlebars/views/metamorph_view","ember-handlebars/ext","exports"],function(__dependency1__,__dependency2__,__dependency3__,__dependency4__,__dependency5__,__dependency6__,__dependency7__,__dependency8__,__dependency9__,__dependency10__,__dependency11__,__dependency12__,__exports__){"use strict";var EmberHandlebars=__dependency1__["default"];var SafeString=EmberHandlebars.SafeString;var Ember=__dependency2__["default"];var K=Ember.K;var Metamorph=requireModule("metamorph");var EmberError=__dependency3__["default"];var get=__dependency4__.get;var set=__dependency5__.set;var merge=__dependency6__["default"];var run=__dependency7__["default"];var computed=__dependency8__.computed;var View=__dependency9__["default"];var cloneStates=__dependency10__.cloneStates;var states=__dependency10__.states;var viewStates=states;var _MetamorphView=__dependency11__["default"];var handlebarsGet=__dependency12__.handlebarsGet;function SimpleHandlebarsView(path,pathRoot,isEscaped,templateData){this.path=path;this.pathRoot=pathRoot;this.isEscaped=isEscaped;this.templateData=templateData;this.morph=Metamorph();this.state="preRender";this.updateId=null;this._parentView=null;this.buffer=null}SimpleHandlebarsView.prototype={isVirtual:true,isView:true,destroy:function(){if(this.updateId){run.cancel(this.updateId);this.updateId=null}if(this._parentView){this._parentView.removeChild(this)}this.morph=null;this.state="destroyed"},propertyWillChange:K,propertyDidChange:K,normalizedValue:function(){var path=this.path,pathRoot=this.pathRoot,result,templateData;if(path===""){result=pathRoot}else{templateData=this.templateData;result=handlebarsGet(pathRoot,path,{data:templateData})}return result},renderToBuffer:function(buffer){var string="";string+=this.morph.startTag();string+=this.render();string+=this.morph.endTag();buffer.push(string)},render:function(){var escape=this.isEscaped;var result=this.normalizedValue();if(result===null||result===undefined){result=""}else if(!(result instanceof SafeString)){result=String(result)}if(escape){result=Handlebars.Utils.escapeExpression(result)}return result},rerender:function(){switch(this.state){case"preRender":case"destroyed":break;case"inBuffer":throw new EmberError("Something you did tried to replace an {{expression}} before it was inserted into the DOM.");case"hasElement":case"inDOM":this.updateId=run.scheduleOnce("render",this,"update");break}return this},update:function(){this.updateId=null;this.morph.html(this.render())},_transitionTo:function(state){this.state=state}};states=cloneStates(viewStates);merge(states._default,{rerenderIfNeeded:K});merge(states.inDOM,{rerenderIfNeeded:function(view){if(view.normalizedValue()!==view._lastNormalizedValue){view.rerender()}}});var _HandlebarsBoundView=_MetamorphView.extend({instrumentName:"boundHandlebars",_states:states,shouldDisplayFunc:null,preserveContext:false,previousContext:null,displayTemplate:null,inverseTemplate:null,path:null,pathRoot:null,normalizedValue:function(){var path=get(this,"path"),pathRoot=get(this,"pathRoot"),valueNormalizer=get(this,"valueNormalizerFunc"),result,templateData;if(path===""){result=pathRoot}else{templateData=get(this,"templateData");result=handlebarsGet(pathRoot,path,{data:templateData})}return valueNormalizer?valueNormalizer(result):result},rerenderIfNeeded:function(){this.currentState.rerenderIfNeeded(this)},render:function(buffer){var escape=get(this,"isEscaped");var shouldDisplay=get(this,"shouldDisplayFunc"),preserveContext=get(this,"preserveContext"),context=get(this,"previousContext");var inverseTemplate=get(this,"inverseTemplate"),displayTemplate=get(this,"displayTemplate");var result=this.normalizedValue();this._lastNormalizedValue=result;if(shouldDisplay(result)){set(this,"template",displayTemplate);if(preserveContext){set(this,"_context",context)}else{if(displayTemplate){set(this,"_context",result)}else{if(result===null||result===undefined){result=""}else if(!(result instanceof SafeString)){result=String(result)}if(escape){result=Handlebars.Utils.escapeExpression(result)}buffer.push(result);return}}}else if(inverseTemplate){set(this,"template",inverseTemplate);if(preserveContext){set(this,"_context",context)}else{set(this,"_context",result)}}else{set(this,"template",function(){return""})}return this._super(buffer)}});__exports__._HandlebarsBoundView=_HandlebarsBoundView;__exports__.SimpleHandlebarsView=SimpleHandlebarsView});define("ember-handlebars/views/metamorph_view",["ember-metal/core","ember-metal/property_get","ember-metal/property_set","ember-views/views/core_view","ember-views/views/view","ember-metal/mixin","ember-metal/run_loop","exports"],function(__dependency1__,__dependency2__,__dependency3__,__dependency4__,__dependency5__,__dependency6__,__dependency7__,__exports__){"use strict";var Ember=__dependency1__["default"];var get=__dependency2__.get;var set=__dependency3__["default"];var CoreView=__dependency4__["default"];var View=__dependency5__["default"];var Mixin=__dependency6__.Mixin;var run=__dependency7__["default"];var Metamorph=requireModule("metamorph");function notifyMutationListeners(){run.once(View,"notifyMutationListeners")}var DOMManager={remove:function(view){view.morph.remove();notifyMutationListeners()},prepend:function(view,html){view.morph.prepend(html);notifyMutationListeners()},after:function(view,html){view.morph.after(html);notifyMutationListeners()},html:function(view,html){view.morph.html(html);notifyMutationListeners()},replace:function(view){var morph=view.morph;view._transitionTo("preRender");run.schedule("render",this,function renderMetamorphView(){if(view.isDestroying){return}view.clearRenderedChildren();var buffer=view.renderToBuffer();view.invokeRecursively(function(view){view.propertyWillChange("element")});view.triggerRecursively("willInsertElement");morph.replaceWith(buffer.string());view._transitionTo("inDOM");view.invokeRecursively(function(view){view.propertyDidChange("element")});view.triggerRecursively("didInsertElement");notifyMutationListeners()})},empty:function(view){view.morph.html("");notifyMutationListeners()}};var _Metamorph=Mixin.create({isVirtual:true,tagName:"",instrumentName:"metamorph",init:function(){this._super();this.morph=Metamorph()},beforeRender:function(buffer){buffer.push(this.morph.startTag());buffer.pushOpeningTag()},afterRender:function(buffer){buffer.pushClosingTag();buffer.push(this.morph.endTag())},createElement:function(){var buffer=this.renderToBuffer();this.outerHTML=buffer.string();this.clearBuffer()},domManager:DOMManager});__exports__._Metamorph=_Metamorph;var _wrapMap=Metamorph._wrapMap;__exports__._wrapMap=_wrapMap;var _MetamorphView=View.extend(_Metamorph);__exports__._MetamorphView=_MetamorphView;var _SimpleMetamorphView=CoreView.extend(_Metamorph);__exports__._SimpleMetamorphView=_SimpleMetamorphView;__exports__["default"]=View.extend(_Metamorph)});define("ember-metal",["ember-metal/core","ember-metal/merge","ember-metal/instrumentation","ember-metal/utils","ember-metal/error","ember-metal/enumerable_utils","ember-metal/platform","ember-metal/array","ember-metal/logger","ember-metal/property_get","ember-metal/events","ember-metal/observer_set","ember-metal/property_events","ember-metal/properties","ember-metal/property_set","ember-metal/map","ember-metal/get_properties","ember-metal/set_properties","ember-metal/watch_key","ember-metal/chains","ember-metal/watch_path","ember-metal/watching","ember-metal/expand_properties","ember-metal/computed","ember-metal/observer","ember-metal/mixin","ember-metal/binding","ember-metal/run_loop","ember-metal/libraries","ember-metal/is_none","ember-metal/is_empty","ember-metal/is_blank","exports"],function(__dependency1__,__dependency2__,__dependency3__,__dependency4__,__dependency5__,__dependency6__,__dependency7__,__dependency8__,__dependency9__,__dependency10__,__dependency11__,__dependency12__,__dependency13__,__dependency14__,__dependency15__,__dependency16__,__dependency17__,__dependency18__,__dependency19__,__dependency20__,__dependency21__,__dependency22__,__dependency23__,__dependency24__,__dependency25__,__dependency26__,__dependency27__,__dependency28__,__dependency29__,__dependency30__,__dependency31__,__dependency32__,__exports__){"use strict";var Ember=__dependency1__["default"];var merge=__dependency2__["default"];var instrument=__dependency3__.instrument;var subscribe=__dependency3__.subscribe;var unsubscribe=__dependency3__.unsubscribe;var reset=__dependency3__.reset;var generateGuid=__dependency4__.generateGuid;var GUID_KEY=__dependency4__.GUID_KEY;var GUID_PREFIX=__dependency4__.GUID_PREFIX;var guidFor=__dependency4__.guidFor;var META_DESC=__dependency4__.META_DESC;var EMPTY_META=__dependency4__.EMPTY_META;
-var meta=__dependency4__.meta;var getMeta=__dependency4__.getMeta;var setMeta=__dependency4__.setMeta;var metaPath=__dependency4__.metaPath;var inspect=__dependency4__.inspect;var typeOf=__dependency4__.typeOf;var tryCatchFinally=__dependency4__.tryCatchFinally;var isArray=__dependency4__.isArray;var makeArray=__dependency4__.makeArray;var canInvoke=__dependency4__.canInvoke;var tryInvoke=__dependency4__.tryInvoke;var tryFinally=__dependency4__.tryFinally;var wrap=__dependency4__.wrap;var apply=__dependency4__.apply;var applyStr=__dependency4__.applyStr;var EmberError=__dependency5__["default"];var EnumerableUtils=__dependency6__["default"];var create=__dependency7__.create;var platform=__dependency7__.platform;var map=__dependency8__.map;var forEach=__dependency8__.forEach;var filter=__dependency8__.filter;var indexOf=__dependency8__.indexOf;var Logger=__dependency9__["default"];var get=__dependency10__.get;var getWithDefault=__dependency10__.getWithDefault;var normalizeTuple=__dependency10__.normalizeTuple;var _getPath=__dependency10__._getPath;var on=__dependency11__.on;var addListener=__dependency11__.addListener;var removeListener=__dependency11__.removeListener;var suspendListener=__dependency11__.suspendListener;var suspendListeners=__dependency11__.suspendListeners;var sendEvent=__dependency11__.sendEvent;var hasListeners=__dependency11__.hasListeners;var watchedEvents=__dependency11__.watchedEvents;var listenersFor=__dependency11__.listenersFor;var listenersDiff=__dependency11__.listenersDiff;var listenersUnion=__dependency11__.listenersUnion;var ObserverSet=__dependency12__["default"];var propertyWillChange=__dependency13__.propertyWillChange;var propertyDidChange=__dependency13__.propertyDidChange;var overrideChains=__dependency13__.overrideChains;var beginPropertyChanges=__dependency13__.beginPropertyChanges;var endPropertyChanges=__dependency13__.endPropertyChanges;var changeProperties=__dependency13__.changeProperties;var Descriptor=__dependency14__.Descriptor;var defineProperty=__dependency14__.defineProperty;var set=__dependency15__.set;var trySet=__dependency15__.trySet;var OrderedSet=__dependency16__.OrderedSet;var Map=__dependency16__.Map;var MapWithDefault=__dependency16__.MapWithDefault;var getProperties=__dependency17__["default"];var setProperties=__dependency18__["default"];var watchKey=__dependency19__.watchKey;var unwatchKey=__dependency19__.unwatchKey;var flushPendingChains=__dependency20__.flushPendingChains;var removeChainWatcher=__dependency20__.removeChainWatcher;var ChainNode=__dependency20__.ChainNode;var finishChains=__dependency20__.finishChains;var watchPath=__dependency21__.watchPath;var unwatchPath=__dependency21__.unwatchPath;var watch=__dependency22__.watch;var isWatching=__dependency22__.isWatching;var unwatch=__dependency22__.unwatch;var rewatch=__dependency22__.rewatch;var destroy=__dependency22__.destroy;var expandProperties=__dependency23__["default"];var ComputedProperty=__dependency24__.ComputedProperty;var computed=__dependency24__.computed;var cacheFor=__dependency24__.cacheFor;var addObserver=__dependency25__.addObserver;var observersFor=__dependency25__.observersFor;var removeObserver=__dependency25__.removeObserver;var addBeforeObserver=__dependency25__.addBeforeObserver;var _suspendBeforeObserver=__dependency25__._suspendBeforeObserver;var _suspendObserver=__dependency25__._suspendObserver;var _suspendBeforeObservers=__dependency25__._suspendBeforeObservers;var _suspendObservers=__dependency25__._suspendObservers;var beforeObserversFor=__dependency25__.beforeObserversFor;var removeBeforeObserver=__dependency25__.removeBeforeObserver;var IS_BINDING=__dependency26__.IS_BINDING;var mixin=__dependency26__.mixin;var Mixin=__dependency26__.Mixin;var required=__dependency26__.required;var aliasMethod=__dependency26__.aliasMethod;var observer=__dependency26__.observer;var immediateObserver=__dependency26__.immediateObserver;var beforeObserver=__dependency26__.beforeObserver;var Binding=__dependency27__.Binding;var isGlobalPath=__dependency27__.isGlobalPath;var bind=__dependency27__.bind;var oneWay=__dependency27__.oneWay;var run=__dependency28__["default"];var libraries=__dependency29__["default"];var isNone=__dependency30__.isNone;var none=__dependency30__.none;var isEmpty=__dependency31__.isEmpty;var empty=__dependency31__.empty;var isBlank=__dependency32__["default"];var EmberInstrumentation=Ember.Instrumentation={};EmberInstrumentation.instrument=instrument;EmberInstrumentation.subscribe=subscribe;EmberInstrumentation.unsubscribe=unsubscribe;EmberInstrumentation.reset=reset;Ember.instrument=instrument;Ember.subscribe=subscribe;Ember.generateGuid=generateGuid;Ember.GUID_KEY=GUID_KEY;Ember.GUID_PREFIX=GUID_PREFIX;Ember.create=create;Ember.platform=platform;var EmberArrayPolyfills=Ember.ArrayPolyfills={};EmberArrayPolyfills.map=map;EmberArrayPolyfills.forEach=forEach;EmberArrayPolyfills.filter=filter;EmberArrayPolyfills.indexOf=indexOf;Ember.Error=EmberError;Ember.guidFor=guidFor;Ember.META_DESC=META_DESC;Ember.EMPTY_META=EMPTY_META;Ember.meta=meta;Ember.getMeta=getMeta;Ember.setMeta=setMeta;Ember.metaPath=metaPath;Ember.inspect=inspect;Ember.typeOf=typeOf;Ember.tryCatchFinally=tryCatchFinally;Ember.isArray=isArray;Ember.makeArray=makeArray;Ember.canInvoke=canInvoke;Ember.tryInvoke=tryInvoke;Ember.tryFinally=tryFinally;Ember.wrap=wrap;Ember.apply=apply;Ember.applyStr=applyStr;Ember.Logger=Logger;Ember.get=get;Ember.getWithDefault=getWithDefault;Ember.normalizeTuple=normalizeTuple;Ember._getPath=_getPath;Ember.EnumerableUtils=EnumerableUtils;Ember.on=on;Ember.addListener=addListener;Ember.removeListener=removeListener;Ember._suspendListener=suspendListener;Ember._suspendListeners=suspendListeners;Ember.sendEvent=sendEvent;Ember.hasListeners=hasListeners;Ember.watchedEvents=watchedEvents;Ember.listenersFor=listenersFor;Ember.listenersDiff=listenersDiff;Ember.listenersUnion=listenersUnion;Ember._ObserverSet=ObserverSet;Ember.propertyWillChange=propertyWillChange;Ember.propertyDidChange=propertyDidChange;Ember.overrideChains=overrideChains;Ember.beginPropertyChanges=beginPropertyChanges;Ember.endPropertyChanges=endPropertyChanges;Ember.changeProperties=changeProperties;Ember.Descriptor=Descriptor;Ember.defineProperty=defineProperty;Ember.set=set;Ember.trySet=trySet;Ember.OrderedSet=OrderedSet;Ember.Map=Map;Ember.MapWithDefault=MapWithDefault;Ember.getProperties=getProperties;Ember.setProperties=setProperties;Ember.watchKey=watchKey;Ember.unwatchKey=unwatchKey;Ember.flushPendingChains=flushPendingChains;Ember.removeChainWatcher=removeChainWatcher;Ember._ChainNode=ChainNode;Ember.finishChains=finishChains;Ember.watchPath=watchPath;Ember.unwatchPath=unwatchPath;Ember.watch=watch;Ember.isWatching=isWatching;Ember.unwatch=unwatch;Ember.rewatch=rewatch;Ember.destroy=destroy;Ember.expandProperties=expandProperties;Ember.ComputedProperty=ComputedProperty;Ember.computed=computed;Ember.cacheFor=cacheFor;Ember.addObserver=addObserver;Ember.observersFor=observersFor;Ember.removeObserver=removeObserver;Ember.addBeforeObserver=addBeforeObserver;Ember._suspendBeforeObserver=_suspendBeforeObserver;Ember._suspendBeforeObservers=_suspendBeforeObservers;Ember._suspendObserver=_suspendObserver;Ember._suspendObservers=_suspendObservers;Ember.beforeObserversFor=beforeObserversFor;Ember.removeBeforeObserver=removeBeforeObserver;Ember.IS_BINDING=IS_BINDING;Ember.required=required;Ember.aliasMethod=aliasMethod;Ember.observer=observer;Ember.immediateObserver=immediateObserver;Ember.beforeObserver=beforeObserver;Ember.mixin=mixin;Ember.Mixin=Mixin;Ember.oneWay=oneWay;Ember.bind=bind;Ember.Binding=Binding;Ember.isGlobalPath=isGlobalPath;Ember.run=run;Ember.libraries=libraries;Ember.libraries.registerCoreLibrary("Ember",Ember.VERSION);Ember.isNone=isNone;Ember.none=none;Ember.isEmpty=isEmpty;Ember.empty=empty;Ember.isBlank=isBlank;Ember.merge=merge;Ember.onerror=null;if(Ember.__loader.registry["ember-debug"]){requireModule("ember-debug")}__exports__["default"]=Ember});define("ember-metal/array",["exports"],function(__exports__){"use strict";var ArrayPrototype=Array.prototype;var isNativeFunc=function(func){return func&&Function.prototype.toString.call(func).indexOf("[native code]")>-1};var map=isNativeFunc(ArrayPrototype.map)?ArrayPrototype.map:function(fun){if(this===void 0||this===null){throw new TypeError}var t=Object(this);var len=t.length>>>0;if(typeof fun!=="function"){throw new TypeError}var res=new Array(len);var thisp=arguments[1];for(var i=0;i>>0;if(typeof fun!=="function"){throw new TypeError}var thisp=arguments[1];for(var i=0;i("+this._from+" -> "+this._to+")"+oneWay},connect:function(obj){var fromPath=this._from,toPath=this._to;trySet(obj,toPath,getWithGlobals(obj,fromPath));addObserver(obj,fromPath,this,this.fromDidChange);if(!this._oneWay){addObserver(obj,toPath,this,this.toDidChange)}this._readyToSync=true;return this},disconnect:function(obj){var twoWay=!this._oneWay;removeObserver(obj,this._from,this,this.fromDidChange);if(twoWay){removeObserver(obj,this._to,this,this.toDidChange)}this._readyToSync=false;return this},fromDidChange:function(target){this._scheduleSync(target,"fwd")},toDidChange:function(target){this._scheduleSync(target,"back")},_scheduleSync:function(obj,dir){var directionMap=this._directionMap;var existingDir=directionMap.get(obj);if(!existingDir){run.schedule("sync",this,this._sync,obj);directionMap.set(obj,dir)}if(existingDir==="back"&&dir==="fwd"){directionMap.set(obj,"fwd")}},_sync:function(obj){var log=Ember.LOG_BINDINGS;if(obj.isDestroyed||!this._readyToSync){return}var directionMap=this._directionMap;var direction=directionMap.get(obj);var fromPath=this._from,toPath=this._to;directionMap.remove(obj);if(direction==="fwd"){var fromValue=getWithGlobals(obj,this._from);if(log){Ember.Logger.log(" ",this.toString(),"->",fromValue,obj)}if(this._oneWay){trySet(obj,toPath,fromValue)}else{_suspendObserver(obj,toPath,this,this.toDidChange,function(){trySet(obj,toPath,fromValue)})}}else if(direction==="back"){var toValue=get(obj,this._to);if(log){Ember.Logger.log(" ",this.toString(),"<-",toValue,obj)}_suspendObserver(obj,fromPath,this,this.fromDidChange,function(){trySet(isGlobalPath(fromPath)?Ember.lookup:obj,fromPath,toValue)})}}};function mixinProperties(to,from){for(var key in from){if(from.hasOwnProperty(key)){to[key]=from[key]}}}mixinProperties(Binding,{from:function(){var C=this,binding=new C;return binding.from.apply(binding,arguments)},to:function(){var C=this,binding=new C;return binding.to.apply(binding,arguments)},oneWay:function(from,flag){var C=this,binding=new C(null,from);return binding.oneWay(flag)}});function bind(obj,to,from){return new Binding(to,from).connect(obj)}__exports__.bind=bind;function oneWay(obj,to,from){return new Binding(to,from).oneWay().connect(obj)}__exports__.oneWay=oneWay;__exports__.Binding=Binding;__exports__.isGlobalPath=isGlobalPath});define("ember-metal/chains",["ember-metal/core","ember-metal/property_get","ember-metal/utils","ember-metal/array","ember-metal/watch_key","exports"],function(__dependency1__,__dependency2__,__dependency3__,__dependency4__,__dependency5__,__exports__){"use strict";var Ember=__dependency1__["default"];var get=__dependency2__.get;var normalizeTuple=__dependency2__.normalizeTuple;var meta=__dependency3__.meta;var META_KEY=__dependency3__.META_KEY;var forEach=__dependency4__.forEach;var watchKey=__dependency5__.watchKey;var unwatchKey=__dependency5__.unwatchKey;var metaFor=meta,warn=Ember.warn,FIRST_KEY=/^([^\.]+)/;function firstKey(path){return path.match(FIRST_KEY)[0]}var pendingQueue=[];function flushPendingChains(){if(pendingQueue.length===0){return}var queue=pendingQueue;pendingQueue=[];forEach.call(queue,function(q){q[0].add(q[1])});warn("Watching an undefined global, Ember expects watched globals to be setup by the time the run loop is flushed, check for typos",pendingQueue.length===0)}__exports__.flushPendingChains=flushPendingChains;function addChainWatcher(obj,keyName,node){if(!obj||"object"!==typeof obj){return}var m=metaFor(obj),nodes=m.chainWatchers;if(!m.hasOwnProperty("chainWatchers")){nodes=m.chainWatchers={}}if(!nodes[keyName]){nodes[keyName]=[]}nodes[keyName].push(node);watchKey(obj,keyName,m)}function removeChainWatcher(obj,keyName,node){if(!obj||"object"!==typeof obj){return}var m=obj[META_KEY];if(m&&!m.hasOwnProperty("chainWatchers")){return}var nodes=m&&m.chainWatchers;if(nodes&&nodes[keyName]){nodes=nodes[keyName];for(var i=0,l=nodes.length;i0){paths[path]--}obj=this.value();tuple=normalizeTuple(obj,path);if(tuple[0]===obj){path=tuple[1];key=firstKey(path);path=path.slice(key.length+1)}else{src=tuple[0];key=path.slice(0,0-(tuple[1].length+1));path=tuple[1]}tuple.length=0;this.unchain(key,path)};ChainNodePrototype.count=0;ChainNodePrototype.chain=function(key,path,src){var chains=this._chains,node;if(!chains){chains=this._chains={}}node=chains[key];if(!node){node=chains[key]=new ChainNode(this,key,src)}node.count++;if(path){key=firstKey(path);path=path.slice(key.length+1);node.chain(key,path)}};ChainNodePrototype.unchain=function(key,path){var chains=this._chains,node=chains[key];if(path&&path.length>1){key=firstKey(path);path=path.slice(key.length+1);node.unchain(key,path)}node.count--;if(node.count<=0){delete chains[node._key];node.destroy()}};ChainNodePrototype.willChange=function(events){var chains=this._chains;if(chains){for(var key in chains){if(!chains.hasOwnProperty(key)){continue}chains[key].willChange(events)}}if(this._parent){this._parent.chainWillChange(this,this._key,1,events)}};ChainNodePrototype.chainWillChange=function(chain,path,depth,events){if(this._key){path=this._key+"."+path}if(this._parent){this._parent.chainWillChange(this,path,depth+1,events)}else{if(depth>1){events.push(this.value(),path)}path="this."+path;if(this._paths[path]>0){events.push(this.value(),path)}}};ChainNodePrototype.chainDidChange=function(chain,path,depth,events){if(this._key){path=this._key+"."+path}if(this._parent){this._parent.chainDidChange(this,path,depth+1,events)}else{if(depth>1){events.push(this.value(),path)}path="this."+path;if(this._paths[path]>0){events.push(this.value(),path)}}};ChainNodePrototype.didChange=function(events){if(this._watching){var obj=this._parent.value();if(obj!==this._object){removeChainWatcher(this._object,this._key,this);this._object=obj;addChainWatcher(obj,this._key,this)}this._value=undefined;if(this._parent&&this._parent._key==="@each")this.value()}var chains=this._chains;if(chains){for(var key in chains){if(!chains.hasOwnProperty(key)){continue}chains[key].didChange(events)}}if(events===null){return}if(this._parent){this._parent.chainDidChange(this,this._key,1,events)}};function finishChains(obj){var m=obj[META_KEY],chains=m&&m.chains;if(chains){if(chains.value()!==obj){metaFor(obj).chains=chains=chains.copy(obj)}else{chains.didChange(null)}}}__exports__.finishChains=finishChains;__exports__.removeChainWatcher=removeChainWatcher;__exports__.ChainNode=ChainNode});define("ember-metal/computed",["ember-metal/core","ember-metal/property_get","ember-metal/property_set","ember-metal/utils","ember-metal/enumerable_utils","ember-metal/platform","ember-metal/watching","ember-metal/expand_properties","ember-metal/error","ember-metal/properties","ember-metal/property_events","ember-metal/is_empty","ember-metal/is_none","exports"],function(__dependency1__,__dependency2__,__dependency3__,__dependency4__,__dependency5__,__dependency6__,__dependency7__,__dependency8__,__dependency9__,__dependency10__,__dependency11__,__dependency12__,__dependency13__,__exports__){"use strict";var Ember=__dependency1__["default"];var get=__dependency2__.get;var set=__dependency3__.set;var meta=__dependency4__.meta;var META_KEY=__dependency4__.META_KEY;var guidFor=__dependency4__.guidFor;var typeOf=__dependency4__.typeOf;var inspect=__dependency4__.inspect;var EnumerableUtils=__dependency5__["default"];var create=__dependency6__.create;var watch=__dependency7__.watch;var unwatch=__dependency7__.unwatch;var expandProperties=__dependency8__["default"];var EmberError=__dependency9__["default"];var Descriptor=__dependency10__.Descriptor;var defineProperty=__dependency10__.defineProperty;var propertyWillChange=__dependency11__.propertyWillChange;var propertyDidChange=__dependency11__.propertyDidChange;var isEmpty=__dependency12__["default"];var isNone=__dependency13__.isNone;var metaFor=meta,a_slice=[].slice,o_create=create;function UNDEFINED(){}var lengthPattern=/\.(length|\[\])$/;function keysForDep(depsMeta,depKey){var keys=depsMeta[depKey];if(!keys){keys=depsMeta[depKey]={}}else if(!depsMeta.hasOwnProperty(depKey)){keys=depsMeta[depKey]=o_create(keys)}return keys}function metaForDeps(meta){return keysForDep(meta,"deps")}function addDependentKeys(desc,obj,keyName,meta){var depKeys=desc._dependentKeys,depsMeta,idx,len,depKey,keys;if(!depKeys)return;depsMeta=metaForDeps(meta);for(idx=0,len=depKeys.length;idx1){args=a_slice.call(arguments);func=args.pop()}if(typeof func!=="function"){throw new EmberError("Computed Property declared without a property function")}var cp=new ComputedProperty(func);if(args){cp.property.apply(cp,args)}return cp}function cacheFor(obj,key){var meta=obj[META_KEY],cache=meta&&meta.cache,ret=cache&&cache[key];if(ret===UNDEFINED){return undefined}return ret}cacheFor.set=function(cache,key,value){if(value===undefined){cache[key]=UNDEFINED}else{cache[key]=value}};cacheFor.get=function(cache,key){var ret=cache[key];if(ret===UNDEFINED){return undefined}return ret};cacheFor.remove=function(cache,key){cache[key]=undefined};function getProperties(self,propertyNames){var ret={};for(var i=0;ivalue});registerComputed("gte",function(dependentKey,value){return get(this,dependentKey)>=value});registerComputed("lt",function(dependentKey,value){return get(this,dependentKey)1){set(this,dependentKey,value)}return get(this,dependentKey)})};computed.oneWay=function(dependentKey){return computed(dependentKey,function(){return get(this,dependentKey)})};computed.reads=computed.oneWay;computed.readOnly=function(dependentKey){return computed(dependentKey,function(){return get(this,dependentKey)}).readOnly()};computed.defaultTo=function(defaultPath){return computed(function(key,newValue,cachedValue){if(arguments.length===1){return get(this,defaultPath)}return newValue!=null?newValue:get(this,defaultPath)})};computed.deprecatingAlias=function(dependentKey){return computed(dependentKey,function(key,value){if(arguments.length>1){set(this,dependentKey,value);return value}else{return get(this,dependentKey)}})};__exports__.ComputedProperty=ComputedProperty;__exports__.computed=computed;__exports__.cacheFor=cacheFor});define("ember-metal/core",["exports"],function(__exports__){"use strict";if("undefined"===typeof Ember){Ember={}}var imports=Ember.imports=Ember.imports||this;var exports=Ember.exports=Ember.exports||this;var lookup=Ember.lookup=Ember.lookup||this;exports.Em=exports.Ember=Ember;Ember.isNamespace=true;Ember.toString=function(){return"Ember"};Ember.VERSION="1.7.0-beta.1+canary.83fe4e00";if(Ember.ENV){}else if("undefined"!==typeof EmberENV){Ember.ENV=EmberENV}else if("undefined"!==typeof ENV){Ember.ENV=ENV}else{Ember.ENV={}}Ember.config=Ember.config||{};if("undefined"===typeof Ember.ENV.DISABLE_RANGE_API){Ember.ENV.DISABLE_RANGE_API=true}if("undefined"===typeof MetamorphENV){exports.MetamorphENV={}}MetamorphENV.DISABLE_RANGE_API=Ember.ENV.DISABLE_RANGE_API;Ember.FEATURES=Ember.ENV.FEATURES||{};Ember.FEATURES.isEnabled=function(feature){var featureValue=Ember.FEATURES[feature];if(Ember.ENV.ENABLE_ALL_FEATURES){return true}else if(featureValue===true||featureValue===false||featureValue===undefined){return featureValue}else if(Ember.ENV.ENABLE_OPTIONAL_FEATURES){return true}else{return false}};Ember.EXTEND_PROTOTYPES=Ember.ENV.EXTEND_PROTOTYPES;if(typeof Ember.EXTEND_PROTOTYPES==="undefined"){Ember.EXTEND_PROTOTYPES=true}Ember.LOG_STACKTRACE_ON_DEPRECATION=Ember.ENV.LOG_STACKTRACE_ON_DEPRECATION!==false;Ember.SHIM_ES5=Ember.ENV.SHIM_ES5===false?false:Ember.EXTEND_PROTOTYPES;Ember.LOG_VERSION=Ember.ENV.LOG_VERSION===false?false:true;var K=function(){return this};var K=K;__exports__.K=K;Ember.K=K;if("undefined"===typeof Ember.assert){Ember.assert=Ember.K}if("undefined"===typeof Ember.warn){Ember.warn=Ember.K}if("undefined"===typeof Ember.debug){Ember.debug=Ember.K}if("undefined"===typeof Ember.runInDebug){Ember.runInDebug=Ember.K}if("undefined"===typeof Ember.deprecate){Ember.deprecate=Ember.K}if("undefined"===typeof Ember.deprecateFunc){Ember.deprecateFunc=function(_,func){return func}}__exports__["default"]=Ember});define("ember-metal/enumerable_utils",["ember-metal/array","exports"],function(__dependency1__,__exports__){"use strict";var _filter=__dependency1__.filter;var a_forEach=__dependency1__.forEach;var _indexOf=__dependency1__.indexOf;var _map=__dependency1__.map;var splice=Array.prototype.splice;function map(obj,callback,thisArg){return obj.map?obj.map.call(obj,callback,thisArg):_map.call(obj,callback,thisArg)}__exports__.map=map;function forEach(obj,callback,thisArg){return obj.forEach?obj.forEach.call(obj,callback,thisArg):a_forEach.call(obj,callback,thisArg)}__exports__.forEach=forEach;function filter(obj,callback,thisArg){return obj.filter?obj.filter.call(obj,callback,thisArg):_filter.call(obj,callback,thisArg)}__exports__.filter=filter;function indexOf(obj,element,index){return obj.indexOf?obj.indexOf.call(obj,element,index):_indexOf.call(obj,element,index)
-}__exports__.indexOf=indexOf;function indexesOf(obj,elements){return elements===undefined?[]:map(elements,function(item){return indexOf(obj,item)})}__exports__.indexesOf=indexesOf;function addObject(array,item){var index=indexOf(array,item);if(index===-1){array.push(item)}}__exports__.addObject=addObject;function removeObject(array,item){var index=indexOf(array,item);if(index!==-1){array.splice(index,1)}}__exports__.removeObject=removeObject;function _replace(array,idx,amt,objects){var args=[].concat(objects),chunk,ret=[],size=6e4,start=idx,ends=amt,count;while(args.length){count=ends>size?size:ends;if(count<=0){count=0}chunk=args.splice(0,size);chunk=[start,count].concat(chunk);start+=size;ends-=count;ret=ret.concat(splice.apply(array,chunk))}return ret}__exports__._replace=_replace;function replace(array,idx,amt,objects){if(array.replace){return array.replace(idx,amt,objects)}else{return _replace(array,idx,amt,objects)}}__exports__.replace=replace;function intersection(array1,array2){var result=[];forEach(array1,function(element){if(indexOf(array2,element)>=0){result.push(element)}});return result}__exports__.intersection=intersection;__exports__["default"]={_replace:_replace,addObject:addObject,filter:filter,forEach:forEach,indexOf:indexOf,indexesOf:indexesOf,intersection:intersection,map:map,removeObject:removeObject,replace:replace}});define("ember-metal/error",["ember-metal/platform","exports"],function(__dependency1__,__exports__){"use strict";var create=__dependency1__.create;var errorProps=["description","fileName","lineNumber","message","name","number","stack"];function EmberError(){var tmp=Error.apply(this,arguments);if(Error.captureStackTrace){Error.captureStackTrace(this,Ember.Error)}for(var idx=0;idx=0;i-=3){if(target===array[i]&&method===array[i+1]){index=i;break}}return index}function actionsFor(obj,eventName){var meta=metaFor(obj,true),actions;if(!meta.listeners){meta.listeners={}}if(!meta.hasOwnProperty("listeners")){meta.listeners=create(meta.listeners)}actions=meta.listeners[eventName];if(actions&&!meta.listeners.hasOwnProperty(eventName)){actions=meta.listeners[eventName]=meta.listeners[eventName].slice()}else if(!actions){actions=meta.listeners[eventName]=[]}return actions}function listenersUnion(obj,eventName,otherActions){var meta=obj[META_KEY],actions=meta&&meta.listeners&&meta.listeners[eventName];if(!actions){return}for(var i=actions.length-3;i>=0;i-=3){var target=actions[i],method=actions[i+1],flags=actions[i+2],actionIndex=indexOf(otherActions,target,method);if(actionIndex===-1){otherActions.push(target,method,flags)}}}__exports__.listenersUnion=listenersUnion;function listenersDiff(obj,eventName,otherActions){var meta=obj[META_KEY],actions=meta&&meta.listeners&&meta.listeners[eventName],diffActions=[];if(!actions){return}for(var i=actions.length-3;i>=0;i-=3){var target=actions[i],method=actions[i+1],flags=actions[i+2],actionIndex=indexOf(otherActions,target,method);if(actionIndex!==-1){continue}otherActions.push(target,method,flags);diffActions.push(target,method,flags)}return diffActions}__exports__.listenersDiff=listenersDiff;function addListener(obj,eventName,target,method,once){if(!method&&"function"===typeof target){method=target;target=null}var actions=actionsFor(obj,eventName),actionIndex=indexOf(actions,target,method),flags=0;if(once)flags|=ONCE;if(actionIndex!==-1){return}actions.push(target,method,flags);if("function"===typeof obj.didAddListener){obj.didAddListener(eventName,target,method)}}__exports__.addListener=addListener;function removeListener(obj,eventName,target,method){if(!method&&"function"===typeof target){method=target;target=null}function _removeListener(target,method){var actions=actionsFor(obj,eventName),actionIndex=indexOf(actions,target,method);if(actionIndex===-1){return}actions.splice(actionIndex,3);if("function"===typeof obj.didRemoveListener){obj.didRemoveListener(eventName,target,method)}}if(method){_removeListener(target,method)}else{var meta=obj[META_KEY],actions=meta&&meta.listeners&&meta.listeners[eventName];if(!actions){return}for(var i=actions.length-3;i>=0;i-=3){_removeListener(actions[i],actions[i+1])}}}function suspendListener(obj,eventName,target,method,callback){if(!method&&"function"===typeof target){method=target;target=null}var actions=actionsFor(obj,eventName),actionIndex=indexOf(actions,target,method);if(actionIndex!==-1){actions[actionIndex+2]|=SUSPENDED}function tryable(){return callback.call(target)}function finalizer(){if(actionIndex!==-1){actions[actionIndex+2]&=~SUSPENDED}}return tryFinally(tryable,finalizer)}__exports__.suspendListener=suspendListener;function suspendListeners(obj,eventNames,target,method,callback){if(!method&&"function"===typeof target){method=target;target=null}var suspendedActions=[],actionsList=[],eventName,actions,i,l;for(i=0,l=eventNames.length;i=0;i-=3){var target=actions[i],method=actions[i+1],flags=actions[i+2];if(!method){continue}if(flags&SUSPENDED){continue}if(flags&ONCE){removeListener(obj,eventName,target,method)}if(!target){target=obj}if("string"===typeof method){if(params){applyStr(target,method,params)}else{target[method]()}}else{if(params){apply(target,method,params)}else{method.call(target)}}}return true}__exports__.sendEvent=sendEvent;function hasListeners(obj,eventName){var meta=obj[META_KEY],actions=meta&&meta.listeners&&meta.listeners[eventName];return!!(actions&&actions.length)}__exports__.hasListeners=hasListeners;function listenersFor(obj,eventName){var ret=[];var meta=obj[META_KEY],actions=meta&&meta.listeners&&meta.listeners[eventName];if(!actions){return ret}for(var i=0,l=actions.length;i-1){throw new EmberError("Brace expanded properties cannot contain spaces, "+"e.g. `user.{firstName, lastName}` should be `user.{firstName,lastName}`")}if(match=BRACE_EXPANSION.exec(pattern)){prefix=match[1];list=match[2];forEach(list.split(","),function(suffix){callback(prefix+suffix)})}else{callback(pattern)}}});define("ember-metal/get_properties",["ember-metal/property_get","ember-metal/utils","exports"],function(__dependency1__,__dependency2__,__exports__){"use strict";var get=__dependency1__.get;var typeOf=__dependency2__.typeOf;__exports__["default"]=function getProperties(obj){var ret={},propertyNames=arguments,i=1;if(arguments.length===2&&typeOf(arguments[1])==="array"){i=0;propertyNames=arguments[1]}for(var len=propertyNames.length;i-1){list.splice(index,1)}},isEmpty:function(){return this.list.length===0},has:function(obj){var guid=guidFor(obj),presenceSet=this.presenceSet;return guid in presenceSet},forEach:function(fn,self){var list=this.toArray();for(var i=0,j=list.length;i0){mixin.mixins=a_map.call(args,function(x){if(x instanceof Mixin){return x}var mixin=new Mixin;mixin.properties=x;return mixin})}return mixin}function isMethod(obj){return"function"===typeof obj&&obj.isMethod!==false&&obj!==Boolean&&obj!==Object&&obj!==Number&&obj!==Array&&obj!==Date&&obj!==String}var CONTINUE={};function mixinProperties(mixinsMeta,mixin){var guid;if(mixin instanceof Mixin){guid=guidFor(mixin);if(mixinsMeta[guid]){return CONTINUE}mixinsMeta[guid]=mixin;return mixin.properties}else{return mixin}}function concatenatedMixinProperties(concatProp,props,values,base){var concats;concats=values[concatProp]||base[concatProp];if(props[concatProp]){concats=concats?concats.concat(props[concatProp]):props[concatProp]}return concats}function giveDescriptorSuper(meta,key,property,values,descs){var superProperty;if(values[key]===undefined){superProperty=descs[key]}superProperty=superProperty||meta.descs[key];if(!superProperty||!(superProperty instanceof ComputedProperty)){return property}property=o_create(property);property.func=wrap(property.func,superProperty.func);return property}function giveMethodSuper(obj,key,method,values,descs){var superMethod;if(descs[key]===undefined){superMethod=values[key]}superMethod=superMethod||obj[key];if("function"!==typeof superMethod){return method}return wrap(method,superMethod)}function applyConcatenatedProperties(obj,key,value,values){var baseValue=values[key]||obj[key];if(baseValue){if("function"===typeof baseValue.concat){return baseValue.concat(value)}else{return makeArray(baseValue).concat(value)}}else{return makeArray(value)}}function applyMergedProperties(obj,key,value,values){var baseValue=values[key]||obj[key];if(!baseValue){return value}var newBase=merge({},baseValue),hasFunction=false;for(var prop in value){if(!value.hasOwnProperty(prop)){continue}var propValue=value[prop];if(isMethod(propValue)){hasFunction=true;newBase[prop]=giveMethodSuper(obj,prop,propValue,baseValue,{})}else{newBase[prop]=propValue}}if(hasFunction){newBase._super=superFunction}return newBase}function addNormalizedProperty(base,key,value,meta,descs,values,concats,mergings){if(value instanceof Descriptor){if(value===REQUIRED&&descs[key]){return CONTINUE}if(value.func){value=giveDescriptorSuper(meta,key,value,values,descs)}descs[key]=value;values[key]=undefined}else{if(concats&&a_indexOf.call(concats,key)>=0||key==="concatenatedProperties"||key==="mergedProperties"){value=applyConcatenatedProperties(base,key,value,values)}else if(mergings&&a_indexOf.call(mergings,key)>=0){value=applyMergedProperties(base,key,value,values)}else if(isMethod(value)){value=giveMethodSuper(base,key,value,values,descs)}descs[key]=undefined;values[key]=value}}function mergeMixins(mixins,m,descs,values,base,keys){var mixin,props,key,concats,mergings,meta;function removeKeys(keyName){delete descs[keyName];delete values[keyName]}for(var i=0,l=mixins.length;i=0){if(_detect(mixins[loc],targetMixin,seen)){return true}}return false}MixinPrototype.detect=function(obj){if(!obj){return false}if(obj instanceof Mixin){return _detect(obj,this,{})}var m=obj[META_KEY],mixins=m&&m.mixins;if(mixins){return!!mixins[guidFor(this)]}return false};MixinPrototype.without=function(){var ret=new Mixin(this);ret._without=a_slice.call(arguments);return ret};function _keys(ret,mixin,seen){if(seen[guidFor(mixin)]){return}seen[guidFor(mixin)]=true;if(mixin.properties){var props=mixin.properties;for(var key in props){if(props.hasOwnProperty(key)){ret[key]=true}}}else if(mixin.mixins){a_forEach.call(mixin.mixins,function(x){_keys(ret,x,seen)})}}MixinPrototype.keys=function(){var keys={},seen={},ret=[];_keys(keys,this,seen);for(var key in keys){if(keys.hasOwnProperty(key)){ret.push(key)}}return ret};Mixin.mixins=function(obj){var m=obj[META_KEY],mixins=m&&m.mixins,ret=[];if(!mixins){return ret}for(var key in mixins){var mixin=mixins[key];if(!mixin.properties){ret.push(mixin)}}return ret};REQUIRED=new Descriptor;REQUIRED.toString=function(){return"(Required Property)"};function required(){return REQUIRED}__exports__.required=required;function Alias(methodName){this.methodName=methodName}Alias.prototype=new Descriptor;function aliasMethod(methodName){return new Alias(methodName)}__exports__.aliasMethod=aliasMethod;function observer(){var func=a_slice.call(arguments,-1)[0];var paths;var addWatchedProperty=function(path){paths.push(path)};var _paths=a_slice.call(arguments,0,-1);if(typeof func!=="function"){func=arguments[0];_paths=a_slice.call(arguments,1)}paths=[];for(var i=0;i<_paths.length;++i){expandProperties(_paths[i],addWatchedProperty)}if(typeof func!=="function"){throw new Ember.Error("Ember.observer called without a function")}func.__ember_observes__=paths;return func}__exports__.observer=observer;function immediateObserver(){for(var i=0,l=arguments.length;i0;if(existingDesc instanceof Descriptor){existingDesc.teardown(obj,keyName)}if(desc instanceof Descriptor){value=desc;descs[keyName]=desc;if(MANDATORY_SETTER&&watching){objectDefineProperty(obj,keyName,{configurable:true,enumerable:true,writable:true,value:undefined})}else{obj[keyName]=undefined}}else{descs[keyName]=undefined;if(desc==null){value=data;if(MANDATORY_SETTER&&watching){meta.values[keyName]=data;objectDefineProperty(obj,keyName,{configurable:true,enumerable:true,set:MANDATORY_SETTER_FUNCTION,get:DEFAULT_GETTER_FUNCTION(keyName)})}else{obj[keyName]=data}}else{value=desc;objectDefineProperty(obj,keyName,desc)}}if(watching){overrideChains(obj,keyName,meta)}if(obj.didDefineProperty){obj.didDefineProperty(obj,keyName,value)}return this}__exports__.defineProperty=defineProperty;function deprecateProperty(object,deprecatedKey,newKey){function deprecate(){}if(platform.hasPropertyAccessors){defineProperty(object,deprecatedKey,{configurable:true,enumerable:false,set:function(value){deprecate();set(object,newKey,value)},get:function(){deprecate();return get(object,newKey)}})}}__exports__.deprecateProperty=deprecateProperty});define("ember-metal/property_events",["ember-metal/utils","ember-metal/events","ember-metal/observer_set","exports"],function(__dependency1__,__dependency2__,__dependency3__,__exports__){"use strict";var META_KEY=__dependency1__.META_KEY;var guidFor=__dependency1__.guidFor;var tryFinally=__dependency1__.tryFinally;var sendEvent=__dependency2__.sendEvent;var listenersUnion=__dependency2__.listenersUnion;var listenersDiff=__dependency2__.listenersDiff;var ObserverSet=__dependency3__["default"];var beforeObserverSet=new ObserverSet;var observerSet=new ObserverSet;var deferred=0;function propertyWillChange(obj,keyName){var m=obj[META_KEY],watching=m&&m.watching[keyName]>0||keyName==="length",proto=m&&m.proto,desc=m&&m.descs[keyName];if(!watching){return}if(proto===obj){return}if(desc&&desc.willChange){desc.willChange(obj,keyName)}dependentKeysWillChange(obj,keyName,m);chainsWillChange(obj,keyName,m);notifyBeforeObservers(obj,keyName)}function propertyDidChange(obj,keyName){var m=obj[META_KEY],watching=m&&m.watching[keyName]>0||keyName==="length",proto=m&&m.proto,desc=m&&m.descs[keyName];if(proto===obj){return}if(desc&&desc.didChange){desc.didChange(obj,keyName)}if(!watching&&keyName!=="length"){return}dependentKeysDidChange(obj,keyName,m);chainsDidChange(obj,keyName,m,false);notifyObservers(obj,keyName)}var WILL_SEEN,DID_SEEN;function dependentKeysWillChange(obj,depKey,meta){if(obj.isDestroying){return}var seen=WILL_SEEN,top=!seen;if(top){seen=WILL_SEEN={}}iterDeps(propertyWillChange,obj,depKey,seen,meta);if(top){WILL_SEEN=null}}function dependentKeysDidChange(obj,depKey,meta){if(obj.isDestroying){return}var seen=DID_SEEN,top=!seen;if(top){seen=DID_SEEN={}}iterDeps(propertyDidChange,obj,depKey,seen,meta);if(top){DID_SEEN=null}}function iterDeps(method,obj,depKey,seen,meta){var guid=guidFor(obj);if(!seen[guid])seen[guid]={};if(seen[guid][depKey])return;seen[guid][depKey]=true;var deps=meta.deps;deps=deps&&deps[depKey];if(deps){for(var key in deps){var desc=meta.descs[key];if(desc&&desc._suspended===obj)continue;method(obj,key)}}}function chainsWillChange(obj,keyName,m){if(!(m.hasOwnProperty("chainWatchers")&&m.chainWatchers[keyName])){return}var nodes=m.chainWatchers[keyName],events=[],i,l;for(i=0,l=nodes.length;i0){ret=meta.values[keyName]}else{ret=obj[keyName]}if(ret===undefined&&"object"===typeof obj&&!(keyName in obj)&&"function"===typeof obj.unknownProperty){return obj.unknownProperty(keyName)}return ret}};if(Ember.config.overrideAccessors){Ember.get=get;Ember.config.overrideAccessors();get=Ember.get}function normalizeTuple(target,path){var hasThis=path.indexOf(HAS_THIS)===0,isGlobal=!hasThis&&IS_GLOBAL_PATH.test(path),key;if(!target||isGlobal)target=Ember.lookup;if(hasThis)path=path.slice(5);if(target===Ember.lookup){key=path.match(FIRST_KEY)[0];target=get(target,key);path=path.slice(key.length+1)}if(!path||path.length===0)throw new EmberError("Path cannot be empty");return[target,path]}function _getPath(root,path){var hasThis,parts,tuple,idx,len;if(root===null&&path.indexOf(".")===-1){return get(Ember.lookup,path)}hasThis=path.indexOf(HAS_THIS)===0;if(!root||hasThis){tuple=normalizeTuple(root,path);root=tuple[0];path=tuple[1];tuple.length=0}parts=path.split(".");len=parts.length;for(idx=0;root!=null&&idx0){if(MANDATORY_SETTER){currentValue=meta.values[keyName]}else{currentValue=obj[keyName]}if(value!==currentValue){propertyWillChange(obj,keyName);if(MANDATORY_SETTER){if(currentValue===undefined&&!(keyName in obj)||!obj.propertyIsEnumerable(keyName)){defineProperty(obj,keyName,null,value)}else{meta.values[keyName]=value}}else{obj[keyName]=value}propertyDidChange(obj,keyName)}}else{obj[keyName]=value}}return value};if(Ember.config.overrideAccessors){Ember.set=set;Ember.config.overrideAccessors();set=Ember.set}function setPath(root,path,value,tolerant){var keyName;keyName=path.slice(path.lastIndexOf(".")+1);path=path===keyName?keyName:path.slice(0,path.length-(keyName.length+1));if(path!=="this"){root=getPath(root,path)}if(!keyName||keyName.length===0){throw new EmberError("Property set failed: You passed an empty path")}if(!root){if(tolerant){return}else{throw new EmberError('Property set failed: object in path "'+path+'" could not be found or was destroyed.')}}return set(root,keyName,value)}function trySet(root,path,value){return set(root,path,value,true)}__exports__.trySet=trySet;__exports__.set=set});define("ember-metal/run_loop",["ember-metal/core","ember-metal/utils","ember-metal/array","ember-metal/property_events","exports"],function(__dependency1__,__dependency2__,__dependency3__,__dependency4__,__exports__){"use strict";var Ember=__dependency1__["default"];var apply=__dependency2__.apply;var indexOf=__dependency3__.indexOf;var beginPropertyChanges=__dependency4__.beginPropertyChanges;var endPropertyChanges=__dependency4__.endPropertyChanges;function onBegin(current){run.currentRunLoop=current}function onEnd(current,next){run.currentRunLoop=next}var Backburner=requireModule("backburner").Backburner;var backburner=new Backburner(["sync","actions","destroy"],{sync:{before:beginPropertyChanges,after:endPropertyChanges},defaultQueue:"actions",onBegin:onBegin,onEnd:onEnd,onErrorTarget:Ember,onErrorMethod:"onerror"});var slice=[].slice;var concat=[].concat;__exports__["default"]=run;function run(){return apply(backburner,backburner.run,arguments)}run.join=function(target,method){if(!run.currentRunLoop){return apply(Ember,run,arguments)}var args=slice.call(arguments);args.unshift("actions");apply(run,run.schedule,args)};run.bind=function(target,method){var args=slice.call(arguments);return function(){return apply(run,run.join,args.concat(slice.call(arguments)))}};run.backburner=backburner;run.currentRunLoop=null;run.queues=backburner.queueNames;run.begin=function(){backburner.begin()};run.end=function(){backburner.end()};run.schedule=function(queue,target,method){checkAutoRun();apply(backburner,backburner.schedule,arguments)};run.hasScheduledTimers=function(){return backburner.hasTimers()};run.cancelTimers=function(){backburner.cancelTimers()};run.sync=function(){if(backburner.currentInstance){backburner.currentInstance.queues.sync.flush()}};run.later=function(target,method){return apply(backburner,backburner.later,arguments)};run.once=function(target,method){checkAutoRun();var args=slice.call(arguments);args.unshift("actions");return apply(backburner,backburner.scheduleOnce,args)};run.scheduleOnce=function(queue,target,method){checkAutoRun();return apply(backburner,backburner.scheduleOnce,arguments)};run.next=function(){var args=slice.call(arguments);args.push(1);return apply(backburner,backburner.later,args)};run.cancel=function(timer){return backburner.cancel(timer)};run.debounce=function(){return apply(backburner,backburner.debounce,arguments)};run.throttle=function(){return apply(backburner,backburner.throttle,arguments)};function checkAutoRun(){if(!run.currentRunLoop){}}run._addQueue=function(name,after){if(indexOf.call(run.queues,name)===-1){run.queues.splice(indexOf.call(run.queues,after)+1,0,name)}}});define("ember-metal/set_properties",["ember-metal/property_events","ember-metal/property_set","exports"],function(__dependency1__,__dependency2__,__exports__){"use strict";var changeProperties=__dependency1__.changeProperties;var set=__dependency2__.set;__exports__["default"]=function setProperties(self,hash){changeProperties(function(){for(var prop in hash){if(hash.hasOwnProperty(prop)){set(self,prop,hash[prop])}}});return self}});define("ember-metal/utils",["ember-metal/core","ember-metal/platform","ember-metal/array","exports"],function(__dependency1__,__dependency2__,__dependency3__,__exports__){"use strict";var Ember=__dependency1__["default"];var platform=__dependency2__.platform;var create=__dependency2__.create;var forEach=__dependency3__.forEach;var _uuid=0;function uuid(){return++_uuid}__exports__.uuid=uuid;var GUID_PREFIX="ember";var o_defineProperty=platform.defineProperty;var o_create=create;var numberCache=[];var stringCache={};var MANDATORY_SETTER=Ember.ENV.MANDATORY_SETTER;var GUID_KEY="__ember"+ +new Date;var GUID_DESC={writable:false,configurable:false,enumerable:false,value:null};function generateGuid(obj,prefix){if(!prefix)prefix=GUID_PREFIX;var ret=prefix+uuid();if(obj){if(obj[GUID_KEY]===null){obj[GUID_KEY]=ret}else{GUID_DESC.value=ret;o_defineProperty(obj,GUID_KEY,GUID_DESC)}}return ret}__exports__.generateGuid=generateGuid;function guidFor(obj){if(obj===undefined)return"(undefined)";if(obj===null)return"(null)";var ret;var type=typeof obj;switch(type){case"number":ret=numberCache[obj];if(!ret)ret=numberCache[obj]="nu"+obj;return ret;case"string":ret=stringCache[obj];if(!ret)ret=stringCache[obj]="st"+uuid();return ret;case"boolean":return obj?"(true)":"(false)";default:if(obj[GUID_KEY])return obj[GUID_KEY];if(obj===Object)return"(Object)";if(obj===Array)return"(Array)";ret="ember"+uuid();if(obj[GUID_KEY]===null){obj[GUID_KEY]=ret}else{GUID_DESC.value=ret;o_defineProperty(obj,GUID_KEY,GUID_DESC)}return ret}}__exports__.guidFor=guidFor;var META_DESC={writable:true,configurable:false,enumerable:false,value:null};var META_KEY="__ember_meta__";var isDefinePropertySimulated=platform.defineProperty.isSimulated;function Meta(obj){this.descs={};this.watching={};this.cache={};this.cacheMeta={};this.source=obj}Meta.prototype={descs:null,deps:null,watching:null,listeners:null,cache:null,cacheMeta:null,source:null,mixins:null,bindings:null,chains:null,chainWatchers:null,values:null,proto:null};if(isDefinePropertySimulated){Meta.prototype.__preventPlainObject__=true;Meta.prototype.toJSON=function(){}}var EMPTY_META=new Meta(null);if(MANDATORY_SETTER){EMPTY_META.values={}}function meta(obj,writable){var ret=obj[META_KEY];if(writable===false)return ret||EMPTY_META;if(!ret){if(!isDefinePropertySimulated)o_defineProperty(obj,META_KEY,META_DESC);ret=new Meta(obj);if(MANDATORY_SETTER){ret.values={}}obj[META_KEY]=ret;ret.descs.constructor=null}else if(ret.source!==obj){if(!isDefinePropertySimulated)o_defineProperty(obj,META_KEY,META_DESC);ret=o_create(ret);ret.descs=o_create(ret.descs);ret.watching=o_create(ret.watching);ret.cache={};ret.cacheMeta={};ret.source=obj;if(MANDATORY_SETTER){ret.values=o_create(ret.values)}obj[META_KEY]=ret}return ret}function getMeta(obj,property){var _meta=meta(obj,false);return _meta[property]}__exports__.getMeta=getMeta;function setMeta(obj,property,value){var _meta=meta(obj,true);_meta[property]=value;return value}__exports__.setMeta=setMeta;function metaPath(obj,path,writable){var _meta=meta(obj,writable),keyName,value;for(var i=0,l=path.length;i1){watching[keyName]--}}__exports__.unwatchKey=unwatchKey});define("ember-metal/watch_path",["ember-metal/utils","ember-metal/chains","exports"],function(__dependency1__,__dependency2__,__exports__){"use strict";var meta=__dependency1__.meta;var typeOf=__dependency1__.typeOf;var ChainNode=__dependency2__.ChainNode;var metaFor=meta;function chainsFor(obj,meta){var m=meta||metaFor(obj),ret=m.chains;if(!ret){ret=m.chains=new ChainNode(null,null,obj)}else if(ret.value()!==obj){ret=m.chains=ret.copy(obj)}return ret}function watchPath(obj,keyPath,meta){if(keyPath==="length"&&typeOf(obj)==="array"){return}var m=meta||metaFor(obj),watching=m.watching;if(!watching[keyPath]){watching[keyPath]=1;chainsFor(obj,m).add(keyPath)}else{watching[keyPath]=(watching[keyPath]||0)+1}}__exports__.watchPath=watchPath;function unwatchPath(obj,keyPath,meta){var m=meta||metaFor(obj),watching=m.watching;if(watching[keyPath]===1){watching[keyPath]=0;chainsFor(obj,m).remove(keyPath)}else if(watching[keyPath]>1){watching[keyPath]--}}__exports__.unwatchPath=unwatchPath});define("ember-metal/watching",["ember-metal/utils","ember-metal/chains","ember-metal/watch_key","ember-metal/watch_path","exports"],function(__dependency1__,__dependency2__,__dependency3__,__dependency4__,__exports__){"use strict";var meta=__dependency1__.meta;var META_KEY=__dependency1__.META_KEY;var GUID_KEY=__dependency1__.GUID_KEY;var typeOf=__dependency1__.typeOf;var generateGuid=__dependency1__.generateGuid;var removeChainWatcher=__dependency2__.removeChainWatcher;var flushPendingChains=__dependency2__.flushPendingChains;var watchKey=__dependency3__.watchKey;var unwatchKey=__dependency3__.unwatchKey;var watchPath=__dependency4__.watchPath;var unwatchPath=__dependency4__.unwatchPath;var metaFor=meta;function isKeyName(path){return path.indexOf(".")===-1}function watch(obj,_keyPath,m){if(_keyPath==="length"&&typeOf(obj)==="array"){return}if(isKeyName(_keyPath)){watchKey(obj,_keyPath,m)}else{watchPath(obj,_keyPath,m)}}__exports__.watch=watch;function isWatching(obj,key){var meta=obj[META_KEY];return(meta&&meta.watching[key])>0}__exports__.isWatching=isWatching;watch.flushPending=flushPendingChains;function unwatch(obj,_keyPath,m){if(_keyPath==="length"&&typeOf(obj)==="array"){return}if(isKeyName(_keyPath)){unwatchKey(obj,_keyPath,m)}else{unwatchPath(obj,_keyPath,m)}}__exports__.unwatch=unwatch;function rewatch(obj){var m=obj[META_KEY],chains=m&&m.chains;if(GUID_KEY in obj&&!obj.hasOwnProperty(GUID_KEY)){generateGuid(obj)}if(chains&&chains.value()!==obj){m.chains=chains.copy(obj)}}__exports__.rewatch=rewatch;var NODE_STACK=[];function destroy(obj){var meta=obj[META_KEY],node,nodes,key,nodeObject;if(meta){obj[META_KEY]=null;node=meta.chains;if(node){NODE_STACK.push(node);while(NODE_STACK.length>0){node=NODE_STACK.pop();nodes=node._chains;if(nodes){for(key in nodes){if(nodes.hasOwnProperty(key)){NODE_STACK.push(nodes[key])}}}if(node._watching){nodeObject=node._object;if(nodeObject){removeChainWatcher(nodeObject,node._key,node)}}}}}}__exports__.destroy=destroy});define("ember-routing-handlebars",["ember-metal/core","ember-handlebars","ember-routing/system/router","ember-routing-handlebars/helpers/shared","ember-routing-handlebars/helpers/link_to","ember-routing-handlebars/helpers/outlet","ember-routing-handlebars/helpers/render","ember-routing-handlebars/helpers/action","exports"],function(__dependency1__,__dependency2__,__dependency3__,__dependency4__,__dependency5__,__dependency6__,__dependency7__,__dependency8__,__exports__){"use strict";var Ember=__dependency1__["default"];var EmberHandlebars=__dependency2__["default"];var Router=__dependency3__["default"];var resolvePaths=__dependency4__.resolvePaths;var resolveParams=__dependency4__.resolveParams;var deprecatedLinkToHelper=__dependency5__.deprecatedLinkToHelper;var linkToHelper=__dependency5__.linkToHelper;var LinkView=__dependency5__.LinkView;var outletHelper=__dependency6__.outletHelper;var OutletView=__dependency6__.OutletView;var renderHelper=__dependency7__["default"];var ActionHelper=__dependency8__.ActionHelper;var actionHelper=__dependency8__.actionHelper;Router.resolveParams=resolveParams;Router.resolvePaths=resolvePaths;Ember.LinkView=LinkView;EmberHandlebars.ActionHelper=ActionHelper;EmberHandlebars.OutletView=OutletView;EmberHandlebars.registerHelper("render",renderHelper);EmberHandlebars.registerHelper("action",actionHelper);EmberHandlebars.registerHelper("outlet",outletHelper);EmberHandlebars.registerHelper("link-to",linkToHelper);EmberHandlebars.registerHelper("linkTo",deprecatedLinkToHelper);__exports__["default"]=Ember
-});define("ember-routing-handlebars/helpers/action",["ember-metal/core","ember-metal/property_get","ember-metal/array","ember-metal/utils","ember-metal/run_loop","ember-views/system/utils","ember-routing/system/router","ember-handlebars","ember-handlebars/ext","ember-handlebars/helpers/view","ember-routing-handlebars/helpers/shared","exports"],function(__dependency1__,__dependency2__,__dependency3__,__dependency4__,__dependency5__,__dependency6__,__dependency7__,__dependency8__,__dependency9__,__dependency10__,__dependency11__,__exports__){"use strict";var Ember=__dependency1__["default"];var get=__dependency2__.get;var forEach=__dependency3__.forEach;var uuid=__dependency4__.uuid;var run=__dependency5__["default"];var isSimpleClick=__dependency6__.isSimpleClick;var EmberRouter=__dependency7__["default"];var EmberHandlebars=__dependency8__["default"];var handlebarsGet=__dependency9__.handlebarsGet;var viewHelper=__dependency10__.viewHelper;var resolveParams=__dependency11__.resolveParams;var resolvePath=__dependency11__.resolvePath;var SafeString=EmberHandlebars.SafeString;var a_slice=Array.prototype.slice;function args(options,actionName){var ret=[];if(actionName){ret.push(actionName)}var types=options.options.types.slice(1),data=options.options.data;return ret.concat(resolveParams(options.context,options.params,{types:types,data:data}))}var ActionHelper={registeredActions:{}};__exports__.ActionHelper=ActionHelper;var keys=["alt","shift","meta","ctrl"];var POINTER_EVENT_TYPE_REGEX=/^click|mouse|touch/;var isAllowedEvent=function(event,allowedKeys){if(typeof allowedKeys==="undefined"){if(POINTER_EVENT_TYPE_REGEX.test(event.type)){return isSimpleClick(event)}else{allowedKeys=""}}if(allowedKeys.indexOf("any")>=0){return true}var allowed=true;forEach.call(keys,function(key){if(event[key+"Key"]&&allowedKeys.indexOf(key)===-1){allowed=false}});return allowed};ActionHelper.registerAction=function(actionNameOrPath,options,allowedKeys){var actionId=uuid();ActionHelper.registeredActions[actionId]={eventName:options.eventName,handler:function handleRegisteredAction(event){if(!isAllowedEvent(event,allowedKeys)){return true}if(options.preventDefault!==false){event.preventDefault()}if(options.bubbles===false){event.stopPropagation()}var target=options.target,parameters=options.parameters,actionName;if(target.target){target=handlebarsGet(target.root,target.target,target.options)}else{target=target.root}if(options.boundProperty){actionName=resolveParams(parameters.context,[actionNameOrPath],{types:["ID"],data:parameters.options.data})[0];if(typeof actionName==="undefined"||typeof actionName==="function"){actionName=actionNameOrPath}}if(!actionName){actionName=actionNameOrPath}run(function runRegisteredAction(){if(target.send){target.send.apply(target,args(parameters,actionName))}else{target[actionName].apply(target,args(parameters))}})}};options.view.on("willClearRender",function(){delete ActionHelper.registeredActions[actionId]});return actionId};function actionHelper(actionName){var options=arguments[arguments.length-1],contexts=a_slice.call(arguments,1,-1);var hash=options.hash,controller=options.data.keywords.controller;var action={eventName:hash.on||"click",parameters:{context:this,options:options,params:contexts},view:options.data.view,bubbles:hash.bubbles,preventDefault:hash.preventDefault,target:{options:options},boundProperty:options.types[0]==="ID"};if(hash.target){action.target.root=this;action.target.target=hash.target}else if(controller){action.target.root=controller}var actionId=ActionHelper.registerAction(actionName,action,hash.allowedKeys);return new SafeString('data-ember-action="'+actionId+'"')}__exports__.actionHelper=actionHelper});define("ember-routing-handlebars/helpers/link_to",["ember-metal/core","ember-metal/property_get","ember-metal/property_set","ember-metal/merge","ember-metal/run_loop","ember-metal/computed","ember-runtime/system/lazy_load","ember-runtime/system/string","ember-runtime/system/object","ember-runtime/keys","ember-views/system/utils","ember-views/views/component","ember-handlebars","ember-handlebars/helpers/view","ember-routing/system/router","ember-routing-handlebars/helpers/shared","exports"],function(__dependency1__,__dependency2__,__dependency3__,__dependency4__,__dependency5__,__dependency6__,__dependency7__,__dependency8__,__dependency9__,__dependency10__,__dependency11__,__dependency12__,__dependency13__,__dependency14__,__dependency15__,__dependency16__,__exports__){"use strict";var Ember=__dependency1__["default"];var get=__dependency2__.get;var set=__dependency3__.set;var merge=__dependency4__["default"];var run=__dependency5__["default"];var computed=__dependency6__.computed;var onLoad=__dependency7__.onLoad;var fmt=__dependency8__.fmt;var EmberObject=__dependency9__["default"];var keys=__dependency10__["default"];var isSimpleClick=__dependency11__.isSimpleClick;var EmberComponent=__dependency12__["default"];var EmberHandlebars=__dependency13__["default"];var viewHelper=__dependency14__.viewHelper;var EmberRouter=__dependency15__["default"];var resolveParams=__dependency16__.resolveParams;var resolvePaths=__dependency16__.resolvePaths;var routeArgs=__dependency16__.routeArgs;var slice=[].slice;requireModule("ember-handlebars");var numberOfContextsAcceptedByHandler=function(handler,handlerInfos){var req=0;for(var i=0,l=handlerInfos.length;imaximumContexts){currentWhen=leafName}var args=routeArgs(currentWhen,contexts,null);var isActive=router.isActive.apply(router,args);if(!isActive){return false}if(!this.currentWhen&&leafName===loadedParams.targetRouteName){var visibleQueryParams={};merge(visibleQueryParams,loadedParams.queryParams);router._prepareQueryParams(loadedParams.targetRouteName,loadedParams.models,visibleQueryParams);isActive=shallowEqual(visibleQueryParams,router.router.state.queryParams)}if(isActive){return get(this,"activeClass")}}),loading:computed("loadedParams",function computeLinkViewLoading(){if(!get(this,"loadedParams")){return get(this,"loadingClass")}}),router:computed(function(){return get(this,"controller").container.lookup("router:main")}),_invoke:function(event){if(!isSimpleClick(event)){return true}if(this.preventDefault!==false){if(Ember.FEATURES.isEnabled("ember-routing-linkto-target-attribute")){var targetAttribute=get(this,"target");if(!targetAttribute||targetAttribute==="_self"){event.preventDefault()}}else{event.preventDefault()}}if(this.bubbles===false){event.stopPropagation()}if(get(this,"_isDisabled")){return false}if(get(this,"loading")){Ember.Logger.warn("This link-to is in an inactive loading state because at least one of its parameters presently has a null/undefined value, or the provided route name is invalid.");return false}var router=get(this,"router"),loadedParams=get(this,"loadedParams");var transition=router._doTransition(loadedParams.targetRouteName,loadedParams.models,loadedParams.queryParams);if(get(this,"replace")){transition.method("replace")}var args=routeArgs(loadedParams.targetRouteName,loadedParams.models,transition.state.queryParams);var url=router.router.generate.apply(router.router,args);run.scheduleOnce("routerTransitions",this,this._eagerUpdateUrl,transition,url)},_eagerUpdateUrl:function(transition,href){if(!transition.isActive||!transition.urlMethod){return}if(href.indexOf("#")===0){href=href.slice(1)}var routerjs=get(this,"router.router");if(transition.urlMethod==="update"){routerjs.updateURL(href)}else if(transition.urlMethod==="replace"){routerjs.replaceURL(href)}transition.method(null)},resolvedParams:computed("router.url",function(){var parameters=this.parameters,options=parameters.options,types=options.types,data=options.data,targetRouteName,models;var onlyQueryParamsSupplied=parameters.params.length===0;if(onlyQueryParamsSupplied){var appController=this.container.lookup("controller:application");targetRouteName=get(appController,"currentRouteName");models=[]}else{models=resolveParams(parameters.context,parameters.params,{types:types,data:data});targetRouteName=models.shift()}var suppliedQueryParams=getResolvedQueryParams(this,targetRouteName);return{targetRouteName:targetRouteName,models:models,queryParams:suppliedQueryParams}}),loadedParams:computed("resolvedParams",function computeLinkViewRouteArgs(){var resolvedParams=get(this,"resolvedParams"),router=get(this,"router"),namedRoute=resolvedParams.targetRouteName;if(!namedRoute){return}if(!paramsAreLoaded(resolvedParams.models)){return}return resolvedParams}),queryParamsObject:null,href:computed("loadedParams",function computeLinkViewHref(){if(get(this,"tagName")!=="a"){return}var router=get(this,"router"),loadedParams=get(this,"loadedParams");if(!loadedParams){return get(this,"loadingHref")}var visibleQueryParams={};merge(visibleQueryParams,loadedParams.queryParams);router._prepareQueryParams(loadedParams.targetRouteName,loadedParams.models,visibleQueryParams);var args=routeArgs(loadedParams.targetRouteName,loadedParams.models,visibleQueryParams);var result=router.generate.apply(router,args);return result}),loadingHref:"#"});LinkView.toString=function(){return"LinkView"};if(Ember.FEATURES.isEnabled("ember-routing-linkto-target-attribute")){LinkView.reopen({attributeBindings:["target"],target:null})}function linkToHelper(name){var options=slice.call(arguments,-1)[0],params=slice.call(arguments,0,-1),hash=options.hash;if(params[params.length-1]instanceof QueryParams){hash.queryParamsObject=params.pop()}hash.disabledBinding=hash.disabledWhen;if(!options.fn){var linkTitle=params.shift();var linkType=options.types.shift();var context=this;if(linkType==="ID"){options.linkTextPath=linkTitle;options.fn=function(){return EmberHandlebars.getEscaped(context,linkTitle,options)}}else{options.fn=function(){return linkTitle}}}hash.parameters={context:this,options:options,params:params};options.helperName=options.helperName||"link-to";return viewHelper.call(this,LinkView,options)}EmberHandlebars.registerHelper("query-params",function queryParamsHelper(options){return QueryParams.create({values:options.hash,types:options.hashTypes})});function deprecatedLinkToHelper(){return linkToHelper.apply(this,arguments)}function getResolvedQueryParams(linkView,targetRouteName){var helperParameters=linkView.parameters,queryParamsObject=linkView.queryParamsObject,resolvedQueryParams={};if(!queryParamsObject){return resolvedQueryParams}var rawParams=queryParamsObject.values;for(var key in rawParams){if(!rawParams.hasOwnProperty(key)){continue}var value=rawParams[key],type=queryParamsObject.types[key];if(type==="ID"){var normalizedPath=getNormalizedPath(value,helperParameters);value=EmberHandlebars.get(normalizedPath.root,normalizedPath.path,helperParameters.options)}resolvedQueryParams[key]=value}return resolvedQueryParams}function getNormalizedPath(path,helperParameters){return EmberHandlebars.normalizePath(helperParameters.context,path,helperParameters.options.data)}function paramsAreLoaded(params){for(var i=0,len=params.length;i2){var factory=container.lookupFactory(controllerFullName)||generateControllerFactory(container,controllerName,context);controller=factory.create({model:context,parentController:parentController,target:parentController});view.one("willDestroyElement",function(){controller.destroy()})}else{controller=container.lookup(controllerFullName)||generateController(container,controllerName);controller.setProperties({target:parentController,parentController:parentController})}var root=options.contexts[1];if(root){view.registerObserver(root,contextString,function(){controller.set("model",handlebarsGet(root,contextString,options))})}options.hash.viewName=camelize(name);var templateName="template:"+name;options.hash.template=container.lookup(templateName);options.hash.controller=controller;if(router&&!context){router._connectActiveView(name,view)}options.helperName=options.helperName||'render "'+name+'"';viewHelper.call(this,view,options)}});define("ember-routing-handlebars/helpers/shared",["ember-metal/property_get","ember-metal/array","ember-runtime/mixins/controller","ember-handlebars/ext","ember-metal/utils","exports"],function(__dependency1__,__dependency2__,__dependency3__,__dependency4__,__dependency5__,__exports__){"use strict";var get=__dependency1__.get;var map=__dependency2__.map;var ControllerMixin=__dependency3__["default"];var handlebarsResolve=__dependency4__.resolveParams;var handlebarsGet=__dependency4__.handlebarsGet;var typeOf=__dependency5__.typeOf;var get=__dependency1__.get;function routeArgs(targetRouteName,models,queryParams){var args=[];if(typeOf(targetRouteName)==="string"){args.push(""+targetRouteName)}args.push.apply(args,models);args.push({queryParams:queryParams});return args}__exports__.routeArgs=routeArgs;function getActiveTargetName(router){var handlerInfos=router.activeTransition?router.activeTransition.state.handlerInfos:router.state.handlerInfos;return handlerInfos[handlerInfos.length-1].name}__exports__.getActiveTargetName=getActiveTargetName;function resolveParams(context,params,options){return map.call(resolvePaths(context,params,options),function(path,i){if(null===path){return params[i]}else{return handlebarsGet(context,path,options)}})}__exports__.resolveParams=resolveParams;function stashParamNames(router,handlerInfos){if(handlerInfos._namesStashed){return}var targetRouteName=handlerInfos[handlerInfos.length-1].name;var recogHandlers=router.router.recognizer.handlersFor(targetRouteName);var dynamicParent=null;for(var i=0,len=handlerInfos.length;i7)},_replacePath:function(path){this._location.replace(this._getOrigin()+path)},_getRootURL:function(){return this.rootURL},_getPath:function(){var pathname=this._location.pathname;if(pathname.charAt(0)!=="/"){pathname="/"+pathname}return pathname},_getHash:EmberLocation._getHash,_getQuery:function(){return this._location.search},_getFullPath:function(){return this._getPath()+this._getQuery()+this._getHash()},_getHistoryPath:function(){var rootURL=this._getRootURL(),path=this._getPath(),hash=this._getHash(),query=this._getQuery(),rootURLIndex=path.indexOf(rootURL),routeHash,hashParts;if(hash.substr(0,2)==="#/"){hashParts=hash.substr(1).split("#");routeHash=hashParts.shift();if(path.slice(-1)==="/"){routeHash=routeHash.substr(1)}path+=routeHash;path+=query;if(hashParts.length){path+="#"+hashParts.join("#")}}else{path+=query;path+=hash}return path},_getHashPath:function(){var rootURL=this._getRootURL(),path=rootURL,historyPath=this._getHistoryPath(),routePath=historyPath.substr(rootURL.length);if(routePath!==""){if(routePath.charAt(0)!=="/"){routePath="/"+routePath}path+="#"+routePath}return path},create:function(options){if(options&&options.rootURL){this.rootURL=options.rootURL}var historyPath,hashPath,cancelRouterSetup=false,implementationClass=this._NoneLocation,currentPath=this._getFullPath();if(this._getSupportsHistory()){historyPath=this._getHistoryPath();if(currentPath===historyPath){implementationClass=this._HistoryLocation}else{cancelRouterSetup=true;this._replacePath(historyPath)}}else if(this._getSupportsHashChange()){hashPath=this._getHashPath();if(currentPath===hashPath||currentPath==="/"&&hashPath==="/#/"){implementationClass=this._HashLocation}else{cancelRouterSetup=true;this._replacePath(hashPath)}}var implementation=implementationClass.create.apply(implementationClass,arguments);if(cancelRouterSetup){set(implementation,"cancelRouterSetup",true)}return implementation}}});define("ember-routing/location/hash_location",["ember-metal/property_get","ember-metal/property_set","ember-metal/run_loop","ember-metal/utils","ember-runtime/system/object","ember-routing/location/api","ember-views/system/jquery","exports"],function(__dependency1__,__dependency2__,__dependency3__,__dependency4__,__dependency5__,__dependency6__,__dependency7__,__exports__){"use strict";
-var get=__dependency1__.get;var set=__dependency2__.set;var run=__dependency3__["default"];var guidFor=__dependency4__.guidFor;var EmberObject=__dependency5__["default"];var EmberLocation=__dependency6__["default"];var jQuery=__dependency7__["default"];__exports__["default"]=EmberObject.extend({implementation:"hash",init:function(){set(this,"location",get(this,"_location")||window.location)},getHash:EmberLocation._getHash,getURL:function(){return this.getHash().substr(1)},setURL:function(path){get(this,"location").hash=path;set(this,"lastSetURL",path)},replaceURL:function(path){get(this,"location").replace("#"+path);set(this,"lastSetURL",path)},onUpdateURL:function(callback){var self=this;var guid=guidFor(this);jQuery(window).on("hashchange.ember-location-"+guid,function(){run(function(){var path=self.getURL();if(get(self,"lastSetURL")===path){return}set(self,"lastSetURL",null);callback(path)})})},formatURL:function(url){return"#"+url},willDestroy:function(){var guid=guidFor(this);jQuery(window).off("hashchange.ember-location-"+guid)}})});define("ember-routing/location/history_location",["ember-metal/core","ember-metal/property_get","ember-metal/property_set","ember-metal/utils","ember-runtime/system/object","ember-views/system/jquery","exports"],function(__dependency1__,__dependency2__,__dependency3__,__dependency4__,__dependency5__,__dependency6__,__exports__){"use strict";var Ember=__dependency1__["default"];var get=__dependency2__.get;var set=__dependency3__.set;var guidFor=__dependency4__.guidFor;var EmberObject=__dependency5__["default"];var jQuery=__dependency6__["default"];var popstateFired=false;var supportsHistoryState=window.history&&"state"in window.history;__exports__["default"]=EmberObject.extend({implementation:"history",init:function(){set(this,"location",get(this,"location")||window.location);set(this,"baseURL",jQuery("base").attr("href")||"")},initState:function(){set(this,"history",get(this,"history")||window.history);this.replaceState(this.formatURL(this.getURL()))},rootURL:"/",getURL:function(){var rootURL=get(this,"rootURL"),location=get(this,"location"),path=location.pathname,baseURL=get(this,"baseURL");rootURL=rootURL.replace(/\/$/,"");baseURL=baseURL.replace(/\/$/,"");var url=path.replace(baseURL,"").replace(rootURL,"");var search=location.search||"";url+=search;return url},setURL:function(path){var state=this.getState();path=this.formatURL(path);if(!state||state.path!==path){this.pushState(path)}},replaceURL:function(path){var state=this.getState();path=this.formatURL(path);if(!state||state.path!==path){this.replaceState(path)}},getState:function(){return supportsHistoryState?get(this,"history").state:this._historyState},pushState:function(path){var state={path:path};get(this,"history").pushState(state,null,path);if(!supportsHistoryState){this._historyState=state}this._previousURL=this.getURL()},replaceState:function(path){var state={path:path};get(this,"history").replaceState(state,null,path);if(!supportsHistoryState){this._historyState=state}this._previousURL=this.getURL()},onUpdateURL:function(callback){var guid=guidFor(this),self=this;jQuery(window).on("popstate.ember-location-"+guid,function(e){if(!popstateFired){popstateFired=true;if(self.getURL()===self._previousURL){return}}callback(self.getURL())})},formatURL:function(url){var rootURL=get(this,"rootURL"),baseURL=get(this,"baseURL");if(url!==""){rootURL=rootURL.replace(/\/$/,"");baseURL=baseURL.replace(/\/$/,"")}else if(baseURL.match(/^\//)&&rootURL.match(/^\//)){baseURL=baseURL.replace(/\/$/,"")}return baseURL+rootURL+url},willDestroy:function(){var guid=guidFor(this);jQuery(window).off("popstate.ember-location-"+guid)}})});define("ember-routing/location/none_location",["ember-metal/property_get","ember-metal/property_set","ember-runtime/system/object","exports"],function(__dependency1__,__dependency2__,__dependency3__,__exports__){"use strict";var get=__dependency1__.get;var set=__dependency2__.set;var EmberObject=__dependency3__["default"];__exports__["default"]=EmberObject.extend({implementation:"none",path:"",getURL:function(){return get(this,"path")},setURL:function(path){set(this,"path",path)},onUpdateURL:function(callback){this.updateCallback=callback},handleURL:function(url){set(this,"path",url);this.updateCallback(url)},formatURL:function(url){return url}})});define("ember-routing/system/cache",["ember-runtime/system/object","exports"],function(__dependency1__,__exports__){"use strict";var EmberObject=__dependency1__["default"];__exports__["default"]=EmberObject.extend({init:function(){this.cache={}},has:function(bucketKey){return bucketKey in this.cache},stash:function(bucketKey,key,value){var bucket=this.cache[bucketKey];if(!bucket){bucket=this.cache[bucketKey]={}}bucket[key]=value},lookup:function(bucketKey,prop,defaultValue){var cache=this.cache;if(!(bucketKey in cache)){return defaultValue}var bucket=cache[bucketKey];if(prop in bucket){return bucket[prop]}else{return defaultValue}},cache:null})});define("ember-routing/system/controller_for",["exports"],function(__exports__){"use strict";__exports__["default"]=function controllerFor(container,controllerName,lookupOptions){return container.lookup("controller:"+controllerName,lookupOptions)}});define("ember-routing/system/dsl",["ember-metal/core","exports"],function(__dependency1__,__exports__){"use strict";var Ember=__dependency1__["default"];function DSL(name){this.parent=name;this.matches=[]}__exports__["default"]=DSL;DSL.prototype={resource:function(name,options,callback){if(arguments.length===2&&typeof options==="function"){callback=options;options={}}if(arguments.length===1){options={}}if(typeof options.path!=="string"){options.path="/"+name}var createSubRoutes=false;if(Ember.FEATURES.isEnabled("ember-routing-consistent-resources")){createSubRoutes=true}else{if(callback){createSubRoutes=true}}if(createSubRoutes){var dsl=new DSL(name);route(dsl,"loading");route(dsl,"error",{path:"/_unused_dummy_error_path_route_"+name+"/:error"});if(callback){callback.call(dsl)}this.push(options.path,name,dsl.generate())}else{this.push(options.path,name,null)}if(Ember.FEATURES.isEnabled("ember-routing-named-substates")){name=name.split(".").pop();route(this,name+"_loading");route(this,name+"_error",{path:"/_unused_dummy_error_path_route_"+name+"/:error"})}},push:function(url,name,callback){var parts=name.split(".");if(url===""||url==="/"||parts[parts.length-1]==="index"){this.explicitIndex=true}this.matches.push([url,name,callback])},route:function(name,options){route(this,name,options);if(Ember.FEATURES.isEnabled("ember-routing-named-substates")){route(this,name+"_loading");route(this,name+"_error",{path:"/_unused_dummy_error_path_route_"+name+"/:error"})}},generate:function(){var dslMatches=this.matches;if(!this.explicitIndex){this.route("index",{path:"/"})}return function(match){for(var i=0,l=dslMatches.length;i1){var qp0=qps[0].qp,qp1=qps[1].qp}var qp=qps[0].qp;queryParams[qp.urlKey]=qp.route.serializeQueryParam(qps[0].value,qp.urlKey,qp.type)}},_deserializeQueryParams:function(targetRouteName,queryParams){forEachQueryParam(this,targetRouteName,queryParams,function(key,value,qp){delete queryParams[key];queryParams[qp.prop]=qp.route.deserializeQueryParam(value,qp.urlKey,qp.type)})},_pruneDefaultQueryParamValues:function(targetRouteName,queryParams){var qps=this._queryParamsFor(targetRouteName);for(var key in queryParams){var qp=qps.map[key];if(qp&&qp.sdef===queryParams[key]){delete queryParams[key]}}},_doTransition:function(_targetRouteName,models,_queryParams){var targetRouteName=_targetRouteName||getActiveTargetName(this.router);var queryParams={};merge(queryParams,_queryParams);this._prepareQueryParams(targetRouteName,models,queryParams);var transitionArgs=routeArgs(targetRouteName,models,queryParams);
-var transitionPromise=this.router.transitionTo.apply(this.router,transitionArgs);listenForTransitionErrors(transitionPromise);return transitionPromise},_prepareQueryParams:function(targetRouteName,models,queryParams){this._hydrateUnsuppliedQueryParams(targetRouteName,models,queryParams);this._serializeQueryParams(targetRouteName,queryParams);this._pruneDefaultQueryParamValues(targetRouteName,queryParams)},_queryParamsFor:function(leafRouteName){if(this._qpCache[leafRouteName]){return this._qpCache[leafRouteName]}var map={},qps=[],qpCache=this._qpCache[leafRouteName]={map:map,qps:qps};var routerjs=this.router,recogHandlerInfos=routerjs.recognizer.handlersFor(leafRouteName);for(var i=0,len=recogHandlerInfos.length;i=0;--i){var handlerInfo=handlerInfos[i],route=handlerInfo.handler;if(!originRouteFound){if(originRoute===route){originRouteFound=true}continue}if(callback(route,handlerInfos[i+1].handler)!==true){return false}}return true}var defaultActionHandlers={willResolveModel:function(transition,originRoute){originRoute.router._scheduleLoadingEvent(transition,originRoute)},error:function(error,transition,originRoute){var router=originRoute.router;var tryTopLevel=forEachRouteAbove(originRoute,transition,function(route,childRoute){var childErrorRouteName=findChildRouteName(route,childRoute,"error");if(childErrorRouteName){router.intermediateTransitionTo(childErrorRouteName,error);return}return true});if(tryTopLevel){if(routeHasBeenDefined(originRoute.router,"application_error")){router.intermediateTransitionTo("application_error",error);return}}else{return}var errorArgs=["Error while processing route: "+transition.targetName];if(error){if(error.message){errorArgs.push(error.message)}if(error.stack){errorArgs.push(error.stack)}if(typeof error==="string"){errorArgs.push(error)}}Ember.Logger.error.apply(this,errorArgs)},loading:function(transition,originRoute){var router=originRoute.router;var tryTopLevel=forEachRouteAbove(originRoute,transition,function(route,childRoute){var childLoadingRouteName=findChildRouteName(route,childRoute,"loading");if(childLoadingRouteName){router.intermediateTransitionTo(childLoadingRouteName);return}if(transition.pivotHandler!==route){return true}});if(tryTopLevel){if(routeHasBeenDefined(originRoute.router,"application_loading")){router.intermediateTransitionTo("application_loading");return}}}};function findChildRouteName(parentRoute,originatingChildRoute,name){var router=parentRoute.router,childName,targetChildRouteName=originatingChildRoute.routeName.split(".").pop(),namespace=parentRoute.routeName==="application"?"":parentRoute.routeName+".";if(Ember.FEATURES.isEnabled("ember-routing-named-substates")){childName=namespace+targetChildRouteName+"_"+name;if(routeHasBeenDefined(router,childName)){return childName}}childName=namespace+name;if(routeHasBeenDefined(router,childName)){return childName}}function routeHasBeenDefined(router,name){var container=router.container;return router.hasRoute(name)&&(container.has("template:"+name)||container.has("route:"+name))}function triggerEvent(handlerInfos,ignoreFailure,args){var name=args.shift();if(!handlerInfos){if(ignoreFailure){return}throw new EmberError("Can't trigger action '"+name+"' because your app hasn't finished transitioning into its first route. To trigger an action on destination routes during a transition, you can call `.send()` on the `Transition` object passed to the `model/beforeModel/afterModel` hooks.")}var eventWasHandled=false;for(var i=handlerInfos.length-1;i>=0;i--){var handlerInfo=handlerInfos[i],handler=handlerInfo.handler;if(handler._actions&&handler._actions[name]){if(handler._actions[name].apply(handler,args)===true){eventWasHandled=true}else{return}}}if(defaultActionHandlers[name]){defaultActionHandlers[name].apply(null,args);return}if(!eventWasHandled&&!ignoreFailure){throw new EmberError("Nothing handled the action '"+name+"'. If you did handle the action, this error can be caused by returning true from an action handler in a controller, causing the action to bubble.")}}function calculatePostTransitionState(emberRouter,leafRouteName,contexts){var routerjs=emberRouter.router;var state=routerjs.applyIntent(leafRouteName,contexts);var handlerInfos=state.handlerInfos;var params=state.params;for(var i=0,len=handlerInfos.length;itype2Index){return 1}switch(type1){case"boolean":case"number":if(vw){return 1}return 0;case"string":var comp=v.localeCompare(w);if(comp<0){return-1}if(comp>0){return 1}return 0;case"array":var vLen=v.length;var wLen=w.length;var l=Math.min(vLen,wLen);var r=0;var i=0;while(r===0&&iwLen){return 1}return 0;case"instance":if(Comparable&&Comparable.detect(v)){return v.compare(v,w)}return 0;case"date":var vNum=v.getTime();var wNum=w.getTime();if(vNumwNum){return 1}return 0;default:return 0}}});define("ember-runtime/computed/array_computed",["ember-metal/core","ember-runtime/computed/reduce_computed","ember-metal/enumerable_utils","ember-metal/platform","ember-metal/observer","ember-metal/error","exports"],function(__dependency1__,__dependency2__,__dependency3__,__dependency4__,__dependency5__,__dependency6__,__exports__){"use strict";var Ember=__dependency1__["default"];var reduceComputed=__dependency2__.reduceComputed;var ReduceComputedProperty=__dependency2__.ReduceComputedProperty;var forEach=__dependency3__.forEach;var o_create=__dependency4__.create;var addObserver=__dependency5__.addObserver;var EmberError=__dependency6__["default"];var a_slice=[].slice;function ArrayComputedProperty(){var cp=this;ReduceComputedProperty.apply(this,arguments);this.func=function(reduceFunc){return function(propertyName){if(!cp._hasInstanceMeta(this,propertyName)){forEach(cp._dependentKeys,function(dependentKey){addObserver(this,dependentKey,function(){cp.recomputeOnce.call(this,propertyName)})},this)}return reduceFunc.apply(this,arguments)}}(this.func);return this}ArrayComputedProperty.prototype=o_create(ReduceComputedProperty.prototype);ArrayComputedProperty.prototype.initialValue=function(){return Ember.A()};ArrayComputedProperty.prototype.resetValue=function(array){array.clear();return array};ArrayComputedProperty.prototype.didChange=function(obj,keyName){return};function arrayComputed(options){var args;if(arguments.length>1){args=a_slice.call(arguments,0,-1);options=a_slice.call(arguments,-1)[0]}if(typeof options!=="object"){throw new EmberError("Array Computed Property declared without an options hash")}var cp=new ArrayComputedProperty(options);if(args){cp.property.apply(cp,args)}return cp}__exports__.arrayComputed=arrayComputed;__exports__.ArrayComputedProperty=ArrayComputedProperty});define("ember-runtime/computed/reduce_computed",["ember-metal/core","ember-metal/property_get","ember-metal/property_set","ember-metal/utils","ember-metal/error","ember-metal/property_events","ember-metal/expand_properties","ember-metal/observer","ember-metal/computed","ember-metal/platform","ember-metal/enumerable_utils","ember-runtime/system/tracked_array","ember-runtime/mixins/array","ember-metal/run_loop","ember-runtime/system/set","exports"],function(__dependency1__,__dependency2__,__dependency3__,__dependency4__,__dependency5__,__dependency6__,__dependency7__,__dependency8__,__dependency9__,__dependency10__,__dependency11__,__dependency12__,__dependency13__,__dependency14__,__dependency15__,__exports__){"use strict";var Ember=__dependency1__["default"];var e_get=__dependency2__.get;var set=__dependency3__.set;var guidFor=__dependency4__.guidFor;var metaFor=__dependency4__.meta;var EmberError=__dependency5__["default"];var propertyWillChange=__dependency6__.propertyWillChange;var propertyDidChange=__dependency6__.propertyDidChange;var expandProperties=__dependency7__["default"];var addObserver=__dependency8__.addObserver;var observersFor=__dependency8__.observersFor;var removeObserver=__dependency8__.removeObserver;var addBeforeObserver=__dependency8__.addBeforeObserver;var removeBeforeObserver=__dependency8__.removeBeforeObserver;var ComputedProperty=__dependency9__.ComputedProperty;var cacheFor=__dependency9__.cacheFor;var o_create=__dependency10__.create;var forEach=__dependency11__.forEach;var TrackedArray=__dependency12__["default"];var EmberArray=__dependency13__["default"];var run=__dependency14__["default"];var Set=__dependency15__["default"];var isArray=__dependency4__.isArray;var cacheSet=cacheFor.set;var cacheGet=cacheFor.get;var cacheRemove=cacheFor.remove;var a_slice=[].slice;var eachPropertyPattern=/^(.*)\.@each\.(.*)/;var doubleEachPropertyPattern=/(.*\.@each){2,}/;var arrayBracketPattern=/\.\[\]$/;function get(obj,key){if(key==="@this"){return obj}return e_get(obj,key)}function DependentArraysObserver(callbacks,cp,instanceMeta,context,propertyName,sugarMeta){this.callbacks=callbacks;this.cp=cp;this.instanceMeta=instanceMeta;this.dependentKeysByGuid={};this.trackedArraysByGuid={};this.suspended=false;this.changedItems={};this.changedItemCount=0}function ItemPropertyObserverContext(dependentArray,index,trackedArray){this.dependentArray=dependentArray;this.index=index;this.item=dependentArray.objectAt(index);this.trackedArray=trackedArray;this.beforeObserver=null;this.observer=null;this.destroyed=false}DependentArraysObserver.prototype={setValue:function(newValue){this.instanceMeta.setValue(newValue,true)},getValue:function(){return this.instanceMeta.getValue()},setupObservers:function(dependentArray,dependentKey){this.dependentKeysByGuid[guidFor(dependentArray)]=dependentKey;dependentArray.addArrayObserver(this,{willChange:"dependentArrayWillChange",didChange:"dependentArrayDidChange"});if(this.cp._itemPropertyKeys[dependentKey]){this.setupPropertyObservers(dependentKey,this.cp._itemPropertyKeys[dependentKey])}},teardownObservers:function(dependentArray,dependentKey){var itemPropertyKeys=this.cp._itemPropertyKeys[dependentKey]||[];delete this.dependentKeysByGuid[guidFor(dependentArray)];this.teardownPropertyObservers(dependentKey,itemPropertyKeys);dependentArray.removeArrayObserver(this,{willChange:"dependentArrayWillChange",didChange:"dependentArrayDidChange"})},suspendArrayObservers:function(callback,binding){var oldSuspended=this.suspended;this.suspended=true;callback.call(binding);this.suspended=oldSuspended},setupPropertyObservers:function(dependentKey,itemPropertyKeys){var dependentArray=get(this.instanceMeta.context,dependentKey),length=get(dependentArray,"length"),observerContexts=new Array(length);this.resetTransformations(dependentKey,observerContexts);forEach(dependentArray,function(item,index){var observerContext=this.createPropertyObserverContext(dependentArray,index,this.trackedArraysByGuid[dependentKey]);observerContexts[index]=observerContext;forEach(itemPropertyKeys,function(propertyKey){addBeforeObserver(item,propertyKey,this,observerContext.beforeObserver);addObserver(item,propertyKey,this,observerContext.observer)},this)},this)},teardownPropertyObservers:function(dependentKey,itemPropertyKeys){var dependentArrayObserver=this,trackedArray=this.trackedArraysByGuid[dependentKey],beforeObserver,observer,item;if(!trackedArray){return}trackedArray.apply(function(observerContexts,offset,operation){if(operation===TrackedArray.DELETE){return}forEach(observerContexts,function(observerContext){observerContext.destroyed=true;beforeObserver=observerContext.beforeObserver;observer=observerContext.observer;item=observerContext.item;forEach(itemPropertyKeys,function(propertyKey){removeBeforeObserver(item,propertyKey,dependentArrayObserver,beforeObserver);removeObserver(item,propertyKey,dependentArrayObserver,observer)})})})},createPropertyObserverContext:function(dependentArray,index,trackedArray){var observerContext=new ItemPropertyObserverContext(dependentArray,index,trackedArray);this.createPropertyObserver(observerContext);return observerContext},createPropertyObserver:function(observerContext){var dependentArrayObserver=this;observerContext.beforeObserver=function(obj,keyName){return dependentArrayObserver.itemPropertyWillChange(obj,keyName,observerContext.dependentArray,observerContext)};observerContext.observer=function(obj,keyName){return dependentArrayObserver.itemPropertyDidChange(obj,keyName,observerContext.dependentArray,observerContext)}},resetTransformations:function(dependentKey,observerContexts){this.trackedArraysByGuid[dependentKey]=new TrackedArray(observerContexts)},trackAdd:function(dependentKey,index,newItems){var trackedArray=this.trackedArraysByGuid[dependentKey];if(trackedArray){trackedArray.addItems(index,newItems)}},trackRemove:function(dependentKey,index,removedCount){var trackedArray=this.trackedArraysByGuid[dependentKey];if(trackedArray){return trackedArray.removeItems(index,removedCount)}return[]},updateIndexes:function(trackedArray,array){var length=get(array,"length");trackedArray.apply(function(observerContexts,offset,operation,operationIndex){if(operation===TrackedArray.DELETE){return}if(operationIndex===0&&operation===TrackedArray.RETAIN&&observerContexts.length===length&&offset===0){return}forEach(observerContexts,function(context,index){context.index=index+offset})})},dependentArrayWillChange:function(dependentArray,index,removedCount,addedCount){if(this.suspended){return}var removedItem=this.callbacks.removedItem;var changeMeta;var guid=guidFor(dependentArray);var dependentKey=this.dependentKeysByGuid[guid];var itemPropertyKeys=this.cp._itemPropertyKeys[dependentKey]||[];var length=get(dependentArray,"length");var normalizedIndex=normalizeIndex(index,length,0);var normalizedRemoveCount=normalizeRemoveCount(normalizedIndex,length,removedCount);var item,itemIndex,sliceIndex,observerContexts;observerContexts=this.trackRemove(dependentKey,normalizedIndex,normalizedRemoveCount);function removeObservers(propertyKey){observerContexts[sliceIndex].destroyed=true;removeBeforeObserver(item,propertyKey,this,observerContexts[sliceIndex].beforeObserver);removeObserver(item,propertyKey,this,observerContexts[sliceIndex].observer)}for(sliceIndex=normalizedRemoveCount-1;sliceIndex>=0;--sliceIndex){itemIndex=normalizedIndex+sliceIndex;if(itemIndex>=length){break}item=dependentArray.objectAt(itemIndex);forEach(itemPropertyKeys,removeObservers,this);changeMeta=new ChangeMeta(dependentArray,item,itemIndex,this.instanceMeta.propertyName,this.cp,normalizedRemoveCount);this.setValue(removedItem.call(this.instanceMeta.context,this.getValue(),item,changeMeta,this.instanceMeta.sugarMeta))}},dependentArrayDidChange:function(dependentArray,index,removedCount,addedCount){if(this.suspended){return}var addedItem=this.callbacks.addedItem;var guid=guidFor(dependentArray);var dependentKey=this.dependentKeysByGuid[guid];var observerContexts=new Array(addedCount);var itemPropertyKeys=this.cp._itemPropertyKeys[dependentKey];var length=get(dependentArray,"length");var normalizedIndex=normalizeIndex(index,length,addedCount);var changeMeta,observerContext;forEach(dependentArray.slice(normalizedIndex,normalizedIndex+addedCount),function(item,sliceIndex){if(itemPropertyKeys){observerContext=observerContexts[sliceIndex]=this.createPropertyObserverContext(dependentArray,normalizedIndex+sliceIndex,this.trackedArraysByGuid[dependentKey]);forEach(itemPropertyKeys,function(propertyKey){addBeforeObserver(item,propertyKey,this,observerContext.beforeObserver);addObserver(item,propertyKey,this,observerContext.observer)},this)}changeMeta=new ChangeMeta(dependentArray,item,normalizedIndex+sliceIndex,this.instanceMeta.propertyName,this.cp,addedCount);this.setValue(addedItem.call(this.instanceMeta.context,this.getValue(),item,changeMeta,this.instanceMeta.sugarMeta))},this);this.trackAdd(dependentKey,normalizedIndex,observerContexts)},itemPropertyWillChange:function(obj,keyName,array,observerContext){var guid=guidFor(obj);if(!this.changedItems[guid]){this.changedItems[guid]={array:array,observerContext:observerContext,obj:obj,previousValues:{}}}++this.changedItemCount;this.changedItems[guid].previousValues[keyName]=get(obj,keyName)},itemPropertyDidChange:function(obj,keyName,array,observerContext){if(--this.changedItemCount===0){this.flushChanges()}},flushChanges:function(){var changedItems=this.changedItems,key,c,changeMeta;for(key in changedItems){c=changedItems[key];if(c.observerContext.destroyed){continue}this.updateIndexes(c.observerContext.trackedArray,c.observerContext.dependentArray);changeMeta=new ChangeMeta(c.array,c.obj,c.observerContext.index,this.instanceMeta.propertyName,this.cp,changedItems.length,c.previousValues);this.setValue(this.callbacks.removedItem.call(this.instanceMeta.context,this.getValue(),c.obj,changeMeta,this.instanceMeta.sugarMeta));this.setValue(this.callbacks.addedItem.call(this.instanceMeta.context,this.getValue(),c.obj,changeMeta,this.instanceMeta.sugarMeta))}this.changedItems={}}};function normalizeIndex(index,length,newItemsOffset){if(index<0){return Math.max(0,length+index)}else if(index1){args=a_slice.call(arguments,0,-1);options=a_slice.call(arguments,-1)[0]}if(typeof options!=="object"){throw new EmberError("Reduce Computed Property declared without an options hash")}if(!("initialValue"in options)){throw new EmberError("Reduce Computed Property declared without an initial value")}var cp=new ReduceComputedProperty(options);if(args){cp.property.apply(cp,args)}return cp}__exports__.reduceComputed=reduceComputed});define("ember-runtime/computed/reduce_computed_macros",["ember-metal/core","ember-metal/merge","ember-metal/property_get","ember-metal/property_set","ember-metal/utils","ember-metal/error","ember-metal/enumerable_utils","ember-metal/run_loop","ember-metal/observer","ember-runtime/computed/array_computed","ember-runtime/computed/reduce_computed","ember-runtime/system/object_proxy","ember-runtime/system/subarray","ember-runtime/keys","ember-runtime/compare","exports"],function(__dependency1__,__dependency2__,__dependency3__,__dependency4__,__dependency5__,__dependency6__,__dependency7__,__dependency8__,__dependency9__,__dependency10__,__dependency11__,__dependency12__,__dependency13__,__dependency14__,__dependency15__,__exports__){"use strict";var Ember=__dependency1__["default"];var merge=__dependency2__["default"];var get=__dependency3__.get;var set=__dependency4__.set;var isArray=__dependency5__.isArray;var guidFor=__dependency5__.guidFor;var EmberError=__dependency6__["default"];var forEach=__dependency7__.forEach;var run=__dependency8__["default"];var addObserver=__dependency9__.addObserver;var arrayComputed=__dependency10__.arrayComputed;var reduceComputed=__dependency11__.reduceComputed;var ObjectProxy=__dependency12__["default"];var SubArray=__dependency13__["default"];var keys=__dependency14__["default"];var compare=__dependency15__["default"];var a_slice=[].slice;function sum(dependentKey){return reduceComputed(dependentKey,{initialValue:0,addedItem:function(accumulatedValue,item,changeMeta,instanceMeta){return accumulatedValue+item},removedItem:function(accumulatedValue,item,changeMeta,instanceMeta){return accumulatedValue-item}})}__exports__.sum=sum;function max(dependentKey){return reduceComputed(dependentKey,{initialValue:-Infinity,addedItem:function(accumulatedValue,item,changeMeta,instanceMeta){return Math.max(accumulatedValue,item)},removedItem:function(accumulatedValue,item,changeMeta,instanceMeta){if(itemaccumulatedValue){return accumulatedValue}}})}__exports__.min=min;function map(dependentKey,callback){var options={addedItem:function(array,item,changeMeta,instanceMeta){var mapped=callback.call(this,item);array.insertAt(changeMeta.index,mapped);return array},removedItem:function(array,item,changeMeta,instanceMeta){array.removeAt(changeMeta.index,1);return array}};return arrayComputed(dependentKey,options)}__exports__.map=map;function mapBy(dependentKey,propertyKey){var callback=function(item){return get(item,propertyKey)};return map(dependentKey+".@each."+propertyKey,callback)}__exports__.mapBy=mapBy;var mapProperty=mapBy;__exports__.mapProperty=mapProperty;function filter(dependentKey,callback){var options={initialize:function(array,changeMeta,instanceMeta){instanceMeta.filteredArrayIndexes=new SubArray},addedItem:function(array,item,changeMeta,instanceMeta){var match=!!callback.call(this,item),filterIndex=instanceMeta.filteredArrayIndexes.addItem(changeMeta.index,match);if(match){array.insertAt(filterIndex,item)}return array},removedItem:function(array,item,changeMeta,instanceMeta){var filterIndex=instanceMeta.filteredArrayIndexes.removeItem(changeMeta.index);if(filterIndex>-1){array.removeAt(filterIndex)}return array}};return arrayComputed(dependentKey,options)}__exports__.filter=filter;function filterBy(dependentKey,propertyKey,value){var callback;if(arguments.length===2){callback=function(item){return get(item,propertyKey)}}else{callback=function(item){return get(item,propertyKey)===value}}return filter(dependentKey+".@each."+propertyKey,callback)}__exports__.filterBy=filterBy;var filterProperty=filterBy;__exports__.filterProperty=filterProperty;function uniq(){var args=a_slice.call(arguments);args.push({initialize:function(array,changeMeta,instanceMeta){instanceMeta.itemCounts={}},addedItem:function(array,item,changeMeta,instanceMeta){var guid=guidFor(item);if(!instanceMeta.itemCounts[guid]){instanceMeta.itemCounts[guid]=1}else{++instanceMeta.itemCounts[guid]}array.addObject(item);return array},removedItem:function(array,item,_,instanceMeta){var guid=guidFor(item),itemCounts=instanceMeta.itemCounts;if(--itemCounts[guid]===0){array.removeObject(item)}return array}});return arrayComputed.apply(null,args)}__exports__.uniq=uniq;var union=uniq;__exports__.union=union;function intersect(){var getDependentKeyGuids=function(changeMeta){return map(changeMeta.property._dependentKeys,function(dependentKey){return guidFor(dependentKey)})};var args=a_slice.call(arguments);args.push({initialize:function(array,changeMeta,instanceMeta){instanceMeta.itemCounts={}},addedItem:function(array,item,changeMeta,instanceMeta){var itemGuid=guidFor(item),dependentGuids=getDependentKeyGuids(changeMeta),dependentGuid=guidFor(changeMeta.arrayChanged),numberOfDependentArrays=changeMeta.property._dependentKeys.length,itemCounts=instanceMeta.itemCounts;if(!itemCounts[itemGuid]){itemCounts[itemGuid]={}}if(itemCounts[itemGuid][dependentGuid]===undefined){itemCounts[itemGuid][dependentGuid]=0}if(++itemCounts[itemGuid][dependentGuid]===1&&numberOfDependentArrays===keys(itemCounts[itemGuid]).length){array.addObject(item)}return array},removedItem:function(array,item,changeMeta,instanceMeta){var itemGuid=guidFor(item),dependentGuids=getDependentKeyGuids(changeMeta),dependentGuid=guidFor(changeMeta.arrayChanged),numberOfDependentArrays=changeMeta.property._dependentKeys.length,numberOfArraysItemAppearsIn,itemCounts=instanceMeta.itemCounts;if(itemCounts[itemGuid][dependentGuid]===undefined){itemCounts[itemGuid][dependentGuid]=0}if(--itemCounts[itemGuid][dependentGuid]===0){delete itemCounts[itemGuid][dependentGuid];numberOfArraysItemAppearsIn=keys(itemCounts[itemGuid]).length;if(numberOfArraysItemAppearsIn===0){delete itemCounts[itemGuid]}array.removeObject(item)}return array}});return arrayComputed.apply(null,args)}__exports__.intersect=intersect;function setDiff(setAProperty,setBProperty){if(arguments.length!==2){throw new EmberError("setDiff requires exactly two dependent arrays.")}return arrayComputed(setAProperty,setBProperty,{addedItem:function(array,item,changeMeta,instanceMeta){var setA=get(this,setAProperty),setB=get(this,setBProperty);if(changeMeta.arrayChanged===setA){if(!setB.contains(item)){array.addObject(item)}}else{array.removeObject(item)}return array},removedItem:function(array,item,changeMeta,instanceMeta){var setA=get(this,setAProperty),setB=get(this,setBProperty);if(changeMeta.arrayChanged===setB){if(setA.contains(item)){array.addObject(item)}}else{array.removeObject(item)}return array}})}__exports__.setDiff=setDiff;function binarySearch(array,item,low,high){var mid,midItem,res,guidMid,guidItem;if(arguments.length<4){high=get(array,"length")}if(arguments.length<3){low=0}if(low===high){return low}mid=low+Math.floor((high-low)/2);midItem=array.objectAt(mid);guidMid=_guidFor(midItem);guidItem=_guidFor(item);if(guidMid===guidItem){return mid}res=this.order(midItem,item);if(res===0){res=guidMid0){return this.binarySearch(array,item,low,mid)}return mid;function _guidFor(item){if(SearchProxy.detectInstance(item)){return guidFor(get(item,"content"))}return guidFor(item)}}var SearchProxy=ObjectProxy.extend();function sort(itemsKey,sortDefinition){var initFn,sortPropertiesKey;if(typeof sortDefinition==="function"){initFn=function(array,changeMeta,instanceMeta){instanceMeta.order=sortDefinition;instanceMeta.binarySearch=binarySearch}}else{sortPropertiesKey=sortDefinition;initFn=function(array,changeMeta,instanceMeta){function setupSortProperties(){var sortPropertyDefinitions=get(this,sortPropertiesKey),sortProperty,sortProperties=instanceMeta.sortProperties=[],sortPropertyAscending=instanceMeta.sortPropertyAscending={},idx,asc;changeMeta.property.clearItemPropertyKeys(itemsKey);forEach(sortPropertyDefinitions,function(sortPropertyDefinition){if((idx=sortPropertyDefinition.indexOf(":"))!==-1){sortProperty=sortPropertyDefinition.substring(0,idx);asc=sortPropertyDefinition.substring(idx+1).toLowerCase()!=="desc"}else{sortProperty=sortPropertyDefinition;asc=true}sortProperties.push(sortProperty);sortPropertyAscending[sortProperty]=asc;changeMeta.property.itemPropertyKey(itemsKey,sortProperty)});sortPropertyDefinitions.addObserver("@each",this,updateSortPropertiesOnce)}function updateSortPropertiesOnce(){run.once(this,updateSortProperties,changeMeta.propertyName)}function updateSortProperties(propertyName){setupSortProperties.call(this);changeMeta.property.recomputeOnce.call(this,propertyName)}addObserver(this,sortPropertiesKey,updateSortPropertiesOnce);setupSortProperties.call(this);instanceMeta.order=function(itemA,itemB){var isProxy=itemB instanceof SearchProxy,sortProperty,result,asc;for(var i=0;i=0&&idxidx){subController=subControllers[idx];if(subController){return subController}}fullName="controller:"+controllerClass;if(!container.has(fullName)){throw new EmberError('Could not resolve itemController: "'+controllerClass+'"')}if(this._isVirtual){parentController=get(this,"parentController")}else{parentController=this}subController=container.lookupFactory(fullName).create({target:parentController,parentController:parentController,model:object});subControllers[idx]=subController;return subController},_subControllers:null,_resetSubControllers:function(){var controller;var subControllers=this._subControllers;if(subControllers.length){for(var i=0,length=subControllers.length;length>i;i++){controller=subControllers[i];if(controller){controller.destroy()}}subControllers.length=0}},willDestroy:function(){this._resetSubControllers();this._super()}})});define("ember-runtime/controllers/controller",["ember-runtime/system/object","ember-runtime/mixins/controller","exports"],function(__dependency1__,__dependency2__,__exports__){"use strict";var EmberObject=__dependency1__["default"];var Mixin=__dependency2__["default"];__exports__["default"]=EmberObject.extend(Mixin)});define("ember-runtime/controllers/object_controller",["ember-runtime/mixins/controller","ember-runtime/system/object_proxy","exports"],function(__dependency1__,__dependency2__,__exports__){"use strict";var ControllerMixin=__dependency1__["default"];var ObjectProxy=__dependency2__["default"];__exports__["default"]=ObjectProxy.extend(ControllerMixin)});define("ember-runtime/copy",["ember-metal/enumerable_utils","ember-metal/utils","ember-runtime/system/object","ember-runtime/mixins/copyable","ember-metal/platform","exports"],function(__dependency1__,__dependency2__,__dependency3__,__dependency4__,__dependency5__,__exports__){"use strict";var indexOf=__dependency1__.indexOf;var typeOf=__dependency2__.typeOf;var EmberObject=__dependency3__["default"];var Copyable=__dependency4__["default"];var create=__dependency5__.create;function _copy(obj,deep,seen,copies){var ret,loc,key;if("object"!==typeof obj||obj===null)return obj;if(deep&&(loc=indexOf(seen,obj))>=0)return copies[loc];if(typeOf(obj)==="array"){ret=obj.slice();if(deep){loc=ret.length;while(--loc>=0)ret[loc]=_copy(ret[loc],deep,seen,copies)}}else if(Copyable&&Copyable.detect(obj)){ret=obj.copy(deep,seen,copies)}else if(obj instanceof Date){ret=new Date(obj.getTime())}else{ret={};for(key in obj){if(!obj.hasOwnProperty(key))continue;if(key.substring(0,2)==="__")continue;ret[key]=deep?_copy(obj[key],deep,seen,copies):obj[key]}}if(deep){seen.push(obj);copies.push(ret)}return ret}__exports__["default"]=function copy(obj,deep){if("object"!==typeof obj||obj===null)return obj;if(Copyable&&Copyable.detect(obj))return obj.copy(deep);return _copy(obj,deep,deep?[]:null,deep?[]:null)}});define("ember-runtime/core",["exports"],function(__exports__){"use strict";var isEqual=function isEqual(a,b){if(a&&"function"===typeof a.isEqual)return a.isEqual(b);if(a instanceof Date&&b instanceof Date){return a.getTime()===b.getTime()}return a===b};__exports__.isEqual=isEqual});define("ember-runtime/ext/function",["ember-metal/core","ember-metal/expand_properties","ember-metal/computed"],function(__dependency1__,__dependency2__,__dependency3__){"use strict";var Ember=__dependency1__["default"];var expandProperties=__dependency2__["default"];var computed=__dependency3__.computed;var a_slice=Array.prototype.slice;var FunctionPrototype=Function.prototype;if(Ember.EXTEND_PROTOTYPES===true||Ember.EXTEND_PROTOTYPES.Function){FunctionPrototype.property=function(){var ret=computed(this);return ret.property.apply(ret,arguments)};FunctionPrototype.observes=function(){var addWatchedProperty=function(obs){watched.push(obs)};var watched=[];for(var i=0;i=0)return;if(typeof obj.hasOwnProperty==="function"&&!obj.hasOwnProperty(key))return;array.push(key)};keys=function keys(obj){var ret=[],key;for(key in obj){pushPropertyName(obj,ret,key)}for(var i=0,l=prototypeProperties.length;i=get(this,"length"))return undefined;return get(this,idx)},objectsAt:function(indexes){var self=this;return map(indexes,function(idx){return self.objectAt(idx)})},nextObject:function(idx){return this.objectAt(idx)},"[]":computed(function(key,value){if(value!==undefined)this.replace(0,get(this,"length"),value);return this}),firstObject:computed(function(){return this.objectAt(0)}),lastObject:computed(function(){return this.objectAt(get(this,"length")-1)}),contains:function(obj){return this.indexOf(obj)>=0},slice:function(beginIndex,endIndex){var ret=Ember.A();var length=get(this,"length");if(isNone(beginIndex))beginIndex=0;if(isNone(endIndex)||endIndex>length)endIndex=length;if(beginIndex<0)beginIndex=length+beginIndex;if(endIndex<0)endIndex=length+endIndex;while(beginIndex=len)startAt=len-1;if(startAt<0)startAt+=len;for(idx=startAt;idx>=0;idx--){if(this.objectAt(idx)===object)return idx}return-1},addArrayObserver:function(target,opts){var willChange=opts&&opts.willChange||"arrayWillChange",didChange=opts&&opts.didChange||"arrayDidChange";var hasObservers=get(this,"hasArrayObservers");if(!hasObservers)propertyWillChange(this,"hasArrayObservers");addListener(this,"@array:before",target,willChange);addListener(this,"@array:change",target,didChange);if(!hasObservers)propertyDidChange(this,"hasArrayObservers");return this},removeArrayObserver:function(target,opts){var willChange=opts&&opts.willChange||"arrayWillChange",didChange=opts&&opts.didChange||"arrayDidChange";var hasObservers=get(this,"hasArrayObservers");if(hasObservers)propertyWillChange(this,"hasArrayObservers");removeListener(this,"@array:before",target,willChange);removeListener(this,"@array:change",target,didChange);if(hasObservers)propertyDidChange(this,"hasArrayObservers");return this},hasArrayObservers:computed(function(){return hasListeners(this,"@array:change")||hasListeners(this,"@array:before")}),arrayContentWillChange:function(startIdx,removeAmt,addAmt){if(startIdx===undefined){startIdx=0;removeAmt=addAmt=-1}else{if(removeAmt===undefined)removeAmt=-1;if(addAmt===undefined)addAmt=-1}if(isWatching(this,"@each")){get(this,"@each")}sendEvent(this,"@array:before",[this,startIdx,removeAmt,addAmt]);var removing,lim;if(startIdx>=0&&removeAmt>=0&&get(this,"hasEnumerableObservers")){removing=[];lim=startIdx+removeAmt;for(var idx=startIdx;idx=0&&addAmt>=0&&get(this,"hasEnumerableObservers")){adding=[];lim=startIdx+addAmt;for(var idx=startIdx;idx1)args=a_slice.call(arguments,1);this.forEach(function(x,idx){var method=x&&x[methodName];if("function"===typeof method){ret[idx]=args?apply(x,method,args):x[methodName]()}},this);return ret},toArray:function(){var ret=Ember.A();this.forEach(function(o,idx){ret[idx]=o});return ret},compact:function(){return this.filter(function(value){return value!=null})},without:function(value){if(!this.contains(value))return this;var ret=Ember.A();this.forEach(function(k){if(k!==value)ret[ret.length]=k});return ret},uniq:function(){var ret=Ember.A();this.forEach(function(k){if(indexOf(ret,k)<0)ret.push(k)});return ret},"[]":computed(function(key,value){return this}),addEnumerableObserver:function(target,opts){var willChange=opts&&opts.willChange||"enumerableWillChange",didChange=opts&&opts.didChange||"enumerableDidChange";var hasObservers=get(this,"hasEnumerableObservers");if(!hasObservers)propertyWillChange(this,"hasEnumerableObservers");addListener(this,"@enumerable:before",target,willChange);addListener(this,"@enumerable:change",target,didChange);if(!hasObservers)propertyDidChange(this,"hasEnumerableObservers");return this},removeEnumerableObserver:function(target,opts){var willChange=opts&&opts.willChange||"enumerableWillChange",didChange=opts&&opts.didChange||"enumerableDidChange";var hasObservers=get(this,"hasEnumerableObservers");if(hasObservers)propertyWillChange(this,"hasEnumerableObservers");removeListener(this,"@enumerable:before",target,willChange);removeListener(this,"@enumerable:change",target,didChange);if(hasObservers)propertyDidChange(this,"hasEnumerableObservers");return this},hasEnumerableObservers:computed(function(){return hasListeners(this,"@enumerable:change")||hasListeners(this,"@enumerable:before")}),enumerableContentWillChange:function(removing,adding){var removeCnt,addCnt,hasDelta;if("number"===typeof removing)removeCnt=removing;else if(removing)removeCnt=get(removing,"length");else removeCnt=removing=-1;if("number"===typeof adding)addCnt=adding;else if(adding)addCnt=get(adding,"length");else addCnt=adding=-1;hasDelta=addCnt<0||removeCnt<0||addCnt-removeCnt!==0;if(removing===-1)removing=null;if(adding===-1)adding=null;propertyWillChange(this,"[]");if(hasDelta)propertyWillChange(this,"length");sendEvent(this,"@enumerable:before",[this,removing,adding]);return this},enumerableContentDidChange:function(removing,adding){var removeCnt,addCnt,hasDelta;if("number"===typeof removing)removeCnt=removing;else if(removing)removeCnt=get(removing,"length");else removeCnt=removing=-1;if("number"===typeof adding)addCnt=adding;else if(adding)addCnt=get(adding,"length");else addCnt=adding=-1;hasDelta=addCnt<0||removeCnt<0||addCnt-removeCnt!==0;if(removing===-1)removing=null;if(adding===-1)adding=null;sendEvent(this,"@enumerable:change",[this,removing,adding]);if(hasDelta)propertyDidChange(this,"length");propertyDidChange(this,"[]");return this},sortBy:function(){var sortKeys=arguments;return this.toArray().sort(function(a,b){for(var i=0;iget(this,"length"))throw new EmberError(OUT_OF_RANGE_EXCEPTION);this.replace(idx,0,[object]);return this},removeAt:function(start,len){if("number"===typeof start){if(start<0||start>=get(this,"length")){throw new EmberError(OUT_OF_RANGE_EXCEPTION)}if(len===undefined)len=1;this.replace(start,len,EMPTY)}return this},pushObject:function(obj){this.insertAt(get(this,"length"),obj);return obj},pushObjects:function(objects){if(!(Enumerable.detect(objects)||isArray(objects))){throw new TypeError("Must pass Ember.Enumerable to Ember.MutableArray#pushObjects")}this.replace(get(this,"length"),0,objects);return this},popObject:function(){var len=get(this,"length");if(len===0)return null;var ret=this.objectAt(len-1);this.removeAt(len-1,1);return ret},shiftObject:function(){if(get(this,"length")===0)return null;var ret=this.objectAt(0);this.removeAt(0);return ret},unshiftObject:function(obj){this.insertAt(0,obj);return obj},unshiftObjects:function(objects){this.replace(0,0,objects);return this},reverseObjects:function(){var len=get(this,"length");if(len===0)return this;var objects=this.toArray().reverse();this.replace(0,len,objects);return this},setObjects:function(objects){if(objects.length===0)return this.clear();var len=get(this,"length");this.replace(0,len,objects);return this},removeObject:function(obj){var loc=get(this,"length")||0;while(--loc>=0){var curObject=this.objectAt(loc);if(curObject===obj)this.removeAt(loc)}return this},addObject:function(obj){if(!this.contains(obj))this.pushObject(obj);return this}})});define("ember-runtime/mixins/mutable_enumerable",["ember-metal/enumerable_utils","ember-runtime/mixins/enumerable","ember-metal/mixin","ember-metal/property_events","exports"],function(__dependency1__,__dependency2__,__dependency3__,__dependency4__,__exports__){"use strict";var forEach=__dependency1__.forEach;var Enumerable=__dependency2__["default"];var Mixin=__dependency3__.Mixin;var required=__dependency3__.required;var beginPropertyChanges=__dependency4__.beginPropertyChanges;var endPropertyChanges=__dependency4__.endPropertyChanges;__exports__["default"]=Mixin.create(Enumerable,{addObject:required(Function),addObjects:function(objects){beginPropertyChanges(this);forEach(objects,function(obj){this.addObject(obj)},this);endPropertyChanges(this);return this},removeObject:required(Function),removeObjects:function(objects){beginPropertyChanges(this);for(var i=objects.length-1;i>=0;i--){this.removeObject(objects[i])}endPropertyChanges(this);return this}})});define("ember-runtime/mixins/observable",["ember-metal/core","ember-metal/property_get","ember-metal/property_set","ember-metal/utils","ember-metal/get_properties","ember-metal/set_properties","ember-metal/mixin","ember-metal/events","ember-metal/property_events","ember-metal/observer","ember-metal/computed","ember-metal/is_none","exports"],function(__dependency1__,__dependency2__,__dependency3__,__dependency4__,__dependency5__,__dependency6__,__dependency7__,__dependency8__,__dependency9__,__dependency10__,__dependency11__,__dependency12__,__exports__){"use strict";var Ember=__dependency1__["default"];var get=__dependency2__.get;var getWithDefault=__dependency2__.getWithDefault;var set=__dependency3__.set;var apply=__dependency4__.apply;var getProperties=__dependency5__["default"];var setProperties=__dependency6__["default"];var Mixin=__dependency7__.Mixin;var hasListeners=__dependency8__.hasListeners;var beginPropertyChanges=__dependency9__.beginPropertyChanges;var propertyWillChange=__dependency9__.propertyWillChange;var propertyDidChange=__dependency9__.propertyDidChange;var endPropertyChanges=__dependency9__.endPropertyChanges;var addObserver=__dependency10__.addObserver;var addBeforeObserver=__dependency10__.addBeforeObserver;var removeObserver=__dependency10__.removeObserver;var observersFor=__dependency10__.observersFor;var cacheFor=__dependency11__.cacheFor;var isNone=__dependency12__.isNone;var slice=Array.prototype.slice;__exports__["default"]=Mixin.create({get:function(keyName){return get(this,keyName)},getProperties:function(){return apply(null,getProperties,[this].concat(slice.call(arguments)))},set:function(keyName,value){set(this,keyName,value);return this},setProperties:function(hash){return setProperties(this,hash)},beginPropertyChanges:function(){beginPropertyChanges();return this},endPropertyChanges:function(){endPropertyChanges();return this},propertyWillChange:function(keyName){propertyWillChange(this,keyName);return this},propertyDidChange:function(keyName){propertyDidChange(this,keyName);return this},notifyPropertyChange:function(keyName){this.propertyWillChange(keyName);this.propertyDidChange(keyName);return this},addBeforeObserver:function(key,target,method){addBeforeObserver(this,key,target,method)},addObserver:function(key,target,method){addObserver(this,key,target,method)},removeObserver:function(key,target,method){removeObserver(this,key,target,method)},hasObserverFor:function(key){return hasListeners(this,key+":change")},getWithDefault:function(keyName,defaultValue){return getWithDefault(this,keyName,defaultValue)},incrementProperty:function(keyName,increment){if(isNone(increment)){increment=1}set(this,keyName,(parseFloat(get(this,keyName))||0)+increment);return get(this,keyName)},decrementProperty:function(keyName,decrement){if(isNone(decrement)){decrement=1}set(this,keyName,(get(this,keyName)||0)-decrement);return get(this,keyName)},toggleProperty:function(keyName){set(this,keyName,!get(this,keyName));return get(this,keyName)},cacheFor:function(keyName){return cacheFor(this,keyName)},observersForKey:function(keyName){return observersFor(this,keyName)}})});define("ember-runtime/mixins/promise_proxy",["ember-metal/property_get","ember-metal/property_set","ember-metal/computed","ember-metal/mixin","ember-metal/error","exports"],function(__dependency1__,__dependency2__,__dependency3__,__dependency4__,__dependency5__,__exports__){"use strict";var get=__dependency1__.get;var set=__dependency2__.set;var computed=__dependency3__.computed;var Mixin=__dependency4__.Mixin;var EmberError=__dependency5__["default"];var not=computed.not;var or=computed.or;function tap(proxy,promise){set(proxy,"isFulfilled",false);set(proxy,"isRejected",false);return promise.then(function(value){set(proxy,"isFulfilled",true);set(proxy,"content",value);return value},function(reason){set(proxy,"isRejected",true);set(proxy,"reason",reason);throw reason},"Ember: PromiseProxy")}__exports__["default"]=Mixin.create({reason:null,isPending:not("isSettled").readOnly(),isSettled:or("isRejected","isFulfilled").readOnly(),isRejected:false,isFulfilled:false,promise:computed(function(key,promise){if(arguments.length===2){return tap(this,promise)}else{throw new EmberError("PromiseProxy's promise must be set")}}),then:promiseAlias("then"),"catch":promiseAlias("catch"),"finally":promiseAlias("finally")});function promiseAlias(name){return function(){var promise=get(this,"promise");return promise[name].apply(promise,arguments)}}});define("ember-runtime/mixins/sortable",["ember-metal/core","ember-metal/property_get","ember-metal/property_set","ember-metal/enumerable_utils","ember-metal/mixin","ember-runtime/mixins/mutable_enumerable","ember-runtime/compare","ember-metal/observer","ember-metal/computed","exports"],function(__dependency1__,__dependency2__,__dependency3__,__dependency4__,__dependency5__,__dependency6__,__dependency7__,__dependency8__,__dependency9__,__exports__){"use strict";var Ember=__dependency1__["default"];var get=__dependency2__.get;var set=__dependency3__.set;var forEach=__dependency4__.forEach;var Mixin=__dependency5__.Mixin;var MutableEnumerable=__dependency6__["default"];var compare=__dependency7__["default"];var addObserver=__dependency8__.addObserver;var removeObserver=__dependency8__.removeObserver;var computed=__dependency9__.computed;var beforeObserver=__dependency5__.beforeObserver;var observer=__dependency5__.observer;__exports__["default"]=Mixin.create(MutableEnumerable,{sortProperties:null,sortAscending:true,sortFunction:compare,orderBy:function(item1,item2){var result=0,sortProperties=get(this,"sortProperties"),sortAscending=get(this,"sortAscending"),sortFunction=get(this,"sortFunction");forEach(sortProperties,function(propertyName){if(result===0){result=sortFunction.call(this,get(item1,propertyName),get(item2,propertyName));if(result!==0&&!sortAscending){result=-1*result}}},this);return result},destroy:function(){var content=get(this,"content"),sortProperties=get(this,"sortProperties");if(content&&sortProperties){forEach(content,function(item){forEach(sortProperties,function(sortProperty){removeObserver(item,sortProperty,this,"contentItemSortPropertyDidChange")},this)},this)}return this._super()},isSorted:computed.notEmpty("sortProperties"),arrangedContent:computed("content","sortProperties.@each",function(key,value){var content=get(this,"content"),isSorted=get(this,"isSorted"),sortProperties=get(this,"sortProperties"),self=this;if(content&&isSorted){content=content.slice();content.sort(function(item1,item2){return self.orderBy(item1,item2)});forEach(content,function(item){forEach(sortProperties,function(sortProperty){addObserver(item,sortProperty,this,"contentItemSortPropertyDidChange")},this)},this);return Ember.A(content)}return content}),_contentWillChange:beforeObserver("content",function(){var content=get(this,"content"),sortProperties=get(this,"sortProperties");if(content&&sortProperties){forEach(content,function(item){forEach(sortProperties,function(sortProperty){removeObserver(item,sortProperty,this,"contentItemSortPropertyDidChange")},this)},this)}this._super()}),sortPropertiesWillChange:beforeObserver("sortProperties",function(){this._lastSortAscending=undefined}),sortPropertiesDidChange:observer("sortProperties",function(){this._lastSortAscending=undefined}),sortAscendingWillChange:beforeObserver("sortAscending",function(){this._lastSortAscending=get(this,"sortAscending")}),sortAscendingDidChange:observer("sortAscending",function(){if(this._lastSortAscending!==undefined&&get(this,"sortAscending")!==this._lastSortAscending){var arrangedContent=get(this,"arrangedContent");arrangedContent.reverseObjects()}}),contentArrayWillChange:function(array,idx,removedCount,addedCount){var isSorted=get(this,"isSorted");if(isSorted){var arrangedContent=get(this,"arrangedContent");var removedObjects=array.slice(idx,idx+removedCount);var sortProperties=get(this,"sortProperties");forEach(removedObjects,function(item){arrangedContent.removeObject(item);forEach(sortProperties,function(sortProperty){removeObserver(item,sortProperty,this,"contentItemSortPropertyDidChange")},this)},this)}return this._super(array,idx,removedCount,addedCount)},contentArrayDidChange:function(array,idx,removedCount,addedCount){var isSorted=get(this,"isSorted"),sortProperties=get(this,"sortProperties");if(isSorted){var addedObjects=array.slice(idx,idx+addedCount);forEach(addedObjects,function(item){this.insertItemSorted(item);forEach(sortProperties,function(sortProperty){addObserver(item,sortProperty,this,"contentItemSortPropertyDidChange")},this)},this)}return this._super(array,idx,removedCount,addedCount)},insertItemSorted:function(item){var arrangedContent=get(this,"arrangedContent");var length=get(arrangedContent,"length");var idx=this._binarySearch(item,0,length);arrangedContent.insertAt(idx,item)},contentItemSortPropertyDidChange:function(item){var arrangedContent=get(this,"arrangedContent"),oldIndex=arrangedContent.indexOf(item),leftItem=arrangedContent.objectAt(oldIndex-1),rightItem=arrangedContent.objectAt(oldIndex+1),leftResult=leftItem&&this.orderBy(item,leftItem),rightResult=rightItem&&this.orderBy(item,rightItem);if(leftResult<0||rightResult>0){arrangedContent.removeObject(item);this.insertItemSorted(item)}},_binarySearch:function(item,low,high){var mid,midItem,res,arrangedContent;if(low===high){return low}arrangedContent=get(this,"arrangedContent");mid=low+Math.floor((high-low)/2);midItem=arrangedContent.objectAt(mid);res=this.orderBy(midItem,item);if(res<0){return this._binarySearch(item,mid+1,high)}else if(res>0){return this._binarySearch(item,low,mid)}return mid}})});define("ember-runtime/mixins/target_action_support",["ember-metal/core","ember-metal/property_get","ember-metal/property_set","ember-metal/utils","ember-metal/mixin","ember-metal/computed","exports"],function(__dependency1__,__dependency2__,__dependency3__,__dependency4__,__dependency5__,__dependency6__,__exports__){"use strict";var Ember=__dependency1__["default"];var get=__dependency2__.get;var set=__dependency3__.set;var typeOf=__dependency4__.typeOf;var Mixin=__dependency5__.Mixin;var computed=__dependency6__.computed;var TargetActionSupport=Mixin.create({target:null,action:null,actionContext:null,targetObject:computed(function(){var target=get(this,"target");if(typeOf(target)==="string"){var value=get(this,target);if(value===undefined){value=get(Ember.lookup,target)}return value}else{return target}}).property("target"),actionContextObject:computed(function(){var actionContext=get(this,"actionContext");if(typeOf(actionContext)==="string"){var value=get(this,actionContext);if(value===undefined){value=get(Ember.lookup,actionContext)}return value}else{return actionContext}}).property("actionContext"),triggerAction:function(opts){opts=opts||{};var action=opts.action||get(this,"action"),target=opts.target||get(this,"targetObject"),actionContext=opts.actionContext;function args(options,actionName){var ret=[];if(actionName){ret.push(actionName)}return ret.concat(options)}if(typeof actionContext==="undefined"){actionContext=get(this,"actionContextObject")||this}if(target&&action){var ret;if(target.send){ret=target.send.apply(target,args(actionContext,action))}else{ret=target[action].apply(target,args(actionContext))}if(ret!==false)ret=true;return ret}else{return false}}});__exports__["default"]=TargetActionSupport});define("ember-runtime/system/application",["ember-runtime/system/namespace","exports"],function(__dependency1__,__exports__){"use strict";var Namespace=__dependency1__["default"];__exports__["default"]=Namespace.extend()});define("ember-runtime/system/array_proxy",["ember-metal/core","ember-metal/property_get","ember-metal/property_set","ember-metal/utils","ember-metal/computed","ember-metal/mixin","ember-metal/property_events","ember-metal/error","ember-runtime/system/object","ember-runtime/mixins/mutable_array","ember-runtime/mixins/enumerable","ember-runtime/system/string","exports"],function(__dependency1__,__dependency2__,__dependency3__,__dependency4__,__dependency5__,__dependency6__,__dependency7__,__dependency8__,__dependency9__,__dependency10__,__dependency11__,__dependency12__,__exports__){"use strict";var Ember=__dependency1__["default"];var get=__dependency2__.get;var set=__dependency3__.set;var isArray=__dependency4__.isArray;var apply=__dependency4__.apply;var computed=__dependency5__.computed;var beforeObserver=__dependency6__.beforeObserver;var observer=__dependency6__.observer;var beginPropertyChanges=__dependency7__.beginPropertyChanges;var endPropertyChanges=__dependency7__.endPropertyChanges;var EmberError=__dependency8__["default"];var EmberObject=__dependency9__["default"];var MutableArray=__dependency10__["default"];var Enumerable=__dependency11__["default"];var fmt=__dependency12__.fmt;var OUT_OF_RANGE_EXCEPTION="Index out of range";var EMPTY=[];var alias=computed.alias;var K=Ember.K;var ArrayProxy=EmberObject.extend(MutableArray,{content:null,arrangedContent:alias("content"),objectAtContent:function(idx){return get(this,"arrangedContent").objectAt(idx)},replaceContent:function(idx,amt,objects){get(this,"content").replace(idx,amt,objects)},_contentWillChange:beforeObserver("content",function(){this._teardownContent()}),_teardownContent:function(){var content=get(this,"content");if(content){content.removeArrayObserver(this,{willChange:"contentArrayWillChange",didChange:"contentArrayDidChange"})}},contentArrayWillChange:K,contentArrayDidChange:K,_contentDidChange:observer("content",function(){var content=get(this,"content");this._setupContent()}),_setupContent:function(){var content=get(this,"content");if(content){content.addArrayObserver(this,{willChange:"contentArrayWillChange",didChange:"contentArrayDidChange"})}},_arrangedContentWillChange:beforeObserver("arrangedContent",function(){var arrangedContent=get(this,"arrangedContent"),len=arrangedContent?get(arrangedContent,"length"):0;this.arrangedContentArrayWillChange(this,0,len,undefined);this.arrangedContentWillChange(this);this._teardownArrangedContent(arrangedContent)}),_arrangedContentDidChange:observer("arrangedContent",function(){var arrangedContent=get(this,"arrangedContent"),len=arrangedContent?get(arrangedContent,"length"):0;this._setupArrangedContent();this.arrangedContentDidChange(this);this.arrangedContentArrayDidChange(this,0,undefined,len)}),_setupArrangedContent:function(){var arrangedContent=get(this,"arrangedContent");if(arrangedContent){arrangedContent.addArrayObserver(this,{willChange:"arrangedContentArrayWillChange",didChange:"arrangedContentArrayDidChange"})}},_teardownArrangedContent:function(){var arrangedContent=get(this,"arrangedContent");if(arrangedContent){arrangedContent.removeArrayObserver(this,{willChange:"arrangedContentArrayWillChange",didChange:"arrangedContentArrayDidChange"})}},arrangedContentWillChange:K,arrangedContentDidChange:K,objectAt:function(idx){return get(this,"content")&&this.objectAtContent(idx)},length:computed(function(){var arrangedContent=get(this,"arrangedContent");return arrangedContent?get(arrangedContent,"length"):0}),_replace:function(idx,amt,objects){var content=get(this,"content");if(content)this.replaceContent(idx,amt,objects);return this},replace:function(){if(get(this,"arrangedContent")===get(this,"content")){apply(this,this._replace,arguments)}else{throw new EmberError("Using replace on an arranged ArrayProxy is not allowed.")}},_insertAt:function(idx,object){if(idx>get(this,"content.length"))throw new EmberError(OUT_OF_RANGE_EXCEPTION);this._replace(idx,0,[object]);return this},insertAt:function(idx,object){if(get(this,"arrangedContent")===get(this,"content")){return this._insertAt(idx,object)}else{throw new EmberError("Using insertAt on an arranged ArrayProxy is not allowed.")}},removeAt:function(start,len){if("number"===typeof start){var content=get(this,"content"),arrangedContent=get(this,"arrangedContent"),indices=[],i;if(start<0||start>=get(this,"length")){throw new EmberError(OUT_OF_RANGE_EXCEPTION)}if(len===undefined)len=1;for(i=start;i=0){var baseValue=this[keyName];if(baseValue){if("function"===typeof baseValue.concat){value=baseValue.concat(value)}else{value=makeArray(baseValue).concat(value)}}else{value=makeArray(value)}}if(desc){desc.set(this,keyName,value)}else{if(typeof this.setUnknownProperty==="function"&&!(keyName in this)){this.setUnknownProperty(keyName,value)}else if(MANDATORY_SETTER){defineProperty(this,keyName,null,value)}else{this[keyName]=value}}}}}finishPartial(this,m);apply(this,this.init,arguments);m.proto=proto;finishChains(this);sendEvent(this,"init")};Class.toString=Mixin.prototype.toString;Class.willReopen=function(){if(wasApplied){Class.PrototypeMixin=Mixin.create(Class.PrototypeMixin)}wasApplied=false};Class._initMixins=function(args){initMixins=args};Class._initProperties=function(args){initProperties=args};Class.proto=function(){var superclass=Class.superclass;if(superclass){superclass.proto()}if(!wasApplied){wasApplied=true;Class.PrototypeMixin.applyPartial(Class.prototype);rewatch(Class.prototype)}return this.prototype};return Class}var CoreObject=makeCtor();CoreObject.toString=function(){return"Ember.CoreObject"};CoreObject.PrototypeMixin=Mixin.create({reopen:function(){applyMixin(this,arguments,true);return this},init:function(){},concatenatedProperties:null,isDestroyed:false,isDestroying:false,destroy:function(){if(this.isDestroying){return}this.isDestroying=true;schedule("actions",this,this.willDestroy);schedule("destroy",this,this._scheduledDestroy);return this},willDestroy:K,_scheduledDestroy:function(){if(this.isDestroyed){return}destroy(this);this.isDestroyed=true},bind:function(to,from){if(!(from instanceof Binding)){from=Binding.from(from)}from.to(to).connect(this);return from},toString:function toString(){var hasToStringExtension=typeof this.toStringExtension==="function",extension=hasToStringExtension?":"+this.toStringExtension():"";var ret="<"+this.constructor.toString()+":"+guidFor(this)+extension+">";this.toString=makeToString(ret);return ret}});CoreObject.PrototypeMixin.ownerConstructor=CoreObject;function makeToString(ret){return function(){return ret}}if(Ember.config.overridePrototypeMixin){Ember.config.overridePrototypeMixin(CoreObject.PrototypeMixin)}CoreObject.__super__=null;var ClassMixin=Mixin.create({ClassMixin:required(),PrototypeMixin:required(),isClass:true,isMethod:false,extend:function(){var Class=makeCtor(),proto;Class.ClassMixin=Mixin.create(this.ClassMixin);Class.PrototypeMixin=Mixin.create(this.PrototypeMixin);Class.ClassMixin.ownerConstructor=Class;Class.PrototypeMixin.ownerConstructor=Class;reopen.apply(Class.PrototypeMixin,arguments);Class.superclass=this;Class.__super__=this.prototype;proto=Class.prototype=o_create(this.prototype);proto.constructor=Class;generateGuid(proto);meta(proto).proto=proto;Class.ClassMixin.apply(Class);return Class},createWithMixins:function(){var C=this;if(arguments.length>0){this._initMixins(arguments)}return new C},create:function(){var C=this;if(arguments.length>0){this._initProperties(arguments)}return new C},reopen:function(){this.willReopen();apply(this.PrototypeMixin,reopen,arguments);return this},reopenClass:function(){apply(this.ClassMixin,reopen,arguments);applyMixin(this,arguments,false);return this},detect:function(obj){if("function"!==typeof obj){return false}while(obj){if(obj===this){return true}obj=obj.superclass}return false},detectInstance:function(obj){return obj instanceof this},metaForProperty:function(key){var meta=this.proto()[META_KEY],desc=meta&&meta.descs[key];return desc._meta||{}},eachComputedProperty:function(callback,binding){var proto=this.proto(),descs=meta(proto).descs,empty={},property;for(var name in descs){property=descs[name];if(property instanceof ComputedProperty){callback.call(binding||this,name,property._meta||empty)}}}});ClassMixin.ownerConstructor=CoreObject;if(Ember.config.overrideClassMixin){Ember.config.overrideClassMixin(ClassMixin)}CoreObject.ClassMixin=ClassMixin;ClassMixin.apply(CoreObject);__exports__["default"]=CoreObject});define("ember-runtime/system/deferred",["ember-runtime/mixins/deferred","ember-metal/property_get","ember-runtime/system/object","exports"],function(__dependency1__,__dependency2__,__dependency3__,__exports__){"use strict";var DeferredMixin=__dependency1__["default"];var get=__dependency2__.get;var EmberObject=__dependency3__["default"];var Deferred=EmberObject.extend(DeferredMixin);Deferred.reopenClass({promise:function(callback,binding){var deferred=Deferred.create();callback.call(binding,deferred);return deferred}});__exports__["default"]=Deferred});define("ember-runtime/system/each_proxy",["ember-metal/core","ember-metal/property_get","ember-metal/property_set","ember-metal/utils","ember-metal/enumerable_utils","ember-metal/array","ember-runtime/mixins/array","ember-runtime/system/object","ember-metal/computed","ember-metal/observer","ember-metal/events","ember-metal/properties","ember-metal/property_events","exports"],function(__dependency1__,__dependency2__,__dependency3__,__dependency4__,__dependency5__,__dependency6__,__dependency7__,__dependency8__,__dependency9__,__dependency10__,__dependency11__,__dependency12__,__dependency13__,__exports__){"use strict";var Ember=__dependency1__["default"];var get=__dependency2__.get;var set=__dependency3__.set;var guidFor=__dependency4__.guidFor;var forEach=__dependency5__.forEach;var indexOf=__dependency6__.indexOf;var EmberArray=__dependency7__["default"];var EmberObject=__dependency8__["default"];var computed=__dependency9__.computed;var addObserver=__dependency10__.addObserver;var addBeforeObserver=__dependency10__.addBeforeObserver;var removeBeforeObserver=__dependency10__.removeBeforeObserver;var removeObserver=__dependency10__.removeObserver;var typeOf=__dependency4__.typeOf;var watchedEvents=__dependency11__.watchedEvents;var defineProperty=__dependency12__.defineProperty;var beginPropertyChanges=__dependency13__.beginPropertyChanges;var propertyDidChange=__dependency13__.propertyDidChange;var propertyWillChange=__dependency13__.propertyWillChange;var endPropertyChanges=__dependency13__.endPropertyChanges;var changeProperties=__dependency13__.changeProperties;var EachArray=EmberObject.extend(EmberArray,{init:function(content,keyName,owner){this._super();this._keyName=keyName;this._owner=owner;this._content=content},objectAt:function(idx){var item=this._content.objectAt(idx);return item&&get(item,this._keyName)},length:computed(function(){var content=this._content;return content?get(content,"length"):0})});var IS_OBSERVER=/^.+:(before|change)$/;function addObserverForContentKey(content,keyName,proxy,idx,loc){var objects=proxy._objects,guid;if(!objects)objects=proxy._objects={};while(--loc>=idx){var item=content.objectAt(loc);if(item){addBeforeObserver(item,keyName,proxy,"contentKeyWillChange");addObserver(item,keyName,proxy,"contentKeyDidChange");guid=guidFor(item);if(!objects[guid])objects[guid]=[];objects[guid].push(loc)}}}function removeObserverForContentKey(content,keyName,proxy,idx,loc){var objects=proxy._objects;if(!objects)objects=proxy._objects={};var indicies,guid;while(--loc>=idx){var item=content.objectAt(loc);if(item){removeBeforeObserver(item,keyName,proxy,"contentKeyWillChange");removeObserver(item,keyName,proxy,"contentKeyDidChange");guid=guidFor(item);indicies=objects[guid];indicies[indexOf.call(indicies,loc)]=null}}}var EachProxy=EmberObject.extend({init:function(content){this._super();this._content=content;content.addArrayObserver(this);forEach(watchedEvents(this),function(eventName){this.didAddListener(eventName)},this)},unknownProperty:function(keyName,value){var ret;ret=new EachArray(this._content,keyName,this);defineProperty(this,keyName,null,ret);this.beginObservingContentKey(keyName);return ret},arrayWillChange:function(content,idx,removedCnt,addedCnt){var keys=this._keys,key,lim;lim=removedCnt>0?idx+removedCnt:-1;beginPropertyChanges(this);for(key in keys){if(!keys.hasOwnProperty(key)){continue}if(lim>0){removeObserverForContentKey(content,key,this,idx,lim)}propertyWillChange(this,key)}propertyWillChange(this._content,"@each");endPropertyChanges(this)},arrayDidChange:function(content,idx,removedCnt,addedCnt){var keys=this._keys,lim;lim=addedCnt>0?idx+addedCnt:-1;changeProperties(function(){for(var key in keys){if(!keys.hasOwnProperty(key)){continue}if(lim>0){addObserverForContentKey(content,key,this,idx,lim)}propertyDidChange(this,key)}propertyDidChange(this._content,"@each")},this)},didAddListener:function(eventName){if(IS_OBSERVER.test(eventName)){this.beginObservingContentKey(eventName.slice(0,-7))}},didRemoveListener:function(eventName){if(IS_OBSERVER.test(eventName)){this.stopObservingContentKey(eventName.slice(0,-7))}},beginObservingContentKey:function(keyName){var keys=this._keys;if(!keys)keys=this._keys={};if(!keys[keyName]){keys[keyName]=1;var content=this._content,len=get(content,"length");addObserverForContentKey(content,keyName,this,0,len)}else{keys[keyName]++}},stopObservingContentKey:function(keyName){var keys=this._keys;if(keys&&keys[keyName]>0&&--keys[keyName]<=0){var content=this._content,len=get(content,"length");removeObserverForContentKey(content,keyName,this,0,len)}},contentKeyWillChange:function(obj,keyName){propertyWillChange(this,keyName)},contentKeyDidChange:function(obj,keyName){propertyDidChange(this,keyName)}});__exports__.EachArray=EachArray;__exports__.EachProxy=EachProxy});define("ember-runtime/system/lazy_load",["ember-metal/core","ember-metal/array","ember-runtime/system/native_array","exports"],function(__dependency1__,__dependency2__,__dependency3__,__exports__){"use strict";var Ember=__dependency1__["default"];var forEach=__dependency2__.forEach;var loadHooks=Ember.ENV.EMBER_LOAD_HOOKS||{};var loaded={};function onLoad(name,callback){var object;loadHooks[name]=loadHooks[name]||Ember.A();loadHooks[name].pushObject(callback);if(object=loaded[name]){callback(object)}}__exports__.onLoad=onLoad;function runLoadHooks(name,object){loaded[name]=object;if(typeof window==="object"&&typeof window.dispatchEvent==="function"&&typeof CustomEvent==="function"){var event=new CustomEvent(name,{detail:object,name:name});window.dispatchEvent(event)}if(loadHooks[name]){forEach.call(loadHooks[name],function(callback){callback(object)})}}__exports__.runLoadHooks=runLoadHooks});define("ember-runtime/system/namespace",["ember-metal/core","ember-metal/property_get","ember-metal/array","ember-metal/utils","ember-metal/mixin","ember-runtime/system/object","exports"],function(__dependency1__,__dependency2__,__dependency3__,__dependency4__,__dependency5__,__dependency6__,__exports__){"use strict";var Ember=__dependency1__["default"];var get=__dependency2__.get;var indexOf=__dependency3__.indexOf;var GUID_KEY=__dependency4__.GUID_KEY;var guidFor=__dependency4__.guidFor;var Mixin=__dependency5__.Mixin;var EmberObject=__dependency6__["default"];var Namespace=EmberObject.extend({isNamespace:true,init:function(){Namespace.NAMESPACES.push(this);Namespace.PROCESSED=false},toString:function(){var name=get(this,"name");if(name){return name}findNamespaces();return this[NAME_KEY]},nameClasses:function(){processNamespace([this.toString()],this,{})},destroy:function(){var namespaces=Namespace.NAMESPACES,toString=this.toString();if(toString){Ember.lookup[toString]=undefined;delete Namespace.NAMESPACES_BY_ID[toString]}namespaces.splice(indexOf.call(namespaces,this),1);this._super()}});Namespace.reopenClass({NAMESPACES:[Ember],NAMESPACES_BY_ID:{},PROCESSED:false,processAll:processAllNamespaces,byName:function(name){if(!Ember.BOOTED){processAllNamespaces()}return NAMESPACES_BY_ID[name]}});var NAMESPACES_BY_ID=Namespace.NAMESPACES_BY_ID;var hasOwnProp={}.hasOwnProperty;function processNamespace(paths,root,seen){var idx=paths.length;NAMESPACES_BY_ID[paths.join(".")]=root;for(var key in root){if(!hasOwnProp.call(root,key)){continue}var obj=root[key];paths[idx]=key;if(obj&&obj.toString===classToString){obj.toString=makeToString(paths.join("."));obj[NAME_KEY]=paths.join(".")}else if(obj&&obj.isNamespace){if(seen[guidFor(obj)]){continue}seen[guidFor(obj)]=true;processNamespace(paths,obj,seen)}}paths.length=idx}var STARTS_WITH_UPPERCASE=/^[A-Z]/;function findNamespaces(){var lookup=Ember.lookup,obj,isNamespace;if(Namespace.PROCESSED){return}for(var prop in lookup){if(!STARTS_WITH_UPPERCASE.test(prop)){continue}if(lookup.hasOwnProperty&&!lookup.hasOwnProperty(prop)){continue}try{obj=lookup[prop];isNamespace=obj&&obj.isNamespace}catch(e){continue}if(isNamespace){obj[NAME_KEY]=prop}}}var NAME_KEY=Ember.NAME_KEY=GUID_KEY+"_name";function superClassString(mixin){var superclass=mixin.superclass;if(superclass){if(superclass[NAME_KEY]){return superclass[NAME_KEY]}else{return superClassString(superclass)}}else{return}}function classToString(){if(!Ember.BOOTED&&!this[NAME_KEY]){processAllNamespaces()}var ret;if(this[NAME_KEY]){ret=this[NAME_KEY]}else if(this._toString){ret=this._toString}else{var str=superClassString(this);if(str){ret="(subclass of "+str+")"}else{ret="(unknown mixin)"}this.toString=makeToString(ret)}return ret}function processAllNamespaces(){var unprocessedNamespaces=!Namespace.PROCESSED,unprocessedMixins=Ember.anyUnprocessedMixins;if(unprocessedNamespaces){findNamespaces();Namespace.PROCESSED=true}if(unprocessedNamespaces||unprocessedMixins){var namespaces=Namespace.NAMESPACES,namespace;for(var i=0,l=namespaces.length;i=0;idx--){if(this[idx]===object)return idx}return-1},copy:function(deep){if(deep){return this.map(function(item){return copy(item,true)})}return this.slice()}});var ignore=["length"];forEach(NativeArray.keys(),function(methodName){if(Array.prototype[methodName])ignore.push(methodName)});if(ignore.length>0){NativeArray=NativeArray.without.apply(NativeArray,ignore)}var A=function(arr){if(arr===undefined){arr=[]}return EmberArray.detect(arr)?arr:NativeArray.apply(arr)};NativeArray.activate=function(){NativeArray.apply(Array.prototype);A=function(arr){return arr||[]}};if(Ember.EXTEND_PROTOTYPES===true||Ember.EXTEND_PROTOTYPES.Array){NativeArray.activate()}Ember.A=A;__exports__.A=A;__exports__.NativeArray=NativeArray;__exports__["default"]=NativeArray});define("ember-runtime/system/object",["ember-runtime/system/core_object","ember-runtime/mixins/observable","exports"],function(__dependency1__,__dependency2__,__exports__){"use strict";var CoreObject=__dependency1__["default"];var Observable=__dependency2__["default"];var EmberObject=CoreObject.extend(Observable);EmberObject.toString=function(){return"Ember.Object"};__exports__["default"]=EmberObject});define("ember-runtime/system/object_proxy",["ember-metal/core","ember-metal/property_get","ember-metal/property_set","ember-metal/utils","ember-metal/observer","ember-metal/property_events","ember-metal/computed","ember-metal/properties","ember-metal/mixin","ember-runtime/system/string","ember-runtime/system/object","exports"],function(__dependency1__,__dependency2__,__dependency3__,__dependency4__,__dependency5__,__dependency6__,__dependency7__,__dependency8__,__dependency9__,__dependency10__,__dependency11__,__exports__){"use strict";var Ember=__dependency1__["default"];var get=__dependency2__.get;var set=__dependency3__.set;var meta=__dependency4__.meta;var addObserver=__dependency5__.addObserver;var removeObserver=__dependency5__.removeObserver;var addBeforeObserver=__dependency5__.addBeforeObserver;var removeBeforeObserver=__dependency5__.removeBeforeObserver;var propertyWillChange=__dependency6__.propertyWillChange;var propertyDidChange=__dependency6__.propertyDidChange;var computed=__dependency7__.computed;var defineProperty=__dependency8__.defineProperty;var observer=__dependency9__.observer;var fmt=__dependency10__.fmt;var EmberObject=__dependency11__["default"];function contentPropertyWillChange(content,contentKey){var key=contentKey.slice(8);if(key in this){return}propertyWillChange(this,key)}function contentPropertyDidChange(content,contentKey){var key=contentKey.slice(8);if(key in this){return}propertyDidChange(this,key)}var ObjectProxy=EmberObject.extend({content:null,_contentDidChange:observer("content",function(){}),isTruthy:computed.bool("content"),_debugContainerKey:null,willWatchProperty:function(key){var contentKey="content."+key;addBeforeObserver(this,contentKey,null,contentPropertyWillChange);addObserver(this,contentKey,null,contentPropertyDidChange)},didUnwatchProperty:function(key){var contentKey="content."+key;removeBeforeObserver(this,contentKey,null,contentPropertyWillChange);removeObserver(this,contentKey,null,contentPropertyDidChange)},unknownProperty:function(key){var content=get(this,"content");if(content){return get(content,key)}},setUnknownProperty:function(key,value){var m=meta(this);if(m.proto===this){defineProperty(this,key,null,value);return value}var content=get(this,"content");return set(content,key,value)}});__exports__["default"]=ObjectProxy});define("ember-runtime/system/set",["ember-metal/core","ember-metal/property_get","ember-metal/property_set","ember-metal/utils","ember-metal/is_none","ember-runtime/system/string","ember-runtime/system/core_object","ember-runtime/mixins/mutable_enumerable","ember-runtime/mixins/enumerable","ember-runtime/mixins/copyable","ember-runtime/mixins/freezable","ember-metal/error","ember-metal/property_events","ember-metal/mixin","ember-metal/computed","exports"],function(__dependency1__,__dependency2__,__dependency3__,__dependency4__,__dependency5__,__dependency6__,__dependency7__,__dependency8__,__dependency9__,__dependency10__,__dependency11__,__dependency12__,__dependency13__,__dependency14__,__dependency15__,__exports__){"use strict";var Ember=__dependency1__["default"];var get=__dependency2__.get;var set=__dependency3__.set;var guidFor=__dependency4__.guidFor;var isNone=__dependency5__.isNone;var fmt=__dependency6__.fmt;var CoreObject=__dependency7__["default"];var MutableEnumerable=__dependency8__["default"];var Enumerable=__dependency9__["default"];var Copyable=__dependency10__["default"];var Freezable=__dependency11__.Freezable;var FROZEN_ERROR=__dependency11__.FROZEN_ERROR;var EmberError=__dependency12__["default"];var propertyWillChange=__dependency13__.propertyWillChange;var propertyDidChange=__dependency13__.propertyDidChange;var aliasMethod=__dependency14__.aliasMethod;var computed=__dependency15__.computed;__exports__["default"]=CoreObject.extend(MutableEnumerable,Copyable,Freezable,{length:0,clear:function(){if(this.isFrozen){throw new EmberError(FROZEN_ERROR)}var len=get(this,"length");if(len===0){return this}var guid;this.enumerableContentWillChange(len,0);propertyWillChange(this,"firstObject");propertyWillChange(this,"lastObject");for(var i=0;i=0){if(!obj.contains(this[loc]))return false}return true},add:aliasMethod("addObject"),remove:aliasMethod("removeObject"),pop:function(){if(get(this,"isFrozen"))throw new EmberError(FROZEN_ERROR);var obj=this.length>0?this[this.length-1]:null;this.remove(obj);return obj},push:aliasMethod("addObject"),shift:aliasMethod("pop"),unshift:aliasMethod("push"),addEach:aliasMethod("addObjects"),removeEach:aliasMethod("removeObjects"),init:function(items){this._super();if(items)this.addObjects(items)},nextObject:function(idx){return this[idx]},firstObject:computed(function(){return this.length>0?this[0]:undefined}),lastObject:computed(function(){return this.length>0?this[this.length-1]:undefined}),addObject:function(obj){if(get(this,"isFrozen"))throw new EmberError(FROZEN_ERROR);if(isNone(obj))return this;var guid=guidFor(obj),idx=this[guid],len=get(this,"length"),added;if(idx>=0&&idx=0&&idx=0},copy:function(){var C=this.constructor,ret=new C,loc=get(this,"length");set(ret,"length",loc);while(--loc>=0){ret[loc]=this[loc];ret[guidFor(this[loc])]=loc}return ret},toString:function(){var len=this.length,idx,array=[];for(idx=0;idx",[array.join(",")])}})});define("ember-runtime/system/string",["ember-metal/core","ember-metal/utils","exports"],function(__dependency1__,__dependency2__,__exports__){"use strict";var Ember=__dependency1__["default"];var isArray=__dependency2__.isArray;var emberInspect=__dependency2__.inspect;var STRING_DASHERIZE_REGEXP=/[ _]/g;var STRING_DASHERIZE_CACHE={};var STRING_DECAMELIZE_REGEXP=/([a-z\d])([A-Z])/g;var STRING_CAMELIZE_REGEXP=/(\-|_|\.|\s)+(.)?/g;var STRING_UNDERSCORE_REGEXP_1=/([a-z\d])([A-Z]+)/g;var STRING_UNDERSCORE_REGEXP_2=/\-|\s+/g;function fmt(str,formats){if(!isArray(formats)||arguments.length>2){formats=Array.prototype.slice.call(arguments,1)}var idx=0;return str.replace(/%@([0-9]+)?/g,function(s,argIndex){argIndex=argIndex?parseInt(argIndex,10)-1:idx++;s=formats[argIndex];return s===null?"(null)":s===undefined?"":emberInspect(s)})}function loc(str,formats){if(!isArray(formats)||arguments.length>2){formats=Array.prototype.slice.call(arguments,1)}str=Ember.STRINGS[str]||str;return fmt(str,formats)}function w(str){return str.split(/\s+/)}function decamelize(str){return str.replace(STRING_DECAMELIZE_REGEXP,"$1_$2").toLowerCase()}function dasherize(str){var cache=STRING_DASHERIZE_CACHE,hit=cache.hasOwnProperty(str),ret;if(hit){return cache[str]}else{ret=decamelize(str).replace(STRING_DASHERIZE_REGEXP,"-");cache[str]=ret}return ret}function camelize(str){return str.replace(STRING_CAMELIZE_REGEXP,function(match,separator,chr){return chr?chr.toUpperCase():""}).replace(/^([A-Z])/,function(match,separator,chr){return match.toLowerCase()})}function classify(str){var parts=str.split("."),out=[];for(var i=0,l=parts.length;i0){this._operations=[new Operation(RETAIN,length)]}else{this._operations=[]}}SubArray.prototype={addItem:function(index,match){var returnValue=-1,itemType=match?RETAIN:FILTER,self=this;this._findOperation(index,function(operation,operationIndex,rangeStart,rangeEnd,seenInSubArray){var newOperation,splitOperation;if(itemType===operation.type){++operation.count}else if(index===rangeStart){self._operations.splice(operationIndex,0,new Operation(itemType,1))}else{newOperation=new Operation(itemType,1);splitOperation=new Operation(operation.type,rangeEnd-index+1);operation.count=index-rangeStart;self._operations.splice(operationIndex+1,0,newOperation,splitOperation)}if(match){if(operation.type===RETAIN){returnValue=seenInSubArray+(index-rangeStart)}else{returnValue=seenInSubArray}}self._composeAt(operationIndex)},function(seenInSubArray){self._operations.push(new Operation(itemType,1));if(match){returnValue=seenInSubArray}self._composeAt(self._operations.length-1)});return returnValue},removeItem:function(index){var returnValue=-1,self=this;this._findOperation(index,function(operation,operationIndex,rangeStart,rangeEnd,seenInSubArray){if(operation.type===RETAIN){returnValue=seenInSubArray+(index-rangeStart)}if(operation.count>1){--operation.count}else{self._operations.splice(operationIndex,1);self._composeAt(operationIndex)}},function(){throw new EmberError("Can't remove an item that has never been added.")});return returnValue},_findOperation:function(index,foundCallback,notFoundCallback){var operationIndex,len,operation,rangeStart,rangeEnd,seenInSubArray=0;for(operationIndex=rangeStart=0,len=this._operations.length;operationIndex=rangeStart&&index<=rangeEnd){foundCallback(operation,operationIndex,rangeStart,rangeEnd,seenInSubArray);return}else if(operation.type===RETAIN){seenInSubArray+=operation.count}}notFoundCallback(seenInSubArray)},_composeAt:function(index){var op=this._operations[index],otherOp;
-if(!op){return}if(index>0){otherOp=this._operations[index-1];if(otherOp.type===op.type){op.count+=otherOp.count;this._operations.splice(index-1,1);--index}}if(indexarrayOperationRangeStart&&index<=arrayOperationRangeEnd){split=true;break}else{arrayOperationRangeStart=arrayOperationRangeEnd+1}}return new ArrayOperationMatch(arrayOperation,arrayOperationIndex,split,arrayOperationRangeStart)},_split:function(arrayOperationIndex,splitIndex,newArrayOperation){var arrayOperation=this._operations[arrayOperationIndex];var splitItems=arrayOperation.items.slice(splitIndex);var splitArrayOperation=new ArrayOperation(arrayOperation.type,splitItems.length,splitItems);arrayOperation.count=splitIndex;arrayOperation.items=arrayOperation.items.slice(0,splitIndex);this._operations.splice(arrayOperationIndex+1,0,newArrayOperation,splitArrayOperation)},_composeInsert:function(index){var newArrayOperation=this._operations[index],leftArrayOperation=this._operations[index-1],rightArrayOperation=this._operations[index+1],leftOp=leftArrayOperation&&leftArrayOperation.type,rightOp=rightArrayOperation&&rightArrayOperation.type;if(leftOp===INSERT){leftArrayOperation.count+=newArrayOperation.count;leftArrayOperation.items=leftArrayOperation.items.concat(newArrayOperation.items);if(rightOp===INSERT){leftArrayOperation.count+=rightArrayOperation.count;leftArrayOperation.items=leftArrayOperation.items.concat(rightArrayOperation.items);this._operations.splice(index,2)}else{this._operations.splice(index,1)}}else if(rightOp===INSERT){newArrayOperation.count+=rightArrayOperation.count;newArrayOperation.items=newArrayOperation.items.concat(rightArrayOperation.items);this._operations.splice(index+1,1)}},_composeDelete:function(index){var arrayOperation=this._operations[index],deletesToGo=arrayOperation.count,leftArrayOperation=this._operations[index-1],leftOp=leftArrayOperation&&leftArrayOperation.type,nextArrayOperation,nextOp,nextCount,removeNewAndNextOp=false,removedItems=[];if(leftOp===DELETE){arrayOperation=leftArrayOperation;index-=1}for(var i=index+1;deletesToGo>0;++i){nextArrayOperation=this._operations[i];nextOp=nextArrayOperation.type;nextCount=nextArrayOperation.count;if(nextOp===DELETE){arrayOperation.count+=nextCount;continue}if(nextCount>deletesToGo){removedItems=removedItems.concat(nextArrayOperation.items.splice(0,deletesToGo));nextArrayOperation.count-=deletesToGo;i-=1;nextCount=deletesToGo;deletesToGo=0}else{if(nextCount===deletesToGo){removeNewAndNextOp=true}removedItems=removedItems.concat(nextArrayOperation.items);deletesToGo-=nextCount}if(nextOp===INSERT){arrayOperation.count-=nextCount}}if(arrayOperation.count>0){this._operations.splice(index+1,i-1-index)}else{this._operations.splice(index,removeNewAndNextOp?2:1)}return removedItems},toString:function(){var str="";forEach(this._operations,function(operation){str+=" "+operation.type+":"+operation.count});return str.substring(1)}};function ArrayOperation(operation,count,items){this.type=operation;this.count=count;this.items=items}function ArrayOperationMatch(operation,index,split,rangeStart){this.operation=operation;this.index=index;this.split=split;this.rangeStart=rangeStart}});define("ember-testing",["ember-metal/core","ember-testing/initializers","ember-testing/support","ember-testing/setup_for_testing","ember-testing/test","ember-testing/adapters/adapter","ember-testing/adapters/qunit","ember-testing/helpers"],function(__dependency1__,__dependency2__,__dependency3__,__dependency4__,__dependency5__,__dependency6__,__dependency7__,__dependency8__){"use strict";var Ember=__dependency1__["default"];var setupForTesting=__dependency4__["default"];var Test=__dependency5__["default"];var Adapter=__dependency6__["default"];var QUnitAdapter=__dependency7__["default"];Ember.Test=Test;Ember.Test.Adapter=Adapter;Ember.Test.QUnitAdapter=QUnitAdapter;Ember.setupForTesting=setupForTesting});define("ember-testing/adapters/adapter",["ember-metal/core","ember-metal/utils","ember-runtime/system/object","exports"],function(__dependency1__,__dependency2__,__dependency3__,__exports__){"use strict";var Ember=__dependency1__["default"];var inspect=__dependency2__.inspect;var EmberObject=__dependency3__["default"];var Adapter=EmberObject.extend({asyncStart:Ember.K,asyncEnd:Ember.K,exception:function(error){throw error}});__exports__["default"]=Adapter});define("ember-testing/adapters/qunit",["ember-testing/adapters/adapter","ember-metal/utils","exports"],function(__dependency1__,__dependency2__,__exports__){"use strict";var Adapter=__dependency1__["default"];var inspect=__dependency2__.inspect;__exports__["default"]=Adapter.extend({asyncStart:function(){QUnit.stop()},asyncEnd:function(){QUnit.start()},exception:function(error){ok(false,inspect(error))}})});define("ember-testing/helpers",["ember-metal/property_get","ember-metal/error","ember-metal/run_loop","ember-views/system/jquery","ember-testing/test"],function(__dependency1__,__dependency2__,__dependency3__,__dependency4__,__dependency5__){"use strict";var get=__dependency1__.get;var EmberError=__dependency2__["default"];var run=__dependency3__["default"];var jQuery=__dependency4__["default"];var Test=__dependency5__["default"];var helper=Test.registerHelper;var asyncHelper=Test.registerAsyncHelper;var countAsync=0;function currentRouteName(app){var appController=app.__container__.lookup("controller:application");return get(appController,"currentRouteName")}function currentPath(app){var appController=app.__container__.lookup("controller:application");return get(appController,"currentPath")}function currentURL(app){var router=app.__container__.lookup("router:main");return get(router,"location").getURL()}function visit(app,url){var router=app.__container__.lookup("router:main");router.location.setURL(url);if(app._readinessDeferrals>0){router["initialURL"]=url;run(app,"advanceReadiness");delete router["initialURL"]}else{run(app,app.handleURL,url)}return wait(app)}function click(app,selector,context){var $el=findWithAssert(app,selector,context);run($el,"mousedown");if($el.is(":input")){var type=$el.prop("type");if(type!=="checkbox"&&type!=="radio"&&type!=="hidden"){run($el,function(){if(!document.hasFocus||document.hasFocus()){this.focus()}else{this.trigger("focusin")}})}}run($el,"mouseup");run($el,"click");return wait(app)}function triggerEvent(app,selector,context,type,options){if(arguments.length===3){type=context;context=null}if(typeof options==="undefined"){options={}}var $el=findWithAssert(app,selector,context);var event=jQuery.Event(type,options);run($el,"trigger",event);return wait(app)}function keyEvent(app,selector,context,type,keyCode){if(typeof keyCode==="undefined"){keyCode=type;type=context;context=null}return triggerEvent(app,selector,context,type,{keyCode:keyCode,which:keyCode})}function fillIn(app,selector,context,text){var $el;if(typeof text==="undefined"){text=context;context=null}$el=findWithAssert(app,selector,context);run(function(){$el.val(text).change()});return wait(app)}function findWithAssert(app,selector,context){var $el=find(app,selector,context);if($el.length===0){throw new EmberError("Element "+selector+" not found.")}return $el}function find(app,selector,context){var $el;context=context||get(app,"rootElement");$el=app.$(selector,context);return $el}function andThen(app,callback){return wait(app,callback(app))}function wait(app,value){return Test.promise(function(resolve){if(++countAsync===1){Test.adapter.asyncStart()}var watcher=setInterval(function(){var routerIsLoading=!!app.__container__.lookup("router:main").router.activeTransition;if(routerIsLoading){return}if(Test.pendingAjaxRequests){return}if(run.hasScheduledTimers()||run.currentRunLoop){return}if(Test.waiters&&Test.waiters.any(function(waiter){var context=waiter[0];var callback=waiter[1];return!callback.call(context)})){return}clearInterval(watcher);if(--countAsync===0){Test.adapter.asyncEnd()}run(null,resolve,value)},10)})}asyncHelper("visit",visit);asyncHelper("click",click);asyncHelper("keyEvent",keyEvent);asyncHelper("fillIn",fillIn);helper("find",find);helper("findWithAssert",findWithAssert);asyncHelper("wait",wait);asyncHelper("andThen",andThen);helper("currentRouteName",currentRouteName);helper("currentPath",currentPath);helper("currentURL",currentURL);asyncHelper("triggerEvent",triggerEvent)});define("ember-testing/initializers",["ember-runtime/system/lazy_load"],function(__dependency1__){"use strict";var onLoad=__dependency1__.onLoad;var name="deferReadiness in `testing` mode";onLoad("Ember.Application",function(Application){if(!Application.initializers[name]){Application.initializer({name:name,initialize:function(container,application){if(application.testing){application.deferReadiness()}}})}})});define("ember-testing/setup_for_testing",["ember-metal/core","ember-testing/adapters/qunit","ember-views/system/jquery","exports"],function(__dependency1__,__dependency2__,__dependency3__,__exports__){"use strict";var Ember=__dependency1__["default"];var QUnitAdapter=__dependency2__["default"];var jQuery=__dependency3__["default"];var Test,requests;function incrementAjaxPendingRequests(_,xhr){requests.push(xhr);Test.pendingAjaxRequests=requests.length}function decrementAjaxPendingRequests(_,xhr){for(var i=0;i').css({position:"absolute",left:"-1000px",top:"-1000px"}).appendTo("body").on("click",handler).trigger("click").remove()}$(function(){testCheckboxClick(function(){if(!this.checked&&!$.event.special.click){$.event.special.click={trigger:function(){if($.nodeName(this,"input")&&this.type==="checkbox"&&this.click){this.click();return false}}}}});testCheckboxClick(function(){})})});define("ember-testing/test",["ember-metal/core","ember-metal/run_loop","ember-metal/platform","ember-runtime/compare","ember-runtime/ext/rsvp","ember-testing/setup_for_testing","ember-application/system/application","exports"],function(__dependency1__,__dependency2__,__dependency3__,__dependency4__,__dependency5__,__dependency6__,__dependency7__,__exports__){"use strict";var Ember=__dependency1__["default"];var emberRun=__dependency2__["default"];var create=__dependency3__.create;var compare=__dependency4__["default"];var RSVP=__dependency5__["default"];var setupForTesting=__dependency6__["default"];var EmberApplication=__dependency7__["default"];var slice=[].slice;var helpers={};var injectHelpersCallbacks=[];var Test={registerHelper:function(name,helperMethod){helpers[name]={method:helperMethod,meta:{wait:false}}},registerAsyncHelper:function(name,helperMethod){helpers[name]={method:helperMethod,meta:{wait:true}}},unregisterHelper:function(name){delete helpers[name];delete Test.Promise.prototype[name]},onInjectHelpers:function(callback){injectHelpersCallbacks.push(callback)},promise:function(resolver){return new Test.Promise(resolver)},adapter:null,resolve:function(val){return Test.promise(function(resolve){return resolve(val)})},registerWaiter:function(context,callback){if(arguments.length===1){callback=context;context=null}if(!this.waiters){this.waiters=Ember.A()}this.waiters.push([context,callback])},unregisterWaiter:function(context,callback){var pair;if(!this.waiters){return}if(arguments.length===1){callback=context;context=null}pair=[context,callback];this.waiters=Ember.A(this.waiters.filter(function(elt){return compare(elt,pair)!==0}))}};function helper(app,name){var fn=helpers[name].method,meta=helpers[name].meta;return function(){var args=slice.call(arguments),lastPromise=Test.lastPromise;args.unshift(app);if(!meta.wait){return fn.apply(app,args)}if(!lastPromise){lastPromise=fn.apply(app,args)}else{run(function(){lastPromise=Test.resolve(lastPromise).then(function(){return fn.apply(app,args)})})}return lastPromise}}function run(fn){if(!emberRun.currentRunLoop){emberRun(fn)}else{fn()}}EmberApplication.reopen({testHelpers:{},originalMethods:{},testing:false,setupForTesting:function(){setupForTesting();this.testing=true;this.Router.reopen({location:"none"})},helperContainer:window,injectTestHelpers:function(helperContainer){if(helperContainer){this.helperContainer=helperContainer}this.testHelpers={};for(var name in helpers){this.originalMethods[name]=this.helperContainer[name];this.testHelpers[name]=this.helperContainer[name]=helper(this,name);protoWrap(Test.Promise.prototype,name,helper(this,name),helpers[name].meta.wait)}for(var i=0,l=injectHelpersCallbacks.length;i"'`]/g;var POSSIBLE_CHARS_REGEXP=/[&<>"'`]/;function escapeAttribute(value){var escape={"<":"<",">":">",'"':""","'":"'","`":"`"};var escapeChar=function(chr){return escape[chr]||"&"};var string=value.toString();if(!POSSIBLE_CHARS_REGEXP.test(string)){return string}return string.replace(BAD_CHARS_REGEXP,escapeChar)}var canSetNameOnInputs=function(){var div=document.createElement("div"),el=document.createElement("input");el.setAttribute("name","foo");div.appendChild(el);return!!div.innerHTML.match("foo")}();__exports__["default"]=function RenderBuffer(tagName){return new _RenderBuffer(tagName)};function _RenderBuffer(tagName){this.tagNames=[tagName||null];this.buffer=""}_RenderBuffer.prototype={_element:null,_hasElement:true,elementClasses:null,classes:null,elementId:null,elementAttributes:null,elementProperties:null,elementTag:null,elementStyle:null,push:function(string){this.buffer+=string;return this},addClass:function(className){this.elementClasses=this.elementClasses||new ClassSet;this.elementClasses.add(className);this.classes=this.elementClasses.list;return this},setClasses:function(classNames){this.elementClasses=null;var len=classNames.length,i;for(i=0;i";this.buffer=buffer},pushClosingTag:function(){var tagName=this.tagNames.pop();if(tagName){this.buffer+=""+stripTagName(tagName)+">"}},currentTagName:function(){return this.tagNames[this.tagNames.length-1]},generateElement:function(){var tagName=this.tagNames.pop(),id=this.elementId,classes=this.classes,attrs=this.elementAttributes,props=this.elementProperties,style=this.elementStyle,styleBuffer="",attr,prop,tagString;if(attrs&&attrs.name&&!canSetNameOnInputs){tagString="<"+stripTagName(tagName)+' name="'+escapeAttribute(attrs.name)+'">'}else{tagString=tagName}var element=document.createElement(tagString),$element=jQuery(element);if(id){$element.attr("id",id);this.elementId=null}if(classes){$element.attr("class",classes.join(" "));this.classes=null;this.elementClasses=null}if(style){for(prop in style){if(style.hasOwnProperty(prop)){styleBuffer+=prop+":"+style[prop]+";"}}$element.attr("style",styleBuffer);this.elementStyle=null}if(attrs){for(attr in attrs){if(attrs.hasOwnProperty(attr)){$element.attr(attr,attrs[attr])}}this.elementAttributes=null}if(props){for(prop in props){if(props.hasOwnProperty(prop)){$element.prop(prop,props[prop])}}this.elementProperties=null}return element},element:function(){var html=this.innerString();if(html){this._element=setInnerHTML(this._element,html)}return this._element},string:function(){if(this._hasElement&&this._element){var thisElement=this.element(),outerHTML=thisElement.outerHTML;if(typeof outerHTML==="undefined"){return jQuery("").append(thisElement).html()}return outerHTML}else{return this.innerString()}},innerString:function(){return this.buffer}}});define("ember-views/system/utils",["ember-metal/core","exports"],function(__dependency1__,__exports__){"use strict";var Ember=__dependency1__["default"];var needsShy=typeof document!=="undefined"&&function(){var testEl=document.createElement("div");testEl.innerHTML="";testEl.firstChild.innerHTML="";return testEl.firstChild.innerHTML===""}();var movesWhitespace=typeof document!=="undefined"&&function(){var testEl=document.createElement("div");testEl.innerHTML="Test: Value";return testEl.childNodes[0].nodeValue==="Test:"&&testEl.childNodes[2].nodeValue===" Value"}();var findChildById=function(element,id){if(element.getAttribute("id")===id){return element}var len=element.childNodes.length,idx,node,found;for(idx=0;idx0){var len=matches.length,idx;for(idx=0;idxTest');canSet=el.options.length===1}innerHTMLTags[tagName]=canSet;return canSet};function setInnerHTML(element,html){var tagName=element.tagName;if(canSetInnerHTML(tagName)){setInnerHTMLWithoutFix(element,html)}else{var outerHTML=element.outerHTML||(new XMLSerializer).serializeToString(element);var startTag=outerHTML.match(new RegExp("<"+tagName+"([^>]*)>","i"))[0],endTag=""+tagName+">";var wrapper=document.createElement("div");setInnerHTMLWithoutFix(wrapper,startTag+html+endTag);element=wrapper.firstChild;while(element.tagName!==tagName){element=element.nextSibling}}return element}__exports__.setInnerHTML=setInnerHTML;function isSimpleClick(event){var modifier=event.shiftKey||event.metaKey||event.altKey||event.ctrlKey,secondaryClick=event.which>1;return!modifier&&!secondaryClick}__exports__.isSimpleClick=isSimpleClick});define("ember-views/views/collection_view",["ember-metal/core","ember-metal/platform","ember-metal/binding","ember-metal/merge","ember-metal/property_get","ember-metal/property_set","ember-runtime/system/string","ember-views/views/container_view","ember-views/views/core_view","ember-views/views/view","ember-metal/mixin","ember-runtime/mixins/array","exports"],function(__dependency1__,__dependency2__,__dependency3__,__dependency4__,__dependency5__,__dependency6__,__dependency7__,__dependency8__,__dependency9__,__dependency10__,__dependency11__,__dependency12__,__exports__){"use strict";var Ember=__dependency1__["default"];var create=__dependency2__.create;var isGlobalPath=__dependency3__.isGlobalPath;var merge=__dependency4__["default"];var get=__dependency5__.get;var set=__dependency6__.set;var fmt=__dependency7__.fmt;var ContainerView=__dependency8__["default"];var CoreView=__dependency9__["default"];var View=__dependency10__["default"];var observer=__dependency11__.observer;var beforeObserver=__dependency11__.beforeObserver;var EmberArray=__dependency12__["default"];var CollectionView=ContainerView.extend({content:null,emptyViewClass:View,emptyView:null,itemViewClass:View,init:function(){var ret=this._super();this._contentDidChange();return ret},_contentWillChange:beforeObserver("content",function(){var content=this.get("content");if(content){content.removeArrayObserver(this)}var len=content?get(content,"length"):0;this.arrayWillChange(content,0,len)}),_contentDidChange:observer("content",function(){var content=get(this,"content");if(content){this._assertArrayLike(content);content.addArrayObserver(this)}var len=content?get(content,"length"):0;this.arrayDidChange(content,0,null,len)}),_assertArrayLike:function(content){},destroy:function(){if(!this._super()){return}var content=get(this,"content");if(content){content.removeArrayObserver(this)}if(this._createdEmptyView){this._createdEmptyView.destroy()}return this},arrayWillChange:function(content,start,removedCount){var emptyView=get(this,"emptyView");if(emptyView&&emptyView instanceof View){emptyView.removeFromParent()}var childViews=this._childViews,childView,idx,len;len=this._childViews.length;var removingAll=removedCount===len;if(removingAll){this.currentState.empty(this);this.invokeRecursively(function(view){view.removedFromDOM=true},false)}for(idx=start+removedCount-1;idx>=start;idx--){childView=childViews[idx];childView.destroy()}},arrayDidChange:function(content,start,removed,added){var addedViews=[],view,item,idx,len,itemViewClass,emptyView;len=content?get(content,"length"):0;if(len){itemViewClass=get(this,"itemViewClass");if("string"===typeof itemViewClass&&isGlobalPath(itemViewClass)){itemViewClass=get(itemViewClass)||itemViewClass}for(idx=start;idx0){var changedViews=views.slice(start,start+removed);this.currentState.childViewsWillChange(this,views,start,removed);this.initializeViews(changedViews,null,null)}},removeChild:function(child){this.removeObject(child);return this},childViewsDidChange:function(views,start,removed,added){if(added>0){var changedViews=views.slice(start,start+added);this.initializeViews(changedViews,this,get(this,"templateData"));this.currentState.childViewsDidChange(this,views,start,added)}this.propertyDidChange("childViews")},initializeViews:function(views,parentView,templateData){forEach(views,function(view){set(view,"_parentView",parentView);if(!view.container&&parentView){set(view,"container",parentView.container)}if(!get(view,"templateData")){set(view,"templateData",templateData)}})},currentView:null,_currentViewWillChange:beforeObserver("currentView",function(){var currentView=get(this,"currentView");if(currentView){currentView.destroy()}}),_currentViewDidChange:observer("currentView",function(){var currentView=get(this,"currentView");if(currentView){this.pushObject(currentView)}}),_ensureChildrenAreInDOM:function(){this.currentState.ensureChildrenAreInDOM(this)}});merge(states._default,{childViewsWillChange:Ember.K,childViewsDidChange:Ember.K,ensureChildrenAreInDOM:Ember.K});merge(states.inBuffer,{childViewsDidChange:function(parentView,views,start,added){throw new EmberError("You cannot modify child views while in the inBuffer state")}});merge(states.hasElement,{childViewsWillChange:function(view,views,start,removed){for(var i=start;i=lengthBefore;i--){if(childViews[i]){childViews[i].destroy()}}},_applyClassNameBindings:function(classBindings){var classNames=this.classNames,elem,newClass,dasherizedClass;forEach(classBindings,function(binding){var oldClass;var parsedPath=View._parsePropertyPath(binding);var observer=function(){newClass=this._classStringForProperty(binding);elem=this.$();if(oldClass){elem.removeClass(oldClass);classNames.removeObject(oldClass)}if(newClass){elem.addClass(newClass);oldClass=newClass}else{oldClass=null}};dasherizedClass=this._classStringForProperty(binding);if(dasherizedClass){addObject(classNames,dasherizedClass);oldClass=dasherizedClass}this.registerObserver(this,parsedPath.path,observer);this.one("willClearRender",function(){if(oldClass){classNames.removeObject(oldClass);oldClass=null}})},this)},_unspecifiedAttributeBindings:null,_applyAttributeBindings:function(buffer,attributeBindings){var attributeValue,unspecifiedAttributeBindings=this._unspecifiedAttributeBindings=this._unspecifiedAttributeBindings||{};forEach(attributeBindings,function(binding){var split=binding.split(":"),property=split[0],attributeName=split[1]||property;if(property in this){this._setupAttributeBindingObservation(property,attributeName);attributeValue=get(this,property);View.applyAttributeBindings(buffer,attributeName,attributeValue)}else{unspecifiedAttributeBindings[property]=attributeName}},this);this.setUnknownProperty=this._setUnknownProperty},_setupAttributeBindingObservation:function(property,attributeName){var attributeValue,elem;var observer=function(){elem=this.$();attributeValue=get(this,property);View.applyAttributeBindings(elem,attributeName,attributeValue)};this.registerObserver(this,property,observer)},setUnknownProperty:null,_setUnknownProperty:function(key,value){var attributeName=this._unspecifiedAttributeBindings&&this._unspecifiedAttributeBindings[key];if(attributeName){this._setupAttributeBindingObservation(key,attributeName)}defineProperty(this,key);return set(this,key,value)},_classStringForProperty:function(property){var parsedPath=View._parsePropertyPath(property);var path=parsedPath.path;var val=get(this,path);if(val===undefined&&isGlobalPath(path)){val=get(Ember.lookup,path)}return View._classStringForValue(path,val,parsedPath.className,parsedPath.falsyClassName)},element:computed("_parentView",function(key,value){if(value!==undefined){return this.currentState.setElement(this,value)}else{return this.currentState.getElement(this)}}),$:function(sel){return this.currentState.$(this,sel)},mutateChildViews:function(callback){var childViews=this._childViews,idx=childViews.length,view;while(--idx>=0){view=childViews[idx];callback(this,view,idx)}return this},forEachChildView:function(callback){var childViews=this._childViews;if(!childViews){return this}var len=childViews.length,view,idx;for(idx=0;idx=0;i--){childViews[i].removedFromDOM=true}if(viewName&&nonVirtualParentView){nonVirtualParentView.set(viewName,null)}childLen=childViews.length;for(i=childLen-1;i>=0;i--){childViews[i].destroy()}return this},createChildView:function(view,attrs){if(!view){throw new TypeError("createChildViews first argument must exist")}if(view.isView&&view._parentView===this&&view.container===this.container){return view}attrs=attrs||{};attrs._parentView=this;if(CoreView.detect(view)){attrs.templateData=attrs.templateData||get(this,"templateData");attrs.container=this.container;view=view.create(attrs);if(view.viewName){set(get(this,"concreteView"),view.viewName,view)}}else if("string"===typeof view){var fullName="view:"+view;var ViewKlass=this.container.lookupFactory(fullName);attrs.templateData=get(this,"templateData");view=ViewKlass.create(attrs)}else{attrs.container=this.container;if(!get(view,"templateData")){attrs.templateData=get(this,"templateData")}setProperties(view,attrs)}return view},becameVisible:Ember.K,becameHidden:Ember.K,_isVisibleDidChange:observer("isVisible",function(){if(this._isVisible===get(this,"isVisible")){return}run.scheduleOnce("render",this,this._toggleVisibility)}),_toggleVisibility:function(){var $el=this.$();if(!$el){return}var isVisible=get(this,"isVisible");if(this._isVisible===isVisible){return}$el.toggle(isVisible);this._isVisible=isVisible;if(this._isAncestorHidden()){return}if(isVisible){this._notifyBecameVisible()}else{this._notifyBecameHidden()}},_notifyBecameVisible:function(){this.trigger("becameVisible");this.forEachChildView(function(view){var isVisible=get(view,"isVisible");if(isVisible||isVisible===null){view._notifyBecameVisible()}})},_notifyBecameHidden:function(){this.trigger("becameHidden");this.forEachChildView(function(view){var isVisible=get(view,"isVisible");if(isVisible||isVisible===null){view._notifyBecameHidden()}})},_isAncestorHidden:function(){var parent=get(this,"parentView");while(parent){if(get(parent,"isVisible")===false){return true}parent=get(parent,"parentView")}return false},clearBuffer:function(){this.invokeRecursively(nullViewsBuffer)},transitionTo:function(state,children){this._transitionTo(state,children)},_transitionTo:function(state,children){var priorState=this.currentState;var currentState=this.currentState=this._states[state];this._state=state;if(priorState&&priorState.exit){priorState.exit(this)}if(currentState.enter){currentState.enter(this)}if(state==="inDOM"){meta(this).cache.element=undefined}if(children!==false){this.forEachChildView(function(view){view._transitionTo(state)})}},handleEvent:function(eventName,evt){return this.currentState.handleEvent(this,eventName,evt)},registerObserver:function(root,path,target,observer){if(!observer&&"function"===typeof target){observer=target;target=null}if(!root||typeof root!=="object"){return}var view=this,stateCheckedObserver=function(){view.currentState.invokeObserver(this,observer)},scheduledObserver=function(){run.scheduleOnce("render",this,stateCheckedObserver)};addObserver(root,path,target,scheduledObserver);this.one("willClearRender",function(){removeObserver(root,path,target,scheduledObserver)})}});function notifyMutationListeners(){run.once(View,"notifyMutationListeners")}var DOMManager={prepend:function(view,html){view.$().prepend(html);notifyMutationListeners()},after:function(view,html){view.$().after(html);notifyMutationListeners()},html:function(view,html){view.$().html(html);notifyMutationListeners()},replace:function(view){var element=get(view,"element");set(view,"element",null);view._insertElementLater(function(){jQuery(element).replaceWith(get(view,"element"));notifyMutationListeners()})},remove:function(view){view.$().remove();notifyMutationListeners()},empty:function(view){view.$().empty();notifyMutationListeners()}};View.reopen({domManager:DOMManager});View.reopenClass({_parsePropertyPath:function(path){var split=path.split(":"),propertyPath=split[0],classNames="",className,falsyClassName;if(split.length>1){className=split[1];if(split.length===3){falsyClassName=split[2]}classNames=":"+className;if(falsyClassName){classNames+=":"+falsyClassName}}return{path:propertyPath,classNames:classNames,className:className===""?undefined:className,falsyClassName:falsyClassName}},_classStringForValue:function(path,val,className,falsyClassName){if(isArray(val)){val=get(val,"length")!==0}if(className||falsyClassName){if(className&&!!val){return className}else if(falsyClassName&&!val){return falsyClassName}else{return null}}else if(val===true){var parts=path.split(".");return dasherize(parts[parts.length-1])}else if(val!==false&&val!=null){return val}else{return null}}});var mutation=EmberObject.extend(Evented).create();View.addMutationListener=function(callback){mutation.on("change",callback)};View.removeMutationListener=function(callback){mutation.off("change",callback)};View.notifyMutationListeners=function(){mutation.trigger("change")};View.views={};View.childViewsProperty=childViewsProperty;View.applyAttributeBindings=function(elem,name,value){var type=typeOf(value);if(name!=="value"&&(type==="string"||type==="number"&&!isNaN(value))){if(value!==elem.attr(name)){elem.attr(name,value)}}else if(name==="value"||type==="boolean"){if(isNone(value)||value===false){elem.removeAttr(name);elem.prop(name,"")}else if(value!==elem.prop(name)){elem.prop(name,value)}}else if(!value){elem.removeAttr(name)}};__exports__["default"]=View});define("ember-views/views/view_collection",["ember-metal/enumerable_utils","exports"],function(__dependency1__,__exports__){"use strict";var forEach=__dependency1__.forEach;function ViewCollection(initialViews){var views=this.views=initialViews||[];this.length=views.length}ViewCollection.prototype={length:0,trigger:function(eventName){var views=this.views,view;for(var i=0,l=views.length;i";testEl.firstChild.innerHTML="";return testEl.firstChild.innerHTML===""}(),movesWhitespace=document&&function(){var testEl=document.createElement("div");testEl.innerHTML="Test: Value";return testEl.childNodes[0].nodeValue==="Test:"&&testEl.childNodes[2].nodeValue===" Value"}();var Metamorph=function(html){var self;if(this instanceof Metamorph){self=this}else{self=new K}self.innerHTML=html;var myGuid="metamorph-"+guid++;self.start=myGuid+"-start";self.end=myGuid+"-end";return self};K.prototype=Metamorph.prototype;var rangeFor,htmlFunc,removeFunc,outerHTMLFunc,appendToFunc,afterFunc,prependFunc,startTagFunc,endTagFunc;outerHTMLFunc=function(){return this.startTag()+this.innerHTML+this.endTag()};startTagFunc=function(){return""};endTagFunc=function(){return""};if(supportsRange){rangeFor=function(morph,outerToo){var range=document.createRange();var before=document.getElementById(morph.start);var after=document.getElementById(morph.end);if(outerToo){range.setStartBefore(before);range.setEndAfter(after)}else{range.setStartAfter(before);range.setEndBefore(after)}return range};htmlFunc=function(html,outerToo){var range=rangeFor(this,outerToo);range.deleteContents();var fragment=range.createContextualFragment(html);range.insertNode(fragment)};removeFunc=function(){var range=rangeFor(this,true);range.deleteContents()};appendToFunc=function(node){var range=document.createRange();range.setStart(node);range.collapse(false);var frag=range.createContextualFragment(this.outerHTML());node.appendChild(frag)};afterFunc=function(html){var range=document.createRange();var after=document.getElementById(this.end);range.setStartAfter(after);range.setEndAfter(after);var fragment=range.createContextualFragment(html);range.insertNode(fragment)};prependFunc=function(html){var range=document.createRange();var start=document.getElementById(this.start);range.setStartAfter(start);range.setEndAfter(start);var fragment=range.createContextualFragment(html);range.insertNode(fragment)}}else{Metamorph._wrapMap={select:[1,""],fieldset:[1,""],table:[1,""],tbody:[2,""],tr:[3,""],colgroup:[2,""],map:[1,""],_default:[0,"",""]};var findChildById=function(element,id){if(element.getAttribute("id")===id){return element}var len=element.childNodes.length,idx,node,found;for(idx=0;idx0){var len=matches.length,idx;for(idx=0;idx2&&key.slice(keyLength-2)==="[]"){isArray=true;key=key.slice(0,keyLength-2);if(!queryParams[key]){queryParams[key]=[]}}value=pair[1]?decodeURIComponent(pair[1]):""}if(isArray){queryParams[key].push(value)}else{queryParams[key]=decodeURIComponent(value)}}return queryParams},recognize:function(path){var states=[this.rootState],pathLen,i,l,queryStart,queryParams={},isSlashDropped=false;path=decodeURI(path);queryStart=path.indexOf("?");if(queryStart!==-1){var queryString=path.substr(queryStart+1,path.length);path=path.substr(0,queryStart);queryParams=this.parseQueryString(queryString)}if(path.charAt(0)!=="/"){path="/"+path}pathLen=path.length;if(pathLen>1&&path.charAt(pathLen-1)==="/"){path=path.substr(0,pathLen-1);isSlashDropped=true}for(i=0,l=path.length;i=0&&proceed;--i){var route=routes[i];recognizer.add(routes,{as:route.handler});proceed=route.path==="/"||route.path===""||route.handler.slice(-6)===".index"}})},hasRoute:function(route){return this.recognizer.hasRoute(route)},queryParamsTransition:function(changelist,wasTransitioning,oldState,newState){var router=this;fireQueryParamDidChange(this,newState,changelist);if(!wasTransitioning&&this.activeTransition){return this.activeTransition}else{var newTransition=new Transition(this);newTransition.queryParamsOnly=true;oldState.queryParams=finalizeQueryParamChange(this,newState.handlerInfos,newState.queryParams,newTransition);newTransition.promise=newTransition.promise.then(function(result){updateURL(newTransition,oldState,true);if(router.didTransition){router.didTransition(router.currentHandlerInfos)}return result},null,promiseLabel("Transition complete"));return newTransition}},transitionByIntent:function(intent,isIntermediate){var wasTransitioning=!!this.activeTransition;var oldState=wasTransitioning?this.activeTransition.state:this.state;var newTransition;var router=this;try{var newState=intent.applyToState(oldState,this.recognizer,this.getHandler,isIntermediate);var queryParamChangelist=getChangelist(oldState.queryParams,newState.queryParams);if(handlerInfosEqual(newState.handlerInfos,oldState.handlerInfos)){if(queryParamChangelist){newTransition=this.queryParamsTransition(queryParamChangelist,wasTransitioning,oldState,newState);if(newTransition){return newTransition}}return new Transition(this)}if(isIntermediate){setupContexts(this,newState);return}newTransition=new Transition(this,intent,newState);if(this.activeTransition){this.activeTransition.abort()}this.activeTransition=newTransition;newTransition.promise=newTransition.promise.then(function(result){return finalizeTransition(newTransition,result.state)},null,promiseLabel("Settle transition promise when transition is finalized"));if(!wasTransitioning){notifyExistingHandlers(this,newState,newTransition)}fireQueryParamDidChange(this,newState,queryParamChangelist);return newTransition}catch(e){return new Transition(this,intent,null,e)}},reset:function(){if(this.state){forEach(this.state.handlerInfos,function(handlerInfo){var handler=handlerInfo.handler;if(handler.exit){handler.exit()}})}this.state=new TransitionState;this.currentHandlerInfos=null},activeTransition:null,handleURL:function(url){var args=slice.call(arguments);if(url.charAt(0)!=="/"){args[0]="/"+url}return doTransition(this,args).method(null)},updateURL:function(){throw new Error("updateURL is not implemented")},replaceURL:function(url){this.updateURL(url)},transitionTo:function(name){return doTransition(this,arguments)},intermediateTransitionTo:function(name){doTransition(this,arguments,true)},refresh:function(pivotHandler){var state=this.activeTransition?this.activeTransition.state:this.state;var handlerInfos=state.handlerInfos;var params={};for(var i=0,len=handlerInfos.length;i=0;--i){var handlerInfo=handlerInfos[i];merge(params,handlerInfo.params);if(handlerInfo.handler.inaccessibleByURL){urlMethod=null}}if(urlMethod){params.queryParams=transition._visibleQueryParams||state.queryParams;var url=router.recognizer.generate(handlerName,params);if(urlMethod==="replace"){router.replaceURL(url)}else{router.updateURL(url)}}}function finalizeTransition(transition,newState){try{log(transition.router,transition.sequence,"Resolved all models on destination route; finalizing transition.");var router=transition.router,handlerInfos=newState.handlerInfos,seq=transition.sequence;setupContexts(router,newState,transition);if(transition.isAborted){router.state.handlerInfos=router.currentHandlerInfos;return Promise.reject(logAbort(transition))}updateURL(transition,newState,transition.intent.url);transition.isActive=false;router.activeTransition=null;trigger(router,router.currentHandlerInfos,true,["didTransition"]);if(router.didTransition){router.didTransition(router.currentHandlerInfos)}log(router,transition.sequence,"TRANSITION COMPLETE.");return handlerInfos[handlerInfos.length-1].handler}catch(e){if(!(e instanceof TransitionAborted)){var infos=transition.state.handlerInfos;transition.trigger(true,"error",e,transition,infos[infos.length-1].handler);transition.abort()}throw e}}function doTransition(router,args,isIntermediate){var name=args[0]||"/";var lastArg=args[args.length-1];var queryParams={};if(lastArg&&lastArg.hasOwnProperty("queryParams")){queryParams=pop.call(args).queryParams}var intent;if(args.length===0){log(router,"Updating query params");var handlerInfos=router.state.handlerInfos;intent=new NamedTransitionIntent({name:handlerInfos[handlerInfos.length-1].name,contexts:[],queryParams:queryParams})}else if(name.charAt(0)==="/"){log(router,"Attempting URL transition to "+name);intent=new URLTransitionIntent({url:name})}else{log(router,"Attempting transition to "+name);intent=new NamedTransitionIntent({name:args[0],contexts:slice.call(args,1),queryParams:queryParams})}return router.transitionByIntent(intent,isIntermediate)}function handlerInfosEqual(handlerInfos,otherHandlerInfos){if(handlerInfos.length!==otherHandlerInfos.length){return false}for(var i=0,len=handlerInfos.length;i0){router._triggerWillChangeContext(changing,newTransition)}trigger(router,oldHandlers,true,["willTransition",newTransition])}__exports__["default"]=Router});define("router/transition-intent",["./utils","exports"],function(__dependency1__,__exports__){"use strict";var merge=__dependency1__.merge;function TransitionIntent(props){this.initialize(props);this.data=this.data||{}}TransitionIntent.prototype={initialize:null,applyToState:null};__exports__["default"]=TransitionIntent});define("router/transition-intent/named-transition-intent",["../transition-intent","../transition-state","../handler-info/factory","../utils","exports"],function(__dependency1__,__dependency2__,__dependency3__,__dependency4__,__exports__){"use strict";var TransitionIntent=__dependency1__["default"];var TransitionState=__dependency2__["default"];var handlerInfoFactory=__dependency3__["default"];var isParam=__dependency4__.isParam;var extractQueryParams=__dependency4__.extractQueryParams;var merge=__dependency4__.merge;var subclass=__dependency4__.subclass;__exports__["default"]=subclass(TransitionIntent,{name:null,pivotHandler:null,contexts:null,queryParams:null,initialize:function(props){this.name=props.name;this.pivotHandler=props.pivotHandler;this.contexts=props.contexts||[];this.queryParams=props.queryParams},applyToState:function(oldState,recognizer,getHandler,isIntermediate){var partitionedArgs=extractQueryParams([this.name].concat(this.contexts)),pureArgs=partitionedArgs[0],queryParams=partitionedArgs[1],handlers=recognizer.handlersFor(pureArgs[0]);var targetRouteName=handlers[handlers.length-1].handler;return this.applyToHandlers(oldState,handlers,getHandler,targetRouteName,isIntermediate)},applyToHandlers:function(oldState,handlers,getHandler,targetRouteName,isIntermediate,checkingIfActive){var i;var newState=new TransitionState;var objects=this.contexts.slice(0);var invalidateIndex=handlers.length;if(this.pivotHandler){for(i=0;i=0;--i){var result=handlers[i];var name=result.handler;var handler=getHandler(name);var oldHandlerInfo=oldState.handlerInfos[i];var newHandlerInfo=null;if(result.names.length>0){if(i>=invalidateIndex){newHandlerInfo=this.createParamHandlerInfo(name,handler,result.names,objects,oldHandlerInfo)}else{newHandlerInfo=this.getHandlerInfoForDynamicSegment(name,handler,result.names,objects,oldHandlerInfo,targetRouteName,i)}}else{newHandlerInfo=this.createParamHandlerInfo(name,handler,result.names,objects,oldHandlerInfo)}if(checkingIfActive){newHandlerInfo=newHandlerInfo.becomeResolved(null,newHandlerInfo.context);var oldContext=oldHandlerInfo&&oldHandlerInfo.context;if(result.names.length>0&&newHandlerInfo.context===oldContext){newHandlerInfo.params=oldHandlerInfo&&oldHandlerInfo.params}newHandlerInfo.context=oldContext}var handlerToUse=oldHandlerInfo;if(i>=invalidateIndex||newHandlerInfo.shouldSupercede(oldHandlerInfo)){invalidateIndex=Math.min(i,invalidateIndex);handlerToUse=newHandlerInfo}if(isIntermediate&&!checkingIfActive){handlerToUse=handlerToUse.becomeResolved(null,handlerToUse.context)}newState.handlerInfos.unshift(handlerToUse)}if(objects.length>0){throw new Error("More context objects were passed than there are dynamic segments for the route: "+targetRouteName)}if(!isIntermediate){this.invalidateChildren(newState.handlerInfos,invalidateIndex)}merge(newState.queryParams,this.queryParams||{});return newState},invalidateChildren:function(handlerInfos,invalidateIndex){for(var i=invalidateIndex,l=handlerInfos.length;i0){objectToUse=objects[objects.length-1];if(isParam(objectToUse)){return this.createParamHandlerInfo(name,handler,names,objects,oldHandlerInfo)}else{objects.pop()}}else if(oldHandlerInfo&&oldHandlerInfo.name===name){return oldHandlerInfo}else{if(this.preTransitionState){var preTransitionHandlerInfo=this.preTransitionState.handlerInfos[i];objectToUse=preTransitionHandlerInfo&&preTransitionHandlerInfo.context}else{return oldHandlerInfo}}return handlerInfoFactory("object",{name:name,handler:handler,context:objectToUse,names:names})},createParamHandlerInfo:function(name,handler,names,objects,oldHandlerInfo){var params={};var numNames=names.length;while(numNames--){var oldParams=oldHandlerInfo&&name===oldHandlerInfo.name&&oldHandlerInfo.params||{};var peek=objects[objects.length-1];var paramName=names[numNames];if(isParam(peek)){params[paramName]=""+objects.pop()}else{if(oldParams.hasOwnProperty(paramName)){params[paramName]=oldParams[paramName]}else{throw new Error("You didn't provide enough string/numeric parameters to satisfy all of the dynamic segments for route "+name)}}}return handlerInfoFactory("param",{name:name,handler:handler,params:params})}})});define("router/transition-intent/url-transition-intent",["../transition-intent","../transition-state","../handler-info/factory","../utils","exports"],function(__dependency1__,__dependency2__,__dependency3__,__dependency4__,__exports__){"use strict";var TransitionIntent=__dependency1__["default"];var TransitionState=__dependency2__["default"];var handlerInfoFactory=__dependency3__["default"];var oCreate=__dependency4__.oCreate;var merge=__dependency4__.merge;var subclass=__dependency4__.subclass;__exports__["default"]=subclass(TransitionIntent,{url:null,initialize:function(props){this.url=props.url},applyToState:function(oldState,recognizer,getHandler){var newState=new TransitionState;var results=recognizer.recognize(this.url),queryParams={},i,len;if(!results){throw new UnrecognizedURLError(this.url)}var statesDiffer=false;for(i=0,len=results.length;i=handlerInfos.length?handlerInfos.length-1:payload.resolveIndex;return Promise.reject({error:error,handlerWithError:currentState.handlerInfos[errorHandlerIndex].handler,wasAborted:wasAborted,state:currentState})}function proceed(resolvedHandlerInfo){var wasAlreadyResolved=currentState.handlerInfos[payload.resolveIndex].isResolved;currentState.handlerInfos[payload.resolveIndex++]=resolvedHandlerInfo;if(!wasAlreadyResolved){var handler=resolvedHandlerInfo.handler;if(handler&&handler.redirect){handler.redirect(resolvedHandlerInfo.context,payload)}}return innerShouldContinue().then(resolveOneHandlerInfo,null,promiseLabel("Resolve handler"))}function resolveOneHandlerInfo(){if(payload.resolveIndex===currentState.handlerInfos.length){return{error:null,state:currentState}}var handlerInfo=currentState.handlerInfos[payload.resolveIndex];return handlerInfo.resolve(innerShouldContinue,payload).then(proceed,null,promiseLabel("Proceed"))}}};__exports__["default"]=TransitionState});define("router/transition",["rsvp/promise","./handler-info","./utils","exports"],function(__dependency1__,__dependency2__,__dependency3__,__exports__){"use strict";var Promise=__dependency1__["default"];var ResolvedHandlerInfo=__dependency2__.ResolvedHandlerInfo;var trigger=__dependency3__.trigger;var slice=__dependency3__.slice;var log=__dependency3__.log;var promiseLabel=__dependency3__.promiseLabel;function Transition(router,intent,state,error){var transition=this;
-this.state=state||router.state;this.intent=intent;this.router=router;this.data=this.intent&&this.intent.data||{};this.resolvedModels={};this.queryParams={};if(error){this.promise=Promise.reject(error);return}if(state){this.params=state.params;this.queryParams=state.queryParams;this.handlerInfos=state.handlerInfos;var len=state.handlerInfos.length;if(len){this.targetName=state.handlerInfos[state.handlerInfos.length-1].name}for(var i=0;i0&&array[len-1]&&array[len-1].hasOwnProperty("queryParams")){queryParams=array[len-1].queryParams;head=slice.call(array,0,len-1);return[head,queryParams]}else{return[array,null]}}__exports__.extractQueryParams=extractQueryParams;function coerceQueryParamsToString(queryParams){for(var key in queryParams){if(typeof queryParams[key]==="number"){queryParams[key]=""+queryParams[key]}else if(isArray(queryParams[key])){for(var i=0,l=queryParams[key].length;i=0;i--){var handlerInfo=handlerInfos[i],handler=handlerInfo.handler;if(handler.events&&handler.events[name]){if(handler.events[name].apply(handler,args)===true){eventWasHandled=true}else{return}}}if(!eventWasHandled&&!ignoreFailure){throw new Error("Nothing handled the event '"+name+"'.")}}__exports__.trigger=trigger;function getChangelist(oldObject,newObject){var key;var results={all:{},changed:{},removed:{}};merge(results.all,newObject);var didChange=false;coerceQueryParamsToString(oldObject);coerceQueryParamsToString(newObject);for(key in oldObject){if(oldObject.hasOwnProperty(key)){if(!newObject.hasOwnProperty(key)){didChange=true;results.removed[key]=oldObject[key]}}}for(key in newObject){if(newObject.hasOwnProperty(key)){if(isArray(oldObject[key])&&isArray(newObject[key])){if(oldObject[key].length!==newObject[key].length){results.changed[key]=newObject[key];didChange=true}else{for(var i=0,l=oldObject[key].length;i3?slice.call(arguments,3):undefined;if(!this.currentInstance){createAutorun(this)}return this.currentInstance.schedule(queueName,target,method,args,false,stack)},deferOnce:function(queueName,target,method){if(!method){method=target;target=null}if(isString(method)){method=target[method]}var stack=this.DEBUG?new Error:undefined,args=arguments.length>3?slice.call(arguments,3):undefined;if(!this.currentInstance){createAutorun(this)}return this.currentInstance.schedule(queueName,target,method,args,true,stack)},setTimeout:function(){var args=slice.call(arguments),length=args.length,method,wait,target,methodOrTarget,methodOrWait,methodOrArgs;if(length===0){return}else if(length===1){method=args.shift();wait=0}else if(length===2){methodOrTarget=args[0];methodOrWait=args[1];if(isFunction(methodOrWait)||isFunction(methodOrTarget[methodOrWait])){target=args.shift();method=args.shift();wait=0}else if(isCoercableNumber(methodOrWait)){method=args.shift();wait=args.shift()}else{method=args.shift();wait=0}}else{var last=args[args.length-1];if(isCoercableNumber(last)){wait=args.pop()}else{wait=0}methodOrTarget=args[0];methodOrArgs=args[1];if(isFunction(methodOrArgs)||isString(methodOrArgs)&&methodOrTarget!==null&&methodOrArgs in methodOrTarget){target=args.shift();method=args.shift()}else{method=args.shift()}}var executeAt=+new Date+parseInt(wait,10);if(isString(method)){method=target[method]}var onError=getOnError(this.options);function fn(){if(onError){try{method.apply(target,args)}catch(e){onError(e)}}else{method.apply(target,args)}}var i=searchTimer(executeAt,timers);timers.splice(i,0,executeAt,fn);updateLaterTimer(this,executeAt,wait);return fn},throttle:function(target,method){var self=this,args=arguments,immediate=pop.call(args),wait,throttler,index,timer;if(isNumber(immediate)||isString(immediate)){wait=immediate;immediate=true}else{wait=pop.call(args)}wait=parseInt(wait,10);index=findThrottler(target,method,this._throttlers);if(index>-1){return this._throttlers[index]}timer=global.setTimeout(function(){if(!immediate){self.run.apply(self,args)}var index=findThrottler(target,method,self._throttlers);if(index>-1){self._throttlers.splice(index,1)}},wait);if(immediate){self.run.apply(self,args)}throttler=[target,method,timer];this._throttlers.push(throttler);return throttler},debounce:function(target,method){var self=this,args=arguments,immediate=pop.call(args),wait,index,debouncee,timer;if(isNumber(immediate)||isString(immediate)){wait=immediate;immediate=false}else{wait=pop.call(args)}wait=parseInt(wait,10);index=findDebouncee(target,method,this._debouncees);if(index>-1){debouncee=this._debouncees[index];this._debouncees.splice(index,1);clearTimeout(debouncee[2])}timer=global.setTimeout(function(){if(!immediate){self.run.apply(self,args)}var index=findDebouncee(target,method,self._debouncees);if(index>-1){self._debouncees.splice(index,1)}},wait);if(immediate&&index===-1){self.run.apply(self,args)}debouncee=[target,method,timer];self._debouncees.push(debouncee);return debouncee},cancelTimers:function(){var clearItems=function(item){clearTimeout(item[2])};each(this._throttlers,clearItems);this._throttlers=[];each(this._debouncees,clearItems);this._debouncees=[];if(this._laterTimer){clearTimeout(this._laterTimer);this._laterTimer=null}timers=[];if(this._autorun){clearTimeout(this._autorun);this._autorun=null}},hasTimers:function(){return!!timers.length||!!this._debouncees.length||!!this._throttlers.length||this._autorun},cancel:function(timer){var timerType=typeof timer;if(timer&&timerType==="object"&&timer.queue&&timer.method){return timer.queue.cancel(timer)}else if(timerType==="function"){for(var i=0,l=timers.length;i-1){item=array[index];if(item[2]===timer[2]){array.splice(index,1);clearTimeout(timer[2]);return true}}return false}};Backburner.prototype.schedule=Backburner.prototype.defer;Backburner.prototype.scheduleOnce=Backburner.prototype.deferOnce;Backburner.prototype.later=Backburner.prototype.setTimeout;if(needsIETryCatchFix){var originalRun=Backburner.prototype.run;Backburner.prototype.run=wrapInTryCatch(originalRun);var originalEnd=Backburner.prototype.end;Backburner.prototype.end=wrapInTryCatch(originalEnd)}function wrapInTryCatch(func){return function(){try{return func.apply(this,arguments)}catch(e){throw e}}}function getOnError(options){return options.onError||options.onErrorTarget&&options.onErrorTarget[options.onErrorMethod]}function createAutorun(backburner){backburner.begin();backburner._autorun=global.setTimeout(function(){backburner._autorun=null;backburner.end()})}function updateLaterTimer(self,executeAt,wait){if(!self._laterTimer||executeAt=timers[middle]){start=middle+2}else{end=middle}}return time>=timers[start]?start+2:start}__exports__.Backburner=Backburner});define("backburner/deferred_action_queues",["backburner/utils","backburner/queue","exports"],function(__dependency1__,__dependency2__,__exports__){"use strict";var Utils=__dependency1__["default"];var Queue=__dependency2__.Queue;var each=Utils.each,isString=Utils.isString;function DeferredActionQueues(queueNames,options){var queues=this.queues={};this.queueNames=queueNames=queueNames||[];this.options=options;each(queueNames,function(queueName){queues[queueName]=new Queue(this,queueName,options)})}DeferredActionQueues.prototype={queueNames:null,queues:null,options:null,schedule:function(queueName,target,method,args,onceFlag,stack){var queues=this.queues,queue=queues[queueName];if(!queue){throw new Error("You attempted to schedule an action in a queue ("+queueName+") that doesn't exist")}if(onceFlag){return queue.pushUnique(target,method,args,stack)}else{return queue.push(target,method,args,stack)}},invoke:function(target,method,args,_){if(args&&args.length>0){method.apply(target,args)}else{method.call(target)}},invokeWithOnError:function(target,method,args,onError){try{if(args&&args.length>0){method.apply(target,args)}else{method.call(target)}}catch(error){onError(error)}},flush:function(){var queues=this.queues,queueNames=this.queueNames,queueName,queue,queueItems,priorQueueNameIndex,queueNameIndex=0,numberOfQueues=queueNames.length,options=this.options,onError=options.onError||options.onErrorTarget&&options.onErrorTarget[options.onErrorMethod],invoke=onError?this.invokeWithOnError:this.invoke;outerloop:while(queueNameIndex0){if(onError){try{method.apply(target,args)}catch(e){onError(e)}}else{method.apply(target,args)}}else{if(onError){try{method.call(target)}catch(e){onError(e)}}else{method.call(target)}}}if(l&&after){after()}if(queue.length>l){this._queue=queue.slice(l);this.flush()}else{this._queue.length=0}},cancel:function(actionToCancel){var queue=this._queue,currentTarget,currentMethod,i,l;for(i=0,l=queue.length;i-1){try{if(fs.existsSync(headFilePath)){var headFile=fs.readFileSync(headFilePath,{encoding:"utf8"});var branchName=headFile.split("/").slice(-1)[0].trim();var refPath=headFile.split(" ")[1];var branchSHA;if(refPath){var branchPath=path.join(gitPath,refPath.trim());branchSHA=fs.readFileSync(branchPath)}else{branchSHA=branchName}output.push(branchSHA.slice(0,10))}}catch(err){console.error(err.stack)}return output.join(".")}else{return packageVersion}}});define("container",["container/container","exports"],function(__dependency1__,__exports__){"use strict";Ember.MODEL_FACTORY_INJECTIONS=false;if(Ember.ENV&&typeof Ember.ENV.MODEL_FACTORY_INJECTIONS!=="undefined"){Ember.MODEL_FACTORY_INJECTIONS=!!Ember.ENV.MODEL_FACTORY_INJECTIONS}var Container=__dependency1__["default"];__exports__["default"]=Container});define("container/container",["ember-metal/core","ember-metal/dictionary","exports"],function(__dependency1__,__dependency2__,__exports__){"use strict";var Ember=__dependency1__["default"];var dictionary=__dependency2__["default"];function Container(parent){this.parent=parent;this.children=[];this.resolver=parent&&parent.resolver||function(){};this.registry=dictionary(parent?parent.registry:null);this.cache=dictionary(parent?parent.cache:null);this.factoryCache=dictionary(parent?parent.factoryCache:null);this.resolveCache=dictionary(parent?parent.resolveCache:null);this.typeInjections=dictionary(parent?parent.typeInjections:null);this.injections=dictionary(null);this.normalizeCache=dictionary(null);this.factoryTypeInjections=dictionary(parent?parent.factoryTypeInjections:null);this.factoryInjections=dictionary(null);this._options=dictionary(parent?parent._options:null);this._typeOptions=dictionary(parent?parent._typeOptions:null)}Container.prototype={parent:null,children:null,resolver:null,registry:null,cache:null,typeInjections:null,injections:null,_options:null,_typeOptions:null,child:function(){var container=new Container(this);this.children.push(container);return container},set:function(object,key,value){object[key]=value},register:function(fullName,factory,options){if(factory===undefined){throw new TypeError("Attempting to register an unknown factory: `"+fullName+"`")}var normalizedName=this.normalize(fullName);if(normalizedName in this.cache){throw new Error("Cannot re-register: `"+fullName+"`, as it has already been looked up.")}this.registry[normalizedName]=factory;this._options[normalizedName]=options||{}},unregister:function(fullName){var normalizedName=this.normalize(fullName);delete this.registry[normalizedName];delete this.cache[normalizedName];delete this.factoryCache[normalizedName];delete this.resolveCache[normalizedName];delete this._options[normalizedName]},resolve:function(fullName){return resolve(this,this.normalize(fullName))},describe:function(fullName){return fullName},normalizeFullName:function(fullName){return fullName},normalize:function(fullName){return this.normalizeCache[fullName]||(this.normalizeCache[fullName]=this.normalizeFullName(fullName))},makeToString:function(factory,fullName){return factory.toString()},lookup:function(fullName,options){return lookup(this,this.normalize(fullName),options)},lookupFactory:function(fullName){return factoryFor(this,this.normalize(fullName))},has:function(fullName){return has(this,this.normalize(fullName))},optionsForType:function(type,options){if(this.parent){illegalChildOperation("optionsForType")}this._typeOptions[type]=options},options:function(type,options){this.optionsForType(type,options)},typeInjection:function(type,property,fullName){if(this.parent){illegalChildOperation("typeInjection")}var fullNameType=fullName.split(":")[0];if(fullNameType===type){throw new Error("Cannot inject a `"+fullName+"` on other "+type+"(s). Register the `"+fullName+"` as a different type and perform the typeInjection.")}addTypeInjection(this.typeInjections,type,property,fullName)},injection:function(fullName,property,injectionName){if(this.parent){illegalChildOperation("injection")}validateFullName(injectionName);var normalizedInjectionName=this.normalize(injectionName);if(fullName.indexOf(":")===-1){return this.typeInjection(fullName,property,normalizedInjectionName)}var normalizedName=this.normalize(fullName);if(this.cache[normalizedName]){throw new Error("Attempted to register an injection for a type that has already been looked up. ('"+normalizedName+"', '"+property+"', '"+injectionName+"')")}addInjection(this.injections,normalizedName,property,normalizedInjectionName)},factoryTypeInjection:function(type,property,fullName){if(this.parent){illegalChildOperation("factoryTypeInjection")}addTypeInjection(this.factoryTypeInjections,type,property,this.normalize(fullName))},factoryInjection:function(fullName,property,injectionName){if(this.parent){illegalChildOperation("injection")}var normalizedName=this.normalize(fullName);var normalizedInjectionName=this.normalize(injectionName);validateFullName(injectionName);if(fullName.indexOf(":")===-1){return this.factoryTypeInjection(normalizedName,property,normalizedInjectionName)}if(this.factoryCache[normalizedName]){throw new Error("Attempted to register a factoryInjection for a type that has already "+"been looked up. ('"+normalizedName+"', '"+property+"', '"+injectionName+"')")}addInjection(this.factoryInjections,normalizedName,property,normalizedInjectionName)},destroy:function(){for(var i=0,length=this.children.length;i1?"they":"it")+" could not be found")}}var defaultControllersComputedProperty=computed(function(){var controller=this;return{needs:get(controller,"needs"),container:get(controller,"container"),unknownProperty:function(controllerName){var needs=this.needs,dependency,i,l;for(i=0,l=needs.length;i0){if(this.container){verifyNeedsDependencies(this,this.container,needs)}get(this,"controllers")}this._super.apply(this,arguments)},controllerFor:function(controllerName){return controllerFor(get(this,"container"),controllerName)},controllers:defaultControllersComputedProperty});__exports__["default"]=ControllerMixin});define("ember-application/system/application",["ember-metal","ember-metal/property_get","ember-metal/property_set","ember-runtime/system/lazy_load","ember-application/system/dag","ember-runtime/system/namespace","ember-runtime/mixins/deferred","ember-application/system/resolver","ember-metal/platform","ember-metal/run_loop","ember-metal/utils","container/container","ember-runtime/controllers/controller","ember-metal/enumerable_utils","ember-runtime/controllers/object_controller","ember-runtime/controllers/array_controller","ember-views/system/event_dispatcher","ember-views/system/jquery","ember-routing/system/route","ember-routing/system/router","ember-routing/location/hash_location","ember-routing/location/history_location","ember-routing/location/auto_location","ember-routing/location/none_location","ember-routing/system/cache","ember-metal/core","ember-handlebars-compiler","exports"],function(__dependency1__,__dependency2__,__dependency3__,__dependency4__,__dependency5__,__dependency6__,__dependency7__,__dependency8__,__dependency9__,__dependency10__,__dependency11__,__dependency12__,__dependency13__,__dependency14__,__dependency15__,__dependency16__,__dependency17__,__dependency18__,__dependency19__,__dependency20__,__dependency21__,__dependency22__,__dependency23__,__dependency24__,__dependency25__,__dependency26__,__dependency27__,__exports__){"use strict";var Ember=__dependency1__["default"];var get=__dependency2__.get;var set=__dependency3__.set;var runLoadHooks=__dependency4__.runLoadHooks;var DAG=__dependency5__["default"];var Namespace=__dependency6__["default"];var DeferredMixin=__dependency7__["default"];var DefaultResolver=__dependency8__["default"];var create=__dependency9__.create;var run=__dependency10__["default"];var canInvoke=__dependency11__.canInvoke;var Container=__dependency12__["default"];var Controller=__dependency13__["default"];var EnumerableUtils=__dependency14__["default"];var ObjectController=__dependency15__["default"];var ArrayController=__dependency16__["default"];var EventDispatcher=__dependency17__["default"];var jQuery=__dependency18__["default"];var Route=__dependency19__["default"];var Router=__dependency20__["default"];var HashLocation=__dependency21__["default"];var HistoryLocation=__dependency22__["default"];var AutoLocation=__dependency23__["default"];var NoneLocation=__dependency24__["default"];var BucketCache=__dependency25__["default"];var K=__dependency26__.K;var EmberHandlebars=__dependency27__["default"];var ContainerDebugAdapter;var Application=Namespace.extend(DeferredMixin,{_suppressDeferredDeprecation:true,rootElement:"body",eventDispatcher:null,customEvents:null,_readinessDeferrals:1,init:function(){if(!this.$){this.$=jQuery}this.__container__=this.buildContainer();this.Router=this.defaultRouter();this._super();this.scheduleInitialize();Ember.libraries.registerCoreLibrary("Handlebars"+(EmberHandlebars.compile?"":"-runtime"),EmberHandlebars.VERSION);Ember.libraries.registerCoreLibrary("jQuery",jQuery().jquery);if(Ember.LOG_VERSION){Ember.LOG_VERSION=false;var nameLengths=EnumerableUtils.map(Ember.libraries,function(item){return get(item,"name.length")});var maxNameLength=Math.max.apply(this,nameLengths);Ember.libraries.each(function(name,version){var spaces=new Array(maxNameLength-name.length+1).join(" ")})}},buildContainer:function(){var container=this.__container__=Application.buildContainer(this);
+return container},defaultRouter:function(){if(this.Router===false){return}var container=this.__container__;if(this.Router){container.unregister("router:main");container.register("router:main",this.Router)}return container.lookupFactory("router:main")},scheduleInitialize:function(){var self=this;if(!this.$||this.$.isReady){run.schedule("actions",self,"_initialize")}else{this.$().ready(function runInitialize(){run(self,"_initialize")})}},deferReadiness:function(){this._readinessDeferrals++},advanceReadiness:function(){this._readinessDeferrals--;if(this._readinessDeferrals===0){run.once(this,this.didBecomeReady)}},register:function(){var container=this.__container__;container.register.apply(container,arguments)},inject:function(){var container=this.__container__;container.injection.apply(container,arguments)},initialize:function(){},_initialize:function(){if(this.isDestroyed){return}if(this.Router){var container=this.__container__;container.unregister("router:main");container.register("router:main",this.Router)}this.runInitializers();runLoadHooks("application",this);this.advanceReadiness();return this},reset:function(){this._readinessDeferrals=1;function handleReset(){var router=this.__container__.lookup("router:main");router.reset();run(this.__container__,"destroy");this.buildContainer();run.schedule("actions",this,function(){this._initialize()})}run.join(this,handleReset)},runInitializers:function(){var initializers=get(this.constructor,"initializers");var container=this.__container__;var graph=new DAG;var namespace=this;var name,initializer;for(name in initializers){initializer=initializers[name];graph.addEdges(initializer.name,initializer.initialize,initializer.before,initializer.after)}graph.topsort(function(vertex){var initializer=vertex.value;initializer(container,namespace)})},didBecomeReady:function(){this.setupEventDispatcher();this.ready();this.startRouting();if(!Ember.testing){Ember.Namespace.processAll();Ember.BOOTED=true}this.resolve(this)},setupEventDispatcher:function(){var customEvents=get(this,"customEvents");var rootElement=get(this,"rootElement");var dispatcher=this.__container__.lookup("event_dispatcher:main");set(this,"eventDispatcher",dispatcher);dispatcher.setup(customEvents,rootElement)},startRouting:function(){var router=this.__container__.lookup("router:main");if(!router){return}router.startRouting()},handleURL:function(url){var router=this.__container__.lookup("router:main");router.handleURL(url)},ready:K,resolver:null,Resolver:null,willDestroy:function(){Ember.BOOTED=false;this.__container__.lookup("router:main").reset();this.__container__.destroy()},initializer:function(options){this.constructor.initializer(options)},then:function(){this._super.apply(this,arguments)}});Application.reopenClass({initializers:{},initializer:function(initializer){if(this.superclass.initializers!==undefined&&this.superclass.initializers===this.initializers){this.reopenClass({initializers:create(this.initializers)})}this.initializers[initializer.name]=initializer},buildContainer:function(namespace){var container=new Container;container.set=set;container.resolver=resolverFor(namespace);container.normalizeFullName=container.resolver.normalize;container.describe=container.resolver.describe;container.makeToString=container.resolver.makeToString;container.optionsForType("component",{singleton:false});container.optionsForType("view",{singleton:false});container.optionsForType("template",{instantiate:false});container.optionsForType("helper",{instantiate:false});container.register("application:main",namespace,{instantiate:false});container.register("controller:basic",Controller,{instantiate:false});container.register("controller:object",ObjectController,{instantiate:false});container.register("controller:array",ArrayController,{instantiate:false});container.register("route:basic",Route,{instantiate:false});container.register("event_dispatcher:main",EventDispatcher);container.register("router:main",Router);container.injection("router:main","namespace","application:main");container.register("location:auto",AutoLocation);container.register("location:hash",HashLocation);container.register("location:history",HistoryLocation);container.register("location:none",NoneLocation);container.injection("controller","target","router:main");container.injection("controller","namespace","application:main");container.register("-bucket-cache:main",BucketCache);container.injection("router","_bucketCache","-bucket-cache:main");container.injection("route","_bucketCache","-bucket-cache:main");container.injection("controller","_bucketCache","-bucket-cache:main");container.injection("route","router","router:main");container.injection("location","rootURL","-location-setting:root-url");container.register("resolver-for-debugging:main",container.resolver.__resolver__,{instantiate:false});container.injection("container-debug-adapter:main","resolver","resolver-for-debugging:main");container.injection("data-adapter:main","containerDebugAdapter","container-debug-adapter:main");if(!ContainerDebugAdapter){ContainerDebugAdapter=requireModule("ember-extension-support/container_debug_adapter")["default"]}container.register("container-debug-adapter:main",ContainerDebugAdapter);return container}});function resolverFor(namespace){if(namespace.get("resolver")){}var ResolverClass=namespace.get("resolver")||namespace.get("Resolver")||DefaultResolver;var resolver=ResolverClass.create({namespace:namespace});function resolve(fullName){return resolver.resolve(fullName)}resolve.describe=function(fullName){return resolver.lookupDescription(fullName)};resolve.makeToString=function(factory,fullName){return resolver.makeToString(factory,fullName)};resolve.normalize=function(fullName){if(resolver.normalize){return resolver.normalize(fullName)}else{return fullName}};resolve.__resolver__=resolver;return resolve}__exports__["default"]=Application});define("ember-application/system/dag",["ember-metal/error","exports"],function(__dependency1__,__exports__){"use strict";var EmberError=__dependency1__["default"];function visit(vertex,fn,visited,path){var name=vertex.name;var vertices=vertex.incoming;var names=vertex.incomingNames;var len=names.length;var i;if(!visited){visited={}}if(!path){path=[]}if(visited.hasOwnProperty(name)){return}path.push(name);visited[name]=true;for(i=0;i-1){result=result.replace(/\.(.)/g,function(m){return m.charAt(1).toUpperCase()})}if(name.indexOf("_")>-1){result=result.replace(/_(.)/g,function(m){return m.charAt(1).toUpperCase()})}return type+":"+result}else{return fullName}},resolve:function(fullName){var parsedName=this.parseName(fullName);var resolveMethodName=parsedName.resolveMethodName;var resolved;if(!(parsedName.name&&parsedName.type)){throw new TypeError("Invalid fullName: `"+fullName+"`, must be of the form `type:name` ")}if(this[resolveMethodName]){resolved=this[resolveMethodName](parsedName)}if(!resolved){resolved=this.resolveOther(parsedName)}if(parsedName.root&&parsedName.root.LOG_RESOLVER){this._logLookup(resolved,parsedName)}return resolved},parseName:function(fullName){return this._parseNameCache[fullName]||(this._parseNameCache[fullName]=this._parseName(fullName))},_parseName:function(fullName){var nameParts=fullName.split(":");var type=nameParts[0],fullNameWithoutType=nameParts[1];var name=fullNameWithoutType;var namespace=get(this,"namespace");var root=namespace;if(type!=="template"&&name.indexOf("/")!==-1){var parts=name.split("/");name=parts[parts.length-1];var namespaceName=capitalize(parts.slice(0,-1).join("."));root=Namespace.byName(namespaceName)}return{fullName:fullName,type:type,fullNameWithoutType:fullNameWithoutType,name:name,root:root,resolveMethodName:"resolve"+classify(type)}},lookupDescription:function(fullName){var parsedName=this.parseName(fullName);if(parsedName.type==="template"){return"template at "+parsedName.fullNameWithoutType.replace(/\./g,"/")}var description=parsedName.root+"."+classify(parsedName.name);if(parsedName.type!=="model"){description+=classify(parsedName.type)}return description},makeToString:function(factory,fullName){return factory.toString()},useRouterNaming:function(parsedName){parsedName.name=parsedName.name.replace(/\./g,"_");if(parsedName.name==="basic"){parsedName.name=""}},resolveTemplate:function(parsedName){var templateName=parsedName.fullNameWithoutType.replace(/\./g,"/");if(Ember.TEMPLATES[templateName]){return Ember.TEMPLATES[templateName]}templateName=decamelize(templateName);if(Ember.TEMPLATES[templateName]){return Ember.TEMPLATES[templateName]}},resolveView:function(parsedName){this.useRouterNaming(parsedName);return this.resolveOther(parsedName)},resolveController:function(parsedName){this.useRouterNaming(parsedName);return this.resolveOther(parsedName)},resolveRoute:function(parsedName){this.useRouterNaming(parsedName);return this.resolveOther(parsedName)},resolveModel:function(parsedName){var className=classify(parsedName.name);var factory=get(parsedName.root,className);if(factory){return factory}},resolveHelper:function(parsedName){return this.resolveOther(parsedName)||EmberHandlebars.helpers[parsedName.fullNameWithoutType]},resolveOther:function(parsedName){var className=classify(parsedName.name)+classify(parsedName.type);var factory=get(parsedName.root,className);if(factory){return factory}},_logLookup:function(found,parsedName){var symbol,padding;if(found){symbol="[✓]"}else{symbol="[ ]"}if(parsedName.fullName.length>60){padding="."}else{padding=new Array(60-parsedName.fullName.length).join(".")}Logger.info(symbol,parsedName.fullName,padding,this.lookupDescription(parsedName.fullName))}})});define("ember-extension-support",["ember-metal/core","ember-extension-support/data_adapter","ember-extension-support/container_debug_adapter"],function(__dependency1__,__dependency2__,__dependency3__){"use strict";var Ember=__dependency1__["default"];var DataAdapter=__dependency2__["default"];var ContainerDebugAdapter=__dependency3__["default"];Ember.DataAdapter=DataAdapter;Ember.ContainerDebugAdapter=ContainerDebugAdapter});define("ember-extension-support/container_debug_adapter",["ember-metal/core","ember-runtime/system/native_array","ember-metal/utils","ember-runtime/system/string","ember-runtime/system/namespace","ember-runtime/system/object","exports"],function(__dependency1__,__dependency2__,__dependency3__,__dependency4__,__dependency5__,__dependency6__,__exports__){"use strict";var Ember=__dependency1__["default"];var emberA=__dependency2__.A;var typeOf=__dependency3__.typeOf;var dasherize=__dependency4__.dasherize;var classify=__dependency4__.classify;var Namespace=__dependency5__["default"];var EmberObject=__dependency6__["default"];__exports__["default"]=EmberObject.extend({container:null,resolver:null,canCatalogEntriesByType:function(type){if(type==="model"||type==="template")return false;return true},catalogEntriesByType:function(type){var namespaces=emberA(Namespace.NAMESPACES),types=emberA(),self=this;var typeSuffixRegex=new RegExp(classify(type)+"$");namespaces.forEach(function(namespace){if(namespace!==Ember){for(var key in namespace){if(!namespace.hasOwnProperty(key)){continue}if(typeSuffixRegex.test(key)){var klass=namespace[key];if(typeOf(klass)==="class"){types.push(dasherize(key.replace(typeSuffixRegex,"")))}}}}});return types}})});define("ember-extension-support/data_adapter",["ember-metal/core","ember-metal/property_get","ember-metal/run_loop","ember-runtime/system/string","ember-runtime/system/namespace","ember-runtime/system/object","ember-runtime/system/native_array","ember-application/system/application","exports"],function(__dependency1__,__dependency2__,__dependency3__,__dependency4__,__dependency5__,__dependency6__,__dependency7__,__dependency8__,__exports__){"use strict";var Ember=__dependency1__["default"];var get=__dependency2__.get;var run=__dependency3__["default"];var dasherize=__dependency4__.dasherize;var Namespace=__dependency5__["default"];var EmberObject=__dependency6__["default"];var emberA=__dependency7__.A;var Application=__dependency8__["default"];__exports__["default"]=EmberObject.extend({init:function(){this._super();this.releaseMethods=emberA()},container:null,containerDebugAdapter:undefined,attributeLimit:3,releaseMethods:emberA(),getFilters:function(){return emberA()},watchModelTypes:function(typesAdded,typesUpdated){var modelTypes=this.getModelTypes(),self=this,typesToSend,releaseMethods=emberA();typesToSend=modelTypes.map(function(type){var klass=type.klass;var wrapped=self.wrapModelType(klass,type.name);releaseMethods.push(self.observeModelType(klass,typesUpdated));return wrapped});typesAdded(typesToSend);var release=function(){releaseMethods.forEach(function(fn){fn()});self.releaseMethods.removeObject(release)};this.releaseMethods.pushObject(release);return release},_nameToClass:function(type){if(typeof type==="string"){type=this.container.lookupFactory("model:"+type)}return type},watchRecords:function(type,recordsAdded,recordsUpdated,recordsRemoved){var self=this,releaseMethods=emberA(),records=this.getRecords(type),release;var recordUpdated=function(updatedRecord){recordsUpdated([updatedRecord])};var recordsToSend=records.map(function(record){releaseMethods.push(self.observeRecord(record,recordUpdated));return self.wrapRecord(record)});var contentDidChange=function(array,idx,removedCount,addedCount){for(var i=idx;i-1}else{return content==selection}}).property("content","parentView.selection"),labelPathDidChange:observer("parentView.optionLabelPath",function(){var labelPath=get(this,"parentView.optionLabelPath");if(!labelPath){return}defineProperty(this,"label",computed(function(){return get(this,labelPath)}).property(labelPath))}),valuePathDidChange:observer("parentView.optionValuePath",function(){var valuePath=get(this,"parentView.optionValuePath");if(!valuePath){return}defineProperty(this,"value",computed(function(){return get(this,valuePath)}).property(valuePath))})});var SelectOptgroup=CollectionView.extend({instrumentDisplay:"Ember.SelectOptgroup",tagName:"optgroup",attributeBindings:["label"],selectionBinding:"parentView.selection",multipleBinding:"parentView.multiple",optionLabelPathBinding:"parentView.optionLabelPath",optionValuePathBinding:"parentView.optionValuePath",itemViewClassBinding:"parentView.optionView"});var Select=View.extend({instrumentDisplay:"Ember.Select",tagName:"select",classNames:["ember-select"],defaultTemplate:Ember.Handlebars.template(function anonymous(Handlebars,depth0,helpers,partials,data){this.compilerInfo=[4,">= 1.0.0"];helpers=this.merge(helpers,Ember.Handlebars.helpers);data=data||{};var buffer="",stack1,escapeExpression=this.escapeExpression,self=this;function program1(depth0,data){var buffer="",stack1;data.buffer.push('");return buffer}function program3(depth0,data){var stack1;stack1=helpers.each.call(depth0,"view.groupedContent",{hash:{},hashTypes:{},hashContexts:{},inverse:self.noop,fn:self.program(4,program4,data),contexts:[depth0],types:["ID"],data:data});if(stack1||stack1===0){data.buffer.push(stack1)}else{data.buffer.push("")}}function program4(depth0,data){data.buffer.push(escapeExpression(helpers.view.call(depth0,"view.groupView",{hash:{content:"content",label:"label"},hashTypes:{content:"ID",label:"ID"},hashContexts:{content:depth0,label:depth0},contexts:[depth0],types:["ID"],data:data})))}function program6(depth0,data){var stack1;stack1=helpers.each.call(depth0,"view.content",{hash:{},hashTypes:{},hashContexts:{},inverse:self.noop,fn:self.program(7,program7,data),contexts:[depth0],types:["ID"],data:data});if(stack1||stack1===0){data.buffer.push(stack1)}else{data.buffer.push("")}}function program7(depth0,data){data.buffer.push(escapeExpression(helpers.view.call(depth0,"view.optionView",{hash:{content:""},hashTypes:{content:"ID"},hashContexts:{content:depth0},contexts:[depth0],types:["ID"],data:data})))}stack1=helpers["if"].call(depth0,"view.prompt",{hash:{},hashTypes:{},hashContexts:{},inverse:self.noop,fn:self.program(1,program1,data),contexts:[depth0],types:["ID"],data:data});if(stack1||stack1===0){data.buffer.push(stack1)}stack1=helpers["if"].call(depth0,"view.optionGroupPath",{hash:{},hashTypes:{},hashContexts:{},inverse:self.program(6,program6,data),fn:self.program(3,program3,data),contexts:[depth0],types:["ID"],data:data});if(stack1||stack1===0){data.buffer.push(stack1)}return buffer}),attributeBindings:["multiple","disabled","tabindex","name","required","autofocus","form","size"],multiple:false,disabled:false,required:false,content:null,selection:null,value:computed(function(key,value){if(arguments.length===2){return value}var valuePath=get(this,"optionValuePath").replace(/^content\.?/,"");return valuePath?get(this,"selection."+valuePath):get(this,"selection")}).property("selection"),prompt:null,optionLabelPath:"content",optionValuePath:"content",optionGroupPath:null,groupView:SelectOptgroup,groupedContent:computed(function(){var groupPath=get(this,"optionGroupPath");var groupedContent=emberA();var content=get(this,"content")||[];forEach(content,function(item){var label=get(item,groupPath);if(get(groupedContent,"lastObject.label")!==label){groupedContent.pushObject({label:label,content:emberA()})}get(groupedContent,"lastObject.content").push(item)});return groupedContent}).property("optionGroupPath","content.@each"),optionView:SelectOption,_change:function(){if(get(this,"multiple")){this._changeMultiple()}else{this._changeSingle()}},selectionDidChange:observer("selection.@each",function(){var selection=get(this,"selection");if(get(this,"multiple")){if(!isArray(selection)){set(this,"selection",emberA([selection]));return}this._selectionDidChangeMultiple()}else{this._selectionDidChangeSingle()}}),valueDidChange:observer("value",function(){var content=get(this,"content"),value=get(this,"value"),valuePath=get(this,"optionValuePath").replace(/^content\.?/,""),selectedValue=valuePath?get(this,"selection."+valuePath):get(this,"selection"),selection;if(value!==selectedValue){selection=content?content.find(function(obj){return value===(valuePath?get(obj,valuePath):obj)}):null;this.set("selection",selection)}}),_triggerChange:function(){var selection=get(this,"selection");var value=get(this,"value");if(!isNone(selection)){this.selectionDidChange()}if(!isNone(value)){this.valueDidChange()}this._change()},_changeSingle:function(){var selectedIndex=this.$()[0].selectedIndex,content=get(this,"content"),prompt=get(this,"prompt");if(!content||!get(content,"length")){return}if(prompt&&selectedIndex===0){set(this,"selection",null);return}if(prompt){selectedIndex-=1}set(this,"selection",content.objectAt(selectedIndex))},_changeMultiple:function(){var options=this.$("option:selected"),prompt=get(this,"prompt"),offset=prompt?1:0,content=get(this,"content"),selection=get(this,"selection");if(!content){return}if(options){var selectedIndexes=options.map(function(){return this.index-offset}).toArray();var newSelection=content.objectsAt(selectedIndexes);if(isArray(selection)){replace(selection,0,get(selection,"length"),newSelection)}else{set(this,"selection",newSelection)}}},_selectionDidChangeSingle:function(){var el=this.get("element");if(!el){return}var content=get(this,"content"),selection=get(this,"selection"),selectionIndex=content?indexOf(content,selection):-1,prompt=get(this,"prompt");if(prompt){selectionIndex+=1}if(el){el.selectedIndex=selectionIndex}},_selectionDidChangeMultiple:function(){var content=get(this,"content"),selection=get(this,"selection"),selectedIndexes=content?indexesOf(content,selection):[-1],prompt=get(this,"prompt"),offset=prompt?1:0,options=this.$("option"),adjusted;if(options){options.each(function(){adjusted=this.index>-1?this.index-offset:-1;this.selected=indexOf(selectedIndexes,adjusted)>-1})}},init:function(){this._super();this.on("didInsertElement",this,this._triggerChange);this.on("change",this,this._change)}});__exports__["default"]=Select;__exports__.Select=Select;__exports__.SelectOption=SelectOption;__exports__.SelectOptgroup=SelectOptgroup});define("ember-handlebars/controls/text_area",["ember-metal/property_get","ember-views/views/component","ember-handlebars/controls/text_support","ember-metal/mixin","exports"],function(__dependency1__,__dependency2__,__dependency3__,__dependency4__,__exports__){"use strict";var get=__dependency1__.get;var Component=__dependency2__["default"];var TextSupport=__dependency3__["default"];var observer=__dependency4__.observer;__exports__["default"]=Component.extend(TextSupport,{instrumentDisplay:"{{textarea}}",classNames:["ember-text-area"],tagName:"textarea",attributeBindings:["rows","cols","name","selectionEnd","selectionStart","wrap"],rows:null,cols:null,_updateElementValue:observer("value",function(){var value=get(this,"value"),$el=this.$();if($el&&value!==$el.val()){$el.val(value)}}),init:function(){this._super();this.on("didInsertElement",this,this._updateElementValue)}})});define("ember-handlebars/controls/text_field",["ember-metal/property_get","ember-metal/property_set","ember-views/views/component","ember-handlebars/controls/text_support","exports"],function(__dependency1__,__dependency2__,__dependency3__,__dependency4__,__exports__){"use strict";var get=__dependency1__.get;var set=__dependency2__.set;var Component=__dependency3__["default"];var TextSupport=__dependency4__["default"];__exports__["default"]=Component.extend(TextSupport,{instrumentDisplay:'{{input type="text"}}',classNames:["ember-text-field"],tagName:"input",attributeBindings:["type","value","size","pattern","name","min","max","accept","autocomplete","autosave","formaction","formenctype","formmethod","formnovalidate","formtarget","height","inputmode","list","multiple","step","width"],value:"",type:"text",size:null,pattern:null,min:null,max:null})});define("ember-handlebars/controls/text_support",["ember-metal/property_get","ember-metal/property_set","ember-metal/mixin","ember-runtime/mixins/target_action_support","exports"],function(__dependency1__,__dependency2__,__dependency3__,__dependency4__,__exports__){"use strict";var get=__dependency1__.get;var set=__dependency2__.set;var Mixin=__dependency3__.Mixin;var TargetActionSupport=__dependency4__["default"];var TextSupport=Mixin.create(TargetActionSupport,{value:"",attributeBindings:["placeholder","disabled","maxlength","tabindex","readonly","autofocus","form","selectionDirection","spellcheck","required","title","autocapitalize","autocorrect"],placeholder:null,disabled:false,maxlength:null,init:function(){this._super();this.on("focusOut",this,this._elementValueDidChange);this.on("change",this,this._elementValueDidChange);this.on("paste",this,this._elementValueDidChange);this.on("cut",this,this._elementValueDidChange);this.on("input",this,this._elementValueDidChange);this.on("keyUp",this,this.interpretKeyEvents)},action:null,onEvent:"enter",bubbles:false,interpretKeyEvents:function(event){var map=TextSupport.KEY_EVENTS;var method=map[event.keyCode];this._elementValueDidChange();if(method){return this[method](event)}},_elementValueDidChange:function(){set(this,"value",this.$().val())},insertNewline:function(event){sendAction("enter",this,event);sendAction("insert-newline",this,event)},cancel:function(event){sendAction("escape-press",this,event)},focusIn:function(event){sendAction("focus-in",this,event)},focusOut:function(event){sendAction("focus-out",this,event)},keyPress:function(event){sendAction("key-press",this,event)}});TextSupport.KEY_EVENTS={13:"insertNewline",27:"cancel"};function sendAction(eventName,view,event){var action=get(view,eventName),on=get(view,"onEvent"),value=get(view,"value");if(on===eventName||on==="keyPress"&&eventName==="key-press"){view.sendAction("action",value)}view.sendAction(eventName,value);if(action||on===eventName){if(!get(view,"bubbles")){event.stopPropagation()}}}__exports__["default"]=TextSupport});define("ember-handlebars/ext",["ember-metal/core","ember-runtime/system/string","ember-handlebars-compiler","ember-metal/property_get","ember-metal/binding","ember-metal/error","ember-metal/mixin","ember-metal/is_empty","ember-metal/cache","exports"],function(__dependency1__,__dependency2__,__dependency3__,__dependency4__,__dependency5__,__dependency6__,__dependency7__,__dependency8__,__dependency9__,__exports__){"use strict";var Ember=__dependency1__["default"];var fmt=__dependency2__.fmt;var EmberHandlebars=__dependency3__["default"];var helpers=EmberHandlebars.helpers;var get=__dependency4__.get;var isGlobalPath=__dependency5__.isGlobalPath;var EmberError=__dependency6__["default"];var IS_BINDING=__dependency7__.IS_BINDING;var resolveHelper,SimpleHandlebarsView;var isEmpty=__dependency8__["default"];var slice=[].slice,originalTemplate=EmberHandlebars.template;var Cache=__dependency9__["default"];var FIRST_SEGMENT_CACHE=new Cache(1e3,function(path){return path.split(".",1)[0]});function normalizePath(root,path,data){var keywords=data&&data.keywords||{};var keyword,isKeyword;keyword=FIRST_SEGMENT_CACHE.get(path);if(keywords.hasOwnProperty(keyword)){root=keywords[keyword];isKeyword=true;if(path===keyword){path=""}else{path=path.substr(keyword.length+1)}}return{root:root,path:path,isKeyword:isKeyword}}function handlebarsGet(root,path,options){var data=options&&options.data;var normalizedPath=normalizePath(root,path,data);var value;root=normalizedPath.root;path=normalizedPath.path;value=get(root,path);if(isGlobalPath(path)){if(value===undefined&&root!==Ember.lookup){root=Ember.lookup;value=get(root,path)}if(root===Ember.lookup||root===null){}}return value}function getEscaped(root,path,options){var result=handlebarsGet(root,path,options);if(result===null||result===undefined){result=""}else if(!(result instanceof Handlebars.SafeString)){result=String(result)}if(!options.hash.unescaped){result=Handlebars.Utils.escapeExpression(result)}return result}__exports__.getEscaped=getEscaped;function resolveParams(context,params,options){var resolvedParams=[],types=options.types,param,type;for(var i=0,l=params.length;i2){options.data.isUnbound=true;helper=resolveHelper(container,property)||helpers.helperMissing;out=helper.apply(ctx,slice.call(arguments,1));delete options.data.isUnbound;return out}context=fn.contexts&&fn.contexts.length?fn.contexts[0]:ctx;return handlebarsGet(context,property,fn)}});define("ember-handlebars/helpers/view",["ember-metal/core","ember-runtime/system/object","ember-metal/property_get","ember-metal/property_set","ember-metal/mixin","ember-views/system/jquery","ember-views/views/view","ember-metal/binding","ember-metal/merge","ember-handlebars/ext","ember-runtime/system/string","exports"],function(__dependency1__,__dependency2__,__dependency3__,__dependency4__,__dependency5__,__dependency6__,__dependency7__,__dependency8__,__dependency9__,__dependency10__,__dependency11__,__exports__){"use strict";var Ember=__dependency1__["default"];var EmberObject=__dependency2__["default"];var get=__dependency3__.get;var set=__dependency4__.set;var IS_BINDING=__dependency5__.IS_BINDING;var jQuery=__dependency6__["default"];var View=__dependency7__["default"];var isGlobalPath=__dependency8__.isGlobalPath;var merge=__dependency9__["default"];var normalizePath=__dependency10__.normalizePath;var handlebarsGet=__dependency10__.handlebarsGet;var EmberString=__dependency11__["default"];var LOWERCASE_A_Z=/^[a-z]/,VIEW_PREFIX=/^view\./;function makeBindings(thisContext,options){var hash=options.hash,hashType=options.hashTypes;for(var prop in hash){if(hashType[prop]==="ID"){var value=hash[prop];if(IS_BINDING.test(prop)){}else{hash[prop+"Binding"]=value;hashType[prop+"Binding"]="STRING";delete hash[prop];delete hashType[prop]}}}if(hash.hasOwnProperty("idBinding")){options.silenceGlobalDeprecation=true;hash.id=handlebarsGet(thisContext,hash.idBinding,options);hashType.id="STRING";delete hash.idBinding;delete hashType.idBinding}}var ViewHelper=EmberObject.create({propertiesFromHTMLOptions:function(options){var hash=options.hash,data=options.data;var extensions={},classes=hash["class"],dup=false;if(hash.id){extensions.elementId=hash.id;dup=true}if(hash.tag){extensions.tagName=hash.tag;dup=true}if(classes){classes=classes.split(" ");extensions.classNames=classes;dup=true}if(hash.classBinding){extensions.classNameBindings=hash.classBinding.split(" ");dup=true}if(hash.classNameBindings){if(extensions.classNameBindings===undefined)extensions.classNameBindings=[];extensions.classNameBindings=extensions.classNameBindings.concat(hash.classNameBindings.split(" "));dup=true}if(hash.attributeBindings){extensions.attributeBindings=null;dup=true}if(dup){hash=merge({},hash);delete hash.id;delete hash.tag;delete hash["class"];delete hash.classBinding}var path;for(var prop in hash){if(!hash.hasOwnProperty(prop)){continue}if(IS_BINDING.test(prop)&&typeof hash[prop]==="string"){path=this.contextualizeBindingPath(hash[prop],data);if(path){hash[prop]=path}}}if(extensions.classNameBindings){for(var b in extensions.classNameBindings){var full=extensions.classNameBindings[b];if(typeof full==="string"){var parsedPath=View._parsePropertyPath(full);path=this.contextualizeBindingPath(parsedPath.path,data);if(path){extensions.classNameBindings[b]=path+parsedPath.classNames}}}}return merge(hash,extensions)},contextualizeBindingPath:function(path,data){var normalized=normalizePath(null,path,data);if(normalized.isKeyword){return"templateData.keywords."+path}else if(isGlobalPath(path)){return null}else if(path==="this"||path===""){return"_parentView.context"}else{return"_parentView.context."+path}},helper:function(thisContext,path,options){var data=options.data,fn=options.fn,newView;makeBindings(thisContext,options);if("string"===typeof path){var lookup;if(options.types[0]==="STRING"&&LOWERCASE_A_Z.test(path)&&!VIEW_PREFIX.test(path)){lookup=path}else{options.silenceGlobalDeprecation=true;newView=handlebarsGet(thisContext,path,options);if(typeof newView==="string"){lookup=newView}}if(lookup){newView=data.view.container.lookupFactory("view:"+lookup)}}else{newView=path}var viewOptions=this.propertiesFromHTMLOptions(options,thisContext);var currentView=data.view;viewOptions.templateData=data;var newViewProto=newView.proto?newView.proto():newView;if(fn){viewOptions.template=fn}if(!newViewProto.controller&&!newViewProto.controllerBinding&&!viewOptions.controller&&!viewOptions.controllerBinding){viewOptions._context=thisContext}if(options.helperName){viewOptions.helperName=options.helperName}currentView.appendChild(newView,viewOptions)}});__exports__.ViewHelper=ViewHelper;function viewHelper(path,options){if(path&&path.data&&path.data.isRenderData){options=path;if(options.data&&options.data.view&&options.data.view.container){path=options.data.view.container.lookupFactory("view:toplevel")}else{path=View}}options.helperName=options.helperName||"view";return ViewHelper.helper(this,path,options)}__exports__.viewHelper=viewHelper});define("ember-handlebars/helpers/yield",["ember-metal/core","ember-metal/property_get","exports"],function(__dependency1__,__dependency2__,__exports__){"use strict";var Ember=__dependency1__["default"];var get=__dependency2__.get;__exports__["default"]=function yieldHelper(options){var view=options.data.view;while(view&&!get(view,"layout")){if(view._contextView){view=view._contextView}else{view=get(view,"_parentView")}}view._yield(this,options)}});define("ember-handlebars/loader",["ember-handlebars/component_lookup","ember-views/system/jquery","ember-metal/error","ember-runtime/system/lazy_load","ember-handlebars-compiler","exports"],function(__dependency1__,__dependency2__,__dependency3__,__dependency4__,__dependency5__,__exports__){"use strict";var ComponentLookup=__dependency1__["default"];var jQuery=__dependency2__["default"];var EmberError=__dependency3__["default"];var onLoad=__dependency4__.onLoad;var EmberHandlebars=__dependency5__["default"];function bootstrap(ctx){var selectors='script[type="text/x-handlebars"], script[type="text/x-raw-handlebars"]';jQuery(selectors,ctx).each(function(){var script=jQuery(this);var compile=script.attr("type")==="text/x-raw-handlebars"?jQuery.proxy(Handlebars.compile,Handlebars):jQuery.proxy(EmberHandlebars.compile,EmberHandlebars),templateName=script.attr("data-template-name")||script.attr("id")||"application",template=compile(script.html());if(Ember.TEMPLATES[templateName]!==undefined){throw new EmberError('Template named "'+templateName+'" already exists.')}Ember.TEMPLATES[templateName]=template;script.remove()})}function _bootstrap(){bootstrap(jQuery(document))}function registerComponentLookup(container){container.register("component-lookup:main",ComponentLookup)}onLoad("Ember.Application",function(Application){Application.initializer({name:"domTemplates",initialize:_bootstrap});Application.initializer({name:"registerComponentLookup",after:"domTemplates",initialize:registerComponentLookup})});__exports__["default"]=bootstrap});define("ember-handlebars/string",["ember-runtime/system/string","exports"],function(__dependency1__,__exports__){"use strict";var EmberStringUtils=__dependency1__["default"];function htmlSafe(str){return new Handlebars.SafeString(str)}EmberStringUtils.htmlSafe=htmlSafe;if(Ember.EXTEND_PROTOTYPES===true||Ember.EXTEND_PROTOTYPES.String){String.prototype.htmlSafe=function(){return htmlSafe(this)}}__exports__["default"]=htmlSafe});define("ember-handlebars/views/handlebars_bound_view",["ember-handlebars-compiler","ember-metal/core","ember-metal/error","ember-metal/property_get","ember-metal/property_set","ember-metal/merge","ember-metal/run_loop","ember-metal/computed","ember-views/views/view","ember-views/views/states","ember-handlebars/views/metamorph_view","ember-handlebars/ext","ember-metal/utils","exports"],function(__dependency1__,__dependency2__,__dependency3__,__dependency4__,__dependency5__,__dependency6__,__dependency7__,__dependency8__,__dependency9__,__dependency10__,__dependency11__,__dependency12__,__dependency13__,__exports__){"use strict";var EmberHandlebars=__dependency1__["default"];var SafeString=EmberHandlebars.SafeString;var Ember=__dependency2__["default"];var K=Ember.K;var Metamorph=requireModule("metamorph");var EmberError=__dependency3__["default"];var get=__dependency4__.get;var set=__dependency5__.set;var merge=__dependency6__["default"];var run=__dependency7__["default"];var computed=__dependency8__.computed;var View=__dependency9__["default"];var cloneStates=__dependency10__.cloneStates;var states=__dependency10__.states;var viewStates=states;var _MetamorphView=__dependency11__["default"];var handlebarsGet=__dependency12__.handlebarsGet;var uuid=__dependency13__.uuid;function SimpleHandlebarsView(path,pathRoot,isEscaped,templateData){this.path=path;this.pathRoot=pathRoot;this.isEscaped=isEscaped;this.templateData=templateData;this[Ember.GUID_KEY]=uuid();this._lastNormalizedValue=undefined;this.morph=Metamorph();this.state="preRender";this.updateId=null;this._parentView=null;this.buffer=null}SimpleHandlebarsView.prototype={isVirtual:true,isView:true,destroy:function(){if(this.updateId){run.cancel(this.updateId);this.updateId=null}if(this._parentView){this._parentView.removeChild(this)}this.morph=null;this.state="destroyed"},propertyWillChange:K,propertyDidChange:K,normalizedValue:function(){var path=this.path;var pathRoot=this.pathRoot;var result,templateData;if(path===""){result=pathRoot}else{templateData=this.templateData;result=handlebarsGet(pathRoot,path,{data:templateData})}return result},renderToBuffer:function(buffer){var string="";string+=this.morph.startTag();string+=this.render();string+=this.morph.endTag();buffer.push(string)},render:function(value){var escape=this.isEscaped;var result=value||this.normalizedValue();this._lastNormalizedValue=result;if(result===null||result===undefined){result=""}else if(!(result instanceof SafeString)){result=String(result)}if(escape){result=Handlebars.Utils.escapeExpression(result)}return result},rerender:function(){switch(this.state){case"preRender":case"destroyed":break;case"inBuffer":throw new EmberError("Something you did tried to replace an {{expression}} before it was inserted into the DOM.");case"hasElement":case"inDOM":this.updateId=run.scheduleOnce("render",this,"update");break}return this},update:function(){this.updateId=null;var value=this.normalizedValue();if(value!==this._lastNormalizedValue){this.morph.html(this.render(value))}},_transitionTo:function(state){this.state=state}};states=cloneStates(viewStates);merge(states._default,{rerenderIfNeeded:K});merge(states.inDOM,{rerenderIfNeeded:function(view){if(view.normalizedValue()!==view._lastNormalizedValue){view.rerender()}}});var _HandlebarsBoundView=_MetamorphView.extend({instrumentName:"boundHandlebars",_states:states,shouldDisplayFunc:null,preserveContext:false,previousContext:null,displayTemplate:null,inverseTemplate:null,path:null,pathRoot:null,normalizedValue:function(){var path=get(this,"path");var pathRoot=get(this,"pathRoot");var valueNormalizer=get(this,"valueNormalizerFunc");var result,templateData;if(path===""){result=pathRoot}else{templateData=get(this,"templateData");result=handlebarsGet(pathRoot,path,{data:templateData})}return valueNormalizer?valueNormalizer(result):result},rerenderIfNeeded:function(){this.currentState.rerenderIfNeeded(this)},render:function(buffer){var escape=get(this,"isEscaped");var shouldDisplay=get(this,"shouldDisplayFunc");var preserveContext=get(this,"preserveContext");var context=get(this,"previousContext");var inverseTemplate=get(this,"inverseTemplate");var displayTemplate=get(this,"displayTemplate");var result=this.normalizedValue();this._lastNormalizedValue=result;if(shouldDisplay(result)){set(this,"template",displayTemplate);if(preserveContext){set(this,"_context",context)}else{if(displayTemplate){set(this,"_context",result)}else{if(result===null||result===undefined){result=""}else if(!(result instanceof SafeString)){result=String(result)}if(escape){result=Handlebars.Utils.escapeExpression(result)}buffer.push(result);return}}}else if(inverseTemplate){set(this,"template",inverseTemplate);if(preserveContext){set(this,"_context",context)}else{set(this,"_context",result)}}else{set(this,"template",function(){return""})}return this._super(buffer)}});__exports__._HandlebarsBoundView=_HandlebarsBoundView;__exports__.SimpleHandlebarsView=SimpleHandlebarsView});define("ember-handlebars/views/metamorph_view",["ember-metal/core","ember-metal/property_get","ember-metal/property_set","ember-views/views/core_view","ember-views/views/view","ember-metal/mixin","ember-metal/run_loop","exports"],function(__dependency1__,__dependency2__,__dependency3__,__dependency4__,__dependency5__,__dependency6__,__dependency7__,__exports__){"use strict";var Ember=__dependency1__["default"];var get=__dependency2__.get;var set=__dependency3__["default"];var CoreView=__dependency4__["default"];var View=__dependency5__["default"];var Mixin=__dependency6__.Mixin;var run=__dependency7__["default"];var Metamorph=requireModule("metamorph");function notifyMutationListeners(){run.once(View,"notifyMutationListeners")}var DOMManager={remove:function(view){view.morph.remove();notifyMutationListeners()},prepend:function(view,html){view.morph.prepend(html);notifyMutationListeners()},after:function(view,html){view.morph.after(html);notifyMutationListeners()},html:function(view,html){view.morph.html(html);notifyMutationListeners()},replace:function(view){var morph=view.morph;view._transitionTo("preRender");run.schedule("render",this,function renderMetamorphView(){if(view.isDestroying){return}view.clearRenderedChildren();var buffer=view.renderToBuffer();view.invokeRecursively(function(view){view.propertyWillChange("element")});view.triggerRecursively("willInsertElement");morph.replaceWith(buffer.string());view._transitionTo("inDOM");view.invokeRecursively(function(view){view.propertyDidChange("element")});view.triggerRecursively("didInsertElement");notifyMutationListeners()})},empty:function(view){view.morph.html("");notifyMutationListeners()}};var _Metamorph=Mixin.create({isVirtual:true,tagName:"",instrumentName:"metamorph",init:function(){this._super();this.morph=Metamorph()},beforeRender:function(buffer){buffer.push(this.morph.startTag());buffer.pushOpeningTag()},afterRender:function(buffer){buffer.pushClosingTag();buffer.push(this.morph.endTag())},createElement:function(){var buffer=this.renderToBuffer();this.outerHTML=buffer.string();this.clearBuffer()},domManager:DOMManager});__exports__._Metamorph=_Metamorph;var _wrapMap=Metamorph._wrapMap;__exports__._wrapMap=_wrapMap;var _MetamorphView=View.extend(_Metamorph);__exports__._MetamorphView=_MetamorphView;var _SimpleMetamorphView=CoreView.extend(_Metamorph);__exports__._SimpleMetamorphView=_SimpleMetamorphView;__exports__["default"]=View.extend(_Metamorph)});define("ember-metal",["ember-metal/core","ember-metal/merge","ember-metal/instrumentation","ember-metal/utils","ember-metal/error","ember-metal/enumerable_utils","ember-metal/cache","ember-metal/platform","ember-metal/array","ember-metal/logger","ember-metal/property_get","ember-metal/events","ember-metal/observer_set","ember-metal/property_events","ember-metal/properties","ember-metal/property_set","ember-metal/map","ember-metal/get_properties","ember-metal/set_properties","ember-metal/watch_key","ember-metal/chains","ember-metal/watch_path","ember-metal/watching","ember-metal/expand_properties","ember-metal/computed","ember-metal/computed_macros","ember-metal/observer","ember-metal/mixin","ember-metal/binding","ember-metal/run_loop","ember-metal/libraries","ember-metal/is_none","ember-metal/is_empty","ember-metal/is_blank","ember-metal/is_present","ember-metal/keys","exports"],function(__dependency1__,__dependency2__,__dependency3__,__dependency4__,__dependency5__,__dependency6__,__dependency7__,__dependency8__,__dependency9__,__dependency10__,__dependency11__,__dependency12__,__dependency13__,__dependency14__,__dependency15__,__dependency16__,__dependency17__,__dependency18__,__dependency19__,__dependency20__,__dependency21__,__dependency22__,__dependency23__,__dependency24__,__dependency25__,__dependency26__,__dependency27__,__dependency28__,__dependency29__,__dependency30__,__dependency31__,__dependency32__,__dependency33__,__dependency34__,__dependency35__,__dependency36__,__exports__){"use strict";var Ember=__dependency1__["default"];var merge=__dependency2__["default"];var instrument=__dependency3__.instrument;var subscribe=__dependency3__.subscribe;var unsubscribe=__dependency3__.unsubscribe;
+var reset=__dependency3__.reset;var generateGuid=__dependency4__.generateGuid;var GUID_KEY=__dependency4__.GUID_KEY;var guidFor=__dependency4__.guidFor;var META_DESC=__dependency4__.META_DESC;var EMPTY_META=__dependency4__.EMPTY_META;var meta=__dependency4__.meta;var getMeta=__dependency4__.getMeta;var setMeta=__dependency4__.setMeta;var metaPath=__dependency4__.metaPath;var inspect=__dependency4__.inspect;var typeOf=__dependency4__.typeOf;var tryCatchFinally=__dependency4__.tryCatchFinally;var isArray=__dependency4__.isArray;var makeArray=__dependency4__.makeArray;var canInvoke=__dependency4__.canInvoke;var tryInvoke=__dependency4__.tryInvoke;var tryFinally=__dependency4__.tryFinally;var wrap=__dependency4__.wrap;var apply=__dependency4__.apply;var applyStr=__dependency4__.applyStr;var EmberError=__dependency5__["default"];var EnumerableUtils=__dependency6__["default"];var Cache=__dependency7__["default"];var create=__dependency8__.create;var platform=__dependency8__.platform;var map=__dependency9__.map;var forEach=__dependency9__.forEach;var filter=__dependency9__.filter;var indexOf=__dependency9__.indexOf;var Logger=__dependency10__["default"];var get=__dependency11__.get;var getWithDefault=__dependency11__.getWithDefault;var normalizeTuple=__dependency11__.normalizeTuple;var _getPath=__dependency11__._getPath;var on=__dependency12__.on;var addListener=__dependency12__.addListener;var removeListener=__dependency12__.removeListener;var suspendListener=__dependency12__.suspendListener;var suspendListeners=__dependency12__.suspendListeners;var sendEvent=__dependency12__.sendEvent;var hasListeners=__dependency12__.hasListeners;var watchedEvents=__dependency12__.watchedEvents;var listenersFor=__dependency12__.listenersFor;var listenersDiff=__dependency12__.listenersDiff;var listenersUnion=__dependency12__.listenersUnion;var ObserverSet=__dependency13__["default"];var propertyWillChange=__dependency14__.propertyWillChange;var propertyDidChange=__dependency14__.propertyDidChange;var overrideChains=__dependency14__.overrideChains;var beginPropertyChanges=__dependency14__.beginPropertyChanges;var endPropertyChanges=__dependency14__.endPropertyChanges;var changeProperties=__dependency14__.changeProperties;var Descriptor=__dependency15__.Descriptor;var defineProperty=__dependency15__.defineProperty;var set=__dependency16__.set;var trySet=__dependency16__.trySet;var OrderedSet=__dependency17__.OrderedSet;var Map=__dependency17__.Map;var MapWithDefault=__dependency17__.MapWithDefault;var getProperties=__dependency18__["default"];var setProperties=__dependency19__["default"];var watchKey=__dependency20__.watchKey;var unwatchKey=__dependency20__.unwatchKey;var flushPendingChains=__dependency21__.flushPendingChains;var removeChainWatcher=__dependency21__.removeChainWatcher;var ChainNode=__dependency21__.ChainNode;var finishChains=__dependency21__.finishChains;var watchPath=__dependency22__.watchPath;var unwatchPath=__dependency22__.unwatchPath;var watch=__dependency23__.watch;var isWatching=__dependency23__.isWatching;var unwatch=__dependency23__.unwatch;var rewatch=__dependency23__.rewatch;var destroy=__dependency23__.destroy;var expandProperties=__dependency24__["default"];var ComputedProperty=__dependency25__.ComputedProperty;var computed=__dependency25__.computed;var cacheFor=__dependency25__.cacheFor;var addObserver=__dependency27__.addObserver;var observersFor=__dependency27__.observersFor;var removeObserver=__dependency27__.removeObserver;var addBeforeObserver=__dependency27__.addBeforeObserver;var _suspendBeforeObserver=__dependency27__._suspendBeforeObserver;var _suspendObserver=__dependency27__._suspendObserver;var _suspendBeforeObservers=__dependency27__._suspendBeforeObservers;var _suspendObservers=__dependency27__._suspendObservers;var beforeObserversFor=__dependency27__.beforeObserversFor;var removeBeforeObserver=__dependency27__.removeBeforeObserver;var IS_BINDING=__dependency28__.IS_BINDING;var mixin=__dependency28__.mixin;var Mixin=__dependency28__.Mixin;var required=__dependency28__.required;var aliasMethod=__dependency28__.aliasMethod;var observer=__dependency28__.observer;var immediateObserver=__dependency28__.immediateObserver;var beforeObserver=__dependency28__.beforeObserver;var Binding=__dependency29__.Binding;var isGlobalPath=__dependency29__.isGlobalPath;var bind=__dependency29__.bind;var oneWay=__dependency29__.oneWay;var run=__dependency30__["default"];var libraries=__dependency31__["default"];var isNone=__dependency32__.isNone;var none=__dependency32__.none;var isEmpty=__dependency33__.isEmpty;var empty=__dependency33__.empty;var isBlank=__dependency34__["default"];var isPresent=__dependency35__["default"];var keys=__dependency36__["default"];var EmberInstrumentation=Ember.Instrumentation={};EmberInstrumentation.instrument=instrument;EmberInstrumentation.subscribe=subscribe;EmberInstrumentation.unsubscribe=unsubscribe;EmberInstrumentation.reset=reset;Ember.instrument=instrument;Ember.subscribe=subscribe;Ember._Cache=Cache;Ember.generateGuid=generateGuid;Ember.GUID_KEY=GUID_KEY;Ember.create=create;Ember.keys=keys;Ember.platform=platform;var EmberArrayPolyfills=Ember.ArrayPolyfills={};EmberArrayPolyfills.map=map;EmberArrayPolyfills.forEach=forEach;EmberArrayPolyfills.filter=filter;EmberArrayPolyfills.indexOf=indexOf;Ember.Error=EmberError;Ember.guidFor=guidFor;Ember.META_DESC=META_DESC;Ember.EMPTY_META=EMPTY_META;Ember.meta=meta;Ember.getMeta=getMeta;Ember.setMeta=setMeta;Ember.metaPath=metaPath;Ember.inspect=inspect;Ember.typeOf=typeOf;Ember.tryCatchFinally=tryCatchFinally;Ember.isArray=isArray;Ember.makeArray=makeArray;Ember.canInvoke=canInvoke;Ember.tryInvoke=tryInvoke;Ember.tryFinally=tryFinally;Ember.wrap=wrap;Ember.apply=apply;Ember.applyStr=applyStr;Ember.Logger=Logger;Ember.get=get;Ember.getWithDefault=getWithDefault;Ember.normalizeTuple=normalizeTuple;Ember._getPath=_getPath;Ember.EnumerableUtils=EnumerableUtils;Ember.on=on;Ember.addListener=addListener;Ember.removeListener=removeListener;Ember._suspendListener=suspendListener;Ember._suspendListeners=suspendListeners;Ember.sendEvent=sendEvent;Ember.hasListeners=hasListeners;Ember.watchedEvents=watchedEvents;Ember.listenersFor=listenersFor;Ember.listenersDiff=listenersDiff;Ember.listenersUnion=listenersUnion;Ember._ObserverSet=ObserverSet;Ember.propertyWillChange=propertyWillChange;Ember.propertyDidChange=propertyDidChange;Ember.overrideChains=overrideChains;Ember.beginPropertyChanges=beginPropertyChanges;Ember.endPropertyChanges=endPropertyChanges;Ember.changeProperties=changeProperties;Ember.Descriptor=Descriptor;Ember.defineProperty=defineProperty;Ember.set=set;Ember.trySet=trySet;Ember.OrderedSet=OrderedSet;Ember.Map=Map;Ember.MapWithDefault=MapWithDefault;Ember.getProperties=getProperties;Ember.setProperties=setProperties;Ember.watchKey=watchKey;Ember.unwatchKey=unwatchKey;Ember.flushPendingChains=flushPendingChains;Ember.removeChainWatcher=removeChainWatcher;Ember._ChainNode=ChainNode;Ember.finishChains=finishChains;Ember.watchPath=watchPath;Ember.unwatchPath=unwatchPath;Ember.watch=watch;Ember.isWatching=isWatching;Ember.unwatch=unwatch;Ember.rewatch=rewatch;Ember.destroy=destroy;Ember.expandProperties=expandProperties;Ember.ComputedProperty=ComputedProperty;Ember.computed=computed;Ember.cacheFor=cacheFor;Ember.addObserver=addObserver;Ember.observersFor=observersFor;Ember.removeObserver=removeObserver;Ember.addBeforeObserver=addBeforeObserver;Ember._suspendBeforeObserver=_suspendBeforeObserver;Ember._suspendBeforeObservers=_suspendBeforeObservers;Ember._suspendObserver=_suspendObserver;Ember._suspendObservers=_suspendObservers;Ember.beforeObserversFor=beforeObserversFor;Ember.removeBeforeObserver=removeBeforeObserver;Ember.IS_BINDING=IS_BINDING;Ember.required=required;Ember.aliasMethod=aliasMethod;Ember.observer=observer;Ember.immediateObserver=immediateObserver;Ember.beforeObserver=beforeObserver;Ember.mixin=mixin;Ember.Mixin=Mixin;Ember.oneWay=oneWay;Ember.bind=bind;Ember.Binding=Binding;Ember.isGlobalPath=isGlobalPath;Ember.run=run;Ember.libraries=libraries;Ember.libraries.registerCoreLibrary("Ember",Ember.VERSION);Ember.isNone=isNone;Ember.none=none;Ember.isEmpty=isEmpty;Ember.empty=empty;Ember.isBlank=isBlank;if(Ember.FEATURES.isEnabled("ember-metal-is-present")){Ember.isPresent=isPresent}Ember.merge=merge;Ember.onerror=null;if(Ember.__loader.registry["ember-debug"]){requireModule("ember-debug")}__exports__["default"]=Ember});define("ember-metal/alias",["ember-metal/property_get","ember-metal/property_set","ember-metal/error","ember-metal/properties","ember-metal/computed","ember-metal/platform","ember-metal/utils","ember-metal/dependent_keys","exports"],function(__dependency1__,__dependency2__,__dependency3__,__dependency4__,__dependency5__,__dependency6__,__dependency7__,__dependency8__,__exports__){"use strict";var get=__dependency1__.get;var set=__dependency2__.set;var EmberError=__dependency3__["default"];var Descriptor=__dependency4__.Descriptor;var defineProperty=__dependency4__.defineProperty;var ComputedProperty=__dependency5__.ComputedProperty;var create=__dependency6__.create;var meta=__dependency7__.meta;var inspect=__dependency7__.inspect;var addDependentKeys=__dependency8__.addDependentKeys;var removeDependentKeys=__dependency8__.removeDependentKeys;function alias(altKey){return new AliasedProperty(altKey)}__exports__.alias=alias;function AliasedProperty(altKey){this.altKey=altKey;this._dependentKeys=[altKey]}__exports__.AliasedProperty=AliasedProperty;AliasedProperty.prototype=create(Descriptor.prototype);AliasedProperty.prototype.get=function AliasedProperty_get(obj,keyName){return get(obj,this.altKey)};AliasedProperty.prototype.set=function AliasedProperty_set(obj,keyName,value){return set(obj,this.altKey,value)};AliasedProperty.prototype.willWatch=function(obj,keyName){addDependentKeys(this,obj,keyName,meta(obj))};AliasedProperty.prototype.didUnwatch=function(obj,keyName){removeDependentKeys(this,obj,keyName,meta(obj))};AliasedProperty.prototype.setup=function(obj,keyName){var m=meta(obj);if(m.watching[keyName]){addDependentKeys(this,obj,keyName,m)}};AliasedProperty.prototype.teardown=function(obj,keyName){var m=meta(obj);if(m.watching[keyName]){removeDependentKeys(this,obj,keyName,m)}};AliasedProperty.prototype.readOnly=function(){this.set=AliasedProperty_readOnlySet;return this};function AliasedProperty_readOnlySet(obj,keyName,value){throw new EmberError('Cannot set read-only property "'+keyName+'" on object: '+inspect(obj))}AliasedProperty.prototype.oneWay=function(){this.set=AliasedProperty_oneWaySet;return this};function AliasedProperty_oneWaySet(obj,keyName,value){defineProperty(obj,keyName,null);return set(obj,keyName,value)}AliasedProperty.prototype._meta=undefined;AliasedProperty.prototype.meta=ComputedProperty.prototype.meta});define("ember-metal/array",["exports"],function(__exports__){"use strict";var ArrayPrototype=Array.prototype;var isNativeFunc=function(func){return func&&Function.prototype.toString.call(func).indexOf("[native code]")>-1};var defineNativeShim=function(nativeFunc,shim){if(isNativeFunc(nativeFunc)){return nativeFunc}return shim};var map=defineNativeShim(ArrayPrototype.map,function(fun){if(this===void 0||this===null||typeof fun!=="function"){throw new TypeError}var t=Object(this);var len=t.length>>>0;var res=new Array(len);var thisp=arguments[1];for(var i=0;i>>0;var thisp=arguments[1];for(var i=0;i=0;idx--){if(this[idx]===obj)return idx}return-1});var filter=defineNativeShim(ArrayPrototype.filter,function(fn,context){var i,value,result=[],length=this.length;for(i=0;i("+this._from+" -> "+this._to+")"+oneWay},connect:function(obj){var fromPath=this._from,toPath=this._to;trySet(obj,toPath,getWithGlobals(obj,fromPath));addObserver(obj,fromPath,this,this.fromDidChange);if(!this._oneWay){addObserver(obj,toPath,this,this.toDidChange)}this._readyToSync=true;return this},disconnect:function(obj){var twoWay=!this._oneWay;removeObserver(obj,this._from,this,this.fromDidChange);if(twoWay){removeObserver(obj,this._to,this,this.toDidChange)}this._readyToSync=false;return this},fromDidChange:function(target){this._scheduleSync(target,"fwd")},toDidChange:function(target){this._scheduleSync(target,"back")},_scheduleSync:function(obj,dir){var directionMap=this._directionMap;var existingDir=directionMap.get(obj);if(!existingDir){run.schedule("sync",this,this._sync,obj);directionMap.set(obj,dir)}if(existingDir==="back"&&dir==="fwd"){directionMap.set(obj,"fwd")}},_sync:function(obj){var log=Ember.LOG_BINDINGS;if(obj.isDestroyed||!this._readyToSync){return}var directionMap=this._directionMap;var direction=directionMap.get(obj);var fromPath=this._from,toPath=this._to;directionMap.remove(obj);if(direction==="fwd"){var fromValue=getWithGlobals(obj,this._from);if(log){Ember.Logger.log(" ",this.toString(),"->",fromValue,obj)}if(this._oneWay){trySet(obj,toPath,fromValue)}else{_suspendObserver(obj,toPath,this,this.toDidChange,function(){trySet(obj,toPath,fromValue)})}}else if(direction==="back"){var toValue=get(obj,this._to);if(log){Ember.Logger.log(" ",this.toString(),"<-",toValue,obj)}_suspendObserver(obj,fromPath,this,this.fromDidChange,function(){trySet(isGlobalPath(fromPath)?Ember.lookup:obj,fromPath,toValue)})}}};function mixinProperties(to,from){for(var key in from){if(from.hasOwnProperty(key)){to[key]=from[key]}}}mixinProperties(Binding,{from:function(){var C=this,binding=new C;return binding.from.apply(binding,arguments)},to:function(){var C=this,binding=new C;return binding.to.apply(binding,arguments)},oneWay:function(from,flag){var C=this,binding=new C(null,from);return binding.oneWay(flag)}});function bind(obj,to,from){return new Binding(to,from).connect(obj)}__exports__.bind=bind;function oneWay(obj,to,from){return new Binding(to,from).oneWay().connect(obj)}__exports__.oneWay=oneWay;__exports__.Binding=Binding;__exports__.isGlobalPath=isGlobalPath});define("ember-metal/cache",["ember-metal/dictionary","exports"],function(__dependency1__,__exports__){"use strict";var dictionary=__dependency1__["default"];__exports__["default"]=Cache;function Cache(limit,func){this.store=dictionary(null);this.size=0;this.misses=0;this.hits=0;this.limit=limit;this.func=func}var FALSE=function(){};var ZERO=function(){};var UNDEFINED=function(){};var NULL=function(){};Cache.prototype={set:function(key,value){if(this.limit>this.size){this.size++;if(value===undefined){this.store[key]=UNDEFINED}else{this.store[key]=value}}return value},get:function(key){var value=this.store[key];if(value===undefined){this.misses++;value=this.set(key,this.func(key))}else if(value===UNDEFINED){this.hits++;value=UNDEFINED}else{this.hits++}return value},purge:function(){this.store=dictionary(null);this.size=0;this.hits=0;this.misses=0}}});define("ember-metal/chains",["ember-metal/core","ember-metal/property_get","ember-metal/utils","ember-metal/array","ember-metal/watch_key","exports"],function(__dependency1__,__dependency2__,__dependency3__,__dependency4__,__dependency5__,__exports__){"use strict";var Ember=__dependency1__["default"];var get=__dependency2__.get;var normalizeTuple=__dependency2__.normalizeTuple;var meta=__dependency3__.meta;var forEach=__dependency4__.forEach;var watchKey=__dependency5__.watchKey;var unwatchKey=__dependency5__.unwatchKey;var metaFor=meta,warn=Ember.warn,FIRST_KEY=/^([^\.]+)/;function firstKey(path){return path.match(FIRST_KEY)[0]}var pendingQueue=[];function flushPendingChains(){if(pendingQueue.length===0){return}var queue=pendingQueue;pendingQueue=[];forEach.call(queue,function(q){q[0].add(q[1])});warn("Watching an undefined global, Ember expects watched globals to be setup by the time the run loop is flushed, check for typos",pendingQueue.length===0)}__exports__.flushPendingChains=flushPendingChains;function addChainWatcher(obj,keyName,node){if(!obj||"object"!==typeof obj){return}var m=metaFor(obj),nodes=m.chainWatchers;if(!m.hasOwnProperty("chainWatchers")){nodes=m.chainWatchers={}}if(!nodes[keyName]){nodes[keyName]=[]}nodes[keyName].push(node);watchKey(obj,keyName,m)}function removeChainWatcher(obj,keyName,node){if(!obj||"object"!==typeof obj){return}var m=obj["__ember_meta__"];if(m&&!m.hasOwnProperty("chainWatchers")){return}var nodes=m&&m.chainWatchers;if(nodes&&nodes[keyName]){nodes=nodes[keyName];for(var i=0,l=nodes.length;i0){paths[path]--}obj=this.value();tuple=normalizeTuple(obj,path);if(tuple[0]===obj){path=tuple[1];key=firstKey(path);path=path.slice(key.length+1)}else{src=tuple[0];key=path.slice(0,0-(tuple[1].length+1));path=tuple[1]}tuple.length=0;this.unchain(key,path)};ChainNodePrototype.count=0;ChainNodePrototype.chain=function(key,path,src){var chains=this._chains,node;if(!chains){chains=this._chains={}}node=chains[key];if(!node){node=chains[key]=new ChainNode(this,key,src)}node.count++;if(path){key=firstKey(path);path=path.slice(key.length+1);node.chain(key,path)}};ChainNodePrototype.unchain=function(key,path){var chains=this._chains,node=chains[key];if(path&&path.length>1){key=firstKey(path);path=path.slice(key.length+1);node.unchain(key,path)}node.count--;if(node.count<=0){delete chains[node._key];node.destroy()}};ChainNodePrototype.willChange=function(events){var chains=this._chains;if(chains){for(var key in chains){if(!chains.hasOwnProperty(key)){continue}chains[key].willChange(events)}}if(this._parent){this._parent.chainWillChange(this,this._key,1,events)}};ChainNodePrototype.chainWillChange=function(chain,path,depth,events){if(this._key){path=this._key+"."+path}if(this._parent){this._parent.chainWillChange(this,path,depth+1,events)}else{if(depth>1){events.push(this.value(),path)}path="this."+path;if(this._paths[path]>0){events.push(this.value(),path)}}};ChainNodePrototype.chainDidChange=function(chain,path,depth,events){if(this._key){path=this._key+"."+path}if(this._parent){this._parent.chainDidChange(this,path,depth+1,events)}else{if(depth>1){events.push(this.value(),path)}path="this."+path;if(this._paths[path]>0){events.push(this.value(),path)}}};ChainNodePrototype.didChange=function(events){if(this._watching){var obj=this._parent.value();if(obj!==this._object){removeChainWatcher(this._object,this._key,this);this._object=obj;addChainWatcher(obj,this._key,this)}this._value=undefined;if(this._parent&&this._parent._key==="@each")this.value()}var chains=this._chains;if(chains){for(var key in chains){if(!chains.hasOwnProperty(key)){continue}chains[key].didChange(events)}}if(events===null){return}if(this._parent){this._parent.chainDidChange(this,this._key,1,events)}};function finishChains(obj){var m=obj["__ember_meta__"],chains=m&&m.chains;if(chains){if(chains.value()!==obj){metaFor(obj).chains=chains=chains.copy(obj)}else{chains.didChange(null)}}}__exports__.finishChains=finishChains;__exports__.removeChainWatcher=removeChainWatcher;__exports__.ChainNode=ChainNode});define("ember-metal/computed",["ember-metal/core","ember-metal/property_get","ember-metal/property_set","ember-metal/utils","ember-metal/expand_properties","ember-metal/error","ember-metal/properties","ember-metal/property_events","ember-metal/dependent_keys","exports"],function(__dependency1__,__dependency2__,__dependency3__,__dependency4__,__dependency5__,__dependency6__,__dependency7__,__dependency8__,__dependency9__,__exports__){"use strict";var Ember=__dependency1__["default"];var get=__dependency2__.get;var set=__dependency3__.set;var meta=__dependency4__.meta;var inspect=__dependency4__.inspect;var expandProperties=__dependency5__["default"];var EmberError=__dependency6__["default"];var Descriptor=__dependency7__.Descriptor;var defineProperty=__dependency7__.defineProperty;var propertyWillChange=__dependency8__.propertyWillChange;var propertyDidChange=__dependency8__.propertyDidChange;var addDependentKeys=__dependency9__.addDependentKeys;var removeDependentKeys=__dependency9__.removeDependentKeys;var metaFor=meta,a_slice=[].slice;function UNDEFINED(){}function ComputedProperty(func,opts){func.__ember_arity__=func.length;this.func=func;this._cacheable=opts&&opts.cacheable!==undefined?opts.cacheable:true;this._dependentKeys=opts&&opts.dependentKeys;this._readOnly=opts&&(opts.readOnly!==undefined||!!opts.readOnly)||false}ComputedProperty.prototype=new Descriptor;var ComputedPropertyPrototype=ComputedProperty.prototype;ComputedPropertyPrototype._dependentKeys=undefined;ComputedPropertyPrototype._suspended=undefined;ComputedPropertyPrototype._meta=undefined;ComputedPropertyPrototype.cacheable=function(aFlag){this._cacheable=aFlag!==false;return this};ComputedPropertyPrototype["volatile"]=function(){return this.cacheable(false)};ComputedPropertyPrototype.readOnly=function(readOnly){this._readOnly=readOnly===undefined||!!readOnly;return this};ComputedPropertyPrototype.property=function(){var args;var addArg=function(property){args.push(property)};args=[];for(var i=0,l=arguments.length;i1){args=a_slice.call(arguments);func=args.pop()}if(typeof func!=="function"){throw new EmberError("Computed Property declared without a property function")}var cp=new ComputedProperty(func);if(args){cp.property.apply(cp,args)}return cp}function cacheFor(obj,key){var meta=obj["__ember_meta__"];var cache=meta&&meta.cache;var ret=cache&&cache[key];if(ret===UNDEFINED){return undefined}return ret}cacheFor.set=function(cache,key,value){if(value===undefined){cache[key]=UNDEFINED}else{cache[key]=value}};cacheFor.get=function(cache,key){var ret=cache[key];if(ret===UNDEFINED){return undefined}return ret};cacheFor.remove=function(cache,key){cache[key]=undefined};__exports__.ComputedProperty=ComputedProperty;__exports__.computed=computed;__exports__.cacheFor=cacheFor});define("ember-metal/computed_macros",["ember-metal/core","ember-metal/property_get","ember-metal/property_set","ember-metal/computed","ember-metal/is_empty","ember-metal/is_none","ember-metal/alias"],function(__dependency1__,__dependency2__,__dependency3__,__dependency4__,__dependency5__,__dependency6__,__dependency7__){"use strict";var Ember=__dependency1__["default"];var get=__dependency2__.get;var set=__dependency3__.set;var computed=__dependency4__.computed;var isEmpty=__dependency5__["default"];var isNone=__dependency6__.isNone;var alias=__dependency7__.alias;var a_slice=[].slice;function getProperties(self,propertyNames){var ret={};for(var i=0;ivalue});registerComputed("gte",function(dependentKey,value){return get(this,dependentKey)>=value});registerComputed("lt",function(dependentKey,value){return get(this,dependentKey)1){set(this,dependentKey,value);return value}else{return get(this,dependentKey)}})}});define("ember-metal/core",["exports"],function(__exports__){"use strict";if("undefined"===typeof Ember){Ember={}}var imports=Ember.imports=Ember.imports||this;var exports=Ember.exports=Ember.exports||this;var lookup=Ember.lookup=Ember.lookup||this;exports.Em=exports.Ember=Ember;Ember.isNamespace=true;Ember.toString=function(){return"Ember"};Ember.VERSION="1.8.0-beta.1+canary.919cf869";if(Ember.ENV){}else if("undefined"!==typeof EmberENV){Ember.ENV=EmberENV}else if("undefined"!==typeof ENV){Ember.ENV=ENV}else{Ember.ENV={}}Ember.config=Ember.config||{};if("undefined"===typeof Ember.ENV.DISABLE_RANGE_API){Ember.ENV.DISABLE_RANGE_API=true}if("undefined"===typeof MetamorphENV){exports.MetamorphENV={}}MetamorphENV.DISABLE_RANGE_API=Ember.ENV.DISABLE_RANGE_API;Ember.FEATURES=Ember.ENV.FEATURES||{};Ember.FEATURES.isEnabled=function(feature){var featureValue=Ember.FEATURES[feature];if(Ember.ENV.ENABLE_ALL_FEATURES){return true}else if(featureValue===true||featureValue===false||featureValue===undefined){return featureValue}else if(Ember.ENV.ENABLE_OPTIONAL_FEATURES){return true}else{return false}};Ember.EXTEND_PROTOTYPES=Ember.ENV.EXTEND_PROTOTYPES;if(typeof Ember.EXTEND_PROTOTYPES==="undefined"){Ember.EXTEND_PROTOTYPES=true}Ember.LOG_STACKTRACE_ON_DEPRECATION=Ember.ENV.LOG_STACKTRACE_ON_DEPRECATION!==false;Ember.SHIM_ES5=Ember.ENV.SHIM_ES5===false?false:Ember.EXTEND_PROTOTYPES;Ember.LOG_VERSION=Ember.ENV.LOG_VERSION===false?false:true;var K=function(){return this};var K=K;__exports__.K=K;Ember.K=K;if("undefined"===typeof Ember.assert){Ember.assert=Ember.K}if("undefined"===typeof Ember.warn){Ember.warn=Ember.K}if("undefined"===typeof Ember.debug){Ember.debug=Ember.K}if("undefined"===typeof Ember.runInDebug){Ember.runInDebug=Ember.K}if("undefined"===typeof Ember.deprecate){Ember.deprecate=Ember.K}if("undefined"===typeof Ember.deprecateFunc){Ember.deprecateFunc=function(_,func){return func}}__exports__["default"]=Ember});define("ember-metal/dependent_keys",["ember-metal/platform","ember-metal/watching","exports"],function(__dependency1__,__dependency2__,__exports__){"use strict";var create=__dependency1__.create;var watch=__dependency2__.watch;var unwatch=__dependency2__.unwatch;var o_create=create;function keysForDep(depsMeta,depKey){var keys=depsMeta[depKey];if(!keys){keys=depsMeta[depKey]={}}else if(!depsMeta.hasOwnProperty(depKey)){keys=depsMeta[depKey]=o_create(keys)}return keys}function metaForDeps(meta){return keysForDep(meta,"deps")}function addDependentKeys(desc,obj,keyName,meta){var depKeys=desc._dependentKeys,depsMeta,idx,len,depKey,keys;if(!depKeys)return;depsMeta=metaForDeps(meta);for(idx=0,len=depKeys.length;idxsize?size:ends;if(count<=0){count=0}chunk=args.splice(0,size);chunk=[start,count].concat(chunk);start+=size;ends-=count;ret=ret.concat(splice.apply(array,chunk))}return ret}__exports__._replace=_replace;function replace(array,idx,amt,objects){if(array.replace){return array.replace(idx,amt,objects)}else{return _replace(array,idx,amt,objects)}}__exports__.replace=replace;function intersection(array1,array2){var result=[];forEach(array1,function(element){if(indexOf(array2,element)>=0){result.push(element)}});return result}__exports__.intersection=intersection;__exports__["default"]={_replace:_replace,addObject:addObject,filter:filter,forEach:forEach,indexOf:indexOf,indexesOf:indexesOf,intersection:intersection,map:map,removeObject:removeObject,replace:replace}});define("ember-metal/error",["ember-metal/platform","exports"],function(__dependency1__,__exports__){"use strict";var create=__dependency1__.create;var errorProps=["description","fileName","lineNumber","message","name","number","stack"];function EmberError(){var tmp=Error.apply(this,arguments);if(Error.captureStackTrace){Error.captureStackTrace(this,Ember.Error)}for(var idx=0;idx=0;i-=3){if(target===array[i]&&method===array[i+1]){index=i;break}}return index}function actionsFor(obj,eventName){var meta=metaFor(obj,true),actions;if(!meta.listeners){meta.listeners={}}if(!meta.hasOwnProperty("listeners")){meta.listeners=create(meta.listeners)}actions=meta.listeners[eventName];if(actions&&!meta.listeners.hasOwnProperty(eventName)){actions=meta.listeners[eventName]=meta.listeners[eventName].slice()}else if(!actions){actions=meta.listeners[eventName]=[]}return actions}function listenersUnion(obj,eventName,otherActions){var meta=obj["__ember_meta__"],actions=meta&&meta.listeners&&meta.listeners[eventName];if(!actions){return}for(var i=actions.length-3;i>=0;i-=3){var target=actions[i],method=actions[i+1],flags=actions[i+2],actionIndex=indexOf(otherActions,target,method);if(actionIndex===-1){otherActions.push(target,method,flags)}}}__exports__.listenersUnion=listenersUnion;function listenersDiff(obj,eventName,otherActions){var meta=obj["__ember_meta__"],actions=meta&&meta.listeners&&meta.listeners[eventName],diffActions=[];if(!actions){return}for(var i=actions.length-3;i>=0;i-=3){var target=actions[i],method=actions[i+1],flags=actions[i+2],actionIndex=indexOf(otherActions,target,method);if(actionIndex!==-1){continue}otherActions.push(target,method,flags);diffActions.push(target,method,flags)}return diffActions}__exports__.listenersDiff=listenersDiff;function addListener(obj,eventName,target,method,once){if(!method&&"function"===typeof target){method=target;target=null}var actions=actionsFor(obj,eventName),actionIndex=indexOf(actions,target,method),flags=0;if(once)flags|=ONCE;if(actionIndex!==-1){return}actions.push(target,method,flags);if("function"===typeof obj.didAddListener){obj.didAddListener(eventName,target,method)}}__exports__.addListener=addListener;function removeListener(obj,eventName,target,method){if(!method&&"function"===typeof target){method=target;target=null}function _removeListener(target,method){var actions=actionsFor(obj,eventName),actionIndex=indexOf(actions,target,method);if(actionIndex===-1){return}actions.splice(actionIndex,3);if("function"===typeof obj.didRemoveListener){obj.didRemoveListener(eventName,target,method)}}if(method){_removeListener(target,method)}else{var meta=obj["__ember_meta__"],actions=meta&&meta.listeners&&meta.listeners[eventName];if(!actions){return}for(var i=actions.length-3;i>=0;i-=3){_removeListener(actions[i],actions[i+1])}}}function suspendListener(obj,eventName,target,method,callback){if(!method&&"function"===typeof target){method=target;target=null}var actions=actionsFor(obj,eventName),actionIndex=indexOf(actions,target,method);if(actionIndex!==-1){actions[actionIndex+2]|=SUSPENDED}function tryable(){return callback.call(target)}function finalizer(){if(actionIndex!==-1){actions[actionIndex+2]&=~SUSPENDED}}return tryFinally(tryable,finalizer)}__exports__.suspendListener=suspendListener;function suspendListeners(obj,eventNames,target,method,callback){if(!method&&"function"===typeof target){method=target;target=null}var suspendedActions=[],actionsList=[],eventName,actions,i,l;for(i=0,l=eventNames.length;i=0;i-=3){var target=actions[i],method=actions[i+1],flags=actions[i+2];if(!method){continue}if(flags&SUSPENDED){continue}if(flags&ONCE){removeListener(obj,eventName,target,method)}if(!target){target=obj}if("string"===typeof method){if(params){applyStr(target,method,params)}else{target[method]()}}else{if(params){apply(target,method,params)}else{method.call(target)}}}return true}__exports__.sendEvent=sendEvent;function hasListeners(obj,eventName){var meta=obj["__ember_meta__"],actions=meta&&meta.listeners&&meta.listeners[eventName];return!!(actions&&actions.length)}__exports__.hasListeners=hasListeners;function listenersFor(obj,eventName){var ret=[];var meta=obj["__ember_meta__"],actions=meta&&meta.listeners&&meta.listeners[eventName];if(!actions){return ret}for(var i=0,l=actions.length;i-1){throw new EmberError("Brace expanded properties cannot contain spaces, "+"e.g. `user.{firstName, lastName}` should be `user.{firstName,lastName}`")}if(Ember.FEATURES.isEnabled("property-brace-expansion-improvement")){return newExpandProperties(pattern,callback)}else{return oldExpandProperties(pattern,callback)}};function oldExpandProperties(pattern,callback){var match,prefix,list;if(match=BRACE_EXPANSION.exec(pattern)){prefix=match[1];list=match[2];forEach(list.split(","),function(suffix){callback(prefix+suffix)})}else{callback(pattern)}}function newExpandProperties(pattern,callback){if("string"===Ember.typeOf(pattern)){var parts=pattern.split(SPLIT_REGEX),properties=[parts];forEach(parts,function(part,index){if(part.indexOf(",")>=0){properties=duplicateAndReplace(properties,part.split(","),index)}});forEach(properties,function(property){callback(property.join(""))})}else{callback(pattern)}}function duplicateAndReplace(properties,currentParts,index){var all=[];forEach(properties,function(property){forEach(currentParts,function(part){var current=property.slice(0);current[index]=part;all.push(current)})});return all}});define("ember-metal/get_properties",["ember-metal/property_get","ember-metal/utils","exports"],function(__dependency1__,__dependency2__,__exports__){"use strict";var get=__dependency1__.get;var typeOf=__dependency2__.typeOf;__exports__["default"]=function getProperties(obj){var ret={},propertyNames=arguments,i=1;if(arguments.length===2&&typeOf(arguments[1])==="array"){i=0;propertyNames=arguments[1]}for(var len=propertyNames.length;i=0){return}if(typeof obj.hasOwnProperty==="function"&&!obj.hasOwnProperty(key)){return}array.push(key)};keys=function keys(obj){var ret=[];var key;for(key in obj){pushPropertyName(obj,ret,key)}for(var i=0,l=prototypeProperties.length;i-1){list.splice(index,1)}},isEmpty:function(){return this.list.length===0},has:function(obj){var guid=guidFor(obj);var presenceSet=this.presenceSet;return presenceSet[guid]},forEach:function(fn,self){var list=this.toArray();for(var i=0,j=list.length;i0){mixin.mixins=a_map.call(args,function(x){if(x instanceof Mixin){return x}var mixin=new Mixin;mixin.properties=x;return mixin})}return mixin}function isMethod(obj){return"function"===typeof obj&&obj.isMethod!==false&&obj!==Boolean&&obj!==Object&&obj!==Number&&obj!==Array&&obj!==Date&&obj!==String}var CONTINUE={};function mixinProperties(mixinsMeta,mixin){var guid;if(mixin instanceof Mixin){guid=guidFor(mixin);if(mixinsMeta[guid]){return CONTINUE}mixinsMeta[guid]=mixin;return mixin.properties}else{return mixin}}function concatenatedMixinProperties(concatProp,props,values,base){var concats;concats=values[concatProp]||base[concatProp];if(props[concatProp]){concats=concats?concats.concat(props[concatProp]):props[concatProp]}return concats}function giveDescriptorSuper(meta,key,property,values,descs){var superProperty;if(values[key]===undefined){superProperty=descs[key]}superProperty=superProperty||meta.descs[key];if(!superProperty||!(superProperty instanceof ComputedProperty)){return property}property=o_create(property);property.func=wrap(property.func,superProperty.func);return property}function giveMethodSuper(obj,key,method,values,descs){var superMethod;if(descs[key]===undefined){superMethod=values[key]}superMethod=superMethod||obj[key];if("function"!==typeof superMethod){return method}return wrap(method,superMethod)}function applyConcatenatedProperties(obj,key,value,values){var baseValue=values[key]||obj[key];if(baseValue){if("function"===typeof baseValue.concat){return baseValue.concat(value)}else{return makeArray(baseValue).concat(value)}}else{return makeArray(value)}}function applyMergedProperties(obj,key,value,values){var baseValue=values[key]||obj[key];if(!baseValue){return value}var newBase=merge({},baseValue),hasFunction=false;for(var prop in value){if(!value.hasOwnProperty(prop)){continue}var propValue=value[prop];if(isMethod(propValue)){hasFunction=true;newBase[prop]=giveMethodSuper(obj,prop,propValue,baseValue,{})}else{newBase[prop]=propValue}}if(hasFunction){newBase._super=superFunction}return newBase}function addNormalizedProperty(base,key,value,meta,descs,values,concats,mergings){if(value instanceof Descriptor){if(value===REQUIRED&&descs[key]){return CONTINUE}if(value.func){value=giveDescriptorSuper(meta,key,value,values,descs)}descs[key]=value;values[key]=undefined}else{if(concats&&a_indexOf.call(concats,key)>=0||key==="concatenatedProperties"||key==="mergedProperties"){value=applyConcatenatedProperties(base,key,value,values)}else if(mergings&&a_indexOf.call(mergings,key)>=0){value=applyMergedProperties(base,key,value,values)}else if(isMethod(value)){value=giveMethodSuper(base,key,value,values,descs)}descs[key]=undefined;values[key]=value}}function mergeMixins(mixins,m,descs,values,base,keys){var mixin,props,key,concats,mergings,meta;function removeKeys(keyName){delete descs[keyName];delete values[keyName]}for(var i=0,l=mixins.length;i=0){if(_detect(mixins[loc],targetMixin,seen)){return true}}return false}MixinPrototype.detect=function(obj){if(!obj){return false}if(obj instanceof Mixin){return _detect(obj,this,{})}var m=obj["__ember_meta__"],mixins=m&&m.mixins;if(mixins){return!!mixins[guidFor(this)]}return false};MixinPrototype.without=function(){var ret=new Mixin(this);ret._without=a_slice.call(arguments);return ret};function _keys(ret,mixin,seen){if(seen[guidFor(mixin)]){return}seen[guidFor(mixin)]=true;if(mixin.properties){var props=mixin.properties;for(var key in props){if(props.hasOwnProperty(key)){ret[key]=true}}}else if(mixin.mixins){a_forEach.call(mixin.mixins,function(x){_keys(ret,x,seen)})}}MixinPrototype.keys=function(){var keys={},seen={},ret=[];_keys(keys,this,seen);for(var key in keys){if(keys.hasOwnProperty(key)){ret.push(key)}}return ret};Mixin.mixins=function(obj){var m=obj["__ember_meta__"],mixins=m&&m.mixins,ret=[];if(!mixins){return ret}for(var key in mixins){var mixin=mixins[key];if(!mixin.properties){ret.push(mixin)}}return ret};REQUIRED=new Descriptor;REQUIRED.toString=function(){return"(Required Property)"};function required(){return REQUIRED}__exports__.required=required;function Alias(methodName){this.methodName=methodName}Alias.prototype=new Descriptor;function aliasMethod(methodName){return new Alias(methodName)}__exports__.aliasMethod=aliasMethod;function observer(){var func=a_slice.call(arguments,-1)[0];var paths;var addWatchedProperty=function(path){paths.push(path)};var _paths=a_slice.call(arguments,0,-1);if(typeof func!=="function"){func=arguments[0];_paths=a_slice.call(arguments,1)}paths=[];for(var i=0;i<_paths.length;++i){expandProperties(_paths[i],addWatchedProperty)}if(typeof func!=="function"){throw new Ember.Error("Ember.observer called without a function")}func.__ember_observes__=paths;return func}__exports__.observer=observer;function immediateObserver(){for(var i=0,l=arguments.length;i0;if(existingDesc instanceof Descriptor){existingDesc.teardown(obj,keyName)}if(desc instanceof Descriptor){value=desc;descs[keyName]=desc;if(MANDATORY_SETTER&&watching){objectDefineProperty(obj,keyName,{configurable:true,enumerable:true,writable:true,value:undefined})}else{obj[keyName]=undefined}if(desc.setup){desc.setup(obj,keyName)}}else{descs[keyName]=undefined;if(desc==null){value=data;if(MANDATORY_SETTER&&watching){meta.values[keyName]=data;objectDefineProperty(obj,keyName,{configurable:true,enumerable:true,set:MANDATORY_SETTER_FUNCTION,get:DEFAULT_GETTER_FUNCTION(keyName)})}else{obj[keyName]=data}}else{value=desc;objectDefineProperty(obj,keyName,desc)}}if(watching){overrideChains(obj,keyName,meta)}if(obj.didDefineProperty){obj.didDefineProperty(obj,keyName,value)}return this}__exports__.defineProperty=defineProperty;function deprecateProperty(object,deprecatedKey,newKey){function deprecate(){}if(platform.hasPropertyAccessors){defineProperty(object,deprecatedKey,{configurable:true,enumerable:false,set:function(value){deprecate();set(object,newKey,value)},get:function(){deprecate();return get(object,newKey)}})}}__exports__.deprecateProperty=deprecateProperty});define("ember-metal/property_events",["ember-metal/utils","ember-metal/events","ember-metal/observer_set","exports"],function(__dependency1__,__dependency2__,__dependency3__,__exports__){"use strict";var guidFor=__dependency1__.guidFor;var tryFinally=__dependency1__.tryFinally;var sendEvent=__dependency2__.sendEvent;var listenersUnion=__dependency2__.listenersUnion;var listenersDiff=__dependency2__.listenersDiff;var ObserverSet=__dependency3__["default"];var beforeObserverSet=new ObserverSet;var observerSet=new ObserverSet;var deferred=0;function propertyWillChange(obj,keyName){var m=obj["__ember_meta__"];var watching=m&&m.watching[keyName]>0||keyName==="length";var proto=m&&m.proto;var desc=m&&m.descs[keyName];if(!watching){return}if(proto===obj){return}if(desc&&desc.willChange){desc.willChange(obj,keyName)}dependentKeysWillChange(obj,keyName,m);chainsWillChange(obj,keyName,m);notifyBeforeObservers(obj,keyName)}function propertyDidChange(obj,keyName){var m=obj["__ember_meta__"];var watching=m&&m.watching[keyName]>0||keyName==="length";var proto=m&&m.proto;var desc=m&&m.descs[keyName];if(proto===obj){return}if(desc&&desc.didChange){desc.didChange(obj,keyName)}if(!watching&&keyName!=="length"){return}if(m&&m.deps&&m.deps[keyName]){dependentKeysDidChange(obj,keyName,m)}chainsDidChange(obj,keyName,m,false);notifyObservers(obj,keyName)}var WILL_SEEN,DID_SEEN;function dependentKeysWillChange(obj,depKey,meta){if(obj.isDestroying){return}var deps;if(meta&&meta.deps&&(deps=meta.deps[depKey])){var seen=WILL_SEEN,top=!seen;if(top){seen=WILL_SEEN={}}iterDeps(propertyWillChange,obj,deps,depKey,seen,meta);if(top){WILL_SEEN=null}}}function dependentKeysDidChange(obj,depKey,meta){if(obj.isDestroying){return}var deps;if(meta&&meta.deps&&(deps=meta.deps[depKey])){var seen=DID_SEEN,top=!seen;if(top){seen=DID_SEEN={}}iterDeps(propertyDidChange,obj,deps,depKey,seen,meta);if(top){DID_SEEN=null}}}function keysOf(obj){var keys=[];for(var key in obj)keys.push(key);return keys}function iterDeps(method,obj,deps,depKey,seen,meta){var keys,key,i,desc;var guid=guidFor(obj);var current=seen[guid];if(!current)current=seen[guid]={};if(current[depKey])return;current[depKey]=true;if(deps){keys=keysOf(deps);var descs=meta.descs;for(i=0;i0){ret=meta.values[keyName]}else{ret=obj[keyName]}if(ret===undefined&&"object"===typeof obj&&!(keyName in obj)&&"function"===typeof obj.unknownProperty){return obj.unknownProperty(keyName)}return ret}};if(Ember.config.overrideAccessors){Ember.get=get;Ember.config.overrideAccessors();get=Ember.get}function normalizeTuple(target,path){var hasThis=pathHasThis(path);var isGlobal=!hasThis&&isGlobalPath(path);var key;if(!target||isGlobal)target=Ember.lookup;if(hasThis)path=path.slice(5);if(target===Ember.lookup){key=path.match(FIRST_KEY)[0];target=get(target,key);path=path.slice(key.length+1)}if(!path||path.length===0)throw new EmberError("Path cannot be empty");return[target,path]}function _getPath(root,path){var hasThis,parts,tuple,idx,len;if(root===null&&!isPath(path)){return get(Ember.lookup,path)}hasThis=pathHasThis(path);if(!root||hasThis){tuple=normalizeTuple(root,path);root=tuple[0];path=tuple[1];tuple.length=0}parts=path.split(".");len=parts.length;for(idx=0;root!=null&&idx0){if(MANDATORY_SETTER){currentValue=meta.values[keyName]}else{currentValue=obj[keyName]}if(value!==currentValue){propertyWillChange(obj,keyName);if(MANDATORY_SETTER){if(currentValue===undefined&&!(keyName in obj)||!obj.propertyIsEnumerable(keyName)){defineProperty(obj,keyName,null,value)}else{meta.values[keyName]=value}}else{obj[keyName]=value}propertyDidChange(obj,keyName)}}else{obj[keyName]=value}}return value};if(Ember.config.overrideAccessors){Ember.set=set;Ember.config.overrideAccessors();set=Ember.set}function setPath(root,path,value,tolerant){var keyName;keyName=path.slice(path.lastIndexOf(".")+1);path=path===keyName?keyName:path.slice(0,path.length-(keyName.length+1));if(path!=="this"){root=getPath(root,path)}if(!keyName||keyName.length===0){throw new EmberError("Property set failed: You passed an empty path")}if(!root){if(tolerant){return}else{throw new EmberError('Property set failed: object in path "'+path+'" could not be found or was destroyed.')}}return set(root,keyName,value)}function trySet(root,path,value){return set(root,path,value,true)}__exports__.trySet=trySet;__exports__.set=set});define("ember-metal/run_loop",["ember-metal/core","ember-metal/utils","ember-metal/array","ember-metal/property_events","exports"],function(__dependency1__,__dependency2__,__dependency3__,__dependency4__,__exports__){"use strict";var Ember=__dependency1__["default"];var apply=__dependency2__.apply;var indexOf=__dependency3__.indexOf;var beginPropertyChanges=__dependency4__.beginPropertyChanges;var endPropertyChanges=__dependency4__.endPropertyChanges;function onBegin(current){run.currentRunLoop=current}function onEnd(current,next){run.currentRunLoop=next}var Backburner=requireModule("backburner").Backburner;var backburner=new Backburner(["sync","actions","destroy"],{sync:{before:beginPropertyChanges,after:endPropertyChanges},defaultQueue:"actions",onBegin:onBegin,onEnd:onEnd,onErrorTarget:Ember,onErrorMethod:"onerror"});var slice=[].slice;var concat=[].concat;__exports__["default"]=run;function run(){return apply(backburner,backburner.run,arguments)}run.join=function(target,method){if(!run.currentRunLoop){return apply(Ember,run,arguments)}var args=slice.call(arguments);args.unshift("actions");apply(run,run.schedule,args)};run.bind=function(target,method){var args=slice.call(arguments);return function(){return apply(run,run.join,args.concat(slice.call(arguments)))}};run.backburner=backburner;run.currentRunLoop=null;run.queues=backburner.queueNames;run.begin=function(){backburner.begin()};run.end=function(){backburner.end()};run.schedule=function(queue,target,method){checkAutoRun();apply(backburner,backburner.schedule,arguments)};run.hasScheduledTimers=function(){return backburner.hasTimers()};run.cancelTimers=function(){backburner.cancelTimers()};run.sync=function(){if(backburner.currentInstance){backburner.currentInstance.queues.sync.flush()}};run.later=function(target,method){return apply(backburner,backburner.later,arguments)};run.once=function(target,method){checkAutoRun();var args=slice.call(arguments);args.unshift("actions");return apply(backburner,backburner.scheduleOnce,args)};run.scheduleOnce=function(queue,target,method){checkAutoRun();return apply(backburner,backburner.scheduleOnce,arguments)};run.next=function(){var args=slice.call(arguments);args.push(1);return apply(backburner,backburner.later,args)};run.cancel=function(timer){return backburner.cancel(timer)};run.debounce=function(){return apply(backburner,backburner.debounce,arguments)};run.throttle=function(){return apply(backburner,backburner.throttle,arguments)};function checkAutoRun(){if(!run.currentRunLoop){}}run._addQueue=function(name,after){if(indexOf.call(run.queues,name)===-1){run.queues.splice(indexOf.call(run.queues,after)+1,0,name)}}});define("ember-metal/set_properties",["ember-metal/property_events","ember-metal/property_set","exports"],function(__dependency1__,__dependency2__,__exports__){"use strict";var changeProperties=__dependency1__.changeProperties;var set=__dependency2__.set;__exports__["default"]=function setProperties(self,hash){changeProperties(function(){for(var prop in hash){if(hash.hasOwnProperty(prop)){set(self,prop,hash[prop])}}});return self}});define("ember-metal/utils",["ember-metal/core","ember-metal/platform","ember-metal/array","ember-metal/keys","exports"],function(__dependency1__,__dependency2__,__dependency3__,__dependency4__,__exports__){"use strict";var Ember=__dependency1__["default"];var platform=__dependency2__.platform;var create=__dependency2__.create;var forEach=__dependency3__.forEach;var keys=__dependency4__["default"];var _uuid=0;function uuid(){return++_uuid}__exports__.uuid=uuid;var GUID_PREFIX="ember";var o_defineProperty=platform.defineProperty;var o_create=create;var numberCache=[];var stringCache={};var MANDATORY_SETTER=Ember.ENV.MANDATORY_SETTER;function intern(string){var obj=Object.create(null);obj[string]=true;return keys(obj)[0]}var GUID_KEY=intern("__ember"+ +new Date);var GUID_DESC={writable:false,configurable:false,enumerable:false,value:null};function generateGuid(obj,prefix){if(!prefix)prefix=GUID_PREFIX;var ret=prefix+uuid();if(obj){if(obj[GUID_KEY]===null){obj[GUID_KEY]=ret}else{GUID_DESC.value=ret;o_defineProperty(obj,GUID_KEY,GUID_DESC)}}return ret}__exports__.generateGuid=generateGuid;function guidFor(obj){if(obj===undefined)return"(undefined)";if(obj===null)return"(null)";var ret;var type=typeof obj;switch(type){case"number":ret=numberCache[obj];if(!ret)ret=numberCache[obj]="nu"+obj;return ret;case"string":ret=stringCache[obj];if(!ret)ret=stringCache[obj]="st"+uuid();return ret;case"boolean":return obj?"(true)":"(false)";default:if(obj[GUID_KEY])return obj[GUID_KEY];if(obj===Object)return"(Object)";if(obj===Array)return"(Array)";ret=GUID_PREFIX+uuid();if(obj[GUID_KEY]===null){obj[GUID_KEY]=ret}else{GUID_DESC.value=ret;o_defineProperty(obj,GUID_KEY,GUID_DESC)}return ret}}__exports__.guidFor=guidFor;var META_DESC={writable:true,configurable:false,enumerable:false,value:null};var isDefinePropertySimulated=platform.defineProperty.isSimulated;function Meta(obj){this.descs={};this.watching={};this.cache={};this.cacheMeta={};this.source=obj}Meta.prototype={descs:null,deps:null,watching:null,listeners:null,cache:null,cacheMeta:null,source:null,mixins:null,bindings:null,chains:null,chainWatchers:null,values:null,proto:null};if(isDefinePropertySimulated){Meta.prototype.__preventPlainObject__=true;Meta.prototype.toJSON=function(){}}var EMPTY_META=new Meta(null);if(MANDATORY_SETTER){EMPTY_META.values={}}function meta(obj,writable){var ret=obj["__ember_meta__"];if(writable===false)return ret||EMPTY_META;if(!ret){if(!isDefinePropertySimulated)o_defineProperty(obj,"__ember_meta__",META_DESC);ret=new Meta(obj);if(MANDATORY_SETTER){ret.values={}}obj["__ember_meta__"]=ret;ret.descs.constructor=null}else if(ret.source!==obj){if(!isDefinePropertySimulated)o_defineProperty(obj,"__ember_meta__",META_DESC);ret=o_create(ret);ret.descs=o_create(ret.descs);ret.watching=o_create(ret.watching);ret.cache={};ret.cacheMeta={};ret.source=obj;if(MANDATORY_SETTER){ret.values=o_create(ret.values)}obj["__ember_meta__"]=ret}return ret}function getMeta(obj,property){var _meta=meta(obj,false);return _meta[property]}__exports__.getMeta=getMeta;function setMeta(obj,property,value){var _meta=meta(obj,true);_meta[property]=value;return value}__exports__.setMeta=setMeta;function metaPath(obj,path,writable){var _meta=meta(obj,writable),keyName,value;for(var i=0,l=path.length;i1){watching[keyName]--}}__exports__.unwatchKey=unwatchKey});define("ember-metal/watch_path",["ember-metal/utils","ember-metal/chains","exports"],function(__dependency1__,__dependency2__,__exports__){"use strict";var meta=__dependency1__.meta;var typeOf=__dependency1__.typeOf;var ChainNode=__dependency2__.ChainNode;var metaFor=meta;function chainsFor(obj,meta){var m=meta||metaFor(obj),ret=m.chains;if(!ret){ret=m.chains=new ChainNode(null,null,obj)}else if(ret.value()!==obj){ret=m.chains=ret.copy(obj)}return ret}function watchPath(obj,keyPath,meta){if(keyPath==="length"&&typeOf(obj)==="array"){return}var m=meta||metaFor(obj),watching=m.watching;if(!watching[keyPath]){watching[keyPath]=1;chainsFor(obj,m).add(keyPath)}else{watching[keyPath]=(watching[keyPath]||0)+1}}__exports__.watchPath=watchPath;function unwatchPath(obj,keyPath,meta){var m=meta||metaFor(obj),watching=m.watching;if(watching[keyPath]===1){watching[keyPath]=0;chainsFor(obj,m).remove(keyPath)}else if(watching[keyPath]>1){watching[keyPath]--}}__exports__.unwatchPath=unwatchPath});define("ember-metal/watching",["ember-metal/utils","ember-metal/chains","ember-metal/watch_key","ember-metal/watch_path","ember-metal/path_cache","exports"],function(__dependency1__,__dependency2__,__dependency3__,__dependency4__,__dependency5__,__exports__){"use strict";var meta=__dependency1__.meta;var GUID_KEY=__dependency1__.GUID_KEY;var typeOf=__dependency1__.typeOf;var generateGuid=__dependency1__.generateGuid;var removeChainWatcher=__dependency2__.removeChainWatcher;var flushPendingChains=__dependency2__.flushPendingChains;var watchKey=__dependency3__.watchKey;var unwatchKey=__dependency3__.unwatchKey;var watchPath=__dependency4__.watchPath;var unwatchPath=__dependency4__.unwatchPath;var metaFor=meta;var isPath=__dependency5__.isPath;function watch(obj,_keyPath,m){if(_keyPath==="length"&&typeOf(obj)==="array"){return}if(!isPath(_keyPath)){watchKey(obj,_keyPath,m)}else{watchPath(obj,_keyPath,m)}}__exports__.watch=watch;function isWatching(obj,key){var meta=obj["__ember_meta__"];return(meta&&meta.watching[key])>0}__exports__.isWatching=isWatching;watch.flushPending=flushPendingChains;function unwatch(obj,_keyPath,m){if(_keyPath==="length"&&typeOf(obj)==="array"){return}if(!isPath(_keyPath)){unwatchKey(obj,_keyPath,m)}else{unwatchPath(obj,_keyPath,m)}}__exports__.unwatch=unwatch;function rewatch(obj){var m=obj["__ember_meta__"],chains=m&&m.chains;if(GUID_KEY in obj&&!obj.hasOwnProperty(GUID_KEY)){generateGuid(obj)}if(chains&&chains.value()!==obj){m.chains=chains.copy(obj)}}__exports__.rewatch=rewatch;var NODE_STACK=[];function destroy(obj){var meta=obj["__ember_meta__"],node,nodes,key,nodeObject;if(meta){obj["__ember_meta__"]=null;node=meta.chains;if(node){NODE_STACK.push(node);while(NODE_STACK.length>0){node=NODE_STACK.pop();nodes=node._chains;if(nodes){for(key in nodes){if(nodes.hasOwnProperty(key)){NODE_STACK.push(nodes[key])}}}if(node._watching){nodeObject=node._object;if(nodeObject){removeChainWatcher(nodeObject,node._key,node)}}}}}}__exports__.destroy=destroy});define("ember-routing-handlebars",["ember-metal/core","ember-handlebars","ember-routing/system/router","ember-routing-handlebars/helpers/shared","ember-routing-handlebars/helpers/link_to","ember-routing-handlebars/helpers/outlet","ember-routing-handlebars/helpers/render","ember-routing-handlebars/helpers/action","exports"],function(__dependency1__,__dependency2__,__dependency3__,__dependency4__,__dependency5__,__dependency6__,__dependency7__,__dependency8__,__exports__){"use strict";var Ember=__dependency1__["default"];var EmberHandlebars=__dependency2__["default"];var Router=__dependency3__["default"];var resolvePaths=__dependency4__.resolvePaths;var resolveParams=__dependency4__.resolveParams;var deprecatedLinkToHelper=__dependency5__.deprecatedLinkToHelper;var linkToHelper=__dependency5__.linkToHelper;var LinkView=__dependency5__.LinkView;var outletHelper=__dependency6__.outletHelper;var OutletView=__dependency6__.OutletView;var renderHelper=__dependency7__["default"];var ActionHelper=__dependency8__.ActionHelper;var actionHelper=__dependency8__.actionHelper;Router.resolveParams=resolveParams;Router.resolvePaths=resolvePaths;Ember.LinkView=LinkView;EmberHandlebars.ActionHelper=ActionHelper;EmberHandlebars.OutletView=OutletView;EmberHandlebars.registerHelper("render",renderHelper);EmberHandlebars.registerHelper("action",actionHelper);EmberHandlebars.registerHelper("outlet",outletHelper);EmberHandlebars.registerHelper("link-to",linkToHelper);EmberHandlebars.registerHelper("linkTo",deprecatedLinkToHelper);__exports__["default"]=Ember});define("ember-routing-handlebars/helpers/action",["ember-metal/core","ember-metal/property_get","ember-metal/array","ember-metal/utils","ember-metal/run_loop","ember-views/system/utils","ember-routing/system/router","ember-handlebars","ember-handlebars/ext","ember-handlebars/helpers/view","ember-routing-handlebars/helpers/shared","exports"],function(__dependency1__,__dependency2__,__dependency3__,__dependency4__,__dependency5__,__dependency6__,__dependency7__,__dependency8__,__dependency9__,__dependency10__,__dependency11__,__exports__){"use strict";var Ember=__dependency1__["default"];var get=__dependency2__.get;var forEach=__dependency3__.forEach;var uuid=__dependency4__.uuid;var run=__dependency5__["default"];var isSimpleClick=__dependency6__.isSimpleClick;var EmberRouter=__dependency7__["default"];var EmberHandlebars=__dependency8__["default"];var handlebarsGet=__dependency9__.handlebarsGet;var viewHelper=__dependency10__.viewHelper;var resolveParams=__dependency11__.resolveParams;var resolvePath=__dependency11__.resolvePath;var SafeString=EmberHandlebars.SafeString;var a_slice=Array.prototype.slice;function args(options,actionName){var ret=[];if(actionName){ret.push(actionName)}var types=options.options.types.slice(1),data=options.options.data;return ret.concat(resolveParams(options.context,options.params,{types:types,data:data}))}var ActionHelper={registeredActions:{}};__exports__.ActionHelper=ActionHelper;var keys=["alt","shift","meta","ctrl"];var POINTER_EVENT_TYPE_REGEX=/^click|mouse|touch/;var isAllowedEvent=function(event,allowedKeys){if(typeof allowedKeys==="undefined"){if(POINTER_EVENT_TYPE_REGEX.test(event.type)){return isSimpleClick(event)}else{allowedKeys=""}}if(allowedKeys.indexOf("any")>=0){return true}var allowed=true;forEach.call(keys,function(key){if(event[key+"Key"]&&allowedKeys.indexOf(key)===-1){allowed=false}});return allowed};function isKeyEvent(eventName){return["keyUp","keyPress","keyDown"].indexOf(eventName)!==-1}function ignoreKeyEvent(eventName,event,keyCode){var any="any";keyCode=keyCode||any;return isKeyEvent(eventName)&&keyCode!==any&&keyCode!==event.which.toString()}ActionHelper.registerAction=function(actionNameOrPath,options,allowedKeys){var actionId=uuid();ActionHelper.registeredActions[actionId]={eventName:options.eventName,handler:function handleRegisteredAction(event){if(!isAllowedEvent(event,allowedKeys)){return true}if(options.preventDefault!==false){event.preventDefault()}if(options.bubbles===false){event.stopPropagation()}var target=options.target,parameters=options.parameters,eventName=options.eventName,actionName;if(Ember.FEATURES.isEnabled("ember-routing-handlebars-action-with-key-code")){if(ignoreKeyEvent(eventName,event,options.withKeyCode)){return}}if(target.target){target=handlebarsGet(target.root,target.target,target.options)}else{target=target.root}if(options.boundProperty){actionName=resolveParams(parameters.context,[actionNameOrPath],{types:["ID"],data:parameters.options.data})[0];if(typeof actionName==="undefined"||typeof actionName==="function"){actionName=actionNameOrPath}}if(!actionName){actionName=actionNameOrPath}run(function runRegisteredAction(){if(target.send){target.send.apply(target,args(parameters,actionName))}else{target[actionName].apply(target,args(parameters))}})}};options.view.on("willClearRender",function(){delete ActionHelper.registeredActions[actionId]});return actionId};function actionHelper(actionName){var options=arguments[arguments.length-1],contexts=a_slice.call(arguments,1,-1);var hash=options.hash,controller=options.data.keywords.controller;var action={eventName:hash.on||"click",parameters:{context:this,options:options,params:contexts},view:options.data.view,bubbles:hash.bubbles,preventDefault:hash.preventDefault,target:{options:options},withKeyCode:hash.withKeyCode,boundProperty:options.types[0]==="ID"};if(hash.target){action.target.root=this;action.target.target=hash.target}else if(controller){action.target.root=controller}var actionId=ActionHelper.registerAction(actionName,action,hash.allowedKeys);return new SafeString('data-ember-action="'+actionId+'"')}__exports__.actionHelper=actionHelper});define("ember-routing-handlebars/helpers/link_to",["ember-metal/core","ember-metal/property_get","ember-metal/property_set","ember-metal/merge","ember-metal/run_loop","ember-metal/computed","ember-runtime/system/lazy_load","ember-runtime/system/string","ember-runtime/system/object","ember-metal/keys","ember-views/system/utils","ember-views/views/component","ember-handlebars","ember-handlebars/helpers/view","ember-routing/system/router","ember-routing-handlebars/helpers/shared","exports"],function(__dependency1__,__dependency2__,__dependency3__,__dependency4__,__dependency5__,__dependency6__,__dependency7__,__dependency8__,__dependency9__,__dependency10__,__dependency11__,__dependency12__,__dependency13__,__dependency14__,__dependency15__,__dependency16__,__exports__){"use strict";var Ember=__dependency1__["default"];var get=__dependency2__.get;var set=__dependency3__.set;var merge=__dependency4__["default"];var run=__dependency5__["default"];var computed=__dependency6__.computed;var onLoad=__dependency7__.onLoad;var fmt=__dependency8__.fmt;var EmberObject=__dependency9__["default"];var keys=__dependency10__["default"];var isSimpleClick=__dependency11__.isSimpleClick;var EmberComponent=__dependency12__["default"];var EmberHandlebars=__dependency13__["default"];var viewHelper=__dependency14__.viewHelper;var EmberRouter=__dependency15__["default"];var resolveParams=__dependency16__.resolveParams;var resolvePaths=__dependency16__.resolvePaths;var routeArgs=__dependency16__.routeArgs;var slice=[].slice;requireModule("ember-handlebars");var numberOfContextsAcceptedByHandler=function(handler,handlerInfos){var req=0;for(var i=0,l=handlerInfos.length;imaximumContexts){routeName=leafName}var args=routeArgs(routeName,contexts,null);var isActive=router.isActive.apply(router,args);if(!isActive){return false}if(!isCurrentWhenSpecified&&leafName===loadedParams.targetRouteName){var visibleQueryParams={};merge(visibleQueryParams,loadedParams.queryParams);router._prepareQueryParams(loadedParams.targetRouteName,loadedParams.models,visibleQueryParams);isActive=shallowEqual(visibleQueryParams,router.router.state.queryParams)}return isActive}if(Ember.FEATURES.isEnabled("ember-routing-multi-current-when")){currentWhen=currentWhen.split("|");for(var i=0,len=currentWhen.length;i2){var factory=container.lookupFactory(controllerFullName)||generateControllerFactory(container,controllerName,context);controller=factory.create({model:context,parentController:parentController,target:parentController});view.one("willDestroyElement",function(){controller.destroy()})}else{controller=container.lookup(controllerFullName)||generateController(container,controllerName);controller.setProperties({target:parentController,parentController:parentController})}var root=options.contexts[1];if(root){view.registerObserver(root,contextString,function(){controller.set("model",handlebarsGet(root,contextString,options))})}options.hash.viewName=camelize(name);var templateName="template:"+name;options.hash.template=container.lookup(templateName);options.hash.controller=controller;if(router&&!context){router._connectActiveView(name,view)}options.helperName=options.helperName||'render "'+name+'"';viewHelper.call(this,view,options)}});define("ember-routing-handlebars/helpers/shared",["ember-metal/property_get","ember-metal/array","ember-runtime/mixins/controller","ember-handlebars/ext","ember-metal/utils","exports"],function(__dependency1__,__dependency2__,__dependency3__,__dependency4__,__dependency5__,__exports__){"use strict";var get=__dependency1__.get;var map=__dependency2__.map;var ControllerMixin=__dependency3__["default"];var handlebarsResolve=__dependency4__.resolveParams;var handlebarsGet=__dependency4__.handlebarsGet;var typeOf=__dependency5__.typeOf;var get=__dependency1__.get;function routeArgs(targetRouteName,models,queryParams){var args=[];if(typeOf(targetRouteName)==="string"){args.push(""+targetRouteName)}args.push.apply(args,models);args.push({queryParams:queryParams});return args}__exports__.routeArgs=routeArgs;function getActiveTargetName(router){var handlerInfos=router.activeTransition?router.activeTransition.state.handlerInfos:router.state.handlerInfos;return handlerInfos[handlerInfos.length-1].name}__exports__.getActiveTargetName=getActiveTargetName;function resolveParams(context,params,options){return map.call(resolvePaths(context,params,options),function(path,i){if(null===path){return params[i]}else{return handlebarsGet(context,path,options)}})}__exports__.resolveParams=resolveParams;function stashParamNames(router,handlerInfos){if(handlerInfos._namesStashed){return}var targetRouteName=handlerInfos[handlerInfos.length-1].name;var recogHandlers=router.router.recognizer.handlersFor(targetRouteName);var dynamicParent=null;for(var i=0,len=handlerInfos.length;i7)},_replacePath:function(path){this._location.replace(this._getOrigin()+path)},_getRootURL:function(){return this.rootURL},_getPath:function(){var pathname=this._location.pathname;if(pathname.charAt(0)!=="/"){pathname="/"+pathname}return pathname},_getHash:EmberLocation._getHash,_getQuery:function(){return this._location.search},_getFullPath:function(){return this._getPath()+this._getQuery()+this._getHash()},_getHistoryPath:function(){var rootURL=this._getRootURL();var path=this._getPath();var hash=this._getHash();var query=this._getQuery();var rootURLIndex=path.indexOf(rootURL);var routeHash,hashParts;if(hash.substr(0,2)==="#/"){hashParts=hash.substr(1).split("#");routeHash=hashParts.shift();if(path.slice(-1)==="/"){routeHash=routeHash.substr(1)}path+=routeHash;path+=query;if(hashParts.length){path+="#"+hashParts.join("#")}}else{path+=query;path+=hash}return path},_getHashPath:function(){var rootURL=this._getRootURL();var path=rootURL;var historyPath=this._getHistoryPath();var routePath=historyPath.substr(rootURL.length);if(routePath!==""){if(routePath.charAt(0)!=="/"){routePath="/"+routePath}path+="#"+routePath}return path},create:function(options){if(options&&options.rootURL){this.rootURL=options.rootURL}var historyPath,hashPath;var cancelRouterSetup=false;var implementationClass=this._NoneLocation;var currentPath=this._getFullPath();if(this._getSupportsHistory()){historyPath=this._getHistoryPath();if(currentPath===historyPath){implementationClass=this._HistoryLocation}else{if(Ember.FEATURES.isEnabled("ember-routing-auto-location-uses-replace-state-for-history")){if(currentPath.substr(0,2)==="/#"){this._history.replaceState({path:historyPath},null,historyPath);implementationClass=this._HistoryLocation}else{cancelRouterSetup=true;this._replacePath(historyPath)}}else{cancelRouterSetup=true;this._replacePath(historyPath)}}}else if(this._getSupportsHashChange()){hashPath=this._getHashPath();if(currentPath===hashPath||currentPath==="/"&&hashPath==="/#/"){implementationClass=this._HashLocation}else{cancelRouterSetup=true;this._replacePath(hashPath)}}var implementation=implementationClass.create.apply(implementationClass,arguments);if(cancelRouterSetup){set(implementation,"cancelRouterSetup",true)}return implementation}}});define("ember-routing/location/hash_location",["ember-metal/property_get","ember-metal/property_set","ember-metal/run_loop","ember-metal/utils","ember-runtime/system/object","ember-routing/location/api","ember-views/system/jquery","exports"],function(__dependency1__,__dependency2__,__dependency3__,__dependency4__,__dependency5__,__dependency6__,__dependency7__,__exports__){"use strict";var get=__dependency1__.get;var set=__dependency2__.set;var run=__dependency3__["default"];var guidFor=__dependency4__.guidFor;var EmberObject=__dependency5__["default"];var EmberLocation=__dependency6__["default"];var jQuery=__dependency7__["default"];__exports__["default"]=EmberObject.extend({implementation:"hash",init:function(){set(this,"location",get(this,"_location")||window.location)},getHash:EmberLocation._getHash,getURL:function(){return this.getHash().substr(1)},setURL:function(path){get(this,"location").hash=path;set(this,"lastSetURL",path)},replaceURL:function(path){get(this,"location").replace("#"+path);set(this,"lastSetURL",path)},onUpdateURL:function(callback){var self=this;var guid=guidFor(this);jQuery(window).on("hashchange.ember-location-"+guid,function(){run(function(){var path=self.getURL();if(get(self,"lastSetURL")===path){return}set(self,"lastSetURL",null);callback(path)})})},formatURL:function(url){return"#"+url},willDestroy:function(){var guid=guidFor(this);jQuery(window).off("hashchange.ember-location-"+guid)}})});define("ember-routing/location/history_location",["ember-metal/core","ember-metal/property_get","ember-metal/property_set","ember-metal/utils","ember-runtime/system/object","ember-views/system/jquery","exports"],function(__dependency1__,__dependency2__,__dependency3__,__dependency4__,__dependency5__,__dependency6__,__exports__){"use strict";var Ember=__dependency1__["default"];var get=__dependency2__.get;var set=__dependency3__.set;var guidFor=__dependency4__.guidFor;var EmberObject=__dependency5__["default"];var jQuery=__dependency6__["default"];var popstateFired=false;var supportsHistoryState=window.history&&"state"in window.history;__exports__["default"]=EmberObject.extend({implementation:"history",init:function(){set(this,"location",get(this,"location")||window.location);set(this,"baseURL",jQuery("base").attr("href")||"")},initState:function(){set(this,"history",get(this,"history")||window.history);this.replaceState(this.formatURL(this.getURL()))},rootURL:"/",getURL:function(){var rootURL=get(this,"rootURL");var location=get(this,"location");var path=location.pathname;var baseURL=get(this,"baseURL");rootURL=rootURL.replace(/\/$/,"");baseURL=baseURL.replace(/\/$/,"");var url=path.replace(baseURL,"").replace(rootURL,"");var search=location.search||"";url+=search;return url},setURL:function(path){var state=this.getState();path=this.formatURL(path);if(!state||state.path!==path){this.pushState(path)}},replaceURL:function(path){var state=this.getState();path=this.formatURL(path);if(!state||state.path!==path){this.replaceState(path)}},getState:function(){return supportsHistoryState?get(this,"history").state:this._historyState},pushState:function(path){var state={path:path};get(this,"history").pushState(state,null,path);if(!supportsHistoryState){this._historyState=state}this._previousURL=this.getURL()},replaceState:function(path){var state={path:path};get(this,"history").replaceState(state,null,path);if(!supportsHistoryState){this._historyState=state}this._previousURL=this.getURL()},onUpdateURL:function(callback){var guid=guidFor(this);var self=this;jQuery(window).on("popstate.ember-location-"+guid,function(e){if(!popstateFired){popstateFired=true;if(self.getURL()===self._previousURL){return}}callback(self.getURL())})},formatURL:function(url){var rootURL=get(this,"rootURL");var baseURL=get(this,"baseURL");if(url!==""){rootURL=rootURL.replace(/\/$/,"");baseURL=baseURL.replace(/\/$/,"")}else if(baseURL.match(/^\//)&&rootURL.match(/^\//)){baseURL=baseURL.replace(/\/$/,"")}return baseURL+rootURL+url},willDestroy:function(){var guid=guidFor(this);jQuery(window).off("popstate.ember-location-"+guid)}})});define("ember-routing/location/none_location",["ember-metal/property_get","ember-metal/property_set","ember-runtime/system/object","exports"],function(__dependency1__,__dependency2__,__dependency3__,__exports__){"use strict";var get=__dependency1__.get;var set=__dependency2__.set;var EmberObject=__dependency3__["default"];__exports__["default"]=EmberObject.extend({implementation:"none",path:"",getURL:function(){return get(this,"path")},setURL:function(path){set(this,"path",path)},onUpdateURL:function(callback){this.updateCallback=callback},handleURL:function(url){set(this,"path",url);this.updateCallback(url)},formatURL:function(url){return url}})});define("ember-routing/system/cache",["ember-runtime/system/object","exports"],function(__dependency1__,__exports__){"use strict";var EmberObject=__dependency1__["default"];__exports__["default"]=EmberObject.extend({init:function(){this.cache={}},has:function(bucketKey){return bucketKey in this.cache},stash:function(bucketKey,key,value){var bucket=this.cache[bucketKey];if(!bucket){bucket=this.cache[bucketKey]={}}bucket[key]=value},lookup:function(bucketKey,prop,defaultValue){var cache=this.cache;if(!(bucketKey in cache)){return defaultValue}var bucket=cache[bucketKey];if(prop in bucket){return bucket[prop]}else{return defaultValue}},cache:null})});define("ember-routing/system/controller_for",["exports"],function(__exports__){"use strict";__exports__["default"]=function controllerFor(container,controllerName,lookupOptions){return container.lookup("controller:"+controllerName,lookupOptions)}});define("ember-routing/system/dsl",["ember-metal/core","exports"],function(__dependency1__,__exports__){"use strict";var Ember=__dependency1__["default"];function DSL(name){this.parent=name;this.matches=[]}__exports__["default"]=DSL;DSL.prototype={route:function(name,options,callback){if(arguments.length===2&&typeof options==="function"){callback=options;options={}}if(arguments.length===1){options={}}var type=options.resetNamespace===true?"resource":"route";if(typeof options.path!=="string"){options.path="/"+name}if(canNest(this)&&options.resetNamespace!==true){name=this.parent+"."+name}if(callback){var dsl=new DSL(name);route(dsl,"loading");route(dsl,"error",{path:"/_unused_dummy_error_path_route_"+name+"/:error"});if(callback){callback.call(dsl)}this.push(options.path,name,dsl.generate())}else{this.push(options.path,name,null)}if(Ember.FEATURES.isEnabled("ember-routing-named-substates")){route(this,name+"_loading",{resetNamespace:options.resetNamespace});route(this,name+"_error",{path:"/_unused_dummy_error_path_route_"+name+"/:error"})}},push:function(url,name,callback){var parts=name.split(".");if(url===""||url==="/"||parts[parts.length-1]==="index"){this.explicitIndex=true}this.matches.push([url,name,callback])},resource:function(name,options,callback){if(arguments.length===2&&typeof options==="function"){callback=options;options={}}if(arguments.length===1){options={}}options.resetNamespace=true;this.route(name,options,callback)},generate:function(){var dslMatches=this.matches;if(!this.explicitIndex){route(this,"index",{path:"/"})}return function(match){for(var i=0,l=dslMatches.length;i1){var qp0=qps[0].qp,qp1=qps[1].qp}var qp=qps[0].qp;queryParams[qp.urlKey]=qp.route.serializeQueryParam(qps[0].value,qp.urlKey,qp.type)}},_deserializeQueryParams:function(targetRouteName,queryParams){forEachQueryParam(this,targetRouteName,queryParams,function(key,value,qp){delete queryParams[key];queryParams[qp.prop]=qp.route.deserializeQueryParam(value,qp.urlKey,qp.type)})},_pruneDefaultQueryParamValues:function(targetRouteName,queryParams){var qps=this._queryParamsFor(targetRouteName);for(var key in queryParams){var qp=qps.map[key];if(qp&&qp.sdef===queryParams[key]){delete queryParams[key]}}},_doTransition:function(_targetRouteName,models,_queryParams){var targetRouteName=_targetRouteName||getActiveTargetName(this.router);var queryParams={};merge(queryParams,_queryParams);this._prepareQueryParams(targetRouteName,models,queryParams);var transitionArgs=routeArgs(targetRouteName,models,queryParams);var transitionPromise=this.router.transitionTo.apply(this.router,transitionArgs);listenForTransitionErrors(transitionPromise);return transitionPromise},_prepareQueryParams:function(targetRouteName,models,queryParams){this._hydrateUnsuppliedQueryParams(targetRouteName,models,queryParams);this._serializeQueryParams(targetRouteName,queryParams);this._pruneDefaultQueryParamValues(targetRouteName,queryParams)},_queryParamsFor:function(leafRouteName){if(this._qpCache[leafRouteName]){return this._qpCache[leafRouteName]}var map={},qps=[],qpCache=this._qpCache[leafRouteName]={map:map,qps:qps};var routerjs=this.router,recogHandlerInfos=routerjs.recognizer.handlersFor(leafRouteName);for(var i=0,len=recogHandlerInfos.length;i=0;--i){handlerInfo=handlerInfos[i];route=handlerInfo.handler;if(!originRouteFound){if(originRoute===route){originRouteFound=true}continue}if(callback(route,handlerInfos[i+1].handler)!==true){return false}}return true}var defaultActionHandlers={willResolveModel:function(transition,originRoute){originRoute.router._scheduleLoadingEvent(transition,originRoute)},error:function(error,transition,originRoute){var router=originRoute.router;var tryTopLevel=forEachRouteAbove(originRoute,transition,function(route,childRoute){var childErrorRouteName=findChildRouteName(route,childRoute,"error");if(childErrorRouteName){router.intermediateTransitionTo(childErrorRouteName,error);return}return true});if(tryTopLevel){if(routeHasBeenDefined(originRoute.router,"application_error")){router.intermediateTransitionTo("application_error",error);return}}logError(error,"Error while processing route: "+transition.targetName)},loading:function(transition,originRoute){var router=originRoute.router;var tryTopLevel=forEachRouteAbove(originRoute,transition,function(route,childRoute){var childLoadingRouteName=findChildRouteName(route,childRoute,"loading");if(childLoadingRouteName){router.intermediateTransitionTo(childLoadingRouteName);return}if(transition.pivotHandler!==route){return true}});if(tryTopLevel){if(routeHasBeenDefined(originRoute.router,"application_loading")){router.intermediateTransitionTo("application_loading");return}}}};function logError(error,initialMessage){var errorArgs=[];if(initialMessage){errorArgs.push(initialMessage)}if(error){if(error.message){errorArgs.push(error.message)}if(error.stack){errorArgs.push(error.stack)}if(typeof error==="string"){errorArgs.push(error)}}Ember.Logger.error.apply(this,errorArgs)}function findChildRouteName(parentRoute,originatingChildRoute,name){var router=parentRoute.router;var childName;var targetChildRouteName=originatingChildRoute.routeName.split(".").pop();var namespace=parentRoute.routeName==="application"?"":parentRoute.routeName+".";if(Ember.FEATURES.isEnabled("ember-routing-named-substates")){childName=namespace+targetChildRouteName+"_"+name;if(routeHasBeenDefined(router,childName)){return childName}}childName=namespace+name;if(routeHasBeenDefined(router,childName)){return childName}}function routeHasBeenDefined(router,name){var container=router.container;return router.hasRoute(name)&&(container.has("template:"+name)||container.has("route:"+name))}function triggerEvent(handlerInfos,ignoreFailure,args){var name=args.shift();if(!handlerInfos){if(ignoreFailure){return}throw new EmberError("Can't trigger action '"+name+"' because your app hasn't finished transitioning into its first route. To trigger an action on destination routes during a transition, you can call `.send()` on the `Transition` object passed to the `model/beforeModel/afterModel` hooks.")}var eventWasHandled=false;var handlerInfo,handler;for(var i=handlerInfos.length-1;i>=0;i--){handlerInfo=handlerInfos[i];handler=handlerInfo.handler;if(handler._actions&&handler._actions[name]){if(handler._actions[name].apply(handler,args)===true){eventWasHandled=true}else{return}}}if(defaultActionHandlers[name]){defaultActionHandlers[name].apply(null,args);return}if(!eventWasHandled&&!ignoreFailure){throw new EmberError("Nothing handled the action '"+name+"'. If you did handle the action, this error can be caused by returning true from an action handler in a controller, causing the action to bubble.")}}function calculatePostTransitionState(emberRouter,leafRouteName,contexts){var routerjs=emberRouter.router;var state=routerjs.applyIntent(leafRouteName,contexts);var handlerInfos=state.handlerInfos;var params=state.params;for(var i=0,len=handlerInfos.length;i0)-(diff<0)}__exports__["default"]=function compare(v,w){if(v===w){return 0}var type1=typeOf(v);var type2=typeOf(w);if(Comparable){if(type1==="instance"&&Comparable.detect(v.constructor)){return v.constructor.compare(v,w)}if(type2==="instance"&&Comparable.detect(w.constructor)){return 1-w.constructor.compare(w,v)}}var res=spaceship(TYPE_ORDER[type1],TYPE_ORDER[type2]);if(res!==0){return res}switch(type1){case"boolean":case"number":return spaceship(v,w);case"string":return spaceship(v.localeCompare(w),0);case"array":var vLen=v.length;var wLen=w.length;var len=Math.min(vLen,wLen);for(var i=0;i1){args=a_slice.call(arguments,0,-1);options=a_slice.call(arguments,-1)[0]}if(typeof options!=="object"){throw new EmberError("Array Computed Property declared without an options hash")}var cp=new ArrayComputedProperty(options);if(args){cp.property.apply(cp,args)}return cp}__exports__.arrayComputed=arrayComputed;__exports__.ArrayComputedProperty=ArrayComputedProperty});define("ember-runtime/computed/reduce_computed",["ember-metal/core","ember-metal/property_get","ember-metal/property_set","ember-metal/utils","ember-metal/error","ember-metal/property_events","ember-metal/expand_properties","ember-metal/observer","ember-metal/computed","ember-metal/platform","ember-metal/enumerable_utils","ember-runtime/system/tracked_array","ember-runtime/mixins/array","ember-metal/run_loop","exports"],function(__dependency1__,__dependency2__,__dependency3__,__dependency4__,__dependency5__,__dependency6__,__dependency7__,__dependency8__,__dependency9__,__dependency10__,__dependency11__,__dependency12__,__dependency13__,__dependency14__,__exports__){"use strict";var Ember=__dependency1__["default"];var e_get=__dependency2__.get;var set=__dependency3__.set;var guidFor=__dependency4__.guidFor;var metaFor=__dependency4__.meta;var EmberError=__dependency5__["default"];var propertyWillChange=__dependency6__.propertyWillChange;var propertyDidChange=__dependency6__.propertyDidChange;var expandProperties=__dependency7__["default"];var addObserver=__dependency8__.addObserver;var observersFor=__dependency8__.observersFor;var removeObserver=__dependency8__.removeObserver;var addBeforeObserver=__dependency8__.addBeforeObserver;var removeBeforeObserver=__dependency8__.removeBeforeObserver;var ComputedProperty=__dependency9__.ComputedProperty;
+var cacheFor=__dependency9__.cacheFor;var o_create=__dependency10__.create;var forEach=__dependency11__.forEach;var TrackedArray=__dependency12__["default"];var EmberArray=__dependency13__["default"];var run=__dependency14__["default"];var isArray=__dependency4__.isArray;var cacheSet=cacheFor.set;var cacheGet=cacheFor.get;var cacheRemove=cacheFor.remove;var a_slice=[].slice;var eachPropertyPattern=/^(.*)\.@each\.(.*)/;var doubleEachPropertyPattern=/(.*\.@each){2,}/;var arrayBracketPattern=/\.\[\]$/;function get(obj,key){if(key==="@this"){return obj}return e_get(obj,key)}function DependentArraysObserver(callbacks,cp,instanceMeta,context,propertyName,sugarMeta){this.callbacks=callbacks;this.cp=cp;this.instanceMeta=instanceMeta;this.dependentKeysByGuid={};this.trackedArraysByGuid={};this.suspended=false;this.changedItems={};this.changedItemCount=0}function ItemPropertyObserverContext(dependentArray,index,trackedArray){this.dependentArray=dependentArray;this.index=index;this.item=dependentArray.objectAt(index);this.trackedArray=trackedArray;this.beforeObserver=null;this.observer=null;this.destroyed=false}DependentArraysObserver.prototype={setValue:function(newValue){this.instanceMeta.setValue(newValue,true)},getValue:function(){return this.instanceMeta.getValue()},setupObservers:function(dependentArray,dependentKey){this.dependentKeysByGuid[guidFor(dependentArray)]=dependentKey;dependentArray.addArrayObserver(this,{willChange:"dependentArrayWillChange",didChange:"dependentArrayDidChange"});if(this.cp._itemPropertyKeys[dependentKey]){this.setupPropertyObservers(dependentKey,this.cp._itemPropertyKeys[dependentKey])}},teardownObservers:function(dependentArray,dependentKey){var itemPropertyKeys=this.cp._itemPropertyKeys[dependentKey]||[];delete this.dependentKeysByGuid[guidFor(dependentArray)];this.teardownPropertyObservers(dependentKey,itemPropertyKeys);dependentArray.removeArrayObserver(this,{willChange:"dependentArrayWillChange",didChange:"dependentArrayDidChange"})},suspendArrayObservers:function(callback,binding){var oldSuspended=this.suspended;this.suspended=true;callback.call(binding);this.suspended=oldSuspended},setupPropertyObservers:function(dependentKey,itemPropertyKeys){var dependentArray=get(this.instanceMeta.context,dependentKey),length=get(dependentArray,"length"),observerContexts=new Array(length);this.resetTransformations(dependentKey,observerContexts);forEach(dependentArray,function(item,index){var observerContext=this.createPropertyObserverContext(dependentArray,index,this.trackedArraysByGuid[dependentKey]);observerContexts[index]=observerContext;forEach(itemPropertyKeys,function(propertyKey){addBeforeObserver(item,propertyKey,this,observerContext.beforeObserver);addObserver(item,propertyKey,this,observerContext.observer)},this)},this)},teardownPropertyObservers:function(dependentKey,itemPropertyKeys){var dependentArrayObserver=this;var trackedArray=this.trackedArraysByGuid[dependentKey];var beforeObserver,observer,item;if(!trackedArray){return}trackedArray.apply(function(observerContexts,offset,operation){if(operation===TrackedArray.DELETE){return}forEach(observerContexts,function(observerContext){observerContext.destroyed=true;beforeObserver=observerContext.beforeObserver;observer=observerContext.observer;item=observerContext.item;forEach(itemPropertyKeys,function(propertyKey){removeBeforeObserver(item,propertyKey,dependentArrayObserver,beforeObserver);removeObserver(item,propertyKey,dependentArrayObserver,observer)})})})},createPropertyObserverContext:function(dependentArray,index,trackedArray){var observerContext=new ItemPropertyObserverContext(dependentArray,index,trackedArray);this.createPropertyObserver(observerContext);return observerContext},createPropertyObserver:function(observerContext){var dependentArrayObserver=this;observerContext.beforeObserver=function(obj,keyName){return dependentArrayObserver.itemPropertyWillChange(obj,keyName,observerContext.dependentArray,observerContext)};observerContext.observer=function(obj,keyName){return dependentArrayObserver.itemPropertyDidChange(obj,keyName,observerContext.dependentArray,observerContext)}},resetTransformations:function(dependentKey,observerContexts){this.trackedArraysByGuid[dependentKey]=new TrackedArray(observerContexts)},trackAdd:function(dependentKey,index,newItems){var trackedArray=this.trackedArraysByGuid[dependentKey];if(trackedArray){trackedArray.addItems(index,newItems)}},trackRemove:function(dependentKey,index,removedCount){var trackedArray=this.trackedArraysByGuid[dependentKey];if(trackedArray){return trackedArray.removeItems(index,removedCount)}return[]},updateIndexes:function(trackedArray,array){var length=get(array,"length");trackedArray.apply(function(observerContexts,offset,operation,operationIndex){if(operation===TrackedArray.DELETE){return}if(operationIndex===0&&operation===TrackedArray.RETAIN&&observerContexts.length===length&&offset===0){return}forEach(observerContexts,function(context,index){context.index=index+offset})})},dependentArrayWillChange:function(dependentArray,index,removedCount,addedCount){if(this.suspended){return}var removedItem=this.callbacks.removedItem;var changeMeta;var guid=guidFor(dependentArray);var dependentKey=this.dependentKeysByGuid[guid];var itemPropertyKeys=this.cp._itemPropertyKeys[dependentKey]||[];var length=get(dependentArray,"length");var normalizedIndex=normalizeIndex(index,length,0);var normalizedRemoveCount=normalizeRemoveCount(normalizedIndex,length,removedCount);var item,itemIndex,sliceIndex,observerContexts;observerContexts=this.trackRemove(dependentKey,normalizedIndex,normalizedRemoveCount);function removeObservers(propertyKey){observerContexts[sliceIndex].destroyed=true;removeBeforeObserver(item,propertyKey,this,observerContexts[sliceIndex].beforeObserver);removeObserver(item,propertyKey,this,observerContexts[sliceIndex].observer)}for(sliceIndex=normalizedRemoveCount-1;sliceIndex>=0;--sliceIndex){itemIndex=normalizedIndex+sliceIndex;if(itemIndex>=length){break}item=dependentArray.objectAt(itemIndex);forEach(itemPropertyKeys,removeObservers,this);changeMeta=new ChangeMeta(dependentArray,item,itemIndex,this.instanceMeta.propertyName,this.cp,normalizedRemoveCount);this.setValue(removedItem.call(this.instanceMeta.context,this.getValue(),item,changeMeta,this.instanceMeta.sugarMeta))}},dependentArrayDidChange:function(dependentArray,index,removedCount,addedCount){if(this.suspended){return}var addedItem=this.callbacks.addedItem;var guid=guidFor(dependentArray);var dependentKey=this.dependentKeysByGuid[guid];var observerContexts=new Array(addedCount);var itemPropertyKeys=this.cp._itemPropertyKeys[dependentKey];var length=get(dependentArray,"length");var normalizedIndex=normalizeIndex(index,length,addedCount);var endIndex=normalizedIndex+addedCount;var changeMeta,observerContext;forEach(dependentArray.slice(normalizedIndex,endIndex),function(item,sliceIndex){if(itemPropertyKeys){observerContext=this.createPropertyObserverContext(dependentArray,normalizedIndex+sliceIndex,this.trackedArraysByGuid[dependentKey]);observerContexts[sliceIndex]=observerContext;forEach(itemPropertyKeys,function(propertyKey){addBeforeObserver(item,propertyKey,this,observerContext.beforeObserver);addObserver(item,propertyKey,this,observerContext.observer)},this)}changeMeta=new ChangeMeta(dependentArray,item,normalizedIndex+sliceIndex,this.instanceMeta.propertyName,this.cp,addedCount);this.setValue(addedItem.call(this.instanceMeta.context,this.getValue(),item,changeMeta,this.instanceMeta.sugarMeta))},this);this.trackAdd(dependentKey,normalizedIndex,observerContexts)},itemPropertyWillChange:function(obj,keyName,array,observerContext){var guid=guidFor(obj);if(!this.changedItems[guid]){this.changedItems[guid]={array:array,observerContext:observerContext,obj:obj,previousValues:{}}}++this.changedItemCount;this.changedItems[guid].previousValues[keyName]=get(obj,keyName)},itemPropertyDidChange:function(obj,keyName,array,observerContext){if(--this.changedItemCount===0){this.flushChanges()}},flushChanges:function(){var changedItems=this.changedItems,key,c,changeMeta;for(key in changedItems){c=changedItems[key];if(c.observerContext.destroyed){continue}this.updateIndexes(c.observerContext.trackedArray,c.observerContext.dependentArray);changeMeta=new ChangeMeta(c.array,c.obj,c.observerContext.index,this.instanceMeta.propertyName,this.cp,changedItems.length,c.previousValues);this.setValue(this.callbacks.removedItem.call(this.instanceMeta.context,this.getValue(),c.obj,changeMeta,this.instanceMeta.sugarMeta));this.setValue(this.callbacks.addedItem.call(this.instanceMeta.context,this.getValue(),c.obj,changeMeta,this.instanceMeta.sugarMeta))}this.changedItems={}}};function normalizeIndex(index,length,newItemsOffset){if(index<0){return Math.max(0,length+index)}else if(index1){args=a_slice.call(arguments,0,-1);options=a_slice.call(arguments,-1)[0]}if(typeof options!=="object"){throw new EmberError("Reduce Computed Property declared without an options hash")}if(!("initialValue"in options)){throw new EmberError("Reduce Computed Property declared without an initial value")}var cp=new ReduceComputedProperty(options);if(args){cp.property.apply(cp,args)}return cp}__exports__.reduceComputed=reduceComputed});define("ember-runtime/computed/reduce_computed_macros",["ember-metal/core","ember-metal/merge","ember-metal/property_get","ember-metal/property_set","ember-metal/utils","ember-metal/error","ember-metal/enumerable_utils","ember-metal/run_loop","ember-metal/observer","ember-runtime/computed/array_computed","ember-runtime/computed/reduce_computed","ember-runtime/system/object_proxy","ember-runtime/system/subarray","ember-metal/keys","ember-runtime/compare","exports"],function(__dependency1__,__dependency2__,__dependency3__,__dependency4__,__dependency5__,__dependency6__,__dependency7__,__dependency8__,__dependency9__,__dependency10__,__dependency11__,__dependency12__,__dependency13__,__dependency14__,__dependency15__,__exports__){"use strict";var Ember=__dependency1__["default"];var merge=__dependency2__["default"];var get=__dependency3__.get;var set=__dependency4__.set;var isArray=__dependency5__.isArray;var guidFor=__dependency5__.guidFor;var EmberError=__dependency6__["default"];var forEach=__dependency7__.forEach;var run=__dependency8__["default"];var addObserver=__dependency9__.addObserver;var arrayComputed=__dependency10__.arrayComputed;var reduceComputed=__dependency11__.reduceComputed;var ObjectProxy=__dependency12__["default"];var SubArray=__dependency13__["default"];var keys=__dependency14__["default"];var compare=__dependency15__["default"];var a_slice=[].slice;function sum(dependentKey){return reduceComputed(dependentKey,{initialValue:0,addedItem:function(accumulatedValue,item,changeMeta,instanceMeta){return accumulatedValue+item},removedItem:function(accumulatedValue,item,changeMeta,instanceMeta){return accumulatedValue-item}})}__exports__.sum=sum;function max(dependentKey){return reduceComputed(dependentKey,{initialValue:-Infinity,addedItem:function(accumulatedValue,item,changeMeta,instanceMeta){return Math.max(accumulatedValue,item)},removedItem:function(accumulatedValue,item,changeMeta,instanceMeta){if(itemaccumulatedValue){return accumulatedValue}}})}__exports__.min=min;function map(dependentKey,callback){var options={addedItem:function(array,item,changeMeta,instanceMeta){var mapped=callback.call(this,item);array.insertAt(changeMeta.index,mapped);return array},removedItem:function(array,item,changeMeta,instanceMeta){array.removeAt(changeMeta.index,1);return array}};return arrayComputed(dependentKey,options)}__exports__.map=map;function mapBy(dependentKey,propertyKey){var callback=function(item){return get(item,propertyKey)};return map(dependentKey+".@each."+propertyKey,callback)}__exports__.mapBy=mapBy;var mapProperty=mapBy;__exports__.mapProperty=mapProperty;function filter(dependentKey,callback){var options={initialize:function(array,changeMeta,instanceMeta){instanceMeta.filteredArrayIndexes=new SubArray},addedItem:function(array,item,changeMeta,instanceMeta){var match=!!callback.call(this,item);var filterIndex=instanceMeta.filteredArrayIndexes.addItem(changeMeta.index,match);if(match){array.insertAt(filterIndex,item)}return array},removedItem:function(array,item,changeMeta,instanceMeta){var filterIndex=instanceMeta.filteredArrayIndexes.removeItem(changeMeta.index);if(filterIndex>-1){array.removeAt(filterIndex)}return array}};return arrayComputed(dependentKey,options)}__exports__.filter=filter;function filterBy(dependentKey,propertyKey,value){var callback;if(arguments.length===2){callback=function(item){return get(item,propertyKey)}}else{callback=function(item){return get(item,propertyKey)===value}}return filter(dependentKey+".@each."+propertyKey,callback)}__exports__.filterBy=filterBy;var filterProperty=filterBy;__exports__.filterProperty=filterProperty;function uniq(){var args=a_slice.call(arguments);args.push({initialize:function(array,changeMeta,instanceMeta){instanceMeta.itemCounts={}},addedItem:function(array,item,changeMeta,instanceMeta){var guid=guidFor(item);if(!instanceMeta.itemCounts[guid]){instanceMeta.itemCounts[guid]=1;array.pushObject(item)}else{++instanceMeta.itemCounts[guid]}return array},removedItem:function(array,item,_,instanceMeta){var guid=guidFor(item);var itemCounts=instanceMeta.itemCounts;if(--itemCounts[guid]===0){array.removeObject(item)}return array}});return arrayComputed.apply(null,args)}__exports__.uniq=uniq;var union=uniq;__exports__.union=union;function intersect(){var getDependentKeyGuids=function(changeMeta){return map(changeMeta.property._dependentKeys,function(dependentKey){return guidFor(dependentKey)})};var args=a_slice.call(arguments);args.push({initialize:function(array,changeMeta,instanceMeta){instanceMeta.itemCounts={}},addedItem:function(array,item,changeMeta,instanceMeta){var itemGuid=guidFor(item);var dependentGuids=getDependentKeyGuids(changeMeta);var dependentGuid=guidFor(changeMeta.arrayChanged);var numberOfDependentArrays=changeMeta.property._dependentKeys.length;var itemCounts=instanceMeta.itemCounts;if(!itemCounts[itemGuid]){itemCounts[itemGuid]={}}if(itemCounts[itemGuid][dependentGuid]===undefined){itemCounts[itemGuid][dependentGuid]=0}if(++itemCounts[itemGuid][dependentGuid]===1&&numberOfDependentArrays===keys(itemCounts[itemGuid]).length){array.addObject(item)}return array},removedItem:function(array,item,changeMeta,instanceMeta){var itemGuid=guidFor(item);var dependentGuids=getDependentKeyGuids(changeMeta);var dependentGuid=guidFor(changeMeta.arrayChanged);var numberOfDependentArrays=changeMeta.property._dependentKeys.length;var numberOfArraysItemAppearsIn;var itemCounts=instanceMeta.itemCounts;if(itemCounts[itemGuid][dependentGuid]===undefined){itemCounts[itemGuid][dependentGuid]=0}if(--itemCounts[itemGuid][dependentGuid]===0){delete itemCounts[itemGuid][dependentGuid];numberOfArraysItemAppearsIn=keys(itemCounts[itemGuid]).length;if(numberOfArraysItemAppearsIn===0){delete itemCounts[itemGuid]}array.removeObject(item)}return array}});return arrayComputed.apply(null,args)}__exports__.intersect=intersect;function setDiff(setAProperty,setBProperty){if(arguments.length!==2){throw new EmberError("setDiff requires exactly two dependent arrays.")}return arrayComputed(setAProperty,setBProperty,{addedItem:function(array,item,changeMeta,instanceMeta){var setA=get(this,setAProperty);var setB=get(this,setBProperty);if(changeMeta.arrayChanged===setA){if(!setB.contains(item)){array.addObject(item)}}else{array.removeObject(item)}return array},removedItem:function(array,item,changeMeta,instanceMeta){var setA=get(this,setAProperty);var setB=get(this,setBProperty);if(changeMeta.arrayChanged===setB){if(setA.contains(item)){array.addObject(item)}}else{array.removeObject(item)}return array}})}__exports__.setDiff=setDiff;function binarySearch(array,item,low,high){var mid,midItem,res,guidMid,guidItem;if(arguments.length<4){high=get(array,"length")}if(arguments.length<3){low=0}if(low===high){return low}mid=low+Math.floor((high-low)/2);midItem=array.objectAt(mid);guidMid=_guidFor(midItem);guidItem=_guidFor(item);if(guidMid===guidItem){return mid}res=this.order(midItem,item);if(res===0){res=guidMid0){return this.binarySearch(array,item,low,mid)}return mid;function _guidFor(item){if(SearchProxy.detectInstance(item)){return guidFor(get(item,"content"))}return guidFor(item)}}var SearchProxy=ObjectProxy.extend();function sort(itemsKey,sortDefinition){var initFn,sortPropertiesKey;if(typeof sortDefinition==="function"){initFn=function(array,changeMeta,instanceMeta){instanceMeta.order=sortDefinition;instanceMeta.binarySearch=binarySearch}}else{sortPropertiesKey=sortDefinition;initFn=function(array,changeMeta,instanceMeta){function setupSortProperties(){var sortPropertyDefinitions=get(this,sortPropertiesKey);var sortProperties=instanceMeta.sortProperties=[];var sortPropertyAscending=instanceMeta.sortPropertyAscending={};var sortProperty,idx,asc;changeMeta.property.clearItemPropertyKeys(itemsKey);forEach(sortPropertyDefinitions,function(sortPropertyDefinition){if((idx=sortPropertyDefinition.indexOf(":"))!==-1){sortProperty=sortPropertyDefinition.substring(0,idx);asc=sortPropertyDefinition.substring(idx+1).toLowerCase()!=="desc"}else{sortProperty=sortPropertyDefinition;asc=true}sortProperties.push(sortProperty);sortPropertyAscending[sortProperty]=asc;changeMeta.property.itemPropertyKey(itemsKey,sortProperty)});sortPropertyDefinitions.addObserver("@each",this,updateSortPropertiesOnce)}function updateSortPropertiesOnce(){run.once(this,updateSortProperties,changeMeta.propertyName)}function updateSortProperties(propertyName){setupSortProperties.call(this);changeMeta.property.recomputeOnce.call(this,propertyName)}addObserver(this,sortPropertiesKey,updateSortPropertiesOnce);setupSortProperties.call(this);instanceMeta.order=function(itemA,itemB){var isProxy=itemB instanceof SearchProxy;var sortProperty,result,asc;for(var i=0;i=0&&idxidx){subController=subControllers[idx];if(subController){return subController}}if(this._isVirtual){parentController=get(this,"parentController")}else{parentController=this}if(Ember.FEATURES.isEnabled("ember-runtime-item-controller-inline-class")){options={target:parentController,parentController:parentController,model:object};if(typeof controllerClass==="string"){fullName="controller:"+controllerClass;if(!container.has(fullName)){throw new EmberError('Could not resolve itemController: "'+controllerClass+'"')}subControllerFactory=container.lookupFactory(fullName)}else{subControllerFactory=controllerClass;options.container=container}subController=subControllerFactory.create(options)}else{fullName="controller:"+controllerClass;if(!container.has(fullName)){throw new EmberError('Could not resolve itemController: "'+controllerClass+'"')}subController=container.lookupFactory(fullName).create({target:parentController,parentController:parentController,model:object})}subControllers[idx]=subController;return subController},_subControllers:null,_resetSubControllers:function(){var controller;var subControllers=this._subControllers;if(subControllers.length){for(var i=0,length=subControllers.length;length>i;i++){controller=subControllers[i];if(controller){controller.destroy()}}subControllers.length=0}},willDestroy:function(){this._resetSubControllers();this._super()}})});define("ember-runtime/controllers/controller",["ember-runtime/system/object","ember-runtime/mixins/controller","exports"],function(__dependency1__,__dependency2__,__exports__){"use strict";var EmberObject=__dependency1__["default"];var Mixin=__dependency2__["default"];__exports__["default"]=EmberObject.extend(Mixin)});define("ember-runtime/controllers/object_controller",["ember-runtime/mixins/controller","ember-runtime/system/object_proxy","exports"],function(__dependency1__,__dependency2__,__exports__){"use strict";var ControllerMixin=__dependency1__["default"];var ObjectProxy=__dependency2__["default"];__exports__["default"]=ObjectProxy.extend(ControllerMixin)});define("ember-runtime/copy",["ember-metal/enumerable_utils","ember-metal/utils","ember-runtime/system/object","ember-runtime/mixins/copyable","exports"],function(__dependency1__,__dependency2__,__dependency3__,__dependency4__,__exports__){"use strict";var indexOf=__dependency1__.indexOf;var typeOf=__dependency2__.typeOf;var EmberObject=__dependency3__["default"];var Copyable=__dependency4__["default"];function _copy(obj,deep,seen,copies){var ret,loc,key;if(typeof obj!=="object"||obj===null){return obj}if(deep&&(loc=indexOf(seen,obj))>=0){return copies[loc]}if(typeOf(obj)==="array"){ret=obj.slice();if(deep){loc=ret.length;while(--loc>=0){ret[loc]=_copy(ret[loc],deep,seen,copies)}}}else if(Copyable&&Copyable.detect(obj)){ret=obj.copy(deep,seen,copies)}else if(obj instanceof Date){ret=new Date(obj.getTime())}else{ret={};for(key in obj){if(obj.hasOwnProperty&&!obj.hasOwnProperty(key)){continue}if(key.substring(0,2)==="__"){continue}ret[key]=deep?_copy(obj[key],deep,seen,copies):obj[key]}}if(deep){seen.push(obj);copies.push(ret)}return ret}__exports__["default"]=function copy(obj,deep){if("object"!==typeof obj||obj===null){return obj}if(Copyable&&Copyable.detect(obj)){return obj.copy(deep)}return _copy(obj,deep,deep?[]:null,deep?[]:null)}});define("ember-runtime/core",["exports"],function(__exports__){"use strict";var isEqual=function isEqual(a,b){if(a&&typeof a.isEqual==="function"){return a.isEqual(b)}if(a instanceof Date&&b instanceof Date){return a.getTime()===b.getTime()}return a===b};__exports__.isEqual=isEqual});define("ember-runtime/ext/function",["ember-metal/core","ember-metal/expand_properties","ember-metal/computed"],function(__dependency1__,__dependency2__,__dependency3__){"use strict";var Ember=__dependency1__["default"];var expandProperties=__dependency2__["default"];var computed=__dependency3__.computed;var a_slice=Array.prototype.slice;var FunctionPrototype=Function.prototype;if(Ember.EXTEND_PROTOTYPES===true||Ember.EXTEND_PROTOTYPES.Function){FunctionPrototype.property=function(){var ret=computed(this);return ret.property.apply(ret,arguments)};FunctionPrototype.observes=function(){var watched=[];
+var addWatchedProperty=function(obs){watched.push(obs)};for(var i=0;i=0){return}if(typeof obj.hasOwnProperty==="function"&&!obj.hasOwnProperty(key)){return}array.push(key)};keys=function keys(obj){var ret=[];var key;for(key in obj){pushPropertyName(obj,ret,key)}for(var i=0,l=prototypeProperties.length;i=get(this,"length"))return undefined;return get(this,idx)},objectsAt:function(indexes){var self=this;return map(indexes,function(idx){return self.objectAt(idx)})},nextObject:function(idx){return this.objectAt(idx)},"[]":computed(function(key,value){if(value!==undefined)this.replace(0,get(this,"length"),value);return this}),firstObject:computed(function(){return this.objectAt(0)}),lastObject:computed(function(){return this.objectAt(get(this,"length")-1)}),contains:function(obj){return this.indexOf(obj)>=0},slice:function(beginIndex,endIndex){var ret=Ember.A();var length=get(this,"length");if(isNone(beginIndex))beginIndex=0;if(isNone(endIndex)||endIndex>length)endIndex=length;if(beginIndex<0)beginIndex=length+beginIndex;if(endIndex<0)endIndex=length+endIndex;while(beginIndex=len)startAt=len-1;if(startAt<0)startAt+=len;for(idx=startAt;idx>=0;idx--){if(this.objectAt(idx)===object)return idx}return-1},addArrayObserver:function(target,opts){return arrayObserversHelper(this,target,opts,addListener,false)},removeArrayObserver:function(target,opts){return arrayObserversHelper(this,target,opts,removeListener,true)},hasArrayObservers:computed(function(){return hasListeners(this,"@array:change")||hasListeners(this,"@array:before")}),arrayContentWillChange:function(startIdx,removeAmt,addAmt){if(startIdx===undefined){startIdx=0;removeAmt=addAmt=-1}else{if(removeAmt===undefined)removeAmt=-1;if(addAmt===undefined)addAmt=-1}if(isWatching(this,"@each")){get(this,"@each")}sendEvent(this,"@array:before",[this,startIdx,removeAmt,addAmt]);var removing,lim;if(startIdx>=0&&removeAmt>=0&&get(this,"hasEnumerableObservers")){removing=[];lim=startIdx+removeAmt;for(var idx=startIdx;idx=0&&addAmt>=0&&get(this,"hasEnumerableObservers")){adding=[];lim=startIdx+addAmt;for(var idx=startIdx;idx1)args=a_slice.call(arguments,1);this.forEach(function(x,idx){var method=x&&x[methodName];if("function"===typeof method){ret[idx]=args?apply(x,method,args):x[methodName]()}},this);return ret},toArray:function(){var ret=Ember.A();this.forEach(function(o,idx){ret[idx]=o});return ret},compact:function(){return this.filter(function(value){return value!=null})},without:function(value){if(!this.contains(value))return this;var ret=Ember.A();this.forEach(function(k){if(k!==value)ret[ret.length]=k});return ret},uniq:function(){var ret=Ember.A();this.forEach(function(k){if(indexOf(ret,k)<0)ret.push(k)});return ret},"[]":computed(function(key,value){return this}),addEnumerableObserver:function(target,opts){var willChange=opts&&opts.willChange||"enumerableWillChange",didChange=opts&&opts.didChange||"enumerableDidChange";var hasObservers=get(this,"hasEnumerableObservers");if(!hasObservers)propertyWillChange(this,"hasEnumerableObservers");addListener(this,"@enumerable:before",target,willChange);addListener(this,"@enumerable:change",target,didChange);if(!hasObservers)propertyDidChange(this,"hasEnumerableObservers");return this},removeEnumerableObserver:function(target,opts){var willChange=opts&&opts.willChange||"enumerableWillChange",didChange=opts&&opts.didChange||"enumerableDidChange";var hasObservers=get(this,"hasEnumerableObservers");if(hasObservers)propertyWillChange(this,"hasEnumerableObservers");removeListener(this,"@enumerable:before",target,willChange);removeListener(this,"@enumerable:change",target,didChange);if(hasObservers)propertyDidChange(this,"hasEnumerableObservers");return this},hasEnumerableObservers:computed(function(){return hasListeners(this,"@enumerable:change")||hasListeners(this,"@enumerable:before")}),enumerableContentWillChange:function(removing,adding){var removeCnt,addCnt,hasDelta;if("number"===typeof removing)removeCnt=removing;else if(removing)removeCnt=get(removing,"length");else removeCnt=removing=-1;if("number"===typeof adding)addCnt=adding;else if(adding)addCnt=get(adding,"length");else addCnt=adding=-1;hasDelta=addCnt<0||removeCnt<0||addCnt-removeCnt!==0;if(removing===-1)removing=null;if(adding===-1)adding=null;propertyWillChange(this,"[]");if(hasDelta)propertyWillChange(this,"length");sendEvent(this,"@enumerable:before",[this,removing,adding]);return this},enumerableContentDidChange:function(removing,adding){var removeCnt,addCnt,hasDelta;if("number"===typeof removing)removeCnt=removing;else if(removing)removeCnt=get(removing,"length");else removeCnt=removing=-1;if("number"===typeof adding)addCnt=adding;else if(adding)addCnt=get(adding,"length");else addCnt=adding=-1;hasDelta=addCnt<0||removeCnt<0||addCnt-removeCnt!==0;if(removing===-1)removing=null;if(adding===-1)adding=null;sendEvent(this,"@enumerable:change",[this,removing,adding]);if(hasDelta)propertyDidChange(this,"length");propertyDidChange(this,"[]");return this},sortBy:function(){var sortKeys=arguments;return this.toArray().sort(function(a,b){for(var i=0;iget(this,"length"))throw new EmberError(OUT_OF_RANGE_EXCEPTION);this.replace(idx,0,[object]);return this},removeAt:function(start,len){if("number"===typeof start){if(start<0||start>=get(this,"length")){throw new EmberError(OUT_OF_RANGE_EXCEPTION)}if(len===undefined)len=1;this.replace(start,len,EMPTY)}return this},pushObject:function(obj){this.insertAt(get(this,"length"),obj);return obj},pushObjects:function(objects){if(!(Enumerable.detect(objects)||isArray(objects))){throw new TypeError("Must pass Ember.Enumerable to Ember.MutableArray#pushObjects")}this.replace(get(this,"length"),0,objects);return this},popObject:function(){var len=get(this,"length");if(len===0)return null;var ret=this.objectAt(len-1);this.removeAt(len-1,1);return ret},shiftObject:function(){if(get(this,"length")===0)return null;var ret=this.objectAt(0);this.removeAt(0);return ret},unshiftObject:function(obj){this.insertAt(0,obj);return obj},unshiftObjects:function(objects){this.replace(0,0,objects);return this},reverseObjects:function(){var len=get(this,"length");if(len===0)return this;var objects=this.toArray().reverse();this.replace(0,len,objects);return this},setObjects:function(objects){if(objects.length===0)return this.clear();var len=get(this,"length");this.replace(0,len,objects);return this},removeObject:function(obj){var loc=get(this,"length")||0;while(--loc>=0){var curObject=this.objectAt(loc);if(curObject===obj)this.removeAt(loc)}return this},addObject:function(obj){if(!this.contains(obj))this.pushObject(obj);return this}})});define("ember-runtime/mixins/mutable_enumerable",["ember-metal/enumerable_utils","ember-runtime/mixins/enumerable","ember-metal/mixin","ember-metal/property_events","exports"],function(__dependency1__,__dependency2__,__dependency3__,__dependency4__,__exports__){"use strict";var forEach=__dependency1__.forEach;var Enumerable=__dependency2__["default"];var Mixin=__dependency3__.Mixin;var required=__dependency3__.required;var beginPropertyChanges=__dependency4__.beginPropertyChanges;var endPropertyChanges=__dependency4__.endPropertyChanges;__exports__["default"]=Mixin.create(Enumerable,{addObject:required(Function),addObjects:function(objects){beginPropertyChanges(this);forEach(objects,function(obj){this.addObject(obj)},this);endPropertyChanges(this);return this},removeObject:required(Function),removeObjects:function(objects){beginPropertyChanges(this);for(var i=objects.length-1;i>=0;i--){this.removeObject(objects[i])}endPropertyChanges(this);return this}})});define("ember-runtime/mixins/observable",["ember-metal/core","ember-metal/property_get","ember-metal/property_set","ember-metal/utils","ember-metal/get_properties","ember-metal/set_properties","ember-metal/mixin","ember-metal/events","ember-metal/property_events","ember-metal/observer","ember-metal/computed","ember-metal/is_none","exports"],function(__dependency1__,__dependency2__,__dependency3__,__dependency4__,__dependency5__,__dependency6__,__dependency7__,__dependency8__,__dependency9__,__dependency10__,__dependency11__,__dependency12__,__exports__){"use strict";var Ember=__dependency1__["default"];var get=__dependency2__.get;var getWithDefault=__dependency2__.getWithDefault;var set=__dependency3__.set;var apply=__dependency4__.apply;var getProperties=__dependency5__["default"];var setProperties=__dependency6__["default"];var Mixin=__dependency7__.Mixin;var hasListeners=__dependency8__.hasListeners;var beginPropertyChanges=__dependency9__.beginPropertyChanges;var propertyWillChange=__dependency9__.propertyWillChange;var propertyDidChange=__dependency9__.propertyDidChange;var endPropertyChanges=__dependency9__.endPropertyChanges;var addObserver=__dependency10__.addObserver;var addBeforeObserver=__dependency10__.addBeforeObserver;var removeObserver=__dependency10__.removeObserver;var observersFor=__dependency10__.observersFor;var cacheFor=__dependency11__.cacheFor;var isNone=__dependency12__.isNone;var slice=Array.prototype.slice;__exports__["default"]=Mixin.create({get:function(keyName){return get(this,keyName)},getProperties:function(){return apply(null,getProperties,[this].concat(slice.call(arguments)))},set:function(keyName,value){set(this,keyName,value);return this},setProperties:function(hash){return setProperties(this,hash)},beginPropertyChanges:function(){beginPropertyChanges();return this},endPropertyChanges:function(){endPropertyChanges();return this},propertyWillChange:function(keyName){propertyWillChange(this,keyName);return this},propertyDidChange:function(keyName){propertyDidChange(this,keyName);return this},notifyPropertyChange:function(keyName){this.propertyWillChange(keyName);this.propertyDidChange(keyName);return this},addBeforeObserver:function(key,target,method){addBeforeObserver(this,key,target,method)},addObserver:function(key,target,method){addObserver(this,key,target,method)},removeObserver:function(key,target,method){removeObserver(this,key,target,method)},hasObserverFor:function(key){return hasListeners(this,key+":change")},getWithDefault:function(keyName,defaultValue){return getWithDefault(this,keyName,defaultValue)},incrementProperty:function(keyName,increment){if(isNone(increment)){increment=1}set(this,keyName,(parseFloat(get(this,keyName))||0)+increment);return get(this,keyName)},decrementProperty:function(keyName,decrement){if(isNone(decrement)){decrement=1}set(this,keyName,(get(this,keyName)||0)-decrement);return get(this,keyName)},toggleProperty:function(keyName){set(this,keyName,!get(this,keyName));return get(this,keyName)},cacheFor:function(keyName){return cacheFor(this,keyName)},observersForKey:function(keyName){return observersFor(this,keyName)}})});define("ember-runtime/mixins/promise_proxy",["ember-metal/property_get","ember-metal/set_properties","ember-metal/computed","ember-metal/mixin","ember-metal/error","exports"],function(__dependency1__,__dependency2__,__dependency3__,__dependency4__,__dependency5__,__exports__){"use strict";var get=__dependency1__.get;var setProperties=__dependency2__["default"];var computed=__dependency3__.computed;var Mixin=__dependency4__.Mixin;var EmberError=__dependency5__["default"];var not=computed.not;var or=computed.or;function tap(proxy,promise){setProperties(proxy,{isFulfilled:false,isRejected:false});return promise.then(function(value){setProperties(proxy,{content:value,isFulfilled:true});return value},function(reason){setProperties(proxy,{reason:reason,isRejected:true});throw reason},"Ember: PromiseProxy")}__exports__["default"]=Mixin.create({reason:null,isPending:not("isSettled").readOnly(),isSettled:or("isRejected","isFulfilled").readOnly(),isRejected:false,isFulfilled:false,promise:computed(function(key,promise){if(arguments.length===2){return tap(this,promise)}else{throw new EmberError("PromiseProxy's promise must be set")}}),then:promiseAlias("then"),"catch":promiseAlias("catch"),"finally":promiseAlias("finally")});function promiseAlias(name){return function(){var promise=get(this,"promise");return promise[name].apply(promise,arguments)}}});define("ember-runtime/mixins/proxy",["ember-metal/core","ember-metal/property_get","ember-metal/property_set","ember-metal/utils","ember-metal/observer","ember-metal/property_events","ember-metal/computed","ember-metal/properties","ember-metal/mixin","ember-runtime/system/string","ember-runtime/system/object","exports"],function(__dependency1__,__dependency2__,__dependency3__,__dependency4__,__dependency5__,__dependency6__,__dependency7__,__dependency8__,__dependency9__,__dependency10__,__dependency11__,__exports__){"use strict";
+var Ember=__dependency1__["default"];var get=__dependency2__.get;var set=__dependency3__.set;var meta=__dependency4__.meta;var addObserver=__dependency5__.addObserver;var removeObserver=__dependency5__.removeObserver;var addBeforeObserver=__dependency5__.addBeforeObserver;var removeBeforeObserver=__dependency5__.removeBeforeObserver;var propertyWillChange=__dependency6__.propertyWillChange;var propertyDidChange=__dependency6__.propertyDidChange;var computed=__dependency7__.computed;var defineProperty=__dependency8__.defineProperty;var Mixin=__dependency9__.Mixin;var observer=__dependency9__.observer;var fmt=__dependency10__.fmt;var EmberObject=__dependency11__["default"];function contentPropertyWillChange(content,contentKey){var key=contentKey.slice(8);if(key in this){return}propertyWillChange(this,key)}function contentPropertyDidChange(content,contentKey){var key=contentKey.slice(8);if(key in this){return}propertyDidChange(this,key)}__exports__["default"]=Mixin.create({content:null,_contentDidChange:observer("content",function(){}),isTruthy:computed.bool("content"),_debugContainerKey:null,willWatchProperty:function(key){var contentKey="content."+key;addBeforeObserver(this,contentKey,null,contentPropertyWillChange);addObserver(this,contentKey,null,contentPropertyDidChange)},didUnwatchProperty:function(key){var contentKey="content."+key;removeBeforeObserver(this,contentKey,null,contentPropertyWillChange);removeObserver(this,contentKey,null,contentPropertyDidChange)},unknownProperty:function(key){var content=get(this,"content");if(content){return get(content,key)}},setUnknownProperty:function(key,value){var m=meta(this);if(m.proto===this){defineProperty(this,key,null,value);return value}var content=get(this,"content");return set(content,key,value)}})});define("ember-runtime/mixins/sortable",["ember-metal/core","ember-metal/property_get","ember-metal/property_set","ember-metal/enumerable_utils","ember-metal/mixin","ember-runtime/mixins/mutable_enumerable","ember-runtime/compare","ember-metal/observer","ember-metal/computed","exports"],function(__dependency1__,__dependency2__,__dependency3__,__dependency4__,__dependency5__,__dependency6__,__dependency7__,__dependency8__,__dependency9__,__exports__){"use strict";var Ember=__dependency1__["default"];var get=__dependency2__.get;var set=__dependency3__.set;var forEach=__dependency4__.forEach;var Mixin=__dependency5__.Mixin;var MutableEnumerable=__dependency6__["default"];var compare=__dependency7__["default"];var addObserver=__dependency8__.addObserver;var removeObserver=__dependency8__.removeObserver;var computed=__dependency9__.computed;var beforeObserver=__dependency5__.beforeObserver;var observer=__dependency5__.observer;__exports__["default"]=Mixin.create(MutableEnumerable,{sortProperties:null,sortAscending:true,sortFunction:compare,orderBy:function(item1,item2){var result=0,sortProperties=get(this,"sortProperties"),sortAscending=get(this,"sortAscending"),sortFunction=get(this,"sortFunction");forEach(sortProperties,function(propertyName){if(result===0){result=sortFunction.call(this,get(item1,propertyName),get(item2,propertyName));if(result!==0&&!sortAscending){result=-1*result}}},this);return result},destroy:function(){var content=get(this,"content"),sortProperties=get(this,"sortProperties");if(content&&sortProperties){forEach(content,function(item){forEach(sortProperties,function(sortProperty){removeObserver(item,sortProperty,this,"contentItemSortPropertyDidChange")},this)},this)}return this._super()},isSorted:computed.notEmpty("sortProperties"),arrangedContent:computed("content","sortProperties.@each",function(key,value){var content=get(this,"content"),isSorted=get(this,"isSorted"),sortProperties=get(this,"sortProperties"),self=this;if(content&&isSorted){content=content.slice();content.sort(function(item1,item2){return self.orderBy(item1,item2)});forEach(content,function(item){forEach(sortProperties,function(sortProperty){addObserver(item,sortProperty,this,"contentItemSortPropertyDidChange")},this)},this);return Ember.A(content)}return content}),_contentWillChange:beforeObserver("content",function(){var content=get(this,"content"),sortProperties=get(this,"sortProperties");if(content&&sortProperties){forEach(content,function(item){forEach(sortProperties,function(sortProperty){removeObserver(item,sortProperty,this,"contentItemSortPropertyDidChange")},this)},this)}this._super()}),sortPropertiesWillChange:beforeObserver("sortProperties",function(){this._lastSortAscending=undefined}),sortPropertiesDidChange:observer("sortProperties",function(){this._lastSortAscending=undefined}),sortAscendingWillChange:beforeObserver("sortAscending",function(){this._lastSortAscending=get(this,"sortAscending")}),sortAscendingDidChange:observer("sortAscending",function(){if(this._lastSortAscending!==undefined&&get(this,"sortAscending")!==this._lastSortAscending){var arrangedContent=get(this,"arrangedContent");arrangedContent.reverseObjects()}}),contentArrayWillChange:function(array,idx,removedCount,addedCount){var isSorted=get(this,"isSorted");if(isSorted){var arrangedContent=get(this,"arrangedContent");var removedObjects=array.slice(idx,idx+removedCount);var sortProperties=get(this,"sortProperties");forEach(removedObjects,function(item){arrangedContent.removeObject(item);forEach(sortProperties,function(sortProperty){removeObserver(item,sortProperty,this,"contentItemSortPropertyDidChange")},this)},this)}return this._super(array,idx,removedCount,addedCount)},contentArrayDidChange:function(array,idx,removedCount,addedCount){var isSorted=get(this,"isSorted"),sortProperties=get(this,"sortProperties");if(isSorted){var addedObjects=array.slice(idx,idx+addedCount);forEach(addedObjects,function(item){this.insertItemSorted(item);forEach(sortProperties,function(sortProperty){addObserver(item,sortProperty,this,"contentItemSortPropertyDidChange")},this)},this)}return this._super(array,idx,removedCount,addedCount)},insertItemSorted:function(item){var arrangedContent=get(this,"arrangedContent");var length=get(arrangedContent,"length");var idx=this._binarySearch(item,0,length);arrangedContent.insertAt(idx,item)},contentItemSortPropertyDidChange:function(item){var arrangedContent=get(this,"arrangedContent"),oldIndex=arrangedContent.indexOf(item),leftItem=arrangedContent.objectAt(oldIndex-1),rightItem=arrangedContent.objectAt(oldIndex+1),leftResult=leftItem&&this.orderBy(item,leftItem),rightResult=rightItem&&this.orderBy(item,rightItem);if(leftResult<0||rightResult>0){arrangedContent.removeObject(item);this.insertItemSorted(item)}},_binarySearch:function(item,low,high){var mid,midItem,res,arrangedContent;if(low===high){return low}arrangedContent=get(this,"arrangedContent");mid=low+Math.floor((high-low)/2);midItem=arrangedContent.objectAt(mid);res=this.orderBy(midItem,item);if(res<0){return this._binarySearch(item,mid+1,high)}else if(res>0){return this._binarySearch(item,low,mid)}return mid}})});define("ember-runtime/mixins/target_action_support",["ember-metal/core","ember-metal/property_get","ember-metal/property_set","ember-metal/utils","ember-metal/mixin","ember-metal/computed","exports"],function(__dependency1__,__dependency2__,__dependency3__,__dependency4__,__dependency5__,__dependency6__,__exports__){"use strict";var Ember=__dependency1__["default"];var get=__dependency2__.get;var set=__dependency3__.set;var typeOf=__dependency4__.typeOf;var Mixin=__dependency5__.Mixin;var computed=__dependency6__.computed;var TargetActionSupport=Mixin.create({target:null,action:null,actionContext:null,targetObject:computed(function(){var target=get(this,"target");if(typeOf(target)==="string"){var value=get(this,target);if(value===undefined){value=get(Ember.lookup,target)}return value}else{return target}}).property("target"),actionContextObject:computed(function(){var actionContext=get(this,"actionContext");if(typeOf(actionContext)==="string"){var value=get(this,actionContext);if(value===undefined){value=get(Ember.lookup,actionContext)}return value}else{return actionContext}}).property("actionContext"),triggerAction:function(opts){opts=opts||{};var action=opts.action||get(this,"action"),target=opts.target||get(this,"targetObject"),actionContext=opts.actionContext;function args(options,actionName){var ret=[];if(actionName){ret.push(actionName)}return ret.concat(options)}if(typeof actionContext==="undefined"){actionContext=get(this,"actionContextObject")||this}if(target&&action){var ret;if(target.send){ret=target.send.apply(target,args(actionContext,action))}else{ret=target[action].apply(target,args(actionContext))}if(ret!==false)ret=true;return ret}else{return false}}});__exports__["default"]=TargetActionSupport});define("ember-runtime/system/application",["ember-runtime/system/namespace","exports"],function(__dependency1__,__exports__){"use strict";var Namespace=__dependency1__["default"];__exports__["default"]=Namespace.extend()});define("ember-runtime/system/array_proxy",["ember-metal/core","ember-metal/property_get","ember-metal/property_set","ember-metal/utils","ember-metal/computed","ember-metal/mixin","ember-metal/property_events","ember-metal/error","ember-runtime/system/object","ember-runtime/mixins/mutable_array","ember-runtime/mixins/enumerable","ember-runtime/system/string","exports"],function(__dependency1__,__dependency2__,__dependency3__,__dependency4__,__dependency5__,__dependency6__,__dependency7__,__dependency8__,__dependency9__,__dependency10__,__dependency11__,__dependency12__,__exports__){"use strict";var Ember=__dependency1__["default"];var get=__dependency2__.get;var set=__dependency3__.set;var isArray=__dependency4__.isArray;var apply=__dependency4__.apply;var computed=__dependency5__.computed;var beforeObserver=__dependency6__.beforeObserver;var observer=__dependency6__.observer;var beginPropertyChanges=__dependency7__.beginPropertyChanges;var endPropertyChanges=__dependency7__.endPropertyChanges;var EmberError=__dependency8__["default"];var EmberObject=__dependency9__["default"];var MutableArray=__dependency10__["default"];var Enumerable=__dependency11__["default"];var fmt=__dependency12__.fmt;var OUT_OF_RANGE_EXCEPTION="Index out of range";var EMPTY=[];var alias=computed.alias;var K=Ember.K;var ArrayProxy=EmberObject.extend(MutableArray,{content:null,arrangedContent:alias("content"),objectAtContent:function(idx){return get(this,"arrangedContent").objectAt(idx)},replaceContent:function(idx,amt,objects){get(this,"content").replace(idx,amt,objects)},_contentWillChange:beforeObserver("content",function(){this._teardownContent()}),_teardownContent:function(){var content=get(this,"content");if(content){content.removeArrayObserver(this,{willChange:"contentArrayWillChange",didChange:"contentArrayDidChange"})}},contentArrayWillChange:K,contentArrayDidChange:K,_contentDidChange:observer("content",function(){var content=get(this,"content");this._setupContent()}),_setupContent:function(){var content=get(this,"content");if(content){content.addArrayObserver(this,{willChange:"contentArrayWillChange",didChange:"contentArrayDidChange"})}},_arrangedContentWillChange:beforeObserver("arrangedContent",function(){var arrangedContent=get(this,"arrangedContent"),len=arrangedContent?get(arrangedContent,"length"):0;this.arrangedContentArrayWillChange(this,0,len,undefined);this.arrangedContentWillChange(this);this._teardownArrangedContent(arrangedContent)}),_arrangedContentDidChange:observer("arrangedContent",function(){var arrangedContent=get(this,"arrangedContent"),len=arrangedContent?get(arrangedContent,"length"):0;this._setupArrangedContent();this.arrangedContentDidChange(this);this.arrangedContentArrayDidChange(this,0,undefined,len)}),_setupArrangedContent:function(){var arrangedContent=get(this,"arrangedContent");if(arrangedContent){arrangedContent.addArrayObserver(this,{willChange:"arrangedContentArrayWillChange",didChange:"arrangedContentArrayDidChange"})}},_teardownArrangedContent:function(){var arrangedContent=get(this,"arrangedContent");if(arrangedContent){arrangedContent.removeArrayObserver(this,{willChange:"arrangedContentArrayWillChange",didChange:"arrangedContentArrayDidChange"})}},arrangedContentWillChange:K,arrangedContentDidChange:K,objectAt:function(idx){return get(this,"content")&&this.objectAtContent(idx)},length:computed(function(){var arrangedContent=get(this,"arrangedContent");return arrangedContent?get(arrangedContent,"length"):0}),_replace:function(idx,amt,objects){var content=get(this,"content");if(content)this.replaceContent(idx,amt,objects);return this},replace:function(){if(get(this,"arrangedContent")===get(this,"content")){apply(this,this._replace,arguments)}else{throw new EmberError("Using replace on an arranged ArrayProxy is not allowed.")}},_insertAt:function(idx,object){if(idx>get(this,"content.length"))throw new EmberError(OUT_OF_RANGE_EXCEPTION);this._replace(idx,0,[object]);return this},insertAt:function(idx,object){if(get(this,"arrangedContent")===get(this,"content")){return this._insertAt(idx,object)}else{throw new EmberError("Using insertAt on an arranged ArrayProxy is not allowed.")}},removeAt:function(start,len){if("number"===typeof start){var content=get(this,"content"),arrangedContent=get(this,"arrangedContent"),indices=[],i;if(start<0||start>=get(this,"length")){throw new EmberError(OUT_OF_RANGE_EXCEPTION)}if(len===undefined)len=1;for(i=start;i=0){var baseValue=this[keyName];if(baseValue){if("function"===typeof baseValue.concat){value=baseValue.concat(value)}else{value=makeArray(baseValue).concat(value)}}else{value=makeArray(value)}}if(desc){desc.set(this,keyName,value)}else{if(typeof this.setUnknownProperty==="function"&&!(keyName in this)){this.setUnknownProperty(keyName,value)}else if(MANDATORY_SETTER){defineProperty(this,keyName,null,value)}else{this[keyName]=value}}}}}finishPartial(this,m);var length=arguments.length;var args=new Array(length);for(var x=0;x";this.toString=makeToString(ret);return ret}});CoreObject.PrototypeMixin.ownerConstructor=CoreObject;function makeToString(ret){return function(){return ret}}if(Ember.config.overridePrototypeMixin){Ember.config.overridePrototypeMixin(CoreObject.PrototypeMixin)}CoreObject.__super__=null;var ClassMixin=Mixin.create({ClassMixin:required(),PrototypeMixin:required(),isClass:true,isMethod:false,extend:function(){var Class=makeCtor(),proto;Class.ClassMixin=Mixin.create(this.ClassMixin);Class.PrototypeMixin=Mixin.create(this.PrototypeMixin);Class.ClassMixin.ownerConstructor=Class;Class.PrototypeMixin.ownerConstructor=Class;reopen.apply(Class.PrototypeMixin,arguments);Class.superclass=this;Class.__super__=this.prototype;proto=Class.prototype=o_create(this.prototype);proto.constructor=Class;generateGuid(proto);meta(proto).proto=proto;Class.ClassMixin.apply(Class);return Class},createWithMixins:function(){var C=this;var l=arguments.length;if(l>0){var args=new Array(l);for(var i=0;i0){var args=new Array(l);for(var i=0;i0){for(var i=0;i0){for(var i=0;i=idx){var item=content.objectAt(loc);if(item){addBeforeObserver(item,keyName,proxy,"contentKeyWillChange");addObserver(item,keyName,proxy,"contentKeyDidChange");guid=guidFor(item);if(!objects[guid])objects[guid]=[];objects[guid].push(loc)}}}function removeObserverForContentKey(content,keyName,proxy,idx,loc){var objects=proxy._objects;if(!objects)objects=proxy._objects={};var indicies,guid;while(--loc>=idx){var item=content.objectAt(loc);if(item){removeBeforeObserver(item,keyName,proxy,"contentKeyWillChange");removeObserver(item,keyName,proxy,"contentKeyDidChange");guid=guidFor(item);indicies=objects[guid];indicies[indexOf.call(indicies,loc)]=null}}}var EachProxy=EmberObject.extend({init:function(content){this._super();this._content=content;content.addArrayObserver(this);forEach(watchedEvents(this),function(eventName){this.didAddListener(eventName)},this)},unknownProperty:function(keyName,value){var ret;ret=new EachArray(this._content,keyName,this);defineProperty(this,keyName,null,ret);this.beginObservingContentKey(keyName);return ret},arrayWillChange:function(content,idx,removedCnt,addedCnt){var keys=this._keys,key,lim;lim=removedCnt>0?idx+removedCnt:-1;beginPropertyChanges(this);for(key in keys){if(!keys.hasOwnProperty(key)){continue}if(lim>0){removeObserverForContentKey(content,key,this,idx,lim)}propertyWillChange(this,key)}propertyWillChange(this._content,"@each");endPropertyChanges(this)},arrayDidChange:function(content,idx,removedCnt,addedCnt){var keys=this._keys,lim;lim=addedCnt>0?idx+addedCnt:-1;changeProperties(function(){for(var key in keys){if(!keys.hasOwnProperty(key)){continue}if(lim>0){addObserverForContentKey(content,key,this,idx,lim)}propertyDidChange(this,key)}propertyDidChange(this._content,"@each")},this)},didAddListener:function(eventName){if(IS_OBSERVER.test(eventName)){this.beginObservingContentKey(eventName.slice(0,-7))}},didRemoveListener:function(eventName){if(IS_OBSERVER.test(eventName)){this.stopObservingContentKey(eventName.slice(0,-7))}},beginObservingContentKey:function(keyName){var keys=this._keys;if(!keys)keys=this._keys={};if(!keys[keyName]){keys[keyName]=1;var content=this._content,len=get(content,"length");addObserverForContentKey(content,keyName,this,0,len)}else{keys[keyName]++}},stopObservingContentKey:function(keyName){var keys=this._keys;if(keys&&keys[keyName]>0&&--keys[keyName]<=0){var content=this._content,len=get(content,"length");removeObserverForContentKey(content,keyName,this,0,len)}},contentKeyWillChange:function(obj,keyName){propertyWillChange(this,keyName)},contentKeyDidChange:function(obj,keyName){propertyDidChange(this,keyName)}});__exports__.EachArray=EachArray;__exports__.EachProxy=EachProxy});define("ember-runtime/system/lazy_load",["ember-metal/core","ember-metal/array","ember-runtime/system/native_array","exports"],function(__dependency1__,__dependency2__,__dependency3__,__exports__){"use strict";var Ember=__dependency1__["default"];var forEach=__dependency2__.forEach;var loadHooks=Ember.ENV.EMBER_LOAD_HOOKS||{};var loaded={};function onLoad(name,callback){var object;loadHooks[name]=loadHooks[name]||Ember.A();loadHooks[name].pushObject(callback);if(object=loaded[name]){callback(object)}}__exports__.onLoad=onLoad;function runLoadHooks(name,object){loaded[name]=object;if(typeof window==="object"&&typeof window.dispatchEvent==="function"&&typeof CustomEvent==="function"){var event=new CustomEvent(name,{detail:object,name:name});window.dispatchEvent(event)}if(loadHooks[name]){forEach.call(loadHooks[name],function(callback){callback(object)})}}__exports__.runLoadHooks=runLoadHooks});define("ember-runtime/system/namespace",["ember-metal/core","ember-metal/property_get","ember-metal/array","ember-metal/utils","ember-metal/mixin","ember-runtime/system/object","exports"],function(__dependency1__,__dependency2__,__dependency3__,__dependency4__,__dependency5__,__dependency6__,__exports__){"use strict";var Ember=__dependency1__["default"];var get=__dependency2__.get;var indexOf=__dependency3__.indexOf;var GUID_KEY=__dependency4__.GUID_KEY;var guidFor=__dependency4__.guidFor;var Mixin=__dependency5__.Mixin;var EmberObject=__dependency6__["default"];var Namespace=EmberObject.extend({isNamespace:true,init:function(){Namespace.NAMESPACES.push(this);Namespace.PROCESSED=false},toString:function(){var name=get(this,"name");if(name){return name}findNamespaces();return this[NAME_KEY]},nameClasses:function(){processNamespace([this.toString()],this,{})},destroy:function(){var namespaces=Namespace.NAMESPACES,toString=this.toString();if(toString){Ember.lookup[toString]=undefined;delete Namespace.NAMESPACES_BY_ID[toString]}namespaces.splice(indexOf.call(namespaces,this),1);this._super()}});Namespace.reopenClass({NAMESPACES:[Ember],NAMESPACES_BY_ID:{},PROCESSED:false,processAll:processAllNamespaces,byName:function(name){if(!Ember.BOOTED){processAllNamespaces()}return NAMESPACES_BY_ID[name]}});var NAMESPACES_BY_ID=Namespace.NAMESPACES_BY_ID;var hasOwnProp={}.hasOwnProperty;function processNamespace(paths,root,seen){var idx=paths.length;NAMESPACES_BY_ID[paths.join(".")]=root;for(var key in root){if(!hasOwnProp.call(root,key)){continue}var obj=root[key];paths[idx]=key;if(obj&&obj.toString===classToString){obj.toString=makeToString(paths.join("."));obj[NAME_KEY]=paths.join(".")}else if(obj&&obj.isNamespace){if(seen[guidFor(obj)]){continue}seen[guidFor(obj)]=true;processNamespace(paths,obj,seen)}}paths.length=idx}var STARTS_WITH_UPPERCASE=/^[A-Z]/;function tryIsNamespace(lookup,prop){try{var obj=lookup[prop];return obj&&obj.isNamespace&&obj}catch(e){}}function findNamespaces(){var lookup=Ember.lookup,obj,isNamespace;if(Namespace.PROCESSED){return}for(var prop in lookup){if(!STARTS_WITH_UPPERCASE.test(prop)){continue
+}if(lookup.hasOwnProperty&&!lookup.hasOwnProperty(prop)){continue}obj=tryIsNamespace(lookup,prop);if(obj){obj[NAME_KEY]=prop}}}var NAME_KEY=Ember.NAME_KEY=GUID_KEY+"_name";function superClassString(mixin){var superclass=mixin.superclass;if(superclass){if(superclass[NAME_KEY]){return superclass[NAME_KEY]}else{return superClassString(superclass)}}else{return}}function classToString(){if(!Ember.BOOTED&&!this[NAME_KEY]){processAllNamespaces()}var ret;if(this[NAME_KEY]){ret=this[NAME_KEY]}else if(this._toString){ret=this._toString}else{var str=superClassString(this);if(str){ret="(subclass of "+str+")"}else{ret="(unknown mixin)"}this.toString=makeToString(ret)}return ret}function processAllNamespaces(){var unprocessedNamespaces=!Namespace.PROCESSED,unprocessedMixins=Ember.anyUnprocessedMixins;if(unprocessedNamespaces){findNamespaces();Namespace.PROCESSED=true}if(unprocessedNamespaces||unprocessedMixins){var namespaces=Namespace.NAMESPACES,namespace;for(var i=0,l=namespaces.length;i0){NativeArray=NativeArray.without.apply(NativeArray,ignore)}var A=function(arr){if(arr===undefined){arr=[]}return EmberArray.detect(arr)?arr:NativeArray.apply(arr)};NativeArray.activate=function(){NativeArray.apply(Array.prototype);A=function(arr){return arr||[]}};if(Ember.EXTEND_PROTOTYPES===true||Ember.EXTEND_PROTOTYPES.Array){NativeArray.activate()}Ember.A=A;__exports__.A=A;__exports__.NativeArray=NativeArray;__exports__["default"]=NativeArray});define("ember-runtime/system/object",["ember-runtime/system/core_object","ember-runtime/mixins/observable","exports"],function(__dependency1__,__dependency2__,__exports__){"use strict";var CoreObject=__dependency1__["default"];var Observable=__dependency2__["default"];var EmberObject=CoreObject.extend(Observable);EmberObject.toString=function(){return"Ember.Object"};__exports__["default"]=EmberObject});define("ember-runtime/system/object_proxy",["ember-runtime/system/object","ember-runtime/mixins/proxy","exports"],function(__dependency1__,__dependency2__,__exports__){"use strict";var EmberObject=__dependency1__["default"];var ProxyMixin=__dependency2__["default"];__exports__["default"]=EmberObject.extend(ProxyMixin)});define("ember-runtime/system/set",["ember-metal/core","ember-metal/property_get","ember-metal/property_set","ember-metal/utils","ember-metal/is_none","ember-runtime/system/string","ember-runtime/system/core_object","ember-runtime/mixins/mutable_enumerable","ember-runtime/mixins/enumerable","ember-runtime/mixins/copyable","ember-runtime/mixins/freezable","ember-metal/error","ember-metal/property_events","ember-metal/mixin","ember-metal/computed","exports"],function(__dependency1__,__dependency2__,__dependency3__,__dependency4__,__dependency5__,__dependency6__,__dependency7__,__dependency8__,__dependency9__,__dependency10__,__dependency11__,__dependency12__,__dependency13__,__dependency14__,__dependency15__,__exports__){"use strict";var Ember=__dependency1__["default"];var get=__dependency2__.get;var set=__dependency3__.set;var guidFor=__dependency4__.guidFor;var isNone=__dependency5__.isNone;var fmt=__dependency6__.fmt;var CoreObject=__dependency7__["default"];var MutableEnumerable=__dependency8__["default"];var Enumerable=__dependency9__["default"];var Copyable=__dependency10__["default"];var Freezable=__dependency11__.Freezable;var FROZEN_ERROR=__dependency11__.FROZEN_ERROR;var EmberError=__dependency12__["default"];var propertyWillChange=__dependency13__.propertyWillChange;var propertyDidChange=__dependency13__.propertyDidChange;var aliasMethod=__dependency14__.aliasMethod;var computed=__dependency15__.computed;__exports__["default"]=CoreObject.extend(MutableEnumerable,Copyable,Freezable,{length:0,clear:function(){if(this.isFrozen){throw new EmberError(FROZEN_ERROR)}var len=get(this,"length");if(len===0){return this}var guid;this.enumerableContentWillChange(len,0);propertyWillChange(this,"firstObject");propertyWillChange(this,"lastObject");for(var i=0;i=0){if(!obj.contains(this[loc]))return false}return true},add:aliasMethod("addObject"),remove:aliasMethod("removeObject"),pop:function(){if(get(this,"isFrozen"))throw new EmberError(FROZEN_ERROR);var obj=this.length>0?this[this.length-1]:null;this.remove(obj);return obj},push:aliasMethod("addObject"),shift:aliasMethod("pop"),unshift:aliasMethod("push"),addEach:aliasMethod("addObjects"),removeEach:aliasMethod("removeObjects"),init:function(items){this._super();if(items)this.addObjects(items)},nextObject:function(idx){return this[idx]},firstObject:computed(function(){return this.length>0?this[0]:undefined}),lastObject:computed(function(){return this.length>0?this[this.length-1]:undefined}),addObject:function(obj){if(get(this,"isFrozen"))throw new EmberError(FROZEN_ERROR);if(isNone(obj))return this;var guid=guidFor(obj),idx=this[guid],len=get(this,"length"),added;if(idx>=0&&idx=0&&idx=0},copy:function(){var C=this.constructor,ret=new C,loc=get(this,"length");set(ret,"length",loc);while(--loc>=0){ret[loc]=this[loc];ret[guidFor(this[loc])]=loc}return ret},toString:function(){var len=this.length,idx,array=[];for(idx=0;idx",[array.join(",")])}})});define("ember-runtime/system/string",["ember-metal/core","ember-metal/utils","ember-metal/cache","exports"],function(__dependency1__,__dependency2__,__dependency3__,__exports__){"use strict";var Ember=__dependency1__["default"];var isArray=__dependency2__.isArray;var emberInspect=__dependency2__.inspect;var Cache=__dependency3__["default"];var STRING_DASHERIZE_REGEXP=/[ _]/g;var STRING_DASHERIZE_CACHE=new Cache(1e3,function(key){return decamelize(key).replace(STRING_DASHERIZE_REGEXP,"-")});var CAMELIZE_CACHE=new Cache(1e3,function(key){return key.replace(STRING_CAMELIZE_REGEXP,function(match,separator,chr){return chr?chr.toUpperCase():""}).replace(/^([A-Z])/,function(match,separator,chr){return match.toLowerCase()})});var CLASSIFY_CACHE=new Cache(1e3,function(str){var parts=str.split("."),out=[];for(var i=0,l=parts.length;i2){formats=Array.prototype.slice.call(arguments,1)}var idx=0;return str.replace(/%@([0-9]+)?/g,function(s,argIndex){argIndex=argIndex?parseInt(argIndex,10)-1:idx++;s=formats[argIndex];return s===null?"(null)":s===undefined?"":emberInspect(s)})}function loc(str,formats){if(!isArray(formats)||arguments.length>2){formats=Array.prototype.slice.call(arguments,1)}str=Ember.STRINGS[str]||str;return fmt(str,formats)}function w(str){return str.split(/\s+/)}function decamelize(str){return DECAMELIZE_CACHE.get(str)}function dasherize(str){return STRING_DASHERIZE_CACHE.get(str)}function camelize(str){return CAMELIZE_CACHE.get(str)}function classify(str){return CLASSIFY_CACHE.get(str)}function underscore(str){return UNDERSCORE_CACHE.get(str)}function capitalize(str){return CAPITALIZE_CACHE.get(str)}Ember.STRINGS={};__exports__["default"]={fmt:fmt,loc:loc,w:w,decamelize:decamelize,dasherize:dasherize,camelize:camelize,classify:classify,underscore:underscore,capitalize:capitalize};__exports__.fmt=fmt;__exports__.loc=loc;__exports__.w=w;__exports__.decamelize=decamelize;__exports__.dasherize=dasherize;__exports__.camelize=camelize;__exports__.classify=classify;__exports__.underscore=underscore;__exports__.capitalize=capitalize});define("ember-runtime/system/subarray",["ember-metal/property_get","ember-metal/error","ember-metal/enumerable_utils","exports"],function(__dependency1__,__dependency2__,__dependency3__,__exports__){"use strict";var get=__dependency1__.get;var EmberError=__dependency2__["default"];var EnumerableUtils=__dependency3__["default"];var RETAIN="r";var FILTER="f";function Operation(type,count){this.type=type;this.count=count}__exports__["default"]=SubArray;function SubArray(length){if(arguments.length<1){length=0}if(length>0){this._operations=[new Operation(RETAIN,length)]}else{this._operations=[]}}SubArray.prototype={addItem:function(index,match){var returnValue=-1,itemType=match?RETAIN:FILTER,self=this;this._findOperation(index,function(operation,operationIndex,rangeStart,rangeEnd,seenInSubArray){var newOperation,splitOperation;if(itemType===operation.type){++operation.count}else if(index===rangeStart){self._operations.splice(operationIndex,0,new Operation(itemType,1))}else{newOperation=new Operation(itemType,1);splitOperation=new Operation(operation.type,rangeEnd-index+1);operation.count=index-rangeStart;self._operations.splice(operationIndex+1,0,newOperation,splitOperation)}if(match){if(operation.type===RETAIN){returnValue=seenInSubArray+(index-rangeStart)}else{returnValue=seenInSubArray}}self._composeAt(operationIndex)},function(seenInSubArray){self._operations.push(new Operation(itemType,1));if(match){returnValue=seenInSubArray}self._composeAt(self._operations.length-1)});return returnValue},removeItem:function(index){var returnValue=-1,self=this;this._findOperation(index,function(operation,operationIndex,rangeStart,rangeEnd,seenInSubArray){if(operation.type===RETAIN){returnValue=seenInSubArray+(index-rangeStart)}if(operation.count>1){--operation.count}else{self._operations.splice(operationIndex,1);self._composeAt(operationIndex)}},function(){throw new EmberError("Can't remove an item that has never been added.")});return returnValue},_findOperation:function(index,foundCallback,notFoundCallback){var operationIndex,len,operation,rangeStart,rangeEnd,seenInSubArray=0;for(operationIndex=rangeStart=0,len=this._operations.length;operationIndex=rangeStart&&index<=rangeEnd){foundCallback(operation,operationIndex,rangeStart,rangeEnd,seenInSubArray);return}else if(operation.type===RETAIN){seenInSubArray+=operation.count}}notFoundCallback(seenInSubArray)},_composeAt:function(index){var op=this._operations[index],otherOp;if(!op){return}if(index>0){otherOp=this._operations[index-1];if(otherOp.type===op.type){op.count+=otherOp.count;this._operations.splice(index-1,1);--index}}if(indexarrayOperationRangeStart&&index<=arrayOperationRangeEnd){split=true;break}else{arrayOperationRangeStart=arrayOperationRangeEnd+1}}return new ArrayOperationMatch(arrayOperation,arrayOperationIndex,split,arrayOperationRangeStart)},_split:function(arrayOperationIndex,splitIndex,newArrayOperation){var arrayOperation=this._operations[arrayOperationIndex];var splitItems=arrayOperation.items.slice(splitIndex);var splitArrayOperation=new ArrayOperation(arrayOperation.type,splitItems.length,splitItems);arrayOperation.count=splitIndex;arrayOperation.items=arrayOperation.items.slice(0,splitIndex);this._operations.splice(arrayOperationIndex+1,0,newArrayOperation,splitArrayOperation)},_composeInsert:function(index){var newArrayOperation=this._operations[index],leftArrayOperation=this._operations[index-1],rightArrayOperation=this._operations[index+1],leftOp=leftArrayOperation&&leftArrayOperation.type,rightOp=rightArrayOperation&&rightArrayOperation.type;if(leftOp===INSERT){leftArrayOperation.count+=newArrayOperation.count;leftArrayOperation.items=leftArrayOperation.items.concat(newArrayOperation.items);if(rightOp===INSERT){leftArrayOperation.count+=rightArrayOperation.count;leftArrayOperation.items=leftArrayOperation.items.concat(rightArrayOperation.items);this._operations.splice(index,2)}else{this._operations.splice(index,1)}}else if(rightOp===INSERT){newArrayOperation.count+=rightArrayOperation.count;newArrayOperation.items=newArrayOperation.items.concat(rightArrayOperation.items);this._operations.splice(index+1,1)}},_composeDelete:function(index){var arrayOperation=this._operations[index],deletesToGo=arrayOperation.count,leftArrayOperation=this._operations[index-1],leftOp=leftArrayOperation&&leftArrayOperation.type,nextArrayOperation,nextOp,nextCount,removeNewAndNextOp=false,removedItems=[];if(leftOp===DELETE){arrayOperation=leftArrayOperation;index-=1}for(var i=index+1;deletesToGo>0;++i){nextArrayOperation=this._operations[i];nextOp=nextArrayOperation.type;nextCount=nextArrayOperation.count;if(nextOp===DELETE){arrayOperation.count+=nextCount;continue}if(nextCount>deletesToGo){removedItems=removedItems.concat(nextArrayOperation.items.splice(0,deletesToGo));nextArrayOperation.count-=deletesToGo;i-=1;nextCount=deletesToGo;deletesToGo=0}else{if(nextCount===deletesToGo){removeNewAndNextOp=true}removedItems=removedItems.concat(nextArrayOperation.items);deletesToGo-=nextCount}if(nextOp===INSERT){arrayOperation.count-=nextCount}}if(arrayOperation.count>0){this._operations.splice(index+1,i-1-index)}else{this._operations.splice(index,removeNewAndNextOp?2:1)}return removedItems},toString:function(){var str="";forEach(this._operations,function(operation){str+=" "+operation.type+":"+operation.count});return str.substring(1)}};function ArrayOperation(operation,count,items){this.type=operation;this.count=count;this.items=items}function ArrayOperationMatch(operation,index,split,rangeStart){this.operation=operation;this.index=index;this.split=split;this.rangeStart=rangeStart}});define("ember-testing",["ember-metal/core","ember-testing/initializers","ember-testing/support","ember-testing/setup_for_testing","ember-testing/test","ember-testing/adapters/adapter","ember-testing/adapters/qunit","ember-testing/helpers"],function(__dependency1__,__dependency2__,__dependency3__,__dependency4__,__dependency5__,__dependency6__,__dependency7__,__dependency8__){"use strict";var Ember=__dependency1__["default"];var setupForTesting=__dependency4__["default"];var Test=__dependency5__["default"];var Adapter=__dependency6__["default"];var QUnitAdapter=__dependency7__["default"];Ember.Test=Test;Ember.Test.Adapter=Adapter;Ember.Test.QUnitAdapter=QUnitAdapter;Ember.setupForTesting=setupForTesting});define("ember-testing/adapters/adapter",["ember-metal/core","ember-metal/utils","ember-runtime/system/object","exports"],function(__dependency1__,__dependency2__,__dependency3__,__exports__){"use strict";var Ember=__dependency1__["default"];var inspect=__dependency2__.inspect;var EmberObject=__dependency3__["default"];var Adapter=EmberObject.extend({asyncStart:Ember.K,asyncEnd:Ember.K,exception:function(error){throw error}});__exports__["default"]=Adapter});define("ember-testing/adapters/qunit",["ember-testing/adapters/adapter","ember-metal/utils","exports"],function(__dependency1__,__dependency2__,__exports__){"use strict";var Adapter=__dependency1__["default"];var inspect=__dependency2__.inspect;__exports__["default"]=Adapter.extend({asyncStart:function(){QUnit.stop()},asyncEnd:function(){QUnit.start()},exception:function(error){ok(false,inspect(error))}})});define("ember-testing/helpers",["ember-metal/property_get","ember-metal/error","ember-metal/run_loop","ember-views/system/jquery","ember-testing/test"],function(__dependency1__,__dependency2__,__dependency3__,__dependency4__,__dependency5__){"use strict";var get=__dependency1__.get;var EmberError=__dependency2__["default"];var run=__dependency3__["default"];var jQuery=__dependency4__["default"];var Test=__dependency5__["default"];var helper=Test.registerHelper;var asyncHelper=Test.registerAsyncHelper;var countAsync=0;function currentRouteName(app){var appController=app.__container__.lookup("controller:application");return get(appController,"currentRouteName")}function currentPath(app){var appController=app.__container__.lookup("controller:application");return get(appController,"currentPath")}function currentURL(app){var router=app.__container__.lookup("router:main");return get(router,"location").getURL()}function visit(app,url){var router=app.__container__.lookup("router:main");router.location.setURL(url);if(app._readinessDeferrals>0){router["initialURL"]=url;run(app,"advanceReadiness");delete router["initialURL"]}else{run(app,app.handleURL,url)}return app.testHelpers.wait()}function click(app,selector,context){var $el=app.testHelpers.findWithAssert(selector,context);run($el,"mousedown");if($el.is(":input")){var type=$el.prop("type");if(type!=="checkbox"&&type!=="radio"&&type!=="hidden"){run($el,function(){if(!document.hasFocus||document.hasFocus()){this.focus()}else{this.trigger("focusin")}})}}run($el,"mouseup");run($el,"click");return app.testHelpers.wait()}function triggerEvent(app,selector,contextOrType,typeOrOptions,possibleOptions){var arity=arguments.length;var context,type,options;if(arity===3){context=null;type=contextOrType;options={}}else if(arity===4){if(typeof typeOrOptions==="object"){context=null;type=contextOrType;options=typeOrOptions}else{context=contextOrType;type=typeOrOptions;options={}}}else{context=contextOrType;type=typeOrOptions;options=possibleOptions}var $el=app.testHelpers.findWithAssert(selector,context);var event=jQuery.Event(type,options);run($el,"trigger",event);return app.testHelpers.wait()}function keyEvent(app,selector,contextOrType,typeOrKeyCode,keyCode){var context,type;if(typeof keyCode==="undefined"){context=null;keyCode=typeOrKeyCode;type=contextOrType}else{context=contextOrType;type=typeOrKeyCode}return app.testHelpers.triggerEvent(selector,context,type,{keyCode:keyCode,which:keyCode})}function fillIn(app,selector,contextOrText,text){var $el,context;if(typeof text==="undefined"){text=contextOrText}$el=app.testHelpers.findWithAssert(selector,context);run(function(){$el.val(text).change()});return app.testHelpers.wait()}function findWithAssert(app,selector,context){var $el=app.testHelpers.find(selector,context);if($el.length===0){throw new EmberError("Element "+selector+" not found.")}return $el}function find(app,selector,context){var $el;context=context||get(app,"rootElement");$el=app.$(selector,context);return $el}function andThen(app,callback){return app.testHelpers.wait(callback(app))}function wait(app,value){return Test.promise(function(resolve){if(++countAsync===1){Test.adapter.asyncStart()}var watcher=setInterval(function(){var routerIsLoading=!!app.__container__.lookup("router:main").router.activeTransition;if(routerIsLoading){return}if(Test.pendingAjaxRequests){return}if(run.hasScheduledTimers()||run.currentRunLoop){return}if(Test.waiters&&Test.waiters.any(function(waiter){var context=waiter[0];var callback=waiter[1];return!callback.call(context)})){return}clearInterval(watcher);if(--countAsync===0){Test.adapter.asyncEnd()}run(null,resolve,value)},10)})}asyncHelper("visit",visit);asyncHelper("click",click);asyncHelper("keyEvent",keyEvent);asyncHelper("fillIn",fillIn);helper("find",find);helper("findWithAssert",findWithAssert);asyncHelper("wait",wait);asyncHelper("andThen",andThen);helper("currentRouteName",currentRouteName);helper("currentPath",currentPath);helper("currentURL",currentURL);asyncHelper("triggerEvent",triggerEvent)});define("ember-testing/initializers",["ember-runtime/system/lazy_load"],function(__dependency1__){"use strict";var onLoad=__dependency1__.onLoad;var name="deferReadiness in `testing` mode";onLoad("Ember.Application",function(Application){if(!Application.initializers[name]){Application.initializer({name:name,initialize:function(container,application){if(application.testing){application.deferReadiness()}}})}})});define("ember-testing/setup_for_testing",["ember-metal/core","ember-testing/adapters/qunit","ember-views/system/jquery","exports"],function(__dependency1__,__dependency2__,__dependency3__,__exports__){"use strict";var Ember=__dependency1__["default"];var QUnitAdapter=__dependency2__["default"];var jQuery=__dependency3__["default"];var Test,requests;function incrementAjaxPendingRequests(_,xhr){requests.push(xhr);Test.pendingAjaxRequests=requests.length}function decrementAjaxPendingRequests(_,xhr){for(var i=0;i').css({position:"absolute",left:"-1000px",top:"-1000px"}).appendTo("body").on("click",handler).trigger("click").remove()}$(function(){testCheckboxClick(function(){if(!this.checked&&!$.event.special.click){$.event.special.click={trigger:function(){if($.nodeName(this,"input")&&this.type==="checkbox"&&this.click){this.click();return false}}}}});testCheckboxClick(function(){})})});define("ember-testing/test",["ember-metal/core","ember-metal/run_loop","ember-metal/platform","ember-runtime/compare","ember-runtime/ext/rsvp","ember-testing/setup_for_testing","ember-application/system/application","exports"],function(__dependency1__,__dependency2__,__dependency3__,__dependency4__,__dependency5__,__dependency6__,__dependency7__,__exports__){"use strict";var Ember=__dependency1__["default"];var emberRun=__dependency2__["default"];var create=__dependency3__.create;var compare=__dependency4__["default"];var RSVP=__dependency5__["default"];var setupForTesting=__dependency6__["default"];var EmberApplication=__dependency7__["default"];var slice=[].slice;var helpers={};var injectHelpersCallbacks=[];var Test={_helpers:helpers,registerHelper:function(name,helperMethod){helpers[name]={method:helperMethod,meta:{wait:false}}},registerAsyncHelper:function(name,helperMethod){helpers[name]={method:helperMethod,meta:{wait:true}}},unregisterHelper:function(name){delete helpers[name];delete Test.Promise.prototype[name]},onInjectHelpers:function(callback){injectHelpersCallbacks.push(callback)},promise:function(resolver){return new Test.Promise(resolver)},adapter:null,resolve:function(val){return Test.promise(function(resolve){return resolve(val)})},registerWaiter:function(context,callback){if(arguments.length===1){callback=context;context=null}if(!this.waiters){this.waiters=Ember.A()}this.waiters.push([context,callback])},unregisterWaiter:function(context,callback){var pair;if(!this.waiters){return}if(arguments.length===1){callback=context;context=null}pair=[context,callback];this.waiters=Ember.A(this.waiters.filter(function(elt){return compare(elt,pair)!==0}))}};function helper(app,name){var fn=helpers[name].method,meta=helpers[name].meta;return function(){var args=slice.call(arguments),lastPromise=Test.lastPromise;args.unshift(app);if(!meta.wait){return fn.apply(app,args)}if(!lastPromise){lastPromise=fn.apply(app,args)}else{run(function(){lastPromise=Test.resolve(lastPromise).then(function(){return fn.apply(app,args)})})}return lastPromise}}function run(fn){if(!emberRun.currentRunLoop){emberRun(fn)}else{fn()}}EmberApplication.reopen({testHelpers:{},originalMethods:{},testing:false,setupForTesting:function(){setupForTesting();this.testing=true;this.Router.reopen({location:"none"})},helperContainer:window,injectTestHelpers:function(helperContainer){if(helperContainer){this.helperContainer=helperContainer}this.testHelpers={};for(var name in helpers){this.originalMethods[name]=this.helperContainer[name];this.testHelpers[name]=this.helperContainer[name]=helper(this,name);protoWrap(Test.Promise.prototype,name,helper(this,name),helpers[name].meta.wait)}for(var i=0,l=injectHelpersCallbacks.length;i"'`]/g;var POSSIBLE_CHARS_REGEXP=/[&<>"'`]/;function escapeAttribute(value){var escape={"<":"<",">":">",'"':""","'":"'","`":"`"};var escapeChar=function(chr){return escape[chr]||"&"};var string=value.toString();if(!POSSIBLE_CHARS_REGEXP.test(string)){return string}return string.replace(BAD_CHARS_REGEXP,escapeChar)}var canSetNameOnInputs=function(){var div=document.createElement("div"),el=document.createElement("input");el.setAttribute("name","foo");div.appendChild(el);return!!div.innerHTML.match("foo")}();__exports__["default"]=function RenderBuffer(tagName){return new _RenderBuffer(tagName)};function _RenderBuffer(tagName){this.tagNames=[tagName||null];this.buffer=""}_RenderBuffer.prototype={_element:null,_hasElement:true,elementClasses:null,classes:null,elementId:null,elementAttributes:null,elementProperties:null,elementTag:null,elementStyle:null,push:function(string){this.buffer+=string;return this},addClass:function(className){this.elementClasses=this.elementClasses||new ClassSet;this.elementClasses.add(className);this.classes=this.elementClasses.list;return this},setClasses:function(classNames){this.elementClasses=null;var len=classNames.length,i;for(i=0;i";this.buffer=buffer},pushClosingTag:function(){var tagName=this.tagNames.pop();if(tagName){this.buffer+=""+stripTagName(tagName)+">"}},currentTagName:function(){return this.tagNames[this.tagNames.length-1]},generateElement:function(){var tagName=this.tagNames.pop(),id=this.elementId,classes=this.classes,attrs=this.elementAttributes,props=this.elementProperties,style=this.elementStyle,styleBuffer="",attr,prop,tagString;if(attrs&&attrs.name&&!canSetNameOnInputs){tagString="<"+stripTagName(tagName)+' name="'+escapeAttribute(attrs.name)+'">'}else{tagString=tagName}var element=document.createElement(tagString),$element=jQuery(element);if(id){$element.attr("id",id);this.elementId=null}if(classes){$element.attr("class",classes.join(" "));this.classes=null;this.elementClasses=null}if(style){for(prop in style){if(style.hasOwnProperty(prop)){styleBuffer+=prop+":"+style[prop]+";"}}$element.attr("style",styleBuffer);this.elementStyle=null}if(attrs){for(attr in attrs){if(attrs.hasOwnProperty(attr)){$element.attr(attr,attrs[attr])}}this.elementAttributes=null}if(props){for(prop in props){if(props.hasOwnProperty(prop)){$element.prop(prop,props[prop])}}this.elementProperties=null}return element},element:function(){var html=this.innerString();if(html){this._element=setInnerHTML(this._element,html)}return this._element},string:function(){if(this._hasElement&&this._element){var thisElement=this.element(),outerHTML=thisElement.outerHTML;if(typeof outerHTML==="undefined"){return jQuery("").append(thisElement).html()}return outerHTML}else{return this.innerString()}},innerString:function(){return this.buffer}}});define("ember-views/system/utils",["ember-metal/core","ember-views/system/jquery","exports"],function(__dependency1__,__dependency2__,__exports__){"use strict";var Ember=__dependency1__["default"];var jQuery=__dependency2__["default"];var needsShy=typeof document!=="undefined"&&function(){var testEl=document.createElement("div");testEl.innerHTML="";testEl.firstChild.innerHTML="";return testEl.firstChild.innerHTML===""}();var movesWhitespace=typeof document!=="undefined"&&function(){var testEl=document.createElement("div");testEl.innerHTML="Test: Value";return testEl.childNodes[0].nodeValue==="Test:"&&testEl.childNodes[2].nodeValue===" Value"}();var findChildById=function(element,id){if(element.getAttribute("id")===id){return element}var len=element.childNodes.length,idx,node,found;for(idx=0;idx0){var len=matches.length,idx;for(idx=0;idxContent"+childTagName+">");return el.firstChild instanceof ChildConstructor}}var innerHTMLTags={select:function(){var el=document.createElement("select");setInnerHTMLWithoutFix(el,'');return el.options.length===1},col:setInnerHTMLTestFactory("col","span",window.HTMLSpanElement),colgroup:setInnerHTMLTestFactory("colgroup","col",window.HTMLTableColElement),frameset:setInnerHTMLTestFactory("frameset","frame",window.HTMLFrameElement),table:setInnerHTMLTestFactory("table","tbody",window.HTMLTableSectionElement),tbody:setInnerHTMLTestFactory("tbody","tr",window.HTMLTableRowElement),tfoot:setInnerHTMLTestFactory("tfoot","tr",window.HTMLTableRowElement),thead:setInnerHTMLTestFactory("thead","tr",window.HTMLTableRowElement),tr:setInnerHTMLTestFactory("tr","td",window.HTMLTableCellElement)};var canSetInnerHTML=function(tagName){tagName=tagName.toLowerCase();var canSet=innerHTMLTags[tagName];if(typeof canSet==="function"){canSet=innerHTMLTags[tagName]=canSet()}return canSet===undefined?true:canSet};function setInnerHTML(element,html){var tagName=element.tagName;if(canSetInnerHTML(tagName)){setInnerHTMLWithoutFix(element,html)}else{var outerHTML=element.outerHTML||(new XMLSerializer).serializeToString(element);var startTag=outerHTML.match(new RegExp("<"+tagName+"([^>]*)>","i"))[0],endTag=""+tagName+">";var wrapper=document.createElement("div");jQuery(startTag+html+endTag).appendTo(wrapper);element=wrapper.firstChild;while(element.tagName!==tagName){element=element.nextSibling}}return element}__exports__.setInnerHTML=setInnerHTML;function isSimpleClick(event){var modifier=event.shiftKey||event.metaKey||event.altKey||event.ctrlKey,secondaryClick=event.which>1;return!modifier&&!secondaryClick}__exports__.isSimpleClick=isSimpleClick});define("ember-views/views/collection_view",["ember-metal/core","ember-metal/platform","ember-metal/binding","ember-metal/merge","ember-metal/property_get","ember-metal/property_set","ember-runtime/system/string","ember-views/views/container_view","ember-views/views/core_view","ember-views/views/view","ember-metal/mixin","ember-runtime/mixins/array","exports"],function(__dependency1__,__dependency2__,__dependency3__,__dependency4__,__dependency5__,__dependency6__,__dependency7__,__dependency8__,__dependency9__,__dependency10__,__dependency11__,__dependency12__,__exports__){"use strict";var Ember=__dependency1__["default"];var create=__dependency2__.create;var isGlobalPath=__dependency3__.isGlobalPath;var merge=__dependency4__["default"];var get=__dependency5__.get;var set=__dependency6__.set;var fmt=__dependency7__.fmt;var ContainerView=__dependency8__["default"];var CoreView=__dependency9__["default"];var View=__dependency10__["default"];var observer=__dependency11__.observer;var beforeObserver=__dependency11__.beforeObserver;var EmberArray=__dependency12__["default"];var CollectionView=ContainerView.extend({content:null,emptyViewClass:View,emptyView:null,itemViewClass:View,init:function(){var ret=this._super();this._contentDidChange();return ret},_contentWillChange:beforeObserver("content",function(){var content=this.get("content");if(content){content.removeArrayObserver(this)}var len=content?get(content,"length"):0;this.arrayWillChange(content,0,len)}),_contentDidChange:observer("content",function(){var content=get(this,"content");if(content){this._assertArrayLike(content);content.addArrayObserver(this)}var len=content?get(content,"length"):0;this.arrayDidChange(content,0,null,len)}),_assertArrayLike:function(content){},destroy:function(){if(!this._super()){return}var content=get(this,"content");if(content){content.removeArrayObserver(this)}if(this._createdEmptyView){this._createdEmptyView.destroy()}return this},arrayWillChange:function(content,start,removedCount){var emptyView=get(this,"emptyView");if(emptyView&&emptyView instanceof View){emptyView.removeFromParent()}var childViews=this._childViews,childView,idx,len;len=this._childViews.length;var removingAll=removedCount===len;if(removingAll){this.currentState.empty(this);this.invokeRecursively(function(view){view.removedFromDOM=true},false)}for(idx=start+removedCount-1;idx>=start;idx--){childView=childViews[idx];childView.destroy()}},arrayDidChange:function(content,start,removed,added){var addedViews=[],view,item,idx,len,itemViewClass,emptyView;len=content?get(content,"length"):0;if(len){itemViewClass=get(this,"itemViewClass");if("string"===typeof itemViewClass&&isGlobalPath(itemViewClass)){itemViewClass=get(itemViewClass)||itemViewClass}for(idx=start;idx0){var changedViews=views.slice(start,start+removed);this.currentState.childViewsWillChange(this,views,start,removed);this.initializeViews(changedViews,null,null)}},removeChild:function(child){this.removeObject(child);return this},childViewsDidChange:function(views,start,removed,added){if(added>0){var changedViews=views.slice(start,start+added);this.initializeViews(changedViews,this,get(this,"templateData"));this.currentState.childViewsDidChange(this,views,start,added)}this.propertyDidChange("childViews")},initializeViews:function(views,parentView,templateData){forEach(views,function(view){set(view,"_parentView",parentView);if(!view.container&&parentView){set(view,"container",parentView.container)}if(!get(view,"templateData")){set(view,"templateData",templateData)}})},currentView:null,_currentViewWillChange:beforeObserver("currentView",function(){var currentView=get(this,"currentView");if(currentView){currentView.destroy()}}),_currentViewDidChange:observer("currentView",function(){var currentView=get(this,"currentView");if(currentView){this.pushObject(currentView)}}),_ensureChildrenAreInDOM:function(){this.currentState.ensureChildrenAreInDOM(this)}});merge(states._default,{childViewsWillChange:Ember.K,childViewsDidChange:Ember.K,ensureChildrenAreInDOM:Ember.K});merge(states.inBuffer,{childViewsDidChange:function(parentView,views,start,added){throw new EmberError("You cannot modify child views while in the inBuffer state")}});merge(states.hasElement,{childViewsWillChange:function(view,views,start,removed){for(var i=start;i=lengthBefore;i--){if(childViews[i]){childViews[i].destroy()}}},_applyClassNameBindings:function(classBindings){var classNames=this.classNames,elem,newClass,dasherizedClass;forEach(classBindings,function(binding){var oldClass;var parsedPath=View._parsePropertyPath(binding);var observer=function(){newClass=this._classStringForProperty(binding);elem=this.$();if(oldClass){elem.removeClass(oldClass);classNames.removeObject(oldClass)}if(newClass){elem.addClass(newClass);oldClass=newClass}else{oldClass=null}};dasherizedClass=this._classStringForProperty(binding);if(dasherizedClass){addObject(classNames,dasherizedClass);oldClass=dasherizedClass}this.registerObserver(this,parsedPath.path,observer);this.one("willClearRender",function(){if(oldClass){classNames.removeObject(oldClass);oldClass=null}})},this)},_unspecifiedAttributeBindings:null,_applyAttributeBindings:function(buffer,attributeBindings){var attributeValue,unspecifiedAttributeBindings=this._unspecifiedAttributeBindings=this._unspecifiedAttributeBindings||{};forEach(attributeBindings,function(binding){var split=binding.split(":"),property=split[0],attributeName=split[1]||property;if(property in this){this._setupAttributeBindingObservation(property,attributeName);attributeValue=get(this,property);View.applyAttributeBindings(buffer,attributeName,attributeValue)}else{unspecifiedAttributeBindings[property]=attributeName}},this);this.setUnknownProperty=this._setUnknownProperty},_setupAttributeBindingObservation:function(property,attributeName){var attributeValue,elem;var observer=function(){elem=this.$();attributeValue=get(this,property);View.applyAttributeBindings(elem,attributeName,attributeValue)};this.registerObserver(this,property,observer)},setUnknownProperty:null,_setUnknownProperty:function(key,value){var attributeName=this._unspecifiedAttributeBindings&&this._unspecifiedAttributeBindings[key];if(attributeName){this._setupAttributeBindingObservation(key,attributeName)}defineProperty(this,key);return set(this,key,value)},_classStringForProperty:function(property){var parsedPath=View._parsePropertyPath(property);var path=parsedPath.path;var val=get(this,path);if(val===undefined&&isGlobalPath(path)){val=get(Ember.lookup,path)}return View._classStringForValue(path,val,parsedPath.className,parsedPath.falsyClassName)},element:computed("_parentView",function(key,value){if(value!==undefined){return this.currentState.setElement(this,value)}else{return this.currentState.getElement(this)}}),$:function(sel){return this.currentState.$(this,sel)},mutateChildViews:function(callback){var childViews=this._childViews,idx=childViews.length,view;while(--idx>=0){view=childViews[idx];callback(this,view,idx)}return this},forEachChildView:function(callback){var childViews=this._childViews;if(!childViews){return this}var len=childViews.length,view,idx;for(idx=0;idx=0;i--){childViews[i].removedFromDOM=true}if(viewName&&nonVirtualParentView){nonVirtualParentView.set(viewName,null)}childLen=childViews.length;for(i=childLen-1;i>=0;i--){childViews[i].destroy()}return this},createChildView:function(view,attrs){if(!view){throw new TypeError("createChildViews first argument must exist")}if(view.isView&&view._parentView===this&&view.container===this.container){return view}attrs=attrs||{};attrs._parentView=this;if(CoreView.detect(view)){attrs.templateData=attrs.templateData||get(this,"templateData");attrs.container=this.container;view=view.create(attrs);if(view.viewName){set(get(this,"concreteView"),view.viewName,view)}}else if("string"===typeof view){var fullName="view:"+view;var ViewKlass=this.container.lookupFactory(fullName);attrs.templateData=get(this,"templateData");view=ViewKlass.create(attrs)}else{attrs.container=this.container;if(!get(view,"templateData")){attrs.templateData=get(this,"templateData")}setProperties(view,attrs)}return view},becameVisible:Ember.K,becameHidden:Ember.K,_isVisibleDidChange:observer("isVisible",function(){if(this._isVisible===get(this,"isVisible")){return}run.scheduleOnce("render",this,this._toggleVisibility)}),_toggleVisibility:function(){var $el=this.$();if(!$el){return}var isVisible=get(this,"isVisible");if(this._isVisible===isVisible){return}$el.toggle(isVisible);this._isVisible=isVisible;if(this._isAncestorHidden()){return}if(isVisible){this._notifyBecameVisible()}else{this._notifyBecameHidden()}},_notifyBecameVisible:function(){this.trigger("becameVisible");this.forEachChildView(function(view){var isVisible=get(view,"isVisible");if(isVisible||isVisible===null){view._notifyBecameVisible()}})},_notifyBecameHidden:function(){this.trigger("becameHidden");this.forEachChildView(function(view){var isVisible=get(view,"isVisible");if(isVisible||isVisible===null){view._notifyBecameHidden()}})},_isAncestorHidden:function(){var parent=get(this,"parentView");while(parent){if(get(parent,"isVisible")===false){return true}parent=get(parent,"parentView")}return false},clearBuffer:function(){this.invokeRecursively(nullViewsBuffer)},transitionTo:function(state,children){this._transitionTo(state,children)},_transitionTo:function(state,children){var priorState=this.currentState;var currentState=this.currentState=this._states[state];this._state=state;if(priorState&&priorState.exit){priorState.exit(this)}if(currentState.enter){currentState.enter(this)}if(state==="inDOM"){meta(this).cache.element=undefined}if(children!==false){this.forEachChildView(function(view){view._transitionTo(state)})}},handleEvent:function(eventName,evt){return this.currentState.handleEvent(this,eventName,evt)},registerObserver:function(root,path,target,observer){if(!observer&&"function"===typeof target){observer=target;target=null}if(!root||typeof root!=="object"){return}var view=this,stateCheckedObserver=function(){view.currentState.invokeObserver(this,observer)},scheduledObserver=function(){run.scheduleOnce("render",this,stateCheckedObserver)};addObserver(root,path,target,scheduledObserver);this.one("willClearRender",function(){removeObserver(root,path,target,scheduledObserver)})}});function notifyMutationListeners(){run.once(View,"notifyMutationListeners")}var DOMManager={prepend:function(view,html){view.$().prepend(html);notifyMutationListeners()},after:function(view,html){view.$().after(html);notifyMutationListeners()},html:function(view,html){view.$().html(html);notifyMutationListeners()},replace:function(view){var element=get(view,"element");set(view,"element",null);view._insertElementLater(function(){jQuery(element).replaceWith(get(view,"element"));notifyMutationListeners()})},remove:function(view){view.$().remove();notifyMutationListeners()},empty:function(view){view.$().empty();notifyMutationListeners()}};View.reopen({domManager:DOMManager});View.reopenClass({_parsePropertyPath:function(path){var split=path.split(":"),propertyPath=split[0],classNames="",className,falsyClassName;if(split.length>1){className=split[1];if(split.length===3){falsyClassName=split[2]}classNames=":"+className;if(falsyClassName){classNames+=":"+falsyClassName}}return{path:propertyPath,classNames:classNames,className:className===""?undefined:className,falsyClassName:falsyClassName}},_classStringForValue:function(path,val,className,falsyClassName){if(isArray(val)){val=get(val,"length")!==0}if(className||falsyClassName){if(className&&!!val){return className}else if(falsyClassName&&!val){return falsyClassName}else{return null}}else if(val===true){var parts=path.split(".");return dasherize(parts[parts.length-1])}else if(val!==false&&val!=null){return val}else{return null}}});var mutation=EmberObject.extend(Evented).create();View.addMutationListener=function(callback){mutation.on("change",callback)};View.removeMutationListener=function(callback){mutation.off("change",callback)};View.notifyMutationListeners=function(){mutation.trigger("change")};View.views={};View.childViewsProperty=childViewsProperty;View.applyAttributeBindings=function(elem,name,value){var type=typeOf(value);if(name!=="value"&&(type==="string"||type==="number"&&!isNaN(value))){if(value!==elem.attr(name)){elem.attr(name,value)}}else if(name==="value"||type==="boolean"){if(isNone(value)||value===false){elem.removeAttr(name);if(name==="required"){elem.removeProp(name)}else{elem.prop(name,"")}}else if(value!==elem.prop(name)){elem.prop(name,value)}}else if(!value){elem.removeAttr(name)}};__exports__["default"]=View});define("ember-views/views/view_collection",["ember-metal/enumerable_utils","exports"],function(__dependency1__,__exports__){"use strict";var forEach=__dependency1__.forEach;function ViewCollection(initialViews){var views=this.views=initialViews||[];this.length=views.length}ViewCollection.prototype={length:0,trigger:function(eventName){var views=this.views,view;for(var i=0,l=views.length;i";testEl.firstChild.innerHTML="";return testEl.firstChild.innerHTML===""}(),movesWhitespace=document&&function(){var testEl=document.createElement("div");testEl.innerHTML="Test: Value";return testEl.childNodes[0].nodeValue==="Test:"&&testEl.childNodes[2].nodeValue===" Value"}();var Metamorph=function(html){var self;if(this instanceof Metamorph){self=this}else{self=new K}self.innerHTML=html;var myGuid="metamorph-"+guid++;self.start=myGuid+"-start";self.end=myGuid+"-end";return self};K.prototype=Metamorph.prototype;var rangeFor,htmlFunc,removeFunc,outerHTMLFunc,appendToFunc,afterFunc,prependFunc,startTagFunc,endTagFunc;outerHTMLFunc=function(){return this.startTag()+this.innerHTML+this.endTag()};startTagFunc=function(){return""};endTagFunc=function(){return""};if(supportsRange){rangeFor=function(morph,outerToo){var range=document.createRange();var before=document.getElementById(morph.start);var after=document.getElementById(morph.end);if(outerToo){range.setStartBefore(before);range.setEndAfter(after)}else{range.setStartAfter(before);range.setEndBefore(after)}return range};htmlFunc=function(html,outerToo){var range=rangeFor(this,outerToo);range.deleteContents();var fragment=range.createContextualFragment(html);range.insertNode(fragment)};removeFunc=function(){var range=rangeFor(this,true);range.deleteContents()};appendToFunc=function(node){var range=document.createRange();range.setStart(node);range.collapse(false);var frag=range.createContextualFragment(this.outerHTML());node.appendChild(frag)};afterFunc=function(html){var range=document.createRange();var after=document.getElementById(this.end);range.setStartAfter(after);range.setEndAfter(after);var fragment=range.createContextualFragment(html);range.insertNode(fragment)};prependFunc=function(html){var range=document.createRange();var start=document.getElementById(this.start);range.setStartAfter(start);range.setEndAfter(start);var fragment=range.createContextualFragment(html);range.insertNode(fragment)}}else{Metamorph._wrapMap={select:[1,""],fieldset:[1,""],table:[1,""],tbody:[2,""],tr:[3,""],colgroup:[2,""],map:[1,""],_default:[0,"",""]};var findChildById=function(element,id){if(element.getAttribute("id")===id){return element}var len=element.childNodes.length,idx,node,found;for(idx=0;idx0){var len=matches.length,idx;for(idx=0;idx2&&key.slice(keyLength-2)==="[]"){isArray=true;key=key.slice(0,keyLength-2);if(!queryParams[key]){queryParams[key]=[]}}value=pair[1]?decodeURIComponent(pair[1]):""}if(isArray){queryParams[key].push(value)}else{queryParams[key]=value}}return queryParams},recognize:function(path){var states=[this.rootState],pathLen,i,l,queryStart,queryParams={},isSlashDropped=false;path=decodeURI(path);queryStart=path.indexOf("?");if(queryStart!==-1){var queryString=path.substr(queryStart+1,path.length);path=path.substr(0,queryStart);queryParams=this.parseQueryString(queryString)}if(path.charAt(0)!=="/"){path="/"+path}pathLen=path.length;if(pathLen>1&&path.charAt(pathLen-1)==="/"){path=path.substr(0,pathLen-1);isSlashDropped=true}for(i=0,l=path.length;i=0&&proceed;--i){var route=routes[i];recognizer.add(routes,{as:route.handler});proceed=route.path==="/"||route.path===""||route.handler.slice(-6)===".index"}})},hasRoute:function(route){return this.recognizer.hasRoute(route)},queryParamsTransition:function(changelist,wasTransitioning,oldState,newState){var router=this;fireQueryParamDidChange(this,newState,changelist);if(!wasTransitioning&&this.activeTransition){return this.activeTransition}else{var newTransition=new Transition(this);newTransition.queryParamsOnly=true;oldState.queryParams=finalizeQueryParamChange(this,newState.handlerInfos,newState.queryParams,newTransition);newTransition.promise=newTransition.promise.then(function(result){updateURL(newTransition,oldState,true);if(router.didTransition){router.didTransition(router.currentHandlerInfos)}return result},null,promiseLabel("Transition complete"));return newTransition}},transitionByIntent:function(intent,isIntermediate){var wasTransitioning=!!this.activeTransition;var oldState=wasTransitioning?this.activeTransition.state:this.state;var newTransition;var router=this;try{var newState=intent.applyToState(oldState,this.recognizer,this.getHandler,isIntermediate);var queryParamChangelist=getChangelist(oldState.queryParams,newState.queryParams);if(handlerInfosEqual(newState.handlerInfos,oldState.handlerInfos)){if(queryParamChangelist){newTransition=this.queryParamsTransition(queryParamChangelist,wasTransitioning,oldState,newState);if(newTransition){return newTransition}}return new Transition(this)}if(isIntermediate){setupContexts(this,newState);return}newTransition=new Transition(this,intent,newState);if(this.activeTransition){this.activeTransition.abort()}this.activeTransition=newTransition;newTransition.promise=newTransition.promise.then(function(result){return finalizeTransition(newTransition,result.state)},null,promiseLabel("Settle transition promise when transition is finalized"));if(!wasTransitioning){notifyExistingHandlers(this,newState,newTransition)}fireQueryParamDidChange(this,newState,queryParamChangelist);return newTransition}catch(e){return new Transition(this,intent,null,e)}},reset:function(){if(this.state){forEach(this.state.handlerInfos.slice().reverse(),function(handlerInfo){var handler=handlerInfo.handler;callHook(handler,"exit")})}this.state=new TransitionState;this.currentHandlerInfos=null},activeTransition:null,handleURL:function(url){var args=slice.call(arguments);if(url.charAt(0)!=="/"){args[0]="/"+url}return doTransition(this,args).method(null)},updateURL:function(){throw new Error("updateURL is not implemented")},replaceURL:function(url){this.updateURL(url)},transitionTo:function(name){return doTransition(this,arguments)},intermediateTransitionTo:function(name){return doTransition(this,arguments,true)},refresh:function(pivotHandler){var state=this.activeTransition?this.activeTransition.state:this.state;var handlerInfos=state.handlerInfos;var params={};for(var i=0,len=handlerInfos.length;i=0;--i){var handlerInfo=handlerInfos[i];merge(params,handlerInfo.params);if(handlerInfo.handler.inaccessibleByURL){urlMethod=null}}if(urlMethod){params.queryParams=transition._visibleQueryParams||state.queryParams;var url=router.recognizer.generate(handlerName,params);if(urlMethod==="replace"){router.replaceURL(url)}else{router.updateURL(url)}}}function finalizeTransition(transition,newState){try{log(transition.router,transition.sequence,"Resolved all models on destination route; finalizing transition.");var router=transition.router,handlerInfos=newState.handlerInfos,seq=transition.sequence;setupContexts(router,newState,transition);if(transition.isAborted){router.state.handlerInfos=router.currentHandlerInfos;return Promise.reject(logAbort(transition))}updateURL(transition,newState,transition.intent.url);transition.isActive=false;router.activeTransition=null;trigger(router,router.currentHandlerInfos,true,["didTransition"]);if(router.didTransition){router.didTransition(router.currentHandlerInfos)}log(router,transition.sequence,"TRANSITION COMPLETE.");return handlerInfos[handlerInfos.length-1].handler}catch(e){if(!(e instanceof TransitionAborted)){var infos=transition.state.handlerInfos;transition.trigger(true,"error",e,transition,infos[infos.length-1].handler);transition.abort()}throw e}}function doTransition(router,args,isIntermediate){var name=args[0]||"/";var lastArg=args[args.length-1];var queryParams={};if(lastArg&&lastArg.hasOwnProperty("queryParams")){queryParams=pop.call(args).queryParams}var intent;if(args.length===0){log(router,"Updating query params");var handlerInfos=router.state.handlerInfos;intent=new NamedTransitionIntent({name:handlerInfos[handlerInfos.length-1].name,contexts:[],queryParams:queryParams})}else if(name.charAt(0)==="/"){log(router,"Attempting URL transition to "+name);intent=new URLTransitionIntent({url:name})}else{log(router,"Attempting transition to "+name);intent=new NamedTransitionIntent({name:args[0],contexts:slice.call(args,1),queryParams:queryParams})}return router.transitionByIntent(intent,isIntermediate)}function handlerInfosEqual(handlerInfos,otherHandlerInfos){if(handlerInfos.length!==otherHandlerInfos.length){return false}for(var i=0,len=handlerInfos.length;i0){router._triggerWillChangeContext(changing,newTransition)}trigger(router,oldHandlers,true,["willTransition",newTransition])}__exports__["default"]=Router});define("router/transition-intent",["./utils","exports"],function(__dependency1__,__exports__){"use strict";var merge=__dependency1__.merge;function TransitionIntent(props){this.initialize(props);this.data=this.data||{}}TransitionIntent.prototype={initialize:null,applyToState:null};__exports__["default"]=TransitionIntent});define("router/transition-intent/named-transition-intent",["../transition-intent","../transition-state","../handler-info/factory","../utils","exports"],function(__dependency1__,__dependency2__,__dependency3__,__dependency4__,__exports__){"use strict";var TransitionIntent=__dependency1__["default"];var TransitionState=__dependency2__["default"];var handlerInfoFactory=__dependency3__["default"];var isParam=__dependency4__.isParam;var extractQueryParams=__dependency4__.extractQueryParams;var merge=__dependency4__.merge;var subclass=__dependency4__.subclass;__exports__["default"]=subclass(TransitionIntent,{name:null,pivotHandler:null,contexts:null,queryParams:null,initialize:function(props){this.name=props.name;this.pivotHandler=props.pivotHandler;this.contexts=props.contexts||[];this.queryParams=props.queryParams},applyToState:function(oldState,recognizer,getHandler,isIntermediate){var partitionedArgs=extractQueryParams([this.name].concat(this.contexts)),pureArgs=partitionedArgs[0],queryParams=partitionedArgs[1],handlers=recognizer.handlersFor(pureArgs[0]);var targetRouteName=handlers[handlers.length-1].handler;return this.applyToHandlers(oldState,handlers,getHandler,targetRouteName,isIntermediate)},applyToHandlers:function(oldState,handlers,getHandler,targetRouteName,isIntermediate,checkingIfActive){var i,len;var newState=new TransitionState;var objects=this.contexts.slice(0);var invalidateIndex=handlers.length;if(this.pivotHandler){for(i=0,len=handlers.length;i=0;--i){var result=handlers[i];var name=result.handler;var handler=getHandler(name);var oldHandlerInfo=oldState.handlerInfos[i];var newHandlerInfo=null;if(result.names.length>0){if(i>=invalidateIndex){newHandlerInfo=this.createParamHandlerInfo(name,handler,result.names,objects,oldHandlerInfo)}else{newHandlerInfo=this.getHandlerInfoForDynamicSegment(name,handler,result.names,objects,oldHandlerInfo,targetRouteName,i)}}else{newHandlerInfo=this.createParamHandlerInfo(name,handler,result.names,objects,oldHandlerInfo)}if(checkingIfActive){newHandlerInfo=newHandlerInfo.becomeResolved(null,newHandlerInfo.context);var oldContext=oldHandlerInfo&&oldHandlerInfo.context;if(result.names.length>0&&newHandlerInfo.context===oldContext){newHandlerInfo.params=oldHandlerInfo&&oldHandlerInfo.params}newHandlerInfo.context=oldContext}var handlerToUse=oldHandlerInfo;if(i>=invalidateIndex||newHandlerInfo.shouldSupercede(oldHandlerInfo)){invalidateIndex=Math.min(i,invalidateIndex);handlerToUse=newHandlerInfo}if(isIntermediate&&!checkingIfActive){handlerToUse=handlerToUse.becomeResolved(null,handlerToUse.context)}newState.handlerInfos.unshift(handlerToUse)}if(objects.length>0){throw new Error("More context objects were passed than there are dynamic segments for the route: "+targetRouteName)}if(!isIntermediate){this.invalidateChildren(newState.handlerInfos,invalidateIndex)}merge(newState.queryParams,this.queryParams||{});return newState},invalidateChildren:function(handlerInfos,invalidateIndex){for(var i=invalidateIndex,l=handlerInfos.length;i0){objectToUse=objects[objects.length-1];if(isParam(objectToUse)){return this.createParamHandlerInfo(name,handler,names,objects,oldHandlerInfo)}else{objects.pop()}}else if(oldHandlerInfo&&oldHandlerInfo.name===name){return oldHandlerInfo}else{if(this.preTransitionState){var preTransitionHandlerInfo=this.preTransitionState.handlerInfos[i];objectToUse=preTransitionHandlerInfo&&preTransitionHandlerInfo.context}else{return oldHandlerInfo}}return handlerInfoFactory("object",{name:name,handler:handler,context:objectToUse,names:names})},createParamHandlerInfo:function(name,handler,names,objects,oldHandlerInfo){var params={};var numNames=names.length;while(numNames--){var oldParams=oldHandlerInfo&&name===oldHandlerInfo.name&&oldHandlerInfo.params||{};var peek=objects[objects.length-1];var paramName=names[numNames];if(isParam(peek)){params[paramName]=""+objects.pop()}else{if(oldParams.hasOwnProperty(paramName)){params[paramName]=oldParams[paramName]}else{throw new Error("You didn't provide enough string/numeric parameters to satisfy all of the dynamic segments for route "+name)}}}return handlerInfoFactory("param",{name:name,handler:handler,params:params})}})});define("router/transition-intent/url-transition-intent",["../transition-intent","../transition-state","../handler-info/factory","../utils","exports"],function(__dependency1__,__dependency2__,__dependency3__,__dependency4__,__exports__){"use strict";var TransitionIntent=__dependency1__["default"];var TransitionState=__dependency2__["default"];var handlerInfoFactory=__dependency3__["default"];var oCreate=__dependency4__.oCreate;var merge=__dependency4__.merge;var subclass=__dependency4__.subclass;__exports__["default"]=subclass(TransitionIntent,{url:null,initialize:function(props){this.url=props.url},applyToState:function(oldState,recognizer,getHandler){var newState=new TransitionState;var results=recognizer.recognize(this.url),queryParams={},i,len;if(!results){throw new UnrecognizedURLError(this.url)}var statesDiffer=false;for(i=0,len=results.length;i=handlerInfos.length?handlerInfos.length-1:payload.resolveIndex;return Promise.reject({error:error,handlerWithError:currentState.handlerInfos[errorHandlerIndex].handler,wasAborted:wasAborted,state:currentState})}function proceed(resolvedHandlerInfo){var wasAlreadyResolved=currentState.handlerInfos[payload.resolveIndex].isResolved;currentState.handlerInfos[payload.resolveIndex++]=resolvedHandlerInfo;if(!wasAlreadyResolved){var handler=resolvedHandlerInfo.handler;callHook(handler,"redirect",resolvedHandlerInfo.context,payload)}return innerShouldContinue().then(resolveOneHandlerInfo,null,currentState.promiseLabel("Resolve handler"))}function resolveOneHandlerInfo(){if(payload.resolveIndex===currentState.handlerInfos.length){return{error:null,state:currentState}}var handlerInfo=currentState.handlerInfos[payload.resolveIndex];return handlerInfo.resolve(innerShouldContinue,payload).then(proceed,null,currentState.promiseLabel("Proceed"))}}};__exports__["default"]=TransitionState});define("router/transition",["rsvp/promise","./handler-info","./utils","exports"],function(__dependency1__,__dependency2__,__dependency3__,__exports__){"use strict";var Promise=__dependency1__["default"];var ResolvedHandlerInfo=__dependency2__.ResolvedHandlerInfo;var trigger=__dependency3__.trigger;var slice=__dependency3__.slice;var log=__dependency3__.log;var promiseLabel=__dependency3__.promiseLabel;function Transition(router,intent,state,error){var transition=this;this.state=state||router.state;this.intent=intent;this.router=router;this.data=this.intent&&this.intent.data||{};this.resolvedModels={};this.queryParams={};if(error){this.promise=Promise.reject(error);return}if(state){this.params=state.params;this.queryParams=state.queryParams;this.handlerInfos=state.handlerInfos;var len=state.handlerInfos.length;if(len){this.targetName=state.handlerInfos[len-1].name}for(var i=0;i0&&array[len-1]&&array[len-1].hasOwnProperty("queryParams")){queryParams=array[len-1].queryParams;head=slice.call(array,0,len-1);return[head,queryParams]}else{return[array,null]}}__exports__.extractQueryParams=extractQueryParams;function coerceQueryParamsToString(queryParams){for(var key in queryParams){if(typeof queryParams[key]==="number"){queryParams[key]=""+queryParams[key]}else if(isArray(queryParams[key])){for(var i=0,l=queryParams[key].length;i=0;i--){var handlerInfo=handlerInfos[i],handler=handlerInfo.handler;if(handler.events&&handler.events[name]){if(handler.events[name].apply(handler,args)===true){eventWasHandled=true}else{return}}}if(!eventWasHandled&&!ignoreFailure){throw new Error("Nothing handled the event '"+name+"'.")}}__exports__.trigger=trigger;function getChangelist(oldObject,newObject){var key;var results={all:{},changed:{},removed:{}};merge(results.all,newObject);var didChange=false;coerceQueryParamsToString(oldObject);coerceQueryParamsToString(newObject);for(key in oldObject){if(oldObject.hasOwnProperty(key)){if(!newObject.hasOwnProperty(key)){didChange=true;results.removed[key]=oldObject[key]}}}for(key in newObject){if(newObject.hasOwnProperty(key)){if(isArray(oldObject[key])&&isArray(newObject[key])){if(oldObject[key].length!==newObject[key].length){results.changed[key]=newObject[key];didChange=true}else{for(var i=0,l=oldObject[key].length;i